feat: 企标废止流程监听器

This commit is contained in:
2023-11-20 15:56:49 +08:00
parent f78e91549f
commit 7bc56f3e73
@@ -1,6 +1,11 @@
package com.jero.modules.activiti.process.esArchive.listener; package com.jero.modules.activiti.process.esArchive.listener;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.jero.modules.activiti.process.common.enums.StandardStateEnum;
import com.jero.modules.activiti.process.esAbolish.entity.ProcessEsAbolish;
import com.jero.modules.activiti.process.esArchive.entity.ProcessEsArchive;
import com.jero.modules.activiti.process.esArchive.service.ProcessEsArchiveService;
import com.jero.modules.activiti.process.esInitChange.entity.ProcessEsInitChange; import com.jero.modules.activiti.process.esInitChange.entity.ProcessEsInitChange;
import com.jero.modules.activiti.process.esInitChange.entity.enums.ESPApplicationCategoryEnum; import com.jero.modules.activiti.process.esInitChange.entity.enums.ESPApplicationCategoryEnum;
import com.jero.modules.activiti.process.esInitChange.entity.enums.ESPChangeType; import com.jero.modules.activiti.process.esInitChange.entity.enums.ESPChangeType;
@@ -9,6 +14,8 @@ import com.jero.modules.activiti.process.esInitChange.service.ProcessEsInitChang
import com.jero.modules.laws.enterprise.entity.EnterpriseStandardPlan; import com.jero.modules.laws.enterprise.entity.EnterpriseStandardPlan;
import com.jero.modules.laws.enterprise.service.EnterpriseStandardPlanService; import com.jero.modules.laws.enterprise.service.EnterpriseStandardPlanService;
import com.jero.modules.laws.enterprise.util.BeanCopyUtils; import com.jero.modules.laws.enterprise.util.BeanCopyUtils;
import com.jero.modules.laws.standard.entity.LawsEnterpriseStandard;
import com.jero.modules.laws.standard.service.ILawsEnterpriseStandardService;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.activiti.engine.delegate.DelegateExecution; import org.activiti.engine.delegate.DelegateExecution;
import org.activiti.engine.delegate.ExecutionListener; import org.activiti.engine.delegate.ExecutionListener;
@@ -26,10 +33,10 @@ import java.util.List;
public class ProcessESArchiveEndListener implements ExecutionListener { public class ProcessESArchiveEndListener implements ExecutionListener {
@Resource @Resource
private EnterpriseStandardPlanService espService; private ILawsEnterpriseStandardService esService;
@Resource @Resource
private ProcessEsInitChangeService esInitChangeService; private ProcessEsArchiveService esArchiveService;
/** /**
* 企标立项变更流程结束之后需要把数据存入企标计划数据库 然后自动发起企标制修订流程 * 企标立项变更流程结束之后需要把数据存入企标计划数据库 然后自动发起企标制修订流程
@@ -37,74 +44,17 @@ public class ProcessESArchiveEndListener implements ExecutionListener {
*/ */
@Override @Override
public void notify(DelegateExecution delegateExecution) { public void notify(DelegateExecution delegateExecution) {
log.info("企标立项变更流程结束 监听执行器开始执行"); log.info("企标封存流程结束 监听执行器开始执行");
// 获取流程实例ID // 找到流程实例Id
String processInstanceId = delegateExecution.getProcessInstanceId(); String processInstanceId = delegateExecution.getProcessInstanceId();
// 根据流程实例Id找到所有流程业务数据 LambdaQueryWrapper<ProcessEsArchive> archiveLambdaQueryWrapper = new LambdaQueryWrapper<>();
LambdaQueryWrapper<ProcessEsInitChange> esInitChangeWrapper = new LambdaQueryWrapper<>(); archiveLambdaQueryWrapper.eq(ProcessEsArchive::getProcessInstanceId, processInstanceId);
esInitChangeWrapper.eq(ProcessEsInitChange::getProcessInstanceId, processInstanceId); ProcessEsArchive archive = esArchiveService.getOne(archiveLambdaQueryWrapper);
List<ProcessEsInitChange> processEsInitChanges = esInitChangeService.list(esInitChangeWrapper); String standNo = archive.getStandardNumber();
String applicationCategory = processEsInitChanges.get(0).getApplicationCategory(); log.info("企标封存流程监听执行器开始执行,企标编号为:{}", standNo);
String projectType = processEsInitChanges.get(0).getProjectType(); esService.update(new LambdaUpdateWrapper<LawsEnterpriseStandard>()
List<EnterpriseStandardPlan> enterpriseStandardPlans; .set(LawsEnterpriseStandard::getStandardState, StandardStateEnum.ARCHIVE.getStateValue())
if (ESPApplicationCategoryEnum.INITIATION.getValue().equals(applicationCategory)) { .eq(LawsEnterpriseStandard::getStandardNumber, standNo));
// 立项新增-Id置空 log.info("企标封存流程结束监听执行器执行结束");
for (ProcessEsInitChange processEsInitChange : processEsInitChanges) {
processEsInitChange.setId(null);
}
// 转换为企标计划数据并入库
enterpriseStandardPlans = BeanCopyUtils.copyBeanList(processEsInitChanges, EnterpriseStandardPlan.class);
espService.saveBatch(enterpriseStandardPlans);
} else {
// 将Id设为企标计划的Id
for (ProcessEsInitChange processEsInitChange : processEsInitChanges) {
processEsInitChange.setId(processEsInitChange.getEspId());
}
// 完成时间变更
if (ESPProjectType.COMPLETE_TIME_CHANGE.getValue().equals(projectType)) {
enterpriseStandardPlans = BeanCopyUtils.copyBeanList(processEsInitChanges, EnterpriseStandardPlan.class);
espService.saveOrUpdateBatch(enterpriseStandardPlans);
}
// 工作中止
if (ESPProjectType.WORK_TERMINATE.getValue().equals(projectType)) {
// 将企标计划变更状态设为取消
for (ProcessEsInitChange processEsInitChange : processEsInitChanges) {
processEsInitChange.setProjectStatus(ESPChangeType.CANCEL.getValue());
}
enterpriseStandardPlans = BeanCopyUtils.copyBeanList(processEsInitChanges, EnterpriseStandardPlan.class);
espService.saveOrUpdateBatch(enterpriseStandardPlans);
}
// 责任部门变更
if (ESPProjectType.RESPONSIBLE_DEPT_CHANGE.getValue().equals(projectType)) {
// 将企标计划变更状态设为变更
for (ProcessEsInitChange processEsInitChange : processEsInitChanges) {
processEsInitChange.setProjectStatus(ESPChangeType.CHANGE.getValue());
}
enterpriseStandardPlans = BeanCopyUtils.copyBeanList(processEsInitChanges, EnterpriseStandardPlan.class);
espService.saveOrUpdateBatch(enterpriseStandardPlans);
}
// 合并
if (ESPProjectType.MERGE.getValue().equals(projectType)) {
for (ProcessEsInitChange processEsInitChange : processEsInitChanges) {
processEsInitChange.setId(null);
}
// 删除两个老企标计划
espService.deleteById(processEsInitChanges.get(0).getStandardIdOne());
espService.deleteById(processEsInitChanges.get(0).getStandardIdTwo());
// 生成新企标计划
enterpriseStandardPlans = BeanCopyUtils.copyBeanList(processEsInitChanges, EnterpriseStandardPlan.class);
espService.saveOrUpdateBatch(enterpriseStandardPlans);
}
}
log.info("数据存入企标计划数据库");
// 软删除流程数据
esInitChangeService.removeByProcessInstanceId(processInstanceId);
log.info("软删除流程数据");
//TODO 发起制修订流程
log.info("自动发起企标制修订流程");
} }
} }