From 2ddd290a414321b719c297311c4662b40cbb2462 Mon Sep 17 00:00:00 2001
From: liusheng <337615773@qq.com>
Date: 星期三, 02 八月 2023 16:44:00 +0800
Subject: [PATCH] 加一下日志

---
 ruoyi-admin/src/main/java/com/ruoyi/web/controller/project/ServiceFundController.java |  125 +++++++++++++++++++++++++++++------------
 1 files changed, 88 insertions(+), 37 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 5596ef6..94856b2 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.*;
@@ -23,6 +24,7 @@
 import freemarker.template.TemplateException;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
+import lombok.extern.slf4j.Slf4j;
 import org.apache.ibatis.annotations.Options;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.*;
@@ -41,6 +43,7 @@
  * @author ruoyi
  * @date 2022-01-24
  */
+@Slf4j
 @Api("璐圭敤鐢宠涓�")
 @RestController
 @RequestMapping("/project/fund")
@@ -427,43 +430,73 @@
      */
     @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));
+
+        double taxBefore = 0.0;
+        double taxAfter = 0.0;
         for (ServiceFunddetail serviceFunddetail : serviceFunddetails) {
             serviceFunddetail.setFundid(id);
-            if (!serviceFunddetail.getTaxedamount().equals(Double.NaN) && !serviceFunddetail.getAmount().equals(Double.NaN)) {
+            log.info("serviceFunddetail鐨勫�间负 : {}",serviceFunddetail);
+            if (serviceFunddetail.getTaxedamount() != null && serviceFunddetail.getAmount() != null && serviceFunddetail.getTaxedamount() != 0.0 && serviceFunddetail.getAmount() != 0.0) {
                 // 绋庡墠绋庡悗閮戒笉涓虹┖
+                if (serviceFunddetail.getId() == null) {
+                    serviceFunddetailService.save(serviceFunddetail);
+                } else {
+                    serviceFunddetailService.updateById(serviceFunddetail);
+                }
                 continue;
-            } else if (!serviceFunddetail.getTaxedamount().equals(Double.NaN)) {
-                // 绋庡悗姹傜◣鍓�
-                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().equals(Double.NaN)) {
-                // 绋庡墠姹傜◣鍚�
-                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());
+            } else if (serviceFunddetail.getTaxedamount() != 0.0 && serviceFunddetail.getTaxedamount() != null) {
+                // 绋庡悗姹傜◣鍓�,濡傛灉鏄笓瀹惰垂鐢宠  鎴� 浼︾悊涓撳璐圭敵璇�   鎵嶄細璁$畻绋庡墠绋庡悗
+                if (StringUtils.isNotEmpty(serviceFundVO.getApplytype()) && serviceFundVO.getApplytype().equals("1") || serviceFundVO.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) {
+                // 绋庡墠姹傜◣鍚�,濡傛灉鏄笓瀹惰垂鐢宠  鎴� 浼︾悊涓撳璐圭敵璇�   鎵嶄細璁$畻绋庡墠绋庡悗
+                if (StringUtils.isNotEmpty(serviceFundVO.getApplytype()) && serviceFundVO.getApplytype().equals("1") || serviceFundVO.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);
+            }
+            if (serviceFundVO.getApplytype().equals("1") || serviceFundVO.getApplytype().equals("2")) {
+                //濡傛灉鏄笓瀹惰垂鐢宠  鎴� 浼︾悊涓撳璐圭敵璇�   鎵嶄細璁$畻绋庡墠绋庡悗
+                taxBefore = taxBefore + serviceFunddetail.getAmount();
+                taxAfter = taxAfter + serviceFunddetail.getTaxedamount();
+            }
         }
-
-
-        serviceFunddetailService.saveBatch(serviceFunddetails);
+        //灏嗙◣鍓嶃�佺◣鍚庨噾棰濇洿鏂板埌fund琛ㄤ腑
+        serviceFundVO.setPretaxcost(taxBefore);
+        serviceFundVO.setTaxedcost(taxAfter);
+        serviceFundService.updateById(serviceFundVO);
+//        //灏嗚绠楀ソ鐨勬暟鎹紝淇濆瓨鍒癲etail琛ㄤ腑
+//        serviceFunddetailService.saveBatch(serviceFunddetails);
         return AjaxResult.success(id);
     }
+
 
     /**
      * 瀹℃牳璐圭敤
@@ -616,7 +649,7 @@
     @PutMapping
     @RepeatSubmit
     public AjaxResult edit(@RequestBody ServiceFund serviceFund) {
-        List<ServiceFund> infoByInfoIdList = serviceFundService.getInfoByInfoId(serviceFund.getInfoid());
+        List<ServiceFund> infoByInfoIdList = serviceFundService.queryInfoById(serviceFund);
         for (ServiceFund sf : infoByInfoIdList) {
             //濡傛灉绛変簬100锛岃鏄庡凡缁忚蛋鍒板尰闄㈣储鍔¢偅杈逛簡锛涜储鍔¢偅杈瑰彇鏁版嵁鏄粠鍒嗕韩琛ㄥ彇锛屾墍浠ワ紝杩欓噷鐩存帴寰�鍒嗕韩琛ㄩ噷娣诲姞鏁版嵁灏辫浜�
             if (sf.getBackflowlevel() == 100 || sf.getBackflowlevel() == 199) {
@@ -711,11 +744,11 @@
         dataMap.put("JXZXM", serviceFund.getDonorname() == null ? "" : serviceFund.getDonorname());
         dataMap.put("JSR", serviceFund.getUsername() == null ? "" : serviceFund.getUsername());
 //        dataMap.put("FYXM1", "鏀粯涓撳璐圭敤锛屽叾涓◣鍓嶉噾棰�" + serviceFund.getPretaxcost() + "鍏冿紝绋庡悗閲戦" + serviceFund.getTaxedcost() + "鍏冦��");
-        dataMap.put("FYXM1", "浜轰綋鍣ㄥ畼鎹愮尞涓撳鍔冲姟璐�:" + serviceFund.getTaxedcost() + "鍏� (鍏朵腑绋庡悗璐圭敤鐢变腑蹇冩壙鎷呯◣璐�)銆�");
+        dataMap.put("FYXM1", "浜轰綋鍣ㄥ畼鎹愮尞涓撳鍔冲姟璐�:" + serviceFund.getPretaxcost() + "鍏� (鍏朵腑绋庡悗璐圭敤鐢变腑蹇冩壙鎷呯◣璐�)銆�");
         dataMap.put("FYXM2", "");
         dataMap.put("FYXM3", "");
-        dataMap.put("JEXS", serviceFund.getAmountrequested());
-        dataMap.put("JEDS", convert(serviceFund.getAmountrequested()) + "鏁�");
+        dataMap.put("JEXS", serviceFund.getPretaxcost());
+        dataMap.put("JEDS", convert(serviceFund.getPretaxcost()) + "鏁�");
         dataMap.put("BXBZ", serviceFund.getRemark() == null ? "" : serviceFund.getRemark());
 
 
@@ -765,16 +798,34 @@
         List<Double> sqljList = new ArrayList<>();
         List<Double> ksljList = new ArrayList<>();
         List<Double> shljList = new ArrayList<>();
-        Map<String, Optional<ServiceFunddetailAssort>> result = fd.stream().collect(Collectors.groupingBy(ServiceFunddetail::getSubjecttypename, Collectors.mapping(obj -> new ServiceFunddetailAssort(obj.getAmount(), obj.getTaxamount(), obj.getTaxedamount()), Collectors.reducing(ServiceFunddetailAssort::add))));
-        result.forEach((FWFL, serviceFunddetailAssort) -> {
+
+        //鏍规嵁鈥濈鐩被鍨嬪悕绉扳�滐紝鏉ヨ绠楃◣鍓嶆�诲拰锛岀◣閲戞�诲拰,绋庡悗鎬诲拰
+        Map<String, ServiceFunddetailAssort> funddetailMap = new HashMap<>();
+        for (ServiceFunddetail serviceFunddetail : fd) {
+            boolean b = funddetailMap.containsKey(serviceFunddetail.getSubjecttypename());
+            if (b == true) {
+                ServiceFunddetailAssort serviceFunddetailAssort = funddetailMap.get(serviceFunddetail.getSubjecttypename());
+                serviceFunddetailAssort.setKSXJ(serviceFunddetailAssort.getKSXJ() + serviceFunddetail.getTaxamount());
+                serviceFunddetailAssort.setSQXJ(serviceFunddetailAssort.getSQXJ() + serviceFunddetail.getAmount());
+                serviceFunddetailAssort.setSHXJ(serviceFunddetailAssort.getSHXJ() + serviceFunddetail.getTaxedamount());
+            } else {
+                funddetailMap.put(serviceFunddetail.getSubjecttypename(), new ServiceFunddetailAssort());
+                ServiceFunddetailAssort serviceFunddetailAssort = funddetailMap.get(serviceFunddetail.getSubjecttypename());
+                serviceFunddetailAssort.setKSXJ(serviceFunddetailAssort.getKSXJ() + serviceFunddetail.getTaxamount());
+                serviceFunddetailAssort.setSQXJ(serviceFunddetailAssort.getSQXJ() + serviceFunddetail.getAmount());
+                serviceFunddetailAssort.setSHXJ(serviceFunddetailAssort.getSHXJ() + serviceFunddetail.getTaxedamount());
+            }
+        }
+
+        funddetailMap.forEach((FWFL, serviceFunddetailAssort) -> {
             Map<String, Object> map1 = new HashMap<String, Object>();
             map1.put("FWFL", FWFL);
-            map1.put("SQXJ", serviceFunddetailAssort.get().getSQXJ());
-            map1.put("KSXJ", serviceFunddetailAssort.get().getKSXJ());
-            map1.put("SHXJ", serviceFunddetailAssort.get().getSHXJ());
-            sqljList.add(serviceFunddetailAssort.get().getSQXJ());
-            ksljList.add(serviceFunddetailAssort.get().getKSXJ());
-            shljList.add(serviceFunddetailAssort.get().getSHXJ());
+            map1.put("SQXJ", serviceFunddetailAssort.getSQXJ());
+            map1.put("KSXJ", serviceFunddetailAssort.getKSXJ());
+            map1.put("SHXJ", serviceFunddetailAssort.getSHXJ());
+            sqljList.add(serviceFunddetailAssort.getSQXJ());
+            ksljList.add(serviceFunddetailAssort.getKSXJ());
+            shljList.add(serviceFunddetailAssort.getSHXJ());
             lists.add(map1);
         });
 

--
Gitblit v1.9.3