From 68b49efb4da346edb42a5d8ebb39af47207402bd Mon Sep 17 00:00:00 2001
From: yxh <172933527@qq.com>
Date: 星期一, 12 十月 2026 11:14:13 +0800
Subject: [PATCH] 修改了报销校验

---
 ruoyi-project/src/main/java/com/ruoyi/project/service/impl/ServiceFunddetailServiceImpl.java |   46 ++++++++++++++++++++++++++++++++--------------
 1 files changed, 32 insertions(+), 14 deletions(-)

diff --git a/ruoyi-project/src/main/java/com/ruoyi/project/service/impl/ServiceFunddetailServiceImpl.java b/ruoyi-project/src/main/java/com/ruoyi/project/service/impl/ServiceFunddetailServiceImpl.java
index 251704e..7488e4b 100644
--- a/ruoyi-project/src/main/java/com/ruoyi/project/service/impl/ServiceFunddetailServiceImpl.java
+++ b/ruoyi-project/src/main/java/com/ruoyi/project/service/impl/ServiceFunddetailServiceImpl.java
@@ -136,21 +136,30 @@
      */
     @Override
     public Double getTaxByBeneFiciaryNo(TaxMoneyVO taxMoneyVo) {
-        Double sum = 0.00;
-        Double totalScore = 0.00;
+        // 閲戦绱姞蹇呴』鐢� BigDecimal锛歞ouble 绱姞浼氬紩鍏ユ诞鐐瑰熬宸紝瀵艰嚧绠楀嚭鐨勪釜绋庡嚭鐜板垎浠ヤ笅璇樊
+        BigDecimal sum = BigDecimal.ZERO;
+        BigDecimal totalScore = BigDecimal.ZERO;
         List<ServiceFunddetail> taxationByBeneFiciaryNo = serviceFunddetailMapper.getTaxBeforeByBeneFiciaryNo(taxMoneyVo);
         if (CollectionUtils.isNotEmpty(taxationByBeneFiciaryNo)) {
             //璁$畻鐢宠閲戦鎬诲拰锛屼笉鍖呮嫭褰撳墠浼犺繘鏉ョ殑
-            sum = taxationByBeneFiciaryNo.stream().mapToDouble(ServiceFunddetail::getAmount).sum();
+            sum = taxationByBeneFiciaryNo.stream()
+                    .map(ServiceFunddetail::getAmount)
+                    .filter(java.util.Objects::nonNull)
+                    .map(BigDecimal::valueOf)
+                    .reduce(BigDecimal.ZERO, BigDecimal::add);
             //涓嶅姞鏈钖叕鐨勪釜绋�
-            totalScore = taxationByBeneFiciaryNo.stream().mapToDouble(ServiceFunddetail::getTaxamount).sum();
+            totalScore = taxationByBeneFiciaryNo.stream()
+                    .map(ServiceFunddetail::getTaxamount)
+                    .filter(java.util.Objects::nonNull)
+                    .map(BigDecimal::valueOf)
+                    .reduce(BigDecimal.ZERO, BigDecimal::add);
         }
 
-        sum = sum + new Double(taxMoneyVo.getMoney());
+        sum = sum.add(new BigDecimal(taxMoneyVo.getMoney()));
         //鍔犱笂鏈钖叕鐨勬�讳釜绋�
-        String taxation = TaxtUtils.getTaxation(new BigDecimal(sum));
+        String taxation = TaxtUtils.getTaxation(sum);
 
-        Double tax = Double.valueOf(taxation) - totalScore;
+        Double tax = new BigDecimal(taxation).subtract(totalScore).doubleValue();
         return tax;
     }
 
@@ -163,21 +172,30 @@
     @Override
     public TaxedMoneyVO getTaxBeforeByAfterMoney(TaxMoneyVO taxMoneyVo) {
         TaxedMoneyVO taxedMoneyVO = new TaxedMoneyVO();
-        Double sum = 0.00;
-        Double totalScore = 0.00;
+        // 閲戦绱姞蹇呴』鐢� BigDecimal锛岄伩鍏嶆诞鐐瑰熬宸奖鍝嶇◣鍓�/绋庨缁撴灉
+        BigDecimal sum = BigDecimal.ZERO;
+        BigDecimal totalScore = BigDecimal.ZERO;
         List<ServiceFunddetail> taxationByBeneFiciaryNo = serviceFunddetailMapper.getTaxBeforeByBeneFiciaryNo(taxMoneyVo);
         if (CollectionUtils.isNotEmpty(taxationByBeneFiciaryNo)) {
             //璁$畻鍑虹◣鍚庢�婚噾棰濓紙涓嶅寘鍚湰娆★級
-            sum = taxationByBeneFiciaryNo.stream().mapToDouble(ServiceFunddetail::getTaxedamount).sum();
+            sum = taxationByBeneFiciaryNo.stream()
+                    .map(ServiceFunddetail::getTaxedamount)
+                    .filter(java.util.Objects::nonNull)
+                    .map(BigDecimal::valueOf)
+                    .reduce(BigDecimal.ZERO, BigDecimal::add);
             //姹傚嚭涔嬪墠鐨勬�荤殑涓◣
-            totalScore = taxationByBeneFiciaryNo.stream().mapToDouble(ServiceFunddetail::getTaxamount).sum();
+            totalScore = taxationByBeneFiciaryNo.stream()
+                    .map(ServiceFunddetail::getTaxamount)
+                    .filter(java.util.Objects::nonNull)
+                    .map(BigDecimal::valueOf)
+                    .reduce(BigDecimal.ZERO, BigDecimal::add);
         }
         //璁$畻鍑烘�荤殑绋庡悗钖叕锛堝寘鍚湰娆★級
-        sum = sum + Double.valueOf(taxMoneyVo.getMoney());
+        sum = sum.add(new BigDecimal(taxMoneyVo.getMoney()));
         //绋庡墠鎬婚噾棰�
-        String taxationBefore = TaxtUtils.getTaxationBefore(new BigDecimal(sum));
+        String taxationBefore = TaxtUtils.getTaxationBefore(sum);
         //鎬讳釜绋�
-        BigDecimal tax = new BigDecimal(taxationBefore).subtract(new BigDecimal(sum));
+        BigDecimal tax = new BigDecimal(taxationBefore).subtract(sum);
 
         //鏈鐨勭◣鍓嶉噾棰�
         String nowTaxMoney = TaxtUtils.getTaxationBefore(new BigDecimal(taxMoneyVo.getMoney()));

--
Gitblit v1.9.3