From 8c215c8be0f5076e8c95daf1b2203440ca7dfcad Mon Sep 17 00:00:00 2001
From: yxh <172933527@qq.com>
Date: 星期五, 23 十月 2026 13:42:50 +0800
Subject: [PATCH] 修改了报销校验

---
 ruoyi-admin/src/main/java/com/ruoyi/web/controller/project/ServiceFunddetailController.java |   43 ++++++++++++++++++++++++++++++++++++-------
 1 files changed, 36 insertions(+), 7 deletions(-)

diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/project/ServiceFunddetailController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/project/ServiceFunddetailController.java
index d08876e..167f43d 100644
--- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/project/ServiceFunddetailController.java
+++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/project/ServiceFunddetailController.java
@@ -12,6 +12,8 @@
 import com.ruoyi.project.domain.FunddetailReqVo;
 import com.ruoyi.project.domain.ServiceFunddetail;
 import com.ruoyi.project.domain.SpStatBonusReq;
+import com.ruoyi.project.domain.vo.TaxMoneyByItemEO;
+import com.ruoyi.project.domain.vo.TaxMoneySumEO;
 import com.ruoyi.project.domain.vo.TaxMoneyVO;
 import com.ruoyi.project.service.IServiceFunddetailService;
 import io.swagger.annotations.Api;
@@ -20,8 +22,10 @@
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.*;
 
-import java.util.Arrays;
-import java.util.List;
+import java.time.LocalDate;
+import java.time.ZoneId;
+import java.time.temporal.TemporalAdjusters;
+import java.util.*;
 
 /**
  * 璐圭敤鐢宠鏄庣粏Controller
@@ -83,6 +87,13 @@
     @PostMapping("/add")
     @NotRepeatCommit(key = "param:arg[1]", value = 30000)
     public AjaxResult add(@RequestBody ServiceFunddetail serviceFunddetail) {
+        // 2026-10-15锛氶檮浠舵枃浠跺悕瑙勮寖浜屾鏍¢獙锛堜笌鍓嶇 opo-web/src/utils/fileNameCheck.js 鍚屽彛寰勶紝
+        // 鐩殑鏄槻姝㈢粫杩囧墠绔洿鎺ヨ皟鎺ュ彛淇濆瓨涓嶅悎瑙勯檮浠跺悕锛夈�傛柊澧炲満鏅病鏈夊巻鍙查檮浠讹紝鐢ㄤ弗鏍兼ā寮忋��
+        String nameError = com.ruoyi.project.common.AttachmentNameValidator
+                .checkJsonList(serviceFunddetail.getInvoicefiles(), serviceFunddetail.getAnnexfiles());
+        if (nameError != null) {
+            return AjaxResult.error("闄勪欢鏂囦欢鍚嶄笉绗﹀悎瑕佹眰锛屾棤娉曚繚瀛橈細" + nameError);
+        }
         boolean save = serviceFunddetailService.save(serviceFunddetail);
         return AjaxResult.success(serviceFunddetail);
     }
@@ -97,6 +108,24 @@
     @NotRepeatCommit(key = "param:arg[1]", value = 30000)
     public AjaxResult edit(@RequestBody ServiceFunddetail serviceFunddetail) {
         log.info("淇敼鐨勬暟鎹俊鎭細{}", serviceFunddetail);
+        // 2026-10-15锛氶檮浠舵枃浠跺悕瑙勮寖浜屾鏍¢獙銆備慨鏀瑰満鏅寜涓氬姟鍙e緞"鍙牎楠屾湰娆″彉鏇寸殑闄勪欢"锛�
+        // 淇濆瓨鍓嶈鏄庣粏宸插瓨鍦ㄧ殑鍘嗗彶闄勪欢鍚嶄笉鍙備笌鏍¢獙锛屽惁鍒欒�佸崟鎹紙鍘嗗彶涓嶅悎瑙勫悕鍗犳瘮寰堥珮锛夋敼涓噾棰濋兘瀛樹笉杩涘幓銆�
+        java.util.Set<String> existingNames = new java.util.HashSet<>();
+        if (serviceFunddetail.getId() != null) {
+            ServiceFunddetail oldDetail = serviceFunddetailService.getById(serviceFunddetail.getId());
+            if (oldDetail != null) {
+                existingNames.addAll(com.ruoyi.project.common.AttachmentNameValidator
+                        .collectNames(oldDetail.getInvoicefiles()));
+                existingNames.addAll(com.ruoyi.project.common.AttachmentNameValidator
+                        .collectNames(oldDetail.getAnnexfiles()));
+            }
+        }
+        String nameError = com.ruoyi.project.common.AttachmentNameValidator
+                .checkJsonListForUpdate(existingNames, serviceFunddetail.getInvoicefiles(),
+                        serviceFunddetail.getAnnexfiles());
+        if (nameError != null) {
+            return AjaxResult.error("闄勪欢鏂囦欢鍚嶄笉绗﹀悎瑕佹眰锛屾棤娉曚繚瀛橈細" + nameError);
+        }
         return toAjax(serviceFunddetailService.updateById(serviceFunddetail));
     }
 
@@ -161,11 +190,11 @@
         return AjaxResult.success(serviceFunddetailService.getFundDetail(id));
     }
 
-    @ApiOperation("鏍规嵁鏉′欢绠楃◣")
-    @PostMapping("/calculateTax")
-    public AjaxResult calculateTax(@RequestBody List<ServiceFunddetail> serviceFunddetails) {
-        return AjaxResult.success(serviceFunddetailService.calculateTax(serviceFunddetails));
-    }
+//    @ApiOperation("鏍规嵁鏉′欢绠楃◣")
+//    @PostMapping("/calculateTax")
+//    public AjaxResult calculateTax(@RequestBody List<ServiceFunddetail> serviceFunddetails) {
+//        return AjaxResult.success(serviceFunddetailService.calculateTax2(serviceFunddetails));
+//    }
 
 //    /**
 //     * 缁╂晥璁$畻

--
Gitblit v1.9.3