diff --git a/laws-modules/src/main/java/com/jero/modules/activiti/process/esInitChange/service/impl/ProcessEsInitChangeServiceImpl.java b/laws-modules/src/main/java/com/jero/modules/activiti/process/esInitChange/service/impl/ProcessEsInitChangeServiceImpl.java index 9912b5cb..b2094913 100644 --- a/laws-modules/src/main/java/com/jero/modules/activiti/process/esInitChange/service/impl/ProcessEsInitChangeServiceImpl.java +++ b/laws-modules/src/main/java/com/jero/modules/activiti/process/esInitChange/service/impl/ProcessEsInitChangeServiceImpl.java @@ -4,6 +4,7 @@ import cn.hutool.core.util.StrUtil; 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.api.vo.Result; import com.jero.common.api.vo.ResultCommon; import com.jero.common.constant.enums.YesOrNoEnum; import com.jero.common.exception.JeroBootException; @@ -14,13 +15,17 @@ import com.jero.modules.activiti.process.common.enums.ProcessType; import com.jero.modules.activiti.process.common.service.ActFlowCommonService; import com.jero.modules.activiti.process.esInitChange.entity.EsInitChangeConstant; 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.ESPProjectType; import com.jero.modules.activiti.process.esInitChange.entity.vo.InitChangeDataVO; import com.jero.modules.activiti.process.esInitChange.service.ProcessEsInitChangeService; import com.jero.modules.activiti.process.esInitChange.mapper.ProcessEsInitChangeMapper; +import com.jero.modules.activiti.process.esRevision.entity.ProcessEsRevision; +import com.jero.modules.activiti.process.esRevision.service.EsRevisionService; 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.enterprise.service.ESSequenceNumberProvider; import com.jero.modules.laws.enterprise.util.EnterpriseStandardUtil; @@ -34,6 +39,7 @@ import org.activiti.engine.runtime.ProcessInstance; import org.activiti.engine.task.Task; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; +import org.springframework.web.bind.annotation.RequestBody; import javax.annotation.Resource; import java.util.*; @@ -72,8 +78,16 @@ public class ProcessEsInitChangeServiceImpl extends ServiceImpl esInitChangeList = initChangeData.getDataList(); // 校验企标编号是否冲突 ProcessEsInitChange initChange = esInitChangeList.get(0); @@ -282,6 +296,28 @@ public class ProcessEsInitChangeServiceImpl extends ServiceImpl esInitChangeList = initChangeData.getDataList(); + // 校验企标编号是否冲突 + ProcessEsInitChange initChange = esInitChangeList.get(0); + // 如果是变更流程,则需要撤回制修订流程 + if (ESPApplicationCategoryEnum.CHANGE.getValue().equals(initChange.getApplicationCategory())) { + List espIdList = initChangeData.getDataList().stream().map(ProcessEsInitChange::getEspId).collect(Collectors.toList()); + LambdaQueryWrapper lambdaQueryWrapper = new LambdaQueryWrapper<>(); + lambdaQueryWrapper.in(ProcessEsRevision::getEspId, espIdList); + lambdaQueryWrapper.eq(ProcessEsRevision::getDelFlag, YesOrNoEnum.NO.getValue()); + List enactList = revisionService.list(lambdaQueryWrapper); + if (enactList == null || enactList.isEmpty()) { + return; + } + for (ProcessEsRevision esRevision : enactList) { + String processInstanceId = esRevision.getProcessInstanceId(); + processAllService.forcedWithdrawal(processInstanceId); + processAllService.updateDraftStatusByProjectId(esRevision.getId()); + } + } + } + @Override public List getSequenceNumbers(String esCodeDictValue, String esNameCodeDictValue, String categoryCodeDictValue) { // 已经存在的标准