diff --git a/mallinkService/src/main/java/com/iformall/service/impl/WxBillAllServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/WxBillAllServiceImpl.java index bd5ec20f4..4c907ecb8 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxBillAllServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxBillAllServiceImpl.java @@ -156,28 +156,25 @@ public class WxBillAllServiceImpl implements WxBillAllService { } public void cmputeTotalMoney(WxPayAccountBill wxPayAccountBill, WxBillAllVo e) { - if (!e.getBillTypeValue().equals(EnumBillTypeParam.RENT_DEPOSIT.getCode()) - && !e.getBillTypeValue().equals(EnumBillTypeParam.PROPERTY_DEPOSIT.getCode())) { - if (e.getReceivePay() != null) { - if (e.getLatePayPrice() == null) { - e.setLatePayPrice(0L); - } - BigDecimal servicePay; - if (e.getServiceChargePay() != null) { - servicePay = new BigDecimal(e.getServiceChargePay()); - } else { - servicePay = new BigDecimal(e.getReceivePay()).multiply(new BigDecimal(wxPayAccountBill.getServiceChargeRate())).divide(new BigDecimal(10000), 2, BigDecimal.ROUND_HALF_UP); - } - Long realReceivePay = servicePay.longValue() + e.getLatePayPrice() + e.getReceivePay(); - e.setRealReceivePay(realReceivePay); - e.setServiceChargePay(servicePay.intValue()); - if (!e.getStatus().equals(EnumBillRentStatus.NOT_PAID.getCode()) && - !e.getStatus().equals(EnumBillRentStatus.WAIT_PAY.getCode())) { - e.setOwe(0L); - } + if (e.getReceivePay() != null) { + if (e.getLatePayPrice() == null) { + e.setLatePayPrice(0L); + } + BigDecimal servicePay; + if (e.getServiceChargePay() != null) { + servicePay = new BigDecimal(e.getServiceChargePay()); + } else { + servicePay = new BigDecimal(e.getReceivePay()).multiply(new BigDecimal(wxPayAccountBill.getServiceChargeRate())).divide(new BigDecimal(10000), 2, BigDecimal.ROUND_HALF_UP); + } + Long realReceivePay = servicePay.longValue() + e.getLatePayPrice() + e.getReceivePay(); + e.setRealReceivePay(realReceivePay); + e.setServiceChargePay(servicePay.intValue()); + if (!e.getStatus().equals(EnumBillRentStatus.NOT_PAID.getCode()) && + !e.getStatus().equals(EnumBillRentStatus.WAIT_PAY.getCode())) { + e.setOwe(0L); + } else { + e.setOwe(realReceivePay - e.getPay()); } - } else { - e.setRealReceivePay(e.getReceivePay()); } } @@ -970,12 +967,14 @@ public class WxBillAllServiceImpl implements WxBillAllService { wxBillRent.setUpdatetime(updateDate); if (oldLatePrice != null) { wxBillRent.setLatePayPrice(newLatePrice); + wxBillRent.setOwe(newPrice + wxBillRent.getServiceChargePay() + newLatePrice - wxBillRent.getPay()); wxBillRentMapper.updateById(wxBillRent); addBillAction(EnumBillAction.UPDATE_LATE_PAY_MONEY, id, oldLatePrice, newLatePrice, user); } else { //租赁账单更新 wxBillRent.setReceivePay(newPrice); - wxBillRent.setOwe(newPrice - dbBill.getPay()); + long latePayPrice = wxBillRent.getLatePayPrice() == null ? 0 : wxBillRent.getLatePayPrice(); + wxBillRent.setOwe(newPrice + wxBillRent.getServiceChargePay() + latePayPrice - dbBill.getPay()); if (newPrice.equals(dbBill.getPay())) { wxBillRent.setStatus(EnumBillRentStatus.PAID.getCode()); } @@ -1023,11 +1022,13 @@ public class WxBillAllServiceImpl implements WxBillAllService { wxBillProperty.setUpdatetime(updateDate); if (oldLatePrice != null) { wxBillProperty.setLatePayPrice(newLatePrice); + wxBillProperty.setOwe(newPrice + wxBillProperty.getServiceChargePay() + newLatePrice - wxBillProperty.getPay()); wxBillPropertyMapper.updateById(wxBillProperty); addBillAction(EnumBillAction.UPDATE_LATE_PAY_MONEY, id, oldLatePrice, newLatePrice, user); } else { wxBillProperty.setReceivePay(newPrice); - wxBillProperty.setOwe(newPrice - dbBill.getPay()); + long latePayPrice = wxBillProperty.getLatePayPrice() == null ? 0 : wxBillProperty.getLatePayPrice(); + wxBillProperty.setOwe(newPrice + wxBillProperty.getServiceChargePay() + latePayPrice - dbBill.getPay()); if (newPrice.equals(dbBill.getPay())) { wxBillProperty.setStatus(EnumBillRentStatus.PAID.getCode()); } @@ -1070,7 +1071,7 @@ public class WxBillAllServiceImpl implements WxBillAllService { WxBillOther wxBillOther = new WxBillOther(); wxBillOther.setId(id); wxBillOther.setReceivePay(newPrice); - wxBillOther.setOwe(newPrice - dbBill.getPay()); + wxBillOther.setOwe(newPrice + dbBill.getServiceChargePay() - dbBill.getPay()); if (newPrice.equals(dbBill.getPay())) { wxBillOther.setStatus(EnumBillRentStatus.PAID.getCode()); } @@ -1084,7 +1085,7 @@ public class WxBillAllServiceImpl implements WxBillAllService { WxBillOtherDeposit wxBillOtherDeposit = new WxBillOtherDeposit(); wxBillOtherDeposit.setId(id); wxBillOtherDeposit.setReceivePay(newPrice); - wxBillOtherDeposit.setOwe(newPrice - dbBill.getPay()); + wxBillOtherDeposit.setOwe(newPrice + dbBill.getServiceChargePay() - dbBill.getPay()); if (newPrice.equals(dbBill.getPay())) { wxBillOtherDeposit.setStatus(EnumBillRentStatus.PAID.getCode()); } @@ -1550,7 +1551,7 @@ public class WxBillAllServiceImpl implements WxBillAllService { WxBillDaily wxBillDaily = new WxBillDaily(); wxBillDaily.setId(businessId); wxBillDaily.setReceivePay(newPrice); - wxBillDaily.setOwe(newPrice - dbBill.getPay()); + wxBillDaily.setOwe(newPrice + dbBill.getServiceChargePay() - dbBill.getPay()); if (newPrice.equals(dbBill.getPay())) { wxBillDaily.setStatus(EnumBillRentStatus.PAID.getCode()); } diff --git a/mallinkService/src/main/java/com/iformall/service/impl/WxBillRentServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/WxBillRentServiceImpl.java index e6be60b48..2c4171d7d 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxBillRentServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxBillRentServiceImpl.java @@ -390,7 +390,8 @@ public class WxBillRentServiceImpl implements WxBillRentService { Long oldPrice = wxBillRent.getReceivePay(); Long newPrice = newReceivePay; wxBillRent.setUpdatetime(new Date()); - + long latePayPrice = wxBillRent.getLatePayPrice() == null ? 0 : wxBillRent.getLatePayPrice(); + wxBillRent.setOwe(newPrice + wxBillRent.getServiceChargePay() + latePayPrice - wxBillRent.getPay()); wxBillRentMapper.updateById(wxBillRent); if (!oldPrice.equals(newPrice)) { diff --git a/mallinkService/src/main/resources/mapper/WxBillAllMapper.xml b/mallinkService/src/main/resources/mapper/WxBillAllMapper.xml index 05ec1fb77..f215e76e0 100644 --- a/mallinkService/src/main/resources/mapper/WxBillAllMapper.xml +++ b/mallinkService/src/main/resources/mapper/WxBillAllMapper.xml @@ -41,6 +41,8 @@ + + @@ -912,17 +914,17 @@