feat: 流程结束后保存到企标计划

This commit is contained in:
2023-10-12 16:04:49 +08:00
parent 4fbcc54dcf
commit 77a91b5587
3 changed files with 47 additions and 8 deletions
@@ -1,9 +1,19 @@
package com.jero.modules.activiti.process.esInitChange.listener;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.jero.common.aspect.annotation.RedisLock;
import com.jero.modules.activiti.process.esInitChange.entity.ProcessEsInitChange;
import com.jero.modules.activiti.process.esInitChange.service.ProcessEsInitChangeService;
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 lombok.extern.slf4j.Slf4j;
import org.activiti.engine.delegate.DelegateExecution;
import org.activiti.engine.delegate.ExecutionListener;
import javax.annotation.Resource;
import java.util.List;
/**
* @author: Mzaxd
* @Date: 2023/10/10 14:14
@@ -11,16 +21,30 @@ import org.activiti.engine.delegate.ExecutionListener;
@Slf4j
public class ProcessESInitChangeEndListener implements ExecutionListener {
@Resource
private EnterpriseStandardPlanService espService;
@Resource
private ProcessEsInitChangeService esInitChangeService;
/**
* 企标立项变更流程结束之后需要把数据存入企标计划数据库 然后自动发起企标制修订流程
* @param delegateExecution
*/
@Override
public void notify(DelegateExecution delegateExecution) {
//TODO 企标立项变更流程结束之后需要把数据存入企标计划数据库 然后自动发起企标制修订流程
// 获取流程实例ID
String processInstanceId = delegateExecution.getProcessInstanceId();
// 根据流程实例Id找到所有流程业务数据
LambdaQueryWrapper<ProcessEsInitChange> esInitChangeWrapper = new LambdaQueryWrapper<>();
esInitChangeWrapper.eq(ProcessEsInitChange::getProcessInstanceId, processInstanceId);
List<ProcessEsInitChange> processEsInitChanges = esInitChangeService.list(esInitChangeWrapper);
// 立项新增变更编辑
List<EnterpriseStandardPlan> enterpriseStandardPlans = BeanCopyUtils.copyBeanList(processEsInitChanges, EnterpriseStandardPlan.class);
espService.saveOrUpdateBatch(enterpriseStandardPlans);
// 软删除流程数据
esInitChangeService.removeByProcessInstanceId(processInstanceId);
// 立项新增
// 变更编辑
// 发起制修订流程
//TODO 发起制修订流程
}
}
@@ -45,4 +45,10 @@ public interface ProcessEsInitChangeService extends IService<ProcessEsInitChange
* @param esInitChange
*/
void saveToDraft(List<ProcessEsInitChange> esInitChange);
/**
* 软删除实例数据
* @param processInstanceId
*/
void removeByProcessInstanceId(String processInstanceId);
}
@@ -3,6 +3,7 @@ package com.jero.modules.activiti.process.esInitChange.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.jero.common.constant.enums.YesOrNoEnum;
import com.jero.common.exception.JeroBootException;
import com.jero.modules.activiti.process.common.entity.ProcessDraft;
import com.jero.modules.activiti.process.common.enums.ProcessType;
@@ -85,7 +86,7 @@ public class ProcessEsInitChangeServiceImpl extends ServiceImpl<ProcessEsInitCha
public void startInitChange(List<ProcessEsInitChange> esInitChangeList) {
// 校验企标编号是否冲突
if (!esUtil.verifyEnStandardNumber(esInitChangeList.get(0).getOriginEnStandardNo())) {
throw new JeroBootException("企标编号冲突");
throw new JeroBootException("企标编号冲突,请重新生成");
}
String processDefinitionKey = ProcessType.ES_INIT_CHANGE.getProcessKey();
@@ -174,6 +175,14 @@ public class ProcessEsInitChangeServiceImpl extends ServiceImpl<ProcessEsInitCha
processDraftService.saveBatch(draftList);
}
@Override
public void removeByProcessInstanceId(String processInstanceId) {
LambdaUpdateWrapper<ProcessEsInitChange> updateWrapper = new LambdaUpdateWrapper<>();
updateWrapper.eq(ProcessEsInitChange::getProcessInstanceId, processInstanceId)
.set(ProcessEsInitChange::getDelFlag, YesOrNoEnum.YES.getValue());
update(updateWrapper);
}
@Override
public List<String> getSequenceNumbers(String esCodeDictValue, String esNameCodeDictValue, String categoryCodeDictValue) {
// 已经存在的标准