From 937a619fd7fa34b93dacf9e5556f967247cae880 Mon Sep 17 00:00:00 2001 From: syruan <15555146157@163.com> Date: Sun, 24 Aug 2025 19:12:07 +0800 Subject: [PATCH] =?UTF-8?q?=E7=BB=93=E7=AE=97=E8=B4=9F=E6=95=B0=E4=BC=98?= =?UTF-8?q?=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../impl/SltAgreementInfoServiceImpl.java | 17 ++++++++++++----- 1 file changed, 12 insertions(+), 5 deletions(-) diff --git a/bonus-modules/bonus-material/src/main/java/com/bonus/material/settlement/service/impl/SltAgreementInfoServiceImpl.java b/bonus-modules/bonus-material/src/main/java/com/bonus/material/settlement/service/impl/SltAgreementInfoServiceImpl.java index c7a1985c..fd8ad585 100644 --- a/bonus-modules/bonus-material/src/main/java/com/bonus/material/settlement/service/impl/SltAgreementInfoServiceImpl.java +++ b/bonus-modules/bonus-material/src/main/java/com/bonus/material/settlement/service/impl/SltAgreementInfoServiceImpl.java @@ -387,12 +387,12 @@ public class SltAgreementInfoServiceImpl implements ISltAgreementInfoService { List leaseList = new ArrayList<>(oneOfList); for (SltAgreementInfo bean : leaseList) { - if (null == bean.getLeasePrice()) { + if (null == bean.getLeasePrice() || bean.getLeasePrice().compareTo(BigDecimal.ZERO) < 0) { bean.setLeasePrice(BigDecimal.ZERO); } else { bean.setLeasePrice(bean.getLeasePrice().setScale(2, RoundingMode.HALF_UP)); } - if (null == bean.getNum()) { + if (null == bean.getNum() || bean.getNum().compareTo(BigDecimal.ZERO) < 0) { bean.setNum(BigDecimal.ZERO); } if (null == bean.getLeaseDays()) { @@ -401,6 +401,9 @@ public class SltAgreementInfoServiceImpl implements ISltAgreementInfoService { BigDecimal leasePrice = bean.getLeasePrice(); BigDecimal num = bean.getNum(); BigDecimal leaseDays = new BigDecimal(bean.getLeaseDays()); + if (leaseDays.compareTo(BigDecimal.ZERO) < 0) { + leaseDays = BigDecimal.ZERO; + } BigDecimal costs = leasePrice.multiply(num).multiply(leaseDays).setScale(GlobalConstants.INT_2, RoundingMode.HALF_UP); bean.setCosts(costs); } @@ -411,18 +414,19 @@ public class SltAgreementInfoServiceImpl implements ISltAgreementInfoService { * 获取多个协议的领料明细 */ public List getLeaseBtachList(SltAgreementInfo info) { - // 领料就不要每次都执行 + // 领料就不要每次都执行SQL List leaseList = leaseListCache.get() .stream() .filter(bean -> bean.getAgreementId().equals(info.getAgreementId())).collect(Collectors.toList()); for (SltAgreementInfo bean : leaseList) { - if (null == bean.getLeasePrice()) { + // 同步过来可能有负数,如果是负数就改成0 + if (null == bean.getLeasePrice() || bean.getLeasePrice().compareTo(BigDecimal.ZERO) < 0) { bean.setLeasePrice(BigDecimal.ZERO); } else { bean.setLeasePrice(bean.getLeasePrice().setScale(2, RoundingMode.HALF_UP)); } - if (null == bean.getNum()) { + if (null == bean.getNum() || bean.getNum().compareTo(BigDecimal.ZERO) < 0) { bean.setNum(BigDecimal.ZERO); } if (null == bean.getLeaseDays()) { @@ -431,6 +435,9 @@ public class SltAgreementInfoServiceImpl implements ISltAgreementInfoService { BigDecimal leasePrice = bean.getLeasePrice(); BigDecimal num = bean.getNum(); BigDecimal leaseDays = new BigDecimal(bean.getLeaseDays()); + if (leaseDays.compareTo(BigDecimal.ZERO) < 0) { + leaseDays = BigDecimal.ZERO; + } BigDecimal costs = leasePrice.multiply(num).multiply(leaseDays).setScale(GlobalConstants.INT_2, RoundingMode.HALF_UP); bean.setCosts(costs); }