feat: 获取企标编号
This commit is contained in:
-5
@@ -184,11 +184,6 @@ public class ProcessEsInitChange implements Serializable {
|
||||
*/
|
||||
private String componentName;
|
||||
|
||||
/**
|
||||
* 适用专业
|
||||
*/
|
||||
private String applicableProfession;
|
||||
|
||||
/**
|
||||
* 主起草人
|
||||
*/
|
||||
|
||||
+17
-1
@@ -1,5 +1,6 @@
|
||||
package com.jero.modules.activiti.process.esInitChange.service.impl;
|
||||
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import com.jero.common.exception.JeroBootException;
|
||||
@@ -10,6 +11,7 @@ import com.jero.modules.activiti.process.common.service.ProcessDraftService;
|
||||
import com.jero.modules.activiti.process.esInitChange.entity.ProcessEsInitChange;
|
||||
import com.jero.modules.activiti.process.esInitChange.service.ProcessEsInitChangeService;
|
||||
import com.jero.modules.activiti.process.esInitChange.mapper.ProcessEsInitChangeMapper;
|
||||
import com.jero.modules.laws.enterprise.service.ESSequenceNumberProvider;
|
||||
import com.jero.modules.laws.enterprise.util.EnterpriseStandardUtil;
|
||||
import com.jero.modules.sys.utils.UserUtils;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
@@ -31,7 +33,7 @@ import java.util.stream.Collectors;
|
||||
@Transactional(rollbackFor = JeroBootException.class)
|
||||
@Slf4j
|
||||
public class ProcessEsInitChangeServiceImpl extends ServiceImpl<ProcessEsInitChangeMapper, ProcessEsInitChange>
|
||||
implements ProcessEsInitChangeService, IActFlowCustomService {
|
||||
implements ProcessEsInitChangeService, IActFlowCustomService, ESSequenceNumberProvider {
|
||||
|
||||
@Resource
|
||||
private ProcessDraftService processDraftService;
|
||||
@@ -171,6 +173,20 @@ public class ProcessEsInitChangeServiceImpl extends ServiceImpl<ProcessEsInitCha
|
||||
}
|
||||
processDraftService.saveBatch(draftList);
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<String> getSequenceNumbers(String esCodeDictValue, String esNameCodeDictValue, String categoryCodeDictValue) {
|
||||
// 已经存在的标准
|
||||
LambdaQueryWrapper<ProcessEsInitChange> lambdaQueryWrapper = new LambdaQueryWrapper<>();
|
||||
lambdaQueryWrapper.eq(ProcessEsInitChange::getEnStandardCode, esCodeDictValue);
|
||||
lambdaQueryWrapper.eq(ProcessEsInitChange::getEnNameCode, esNameCodeDictValue);
|
||||
lambdaQueryWrapper.eq(ProcessEsInitChange::getStandardCategoryCode, categoryCodeDictValue);
|
||||
lambdaQueryWrapper.eq(ProcessEsInitChange::getDelFlag, 0);
|
||||
List<ProcessEsInitChange> list = this.list(lambdaQueryWrapper);
|
||||
|
||||
return list.stream().map(ProcessEsInitChange::getNewEnStandardNo)
|
||||
.map(EnterpriseStandardUtil::getSequenceNoFromStandardNo).collect(Collectors.toList());
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
+8
@@ -0,0 +1,8 @@
|
||||
package com.jero.modules.laws.enterprise.service;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
// 获取企标编号中的序列号接口
|
||||
public interface ESSequenceNumberProvider {
|
||||
List<String> getSequenceNumbers(String esCodeDictValue, String esNameCodeDictValue, String categoryCodeDictValue);
|
||||
}
|
||||
+18
-1
@@ -1,5 +1,6 @@
|
||||
package com.jero.modules.laws.enterprise.service.impl;
|
||||
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
|
||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
@@ -10,8 +11,11 @@ import com.jero.modules.laws.enterprise.entity.dto.ESPlanQueryDTO;
|
||||
import com.jero.modules.laws.enterprise.entity.vo.EnterpriseStandardPlanVo;
|
||||
import com.jero.common.exception.JeroBootException;
|
||||
import com.jero.modules.laws.enterprise.entity.EnterpriseStandardPlan;
|
||||
import com.jero.modules.laws.enterprise.service.ESSequenceNumberProvider;
|
||||
import com.jero.modules.laws.enterprise.service.EnterpriseStandardPlanService;
|
||||
import com.jero.modules.laws.enterprise.mapper.EnterpriseStandardPlanMapper;
|
||||
import com.jero.modules.laws.enterprise.util.EnterpriseStandardUtil;
|
||||
import com.jero.modules.laws.standard.entity.LawsEnterpriseStandard;
|
||||
import com.jero.modules.projectLibrary.entity.LawsProjectLibrary;
|
||||
import com.jero.modules.tag.entity.LawsTag;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
@@ -42,7 +46,7 @@ import java.util.stream.Collectors;
|
||||
@Transactional(rollbackFor = JeroBootException.class)
|
||||
@Slf4j
|
||||
public class EnterpriseStandardPlanServiceImpl extends ServiceImpl<EnterpriseStandardPlanMapper, EnterpriseStandardPlan>
|
||||
implements EnterpriseStandardPlanService{
|
||||
implements EnterpriseStandardPlanService, ESSequenceNumberProvider {
|
||||
|
||||
@Resource
|
||||
private ISysBaseAPI sysBaseAPI;
|
||||
@@ -140,6 +144,19 @@ public class EnterpriseStandardPlanServiceImpl extends ServiceImpl<EnterpriseSta
|
||||
return dictModelList.stream().collect(Collectors.toMap(DictModel::getValue, dictModel -> dictModel));
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<String> getSequenceNumbers(String esCodeDictValue, String esNameCodeDictValue, String categoryCodeDictValue) {
|
||||
// 已经存在的标准
|
||||
LambdaQueryWrapper<EnterpriseStandardPlan> lambdaQueryWrapper = new LambdaQueryWrapper<>();
|
||||
lambdaQueryWrapper.eq(EnterpriseStandardPlan::getEnStandardCode, esCodeDictValue);
|
||||
lambdaQueryWrapper.eq(EnterpriseStandardPlan::getEnNameCode, esNameCodeDictValue);
|
||||
lambdaQueryWrapper.eq(EnterpriseStandardPlan::getStandardCategoryCode, categoryCodeDictValue);
|
||||
lambdaQueryWrapper.eq(EnterpriseStandardPlan::getDelFlag, 0);
|
||||
List<EnterpriseStandardPlan> espList = this.list(lambdaQueryWrapper);
|
||||
|
||||
return espList.stream().map(EnterpriseStandardPlan::getNewEnStandardNo)
|
||||
.map(EnterpriseStandardUtil::getSequenceNoFromStandardNo).collect(Collectors.toList());
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
+28
-33
@@ -1,20 +1,15 @@
|
||||
package com.jero.modules.laws.enterprise.util;
|
||||
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.jero.common.system.api.ISysBaseAPI;
|
||||
import com.jero.common.system.vo.DictModel;
|
||||
import com.jero.modules.laws.common.constant.FieldCommon;
|
||||
import com.jero.modules.laws.standard.entity.LawsEnterpriseStandard;
|
||||
import com.jero.modules.laws.standard.service.ILawsEnterpriseStandardService;
|
||||
import com.jero.modules.laws.enterprise.service.ESSequenceNumberProvider;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.apache.commons.lang.StringUtils;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import java.util.Comparator;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Optional;
|
||||
import java.util.*;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
/**
|
||||
@@ -29,43 +24,42 @@ public class EnterpriseStandardUtil {
|
||||
private ISysBaseAPI sysBaseAPI;
|
||||
|
||||
@Resource
|
||||
private ILawsEnterpriseStandardService enterpriseStandardService;
|
||||
private List<ESSequenceNumberProvider> providers;
|
||||
|
||||
/**
|
||||
* 生成新序列号
|
||||
*
|
||||
* @param esCodeDictValue
|
||||
* @param esNameCodeDictValue
|
||||
* @param categoryCodeDictValue
|
||||
* @return
|
||||
* @return 顺序号与标准代号/名称代号/标准类别代号相关联,新的标准代号+名称代号+标准类别代号从0001开始
|
||||
*/
|
||||
public String generateNewSequenceNumber(String esCodeDictValue, String esNameCodeDictValue, String categoryCodeDictValue) {
|
||||
String sequenceNumber = "0001";
|
||||
// 根据 标准代号/名称代号/标准类别 的相关性生成顺序号
|
||||
// 已经存在的标准
|
||||
LambdaQueryWrapper<LawsEnterpriseStandard> lambdaQueryWrapper = new LambdaQueryWrapper<>();
|
||||
lambdaQueryWrapper.eq(LawsEnterpriseStandard::getStandardCode, esCodeDictValue);
|
||||
lambdaQueryWrapper.eq(LawsEnterpriseStandard::getNameCode, esNameCodeDictValue);
|
||||
lambdaQueryWrapper.eq(LawsEnterpriseStandard::getCategoryCode, categoryCodeDictValue);
|
||||
lambdaQueryWrapper.eq(LawsEnterpriseStandard::getDelFlag, 0);
|
||||
List<LawsEnterpriseStandard> esList = enterpriseStandardService.list(lambdaQueryWrapper);
|
||||
List<String> allSequenceNumbers = new ArrayList<>();
|
||||
|
||||
List<String> dbSequenceNumberList = esList.stream().map(LawsEnterpriseStandard::getStandardNumber)
|
||||
.map(EnterpriseStandardUtil::getSequenceNoFromStandardNo).collect(Collectors.toList());
|
||||
// TODO 流程中的标准
|
||||
|
||||
|
||||
// 获取最大的序列号
|
||||
Optional<String> maxSequence = dbSequenceNumberList.stream().max(Comparator.naturalOrder());
|
||||
if (maxSequence.isPresent()) {
|
||||
int maxNumber = Integer.parseInt(maxSequence.get());
|
||||
int newNumber = maxNumber + 1;
|
||||
sequenceNumber = String.format("%04d", newNumber);
|
||||
for (ESSequenceNumberProvider provider : providers) {
|
||||
allSequenceNumbers.addAll(provider.getSequenceNumbers(esCodeDictValue, esNameCodeDictValue, categoryCodeDictValue));
|
||||
}
|
||||
return sequenceNumber;
|
||||
|
||||
// 转换为整数列表并排序
|
||||
List<Integer> sortedNumbers = allSequenceNumbers.stream()
|
||||
.map(Integer::parseInt)
|
||||
.sorted()
|
||||
.collect(Collectors.toList());
|
||||
|
||||
int expectedNumber = 1; // 我们期望的最小序列号
|
||||
for (int num : sortedNumbers) {
|
||||
if (num != expectedNumber) {
|
||||
break;
|
||||
}
|
||||
expectedNumber++;
|
||||
}
|
||||
return String.format("%04d", expectedNumber);
|
||||
}
|
||||
|
||||
/**
|
||||
* 生成企标编号
|
||||
*
|
||||
* @param parameterMap
|
||||
* @return
|
||||
*/
|
||||
@@ -89,7 +83,7 @@ public class EnterpriseStandardUtil {
|
||||
return standardNumber;
|
||||
}
|
||||
|
||||
private String transEsCode(String esCode){
|
||||
private String transEsCode(String esCode) {
|
||||
if (StringUtils.isNotBlank(esCode)) {
|
||||
List<DictModel> esCodeDictModelList = sysBaseAPI.getDictItems("enterprise_standard_code");
|
||||
List<DictModel> collect = esCodeDictModelList.stream().filter(e -> esCode.equals(e.getValue())).collect(Collectors.toList());
|
||||
@@ -100,7 +94,7 @@ public class EnterpriseStandardUtil {
|
||||
return "";
|
||||
}
|
||||
|
||||
private String transEsNameCode(String esNameCode){
|
||||
private String transEsNameCode(String esNameCode) {
|
||||
if (StringUtils.isNotBlank(esNameCode)) {
|
||||
List<DictModel> esCodeDictModelList = sysBaseAPI.getDictItems("enterprise_name_code");
|
||||
List<DictModel> collect = esCodeDictModelList.stream().filter(e -> esNameCode.equals(e.getValue())).collect(Collectors.toList());
|
||||
@@ -111,7 +105,7 @@ public class EnterpriseStandardUtil {
|
||||
return "";
|
||||
}
|
||||
|
||||
private String transCategoryCode(String categoryCode){
|
||||
private String transCategoryCode(String categoryCode) {
|
||||
if (StringUtils.isNotBlank(categoryCode)) {
|
||||
List<DictModel> esCodeDictModelList = sysBaseAPI.getDictItems("standard_category_code");
|
||||
List<DictModel> collect = esCodeDictModelList.stream().filter(e -> categoryCode.equals(e.getValue())).collect(Collectors.toList());
|
||||
@@ -124,6 +118,7 @@ public class EnterpriseStandardUtil {
|
||||
|
||||
/**
|
||||
* 获取序列号
|
||||
*
|
||||
* @param standardNo
|
||||
* @return
|
||||
*/
|
||||
|
||||
+20
-1
@@ -4,6 +4,8 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import com.jero.common.constant.CommonConstant;
|
||||
import com.jero.common.exception.JeroBootException;
|
||||
import com.jero.modules.laws.enterprise.service.ESSequenceNumberProvider;
|
||||
import com.jero.modules.laws.enterprise.util.EnterpriseStandardUtil;
|
||||
import com.jero.modules.laws.standard.entity.LawsEnterpriseStandard;
|
||||
import com.jero.modules.laws.standard.service.ILawsEnterpriseStandardService;
|
||||
import com.jero.modules.laws.standard.mapper.LawsEnterpriseStandardMapper;
|
||||
@@ -11,6 +13,9 @@ import org.apache.commons.lang3.StringUtils;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
/**
|
||||
* @author ThinkBook
|
||||
* @description 针对表【laws_enterprise_standard(企业标准)】的数据库操作Service实现
|
||||
@@ -19,7 +24,7 @@ import org.springframework.transaction.annotation.Transactional;
|
||||
@Service
|
||||
@Transactional(rollbackFor = JeroBootException.class)
|
||||
public class LawsEnterpriseStandardServiceImpl extends ServiceImpl<LawsEnterpriseStandardMapper, LawsEnterpriseStandard>
|
||||
implements ILawsEnterpriseStandardService {
|
||||
implements ILawsEnterpriseStandardService, ESSequenceNumberProvider {
|
||||
|
||||
@Override
|
||||
public LawsEnterpriseStandard queryByStandardNumber(String standardNumber) {
|
||||
@@ -32,6 +37,20 @@ public class LawsEnterpriseStandardServiceImpl extends ServiceImpl<LawsEnterpris
|
||||
wrapper.last("limit 1");
|
||||
return getOne(wrapper);
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<String> getSequenceNumbers(String esCodeDictValue, String esNameCodeDictValue, String categoryCodeDictValue) {
|
||||
// 已经存在的标准
|
||||
LambdaQueryWrapper<LawsEnterpriseStandard> lambdaQueryWrapper = new LambdaQueryWrapper<>();
|
||||
lambdaQueryWrapper.eq(LawsEnterpriseStandard::getStandardCode, esCodeDictValue);
|
||||
lambdaQueryWrapper.eq(LawsEnterpriseStandard::getNameCode, esNameCodeDictValue);
|
||||
lambdaQueryWrapper.eq(LawsEnterpriseStandard::getCategoryCode, categoryCodeDictValue);
|
||||
lambdaQueryWrapper.eq(LawsEnterpriseStandard::getDelFlag, 0);
|
||||
List<LawsEnterpriseStandard> esList = this.list(lambdaQueryWrapper);
|
||||
|
||||
return esList.stream().map(LawsEnterpriseStandard::getStandardNumber)
|
||||
.map(EnterpriseStandardUtil::getSequenceNoFromStandardNo).collect(Collectors.toList());
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user