blade-service/blade-mdm/pom.xml
@@ -71,10 +71,6 @@ <artifactId>qiniu-java-sdk</artifactId> </dependency> <dependency> <groupId>org.springblade</groupId> <artifactId>blade-flow-api</artifactId> </dependency> <dependency> <groupId>org.apache.tika</groupId> <artifactId>tika-core</artifactId> <version>3.2.0</version> blade-service/blade-mdm/src/main/java/org/springblade/mdm/commons/contants/ParamConstants.java
@@ -4,9 +4,9 @@ public static final String NETWORK_TYPE_KEY = "networkType"; /** * å·¥æ§ç½åä¼ ç¨åºçæ§ç®å½éå·åé * é夿´¾å·¥å¤©æ°éªè¯é´éå¤©æ° */ public static final String PROGRAM_MONITOR_DIR_KEY = "programMonitorDir"; public static String TASK_DUPLICATE_CHECK_DAYS= "taskDuplicateCheckDays"; /** * æ¶å¯ç½ */ @@ -25,4 +25,12 @@ * ç³»ç»åæ°ï¼æºæä¸è½¦é´çkey */ public static final String WORKSHOP_DICT_KEY = "workshopDictKey"; /** * è·ç®å½çid */ public static String ROOT_DEPT_ID= "rootDeptId"; /** * é夿´¾å·¥å¤©æ°éªè¯é´éå¤©æ° */ public static String TASK_EXPIRE_DAYS = "taskExpireDays"; } blade-service/blade-mdm/src/main/java/org/springblade/mdm/commons/service/ParamService.java
@@ -4,6 +4,8 @@ import lombok.AllArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.springblade.core.tool.api.R; import org.springblade.core.tool.utils.Func; import org.springblade.mdm.commons.contants.ParamConstants; import org.springblade.system.feign.ISysClient; import org.springframework.stereotype.Service; @@ -17,15 +19,9 @@ @AllArgsConstructor public class ParamService{ public static String NETWORK_TYPE= "networkType"; /** * é夿´¾å·¥å¤©æ°éªè¯é´éå¤©æ° */ public static String TASK_DUPLATE_CHECK_DAYS= "taskDuplicateCheckDays"; /** * é夿´¾å·¥å¤©æ°éªè¯é´éå¤©æ° */ public static String TASK_EXPIRE_DAYS= "taskExpireDays"; /** * 审æ¹ç¨æ·è§è²å«ååæ°keyï¼éå·åé @@ -51,14 +47,14 @@ public static String APPROVE_TABLE_TEMPLATE= "approveTableTemplate"; /** * 审æ¹ç¨æ·è§è²å«ååæ°keyï¼éå·åé */ public static String ROOT_DEPT_ID= "rootDeptId"; /** * 车åºçkeyï¼åæ°å¼æåæºåºç±»åä¸çè½¦åº */ public static String MACHINE_SPEC_RURNING = "machineSecTurning"; private final ISysClient sysClient; public String getParamValue(String paramKey,String defaultValue){ @@ -89,9 +85,9 @@ * è·åä»»å¡é夿£æ¥å¤©æ° * @return å¤©æ° */ public String taskDuplicateCheckDays(){ return getParamValue( TASK_DUPLATE_CHECK_DAYS,"30"); public int taskDuplicateCheckDays(){ return Func.toInt(getParamValue( ParamConstants.TASK_DUPLICATE_CHECK_DAYS,"30")); } @@ -100,9 +96,9 @@ CONFIRM_TABLE_TEMPLATE,""); } public String rootDetpId() { public String rootDeptId() { return getParamValue( ROOT_DEPT_ID,"0"); ParamConstants.ROOT_DEPT_ID,"0"); } public String approveTableTemplateOssFileName() { @@ -125,4 +121,12 @@ } /** * å¼å¸¸èåæ ä¿çå¤©æ° * @return */ public int getTaskExpireDays() { String valueStr = getParamValue(ParamConstants.TASK_EXPIRE_DAYS,"30"); return Func.toInt(valueStr); } } blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/constants/FlowVariableContants.java
@@ -23,4 +23,8 @@ * å®é 审æ¹é«å¸id */ public static final String ACT_SENIOR = "actSenior"; /** * è¿ç¨å¡å·åéå */ public static final String PROCESS_CARD = "processCard"; } blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/entity/TaskDispatch.java
@@ -1,6 +1,7 @@ package org.springblade.mdm.flow.entity; import com.baomidou.mybatisplus.annotation.TableName; import io.swagger.v3.oas.annotations.media.Schema; import lombok.Getter; import lombok.Setter; import org.springblade.core.mp.base.BizEntity; @@ -88,4 +89,30 @@ * ç¨åºç¼å· */ private String programNo; /** * mesä»»å¡å¯ä¸æ è¯ */ private String mesTaskId; /** * æ£éªåï¼mesæä¾ï¼ */ private String inspector; /** * æ£éªå馿¶é´ï¼mesæä¾ï¼ */ private Date checkTime; /** * è¿ç¨å¡å· */ private String processCard; /** * æ¯å¦ä¸ºé夿´¾å·¥æ°æ® * @return æ¯å¦ */ public boolean isDuplicateTask(){ return this.getStatus() == STATUS_DUP; } } blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/mapper/TaskDispatchMapper.java
@@ -4,9 +4,16 @@ import org.springblade.mdm.flow.entity.FlowProgramFile; import org.springblade.mdm.flow.entity.TaskDispatch; import java.time.LocalDateTime; import java.util.List; public interface TaskDispatchMapper extends BladeMapper<TaskDispatch> { List<String> distinctAllDrawingNo(); /** * å é¤è¶ è¿è¿æå¤©æ°çå¼å¸¸ä»»å¡ * @param expiredTime è¿æçæ¶é´ç¹ */ void deleteExpiredExceptionTasks(LocalDateTime expiredTime); } blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/mapper/TaskDispatchMapper.xml
@@ -8,9 +8,12 @@ <result column="update_time" property="updateTime"/> <result column="is_deleted" property="isDeleted"/> </resultMap> <select id="distinctAllDrawingNo" resultType="java.lang.String"> select distinct drawing_no from mdm_task_dispatch </select> <delete id="deleteExpiredExceptionTasks"> delete from mdm_task_dispatch where status not in (1,2) and create_time < #{expiredTime} </delete> </mapper> blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/service/TaskDispatchService.java
@@ -3,10 +3,8 @@ import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.extension.conditions.query.LambdaQueryChainWrapper; import lombok.AllArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.springblade.core.mp.base.BizServiceImpl; import org.springblade.core.tool.utils.Func; import org.springblade.mdm.commons.service.ParamService; import org.springblade.mdm.flow.entity.TaskDispatch; import org.springblade.mdm.flow.mapper.TaskDispatchMapper; @@ -20,6 +18,7 @@ import java.time.LocalDateTime; import java.util.List; import java.util.Optional; /** * 任塿´¾å·¥æ°æ® å¤çæå¡ @@ -28,12 +27,13 @@ */ @Slf4j @Service @AllArgsConstructor public class TaskDispatchService extends BizServiceImpl<TaskDispatchMapper, TaskDispatch> { @Autowired private ParamService paramService; @Autowired private DrawingNosMapper drawingNosMapper; @Transactional(rollbackFor = Exception.class) public TaskDispatch saveTask(TaskAssignVO startVO,boolean isDup) { TaskDispatch taskDispatch = new TaskDispatch(); @@ -51,7 +51,7 @@ * å uäººä¸ææ°æ® * @param drawingNo */ void addDrawingNos(String drawingNo){ public void addDrawingNos(String drawingNo){ DrawingNos data = drawingNosMapper.selectById(drawingNo); if(data == null){ data = new DrawingNos(); @@ -85,7 +85,7 @@ return false; } int taskDupDays = Func.toInt(paramService.taskDuplicateCheckDays()); int taskDupDays = paramService.taskDuplicateCheckDays(); LocalDateTime checkStartDate = LocalDateTime.now().minusDays(taskDupDays); LambdaQueryChainWrapper<TaskDispatch> q = lambdaQuery().eq(TaskDispatch::getDrawingNo,startVO.getDrawingNo()) .eq(TaskDispatch::getProcessNo,startVO.getProcessNo()) @@ -113,4 +113,24 @@ } } /** * æ¸ çè¿æçå¼å¸¸ä»»å¡è®¡å */ @Transactional public void cleanExpiredExceptionTask() { int expireDays = paramService.getTaskExpireDays(); LocalDateTime expiredTime = LocalDateTime.now().minusDays(expireDays); baseMapper.deleteExpiredExceptionTasks(expiredTime); } /** * æ ¹æ®meså¯ä¸æ è¯è·åæ´¾å·¥æ°æ® * @param mesTaskId * @return */ public TaskDispatch getByMesTaskId(String mesTaskId) { Optional<TaskDispatch> opt = lambdaQuery().eq(TaskDispatch::getMesTaskId, mesTaskId).oneOpt(); return opt.orElse(null); } } blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/service/execute/TryFlowCompleteService.java
@@ -68,9 +68,9 @@ runtimeService.setVariable(task.getExecutionId(),FlowContants.PROGRAMMER_NAME,userCommonService.getUserNameById(Func.toLong(variables.get("assignee")))); } }else if(task.getTaskDefinitionKey().equals("check")){ runtimeService.setVariable(task.getExecutionId(),FlowVariableContants.ACT_CHECKER,Func.toLong(variables.get("assignee"))); variables.put(FlowVariableContants.ACT_CHECKER,Func.toStr(AuthUtil.getUserId())); }else if(task.getTaskDefinitionKey().equals("approveTask")){ runtimeService.setVariable(task.getExecutionId(),FlowVariableContants.ACT_SENIOR,Func.toLong(variables.get("assignee"))); variables.put(FlowVariableContants.ACT_SENIOR,Func.toStr(AuthUtil.getUserId())); } variables.remove("programOnMachine");//å ¶ä»èç¹ï¼å¿½ç¥ç°åºç¼ç¨æ è®° if (StringUtil.isNoneBlank(processInstanceId, comment)) { blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/vo/TaskAssignVO.java
@@ -51,6 +51,8 @@ @Schema(description = "人åè责表idï¼çé¢ä¸é¶ä»¶å·å¹é ä¸ä¸ç¨æ·æå®ç") private Long producePlanId; @Schema(description = "MESä»»å¡å¯ä¸æ è¯") private String mesTaskId; /** * æ¯å¦ æª ç¨åºè¡¥å æµç¨ï¼ä¸´æ¶æµç¨ï¼ * @return æ¯å¦ blade-service/blade-mdm/src/main/java/org/springblade/mdm/gkw/programnode/service/ProgramNodeService.java
@@ -54,7 +54,7 @@ public List<ProgramNodeVO> loadTree(String includeSend) { Integer workshopDictVal = Func.toInt(paramService.getParamValue(ParamConstants.WORKSHOP_DICT_KEY,DEFAULT_WORKSHOP_VALUE)); Long rootDeptId = Func.toLong(paramService.rootDetpId()); Long rootDeptId = Func.toLong(paramService.rootDeptId()); TreeDept root = treeDeptService.getById(rootDeptId); List<ProgramNodeVO> roots = new ArrayList<>(); ProgramNodeVO rootVO = new ProgramNodeVO(); blade-service/blade-mdm/src/main/java/org/springblade/mdm/statreport/service/NewProgrammingStatService.java
@@ -129,7 +129,7 @@ }else{ vo.setActCheckerName(this.userCommonService.getUserNameById(props.getActCheckerId()) ); } if(props.getActCheckerId() == 0) { if(props.getActSeniorId() == 0) { vo.setActSeniorName(this.userCommonService.getUserNameById(props.getSeniorId())); }else{ vo.setActSeniorName(this.userCommonService.getUserNameById(props.getActSeniorId())); blade-service/blade-mdm/src/main/java/org/springblade/mdm/task/ExceptionDispathCleanTask.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,43 @@ package org.springblade.mdm.task; import lombok.extern.slf4j.Slf4j; import org.springblade.mdm.basesetting.machine.service.MachineService; import org.springblade.mdm.commons.service.ParamService; import org.springblade.mdm.flow.service.TaskDispatchService; import org.springblade.mdm.machinefile.service.MachineFileScanService; import org.springblade.mdm.machinefile.service.MachineFileService; import org.springblade.mdm.program.service.ProgramAnnotationService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.scheduling.annotation.EnableScheduling; import org.springframework.scheduling.annotation.Scheduled; import org.springframework.stereotype.Component; /** * å¼å¸¸ä»»å¡è®¡åæ¸ é¤å®æ¶ä»»å¡ */ @Slf4j @Component @EnableScheduling public class ExceptionDispathCleanTask { @Autowired private TaskDispatchService taskDispatchService; @Autowired private ParamService paramService; // æ¯5ç§æ§è¡ä¸æ¬¡ //@Scheduled(fixedRate = 1000000) //@Scheduled(cron = "0 1 0 * * ?") // æ¯å¤©ä¸å0ç¹1åæ§è¡ //@Scheduled(cron = "0 */5 * * * ?") //@Scheduled(cron = "0 15 19 * * ?") //test @Scheduled(cron = "${task.cron.exception_dispatch_clean:0 1 * * * ?}") public void execute() { String networkType = paramService.getParamValue(ParamService.NETWORK_TYPE,ParamService.NETWORK_TYPE_SHEMI); if(ParamService.NETWORK_TYPE_SHEMI.equals(networkType)){ //æ¶å¯ç½ï¼æ§è¡å¼å¸¸ä»»å¡æ¸ ç taskDispatchService.cleanExpiredExceptionTask(); } } } blade-service/blade-mdm/src/main/java/org/springblade/mdm/thirdpart/controller/MesController.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,169 @@ package org.springblade.mdm.thirdpart.controller; import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.tags.Tag; import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.StringUtils; import org.springblade.core.tool.api.R; import org.springblade.mdm.flow.constants.FlowContants; import org.springblade.mdm.flow.entity.TaskDispatch; import org.springblade.mdm.flow.excution.StartDispatcher; import org.springblade.mdm.flow.service.TaskDispatchService; import org.springblade.mdm.flow.vo.FlowStartResult; import org.springblade.mdm.flow.vo.TaskAssignVO; import org.springblade.mdm.thirdpart.service.MesTaskService; import org.springblade.mdm.thirdpart.vo.MesTaskFinishVO; import org.springblade.mdm.thirdpart.vo.MesTaskVO; import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; import java.util.ArrayList; import java.util.List; @Slf4j @RestController @RequestMapping("/thirdparty/") @Tag(name = "MESæ¥å£", description = "MESæ¥å£") public class MesController { @Autowired private MesTaskService mesTaskService; @Autowired private StartDispatcher dispatcher; @Autowired private TaskDispatchService taskDispatchService; /** * æ°å¢ */ @PostMapping("/new-mes-task") @Operation(summary = "æ¥æ¶MESä»»å¡", description = "æ¥æ¶MESä»»å¡") public R<Void> newTask(@RequestBody MesTaskVO mesTaskVO) { try { TaskAssignVO startVO = this.toTaskAssignVO(mesTaskVO); List<String> errors = checkTaskData(startVO); if (!errors.isEmpty()) { String msg = formatError(errors); log.error("æ¥æ¶MESä»»å¡{}ï¼éªè¯å¤±è´¥ï¼{}",mesTaskVO,msg); return R.fail(msg); } TaskDispatch dispatch = mesTaskService.saveTask(startVO); log.error("MESä»»å¡ä¿åæå"); if(!dispatch.isDuplicateTask()){ try { FlowStartResult result = dispatcher.start(startVO); dispatch.setStatus(TaskDispatch.STATUS_STARTED); dispatch.setProcessInstanceId(result.getProcessInstanceId()); dispatch.setProgramNo(result.getProgramNo()); taskDispatchService.updateById(dispatch); }catch (Exception e){ dispatch.setStatus(TaskDispatch.STATUS_EXCEPTION); dispatch.setErrMsg(e.getMessage()); taskDispatchService.updateById(dispatch); log.error("MESä»»å¡å¯å¨å¤±è´¥", e); } } return R.success(); }catch (Exception e) { log.error("æ¥æ¶mesä»»å¡å¤±è´¥", e);; return R.fail(e.getMessage()); } } //private IResultCode formatError(List<String> errors) { private String formatError(List<String> errors) { return StringUtils.join(errors,","); } /** * éªè¯æ°æ® * @param startVO * @return */ private List<String> checkTaskData(TaskAssignVO startVO) { List<String> errorList = new ArrayList<>(); if(StringUtils.isBlank(startVO.getDrawingNo())){ errorList.add("å¾å·ä¸è½ä¸ºç©º"); } if(StringUtils.isBlank(startVO.getProcessNo())){ errorList.add("å·¥åºå·ä¸è½ä¸ºç©º"); } if(StringUtils.isBlank(startVO.getProcessEdition())){ errorList.add("å·¥åºç次ä¸è½ä¸ºç©º"); } if(StringUtils.isBlank(startVO.getMachineCode())){ errorList.add("设å¤ç¼ç ä¸è½ä¸ºç©º"); } //TODO å·¥åºåç§° æä»¬æ¯å¿ å¡«ï¼ return errorList; } /** * ä»mesvo转æ¢ä¸ºå é¨ä»»å¡åæ´¾vo * @param mesTaskVO * @return */ TaskAssignVO toTaskAssignVO(MesTaskVO mesTaskVO) { TaskAssignVO taskAssignVO = new TaskAssignVO(); BeanUtils.copyProperties(mesTaskVO, taskAssignVO); taskAssignVO.setTitle(taskAssignVO.getDrawingNo()+"-"+taskAssignVO.getProcessNo()+"-"+taskAssignVO.getProcessEdition()+"计åä»»å¡"); taskAssignVO.setIsTempFlow(FlowContants.N); return taskAssignVO; } @PostMapping("/finish-task") @Operation(summary = "MESä»»å¡å®ææ¨é", description = "MESä»»å¡å®ææ¨é") public R<Void> finishTask(@RequestBody MesTaskFinishVO finishTaskVO) { log.info("æ¶å°mesä»»å¡å®ææ¨é:{}",finishTaskVO); List<String> errors = checkFinishTaskData(finishTaskVO); if (!errors.isEmpty()) { String msg = formatError(errors); log.error("æ¥æ¶MES宿æ¨é{}ï¼éªè¯å¤±è´¥ï¼{}",finishTaskVO,msg); return R.fail(msg); } try { mesTaskService.finishTask(finishTaskVO); return R.success(); }catch(Exception e){ log.error("æ¥æ¶MESå·¥åºå®æä¿¡æ¯å¤±è´¥", e);; return R.fail("å é¨é误"); } } private List<String> checkFinishTaskData(MesTaskFinishVO finishTaskVO) { List<String> errorList = new ArrayList<>(); if(StringUtils.isBlank(finishTaskVO.getMesTaskId())){ errorList.add("å¯ä¸æ è¯ä¸è½ä¸ºç©º"); } if(StringUtils.isBlank(finishTaskVO.getInspector())){ errorList.add("æ£éªåä¸è½ä¸ºç©º"); } if(finishTaskVO.getCheckTime() == null){ errorList.add("æ£éªå馿¶é´ä¸è½ä¸ºç©º"); } return errorList; } @GetMapping("/ping") @Operation(summary = "MES ping", description = "æµè¯æ¥å£éç ") public R<String> ping() { try { return R.data("pong"); }catch (Exception e) { return R.fail(e.getMessage()); } } } blade-service/blade-mdm/src/main/java/org/springblade/mdm/thirdpart/service/MesTaskService.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,63 @@ package org.springblade.mdm.thirdpart.service; import lombok.extern.slf4j.Slf4j; import org.flowable.engine.RuntimeService; import org.springblade.mdm.flow.constants.FlowVariableContants; import org.springblade.mdm.flow.entity.TaskDispatch; import org.springblade.mdm.flow.service.TaskDispatchService; import org.springblade.mdm.flow.vo.TaskAssignVO; import org.springblade.mdm.thirdpart.vo.MesTaskFinishVO; import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; /** * 任塿´¾å·¥æ°æ® å¤çæå¡ * * @author yangys */ @Slf4j @Service public class MesTaskService { @Autowired private TaskDispatchService taskDispatchService; @Autowired private RuntimeService runtimeService; /** * ä¿åmesä»»å¡ * @param startVO * @return */ @Transactional(rollbackFor = Exception.class) public TaskDispatch saveTask(TaskAssignVO startVO) { TaskDispatch taskDispatch = new TaskDispatch(); BeanUtils.copyProperties(startVO, taskDispatch); boolean isDuplicate = taskDispatchService.checkIsDuplicate(startVO); if(isDuplicate){ taskDispatch.setStatus(TaskDispatch.STATUS_DUP); } taskDispatchService.save(taskDispatch); taskDispatchService.addDrawingNos(taskDispatch.getDrawingNo()); return taskDispatch; } /** * mes 宿æ¨é * @param finishTaskVO */ public void finishTask(MesTaskFinishVO finishTaskVO) { TaskDispatch taskDispatch = taskDispatchService.getByMesTaskId(finishTaskVO.getMesTaskId()); if(taskDispatch != null && taskDispatch.getProcessInstanceId() != null){ taskDispatch.setProcessCard(finishTaskVO.getProcessCard()); taskDispatch.setInspector(finishTaskVO.getInspector()); taskDispatch.setCheckTime(finishTaskVO.getCheckTime()); taskDispatchService.updateById(taskDispatch); runtimeService.setVariable(taskDispatch.getProcessInstanceId(), FlowVariableContants.PROCESS_CARD,finishTaskVO.getProcessCard()); } } } blade-service/blade-mdm/src/main/java/org/springblade/mdm/thirdpart/vo/MesTaskFinishVO.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,23 @@ package org.springblade.mdm.thirdpart.vo; import io.swagger.v3.oas.annotations.media.Schema; import lombok.Data; import java.time.LocalDate; import java.util.Date; @Data @Schema(description = "MESä»»å¡å®ææ°æ®") public class MesTaskFinishVO { @Schema(description = "æ£éªå馿¶é´") private Date checkTime; @Schema(description = "è¿ç¨å¡å·") private String processCard; @Schema(description = "æ¹æ¬¡å·") private Long batchId; @Schema(description = "æ£éªå") private String inspector; @Schema(description = "MESä»»å¡å¯ä¸æ è¯") private String mesTaskId; } blade-service/blade-mdm/src/main/java/org/springblade/mdm/thirdpart/vo/MesTaskVO.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,71 @@ package org.springblade.mdm.thirdpart.vo; import io.swagger.v3.oas.annotations.media.Schema; import lombok.Data; import org.apache.commons.lang3.StringUtils; import org.springblade.mdm.flow.constants.FlowContants; import java.time.LocalDate; @Data @Schema(description = "MESä»»å¡è®¡å") public class MesTaskVO { @Schema(description = "æµç¨æ é¢") private String title; @Schema(description = "é¶ç»ä»¶/å¾å·") private String drawingNo; @Schema(description = "å¾å·ç次/è®¾è®¡çæ¬¡") private String drawingNoEdition; @Schema(description = "å·¥åºå·") private String processNo; @Schema(description = "å·¥åºåç§°") private String processName; @Schema(description = "产ååå·") private String productModel; @Schema(description = "å·¥åºç次") private String processEdition; @Schema(description = "å·¥èºç次") private String craftEdition; @Schema(description = "设å¤ç¼å·") private String machineCode; @Schema(description = "设å¤åå·") private String machineMode; @Schema(description = "计åé宿¶é´(天)") private Integer planLockDays; @Schema(description = "计åå¼å·¥æ¶é´") private LocalDate planStartTime; @Schema(description = "å离åå·") private String deviation; @Schema(description = "æ¯å¦ä¸´æ¶æµç¨ï¼å¼:Y/N") private String isTempFlow; @Schema(description = "任塿´¾å·¥è®°å½è¡¨id") private Long taskDispatchId; @Schema(description = "人åè责表idï¼çé¢ä¸é¶ä»¶å·å¹é ä¸ä¸ç¨æ·æå®ç") private Long producePlanId; @Schema(description = "MESä»»å¡å¯ä¸æ è¯") private String mesTaskId; /** * æ¯å¦ æª ç¨åºè¡¥å æµç¨ï¼ä¸´æ¶æµç¨ï¼ * @return æ¯å¦ */ public boolean isTemporaryFlow(){ return FlowContants.Y.equals(isTempFlow); } /** * æ¯å¦å离å * @return æ¯å¦ */ public boolean isDeviationFlow(){ return StringUtils.isNotBlank(deviation); } }