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() + "已在企标变更流程进行中,不可删除!");
}
}
}
}
@@ -8,6 +8,7 @@ import com.jero.common.api.vo.Result;
import com.jero.common.aspect.annotation.AutoLog;
import com.jero.common.exception.JeroBootException;
import com.jero.common.util.MessageUtils;
import com.jero.modules.activiti.process.esChange.service.ProcessEsChangeService;
import com.jero.modules.compare.service.ISarFileCompareInfoService;
import com.jero.modules.laws.common.constant.FieldCommon;
import com.jero.common.api.vo.ResultCommon;
@@ -80,6 +81,9 @@ public class LawsEnterpriseController {
@Resource
private ILawsCustomCompareInfoService customCompareService;
@Resource
private ProcessEsChangeService esChangeService;
private static final String MODULE_VALUE = TableNameEnum.ENTERPRISE_STANDARDS.getValue();
@AutoLog(value = "企业法规标准-分页列表查询")
@@ -183,6 +187,8 @@ public class LawsEnterpriseController {
if (!auth) {
throw new JeroBootException(MessageUtils.getMessage(ResultCommon.NO_AUTH));
}
// 检查是否在企标更改流程中,如果在流程中则不允许删除
esChangeService.delCheck((String) parameterMap.get("ids"));
//删除标准时同步删除这个标准的收藏数据
lawsStandardCollectionService.deleteByStandardId((String) parameterMap.get("ids"));
lawsStandardSharingService.deleteByStandardId((String) parameterMap.get("ids"));
@@ -201,6 +207,8 @@ public class LawsEnterpriseController {
public Result<String> singleDelete(@RequestBody @ApiParam(name = "ids", value = "主键(多个用逗号分隔)") Map<String,Object> parameterMap) {
// 水平越权校验
esAuthUserService.isDeleteHorizontalOverstep((String) parameterMap.get("ids"));
// 检查是否在企标更改流程中,如果在流程中则不允许删除
esChangeService.delCheck((String) parameterMap.get("ids"));
// 删除标准时同步删除这个标准的收藏数据
lawsStandardCollectionService.deleteByStandardId((String) parameterMap.get("ids"));
lawsStandardSharingService.deleteByStandardId((String) parameterMap.get("ids"));