diff --git a/laws-modules/src/main/java/com/jero/modules/activiti/process/esinspectplan/service/impl/EsInspectPlanFlowServiceImpl.java b/laws-modules/src/main/java/com/jero/modules/activiti/process/esinspectplan/service/impl/EsInspectPlanFlowServiceImpl.java index 1fd91451..a9ee80cb 100644 --- a/laws-modules/src/main/java/com/jero/modules/activiti/process/esinspectplan/service/impl/EsInspectPlanFlowServiceImpl.java +++ b/laws-modules/src/main/java/com/jero/modules/activiti/process/esinspectplan/service/impl/EsInspectPlanFlowServiceImpl.java @@ -8,6 +8,7 @@ import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; import com.baomidou.mybatisplus.core.toolkit.StringUtils; import com.jero.common.api.dto.message.SendMessageDTO; import com.jero.common.api.vo.SendMessageAPI; +import com.jero.common.exception.JeroBootException; import com.jero.common.system.vo.LoginUser; import com.jero.common.util.SnowflakeUtils; import com.jero.modules.activiti.entity.ProcessAll; @@ -19,6 +20,10 @@ import com.jero.modules.activiti.enums.ProcessStatusEnum; import com.jero.modules.activiti.process.common.entity.ProcessDraft; import com.jero.modules.activiti.process.common.enums.ProcessType; import com.jero.modules.activiti.process.common.service.ProcessDraftService; +import com.jero.modules.activiti.process.esAbolish.entity.ProcessEsAbolish; +import com.jero.modules.activiti.process.esAbolish.service.ProcessEsAbolishService; +import com.jero.modules.activiti.process.esArchive.entity.ProcessEsArchive; +import com.jero.modules.activiti.process.esArchive.service.ProcessEsArchiveService; import com.jero.modules.activiti.process.esinspectplan.common.EsInspectPlanCommon; import com.jero.modules.activiti.process.esinspectplan.entity.ProcessEsInspectPlan; import com.jero.modules.activiti.process.esinspectplan.entity.ProcessEsInspectPlanOpinion; @@ -74,6 +79,8 @@ public class EsInspectPlanFlowServiceImpl implements IEsInspectPlanFlowService { private final EnterpriseStandardInspectService enterpriseStandardInspectService; private final EnterpriseStandardInspectObjectService enterpriseStandardInspectObjectService; private final IProcessEsInspectPlanOpinionService processEsInspectPlanOpinionService; + private final ProcessEsAbolishService processEsAbolishService; + private final ProcessEsArchiveService processEsArchiveService; public EsInspectPlanFlowServiceImpl(ProcessAllService processAllService, ProcessApprovalRecordService processApprovalRecordService, ProcessDraftService processDraftService, @@ -85,7 +92,9 @@ public class EsInspectPlanFlowServiceImpl implements IEsInspectPlanFlowService { SendMessageAPI sendMessageAPI, EnterpriseStandardInspectService enterpriseStandardInspectService, EnterpriseStandardInspectObjectService enterpriseStandardInspectObjectService, - IProcessEsInspectPlanOpinionService processEsInspectPlanOpinionService) { + IProcessEsInspectPlanOpinionService processEsInspectPlanOpinionService, + ProcessEsAbolishService processEsAbolishService, + ProcessEsArchiveService processEsArchiveService) { this.processAllService = processAllService; this.processApprovalRecordService = processApprovalRecordService; this.processDraftService = processDraftService; @@ -98,6 +107,8 @@ public class EsInspectPlanFlowServiceImpl implements IEsInspectPlanFlowService { this.enterpriseStandardInspectService = enterpriseStandardInspectService; this.enterpriseStandardInspectObjectService = enterpriseStandardInspectObjectService; this.processEsInspectPlanOpinionService = processEsInspectPlanOpinionService; + this.processEsAbolishService = processEsAbolishService; + this.processEsArchiveService = processEsArchiveService; } ProcessEngine processEngine = ProcessEngines.getDefaultProcessEngine(); @@ -161,7 +172,7 @@ public class EsInspectPlanFlowServiceImpl implements IEsInspectPlanFlowService { private void handleBusinessData(EsInspectPlanFlowVO esInspectPlanFlowVO) { List processEsInspectPlanList = esInspectPlanFlowVO.getProcessEsInspectPlanList(); // 删除数据 - if (StringUtils.isNotBlank(esInspectPlanFlowVO.getProcessAllDelIds())){ + if (StringUtils.isNotBlank(esInspectPlanFlowVO.getProcessAllDelIds())) { List idList = Arrays.asList(esInspectPlanFlowVO.getProcessAllDelIds().split(",")); processEsInspectPlanService.removeByIds(idList); processEsInspectPlanOpinionService.removeByIds(idList); @@ -169,7 +180,10 @@ public class EsInspectPlanFlowServiceImpl implements IEsInspectPlanFlowService { ProcessAll processAll = esInspectPlanFlowVO.getProcessAll(); String projectId = processAll.getProjectId(); - List updateProcessEsInspectPlanList = processEsInspectPlanList.stream() + // 废止/封存判断 + List updateProcessEsInspectPlanList = null; + checkout(updateProcessEsInspectPlanList); + updateProcessEsInspectPlanList = processEsInspectPlanList.stream() .filter(v -> StringUtils.isNotBlank(v.getId())) .map(v -> { v.setProjectId(projectId); @@ -191,7 +205,7 @@ public class EsInspectPlanFlowServiceImpl implements IEsInspectPlanFlowService { LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal(); // 处理意见 - if (EsInspectPlanCommon.PROCESS_NODE_2.equals(processAll.getNodeId())){ + if (EsInspectPlanCommon.PROCESS_NODE_2.equals(processAll.getNodeId())) { ArrayList processEsInspectPlanOpinions = new ArrayList<>(); for (ProcessEsInspectPlan processEsInspectPlan : processEsInspectPlanList) { if (!Objects.isNull(processEsInspectPlan.getProcessEsInspectPlanOpinion())) { @@ -206,6 +220,46 @@ public class EsInspectPlanFlowServiceImpl implements IEsInspectPlanFlowService { } } + private void checkout(List processEsInspectPlanList){ + List errorList = new ArrayList<>(); + for (ProcessEsInspectPlan processEsInspectPlan : processEsInspectPlanList) { + String inspectNo = processEsInspectPlan.getInspectNo(); + // 企标废止 + ProcessEsAbolish processEsAbolish = processEsAbolishService.getOne( + new LambdaQueryWrapper() + .eq(ProcessEsAbolish::getStandardNumber, inspectNo) + .orderByDesc(ProcessEsAbolish::getCreateTime) + .last("limit 1"), false); + if (!Objects.isNull(processEsAbolish)){ + ProcessAll processAll = processAllService.getOne( + new LambdaQueryWrapper() + .eq(ProcessAll::getProcessInstanceId, processEsAbolish.getProcessInstanceId())); + if (!Objects.isNull(processEsAbolish) + && ProcessStatusEnum.INCOMPLETE.getValue().equals(processAll.getPrcStatus())){ + errorList.add(inspectNo); + } + } + + // 企标封存 + ProcessEsArchive processEsArchive = processEsArchiveService.getOne( + new LambdaQueryWrapper() + .eq(ProcessEsArchive::getStandardNumber, inspectNo) + .orderByDesc(ProcessEsArchive::getCreateTime) + .last("limit 1"), false); + if (!Objects.isNull(processEsArchive)){ + ProcessAll processAll = processAllService.getOne( + new LambdaQueryWrapper() + .eq(ProcessAll::getProcessInstanceId, processEsArchive.getProcessInstanceId())); + if (!Objects.isNull(processAll) + && ProcessStatusEnum.INCOMPLETE.getValue().equals(processAll.getPrcStatus())){ + errorList.add(inspectNo); + } + } + } + if (!errorList.isEmpty()){ + throw new JeroBootException("企标编号为" + String.join(",", errorList) + "的数据已在企标废止/封存流程进行中,不可发起!"); + } + } @Override public void flowSave(EsInspectPlanFlowVO esInspectPlanFlowVO) { diff --git a/laws-modules/src/main/java/com/jero/modules/activiti/process/fb/service/impl/ProcessFbStandardConsultationServiceImpl.java b/laws-modules/src/main/java/com/jero/modules/activiti/process/fb/service/impl/ProcessFbStandardConsultationServiceImpl.java index 379797a8..da736ca9 100644 --- a/laws-modules/src/main/java/com/jero/modules/activiti/process/fb/service/impl/ProcessFbStandardConsultationServiceImpl.java +++ b/laws-modules/src/main/java/com/jero/modules/activiti/process/fb/service/impl/ProcessFbStandardConsultationServiceImpl.java @@ -755,7 +755,11 @@ public class ProcessFbStandardConsultationServiceImpl extends ServiceImpl() + .eq(ProcessApprovalRecord::getProcessInstanceId, processInstanceId) + .eq(ProcessApprovalRecord::getOverDue, YesOrNoEnum.YES.getValue())); // 发送邮件 try { sendMessage(businessId); diff --git a/laws-modules/src/main/java/com/jero/modules/activiti/service/ProcessAllService.java b/laws-modules/src/main/java/com/jero/modules/activiti/service/ProcessAllService.java index e3ab2d2c..215d9ae7 100644 --- a/laws-modules/src/main/java/com/jero/modules/activiti/service/ProcessAllService.java +++ b/laws-modules/src/main/java/com/jero/modules/activiti/service/ProcessAllService.java @@ -2,7 +2,6 @@ package com.jero.modules.activiti.service; import cn.hutool.core.collection.CollStreamUtil; import cn.hutool.core.util.StrUtil; -import com.alibaba.fastjson.JSON; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; @@ -10,13 +9,11 @@ import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.jero.common.api.dto.message.SendMessageDTO; -import com.jero.common.api.vo.Result; import com.jero.common.api.vo.ResultCommon; import com.jero.common.api.vo.SendMessageAPI; import com.jero.common.constant.enums.YesOrNoEnum; import com.jero.common.exception.JeroBootException; import com.jero.common.system.vo.LoginUser; -import com.jero.modules.activiti.controller.WorkCenterController; import com.jero.modules.activiti.entity.ProcessAll; import com.jero.modules.activiti.entity.ProcessApprovalRecord; import com.jero.modules.activiti.enums.FinishFlagEnum; @@ -29,10 +26,8 @@ import com.jero.modules.activiti.process.common.service.ProcessDraftService; import com.jero.modules.activiti.process.esInitChange.entity.enums.ESPProjectStatus; import com.jero.modules.activiti.process.esRevision.entity.ProcessEsRevision; import com.jero.modules.activiti.process.esRevision.service.EsRevisionService; -import com.jero.modules.activiti.util.SpringContextUtil; import com.jero.modules.activiti.vo.DelegateTaskParam; import com.jero.modules.activiti.vo.ResolveTaskParam; -import com.jero.modules.laws.common.constant.FieldCommon; import com.jero.modules.laws.common.constant.MessageTemplateCodeCommon; import com.jero.modules.laws.common.util.CurrentUserUtil; import com.jero.modules.laws.enterprise.entity.EnterpriseStandardPlan; @@ -42,7 +37,6 @@ import org.activiti.engine.HistoryService; import org.activiti.engine.RuntimeService; import org.activiti.engine.TaskService; import org.activiti.engine.task.Task; -import org.apache.commons.collections4.CollectionUtils; import org.apache.commons.lang3.StringUtils; import org.apache.shiro.SecurityUtils; import org.springframework.stereotype.Service; @@ -114,6 +108,7 @@ public class ProcessAllService extends ServiceImpl wrapper.select("process_instance_id","group_concat(user_id) as user_id"); wrapper.lambda().in(ProcessApprovalRecord::getProcessInstanceId,collect) .eq(ProcessApprovalRecord::getFinishFlag,FinishFlagEnum.INCOMPLETE.getValue()) + .eq(ProcessApprovalRecord::getOverDue, YesOrNoEnum.NO.getValue()) .groupBy(ProcessApprovalRecord::getProcessInstanceId); List approvalRecordList = approvalRecordService.list(wrapper); Map userMap = CollStreamUtil.toMap(approvalRecordList, ProcessApprovalRecord::getProcessInstanceId, ProcessApprovalRecord::getUserId); diff --git a/laws-modules/src/main/java/com/jero/modules/activiti/service/ProcessApprovalRecordService.java b/laws-modules/src/main/java/com/jero/modules/activiti/service/ProcessApprovalRecordService.java index 5c5ef794..a3dc447f 100644 --- a/laws-modules/src/main/java/com/jero/modules/activiti/service/ProcessApprovalRecordService.java +++ b/laws-modules/src/main/java/com/jero/modules/activiti/service/ProcessApprovalRecordService.java @@ -5,6 +5,7 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.jero.common.constant.enums.YesOrNoEnum; import com.jero.common.system.api.ISysBaseAPI; import com.jero.modules.activiti.entity.ProcessAll; import com.jero.modules.activiti.entity.ProcessApprovalRecord; @@ -47,6 +48,7 @@ public class ProcessApprovalRecordService extends ServiceImpl pageList = this.page(page, wrapper);