From 734d20e43e27451a650e4eca7538dc5d5174b957 Mon Sep 17 00:00:00 2001
From: liusheng <337615773@qq.com>
Date: 星期二, 01 八月 2023 10:52:17 +0800
Subject: [PATCH] addnew方法变成addOrUpdateNew,并对逻辑进行修改

---
 ruoyi-admin/src/main/java/com/ruoyi/web/controller/project/ServiceFundController.java |   63 ++++++++++++++++++++-----------
 1 files changed, 41 insertions(+), 22 deletions(-)

diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/project/ServiceFundController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/project/ServiceFundController.java
index 9c08f28..75d99f4 100644
--- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/project/ServiceFundController.java
+++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/project/ServiceFundController.java
@@ -12,6 +12,7 @@
 import com.ruoyi.common.enums.BusinessType;
 import com.ruoyi.common.exception.ServiceException;
 import com.ruoyi.common.tax.TaxtUtils;
+import com.ruoyi.common.utils.StringUtils;
 import com.ruoyi.common.utils.bean.DtoConversionUtils;
 import com.ruoyi.common.utils.poi.ExcelUtil;
 import com.ruoyi.project.domain.*;
@@ -427,39 +428,57 @@
      */
     @ApiOperation("鏂板璐圭敤姹囨��")
     @Log(title = "鏂板璐圭敤姹囨��", businessType = BusinessType.INSERT)
-    @PostMapping("/addnew")
+    @PostMapping("/addOrUpdateNew")
     @RepeatSubmit
     @Options(useGeneratedKeys = true, keyProperty = "id")
-    public AjaxResult addnew(@RequestBody ServiceFundVO serviceFundVO) {
-        boolean b = serviceFundService.save(serviceFundVO);
-        Long id = serviceFundVO.getId();
-//        if (b) {
-//            addReiSharedDatd(serviceFundVO, 1);
-//        }
+    public AjaxResult addOrUpdateNew(@RequestBody ServiceFundVO serviceFundVO) {
+        Long id = null;
+        if (serviceFundVO.getId() == null) {
+            boolean b = serviceFundService.save(serviceFundVO);
+            id = serviceFundVO.getId();
+        } else {
+            serviceFundService.updateById(serviceFundVO);
+            id = serviceFundVO.getId();
+        }
         List<ServiceFunddetail> serviceFunddetails = serviceFundVO.getServiceFunddetails();
-//        serviceFunddetails.forEach(item -> item.setFundid(id));
 
-        //taxBefore銆乼axAfter鐢ㄦ潵璁板綍绋庡墠绋庡悗鐨勬�婚噾棰濓紝涓嶇敤绠$◣鐜�
         double taxBefore = 0.0;
         double taxAfter = 0.0;
         for (ServiceFunddetail serviceFunddetail : serviceFunddetails) {
+
             serviceFunddetail.setFundid(id);
             if (serviceFunddetail.getTaxedamount() != 0.0 && serviceFunddetail.getAmount() != 0.0 && serviceFunddetail.getTaxedamount() != null && serviceFunddetail.getTaxedamount() != null) {
                 // 绋庡墠绋庡悗閮戒笉涓虹┖
+                if (serviceFunddetail.getId() == null) {
+                    serviceFunddetailService.save(serviceFunddetail);
+                } else {
+                    serviceFunddetailService.updateById(serviceFunddetail);
+                }
                 continue;
             } else if (serviceFunddetail.getTaxedamount() != 0.0 && serviceFunddetail.getTaxedamount() != null) {
-                // 绋庡悗姹傜◣鍓�
-                Double taxationBefore = Double.valueOf(TaxtUtils.getTaxationBefore(BigDecimal.valueOf(serviceFunddetail.getTaxedamount())));
-                // 绋庨噾
-                String taxation = TaxtUtils.getTaxation(BigDecimal.valueOf(taxationBefore));
-                serviceFunddetail.setAmount(Double.valueOf(taxationBefore));
-                serviceFunddetail.setTaxamount(Double.parseDouble(taxation));
+                // 绋庡悗姹傜◣鍓�,濡傛灉鏄笓瀹惰垂鐢宠  鎴� 鍋蜂笓瀹惰垂鐢宠   鎵嶄細璁$畻绋庡墠绋庡悗
+                if (StringUtils.isNotEmpty(serviceFunddetail.getApplytype()) && serviceFunddetail.getApplytype().equals("1") || serviceFunddetail.getApplytype().equals("2")) {
+                    Double taxationBefore = Double.valueOf(TaxtUtils.getTaxationBefore(BigDecimal.valueOf(serviceFunddetail.getTaxedamount())));
+                    // 绋庨噾
+                    String taxation = TaxtUtils.getTaxation(BigDecimal.valueOf(taxationBefore));
+                    serviceFunddetail.setAmount(Double.valueOf(taxationBefore));
+                    serviceFunddetail.setTaxamount(Double.parseDouble(taxation));
+                }
             } else if (serviceFunddetail.getAmount() != 0.0 && serviceFunddetail.getAmount() != null) {
-                // 绋庡墠姹傜◣鍚�
-                double tax = Double.parseDouble(TaxtUtils.getTaxation(BigDecimal.valueOf(serviceFunddetail.getAmount())));
-                BigDecimal taxAfterMoney = BigDecimal.valueOf(serviceFunddetail.getAmount()).subtract(BigDecimal.valueOf(tax));
-                serviceFunddetail.setTaxamount(tax);
-                serviceFunddetail.setTaxedamount(taxAfterMoney.doubleValue());
+                // 绋庡墠姹傜◣鍚�,濡傛灉鏄笓瀹惰垂鐢宠  鎴� 鍋蜂笓瀹惰垂鐢宠   鎵嶄細璁$畻绋庡墠绋庡悗
+                if (StringUtils.isNotEmpty(serviceFunddetail.getApplytype()) && serviceFunddetail.getApplytype().equals("1") || serviceFunddetail.getApplytype().equals("2")) {
+                    double tax = Double.parseDouble(TaxtUtils.getTaxation(BigDecimal.valueOf(serviceFunddetail.getAmount())));
+                    BigDecimal taxAfterMoney = BigDecimal.valueOf(serviceFunddetail.getAmount()).subtract(BigDecimal.valueOf(tax));
+                    serviceFunddetail.setTaxamount(tax);
+                    serviceFunddetail.setTaxedamount(taxAfterMoney.doubleValue());
+                }
+            }
+
+            //鏍规嵁id鍒ゆ柇鏄柊澧炶繕鏄慨鏀�
+            if (serviceFunddetail.getId() == null) {
+                serviceFunddetailService.save(serviceFunddetail);
+            } else {
+                serviceFunddetailService.updateById(serviceFunddetail);
             }
             taxBefore = taxBefore + serviceFunddetail.getAmount();
             taxAfter = taxAfter + serviceFunddetail.getTaxedamount();
@@ -468,8 +487,8 @@
         serviceFundVO.setPretaxcost(taxBefore);
         serviceFundVO.setTaxedcost(taxAfter);
         serviceFundService.updateById(serviceFundVO);
-        //灏嗚绠楀ソ鐨勬暟鎹紝淇濆瓨鍒癲etail琛ㄤ腑
-        serviceFunddetailService.saveBatch(serviceFunddetails);
+//        //灏嗚绠楀ソ鐨勬暟鎹紝淇濆瓨鍒癲etail琛ㄤ腑
+//        serviceFunddetailService.saveBatch(serviceFunddetails);
         return AjaxResult.success(id);
     }
 

--
Gitblit v1.9.3