Quellcode durchsuchen

1、选择员工信息列表接口调整

dongpo vor 7 Monaten
Ursprung
Commit
a0580be09a

+ 18 - 23
yudao-module-personnel/yudao-module-employee-biz/src/main/java/cn/iocoder/yudao/module/employee/controller/admin/info/EmployeeInfoController.java

@@ -21,6 +21,7 @@ import cn.iocoder.yudao.module.system.service.dept.DeptService;
 import cn.iocoder.yudao.module.system.service.dept.PostService;
 import io.swagger.v3.oas.annotations.Operation;
 import io.swagger.v3.oas.annotations.Parameter;
+import io.swagger.v3.oas.annotations.Parameters;
 import io.swagger.v3.oas.annotations.tags.Tag;
 import org.springframework.security.access.prepost.PreAuthorize;
 import org.springframework.validation.annotation.Validated;
@@ -134,40 +135,34 @@ public class EmployeeInfoController {
 
 
     @GetMapping("/listForSelectEmployee")
-    @Operation(summary = "获得可选择的员工信息列表用于选择业务人")
+    @Operation(summary = "获得可选择的员工信息列表,用于选择业务人或审批人等")
+    @Parameter(name = "auth", description = "是否有权限,0无 1有", required = true)
+    @Parameter(name = "name", description = "员工姓名", required = false)
+    @Parameter(name = "deptId", description = "部门ID", required = false)
+    @Parameter(name = "phone", description = "员工手机号", required = false)
     // @PreAuthorize("@ss.hasPermission('employee:info:listForSelectEmployee')")
-    public CommonResult<List<EmployeeInfoRespVO>> getInfoListForSelectEmployee() {
-        List<EmployeeInfoDO> listResult = infoService.getInfoListForSelectEmployee();
+    public CommonResult<List<EmployeeInfoRespVO>> getInfoListForSelectEmployee(@RequestParam(value = "auth", required = false) String auth,
+                                                                               @RequestParam(value = "name", required = false) String name,
+                                                                               @RequestParam(value = "deptId", required = false) Long deptId,
+                                                                               @RequestParam(value = "phone", required = false) String phone) {
+        // 查询员工信息列表
+        List<EmployeeInfoDO> listResult = infoService.getInfoListForSelectEmployee(auth, name, deptId, phone);
+        // 如果查询结果为空,则返回一个空列表
         if (CollUtil.isEmpty(listResult)) {
             return success(new ArrayList<>());
         }
-        // 拼接数据
-        Map<Long, DeptDO> deptMap = deptService.getDeptMap(
-                convertList(listResult, EmployeeInfoDO::getDeptId));
-
-        List<Long> postIdList = listResult.stream().map(EmployeeInfoDO::getPostId).collect(Collectors.toList());
-        List<PostDO> postList = postService.getPostList(postIdList);
-        Map<Long, PostDO> postMap = CollectionUtils.convertMap(postList, PostDO::getId);
-
-        return success(EmployeeConvert.INSTANCE.convertList(listResult, deptMap, postMap));
-    }
-
-    @GetMapping("/listForSelectAssigns")
-    @Operation(summary = "获得员工信息列表用于选择审批人等")
-    // @PreAuthorize("@ss.hasPermission('employee:info:listForSelectAssigns')")
-    public CommonResult<List<EmployeeInfoRespVO>> getInfoListForSelectAssigns() {
-        List<EmployeeInfoDO> listResult = infoService.getInfoListForSelectAssigns();
-        if (CollUtil.isEmpty(listResult)) {
-            return success(new ArrayList<>());
-        }
-        // 拼接数据
+        // 将查询结果中的部门ID映射为部门信息
         Map<Long, DeptDO> deptMap = deptService.getDeptMap(
                 convertList(listResult, EmployeeInfoDO::getDeptId));
 
+        // 获取所有员工的岗位ID列表
         List<Long> postIdList = listResult.stream().map(EmployeeInfoDO::getPostId).collect(Collectors.toList());
+        // 根据岗位ID列表查询岗位信息
         List<PostDO> postList = postService.getPostList(postIdList);
+        // 将岗位ID与岗位信息映射
         Map<Long, PostDO> postMap = CollectionUtils.convertMap(postList, PostDO::getId);
 
+        // 将员工信息、部门信息和岗位信息合并转换为前端所需的格式,并返回
         return success(EmployeeConvert.INSTANCE.convertList(listResult, deptMap, postMap));
     }
 

+ 2 - 10
yudao-module-personnel/yudao-module-employee-biz/src/main/java/cn/iocoder/yudao/module/employee/service/info/EmployeeInfoService.java

@@ -89,19 +89,11 @@ public interface EmployeeInfoService {
     PageResult<EmployeeInfoDO> getInfoPage(EmployeeInfoPageReqVO pageReqVO);
 
     /**
-     * 获得可选择的员工信息列表,用于选择业务人
+     * 获得可选择的员工信息列表,用于选择业务人,审批人等
      *
      * @return 可选择的员工信息列表
      */
-    List<EmployeeInfoDO> getInfoListForSelectEmployee();
-
-    /**
-     * 获得员工信息列表,用于选择审批人
-     *
-     * @return 员工信息列表
-     */
-    List<EmployeeInfoDO> getInfoListForSelectAssigns();
-
+    List<EmployeeInfoDO> getInfoListForSelectEmployee(String auth, String name, Long deptId, String phone);
 
     /**
      *

+ 12 - 10
yudao-module-personnel/yudao-module-employee-biz/src/main/java/cn/iocoder/yudao/module/employee/service/info/EmployeeInfoServiceImpl.java

@@ -2,6 +2,7 @@ package cn.iocoder.yudao.module.employee.service.info;
 
 import cn.hutool.core.collection.CollUtil;
 import cn.hutool.core.util.IdUtil;
+import cn.hutool.core.util.StrUtil;
 import cn.iocoder.yudao.framework.common.pojo.PageResult;
 import cn.iocoder.yudao.framework.common.util.collection.CollectionUtils;
 import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
@@ -205,17 +206,18 @@ public class EmployeeInfoServiceImpl implements EmployeeInfoService {
     }
 
     @Override
-    public List<EmployeeInfoDO> getInfoListForSelectEmployee() {
-        List<EmployeeInfoDO> employeeInfoDOList = infoMapper.selectList();
-        if (CollUtil.isEmpty(employeeInfoDOList)) {
-            return Collections.emptyList();
+    public List<EmployeeInfoDO> getInfoListForSelectEmployee(String auth, String name, Long deptId, String phone) {
+        LambdaQueryWrapper<EmployeeInfoDO> lambdaQueryWrapper = new LambdaQueryWrapper<>();
+        if (StrUtil.isNotBlank(name)) {
+            lambdaQueryWrapper.like(EmployeeInfoDO::getName, name);
         }
-        return employeeInfoDOList;
-    }
-
-    @Override
-    public List<EmployeeInfoDO> getInfoListForSelectAssigns() {
-        List<EmployeeInfoDO> employeeInfoDOList = infoMapper.selectList();
+        if (deptId != null) {
+            lambdaQueryWrapper.eq(EmployeeInfoDO::getDeptId, deptId);
+        }
+        if (StrUtil.isNotBlank(phone)) {
+            lambdaQueryWrapper.like(EmployeeInfoDO::getPhone, phone);
+        }
+        List<EmployeeInfoDO> employeeInfoDOList = infoMapper.selectList(lambdaQueryWrapper);
         if (CollUtil.isEmpty(employeeInfoDOList)) {
             return Collections.emptyList();
         }