Browse Source

1.控制台 渠道代理人 机构管理人树

wuhp 1 year ago
parent
commit
7bb9e59013

+ 18 - 0
src/main/java/com/ydtech/modules/admin/controller/SysUserController.java

@@ -936,6 +936,24 @@ public class SysUserController extends BaseController {
         }
 
     }
+    /**
+     * @version
+     * @author: whp
+     * @Date: 2024/10/12 16:12
+     * @Description: 机构人员树
+     */
+    @ApiOperation(value = "获取机构人员树")
+    @PostMapping(value = "/getTreeDeptUser")
+    public HttpResult getTreeDeptUser() {
+        try {
+            List<SysDeptTreeVo> userList = sysUserService.getTreeDeptUser();
+            return HttpResult.ok(userList);
+        } catch (Exception e) {
+            return HttpResult.error("查询失败" + e.getMessage());
+        }
+
+    }
+
 
     /**
      * @version

+ 3 - 0
src/main/java/com/ydtech/modules/admin/dao/SysUserMapper.java

@@ -516,6 +516,9 @@ public interface SysUserMapper extends BaseMapper<SysUser> {
 
     List<QxFrontlineAgentDto> getQxFrontlineAgentList(@Param("vo") QxFrontlineAgentVo qxFrontlineAgentVo);
 
+    List<SysUser> findHxUserListNew();
+
+
 }
 
 

+ 9 - 0
src/main/java/com/ydtech/modules/admin/service/SysUserService.java

@@ -276,6 +276,15 @@ public interface SysUserService extends BaseIService<SysUser> {
      *  @Description: 查询用户管理的电销组员
      */
     List<String> getGroupByUserId(String userId);
+    /**
+     * @version
+     * @author: whp
+     * @Date: 2024/10/12 16:12
+     * @Description: 机构人员树
+     */
+    List<SysDeptTreeVo> getTreeDeptUser();
+
+
 }
 
 

+ 36 - 0
src/main/java/com/ydtech/modules/admin/service/impl/SysUserServiceImpl.java

@@ -1,5 +1,6 @@
 package com.ydtech.modules.admin.service.impl;
 
+import cn.hutool.core.bean.BeanUtil;
 import cn.hutool.extra.spring.SpringUtil;
 import com.alibaba.fastjson.JSONObject;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
@@ -16,6 +17,7 @@ import com.ydtech.exception.SystemException;
 import com.ydtech.modules.admin.constants.QuMarks;
 import com.ydtech.modules.admin.constants.RoleConstants;
 import com.ydtech.modules.admin.constants.UserWorkStatus;
+import com.ydtech.modules.admin.dao.SysDeptMapper;
 import com.ydtech.modules.admin.dao.SysUserLinkAreaMapper;
 import com.ydtech.modules.admin.dao.SysUserMapper;
 import com.ydtech.modules.admin.model.*;
@@ -90,6 +92,8 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> impl
 
     @Autowired
     private SysUserLinkAreaMapper sysUserLinkAreaMapper;
+    @Autowired
+    private SysDeptMapper sysDeptMapper;
 
     @Override
     public IPage<SysUserBaseVO> findUserList(PageDto<SysUserDto> pageDto) {
@@ -1731,4 +1735,36 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> impl
     public List<String> getGroupByUserId(String userId) {
         return sysUserMapper.getGroupByUserId(userId);
     }
+
+
+    @Override
+    public List<SysDeptTreeVo> getTreeDeptUser() {
+        List<SysUser> hxUserList = sysUserMapper.findHxUserListNew();
+        Map<String, List<SysUser>> groupedByDeptId = hxUserList.stream()
+                .collect(Collectors.groupingBy(SysUser::getDeptId, Collectors.toList()));
+
+
+        SysDept sysDept = this.sysDeptService.getById("9");
+        LambdaQueryWrapper<SysDept> lqw = new LambdaQueryWrapper<>();
+        lqw.eq(SysDept::getDelFlag, 0);
+//        lqw.isNull(SysDept::getComlevel);
+        lqw.likeRight(SysDept::getId, "9");
+        lqw.orderByAsc(SysDept::getOrderNum);
+        List<SysDept> sysDeptList = sysDeptMapper.selectList(lqw);
+        List<SysDeptTreeVo> sysDeptTreeVos = BeanUtil.copyToList(sysDeptList, SysDeptTreeVo.class);
+        Map<String, List<SysDeptTreeVo>> map = sysDeptTreeVos.stream().sorted(Comparator.comparing(SysDeptTreeVo::getId)).collect(Collectors.groupingBy(SysDeptTreeVo::getParentId));
+        sysDeptTreeVos.forEach(i -> {
+            if(map.get(i.getId()) ==null ){
+                List<SysUser> orDefault = groupedByDeptId.getOrDefault(i.getId(), new ArrayList<>());
+                List<SysDeptTreeVo> sysDeptTreeVos1 = BeanUtil.copyToList(orDefault, SysDeptTreeVo.class);
+                i.setChildren(sysDeptTreeVos1);
+            }else {
+                i.setChildren(map.getOrDefault(i.getId(), new ArrayList<>()));
+                i.setDeptCount(i.getChildren().size());
+            }
+        });
+        sysDeptTreeVos = map.get(sysDept.getParentId());
+
+        return sysDeptTreeVos;
+    }
 }

+ 20 - 0
src/main/resources/mapper/modules/admin/SysUserMapper.xml

@@ -1304,6 +1304,26 @@
         AND t1.id NOT LIKE '%M%'
     </select>
 
+    <select id="findHxUserListNew" resultType="com.ydtech.modules.admin.model.SysUser">
+        SELECT
+        t1.id AS id,
+        t1.NAME AS NAME,
+        t1.mobile AS mobile,
+        t1.`status` AS `status`,
+        t2.id AS deptId,
+        t2.id AS parentId,
+        t2.`name` AS deptName,
+        sd2.id AS pDeptId,
+        sd2.`name` AS pDeptName
+        FROM
+        sys_user t1
+        LEFT JOIN sys_dept t2 ON t1.dept_id = t2.id
+        LEFT JOIN sys_dept sd2 ON sd2.id = t2.parent_id
+        WHERE
+        t1.`status` = 1
+        AND t1.id NOT LIKE '%M%'
+    </select>
+
     <select id="queryHXReportDataNew" resultType="java.util.HashMap">
         SELECT
             IFNULL(sum(info.salary),0) as  "salary",