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