fix 打包管理中已开票金额为0

This commit is contained in:
lijiarao
2022-02-14 10:19:48 +08:00
parent ce2a930f4a
commit 461b290289
@@ -1,6 +1,7 @@
package com.jero.pack.controller;
import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.Objects;
@@ -235,7 +236,11 @@ public class PayPackCompanyController extends JeroController<PayPackCompany, IPa
// 获取 打包费用,实际到账金额
List<PayCommonProject> listPayCommonProject = payPackCompanyService.queryPackListCount(Arrays.asList(payPackCompany.getId().split(",")));
if(!CollectionUtils.isEmpty(listPayCommonProject)){
payPackCompany.setReceiptExpense(listPayCommonProject.get(0).getPaidAmount());
BigDecimal paidAmount = listPayCommonProject.get(0).getPaidAmount() ;
if (paidAmount == null){
paidAmount = new BigDecimal("0.00");
}
payPackCompany.setReceiptExpense(paidAmount);
}else{
payPackCompany.setReceiptExpense(new BigDecimal("0.00"));
}
@@ -247,16 +252,24 @@ public class PayPackCompanyController extends JeroController<PayPackCompany, IPa
packCompanyProjectLambdaQueryWrapper.eq(PayPackCompanyProject::getPackId,id);
List<PayPackCompanyProject> packCompanyProjectList = payPackCompanyProjectService.list(packCompanyProjectLambdaQueryWrapper);
List<String> projectIdList = packCompanyProjectList.stream().map(PayPackCompanyProject::getProjectId).collect(Collectors.toList());
LambdaQueryWrapper<PayMailBillProject> queryPayMailBillProject = new LambdaQueryWrapper<>();
queryPayMailBillProject.in(PayMailBillProject::getProjectId,projectIdList);
List<PayMailBillProject> listPayMailBillProject = payMailBillProjectService.list(queryPayMailBillProject);
List<PayMailBillProject> listPayMailBillProject = new ArrayList<>();
if (!projectIdList.isEmpty()){
LambdaQueryWrapper<PayMailBillProject> queryPayMailBillProject = new LambdaQueryWrapper<>();
queryPayMailBillProject.in(PayMailBillProject::getProjectId,projectIdList);
listPayMailBillProject = payMailBillProjectService.list(queryPayMailBillProject);
}
BigDecimal receiptExpense = payPackCompany.getReceiptExpense() == null ? new BigDecimal("0.00") : payPackCompany.getReceiptExpense();
if(!CollectionUtils.isEmpty(listPayMailBillProject)){
BigDecimal d = listPayMailBillProject.stream().map(PayMailBillProject::getInvoiceAmount).reduce(BigDecimal.ZERO,BigDecimal::add);
payPackCompany.setInvoiceAmount(d);
payPackCompany.setUninvoicedAmount(payPackCompany.getReceiptExpense().subtract(d));
BigDecimal uninvoicedAmount = receiptExpense.subtract(d);
if (uninvoicedAmount.compareTo(BigDecimal.ZERO) < 0){
uninvoicedAmount = new BigDecimal("0.00");
}
payPackCompany.setUninvoicedAmount(uninvoicedAmount);
}else{
payPackCompany.setInvoiceAmount(new BigDecimal("0.00"));
payPackCompany.setUninvoicedAmount(payPackCompany.getReceiptExpense());
payPackCompany.setUninvoicedAmount(receiptExpense);
}
return Result.OK(payPackCompany);