Jelajahi Sumber

Merge remote-tracking branch 'origin/lc_saas' into master_20240722

dongpo 7 bulan lalu
induk
melakukan
f55ee4ba6c

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

@@ -3,6 +3,7 @@ package cn.iocoder.yudao.module.employee.controller.admin.info;
 
 
 import java.util.*;
 import java.util.*;
 import java.io.IOException;
 import java.io.IOException;
+import java.util.stream.Collectors;
 
 
 
 
 import cn.hutool.core.collection.CollUtil;
 import cn.hutool.core.collection.CollUtil;
@@ -10,6 +11,7 @@ import cn.iocoder.yudao.framework.apilog.core.annotation.ApiAccessLog;
 import cn.iocoder.yudao.framework.common.pojo.CommonResult;
 import cn.iocoder.yudao.framework.common.pojo.CommonResult;
 import cn.iocoder.yudao.framework.common.pojo.PageParam;
 import cn.iocoder.yudao.framework.common.pojo.PageParam;
 import cn.iocoder.yudao.framework.common.pojo.PageResult;
 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;
 import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
 import cn.iocoder.yudao.framework.excel.core.util.ExcelUtils;
 import cn.iocoder.yudao.framework.excel.core.util.ExcelUtils;
 import cn.iocoder.yudao.module.employee.controller.admin.info.vo.*;
 import cn.iocoder.yudao.module.employee.controller.admin.info.vo.*;
@@ -17,7 +19,9 @@ import cn.iocoder.yudao.module.employee.convert.info.EmployeeConvert;
 import cn.iocoder.yudao.module.employee.dal.dataobject.info.EmployeeInfoDO;
 import cn.iocoder.yudao.module.employee.dal.dataobject.info.EmployeeInfoDO;
 import cn.iocoder.yudao.module.employee.service.info.EmployeeInfoService;
 import cn.iocoder.yudao.module.employee.service.info.EmployeeInfoService;
 import cn.iocoder.yudao.module.system.dal.dataobject.dept.DeptDO;
 import cn.iocoder.yudao.module.system.dal.dataobject.dept.DeptDO;
+import cn.iocoder.yudao.module.system.dal.dataobject.dept.PostDO;
 import cn.iocoder.yudao.module.system.service.dept.DeptService;
 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.Operation;
 import io.swagger.v3.oas.annotations.Parameter;
 import io.swagger.v3.oas.annotations.Parameter;
 import io.swagger.v3.oas.annotations.tags.Tag;
 import io.swagger.v3.oas.annotations.tags.Tag;
@@ -44,6 +48,9 @@ public class EmployeeInfoController {
     @Resource
     @Resource
     private DeptService deptService;
     private DeptService deptService;
 
 
+    @Resource
+    private PostService postService;
+
     @PostMapping("/create")
     @PostMapping("/create")
     @Operation(summary = "创建员工信息")
     @Operation(summary = "创建员工信息")
     @PreAuthorize("@ss.hasPermission('employee:info:create')")
     @PreAuthorize("@ss.hasPermission('employee:info:create')")
@@ -88,10 +95,49 @@ public class EmployeeInfoController {
         // 拼接数据
         // 拼接数据
         Map<Long, DeptDO> deptMap = deptService.getDeptMap(
         Map<Long, DeptDO> deptMap = deptService.getDeptMap(
                 convertList(pageResult.getList(), EmployeeInfoDO::getDeptId));
                 convertList(pageResult.getList(), EmployeeInfoDO::getDeptId));
-        return success(new PageResult<>(EmployeeConvert.INSTANCE.convertList(pageResult.getList(), deptMap),
+        return success(new PageResult<>(EmployeeConvert.INSTANCE.convertList(pageResult.getList(), deptMap, null),
                 pageResult.getTotal()));
                 pageResult.getTotal()));
     }
     }
 
 
+
+    @GetMapping("/listForSelectEmployee")
+    @Operation(summary = "获得可选择的员工信息列表用于选择业务人")
+    // @PreAuthorize("@ss.hasPermission('employee:info:listForSelectEmployee')")
+    public CommonResult<List<EmployeeInfoRespVO>> getInfoListForSelectEmployee() {
+        List<EmployeeInfoDO> listResult = infoService.getInfoListForSelectEmployee();
+        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<>());
+        }
+        // 拼接数据
+        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("/export-excel")
     @GetMapping("/export-excel")
     @Operation(summary = "导出员工信息 Excel")
     @Operation(summary = "导出员工信息 Excel")
     @PreAuthorize("@ss.hasPermission('employee:info:export')")
     @PreAuthorize("@ss.hasPermission('employee:info:export')")

+ 8 - 3
yudao-module-personnel/yudao-module-employee-biz/src/main/java/cn/iocoder/yudao/module/employee/convert/info/EmployeeConvert.java

@@ -29,17 +29,22 @@ public interface EmployeeConvert {
 
 
     EmployeeConvert INSTANCE = Mappers.getMapper(EmployeeConvert.class);
     EmployeeConvert INSTANCE = Mappers.getMapper(EmployeeConvert.class);
 
 
-    default List<EmployeeInfoRespVO> convertList(List<EmployeeInfoDO> list, Map<Long, DeptDO> deptMap) {
+    default List<EmployeeInfoRespVO> convertList(List<EmployeeInfoDO> list,
+                                                 Map<Long, DeptDO> deptMap,
+                                                 Map<Long, PostDO> postMap) {
         return list.stream()
         return list.stream()
-                .map(emp -> convert(emp, deptMap.getOrDefault(emp.getDeptId(), null)))
+                .map(emp -> convert(emp, deptMap.getOrDefault(emp.getDeptId(), null), postMap.getOrDefault(emp.getPostId(), null)))
                 .collect(Collectors.toList());
                 .collect(Collectors.toList());
     }
     }
 
 
-    default EmployeeInfoRespVO convert(EmployeeInfoDO emp, DeptDO dept) {
+    default EmployeeInfoRespVO convert(EmployeeInfoDO emp, DeptDO dept, PostDO post) {
         EmployeeInfoRespVO vo = BeanUtils.toBean(emp, EmployeeInfoRespVO.class);
         EmployeeInfoRespVO vo = BeanUtils.toBean(emp, EmployeeInfoRespVO.class);
         if (dept != null) {
         if (dept != null) {
             vo.setDeptName(dept.getName());
             vo.setDeptName(dept.getName());
         }
         }
+        if (post != null) {
+            vo.setPosition(post.getName());
+        }
         return vo;
         return vo;
     }
     }
 
 

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

@@ -80,6 +80,21 @@ public interface EmployeeInfoService {
      */
      */
     PageResult<EmployeeInfoDO> getInfoPage(EmployeeInfoPageReqVO pageReqVO);
     PageResult<EmployeeInfoDO> getInfoPage(EmployeeInfoPageReqVO pageReqVO);
 
 
+    /**
+     * 获得可选择的员工信息列表,用于选择业务人
+     *
+     * @return 可选择的员工信息列表
+     */
+    List<EmployeeInfoDO> getInfoListForSelectEmployee();
+
+    /**
+     * 获得员工信息列表,用于选择审批人
+     *
+     * @return 员工信息列表
+     */
+    List<EmployeeInfoDO> getInfoListForSelectAssigns();
+
+
     /**
     /**
      *
      *
      *
      *

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

@@ -124,6 +124,24 @@ public class EmployeeInfoServiceImpl implements EmployeeInfoService {
         return infoMapper.selectPage(pageReqVO);
         return infoMapper.selectPage(pageReqVO);
     }
     }
 
 
+    @Override
+    public List<EmployeeInfoDO> getInfoListForSelectEmployee() {
+        List<EmployeeInfoDO> employeeInfoDOList = infoMapper.selectList();
+        if (CollUtil.isEmpty(employeeInfoDOList)) {
+            return Collections.emptyList();
+        }
+        return employeeInfoDOList;
+    }
+
+    @Override
+    public List<EmployeeInfoDO> getInfoListForSelectAssigns() {
+        List<EmployeeInfoDO> employeeInfoDOList = infoMapper.selectList();
+        if (CollUtil.isEmpty(employeeInfoDOList)) {
+            return Collections.emptyList();
+        }
+        return employeeInfoDOList;
+    }
+
     @Override
     @Override
     @TenantIgnore
     @TenantIgnore
     public EmployeeInfoDO getInfoByUserIdAndTenantId(Long userId, Long tenantId) {
     public EmployeeInfoDO getInfoByUserIdAndTenantId(Long userId, Long tenantId) {