From dd69bfc1fb8e5e28dde754fab7f23bfb1a18faa5 Mon Sep 17 00:00:00 2001
From: liding <756868258@qq.com>
Date: 星期五, 05 六月 2026 16:58:07 +0800
Subject: [PATCH] config(dev): 更新开发环境配置和文件上传功能 - 调整文件上传路径配置 - 修复OA环境文件链接前缀配置 - 在审批实例服务中添加报销相关数据删除逻辑 - 实现申请人姓名自动填充功能 - 添加文件下载预览路由的正则表达式支持 - 为企业新闻VO添加附件列表兼容别名 - 完善员工入职服务的异常处理 - 新增账户附件管理控制器 - 实现文件上传接口并返回完整文件信息

---
 src/main/java/com/ruoyi/approve/service/impl/ApprovalInstanceServiceImpl.java |   31 +++++++++++++++++++++++++++++++
 1 files changed, 31 insertions(+), 0 deletions(-)

diff --git a/src/main/java/com/ruoyi/approve/service/impl/ApprovalInstanceServiceImpl.java b/src/main/java/com/ruoyi/approve/service/impl/ApprovalInstanceServiceImpl.java
index 1fb2333..0d9b5b4 100644
--- a/src/main/java/com/ruoyi/approve/service/impl/ApprovalInstanceServiceImpl.java
+++ b/src/main/java/com/ruoyi/approve/service/impl/ApprovalInstanceServiceImpl.java
@@ -11,7 +11,9 @@
 import com.ruoyi.approve.bean.vo.ApprovalInstanceVo;
 import com.ruoyi.approve.mapper.ApprovalInstanceMapper;
 import com.ruoyi.approve.mapper.ApprovalTemplateNodeApproverMapper;
+import com.ruoyi.approve.mapper.FinReimbursementDetailMapper;
 import com.ruoyi.approve.mapper.FinReimbursementMapper;
+import com.ruoyi.approve.mapper.FinReimbursementTravelMapper;
 import com.ruoyi.approve.pojo.*;
 import com.ruoyi.approve.service.*;
 import com.ruoyi.approve.utils.ApproveProcessConfigNodeUtils;
@@ -94,6 +96,8 @@
     private final EnterpriseNewsMapper enterpriseNewsMapper;
     private final EnterpriseNewsScopeDeptMapper enterpriseNewsScopeDeptMapper;
     private final ApprovalTemplateNodeApproverMapper approvalTemplateNodeApproverMapper;
+    private final FinReimbursementDetailMapper finReimbursementDetailMapper;
+    private final FinReimbursementTravelMapper finReimbursementTravelMapper;
 
     @Override
     public R listPage(Page<ApprovalInstanceVo> page, ApprovalInstanceDto approvalInstanceDto) {
@@ -144,6 +148,13 @@
         approvalInstanceDto.setInstanceNo(instanceNo);
         approvalInstanceDto.setStatus("PENDING");
         approvalInstanceDto.setCurrentLevel(1);
+        // 濡傛灉鍓嶇浼犱簡 applicantId 浣嗘病浼� applicantName锛屽垯浠庣敤鎴疯〃鏌ヨ濮撳悕
+        if (approvalInstanceDto.getApplicantId() != null && !StringUtils.hasText(approvalInstanceDto.getApplicantName())) {
+            SysUser applicantUser = sysUserMapper.selectUserById(approvalInstanceDto.getApplicantId());
+            if (applicantUser != null) {
+                approvalInstanceDto.setApplicantName(applicantUser.getNickName());
+            }
+        }
         boolean saved = this.save(approvalInstanceDto);
         if (!saved) {
             return false;
@@ -184,6 +195,26 @@
         if (ids == null || ids.isEmpty()) {
             return false;
         }
+
+        // 鍒犻櫎鍏宠仈鐨勪笟鍔℃暟鎹紙鎶ラ攢鍗曠瓑锛�
+        List<Long> reimbursementIds = new ArrayList<>();
+        List<ApprovalInstance> instances = approvalInstanceMapper.selectBatchIds(ids);
+        for (ApprovalInstance instance : instances) {
+            if (instance.getBusinessId() != null && instance.getBusinessType() != null) {
+                Long businessType = instance.getBusinessType();
+                if (TypeEnums.TRAVEL_REIMBURSEMENT_APPROVAL.getCode().equals(businessType)
+                        || TypeEnums.EXPENSE_APPROVAL.getCode().equals(businessType)) {
+                    reimbursementIds.add(instance.getBusinessId());
+                }
+            }
+        }
+        if (!reimbursementIds.isEmpty()) {
+            fileUtil.deleteStorageAttachmentsByApplicationAndRecordTypeAndRecordIds(ApplicationTypeEnum.FILE, RecordTypeEnum.FIN_REIMBURSEMENT, reimbursementIds);
+            finReimbursementDetailMapper.delete(Wrappers.<FinReimbursementDetail>lambdaQuery().in(FinReimbursementDetail::getReimbursementId, reimbursementIds));
+            finReimbursementTravelMapper.delete(Wrappers.<FinReimbursementTravel>lambdaQuery().in(FinReimbursementTravel::getReimbursementId, reimbursementIds));
+            finReimbursementMapper.delete(Wrappers.<FinReimbursement>lambdaQuery().in(FinReimbursement::getId, reimbursementIds));
+        }
+
         fileUtil.deleteStorageAttachmentsByApplicationAndRecordTypeAndRecordIds(ApplicationTypeEnum.FILE, RecordTypeEnum.APPROVAL_INSTANCE, ids);
 
         int instanceRows = approvalInstanceMapper.update(

--
Gitblit v1.9.3