Ver código fonte

1.机构人员数 机构按照机构来源过滤

wuhp 1 ano atrás
pai
commit
28ad7619e9

+ 19 - 6
src/main/java/com/ydtech/modules/admin/service/impl/SysDeptServiceImpl.java

@@ -27,6 +27,7 @@ import com.ydtech.modules.admin.service.SysUserTreeShowLevelService;
 import com.ydtech.modules.base.controller.BaseController;
 import com.ydtech.modules.protocol.utils.AssertionUtils;
 import com.ydtech.utils.StringUtils;
+import io.lettuce.core.ScriptOutputType;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -790,6 +791,7 @@ public class SysDeptServiceImpl extends ServiceImpl<SysDeptMapper, SysDept>
      */
     @Override
     public KztUserDeptTreeDto  getUserDeptTree(SysDeptVo sysDeptVo) {
+        String managementSource = sysDeptVo.getManagementSource();
         KztUserDeptTreeDto kztUserDeptTreeDto = new KztUserDeptTreeDto();
         String userId = BaseController.getUserId();
         QueryWrapper<SysDept> queryWrapper = new QueryWrapper<>();
@@ -801,7 +803,7 @@ public class SysDeptServiceImpl extends ServiceImpl<SysDeptMapper, SysDept>
             kztUserDeptTreeDto.setType("2"); //代理
         }
             SysUser byUserId = sysUserMapper.getByUserId(userId);
-            List<SysDeptTreeVo> resultDeptList = this.getFiveLevelDeptKzt(byUserId);
+            List<SysDeptTreeVo> resultDeptList = this.getFiveLevelDeptKzt(byUserId,managementSource);
             kztUserDeptTreeDto.setDeptList(resultDeptList);
             if (!userId.contains("M")) {
               List<SysUser>  resultList =this.getUserTreeHx(byUserId);
@@ -873,7 +875,7 @@ public class SysDeptServiceImpl extends ServiceImpl<SysDeptMapper, SysDept>
         }
     }
 
-    private List<SysDeptTreeVo> getFiveLevelDeptKzt(SysUser byUserId) {
+    private List<SysDeptTreeVo> getFiveLevelDeptKzt(SysUser byUserId,String managementSource) {
         SysDept sysDept = getById("9");
         SysDeptVo sysDeptVo = new SysDeptVo();
         String id = byUserId.getId();
@@ -892,9 +894,14 @@ public class SysDeptServiceImpl extends ServiceImpl<SysDeptMapper, SysDept>
                 sysDept.setComlevel("1");
                 sysDeptList.add(sysDept);
                 List<SysDeptTreeVo> sysDeptTreeVos = BeanUtil.copyToList(sysDeptList, SysDeptTreeVo.class);
-                Map<String, List<SysDeptTreeVo>> map = sysDeptTreeVos.stream().sorted(Comparator.comparing(SysDeptTreeVo::getId))
+
+                List<SysDeptTreeVo> filteredSysDeptTreeVos = sysDeptTreeVos.stream()
+                        .filter(dept -> !(dept.getComlevel().equals("5") &&
+                                !Objects.equals(dept.getManagementSource(), managementSource)))
+                        .collect(Collectors.toList());
+                Map<String, List<SysDeptTreeVo>> map = filteredSysDeptTreeVos.stream().sorted(Comparator.comparing(SysDeptTreeVo::getId))
                         .collect(Collectors.groupingBy(SysDeptTreeVo::getParentId));
-                sysDeptTreeVos.forEach(i -> {
+                filteredSysDeptTreeVos.forEach(i -> {
                     if(Integer.parseInt(i.getComlevel())<=5){
                         i.setChildren(map.getOrDefault(i.getId(), new ArrayList<>()));
                         i.setDeptCount(i.getChildren().size());
@@ -908,13 +915,19 @@ public class SysDeptServiceImpl extends ServiceImpl<SysDeptMapper, SysDept>
                         .filter(dept -> dept.getComlevel() != null) // 过滤条件:Comlevel 不为 null
                         .collect(Collectors.toList());
 
+                List<SysDept> filteredSysDeptTreeVos = filteredDeptList.stream()
+                        .filter(dept -> !(dept.getComlevel().equals("5") &&
+                                !Objects.equals(dept.getManagementSource(), managementSource)))
+                        .collect(Collectors.toList());
+
+
                 // 使用一个Map来快速查找部门节点
                 Map<String, SysDept> deptMap = new HashMap<>();
-                for (SysDept dept : filteredDeptList) {
+                for (SysDept dept : filteredSysDeptTreeVos) {
                     deptMap.put(dept.getId(), dept);
                 }
                 // 找出顶级部门(即没有父部门的部门)
-                for (SysDept dept : filteredDeptList) {
+                for (SysDept dept : filteredSysDeptTreeVos) {
                     if (dept.getParentId() == null || deptMap.get(dept.getParentId()) == null) {
                         // 添加到结果列表并构建其子树
                         buildDeptTreeKzt(dept, deptMap);

+ 6 - 2
src/main/resources/mapper/modules/admin/SysDeptMapper.xml

@@ -127,7 +127,8 @@
         SELECT sd.id        AS id,
                sd.NAME      AS NAME,
                sd.parent_id  AS parentId,
-               sd.comlevel  AS comlevel
+               sd.comlevel  AS comlevel,
+               sd.management_source as managementSource
         FROM sys_dept sd
         <where>
             <if test="ids!=null  and  ids !=''  and ids.size()>0">
@@ -147,13 +148,16 @@
             sd.del_flag ='0'
             AND sd.id LIKE concat('%','9','%')
             AND sd.comlevel is not null
-            and  (sd.management_source != '1' or sd.management_source is null)
             <if test="vo.deptIds !=null and  vo.deptIds!=''  and  vo.deptIds.size()>0">
                 AND sd.id  in
                 <foreach collection="vo.deptIds" item="item" open="(" close=")" separator=",">
                     #{item}
                 </foreach>
             </if>
+
+            <if test="vo.managementSource !=null and  vo.managementSource!='' ">
+                AND sd.management_source   =#{vo.managementSource}
+            </if>
         </where>
     </select>