From 087991c76f078defe5eb55d84223021b4199fb3d Mon Sep 17 00:00:00 2001
From: zss <zss@example.com>
Date: 星期一, 17 二月 2025 11:22:50 +0800
Subject: [PATCH] 设备模块修改bug

---
 cnas-server/src/main/java/com/yuanchu/mom/service/impl/DepartmentServiceImpl.java |   83 +++++++++++++++--------------------------
 1 files changed, 31 insertions(+), 52 deletions(-)

diff --git a/cnas-server/src/main/java/com/yuanchu/mom/service/impl/DepartmentServiceImpl.java b/cnas-server/src/main/java/com/yuanchu/mom/service/impl/DepartmentServiceImpl.java
index 56e1c6d..9292f5a 100644
--- a/cnas-server/src/main/java/com/yuanchu/mom/service/impl/DepartmentServiceImpl.java
+++ b/cnas-server/src/main/java/com/yuanchu/mom/service/impl/DepartmentServiceImpl.java
@@ -2,31 +2,19 @@
 
 import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
-import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
-import com.yuanchu.mom.common.PrintChina;
-import com.yuanchu.mom.dto.DepartmentDto;
-import com.yuanchu.mom.dto.UserDto;
-import com.yuanchu.mom.dto.UserPageDto;
-import com.yuanchu.mom.pojo.Department;
-import com.yuanchu.mom.mapper.DepartmentMapper;
-import com.yuanchu.mom.pojo.Device;
-import com.yuanchu.mom.pojo.User;
-import com.yuanchu.mom.service.DepartmentService;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
-import com.yuanchu.mom.utils.QueryWrappers;
+import com.yuanchu.mom.dto.DepartmentDto;
+import com.yuanchu.mom.mapper.DepartmentMapper;
+import com.yuanchu.mom.pojo.Department;
+import com.yuanchu.mom.service.DepartmentService;
 import lombok.AllArgsConstructor;
-import lombok.var;
+import lombok.extern.slf4j.Slf4j;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
-import java.sql.Connection;
-import java.sql.PreparedStatement;
-import java.sql.SQLException;
-import java.sql.Wrapper;
 import java.util.ArrayList;
-import java.util.HashMap;
 import java.util.List;
-import java.util.Map;
+import java.util.Objects;
 import java.util.stream.Collectors;
 
 /**
@@ -40,9 +28,12 @@
 @Service
 @AllArgsConstructor
 @Transactional(rollbackFor = Exception.class)
+@Slf4j
 public class DepartmentServiceImpl extends ServiceImpl<DepartmentMapper, Department> implements DepartmentService {
 
     DepartmentMapper departmentMapper;
+
+
 
 
     //娣诲姞閮ㄩ棬
@@ -55,26 +46,25 @@
     //鑾峰彇閮ㄩ棬鏍�
     @Override
     public List<DepartmentDto> selectDepartment() {
-        List<Department> departments = departmentMapper.selectDepartment();
-        // 鍋囪 resultSet 鏄粠鏁版嵁搴撴煡璇㈣繑鍥炵殑缁撴灉闆�
-        List<DepartmentDto> departmentDtos = new ArrayList<>();
-        Map<Integer, DepartmentDto> departmentMap = new HashMap<>();
+        List<DepartmentDto> departments = departmentMapper.selectDepartment();
+        departments.addAll(departmentMapper.selectCustomList());
+        //鑾峰彇鐖惰妭鐐�
+        List<DepartmentDto> collect = departments.stream().filter(m -> m.getFatherId() == null).peek(
+                (m) -> m.setChildren(getChildren(m, departments))
+        ).collect(Collectors.toList());
+        return collect;
+    }
 
-        for (Department department : departments) {
-            DepartmentDto departmentDto = new DepartmentDto(department.getId(), department.getName(), department.getFatherId(), new ArrayList<DepartmentDto>());
-            departmentMap.put(department.getId(), departmentDto);
-            if (department.getFatherId() == null) {
-                // 鏍归儴闂�
-                departmentDtos.add(departmentDto);
-            } else {
-                // 灏嗗綋鍓嶉儴闂ㄦ坊鍔犲埌鐖堕儴闂ㄧ殑 children 鍒楄〃涓�
-                DepartmentDto parent = departmentMap.get(department.getFatherId());
-                if (parent != null) {
-                    parent.getChildren().add(departmentDto);
-                }
-            }
-        }
-        return departmentDtos;
+    /**
+     * 閫掑綊鏌ヨ瀛愯妭鐐�
+     * @param root  鏍硅妭鐐�
+     * @param all   鎵�鏈夎妭鐐�
+     * @return 鏍硅妭鐐逛俊鎭�
+     */
+    private List<DepartmentDto> getChildren(DepartmentDto root, List<DepartmentDto> all) {
+        return all.stream().filter(m -> Objects.equals(m.getFatherId(), root.getId())).peek(
+                (m) -> m.setChildren(getChildren(m, all))
+        ).collect(Collectors.toList());
     }
 
     //鍒犻櫎閮ㄩ棬
@@ -84,21 +74,6 @@
         List<Department> department = getDepartment(id);
         return removeBatchByIds(department);
     }
-
-    //鏍规嵁閫夋嫨鐨勬爲灞曠ず鐩稿叧鐨勪汉鍛�
-    @Override
-    public Map<String, Object> showUserById(Page page, UserDto user) {
-        //鏍规嵁閮ㄩ棬id,鏌ヨ浠栫殑鎵�鏈夊瓙绫籭d
-        List<Integer> list = departmentMapper.selectSonById(Integer.parseInt(user.getDepartId()));
-        String ids = list.stream()
-                .map(Object::toString)
-                .collect(Collectors.joining(","));
-        Map<String, Object> map = new HashMap<>();
-        map.put("head", PrintChina.printChina(UserDto.class));
-        map.put("body", departmentMapper.showUserById(page, ids, QueryWrappers.queryWrappers(user)));
-        return map;
-    }
-
 
     //鍒ゆ柇鏄惁鏈夊瓙绫�,鐩村埌娌℃湁涓烘
     public List<Department> getDepartment(Integer id) {
@@ -115,4 +90,8 @@
         return list;
     }
 
+    @Override
+    public List<Department> selectDepartmentEnum() {
+        return departmentMapper.selectList(Wrappers.<Department>lambdaQuery().isNotNull(Department::getFatherId).select(Department::getId,Department::getName));
+    }
 }

--
Gitblit v1.9.3