feat: 年度制修订导入根据标准等级分类限制授权部门能够导入的字段
This commit is contained in:
+16
-9
@@ -514,13 +514,13 @@ public class ProcessEsAnnualInitServiceImpl extends ServiceImpl<ProcessEsAnnualI
|
||||
}
|
||||
|
||||
private void cleanData(List<ProcessEsAnnualInit> list) {
|
||||
List<String> originStandardNoList = list.stream().map(ProcessEsAnnualInit::getOriginEnStandardNo).collect(Collectors.toList());
|
||||
// List<String> originStandardNoList = list.stream().map(ProcessEsAnnualInit::getOriginEnStandardNo).collect(Collectors.toList());
|
||||
|
||||
LambdaQueryWrapper<LawsEnterpriseStandard> esWrapper = new LambdaQueryWrapper<>();
|
||||
esWrapper.in(LawsEnterpriseStandard::getStandardNumber, originStandardNoList);
|
||||
List<LawsEnterpriseStandard> esList = enterpriseStandardService.list(esWrapper);
|
||||
// 转换成key为企标编号的map
|
||||
Map<String, LawsEnterpriseStandard> esMap = esList.stream().collect(Collectors.toMap(LawsEnterpriseStandard::getStandardNumber, item -> item));
|
||||
// LambdaQueryWrapper<LawsEnterpriseStandard> esWrapper = new LambdaQueryWrapper<>();
|
||||
// esWrapper.in(LawsEnterpriseStandard::getStandardNumber, originStandardNoList);
|
||||
// List<LawsEnterpriseStandard> esList = enterpriseStandardService.list(esWrapper);
|
||||
// // 转换成key为企标编号的map
|
||||
// Map<String, LawsEnterpriseStandard> esMap = esList.stream().collect(Collectors.toMap(LawsEnterpriseStandard::getStandardNumber, item -> item));
|
||||
|
||||
list.forEach(item -> {
|
||||
// 如果是制定则去除掉所有的原企标名称 原企标编号
|
||||
@@ -539,6 +539,10 @@ public class ProcessEsAnnualInitServiceImpl extends ServiceImpl<ProcessEsAnnualI
|
||||
} else {
|
||||
item.setChangeStatus(ESPChangeType.CHANGE.getValue());
|
||||
}
|
||||
// 如果标准等级分类是0级或3级,则需要将授权部门置空
|
||||
if (item.getEnStandardClassification().equals("1") || item.getEnStandardClassification().equals("4")) {
|
||||
item.setAuthDept(null);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
@@ -564,6 +568,9 @@ public class ProcessEsAnnualInitServiceImpl extends ServiceImpl<ProcessEsAnnualI
|
||||
}
|
||||
|
||||
private List<String> validationList(List<ProcessEsAnnualInit> list, List<SysDictItemCore> listDict) {
|
||||
// 找到各标准等级的授权部门
|
||||
Map<String, List<String>> authDeptMap = excelUtils.getAllLevelAuthDeptMap();
|
||||
|
||||
List<LawsEnterpriseStandard> esList = enterpriseStandardService.list();
|
||||
List<String> errorMsgs = new ArrayList<>();
|
||||
|
||||
@@ -588,7 +595,7 @@ public class ProcessEsAnnualInitServiceImpl extends ServiceImpl<ProcessEsAnnualI
|
||||
String contactUser = plan.getContactUser();
|
||||
String standardSystem = plan.getEnStandardSystem();
|
||||
String standardType = plan.getStandardType();
|
||||
String enStandardClassification = plan.getEnStandardClassification();
|
||||
String standardClassification = plan.getEnStandardClassification();
|
||||
String enStandardCode = plan.getEnStandardCode();
|
||||
String partName = plan.getComponentName();
|
||||
String draftPlannedCompleteDateString = plan.getDraftPlannedCompleteDateString();
|
||||
@@ -601,8 +608,9 @@ public class ProcessEsAnnualInitServiceImpl extends ServiceImpl<ProcessEsAnnualI
|
||||
|
||||
// 检查制修订类型 编号 名称
|
||||
errMsg.append(validProjectType(plan, listDict, esList));
|
||||
// 检查标准等级分类和授权部门
|
||||
errMsg.append(excelUtils.validAuthDept(authDept, listDict, standardClassification, authDeptMap));
|
||||
// 检查所有数据字典校验的字段
|
||||
errMsg.append(excelUtils.validAuthDept(authDept, listDict));
|
||||
errMsg.append(excelUtils.validCooperateUnit(cooperationUnit, listDict));
|
||||
errMsg.append(excelUtils.validMainDraftingUser(mainDraftingUser, listDict));
|
||||
errMsg.append(excelUtils.validMainDraftingUnit(mainDraftingUnit, listDict));
|
||||
@@ -612,7 +620,6 @@ public class ProcessEsAnnualInitServiceImpl extends ServiceImpl<ProcessEsAnnualI
|
||||
errMsg.append(excelUtils.validContactUser(contactUser, listDict));
|
||||
errMsg.append(excelUtils.validStandardType(standardType, listDict));
|
||||
errMsg.append(excelUtils.validStandardCode(enStandardCode, listDict));
|
||||
errMsg.append(excelUtils.validStandardClassification(enStandardClassification, listDict));
|
||||
errMsg.append(excelUtils.validPartName(partName, listDict));
|
||||
errMsg.append(excelUtils.validSingleDateNotBeforeToday(draftPlannedCompleteDateString, "草稿计划完成日期"));
|
||||
errMsg.append(excelUtils.validSingleDateNotBeforeToday(solicitationDraftPlanCompleteDateString, "征求意见稿计划完成日期"));
|
||||
|
||||
+16
-9
@@ -394,13 +394,13 @@ public class ProcessEsAnnualReportServiceImpl extends ServiceImpl<ProcessEsAnnua
|
||||
}
|
||||
|
||||
private void cleanData(List<ProcessEsAnnualReport> list) {
|
||||
List<String> originStandardNoList = list.stream().map(ProcessEsAnnualReport::getOriginEnStandardNo).collect(Collectors.toList());
|
||||
|
||||
LambdaQueryWrapper<LawsEnterpriseStandard> esWrapper = new LambdaQueryWrapper<>();
|
||||
esWrapper.in(LawsEnterpriseStandard::getStandardNumber, originStandardNoList);
|
||||
List<LawsEnterpriseStandard> esList = enterpriseStandardService.list(esWrapper);
|
||||
// 转换成key为企标编号的map
|
||||
Map<String, LawsEnterpriseStandard> esMap = esList.stream().collect(Collectors.toMap(LawsEnterpriseStandard::getStandardNumber, item -> item));
|
||||
// List<String> originStandardNoList = list.stream().map(ProcessEsAnnualReport::getOriginEnStandardNo).collect(Collectors.toList());
|
||||
//
|
||||
// LambdaQueryWrapper<LawsEnterpriseStandard> esWrapper = new LambdaQueryWrapper<>();
|
||||
// esWrapper.in(LawsEnterpriseStandard::getStandardNumber, originStandardNoList);
|
||||
// List<LawsEnterpriseStandard> esList = enterpriseStandardService.list(esWrapper);
|
||||
// // 转换成key为企标编号的map
|
||||
// Map<String, LawsEnterpriseStandard> esMap = esList.stream().collect(Collectors.toMap(LawsEnterpriseStandard::getStandardNumber, item -> item));
|
||||
|
||||
list.forEach(item -> {
|
||||
// 如果是制定则去除掉所有的原企标名称 原企标编号
|
||||
@@ -419,6 +419,10 @@ public class ProcessEsAnnualReportServiceImpl extends ServiceImpl<ProcessEsAnnua
|
||||
} else {
|
||||
item.setChangeStatus(ESPChangeType.CHANGE.getValue());
|
||||
}
|
||||
// 如果标准等级分类是0级或3级,则需要将授权部门置空
|
||||
if (item.getEnStandardClassification().equals("1") || item.getEnStandardClassification().equals("4")) {
|
||||
item.setAuthDept(null);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
@@ -443,6 +447,9 @@ public class ProcessEsAnnualReportServiceImpl extends ServiceImpl<ProcessEsAnnua
|
||||
}
|
||||
|
||||
private List<String> validationList(List<ProcessEsAnnualReport> list, List<SysDictItemCore> listDict) {
|
||||
// 找到各标准等级的授权部门
|
||||
Map<String, List<String>> authDeptMap = excelUtils.getAllLevelAuthDeptMap();
|
||||
|
||||
List<LawsEnterpriseStandard> esList = enterpriseStandardService.list();
|
||||
List<String> errorMsgs = new ArrayList<>();
|
||||
|
||||
@@ -478,8 +485,9 @@ public class ProcessEsAnnualReportServiceImpl extends ServiceImpl<ProcessEsAnnua
|
||||
|
||||
// 检查制修订类型 编号 名称
|
||||
errMsg.append(validProjectType(plan, listDict, esList));
|
||||
// 检查标准等级分类和授权部门
|
||||
errMsg.append(excelUtils.validAuthDept(authDept, listDict, standardClassification, authDeptMap));
|
||||
// 检查所有数据字典校验的字段
|
||||
errMsg.append(excelUtils.validAuthDept(authDept, listDict));
|
||||
errMsg.append(excelUtils.validCooperateUnit(cooperationUnit, listDict));
|
||||
errMsg.append(excelUtils.validMainDraftingUser(mainDraftingUser, listDict));
|
||||
errMsg.append(excelUtils.validMainDraftingUnit(mainDraftingUnit, listDict));
|
||||
@@ -488,7 +496,6 @@ public class ProcessEsAnnualReportServiceImpl extends ServiceImpl<ProcessEsAnnua
|
||||
errMsg.append(excelUtils.validWorkGroup(workGroup, listDict));
|
||||
errMsg.append(excelUtils.validStandardSystem(standardSystem, listDict));
|
||||
errMsg.append(excelUtils.validStandardType(standardType, listDict));
|
||||
errMsg.append(excelUtils.validStandardClassification(standardClassification, listDict));
|
||||
errMsg.append(excelUtils.validSingleDateMustInputNotBeforeToday(draftPlannedCompleteDateString, "草稿计划完成日期"));
|
||||
errMsg.append(excelUtils.validSingleDateMustInputNotBeforeToday(solicitationDraftPlanCompleteDateString, "征求意见稿计划完成日期"));
|
||||
errMsg.append(excelUtils.validSingleDateMustInputNotBeforeToday(planApprovalDateString, "计划报批日期"));
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
package com.jero.modules.activiti.util;
|
||||
|
||||
import cn.hutool.core.util.StrUtil;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.jero.common.api.CommonAPI;
|
||||
import com.jero.common.system.vo.SysDictItemCore;
|
||||
import com.jero.common.util.oConvertUtils;
|
||||
@@ -9,6 +10,10 @@ import com.jero.modules.activiti.process.esInitChange.entity.enums.ESPProjectTyp
|
||||
import com.jero.modules.laws.common.util.ImportUtil;
|
||||
import com.jero.modules.laws.standard.entity.LawsEnterpriseStandard;
|
||||
import com.jero.modules.laws.standard.service.ILawsEnterpriseStandardService;
|
||||
import com.jero.modules.sys.entity.LawsEnterpriseStandardLevel;
|
||||
import com.jero.modules.sys.entity.LawsGrade;
|
||||
import com.jero.modules.sys.service.ILawsEnterpriseStandardLevelService;
|
||||
import com.jero.modules.sys.service.ILawsGradeService;
|
||||
import com.jero.modules.system.entity.SysDictItem;
|
||||
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
|
||||
import org.apache.poi.ss.usermodel.Cell;
|
||||
@@ -46,6 +51,12 @@ public class ExcelUtils {
|
||||
@Resource
|
||||
private ImportUtil importUtil;
|
||||
|
||||
@Resource
|
||||
private ILawsGradeService gradeService;
|
||||
|
||||
@Resource
|
||||
private ILawsEnterpriseStandardLevelService enterpriseStandardLevelService;
|
||||
|
||||
@Resource
|
||||
private ILawsEnterpriseStandardService enterpriseStandardService;
|
||||
|
||||
@@ -234,19 +245,6 @@ public class ExcelUtils {
|
||||
return textValue.toString();
|
||||
}
|
||||
|
||||
|
||||
public String validStandardClassification(String value, List<SysDictItemCore> listDict) {
|
||||
// 非空检查
|
||||
if (StrUtil.isBlank(value)) {
|
||||
return "'标准等级分类'不能为空。";
|
||||
}
|
||||
// 检查授权部门
|
||||
if (!excelUtils.validDict("standard_grade_classify", value, null, null, true, listDict)) {
|
||||
return "'标准等级分类'无效。";
|
||||
}
|
||||
return "";
|
||||
}
|
||||
|
||||
public String validStandardType(String value, List<SysDictItemCore> listDict) {
|
||||
// 非空检查
|
||||
if (StrUtil.isBlank(value)) {
|
||||
@@ -259,18 +257,48 @@ public class ExcelUtils {
|
||||
return "";
|
||||
}
|
||||
|
||||
public String validAuthDept(String value, List<SysDictItemCore> listDict) {
|
||||
// 非空检查
|
||||
if (StrUtil.isBlank(value)) {
|
||||
return "'授权部门'不能为空。";
|
||||
public String validAuthDept(String authDept, List<SysDictItemCore> listDict,
|
||||
String standardClassification, Map<String, List<String>> authDeptMap) {
|
||||
if (StrUtil.isBlank(standardClassification)) {
|
||||
return "'标准等级分类'不能为空。";
|
||||
}
|
||||
|
||||
// 检查授权部门
|
||||
if (!excelUtils.validDict("depart_name", value, "sys_depart", "id", false, listDict)) {
|
||||
return "'授权部门'无效。";
|
||||
if (!excelUtils.validDict("standard_grade_classify", standardClassification, null,
|
||||
null, true, listDict)) {
|
||||
return "'标准等级分类'无效。";
|
||||
}
|
||||
|
||||
String level = translateDictValue("standard_grade_classify", standardClassification, listDict);
|
||||
|
||||
if (level.equals("2") || level.equals("3")) {
|
||||
if (StrUtil.isBlank(authDept)) {
|
||||
return "'授权部门'不能为空。";
|
||||
}
|
||||
|
||||
// 检查授权部门
|
||||
if (!excelUtils.validDict("depart_name", authDept, "sys_depart", "id", false, listDict)) {
|
||||
return "'授权部门'无效。";
|
||||
}
|
||||
|
||||
// 将授权部门转换为idList
|
||||
String deptIds = excelUtils.translateDictValue("depart_name", "id", "sys_depart", authDept, listDict);
|
||||
boolean isMatching = isMatchingAuthDept(
|
||||
Arrays.asList(deptIds.split(",")),
|
||||
level.equals("2") ? authDeptMap.get("1") : authDeptMap.get("2")
|
||||
);
|
||||
if (!isMatching) {
|
||||
return "'授权部门'和'标准等级分类'不匹配。";
|
||||
}
|
||||
}
|
||||
|
||||
return "";
|
||||
}
|
||||
|
||||
private boolean isMatchingAuthDept(List<String> authDeptList, List<String> levelDeptList) {
|
||||
return new HashSet<>(levelDeptList).containsAll(authDeptList);
|
||||
}
|
||||
|
||||
public String validCooperateUnit(String value, List<SysDictItemCore> listDict) {
|
||||
// 非空检查
|
||||
if (StrUtil.isBlank(value)) {
|
||||
@@ -419,4 +447,23 @@ public class ExcelUtils {
|
||||
}
|
||||
return "";
|
||||
}
|
||||
|
||||
public Map<String, List<String>> getAllLevelAuthDeptMap() {
|
||||
Map<String, List<String>> authDeptMap = new HashMap<>();
|
||||
LambdaQueryWrapper<LawsGrade> gradeWrapper = new LambdaQueryWrapper<>();
|
||||
gradeWrapper.eq(LawsGrade::getLevel, 1);
|
||||
LawsGrade levelOne = gradeService.getOne(gradeWrapper);
|
||||
gradeWrapper.clear();
|
||||
gradeWrapper.eq(LawsGrade::getLevel, 2);
|
||||
LawsGrade levelTwo = gradeService.getOne(gradeWrapper);
|
||||
LambdaQueryWrapper<LawsEnterpriseStandardLevel> levelWrapper = new LambdaQueryWrapper<>();
|
||||
levelWrapper.eq(LawsEnterpriseStandardLevel::getGradeId, levelOne.getId());
|
||||
List<LawsEnterpriseStandardLevel> levelOneList = enterpriseStandardLevelService.list(levelWrapper);
|
||||
levelWrapper.clear();
|
||||
authDeptMap.put("1", levelOneList.stream().map(LawsEnterpriseStandardLevel::getDeptId).collect(Collectors.toList()));
|
||||
levelWrapper.eq(LawsEnterpriseStandardLevel::getGradeId, levelTwo.getId());
|
||||
List<LawsEnterpriseStandardLevel> levelTwoList = enterpriseStandardLevelService.list(levelWrapper);
|
||||
authDeptMap.put("2", levelTwoList.stream().map(LawsEnterpriseStandardLevel::getDeptId).collect(Collectors.toList()));
|
||||
return authDeptMap;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user