From 8ad863082097ffdcab4a8e7f426d344a1fe6f892 Mon Sep 17 00:00:00 2001
From: 吴羡 <16976746+Xian-TT3@user.noreply.gitee.com>
Date: 星期六, 07 十一月 2026 00:27:02 +0800
Subject: [PATCH] 修复人员管理接口校验与导出,完善设备保养计划与文件受控功能

---
 cnas-personnel/src/main/java/com/ruoyi/personnel/service/impl/PersonBasicInfoServiceImpl.java |   62 +++++++++++++++++++-----------
 1 files changed, 39 insertions(+), 23 deletions(-)

diff --git a/cnas-personnel/src/main/java/com/ruoyi/personnel/service/impl/PersonBasicInfoServiceImpl.java b/cnas-personnel/src/main/java/com/ruoyi/personnel/service/impl/PersonBasicInfoServiceImpl.java
index 3e4049a..dae7724 100644
--- a/cnas-personnel/src/main/java/com/ruoyi/personnel/service/impl/PersonBasicInfoServiceImpl.java
+++ b/cnas-personnel/src/main/java/com/ruoyi/personnel/service/impl/PersonBasicInfoServiceImpl.java
@@ -163,7 +163,18 @@
     @Override
     public void exportPersonBasicInfo(UserPageDto userPageDto, HttpServletResponse response) throws Exception {
         ArrayList<PersonBasicInfoDto> data = new ArrayList<>();
-        List<User> list = userMapper.selectList(null);
+        LambdaQueryWrapper<User> userWrapper = Wrappers.<User>lambdaQuery()
+                .and(w -> w.eq(User::getDelFlag, "0").or().isNull(User::getDelFlag))
+                .and(w -> w.eq(User::getIsCustom, 0).or().isNull(User::getIsCustom));
+        if (userPageDto != null) {
+            if (ObjectUtils.isNotEmpty(userPageDto.getName())) {
+                userWrapper.like(User::getName, userPageDto.getName().trim());
+            }
+            if (userPageDto.getDepartmentId() != null) {
+                userWrapper.apply("FIND_IN_SET({0}, depart_lims_id)", userPageDto.getDepartmentId());
+            }
+        }
+        List<User> list = userMapper.selectList(userWrapper);
         for (User user : list) {
             PersonBasicInfoDto personBasicInfoDto = new PersonBasicInfoDto();
             PersonBasicInfo personBasicInfo = baseMapper.selectOne(Wrappers.<PersonBasicInfo>lambdaQuery().eq(PersonBasicInfo::getUserId, user.getId()));
@@ -193,12 +204,18 @@
 
     @Override
     public String exportPersonBasicInfoById(Integer id, HttpServletResponse response) {
-        Map<String, Object> userMap = baseMapper.selectexportPersonBasic(id);
+        if (id == null) {
+            throw new ErrorException("缂哄皯浜哄憳id");
+        }
         User user = userMapper.selectById(id);
-        PersonBasicInfo personBasicInfo = baseMapper.selectOne(Wrappers.<PersonBasicInfo>lambdaQuery().eq(PersonBasicInfo::getUserId, user.getId()));
+        if (user == null) {
+            throw new ErrorException("浜哄憳涓嶅瓨鍦ㄦ垨宸茶鍒犻櫎");
+        }
+        PersonBasicInfo personBasicInfo = baseMapper.selectOne(Wrappers.<PersonBasicInfo>lambdaQuery().eq(PersonBasicInfo::getUserId, id));
         if (ObjectUtils.isEmpty(personBasicInfo)){
             throw new ErrorException("璇ョ敤鎴风殑鍩烘湰淇℃伅娌℃湁褰曞叆,鏆傛棤娉曞鍑�");
         }
+        Map<String, Object> userMap = baseMapper.selectexportPersonBasic(id);
         // 璇佷欢
         List<Annex> annexList = annexMapper.selectList(Wrappers.<Annex>lambdaQuery()
                 .eq(Annex::getUserId, id));
@@ -320,27 +337,26 @@
      */
     @Override
     public boolean delDepartment(Integer id) {
-        //鍒ゆ柇鏄惁鏈夊瓙绫�,鐩村埌娌℃湁涓烘
-        List<DepartmentLims> department = getDepartment(id);
-        List<Integer> ids = department.stream().map(DepartmentLims::getId).collect(Collectors.toList());
-        departmentMapper.delete(Wrappers.<DepartmentLims>lambdaQuery()
-                .in(DepartmentLims::getId, ids));
-        return true;
-    }
-
-    //鍒ゆ柇鏄惁鏈夊瓙绫�,鐩村埌娌℃湁涓烘
-    public List<DepartmentLims> getDepartment(Integer id) {
-        List<DepartmentLims> list = new ArrayList<>();
-        DepartmentLims depart = departmentMapper.selectById(id);
-        list.add(depart);
-        List<DepartmentLims> departments = departmentMapper.selectList(Wrappers.<DepartmentLims>lambdaQuery().eq(DepartmentLims::getFatherId, id));
-        if (ObjectUtils.isNotEmpty(departments)) {
-            list.addAll(departments);
-            for (DepartmentLims department : departments) {
-                list.addAll(getDepartment(department.getId()));
-            }
+        if (id == null) {
+            throw new ErrorException("缂哄皯鏋舵瀯id");
         }
-        return list;
+        DepartmentLims depart = departmentMapper.selectById(id);
+        if (depart == null) {
+            throw new ErrorException("璇ユ灦鏋勪笉瀛樺湪鎴栧凡琚垹闄�");
+        }
+        Long childCount = departmentMapper.selectCount(Wrappers.<DepartmentLims>lambdaQuery()
+                .eq(DepartmentLims::getFatherId, id));
+        if (childCount != null && childCount > 0) {
+            throw new ErrorException("璇ユ灦鏋勪笅瀛樺湪涓嬬骇鏋舵瀯锛岃鍏堝垹闄や笅绾ф灦鏋�");
+        }
+        Long userCount = userMapper.selectCount(Wrappers.<User>lambdaQuery()
+                .and(w -> w.eq(User::getDelFlag, "0").or().isNull(User::getDelFlag))
+                .apply("FIND_IN_SET({0}, depart_lims_id)", id));
+        if (userCount != null && userCount > 0) {
+            throw new ErrorException("璇ユ灦鏋勪笅杩樻湁浜哄憳锛岃鍏堝皢浜哄憳绉诲嚭璇ユ灦鏋�");
+        }
+        departmentMapper.deleteById(id);
+        return true;
     }
 
     /**

--
Gitblit v1.9.3