diff --git a/src/main/java/neatlogic/framework/process/crossover/IProcessTaskCrossoverMapper.java b/src/main/java/neatlogic/framework/process/crossover/IProcessTaskCrossoverMapper.java index f9410b92318de0ba2454c404d07fecf32911411e..719d010af34122a3c6aa7c5611c3766fb90c6f16 100644 --- a/src/main/java/neatlogic/framework/process/crossover/IProcessTaskCrossoverMapper.java +++ b/src/main/java/neatlogic/framework/process/crossover/IProcessTaskCrossoverMapper.java @@ -258,6 +258,8 @@ public interface IProcessTaskCrossoverMapper extends ICrossoverService { @Param("operationType") String operationType ); + int deleteProcessTaskStepInOperationByProcessTaskId(Long processTaskId); + int deleteProcessTaskStepReapprovalRestoreBackupByBackupStepId(Long processTaskStepId); int deleteProcessTaskTimeCostByProcessTaskId(Long processTaskId); diff --git a/src/main/java/neatlogic/framework/process/dto/ProcessTaskStepInOperationVo.java b/src/main/java/neatlogic/framework/process/dto/ProcessTaskStepInOperationVo.java index 2c7e80e3a7d93ade1bfbd861483cdb0b89bd4344..df27f7b28e73a11a62444d7ddea0e446640fddbb 100644 --- a/src/main/java/neatlogic/framework/process/dto/ProcessTaskStepInOperationVo.java +++ b/src/main/java/neatlogic/framework/process/dto/ProcessTaskStepInOperationVo.java @@ -1,5 +1,8 @@ package neatlogic.framework.process.dto; +import neatlogic.framework.common.config.Config; +import neatlogic.framework.util.SnowflakeUtil; + import java.util.Date; public class ProcessTaskStepInOperationVo { @@ -9,21 +12,26 @@ public class ProcessTaskStepInOperationVo { private Long processTaskStepId; private String operationType; private Date expireTime; + private Integer serverId; public ProcessTaskStepInOperationVo() { } public ProcessTaskStepInOperationVo(Long processTaskId, Long processTaskStepId, String operationType) { + this.id = SnowflakeUtil.uniqueLong(); this.processTaskId = processTaskId; this.processTaskStepId = processTaskStepId; this.operationType = operationType; //设置数据默认有效时间为6秒 this.expireTime = new Date(System.currentTimeMillis() + 6000); + this.serverId = Config.SCHEDULE_SERVER_ID; } public ProcessTaskStepInOperationVo(Long processTaskId, Long processTaskStepId, String operationType, Date expireTime) { + this.id = SnowflakeUtil.uniqueLong(); this.processTaskId = processTaskId; this.processTaskStepId = processTaskStepId; this.operationType = operationType; this.expireTime = expireTime; + this.serverId = Config.SCHEDULE_SERVER_ID; } public Long getId() { @@ -60,4 +68,12 @@ public class ProcessTaskStepInOperationVo { public void setExpireTime(Date expireTime) { this.expireTime = expireTime; } + + public Integer getServerId() { + return serverId; + } + + public void setServerId(Integer serverId) { + this.serverId = serverId; + } } diff --git a/src/main/java/neatlogic/framework/process/stephandler/core/ProcessStepHandlerBase.java b/src/main/java/neatlogic/framework/process/stephandler/core/ProcessStepHandlerBase.java index 34c3cf3c1d2add23e59858c13ca001fc6f818dab..326af417e1741af081a5afce7a2628fb88176f22 100644 --- a/src/main/java/neatlogic/framework/process/stephandler/core/ProcessStepHandlerBase.java +++ b/src/main/java/neatlogic/framework/process/stephandler/core/ProcessStepHandlerBase.java @@ -167,6 +167,9 @@ public abstract class ProcessStepHandlerBase implements IProcessStepHandler { return 1; } processTaskCrossoverMapper.updateProcessTaskStatus(processTaskVo); + if (Objects.equals(processTaskVo.getStatus(), ProcessTaskStatus.SUCCEED.getValue())) { + processTaskCrossoverMapper.deleteProcessTaskStepInOperationByProcessTaskId(processTaskVo.getId()); + } //如果工单状态为“已完成”、“已取消”、“异常”时,计算工单耗时 if (needCalculateTimeCost) { ProcessTaskVo processTask = processTaskCrossoverMapper.getProcessTaskById(processTaskId); @@ -897,6 +900,9 @@ public abstract class ProcessStepHandlerBase implements IProcessStepHandler { // } IProcessTaskCrossoverMapper processTaskCrossoverMapper = CrossoverServiceFactory.getApi(IProcessTaskCrossoverMapper.class); processTaskCrossoverMapper.updateProcessTaskStepStatus(currentProcessTaskStepVo); + if (Objects.equals(currentProcessTaskStepVo.getStatus(), ProcessTaskStepStatus.SUCCEED.getValue())) { + processTaskCrossoverMapper.deleteProcessTaskStepInOperationByProcessTaskIdAndProcessTaskStepIdAndOperationType(currentProcessTaskStepVo.getProcessTaskId(), currentProcessTaskStepVo.getId(), null); + } updateProcessTaskStatus(currentProcessTaskStepVo.getProcessTaskId()); return 1; }