From 08f0193d8bbd4dd9f68706ac1313f564b7219f95 Mon Sep 17 00:00:00 2001
From: liusheng <337615773@qq.com>
Date: 星期一, 16 十月 2023 16:05:09 +0800
Subject: [PATCH] 代码提交
---
ruoyi-project/src/main/java/com/ruoyi/project/service/impl/ServiceFunddetailServiceImpl.java | 93 +++++++++++++++++++++++++++++++++++++++++++---
1 files changed, 86 insertions(+), 7 deletions(-)
diff --git a/ruoyi-project/src/main/java/com/ruoyi/project/service/impl/ServiceFunddetailServiceImpl.java b/ruoyi-project/src/main/java/com/ruoyi/project/service/impl/ServiceFunddetailServiceImpl.java
index aae29db..78a704c 100644
--- a/ruoyi-project/src/main/java/com/ruoyi/project/service/impl/ServiceFunddetailServiceImpl.java
+++ b/ruoyi-project/src/main/java/com/ruoyi/project/service/impl/ServiceFunddetailServiceImpl.java
@@ -5,12 +5,11 @@
import java.time.LocalDate;
import java.time.ZoneId;
import java.time.temporal.TemporalAdjusters;
-import java.util.ArrayList;
-import java.util.Date;
-import java.util.List;
+import java.util.*;
import com.alibaba.fastjson.JSONArray;
import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
+import com.ruoyi.common.tax.PerformanceTaxtUtils;
import com.ruoyi.common.tax.TaxtUtils;
import com.ruoyi.common.utils.bean.DtoConversionUtils;
import com.ruoyi.project.domain.*;
@@ -81,6 +80,18 @@
}
if (serviceFunddetail.getUploadtime() != null) {
wrappers.eq(ServiceFunddetail::getUploadtime, serviceFunddetail.getUploadtime());
+ }
+ if (serviceFunddetail.getJxrq() != null) {
+ wrappers.like(ServiceFunddetail::getJxrq, serviceFunddetail.getJxrq());
+ }
+ if (StringUtils.isNotBlank(serviceFunddetail.getIdcardno())) {
+ wrappers.eq(ServiceFunddetail::getIdcardno, serviceFunddetail.getIdcardno());
+ }
+ if (StringUtils.isNotBlank(serviceFunddetail.getApplytype())) {
+ wrappers.eq(ServiceFunddetail::getApplytype, serviceFunddetail.getApplytype());
+ }
+ if (serviceFunddetail.getDel_flag() != null) {
+ wrappers.eq(ServiceFunddetail::getDel_flag, serviceFunddetail.getDel_flag());
}
return this.list(wrappers);
}
@@ -245,6 +256,8 @@
//鐢ㄤ簬涓存椂淇濆瓨宸茬粡绠楀ソ鐨�"璐圭敤璇︽儏鏁版嵁"
List<ServiceFunddetail> temporarySave = new ArrayList<>();
+ //淇濆瓨鎬荤◣鍓嶉噾棰濓紙鐢ㄤ簬鏇存柊fund琛ㄩ噷鐨勶級
+ BigDecimal pretaxcost = BigDecimal.valueOf(0.00);
for (ServiceFunddetail serviceFunddetail : serviceFunddetails) {
//鑾峰彇褰撴湀鐨勭涓�澶�
Date firstDay = Date.from(LocalDate.now().with(TemporalAdjusters.firstDayOfMonth()).atStartOfDay(ZoneId.systemDefault()).toInstant());
@@ -254,9 +267,10 @@
taxMoneyVO.setTaxTime(new Date());
taxMoneyVO.setFirstDay(firstDay);
- taxMoneyVO.setApplyType(Long.valueOf(serviceFunddetail.getApplytype()));
+// taxMoneyVO.setApplyType(Long.valueOf(serviceFunddetail.getApplytype()));
taxMoneyVO.setFundID(serviceFunddetail.getFundid());
- taxMoneyVO.setBeneficiaryNo(serviceFunddetail.getBeneficiaryno());
+// taxMoneyVO.setBeneficiaryNo(serviceFunddetail.getBeneficiaryno());
+ taxMoneyVO.setIDCard(serviceFunddetail.getIdcardno());
//鏌ュ嚭绋庡墠銆佺◣銆佺◣鍚庣殑鎬婚锛堜笉鍖呭惈鏈锛�
TaxMoneySumEO taxSum = serviceFunddetailMapper.getTaxSum(taxMoneyVO);
if (ObjectUtils.isEmpty(taxSum)) {
@@ -266,8 +280,9 @@
//鍒ゆ柇涓存椂闆嗗悎temporarySave涓紝鏈夋病鏈夊凡缁忕畻杩囩殑鏁版嵁
if (CollectionUtils.isNotEmpty(temporarySave)) {
for (ServiceFunddetail serviceFunddetail1 : temporarySave) {
- //濡傛灉鏈鐨勨�濅汉鍛樼被鍨嬧�溿�佲�濆彈鐩婁汉缂栧彿鈥滃湪涓存椂闆嗗悎涓瓨鍦紝鍒欏皢闆嗗悎鏁版嵁涓殑璇ュ彈鐩婁汉鐨勶紝绋庡墠銆佺◣閲戙�佺◣鍚庯紝鍜屾�荤殑鐩稿姞锛屽苟灏嗚�佺殑瑕嗙洊
- if (serviceFunddetail1.getApplytype().equals(serviceFunddetail.getApplytype()) && serviceFunddetail1.getBeneficiaryno().equals(serviceFunddetail.getBeneficiaryno())) {
+ //濡傛灉鏈鐨勨�濅汉鍛樼被鍨嬧�溿�佲�濊韩浠借瘉鍙封�滃湪涓存椂闆嗗悎涓瓨鍦紝鍒欏皢闆嗗悎鏁版嵁涓殑璇ュ彈鐩婁汉鐨勶紝绋庡墠銆佺◣閲戙�佺◣鍚庯紝鍜屾�荤殑鐩稿姞锛屽苟灏嗚�佺殑瑕嗙洊
+ // if (serviceFunddetail1.getApplytype().equals(serviceFunddetail.getApplytype()) && serviceFunddetail1.getBeneficiaryno().equals(serviceFunddetail.getBeneficiaryno())) {
+ if (serviceFunddetail1.getIdcardno().equals(serviceFunddetail.getIdcardno())) {
//灏嗛泦鍚堟暟鎹腑鐨勮鍙楃泭浜虹殑锛岀◣鍓嶃�佺◣閲戙�佺◣鍚庯紝鍜屾�荤殑鐩稿姞
BigDecimal amounts = BigDecimal.valueOf(taxSum.getAmounts()).add(new BigDecimal(String.valueOf(serviceFunddetail1.getAmount())));
BigDecimal taxAmounts = BigDecimal.valueOf(taxSum.getTaxAmounts()).add(new BigDecimal(String.valueOf(serviceFunddetail1.getTaxamount())));
@@ -300,6 +315,7 @@
serviceFunddetail3.setTaxTime(new Date());
// 灏嗚鏉℃暟鎹洿鏂�
updateById(serviceFunddetail3);
+ pretaxcost = pretaxcost.add(BigDecimal.valueOf(serviceFunddetail.getAmount()));
// 鎶婅鏁版嵁锛屾斁鍒颁复鏃剁殑闆嗗悎涓�
temporarySave.add(serviceFunddetail3);
} else if (serviceFunddetail.getServicesscopename().contains("绋庡悗")) {
@@ -321,11 +337,74 @@
serviceFunddetail3.setTaxTime(new Date());
// 灏嗚鏉℃暟鎹洿鏂�
updateById(serviceFunddetail3);
+ pretaxcost = pretaxcost.add(BigDecimal.valueOf(serviceFunddetail3.getAmount()));
// 鎶婅鏁版嵁锛屾斁鍒颁复鏃剁殑闆嗗悎涓�
temporarySave.add(serviceFunddetail3);
}
}
+ ServiceFund serviceFund = new ServiceFund();
+ serviceFund.setPretaxcost(pretaxcost.doubleValue());
+ serviceFund.setId(serviceFunddetails.get(0).getFundid());
+ serviceFundMapper.updateById(serviceFund);
+
return true;
}
+ @Override
+ public Map<String, Double> performance(ServiceFunddetail serviceFunddetail) {
+ //鏍规嵁"韬唤璇佸彿"鍜�"缁╂晥鏃ユ湡(骞翠唤)"鏌ヨ涓汉鍘嗗彶缁╂晥
+ ServiceFunddetail serviceFunddetailEo = new ServiceFunddetail();
+ serviceFunddetailEo.setIdcardno(serviceFunddetail.getIdcardno());
+ serviceFunddetailEo.setApplytype("5");
+ Calendar cal = Calendar.getInstance();
+ //榛樿鏈勾搴�
+ serviceFunddetailEo.setJxrq(String.valueOf(cal.get(Calendar.YEAR)));
+ List<ServiceFunddetail> serviceFunddetails = queryList(serviceFunddetailEo);
+
+ //缁熻鍘嗗彶鐨勭◣
+ BigDecimal historyTax = BigDecimal.valueOf(0.00);
+ //璁$畻鎵e幓姣忔湀5000鐨勫巻鍙茬◣鍓嶉噾棰�
+ BigDecimal historyTaxBefore = BigDecimal.valueOf(0.00);
+ //鏈湀鏄惁宸茬粡绠楄繃缁╂晥锛堜笅闈㈡墸闄�5000闇�瑕佺敤鍒拌繖涓紝濡傛灉鏈湀宸茬粡鎵h繃5000锛屽氨涓嶅啀鎵d簡锛�
+ Boolean deduct = false;
+ //鑾峰彇褰撳墠鏈堜唤
+ Date date = new Date();
+ SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM");
+ String nowMonth = sdf.format(date);
+
+ for (ServiceFunddetail serviceFunddetail1 : serviceFunddetails) {
+ historyTaxBefore = historyTaxBefore.add(BigDecimal.valueOf(serviceFunddetail1.getAmount())).subtract(BigDecimal.valueOf(5000));
+ historyTax = historyTax.add(BigDecimal.valueOf(serviceFunddetail1.getTaxamount()));
+ if (serviceFunddetail1.getJxrq().equals(nowMonth)) {
+ deduct = true;
+ }
+ }
+ BigDecimal allValue = BigDecimal.valueOf(0.00);
+ //鍏堟煡璇竴涓嬫湰鏈堟槸鍚﹀凡缁忕畻杩囩哗鏁堬紙涓�涓湀鍙噺涓�娆�5000锛屽鏋滀笂涓�娆″凡缁忓噺杩囷紝杩欎竴娆″氨涓嶅湪鍑忎簡锛�
+ if (deduct == true) {
+ //鏈湀宸茬粡鍑忚繃5000浜�
+ allValue = historyTaxBefore.add(BigDecimal.valueOf(serviceFunddetail.getAmount()));
+ } else {
+ BigDecimal subtract = BigDecimal.valueOf(serviceFunddetail.getAmount()).subtract(BigDecimal.valueOf(5000));
+ allValue = historyTaxBefore.add(subtract);
+ }
+ //璁$畻鍔犱笂鏈鐨勭◣鍓嶉噾棰濈殑鎬荤◣
+ BigDecimal personTaxation = PerformanceTaxtUtils.getPersonTaxation(allValue);
+ //璁$畻鏈鐨勭◣
+ BigDecimal nowSingleTax = personTaxation.subtract(historyTax);
+ //璁$畻鏈鐨勭◣鍚�
+ BigDecimal taxAfter = BigDecimal.valueOf(serviceFunddetail.getAmount()).subtract(nowSingleTax);
+
+ //灏嗚绠楀嚭鏉ョ殑鏁版嵁鏀惧埌serviceFunddetail涓�
+ serviceFunddetail.setTaxamount(nowSingleTax.doubleValue());
+ serviceFunddetail.setTaxedamount(taxAfter.doubleValue());
+ serviceFunddetail.setJxrq(nowMonth);
+
+ save(serviceFunddetail);
+ Map map = new HashMap();
+ map.put("amount", serviceFunddetail.getAmount());
+ map.put("taxedamount", taxAfter.doubleValue());
+ return map;
+ }
+
}
--
Gitblit v1.9.3