From c56ee454e91f3b8d98d8ecd68083c9662f142574 Mon Sep 17 00:00:00 2001 From: dimengzhe Date: Wed, 31 Jan 2024 13:50:41 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../anrui/flowable/biz/flow2/FlowService.java | 91 ++++++++++--------- 1 file changed, 47 insertions(+), 44 deletions(-) diff --git a/anrui-flowable/anrui-flowable-biz/src/main/java/com/yxt/anrui/flowable/biz/flow2/FlowService.java b/anrui-flowable/anrui-flowable-biz/src/main/java/com/yxt/anrui/flowable/biz/flow2/FlowService.java index 18cf503fbe..5f885049e3 100644 --- a/anrui-flowable/anrui-flowable-biz/src/main/java/com/yxt/anrui/flowable/biz/flow2/FlowService.java +++ b/anrui-flowable/anrui-flowable-biz/src/main/java/com/yxt/anrui/flowable/biz/flow2/FlowService.java @@ -447,7 +447,7 @@ public class FlowService extends MybatisBaseService { boolean adminContains = false; String service = (String) formVariables.get("service"); String ydfOrgPath = (String) formVariables.get("ydfOrgPath"); - if ("公司间调车".equals(service) && "Activity_0695qh4".equals(bv.getTaskDefKey())){ + if ("公司间调车".equals(service) && "Activity_0695qh4".equals(bv.getTaskDefKey())) { if (StringUtils.isBlank(nextUserSid)) { bv.setOrgSidPath(ydfOrgPath); ResultBean stringResultBean = getNextNodeUserSidsOfSubmit(bv); @@ -528,59 +528,62 @@ public class FlowService extends MybatisBaseService { bv.setNextNodeUserSids(""); return handleProsess(bv, false); } - //获取该流程所有要走的环节节点 - List flowElements = calApprovePath(bv.getModelId(), - bv.getFormVariables()); - for (int i = 0; i < flowElements.size(); i++) { - FlowElement flowElement = flowElements.get(i); - String id = flowElement.getId(); - if (taskDefKey.equals(id) && i + 1 < flowElements.size()) { - //获取下下一环节 - FlowElement flowElement1 = flowElements.get(i + 1); - List sysUserVoLists2 = new ArrayList<>(); - if (i + 2 < flowElements.size()) { - //获取下下下一环节用户 - FlowElement flowElement2 = flowElements.get(i + 2); - if (flowElement2 instanceof UserTask) { - UserTask userTask = (UserTask) flowElement2; + if (!DelegationState.PENDING.equals(task.getDelegationState())) { + //获取该流程所有要走的环节节点 + List flowElements = calApprovePath(bv.getModelId(), + bv.getFormVariables()); + for (int i = 0; i < flowElements.size(); i++) { + FlowElement flowElement = flowElements.get(i); + String id = flowElement.getId(); + if (taskDefKey.equals(id) && i + 1 < flowElements.size()) { + //获取下下一环节 + FlowElement flowElement1 = flowElements.get(i + 1); + List sysUserVoLists2 = new ArrayList<>(); + if (i + 2 < flowElements.size()) { + //获取下下下一环节用户 + FlowElement flowElement2 = flowElements.get(i + 2); + if (flowElement2 instanceof UserTask) { + UserTask userTask = (UserTask) flowElement2; + List candidateGroups = userTask.getCandidateGroups(); + UserssQuery userssQuery = new UserssQuery(); + userssQuery.setCandidateGroups(candidateGroups); + userssQuery.setOrgSidPath(orgPath); + sysUserVoLists2 = sysUserFeign.getUsersByRoles(userssQuery).getData(); + if (sysUserVoLists2 == null) { + sysUserVoLists2 = new ArrayList<>(); + } + } + } + if (flowElement1 instanceof UserTask) { + UserTask userTask = (UserTask) flowElement1; List candidateGroups = userTask.getCandidateGroups(); + List sysUserVoLists = new ArrayList<>(); UserssQuery userssQuery = new UserssQuery(); userssQuery.setCandidateGroups(candidateGroups); userssQuery.setOrgSidPath(orgPath); - sysUserVoLists2 = sysUserFeign.getUsersByRoles(userssQuery).getData(); - if (sysUserVoLists2 == null) { - sysUserVoLists2 = new ArrayList<>(); + sysUserVoLists = sysUserFeign.getUsersByRoles(userssQuery).getData(); + if (sysUserVoLists == null) { + sysUserVoLists = new ArrayList<>(); + } + //当前环节运营部总经理 刘丽艳 点击同意 下一环节 事业部副总经理 (nextUserSid) 和事业部总经理(sysUserVoLists.get(0).getSid()) + //判断查询回来的用户的集合size是1 并且用户的sid和下一环节的用户的sid相同。 + if (sysUserVoLists.size() == 1 && sysUserVoLists.get(0).getSid().equals(nextUserSid)) { + contains = true; + break; + } + //如果下下一环节无用户,下下下一环节用户与下一环节用户相同且只有一个,则下一环节用户自动审批。 + if (sysUserVoLists.size() == 0 && sysUserVoLists2.size() == 1 && sysUserVoLists2.get(0).getSid().equals(nextUserSid)) { + contains = true; + break; } } } - if (flowElement1 instanceof UserTask) { - UserTask userTask = (UserTask) flowElement1; - List candidateGroups = userTask.getCandidateGroups(); - List sysUserVoLists = new ArrayList<>(); - UserssQuery userssQuery = new UserssQuery(); - userssQuery.setCandidateGroups(candidateGroups); - userssQuery.setOrgSidPath(orgPath); - sysUserVoLists = sysUserFeign.getUsersByRoles(userssQuery).getData(); - if (sysUserVoLists == null) { - sysUserVoLists = new ArrayList<>(); - } - //当前环节运营部总经理 刘丽艳 点击同意 下一环节 事业部副总经理 (nextUserSid) 和事业部总经理(sysUserVoLists.get(0).getSid()) - //判断查询回来的用户的集合size是1 并且用户的sid和下一环节的用户的sid相同。 - if (sysUserVoLists.size() == 1 && sysUserVoLists.get(0).getSid().equals(nextUserSid)) { - contains = true; - break; - } - //如果下下一环节无用户,下下下一环节用户与下一环节用户相同且只有一个,则下一环节用户自动审批。 - if (sysUserVoLists.size() == 0 && sysUserVoLists2.size() == 1 && sysUserVoLists2.get(0).getSid().equals(nextUserSid)) { - contains = true; - break; - } + if (contains) { + break; } } - if (contains) { - break; - } } + if (contains) { bv.setUserSid(nextUserSid); bv.setTaskId(vo.getTaskId());