结算负数优化

This commit is contained in:
syruan 2025-08-24 19:12:07 +08:00
parent ff05164b8b
commit 937a619fd7
1 changed files with 12 additions and 5 deletions

View File

@ -387,12 +387,12 @@ public class SltAgreementInfoServiceImpl implements ISltAgreementInfoService {
List<SltAgreementInfo> leaseList = new ArrayList<>(oneOfList); List<SltAgreementInfo> leaseList = new ArrayList<>(oneOfList);
for (SltAgreementInfo bean : leaseList) { for (SltAgreementInfo bean : leaseList) {
if (null == bean.getLeasePrice()) { if (null == bean.getLeasePrice() || bean.getLeasePrice().compareTo(BigDecimal.ZERO) < 0) {
bean.setLeasePrice(BigDecimal.ZERO); bean.setLeasePrice(BigDecimal.ZERO);
} else { } else {
bean.setLeasePrice(bean.getLeasePrice().setScale(2, RoundingMode.HALF_UP)); 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); bean.setNum(BigDecimal.ZERO);
} }
if (null == bean.getLeaseDays()) { if (null == bean.getLeaseDays()) {
@ -401,6 +401,9 @@ public class SltAgreementInfoServiceImpl implements ISltAgreementInfoService {
BigDecimal leasePrice = bean.getLeasePrice(); BigDecimal leasePrice = bean.getLeasePrice();
BigDecimal num = bean.getNum(); BigDecimal num = bean.getNum();
BigDecimal leaseDays = new BigDecimal(bean.getLeaseDays()); 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); BigDecimal costs = leasePrice.multiply(num).multiply(leaseDays).setScale(GlobalConstants.INT_2, RoundingMode.HALF_UP);
bean.setCosts(costs); bean.setCosts(costs);
} }
@ -411,18 +414,19 @@ public class SltAgreementInfoServiceImpl implements ISltAgreementInfoService {
* 获取多个协议的领料明细 * 获取多个协议的领料明细
*/ */
public List<SltAgreementInfo> getLeaseBtachList(SltAgreementInfo info) { public List<SltAgreementInfo> getLeaseBtachList(SltAgreementInfo info) {
// 领料就不要每次都执行 // 领料就不要每次都执行SQL
List<SltAgreementInfo> leaseList = leaseListCache.get() List<SltAgreementInfo> leaseList = leaseListCache.get()
.stream() .stream()
.filter(bean -> bean.getAgreementId().equals(info.getAgreementId())).collect(Collectors.toList()); .filter(bean -> bean.getAgreementId().equals(info.getAgreementId())).collect(Collectors.toList());
for (SltAgreementInfo bean : leaseList) { for (SltAgreementInfo bean : leaseList) {
if (null == bean.getLeasePrice()) { // 同步过来可能有负数如果是负数就改成0
if (null == bean.getLeasePrice() || bean.getLeasePrice().compareTo(BigDecimal.ZERO) < 0) {
bean.setLeasePrice(BigDecimal.ZERO); bean.setLeasePrice(BigDecimal.ZERO);
} else { } else {
bean.setLeasePrice(bean.getLeasePrice().setScale(2, RoundingMode.HALF_UP)); 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); bean.setNum(BigDecimal.ZERO);
} }
if (null == bean.getLeaseDays()) { if (null == bean.getLeaseDays()) {
@ -431,6 +435,9 @@ public class SltAgreementInfoServiceImpl implements ISltAgreementInfoService {
BigDecimal leasePrice = bean.getLeasePrice(); BigDecimal leasePrice = bean.getLeasePrice();
BigDecimal num = bean.getNum(); BigDecimal num = bean.getNum();
BigDecimal leaseDays = new BigDecimal(bean.getLeaseDays()); 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); BigDecimal costs = leasePrice.multiply(num).multiply(leaseDays).setScale(GlobalConstants.INT_2, RoundingMode.HALF_UP);
bean.setCosts(costs); bean.setCosts(costs);
} }