feat: 标准状态变更定时任务增加处理代替被代替标准

This commit is contained in:
2024-07-12 15:54:08 +08:00
parent d643d19d6a
commit b47ff56c87
4 changed files with 56 additions and 17 deletions
@@ -27,12 +27,9 @@ import org.activiti.engine.delegate.DelegateExecution;
import org.activiti.engine.delegate.ExecutionListener; import org.activiti.engine.delegate.ExecutionListener;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
import org.springframework.transaction.annotation.Propagation;
import org.springframework.transaction.annotation.Transactional;
import javax.annotation.Resource; import javax.annotation.Resource;
import java.util.*; import java.util.*;
import java.util.concurrent.CompletableFuture;
/** /**
* @author: Mzaxd * @author: Mzaxd
@@ -236,4 +236,12 @@ public interface ILawsCommonService {
* @return * @return
*/ */
List<OSSFile> getFileByStandardId(String standardId); List<OSSFile> getFileByStandardId(String standardId);
/**
* 处理代替被代替
* @param parameterMap
* @param standardNumber
* @param module
*/
void processReplaced(Map<String, Object> parameterMap, String standardNumber, String module);
} }
@@ -1056,25 +1056,26 @@ public class LawsCommonServiceImpl implements ILawsCommonService {
* @Date: 2023/9/19 11:53 * @Date: 2023/9/19 11:53
* @Description: 处理新增和编辑时的代替标准、引用标准 * @Description: 处理新增和编辑时的代替标准、引用标准
**/ **/
private void processReplaced(Map<String, Object> parameterMap, String standardNumber, String module) { @Override
public void processReplaced(Map<String, Object> parameterMap, String standardNumber, String module) {
// 代替标准 // 代替标准
String replacedStandard = (String) parameterMap.get(FieldCommon.REPLACED_STANDARD); String replacedStandard = (String) parameterMap.get(FieldCommon.REPLACED_STANDARD);
// 获取标准状态 // 获取标准状态
String standardState = (String) parameterMap.get(FieldCommon.STANDARD_STATE); String standardState = (String) parameterMap.get(FieldCommon.STANDARD_STATE);
boolean replaceFlag = true;
// 如果标准状态不是现行有效则不处理代替标准 // 如果标准状态不是现行有效则不处理代替标准
// boolean replaceFlag = false; boolean replaceFlag = false;
// if (StringUtils.isNotBlank(standardState)) { if (StringUtils.isNotBlank(standardState)) {
// if (module.equals(TableNameEnum.ENTERPRISE_STANDARDS.getValue())) { // 企标需要自动拼装标准号
// if (standardState.equals(StandardStateEnum.CURRENTLY_EFFECTIVE.getStateValue())) { if (module.equals(TableNameEnum.ENTERPRISE_STANDARDS.getValue())) {
// replaceFlag = true; if (standardState.equals(StandardStateEnum.CURRENTLY_EFFECTIVE.getStateValue())) {
// } replaceFlag = true;
// } else { }
// if (standardState.equals(OutStandardStateEnum.CURRENTLY_EFFECTIVE.getStateValue())) { } else {
// replaceFlag = true; if (standardState.equals(OutStandardStateEnum.CURRENTLY_EFFECTIVE.getStateValue())) {
// } replaceFlag = true;
// } }
// } }
}
// 先删除已经存储的关联 // 先删除已经存储的关联
lawsReplacedStandardService.removeRelation(standardNumber, 1); lawsReplacedStandardService.removeRelation(standardNumber, 1);
if (StringUtils.isNotBlank(replacedStandard)) { if (StringUtils.isNotBlank(replacedStandard)) {
@@ -3,6 +3,8 @@ package com.jero.modules.laws.standard.job;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.jero.common.constant.enums.YesOrNoEnum; import com.jero.common.constant.enums.YesOrNoEnum;
import com.jero.modules.activiti.process.common.enums.StandardStateEnum; import com.jero.modules.activiti.process.common.enums.StandardStateEnum;
import com.jero.modules.laws.common.constant.FieldCommon;
import com.jero.modules.laws.common.service.ILawsCommonService;
import com.jero.modules.laws.standard.entity.LawsDomesticStandard; import com.jero.modules.laws.standard.entity.LawsDomesticStandard;
import com.jero.modules.laws.standard.entity.LawsEnterpriseStandard; import com.jero.modules.laws.standard.entity.LawsEnterpriseStandard;
import com.jero.modules.laws.standard.entity.LawsOverseasStandard; import com.jero.modules.laws.standard.entity.LawsOverseasStandard;
@@ -10,6 +12,7 @@ import com.jero.modules.laws.standard.entity.OutStandardStateEnum;
import com.jero.modules.laws.standard.service.ILawsDomesticStandardService; import com.jero.modules.laws.standard.service.ILawsDomesticStandardService;
import com.jero.modules.laws.standard.service.ILawsEnterpriseStandardService; import com.jero.modules.laws.standard.service.ILawsEnterpriseStandardService;
import com.jero.modules.laws.standard.service.ILawsOverseasStandardService; import com.jero.modules.laws.standard.service.ILawsOverseasStandardService;
import com.jero.modules.tag.enums.TableNameEnum;
import org.quartz.Job; import org.quartz.Job;
import org.quartz.JobExecutionContext; import org.quartz.JobExecutionContext;
import org.quartz.JobExecutionException; import org.quartz.JobExecutionException;
@@ -17,6 +20,7 @@ import org.quartz.JobExecutionException;
import javax.annotation.Resource; import javax.annotation.Resource;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
import java.util.Map;
/** /**
* @author: Mzaxd * @author: Mzaxd
@@ -33,6 +37,9 @@ public class UpdateStandardStatusJob implements Job {
@Resource @Resource
private ILawsOverseasStandardService fbService; private ILawsOverseasStandardService fbService;
@Resource
private ILawsCommonService commonService;
@Override @Override
public void execute(JobExecutionContext jobExecutionContext) throws JobExecutionException { public void execute(JobExecutionContext jobExecutionContext) throws JobExecutionException {
this.updateGbStandardState(); this.updateGbStandardState();
@@ -57,8 +64,16 @@ public class UpdateStandardStatusJob implements Job {
} }
} }
esService.updateBatchById(needUpdateEsList); esService.updateBatchById(needUpdateEsList);
// 代替标准状态改为废止
for (LawsEnterpriseStandard es : needUpdateEsList) {
Map<String, Object> esMap = commonService.getByIdAndModule(es.getId(), TableNameEnum.ENTERPRISE_STANDARDS.getValue(), "2", es.getStandardNumber());
esMap.put(FieldCommon.MODULE, TableNameEnum.ENTERPRISE_STANDARDS.getValue());
esMap.put(FieldCommon.STANDARD_STATE, StandardStateEnum.CURRENTLY_EFFECTIVE.getStateValue());
commonService.processReplaced(esMap, es.getStandardNumber(), TableNameEnum.ENTERPRISE_STANDARDS.getValue());
}
} }
private void updateGbStandardState(){ private void updateGbStandardState(){
// 国内标准状态更新 // 国内标准状态更新
List<LawsDomesticStandard> needUpdateGbList = new ArrayList<>(); List<LawsDomesticStandard> needUpdateGbList = new ArrayList<>();
@@ -69,6 +84,7 @@ public class UpdateStandardStatusJob implements Job {
gbWrapper.eq(LawsDomesticStandard::getStandardState, OutStandardStateEnum.RELEASE.getStateValue()).or() gbWrapper.eq(LawsDomesticStandard::getStandardState, OutStandardStateEnum.RELEASE.getStateValue()).or()
.eq(LawsDomesticStandard::getStandardState, OutStandardStateEnum.TRIAL_OPERATION.getStateValue()); .eq(LawsDomesticStandard::getStandardState, OutStandardStateEnum.TRIAL_OPERATION.getStateValue());
List<LawsDomesticStandard> gbList = gbService.list(gbWrapper); List<LawsDomesticStandard> gbList = gbService.list(gbWrapper);
List<LawsDomesticStandard> processReplaceList = new ArrayList<>();
for (LawsDomesticStandard gb : gbList) { for (LawsDomesticStandard gb : gbList) {
// 介于创建时间和实施日期内的标准 状态更新为即将实施 // 介于创建时间和实施日期内的标准 状态更新为即将实施
if (gb.getCreateTime().getTime() <= System.currentTimeMillis() && if (gb.getCreateTime().getTime() <= System.currentTimeMillis() &&
@@ -81,9 +97,17 @@ public class UpdateStandardStatusJob implements Job {
if (gb.getImplementationDate().getTime() <= System.currentTimeMillis()) { if (gb.getImplementationDate().getTime() <= System.currentTimeMillis()) {
gb.setStandardState(OutStandardStateEnum.CURRENTLY_EFFECTIVE.getStateValue()); gb.setStandardState(OutStandardStateEnum.CURRENTLY_EFFECTIVE.getStateValue());
needUpdateGbList.add(gb); needUpdateGbList.add(gb);
processReplaceList.add(gb);
} }
} }
gbService.updateBatchById(needUpdateGbList); gbService.updateBatchById(needUpdateGbList);
// 代替标准状态改为废止
for (LawsDomesticStandard standard : processReplaceList) {
Map<String, Object> map = commonService.getByIdAndModule(standard.getId(), TableNameEnum.DOMESTIC_REGULATIONS.getValue(), "2", standard.getStandardNumber());
map.put(FieldCommon.MODULE, TableNameEnum.DOMESTIC_REGULATIONS.getValue());
map.put(FieldCommon.STANDARD_STATE, StandardStateEnum.CURRENTLY_EFFECTIVE.getStateValue());
commonService.processReplaced(map, standard.getStandardNumber(), TableNameEnum.DOMESTIC_REGULATIONS.getValue());
}
} }
private void updateFbStandardState(){ private void updateFbStandardState(){
@@ -96,6 +120,7 @@ public class UpdateStandardStatusJob implements Job {
fbWrapper.eq(LawsOverseasStandard::getStandardState, OutStandardStateEnum.RELEASE.getStateValue()).or() fbWrapper.eq(LawsOverseasStandard::getStandardState, OutStandardStateEnum.RELEASE.getStateValue()).or()
.eq(LawsOverseasStandard::getStandardState, OutStandardStateEnum.TRIAL_OPERATION.getStateValue()); .eq(LawsOverseasStandard::getStandardState, OutStandardStateEnum.TRIAL_OPERATION.getStateValue());
List<LawsOverseasStandard> fbList = fbService.list(fbWrapper); List<LawsOverseasStandard> fbList = fbService.list(fbWrapper);
List<LawsOverseasStandard> processReplaceList = new ArrayList<>();
for (LawsOverseasStandard fb : fbList) { for (LawsOverseasStandard fb : fbList) {
// 介于创建时间和实施日期内的标准 状态更新为即将实施 // 介于创建时间和实施日期内的标准 状态更新为即将实施
if (fb.getCreateTime().getTime() <= System.currentTimeMillis() && if (fb.getCreateTime().getTime() <= System.currentTimeMillis() &&
@@ -108,8 +133,16 @@ public class UpdateStandardStatusJob implements Job {
if (fb.getImplementationDate().getTime() <= System.currentTimeMillis()) { if (fb.getImplementationDate().getTime() <= System.currentTimeMillis()) {
fb.setStandardState(OutStandardStateEnum.CURRENTLY_EFFECTIVE.getStateValue()); fb.setStandardState(OutStandardStateEnum.CURRENTLY_EFFECTIVE.getStateValue());
needUpdateFbList.add(fb); needUpdateFbList.add(fb);
processReplaceList.add(fb);
} }
} }
fbService.updateBatchById(needUpdateFbList); fbService.updateBatchById(needUpdateFbList);
// 代替标准状态改为废止
for (LawsOverseasStandard standard : processReplaceList) {
Map<String, Object> map = commonService.getByIdAndModule(standard.getId(), TableNameEnum.FOREIGN_REGULATIONS.getValue(), "2", standard.getStandardNumber());
map.put(FieldCommon.MODULE, TableNameEnum.FOREIGN_REGULATIONS.getValue());
map.put(FieldCommon.STANDARD_STATE, StandardStateEnum.CURRENTLY_EFFECTIVE.getStateValue());
commonService.processReplaced(map, standard.getStandardNumber(), TableNameEnum.FOREIGN_REGULATIONS.getValue());
}
} }
} }