diff --git a/laws-modules/src/main/java/com/jero/modules/activiti/process/esRevision/controller/ESRevisionController.java b/laws-modules/src/main/java/com/jero/modules/activiti/process/esRevision/controller/ESRevisionController.java index 10a523b5..e8ffbebb 100644 --- a/laws-modules/src/main/java/com/jero/modules/activiti/process/esRevision/controller/ESRevisionController.java +++ b/laws-modules/src/main/java/com/jero/modules/activiti/process/esRevision/controller/ESRevisionController.java @@ -9,7 +9,6 @@ import com.jero.modules.activiti.process.common.entity.TransferVO; import com.jero.modules.activiti.process.common.service.ActFlowCommonService; import com.jero.modules.activiti.process.esRevision.entity.vo.ESRevisionDataVO; import com.jero.modules.activiti.process.esRevision.service.EsRevisionService; -import com.jero.modules.activiti.process.fb.service.IProcessHandleService; import com.jero.modules.activiti.process.fb.vo.ProcessInfoVO; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; @@ -19,8 +18,6 @@ import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; import javax.annotation.Resource; -import java.util.Arrays; -import java.util.List; /** @@ -141,16 +138,4 @@ public class ESRevisionController { return Result.OK(revisionService.getSignInfo(processInstanceId)); } - /** - * 更新所有已完成的企标计划的完成时间字段 - * - */ - @AutoLog(value = "企标制修订流程-更新所有已完成的企标计划的完成时间字段") - @ApiOperation(value="企标制修订流程-更新所有已完成的企标计划的完成时间字段", notes="企标制修订流程-更新所有已完成的企标计划的完成时间字段") - @GetMapping(value = "/updateAllPlanDate") - public Result updateAllPlanDate() { - revisionService.updateAllPlanDate(); - return Result.OK(); - } - } diff --git a/laws-modules/src/main/java/com/jero/modules/activiti/process/esRevision/listener/ProcessESRevisionEndListener.java b/laws-modules/src/main/java/com/jero/modules/activiti/process/esRevision/listener/ProcessESRevisionEndListener.java index bd55d677..fae3381e 100644 --- a/laws-modules/src/main/java/com/jero/modules/activiti/process/esRevision/listener/ProcessESRevisionEndListener.java +++ b/laws-modules/src/main/java/com/jero/modules/activiti/process/esRevision/listener/ProcessESRevisionEndListener.java @@ -7,7 +7,6 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.toolkit.IdWorker; import com.jero.common.constant.enums.YesOrNoEnum; import com.jero.modules.activiti.process.common.enums.StandardStateEnum; -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.entity.vo.ReviewMeetingDetailVO; import com.jero.modules.activiti.process.esRevision.service.EsRevisionService; @@ -29,7 +28,9 @@ import org.apache.commons.lang3.StringUtils; import org.springframework.stereotype.Component; import javax.annotation.Resource; -import java.util.*; +import java.util.LinkedHashMap; +import java.util.List; +import java.util.Map; /** * @author: Mzaxd @@ -125,16 +126,7 @@ public class ProcessESRevisionEndListener implements ExecutionListener { BeanCopyUtils.copyBeanList(reviewMeetingDetailVOS, EnterpriseStandardRmrEvaluateDetail.class); rmrEvaluateDetails.forEach(r -> r.setReviewMeetingId(esRmr.getId())); rmrDetailService.saveBatch(rmrEvaluateDetails); - // 企标计划改为已完成或者逾期完成 - Date curDate = new Date(); - if (curDate.after(esp.getPlanApprovalDate())) { - esp.setProjectStatus(ESPProjectStatus.OVERDUE_COMPLETED.getValue()); - } else { - esp.setProjectStatus(ESPProjectStatus.COMPLETED.getValue()); - } // 更新企标计划状态 espService.updateById(esp); - // 更新所有时间 - esRevisionService.updatePlanDateByProcessInstanceId(Collections.singletonList(processInstanceId)); } } diff --git a/laws-modules/src/main/java/com/jero/modules/activiti/process/esRevision/service/EsRevisionService.java b/laws-modules/src/main/java/com/jero/modules/activiti/process/esRevision/service/EsRevisionService.java index c0d4c84c..d8311693 100644 --- a/laws-modules/src/main/java/com/jero/modules/activiti/process/esRevision/service/EsRevisionService.java +++ b/laws-modules/src/main/java/com/jero/modules/activiti/process/esRevision/service/EsRevisionService.java @@ -1,5 +1,6 @@ package com.jero.modules.activiti.process.esRevision.service; +import com.jero.modules.activiti.entity.ProcessAll; import com.jero.modules.activiti.process.esRevision.entity.ProcessEsRevision; import com.baomidou.mybatisplus.extension.service.IService; import com.jero.modules.activiti.process.esRevision.entity.SignInfo; @@ -31,7 +32,7 @@ public interface EsRevisionService extends IService { Map> getSignInfo(String processInstanceId); - void updatePlanDateByProcessInstanceId(List processInstanceId); + void updatePlanDateByProcessInstanceId(List processAllList); void updateAllPlanDate(); } diff --git a/laws-modules/src/main/java/com/jero/modules/activiti/process/esRevision/service/impl/EsRevisionServiceImpl.java b/laws-modules/src/main/java/com/jero/modules/activiti/process/esRevision/service/impl/EsRevisionServiceImpl.java index 95a00917..8b9184fb 100644 --- a/laws-modules/src/main/java/com/jero/modules/activiti/process/esRevision/service/impl/EsRevisionServiceImpl.java +++ b/laws-modules/src/main/java/com/jero/modules/activiti/process/esRevision/service/impl/EsRevisionServiceImpl.java @@ -1,6 +1,5 @@ package com.jero.modules.activiti.process.esRevision.service.impl; -import cn.hutool.core.collection.CollUtil; import cn.hutool.core.util.StrUtil; import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONObject; @@ -18,6 +17,7 @@ import com.jero.modules.activiti.entity.ProcessAll; import com.jero.modules.activiti.entity.ProcessApprovalRecord; import com.jero.modules.activiti.enums.CommitFlagEnum; import com.jero.modules.activiti.enums.FinishFlagEnum; +import com.jero.modules.activiti.enums.ProcessStatusEnum; import com.jero.modules.activiti.enums.ProcessTypeEnum; import com.jero.modules.activiti.process.common.common.DraftCommon; import com.jero.modules.activiti.process.common.entity.CommonVO; @@ -947,34 +947,23 @@ public class EsRevisionServiceImpl extends ServiceImpl processInstanceIdList) { + public void updatePlanDateByProcessInstanceId(List processAllList) { List espList = new ArrayList<>(); - processInstanceIdList.forEach(processInstanceId -> { - String espId = ""; - ProcessEsRevision revision = getOne(new LambdaQueryWrapper() - .eq(ProcessEsRevision::getProcessInstanceId, processInstanceId)); - if (revision == null) { - // 通过草稿表寻找espId - List draftList = prcDraftService.list(new LambdaQueryWrapper() - .eq(ProcessDraft::getProcessInstanceId, processInstanceId) - .eq(ProcessDraft::getSaveSource, 3)); - if (CollUtil.isEmpty(draftList)) { - log.error("根据流程实例ID未找到企标制修订流程草稿数据 processInstanceId:{}", processInstanceId); - return; - } - ProcessDraft draft = draftList.get(0); - String infoJsonStr = draft.getInfoJsonStr(); - // 解析json 获取 data下的espId - JSONObject jsonObject = JSON.parseObject(infoJsonStr); - JSONObject data = jsonObject.getJSONObject("data"); - espId = (String) data.get("espId"); - } else { - espId = revision.getEspId(); + processAllList.forEach(processAll -> { + String processInstanceId = processAll.getProcessInstanceId(); + String prcName = processAll.getPrcName(); + String newStandardNo = ""; + String[] parts = prcName.split("-"); + if (parts.length > 0) { + newStandardNo = parts[0].trim() + "-" + parts[1].trim(); // 提取标准编号部分 } // 获取计划 - EnterpriseStandardPlan esp = espService.getById(espId); + LambdaQueryWrapper espQueryWrapper = new LambdaQueryWrapper<>(); + espQueryWrapper.eq(EnterpriseStandardPlan::getNewEnStandardNo, newStandardNo); + List findEspList = espService.list(espQueryWrapper); + EnterpriseStandardPlan esp = findEspList.stream().findFirst().orElse(null); if (esp == null) { - log.error("根据企标制计划ID未找到企标制计划数据,espId:{}", espId); + log.error("根据企标制计划ID未找到企标制计划数据,新企标编号:{}", newStandardNo); return; } // 获取所有通过和已完成的审批记录 @@ -986,6 +975,8 @@ public class EsRevisionServiceImpl extends ServiceImpl processAlls = processAllService.list(new LambdaQueryWrapper() - .eq(ProcessAll::getPrcType, ProcessTypeEnum.ES_REVISION.getValue())); - List prcIds = processAlls.stream().map(ProcessAll::getProcessInstanceId).collect(Collectors.toList()); - this.updatePlanDateByProcessInstanceId(prcIds); + .eq(ProcessAll::getPrcType, ProcessTypeEnum.ES_REVISION.getValue()) + .ne(ProcessAll::getPrcStatus, ProcessStatusEnum.WITHDRAWN.getValue())); + this.updatePlanDateByProcessInstanceId(processAlls); } } diff --git a/laws-modules/src/main/java/com/jero/modules/laws/enterprise/job/ESPlanProjectStatusJob.java b/laws-modules/src/main/java/com/jero/modules/laws/enterprise/job/ESPlanProjectStatusJob.java index e9410582..fb0e95f5 100644 --- a/laws-modules/src/main/java/com/jero/modules/laws/enterprise/job/ESPlanProjectStatusJob.java +++ b/laws-modules/src/main/java/com/jero/modules/laws/enterprise/job/ESPlanProjectStatusJob.java @@ -33,6 +33,7 @@ public class ESPlanProjectStatusJob implements Job { @Override public void execute(JobExecutionContext context) throws JobExecutionException { + log.info("计划状态更新开始"); // 更新所有流程状态 esRevisionService.updateAllPlanDate(); // 每天执行定时任务 判断所有进行中的计划是否逾期 逾期则修改项目状态为逾期 @@ -56,67 +57,21 @@ public class ESPlanProjectStatusJob implements Job { esp.setProjectStatus(ESPProjectStatus.NOT_STARTED.getValue()); }); espService.updateBatchById(cancelList); - - List inProgressList = list.stream() - .filter(esp -> ESPProjectStatus.IN_PROGRESS.getValue().equals(esp.getProjectStatus()) || - ESPProjectStatus.NOT_STARTED.getValue().equals(esp.getProjectStatus())) - .filter(esp -> !ESPChangeType.WORK_TERMINATE.getValue().equals(esp.getChangeStatus()) && - !ESPChangeType.CANCEL.getValue().equals(esp.getChangeStatus())) - .collect(Collectors.toList()); - List overdueList = list.stream() - .filter(esp -> ESPProjectStatus.OVERDUE.getValue().equals(esp.getProjectStatus())) - .collect(Collectors.toList()); - List completeList = list.stream() - .filter(esp -> ESPProjectStatus.OVERDUE_COMPLETED.getValue().equals(esp.getProjectStatus()) || - ESPProjectStatus.COMPLETED.getValue().equals(esp.getProjectStatus())) + // 将所有未开始的判断是否逾期 + List notStartedList = list.stream() + .filter(esp -> ESPProjectStatus.NOT_STARTED.getValue().equals(esp.getProjectStatus())) .collect(Collectors.toList()); Date curDate = new Date(); - // 判断所有进行中的流程是否逾期 - inProgressList.parallelStream().forEach(p -> { - if (null == p.getPlanApprovalDate()) { - return; - } - if (curDate.after(p.getPlanApprovalDate()) && null == p.getApprovalDate()) { - log.info("计划【" + p.getNewEnStandardName() + "】已逾期,计划完成日期:" + p.getPlanApprovalDate()); + // 判断所有未开始的是否逾期 + notStartedList.parallelStream().forEach(p -> { + Date planApprovalDate = p.getPlanApprovalDate(); + if (curDate.after(planApprovalDate)) { + log.info("计划【" + p.getNewEnStandardName() + "】逾期,计划完成日期:" + p.getPlanApprovalDate()); p.setProjectStatus(ESPProjectStatus.OVERDUE.getValue()); } - if (null != p.getReviewDate() && p.getPlanApprovalDate().after(curDate)) { - log.info("计划【" + p.getNewEnStandardName() + "】评审,计划完成日期:" + p.getPlanApprovalDate()); - p.setProjectStatus(ESPProjectStatus.REVIEW.getValue()); - } }); - espService.updateBatchById(inProgressList); - // 判断所有逾期的流程是否还是逾期 - overdueList.parallelStream().forEach(p -> { - if (null == p.getPlanApprovalDate()) { - return; - } - if (p.getApprovalDate() != null && p.getPlanApprovalDate().after(p.getApprovalDate()) - || (null == p.getApprovalDate() && curDate.before(p.getPlanApprovalDate()))) { - log.info("计划【" + p.getNewEnStandardName() + "】进行中,计划完成日期:" + p.getPlanApprovalDate()); - p.setProjectStatus(ESPProjectStatus.IN_PROGRESS.getValue()); - } - if (null != p.getReviewDate() && null != p.getPlanApprovalDate() && p.getPlanApprovalDate().after(curDate)) { - log.info("计划【" + p.getNewEnStandardName() + "】评审,计划完成日期:" + p.getPlanApprovalDate()); - p.setProjectStatus(ESPProjectStatus.REVIEW.getValue()); - } - }); - espService.updateBatchById(overdueList); - // 判断所有已完成的计划是否逾期完成 - completeList.parallelStream().forEach(p -> { - // 判断两个日期都不能为null - if (null == p.getApprovalDate() || null == p.getPlanApprovalDate()) { - return; - } - if (p.getApprovalDate().after(p.getPlanApprovalDate())) { - log.info("计划【" + p.getNewEnStandardName() + "】逾期完成,计划完成日期:" + p.getPlanApprovalDate()); - p.setProjectStatus(ESPProjectStatus.OVERDUE_COMPLETED.getValue()); - } else { - log.info("计划【" + p.getNewEnStandardName() + "】完成,计划完成日期:" + p.getPlanApprovalDate()); - p.setProjectStatus(ESPProjectStatus.COMPLETED.getValue()); - } - }); - espService.updateBatchById(completeList); + espService.updateBatchById(notStartedList); + log.info("计划状态更新完成"); } }