From 616f38bf69d0edf157fe4acdc20de5b31278c67c Mon Sep 17 00:00:00 2001 From: caihaohan Date: Wed, 1 Nov 2023 17:39:46 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E8=B5=B7=E8=8D=89=E9=83=A8=E9=97=A8?= =?UTF-8?q?=E7=9A=84=E4=BA=BA=E5=91=98=E5=85=B7=E6=9C=89=E6=89=80=E6=9C=89?= =?UTF-8?q?=E4=BC=81=E6=A0=87=E7=9A=84=E6=9F=A5=E7=9C=8B=E7=BC=96=E8=BE=91?= =?UTF-8?q?=E6=9D=83=E9=99=90?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../laws/common/constant/FieldCommon.java | 3 + .../service/impl/LawsCommonServiceImpl.java | 3 + .../EnterpriseStandardAuthUserService.java | 7 ++ ...EnterpriseStandardAuthUserServiceImpl.java | 87 ++++++++++--------- 4 files changed, 61 insertions(+), 39 deletions(-) diff --git a/laws-modules/src/main/java/com/jero/modules/laws/common/constant/FieldCommon.java b/laws-modules/src/main/java/com/jero/modules/laws/common/constant/FieldCommon.java index da4a0213..b2d9d755 100644 --- a/laws-modules/src/main/java/com/jero/modules/laws/common/constant/FieldCommon.java +++ b/laws-modules/src/main/java/com/jero/modules/laws/common/constant/FieldCommon.java @@ -95,6 +95,9 @@ public class FieldCommon { // 被引用标准 public static final String REFERENCED_STANDARD = "referenced_standard"; + // 授权部门 + public static final String AUTH_DEPT = "auth_dept"; + // 字典值统一后缀 public static final String _DICT_TEXT = "_dictText"; // 标准拆分单后缀 diff --git a/laws-modules/src/main/java/com/jero/modules/laws/common/service/impl/LawsCommonServiceImpl.java b/laws-modules/src/main/java/com/jero/modules/laws/common/service/impl/LawsCommonServiceImpl.java index 2965107a..51860d3d 100644 --- a/laws-modules/src/main/java/com/jero/modules/laws/common/service/impl/LawsCommonServiceImpl.java +++ b/laws-modules/src/main/java/com/jero/modules/laws/common/service/impl/LawsCommonServiceImpl.java @@ -762,6 +762,9 @@ public class LawsCommonServiceImpl implements ILawsCommonService { lawsNodeRelationService.removeByStandardId(id); lawsNodeRelationService.addRelation(standardSystem, standardNumber, id); + // 企标授权部门处理 + esAuthUserService.resetAuthDept(id, parameterMap.get(FieldCommon.AUTH_DEPT).toString()); + return MessageUtils.getMessage(ResultCommon.OK); } diff --git a/laws-modules/src/main/java/com/jero/modules/laws/enterprise/service/EnterpriseStandardAuthUserService.java b/laws-modules/src/main/java/com/jero/modules/laws/enterprise/service/EnterpriseStandardAuthUserService.java index 62cbc191..735ddd92 100644 --- a/laws-modules/src/main/java/com/jero/modules/laws/enterprise/service/EnterpriseStandardAuthUserService.java +++ b/laws-modules/src/main/java/com/jero/modules/laws/enterprise/service/EnterpriseStandardAuthUserService.java @@ -31,4 +31,11 @@ public interface EnterpriseStandardAuthUserService extends IService kv.put(FieldCommon.DETAIL_FLAG, false)); SysUser currentUser = sysUserService.getById(UserUtils.getUserId()); String userId = currentUser.getId(); - String deptId = currentUser.getDepartIds(); - SysDepart dept = sysDepartService.getById(deptId); - String curDeptName = dept == null ? "" : dept.getDepartName(); + List departIdModels = sysUserDepartService.queryDepartIdsOfUser(userId); + List departIds = departIdModels.stream().map(DepartIdModel::getKey).collect(Collectors.toList()); + List departNames = departIdModels.stream().map(DepartIdModel::getTitle).collect(Collectors.toList()); List standardIds = new ArrayList<>(); records.forEach(kv -> standardIds.add(String.valueOf(kv.get(FieldCommon.ID)))); List esList = enterpriseStandardService.list(new LambdaQueryWrapper() @@ -113,7 +109,7 @@ public class EnterpriseStandardAuthUserServiceImpl extends ServiceImpl authDeptWrapper = new LambdaQueryWrapper<>(); authDeptWrapper.in(CollUtil.isNotEmpty(standardIds), EnterpriseStandardAuthDept::getStandardId, standardIds); - authDeptWrapper.eq(EnterpriseStandardAuthDept::getAuthDept, deptId); + authDeptWrapper.in(EnterpriseStandardAuthDept::getAuthDept, departIds); List authDeptList = authDeptService.list(authDeptWrapper); authDeptWrapper.ge(EnterpriseStandardAuthDept::getAuthExpireDate, date); authDeptList.addAll(authDeptService.list(authDeptWrapper)); @@ -124,45 +120,32 @@ public class EnterpriseStandardAuthUserServiceImpl extends ServiceImpl levelDeptIds = standardLevelList.stream().map(LawsEnterpriseStandardLevel::getDeptId).collect(Collectors.toList()); // 起草部门有所有企标的查看权限 - if (draftDepartName.equals(curDeptName)) { + if (!departNames.isEmpty() && departNames.contains(draftDepartName)) { // 全部设置为有权限 records.forEach(kv -> kv.put(FieldCommon.DETAIL_FLAG, true)); } for (Map map : records) { String standardId = (String) map.get(FieldCommon.ID); LawsEnterpriseStandard es = esMap.get(standardId); - // 等级分类 - String gradeClassification = es.getGradeClassification(); - String mainDraftUser = es.getMainDraftingUser(); - // 主起草人可以看 - if (userId.equals(mainDraftUser)) { + // 授权部门和临时权限 + if (authStandardIds.contains(standardId)) { map.put(FieldCommon.DETAIL_FLAG, true); continue; } + // 等级分类 + String gradeClassification = es.getGradeClassification(); // 全公司可以看 if (gradeClassification.equals("1")) { map.put(FieldCommon.DETAIL_FLAG, true); continue; } // 企标等级分类级别可查看部门 - if (gradeClassification.equals("2") || gradeClassification.equals("3")) { - if (levelDeptIds.contains(deptId)) { + if (gradeClassification.equals("2") || gradeClassification.equals("3") || gradeClassification.equals("4")) { + if (levelDeptIds.stream().anyMatch(departIds::contains)) { map.put(FieldCommon.DETAIL_FLAG, true); continue; } } - // 企标等级分类级别可查看部门 - if (gradeClassification.equals("4")) { - if (deptId.equals(es.getMainDraftingUnit())) { - map.put(FieldCommon.DETAIL_FLAG, true); - continue; - } - } - // 授权部门和临时权限 - if (authStandardIds.contains(standardId)) { - map.put(FieldCommon.DETAIL_FLAG, true); - continue; - } map.put(FieldCommon.DETAIL_FLAG, false); } @@ -173,6 +156,14 @@ public class EnterpriseStandardAuthUserServiceImpl extends ServiceImpl departIdModels = sysUserDepartService.queryDepartIdsOfUser(userId); + List departNames = departIdModels.stream().map(DepartIdModel::getTitle).collect(Collectors.toList()); + // 起草部门有全部企标的查看权限 + if (departNames.contains(draftDepartName)) { + records.forEach(kv -> kv.put(FieldCommon.EDIT_FLAG, true)); + return; + } // 获取当前用户的角色roleCode List roleList = sysUserRoleService.getRole(currentUser.getUsername()); if (roleList != null && roleList.contains(FieldCommon.ROLE_ADMIN)) { @@ -191,12 +182,11 @@ public class EnterpriseStandardAuthUserServiceImpl extends ServiceImpl departIdModels = sysUserDepartService.queryDepartIdsOfUser(userId); + List departIds = departIdModels.stream().map(DepartIdModel::getKey).collect(Collectors.toList()); + List departNames = departIdModels.stream().map(DepartIdModel::getTitle).collect(Collectors.toList()); // 起草部门有全部企标的查看权限 - if (draftDepartName.equals(curDeptName)) { + if (departNames.contains(draftDepartName)) { return true; } @@ -218,7 +208,7 @@ public class EnterpriseStandardAuthUserServiceImpl extends ServiceImpl standardLevelList = standardLevelService.list(); List levelDeptIds = standardLevelList.stream().map(LawsEnterpriseStandardLevel::getDeptId).collect(Collectors.toList()); - if (levelDeptIds.contains(deptId)) { + if (levelDeptIds.stream().anyMatch(departIds::contains)) { return true; } } @@ -236,7 +226,7 @@ public class EnterpriseStandardAuthUserServiceImpl extends ServiceImpl authDeptWrapper = new LambdaQueryWrapper<>(); authDeptWrapper.eq(EnterpriseStandardAuthDept::getStandardId, standardId); - authDeptWrapper.eq(EnterpriseStandardAuthDept::getAuthDept, deptId); + authDeptWrapper.in(EnterpriseStandardAuthDept::getAuthDept, departIds); authDeptWrapper.ge(EnterpriseStandardAuthDept::getAuthExpireDate, date); List authDeptList = authDeptService.list(authDeptWrapper); if (authDeptList.size() > 0) { @@ -272,6 +262,25 @@ public class EnterpriseStandardAuthUserServiceImpl extends ServiceImpl wrapper = new LambdaQueryWrapper<>(); + wrapper.eq(EnterpriseStandardAuthDept::getStandardId, id); + authDeptService.remove(wrapper); + + List authDeptList = new ArrayList<>(); + for (String deptId : authDeptIdList) { + EnterpriseStandardAuthDept authDept1 = new EnterpriseStandardAuthDept(); + authDept1.setStandardId(id); + authDept1.setAuthDept(deptId); + authDeptList.add(authDept1); + } + authDeptService.saveBatch(authDeptList); + } }