|
@@ -208,9 +208,7 @@ public class UserManagementFacade {
|
|
|
checkRoles(roles);
|
|
|
//5.用户如果没有医疗组、科室 绑定角色不能选择本医疗组、全部科室除本科室外、本科室数据权限角色
|
|
|
//科室
|
|
|
- if (!deptFlag) {
|
|
|
- userDeptCheck(roles);
|
|
|
- }
|
|
|
+ userDeptCheck(roles,deptFlag);
|
|
|
//医疗组(无医生信息,就不会有医疗组;有医生信息无医疗组)
|
|
|
boolean groupFlag = false;
|
|
|
if (StringUtil.isEmpty(user.getJobNo())) {
|
|
@@ -259,7 +257,7 @@ public class UserManagementFacade {
|
|
|
* @Description校验用户如果没有科室信息时,是否分配科室数据权限相关的角色
|
|
|
* @Return void
|
|
|
*/
|
|
|
- private void userDeptCheck(List<Long> roles) {
|
|
|
+ private void userDeptCheck(List<Long> roles,boolean deptFlag) {
|
|
|
//获取当前用户的角色
|
|
|
List<Long> dataTypes = new ArrayList<>();
|
|
|
dataTypes.add(DataAuthDataTypeEnum.ALL_DEPT_NOT_SELF.getKey() * 1l);
|
|
@@ -267,11 +265,16 @@ public class UserManagementFacade {
|
|
|
List<UserRoleDTO> checkRoles = roleFacade.getBaseMapper()
|
|
|
.getDataAuthRole(SysUserUtils.getCurrentPrincipleId(), roles, dataTypes);
|
|
|
StringBuffer errStr = new StringBuffer();
|
|
|
+ //角色需要用户包含科室信息
|
|
|
if (ListUtil.isNotEmpty(checkRoles)) {
|
|
|
- checkRoles.stream().forEach(userRoleDTO -> {
|
|
|
- errStr.append(userRoleDTO.getRoleName() + ";");
|
|
|
- });
|
|
|
- Asserts.fail(errStr.toString() + "角色需要用户具备科室信息");
|
|
|
+ if(!deptFlag){
|
|
|
+ checkRoles.stream().forEach(userRoleDTO -> {
|
|
|
+ errStr.append(userRoleDTO.getRoleName() + ";");
|
|
|
+ });
|
|
|
+ }
|
|
|
+ if(StringUtil.isNotEmpty(errStr.toString())){
|
|
|
+ Asserts.fail(errStr.toString() + "角色需要用户具备科室信息");
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
|