From 33be256c7b1ceedbb9656737c27fe87ce9721b95 Mon Sep 17 00:00:00 2001 From: "1437892690@qq.com" <1437892690@qq.com> Date: Fri, 31 May 2024 11:34:28 +0800 Subject: [PATCH] =?UTF-8?q?[=E4=BF=AE=E5=A4=8D]=20IT=E6=9C=8D=E5=8A=A1-?= =?UTF-8?q?=E4=B8=8A=E6=8A=A5=E5=B7=A5=E5=8D=95=E6=9C=89=E5=A4=9A=E6=9D=A1?= =?UTF-8?q?=E8=B7=AF=E5=BE=84=E6=B5=81=E8=BD=AC=E6=97=B6=EF=BC=8C=E6=97=A0?= =?UTF-8?q?=E6=B3=95=E6=BF=80=E6=B4=BB=E5=85=B6=E4=B8=AD=E4=B8=80=E6=9D=A1?= =?UTF-8?q?=E8=B7=AF=E5=BE=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit #[1168686717566976]IT服务-上报工单有多条路径流转时,无法激活其中一条路径 http://192.168.0.96:8090/demo/rdm.html#/bug-detail/939050947543040/939050947543057/1168686717566976 --- .../core/ProcessStepHandlerBase.java | 23 ++++++++----------- 1 file changed, 10 insertions(+), 13 deletions(-) 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 9e29d35e..e47b0252 100644 --- a/src/main/java/neatlogic/framework/process/stephandler/core/ProcessStepHandlerBase.java +++ b/src/main/java/neatlogic/framework/process/stephandler/core/ProcessStepHandlerBase.java @@ -61,7 +61,6 @@ import neatlogic.framework.service.AuthenticationInfoService; import neatlogic.framework.transaction.core.AfterTransactionJob; import neatlogic.framework.worktime.dao.mapper.WorktimeMapper; import org.apache.commons.collections4.CollectionUtils; -import org.apache.commons.collections4.ListUtils; import org.apache.commons.collections4.MapUtils; import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.exception.ExceptionUtils; @@ -2177,6 +2176,8 @@ public abstract class ProcessStepHandlerBase implements IProcessStepHandler { /* 流转到下一步 **/ List processTaskStepThreadList = new ArrayList<>(); Set nextStepIdSet = getNext(currentProcessTaskStepVo); + //将不流转的步骤的正向输入连线的isHit设置为-1 + identifyPostInvalidStepRelIsHit(currentProcessTaskStepVo.getProcessTaskId(), currentProcessTaskStepVo.getId(), nextStepIdSet); List nextStepList = processTaskCrossoverMapper.getProcessTaskStepListByIdList(new ArrayList<>(nextStepIdSet)); for (ProcessTaskStepVo nextStep : nextStepList) { IProcessStepHandler nextStepHandler = ProcessStepHandlerFactory.getHandler(nextStep.getHandler()); @@ -2335,22 +2336,18 @@ public abstract class ProcessStepHandlerBase implements IProcessStepHandler { * @param needProcessTaskStepRelList 需要更新isHit值为-1的连线列表 */ private void doIdentifyPostInvalidStepRelIsHit(Long currentProcessTaskStepId, Set activeStepIdSet, List allProcessTaskStepRelList, List needProcessTaskStepRelList) { - List unactiveStepIdList = null; - List allNextStepIdList = new ArrayList<>(); + List unactiveStepIdList = new ArrayList<>(); for (ProcessTaskStepRelVo processTaskStepRelVo : allProcessTaskStepRelList) { if (Objects.equals(processTaskStepRelVo.getFromProcessTaskStepId(), currentProcessTaskStepId) && Objects.equals(processTaskStepRelVo.getType(), ProcessFlowDirection.FORWARD.getValue())) { - allNextStepIdList.add(processTaskStepRelVo.getToProcessTaskStepId()); - if (!Objects.equals(processTaskStepRelVo.getIsHit(), -1)) { - processTaskStepRelVo.setIsHit(-1); - needProcessTaskStepRelList.add(processTaskStepRelVo); + if (!activeStepIdSet.contains(processTaskStepRelVo.getToProcessTaskStepId())) { + unactiveStepIdList.add(processTaskStepRelVo.getToProcessTaskStepId()); + if (!Objects.equals(processTaskStepRelVo.getIsHit(), -1)) { + processTaskStepRelVo.setIsHit(-1); + needProcessTaskStepRelList.add(processTaskStepRelVo); + } } } } - if (CollectionUtils.isNotEmpty(activeStepIdSet)) { - unactiveStepIdList = ListUtils.removeAll(allNextStepIdList, activeStepIdSet); - } else { - unactiveStepIdList = allNextStepIdList; - } if (CollectionUtils.isNotEmpty(unactiveStepIdList)) { Map> toStepIdMap = new HashMap<>(); @@ -2377,7 +2374,7 @@ public abstract class ProcessStepHandlerBase implements IProcessStepHandler { } if (invalid) { //节点失效, 更新节点状态,继续判断后续节点是否也是失效的 - doIdentifyPostInvalidStepRelIsHit(unactiveStepId, null, allProcessTaskStepRelList, needProcessTaskStepRelList); + doIdentifyPostInvalidStepRelIsHit(unactiveStepId, new HashSet<>(), allProcessTaskStepRelList, needProcessTaskStepRelList); } } } -- Gitee