Przeglądaj źródła

过滤前线人员

helixiao 1 rok temu
rodzic
commit
32af041718

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

@@ -511,6 +511,8 @@ public interface SysUserMapper extends BaseMapper<SysUser> {
     List<SysUser> getLeadListDeptId(@Param("deptId") String deptId);
 
     List<SysUser> selectByLeadId(String userId);
+
+    List<SysUser> querySourceId(String id);
 }
 
 

+ 68 - 17
src/main/java/com/ydtech/modules/admin/service/impl/SysGeographyPositionServiceImpl.java

@@ -91,15 +91,14 @@ public class SysGeographyPositionServiceImpl extends ServiceImpl<SysGeographyPos
             sysGeographyPositionVo.setList(sysGeographyPositionList);
 
         }else if (type == 2){
+            //查询人员下属管理所有人员
+            List<String> ids = new ArrayList<>();
             List<SysUser> sysUsers = sysUserMapper.selectList(new LambdaQueryWrapper<SysUser>()
                     .eq(SysUser::getLeaderId, sysGeographyPositionDto.getQueryId()).ne(SysUser::getStatus, 0));
             List<String> collect = sysUsers.stream().map(SysUser::getId).collect(Collectors.toList());
-            List<String> ids = new ArrayList<>();
+            if (collect.size() == 0) return sysGeographyPositionVo;
             List<String> idList = queryList(collect, ids);
             collect.addAll(idList);
-            if (collect.size() == 0) {
-                return sysGeographyPositionVo;
-            }
 
             List<SysGeographyPosition> list = sysGeographyPositionMapper.selectList(new LambdaQueryWrapper<SysGeographyPosition>()
                     .eq(StringUtils.isNotEmpty(sysGeographyPositionDto.getProvince()), SysGeographyPosition::getProvince, sysGeographyPositionDto.getProvince())
@@ -165,14 +164,20 @@ public class SysGeographyPositionServiceImpl extends ServiceImpl<SysGeographyPos
     }
 
     private List<String> queryList(List<String> collect, List<String> ids) {
-        if (collect.size() > 0) {
+        int size = collect.size();
+        if (size > 0) {
+            List<String> strings = new ArrayList<>();
             for (String id : collect) {
                 List<SysUser> sysUsers = sysUserMapper.selectList(new LambdaQueryWrapper<SysUser>()
                         .eq(SysUser::getLeaderId, id).ne(SysUser::getStatus, 0));
+//                List<SysUser> sysUsers = sysUserMapper.querySourceId(id);
                 if (sysUsers.size() > 0) {
                     List<String> list = sysUsers.stream().map(SysUser::getId).collect(Collectors.toList());
+                    strings.addAll(list);
                     ids.addAll(list);
-                    queryList(list, ids);
+                    if (collect.indexOf(id) + 1 == size) {
+                        queryList(strings, ids);
+                    }
 
                 }
             }
@@ -188,27 +193,73 @@ public class SysGeographyPositionServiceImpl extends ServiceImpl<SysGeographyPos
                 .eq(SysDept::getId, deptId).eq(SysDept::getDelFlag, 0));
         if (StringUtils.isEmpty(sysDept.getComlevel())) {
             SysDept sysDept5 = sysDeptMapper.selectById(sysDept.getParentId());
-            SysDept sysDept4 = sysDeptMapper.selectById(sysDept5.getParentId());
-            SysDept sysDept3 = sysDeptMapper.selectById(sysDept4.getParentId());
-            SysDept sysDept2 = sysDeptMapper.selectById(sysDept3.getParentId());
-            stringBuilder.append(sysDept2.getName()).append("-").append(sysDept3.getName())
-                    .append("-").append(sysDept4.getName()).append("-").append(sysDept5.getName()).append("-").append(sysDept.getName());
+            if (sysDept5 == null) {
+                stringBuilder.append(sysDept.getName());
+            }else {
+                SysDept sysDept4 = sysDeptMapper.selectById(sysDept5.getParentId());
+                if (sysDept4 == null) {
+                    stringBuilder.append(sysDept5.getName()).append("-").append(sysDept.getName());
+                }else {
+                    SysDept sysDept3 = sysDeptMapper.selectById(sysDept4.getParentId());
+                    if (sysDept3 == null) {
+                        stringBuilder.append(sysDept4.getName())
+                                .append("-").append(sysDept5.getName()).append("-").append(sysDept.getName());
+                    }else {
+                        SysDept sysDept2 = sysDeptMapper.selectById(sysDept3.getParentId());
+                        if (sysDept2 == null) {
+                            stringBuilder.append(sysDept3.getName()).append("-").append(sysDept4.getName())
+                                    .append("-").append(sysDept5.getName()).append("-").append(sysDept.getName());
+                        }else {
+                            stringBuilder.append(sysDept2.getName()).append("-").append(sysDept3.getName())
+                                    .append("-").append(sysDept4.getName()).append("-").append(sysDept5.getName()).append("-").append(sysDept.getName());
+                        }
+                    }
+                }
+            }
         }else if (sysDept.getComlevel().equals("5")) {
             SysDept sysDept4 = sysDeptMapper.selectById(sysDept.getParentId());
-            SysDept sysDept3 = sysDeptMapper.selectById(sysDept4.getParentId());
-            SysDept sysDept2 = sysDeptMapper.selectById(sysDept3.getParentId());
-            stringBuilder.append(sysDept2.getName()).append("-").append(sysDept3.getName()).append("-").append(sysDept4.getName()).append("-").append(sysDept.getName());
+            if (sysDept4 == null) {
+                stringBuilder.append(sysDept.getName());
+            }else {
+                SysDept sysDept3 = sysDeptMapper.selectById(sysDept4.getParentId());
+                if (sysDept3 == null) {
+                    stringBuilder.append(sysDept4.getName()).append("-").append(sysDept.getName());
+                }else {
+                    SysDept sysDept2 = sysDeptMapper.selectById(sysDept3.getParentId());
+                    if (sysDept2 == null) {
+                        stringBuilder.append(sysDept3.getName()).append("-").append(sysDept4.getName()).append("-").append(sysDept.getName());
+                    }else {
+                        stringBuilder.append(sysDept2.getName()).append("-").append(sysDept3.getName()).append("-").append(sysDept4.getName()).append("-").append(sysDept.getName());
+                    }
+                }
+            }
         }else if (sysDept.getComlevel().equals("4")) {
             SysDept sysDept3 = sysDeptMapper.selectById(sysDept.getParentId());
-            SysDept sysDept2 = sysDeptMapper.selectById(sysDept3.getParentId());
-            stringBuilder.append(sysDept2.getName()).append("-").append(sysDept3.getName()).append("-").append(sysDept.getName());
+            if (sysDept3 == null) {
+                stringBuilder.append(sysDept.getName());
+            }else {
+                SysDept sysDept2 = sysDeptMapper.selectById(sysDept3.getParentId());
+                if (sysDept2 == null) {
+                    stringBuilder.append(sysDept3.getName()).append("-").append(sysDept.getName());
+                }else {
+                    stringBuilder.append(sysDept2.getName()).append("-").append(sysDept3.getName()).append("-").append(sysDept.getName());
+                }
+            }
         }else if (sysDept.getComlevel().equals("3")) {
             SysDept sysDept2 = sysDeptMapper.selectById(sysDept.getParentId());
-            stringBuilder.append(sysDept2.getName()).append("-").append(sysDept.getName());
+            if (sysDept2 == null) {
+                stringBuilder.append(sysDept.getName());
+            }else {
+                stringBuilder.append(sysDept2.getName()).append("-").append(sysDept.getName());
+            }
 
         }else if (sysDept.getComlevel().equals("2")) {
             stringBuilder.append(sysDept.getName());
         }
+        String s = stringBuilder.toString();
+        if (s.contains("总部-")) {
+            stringBuilder.replace(0,3,"");
+        }
 
 
         return stringBuilder.toString();

+ 116 - 9
src/main/java/com/ydtech/modules/admin/service/impl/SysPcAddressServiceImpl.java

@@ -148,14 +148,33 @@ public class SysPcAddressServiceImpl extends ServiceImpl<SysPcAddressMapper, Sys
     }
 
     private List<String> queryList(List<String> collect, List<String> ids) {
-        if (collect.size() > 0) {
+//        if (collect.size() > 0) {
+//            for (String id : collect) {
+//                List<SysUser> sysUsers = sysUserMapper.selectList(new LambdaQueryWrapper<SysUser>()
+//                        .eq(SysUser::getLeaderId, id).ne(SysUser::getStatus, 0));
+//                if (sysUsers.size() > 0) {
+//                    List<String> list = sysUsers.stream().map(SysUser::getId).collect(Collectors.toList());
+//                    ids.addAll(list);
+//                    queryList(list, ids);
+//
+//                }
+//            }
+//
+//        }
+        int size = collect.size();
+        if (size > 0) {
+            List<String> strings = new ArrayList<>();
             for (String id : collect) {
                 List<SysUser> sysUsers = sysUserMapper.selectList(new LambdaQueryWrapper<SysUser>()
                         .eq(SysUser::getLeaderId, id).ne(SysUser::getStatus, 0));
+//                List<SysUser> sysUsers = sysUserMapper.querySourceId(id);
                 if (sysUsers.size() > 0) {
                     List<String> list = sysUsers.stream().map(SysUser::getId).collect(Collectors.toList());
+                    strings.addAll(list);
                     ids.addAll(list);
-                    queryList(list, ids);
+                    if (collect.indexOf(id) + 1 == size) {
+                        queryList(strings, ids);
+                    }
 
                 }
             }
@@ -272,16 +291,15 @@ public class SysPcAddressServiceImpl extends ServiceImpl<SysPcAddressMapper, Sys
             insOrdersPage = page(page, wrapper);
 
         } else if (addressInfoDto.getType() == 2) {
+            List<String> ids = new ArrayList<>();
             List<SysUser> sysUsers = sysUserMapper.selectList(new LambdaQueryWrapper<SysUser>()
                     .eq(SysUser::getLeaderId, addressInfoDto.getQueryId()).ne(SysUser::getStatus, 0));
             List<String> collect = sysUsers.stream().map(SysUser::getId).collect(Collectors.toList());
-            List<String> ids = new ArrayList<>();
+            if (collect.size() == 0) return new BasePageResult<>(addressInfoDto.getPageNum(), page.getSize(), insOrdersPage.getTotal(), page.getPages(),
+                        insOrdersPage.getRecords());
+
             List<String> idList = queryList(collect, ids);
             collect.addAll(idList);
-            if (collect.size() == 0) {
-                return new BasePageResult<>(addressInfoDto.getPageNum(), page.getSize(), insOrdersPage.getTotal(), page.getPages(),
-                        insOrdersPage.getRecords());
-            }
 
             LambdaQueryWrapper<SysPcAddress> wrapper = new LambdaQueryWrapper<>();
             wrapper.eq(StringUtils.isNotEmpty(addressInfoDto.getLng()), SysPcAddress::getLongitude, addressInfoDto.getLng());
@@ -526,9 +544,18 @@ public class SysPcAddressServiceImpl extends ServiceImpl<SysPcAddressMapper, Sys
         //获取领导字段不为空的人的ID
         QueryWrapper<SysUser> queryWrapper = new QueryWrapper<>();
         queryWrapper.isNotNull("leader_id");
-
+        List<SysUser> userList = null;
         List<SysUser> users = sysUserMapper.selectList(queryWrapper);
-        List<SysUser> userList = users.stream().filter(SysUser -> !SysUser.getId().contains("M")).collect(Collectors.toList());
+        if (users.size()>0) {
+            //排除前线员工
+            userList = users.stream().filter(SysUser -> !SysUser.getId().contains("M")).collect(Collectors.toList());
+            //填充所属机构名称
+            for (SysUser user : userList) {
+                String deptName = getDeptName(user.getDeptId());
+                user.setDeptName(deptName);
+            }
+        }
+
         if (users == null || users.size() == 0) {
             return new ArrayList<>();
         }
@@ -545,6 +572,8 @@ public class SysPcAddressServiceImpl extends ServiceImpl<SysPcAddressMapper, Sys
         return topUsers;
     }
 
+
+
     private void buildUserTree(List<SysUser> topUsers, List<SysUser> users) {
         for (SysUser user : topUsers) {
             List<SysUser> children = new ArrayList<>();
@@ -559,6 +588,84 @@ public class SysPcAddressServiceImpl extends ServiceImpl<SysPcAddressMapper, Sys
         }
     }
 
+    private String getDeptName(String deptId) {
+        StringBuilder stringBuilder = new StringBuilder();
+        SysDept sysDept = sysDeptMapper.selectOne(new LambdaQueryWrapper<SysDept>()
+                .eq(SysDept::getId, deptId).eq(SysDept::getDelFlag, 0));
+        if (StringUtils.isEmpty(sysDept.getComlevel())) {
+            SysDept sysDept5 = sysDeptMapper.selectById(sysDept.getParentId());
+            if (sysDept5 == null) {
+                stringBuilder.append(sysDept.getName());
+            }else {
+                SysDept sysDept4 = sysDeptMapper.selectById(sysDept5.getParentId());
+                if (sysDept4 == null) {
+                    stringBuilder.append(sysDept5.getName()).append("-").append(sysDept.getName());
+                }else {
+                    SysDept sysDept3 = sysDeptMapper.selectById(sysDept4.getParentId());
+                    if (sysDept3 == null) {
+                        stringBuilder.append(sysDept4.getName())
+                                .append("-").append(sysDept5.getName()).append("-").append(sysDept.getName());
+                    }else {
+                        SysDept sysDept2 = sysDeptMapper.selectById(sysDept3.getParentId());
+                        if (sysDept2 == null) {
+                            stringBuilder.append(sysDept3.getName()).append("-").append(sysDept4.getName())
+                                    .append("-").append(sysDept5.getName()).append("-").append(sysDept.getName());
+                        }else {
+                            stringBuilder.append(sysDept2.getName()).append("-").append(sysDept3.getName())
+                                    .append("-").append(sysDept4.getName()).append("-").append(sysDept5.getName()).append("-").append(sysDept.getName());
+                        }
+                    }
+                }
+            }
+        }else if (sysDept.getComlevel().equals("5")) {
+            SysDept sysDept4 = sysDeptMapper.selectById(sysDept.getParentId());
+            if (sysDept4 == null) {
+                stringBuilder.append(sysDept.getName());
+            }else {
+                SysDept sysDept3 = sysDeptMapper.selectById(sysDept4.getParentId());
+                if (sysDept3 == null) {
+                    stringBuilder.append(sysDept4.getName()).append("-").append(sysDept.getName());
+                }else {
+                    SysDept sysDept2 = sysDeptMapper.selectById(sysDept3.getParentId());
+                    if (sysDept2 == null) {
+                        stringBuilder.append(sysDept3.getName()).append("-").append(sysDept4.getName()).append("-").append(sysDept.getName());
+                    }else {
+                        stringBuilder.append(sysDept2.getName()).append("-").append(sysDept3.getName()).append("-").append(sysDept4.getName()).append("-").append(sysDept.getName());
+                    }
+                }
+            }
+        }else if (sysDept.getComlevel().equals("4")) {
+            SysDept sysDept3 = sysDeptMapper.selectById(sysDept.getParentId());
+            if (sysDept3 == null) {
+                stringBuilder.append(sysDept.getName());
+            }else {
+                SysDept sysDept2 = sysDeptMapper.selectById(sysDept3.getParentId());
+                if (sysDept2 == null) {
+                    stringBuilder.append(sysDept3.getName()).append("-").append(sysDept.getName());
+                }else {
+                    stringBuilder.append(sysDept2.getName()).append("-").append(sysDept3.getName()).append("-").append(sysDept.getName());
+                }
+            }
+        }else if (sysDept.getComlevel().equals("3")) {
+            SysDept sysDept2 = sysDeptMapper.selectById(sysDept.getParentId());
+            if (sysDept2 == null) {
+                stringBuilder.append(sysDept.getName());
+            }else {
+                stringBuilder.append(sysDept2.getName()).append("-").append(sysDept.getName());
+            }
+
+        }else if (sysDept.getComlevel().equals("2")) {
+            stringBuilder.append(sysDept.getName());
+        }
+        String s = stringBuilder.toString();
+        if (s.contains("总部-")) {
+            stringBuilder.replace(0,3,"");
+        }
+
+
+        return stringBuilder.toString();
+    }
+
 
 }
 

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

@@ -1796,5 +1796,15 @@
         and  su.leader_id =#{userId}
     </select>
 
+    <select id="querySourceId" resultType="com.ydtech.modules.admin.model.SysUser">
+        select *
+        from sys_user su
+        left join sys_dept sd on su.dept_id = sd.id
+        where
+            su.status != 0 and sd.management_source in (1,2)
+            and su.leader_id = #{id}
+
+    </select>
+
 
 </mapper>