Browse Source

2022年11月14日17:26:11

纪新园 2 years ago
parent
commit
56a269268c

+ 27 - 10
ruoyi-warehouse/src/main/java/com/ruoyi/finance/service/impl/TFeeServiceImpl.java

@@ -3,6 +3,7 @@ package com.ruoyi.finance.service.impl;
 import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONObject;
 import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
+import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
 import com.ruoyi.approvalFlow.domain.AuditItems;
 import com.ruoyi.approvalFlow.service.impl.AuditItemsAbout;
 import com.ruoyi.approvalFlow.service.impl.AuditItemsServiceImpl;
@@ -75,6 +76,7 @@ import java.io.File;
 import java.io.FileOutputStream;
 import java.io.OutputStream;
 import java.math.BigDecimal;
+import java.text.ParseException;
 import java.text.SimpleDateFormat;
 import java.util.*;
 import java.util.stream.Collectors;
@@ -727,20 +729,35 @@ public class TFeeServiceImpl implements ITFeeService {
             tWareHouseFees.setTimeExamine(null);
         }
         List<FeeVO> list = tFeeMapper.selectFinancialLedgerList(tWareHouseFees);
-        for (FeeVO feeVO:list) {
+        for (int i = 0; i < list.size(); i++) {
             FeeDTO feeDTO = new FeeDTO();
             feeDTO.setFDc(tWareHouseFees.getfDc());
-            feeDTO.setFCorpId(feeVO.getfCorpid());
-            feeDTO.setFAuditList(tWareHouseFees.getTimeExamine());
-            feeDTO.setFBstimeExamine(tWareHouseFees.getfBstimeExamine());
+            feeDTO.setFCorpId(list.get(i).getfCorpid());
+            BigDecimal amount = new BigDecimal("0.00");
+            BigDecimal stlamount = new BigDecimal("0.00");
+            if (ObjectUtils.isNotNull(list.get(i).getReviewDate())) {
+                List<String> list1 = new ArrayList<>();
+                list1.add(list.get(i).getReviewDate());
+                list1.add(list.get(i).getReviewDate());
+                if (tWareHouseFees.getSwitchSection() == 1) {
+                    feeDTO.setFAuditList(list1);
+                } else {
+                    feeDTO.setFBstimeExamine(list1);
+                }
+            } else {
+                feeDTO.setFAuditList(null);
+                feeDTO.setFBstimeExamine(null);
+            }
+
             List<FeeVO> feeVOList = tFeeMapper.selectFinancialLedgerDetails(feeDTO);
             // 应收费用
-            BigDecimal amount = feeVOList.stream().map(FeeVO::getFAmount).reduce(BigDecimal::add).orElse(BigDecimal.ZERO);
+            amount = amount.add(feeVOList.stream().map(FeeVO::getFAmount).reduce(BigDecimal::add).orElse(BigDecimal.ZERO));
             // 已收费用
-            BigDecimal stlamount = feeVOList.stream().map(FeeVO::getFStlamount).reduce(BigDecimal::add).orElse(BigDecimal.ZERO);
-            feeVO.setFAmount(amount);
-            feeVO.setNnfinished(amount.subtract(stlamount));
-            feeVO.setFStlamount(stlamount);
+            stlamount = stlamount.add(feeVOList.stream().map(FeeVO::getFStlamount).reduce(BigDecimal::add).orElse(BigDecimal.ZERO));
+
+            list.get(i).setFAmount(amount);
+            list.get(i).setNnfinished(amount.subtract(stlamount));
+            list.get(i).setFStlamount(stlamount);
         }
         return list;
     }
@@ -1901,7 +1918,7 @@ public class TFeeServiceImpl implements ITFeeService {
             map.put("message", "费用明细数据有误,请找管理员");
         } else if ("DZ".equals(type) || "KHDZ".equals(type)) {
             BigDecimal subtract = amount.subtract(accamount);
-            if(subtract.compareTo(new BigDecimal(0)) == 0){
+            if (subtract.compareTo(new BigDecimal(0)) == 0) {
                 if (subtract.compareTo(money) <= 0) {
                     flag = false;
                     map.put("message", "提单号" + bills.getfMblno() + "的" + tFees.getfName() + "对账金额超过可对账金额,当前可对账金额为" + subtract + "元");