fix: 标准化发起流程主起草人填写信息节点丢数据BUG

This commit is contained in:
2024-02-20 16:12:51 +08:00
parent 18309b4ce9
commit 40e95fbc71
2 changed files with 11 additions and 5 deletions
@@ -2,10 +2,14 @@ package com.jero.modules.activiti.process.esAnnualInit.listener;
import com.jero.modules.activiti.util.ThreadLocalUtil;
import lombok.extern.slf4j.Slf4j;
import org.activiti.engine.RuntimeService;
import org.activiti.engine.TaskService;
import org.activiti.engine.delegate.DelegateTask;
import org.activiti.engine.delegate.TaskListener;
import org.activiti.engine.runtime.Execution;
import org.springframework.stereotype.Component;
import javax.annotation.Resource;
/**
@@ -16,6 +20,9 @@ import org.springframework.stereotype.Component;
@Component("mainDraftWriteCreateListener")
public class MainDraftWriteCreateListener implements TaskListener {
@Resource
private TaskService taskService;
/**
* 流程结束之后需要把数据存入企标计划数据库
@@ -24,8 +31,7 @@ public class MainDraftWriteCreateListener implements TaskListener {
*/
@Override
public void notify(DelegateTask delegateTask) {
String parentExecutionId = (String) ThreadLocalUtil.get("parentExecutionId");
delegateTask.setVariableLocal("parentExecutionId", parentExecutionId);
ThreadLocalUtil.remove();
String parentExecutionId = (String) taskService.getVariable(delegateTask.getId(), "parentExecutionId");
delegateTask.setVariable("parentExecutionId", parentExecutionId);
}
}
@@ -251,7 +251,7 @@ public class ProcessEsAnnualInitServiceImpl extends ServiceImpl<ProcessEsAnnualI
LambdaQueryWrapper<ProcessEsAnnualInit> wrapper = new LambdaQueryWrapper<>();
Task task = taskService.createTaskQuery().taskId(taskId).singleResult();
String taskName = task.getName();
String parentExecutionId = (String) taskService.getVariableLocal(taskId, "parentExecutionId");
String parentExecutionId = (String) taskService.getVariable(taskId, "parentExecutionId");
switch (taskName) {
case CONTACT_USER_SELECT:
case MAIN_DRAFT_LEADER_APPROVAL_DISTRIBUTE:
@@ -341,7 +341,7 @@ public class ProcessEsAnnualInitServiceImpl extends ServiceImpl<ProcessEsAnnualI
dataList.forEach(data -> data.setExecutionId(executionId));
saveOrUpdateBatch(dataList);
taskService.setVariable(taskId, "mainDraftUserList", mainDraftUserSet);
ThreadLocalUtil.put("parentExecutionId", executionId);
taskService.setVariable(taskId, "parentExecutionId", executionId);
// 保存人员
userMap.put("mainDraftUserList", String.join(",", mainDraftUserSet));
processNodeLinkService.incrementSaveNodeUserLink(processDefinitionId, processInstanceId, userMap);