From 4237cf7ce201652d7df7069dca3f3aac8b438a0d Mon Sep 17 00:00:00 2001 From: liusheng <337615773@qq.com> Date: 星期四, 27 七月 2023 17:01:54 +0800 Subject: [PATCH] 代码修改 --- ruoyi-admin/src/main/java/com/ruoyi/web/controller/project/ServiceFundController.java | 54 ++++++++++++++++++++++++++++++++++++++++-------------- 1 files changed, 40 insertions(+), 14 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..9c08f28 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 @@ -438,29 +438,37 @@ // } 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().equals(Double.NaN) && !serviceFunddetail.getAmount().equals(Double.NaN)) { + if (serviceFunddetail.getTaxedamount() != 0.0 && serviceFunddetail.getAmount() != 0.0 && serviceFunddetail.getTaxedamount() != null && serviceFunddetail.getTaxedamount() != null) { // 绋庡墠绋庡悗閮戒笉涓虹┖ continue; - } else if (!serviceFunddetail.getTaxedamount().equals(Double.NaN)) { + } 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)); - } else if (!serviceFunddetail.getAmount().equals(Double.NaN)) { + } 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()); } - + taxBefore = taxBefore + serviceFunddetail.getAmount(); + taxAfter = taxAfter + serviceFunddetail.getTaxedamount(); } - - + //灏嗙◣鍓嶃�佺◣鍚庨噾棰濇洿鏂板埌fund琛ㄤ腑 + serviceFundVO.setPretaxcost(taxBefore); + serviceFundVO.setTaxedcost(taxAfter); + serviceFundService.updateById(serviceFundVO); + //灏嗚绠楀ソ鐨勬暟鎹紝淇濆瓨鍒癲etail琛ㄤ腑 serviceFunddetailService.saveBatch(serviceFunddetails); return AjaxResult.success(id); } @@ -765,16 +773,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