|
|
@ -447,7 +447,7 @@ public class FlowService extends MybatisBaseService<FlowMapper, Flowable> { |
|
|
|
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<String> stringResultBean = getNextNodeUserSidsOfSubmit(bv); |
|
|
@ -528,59 +528,62 @@ public class FlowService extends MybatisBaseService<FlowMapper, Flowable> { |
|
|
|
bv.setNextNodeUserSids(""); |
|
|
|
return handleProsess(bv, false); |
|
|
|
} |
|
|
|
//获取该流程所有要走的环节节点
|
|
|
|
List<FlowElement> 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<SysUserVo> 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<FlowElement> 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<SysUserVo> sysUserVoLists2 = new ArrayList<>(); |
|
|
|
if (i + 2 < flowElements.size()) { |
|
|
|
//获取下下下一环节用户
|
|
|
|
FlowElement flowElement2 = flowElements.get(i + 2); |
|
|
|
if (flowElement2 instanceof UserTask) { |
|
|
|
UserTask userTask = (UserTask) flowElement2; |
|
|
|
List<String> 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<String> candidateGroups = userTask.getCandidateGroups(); |
|
|
|
List<SysUserVo> 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<String> candidateGroups = userTask.getCandidateGroups(); |
|
|
|
List<SysUserVo> 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()); |
|
|
|