diff --git a/mallinkService/src/main/java/com/iformall/service/impl/WxFlowServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/WxFlowServiceImpl.java index a4d7f801d..679359453 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxFlowServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxFlowServiceImpl.java @@ -210,6 +210,24 @@ public class WxFlowServiceImpl implements WxFlowService { return new HashMap<>(); } + /** + * 设置会签代办人 + */ + public void setSignAssignee(Map map, String flowJsoin){ + WxFlowModel flowModel = (WxFlowModel)JsonUtil.readValue(flowJsoin,WxFlowModel.class); + List taskAssigneeList = flowModel.getLists(); + for (UserTaskVo userTaskVo:taskAssigneeList) { + if(EnumTaskType.AND.getCode().equals(userTaskVo.getType())){ + List assigneeList = new ArrayList<>(); + for (FlowUserVo flowUserVo:userTaskVo.getUserList()) { + assigneeList.add(flowUserVo.getId()); + } + map.put(userTaskVo.getKey()+"_signAssignee",assigneeList); + } + } + + } + @Override @Transactional(propagation = Propagation.REQUIRED,rollbackFor = {Exception.class}) public ResultData start(Map params,Long userId,String userName,String tenantId) { @@ -237,10 +255,7 @@ public class WxFlowServiceImpl implements WxFlowService { map.put("variables",variables); map.put("supplement",supplement); map.put("taskAssignee",flowModel.getFlow()); - List assigneeList = new ArrayList<>(); - assigneeList.add("243650055783841792"); - assigneeList.add("204398756307664896"); - map.put("assigneeList",assigneeList); + setSignAssignee(map,flowModel.getFlow()); ProcessInstance processInstance = runtimeService.startProcessInstanceByKey(flowModel.getFlowId(), map); logger.debug("流程启动,流程id:{}",processInstance.getId()); @@ -1109,17 +1124,9 @@ public class WxFlowServiceImpl implements WxFlowService { userTask.setName("节点" + (i + 1)); userTask.setId("userTask" + (i + 1)); List userIdList = new ArrayList<>(); - String collection = ""; - for (int j = 0; j < taskVo.getUserList().size(); j++) { - FlowUserVo userVo = taskVo.getUserList().get(j); + for (FlowUserVo userVo:taskVo.getUserList()) { userIdList.add(userVo.getId() + ""); - if(j==taskVo.getUserList().size()-1){ - collection += userVo.getId(); - }else{ - collection += userVo.getId()+","; - } } - collection += ""; if(EnumTaskType.NORMAL.getCode().equals(taskVo.getType()) || EnumTaskType.OR.getCode().equals(taskVo.getType())){ userTask.setCandidateUsers(userIdList); @@ -1127,7 +1134,7 @@ public class WxFlowServiceImpl implements WxFlowService { userTask.setAssignee("${assignee}"); MultiInstanceLoopCharacteristics mi = new MultiInstanceLoopCharacteristics(); mi.setLoopCardinality(userIdList.size()+""); - mi.setInputDataItem("${assigneeList}"); + mi.setInputDataItem("${"+userTask.getId()+"_signAssignee}"); mi.setElementVariable("assignee"); userTask.setLoopCharacteristics(mi); }