Ver código fonte

员工权限-范围权限

姜永辉 2 anos atrás
pai
commit
ef96f453af

+ 11 - 0
src/main/java/com/dk/mdm/controller/mst/StaffController.java

@@ -70,6 +70,17 @@ public class StaffController{
         return staffService.saveStaffRight(staffVO);
     }
 
+    /**
+     * @desc : 新建员工--权限
+     * @author : 姜永辉
+     * @date : 2023/1/9 10:48
+     */
+    @ApiOperation(value = "新建员工--权限", notes = "新建员工--权限")
+    @PostMapping({"save_staff_preview"})
+    public ResponseResultVO<?> saveStaffPurview(@RequestBody StaffVO staffVO) {
+        return staffService.saveStaffPurview(staffVO);
+    }
+
 
     /**
      * @desc : 新建员工

+ 37 - 0
src/main/java/com/dk/mdm/controller/mst/StaffPurviewController.java

@@ -1,14 +1,22 @@
 package com.dk.mdm.controller.mst;
 
+import com.dk.common.response.ResponseResultVO;
 import com.dk.mdm.model.pojo.mst.StaffPurview;
 import com.dk.common.controller.BaseController;
 import com.dk.common.service.BaseService;
+import com.dk.mdm.model.vo.mst.StaffVO;
+import com.dk.mdm.service.mst.StaffService;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.RestController;
 import io.swagger.annotations.Api;
 import com.dk.mdm.service.mst.StaffPurviewService;
 
+import java.util.Map;
+
 /**
  * @desc   : 员工数据范围API接口
  * @author : 姜永辉
@@ -26,4 +34,33 @@ public class StaffPurviewController{
     @Autowired
     private StaffPurviewService staffPurviewService;
 
+    @Autowired
+    private StaffService staffService;
+
+
+    /**
+     * @desc : 员工数据范围
+     * @author : 姜永辉
+     * @date : 2024/2/26 10:36
+     */
+    @ApiOperation(
+            value = "获取员工权限",
+            notes = "获取员工权限"
+    )
+    @PostMapping("get_staff_purview")
+    public ResponseResultVO<Map<String, Object>> getStaffPurview(@RequestBody Map<String, Object> param) {
+        return staffPurviewService.getStaffPurview(param);
+    }
+
+    /**
+     * @desc : 新建员工--员工数据范围
+     * @author : 姜永辉
+     * @date : 2023/1/9 10:48
+     */
+    @ApiOperation(value = "新建员工--权限", notes = "新建员工--权限")
+    @PostMapping({"save_staff_purview"})
+    public ResponseResultVO<?> saveStaffPurview(@RequestBody StaffVO staffVO) {
+        return staffService.saveStaffPurview(staffVO);
+    }
+
 }

+ 16 - 1
src/main/java/com/dk/mdm/mapper/mst/StaffPurviewMapper.java

@@ -2,13 +2,28 @@ package com.dk.mdm.mapper.mst;
 
 import com.dk.mdm.model.pojo.mst.StaffPurview;
 import com.dk.common.mapper.BaseMapper;
+import org.apache.ibatis.annotations.Param;
 import org.springframework.stereotype.Repository;
 
+import java.util.List;
+import java.util.Map;
+
 /**
 *  员工数据范围 Mapper
 */
 @Repository
 public interface StaffPurviewMapper extends BaseMapper<StaffPurview>{
-	
+    /**
+     * @desc   : 获取获取范围权限
+     * @author : 姜永辉
+     * @date : 2024/2/26 10:36
+     */
+    List<Map<String, Object>> getStaffPurview(Map param);
+    /**
+     * @desc   : 保存员工范围权限权限
+     * @author : 姜永辉
+     * @date : 2024/2/26 10:36
+     */
+    int insertOrUpdateCondition(@Param("list") List<StaffPurview> list);
 }
 

+ 52 - 2
src/main/java/com/dk/mdm/mapper/mst/StaffPurviewMapper.xml

@@ -124,7 +124,6 @@
             flg_nolimit,
             data_ids,
             cp_id,
-            op_app_code,
         </trim>
         )
         values
@@ -135,9 +134,60 @@
                 #{item.flgNolimit},
                 #{item.dataIds},
                 #{item.cpId},
-                #{item.opAppCode},
             </trim>
             )
         </foreach>
     </insert>
+
+
+    <!-- 获取范围权限 -->
+    <select id="getStaffPurview" resultType="java.util.Map">
+        SELECT menu.menu_uuid    AS "menuUuid",
+               menu.menu_uuid    AS "id",
+               menu.menu_name    AS "menuName",
+               menu.app_code     AS "appCode",
+               menu.parent_uuid  AS "parentId",
+               menu.flg_menu     AS "flgMenu",
+               staffRight.staff_id   AS "staffId",
+               menu.fun_uuid     AS "funUuid",
+               CASE WHEN staffRight.staff_id IS NULL THEN FALSE ELSE TRUE END    AS "checked"
+        FROM dkic_b.t_mst_org org
+                 inner JOIN dkic_b.t_mst_role_fun roleFun ON menu.fun_uuid = roleFun.fun_uuid  and roleFun.role_id::uuid =  any ( (
+                 select  role_ids from dkic_b.t_mst_staff where staff_id = #{staffId}::uuid)::uuid[])
+            left JOIN   dkic_b.t_mst_staff_right staffRight ON menu.fun_uuid = staffRight.fun_uuid  and staffRight.staff_id = #{staffId}::uuid
+
+        WHERE menu.flg_valid
+          AND menu.flg_right
+          AND menu.object_code != 'home'
+        ORDER BY menu.level_code;
+    </select>
+
+    <insert id="insertOrUpdateCondition">
+        insert into t_mst_staff_purview
+        (
+        <trim suffixOverrides=",">
+            staff_id,
+            purview_code,
+            flg_nolimit,
+            data_ids,
+            cp_id,
+        </trim>
+        )
+        values
+        <foreach collection="list" index="index" item="item" separator=",">
+            (
+            <trim suffixOverrides=",">
+                #{item.staffId}::uuid,
+                #{item.purviewCode},
+                #{item.flgNolimit},
+                #{item.dataIds},
+                #{item.cpId},
+            </trim>
+            )
+        </foreach>
+        on conflict (staff_id,purview_code) do update set
+        flg_nolimit = excluded."flg_nolimit",
+        data_ids = excluded."data_ids";
+    </insert>
+
 </mapper>

+ 1 - 1
src/main/java/com/dk/mdm/mapper/wxapi/basic/WxCommonMapper.xml

@@ -102,7 +102,7 @@
         select tpt.purview_name_i18n as purviewName,
                tpt.purview_code as "code",
                "row_number"() OVER (ORDER BY tpt.display_no) as "id",
-                sys.f_get_name_i18n('zh_CN', tpt.purview_name_i18n) AS name
+                sys.f_get_name_i18n(tpt.purview_name_i18n,'zh_CN') AS name
         from sys.t_purview_type tpt
         where tpt.flg_valid
         order by tpt.display_no

+ 1 - 1
src/main/java/com/dk/mdm/model/pojo/mst/StaffPurview.java

@@ -29,7 +29,7 @@ import java.time.LocalDateTime;
 @EqualsAndHashCode(callSuper = true)
 @Accessors(chain = true)
 @ExportTitle("员工数据范围")
-@TableName(value = "t_mst_staff_purview", autoResultMap = true)
+@TableName(value = "t_mst_staff_purview", schema =  "dkic_b",autoResultMap = true)
 @ApiModel(value="实体类:员工数据范围", description="表名:t_mst_staff_purview")
 public class StaffPurview extends PageInfo<StaffPurview> implements Serializable {
 

+ 3 - 0
src/main/java/com/dk/mdm/model/vo/mst/StaffVO.java

@@ -10,6 +10,7 @@ import com.dk.common.infrastructure.handler.UuidListTypeHandler;
 import com.dk.common.infrastructure.handler.UuidTypeHandler;
 import com.dk.common.model.pojo.PageInfo;
 import com.dk.mdm.model.pojo.mst.RoleFun;
+import com.dk.mdm.model.pojo.mst.StaffPurview;
 import com.dk.mdm.model.pojo.mst.StaffRight;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
@@ -123,6 +124,8 @@ public class StaffVO extends PageInfo<StaffVO> implements Serializable {
 
     private List<StaffRight> staffRightList;
 
+    private List<StaffPurview> staffPurviewList;
+
 
 
     private static final long serialVersionUID = 1L;

+ 36 - 0
src/main/java/com/dk/mdm/service/mst/StaffPurviewService.java

@@ -1,13 +1,20 @@
 package com.dk.mdm.service.mst;
 
+import com.dk.common.response.ResponseResultUtil;
+import com.dk.common.response.ResponseResultVO;
 import com.dk.mdm.model.pojo.mst.StaffPurview;
 import com.dk.mdm.mapper.mst.StaffPurviewMapper;
 import com.dk.common.service.BaseService;
 import com.dk.common.mapper.BaseMapper;
+import com.dk.mdm.model.pojo.mst.StaffRight;
 import org.springframework.stereotype.Service;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.transaction.annotation.Transactional;
 
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
 @Service
 @Transactional
 public class StaffPurviewService extends BaseService<StaffPurview> {
@@ -20,4 +27,33 @@ public class StaffPurviewService extends BaseService<StaffPurview> {
 	@Autowired
 	private StaffPurviewMapper staffPurviewMapper;
 
+	/**
+	 * @desc : 获取员工权限
+	 * @author : 姜永辉
+	 * @date : 2024/2/26 10:36
+	 */
+	public ResponseResultVO<Map<String, Object>> getStaffPurview(Map<String, Object> param) {
+		// 获取系统基础数据
+		List<Map<String, Object>> list = staffPurviewMapper.getStaffPurview(param);
+		Map<String, Object> objectObjectHashMap = new HashMap<>();
+		objectObjectHashMap.put("list", list);
+		return ResponseResultUtil.success(objectObjectHashMap);
+	}
+
+
+	/**
+	 * @desc : 保存员工范围权限
+	 * @author : 姜永辉
+	 * @date : 2024/2/26 10:36
+	 */
+	@Transactional(rollbackFor = {Exception.class})
+	public ResponseResultVO<?> saveStaffPurview(List<StaffPurview> staffPurviews) {
+		staffPurviewMapper.insertOrUpdateCondition(staffPurviews);
+		return ResponseResultUtil.success();
+	}
+
+	public ResponseResultVO<Boolean> delete(String id) {
+		return  ResponseResultUtil.success(staffPurviewMapper.deleteById(new StaffRight().setStaffId(id)) > 0) ;
+	}
+
 }

+ 2 - 2
src/main/java/com/dk/mdm/service/mst/StaffRightService.java

@@ -52,8 +52,8 @@ public class StaffRightService extends BaseService<StaffRight> {
      * @date : 2024/2/26 10:36
      */
     @Transactional(rollbackFor = {Exception.class})
-    public ResponseResultVO<?> saveStaffRight(List<StaffRight> roleFun) {
-        staffRightMapper.insertBatch(roleFun);
+    public ResponseResultVO<?> saveStaffRight(List<StaffRight> staffRightList) {
+        staffRightMapper.insertBatch(staffRightList);
         return ResponseResultUtil.success();
     }
 

+ 23 - 4
src/main/java/com/dk/mdm/service/mst/StaffService.java

@@ -7,13 +7,10 @@ import com.dk.common.response.ResponseCodeEnum;
 import com.dk.common.response.ResponseResultUtil;
 import com.dk.common.response.ResponseResultVO;
 import com.dk.mdm.infrastructure.convert.mst.StaffConvert;
-import com.dk.mdm.model.pojo.mst.Role;
-import com.dk.mdm.model.pojo.mst.RoleFun;
-import com.dk.mdm.model.pojo.mst.Staff;
+import com.dk.mdm.model.pojo.mst.*;
 import com.dk.mdm.mapper.mst.StaffMapper;
 import com.dk.common.service.BaseService;
 import com.dk.common.mapper.BaseMapper;
-import com.dk.mdm.model.pojo.mst.StaffRight;
 import com.dk.mdm.model.query.core.StaffQuery;
 import com.dk.mdm.model.query.mst.RoleQuery;
 import com.dk.mdm.model.response.mst.StaffResponse;
@@ -59,6 +56,9 @@ public class StaffService extends BaseService<Staff> {
     @Autowired
     private StaffRightService staffRightService;
 
+    @Autowired
+    private StaffPurviewService staffPurviewService;
+
     /**
      * @desc : 条件查询
      * @author : 姜永辉
@@ -121,6 +121,25 @@ public class StaffService extends BaseService<Staff> {
         return ResponseResultUtil.success();
     }
 
+    /**
+     * @desc : 保存权限方法
+     * @author : 姜永辉
+     * @date : 2023/1/9 10:49
+     */
+    @Transactional(
+            rollbackFor = {Exception.class}
+    )
+    public ResponseResultVO<?> saveStaffPurview(StaffVO staffVO) {
+        // 转化实体
+        Staff staff = staffConvert.convertToPo(staffVO);
+        for (StaffPurview staffRight : staffVO.getStaffPurviewList()) {
+            staffRight.setStaffId(staff.getStaffId());
+            staffRight.setCpId(staff.getCpId());
+        }
+        staffPurviewService.saveStaffPurview(staffVO.getStaffPurviewList());
+        return ResponseResultUtil.success();
+    }
+
 
     /**
      * @desc : 员工离职