فهرست منبع

人员管理新增部门名称回显功能

fanghuisheng 1 هفته پیش
والد
کامیت
657ac7d79e

+ 38 - 0
base-modules/service-system/service-system-biz/src/main/java/com/usky/system/controller/web/SysPersonController.java

@@ -5,9 +5,11 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.usky.common.core.exception.BusinessException;
 import com.usky.common.core.bean.ApiResult;
+import com.usky.system.domain.SysDept;
 import com.usky.system.controller.web.page.TableDataInfo;
 import com.usky.system.domain.SysPerson;
 import com.usky.system.domain.SysUserPerson;
+import com.usky.system.service.ISysDeptService;
 import com.usky.system.service.SysPersonService;
 import com.usky.system.service.SysUserPersonService;
 import com.usky.common.core.util.StringUtils;
@@ -38,6 +40,8 @@ public class SysPersonController extends BaseController {
     private SysPersonService sysPersonService;
     @Autowired
     private SysUserPersonService sysUserPersonService;
+    @Autowired
+    private ISysDeptService sysDeptService;
 
     /**
      * 人员列表(分页)
@@ -57,6 +61,33 @@ public class SysPersonController extends BaseController {
                 .like(person != null && StringUtils.isNotBlank(person.getFullName()),
                         SysPerson::getFullName, person.getFullName());
         List<SysPerson> list = sysPersonService.list(queryWrapper);
+
+        // 回显部门名称
+        if (list != null && !list.isEmpty()) {
+            List<Long> deptIds = list.stream()
+                    .map(SysPerson::getDeptId)
+                    .filter(Objects::nonNull)
+                    .distinct()
+                    .collect(Collectors.toList());
+            if (!deptIds.isEmpty()) {
+                List<SysDept> depts = sysDeptService.selectDeptByIds(deptIds);
+                if (depts != null && !depts.isEmpty()) {
+                    Map<Long, String> deptNameMap = depts.stream()
+                            .collect(Collectors.toMap(
+                                    SysDept::getDeptId,
+                                    SysDept::getDeptName,
+                                    (n1, n2) -> n1
+                            ));
+                    list.forEach(p -> {
+                        String deptName = deptNameMap.get(p.getDeptId());
+                        if (deptName != null) {
+                            p.setDeptName(deptName);
+                        }
+                    });
+                }
+            }
+        }
+
         // 回显每个人员对应的 userId
         if (list != null && !list.isEmpty()) {
             List<Integer> personIds = list.stream()
@@ -102,6 +133,13 @@ public class SysPersonController extends BaseController {
             if (userPerson != null) {
                 person.setUserId(userPerson.getUserId());
             }
+
+            if (person.getDeptId() != null) {
+                SysDept dept = sysDeptService.selectDeptById(person.getDeptId());
+                if (dept != null) {
+                    person.setDeptName(dept.getDeptName());
+                }
+            }
         }
         return ApiResult.success(person);
     }

+ 5 - 0
base-modules/service-system/service-system-biz/src/main/java/com/usky/system/domain/SysPerson.java

@@ -145,5 +145,10 @@ public class SysPerson implements Serializable {
     @TableField(exist = false)
     private Long userId;
 
+    /**
+     * 部门名称(非持久化字段,仅用于回显)
+     */
+    @TableField(exist = false)
+    private String deptName;
 
 }

+ 8 - 0
base-modules/service-system/service-system-biz/src/main/java/com/usky/system/mapper/SysDeptMapper.java

@@ -46,6 +46,14 @@ public interface SysDeptMapper extends BaseMapper<SysDept>
      */
     public SysDept selectDeptById(@Param("deptId") Long deptId);
 
+    /**
+     * 根据部门ID列表批量查询部门信息
+     *
+     * @param deptIds 部门ID列表
+     * @return 部门信息列表
+     */
+    public List<SysDept> selectDeptByIds(@Param("deptIds") List<Long> deptIds);
+
     /**
      * 根据ID查询所有子部门
      * 

+ 8 - 0
base-modules/service-system/service-system-biz/src/main/java/com/usky/system/service/ISysDeptService.java

@@ -70,6 +70,14 @@ public interface ISysDeptService extends IService<SysDept>
      */
     public SysDept selectDeptById(Long deptId);
 
+    /**
+     * 根据部门ID列表批量查询部门信息
+     *
+     * @param deptIds 部门ID列表
+     * @return 部门信息列表
+     */
+    public List<SysDept> selectDeptByIds(List<Long> deptIds);
+
     /**
      * 根据ID查询所有子部门(正常状态)
      * 

+ 8 - 4
base-modules/service-system/service-system-biz/src/main/java/com/usky/system/service/impl/SysDeptServiceImpl.java

@@ -18,8 +18,6 @@ import com.usky.system.service.ISysDeptService;
 import com.usky.system.service.vo.TreeNode;
 import com.usky.system.service.vo.TreeSelect;
 import com.usky.system.service.vo.UserPostVo;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
@@ -35,8 +33,6 @@ import java.util.stream.Collectors;
 @Service
 public class SysDeptServiceImpl extends AbstractCrudService<SysDeptMapper, SysDept> implements ISysDeptService {
 
-    private static final Logger log = LoggerFactory.getLogger(SysDeptServiceImpl.class);//还原代码
-
     @Autowired
     private SysDeptMapper deptMapper;
 
@@ -212,6 +208,14 @@ public class SysDeptServiceImpl extends AbstractCrudService<SysDeptMapper, SysDe
         return deptMapper.selectDeptById(deptId);
     }
 
+    @Override
+    public List<SysDept> selectDeptByIds(List<Long> deptIds) {
+        if (deptIds == null || deptIds.isEmpty()) {
+            return Collections.emptyList();
+        }
+        return deptMapper.selectDeptByIds(deptIds);
+    }
+
     /**
      * 根据ID查询所有子部门(正常状态)
      *

+ 9 - 0
base-modules/service-system/service-system-biz/src/main/resources/mapper/system/SysDeptMapper.xml

@@ -83,6 +83,15 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
 		<include refid="selectDeptVo"/>
 		where dept_id = #{deptId}
 	</select>
+
+	<select id="selectDeptByIds" resultMap="SysDeptResult">
+		<include refid="selectDeptVo"/>
+		where d.del_flag = '0'
+		and d.dept_id in
+		<foreach collection="deptIds" item="deptId" open="(" separator="," close=")">
+			#{deptId}
+		</foreach>
+	</select>
     
     <select id="checkDeptExistUser" parameterType="Long" resultType="int">
 		select count(1) from sys_user where dept_id = #{deptId} and del_flag = '0'