From b1d6ea11a5df9327740eabc3b17f1b1f1c1b8a11 Mon Sep 17 00:00:00 2001 From: "1437892690@qq.com" <1437892690@qq.com> Date: Sat, 11 May 2024 14:48:17 +0800 Subject: [PATCH 1/2] =?UTF-8?q?[=E5=8A=9F=E8=83=BD]=20IT=E6=9C=8D=E5=8A=A1?= =?UTF-8?q?-=E5=B7=A5=E5=8D=95=E6=AD=A5=E9=AA=A4=E5=8F=AF=E4=BB=A5?= =?UTF-8?q?=E5=9B=9E=E9=80=80=E5=88=B0=E5=A4=9A=E4=B8=AA=E6=AD=A5=E9=AA=A4?= =?UTF-8?q?=E6=97=B6=EF=BC=8C=E4=BC=98=E5=85=88=E9=BB=98=E8=AE=A4=E9=80=89?= =?UTF-8?q?=E6=8B=A9=E4=B8=8A=E4=B8=80=E6=AD=A5=E9=AA=A4=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 关联 #[1154146349056000]IT服务-工单步骤可以回退到多个步骤时,优先默认选择上一步骤。 http://192.168.0.96:8090/demo/rdm.html#/story-detail/939050947543040/939050947543042/1154146349056000 --- .../service/ProcessTaskServiceImpl.java | 56 +++++++++++++++++++ 1 file changed, 56 insertions(+) diff --git a/src/main/java/neatlogic/module/process/service/ProcessTaskServiceImpl.java b/src/main/java/neatlogic/module/process/service/ProcessTaskServiceImpl.java index bb71680b6..b0a591da2 100644 --- a/src/main/java/neatlogic/module/process/service/ProcessTaskServiceImpl.java +++ b/src/main/java/neatlogic/module/process/service/ProcessTaskServiceImpl.java @@ -772,6 +772,62 @@ public class ProcessTaskServiceImpl implements ProcessTaskService, IProcessTaskC } } } + if (backwardNextStepList.size() > 1) { + List fromStepIdList = new ArrayList<>(); + List fromProcessTaskStepRelList = processTaskMapper.getProcessTaskStepRelByToId(processTaskStepVo.getId()); + for (ProcessTaskStepRelVo relVo : fromProcessTaskStepRelList) { + if (Objects.equals(relVo.getIsHit(), 1) && Objects.equals(relVo.getType(), ProcessFlowDirection.FORWARD.getValue())) { + fromStepIdList.add(relVo.getFromProcessTaskStepId()); + } + } + List previousStepList = new ArrayList<>(); + List nonPreviousStepList = new ArrayList<>(); + for (ProcessTaskStepVo processTaskStep : backwardNextStepList) { + if (fromStepIdList.contains(processTaskStep.getId())) { + if (StringUtils.isNotBlank(processTaskStep.getAliasName())) { + processTaskStep.setAliasName(processTaskStep.getAliasName() + "(" + $.t("term.itsm.previousstep") + ")"); + } else { + processTaskStep.setName(processTaskStep.getName() + "(" + $.t("term.itsm.previousstep") + ")"); + } + previousStepList.add(processTaskStep); + } else { + nonPreviousStepList.add(processTaskStep); + } + } + backwardNextStepList = new ArrayList<>(); + if (CollectionUtils.isNotEmpty(previousStepList)) { + if (previousStepList.size() > 1) { + previousStepList.sort((o1, o2) -> { + if (o1.getEndTime() == null && o2.getEndTime() == null) { + return 0; + } else if (o2.getEndTime() == null) { + return -1; + } else if (o1.getEndTime() == null) { + return 1; + } else { + return o2.getEndTime().compareTo(o1.getEndTime()); + } + }); + } + backwardNextStepList.addAll(previousStepList); + } + if (CollectionUtils.isNotEmpty(nonPreviousStepList)) { + if (nonPreviousStepList.size() > 1) { + nonPreviousStepList.sort((o1, o2) -> { + if (o1.getEndTime() == null && o2.getEndTime() == null) { + return 0; + } else if (o2.getEndTime() == null) { + return -1; + } else if (o1.getEndTime() == null) { + return 1; + } else { + return o2.getEndTime().compareTo(o1.getEndTime()); + } + }); + } + backwardNextStepList.addAll(nonPreviousStepList); + } + } processTaskStepVo.setForwardNextStepList(forwardNextStepList); processTaskStepVo.setBackwardNextStepList(backwardNextStepList); } -- Gitee From b0f91c30dd15fd120a376ce20e5c99e7bd1a19d2 Mon Sep 17 00:00:00 2001 From: "1437892690@qq.com" <1437892690@qq.com> Date: Sat, 11 May 2024 14:56:02 +0800 Subject: [PATCH 2/2] =?UTF-8?q?[=E5=8A=9F=E8=83=BD]=20IT=E6=9C=8D=E5=8A=A1?= =?UTF-8?q?-=E5=B7=A5=E5=8D=95=E6=AD=A5=E9=AA=A4=E5=8F=AF=E4=BB=A5?= =?UTF-8?q?=E5=9B=9E=E9=80=80=E5=88=B0=E5=A4=9A=E4=B8=AA=E6=AD=A5=E9=AA=A4?= =?UTF-8?q?=E6=97=B6=EF=BC=8C=E4=BC=98=E5=85=88=E9=BB=98=E8=AE=A4=E9=80=89?= =?UTF-8?q?=E6=8B=A9=E4=B8=8A=E4=B8=80=E6=AD=A5=E9=AA=A4=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 关联 #[1154146349056000]IT服务-工单步骤可以回退到多个步骤时,优先默认选择上一步骤。 http://192.168.0.96:8090/demo/rdm.html#/story-detail/939050947543040/939050947543042/1154146349056000 --- .../module/process/service/ProcessTaskServiceImpl.java | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/main/java/neatlogic/module/process/service/ProcessTaskServiceImpl.java b/src/main/java/neatlogic/module/process/service/ProcessTaskServiceImpl.java index b0a591da2..358111f60 100644 --- a/src/main/java/neatlogic/module/process/service/ProcessTaskServiceImpl.java +++ b/src/main/java/neatlogic/module/process/service/ProcessTaskServiceImpl.java @@ -772,7 +772,9 @@ public class ProcessTaskServiceImpl implements ProcessTaskService, IProcessTaskC } } } + // 回退步骤有多个时,如果回退步骤列表中包含“上一步骤”时,将“上一步骤”排在第一位,点击回退按钮时默认选择“上一步骤” if (backwardNextStepList.size() > 1) { + // 获取“上一步骤”列表 List fromStepIdList = new ArrayList<>(); List fromProcessTaskStepRelList = processTaskMapper.getProcessTaskStepRelByToId(processTaskStepVo.getId()); for (ProcessTaskStepRelVo relVo : fromProcessTaskStepRelList) { @@ -780,6 +782,7 @@ public class ProcessTaskServiceImpl implements ProcessTaskService, IProcessTaskC fromStepIdList.add(relVo.getFromProcessTaskStepId()); } } + // 遍历回退步骤列表,区分“上一步骤”和非“上一步骤” List previousStepList = new ArrayList<>(); List nonPreviousStepList = new ArrayList<>(); for (ProcessTaskStepVo processTaskStep : backwardNextStepList) { @@ -796,6 +799,7 @@ public class ProcessTaskServiceImpl implements ProcessTaskService, IProcessTaskC } backwardNextStepList = new ArrayList<>(); if (CollectionUtils.isNotEmpty(previousStepList)) { + // 存在多个时,按步骤结束时间排序,结束时间大的排在前面 if (previousStepList.size() > 1) { previousStepList.sort((o1, o2) -> { if (o1.getEndTime() == null && o2.getEndTime() == null) { @@ -812,6 +816,7 @@ public class ProcessTaskServiceImpl implements ProcessTaskService, IProcessTaskC backwardNextStepList.addAll(previousStepList); } if (CollectionUtils.isNotEmpty(nonPreviousStepList)) { + // 存在多个时,按步骤结束时间排序,结束时间大的排在前面 if (nonPreviousStepList.size() > 1) { nonPreviousStepList.sort((o1, o2) -> { if (o1.getEndTime() == null && o2.getEndTime() == null) { -- Gitee