fix: 企标等级映射二级三级问题
This commit is contained in:
+44
-8
@@ -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.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.sys.utils.UserUtils;
|
||||
import com.jero.modules.system.entity.SysUser;
|
||||
import com.jero.modules.system.model.DepartIdModel;
|
||||
@@ -66,6 +68,9 @@ public class EnterpriseStandardAuthUserServiceImpl extends ServiceImpl<Enterpris
|
||||
@Value("${draftDepartName}")
|
||||
private String draftDepartName;
|
||||
|
||||
@Resource
|
||||
private ILawsGradeService gradeService;
|
||||
|
||||
|
||||
@Override
|
||||
public void saveTempPermission(LawsStandardTempPermission lawsStandardTempPermission) {
|
||||
@@ -141,7 +146,13 @@ public class EnterpriseStandardAuthUserServiceImpl extends ServiceImpl<Enterpris
|
||||
|
||||
// 企标级别授权的部门
|
||||
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)) {
|
||||
@@ -151,7 +162,6 @@ public class EnterpriseStandardAuthUserServiceImpl extends ServiceImpl<Enterpris
|
||||
for (Map<String, Object> map : records) {
|
||||
String standardId = (String) map.get(FieldCommon.ID);
|
||||
LawsEnterpriseStandard es = esMap.get(standardId);
|
||||
String mainDraftingUnit = es.getMainDraftingUnit();
|
||||
// 授权部门和临时权限
|
||||
if (authStandardIds.contains(standardId)) {
|
||||
map.put(FieldCommon.DETAIL_FLAG, true);
|
||||
@@ -165,8 +175,14 @@ public class EnterpriseStandardAuthUserServiceImpl extends ServiceImpl<Enterpris
|
||||
continue;
|
||||
}
|
||||
// 企标等级分类级别可查看部门
|
||||
if ("2".equals(gradeClassification) || "3".equals(gradeClassification)) {
|
||||
if (levelDeptIds.stream().anyMatch(departIds::contains)) {
|
||||
if ("2".equals(gradeClassification)) {
|
||||
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);
|
||||
continue;
|
||||
}
|
||||
@@ -177,6 +193,13 @@ public class EnterpriseStandardAuthUserServiceImpl extends ServiceImpl<Enterpris
|
||||
}
|
||||
|
||||
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<>();
|
||||
for (String id : standardIds) {
|
||||
Map<String, Object> map = new HashMap<>();
|
||||
@@ -212,7 +235,14 @@ public class EnterpriseStandardAuthUserServiceImpl extends ServiceImpl<Enterpris
|
||||
|
||||
// 企标级别授权的部门
|
||||
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)) {
|
||||
@@ -230,13 +260,19 @@ public class EnterpriseStandardAuthUserServiceImpl extends ServiceImpl<Enterpris
|
||||
// 等级分类
|
||||
String gradeClassification = es.getGradeClassification();
|
||||
// 全公司可以看
|
||||
if (gradeClassification.equals("1")) {
|
||||
if ("1".equals(gradeClassification)) {
|
||||
map.put(FieldCommon.DETAIL_FLAG, true);
|
||||
continue;
|
||||
}
|
||||
// 企标等级分类级别可查看部门
|
||||
if (gradeClassification.equals("2") || gradeClassification.equals("3") || gradeClassification.equals("4")) {
|
||||
if (levelDeptIds.stream().anyMatch(departIds::contains)) {
|
||||
if ("2".equals(gradeClassification)) {
|
||||
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);
|
||||
continue;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user