fix: 81873 年度制修订计划(标准化发起)--不同的主起草单位主管级领导审批下发,相同的主起草人填写信息,第2个处理的待办数据合并了

This commit is contained in:
2024-02-07 17:59:18 +08:00
parent fec7454cb5
commit 6ca2e3c7cc
2 changed files with 40 additions and 4 deletions
@@ -0,0 +1,31 @@
package com.jero.modules.activiti.process.esAnnualInit.listener;
import com.jero.modules.activiti.util.ThreadLocalUtil;
import lombok.extern.slf4j.Slf4j;
import org.activiti.engine.delegate.DelegateTask;
import org.activiti.engine.delegate.TaskListener;
import org.springframework.stereotype.Component;
/**
* @author: Mzaxd
* @Date: 2023/10/10 14:14
*/
@Slf4j
@Component("mainDraftWriteCreateListener")
public class MainDraftWriteCreateListener implements TaskListener {
/**
* 流程结束之后需要把数据存入企标计划数据库
*
* @param delegateTask task
*/
@Override
public void notify(DelegateTask delegateTask) {
String parentExecutionId = (String) ThreadLocalUtil.get("parentExecutionId");
delegateTask.setVariableLocal("parentExecutionId", parentExecutionId);
ThreadLocalUtil.remove();
}
}
@@ -27,6 +27,7 @@ import com.jero.modules.activiti.service.ProcessAllService;
import com.jero.modules.activiti.service.ProcessApprovalRecordService; import com.jero.modules.activiti.service.ProcessApprovalRecordService;
import com.jero.modules.activiti.service.ProcessNodeLinkService; import com.jero.modules.activiti.service.ProcessNodeLinkService;
import com.jero.modules.activiti.util.ExcelUtils; import com.jero.modules.activiti.util.ExcelUtils;
import com.jero.modules.activiti.util.ThreadLocalUtil;
import com.jero.modules.laws.common.util.ImportUtil; import com.jero.modules.laws.common.util.ImportUtil;
import com.jero.modules.laws.standard.entity.LawsEnterpriseStandard; import com.jero.modules.laws.standard.entity.LawsEnterpriseStandard;
import com.jero.modules.laws.standard.service.ILawsEnterpriseStandardService; import com.jero.modules.laws.standard.service.ILawsEnterpriseStandardService;
@@ -196,10 +197,6 @@ public class ProcessEsAnnualInitServiceImpl extends ServiceImpl<ProcessEsAnnualI
actFlowCommonService.saveFirstNodeDraft(commonVO, ProcessTypeEnum.ES_ANNUAL_INIT, annualInitData); actFlowCommonService.saveFirstNodeDraft(commonVO, ProcessTypeEnum.ES_ANNUAL_INIT, annualInitData);
} }
public void startRunTask(AnnualInitDataVO annualInitData) {
// do nothing now
}
public Map<String, Object> setVariables(AnnualInitDataVO annualInitData) { public Map<String, Object> setVariables(AnnualInitDataVO annualInitData) {
Map<String, Object> actVariables = new HashMap<>(); Map<String, Object> actVariables = new HashMap<>();
Map<String, Object> flowUser = annualInitData.getFlowUser(); Map<String, Object> flowUser = annualInitData.getFlowUser();
@@ -254,6 +251,7 @@ public class ProcessEsAnnualInitServiceImpl extends ServiceImpl<ProcessEsAnnualI
LambdaQueryWrapper<ProcessEsAnnualInit> wrapper = new LambdaQueryWrapper<>(); LambdaQueryWrapper<ProcessEsAnnualInit> wrapper = new LambdaQueryWrapper<>();
Task task = taskService.createTaskQuery().taskId(taskId).singleResult(); Task task = taskService.createTaskQuery().taskId(taskId).singleResult();
String taskName = task.getName(); String taskName = task.getName();
String parentExecutionId = (String) taskService.getVariableLocal(taskId, "parentExecutionId");
switch (taskName) { switch (taskName) {
case CONTACT_USER_SELECT: case CONTACT_USER_SELECT:
case MAIN_DRAFT_LEADER_APPROVAL_DISTRIBUTE: case MAIN_DRAFT_LEADER_APPROVAL_DISTRIBUTE:
@@ -267,6 +265,7 @@ public class ProcessEsAnnualInitServiceImpl extends ServiceImpl<ProcessEsAnnualI
break; break;
case MAIN_DRAFT_WRITE: case MAIN_DRAFT_WRITE:
wrapper.eq(ProcessEsAnnualInit::getPrcMainDraftUser, userId); wrapper.eq(ProcessEsAnnualInit::getPrcMainDraftUser, userId);
wrapper.eq(ProcessEsAnnualInit::getExecutionId, parentExecutionId);
break; break;
case STANDARD_ENGINEER_COLLECT: case STANDARD_ENGINEER_COLLECT:
// do nothing now // do nothing now
@@ -306,6 +305,7 @@ public class ProcessEsAnnualInitServiceImpl extends ServiceImpl<ProcessEsAnnualI
AnnualInitDataVO handleData = this.getHandleData(taskId); AnnualInitDataVO handleData = this.getHandleData(taskId);
List<ProcessEsAnnualInit> dbDataList = handleData.getDataList(); List<ProcessEsAnnualInit> dbDataList = handleData.getDataList();
String curUserId = UserUtils.getUserId(); String curUserId = UserUtils.getUserId();
String contactUser = (String) runtimeService.getVariableLocal(executionId, "contactUser");
switch (taskName) { switch (taskName) {
case STANDARD_ENGINEER_INIT: case STANDARD_ENGINEER_INIT:
@@ -340,12 +340,17 @@ public class ProcessEsAnnualInitServiceImpl extends ServiceImpl<ProcessEsAnnualI
dataList.forEach(data -> data.setExecutionId(executionId)); dataList.forEach(data -> data.setExecutionId(executionId));
saveOrUpdateBatch(dataList); saveOrUpdateBatch(dataList);
taskService.setVariable(taskId, "mainDraftUserList", mainDraftUserSet); taskService.setVariable(taskId, "mainDraftUserList", mainDraftUserSet);
ThreadLocalUtil.put("parentExecutionId", executionId);
// 保存人员 // 保存人员
userMap.put("mainDraftUserList", String.join(",", mainDraftUserSet)); userMap.put("mainDraftUserList", String.join(",", mainDraftUserSet));
processNodeLinkService.incrementSaveNodeUserLink(processDefinitionId, processInstanceId, userMap); processNodeLinkService.incrementSaveNodeUserLink(processDefinitionId, processInstanceId, userMap);
} else { } else {
// 找到对应数据,然后设置驳回标志位 // 找到对应数据,然后设置驳回标志位
dbDataList.forEach(d -> d.setRejectFlag(YesOrNoEnum.YES.getValue())); dbDataList.forEach(d -> d.setRejectFlag(YesOrNoEnum.YES.getValue()));
runtimeService.setVariable(executionId, "contactEditUser", contactUser);
// 保存人员
userMap.put("contactEditUser", contactUser);
processNodeLinkService.incrementSaveNodeUserLink(processDefinitionId, processInstanceId, userMap);
updateBatchById(dbDataList); updateBatchById(dbDataList);
} }
// 转办 // 转办