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 @@