From da3edb56ef670c58f6de09d28fde986d6be5a845 Mon Sep 17 00:00:00 2001
From: liusheng <337615773@qq.com>
Date: 星期三, 27 九月 2023 17:00:19 +0800
Subject: [PATCH] 代码提交

---
 ruoyi-project/src/main/java/com/ruoyi/project/service/impl/ServiceFunddetailServiceImpl.java |   77 ++++++++++++++++++++++++++++++++++++--
 1 files changed, 73 insertions(+), 4 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 cce249e..ffafa84 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);
     }
@@ -256,7 +267,8 @@
             taxMoneyVO.setFirstDay(firstDay);
 //            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)) {
@@ -329,4 +341,61 @@
         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