fix: 主动上报流程不分发节点丢失BUG
This commit is contained in:
+18
-10
@@ -107,8 +107,6 @@ public class ProcessEsAnnualInitServiceImpl extends ServiceImpl<ProcessEsAnnualI
|
||||
CommonVO commonVO = annualInitData.getCommonVO();
|
||||
// 当前用户Id
|
||||
String userId = UserUtils.getUserId();
|
||||
// 人员数据
|
||||
Map<String, Object> variables = annualInitData.getFlowUser();
|
||||
// 业务数据
|
||||
List<ProcessEsAnnualInit> dataList = annualInitData.getDataList();
|
||||
// 设置流程变量
|
||||
@@ -125,7 +123,7 @@ public class ProcessEsAnnualInitServiceImpl extends ServiceImpl<ProcessEsAnnualI
|
||||
// 自动完成第一个任务
|
||||
actFlowCommonService.autoCompleteFirstTask(userId, processInstanceId, processDefinitionId, commonVO);
|
||||
// 保存选人信息
|
||||
processNodeLinkService.saveNodeUserLink(processDefinitionId, processInstanceId, this.getUserMap(variables));
|
||||
processNodeLinkService.saveNodeUserLink(processDefinitionId, processInstanceId, this.getUserMap(actVariables));
|
||||
// 保存数据
|
||||
dataList.forEach(data -> data.setProcessInstanceId(processInstanceId));
|
||||
saveBatch(dataList);
|
||||
@@ -163,13 +161,7 @@ public class ProcessEsAnnualInitServiceImpl extends ServiceImpl<ProcessEsAnnualI
|
||||
|
||||
private Map<String, Object> getUserMap(Map<String, Object> variables) {
|
||||
// 转成逗号拼接
|
||||
variables.put("contactUserList", Optional.ofNullable((List<String>) variables.get("contactUserList"))
|
||||
.map(list -> String.join(",", list))
|
||||
.orElse(""));
|
||||
variables.put("approvalUserList", Optional.ofNullable((List<String>) variables.get("approvalUserList"))
|
||||
.map(list -> String.join(",", list))
|
||||
.orElse(""));
|
||||
variables.put("mainDraftUserList", Optional.ofNullable((List<String>) variables.get("mainDraftUserList"))
|
||||
variables.put("contactUserList", Optional.ofNullable((HashSet<String>) variables.get("contactUserList"))
|
||||
.map(list -> String.join(",", list))
|
||||
.orElse(""));
|
||||
return variables;
|
||||
@@ -274,6 +266,10 @@ public class ProcessEsAnnualInitServiceImpl extends ServiceImpl<ProcessEsAnnualI
|
||||
updateWrapper.eq(ProcessEsAnnualInit::getDelFlag, YesOrNoEnum.NO.getValue());
|
||||
String contactUser = (String) runtimeService.getVariable(executionId, "contactUser");
|
||||
String approvalUser = (String) runtimeService.getVariable(executionId, "approvalUser");
|
||||
// 获取当前流程
|
||||
ProcessInstance processInstance = runtimeService.createProcessInstanceQuery().processInstanceId(processInstanceId).singleResult();
|
||||
String processDefinitionId = processInstance.getProcessDefinitionId();
|
||||
Map<String, Object> userMap = new HashMap<>();
|
||||
switch (taskName) {
|
||||
case CONTACT_USER_SELECT:
|
||||
dataList = annualInitData.getDataList();
|
||||
@@ -283,6 +279,9 @@ public class ProcessEsAnnualInitServiceImpl extends ServiceImpl<ProcessEsAnnualI
|
||||
Set<String> approvalUserSet = new HashSet<>();
|
||||
dataList.forEach(d -> approvalUserSet.add(d.getApprovalUser()));
|
||||
taskService.setVariable(taskId, "approvalUserList", approvalUserSet);
|
||||
// 保存人员
|
||||
userMap.put("approvalUserList", String.join(",", approvalUserSet));
|
||||
processNodeLinkService.saveNodeUserLink(processDefinitionId, processInstanceId, userMap);
|
||||
dataList.forEach(data -> data.setExecutionId(executionId));
|
||||
saveOrUpdateBatch(dataList);
|
||||
} else {
|
||||
@@ -314,6 +313,9 @@ public class ProcessEsAnnualInitServiceImpl extends ServiceImpl<ProcessEsAnnualI
|
||||
dataList.forEach(d -> mainDraftUserSet.add(d.getPrcMainDraftUser()));
|
||||
dataList.forEach(data -> data.setExecutionId(executionId));
|
||||
taskService.setVariable(taskId, "mainDraftUserList", mainDraftUserSet);
|
||||
// 保存人员
|
||||
userMap.put("mainDraftUserList", String.join(",", mainDraftUserSet));
|
||||
processNodeLinkService.saveNodeUserLink(processDefinitionId, processInstanceId, userMap);
|
||||
} else {
|
||||
// 找到对应数据,然后设置驳回标志位
|
||||
updateWrapper.eq(ProcessEsAnnualInit::getContactUser, contactUser);
|
||||
@@ -333,6 +335,12 @@ public class ProcessEsAnnualInitServiceImpl extends ServiceImpl<ProcessEsAnnualI
|
||||
dataList = annualInitData.getDataList();
|
||||
dataList.forEach(d -> d.setMainDraftingUser(userId));
|
||||
saveOrUpdateBatch(dataList);
|
||||
// 找出所有主起草人
|
||||
Set<String> mainDraftUserSet = new HashSet<>();
|
||||
dataList.forEach(d -> mainDraftUserSet.add(d.getMainDraftingUser()));
|
||||
// 保存人员
|
||||
userMap.put("mainDraftUser", String.join(",", mainDraftUserSet));
|
||||
processNodeLinkService.incrementSaveNodeUserLink(processDefinitionId, processInstanceId, userMap);
|
||||
break;
|
||||
case CONTACT_USER_COLLECT:
|
||||
dataList = annualInitData.getDataList();
|
||||
|
||||
+1
-1
@@ -180,7 +180,6 @@ public class ProcessEsAnnualReportServiceImpl extends ServiceImpl<ProcessEsAnnua
|
||||
// 设置流程变量
|
||||
taskService.setVariable(taskId, "workGroupUserList", workGroupUserList);
|
||||
// 将联络人主管级上一级领导保存到流程变量中
|
||||
taskService.setVariable(taskId, contactUser + "-ContactUserLeaderLeader", contactUserLeaderLeader);
|
||||
userVariable.put("workGroupUserList", workGroupUsers);
|
||||
userVariable.put("contactUser", contactUser);
|
||||
} else {
|
||||
@@ -193,6 +192,7 @@ public class ProcessEsAnnualReportServiceImpl extends ServiceImpl<ProcessEsAnnua
|
||||
saveBatch(dataList);
|
||||
taskService.setVariable(taskId, "contactUserLeaderLeader", contactUserLeaderLeader);
|
||||
}
|
||||
taskService.setVariable(taskId, contactUser + "-ContactUserLeaderLeader", contactUserLeaderLeader);
|
||||
userVariable.put("contactUserLeaderLeader", contactUserLeaderLeader);
|
||||
processNodeLinkService.incrementSaveNodeUserLink(processDefinitionId, processInstanceId, userVariable);
|
||||
break;
|
||||
|
||||
Reference in New Issue
Block a user