feat: 企标废止流程监听器
This commit is contained in:
+22
-71
@@ -1,6 +1,12 @@
|
||||
package com.jero.modules.activiti.process.esAbolish.listener;
|
||||
|
||||
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.esAbolish.service.ProcessEsAbolishService;
|
||||
import com.jero.modules.activiti.process.esEnable.entity.ProcessEsEnable;
|
||||
import com.jero.modules.activiti.process.esEnable.service.ProcessEsEnableService;
|
||||
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.ESPChangeType;
|
||||
@@ -9,6 +15,8 @@ import com.jero.modules.activiti.process.esInitChange.service.ProcessEsInitChang
|
||||
import com.jero.modules.laws.enterprise.entity.EnterpriseStandardPlan;
|
||||
import com.jero.modules.laws.enterprise.service.EnterpriseStandardPlanService;
|
||||
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 org.activiti.engine.delegate.DelegateExecution;
|
||||
import org.activiti.engine.delegate.ExecutionListener;
|
||||
@@ -26,85 +34,28 @@ import java.util.List;
|
||||
public class ProcessESAbolishEndListener implements ExecutionListener {
|
||||
|
||||
@Resource
|
||||
private EnterpriseStandardPlanService espService;
|
||||
private ILawsEnterpriseStandardService esService;
|
||||
|
||||
@Resource
|
||||
private ProcessEsInitChangeService esInitChangeService;
|
||||
private ProcessEsAbolishService esAbolishService;
|
||||
|
||||
/**
|
||||
* 企标立项变更流程结束之后需要把数据存入企标计划数据库 然后自动发起企标制修订流程
|
||||
* 企标废止流程结束之后需要把标准状态设为废止
|
||||
* @param delegateExecution
|
||||
*/
|
||||
@Override
|
||||
public void notify(DelegateExecution delegateExecution) {
|
||||
log.info("企标立项变更流程结束 监听执行器开始执行");
|
||||
// 获取流程实例ID
|
||||
log.info("企标废止流程结束 监听执行器开始执行");
|
||||
// 找到流程实例Id
|
||||
String processInstanceId = delegateExecution.getProcessInstanceId();
|
||||
// 根据流程实例Id找到所有流程业务数据
|
||||
LambdaQueryWrapper<ProcessEsInitChange> esInitChangeWrapper = new LambdaQueryWrapper<>();
|
||||
esInitChangeWrapper.eq(ProcessEsInitChange::getProcessInstanceId, processInstanceId);
|
||||
List<ProcessEsInitChange> processEsInitChanges = esInitChangeService.list(esInitChangeWrapper);
|
||||
String applicationCategory = processEsInitChanges.get(0).getApplicationCategory();
|
||||
String projectType = processEsInitChanges.get(0).getProjectType();
|
||||
List<EnterpriseStandardPlan> enterpriseStandardPlans;
|
||||
if (ESPApplicationCategoryEnum.INITIATION.getValue().equals(applicationCategory)) {
|
||||
// 立项新增-Id置空
|
||||
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("自动发起企标制修订流程");
|
||||
LambdaQueryWrapper<ProcessEsAbolish> abolishLambdaQueryWrapper = new LambdaQueryWrapper<>();
|
||||
abolishLambdaQueryWrapper.eq(ProcessEsAbolish::getProcessInstanceId, processInstanceId);
|
||||
ProcessEsAbolish abolish = esAbolishService.getOne(abolishLambdaQueryWrapper);
|
||||
String standNo = abolish.getStandardNumber();
|
||||
log.info("企标废止流程监听执行器开始执行,企标编号为:{}", standNo);
|
||||
esService.update(new LambdaUpdateWrapper<LawsEnterpriseStandard>()
|
||||
.set(LawsEnterpriseStandard::getStandardState, StandardStateEnum.ABOLISH.getStateValue())
|
||||
.eq(LawsEnterpriseStandard::getStandardNumber, standNo));
|
||||
log.info("企标废止流程结束监听执行器执行结束");
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user