liusheng
2023-07-27 3de54185395aa599ec16483ac9d283271e6c8d29
ruoyi-admin/src/main/java/com/ruoyi/web/controller/project/ServiceFundController.java
@@ -11,6 +11,7 @@
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.bean.DtoConversionUtils;
import com.ruoyi.common.utils.poi.ExcelUtil;
import com.ruoyi.project.domain.*;
@@ -436,7 +437,30 @@
//            addReiSharedDatd(serviceFundVO, 1);
//        }
        List<ServiceFunddetail> serviceFunddetails = serviceFundVO.getServiceFunddetails();
        serviceFunddetails.forEach(item -> item.setFundid(id));
//        serviceFunddetails.forEach(item -> item.setFundid(id));
        for (ServiceFunddetail serviceFunddetail : serviceFunddetails) {
            serviceFunddetail.setFundid(id);
            if (!serviceFunddetail.getTaxedamount().equals(Double.NaN) && !serviceFunddetail.getAmount().equals(Double.NaN)) {
                // 税前税后都不为空
                continue;
            } else if (!serviceFunddetail.getTaxedamount().equals(Double.NaN)) {
                // 税后求税前
                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().equals(Double.NaN)) {
                // 税前求税后
                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());
            }
        }
        serviceFunddetailService.saveBatch(serviceFunddetails);
        return AjaxResult.success(id);
    }
@@ -592,7 +616,7 @@
    @PutMapping
    @RepeatSubmit
    public AjaxResult edit(@RequestBody ServiceFund serviceFund) {
        List<ServiceFund> infoByInfoIdList = serviceFundService.getInfoByInfoId(serviceFund.getId());
        List<ServiceFund> infoByInfoIdList = serviceFundService.getInfoByInfoId(serviceFund.getInfoid());
        for (ServiceFund sf : infoByInfoIdList) {
            //如果等于100,说明已经走到医院财务那边了;财务那边取数据是从分享表取,所以,这里直接往分享表里添加数据就行了
            if (sf.getBackflowlevel() == 100 || sf.getBackflowlevel() == 199) {
@@ -741,7 +765,7 @@
        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))));
        Map<String, Optional<ServiceFunddetailAssort>> result = fd.stream().collect(Collectors.groupingBy(ServiceFunddetail::getSubjecttypename, Collectors.mapping(obj -> new ServiceFunddetailAssort(obj.getAmount(), obj.getTaxamount(), obj.getTaxedamount()), Collectors.reducing(ServiceFunddetailAssort::add))));
        result.forEach((FWFL, serviceFunddetailAssort) -> {
            Map<String, Object> map1 = new HashMap<String, Object>();
            map1.put("FWFL", FWFL);
@@ -771,7 +795,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);