feat: 起草部门的人员具有所有企标的查看编辑权限
This commit is contained in:
@@ -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";
|
||||
// 标准拆分单后缀
|
||||
|
||||
+3
@@ -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);
|
||||
}
|
||||
|
||||
|
||||
+7
@@ -31,4 +31,11 @@ public interface EnterpriseStandardAuthUserService extends IService<EnterpriseSt
|
||||
boolean detailPermissionByUser(String standardNumber, String userId, String user);
|
||||
|
||||
boolean verifyESDeleteAuth(String ids, String userId);
|
||||
|
||||
/**
|
||||
* 企标编辑保存后 重置授权部门
|
||||
* @param id
|
||||
* @param string
|
||||
*/
|
||||
void resetAuthDept(String id,String string);
|
||||
}
|
||||
|
||||
+48
-39
@@ -18,10 +18,9 @@ import com.jero.modules.laws.standard.service.ILawsEnterpriseStandardService;
|
||||
import com.jero.modules.sys.entity.LawsEnterpriseStandardLevel;
|
||||
import com.jero.modules.sys.service.ILawsEnterpriseStandardLevelService;
|
||||
import com.jero.modules.sys.utils.UserUtils;
|
||||
import com.jero.modules.system.entity.SysDepart;
|
||||
import com.jero.modules.system.entity.SysUser;
|
||||
import com.jero.modules.system.service.ISysDepartService;
|
||||
import com.jero.modules.system.service.ISysRoleService;
|
||||
import com.jero.modules.system.model.DepartIdModel;
|
||||
import com.jero.modules.system.service.ISysUserDepartService;
|
||||
import com.jero.modules.system.service.ISysUserService;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
@@ -49,9 +48,6 @@ public class EnterpriseStandardAuthUserServiceImpl extends ServiceImpl<Enterpris
|
||||
@Resource
|
||||
private ISysUserService sysUserService;
|
||||
|
||||
@Resource
|
||||
private ISysDepartService sysDepartService;
|
||||
|
||||
@Resource
|
||||
private ILawsEnterpriseStandardService enterpriseStandardService;
|
||||
|
||||
@@ -59,10 +55,10 @@ public class EnterpriseStandardAuthUserServiceImpl extends ServiceImpl<Enterpris
|
||||
private ILawsEnterpriseStandardLevelService standardLevelService;
|
||||
|
||||
@Resource
|
||||
private ISysRoleService sysRoleService;
|
||||
private ISysUserService sysUserRoleService;
|
||||
|
||||
@Resource
|
||||
private ISysUserService sysUserRoleService;
|
||||
private ISysUserDepartService sysUserDepartService;
|
||||
|
||||
// 注入draftDepartName
|
||||
@Value("${draftDepartName}")
|
||||
@@ -91,9 +87,9 @@ public class EnterpriseStandardAuthUserServiceImpl extends ServiceImpl<Enterpris
|
||||
records.forEach(kv -> 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<DepartIdModel> departIdModels = sysUserDepartService.queryDepartIdsOfUser(userId);
|
||||
List<String> departIds = departIdModels.stream().map(DepartIdModel::getKey).collect(Collectors.toList());
|
||||
List<String> departNames = departIdModels.stream().map(DepartIdModel::getTitle).collect(Collectors.toList());
|
||||
List<String> standardIds = new ArrayList<>();
|
||||
records.forEach(kv -> standardIds.add(String.valueOf(kv.get(FieldCommon.ID))));
|
||||
List<LawsEnterpriseStandard> esList = enterpriseStandardService.list(new LambdaQueryWrapper<LawsEnterpriseStandard>()
|
||||
@@ -113,7 +109,7 @@ public class EnterpriseStandardAuthUserServiceImpl extends ServiceImpl<Enterpris
|
||||
// 查询授权部门-和临时授权部门
|
||||
LambdaQueryWrapper<EnterpriseStandardAuthDept> authDeptWrapper = new LambdaQueryWrapper<>();
|
||||
authDeptWrapper.in(CollUtil.isNotEmpty(standardIds), EnterpriseStandardAuthDept::getStandardId, standardIds);
|
||||
authDeptWrapper.eq(EnterpriseStandardAuthDept::getAuthDept, deptId);
|
||||
authDeptWrapper.in(EnterpriseStandardAuthDept::getAuthDept, departIds);
|
||||
List<EnterpriseStandardAuthDept> authDeptList = authDeptService.list(authDeptWrapper);
|
||||
authDeptWrapper.ge(EnterpriseStandardAuthDept::getAuthExpireDate, date);
|
||||
authDeptList.addAll(authDeptService.list(authDeptWrapper));
|
||||
@@ -124,45 +120,32 @@ public class EnterpriseStandardAuthUserServiceImpl extends ServiceImpl<Enterpris
|
||||
List<String> 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<String, Object> 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<Enterpris
|
||||
// 只有创建人和管理员才有维护的权限
|
||||
String userId = UserUtils.getUserId();
|
||||
SysUser currentUser = sysUserService.getById(userId);
|
||||
// 起草部门的人也有维护的权限
|
||||
List<DepartIdModel> departIdModels = sysUserDepartService.queryDepartIdsOfUser(userId);
|
||||
List<String> 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<String> roleList = sysUserRoleService.getRole(currentUser.getUsername());
|
||||
if (roleList != null && roleList.contains(FieldCommon.ROLE_ADMIN)) {
|
||||
@@ -191,12 +182,11 @@ public class EnterpriseStandardAuthUserServiceImpl extends ServiceImpl<Enterpris
|
||||
|
||||
@Override
|
||||
public boolean detailPermissionByUser(String standardId, String standardNumber, String userId) {
|
||||
SysUser user = sysUserService.getById(userId);
|
||||
String deptId = user.getDepartIds();
|
||||
SysDepart dept = sysDepartService.getById(deptId);
|
||||
String curDeptName = dept == null ? "" : dept.getDepartName();
|
||||
List<DepartIdModel> departIdModels = sysUserDepartService.queryDepartIdsOfUser(userId);
|
||||
List<String> departIds = departIdModels.stream().map(DepartIdModel::getKey).collect(Collectors.toList());
|
||||
List<String> 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<Enterpris
|
||||
// 企标级别授权的部门
|
||||
List<LawsEnterpriseStandardLevel> standardLevelList = standardLevelService.list();
|
||||
List<String> 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<Enterpris
|
||||
// 查询授权部门-和临时授权部门
|
||||
LambdaQueryWrapper<EnterpriseStandardAuthDept> authDeptWrapper = new LambdaQueryWrapper<>();
|
||||
authDeptWrapper.eq(EnterpriseStandardAuthDept::getStandardId, standardId);
|
||||
authDeptWrapper.eq(EnterpriseStandardAuthDept::getAuthDept, deptId);
|
||||
authDeptWrapper.in(EnterpriseStandardAuthDept::getAuthDept, departIds);
|
||||
authDeptWrapper.ge(EnterpriseStandardAuthDept::getAuthExpireDate, date);
|
||||
List<EnterpriseStandardAuthDept> authDeptList = authDeptService.list(authDeptWrapper);
|
||||
if (authDeptList.size() > 0) {
|
||||
@@ -272,6 +262,25 @@ public class EnterpriseStandardAuthUserServiceImpl extends ServiceImpl<Enterpris
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void resetAuthDept(String id, String authDept) {
|
||||
// 逗号拼接转换List
|
||||
String[] authDeptIdList = authDept.split(",");
|
||||
// 先删后增
|
||||
LambdaQueryWrapper<EnterpriseStandardAuthDept> wrapper = new LambdaQueryWrapper<>();
|
||||
wrapper.eq(EnterpriseStandardAuthDept::getStandardId, id);
|
||||
authDeptService.remove(wrapper);
|
||||
|
||||
List<EnterpriseStandardAuthDept> authDeptList = new ArrayList<>();
|
||||
for (String deptId : authDeptIdList) {
|
||||
EnterpriseStandardAuthDept authDept1 = new EnterpriseStandardAuthDept();
|
||||
authDept1.setStandardId(id);
|
||||
authDept1.setAuthDept(deptId);
|
||||
authDeptList.add(authDept1);
|
||||
}
|
||||
authDeptService.saveBatch(authDeptList);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user