From 21619ffd680dfc66682ca3b6761eda5b74bdb70a Mon Sep 17 00:00:00 2001 From: liusheng <337615773@qq.com> Date: 星期三, 02 八月 2023 15:34:26 +0800 Subject: [PATCH] 专家劳务下载bug修复 --- ruoyi-admin/src/main/java/com/ruoyi/web/controller/project/ServiceFundController.java | 117 +++++++++++++++++++++++++++++++++++++++++++++++----------- 1 files changed, 95 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 b266873..2e8ae0f 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 @@ -11,6 +11,8 @@ import com.ruoyi.common.core.page.TableDataInfo; 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.*; @@ -426,20 +428,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)); - serviceFunddetailService.saveBatch(serviceFunddetails); + + 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.getAmount() != null) { + // 绋庡墠绋庡悗閮戒笉涓虹┖ + if (serviceFunddetail.getId() == null) { + serviceFunddetailService.save(serviceFunddetail); + } else { + serviceFunddetailService.updateById(serviceFunddetail); + } + continue; + } 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(); + } + } + //灏嗙◣鍓嶃�佺◣鍚庨噾棰濇洿鏂板埌fund琛ㄤ腑 + serviceFundVO.setPretaxcost(taxBefore); + serviceFundVO.setTaxedcost(taxAfter); + serviceFundService.updateById(serviceFundVO); +// //灏嗚绠楀ソ鐨勬暟鎹紝淇濆瓨鍒癲etail琛ㄤ腑 +// serviceFunddetailService.saveBatch(serviceFunddetails); return AjaxResult.success(id); } + /** * 瀹℃牳璐圭敤 @@ -592,7 +647,7 @@ @PutMapping @RepeatSubmit public AjaxResult edit(@RequestBody ServiceFund serviceFund) { - List<ServiceFund> infoByInfoIdList = serviceFundService.getInfoByInfoId(serviceFund.getId()); + List<ServiceFund> infoByInfoIdList = serviceFundService.queryInfoById(serviceFund); for (ServiceFund sf : infoByInfoIdList) { //濡傛灉绛変簬100锛岃鏄庡凡缁忚蛋鍒板尰闄㈣储鍔¢偅杈逛簡锛涜储鍔¢偅杈瑰彇鏁版嵁鏄粠鍒嗕韩琛ㄥ彇锛屾墍浠ワ紝杩欓噷鐩存帴寰�鍒嗕韩琛ㄩ噷娣诲姞鏁版嵁灏辫浜� if (sf.getBackflowlevel() == 100 || sf.getBackflowlevel() == 199) { @@ -687,11 +742,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()); @@ -741,16 +796,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::getApplytypename, 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); }); @@ -771,7 +844,7 @@ dataMap.put("list", newsList); for (int i = 0; i < lists.size(); i++) { Map<String, Object> map = lists.get(i); - map.put("XH", i+1); + map.put("XH", i + 1); } dataMap.put("item", lists); -- Gitblit v1.9.3