diff --git a/src/main/java/neatlogic/module/process/dao/mapper/processtask/ProcessTaskMapper.java b/src/main/java/neatlogic/module/process/dao/mapper/processtask/ProcessTaskMapper.java index d593dcbee714ca16736a285ff8b7b1c7fd804ae5..bc4384504d19f23c4258c33996a13dbb8098690e 100644 --- a/src/main/java/neatlogic/module/process/dao/mapper/processtask/ProcessTaskMapper.java +++ b/src/main/java/neatlogic/module/process/dao/mapper/processtask/ProcessTaskMapper.java @@ -581,6 +581,12 @@ public interface ProcessTaskMapper extends IProcessTaskCrossoverMapper { int deleteProcessTaskStepInOperationByProcessTaskId(Long processTaskId); + int deleteProcessTaskStepInOperationByProcessTaskIdAndProcessTaskStepIdAndOperationType( + @Param("processTaskId") Long processTaskId, + @Param("processTaskStepId") Long processTaskStepId, + @Param("operationType") String operationType + ); + int deleteProcessTaskStepInOperationByServerId(Long serverId); int deleteProcessTaskStepWorkerMinorByProcessTaskStepId(Long processTaskStepId); diff --git a/src/main/java/neatlogic/module/process/dao/mapper/processtask/ProcessTaskMapper.xml b/src/main/java/neatlogic/module/process/dao/mapper/processtask/ProcessTaskMapper.xml index 66652017ce68860c75f20d2486b8c69858533fd1..e30665f5e5bef58079a24594cc12b241f6d4c7e1 100644 --- a/src/main/java/neatlogic/module/process/dao/mapper/processtask/ProcessTaskMapper.xml +++ b/src/main/java/neatlogic/module/process/dao/mapper/processtask/ProcessTaskMapper.xml @@ -4118,6 +4118,14 @@ WHERE `processtask_id` = #{value} + + DELETE + FROM `processtask_step_in_operation` + WHERE `processtask_id` = #{processTaskId} + AND `processtask_step_id` = #{processTaskStepId} + AND `operation_type` = #{operationType} + + DELETE FROM `processtask_step_in_operation` diff --git a/src/main/java/neatlogic/module/process/service/IProcessStepHandlerUtil.java b/src/main/java/neatlogic/module/process/service/IProcessStepHandlerUtil.java index a637125632f74af475b999b3ab33abc19658e1ae..a5df05361c30f17fcc32e6bb813389fdb0ba725a 100644 --- a/src/main/java/neatlogic/module/process/service/IProcessStepHandlerUtil.java +++ b/src/main/java/neatlogic/module/process/service/IProcessStepHandlerUtil.java @@ -163,7 +163,7 @@ public interface IProcessStepHandlerUtil { * 流转操作时检查回复信息是否必填 * @param currentProcessTaskStepVo */ - void checkContentIsRequired(ProcessTaskStepVo currentProcessTaskStepVo); + void checkContentIsRequired(ProcessTaskStepVo currentProcessTaskStepVo, IOperationType operationType); /** * @Description: 保存标签列表 diff --git a/src/main/java/neatlogic/module/process/service/ProcessStepHandlerUtil.java b/src/main/java/neatlogic/module/process/service/ProcessStepHandlerUtil.java index cdfc819fe642755225e535e83f8524ce30222574..90767e9b355825de5682ab47ec0c45b58ec0c3c0 100644 --- a/src/main/java/neatlogic/module/process/service/ProcessStepHandlerUtil.java +++ b/src/main/java/neatlogic/module/process/service/ProcessStepHandlerUtil.java @@ -656,29 +656,37 @@ public class ProcessStepHandlerUtil implements IProcessStepHandlerUtil, IProcess } @Override - public void checkContentIsRequired(ProcessTaskStepVo currentProcessTaskStepVo) { + public void checkContentIsRequired(ProcessTaskStepVo currentProcessTaskStepVo, IOperationType operationType) { if (Objects.equals(currentProcessTaskStepVo.getIsNeedContent(), 0)) { return; } - if (Objects.equals(currentProcessTaskStepVo.getIsRequired(), 1)) { - JSONObject paramObj = currentProcessTaskStepVo.getParamObj(); - String content = paramObj.getString("content"); - if (StringUtils.isBlank(content)) { - List contentList = processTaskMapper.getProcessTaskStepContentByProcessTaskStepId(currentProcessTaskStepVo.getId()); - if (CollectionUtils.isEmpty(contentList)) { - throw new ProcessTaskStepContentIsEmptyException(); - } - Date startTime = currentProcessTaskStepVo.getStartTime(); - if (startTime != null) { - for (ProcessTaskStepContentVo contentVo : contentList) { - if (startTime.before(contentVo.getLcd())) { - return; - } - } - throw new ProcessTaskStepContentIsEmptyException(); - } + JSONObject paramObj = currentProcessTaskStepVo.getParamObj(); + String content = paramObj.getString("content"); + if (StringUtils.isBlank(content)) { + if (operationType == ProcessTaskStepOperationType.STEP_BACK || Objects.equals(currentProcessTaskStepVo.getIsRequired(), 1)) { + throw new ProcessTaskStepContentIsEmptyException(); } } + +// if (Objects.equals(currentProcessTaskStepVo.getIsRequired(), 1)) { +// JSONObject paramObj = currentProcessTaskStepVo.getParamObj(); +// String content = paramObj.getString("content"); +// if (StringUtils.isBlank(content)) { +// List contentList = processTaskMapper.getProcessTaskStepContentByProcessTaskStepId(currentProcessTaskStepVo.getId()); +// if (CollectionUtils.isEmpty(contentList)) { +// throw new ProcessTaskStepContentIsEmptyException(); +// } +// Date startTime = currentProcessTaskStepVo.getStartTime(); +// if (startTime != null) { +// for (ProcessTaskStepContentVo contentVo : contentList) { +// if (startTime.before(contentVo.getLcd())) { +// return; +// } +// } +// throw new ProcessTaskStepContentIsEmptyException(); +// } +// } +// } } /** diff --git a/src/main/java/neatlogic/module/process/thread/ProcessTaskAutomaticThread.java b/src/main/java/neatlogic/module/process/thread/ProcessTaskAutomaticThread.java index 7c1a1bc814e8be37fd9c02b05ec41f28b0390792..c7b80e036af89b91d89efb554caebd6ded7530fc 100644 --- a/src/main/java/neatlogic/module/process/thread/ProcessTaskAutomaticThread.java +++ b/src/main/java/neatlogic/module/process/thread/ProcessTaskAutomaticThread.java @@ -16,9 +16,11 @@ along with this program. If not, see .*/ package neatlogic.module.process.thread; import neatlogic.framework.asynchronization.thread.NeatLogicThread; -import neatlogic.module.process.dao.mapper.processtask.ProcessTaskMapper; import neatlogic.framework.process.dto.ProcessTaskStepVo; +import neatlogic.module.process.dao.mapper.processtask.ProcessTaskMapper; import neatlogic.module.process.service.ProcessTaskAutomaticService; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; import org.springframework.stereotype.Component; import javax.annotation.Resource; @@ -30,6 +32,8 @@ import javax.annotation.Resource; @Component public class ProcessTaskAutomaticThread extends NeatLogicThread { + private final static Logger logger = LoggerFactory.getLogger(ProcessTaskAutomaticThread.class); + private static ProcessTaskAutomaticService processTaskAutomaticService; private static ProcessTaskMapper processTaskMapper; private Long processTaskStepInOperationId; @@ -57,7 +61,10 @@ public class ProcessTaskAutomaticThread extends NeatLogicThread { protected void execute() { try { processTaskAutomaticService.firstRequest(currentProcessTaskStepVo); + } catch (Exception e) { + logger.error(e.getMessage(), e); } finally { + processTaskMapper.deleteProcessTaskStepInOperationByProcessTaskIdAndProcessTaskStepIdAndOperationType(currentProcessTaskStepVo.getProcessTaskId(), currentProcessTaskStepVo.getId(), "request"); processTaskMapper.deleteProcessTaskStepInOperationById(processTaskStepInOperationId); } }