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