diff --git a/laws-modules/src/main/java/com/jero/modules/activiti/process/esAnnualInit/listener/ContactUserDistributeCreateListener.java b/laws-modules/src/main/java/com/jero/modules/activiti/process/esAnnualInit/listener/ContactUserDistributeCreateListener.java new file mode 100644 index 00000000..8fa23b0b --- /dev/null +++ b/laws-modules/src/main/java/com/jero/modules/activiti/process/esAnnualInit/listener/ContactUserDistributeCreateListener.java @@ -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 wrapper = new LambdaQueryWrapper<>(); + wrapper.eq(ProcessEsAnnualInit::getContactUser, contactUser); + List list = annualInitService.list(wrapper); + list.forEach(l -> l.setExecutionId(executionId)); + annualInitService.updateBatchById(list); + } +} diff --git a/laws-modules/src/main/java/com/jero/modules/activiti/process/esAnnualInit/listener/MainDraftLeaderDistributeCreateListener.java b/laws-modules/src/main/java/com/jero/modules/activiti/process/esAnnualInit/listener/MainDraftLeaderDistributeCreateListener.java new file mode 100644 index 00000000..876836fe --- /dev/null +++ b/laws-modules/src/main/java/com/jero/modules/activiti/process/esAnnualInit/listener/MainDraftLeaderDistributeCreateListener.java @@ -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 wrapper = new LambdaQueryWrapper<>(); + wrapper.eq(ProcessEsAnnualInit::getApprovalUser, approvalUser); + List list = annualInitService.list(wrapper); + list.forEach(l -> l.setExecutionId(executionId)); + annualInitService.updateBatchById(list); + } +} diff --git a/laws-modules/src/main/java/com/jero/modules/activiti/process/esAnnualInit/service/impl/ProcessEsAnnualInitServiceImpl.java b/laws-modules/src/main/java/com/jero/modules/activiti/process/esAnnualInit/service/impl/ProcessEsAnnualInitServiceImpl.java index 99a9da85..652a9288 100644 --- a/laws-modules/src/main/java/com/jero/modules/activiti/process/esAnnualInit/service/impl/ProcessEsAnnualInitServiceImpl.java +++ b/laws-modules/src/main/java/com/jero/modules/activiti/process/esAnnualInit/service/impl/ProcessEsAnnualInitServiceImpl.java @@ -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 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 flowUser = annualInitData.getFlowUser(); String taskId = commonVO.getTaskId(); // 获取task if (StrUtil.isBlank(taskId) || !actFlowCommonService.taskExists(taskId)) { @@ -306,12 +288,13 @@ public class ProcessEsAnnualInitServiceImpl extends ServiceImpl userMap = new HashMap<>(); + AnnualInitDataVO handleData = this.getHandleData(taskId); + List dbDataList = handleData.getDataList(); + String curUserId = UserUtils.getUserId(); switch (taskName) { case STANDARD_ENGINEER_INIT: @@ -331,9 +314,7 @@ public class ProcessEsAnnualInitServiceImpl extends ServiceImpl list = list(wrapper); - annualInitData.setDataList(list); + annualInitData.setDataList(dbDataList); this.restartProcess(annualInitData, taskId); } break; @@ -353,11 +334,11 @@ public class ProcessEsAnnualInitServiceImpl extends ServiceImpl 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 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 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删除所有数据后新增