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.apache.commons.lang3.StringUtils;
import org.springframework.stereotype.Component;
import org.springframework.transaction.annotation.Propagation;
import org.springframework.transaction.annotation.Transactional;
import javax.annotation.Resource;
import java.util.*;
import java.util.concurrent.CompletableFuture;
/**
* @author: Mzaxd
@@ -236,4 +236,12 @@ public interface ILawsCommonService {
* @return
*/
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
* @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 standardState = (String) parameterMap.get(FieldCommon.STANDARD_STATE);
boolean replaceFlag = true;
// 如果标准状态不是现行有效则不处理代替标准
// boolean replaceFlag = false;
// if (StringUtils.isNotBlank(standardState)) {
// if (module.equals(TableNameEnum.ENTERPRISE_STANDARDS.getValue())) {
// if (standardState.equals(StandardStateEnum.CURRENTLY_EFFECTIVE.getStateValue())) {
// replaceFlag = true;
// }
// } else {
// if (standardState.equals(OutStandardStateEnum.CURRENTLY_EFFECTIVE.getStateValue())) {
// replaceFlag = true;
// }
// }
// }
boolean replaceFlag = false;
if (StringUtils.isNotBlank(standardState)) {
// 企标需要自动拼装标准号
if (module.equals(TableNameEnum.ENTERPRISE_STANDARDS.getValue())) {
if (standardState.equals(StandardStateEnum.CURRENTLY_EFFECTIVE.getStateValue())) {
replaceFlag = true;
}
} else {
if (standardState.equals(OutStandardStateEnum.CURRENTLY_EFFECTIVE.getStateValue())) {
replaceFlag = true;
}
}
}
// 先删除已经存储的关联
lawsReplacedStandardService.removeRelation(standardNumber, 1);
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.jero.common.constant.enums.YesOrNoEnum;
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.LawsEnterpriseStandard;
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.ILawsEnterpriseStandardService;
import com.jero.modules.laws.standard.service.ILawsOverseasStandardService;
import com.jero.modules.tag.enums.TableNameEnum;
import org.quartz.Job;
import org.quartz.JobExecutionContext;
import org.quartz.JobExecutionException;
@@ -17,6 +20,7 @@ import org.quartz.JobExecutionException;
import javax.annotation.Resource;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
/**
* @author: Mzaxd
@@ -33,6 +37,9 @@ public class UpdateStandardStatusJob implements Job {
@Resource
private ILawsOverseasStandardService fbService;
@Resource
private ILawsCommonService commonService;
@Override
public void execute(JobExecutionContext jobExecutionContext) throws JobExecutionException {
this.updateGbStandardState();
@@ -57,8 +64,16 @@ public class UpdateStandardStatusJob implements Job {
}
}
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(){
// 国内标准状态更新
List<LawsDomesticStandard> needUpdateGbList = new ArrayList<>();
@@ -69,6 +84,7 @@ public class UpdateStandardStatusJob implements Job {
gbWrapper.eq(LawsDomesticStandard::getStandardState, OutStandardStateEnum.RELEASE.getStateValue()).or()
.eq(LawsDomesticStandard::getStandardState, OutStandardStateEnum.TRIAL_OPERATION.getStateValue());
List<LawsDomesticStandard> gbList = gbService.list(gbWrapper);
List<LawsDomesticStandard> processReplaceList = new ArrayList<>();
for (LawsDomesticStandard gb : gbList) {
// 介于创建时间和实施日期内的标准 状态更新为即将实施
if (gb.getCreateTime().getTime() <= System.currentTimeMillis() &&
@@ -81,9 +97,17 @@ public class UpdateStandardStatusJob implements Job {
if (gb.getImplementationDate().getTime() <= System.currentTimeMillis()) {
gb.setStandardState(OutStandardStateEnum.CURRENTLY_EFFECTIVE.getStateValue());
needUpdateGbList.add(gb);
processReplaceList.add(gb);
}
}
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(){
@@ -96,6 +120,7 @@ public class UpdateStandardStatusJob implements Job {
fbWrapper.eq(LawsOverseasStandard::getStandardState, OutStandardStateEnum.RELEASE.getStateValue()).or()
.eq(LawsOverseasStandard::getStandardState, OutStandardStateEnum.TRIAL_OPERATION.getStateValue());
List<LawsOverseasStandard> fbList = fbService.list(fbWrapper);
List<LawsOverseasStandard> processReplaceList = new ArrayList<>();
for (LawsOverseasStandard fb : fbList) {
// 介于创建时间和实施日期内的标准 状态更新为即将实施
if (fb.getCreateTime().getTime() <= System.currentTimeMillis() &&
@@ -108,8 +133,16 @@ public class UpdateStandardStatusJob implements Job {
if (fb.getImplementationDate().getTime() <= System.currentTimeMillis()) {
fb.setStandardState(OutStandardStateEnum.CURRENTLY_EFFECTIVE.getStateValue());
needUpdateFbList.add(fb);
processReplaceList.add(fb);
}
}
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());
}
}
}