liusheng
2023-11-13 318ff5bea1f2e41f6496da525ae7f9a3833d081d
ruoyi-project/src/main/java/com/ruoyi/project/service/impl/ServiceFundServiceImpl.java
@@ -1,6 +1,7 @@
package com.ruoyi.project.service.impl;
import java.io.File;
import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
@@ -690,14 +691,11 @@
        if (CollectionUtils.isEmpty(serviceFunddetails)) {
            throw new BaseException("serviceFunddetails为空喽");
        }
        BigDecimal bigDecimal = new BigDecimal(0.0);
        // 保存详情数据
        for (ServiceFunddetailVO serviceFunddetailVO : serviceFunddetails) {
            if (StringUtils.isEmpty(serviceFunddetailVO.getIdcardno())) {
                throw new BaseException("请检查身份证号,身份证号为空了,姓名:" + serviceFunddetailVO.getBeneficiaryname());
            }
            if (StringUtils.isEmpty(serviceFunddetailVO.getTitle()) || ChineseUtils.isChinese(serviceFunddetailVO.getTitle())) {
                throw new BaseException("请检查职称是否为空(或不是中文),姓名:" + serviceFunddetailVO.getBeneficiaryname() + "  职称:" + serviceFunddetailVO.getTitle());
            }
            if (StringUtils.isEmpty(serviceFunddetailVO.getBankcardno())) {
                throw new BaseException("请检查银行卡号是否为空,姓名:" + serviceFunddetailVO.getBeneficiaryname());
            }
@@ -716,8 +714,13 @@
            } else {
                serviceFunddetailService.updateById(serviceFunddetail);
            }
        }
            bigDecimal = bigDecimal.add(BigDecimal.valueOf(serviceFunddetailVO.getAmount()));
        }
        serviceFundVO.setPretaxcost(bigDecimal.doubleValue());
        serviceFundMapper.updateById(serviceFundVO);
        return id;
    }
@@ -758,7 +761,12 @@
    }
    @Override
    public Boolean totaltax(TotalTaxVO totalTaxVO) {
    public Map<String, List<ServiceFunddetailExcel>> totaltax(TotalTaxVO totalTaxVO) {
        if (CollectionUtils.isEmpty(totalTaxVO.getFundids())) {
            throw new BaseException("请勾选之后,再进行合计个税");
        }
        Map<String, List<ServiceFunddetailExcel>> map = new HashMap<>();
        if (totalTaxVO.getIsTaxAfter() == null) {
            //如何为空,默认当没有算过税,进行合计
            totalTaxVO.setIsTaxAfter(0);
@@ -770,8 +778,6 @@
        //用于返回excel
        List<ServiceFunddetailExcel> serviceFunddetailList = new ArrayList<>();
        //打印excel
        ExcelUtil<ServiceFunddetailExcel> util = new ExcelUtil<ServiceFunddetailExcel>(ServiceFunddetailExcel.class);
        if (totalTaxVO.getIsTaxAfter() == 1) {
            //通过受益人名称,将税前、税后的值相加
@@ -796,8 +802,10 @@
                }
                serviceFunddetailList.add(serviceFunddetailExcel);
            }
            //打印算过税之后的,合计excel
            util.exportExcel(serviceFunddetailList, "合计个税(税后)");
            //返回算过税之后的,合计
            map.put("合计个税(税后)", serviceFunddetailList);
            return map;
        } else {
            a:
            for (ServiceFunddetail serviceFunddetail : serviceFunddetails) {
@@ -814,7 +822,11 @@
                for (ServiceFunddetail serviceFunddetail2 : serviceFunddetails) {
                    if (StringUtils.isEmpty(serviceFunddetail2.getServicesscopename())) {
                        throw new BaseException("服务说明为空,请检查后再计算");
                        ServiceFund serviceFund = null;
                        if (serviceFunddetail2.getFundid() == null) {
                            serviceFund = serviceFundMapper.selectById(serviceFunddetail2.getFundid());
                        }
                        throw new BaseException("服务说明为空,请检查后再计算,捐献者为 :" + serviceFund.getDonorname());
                    }
                    if (serviceFunddetail.getBeneficiaryname().equals(serviceFunddetail2.getBeneficiaryname()) && !(serviceFunddetail2.getServicesscopename().equals("税后"))) {
                        //累计税前
@@ -856,10 +868,10 @@
                if (ObjectUtils.isNotEmpty(sfeAfter.getBeneficiaryname())) serviceFunddetailList.add(sfeAfter);
            }
            //打印算税之前的,合计excel
            util.exportExcel(serviceFunddetailList, "合计个税(税前)");
            //返回算税之前的,合计
            map.put("合计个税(税前)", serviceFunddetailList);
            return map;
        }
        return true;
    }