From 2c7fb4ba011481c016f19f3cb267eb29c557fe3a Mon Sep 17 00:00:00 2001 From: caihaohan Date: Fri, 1 Mar 2024 10:15:46 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E4=BC=81=E6=A0=87=E5=9B=BD=E6=A0=87?= =?UTF-8?q?=E5=A4=96=E6=A0=87=E6=A0=87=E5=87=86=E7=8A=B6=E6=80=81=E6=9B=B4?= =?UTF-8?q?=E6=96=B0=E5=AE=9A=E6=97=B6=E4=BB=BB=E5=8A=A1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../standard/entity/OutStandardStateEnum.java | 38 ++++++ .../standard/job/UpdateStandardStatusJob.java | 115 ++++++++++++++++++ 2 files changed, 153 insertions(+) create mode 100644 laws-modules/src/main/java/com/jero/modules/laws/standard/entity/OutStandardStateEnum.java create mode 100644 laws-modules/src/main/java/com/jero/modules/laws/standard/job/UpdateStandardStatusJob.java diff --git a/laws-modules/src/main/java/com/jero/modules/laws/standard/entity/OutStandardStateEnum.java b/laws-modules/src/main/java/com/jero/modules/laws/standard/entity/OutStandardStateEnum.java new file mode 100644 index 00000000..731b9727 --- /dev/null +++ b/laws-modules/src/main/java/com/jero/modules/laws/standard/entity/OutStandardStateEnum.java @@ -0,0 +1,38 @@ +package com.jero.modules.laws.standard.entity; + +/** + * @author: Mzaxd + * @Date: 2024/3/1 9:41 + * @Description 外部标准状态 + */ +public enum OutStandardStateEnum { + + DRAFT("起草","1"), + SEEK_FOR_OPINIONS("征求意见","2"), + EXAMINE("审查","2.1"), + APPROVAL("报批","3"), + RELEASE("发布","4"), + TRIAL_OPERATION("即将实施","5"), + CURRENTLY_EFFECTIVE("现行有效","6"), + ABOLISH("废止","7"), + ; + + private final String stateName; + + private final String stateValue; + + OutStandardStateEnum(String stateName, String stateValue) { + this.stateName = stateName; + this.stateValue = stateValue; + } + + public String getStateName() { + return stateName; + } + + public String getStateValue() { + return stateValue; + } + + +} diff --git a/laws-modules/src/main/java/com/jero/modules/laws/standard/job/UpdateStandardStatusJob.java b/laws-modules/src/main/java/com/jero/modules/laws/standard/job/UpdateStandardStatusJob.java new file mode 100644 index 00000000..c3896921 --- /dev/null +++ b/laws-modules/src/main/java/com/jero/modules/laws/standard/job/UpdateStandardStatusJob.java @@ -0,0 +1,115 @@ +package com.jero.modules.laws.standard.job; + +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.jero.common.constant.enums.YesOrNoEnum; +import com.jero.modules.activiti.process.common.enums.StandardStateEnum; +import com.jero.modules.laws.standard.entity.LawsDomesticStandard; +import com.jero.modules.laws.standard.entity.LawsEnterpriseStandard; +import com.jero.modules.laws.standard.entity.LawsOverseasStandard; +import com.jero.modules.laws.standard.entity.OutStandardStateEnum; +import com.jero.modules.laws.standard.service.ILawsDomesticStandardService; +import com.jero.modules.laws.standard.service.ILawsEnterpriseStandardService; +import com.jero.modules.laws.standard.service.ILawsOverseasStandardService; +import org.quartz.Job; +import org.quartz.JobExecutionContext; +import org.quartz.JobExecutionException; + +import javax.annotation.Resource; +import java.util.ArrayList; +import java.util.List; + +/** + * @author: Mzaxd + * @Date: 2024/3/1 9:34 + */ +public class UpdateStandardStatusJob implements Job { + + @Resource + private ILawsEnterpriseStandardService esService; + + @Resource + private ILawsDomesticStandardService gbService; + + @Resource + private ILawsOverseasStandardService fbService; + + @Override + public void execute(JobExecutionContext jobExecutionContext) throws JobExecutionException { + this.updateGbStandardState(); + this.updateFbStandardState(); + this.updateEsStandardState(); + } + + private void updateEsStandardState() { + // 企标状态更新 + List needUpdateEsList = new ArrayList<>(); + LambdaQueryWrapper esWrapper = new LambdaQueryWrapper<>(); + esWrapper.eq(LawsEnterpriseStandard::getDelFlag, YesOrNoEnum.NO.getInteger()); + esWrapper.isNotNull(LawsEnterpriseStandard::getReleaseDate); + esWrapper.isNotNull(LawsEnterpriseStandard::getImplementationDate); + esWrapper.eq(LawsEnterpriseStandard::getStandardState, StandardStateEnum.RELEASE.getStateValue()); + List esList = esService.list(esWrapper); + for (LawsEnterpriseStandard es : esList) { + // 实施日期及之后的标准 状态更新为现行有效 + if (es.getImplementationDate().getTime() <= System.currentTimeMillis()) { + es.setStandardState(StandardStateEnum.CURRENTLY_EFFECTIVE.getStateValue()); + needUpdateEsList.add(es); + } + } + esService.updateBatchById(needUpdateEsList); + } + + private void updateGbStandardState(){ + // 国内标准状态更新 + List needUpdateGbList = new ArrayList<>(); + LambdaQueryWrapper gbWrapper = new LambdaQueryWrapper<>(); + gbWrapper.eq(LawsDomesticStandard::getDelFlag, YesOrNoEnum.NO.getInteger()); + gbWrapper.isNotNull(LawsDomesticStandard::getReleaseDate); + gbWrapper.isNotNull(LawsDomesticStandard::getImplementationDate); + gbWrapper.eq(LawsDomesticStandard::getStandardState, OutStandardStateEnum.RELEASE.getStateValue()).or() + .eq(LawsDomesticStandard::getStandardState, OutStandardStateEnum.TRIAL_OPERATION.getStateValue()); + List gbList = gbService.list(gbWrapper); + for (LawsDomesticStandard gb : gbList) { + // 介于创建时间和实施日期内的标准 状态更新为即将实施 + if (gb.getCreateTime().getTime() <= System.currentTimeMillis() && + gb.getImplementationDate().getTime() >= System.currentTimeMillis()) { + gb.setStandardState(OutStandardStateEnum.TRIAL_OPERATION.getStateValue()); + needUpdateGbList.add(gb); + continue; + } + // 实施日期及之后的标准 状态更新为现行有效 + if (gb.getImplementationDate().getTime() <= System.currentTimeMillis()) { + gb.setStandardState(OutStandardStateEnum.CURRENTLY_EFFECTIVE.getStateValue()); + needUpdateGbList.add(gb); + } + } + gbService.updateBatchById(needUpdateGbList); + } + + private void updateFbStandardState(){ + // 海外标准状态更新 + List needUpdateFbList = new ArrayList<>(); + LambdaQueryWrapper fbWrapper = new LambdaQueryWrapper<>(); + fbWrapper.eq(LawsOverseasStandard::getDelFlag, YesOrNoEnum.NO.getInteger()); + fbWrapper.isNotNull(LawsOverseasStandard::getReleaseDate); + fbWrapper.isNotNull(LawsOverseasStandard::getImplementationDate); + fbWrapper.eq(LawsOverseasStandard::getStandardState, OutStandardStateEnum.RELEASE.getStateValue()).or() + .eq(LawsOverseasStandard::getStandardState, OutStandardStateEnum.TRIAL_OPERATION.getStateValue()); + List fbList = fbService.list(fbWrapper); + for (LawsOverseasStandard fb : fbList) { + // 介于创建时间和实施日期内的标准 状态更新为即将实施 + if (fb.getCreateTime().getTime() <= System.currentTimeMillis() && + fb.getImplementationDate().getTime() >= System.currentTimeMillis()) { + fb.setStandardState(OutStandardStateEnum.TRIAL_OPERATION.getStateValue()); + needUpdateFbList.add(fb); + continue; + } + // 实施日期及之后的标准 状态更新为现行有效 + if (fb.getImplementationDate().getTime() <= System.currentTimeMillis()) { + fb.setStandardState(OutStandardStateEnum.CURRENTLY_EFFECTIVE.getStateValue()); + needUpdateFbList.add(fb); + } + } + fbService.updateBatchById(needUpdateFbList); + } +}