lxzn-module-mdc-common/src/main/java/org/jeecg/modules/mdc/mapper/MdcEquipmentMapper.java
@@ -140,4 +140,6 @@ List<MdcEquipment> findByProIdsAndTeamCode(@Param("mdcProductionIds") List<String> mdcProductionIds, @Param("teamCodeList") List<String> teamCodeList); List<MdcEquipment> findByProIdsAndType(@Param("mdcProductionIds") List<String> mdcProductionIds, @Param("typeList") List<String> typeList); List<MdcEquipment> getEquipmentList(@Param("allProductionIds") List<String> allProductionIds); } lxzn-module-mdc-common/src/main/java/org/jeecg/modules/mdc/mapper/xml/MdcEquipmentMapper.xml
@@ -89,6 +89,20 @@ </foreach> </select> <!--æ ¹æ®äº§çº¿idæ¥è¯¢è®¾å¤idéå--> <select id="getEquipmentList" resultType="org.jeecg.modules.mdc.entity.MdcEquipment"> SELECT me.* FROM mdc_equipment me LEFT JOIN mdc_production_equipment mpe ON me.id = mpe.equipment_id WHERE mpe.production_id IN <foreach collection="allProductionIds" index="index" item="id" open="(" separator="," close=")"> #{id} </foreach> </select> <!--æ¥è¯¢è®¾å¤çæ§ä¿¡æ¯--> <select id="checkStatusFromEquipmentIds" resultType="org.jeecg.modules.mdc.entity.MdcEquipmentMonitor"> SELECT lxzn-module-mdc-common/src/main/java/org/jeecg/modules/mdc/service/IMdcEquipmentService.java
@@ -239,4 +239,10 @@ * @return */ List<MdcEquipment> findByProIdsAndType(List<String> allProductionIds, List<String> typeList); /** * æ ¹æ®ç¨æ·æ¥è¯¢è®¾å¤åè¡¨ä¿¡æ¯ * @return */ List<MdcEquipment> getEquipmentList(); } lxzn-module-mdc-common/src/main/java/org/jeecg/modules/mdc/service/impl/MdcEquipmentServiceImpl.java
@@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.toolkit.CollectionUtils; import com.baomidou.mybatisplus.core.toolkit.StringPool; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import lombok.extern.slf4j.Slf4j; @@ -1042,4 +1043,31 @@ return this.baseMapper.findByProIdsAndType(allProductionIds, typeList); } @Override public List<MdcEquipment> getEquipmentList() { LoginUser user = (LoginUser) SecurityUtils.getSubject().getPrincipal(); String userId = user.getId(); if (StringUtils.isNotEmpty(user.getEquipmentIds())) { return this.baseMapper.selectList(new LambdaQueryWrapper<MdcEquipment>().eq(MdcEquipment::getEquipmentId, Arrays.asList(user.getEquipmentIds().split(StringPool.COMMA)))); } //è·åææäº§çº¿æ°æ® List<MdcProduction> productionList = mdcProductionService.list(new LambdaQueryWrapper<MdcProduction>().eq(MdcProduction::getDelFlag, CommonConstant.DEL_FLAG_0.toString()).orderByAsc(MdcProduction::getProductionOrder)); //æ ¹æ®ç¨æ·idè·åæ¥æç产线信æ¯éå List<String> productionIds = mdcUserProductionService.queryProductionIdsByUserId(userId); List<String> allProductionIds = new ArrayList<>(); //æ¾å°ææäº§çº¿idçä¸çº§id if (productionIds != null && !productionIds.isEmpty()) { for (String productionId : productionIds) { this.getAllProductionIds(productionList, productionId, allProductionIds); } } //æ ¹æ®äº§çº¿éåæ¥æ¾ææè®¾å¤id if (allProductionIds.isEmpty()) { return null; } List<MdcEquipment> equipmentIds = this.baseMapper.getEquipmentList(allProductionIds); return equipmentIds; } } lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/controller/MdcDowntimeOperatorController.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,85 @@ package org.jeecg.modules.mdc.controller; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import lombok.extern.slf4j.Slf4j; import org.apache.shiro.SecurityUtils; import org.jeecg.common.api.vo.Result; import org.jeecg.common.aspect.annotation.AutoLog; import org.jeecg.common.system.base.controller.JeecgController; import org.jeecg.common.system.vo.LoginUser; import org.jeecg.modules.mdc.dto.MdcDowntimeDto; import org.jeecg.modules.mdc.entity.MdcDowntime; import org.jeecg.modules.mdc.service.IMdcDowntimeOperatorService; import org.jeecg.modules.mdc.vo.MdcDowntimeVo; import org.jeecg.modules.mdc.vo.SplitDowntimeVo; import org.springframework.web.bind.annotation.*; import javax.annotation.Resource; /** * @Description: æä½å·¥åæºå¾ æºè¡¨ * @Author: lius * @Date: 2025-03-12 */ @Slf4j @Api(tags = "æä½å·¥åæºå¾ æºè¡¨") @RestController @RequestMapping("/mdc/operator/mdcDowntime") public class MdcDowntimeOperatorController extends JeecgController<MdcDowntime, IMdcDowntimeOperatorService> { @Resource private IMdcDowntimeOperatorService mdcDowntimeService; /** * å页å表æ¥è¯¢ * * @param mdcDowntimeVo * @param pageNo * @param pageSize * @return */ @AutoLog(value = "å¾ æºåæºè¡¨-å页å表æ¥è¯¢") @ApiOperation(value = "å¾ æºåæºè¡¨-å页å表æ¥è¯¢", notes = "å¾ æºåæºè¡¨-å页å表æ¥è¯¢") @GetMapping(value = "/list") public Result<?> queryPageList(MdcDowntimeVo mdcDowntimeVo, @RequestParam(name = "pageNo", defaultValue = "1") Integer pageNo, @RequestParam(name = "pageSize", defaultValue = "10") Integer pageSize) { LoginUser user = (LoginUser) SecurityUtils.getSubject().getPrincipal(); String userId = user.getId(); Page<MdcDowntimeDto> page = new Page<MdcDowntimeDto>(pageNo, pageSize); IPage<MdcDowntimeDto> pageList = mdcDowntimeService.pageList(mdcDowntimeVo, page); return Result.OK(pageList); } /** * ç»´æ¤åæº * * @param mdcDowntimeVo * @return */ @AutoLog(value = "å¾ æºåæºè¡¨-ç»´æ¤åæº") @ApiOperation(value = "å¾ æºåæºè¡¨-ç»´æ¤åæº", notes = "å¾ æºåæºè¡¨-ç»´æ¤åæº") @RequestMapping(value = "/updateReason", method = {RequestMethod.PUT, RequestMethod.POST}) public Result<?> updateReason(@RequestBody MdcDowntimeVo mdcDowntimeVo) { mdcDowntimeService.updateReason(mdcDowntimeVo); return Result.OK("ç¼è¾æå!"); } /** * åæºæå * * @param splitDowntimeVo * @return */ @AutoLog(value = "å¾ æºåæºè¡¨-åæºæå") @ApiOperation(value = "å¾ æºåæºè¡¨-åæºæå", notes = "å¾ æºåæºè¡¨-åæºæå") @RequestMapping(value = "/splitDowntime", method = {RequestMethod.PUT, RequestMethod.POST}) public Result<?> splitDowntime(@RequestBody SplitDowntimeVo splitDowntimeVo) { mdcDowntimeService.splitDowntime(splitDowntimeVo); return Result.OK("æåæå!"); } } lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/controller/MdcDowntimeReasonController.java
@@ -3,6 +3,7 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.beust.jcommander.internal.Lists; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import lombok.extern.slf4j.Slf4j; @@ -10,9 +11,9 @@ import org.jeecg.common.aspect.annotation.AutoLog; import org.jeecg.common.system.base.controller.JeecgController; import org.jeecg.common.system.query.QueryGenerator; import org.jeecg.modules.mdc.dto.OptionsDto; import org.jeecg.modules.mdc.entity.MdcDowntimeReason; import org.jeecg.modules.mdc.service.IMdcDowntimeReasonService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; import org.springframework.web.servlet.ModelAndView; @@ -166,4 +167,24 @@ return Result.OK(result); } /** * åæºåå 䏿鿩 * * @return */ @AutoLog(value = "åæºåå 表-åæºåå 䏿鿩") @ApiOperation(value = "åæºåå 表-åæºåå 䏿鿩", notes = "åæºåå 表-åæºåå 䏿鿩") @GetMapping(value = "/reasonList") public Result<List<OptionsDto>> reasonList() { List<MdcDowntimeReason> result = mdcDowntimeReasonService.list(); List<OptionsDto> list = Lists.newArrayList(); result.forEach(mdcDowntimeReason -> { OptionsDto optionsDto = new OptionsDto(); optionsDto.setValue(mdcDowntimeReason.getId()); optionsDto.setLabel(mdcDowntimeReason.getDowntimeDescription()); list.add(optionsDto); }); return Result.OK(list); } } lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/controller/MdcEquipmentController.java
@@ -111,6 +111,17 @@ } /** * æ ¹æ®ç¨æ·æ¥è¯¢è®¾å¤åè¡¨ä¿¡æ¯ */ @AutoLog(value = "设å¤è¡¨-æ ¹æ®ç¨æ·æ¥è¯¢è®¾å¤å表信æ¯") @ApiOperation(value = "设å¤è¡¨-æ ¹æ®ç¨æ·æ¥è¯¢è®¾å¤å表信æ¯", notes = "设å¤è¡¨-æ ¹æ®ç¨æ·æ¥è¯¢è®¾å¤å表信æ¯") @GetMapping(value = "/getEquipmentList") public Result<List<MdcEquipment>> getEquipmentList() { List<MdcEquipment> list = mdcEquipmentService.getEquipmentList(); return Result.OK(list); } /** * 设å¤çæ§å表 */ @AutoLog(value = "设å¤è¡¨-设å¤çæ§å表") lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/entity/MdcDowntime.java
@@ -81,5 +81,18 @@ @Excel(name = "夿³¨", width = 15) @ApiModelProperty(value = "夿³¨") private String remark; /** * å½å ¥ç±»å */ @Excel(name = "å½å ¥ç±»å", width = 15) @ApiModelProperty(value = "å½å ¥ç±»å") @Dict(dicCode = "enter_type") private Integer enterType; /** * åæºæ¶é¿ */ @Excel(name = "åæºæ¶é¿", width = 15) @ApiModelProperty(value = "åæºæ¶é¿") private Integer shutdownDuration; } lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/job/ScanDowntimeJob.java
@@ -90,6 +90,7 @@ downtime.setTheDate(finalDate); downtime.setStartDate(mdcEquipmentWaitSectionDto.getStartTime()); downtime.setEndDate(mdcEquipmentWaitSectionDto.getEndTime()); downtime.setShutdownDuration(DateUtils.differentMinutes(downtime.getStartDate(), downtime.getEndDate())); return downtime; }).collect(Collectors.toList()); if (!downtimeList.isEmpty()) { lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/MdcDowntimeOperatorMapper.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,23 @@ package org.jeecg.modules.mdc.mapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.toolkit.Constants; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import org.apache.ibatis.annotations.Param; import org.jeecg.modules.mdc.dto.MdcDowntimeDto; import org.jeecg.modules.mdc.entity.MdcDowntime; import org.jeecg.modules.mdc.vo.MdcDowntimeVo; import java.util.List; /** * @Description: æä½å·¥å¾ æºåæºè¡¨ * @Author: lius * @Date: 2025-03-12 */ public interface MdcDowntimeOperatorMapper extends BaseMapper<MdcDowntime> { IPage<MdcDowntimeDto> page(Page<MdcDowntimeDto> page, @Param(Constants.WRAPPER) QueryWrapper<MdcDowntimeDto> queryWrapper); } lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/xml/MdcDowntimeOperatorMapper.xml
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,14 @@ <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <mapper namespace="org.jeecg.modules.mdc.mapper.MdcDowntimeOperatorMapper"> <select id="page" resultType="org.jeecg.modules.mdc.dto.MdcDowntimeDto"> SELECT t1.* , t2.downtime_type downtimeType, t2.downtime_description downtimeDescription FROM mdc_downtime t1 LEFT JOIN mdc_downtime_reason t2 ON t1.reason_id = t2.id ${ew.customSqlSegment} ORDER BY t1.create_time DESC </select> </mapper> lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/IMdcDowntimeOperatorService.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,23 @@ package org.jeecg.modules.mdc.service; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.IService; import org.jeecg.modules.mdc.dto.MdcDowntimeDto; import org.jeecg.modules.mdc.entity.MdcDowntime; import org.jeecg.modules.mdc.vo.MdcDowntimeVo; import org.jeecg.modules.mdc.vo.SplitDowntimeVo; /** * @Description: æä½å·¥å¾ æºåæºè¡¨ * @Author: lius * @Date: 2025-03-12 */ public interface IMdcDowntimeOperatorService extends IService<MdcDowntime> { IPage<MdcDowntimeDto> pageList(MdcDowntimeVo mdcDowntimeVo, Page<MdcDowntimeDto> page); void updateReason(MdcDowntimeVo mdcDowntimeVo); void splitDowntime(SplitDowntimeVo splitDowntimeVo); } lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/impl/MdcDowntimeServiceOperatorImpl.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,171 @@ package org.jeecg.modules.mdc.service.impl; import cn.hutool.core.bean.BeanUtil; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.toolkit.CollectionUtils; import com.baomidou.mybatisplus.core.toolkit.IdWorker; import com.baomidou.mybatisplus.core.toolkit.StringPool; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.beust.jcommander.internal.Lists; import org.apache.commons.lang3.StringUtils; import org.apache.shiro.SecurityUtils; import org.jeecg.common.exception.JeecgBootException; import org.jeecg.common.system.vo.LoginUser; import org.jeecg.modules.mdc.dto.MdcDowntimeDto; import org.jeecg.modules.mdc.entity.MdcDowntime; import org.jeecg.modules.mdc.mapper.MdcDowntimeOperatorMapper; import org.jeecg.modules.mdc.service.IMdcDowntimeOperatorService; import org.jeecg.modules.mdc.service.IMdcEquipmentService; import org.jeecg.modules.mdc.util.DateUtils; import org.jeecg.modules.mdc.vo.MdcDowntimeVo; import org.jeecg.modules.mdc.vo.SplitDowntimeVo; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import javax.annotation.Resource; import java.util.*; /** * @Description: æä½å·¥å¾ æºåæºè¡¨ * @Author: lius * @Date: 2025-03-12 */ @Service public class MdcDowntimeServiceOperatorImpl extends ServiceImpl<MdcDowntimeOperatorMapper, MdcDowntime> implements IMdcDowntimeOperatorService { @Resource private IMdcEquipmentService mdcEquipmentService; @Override public IPage<MdcDowntimeDto> pageList(MdcDowntimeVo mdcDowntimeVo, Page<MdcDowntimeDto> page) { LoginUser user = (LoginUser) SecurityUtils.getSubject().getPrincipal(); String userId = user.getId(); // è·å设å¤IDå表 List<String> equipmentIds = Lists.newArrayList(); if (StringUtils.isNotBlank(user.getEquipmentIds())) { equipmentIds = Arrays.asList(user.getEquipmentIds().split(StringPool.COMMA)); }else { equipmentIds = getEquipmentIds(userId, mdcDowntimeVo); } // å¦æè®¾å¤IDå表为空ï¼ç´æ¥è¿å空å页 if (equipmentIds == null || equipmentIds.isEmpty()) { return new Page<>(page.getCurrent(), page.getSize(), 0); } QueryWrapper<MdcDowntimeDto> queryWrapper = Wrappers.query(); if (CollectionUtils.isNotEmpty(equipmentIds)) { queryWrapper.in("t1.equipment_id", equipmentIds); } if (StringUtils.isNotBlank(mdcDowntimeVo.getEquipmentId())) { queryWrapper.eq("t1.equipment_id", mdcDowntimeVo.getEquipmentId()); } if (Objects.nonNull(mdcDowntimeVo.getStartDate())) { queryWrapper.ge("t1.start_date", mdcDowntimeVo.getStartDate()); } if (Objects.nonNull(mdcDowntimeVo.getEndDate())) { queryWrapper.le("t1.end_date", mdcDowntimeVo.getEndDate()); } if (StringUtils.isNotBlank(mdcDowntimeVo.getDowntimeDescription())) { queryWrapper.eq("t2.id", mdcDowntimeVo.getDowntimeDescription()); } return this.baseMapper.page(page, queryWrapper); } @Override @Transactional(rollbackFor = {Exception.class}) public void updateReason(MdcDowntimeVo mdcDowntimeVo) { if (StringUtils.isEmpty(mdcDowntimeVo.getDownTimeIds())) { throw new JeecgBootException("è¯·éæ©éè¦ç»´æ¤åæºçæ°æ®"); } List<MdcDowntime> mdcDowntimeList = this.listByIds(Arrays.asList(mdcDowntimeVo.getDownTimeIds().split(StringPool.COMMA))); mdcDowntimeList.forEach(mdcDowntime -> { mdcDowntime.setReasonId(mdcDowntimeVo.getReasonId()); }); this.updateBatchById(mdcDowntimeList); } @Transactional(rollbackFor = {Exception.class}) @Override public void splitDowntime(SplitDowntimeVo splitDowntimeVo) { if (StringUtils.isBlank(splitDowntimeVo.getId())) { throw new JeecgBootException("è¯·éæ©éè¦æååæºçæ°æ®"); } MdcDowntime mdcDowntime = this.getById(splitDowntimeVo.getId()); if (StringUtils.isNotBlank(mdcDowntime.getReasonId())) { throw new JeecgBootException("å·²è®¾ç½®åæºåå ï¼æ æ³æååæº"); } //æ¯è¾æå䏿®µçæ¥ææ¯å¦ååºé´èå´å ï¼å¼å§æ¶é´ï¼startTime ç»ææ¶é´ï¼å ¥æ äºæ®µæ¶é´ï¼ååendTimeï¼ if (Objects.nonNull(splitDowntimeVo.getFirstMiddleTime())) { //æ ¡éªä¸æ®µæ¥ææ¯å¦å¤§äºstartTimeï¼å¦ï¼æåºå¼å¸¸ if (Objects.isNull(splitDowntimeVo.getSecondMiddleTime())) { if (splitDowntimeVo.getStartDate().compareTo(splitDowntimeVo.getFirstMiddleTime()) != -1 || splitDowntimeVo.getFirstMiddleTime().compareTo(splitDowntimeVo.getEndDate()) != -1) { throw new JeecgBootException("æå䏿®µæ¶é´æªå¨å¼å§æ¶é´åç»ææ¶é´ä¹å ï¼è¯·æ£æ¥ï¼"); } }else { if (splitDowntimeVo.getStartDate().compareTo(splitDowntimeVo.getFirstMiddleTime()) != -1 || splitDowntimeVo.getFirstMiddleTime().compareTo(splitDowntimeVo.getSecondMiddleTime()) != -1) { throw new JeecgBootException("æå䏿®µæ¶é´æªå¨å¼å§æ¶é´åæåäºæ®µç»ææ¶é´ä¹å ï¼è¯·æ£æ¥ï¼"); } } }else { throw new JeecgBootException("è¯·ç»´æ¤æå䏿®µç»ææ¶é´"); } if (Objects.nonNull(splitDowntimeVo.getSecondMiddleTime())) { //æ ¡éªäºæ®µæ¥ææ¯å¦åå¨äºä¸æ®µæ¥æåendTimeä¹é´ if (splitDowntimeVo.getFirstMiddleTime().compareTo(splitDowntimeVo.getSecondMiddleTime()) != -1 || splitDowntimeVo.getSecondMiddleTime().compareTo(splitDowntimeVo.getEndDate()) != -1) { throw new JeecgBootException("æåäºæ®µæ¶é´æªå¨æå䏿®µç»ææ¶é´åç»ææ¶é´ä¹å ï¼è¯·æ£æ¥ï¼"); } } List<MdcDowntime> list = Lists.newArrayList(); //设置æå1段 if (Objects.nonNull(splitDowntimeVo.getFirstMiddleTime())) { list.add(checkMdcDowntime(mdcDowntime, splitDowntimeVo.getStartDate(), splitDowntimeVo.getFirstMiddleTime(), splitDowntimeVo.getFirstDowntimeDescription())); } //设置æå2段ï¼äºæ®µä¸åå¨åå°endDateä½ä¸ºæåäºæ®µ if (Objects.nonNull(splitDowntimeVo.getSecondMiddleTime())) { list.add(checkMdcDowntime(mdcDowntime, splitDowntimeVo.getFirstMiddleTime(), splitDowntimeVo.getSecondMiddleTime(), splitDowntimeVo.getSecondDowntimeDescription())); list.add(checkMdcDowntime(mdcDowntime, splitDowntimeVo.getSecondMiddleTime(), splitDowntimeVo.getEndDate(), splitDowntimeVo.getThirdDowntimeDescription())); }else { list.add(checkMdcDowntime(mdcDowntime, splitDowntimeVo.getFirstMiddleTime(), splitDowntimeVo.getEndDate(), splitDowntimeVo.getThirdDowntimeDescription())); } //ä¿åæåæ°æ®å¹¶å é¤åææ°æ® if (this.saveBatch(list)) { this.removeById(mdcDowntime); } } private MdcDowntime checkMdcDowntime(MdcDowntime mdcDowntime, Date startDate, Date endDate, String downtimeDescription) { MdcDowntime mdcDowntimeInfo = new MdcDowntime(); BeanUtil.copyProperties(mdcDowntime, mdcDowntimeInfo); mdcDowntimeInfo.setId(IdWorker.getIdStr()); mdcDowntimeInfo.setStartDate(startDate); mdcDowntimeInfo.setEndDate(endDate); mdcDowntimeInfo.setShutdownDuration(DateUtils.differentMinutes(startDate, endDate)); mdcDowntimeInfo.setEnterType(2); mdcDowntimeInfo.setReasonId(StringUtils.isNotBlank(downtimeDescription) ? downtimeDescription : StringPool.EMPTY); return mdcDowntimeInfo; } private List<String> getEquipmentIds(String userId, MdcDowntimeVo mdcDowntimeVo) { if (StringUtils.isNotEmpty(mdcDowntimeVo.getEquipmentId())) { return Collections.singletonList(mdcDowntimeVo.getEquipmentId()); } return mdcEquipmentService.getEquipmentIdsProduction(userId, null); } } lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/vo/MdcDowntimeVo.java
@@ -31,6 +31,16 @@ private String parentId; /** * åæºåå */ private String downtimeDescription; /** * åæºids */ private String downTimeIds; /** * 设å¤ids */ private List<String> equipmentIdList; lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/vo/SplitDowntimeVo.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,70 @@ package org.jeecg.modules.mdc.vo; import com.fasterxml.jackson.annotation.JsonFormat; import io.swagger.annotations.ApiModelProperty; import lombok.Data; import org.springframework.format.annotation.DateTimeFormat; import java.util.Date; /** * åæºæåæä½å ¥å */ @Data public class SplitDowntimeVo { /** * åæºæåid */ private String id; /** * å¼å§æ¶é´ */ @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss") @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") @ApiModelProperty(value = "å¼å§æ¶é´") private Date startDate; /** * æå1æ®µç»ææ¶é´ */ @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss") @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") @ApiModelProperty(value = "æå1段å¼å§æ¶é´") private Date firstMiddleTime; /** * æå1æ®µåæºåå */ @ApiModelProperty(value = "æå1æ®µåæºåå ") private String firstDowntimeDescription; /** * æå2æ®µç»ææ¶é´ */ @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss") @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") @ApiModelProperty(value = "æå2段å¼å§æ¶é´") private Date secondMiddleTime; /** * æå2æ®µåæºåå */ @ApiModelProperty(value = "æå2æ®µåæºåå ") private String secondDowntimeDescription; /** * ç»ææ¶é´ */ @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss") @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") @ApiModelProperty(value = "ç»ææ¶é´") private Date endDate; /** * æå3æ®µåæºåå */ @ApiModelProperty(value = "æå3æ®µåæºåå ") private String thirdDowntimeDescription; } lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/cas/controller/CasClientController.java
@@ -74,7 +74,7 @@ log.info("-------token----username---"+principal); //1. æ ¡éªç¨æ·æ¯å¦ææ SysUser sysUser = sysUserService.getUserByName(principal); result = sysUserService.checkUserIsEffective(sysUser); result = sysUserService.checkUserIsEffective(sysUser, null); if(!result.isSuccess()) { return result; } lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/controller/LoginController.java
@@ -121,7 +121,7 @@ } SysUser sysUser = sysUserService.getOne(queryWrapper); //update-end-author:wangshuai date:20200601 for: ç»å½ä»£ç éªè¯ç¨æ·æ¯å¦æ³¨ébugï¼ifæ¡ä»¶æ°¸è¿ä¸ºfalse result = sysUserService.checkUserIsEffective(sysUser); result = sysUserService.checkUserIsEffective(sysUser, loginType); if(!result.isSuccess()) { return result; } @@ -397,7 +397,7 @@ }else { //ç»å½æ¨¡å¼ï¼æ ¡éªç¨æ·æææ§ SysUser sysUser = sysUserService.getUserByPhone(mobile); result = sysUserService.checkUserIsEffective(sysUser); result = sysUserService.checkUserIsEffective(sysUser, null); if(!result.isSuccess()) { String message = result.getMessage(); String userNotExist="è¯¥ç¨æ·ä¸åå¨ï¼è¯·æ³¨å"; @@ -458,7 +458,7 @@ //æ ¡éªç¨æ·æææ§ SysUser sysUser = sysUserService.getUserByPhone(phone); result = sysUserService.checkUserIsEffective(sysUser); result = sysUserService.checkUserIsEffective(sysUser, null); if(!result.isSuccess()) { return result; } @@ -626,7 +626,7 @@ //1. æ ¡éªç¨æ·æ¯å¦ææ SysUser sysUser = sysUserService.getUserByName(username); result = sysUserService.checkUserIsEffective(sysUser); result = sysUserService.checkUserIsEffective(sysUser, null); if(!result.isSuccess()) { return result; } lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/controller/ThirdLoginController.java
@@ -218,7 +218,7 @@ //1. æ ¡éªç¨æ·æ¯å¦ææ SysUser sysUser = sysUserService.getUserByName(username); result = sysUserService.checkUserIsEffective(sysUser); result = sysUserService.checkUserIsEffective(sysUser, null); if(!result.isSuccess()) { return result; } lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/service/ISysUserService.java
@@ -221,7 +221,7 @@ * @param sysUser * @return */ Result checkUserIsEffective(SysUser sysUser); Result checkUserIsEffective(SysUser sysUser, String loginType); /** * æ¥è¯¢è¢«é»è¾å é¤çç¨æ· lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/service/impl/SysUserServiceImpl.java
@@ -440,7 +440,7 @@ * @return */ @Override public Result<?> checkUserIsEffective(SysUser sysUser) { public Result<?> checkUserIsEffective(SysUser sysUser, String loginType) { Result<?> result = new Result<Object>(); //æ åµ1ï¼æ ¹æ®ç¨æ·ä¿¡æ¯æ¥è¯¢ï¼è¯¥ç¨æ·ä¸åå¨ if (sysUser == null) { @@ -464,7 +464,7 @@ } //æ åµ4ï¼æ ¹æ®ç¨æ·ä¿¡æ¯æ¥è¯¢ï¼è¯¥ç¨æ·å¯ç ç³»é¦æ¬¡ä½¿ç¨ï¼éä¿®æ¹å¯ç List<DictModel> dictList = sysDictService.queryEnableDictItemsByCode(CommonConstant.DICT_USER_FIRST_LOGIN); if (dictList != null && !dictList.isEmpty()) { if (!"terminal".equals(loginType) && dictList != null && !dictList.isEmpty()) { if (CommonConstant.DEL_FLAG_1.equals(Integer.valueOf(dictList.get(0).getValue())) && CommonConstant.DEL_FLAG_1.equals(sysUser.getPasswordFlag())) { baseCommonService.addLog("ç¨æ·ç»å½å¤±è´¥ï¼ç¨æ·å:" + sysUser.getUsername() + "ç³»é¦æ¬¡ç»å½ç³»ç»ï¼è¯·éç½®å¯ç ï¼", CommonConstant.LOG_TYPE_1, null); result.setCode(5001);