feat: 企标启用流程监听器
This commit is contained in:
+38
@@ -0,0 +1,38 @@
|
|||||||
|
package com.jero.modules.activiti.process.common.enums;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author: Mzaxd
|
||||||
|
* @Date: 2023/11/20 14:50
|
||||||
|
*/
|
||||||
|
public enum StandardStateEnum {
|
||||||
|
|
||||||
|
DRAFT("草稿","1"),
|
||||||
|
SEEK_FOR_OPINIONS("征求意见","2"),
|
||||||
|
EXAMINE("审查","3"),
|
||||||
|
APPROVAL("报批","4"),
|
||||||
|
PRE_RELEASE("预发布","5"),
|
||||||
|
RELEASE("发布","6"),
|
||||||
|
TRIAL_OPERATION("试运行","7"),
|
||||||
|
CURRENTLY_EFFECTIVE("现行有效","8"),
|
||||||
|
ABOLISH("废止","9"),
|
||||||
|
ARCHIVE("封存","A"),
|
||||||
|
;
|
||||||
|
|
||||||
|
private final String stateName;
|
||||||
|
|
||||||
|
private final String stateValue;
|
||||||
|
|
||||||
|
StandardStateEnum(String stateName, String stateValue) {
|
||||||
|
this.stateName = stateName;
|
||||||
|
this.stateValue = stateValue;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getStateName() {
|
||||||
|
return stateName;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getStateValue() {
|
||||||
|
return stateValue;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
+23
-70
@@ -1,14 +1,21 @@
|
|||||||
package com.jero.modules.activiti.process.esEnable.listener;
|
package com.jero.modules.activiti.process.esEnable.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.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.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;
|
||||||
import com.jero.modules.activiti.process.esInitChange.entity.enums.ESPProjectType;
|
import com.jero.modules.activiti.process.esInitChange.entity.enums.ESPProjectType;
|
||||||
import com.jero.modules.activiti.process.esInitChange.service.ProcessEsInitChangeService;
|
import com.jero.modules.activiti.process.esInitChange.service.ProcessEsInitChangeService;
|
||||||
|
import com.jero.modules.activiti.process.esRecheck.entity.ProcessEsRecheck;
|
||||||
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;
|
||||||
@@ -17,6 +24,9 @@ import org.springframework.stereotype.Component;
|
|||||||
import javax.annotation.Resource;
|
import javax.annotation.Resource;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
|
import static com.jero.modules.activiti.process.esRecheck.entity.ProcessRecheckConstants.*;
|
||||||
|
import static com.jero.modules.activiti.process.esRecheck.entity.ProcessRecheckConstants.RECHECK_ARCHIVE;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @author: Mzaxd
|
* @author: Mzaxd
|
||||||
* @Date: 2023/10/10 14:14
|
* @Date: 2023/10/10 14:14
|
||||||
@@ -26,10 +36,10 @@ import java.util.List;
|
|||||||
public class ProcessESEnableEndListener implements ExecutionListener {
|
public class ProcessESEnableEndListener implements ExecutionListener {
|
||||||
|
|
||||||
@Resource
|
@Resource
|
||||||
private EnterpriseStandardPlanService espService;
|
private ProcessEsEnableService esEnableService;
|
||||||
|
|
||||||
@Resource
|
@Resource
|
||||||
private ProcessEsInitChangeService esInitChangeService;
|
private ILawsEnterpriseStandardService esService;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 企标立项变更流程结束之后需要把数据存入企标计划数据库 然后自动发起企标制修订流程
|
* 企标立项变更流程结束之后需要把数据存入企标计划数据库 然后自动发起企标制修订流程
|
||||||
@@ -37,74 +47,17 @@ public class ProcessESEnableEndListener 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<ProcessEsEnable> enableLambdaQueryWrapper = new LambdaQueryWrapper<>();
|
||||||
LambdaQueryWrapper<ProcessEsInitChange> esInitChangeWrapper = new LambdaQueryWrapper<>();
|
enableLambdaQueryWrapper.eq(ProcessEsEnable::getProcessInstanceId, processInstanceId);
|
||||||
esInitChangeWrapper.eq(ProcessEsInitChange::getProcessInstanceId, processInstanceId);
|
ProcessEsEnable enable = esEnableService.getOne(enableLambdaQueryWrapper);
|
||||||
List<ProcessEsInitChange> processEsInitChanges = esInitChangeService.list(esInitChangeWrapper);
|
String standNo = enable.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.CURRENTLY_EFFECTIVE.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("自动发起企标制修订流程");
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
+3
-5
@@ -3,6 +3,7 @@ package com.jero.modules.activiti.process.esRecheck.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.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
|
||||||
import com.jero.common.system.api.ISysBaseAPI;
|
import com.jero.common.system.api.ISysBaseAPI;
|
||||||
|
import com.jero.modules.activiti.process.common.enums.StandardStateEnum;
|
||||||
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;
|
||||||
@@ -47,9 +48,6 @@ public class ProcessESRecheckEndListener implements ExecutionListener {
|
|||||||
@Resource
|
@Resource
|
||||||
private ILawsEnterpriseStandardService esService;
|
private ILawsEnterpriseStandardService esService;
|
||||||
|
|
||||||
@Resource
|
|
||||||
private ISysBaseAPI sysBaseAPI;
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void notify(DelegateExecution delegateExecution) {
|
public void notify(DelegateExecution delegateExecution) {
|
||||||
log.info("企标复审流程结束 监听执行器开始执行");
|
log.info("企标复审流程结束 监听执行器开始执行");
|
||||||
@@ -71,14 +69,14 @@ public class ProcessESRecheckEndListener implements ExecutionListener {
|
|||||||
// 废止
|
// 废止
|
||||||
LambdaUpdateWrapper<LawsEnterpriseStandard> esWrapper = new LambdaUpdateWrapper<>();
|
LambdaUpdateWrapper<LawsEnterpriseStandard> esWrapper = new LambdaUpdateWrapper<>();
|
||||||
esWrapper.eq(LawsEnterpriseStandard::getStandardNumber, standNo);
|
esWrapper.eq(LawsEnterpriseStandard::getStandardNumber, standNo);
|
||||||
esWrapper.set(LawsEnterpriseStandard::getStandardState, "9");
|
esWrapper.set(LawsEnterpriseStandard::getStandardState, StandardStateEnum.ABOLISH.getStateValue());
|
||||||
esService.update(esWrapper);
|
esService.update(esWrapper);
|
||||||
}
|
}
|
||||||
if (RECHECK_ARCHIVE.equals(recheckAdvice)) {
|
if (RECHECK_ARCHIVE.equals(recheckAdvice)) {
|
||||||
// 封存
|
// 封存
|
||||||
LambdaUpdateWrapper<LawsEnterpriseStandard> esWrapper = new LambdaUpdateWrapper<>();
|
LambdaUpdateWrapper<LawsEnterpriseStandard> esWrapper = new LambdaUpdateWrapper<>();
|
||||||
esWrapper.eq(LawsEnterpriseStandard::getStandardNumber, standNo);
|
esWrapper.eq(LawsEnterpriseStandard::getStandardNumber, standNo);
|
||||||
esWrapper.set(LawsEnterpriseStandard::getStandardState, "A");
|
esWrapper.set(LawsEnterpriseStandard::getStandardState, StandardStateEnum.ARCHIVE.getStateValue());
|
||||||
esService.update(esWrapper);
|
esService.update(esWrapper);
|
||||||
}
|
}
|
||||||
log.info("企标复审流程监听执行器执行结束");
|
log.info("企标复审流程监听执行器执行结束");
|
||||||
|
|||||||
Reference in New Issue
Block a user