feat: 企标国标外标标准状态更新定时任务

This commit is contained in:
2024-03-01 10:15:56 +08:00
parent 215927f99c
commit 2c7fb4ba01
2 changed files with 153 additions and 0 deletions
@@ -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;
}
}
@@ -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<LawsEnterpriseStandard> needUpdateEsList = new ArrayList<>();
LambdaQueryWrapper<LawsEnterpriseStandard> 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<LawsEnterpriseStandard> 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<LawsDomesticStandard> needUpdateGbList = new ArrayList<>();
LambdaQueryWrapper<LawsDomesticStandard> 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<LawsDomesticStandard> 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<LawsOverseasStandard> needUpdateFbList = new ArrayList<>();
LambdaQueryWrapper<LawsOverseasStandard> 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<LawsOverseasStandard> 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);
}
}