Преглед изворни кода

完成客户端获取部门机构树,并通过部门机构树的id查询到相关的客户端人员,并分配成用户组,供给报表权限分发

gt пре 2 година
родитељ
комит
9fb54815bb

+ 26 - 0
chuanyi_server/src/main/java/com/judong/chuanyiserver/controller/UserGroupController.java

@@ -25,6 +25,32 @@ public class UserGroupController {
     private UserGroupService userGroupService;
 
     /**
+     * 获取部门机构树
+     *
+     * @return
+     */
+    @GetMapping("/getDepartmentTree")
+    @WebLog(ServerEnum = ServerEnum.CLIENT, ModelEnum = ModelEnum.USERGROUP, OperationEnum = OperationEnum.SELECT)
+    public Result getDepartmentTree() {
+        return userGroupService.getDepartmentTree();
+    }
+
+    /**
+     * 通过机构获取相应的客户端人员
+     *
+     * @param departmentId
+     * @return
+     */
+    @GetMapping("/getClientUserByDepartmentId")
+    @WebLog(ServerEnum = ServerEnum.CLIENT, ModelEnum = ModelEnum.USERGROUP, OperationEnum = OperationEnum.SELECT)
+    public Result getClientUserByDepartmentId(Integer departmentId) {
+        if (Blank.isEmpty(departmentId)) {
+            return Result.no(ResultEnum.REQUEST_WRONGPARAMS.getRespCode(), ResultEnum.REQUEST_WRONGPARAMS.getRespMsg());
+        }
+        return userGroupService.getClientUserByDepartmentId(departmentId);
+    }
+
+    /**
      * 新增用户组
      *
      * @param userGroup

+ 13 - 10
chuanyi_server/src/main/java/com/judong/chuanyiserver/dao/DepartmentDao.java

@@ -10,17 +10,17 @@ import java.util.List;
 @Repository
 public interface DepartmentDao {
 
-    Department getDepartmentByName(String departmentName,Integer parentId);
+    Department getDepartmentByName(String departmentName, Integer parentId);
 
     Integer addDepartment(Department department);
 
-    Department getDepartmentByNoIdName(int id, String departmentName,Integer parentId);
+    Department getDepartmentByNoIdName(int id, String departmentName, Integer parentId);
 
     Integer updateDepartment(Department department);
 
-    Long getDepartmentCount(String departmentName, String createTime, Integer noDelete,Integer parentId);
+    Long getDepartmentCount(String departmentName, String createTime, Integer noDelete, Integer parentId);
 
-    List<Department> getDepartmentListByPage(Long startNum, Long limitNum, String departmentName, String createTime, Integer noDelete,Integer parentId);
+    List<Department> getDepartmentListByPage(Long startNum, Long limitNum, String departmentName, String createTime, Integer noDelete, Integer parentId);
 
     Department getDepartmentById(Integer id);
 
@@ -42,12 +42,12 @@ public interface DepartmentDao {
     /**
      * 根据部门查部门员工
      */
-    List<User> queryUserByDepartmentId(Integer departmentId,Integer page,Integer num);
+    List<User> queryUserByDepartmentId(Integer departmentId, Integer page, Integer num);
 
     Integer queryUserDepartmentIdCount(Integer departmentId);
 
     /**
-     *根据用户id查询所属部门
+     * 根据用户id查询所属部门
      */
     Department queryDepartmentByUserId(String userId);
 
@@ -69,19 +69,19 @@ public interface DepartmentDao {
     /**
      * 批量新增部门用户
      */
-    Integer addUserDepartment(@Param("userIds") List<String> userIds,Integer departmentId);
+    Integer addUserDepartment(@Param("userIds") List<String> userIds, Integer departmentId);
 
     Integer queryUserDepartmentByUserId(String userId);
 
     /**
      * 更新用户所属部门
      */
-    Integer updateUserDepartment(String userId,Integer departmentId);
+    Integer updateUserDepartment(String userId, Integer departmentId);
 
     /**
      * 批量删除部门用户
      */
-    Integer deleteUserDepartment(@Param("userIds") List<String> userIds,Integer departmentId);
+    Integer deleteUserDepartment(@Param("userIds") List<String> userIds, Integer departmentId);
 
     /**
      * 查询用户所属部门id
@@ -91,7 +91,7 @@ public interface DepartmentDao {
     /**
      * 新增部门员工
      */
-    Integer addUserAdnDepartment(String userId,Integer departmentId);
+    Integer addUserAdnDepartment(String userId, Integer departmentId);
 
     /**
      * 查询部门员工
@@ -108,4 +108,7 @@ public interface DepartmentDao {
      */
     Integer deleteDepartmentUserByIdList(@Param("idList") List<Integer> IdList);
 
+    List<User> getClientUserByDepartmentId(Integer departmentId);
+
+    List<Department> getAllDepartment();
 }

+ 4 - 0
chuanyi_server/src/main/java/com/judong/chuanyiserver/service/UserGroupService.java

@@ -14,4 +14,8 @@ public interface UserGroupService {
     Result getUserGroupById(Integer id);
 
     Result delUserGroupById(Integer id);
+
+    Result getClientUserByDepartmentId(Integer departmentId);
+
+    Result getDepartmentTree();
 }

+ 41 - 0
chuanyi_server/src/main/java/com/judong/chuanyiserver/service/impl/UserGroupServiceImpl.java

@@ -1,17 +1,24 @@
 package com.judong.chuanyiserver.service.impl;
 
+import com.alibaba.fastjson.JSONObject;
+import com.judong.chuanyiserver.dao.DepartmentDao;
 import com.judong.chuanyiserver.dao.UserGroupDao;
+import com.judong.chuanyiserver.entity.DataSourceType;
+import com.judong.chuanyiserver.entity.Department;
 import com.judong.chuanyiserver.entity.UserGroup;
 import com.judong.chuanyiserver.entity.UserGroupUser;
 import com.judong.chuanyiserver.enums.ResultEnum;
 import com.judong.chuanyiserver.service.UserGroupService;
 import com.judong.chuanyiserver.util.Blank;
+import com.judong.chuanyiserver.util.ConstantStr;
 import com.judong.chuanyiserver.util.Result;
 import com.judong.chuanyiserver.util.UserUtil;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
 import javax.annotation.Resource;
+import java.util.ArrayList;
+import java.util.Iterator;
 import java.util.List;
 
 @Service
@@ -24,6 +31,9 @@ public class UserGroupServiceImpl implements UserGroupService {
     @Resource
     private UserUtil userUtil;
 
+    @Resource
+    private DepartmentDao departmentDao;
+
     @Override
     public synchronized Result addUserGroup(UserGroup userGroup) {
         userGroup.setUserId(userUtil.getCurrentUserId());
@@ -72,10 +82,41 @@ public class UserGroupServiceImpl implements UserGroupService {
     }
 
     @Override
+    public Result getClientUserByDepartmentId(Integer departmentId) {
+        return Result.ok(departmentDao.getClientUserByDepartmentId(departmentId));
+    }
+
+    @Override
+    public Result getDepartmentTree() {
+        List<Department> departmentList = departmentDao.getAllDepartment();
+        if (Blank.isEmpty(departmentList)) {
+            return Result.ok(null);
+        }
+        return Result.ok(genDepartmentTree(departmentList, ConstantStr.TOP_LEVEL_MENU));
+    }
+
+    @Override
     public Result getAllUserGroup() {
         String userId = userUtil.getCurrentUserId();
         return Result.ok(userGroupDao.getAllUserGroup(userId));
     }
 
+    public List<JSONObject> genDepartmentTree(List<Department> departmentList, Integer parentId) {
+        List<JSONObject> jsonObjectList = new ArrayList<>();
+        Iterator<Department> iterator = departmentList.iterator();
+        while (iterator.hasNext()) {
+            Department department = iterator.next();
+            if (department.getParentId() == parentId) {
+                JSONObject jsonObject = new JSONObject();
+                jsonObject.put("id", department.getId());
+                jsonObject.put("label", department.getDepartmentName());
+                jsonObject.put("sortNum", department.getDepartmentNum());
+                jsonObject.put("labelDescribe", department.getDepartmentDescribe());
+                jsonObject.put("children", genDepartmentTree(departmentList, department.getId()));
+                jsonObjectList.add(jsonObject);
+            }
+        }
+        return jsonObjectList;
+    }
 
 }

+ 86 - 29
chuanyi_server/src/main/resources/mapper/DepartmentDao.xml

@@ -21,8 +21,8 @@
         select id, parent_id, department_name, department_describe, department_num, create_time, update_time
         from sys_department
         where department_name = #{departmentName}
-        and parent_id=#{parentId}
-        and is_delete = 0
+          and parent_id = #{parentId}
+          and is_delete = 0
     </select>
 
     <select id="getDepartmentByNoIdName" resultType="com.judong.chuanyiserver.entity.Department">
@@ -30,7 +30,7 @@
         from sys_department
         where id != #{id}
           and department_name = #{departmentName}
-          and parent_id=#{parentId}
+          and parent_id = #{parentId}
           and is_delete = 0
     </select>
 
@@ -75,12 +75,17 @@
     <!--根据父id查子数据-->
     <select id="queryDepartmentListByparentId" resultType="com.judong.chuanyiserver.entity.Department">
         SELECT id, parent_id, department_name, department_describe, department_num, create_time, update_time
-        FROM sys_department WHERE parent_id=#{parentId} and is_delete !=1 order by department_num ASC
+        FROM sys_department
+        WHERE parent_id = #{parentId}
+          and is_delete != 1
+        order by department_num ASC
     </select>
 
     <!--根据id查自己是哪些的父亲-->
     <select id="queryDepartmentListByid" resultType="com.judong.chuanyiserver.entity.Department">
-        SELECT * FROM sys_department WHERE parent_id=#{id}
+        SELECT *
+        FROM sys_department
+        WHERE parent_id = #{id}
     </select>
 
     <!--逻辑删除-->
@@ -92,36 +97,55 @@
     </update>
 
     <select id="queryUserByDepartmentId" resultType="com.judong.chuanyiserver.entity.User">
-        SELECT user_id,user_name,create_time,update_time,last_login_time,state,user_type FROM sys_user WHERE user_id IN
-        (SELECT user_id FROM sys_user_department WHERE department_id=#{departmentId})
-        AND state !=2
+        SELECT user_id, user_name, create_time, update_time, last_login_time, state, user_type
+        FROM sys_user
+        WHERE user_id IN
+              (SELECT user_id FROM sys_user_department WHERE department_id = #{departmentId})
+          AND state != 2
         limit #{page},#{num}
     </select>
 
     <select id="queryUserDepartmentIdCount" resultType="java.lang.Integer">
-        SELECT count(*) FROM sys_user WHERE user_id IN
-        (SELECT user_id FROM sys_user_department WHERE department_id=#{departmentId})
-        AND state !=2
+        SELECT count(*)
+        FROM sys_user
+        WHERE user_id IN
+              (SELECT user_id FROM sys_user_department WHERE department_id = #{departmentId})
+          AND state != 2
     </select>
 
     <select id="queryDepartmentByUserId" resultType="com.judong.chuanyiserver.entity.Department">
-        SELECT id, parent_id, department_name, department_describe, department_num, create_time, update_time,is_delete FROM sys_department
-        WHERE id=(SELECT department_id FROM sys_user_department WHERE user_id=#{userId})
+        SELECT id,
+               parent_id,
+               department_name,
+               department_describe,
+               department_num,
+               create_time,
+               update_time,
+               is_delete
+        FROM sys_department
+        WHERE id = (SELECT department_id FROM sys_user_department WHERE user_id = #{userId})
     </select>
 
     <select id="queryDepartmentIsExist" resultType="com.judong.chuanyiserver.entity.Department">
-        SELECT id, parent_id, department_name, department_describe, department_num, create_time, update_time FROM sys_department
-        WHERE id=#{departmentId} and is_delete=0
+        SELECT id, parent_id, department_name, department_describe, department_num, create_time, update_time
+        FROM sys_department
+        WHERE id = #{departmentId}
+          and is_delete = 0
     </select>
 
     <select id="queryDepartmentByParentId" resultType="java.lang.Integer">
-        SELECT COUNT(*) FROM sys_department WHERE parent_id=#{id} and is_delete=0
+        SELECT COUNT(*)
+        FROM sys_department
+        WHERE parent_id = #{id}
+          and is_delete = 0
     </select>
 
     <select id="queryUserDepartmentById" resultType="java.lang.Integer">
-        SELECT COUNT(*) FROM sys_user WHERE user_id IN
-        (SELECT user_id FROM sys_user_department WHERE department_id=#{id})
-        AND state !=2
+        SELECT COUNT(*)
+        FROM sys_user
+        WHERE user_id IN
+              (SELECT user_id FROM sys_user_department WHERE department_id = #{id})
+          AND state != 2
     </select>
 
     <insert id="addUserDepartment">
@@ -132,11 +156,15 @@
     </insert>
 
     <select id="queryUserDepartmentByUserId" resultType="java.lang.Integer">
-        select count(*) from sys_user_department where  user_id=#{userId}
+        select count(*)
+        from sys_user_department
+        where user_id = #{userId}
     </select>
 
     <update id="updateUserDepartment">
-        UPDATE sys_user_department SET department_id=#{departmentId} WHERE user_id =#{userId}
+        UPDATE sys_user_department
+        SET department_id=#{departmentId}
+        WHERE user_id = #{userId}
     </update>
 
     <delete id="deleteUserDepartment">
@@ -147,26 +175,55 @@
     </delete>
 
     <select id="queryDepartmentIdByUserId" resultType="java.lang.Integer">
-        SELECT department_id FROM sys_user_department WHERE user_id=#{userId}
+        SELECT department_id
+        FROM sys_user_department
+        WHERE user_id = #{userId}
     </select>
 
     <insert id="addUserAdnDepartment">
-        INSERT INTO sys_user_department VALUES (DEFAULT,#{userId},#{departmentId})
+        INSERT INTO sys_user_department
+        VALUES (DEFAULT, #{userId}, #{departmentId})
     </insert>
 
     <select id="queryUserListByDepartmentId" resultType="com.judong.chuanyiserver.entity.User">
-        SELECT user_id,user_name,create_time,update_time,last_login_time,state,user_type FROM sys_user WHERE user_id IN
-        (SELECT user_id FROM sys_user_department WHERE department_id=#{departmentId})
-        AND state !=2
+        SELECT user_id, user_name, create_time, update_time, last_login_time, state, user_type
+        FROM sys_user
+        WHERE user_id IN
+              (SELECT user_id FROM sys_user_department WHERE department_id = #{departmentId})
+          AND state != 2
     </select>
 
     <select id="queryParentDepartmentById" resultType="com.judong.chuanyiserver.entity.Department">
-        SELECT id, parent_id, department_name, department_describe, department_num, create_time, update_time FROM sys_department
-        WHERE id=#{departmentParentId} and is_delete=0
+        SELECT id, parent_id, department_name, department_describe, department_num, create_time, update_time
+        FROM sys_department
+        WHERE id = #{departmentParentId}
+          and is_delete = 0
+    </select>
+
+    <select id="getClientUserByDepartmentId" resultType="com.judong.chuanyiserver.entity.User">
+        SELECT user_id, user_name, create_time, update_time, last_login_time, state, user_type
+        FROM sys_user
+        WHERE user_id IN
+              (SELECT user_id FROM sys_user_department WHERE department_id = #{departmentId})
+          AND state != 2
+          and user_type = 0
+    </select>
+
+    <select id="getAllDepartment" resultType="com.judong.chuanyiserver.entity.Department">
+        select id,
+               parent_id,
+               department_name,
+               department_describe,
+               department_num,
+               create_time,
+               update_time
+        from sys_department
+        where is_delete = 0
+        order by department_name
     </select>
 
     <delete id="deleteDepartmentUserByIdList">
-        DELETE  FROM sys_user_department WHERE department_id IN
+        DELETE FROM sys_user_department WHERE department_id IN
         <foreach collection="idList" open="(" close=")" separator="," item="id">
             #{id}
         </foreach>