Browse Source

1、7665-报销列表、用印列表、报销类型、费用项目-附件问题、导出字段确定

dongpo 6 months ago
parent
commit
04c74e5bb0
11 changed files with 156 additions and 78 deletions
  1. 1 0
      yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/oa/expense/vo/OaExpenseRespVO.java
  2. 60 45
      yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/stamp/stampinfo/OaStampInfoController.java
  3. 7 0
      yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/stamp/stampinfo/vo/OaStampInfoRespVO.java
  4. 3 0
      yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/stamp/stampinfo/vo/OaStampInfoSaveReqVO.java
  5. 12 1
      yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/service/stamp/stampinfo/OaStampInfoServiceImpl.java
  6. 11 0
      yudao-module-finance/yudao-module-expense-biz/src/main/java/cn/iocoder/yudao/module/expense/controller/admin/expenseinfo/ExpenseInfoController.java
  7. 42 32
      yudao-module-finance/yudao-module-expense-biz/src/main/java/cn/iocoder/yudao/module/expense/controller/admin/expenseinfo/vo/ExpenseInfoRespVO.java
  8. 3 0
      yudao-module-finance/yudao-module-expense-biz/src/main/java/cn/iocoder/yudao/module/expense/controller/admin/expenseinfo/vo/ExpenseInfoSaveReqVO.java
  9. 3 0
      yudao-module-finance/yudao-module-expense-biz/src/main/java/cn/iocoder/yudao/module/expense/controller/admin/expenseitem/vo/ExpenseItemRespVO.java
  10. 3 0
      yudao-module-finance/yudao-module-expense-biz/src/main/java/cn/iocoder/yudao/module/expense/controller/admin/expensetype/vo/ExpenseTypeRespVO.java
  11. 11 0
      yudao-module-finance/yudao-module-expense-biz/src/main/java/cn/iocoder/yudao/module/expense/service/expenseinfo/ExpenseInfoServiceImpl.java

+ 1 - 0
yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/oa/expense/vo/OaExpenseRespVO.java

@@ -118,6 +118,7 @@ public class OaExpenseRespVO {
 
     @Schema(description = "附件id列表")
     private List<Long> fileIdList;
+
     @Schema(description = "审批记录列表")
     private List<BpmTaskRespVO> auditRecordList;
 

+ 60 - 45
yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/stamp/stampinfo/OaStampInfoController.java

@@ -13,6 +13,8 @@ import cn.iocoder.yudao.module.bpm.dal.dataobject.stamp.stampinfo.OaStampInfoDO;
 import cn.iocoder.yudao.module.bpm.service.stamp.stampinfo.OaStampInfoService;
 import cn.iocoder.yudao.module.employee.api.EmployeeApi;
 import cn.iocoder.yudao.module.employee.api.dto.EmployeeRespDTO;
+import cn.iocoder.yudao.module.infra.api.file.FileApi;
+import cn.iocoder.yudao.module.infra.api.file.dto.FileDTO;
 import cn.iocoder.yudao.module.system.api.dept.DeptApi;
 import cn.iocoder.yudao.module.system.api.dept.PostApi;
 import cn.iocoder.yudao.module.system.api.dept.dto.DeptRespDTO;
@@ -30,6 +32,7 @@ import javax.validation.Valid;
 import java.io.IOException;
 import java.util.List;
 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;
@@ -52,6 +55,9 @@ public class OaStampInfoController {
     @Resource
     private PostApi postApi;
 
+    @Resource
+    private FileApi fileApi;
+
     @PostMapping("/create")
     @Operation(summary = "创建用印信息")
     // @PreAuthorize("@ss.hasPermission('bpm:oa-stamp-info:create')")
@@ -92,52 +98,61 @@ public class OaStampInfoController {
     public CommonResult<OaStampInfoRespVO> getOaStampInfo(@RequestParam("id") Long id) {
         OaStampInfoDO oaStampInfo = oaStampInfoService.getOaStampInfo(id);
         OaStampInfoRespVO oaStampInfoRespVO = BeanUtils.toBean(oaStampInfo, OaStampInfoRespVO.class);
-        // 状态描述
-        String status = oaStampInfoRespVO.getStatus();
-        switch (status) {
-            case "0":
-                oaStampInfoRespVO.setStatusDesc("已完成");
-                break;
-            case "1":
-                oaStampInfoRespVO.setStatusDesc("已作废");
-                break;
-            default:
-                oaStampInfoRespVO.setStatusDesc("未知");
-                break;
-        }
-        // 数据来源描述
-        String infoSource = oaStampInfoRespVO.getInfoSource();
-        switch (infoSource) {
-            case "0":
-                oaStampInfoRespVO.setInfoSourceDesc("流程添加");
-                break;
-            case "1":
-                oaStampInfoRespVO.setInfoSourceDesc("手动添加");
-                break;
-            default:
-                oaStampInfoRespVO.setInfoSourceDesc("未知");
-                break;
+        if (oaStampInfo != null) {
+            // 状态描述
+            String status = oaStampInfoRespVO.getStatus();
+            switch (status) {
+                case "0":
+                    oaStampInfoRespVO.setStatusDesc("已完成");
+                    break;
+                case "1":
+                    oaStampInfoRespVO.setStatusDesc("已作废");
+                    break;
+                default:
+                    oaStampInfoRespVO.setStatusDesc("未知");
+                    break;
+            }
+            // 数据来源描述
+            String infoSource = oaStampInfoRespVO.getInfoSource();
+            switch (infoSource) {
+                case "0":
+                    oaStampInfoRespVO.setInfoSourceDesc("流程添加");
+                    break;
+                case "1":
+                    oaStampInfoRespVO.setInfoSourceDesc("手动添加");
+                    break;
+                default:
+                    oaStampInfoRespVO.setInfoSourceDesc("未知");
+                    break;
+            }
+            // 创建人名字
+            Long createEmployeeId = oaStampInfoRespVO.getCreateEmployeeId();
+            EmployeeRespDTO createEmployee = employeeApi.getEmployeeById(createEmployeeId);
+            oaStampInfoRespVO.setCreateEmployeeName(createEmployee.getName());
+            // 用印人信息
+            Long employeeId = oaStampInfoRespVO.getEmployeeId();
+            // AdminUserRespDTO employee = adminUserApi.getUser(employeeId);
+            EmployeeRespDTO employee = employeeApi.getEmployeeById(employeeId);
+            oaStampInfoRespVO.setEmployeeName(employee.getName());
+            oaStampInfoRespVO.setEmployeePhone(employee.getPhone());
+            // 职位
+            Long postId = oaStampInfoRespVO.getPostId();
+            PostRespDTO post = postApi.getPost(postId);
+            if (Objects.nonNull(post)) {
+                oaStampInfoRespVO.setPosition(post.getName());
+            }
+            // 部门名称
+            Long deptId = oaStampInfoRespVO.getDeptId();
+            DeptRespDTO dept = deptApi.getDept(deptId);
+            oaStampInfoRespVO.setDeptName(dept.getName());
+
+            // 附件
+            List<FileDTO> fileDTOListByBiz = fileApi.getFileDTOListByBiz(oaStampInfo.getStampUuid());
+            oaStampInfoRespVO.setFileList(fileDTOListByBiz);
+            List<Long> fileIdList = fileDTOListByBiz.stream().map(FileDTO::getId).collect(Collectors.toList());
+            oaStampInfoRespVO.setFileIdList(fileIdList);
         }
-        // 创建人名字
-        Long createEmployeeId = oaStampInfoRespVO.getCreateEmployeeId();
-        EmployeeRespDTO createEmployee = employeeApi.getEmployeeById(createEmployeeId);
-        oaStampInfoRespVO.setCreateEmployeeName(createEmployee.getName());
-        // 用印人信息
-        Long employeeId = oaStampInfoRespVO.getEmployeeId();
-        // AdminUserRespDTO employee = adminUserApi.getUser(employeeId);
-        EmployeeRespDTO employee = employeeApi.getEmployeeById(employeeId);
-        oaStampInfoRespVO.setEmployeeName(employee.getName());
-        oaStampInfoRespVO.setEmployeePhone(employee.getPhone());
-        // 职位
-        Long postId = oaStampInfoRespVO.getPostId();
-        PostRespDTO post = postApi.getPost(postId);
-        if (Objects.nonNull(post)) {
-            oaStampInfoRespVO.setPosition(post.getName());
-        }
-        // 部门名称
-        Long deptId = oaStampInfoRespVO.getDeptId();
-        DeptRespDTO dept = deptApi.getDept(deptId);
-        oaStampInfoRespVO.setDeptName(dept.getName());
+
 
         return success(oaStampInfoRespVO);
     }

+ 7 - 0
yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/stamp/stampinfo/vo/OaStampInfoRespVO.java

@@ -1,5 +1,6 @@
 package cn.iocoder.yudao.module.bpm.controller.admin.stamp.stampinfo.vo;
 
+import cn.iocoder.yudao.module.infra.api.file.dto.FileDTO;
 import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
 import com.alibaba.excel.annotation.ExcelProperty;
 import io.swagger.v3.oas.annotations.media.Schema;
@@ -101,4 +102,10 @@ public class OaStampInfoRespVO {
     @ExcelProperty("创建时间")
     private LocalDateTime createTime;
 
+    @Schema(description = "附件列表")
+    private List<FileDTO> fileList;
+
+    @Schema(description = "附件id列表")
+    private List<Long> fileIdList;
+
 }

+ 3 - 0
yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/stamp/stampinfo/vo/OaStampInfoSaveReqVO.java

@@ -34,4 +34,7 @@ public class OaStampInfoSaveReqVO {
     @Schema(description = "备注")
     private String remarks;
 
+    @Schema(description = "附件主键id", example = "[1, 2]")
+    private List<Long> fileIdList;
+
 }

+ 12 - 1
yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/service/stamp/stampinfo/OaStampInfoServiceImpl.java

@@ -13,6 +13,7 @@ import cn.iocoder.yudao.module.bpm.dal.dataobject.stamp.stampinfo.OaStampInfoDO;
 import cn.iocoder.yudao.module.bpm.dal.mysql.stamp.stampinfo.OaStampInfoMapper;
 import cn.iocoder.yudao.module.employee.api.EmployeeApi;
 import cn.iocoder.yudao.module.employee.api.dto.EmployeeRespDTO;
+import cn.iocoder.yudao.module.infra.api.file.FileApi;
 import cn.iocoder.yudao.module.system.api.dept.PostApi;
 import cn.iocoder.yudao.module.system.api.user.AdminUserApi;
 import org.springframework.stereotype.Service;
@@ -49,6 +50,9 @@ public class OaStampInfoServiceImpl implements OaStampInfoService {
     @Resource
     private PostApi postApi;
 
+    @Resource
+    private FileApi fileApi;
+
     @Override
     public Long createOaStampInfo(OaStampInfoSaveReqVO createReqVO) {
         // 登录人
@@ -88,6 +92,10 @@ public class OaStampInfoServiceImpl implements OaStampInfoService {
         // 状态
         oaStampInfo.setStatus("0"); // 已完成
         oaStampInfoMapper.insert(oaStampInfo);
+
+        // 附件
+        fileApi.updateFileBiz(createReqVO.getFileIdList(), oaStampInfo.getStampUuid());
+
         // 返回
         return oaStampInfo.getId();
     }
@@ -104,7 +112,7 @@ public class OaStampInfoServiceImpl implements OaStampInfoService {
     @Override
     public void updateOaStampInfo(OaStampInfoSaveReqVO updateReqVO) {
         // 校验存在
-        validateOaStampInfoExists(updateReqVO.getId());
+        OaStampInfoDO stampInfoDOBefore = validateOaStampInfoExists(updateReqVO.getId());
         // 更新准备
         OaStampInfoDO updateObj = BeanUtils.toBean(updateReqVO, OaStampInfoDO.class);
         // 用印员工
@@ -128,6 +136,9 @@ public class OaStampInfoServiceImpl implements OaStampInfoService {
         }
 
         oaStampInfoMapper.updateById(updateObj);
+
+        // 附件
+        fileApi.updateFileBiz(updateReqVO.getFileIdList(), stampInfoDOBefore.getStampUuid());
     }
 
     @Override

+ 11 - 0
yudao-module-finance/yudao-module-expense-biz/src/main/java/cn/iocoder/yudao/module/expense/controller/admin/expenseinfo/ExpenseInfoController.java

@@ -19,6 +19,8 @@ import cn.iocoder.yudao.module.expense.dal.dataobject.expensetype.ExpenseTypeDO;
 import cn.iocoder.yudao.module.expense.service.expenseinfo.ExpenseInfoService;
 import cn.iocoder.yudao.module.expense.service.expenseitem.ExpenseItemService;
 import cn.iocoder.yudao.module.expense.service.expensetype.ExpenseTypeService;
+import cn.iocoder.yudao.module.infra.api.file.FileApi;
+import cn.iocoder.yudao.module.infra.api.file.dto.FileDTO;
 import cn.iocoder.yudao.module.system.api.dept.DeptApi;
 import cn.iocoder.yudao.module.system.api.dept.PostApi;
 import cn.iocoder.yudao.module.system.api.dept.dto.DeptRespDTO;
@@ -66,6 +68,9 @@ public class ExpenseInfoController {
     @Resource
     private EmployeeApi employeeApi;
 
+    @Resource
+    private FileApi fileApi;
+
     @PostMapping("/create")
     @Operation(summary = "创建报销信息")
     // @PreAuthorize("@ss.hasPermission('expense:info:create')")
@@ -171,6 +176,12 @@ public class ExpenseInfoController {
         }
         expenseInfoRespVO.setExpenseInfoObjs(expenseInfoObjDOs);
 
+        // 附件
+        List<FileDTO> fileDTOListByBiz = fileApi.getFileDTOListByBiz(info.getExpenseUuid());
+        expenseInfoRespVO.setFileList(fileDTOListByBiz);
+        List<Long> fileIdList = fileDTOListByBiz.stream().map(FileDTO::getId).collect(Collectors.toList());
+        expenseInfoRespVO.setFileIdList(fileIdList);
+
         // 返回成功响应
         return success(expenseInfoRespVO);
     }

+ 42 - 32
yudao-module-finance/yudao-module-expense-biz/src/main/java/cn/iocoder/yudao/module/expense/controller/admin/expenseinfo/vo/ExpenseInfoRespVO.java

@@ -1,10 +1,13 @@
 package cn.iocoder.yudao.module.expense.controller.admin.expenseinfo.vo;
 
+import cn.iocoder.yudao.framework.common.util.date.DateUtils;
 import cn.iocoder.yudao.module.expense.dal.dataobject.expenseinfo.ExpenseInfoObjDO;
+import cn.iocoder.yudao.module.infra.api.file.dto.FileDTO;
 import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
 import com.alibaba.excel.annotation.ExcelProperty;
 import io.swagger.v3.oas.annotations.media.Schema;
 import lombok.Data;
+import org.springframework.format.annotation.DateTimeFormat;
 
 import java.math.BigDecimal;
 import java.time.LocalDateTime;
@@ -15,102 +18,109 @@ import java.util.List;
 @ExcelIgnoreUnannotated
 public class ExpenseInfoRespVO {
 
-    @Schema(description = "表单主键", requiredMode = Schema.RequiredMode.REQUIRED, example = "30165")
-    @ExcelProperty("表单主键")
+    @Schema(description = "表单主键")
+    // @ExcelProperty("表单主键")
     private Long id;
 
-    @Schema(description = "uuid", example = "22476")
-    @ExcelProperty("uuid")
+    @Schema(description = "uuid")
+    // @ExcelProperty("uuid")
     private String expenseUuid;
 
-    @Schema(description = "报销申请人id", example = "27928")
-    @ExcelProperty("报销申请人id")
+    @Schema(description = "报销申请人id")
+    // @ExcelProperty("报销申请人id")
     private Long employeeId;
 
-    @Schema(description = "报销申请人uuid", example = "29769")
-    @ExcelProperty("报销申请人uuid")
+    @Schema(description = "报销申请人uuid")
+    // @ExcelProperty("报销申请人uuid")
     private String employeeUuid;
 
-    @Schema(description = "报销申请员工姓名", example = "李四")
-    @ExcelProperty("报销申请员工姓名")
+    @Schema(description = "报销申请员工姓名")
+    @ExcelProperty("报销")
     private String employeeName;
 
     @Schema(description = "报销申请员工手机号")
-    @ExcelProperty("报销申请员工手机号")
+    @ExcelProperty("手机号")
     private String employeePhone;
 
-    @Schema(description = "用户账号id", example = "28869")
-    @ExcelProperty("用户账号id")
+    @Schema(description = "用户账号id")
+    // @ExcelProperty("用户账号id")
     private Long userId;
 
-    @Schema(description = "用户账号uuid", example = "952")
-    @ExcelProperty("用户账号uuid")
+    @Schema(description = "用户账号uuid")
+    // @ExcelProperty("用户账号uuid")
     private String userUuid;
 
     @Schema(description = "部门id")
-    @ExcelProperty("部门id")
+    // @ExcelProperty("部门id")
     private Long deptId;
 
     @Schema(description = "部门名称")
     @ExcelProperty("部门名称")
     private String deptName;
 
-    @Schema(description = "职位id", example = "15670")
-    @ExcelProperty("职位id")
+    @Schema(description = "职位id")
+    // @ExcelProperty("职位id")
     private Long postId;
 
     @Schema(description = "员工职位")
-    @ExcelProperty("员工职位")
+    @ExcelProperty("职位")
     private String position;
 
-    @Schema(description = "报销类型主键id", example = "31388")
-    @ExcelProperty("报销类型主键id")
+    @Schema(description = "报销类型主键id")
+    // @ExcelProperty("报销类型主键id")
     private Long expenseTypeId;
 
-    @Schema(description = "报销类型名称", example = "张三")
-    @ExcelProperty("报销类型名称")
+    @Schema(description = "报销类型名称")
+    @ExcelProperty("报销类型")
     private String expenseTypeName;
 
     @Schema(description = "费用所属区间")
     @ExcelProperty("费用所属区间")
     private String expenseMonth;
 
-    @Schema(description = "总预算金额,单位(元)", requiredMode = Schema.RequiredMode.REQUIRED)
+    @Schema(description = "总预算金额,单位(元)")
     @ExcelProperty("总预算金额,单位(元)")
     private BigDecimal totalMoney;
 
     @Schema(description = "备注")
-    @ExcelProperty("备注")
+    // @ExcelProperty("备注")
     private String remarks;
 
     @Schema(description = "状态(0已完成、1已作废、2已生效)")
-    @ExcelProperty("状态(0已完成、1已作废、2已生效)")
+    // @ExcelProperty("状态(0已完成、1已作废、2已生效)")
     private String status;
 
     @Schema(description = "状态描述(0已完成、1已作废、2已生效)")
-    @ExcelProperty("状态描述(0已完成、1已作废、2已生效)")
+    // @ExcelProperty("状态描述(0已完成、1已作废、2已生效)")
     private String statusDesc;
 
     @Schema(description = "数据来源,0流程添加、1手动添加")
-    @ExcelProperty("数据来源,0流程添加、1手动添加")
+    // @ExcelProperty("数据来源,0流程添加、1手动添加")
     private String infoSource;
 
     @Schema(description = "数据来源描述,0流程添加、1手动添加")
-    @ExcelProperty("数据来源描述,0流程添加、1手动添加")
+    @ExcelProperty("数据来源")
     private String infoSourceDesc;
 
     @Schema(description = "创建员工id")
-    @ExcelProperty("创建员工id")
+    // @ExcelProperty("创建员工id")
     private Long createEmployeeId;
 
     @Schema(description = "创建员工姓名")
-    @ExcelProperty("创建员工id")
+    @ExcelProperty("创建")
     private String createEmployeeName;
 
-    @Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED)
+    @Schema(description = "创建时间")
     @ExcelProperty("创建时间")
+    @DateTimeFormat(pattern = DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
     private LocalDateTime createTime;
 
+    @Schema(description = "附件列表")
+    private List<FileDTO> fileList;
+
+    @Schema(description = "附件id列表")
+    private List<Long> fileIdList;
+
     @Schema(description = "报销信息子列表")
     private List<ExpenseInfoObjDO> expenseInfoObjs;
 

+ 3 - 0
yudao-module-finance/yudao-module-expense-biz/src/main/java/cn/iocoder/yudao/module/expense/controller/admin/expenseinfo/vo/ExpenseInfoSaveReqVO.java

@@ -41,6 +41,9 @@ public class ExpenseInfoSaveReqVO {
     @Schema(description = "数据来源,0流程添加、1手动添加")
     private String infoSource;
 
+    @Schema(description = "附件主键id", example = "[1, 2]")
+    private List<Long> fileIdList;
+
     @Schema(description = "报销信息子列表", requiredMode = Schema.RequiredMode.REQUIRED)
     @NotEmpty(message = "报销信息子列表不能为空")
     private List<ExpenseInfoObjDO> expenseInfoObjs;

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

@@ -1,9 +1,11 @@
 package cn.iocoder.yudao.module.expense.controller.admin.expenseitem.vo;
 
+import cn.iocoder.yudao.framework.common.util.date.DateUtils;
 import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
 import com.alibaba.excel.annotation.ExcelProperty;
 import io.swagger.v3.oas.annotations.media.Schema;
 import lombok.Data;
+import org.springframework.format.annotation.DateTimeFormat;
 
 import java.time.LocalDateTime;
 
@@ -46,6 +48,7 @@ public class ExpenseItemRespVO {
 
     @Schema(description = "创建时间")
     @ExcelProperty("创建时间")
+    @DateTimeFormat(pattern = DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
     private LocalDateTime createTime;
 
 }

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

@@ -1,9 +1,11 @@
 package cn.iocoder.yudao.module.expense.controller.admin.expensetype.vo;
 
+import cn.iocoder.yudao.framework.common.util.date.DateUtils;
 import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
 import com.alibaba.excel.annotation.ExcelProperty;
 import io.swagger.v3.oas.annotations.media.Schema;
 import lombok.Data;
+import org.springframework.format.annotation.DateTimeFormat;
 
 import java.time.LocalDateTime;
 
@@ -38,6 +40,7 @@ public class ExpenseTypeRespVO {
 
     @Schema(description = "创建时间")
     @ExcelProperty("创建时间")
+    @DateTimeFormat(pattern = DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
     private LocalDateTime createTime;
 
 }

+ 11 - 0
yudao-module-finance/yudao-module-expense-biz/src/main/java/cn/iocoder/yudao/module/expense/service/expenseinfo/ExpenseInfoServiceImpl.java

@@ -19,6 +19,7 @@ import cn.iocoder.yudao.module.expense.dal.dataobject.expenseinfo.ExpenseInfoDO;
 import cn.iocoder.yudao.module.expense.dal.dataobject.expenseinfo.ExpenseInfoObjDO;
 import cn.iocoder.yudao.module.expense.dal.mysql.expenseinfo.ExpenseInfoMapper;
 import cn.iocoder.yudao.module.expense.dal.mysql.expenseinfo.ExpenseInfoObjMapper;
+import cn.iocoder.yudao.module.infra.api.file.FileApi;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 import org.springframework.validation.annotation.Validated;
@@ -48,6 +49,9 @@ public class ExpenseInfoServiceImpl implements ExpenseInfoService {
     @Resource
     private EmployeeApi employeeApi;
 
+    @Resource
+    private FileApi fileApi;
+
     @Override
     @Transactional(rollbackFor = Exception.class)
     public Long createInfo(ExpenseInfoSaveReqVO createReqVO) {
@@ -119,6 +123,9 @@ public class ExpenseInfoServiceImpl implements ExpenseInfoService {
         // 插入费用明细数据
         createExpenseInfoObjList(info.getId(), createReqVO.getExpenseInfoObjs());
 
+        // 附件
+        fileApi.updateFileBiz(createReqVO.getFileIdList(), info.getExpenseUuid());
+
         // 返回费用主表ID
         return info.getId();
     }
@@ -191,6 +198,10 @@ public class ExpenseInfoServiceImpl implements ExpenseInfoService {
 
         // 更新子表
         updateExpenseInfoObjList(updateReqVO.getId(), updateReqVO.getExpenseInfoObjs());
+
+        // 附件
+        fileApi.updateFileBiz(updateReqVO.getFileIdList(), expenseInfoBefore.getExpenseUuid());
+
     }
 
     @Override