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); }