diff --git a/src/main/java/neatlogic/module/process/api/processtask/ProcessTaskNextStepListApi.java b/src/main/java/neatlogic/module/process/api/processtask/ProcessTaskNextStepListApi.java index bda8fe048df2991db699967c65027570a1a966f7..50e57ee9eda08905aa8445d5cc533c32dee611b8 100644 --- a/src/main/java/neatlogic/module/process/api/processtask/ProcessTaskNextStepListApi.java +++ b/src/main/java/neatlogic/module/process/api/processtask/ProcessTaskNextStepListApi.java @@ -71,9 +71,9 @@ public class ProcessTaskNextStepListApi extends PrivateApiComponentBase { Map> assignableWorkerStepMap = processTaskService.getAssignableWorkerStepMap(processTaskVo.getCurrentProcessTaskStep()); List nextStepList = null; if (operationType == ProcessTaskOperationType.STEP_COMPLETE) { - nextStepList = processTaskService.getForwardNextStepListByProcessTaskStepId(processTaskStepId); + nextStepList = processTaskService.getForwardNextStepListByProcessTaskStepId(processTaskVo.getCurrentProcessTaskStep()); } else { - nextStepList = processTaskService.getBackwardNextStepListByProcessTaskStepId(processTaskStepId); + nextStepList = processTaskService.getBackwardNextStepListByProcessTaskStepId(processTaskVo.getCurrentProcessTaskStep()); } if (CollectionUtils.isEmpty(nextStepList)) { return nextStepList; diff --git a/src/main/java/neatlogic/module/process/api/processtask/ProcessTaskStepGetApi.java b/src/main/java/neatlogic/module/process/api/processtask/ProcessTaskStepGetApi.java index 9dc3c7d9c535a676ec4ce58901021a02e833a544..e0060321b732683c63b7dcbf52954108df1cd7af 100644 --- a/src/main/java/neatlogic/module/process/api/processtask/ProcessTaskStepGetApi.java +++ b/src/main/java/neatlogic/module/process/api/processtask/ProcessTaskStepGetApi.java @@ -162,7 +162,7 @@ public class ProcessTaskStepGetApi extends PrivateApiComponentBase { if (processTaskScoreTemplateVo != null) { processTaskVo.setScoreTemplateVo(scoreTemplateMapper.getScoreTemplateById(processTaskScoreTemplateVo.getScoreTemplateId())); ProcessTaskStepVo endProcessTaskStepVo = processTaskMapper.getEndProcessTaskStepByProcessTaskId(processTaskId); - List processTaskStepVoList = processTaskService.getBackwardNextStepListByProcessTaskStepId(endProcessTaskStepVo.getId()); + List processTaskStepVoList = processTaskService.getBackwardNextStepListByProcessTaskStepId(endProcessTaskStepVo); processTaskVo.setRedoStepList(processTaskStepVoList); } } diff --git a/src/main/java/neatlogic/module/process/api/processtask/ProcessTaskStepGetBackupApi.java b/src/main/java/neatlogic/module/process/api/processtask/ProcessTaskStepGetBackupApi.java index ba32c1f42a5528178e342eaae22de76528b97d98..cbdce2afa59724a57404ae4dd07ea215ac6d9374 100644 --- a/src/main/java/neatlogic/module/process/api/processtask/ProcessTaskStepGetBackupApi.java +++ b/src/main/java/neatlogic/module/process/api/processtask/ProcessTaskStepGetBackupApi.java @@ -116,7 +116,7 @@ public class ProcessTaskStepGetBackupApi extends PrivateApiComponentBase { if (processTaskScoreTemplateVo != null) { processTaskVo.setScoreTemplateVo(scoreTemplateMapper.getScoreTemplateById(processTaskScoreTemplateVo.getScoreTemplateId())); ProcessTaskStepVo endProcessTaskStepVo = processTaskMapper.getEndProcessTaskStepByProcessTaskId(processTaskId); - List processTaskStepVoList = processTaskService.getBackwardNextStepListByProcessTaskStepId(endProcessTaskStepVo.getId()); + List processTaskStepVoList = processTaskService.getBackwardNextStepListByProcessTaskStepId(endProcessTaskStepVo); processTaskVo.setRedoStepList(processTaskStepVoList); } } diff --git a/src/main/java/neatlogic/module/process/service/ProcessTaskAutomaticServiceImpl.java b/src/main/java/neatlogic/module/process/service/ProcessTaskAutomaticServiceImpl.java index ab2e2fcda75e5ce17e9f32cf996c671038d4ebc9..117266533b9b03d549581ab1be21e17312741d0f 100644 --- a/src/main/java/neatlogic/module/process/service/ProcessTaskAutomaticServiceImpl.java +++ b/src/main/java/neatlogic/module/process/service/ProcessTaskAutomaticServiceImpl.java @@ -16,7 +16,9 @@ limitations under the License. package neatlogic.module.process.service; -import com.alibaba.fastjson.serializer.SerializerFeature; +import com.alibaba.fastjson.JSONArray; +import com.alibaba.fastjson.JSONObject; +import com.alibaba.fastjson.JSONPath; import neatlogic.framework.asynchronization.threadlocal.TenantContext; import neatlogic.framework.common.constvalue.SystemUser; import neatlogic.framework.exception.integration.IntegrationHandlerNotFoundException; @@ -49,10 +51,6 @@ import neatlogic.framework.scheduler.exception.ScheduleHandlerNotFoundException; import neatlogic.framework.util.ConditionUtil; import neatlogic.framework.util.FreemarkerUtil; import neatlogic.module.process.schedule.plugin.ProcessTaskAutomaticJob; -import com.alibaba.fastjson.JSON; -import com.alibaba.fastjson.JSONArray; -import com.alibaba.fastjson.JSONObject; -import com.alibaba.fastjson.JSONPath; import org.apache.commons.collections4.CollectionUtils; import org.apache.commons.collections4.MapUtils; import org.apache.commons.lang3.StringUtils; @@ -745,7 +743,7 @@ public class ProcessTaskAutomaticServiceImpl implements ProcessTaskAutomaticServ IProcessStepHandler processHandler = ProcessStepHandlerFactory.getHandler(currentProcessTaskStepVo.getHandler()); if (FailPolicy.BACK.getValue().equals(automaticConfigVo.getBaseFailPolicy())) { List backStepList = - processTaskService.getBackwardNextStepListByProcessTaskStepId(currentProcessTaskStepVo.getId()); + processTaskService.getBackwardNextStepListByProcessTaskStepId(currentProcessTaskStepVo); if (backStepList.size() == 1) { ProcessTaskStepVo nextProcessTaskStepVo = backStepList.get(0); if (processHandler != null) { diff --git a/src/main/java/neatlogic/module/process/service/ProcessTaskService.java b/src/main/java/neatlogic/module/process/service/ProcessTaskService.java index 1329641f92a5e486ad53cdc5dd9a31152c2e214a..ba31667308ea186d6da532c58a16788a1a04cd7c 100644 --- a/src/main/java/neatlogic/module/process/service/ProcessTaskService.java +++ b/src/main/java/neatlogic/module/process/service/ProcessTaskService.java @@ -123,22 +123,22 @@ public interface ProcessTaskService { void setNextStepList(ProcessTaskStepVo processTaskStepVo); /** - * @param processTaskStepId 步骤id + * @param processTaskStepVo 步骤id * @return List * @Author: linbq * @Time:2020年9月23日 * @Description: 获取前进步骤列表 */ - public List getForwardNextStepListByProcessTaskStepId(Long processTaskStepId); + public List getForwardNextStepListByProcessTaskStepId(ProcessTaskStepVo processTaskStepVo); /** - * @param processTaskStepId 步骤id + * @param processTaskStepVo 步骤id * @return List * @Author: linbq * @Time:2020年9月23日 * @Description: 获取回退步骤列表 */ - public List getBackwardNextStepListByProcessTaskStepId(Long processTaskStepId); + public List getBackwardNextStepListByProcessTaskStepId(ProcessTaskStepVo processTaskStepVo); /** * @param processTaskStepVo diff --git a/src/main/java/neatlogic/module/process/service/ProcessTaskServiceImpl.java b/src/main/java/neatlogic/module/process/service/ProcessTaskServiceImpl.java index 52a709c773d2edddf5b915350782e03a4cd18c67..685a5f23bc4f09f4868e9e26be4a645bcdd4cf52 100644 --- a/src/main/java/neatlogic/module/process/service/ProcessTaskServiceImpl.java +++ b/src/main/java/neatlogic/module/process/service/ProcessTaskServiceImpl.java @@ -746,7 +746,11 @@ public class ProcessTaskServiceImpl implements ProcessTaskService, IProcessTaskC Map> assignableWorkerStepMap = getAssignableWorkerStepMap(processTaskStepVo); List forwardNextStepList = new ArrayList<>(); List backwardNextStepList = new ArrayList<>(); - List nextStepList = processTaskMapper.getToProcessTaskStepByFromIdAndType(processTaskStepVo.getId(), null); + IProcessStepInternalHandler handler = ProcessStepInternalHandlerFactory.getHandler(processTaskStepVo.getHandler()); + if (handler == null) { + throw new ProcessStepUtilHandlerNotFoundException(processTaskStepVo.getHandler()); + } + List nextStepList = handler.getNextStepList(processTaskStepVo, null); for (ProcessTaskStepVo processTaskStep : nextStepList) { List assignableWorkerStepList = assignableWorkerStepMap.get(processTaskStep.getId()); if (CollectionUtils.isNotEmpty(assignableWorkerStepList)) { @@ -767,10 +771,13 @@ public class ProcessTaskServiceImpl implements ProcessTaskService, IProcessTaskC } @Override - public List getForwardNextStepListByProcessTaskStepId(Long processTaskStepId) { + public List getForwardNextStepListByProcessTaskStepId(ProcessTaskStepVo processTaskStepVo) { List resultList = new ArrayList<>(); - List nextStepList = processTaskMapper.getToProcessTaskStepByFromIdAndType(processTaskStepId, - ProcessFlowDirection.FORWARD.getValue()); + IProcessStepInternalHandler handler = ProcessStepInternalHandlerFactory.getHandler(processTaskStepVo.getHandler()); + if (handler == null) { + throw new ProcessStepUtilHandlerNotFoundException(processTaskStepVo.getHandler()); + } + List nextStepList = handler.getNextStepList(processTaskStepVo, ProcessFlowDirection.FORWARD); for (ProcessTaskStepVo processTaskStep : nextStepList) { if (StringUtils.isNotBlank(processTaskStep.getAliasName())) { processTaskStep.setName(processTaskStep.getAliasName()); @@ -784,10 +791,13 @@ public class ProcessTaskServiceImpl implements ProcessTaskService, IProcessTaskC } @Override - public List getBackwardNextStepListByProcessTaskStepId(Long processTaskStepId) { + public List getBackwardNextStepListByProcessTaskStepId(ProcessTaskStepVo processTaskStepVo) { List resultList = new ArrayList<>(); - List nextStepList = processTaskMapper.getToProcessTaskStepByFromIdAndType(processTaskStepId, - ProcessFlowDirection.BACKWARD.getValue()); + IProcessStepInternalHandler handler = ProcessStepInternalHandlerFactory.getHandler(processTaskStepVo.getHandler()); + if (handler == null) { + throw new ProcessStepUtilHandlerNotFoundException(processTaskStepVo.getHandler()); + } + List nextStepList = handler.getNextStepList(processTaskStepVo, ProcessFlowDirection.BACKWARD); for (ProcessTaskStepVo processTaskStep : nextStepList) { if (!Objects.equals(processTaskStep.getIsActive(), 0)) { if (StringUtils.isNotBlank(processTaskStep.getAliasName())) {