浏览代码

利润结算BUG修复

caozj 2 年之前
父节点
当前提交
effa636e5e
共有 1 个文件被更改,包括 23 次插入23 次删除
  1. 23 23
      hx-sale/src/main/java/com/fjhx/sale/service/statement/impl/SaleStatementServiceImpl.java

+ 23 - 23
hx-sale/src/main/java/com/fjhx/sale/service/statement/impl/SaleStatementServiceImpl.java

@@ -263,37 +263,39 @@ public class SaleStatementServiceImpl implements SaleStatementService {
                  * 处理到账金额
                  */
                 List<ClaimContract> cList = claimContractMap.getOrDefault(p.getContractId(),null);
-                BigDecimal contractArrival = cList.stream().map(claimContract -> {
-                    //获取汇率
-                    BigDecimal rate = assignCurrencyRatesMap.getOrDefault(claimContract.getCurrency(),BigDecimal.ONE);
-                    // 获取认领金额
-                    BigDecimal money = claimContract.getMoney();
-                    // 返回兑人民币后金额
-                    return rate.multiply(money);
-                }).reduce(BigDecimal.ZERO, BigDecimal::add);
-                p.setContractArrival(contractArrival);
+                if(CollectionUtils.isNotEmpty(cList)){
+                    BigDecimal contractArrival = cList.stream().map(claimContract -> {
+                        //获取汇率
+                        BigDecimal rate = assignCurrencyRatesMap.getOrDefault(claimContract.getCurrency(),BigDecimal.ONE);
+                        // 获取认领金额
+                        BigDecimal money = claimContract.getMoney();
+                        // 返回兑人民币后金额
+                        return rate.multiply(money);
+                    }).reduce(BigDecimal.ZERO, BigDecimal::add);
+                    p.setContractArrival(contractArrival);
+                }
                 /**
                  * 处理退税金额
                  */
                 List<TaxRefundDetails> rList = refundDetailsMap.getOrDefault(p.getContractId(),null);
-                BigDecimal taxReturnMoney = rList.stream().map(taxRefundDetails -> {
-                    //获取汇率
-                    BigDecimal rate = assignCurrencyRatesMap.getOrDefault(taxRefundDetails.getCurrency(),BigDecimal.ONE);
-                    // 获取认领金额
-                    BigDecimal money = taxRefundDetails.getAmount();
-                    // 返回兑人民币后金额
-                    return rate.multiply(money);
-                }).reduce(BigDecimal.ZERO, BigDecimal::add);
-                p.setTaxReturnMoney(taxReturnMoney);
+                if(CollectionUtils.isNotEmpty(rList)){
+                    BigDecimal taxReturnMoney = rList.stream().map(taxRefundDetails -> {
+                        //获取汇率
+                        BigDecimal rate = assignCurrencyRatesMap.getOrDefault(taxRefundDetails.getCurrency(),BigDecimal.ONE);
+                        // 获取认领金额
+                        BigDecimal money = taxRefundDetails.getAmount();
+                        // 返回兑人民币后金额
+                        return rate.multiply(money);
+                    }).reduce(BigDecimal.ZERO, BigDecimal::add);
+                    p.setTaxReturnMoney(taxReturnMoney);
+                }
             }else{//取数据汇率
                 /**
                  * 处理到账金额
                  */
                 List<ClaimContract> cList = claimContractMap.getOrDefault(p.getContractId(),new ArrayList<>());
                 List<Long> warterIds = cList.stream().distinct().map(ClaimContract::getBusinessId).collect(Collectors.toList());
-                if(CollectionUtils.isEmpty(warterIds)){
-                    p.setContractArrival(BigDecimal.ZERO);
-                }else{
+                if(CollectionUtils.isNotEmpty(warterIds)){
                     //查出流水
                     List<AccountRunningWater> accountRunningWaterList = accountRunningWaterService.list(Wrappers.<AccountRunningWater>query().lambda().select(AccountRunningWater::getRate,AccountRunningWater::getId).in(AccountRunningWater::getId,warterIds));
                     Map<Long,BigDecimal> waterMap = accountRunningWaterList.stream().collect(Collectors.toMap(AccountRunningWater::getId, AccountRunningWater::getRate));
@@ -321,8 +323,6 @@ public class SaleStatementServiceImpl implements SaleStatementService {
                         return rate.multiply(money);
                     }).reduce(BigDecimal.ZERO, BigDecimal::add);
                     p.setTaxReturnMoney(taxReturnMoney);
-                }else{
-                    p.setTaxReturnMoney(BigDecimal.ZERO);
                 }
             }
         }