Explorar o código

角色数据权限添加 机构树结构调整

785834757 hai 1 ano
pai
achega
4f8c4123fe

+ 20 - 0
authentication/src/main/java/com/jzg/mapper/SysRoleDataScopeLinkMapper.java

@@ -0,0 +1,20 @@
+package com.jzg.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.jzg.commons.entity.po.SysRoleDataScopeLink;
+import org.apache.ibatis.annotations.Mapper;
+
+/**
+* @author dongxin
+* @description 针对表【sys_user(核心用户表)】的数据库操作Mapper
+* @createDate 2025-01-13 10:53:51
+* @Entity generator.domain.SysUser
+*/
+@Mapper
+public interface SysRoleDataScopeLinkMapper extends BaseMapper<SysRoleDataScopeLink> {
+
+}
+
+
+
+

+ 20 - 0
authentication/src/main/java/com/jzg/mapper/SysRoleDataScopeMapper.java

@@ -0,0 +1,20 @@
+package com.jzg.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.jzg.commons.entity.po.SysRoleDataScope;
+import org.apache.ibatis.annotations.Mapper;
+
+/**
+* @author dongxin
+* @description 针对表【sys_user(核心用户表)】的数据库操作Mapper
+* @createDate 2025-01-13 10:53:51
+* @Entity generator.domain.SysUser
+*/
+@Mapper
+public interface SysRoleDataScopeMapper extends BaseMapper<SysRoleDataScope> {
+
+}
+
+
+
+

+ 19 - 0
commons/src/main/java/com/jzg/commons/constants/SystemConstants.java

@@ -0,0 +1,19 @@
+package com.jzg.commons.constants;
+
+import lombok.AllArgsConstructor;
+import lombok.Getter;
+
+/**
+ * 系统常量
+ */
+@Getter
+@AllArgsConstructor
+public enum SystemConstants {
+
+    SYSTEM_PLATFORM("PLATFORM","平台"),
+    SYSTEM_JZG("JZG","晋掌柜");
+
+    private String code;
+    private String desc;
+
+}

+ 13 - 0
commons/src/main/java/com/jzg/commons/entity/po/SysDept.java

@@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.annotation.TableField;
 import com.baomidou.mybatisplus.annotation.TableId;
 import com.baomidou.mybatisplus.annotation.TableName;
 import com.jzg.commons.core.base.BaseModel;
+import com.jzg.commons.entity.vo.SysDeptVo;
 import io.swagger.v3.oas.annotations.media.Schema;
 import lombok.Data;
 
@@ -69,4 +70,16 @@ public class SysDept extends BaseModel implements Serializable{
     @Schema(description = "子机构")
     private List<SysDept> children;
 
+
+    public void setExScope(SysDeptVo sysDeptVo) {
+        String exhibitionScope = "";
+        for(int i=0;i<sysDeptVo.getExhibitionScope().size();i++){
+            exhibitionScope += sysDeptVo.getExhibitionScope().get(i) + ",";
+        }
+        if(exhibitionScope.length() > 0)
+        {
+            exhibitionScope = exhibitionScope.substring(0,exhibitionScope.length()-1);
+        }
+        this.setExhibitionScope(exhibitionScope);
+    }
 }

+ 7 - 0
commons/src/main/java/com/jzg/commons/entity/po/SysRole.java

@@ -3,6 +3,7 @@ package com.jzg.commons.entity.po;
 import com.baomidou.mybatisplus.annotation.TableField;
 import com.baomidou.mybatisplus.annotation.TableId;
 import com.jzg.commons.core.base.BaseModel;
+import io.swagger.v3.oas.annotations.media.Schema;
 import lombok.AllArgsConstructor;
 import lombok.Data;
 import lombok.NoArgsConstructor;
@@ -15,12 +16,18 @@ public class SysRole extends BaseModel {
     @TableId
     private String id;
 
+    @Schema(description = "系统Code")
     private String systemCode;
 
+    @Schema(description = "角色名称")
     private String name;
 
+    @Schema(description = "备注")
     private String remark;
 
+    @Schema(description = "机构id")
+    private String deptId;
+
     /** 非数据库字段 */
 
     /** 用户ID */

+ 27 - 0
commons/src/main/java/com/jzg/commons/entity/po/SysRoleDataScope.java

@@ -0,0 +1,27 @@
+package com.jzg.commons.entity.po;
+
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.jzg.commons.core.base.BaseModel;
+import com.jzg.commons.entity.vo.SysDeptVo;
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.util.List;
+
+@TableName(value = "sys_role_data_scope")
+@Data
+@Schema(description = "角色数据权限")
+public class SysRoleDataScope implements Serializable{
+    @TableId(value = "id")
+    @Schema(description = "主键")
+    private String id;
+
+    @Schema(description = "角色id")
+    private String roleId;
+
+    @Schema(description = "数据权限类型")
+    private String dataMark;
+}

+ 29 - 0
commons/src/main/java/com/jzg/commons/entity/po/SysRoleDataScopeLink.java

@@ -0,0 +1,29 @@
+package com.jzg.commons.entity.po;
+
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.jzg.commons.entity.vo.SysDeptVo;
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.util.List;
+
+@TableName(value = "sys_role_data_scope_link")
+@Data
+@Schema(description = "角色数据权限")
+public class SysRoleDataScopeLink implements Serializable{
+    @TableId(value = "id")
+    @Schema(description = "主键")
+    private String id;
+
+    @TableField(value = "role_id")
+    @Schema(description = "角色id")
+    private String roleId;
+
+    @TableField(value = "dept_id")
+    @Schema(description = "部门id")
+    private String deptId;
+
+}

+ 10 - 3
commons/src/main/java/com/jzg/commons/entity/vo/SysDeptVo.java

@@ -2,6 +2,8 @@ package com.jzg.commons.entity.vo;
 
 import com.jzg.commons.entity.po.SysDept;
 import io.swagger.v3.oas.annotations.media.Schema;
+import jakarta.validation.constraints.Max;
+import jakarta.validation.constraints.NotBlank;
 import lombok.Data;
 import org.springframework.beans.BeanUtils;
 
@@ -14,33 +16,38 @@ public class SysDeptVo implements Serializable {
     @Schema(description = "主键")
     private String id;
 
+    @NotBlank(message = "机构名称不能为空")
+    @Max(value = 50,message = "机构名称不能超过50个字符")
     @Schema(description = "机构名称")
     private String name;
 
+    @NotBlank(message = "请选择上级机构")
     @Schema(description = "父级机构id")
     private String parentId;
 
     @Schema(description = "排序")
     private Integer orderNum;
 
+    @NotBlank(message = "机构类型不能为空")
     @Schema(description = "机构类型")
     private String comType;
 
     @Schema(description = "机构路径")
     private String route;
 
+    @NotBlank(message = "机构地址不能为空")
+    @Max(value = 50,message = "机构地址不能超过50个字符")
     @Schema(description = "机构地址")
     private String address;
 
     @Schema(description = "负责人id")
     private String leaderId;
 
-//    @Schema(description = "展页范围")
-//    private String exhibitionScope;
-
+    @NotBlank(message = "请选择展业范围")
     @Schema(description = "展页范围")
     private List<String> exhibitionScope;
 
+    @NotBlank(message = "请选择机构所在地区")
     @Schema(description = "省")
     private String province;
 

+ 22 - 0
commons/src/main/java/com/jzg/commons/entity/vo/SysRoleDataScopeVo.java

@@ -0,0 +1,22 @@
+package com.jzg.commons.entity.vo;
+
+import lombok.Data;
+
+import java.util.List;
+
+/**
+ * 角色数据权限
+ */
+@Data
+public class SysRoleDataScopeVo {
+
+    /**
+     * 数据权限标识
+     */
+    private String dataMark;
+
+    /**
+     * 机构ids
+     */
+    private List<String> deptIds;
+}

+ 11 - 0
commons/src/main/java/com/jzg/commons/entity/vo/SysRoleVo.java

@@ -26,6 +26,10 @@ public class SysRoleVo extends PageRequest {
     @Schema(description = "系统code")
     private String system;
 
+    @Schema(description = "机构id")
+    private String deptId;
+
+    @Schema(description = "系统Code")
     private String systemCode;
 
     @NotBlank(message = "角色名称不能为空")
@@ -42,6 +46,11 @@ public class SysRoleVo extends PageRequest {
     private List<PermsVo> perms;
 
 
+    @Schema(description = "数据权限")
+    private SysRoleDataScopeVo dataScope;
+
+
+
     @Data
     @AllArgsConstructor
     @NoArgsConstructor
@@ -55,6 +64,7 @@ public class SysRoleVo extends PageRequest {
         SysRole sysRole = new SysRole();
         sysRole.setId(id);
         sysRole.setSystemCode(system);
+        sysRole.setDeptId(deptId);
         sysRole.setName(name);
         sysRole.setRemark(remark);
         return sysRole;
@@ -62,6 +72,7 @@ public class SysRoleVo extends PageRequest {
 
     public void setSysRole(SysRole sysRole){
         this.id = sysRole.getId();
+        this.deptId = sysRole.getDeptId();
         this.system = sysRole.getSystemCode();
         this.name = sysRole.getName();
         this.remark = sysRole.getRemark();

+ 30 - 1
platform/src/main/java/com/jzg/controller/UserRoleController.java

@@ -2,6 +2,7 @@ package com.jzg.controller;
 
 
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.jzg.commons.constants.SystemConstants;
 import com.jzg.commons.core.base.BaseController;
 import com.jzg.commons.core.page.HttpResult;
 import com.jzg.commons.entity.po.SysRole;
@@ -15,6 +16,9 @@ import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.validation.annotation.Validated;
 import org.springframework.web.bind.annotation.*;
 
+import java.util.List;
+import java.util.Objects;
+
 /**
  * 用户角色管理
  */
@@ -33,7 +37,7 @@ public class UserRoleController extends BaseController {
      */
     @Operation(summary = "角色列表")
     @PostMapping("/roleList")
-    public HttpResult roleList(@RequestBody SysRoleVo sysRoleVo){
+    public HttpResult<List<SysRole>> roleList(@RequestBody SysRoleVo sysRoleVo){
         return HttpResult.ok(userRoleService.list(new LambdaQueryWrapper<SysRole>()
                 .like(StringUtils.isNotBlank(sysRoleVo.getName()),SysRole::getName,sysRoleVo.getName())));
     }
@@ -47,6 +51,11 @@ public class UserRoleController extends BaseController {
     @Operation(summary = "角色添加")
     @PostMapping("/roleAdd")
     public HttpResult roleAdd(@Validated @RequestBody SysRoleVo sysRoleVo){
+        //如果不是平台则校验数据权限
+        if(!getUserSystemCode().equals(SystemConstants.SYSTEM_PLATFORM.getCode())){
+            //从用户信息中获取租户code
+            sysRoleVo.setSystemCode(getUserSystemCode());
+        }
         if(userRoleService.isExist(sysRoleVo.getSystem(),sysRoleVo.getName())){
             throw new ValidateException("角色名称已存在,请修改后重新提交");
         }
@@ -56,6 +65,15 @@ public class UserRoleController extends BaseController {
     @Operation(summary = "角色修改")
     @PostMapping("/roleUpdate")
     public HttpResult roleUpdate(@Validated @RequestBody SysRoleVo sysRoleVo){
+        //如果不是平台则校验数据权限
+        if(!getUserSystemCode().equals(SystemConstants.SYSTEM_PLATFORM.getCode())){
+            //从用户信息中获取租户code
+            sysRoleVo.setSystemCode(getUserSystemCode());
+            //租户校验 部门表单
+            if(Objects.isNull(sysRoleVo.getDeptId()) && sysRoleVo.getDeptId().isEmpty()){
+                throw new ValidateException("请选择部门");
+            }
+        }
         if(userRoleService.isExist(sysRoleVo.getSystem(),sysRoleVo.getName(),sysRoleVo.getId())){
             throw new ValidateException("角色名称已存在,请修改后重新提交");
         }
@@ -65,13 +83,24 @@ public class UserRoleController extends BaseController {
     @Operation(summary = "角色删除检测")
     @PostMapping("/roleDeleteValid")
     public HttpResult roleDeleteValid(@RequestBody SysRoleVo roleVo) {
+        //如果不是平台则校验数据权限   平台可以传递systemcode
+        if(!getUserSystemCode().equals(SystemConstants.SYSTEM_PLATFORM.getCode())){
+            //从用户信息中获取租户code
+            roleVo.setSystemCode(getUserSystemCode());
+        }
         return userRoleService.roleDeleteValid(roleVo) ? HttpResult.ok("角色可以进行删除") : HttpResult.error("删除角色前,请先移除角色内的所有成员");
     }
 
     @Operation(summary = "角色删除")
     @PostMapping("/roleDelete")
     public HttpResult roleDelete(@RequestBody SysRoleVo roleVo){
+        //如果不是平台则校验数据权限 平台可以传递systemcode
+        if(!getUserSystemCode().equals(SystemConstants.SYSTEM_PLATFORM.getCode())){
+            //从用户信息中获取租户code
+            roleVo.setSystemCode(getUserSystemCode());
+        }
         return userRoleService.roleDelete(roleVo) ? HttpResult.ok("删除角色成功") : HttpResult.error("删除角色失败");
     }
 
+
 }

+ 21 - 0
platform/src/main/java/com/jzg/mapper/SysRoleDataScopeLinkMapper.java

@@ -0,0 +1,21 @@
+package com.jzg.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.jzg.commons.entity.po.SysRoleDataScope;
+import com.jzg.commons.entity.po.SysRoleDataScopeLink;
+import org.apache.ibatis.annotations.Mapper;
+
+/**
+* @author dongxin
+* @description 针对表【sys_user(核心用户表)】的数据库操作Mapper
+* @createDate 2025-01-13 10:53:51
+* @Entity generator.domain.SysUser
+*/
+@Mapper
+public interface SysRoleDataScopeLinkMapper extends BaseMapper<SysRoleDataScopeLink> {
+
+}
+
+
+
+

+ 21 - 0
platform/src/main/java/com/jzg/mapper/SysRoleDataScopeMapper.java

@@ -0,0 +1,21 @@
+package com.jzg.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.jzg.commons.entity.po.SysRoleDataScope;
+import com.jzg.commons.entity.po.SysUser;
+import org.apache.ibatis.annotations.Mapper;
+
+/**
+* @author dongxin
+* @description 针对表【sys_user(核心用户表)】的数据库操作Mapper
+* @createDate 2025-01-13 10:53:51
+* @Entity generator.domain.SysUser
+*/
+@Mapper
+public interface SysRoleDataScopeMapper extends BaseMapper<SysRoleDataScope> {
+
+}
+
+
+
+

+ 65 - 9
platform/src/main/java/com/jzg/service/impl/UserRoleServiceImpl.java

@@ -3,17 +3,14 @@ package com.jzg.service.impl;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.jzg.commons.annotation.IgnoreTenant;
-import com.jzg.commons.entity.po.SysRole;
-import com.jzg.commons.entity.po.SysRolePerms;
-import com.jzg.commons.entity.po.SysUserRole;
+import com.jzg.commons.core.base.BaseController;
+import com.jzg.commons.entity.po.*;
 import com.jzg.commons.entity.vo.RolePermissionVo;
+import com.jzg.commons.entity.vo.SysRoleDataScopeVo;
 import com.jzg.commons.entity.vo.SysRoleVo;
 import com.jzg.commons.exception.SystemException;
 import com.jzg.commons.util.idgen.IdGenerate;
-import com.jzg.mapper.SysMenuMapper;
-import com.jzg.mapper.SysRoleMapper;
-import com.jzg.mapper.SysRolePermsMapper;
-import com.jzg.mapper.SysUserRoleMapper;
+import com.jzg.mapper.*;
 import com.jzg.service.SysSystemService;
 import com.jzg.service.UserRoleService;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -22,6 +19,8 @@ import org.springframework.transaction.annotation.Transactional;
 
 import java.util.ArrayList;
 import java.util.List;
+import java.util.Objects;
+import java.util.stream.Collectors;
 
 @Service
 public class UserRoleServiceImpl extends ServiceImpl<SysRoleMapper, SysRole> implements UserRoleService {
@@ -38,6 +37,15 @@ public class UserRoleServiceImpl extends ServiceImpl<SysRoleMapper, SysRole> imp
     @Autowired
     SysUserRoleMapper sysUserRoleMapper;
 
+    @Autowired
+    SysRoleDataScopeMapper sysRoleDataScopeMapper;
+
+    @Autowired
+    SysRoleDataScopeLinkMapper sysRoleDataScopeLinkMapper;
+
+    @Autowired
+    BaseController baseController;
+
     @IgnoreTenant
     @Override
     public List<RolePermissionVo> getAllRoleMenu() {
@@ -47,11 +55,31 @@ public class UserRoleServiceImpl extends ServiceImpl<SysRoleMapper, SysRole> imp
 
     @Override
     public SysRoleVo roleGet(String roleId) {
-        SysRole sysRole = baseMapper.selectById(roleId);
+        String userSystemCode = baseController.getUserSystemCode();
+        SysRole sysRole = baseMapper.selectOne(new LambdaQueryWrapper<SysRole>()
+                .eq(SysRole::getId,roleId)
+                .eq(SysRole::getSystemCode,userSystemCode));
+        if(Objects.isNull(sysRole)){
+            throw new SystemException("角色不存在");
+        }
         List<SysRolePerms> sysRolePerms = sysRolePermsMapper.selectList(new LambdaQueryWrapper<SysRolePerms>()
                 .eq(SysRolePerms::getRoleId, roleId));
         SysRoleVo sysRoleVo = new SysRoleVo(sysRole,sysRolePerms);
 
+        //获取角色数据权限
+        SysRoleDataScope sysRoleDataScope = sysRoleDataScopeMapper.selectOne(new LambdaQueryWrapper<SysRoleDataScope>()
+                .eq(SysRoleDataScope::getRoleId, roleId));
+        if(!Objects.isNull(sysRoleDataScope)) {
+            SysRoleDataScopeVo vo = new SysRoleDataScopeVo();
+            vo.setDataMark(sysRoleDataScope.getDataMark());
+            if (!sysRoleDataScope.equals("2")) {
+                List<SysRoleDataScopeLink> sysRoleDataScopeLinks = sysRoleDataScopeLinkMapper.selectList(new LambdaQueryWrapper<SysRoleDataScopeLink>()
+                        .eq(SysRoleDataScopeLink::getRoleId, roleId));
+                vo.setDeptIds(sysRoleDataScopeLinks.stream().map(x -> x.getDeptId()).collect(Collectors.toList()));
+            }
+            sysRoleVo.setDataScope(vo);
+        }
+
         return sysRoleVo;
     }
 
@@ -110,6 +138,30 @@ public class UserRoleServiceImpl extends ServiceImpl<SysRoleMapper, SysRole> imp
         baseMapper.updateById(sysRole);
         sysRolePermsMapper.delete(new LambdaQueryWrapper<SysRolePerms>()
                 .eq(SysRolePerms::getRoleId,sysRole.getId()));
+        //更新用户数据权限
+        sysRoleDataScopeMapper.delete(new LambdaQueryWrapper<SysRoleDataScope>()
+               .eq(SysRoleDataScope::getRoleId,sysRole.getId()));
+        sysRoleDataScopeLinkMapper.delete(new LambdaQueryWrapper<SysRoleDataScopeLink>()
+              .eq(SysRoleDataScopeLink::getRoleId,sysRole.getId()));
+
+        //保存角色数据权限
+        SysRoleDataScope sysRoleDataScope = new SysRoleDataScope();
+        sysRoleDataScope.setId(IdGenerate.nextId());
+        sysRoleDataScope.setRoleId(sysRole.getId());
+        sysRoleDataScope.setDataMark(sysRoleVo.getDataScope().getDataMark());
+        sysRoleDataScopeMapper.insert(sysRoleDataScope);
+        if(sysRoleDataScope.getDataMark().equals("2") || sysRoleDataScope.getDataMark().equals("1")) {
+            List<SysRoleDataScopeLink> sysRoleDataScopeLinks = new ArrayList<>();
+            sysRoleVo.getDataScope().getDeptIds().forEach(item -> {
+                SysRoleDataScopeLink sysRoleDataScopeLink = new SysRoleDataScopeLink();
+                sysRoleDataScopeLink.setId(IdGenerate.nextId());
+                sysRoleDataScopeLink.setRoleId(sysRole.getId());
+                sysRoleDataScopeLink.setDeptId(item);
+                sysRoleDataScopeLinks.add(sysRoleDataScopeLink);
+            });
+            sysRoleDataScopeLinkMapper.insert(sysRoleDataScopeLinks);
+        }
+
         if(sysRolePermsMapper.insert(sysRolePermsList).stream().count() > 0 && baseMapper.updateById(sysRole) > 0){
             return true;
         }
@@ -118,7 +170,11 @@ public class UserRoleServiceImpl extends ServiceImpl<SysRoleMapper, SysRole> imp
 
     @Override
     public boolean roleDelete(SysRoleVo sysRoleVo) {
-
+        if(baseMapper.selectCount(new LambdaQueryWrapper<SysRole>()
+                .eq(SysRole::getId, sysRoleVo.getId())
+                .eq(SysRole::getSystemCode, sysRoleVo.getSystemCode())) == 0){
+            throw new SystemException("角色信息不存在");
+        }
         if(sysRolePermsMapper.delete(new LambdaQueryWrapper<SysRolePerms>()
                 .eq(SysRolePerms::getRoleId, sysRoleVo.getId())) > 0 && baseMapper.deleteById(sysRoleVo.getId()) > 0){
             return true;

+ 21 - 18
tenant/organization/src/main/java/com/jzg/organization/service/impl/SysDeptServiceImpl.java

@@ -38,26 +38,34 @@ public class SysDeptServiceImpl extends ServiceImpl<SysDeptMapper, SysDept> impl
     @Autowired
     private SysUserService userService;
 
+    private void validateDept(SysDeptVo sysDeptVo,boolean isAdd){
+        if(isAdd){
+            if(this.count(new LambdaQueryWrapper<SysDept>()
+                    .eq(SysDept::getName, sysDeptVo.getName())) > 0){
+                throw new SystemException("机构名称已存在");
+            }
+        }else{
+            if(this.count(new LambdaQueryWrapper<SysDept>()
+               .eq(SysDept::getName, sysDeptVo.getName())
+               .ne(SysDept::getId, sysDeptVo.getId())) > 0){
+                throw new SystemException("机构名称已存在");
+           }
+        }
+
+    }
 
     @Override
     @Transactional(rollbackFor = Exception.class)
     public boolean addDept(SysDeptVo sysDeptVo) {
+        validateDept(sysDeptVo,true);
+
         SysDept sysDept = new SysDept();
         BeanUtils.copyProperties(sysDeptVo, sysDept);
-        //处理展业信息
-        String exhibitionScope = "";
-        for(int i=0;i<sysDeptVo.getExhibitionScope().size();i++){
-            exhibitionScope += sysDeptVo.getExhibitionScope().get(i) + ",";
-        }
-        if(exhibitionScope.length() > 0)
-        {
-            exhibitionScope = exhibitionScope.substring(0,exhibitionScope.length()-1);
-        }
-        sysDept.setExhibitionScope(exhibitionScope);
         sysDept.setId(IdGenerate.nextId());
+        //处理展业信息
+        sysDept.setExScope(sysDeptVo);
         //获取父级id
         String parentId = sysDept.getParentId();
-
         //设置机构路径
         if(!parentId.equals("0")){
             SysDept parentSysDept = baseMapper.selectById(parentId);
@@ -86,18 +94,14 @@ public class SysDeptServiceImpl extends ServiceImpl<SysDeptMapper, SysDept> impl
         sysDept.setProvince(sysDeptVo.getProvince());
         sysDept.setCity(sysDeptVo.getCity());
         sysDept.setArea(sysDeptVo.getArea());
-        String exhibitionScope = "";
-        for(int i=0;i<sysDeptVo.getExhibitionScope().size();i++){
-            exhibitionScope += sysDeptVo.getExhibitionScope().get(i) + ",";
-        }
-        exhibitionScope = exhibitionScope.substring(0,exhibitionScope.length()-1);
-        sysDept.setExhibitionScope(exhibitionScope);
+        sysDept.setExScope(sysDeptVo);
         return sysDept;
     }
 
     @Override
     @Transactional
     public boolean updateDept(SysDeptVo sysDeptVo) {
+        validateDept(sysDeptVo,false);
         sysDeptMapper.updateById(getSysDept(sysDeptVo));
         return true;
 
@@ -126,7 +130,6 @@ public class SysDeptServiceImpl extends ServiceImpl<SysDeptMapper, SysDept> impl
             throw new SystemException("机构不存在");
         }
         List<SysDept> deptList = lambdaQuery().eq(SysDept::getParentId, sysDept.getId()).list();
-//        List<SysUser> userList = userService.lambdaQuery().eq(SysUser::getDeptId, sysDept.getId()).list();
         if (!deptList.isEmpty()) {
             throw new SystemException(sysDept.getName() + "机构下还有其他隶属机构请将这些子机构删除后,再进行删除");
         }