From 625fdf39e1ab712e9f4e0455f418f52499dd993d Mon Sep 17 00:00:00 2001 From: "1437892690@qq.com" <1437892690@qq.com> Date: Tue, 6 Aug 2024 18:53:09 +0800 Subject: [PATCH] =?UTF-8?q?[=E4=BF=AE=E5=A4=8D]=20=E5=B7=A5=E5=8D=95?= =?UTF-8?q?=E5=A4=84=E7=90=86-=E5=B7=A5=E5=8D=95=E6=9A=82=E5=81=9C?= =?UTF-8?q?=E5=90=8E=EF=BC=8C=E4=BD=9C=E4=B8=BA=E5=B7=A5=E5=8D=95=E7=9A=84?= =?UTF-8?q?=E5=8D=8F=E5=8A=A9=E5=A4=84=E7=90=86=E4=BA=BA=E7=9A=84=E2=80=9C?= =?UTF-8?q?=E6=88=91=E7=9A=84=E5=BE=85=E5=8A=9E=E2=80=9D=E6=B2=A1=E6=9C=89?= =?UTF-8?q?=E8=BF=87=E6=BB=A4=E8=B0=83=E5=AF=B9=E5=BA=94=E5=B7=A5=E5=8D=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 关联 #[1216633056493568]工单处理-工单暂停后,作为工单的协助处理人的“我的待办”没有过滤调对应工单 http://192.168.0.96:8090/demo/rdm.html#/bug-detail/939050947543040/939050947543057/1216633056493568 --- .../ChangeHandleProcessUtilHandler.java | 265 +++++++++--------- 1 file changed, 137 insertions(+), 128 deletions(-) diff --git a/src/main/java/neatlogic/module/change/stephandler/utilhandler/ChangeHandleProcessUtilHandler.java b/src/main/java/neatlogic/module/change/stephandler/utilhandler/ChangeHandleProcessUtilHandler.java index 292158e..66ccaa5 100644 --- a/src/main/java/neatlogic/module/change/stephandler/utilhandler/ChangeHandleProcessUtilHandler.java +++ b/src/main/java/neatlogic/module/change/stephandler/utilhandler/ChangeHandleProcessUtilHandler.java @@ -16,6 +16,7 @@ import neatlogic.framework.dto.UserVo; import neatlogic.framework.notify.crossover.INotifyServiceCrossoverService; import neatlogic.framework.notify.dto.InvokeNotifyPolicyConfigVo; import neatlogic.framework.process.constvalue.ProcessTaskOperationType; +import neatlogic.framework.process.constvalue.ProcessTaskStepStatus; import neatlogic.framework.process.constvalue.ProcessTaskStepUserStatus; import neatlogic.framework.process.constvalue.ProcessUserType; import neatlogic.framework.process.crossover.IProcessTaskCrossoverMapper; @@ -216,155 +217,163 @@ public class ChangeHandleProcessUtilHandler extends ProcessStepInternalHandlerBa ISelectContentByHashCrossoverMapper selectContentByHashCrossoverMapper = CrossoverServiceFactory.getApi(ISelectContentByHashCrossoverMapper.class); Long changeId = changeMapper.getChangeIdByProcessTaskStepId(processTaskStepId); if (changeId != null) { - /** 查出change_step_user和change_step_team表中当前步骤的变更步骤处理人和组列表 **/ - Set runningChangeStepTeamUuidSet = new HashSet<>(); - Set runningChangeStepUserUuidSet = new HashSet<>(); - Set succeedChangeStepUserUuidSet = new HashSet<>(); - ChangeVo changeVo = changeMapper.getChangeById(changeId); - if (changeVo != null && ChangeStatus.RUNNING.getValue().equals(changeVo.getStatus())) { - String whenChangeStepUserVisible = "processTaskStepActive"; - ProcessTaskStepVo processTaskStepVo = processTaskCrossoverMapper.getProcessTaskStepBaseInfoById(processTaskStepId); - String stepConfig = selectContentByHashCrossoverMapper.getProcessTaskStepConfigByHash(processTaskStepVo.getConfigHash()); - if (StringUtils.isNotBlank(stepConfig)) { - whenChangeStepUserVisible = (String) JSONPath.read(stepConfig,"whenChangeStepUserVisible"); - } - List changeStepList = changeMapper.getChangeStepListByChangeId(changeId); - for (ChangeStepVo changeStepVo : changeStepList) { - if (Objects.equal(changeStepVo.getIsActive(), 1) || "processTaskStepActive".equals(whenChangeStepUserVisible)) { - ChangeStepUserVo changeStepUserVo = changeMapper.getChangeStepUserByChangeStepId(changeStepVo.getId()); - if (ChangeStatus.PENDING.getValue().equals(changeStepVo.getStatus())) { - if (changeStepUserVo != null) { + ProcessTaskStepVo processTaskStepVo = processTaskCrossoverMapper.getProcessTaskStepBaseInfoById(processTaskStepId); + if (Objects.equal(processTaskStepVo.getStatus(), ProcessTaskStepStatus.RUNNING.getValue())) { + /** 查出change_step_user和change_step_team表中当前步骤的变更步骤处理人和组列表 **/ + Set runningChangeStepTeamUuidSet = new HashSet<>(); + Set runningChangeStepUserUuidSet = new HashSet<>(); + Set succeedChangeStepUserUuidSet = new HashSet<>(); + ChangeVo changeVo = changeMapper.getChangeById(changeId); + if (changeVo != null && ChangeStatus.RUNNING.getValue().equals(changeVo.getStatus())) { + String whenChangeStepUserVisible = "processTaskStepActive"; + String stepConfig = selectContentByHashCrossoverMapper.getProcessTaskStepConfigByHash(processTaskStepVo.getConfigHash()); + if (StringUtils.isNotBlank(stepConfig)) { + whenChangeStepUserVisible = (String) JSONPath.read(stepConfig,"whenChangeStepUserVisible"); + } + List changeStepList = changeMapper.getChangeStepListByChangeId(changeId); + for (ChangeStepVo changeStepVo : changeStepList) { + if (Objects.equal(changeStepVo.getIsActive(), 1) || "processTaskStepActive".equals(whenChangeStepUserVisible)) { + ChangeStepUserVo changeStepUserVo = changeMapper.getChangeStepUserByChangeStepId(changeStepVo.getId()); + if (ChangeStatus.PENDING.getValue().equals(changeStepVo.getStatus())) { + if (changeStepUserVo != null) { + runningChangeStepUserUuidSet.add(changeStepUserVo.getUserVo().getUuid()); + } else { + ChangeStepTeamVo changeStepTeamVo = changeMapper.getChangeStepTeamByChangeStepId(changeStepVo.getId()); + if (changeStepTeamVo != null) { + runningChangeStepTeamUuidSet.add(changeStepTeamVo.getTeamUuid()); + } + } + } else if (ChangeStatus.RUNNING.getValue().equals(changeStepVo.getStatus())) { runningChangeStepUserUuidSet.add(changeStepUserVo.getUserVo().getUuid()); } else { - ChangeStepTeamVo changeStepTeamVo = changeMapper.getChangeStepTeamByChangeStepId(changeStepVo.getId()); - if (changeStepTeamVo != null) { - runningChangeStepTeamUuidSet.add(changeStepTeamVo.getTeamUuid()); - } + succeedChangeStepUserUuidSet.add(changeStepUserVo.getUserVo().getUuid()); } - } else if (ChangeStatus.RUNNING.getValue().equals(changeStepVo.getStatus())) { - runningChangeStepUserUuidSet.add(changeStepUserVo.getUserVo().getUuid()); - } else { - succeedChangeStepUserUuidSet.add(changeStepUserVo.getUserVo().getUuid()); } } } - } - /** 查出processtask_step_worker表中当前步骤的变更步骤处理人和组列表 **/ - Set workerMinorUserUuidSet = new HashSet<>(); - Set workerMinorTeamUuidSet = new HashSet<>(); - List workerList = processTaskCrossoverMapper.getProcessTaskStepWorkerByProcessTaskIdAndProcessTaskStepId(processTaskId, processTaskStepId); - for (ProcessTaskStepWorkerVo workerVo : workerList) { - if (ProcessUserType.MINOR.getValue().equals(workerVo.getUserType())) { - if (GroupSearch.USER.getValue().equals(workerVo.getType())) { - workerMinorUserUuidSet.add(workerVo.getUuid()); - } else if (GroupSearch.TEAM.getValue().equals(workerVo.getType())) { - workerMinorTeamUuidSet.add(workerVo.getUuid()); + /** 查出processtask_step_worker表中当前步骤的变更步骤处理人和组列表 **/ + Set workerMinorUserUuidSet = new HashSet<>(); + Set workerMinorTeamUuidSet = new HashSet<>(); + List workerList = processTaskCrossoverMapper.getProcessTaskStepWorkerByProcessTaskIdAndProcessTaskStepId(processTaskId, processTaskStepId); + for (ProcessTaskStepWorkerVo workerVo : workerList) { + if (ProcessUserType.MINOR.getValue().equals(workerVo.getUserType())) { + if (GroupSearch.USER.getValue().equals(workerVo.getType())) { + workerMinorUserUuidSet.add(workerVo.getUuid()); + } else if (GroupSearch.TEAM.getValue().equals(workerVo.getType())) { + workerMinorTeamUuidSet.add(workerVo.getUuid()); + } } } - } - /** 查出processtask_step_user表中当前步骤的变更步骤处理人列表 **/ - Set doingMinorUserUuidSet = new HashSet<>(); - Set doneMinorUserUuidSet = new HashSet<>(); - List minorUserList = processTaskCrossoverMapper.getProcessTaskStepUserByStepId(processTaskStepId, ProcessUserType.MINOR.getValue()); - for (ProcessTaskStepUserVo userVo : minorUserList) { - if (ProcessTaskStepUserStatus.DOING.getValue().equals(userVo.getStatus())) { - doingMinorUserUuidSet.add(userVo.getUserUuid()); - } else if (ProcessTaskStepUserStatus.DONE.getValue().equals(userVo.getStatus())) { - doneMinorUserUuidSet.add(userVo.getUserUuid()); + /** 查出processtask_step_user表中当前步骤的变更步骤处理人列表 **/ + Set doingMinorUserUuidSet = new HashSet<>(); + Set doneMinorUserUuidSet = new HashSet<>(); + List minorUserList = processTaskCrossoverMapper.getProcessTaskStepUserByStepId(processTaskStepId, ProcessUserType.MINOR.getValue()); + for (ProcessTaskStepUserVo userVo : minorUserList) { + if (ProcessTaskStepUserStatus.DOING.getValue().equals(userVo.getStatus())) { + doingMinorUserUuidSet.add(userVo.getUserUuid()); + } else if (ProcessTaskStepUserStatus.DONE.getValue().equals(userVo.getStatus())) { + doneMinorUserUuidSet.add(userVo.getUserUuid()); + } } - } - ProcessTaskStepWorkerVo processTaskStepWorkerVo = new ProcessTaskStepWorkerVo(); - processTaskStepWorkerVo.setProcessTaskId(processTaskId); - processTaskStepWorkerVo.setProcessTaskStepId(processTaskStepId); - processTaskStepWorkerVo.setUserType(ProcessUserType.MINOR.getValue()); - - ProcessTaskStepUserVo processTaskStepUserVo = new ProcessTaskStepUserVo(); - processTaskStepUserVo.setProcessTaskId(processTaskId); - processTaskStepUserVo.setProcessTaskStepId(processTaskStepId); - processTaskStepUserVo.setUserType(ProcessUserType.MINOR.getValue()); - /** 删除processtask_step_worker表中当前步骤多余的变更步骤处理人 **/ - List needDeleteUserList = ListUtils.removeAll(workerMinorUserUuidSet, runningChangeStepUserUuidSet); - for (String userUuid : needDeleteUserList) { - processTaskStepWorkerVo.setUuid(userUuid); - processTaskCrossoverMapper.deleteProcessTaskStepWorker(processTaskStepWorkerVo); - //System.out.println("deleteProcessTaskStepWorker" + userUuid); - if (succeedChangeStepUserUuidSet.contains(userUuid)) { - if (doingMinorUserUuidSet.contains(userUuid)) { - /** 完成变更步骤 **/ + ProcessTaskStepWorkerVo processTaskStepWorkerVo = new ProcessTaskStepWorkerVo(); + processTaskStepWorkerVo.setProcessTaskId(processTaskId); + processTaskStepWorkerVo.setProcessTaskStepId(processTaskStepId); + processTaskStepWorkerVo.setUserType(ProcessUserType.MINOR.getValue()); + + ProcessTaskStepUserVo processTaskStepUserVo = new ProcessTaskStepUserVo(); + processTaskStepUserVo.setProcessTaskId(processTaskId); + processTaskStepUserVo.setProcessTaskStepId(processTaskStepId); + processTaskStepUserVo.setUserType(ProcessUserType.MINOR.getValue()); + /** 删除processtask_step_worker表中当前步骤多余的变更步骤处理人 **/ + List needDeleteUserList = ListUtils.removeAll(workerMinorUserUuidSet, runningChangeStepUserUuidSet); + for (String userUuid : needDeleteUserList) { + processTaskStepWorkerVo.setUuid(userUuid); + processTaskCrossoverMapper.deleteProcessTaskStepWorker(processTaskStepWorkerVo); + //System.out.println("deleteProcessTaskStepWorker" + userUuid); + if (succeedChangeStepUserUuidSet.contains(userUuid)) { + if (doingMinorUserUuidSet.contains(userUuid)) { + /** 完成变更步骤 **/ + processTaskStepUserVo.setUserUuid(userUuid); + processTaskStepUserVo.setStatus(ProcessTaskStepUserStatus.DONE.getValue()); + processTaskCrossoverMapper.updateProcessTaskStepUserStatus(processTaskStepUserVo); + //System.out.println("updateProcessTaskStepUserStatus" + userUuid); + } + } else { + if (doingMinorUserUuidSet.contains(userUuid)) { + /** 取消变更步骤 **/ + processTaskStepUserVo.setUserUuid(userUuid); + processTaskCrossoverMapper.deleteProcessTaskStepUser(processTaskStepUserVo); + //System.out.println("deleteProcessTaskStepUser" + userUuid); + } + } + } + /** 向processtask_step_worker表中插入当前步骤的变更步骤处理人 **/ + List needInsertUserList = ListUtils.removeAll(runningChangeStepUserUuidSet, workerMinorUserUuidSet); + processTaskStepWorkerVo.setType(GroupSearch.USER.getValue()); + for (String userUuid : needInsertUserList) { + processTaskStepWorkerVo.setUuid(userUuid); + processTaskCrossoverMapper.insertIgnoreProcessTaskStepWorker(processTaskStepWorkerVo); + //System.out.println("insertProcessTaskStepWorker" + userUuid); + + if (doneMinorUserUuidSet.contains(userUuid)) { + /** 重做变更步骤 **/ processTaskStepUserVo.setUserUuid(userUuid); - processTaskStepUserVo.setStatus(ProcessTaskStepUserStatus.DONE.getValue()); + processTaskStepUserVo.setStatus(ProcessTaskStepUserStatus.DOING.getValue()); processTaskCrossoverMapper.updateProcessTaskStepUserStatus(processTaskStepUserVo); //System.out.println("updateProcessTaskStepUserStatus" + userUuid); - } - } else { - if (doingMinorUserUuidSet.contains(userUuid)) { - /** 取消变更步骤 **/ - processTaskStepUserVo.setUserUuid(userUuid); - processTaskCrossoverMapper.deleteProcessTaskStepUser(processTaskStepUserVo); - //System.out.println("deleteProcessTaskStepUser" + userUuid); + } else if (!doingMinorUserUuidSet.contains(userUuid)) { + /** 开始变更步骤 **/ + UserVo userVo = userMapper.getUserBaseInfoByUuid(userUuid); + if (userVo != null) { + processTaskStepUserVo.setUserUuid(userVo.getUuid()); + processTaskStepUserVo.setUserName(userVo.getUserName()); + processTaskStepUserVo.setStatus(ProcessTaskStepUserStatus.DOING.getValue()); + processTaskCrossoverMapper.insertProcessTaskStepUser(processTaskStepUserVo); + //System.out.println("insertProcessTaskStepUser" + userUuid); + } } } - } - /** 向processtask_step_worker表中插入当前步骤的变更步骤处理人 **/ - List needInsertUserList = ListUtils.removeAll(runningChangeStepUserUuidSet, workerMinorUserUuidSet); - processTaskStepWorkerVo.setType(GroupSearch.USER.getValue()); - for (String userUuid : needInsertUserList) { - processTaskStepWorkerVo.setUuid(userUuid); - processTaskCrossoverMapper.insertIgnoreProcessTaskStepWorker(processTaskStepWorkerVo); - //System.out.println("insertProcessTaskStepWorker" + userUuid); - - if (doneMinorUserUuidSet.contains(userUuid)) { - /** 重做变更步骤 **/ - processTaskStepUserVo.setUserUuid(userUuid); - processTaskStepUserVo.setStatus(ProcessTaskStepUserStatus.DOING.getValue()); - processTaskCrossoverMapper.updateProcessTaskStepUserStatus(processTaskStepUserVo); - //System.out.println("updateProcessTaskStepUserStatus" + userUuid); - } else if (!doingMinorUserUuidSet.contains(userUuid)) { + /** 删除processtask_step_worker表中当前步骤多余的变更步骤处理组 **/ + List needDeleteTeamList = ListUtils.removeAll(workerMinorTeamUuidSet, runningChangeStepTeamUuidSet); + for (String TeamUuid : needDeleteTeamList) { /** 开始变更步骤 **/ - UserVo userVo = userMapper.getUserBaseInfoByUuid(userUuid); - if (userVo != null) { - processTaskStepUserVo.setUserUuid(userVo.getUuid()); - processTaskStepUserVo.setUserName(userVo.getUserName()); - processTaskStepUserVo.setStatus(ProcessTaskStepUserStatus.DOING.getValue()); - processTaskCrossoverMapper.insertProcessTaskStepUser(processTaskStepUserVo); - //System.out.println("insertProcessTaskStepUser" + userUuid); - } + processTaskStepWorkerVo.setUuid(TeamUuid); + processTaskCrossoverMapper.deleteProcessTaskStepWorker(processTaskStepWorkerVo); + //System.out.println("deleteProcessTaskStepWorker" + TeamUuid); + } + /** 向processtask_step_worker表中插入当前步骤的变更步骤处理组 **/ + List needInsertTeamList = ListUtils.removeAll(runningChangeStepTeamUuidSet, workerMinorTeamUuidSet); + processTaskStepWorkerVo.setType(GroupSearch.TEAM.getValue()); + for (String TeamUuid : needInsertTeamList) { + /** 激活变更步骤 **/ + processTaskStepWorkerVo.setUuid(TeamUuid); + processTaskCrossoverMapper.insertIgnoreProcessTaskStepWorker(processTaskStepWorkerVo); + //System.out.println("insertProcessTaskStepWorker" + TeamUuid); } - } - /** 删除processtask_step_worker表中当前步骤多余的变更步骤处理组 **/ - List needDeleteTeamList = ListUtils.removeAll(workerMinorTeamUuidSet, runningChangeStepTeamUuidSet); - for (String TeamUuid : needDeleteTeamList) { - /** 开始变更步骤 **/ - processTaskStepWorkerVo.setUuid(TeamUuid); - processTaskCrossoverMapper.deleteProcessTaskStepWorker(processTaskStepWorkerVo); - //System.out.println("deleteProcessTaskStepWorker" + TeamUuid); - } - /** 向processtask_step_worker表中插入当前步骤的变更步骤处理组 **/ - List needInsertTeamList = ListUtils.removeAll(runningChangeStepTeamUuidSet, workerMinorTeamUuidSet); - processTaskStepWorkerVo.setType(GroupSearch.TEAM.getValue()); - for (String TeamUuid : needInsertTeamList) { - /** 激活变更步骤 **/ - processTaskStepWorkerVo.setUuid(TeamUuid); - processTaskCrossoverMapper.insertIgnoreProcessTaskStepWorker(processTaskStepWorkerVo); - //System.out.println("insertProcessTaskStepWorker" + TeamUuid); - } - /** 变更处理回退到变更创建,重新激活变更创建,并删除某些变更步骤 **/ - if (doingMinorUserUuidSet.size() + doneMinorUserUuidSet.size() > runningChangeStepUserUuidSet.size() + succeedChangeStepUserUuidSet.size()) { - List minorUserUuidList = new ArrayList<>(doingMinorUserUuidSet.size() + doneMinorUserUuidSet.size()); - minorUserUuidList.addAll(doingMinorUserUuidSet); - minorUserUuidList.addAll(doneMinorUserUuidSet); - List changeStepUserUuidList = new ArrayList<>(runningChangeStepUserUuidSet.size() + succeedChangeStepUserUuidSet.size()); - changeStepUserUuidList.addAll(runningChangeStepUserUuidSet); - changeStepUserUuidList.addAll(succeedChangeStepUserUuidSet); - List needDeleteUserUuidList = ListUtils.removeAll(minorUserUuidList, changeStepUserUuidList); - for (String userUuid : needDeleteUserUuidList) { - processTaskStepUserVo.setUserUuid(userUuid); - processTaskCrossoverMapper.deleteProcessTaskStepUser(processTaskStepUserVo); + /** 变更处理回退到变更创建,重新激活变更创建,并删除某些变更步骤 **/ + if (doingMinorUserUuidSet.size() + doneMinorUserUuidSet.size() > runningChangeStepUserUuidSet.size() + succeedChangeStepUserUuidSet.size()) { + List minorUserUuidList = new ArrayList<>(doingMinorUserUuidSet.size() + doneMinorUserUuidSet.size()); + minorUserUuidList.addAll(doingMinorUserUuidSet); + minorUserUuidList.addAll(doneMinorUserUuidSet); + List changeStepUserUuidList = new ArrayList<>(runningChangeStepUserUuidSet.size() + succeedChangeStepUserUuidSet.size()); + changeStepUserUuidList.addAll(runningChangeStepUserUuidSet); + changeStepUserUuidList.addAll(succeedChangeStepUserUuidSet); + List needDeleteUserUuidList = ListUtils.removeAll(minorUserUuidList, changeStepUserUuidList); + for (String userUuid : needDeleteUserUuidList) { + processTaskStepUserVo.setUserUuid(userUuid); + processTaskCrossoverMapper.deleteProcessTaskStepUser(processTaskStepUserVo); + } } + } else { + ProcessTaskStepWorkerVo processTaskStepWorkerVo = new ProcessTaskStepWorkerVo(); + processTaskStepWorkerVo.setProcessTaskId(processTaskId); + processTaskStepWorkerVo.setProcessTaskStepId(processTaskStepId); + processTaskStepWorkerVo.setUserType(ProcessUserType.MINOR.getValue()); + processTaskCrossoverMapper.deleteProcessTaskStepWorker(processTaskStepWorkerVo); } } } -- Gitee