From 0947c39c6e2d850e094ec4532dda5b4c686a0055 Mon Sep 17 00:00:00 2001 From: caihaohan Date: Thu, 18 Jan 2024 16:04:07 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E5=B9=B4=E5=BA=A6=E5=88=B6=E4=BF=AE?= =?UTF-8?q?=E8=AE=A2=E5=AF=BC=E5=85=A5=E6=A0=B9=E6=8D=AE=E6=A0=87=E5=87=86?= =?UTF-8?q?=E7=AD=89=E7=BA=A7=E5=88=86=E7=B1=BB=E9=99=90=E5=88=B6=E6=8E=88?= =?UTF-8?q?=E6=9D=83=E9=83=A8=E9=97=A8=E8=83=BD=E5=A4=9F=E5=AF=BC=E5=85=A5?= =?UTF-8?q?=E7=9A=84=E5=AD=97=E6=AE=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../impl/ProcessEsAnnualInitServiceImpl.java | 25 ++++-- .../ProcessEsAnnualReportServiceImpl.java | 25 ++++-- .../modules/activiti/util/ExcelUtils.java | 85 ++++++++++++++----- 3 files changed, 98 insertions(+), 37 deletions(-) diff --git a/laws-modules/src/main/java/com/jero/modules/activiti/process/esAnnualInit/service/impl/ProcessEsAnnualInitServiceImpl.java b/laws-modules/src/main/java/com/jero/modules/activiti/process/esAnnualInit/service/impl/ProcessEsAnnualInitServiceImpl.java index 3db8e17d..9e4403d3 100644 --- a/laws-modules/src/main/java/com/jero/modules/activiti/process/esAnnualInit/service/impl/ProcessEsAnnualInitServiceImpl.java +++ b/laws-modules/src/main/java/com/jero/modules/activiti/process/esAnnualInit/service/impl/ProcessEsAnnualInitServiceImpl.java @@ -514,13 +514,13 @@ public class ProcessEsAnnualInitServiceImpl extends ServiceImpl list) { - List originStandardNoList = list.stream().map(ProcessEsAnnualInit::getOriginEnStandardNo).collect(Collectors.toList()); +// List originStandardNoList = list.stream().map(ProcessEsAnnualInit::getOriginEnStandardNo).collect(Collectors.toList()); - LambdaQueryWrapper esWrapper = new LambdaQueryWrapper<>(); - esWrapper.in(LawsEnterpriseStandard::getStandardNumber, originStandardNoList); - List esList = enterpriseStandardService.list(esWrapper); - // 转换成key为企标编号的map - Map esMap = esList.stream().collect(Collectors.toMap(LawsEnterpriseStandard::getStandardNumber, item -> item)); +// LambdaQueryWrapper esWrapper = new LambdaQueryWrapper<>(); +// esWrapper.in(LawsEnterpriseStandard::getStandardNumber, originStandardNoList); +// List esList = enterpriseStandardService.list(esWrapper); +// // 转换成key为企标编号的map +// Map esMap = esList.stream().collect(Collectors.toMap(LawsEnterpriseStandard::getStandardNumber, item -> item)); list.forEach(item -> { // 如果是制定则去除掉所有的原企标名称 原企标编号 @@ -539,6 +539,10 @@ public class ProcessEsAnnualInitServiceImpl extends ServiceImpl validationList(List list, List listDict) { + // 找到各标准等级的授权部门 + Map> authDeptMap = excelUtils.getAllLevelAuthDeptMap(); + List esList = enterpriseStandardService.list(); List errorMsgs = new ArrayList<>(); @@ -588,7 +595,7 @@ public class ProcessEsAnnualInitServiceImpl extends ServiceImpl list) { - List originStandardNoList = list.stream().map(ProcessEsAnnualReport::getOriginEnStandardNo).collect(Collectors.toList()); - - LambdaQueryWrapper esWrapper = new LambdaQueryWrapper<>(); - esWrapper.in(LawsEnterpriseStandard::getStandardNumber, originStandardNoList); - List esList = enterpriseStandardService.list(esWrapper); - // 转换成key为企标编号的map - Map esMap = esList.stream().collect(Collectors.toMap(LawsEnterpriseStandard::getStandardNumber, item -> item)); +// List originStandardNoList = list.stream().map(ProcessEsAnnualReport::getOriginEnStandardNo).collect(Collectors.toList()); +// +// LambdaQueryWrapper esWrapper = new LambdaQueryWrapper<>(); +// esWrapper.in(LawsEnterpriseStandard::getStandardNumber, originStandardNoList); +// List esList = enterpriseStandardService.list(esWrapper); +// // 转换成key为企标编号的map +// Map esMap = esList.stream().collect(Collectors.toMap(LawsEnterpriseStandard::getStandardNumber, item -> item)); list.forEach(item -> { // 如果是制定则去除掉所有的原企标名称 原企标编号 @@ -419,6 +419,10 @@ public class ProcessEsAnnualReportServiceImpl extends ServiceImpl validationList(List list, List listDict) { + // 找到各标准等级的授权部门 + Map> authDeptMap = excelUtils.getAllLevelAuthDeptMap(); + List esList = enterpriseStandardService.list(); List errorMsgs = new ArrayList<>(); @@ -478,8 +485,9 @@ public class ProcessEsAnnualReportServiceImpl extends ServiceImpl 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 listDict) { // 非空检查 if (StrUtil.isBlank(value)) { @@ -259,18 +257,48 @@ public class ExcelUtils { return ""; } - public String validAuthDept(String value, List listDict) { - // 非空检查 - if (StrUtil.isBlank(value)) { - return "'授权部门'不能为空。"; + public String validAuthDept(String authDept, List listDict, + String standardClassification, Map> 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 authDeptList, List levelDeptList) { + return new HashSet<>(levelDeptList).containsAll(authDeptList); + } + public String validCooperateUnit(String value, List listDict) { // 非空检查 if (StrUtil.isBlank(value)) { @@ -419,4 +447,23 @@ public class ExcelUtils { } return ""; } + + public Map> getAllLevelAuthDeptMap() { + Map> authDeptMap = new HashMap<>(); + LambdaQueryWrapper 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 levelWrapper = new LambdaQueryWrapper<>(); + levelWrapper.eq(LawsEnterpriseStandardLevel::getGradeId, levelOne.getId()); + List levelOneList = enterpriseStandardLevelService.list(levelWrapper); + levelWrapper.clear(); + authDeptMap.put("1", levelOneList.stream().map(LawsEnterpriseStandardLevel::getDeptId).collect(Collectors.toList())); + levelWrapper.eq(LawsEnterpriseStandardLevel::getGradeId, levelTwo.getId()); + List levelTwoList = enterpriseStandardLevelService.list(levelWrapper); + authDeptMap.put("2", levelTwoList.stream().map(LawsEnterpriseStandardLevel::getDeptId).collect(Collectors.toList())); + return authDeptMap; + } }