Explorar el Código

1、报销类型、费用项目分页列表创建人名称

dongpo hace 1 año
padre
commit
912418710c

+ 24 - 1
yudao-module-finance/yudao-module-expense-biz/src/main/java/cn/iocoder/yudao/module/expense/controller/admin/expenseitem/ExpenseItemController.java

@@ -1,11 +1,15 @@
 package cn.iocoder.yudao.module.expense.controller.admin.expenseitem;
 
+import cn.hutool.core.collection.CollectionUtil;
 import cn.iocoder.yudao.framework.apilog.core.annotation.ApiAccessLog;
 import cn.iocoder.yudao.framework.common.pojo.CommonResult;
 import cn.iocoder.yudao.framework.common.pojo.PageParam;
 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.excel.core.util.ExcelUtils;
+import cn.iocoder.yudao.module.employee.api.EmployeeApi;
+import cn.iocoder.yudao.module.employee.api.dto.EmployeeRespDTO;
 import cn.iocoder.yudao.module.expense.controller.admin.expenseitem.vo.ExpenseItemPageReqVO;
 import cn.iocoder.yudao.module.expense.controller.admin.expenseitem.vo.ExpenseItemRespVO;
 import cn.iocoder.yudao.module.expense.controller.admin.expenseitem.vo.ExpenseItemSaveReqVO;
@@ -23,6 +27,9 @@ import javax.servlet.http.HttpServletResponse;
 import javax.validation.Valid;
 import java.io.IOException;
 import java.util.List;
+import java.util.Map;
+import java.util.Objects;
+import java.util.stream.Collectors;
 
 import static cn.iocoder.yudao.framework.apilog.core.enums.OperateTypeEnum.EXPORT;
 import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success;
@@ -36,6 +43,9 @@ public class ExpenseItemController {
     @Resource
     private ExpenseItemService itemService;
 
+    @Resource
+    private EmployeeApi employeeApi;
+
     @PostMapping("/create")
     @Operation(summary = "创建报销费用项目信息")
     // @PreAuthorize("@ss.hasPermission('expense:item:create')")
@@ -74,7 +84,20 @@ public class ExpenseItemController {
     // @PreAuthorize("@ss.hasPermission('expense:item:query')")
     public CommonResult<PageResult<ExpenseItemRespVO>> getItemPage(@Valid @ParameterObject ExpenseItemPageReqVO pageReqVO) {
         PageResult<ExpenseItemDO> pageResult = itemService.getItemPage(pageReqVO);
-        return success(BeanUtils.toBean(pageResult, ExpenseItemRespVO.class));
+        PageResult<ExpenseItemRespVO> voPageResult = BeanUtils.toBean(pageResult, ExpenseItemRespVO.class);
+        List<ExpenseItemRespVO> list = voPageResult.getList();
+        if (CollectionUtil.isNotEmpty(list)) {
+            List<Long> userIdList = list.stream().map(ExpenseItemRespVO::getCreator).collect(Collectors.toList());
+            List<EmployeeRespDTO> employeeRespDTOList = employeeApi.getEmployeeListByUserIds(userIdList);
+            Map<Long, EmployeeRespDTO> longEmployeeRespDTOMap = CollectionUtils.convertMap(employeeRespDTOList, EmployeeRespDTO::getUserId);
+            for (ExpenseItemRespVO expenseItemRespVO : list) {
+                EmployeeRespDTO employeeRespDTO = longEmployeeRespDTOMap.get(expenseItemRespVO.getCreator());
+                if (Objects.nonNull(employeeRespDTO)) {
+                    expenseItemRespVO.setCreateEmployeeName(employeeRespDTO.getName());
+                }
+            }
+        }
+        return success(voPageResult);
     }
 
     @GetMapping("/export-excel")

+ 12 - 5
yudao-module-finance/yudao-module-expense-biz/src/main/java/cn/iocoder/yudao/module/expense/controller/admin/expenseitem/vo/ExpenseItemRespVO.java

@@ -1,12 +1,11 @@
 package cn.iocoder.yudao.module.expense.controller.admin.expenseitem.vo;
 
+import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
+import com.alibaba.excel.annotation.ExcelProperty;
 import io.swagger.v3.oas.annotations.media.Schema;
-import lombok.*;
-import java.util.*;
-import java.util.*;
-import org.springframework.format.annotation.DateTimeFormat;
+import lombok.Data;
+
 import java.time.LocalDateTime;
-import com.alibaba.excel.annotation.*;
 
 @Schema(description = "管理后台 - 报销费用项目信息 Response VO")
 @Data
@@ -37,6 +36,14 @@ public class ExpenseItemRespVO {
     @ExcelProperty("备注")
     private String remarks;
 
+    @Schema(description = "创建者")
+    @ExcelProperty("创建者id")
+    private Long creator;
+
+    @Schema(description = "创建员工姓名")
+    @ExcelProperty("创建员工id")
+    private String createEmployeeName;
+
     @Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED)
     @ExcelProperty("创建时间")
     private LocalDateTime createTime;

+ 24 - 1
yudao-module-finance/yudao-module-expense-biz/src/main/java/cn/iocoder/yudao/module/expense/controller/admin/expensetype/ExpenseTypeController.java

@@ -1,11 +1,15 @@
 package cn.iocoder.yudao.module.expense.controller.admin.expensetype;
 
+import cn.hutool.core.collection.CollectionUtil;
 import cn.iocoder.yudao.framework.apilog.core.annotation.ApiAccessLog;
 import cn.iocoder.yudao.framework.common.pojo.CommonResult;
 import cn.iocoder.yudao.framework.common.pojo.PageParam;
 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.excel.core.util.ExcelUtils;
+import cn.iocoder.yudao.module.employee.api.EmployeeApi;
+import cn.iocoder.yudao.module.employee.api.dto.EmployeeRespDTO;
 import cn.iocoder.yudao.module.expense.controller.admin.expensetype.vo.ExpenseTypePageReqVO;
 import cn.iocoder.yudao.module.expense.controller.admin.expensetype.vo.ExpenseTypeRespVO;
 import cn.iocoder.yudao.module.expense.controller.admin.expensetype.vo.ExpenseTypeSaveReqVO;
@@ -23,6 +27,9 @@ import javax.servlet.http.HttpServletResponse;
 import javax.validation.Valid;
 import java.io.IOException;
 import java.util.List;
+import java.util.Map;
+import java.util.Objects;
+import java.util.stream.Collectors;
 
 import static cn.iocoder.yudao.framework.apilog.core.enums.OperateTypeEnum.EXPORT;
 import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success;
@@ -36,6 +43,9 @@ public class ExpenseTypeController {
     @Resource
     private ExpenseTypeService typeService;
 
+    @Resource
+    private EmployeeApi employeeApi;
+
     @PostMapping("/create")
     @Operation(summary = "创建报销类型信息")
     // @PreAuthorize("@ss.hasPermission('expense:type:create')")
@@ -74,7 +84,20 @@ public class ExpenseTypeController {
     // @PreAuthorize("@ss.hasPermission('expense:type:query')")
     public CommonResult<PageResult<ExpenseTypeRespVO>> getTypePage(@Valid ExpenseTypePageReqVO pageReqVO) {
         PageResult<ExpenseTypeDO> pageResult = typeService.getTypePage(pageReqVO);
-        return success(BeanUtils.toBean(pageResult, ExpenseTypeRespVO.class));
+        PageResult<ExpenseTypeRespVO> voPageResult = BeanUtils.toBean(pageResult, ExpenseTypeRespVO.class);
+        List<ExpenseTypeRespVO> list = voPageResult.getList();
+        if (CollectionUtil.isNotEmpty(list)) {
+            List<Long> userIdList = list.stream().map(ExpenseTypeRespVO::getCreator).collect(Collectors.toList());
+            List<EmployeeRespDTO> employeeRespDTOList = employeeApi.getEmployeeListByUserIds(userIdList);
+            Map<Long, EmployeeRespDTO> longEmployeeRespDTOMap = CollectionUtils.convertMap(employeeRespDTOList, EmployeeRespDTO::getUserId);
+            for (ExpenseTypeRespVO expenseTypeRespVO : list) {
+                EmployeeRespDTO employeeRespDTO = longEmployeeRespDTOMap.get(expenseTypeRespVO.getCreator());
+                if (Objects.nonNull(employeeRespDTO)) {
+                    expenseTypeRespVO.setCreateEmployeeName(employeeRespDTO.getName());
+                }
+            }
+        }
+        return success(voPageResult);
     }
 
     @GetMapping("/list")

+ 12 - 5
yudao-module-finance/yudao-module-expense-biz/src/main/java/cn/iocoder/yudao/module/expense/controller/admin/expensetype/vo/ExpenseTypeRespVO.java

@@ -1,12 +1,11 @@
 package cn.iocoder.yudao.module.expense.controller.admin.expensetype.vo;
 
+import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
+import com.alibaba.excel.annotation.ExcelProperty;
 import io.swagger.v3.oas.annotations.media.Schema;
-import lombok.*;
-import java.util.*;
-import java.util.*;
-import org.springframework.format.annotation.DateTimeFormat;
+import lombok.Data;
+
 import java.time.LocalDateTime;
-import com.alibaba.excel.annotation.*;
 
 @Schema(description = "管理后台 - 报销类型信息 Response VO")
 @Data
@@ -29,6 +28,14 @@ public class ExpenseTypeRespVO {
     @ExcelProperty("备注")
     private String remarks;
 
+    @Schema(description = "创建者")
+    @ExcelProperty("创建者id")
+    private Long creator;
+
+    @Schema(description = "创建员工姓名")
+    @ExcelProperty("创建员工id")
+    private String createEmployeeName;
+
     @Schema(description = "创建时间")
     @ExcelProperty("创建时间")
     private LocalDateTime createTime;

+ 6 - 2
yudao-module-personnel/yudao-module-employee-api/src/main/java/cn/iocoder/yudao/module/employee/api/dto/EmployeeRespDTO.java

@@ -1,8 +1,7 @@
 package cn.iocoder.yudao.module.employee.api.dto;
 
-import lombok.*;
+import lombok.Data;
 
-import java.math.BigDecimal;
 import java.time.LocalDate;
 
 /**
@@ -91,4 +90,9 @@ public class EmployeeRespDTO {
      */
     private LocalDate contractEndDate;
 
+    /**
+     * 用户id
+     */
+    private Long userId;
+
 }