fix: 81834 年度制修订计划(标准化发起)(部所联络人汇总)不同审批人驳回后,数据合并了

This commit is contained in:
2024-02-07 16:07:32 +08:00
parent adc9d8887d
commit 0d03293529
3 changed files with 104 additions and 45 deletions
@@ -0,0 +1,40 @@
package com.jero.modules.activiti.process.esAnnualInit.listener;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.jero.modules.activiti.process.esAnnualInit.entity.ProcessEsAnnualInit;
import com.jero.modules.activiti.process.esAnnualInit.service.impl.ProcessEsAnnualInitServiceImpl;
import lombok.extern.slf4j.Slf4j;
import org.activiti.engine.delegate.DelegateTask;
import org.activiti.engine.delegate.TaskListener;
import org.springframework.stereotype.Component;
import javax.annotation.Resource;
import java.util.List;
/**
* @author: Mzaxd
* @Date: 2023/10/10 14:14
*/
@Slf4j
@Component("contactUserDistributeCreateListener")
public class ContactUserDistributeCreateListener implements TaskListener {
@Resource
private ProcessEsAnnualInitServiceImpl annualInitService;
/**
* 流程结束之后需要把数据存入企标计划数据库
*
* @param delegateTask task
*/
@Override
public void notify(DelegateTask delegateTask) {
String executionId = delegateTask.getExecutionId();
String contactUser = (String) delegateTask.getVariable("contactUser");
LambdaQueryWrapper<ProcessEsAnnualInit> wrapper = new LambdaQueryWrapper<>();
wrapper.eq(ProcessEsAnnualInit::getContactUser, contactUser);
List<ProcessEsAnnualInit> list = annualInitService.list(wrapper);
list.forEach(l -> l.setExecutionId(executionId));
annualInitService.updateBatchById(list);
}
}
@@ -0,0 +1,40 @@
package com.jero.modules.activiti.process.esAnnualInit.listener;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.jero.modules.activiti.process.esAnnualInit.entity.ProcessEsAnnualInit;
import com.jero.modules.activiti.process.esAnnualInit.service.impl.ProcessEsAnnualInitServiceImpl;
import lombok.extern.slf4j.Slf4j;
import org.activiti.engine.delegate.DelegateTask;
import org.activiti.engine.delegate.TaskListener;
import org.springframework.stereotype.Component;
import javax.annotation.Resource;
import java.util.List;
/**
* @author: Mzaxd
* @Date: 2023/10/10 14:14
*/
@Slf4j
@Component("mainDraftLeaderDistributeCreateListener")
public class MainDraftLeaderDistributeCreateListener implements TaskListener {
@Resource
private ProcessEsAnnualInitServiceImpl annualInitService;
/**
* 流程结束之后需要把数据存入企标计划数据库
*
* @param delegateTask task
*/
@Override
public void notify(DelegateTask delegateTask) {
String executionId = delegateTask.getExecutionId();
String approvalUser = (String) delegateTask.getVariable("approvalUser");
LambdaQueryWrapper<ProcessEsAnnualInit> wrapper = new LambdaQueryWrapper<>();
wrapper.eq(ProcessEsAnnualInit::getApprovalUser, approvalUser);
List<ProcessEsAnnualInit> list = annualInitService.list(wrapper);
list.forEach(l -> l.setExecutionId(executionId));
annualInitService.updateBatchById(list);
}
}
@@ -25,7 +25,6 @@ import com.jero.modules.activiti.process.fb.service.IProcessHandleService;
import com.jero.modules.activiti.process.fb.vo.ProcessInfoVO;
import com.jero.modules.activiti.service.ProcessAllService;
import com.jero.modules.activiti.service.ProcessNodeLinkService;
import com.jero.modules.activiti.service.ProcessNodeService;
import com.jero.modules.activiti.util.ExcelUtils;
import com.jero.modules.laws.common.util.ImportUtil;
import com.jero.modules.laws.standard.entity.LawsEnterpriseStandard;
@@ -74,9 +73,6 @@ public class ProcessEsAnnualInitServiceImpl extends ServiceImpl<ProcessEsAnnualI
@Resource
private ActFlowCommonService actFlowCommonService;
@Resource
private ProcessNodeService processNodeService;
@Resource
private ProcessNodeLinkService processNodeLinkService;
@@ -247,33 +243,20 @@ public class ProcessEsAnnualInitServiceImpl extends ServiceImpl<ProcessEsAnnualI
LambdaQueryWrapper<ProcessEsAnnualInit> wrapper = new LambdaQueryWrapper<>();
Task task = taskService.createTaskQuery().taskId(taskId).singleResult();
String taskName = task.getName();
String contactUser = (String) runtimeService.getVariable(executionId, "contactUser");
String approvalUser = (String) runtimeService.getVariable(executionId, "approvalUser");
switch (taskName) {
case CONTACT_USER_SELECT:
wrapper.eq(ProcessEsAnnualInit::getContactUser, userId);
break;
case MAIN_DRAFT_LEADER_APPROVAL_DISTRIBUTE:
wrapper.eq(ProcessEsAnnualInit::getContactUser, contactUser);
wrapper.eq(ProcessEsAnnualInit::getApprovalUser, userId);
case CONTACT_USER_COLLECT:
case MAIN_DRAFT_LEADER_APPROVAL:
wrapper.eq(ProcessEsAnnualInit::getExecutionId, executionId);
break;
case CONTACT_USER_EDIT:
wrapper.eq(ProcessEsAnnualInit::getContactUser, contactUser);
wrapper.eq(ProcessEsAnnualInit::getRejectFlag, YesOrNoEnum.YES.getValue());
wrapper.eq(ProcessEsAnnualInit::getExecutionId, executionId);
break;
case MAIN_DRAFT_WRITE:
wrapper.eq(ProcessEsAnnualInit::getContactUser, contactUser);
wrapper.eq(ProcessEsAnnualInit::getPrcMainDraftUser, userId);
break;
case CONTACT_USER_COLLECT:
wrapper.eq(ProcessEsAnnualInit::getContactUser, userId);
wrapper.eq(ProcessEsAnnualInit::getExecutionId, executionId);
break;
case MAIN_DRAFT_LEADER_APPROVAL:
wrapper.eq(ProcessEsAnnualInit::getContactUser, contactUser);
wrapper.eq(ProcessEsAnnualInit::getApprovalUser, userId);
wrapper.eq(ProcessEsAnnualInit::getExecutionId, executionId);
break;
case STANDARD_ENGINEER_COLLECT:
// do nothing now
break;
@@ -287,7 +270,6 @@ public class ProcessEsAnnualInitServiceImpl extends ServiceImpl<ProcessEsAnnualI
@Override
public void approvalProcess(AnnualInitDataVO annualInitData, boolean pass) {
CommonVO commonVO = annualInitData.getCommonVO();
Map<String, Object> flowUser = annualInitData.getFlowUser();
String taskId = commonVO.getTaskId();
// 获取task
if (StrUtil.isBlank(taskId) || !actFlowCommonService.taskExists(taskId)) {
@@ -306,12 +288,13 @@ public class ProcessEsAnnualInitServiceImpl extends ServiceImpl<ProcessEsAnnualI
wrapper.eq(ProcessEsAnnualInit::getDelFlag, YesOrNoEnum.NO.getValue());
updateWrapper.eq(ProcessEsAnnualInit::getProcessInstanceId, processInstanceId);
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<>();
AnnualInitDataVO handleData = this.getHandleData(taskId);
List<ProcessEsAnnualInit> dbDataList = handleData.getDataList();
String curUserId = UserUtils.getUserId();
switch (taskName) {
case STANDARD_ENGINEER_INIT:
@@ -331,9 +314,7 @@ public class ProcessEsAnnualInitServiceImpl extends ServiceImpl<ProcessEsAnnualI
saveOrUpdateBatch(dataList);
} else {
// 找到所有被驳回的数据,发起新流程
wrapper.eq(ProcessEsAnnualInit::getContactUser, userId);
List<ProcessEsAnnualInit> list = list(wrapper);
annualInitData.setDataList(list);
annualInitData.setDataList(dbDataList);
this.restartProcess(annualInitData, taskId);
}
break;
@@ -353,11 +334,11 @@ public class ProcessEsAnnualInitServiceImpl extends ServiceImpl<ProcessEsAnnualI
processNodeLinkService.incrementSaveNodeUserLink(processDefinitionId, processInstanceId, userMap);
} else {
// 找到对应数据,然后设置驳回标志位
updateWrapper.eq(ProcessEsAnnualInit::getContactUser, contactUser);
updateWrapper.eq(ProcessEsAnnualInit::getApprovalUser, approvalUser);
updateWrapper.set(ProcessEsAnnualInit::getRejectFlag, YesOrNoEnum.YES.getValue());
update(updateWrapper);
dbDataList.forEach(d -> d.setRejectFlag(YesOrNoEnum.YES.getValue()));
updateBatchById(dbDataList);
}
// 转办
runtimeService.setVariableLocal(executionId, "approvalUser", curUserId);
break;
case CONTACT_USER_EDIT:
dataList = annualInitData.getDataList();
@@ -372,11 +353,11 @@ public class ProcessEsAnnualInitServiceImpl extends ServiceImpl<ProcessEsAnnualI
processNodeLinkService.incrementSaveNodeUserLink(processDefinitionId, processInstanceId, userMap);
} else {
// 找到所有被驳回的数据,发起新流程
wrapper.eq(ProcessEsAnnualInit::getContactUser, userId);
List<ProcessEsAnnualInit> list = list(wrapper);
annualInitData.setDataList(list);
annualInitData.setDataList(dbDataList);
this.restartProcess(annualInitData, taskId);
}
// 转办
runtimeService.setVariableLocal(executionId, "contactUser", curUserId);
break;
case MAIN_DRAFT_WRITE:
dataList = annualInitData.getDataList();
@@ -393,24 +374,22 @@ public class ProcessEsAnnualInitServiceImpl extends ServiceImpl<ProcessEsAnnualI
break;
case CONTACT_USER_COLLECT:
dataList = annualInitData.getDataList();
dataList.forEach(d -> d.setExecutionId(executionId));
saveOrUpdateBatch(dataList);
// 转办
runtimeService.setVariableLocal(executionId, "contactUser", curUserId);
break;
case MAIN_DRAFT_LEADER_APPROVAL:
dataList = annualInitData.getDataList();
// 如果不驳回
if (pass) {
updateWrapper.eq(ProcessEsAnnualInit::getContactUser, contactUser);
updateWrapper.eq(ProcessEsAnnualInit::getApprovalUser, approvalUser);
updateWrapper.set(ProcessEsAnnualInit::getRejectFlag, YesOrNoEnum.NO.getValue());
updateWrapper.set(ProcessEsAnnualInit::getExecutionId, executionId);
update(updateWrapper);
dbDataList.forEach(d -> d.setRejectFlag(YesOrNoEnum.NO.getValue()));
} else {
updateWrapper.eq(ProcessEsAnnualInit::getContactUser, contactUser);
updateWrapper.eq(ProcessEsAnnualInit::getApprovalUser, approvalUser);
updateWrapper.set(ProcessEsAnnualInit::getRejectFlag, YesOrNoEnum.YES.getValue());
updateWrapper.set(ProcessEsAnnualInit::getExecutionId, executionId);
update(updateWrapper);
dbDataList.forEach(d -> d.setRejectFlag(YesOrNoEnum.YES.getValue()));
}
dbDataList.forEach(d -> d.setExecutionId(executionId));
updateBatchById(dbDataList);
// 转办
runtimeService.setVariableLocal(executionId, "approvalUser", curUserId);
break;
case STANDARD_ENGINEER_COLLECT:
// 根据流程ID删除所有数据后新增