From 940da0ee2cb7360710acf054de4dc07d2b7dafcc Mon Sep 17 00:00:00 2001 From: liusheng <337615773@qq.com> Date: 星期二, 07 十一月 2023 17:40:07 +0800 Subject: [PATCH] 合计个税 --- ruoyi-project/src/main/java/com/ruoyi/project/service/impl/ServiceFundServiceImpl.java | 100 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 100 insertions(+), 0 deletions(-) diff --git a/ruoyi-project/src/main/java/com/ruoyi/project/service/impl/ServiceFundServiceImpl.java b/ruoyi-project/src/main/java/com/ruoyi/project/service/impl/ServiceFundServiceImpl.java index 89b93c7..01c8600 100644 --- a/ruoyi-project/src/main/java/com/ruoyi/project/service/impl/ServiceFundServiceImpl.java +++ b/ruoyi-project/src/main/java/com/ruoyi/project/service/impl/ServiceFundServiceImpl.java @@ -8,6 +8,7 @@ import java.util.Map; import java.util.concurrent.locks.Lock; import java.util.concurrent.locks.LockSupport; +import java.util.stream.Collectors; import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONArray; @@ -16,6 +17,7 @@ import com.ruoyi.common.tax.TaxtUtils; import com.ruoyi.common.utils.HttpClientKit; import com.ruoyi.common.utils.bean.DtoConversionUtils; +import com.ruoyi.common.utils.poi.ExcelUtil; import com.ruoyi.project.domain.*; import com.ruoyi.project.domain.vo.*; import com.ruoyi.project.mapper.*; @@ -750,6 +752,104 @@ return map; } + @Override + public Boolean totaltax(TotalTaxVO totalTaxVO) { + if (totalTaxVO.getIsTaxAfter() == null) { + //濡備綍涓虹┖锛岄粯璁ゅ綋娌℃湁绠楄繃绋庯紝杩涜鍚堣 + totalTaxVO.setIsTaxAfter(0); + } + List<ServiceFunddetail> serviceFunddetails = serviceFunddetailMapper.totlaTax(totalTaxVO.getFundids()); + + //鐢ㄤ簬杩斿洖excel + List<ServiceFunddetailExcel> serviceFunddetailList = new ArrayList<>(); + //鎵撳嵃excel + ExcelUtil<ServiceFunddetailExcel> util = new ExcelUtil<ServiceFunddetailExcel>(ServiceFunddetailExcel.class); + + if (totalTaxVO.getIsTaxAfter() == 1) { + //閫氳繃鍙楃泭浜哄悕绉帮紝灏嗙◣鍓嶃�佺◣鍚庣殑鍊肩浉鍔� + Map<String, Double> sumAmount = serviceFunddetails.stream().collect(Collectors.groupingBy(ServiceFunddetail::getBeneficiaryname, Collectors.summingDouble(ServiceFunddetail::getAmount))); + Map<String, Double> sumTaxdAmount = serviceFunddetails.stream().collect(Collectors.groupingBy(ServiceFunddetail::getBeneficiaryname, Collectors.summingDouble(ServiceFunddetail::getTaxedamount))); + + for (String key : sumAmount.keySet()) { + ServiceFunddetailExcel serviceFunddetailExcel = new ServiceFunddetailExcel(); + serviceFunddetailExcel.setAmount(sumAmount.getOrDefault(key, 0.0)); + serviceFunddetailExcel.setTaxedamount(sumTaxdAmount.getOrDefault(key, 0.0)); + for (ServiceFunddetail serviceFunddetail2 : serviceFunddetails) { + if (serviceFunddetail2.getBeneficiaryname().equals(key)) { + serviceFunddetailExcel.setIdcardno(serviceFunddetail2.getIdcardno()); + serviceFunddetailExcel.setBankcardno(serviceFunddetail2.getBankcardno()); + serviceFunddetailExcel.setBeneficiaryname(serviceFunddetail2.getBeneficiaryname()); + serviceFunddetailExcel.setDepositbank(serviceFunddetail2.getDepositbank()); + serviceFunddetailExcel.setBranchbankname(serviceFunddetail2.getBranchbankname()); + serviceFunddetailExcel.setDonorname(serviceFunddetail2.getDonorname()); + serviceFunddetailExcel.setPhone(serviceFunddetail2.getPhone()); + break; + } + } + serviceFunddetailList.add(serviceFunddetailExcel); + } + //鎵撳嵃绠楄繃绋庝箣鍚庣殑锛屽悎璁xcel + util.exportExcel(serviceFunddetailList, "鍚堣涓◣锛堢◣鍚庯級"); + } else { + a : for (ServiceFunddetail serviceFunddetail : serviceFunddetails) { + ServiceFunddetailExcel sfeBefore = new ServiceFunddetailExcel(); + ServiceFunddetailExcel sfeAfter = new ServiceFunddetailExcel(); + + for (ServiceFunddetailExcel serviceFunddetailExcel : serviceFunddetailList) { + //鍒ゆ柇涓�涓嬶紝璇ュ彈鐩婁汉鏄惁宸茬粡璁$畻杩囷紝宸茬粡璁$畻杩囦簡锛屽氨涓嶇畻浜� + if (serviceFunddetail.getBeneficiaryname().trim().equals(serviceFunddetailExcel.getBeneficiaryname().trim())) { + continue a; + } + } + + + for (ServiceFunddetail serviceFunddetail2 : serviceFunddetails) { + if (serviceFunddetail.getBeneficiaryname().trim().equals(serviceFunddetail2.getBeneficiaryname().trim()) && !(serviceFunddetail2.getServicesscopename().trim().equals("绋庡悗"))) { + //绱绋庡墠 + sfeBefore.setIdcardno(serviceFunddetail2.getIdcardno()); + sfeBefore.setBankcardno(serviceFunddetail2.getBankcardno()); + sfeBefore.setBeneficiaryname(serviceFunddetail2.getBeneficiaryname()); + sfeBefore.setDepositbank(serviceFunddetail2.getDepositbank()); + sfeBefore.setBranchbankname(serviceFunddetail2.getBranchbankname()); + sfeBefore.setDonorname(serviceFunddetail2.getDonorname()); + sfeBefore.setPhone(serviceFunddetail2.getPhone()); + if (sfeBefore.getAmount() == null) { + sfeBefore.setAmount(serviceFunddetail2.getAmount()); + } else { + sfeBefore.setAmount(sfeBefore.getAmount() + serviceFunddetail2.getAmount()); + } + sfeBefore.setTaxedamount(null); + + } else if (serviceFunddetail.getBeneficiaryname().trim().equals(serviceFunddetail2.getBeneficiaryname().trim()) && serviceFunddetail2.getServicesscopename().trim().equals("绋庡悗")) { + //绱绋庡悗 + sfeAfter.setIdcardno(serviceFunddetail2.getIdcardno()); + sfeAfter.setBankcardno(serviceFunddetail2.getBankcardno()); + sfeAfter.setBeneficiaryname(serviceFunddetail2.getBeneficiaryname()); + sfeAfter.setDepositbank(serviceFunddetail2.getDepositbank()); + sfeAfter.setBranchbankname(serviceFunddetail2.getBranchbankname()); + sfeAfter.setDonorname(serviceFunddetail2.getDonorname()); + sfeAfter.setPhone(serviceFunddetail2.getPhone()); + sfeAfter.setAmount(null); + if (sfeAfter.getTaxedamount() == null) { + sfeAfter.setTaxedamount(serviceFunddetail2.getTaxedamount()); + } else { + sfeAfter.setTaxedamount(sfeAfter.getTaxedamount() + serviceFunddetail2.getTaxedamount()); + } + } + + } + //灏嗚绠楀ソ鐨勭◣鍓嶆�诲�笺�佺◣鍚庢�诲�硷紝鏀惧埌List涓� + if (ObjectUtils.isNotEmpty(sfeBefore.getBeneficiaryname())) serviceFunddetailList.add(sfeBefore); + + if (ObjectUtils.isNotEmpty(sfeAfter.getBeneficiaryname())) serviceFunddetailList.add(sfeAfter); + + } + //鎵撳嵃绠楃◣涔嬪墠鐨勶紝鍚堣excel + util.exportExcel(serviceFunddetailList, "鍚堣涓◣锛堢◣鍓嶏級"); + } + return true; + } + int uploadOAFileAndUpdateDb(ServiceFunddetailShared remShare) { //涓婁紶OA鏂囦欢 -- Gitblit v1.9.3