fix: 81853 企标更改流程--流程进行中,企标删除成功了

This commit is contained in:
2024-02-19 15:21:19 +08:00
parent 3f94b3ac03
commit 4525ba3cc2
3 changed files with 53 additions and 0 deletions
@@ -20,4 +20,9 @@ public interface ProcessEsChangeService extends IService<ProcessEsChange> {
void approval(ESChangeDataVO changeData, boolean pass);
/**
* 检查是否在流程中,如果在流程中则不允许删除
* @param ids
*/
void delCheck(String ids);
}
@@ -7,6 +7,8 @@ import com.jero.common.api.vo.ResultCommon;
import com.jero.common.aspect.TranslationAspect;
import com.jero.common.constant.enums.YesOrNoEnum;
import com.jero.common.exception.JeroBootException;
import com.jero.modules.activiti.entity.ProcessAll;
import com.jero.modules.activiti.enums.ProcessStatusEnum;
import com.jero.modules.activiti.enums.ProcessTypeEnum;
import com.jero.modules.activiti.process.common.entity.CommonVO;
import com.jero.modules.activiti.process.common.entity.CounterSignNodeNameConstants;
@@ -25,6 +27,7 @@ import com.jero.modules.activiti.process.esChange.mapper.ProcessEsChangeMapper;
import com.jero.modules.activiti.process.fb.dto.BasicProcessInfoDTO;
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.laws.standard.entity.LawsEnterpriseStandard;
import com.jero.modules.laws.standard.service.ILawsEnterpriseStandardService;
@@ -40,6 +43,7 @@ import org.springframework.transaction.annotation.Transactional;
import javax.annotation.Resource;
import java.util.*;
import java.util.stream.Collectors;
/**
* @author ThinkBook
@@ -76,6 +80,9 @@ public class ProcessEsChangeServiceImpl extends ServiceImpl<ProcessEsChangeMappe
@Resource
private TranslationAspect translationAspect;
@Resource
private ProcessAllService processAllService;
@Override
public void startProcess(ESChangeDataVO changeData) {
// 执行流程发起前的操作
@@ -255,6 +262,39 @@ public class ProcessEsChangeServiceImpl extends ServiceImpl<ProcessEsChangeMappe
}
}
@Override
public void delCheck(String ids) {
String[] idsList = ids.split(",");
// 找到所有进行中的企标修改流程
LambdaQueryWrapper<ProcessAll> processAllWrapper = new LambdaQueryWrapper<>();
processAllWrapper.eq(ProcessAll::getPrcType, ProcessTypeEnum.ES_CHANGE.getValue());
processAllWrapper.eq(ProcessAll::getPrcStatus, ProcessStatusEnum.INCOMPLETE.getValue());
List<ProcessAll> processAllList = processAllService.list(processAllWrapper);
if (processAllList.isEmpty()) {
return;
}
// 获取所有流程实例ID
List<String> processInstanceIdList = new ArrayList<>();
for (ProcessAll processAll : processAllList) {
processInstanceIdList.add(processAll.getProcessInstanceId());
}
// 根据所有流程实例Id找到相应的企标修改流程
LambdaQueryWrapper<ProcessEsChange> processEsChangeWrapper = new LambdaQueryWrapper<>();
processEsChangeWrapper.in(ProcessEsChange::getProcessInstanceId, processInstanceIdList);
List<ProcessEsChange> processEsChangeList = list(processEsChangeWrapper);
Map<String, List<ProcessEsChange>> processEsChangeMap = processEsChangeList.stream()
.filter(e -> e.getStandardId() != null)
.collect(Collectors.groupingBy(ProcessEsChange::getStandardId));
// 判断是否有进行中的企标修改流程
for (String id : idsList) {
if (processEsChangeMap.containsKey(id)) {
List<ProcessEsChange> processEsChanges = processEsChangeMap.get(id);
throw new JeroBootException("标准编号为:" + processEsChanges.get(0).getStandardNumber() + "已在企标变更流程进行中,不可删除!");
}
}
}
}