Selaa lähdekoodia

1.【业务数据】电销,人员下面没电销数据的不显示,同渠道代理人

wuhp 1 vuosi sitten
vanhempi
commit
98d783c1e6

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

@@ -1057,6 +1057,20 @@ public class SysUserController extends BaseController {
         return HttpResult.ok(list);
     }
 
+
+    /**
+     *
+     *
+     * @return 获取用户下级是否有  电销  代理人 渠道   如果有则返回  没有则 不返回
+     */
+    @ApiOperation(value = "获取当前用户的下级")
+    @GetMapping(value = "/findNextTreeContain")
+    public HttpResult<List<SysUser>> findNextTreeContain(String managementSource) {
+        List<SysUser> list = sysUserService.findNextTreeContain(managementSource);
+        return HttpResult.ok(list);
+    }
+
+
     /**
      * 获取当前用户的所有代理人
      *

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

@@ -343,6 +343,8 @@ public interface SysUserService extends BaseIService<SysUser> {
      */
     SysUser getByRoleIdAndDeptId(String roleId, String deptId);
 
+    List<SysUser> findNextTreeContain(String managementSource);
+
 }
 
 

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

@@ -2795,4 +2795,91 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> impl
     public SysUser getByRoleIdAndDeptId(String roleId, String deptId) {
         return baseMapper.getByRoleIdAndDeptId(roleId, deptId);
     }
+
+    /**
+     *
+     * @param managementSource
+     * @return  该人员下 的子集如果是电销 或者 代理人 或者 渠道则 显示
+     */
+    @Override
+    public List<SysUser> findNextTreeContain(String managementSource) {
+
+        String userId = BaseController.getUserId();
+        SysUser sysUser = sysUserMapper.getByUserId(userId);
+
+        //获取领导字段不为空的人的ID
+        QueryWrapper<SysUser> queryWrapper = new QueryWrapper<>();
+        queryWrapper.isNotNull("leader_id");
+
+        HashMap<String, Object> params = new HashMap<>();
+        params.put("managementSource",managementSource);
+        List<SysUser> users = sysUserMapper.selectByParams(params);
+
+        for (SysUser user : users) {
+            this.appendName(user);
+        }
+        if (users == null || users.isEmpty()) {
+            return new ArrayList<>();
+        }
+        List<SysUser> topUsers = new ArrayList<>(); //存放1级用户,即没有直接上级的用户
+        // 根据组织结构展示级别,筛选顶层节点并构建组织结构树
+        if("admin".equals(sysUser.getName())){
+            topUsers.add(sysUserMapper.selectById("99D1501"));
+        }else {
+            this.appendName(sysUser);
+            topUsers.add(sysUser);
+        }
+        // 递归构建用户树结构
+        buildUserTreeContain(topUsers, users,managementSource);
+        return topUsers;
+
+    }
+
+    /**
+     * 拼接机构来源
+     * @param users
+     */
+    private void appendName(SysUser user) {
+        StringBuilder stringBuilder = new StringBuilder();
+        String deptId = user.getDeptId();
+        if (StringUtils.isNotEmpty(deptId)) {
+            int length = deptId.length();
+            if (length > 0) {
+                if (length <= 5) {
+                    String dept = deptId.replaceAll("[^\\d]*(\\d+).*", "$1");
+                    SysDept cityName = sysDeptMapper.selectById(dept);
+                    String name = cityName.getName();
+                    stringBuilder.append("(").append(name).append(")");
+                } else if (length > 5) {
+                    String dept = deptId.replaceAll("[^\\d]*(\\d+).*", "$1");
+                    if (dept.length() < 5) {
+                        SysDept dept1 = sysDeptMapper.selectById(dept);
+                        SysDept cityName = sysDeptMapper.selectById(deptId);
+                        stringBuilder.append("(").append(dept1.getName()).append(cityName.getName()).append(")");
+                    } else {
+                        String deptIdTwo = dept.substring(0, 4);
+
+                        SysDept dept1 = sysDeptMapper.selectById(deptIdTwo);
+                        SysDept dept2 = sysDeptMapper.selectById(dept);
+                        stringBuilder.append("(").append(dept1.getName()).append(dept2.getName()).append(")");
+                    }
+                }
+                user.setName(user.getName()+stringBuilder.toString());
+            }
+        }
+    }
+    private void buildUserTreeContain(List<SysUser> topUsers, List<SysUser> users, String managementSource) {
+        for (SysUser user : topUsers) {
+            List<SysUser> children = new ArrayList<>();
+            for (SysUser childUser : users) {
+                if (user.getId().equals(childUser.getLeaderId())) {
+                    children.add(childUser);
+                    // 递归查找下一级
+                    buildUserTreeContain(children, users,managementSource);
+                }
+            }
+            user.setChildren(children);
+        }
+    }
+
 }

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

@@ -1983,6 +1983,9 @@
         LEFT JOIN sys_dept sd1 ON sd1.id = su4.dept_id
         WHERE
         su4.id IN ( su1.id, su2.id, su3.id )
+          <if test="managementSource  !=null  and  managementSource !=''">
+              and  sd1.management_source=#{managementSource}
+          </if>
         ) AS subquery
         ORDER BY 1
        ) > 0 )