结算负数优化

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);
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<SltAgreementInfo> getLeaseBtachList(SltAgreementInfo info) {
// 领料就不要每次都执行
// 领料就不要每次都执行SQL
List<SltAgreementInfo> 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);
}