From 6eee05ae13db038012adef8dbd466e420d95cf9e Mon Sep 17 00:00:00 2001 From: lijiarao Date: Wed, 7 Aug 2024 11:21:44 +0800 Subject: [PATCH] =?UTF-8?q?fix=2088150=20=E6=89=93=E5=8C=85=E7=AE=A1?= =?UTF-8?q?=E7=90=86-=E7=BC=96=E8=BE=91=E9=87=91=E9=A2=9D=E5=90=8E?= =?UTF-8?q?=EF=BC=8C=E7=A1=AE=E6=94=B6=E7=8A=B6=E6=80=81=E6=B2=A1=E6=9C=89?= =?UTF-8?q?=E6=9B=B4=E6=96=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../impl/PayPackCompanyServiceImpl.java | 70 ++++--------------- 1 file changed, 14 insertions(+), 56 deletions(-) diff --git a/jero-boot-incoming-payment/src/main/java/com/jero/pack/service/impl/PayPackCompanyServiceImpl.java b/jero-boot-incoming-payment/src/main/java/com/jero/pack/service/impl/PayPackCompanyServiceImpl.java index 64a81c7f..fbbc9f58 100644 --- a/jero-boot-incoming-payment/src/main/java/com/jero/pack/service/impl/PayPackCompanyServiceImpl.java +++ b/jero-boot-incoming-payment/src/main/java/com/jero/pack/service/impl/PayPackCompanyServiceImpl.java @@ -6,6 +6,8 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.jero.common.common.ProjectCommon; import com.jero.common.exception.JeroBootException; +import com.jero.common.service.ProjectDetailService; +import com.jero.common.vo.ProjectStatusVO; import com.jero.mail.entity.PayMailBillProject; import com.jero.mail.service.IPayMailBillProjectService; import com.jero.mail.service.IPayMailBillService; @@ -58,7 +60,8 @@ public class PayPackCompanyServiceImpl extends ServiceImpl queryPageList(Page page, PayPackCompany payPackCompany) { return payPackCompanyMapper.queryPageList(page,payPackCompany); @@ -236,65 +239,20 @@ public class PayPackCompanyServiceImpl extends ServiceImpl queryPayMailBillProject = new LambdaQueryWrapper<>(); - queryPayMailBillProject.eq(PayMailBillProject::getProjectId, payPackCompanyOld.getId()); - List listPayMailBillProject = payMailBillProjectService.list(queryPayMailBillProject); - // 开票金额 - BigDecimal invoice = new BigDecimal("0.00"); - if (!CollectionUtils.isEmpty(listPayMailBillProject)) { - BigDecimal b = listPayMailBillProject.stream().map(PayMailBillProject::getInvoiceAmount).reduce(BigDecimal.ZERO, BigDecimal::add); - invoice = invoice.add(b); - if (receivableAmount.compareTo(invoice) < 0) { - throw new JeroBootException("待确收金额不可小于实收金额,请先修改实际来款后再来修改!"); + // 变更待确收金额,重新校验状态 + ProjectStatusVO projectStatusVO = projectDetailService.getStatus(payPackCompany.getId(), receivableAmount,needInvoice); + if(!Objects.isNull(projectStatusVO)){ + if(!Objects.isNull(projectStatusVO.getInAccount())){ + payPackCompany.setInAccount(projectStatusVO.getInAccount()); } - } - // 到账 - // 待确收金额 = 实收金额 = 1 - if (receivableAmount.compareTo(payPackCompanyOld.getPaidAmount()) == 0) { - payPackCompany.setInAccount(ProjectCommon.IN_ACCOUNT1); - } - // 0 = 实收金额 = 0 - if (payPackCompanyOld.getPaidAmount().compareTo(new BigDecimal("0.00")) == 0) { - payPackCompany.setInAccount(ProjectCommon.IN_ACCOUNT0); - } - // 0 < 实收金额 && 实收金额 < 待确收金额 = 2 - if (payPackCompanyOld.getPaidAmount().compareTo(new BigDecimal("0.00")) > 0 - && payPackCompanyOld.getPaidAmount().compareTo(receivableAmount) < 0) { - payPackCompany.setInAccount(ProjectCommon.IN_ACCOUNT2); - } - // 开票 - // 不需要开票 - if (Objects.equals(payPackCompanyOld.getNeedInvoice(), ProjectCommon.NEED_INVOICE0)) { - payPackCompany.setMakeInvoice(ProjectCommon.MAKE_INVOICE0); - } else { - // 开票金额 = 待确收金额 = 1 - if (invoice.compareTo(receivableAmount) == 0) { - payPackCompany.setMakeInvoice(ProjectCommon.MAKE_INVOICE1); + if(!Objects.isNull(projectStatusVO.getMakeInvoice())){ + payPackCompany.setMakeInvoice(projectStatusVO.getMakeInvoice()); } - // 开票金额 = 0 = 0 - if (invoice.compareTo(new BigDecimal("0.00")) == 0) { - payPackCompany.setMakeInvoice(ProjectCommon.MAKE_INVOICE0); - } - // 开票金额 > 0 && 开票金额 < 待确收金额 = 2 - if (invoice.compareTo(new BigDecimal("0.00")) > 0 && invoice.compareTo(receivableAmount) < 0) { - payPackCompany.setMakeInvoice(ProjectCommon.MAKE_INVOICE2); + if(!Objects.isNull(projectStatusVO.getAffirmIncome())){ + payPackCompany.setIncomeAffirm(projectStatusVO.getAffirmIncome()); } } + return payPackCompany; } }