fix: 企标等级映射二级三级问题

This commit is contained in:
2023-11-12 19:30:04 +08:00
parent 662e7c36e5
commit f94ab7ea9a
@@ -17,7 +17,9 @@ import com.jero.modules.laws.standard.entity.LawsEnterpriseStandard;
import com.jero.modules.laws.standard.entity.LawsStandardTempPermission; import com.jero.modules.laws.standard.entity.LawsStandardTempPermission;
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.LawsEnterpriseStandardLevel;
import com.jero.modules.sys.entity.LawsGrade;
import com.jero.modules.sys.service.ILawsEnterpriseStandardLevelService; import com.jero.modules.sys.service.ILawsEnterpriseStandardLevelService;
import com.jero.modules.sys.service.ILawsGradeService;
import com.jero.modules.sys.utils.UserUtils; import com.jero.modules.sys.utils.UserUtils;
import com.jero.modules.system.entity.SysUser; import com.jero.modules.system.entity.SysUser;
import com.jero.modules.system.model.DepartIdModel; import com.jero.modules.system.model.DepartIdModel;
@@ -66,6 +68,9 @@ public class EnterpriseStandardAuthUserServiceImpl extends ServiceImpl<Enterpris
@Value("${draftDepartName}") @Value("${draftDepartName}")
private String draftDepartName; private String draftDepartName;
@Resource
private ILawsGradeService gradeService;
@Override @Override
public void saveTempPermission(LawsStandardTempPermission lawsStandardTempPermission) { public void saveTempPermission(LawsStandardTempPermission lawsStandardTempPermission) {
@@ -141,7 +146,13 @@ public class EnterpriseStandardAuthUserServiceImpl extends ServiceImpl<Enterpris
// 企标级别授权的部门 // 企标级别授权的部门
List<LawsEnterpriseStandardLevel> standardLevelList = standardLevelService.list(); List<LawsEnterpriseStandardLevel> standardLevelList = standardLevelService.list();
List<String> levelDeptIds = standardLevelList.stream().map(LawsEnterpriseStandardLevel::getDeptId).collect(Collectors.toList()); List<LawsGrade> gradeList = gradeService.list();
Map<Integer, LawsGrade> gradeMap = gradeList.stream().collect(Collectors.toMap(LawsGrade::getLevel, e -> e));
List<String> levelOneDeptIds = standardLevelList.stream().filter(l -> l.getGradeId().equals(gradeMap.get(1).getId()))
.map(LawsEnterpriseStandardLevel::getDeptId).collect(Collectors.toList());
List<String> levelTwoDeptIds = standardLevelList.stream().filter(l -> l.getGradeId().equals(gradeMap.get(2).getId()))
.map(LawsEnterpriseStandardLevel::getDeptId).collect(Collectors.toList());
// 起草部门有所有企标的查看权限 // 起草部门有所有企标的查看权限
if (!departNames.isEmpty() && departNames.contains(draftDepartName)) { if (!departNames.isEmpty() && departNames.contains(draftDepartName)) {
@@ -151,7 +162,6 @@ public class EnterpriseStandardAuthUserServiceImpl extends ServiceImpl<Enterpris
for (Map<String, Object> map : records) { for (Map<String, Object> map : records) {
String standardId = (String) map.get(FieldCommon.ID); String standardId = (String) map.get(FieldCommon.ID);
LawsEnterpriseStandard es = esMap.get(standardId); LawsEnterpriseStandard es = esMap.get(standardId);
String mainDraftingUnit = es.getMainDraftingUnit();
// 授权部门和临时权限 // 授权部门和临时权限
if (authStandardIds.contains(standardId)) { if (authStandardIds.contains(standardId)) {
map.put(FieldCommon.DETAIL_FLAG, true); map.put(FieldCommon.DETAIL_FLAG, true);
@@ -165,8 +175,14 @@ public class EnterpriseStandardAuthUserServiceImpl extends ServiceImpl<Enterpris
continue; continue;
} }
// 企标等级分类级别可查看部门 // 企标等级分类级别可查看部门
if ("2".equals(gradeClassification) || "3".equals(gradeClassification)) { if ("2".equals(gradeClassification)) {
if (levelDeptIds.stream().anyMatch(departIds::contains)) { if (levelOneDeptIds.stream().anyMatch(departIds::contains)) {
map.put(FieldCommon.DETAIL_FLAG, true);
continue;
}
}
if ("3".equals(gradeClassification)) {
if (levelTwoDeptIds.stream().anyMatch(departIds::contains)) {
map.put(FieldCommon.DETAIL_FLAG, true); map.put(FieldCommon.DETAIL_FLAG, true);
continue; continue;
} }
@@ -177,6 +193,13 @@ public class EnterpriseStandardAuthUserServiceImpl extends ServiceImpl<Enterpris
} }
public boolean hasESAuth(String userId, List<String> standardIds) { public boolean hasESAuth(String userId, List<String> standardIds) {
SysUser currentUser = sysUserService.getById(userId);
// 管理员有所有企标的权限
List<String> roleList = sysUserRoleService.getRole(currentUser.getUsername());
if (roleList != null && roleList.contains(FieldCommon.ROLE_ADMIN)) {
return true;
}
List<Map<String, Object>> records = new ArrayList<>(); List<Map<String, Object>> records = new ArrayList<>();
for (String id : standardIds) { for (String id : standardIds) {
Map<String, Object> map = new HashMap<>(); Map<String, Object> map = new HashMap<>();
@@ -212,7 +235,14 @@ public class EnterpriseStandardAuthUserServiceImpl extends ServiceImpl<Enterpris
// 企标级别授权的部门 // 企标级别授权的部门
List<LawsEnterpriseStandardLevel> standardLevelList = standardLevelService.list(); List<LawsEnterpriseStandardLevel> standardLevelList = standardLevelService.list();
List<String> levelDeptIds = standardLevelList.stream().map(LawsEnterpriseStandardLevel::getDeptId).collect(Collectors.toList()); List<LawsGrade> gradeList = gradeService.list();
Map<Integer, LawsGrade> gradeMap = gradeList.stream().collect(Collectors.toMap(LawsGrade::getLevel, e -> e));
List<String> levelOneDeptIds = standardLevelList.stream().filter(l -> l.getGradeId().equals(gradeMap.get(1).getId()))
.map(LawsEnterpriseStandardLevel::getDeptId).collect(Collectors.toList());
List<String> levelTwoDeptIds = standardLevelList.stream().filter(l -> l.getGradeId().equals(gradeMap.get(2).getId()))
.map(LawsEnterpriseStandardLevel::getDeptId).collect(Collectors.toList());
// 起草部门有所有企标的查看权限 // 起草部门有所有企标的查看权限
if (!departNames.isEmpty() && departNames.contains(draftDepartName)) { if (!departNames.isEmpty() && departNames.contains(draftDepartName)) {
@@ -230,13 +260,19 @@ public class EnterpriseStandardAuthUserServiceImpl extends ServiceImpl<Enterpris
// 等级分类 // 等级分类
String gradeClassification = es.getGradeClassification(); String gradeClassification = es.getGradeClassification();
// 全公司可以看 // 全公司可以看
if (gradeClassification.equals("1")) { if ("1".equals(gradeClassification)) {
map.put(FieldCommon.DETAIL_FLAG, true); map.put(FieldCommon.DETAIL_FLAG, true);
continue; continue;
} }
// 企标等级分类级别可查看部门 // 企标等级分类级别可查看部门
if (gradeClassification.equals("2") || gradeClassification.equals("3") || gradeClassification.equals("4")) { if ("2".equals(gradeClassification)) {
if (levelDeptIds.stream().anyMatch(departIds::contains)) { if (levelOneDeptIds.stream().anyMatch(departIds::contains)) {
map.put(FieldCommon.DETAIL_FLAG, true);
continue;
}
}
if ("3".equals(gradeClassification)) {
if (levelTwoDeptIds.stream().anyMatch(departIds::contains)) {
map.put(FieldCommon.DETAIL_FLAG, true); map.put(FieldCommon.DETAIL_FLAG, true);
continue; continue;
} }