| @@ -268,7 +268,7 @@ public class WxBillController extends BaseController { | |||
| if (null == billdetail) { | |||
| return new ResultData(Result.ERROR,"账单支付未查询到"); | |||
| } | |||
| BigDecimal owe = new BigDecimal(billdetail.getOwe()); | |||
| BigDecimal owe = new BigDecimal(billdetail.getBillAllNeedPay()); | |||
| if (owe.compareTo(new BigDecimal(payMoney)) < 0) { | |||
| return new ResultData(Result.ERROR,"支付金额大于欠费金额,请刷新账单后再支付"); | |||
| } | |||
| @@ -132,5 +132,15 @@ public class WxBillDaily extends WxBillBaseEntity { | |||
| @Override | |||
| public String getBillRemark() { | |||
| return remark; | |||
| } | |||
| } | |||
| @Override | |||
| public String getBillLatePay() { | |||
| return "0"; | |||
| } | |||
| @Override | |||
| public String getBillServicePay() { | |||
| return serviceChargePay; | |||
| } | |||
| } | |||
| @@ -95,4 +95,14 @@ public class WxBillDeposit extends WxBillBaseEntity { | |||
| public String getBillRemark() { | |||
| return ""; | |||
| } | |||
| @Override | |||
| public String getBillLatePay() { | |||
| return "0"; | |||
| } | |||
| @Override | |||
| public String getBillServicePay() { | |||
| return serviceChargePay; | |||
| } | |||
| } | |||
| @@ -125,4 +125,14 @@ public class WxBillOther extends WxBillBaseEntity { | |||
| public String getBillRemark() { | |||
| return StringUtils.trimToEmpty(name)+StringUtils.trimToEmpty(comments); | |||
| } | |||
| @Override | |||
| public String getBillLatePay() { | |||
| return "0"; | |||
| } | |||
| @Override | |||
| public String getBillServicePay() { | |||
| return serviceChargePay; | |||
| } | |||
| } | |||
| @@ -134,5 +134,15 @@ public class WxBillOtherDeposit extends WxBillBaseEntity { | |||
| public String getBillRemark() { | |||
| return StringUtils.trimToEmpty(name)+StringUtils.trimToEmpty(comments); | |||
| } | |||
| @Override | |||
| public String getBillLatePay() { | |||
| return "0"; | |||
| } | |||
| @Override | |||
| public String getBillServicePay() { | |||
| return serviceChargePay; | |||
| } | |||
| } | |||
| @@ -160,6 +160,16 @@ public class WxBillProperty extends WxBillBaseEntity { | |||
| return ""; | |||
| } | |||
| @Override | |||
| public String getBillLatePay() { | |||
| return latePayPrice; | |||
| } | |||
| @Override | |||
| public String getBillServicePay() { | |||
| return serviceChargePay; | |||
| } | |||
| @TableField(exist = false) | |||
| private String totalFee; | |||
| public void calcuteTotalFee(Integer decimalSize) { | |||
| @@ -109,4 +109,14 @@ public class WxBillPropertyDeposit extends WxBillBaseEntity { | |||
| return ""; | |||
| } | |||
| @Override | |||
| public String getBillLatePay() { | |||
| return "0"; | |||
| } | |||
| @Override | |||
| public String getBillServicePay() { | |||
| return serviceChargePay; | |||
| } | |||
| } | |||
| @@ -102,6 +102,16 @@ public class WxBillRent extends WxBillBaseEntity { | |||
| public String getBillRemark() { | |||
| return ""; | |||
| } | |||
| @Override | |||
| public String getBillLatePay() { | |||
| return latePayPrice; | |||
| } | |||
| @Override | |||
| public String getBillServicePay() { | |||
| return serviceChargePay; | |||
| } | |||
| @io.swagger.annotations.ApiModelProperty(value="商业管理费应收金额",name="bussinessManageFeeNeedPay") | |||
| private String bussinessManageFeeNeedPay; | |||
| @@ -217,4 +227,6 @@ public class WxBillRent extends WxBillBaseEntity { | |||
| .setScale(decimalSize, RoundingMode.HALF_UP).toPlainString(); | |||
| } | |||
| } | |||
| @@ -173,6 +173,16 @@ public class WxBillRentManage extends WxBillBaseEntity { | |||
| return ""; | |||
| } | |||
| @Override | |||
| public String getBillLatePay() { | |||
| return latePayPrice; | |||
| } | |||
| @Override | |||
| public String getBillServicePay() { | |||
| return serviceChargePay; | |||
| } | |||
| @TableField(exist = false) | |||
| private List<Long> merchantIds; | |||
| @TableField(exist = false) | |||
| @@ -104,6 +104,28 @@ public class WxBillBaseEntity extends TenantEntity { | |||
| @TableField(exist = false) | |||
| protected Long floor; | |||
| //滞纳金 | |||
| @TableField(exist = false) | |||
| protected String billLatePay; | |||
| //服务费 | |||
| @TableField(exist = false) | |||
| protected String billServicePay; | |||
| @TableField(exist = false) | |||
| protected String billAllNeedPay; | |||
| public String getBillAllNeedPay() { | |||
| String bl = this.getBillLatePay(); | |||
| String bs = this.getBillServicePay(); | |||
| if (StringUtils.isBlank(bl)) { | |||
| bl = "0"; | |||
| } | |||
| if (StringUtils.isBlank(bs)) { | |||
| bs = "0"; | |||
| } | |||
| return new BigDecimal(getOwe()).add(new BigDecimal(bl)).add(new BigDecimal(bs)).toPlainString(); | |||
| } | |||
| @TableField(exist = false) | |||
| protected List<Long> merchantIdList; | |||
| @@ -125,5 +147,7 @@ public class WxBillBaseEntity extends TenantEntity { | |||
| //临期计算截止时间 | |||
| @TableField(exist = false) | |||
| private Integer notifyed; | |||
| } | |||
| @@ -529,15 +529,57 @@ public class WxBillDailyServiceImpl extends WxBillBaseService implements WxBillD | |||
| if (StringUtils.isNotBlank(dbBill.getPay())) { | |||
| opay = new BigDecimal(dbBill.getPay()); | |||
| } | |||
| opay = opay.add(new BigDecimal(dto.getAddpay())); | |||
| wxBillRent.setPay(opay.toPlainString()); | |||
| if (opay.compareTo(new BigDecimal(dbBill.getReceivePay())) >= 0 ) { | |||
| wxBillRent.setStatus(EnumBillStatus.PAID.getCode()); | |||
| dto.setRemark(StringUtils.trimToEmpty(dto.getRemark())+ ";【系统】账单已付金额调整后已大于等于实际应付金额,自动归结为结清。"); | |||
| //支付的金额先扣除手续费和滞纳金,多余的再抵扣本金 | |||
| String servicePay = dbBill.getServiceChargePay(); | |||
| if (StringUtils.isBlank(servicePay)) { | |||
| servicePay = "0"; | |||
| } | |||
| StringBuffer sb = new StringBuffer(StringUtils.trimToEmpty(dto.getRemark())); | |||
| BigDecimal serviceLastMoney = new BigDecimal(dto.getAddpay()).subtract(new BigDecimal(servicePay)); | |||
| if (new BigDecimal(servicePay).compareTo(new BigDecimal(0)) > 0 ) { | |||
| if (serviceLastMoney.compareTo(new BigDecimal(0)) >= 0 ) { | |||
| wxBillRent.setServiceChargePay("0"); | |||
| sb.append(";手续费").append(servicePay).append("已结清"); | |||
| }else { | |||
| wxBillRent.setServiceChargePay(dto.getAddpay()); | |||
| sb.append(";手续费").append(servicePay).append("已支付").append(dto.getAddpay()); | |||
| } | |||
| } | |||
| BigDecimal latePayLastMoney = new BigDecimal(0); | |||
| if (serviceLastMoney.compareTo(new BigDecimal(0)) > 0 ) { | |||
| String latePay = dbBill.getLatePayPrice(); | |||
| if (StringUtils.isBlank(latePay)) { | |||
| latePay = "0"; | |||
| } | |||
| latePayLastMoney = serviceLastMoney.subtract(new BigDecimal(latePay)); | |||
| if (new BigDecimal(latePay).compareTo(new BigDecimal(0)) > 0 ) { | |||
| if (latePayLastMoney.compareTo(new BigDecimal(0)) >= 0 ) { | |||
| wxBillRent.setLatePayPrice("0"); | |||
| sb.append(";滞纳金").append(latePay).append("已结清"); | |||
| }else { | |||
| String lp = new BigDecimal(latePay).subtract(serviceLastMoney).toPlainString(); | |||
| wxBillRent.setLatePayPrice(lp); | |||
| sb.append(";滞纳金").append(latePay).append("已支付").append(lp); | |||
| } | |||
| } | |||
| } | |||
| if (latePayLastMoney.compareTo(new BigDecimal(0)) > 0 ) { | |||
| opay = opay.add(latePayLastMoney); | |||
| wxBillRent.setPay(opay.toPlainString()); | |||
| sb.append(";已付金额增加").append(latePayLastMoney.toPlainString()); | |||
| if (opay.compareTo(new BigDecimal(dbBill.getReceivePay())) >= 0 ) { | |||
| wxBillRent.setStatus(EnumBillStatus.PAID.getCode()); | |||
| sb.append(";【系统】账单已付金额已大于等于实际应付金额,自动归结为结清。"); | |||
| } | |||
| } | |||
| wxBillRent.setPayDate(new Date()); | |||
| wxBillRent.setPayWay(dto.getPayWay()); | |||
| wxBillDailyMapper.updateById(wxBillRent); | |||
| dto.setRemark(sb.toString()); | |||
| return wxBillRent; | |||
| } | |||
| @@ -486,15 +486,38 @@ public class WxBillDepositServiceImpl extends WxBillBaseService implements WxBil | |||
| if (StringUtils.isNotBlank(dbBill.getPay())) { | |||
| opay = new BigDecimal(dbBill.getPay()); | |||
| } | |||
| opay = opay.add(new BigDecimal(dto.getAddpay())); | |||
| wxBillRent.setPay(opay.toPlainString()); | |||
| if (opay.compareTo(new BigDecimal(dbBill.getReceivePay())) >= 0 ) { | |||
| wxBillRent.setStatus(EnumBillStatus.PAID.getCode()); | |||
| dto.setRemark(StringUtils.trimToEmpty(dto.getRemark())+ ";【系统】账单已付金额调整后已大于等于实际应付金额,自动归结为结清。"); | |||
| //支付的金额先扣除手续费和滞纳金,多余的再抵扣本金 | |||
| String servicePay = dbBill.getServiceChargePay(); | |||
| if (StringUtils.isBlank(servicePay)) { | |||
| servicePay = "0"; | |||
| } | |||
| StringBuffer sb = new StringBuffer(StringUtils.trimToEmpty(dto.getRemark())); | |||
| BigDecimal serviceLastMoney = new BigDecimal(dto.getAddpay()).subtract(new BigDecimal(servicePay)); | |||
| if (new BigDecimal(servicePay).compareTo(new BigDecimal(0)) > 0 ) { | |||
| if (serviceLastMoney.compareTo(new BigDecimal(0)) >= 0 ) { | |||
| wxBillRent.setServiceChargePay("0"); | |||
| sb.append(";手续费").append(servicePay).append("已结清"); | |||
| }else { | |||
| wxBillRent.setServiceChargePay(dto.getAddpay()); | |||
| sb.append(";手续费").append(servicePay).append("已支付").append(dto.getAddpay()); | |||
| } | |||
| } | |||
| if (serviceLastMoney.compareTo(new BigDecimal(0)) > 0 ) { | |||
| opay = opay.add(serviceLastMoney); | |||
| wxBillRent.setPay(opay.toPlainString()); | |||
| sb.append(";已付金额增加").append(serviceLastMoney.toPlainString()); | |||
| if (opay.compareTo(new BigDecimal(dbBill.getReceivePay())) >= 0 ) { | |||
| wxBillRent.setStatus(EnumBillStatus.PAID.getCode()); | |||
| sb.append(";【系统】账单已付金额已大于等于实际应付金额,自动归结为结清。"); | |||
| } | |||
| } | |||
| wxBillRent.setPayDate(new Date()); | |||
| wxBillRent.setPayWay(dto.getPayWay()); | |||
| wxBillDepositMapper.updateById(wxBillRent); | |||
| dto.setRemark(sb.toString()); | |||
| return wxBillRent; | |||
| } | |||
| @@ -488,15 +488,38 @@ public class WxBillOtherDepositServiceImpl extends WxBillBaseService implements | |||
| if (StringUtils.isNotBlank(dbBill.getPay())) { | |||
| opay = new BigDecimal(dbBill.getPay()); | |||
| } | |||
| opay = opay.add(new BigDecimal(dto.getAddpay())); | |||
| wxBillRent.setPay(opay.toPlainString()); | |||
| if (opay.compareTo(new BigDecimal(dbBill.getReceivePay())) >= 0 ) { | |||
| wxBillRent.setStatus(EnumBillStatus.PAID.getCode()); | |||
| dto.setRemark(StringUtils.trimToEmpty(dto.getRemark())+ ";【系统】账单已付金额调整后已大于等于实际应付金额,自动归结为结清。"); | |||
| //支付的金额先扣除手续费和滞纳金,多余的再抵扣本金 | |||
| String servicePay = dbBill.getServiceChargePay(); | |||
| if (StringUtils.isBlank(servicePay)) { | |||
| servicePay = "0"; | |||
| } | |||
| StringBuffer sb = new StringBuffer(StringUtils.trimToEmpty(dto.getRemark())); | |||
| BigDecimal serviceLastMoney = new BigDecimal(dto.getAddpay()).subtract(new BigDecimal(servicePay)); | |||
| if (new BigDecimal(servicePay).compareTo(new BigDecimal(0)) > 0 ) { | |||
| if (serviceLastMoney.compareTo(new BigDecimal(0)) >= 0 ) { | |||
| wxBillRent.setServiceChargePay("0"); | |||
| sb.append(";手续费").append(servicePay).append("已结清"); | |||
| }else { | |||
| wxBillRent.setServiceChargePay(dto.getAddpay()); | |||
| sb.append(";手续费").append(servicePay).append("已支付").append(dto.getAddpay()); | |||
| } | |||
| } | |||
| if (serviceLastMoney.compareTo(new BigDecimal(0)) > 0 ) { | |||
| opay = opay.add(serviceLastMoney); | |||
| wxBillRent.setPay(opay.toPlainString()); | |||
| sb.append(";已付金额增加").append(serviceLastMoney.toPlainString()); | |||
| if (opay.compareTo(new BigDecimal(dbBill.getReceivePay())) >= 0 ) { | |||
| wxBillRent.setStatus(EnumBillStatus.PAID.getCode()); | |||
| sb.append(";【系统】账单已付金额已大于等于实际应付金额,自动归结为结清。"); | |||
| } | |||
| } | |||
| wxBillRent.setPayDate(new Date()); | |||
| wxBillRent.setPayWay(dto.getPayWay()); | |||
| wxBillOtherDepositMapper.updateById(wxBillRent); | |||
| dto.setRemark(sb.toString()); | |||
| return wxBillRent; | |||
| } | |||
| @@ -433,15 +433,37 @@ public class WxBillOtherServiceImpl extends WxBillBaseService implements WxBillO | |||
| if (StringUtils.isNotBlank(dbBill.getPay())) { | |||
| opay = new BigDecimal(dbBill.getPay()); | |||
| } | |||
| opay = opay.add(new BigDecimal(dto.getAddpay())); | |||
| wxBillRent.setPay(opay.toPlainString()); | |||
| if (opay.compareTo(new BigDecimal(dbBill.getReceivePay())) >= 0 ) { | |||
| wxBillRent.setStatus(EnumBillStatus.PAID.getCode()); | |||
| dto.setRemark(StringUtils.trimToEmpty(dto.getRemark())+ ";【系统】账单已付金额调整后已大于等于实际应付金额,自动归结为结清。"); | |||
| //支付的金额先扣除手续费和滞纳金,多余的再抵扣本金 | |||
| String servicePay = dbBill.getServiceChargePay(); | |||
| if (StringUtils.isBlank(servicePay)) { | |||
| servicePay = "0"; | |||
| } | |||
| StringBuffer sb = new StringBuffer(StringUtils.trimToEmpty(dto.getRemark())); | |||
| BigDecimal serviceLastMoney = new BigDecimal(dto.getAddpay()).subtract(new BigDecimal(servicePay)); | |||
| if (new BigDecimal(servicePay).compareTo(new BigDecimal(0)) > 0 ) { | |||
| if (serviceLastMoney.compareTo(new BigDecimal(0)) >= 0 ) { | |||
| wxBillRent.setServiceChargePay("0"); | |||
| sb.append(";手续费").append(servicePay).append("已结清"); | |||
| }else { | |||
| wxBillRent.setServiceChargePay(dto.getAddpay()); | |||
| sb.append(";手续费").append(servicePay).append("已支付").append(dto.getAddpay()); | |||
| } | |||
| } | |||
| if (serviceLastMoney.compareTo(new BigDecimal(0)) > 0 ) { | |||
| opay = opay.add(serviceLastMoney); | |||
| wxBillRent.setPay(opay.toPlainString()); | |||
| sb.append(";已付金额增加").append(serviceLastMoney.toPlainString()); | |||
| if (opay.compareTo(new BigDecimal(dbBill.getReceivePay())) >= 0 ) { | |||
| wxBillRent.setStatus(EnumBillStatus.PAID.getCode()); | |||
| sb.append(";【系统】账单已付金额已大于等于实际应付金额,自动归结为结清。"); | |||
| } | |||
| } | |||
| wxBillRent.setPayDate(new Date()); | |||
| wxBillRent.setPayWay(dto.getPayWay()); | |||
| wxBillOtherMapper.updateById(wxBillRent); | |||
| dto.setRemark(sb.toString()); | |||
| return wxBillRent; | |||
| } | |||
| @@ -466,15 +466,37 @@ public class WxBillPropertyDepositServiceImpl extends WxBillBaseService implemen | |||
| if (StringUtils.isNotBlank(dbBill.getPay())) { | |||
| opay = new BigDecimal(dbBill.getPay()); | |||
| } | |||
| opay = opay.add(new BigDecimal(dto.getAddpay())); | |||
| wxBillRent.setPay(opay.toPlainString()); | |||
| if (opay.compareTo(new BigDecimal(dbBill.getReceivePay())) >= 0 ) { | |||
| wxBillRent.setStatus(EnumBillStatus.PAID.getCode()); | |||
| dto.setRemark(StringUtils.trimToEmpty(dto.getRemark())+ ";【系统】账单已付金额调整后已大于等于实际应付金额,自动归结为结清。"); | |||
| //支付的金额先扣除手续费和滞纳金,多余的再抵扣本金 | |||
| String servicePay = dbBill.getServiceChargePay(); | |||
| if (StringUtils.isBlank(servicePay)) { | |||
| servicePay = "0"; | |||
| } | |||
| StringBuffer sb = new StringBuffer(StringUtils.trimToEmpty(dto.getRemark())); | |||
| BigDecimal serviceLastMoney = new BigDecimal(dto.getAddpay()).subtract(new BigDecimal(servicePay)); | |||
| if (new BigDecimal(servicePay).compareTo(new BigDecimal(0)) > 0 ) { | |||
| if (serviceLastMoney.compareTo(new BigDecimal(0)) >= 0 ) { | |||
| wxBillRent.setServiceChargePay("0"); | |||
| sb.append(";手续费").append(servicePay).append("已结清"); | |||
| }else { | |||
| wxBillRent.setServiceChargePay(dto.getAddpay()); | |||
| sb.append(";手续费").append(servicePay).append("已支付").append(dto.getAddpay()); | |||
| } | |||
| } | |||
| if (serviceLastMoney.compareTo(new BigDecimal(0)) > 0 ) { | |||
| opay = opay.add(serviceLastMoney); | |||
| wxBillRent.setPay(opay.toPlainString()); | |||
| sb.append(";已付金额增加").append(serviceLastMoney.toPlainString()); | |||
| if (opay.compareTo(new BigDecimal(dbBill.getReceivePay())) >= 0 ) { | |||
| wxBillRent.setStatus(EnumBillStatus.PAID.getCode()); | |||
| sb.append(";【系统】账单已付金额已大于等于实际应付金额,自动归结为结清。"); | |||
| } | |||
| } | |||
| wxBillRent.setPayDate(new Date()); | |||
| wxBillRent.setPayWay(dto.getPayWay()); | |||
| wxBillPropertyDepositMapper.updateById(wxBillRent); | |||
| dto.setRemark(sb.toString()); | |||
| return wxBillRent; | |||
| } | |||
| @@ -555,15 +555,56 @@ public class WxBillPropertyServiceImpl extends WxBillBaseService implements WxBi | |||
| if (StringUtils.isNotBlank(dbBill.getPay())) { | |||
| opay = new BigDecimal(dbBill.getPay()); | |||
| } | |||
| opay = opay.add(new BigDecimal(dto.getAddpay())); | |||
| wxBillRent.setPay(opay.toPlainString()); | |||
| if (opay.compareTo(new BigDecimal(dbBill.getReceivePay())) >= 0 ) { | |||
| wxBillRent.setStatus(EnumBillStatus.PAID.getCode()); | |||
| dto.setRemark(StringUtils.trimToEmpty(dto.getRemark())+ ";【系统】账单已付金额调整后已大于等于实际应付金额,自动归结为结清。"); | |||
| //支付的金额先扣除手续费和滞纳金,多余的再抵扣本金 | |||
| String servicePay = dbBill.getServiceChargePay(); | |||
| if (StringUtils.isBlank(servicePay)) { | |||
| servicePay = "0"; | |||
| } | |||
| StringBuffer sb = new StringBuffer(StringUtils.trimToEmpty(dto.getRemark())); | |||
| BigDecimal serviceLastMoney = new BigDecimal(dto.getAddpay()).subtract(new BigDecimal(servicePay)); | |||
| if (new BigDecimal(servicePay).compareTo(new BigDecimal(0)) > 0 ) { | |||
| if (serviceLastMoney.compareTo(new BigDecimal(0)) >= 0 ) { | |||
| wxBillRent.setServiceChargePay("0"); | |||
| sb.append(";手续费").append(servicePay).append("已结清"); | |||
| }else { | |||
| wxBillRent.setServiceChargePay(dto.getAddpay()); | |||
| sb.append(";手续费").append(servicePay).append("已支付").append(dto.getAddpay()); | |||
| } | |||
| } | |||
| BigDecimal latePayLastMoney = new BigDecimal(0); | |||
| if (serviceLastMoney.compareTo(new BigDecimal(0)) > 0 ) { | |||
| String latePay = dbBill.getLatePayPrice(); | |||
| if (StringUtils.isBlank(latePay)) { | |||
| latePay = "0"; | |||
| } | |||
| latePayLastMoney = serviceLastMoney.subtract(new BigDecimal(latePay)); | |||
| if (new BigDecimal(latePay).compareTo(new BigDecimal(0)) > 0 ) { | |||
| if (latePayLastMoney.compareTo(new BigDecimal(0)) >= 0 ) { | |||
| wxBillRent.setLatePayPrice("0"); | |||
| sb.append(";滞纳金").append(latePay).append("已结清"); | |||
| }else { | |||
| String lp = new BigDecimal(latePay).subtract(serviceLastMoney).toPlainString(); | |||
| wxBillRent.setLatePayPrice(lp); | |||
| sb.append(";滞纳金").append(latePay).append("已支付").append(lp); | |||
| } | |||
| } | |||
| } | |||
| if (latePayLastMoney.compareTo(new BigDecimal(0)) > 0 ) { | |||
| opay = opay.add(latePayLastMoney); | |||
| wxBillRent.setPay(opay.toPlainString()); | |||
| sb.append(";已付金额增加").append(latePayLastMoney.toPlainString()); | |||
| if (opay.compareTo(new BigDecimal(dbBill.getReceivePay())) >= 0 ) { | |||
| wxBillRent.setStatus(EnumBillStatus.PAID.getCode()); | |||
| sb.append(";【系统】账单已付金额已大于等于实际应付金额,自动归结为结清。"); | |||
| } | |||
| } | |||
| wxBillRent.setPayDate(new Date()); | |||
| wxBillRent.setPayWay(dto.getPayWay()); | |||
| wxBillPropertyMapper.updateById(wxBillRent); | |||
| dto.setRemark(sb.toString()); | |||
| return wxBillRent; | |||
| } | |||
| @@ -484,15 +484,57 @@ public class WxBillRentManageServiceImpl extends WxBillBaseService implements W | |||
| if (StringUtils.isNotBlank(dbBill.getPay())) { | |||
| opay = new BigDecimal(dbBill.getPay()); | |||
| } | |||
| opay = opay.add(new BigDecimal(dto.getAddpay())); | |||
| wxBillRent.setPay(opay.toPlainString()); | |||
| if (opay.compareTo(new BigDecimal(dbBill.getReceivePay())) >= 0 ) { | |||
| wxBillRent.setStatus(EnumBillStatus.PAID.getCode()); | |||
| dto.setRemark(StringUtils.trimToEmpty(dto.getRemark())+ ";【系统】账单已付金额调整后已大于等于实际应付金额,自动归结为结清。"); | |||
| //支付的金额先扣除手续费和滞纳金,多余的再抵扣本金 | |||
| String servicePay = dbBill.getServiceChargePay(); | |||
| if (StringUtils.isBlank(servicePay)) { | |||
| servicePay = "0"; | |||
| } | |||
| StringBuffer sb = new StringBuffer(StringUtils.trimToEmpty(dto.getRemark())); | |||
| BigDecimal serviceLastMoney = new BigDecimal(dto.getAddpay()).subtract(new BigDecimal(servicePay)); | |||
| if (new BigDecimal(servicePay).compareTo(new BigDecimal(0)) > 0 ) { | |||
| if (serviceLastMoney.compareTo(new BigDecimal(0)) >= 0 ) { | |||
| wxBillRent.setServiceChargePay("0"); | |||
| sb.append(";手续费").append(servicePay).append("已结清"); | |||
| }else { | |||
| wxBillRent.setServiceChargePay(dto.getAddpay()); | |||
| sb.append(";手续费").append(servicePay).append("已支付").append(dto.getAddpay()); | |||
| } | |||
| } | |||
| BigDecimal latePayLastMoney = new BigDecimal(0); | |||
| if (serviceLastMoney.compareTo(new BigDecimal(0)) > 0 ) { | |||
| String latePay = dbBill.getLatePayPrice(); | |||
| if (StringUtils.isBlank(latePay)) { | |||
| latePay = "0"; | |||
| } | |||
| latePayLastMoney = serviceLastMoney.subtract(new BigDecimal(latePay)); | |||
| if (new BigDecimal(latePay).compareTo(new BigDecimal(0)) > 0 ) { | |||
| if (latePayLastMoney.compareTo(new BigDecimal(0)) >= 0 ) { | |||
| wxBillRent.setLatePayPrice("0"); | |||
| sb.append(";滞纳金").append(latePay).append("已结清"); | |||
| }else { | |||
| String lp = new BigDecimal(latePay).subtract(serviceLastMoney).toPlainString(); | |||
| wxBillRent.setLatePayPrice(lp); | |||
| sb.append(";滞纳金").append(latePay).append("已支付").append(lp); | |||
| } | |||
| } | |||
| } | |||
| if (latePayLastMoney.compareTo(new BigDecimal(0)) > 0 ) { | |||
| opay = opay.add(latePayLastMoney); | |||
| wxBillRent.setPay(opay.toPlainString()); | |||
| sb.append(";已付金额增加").append(latePayLastMoney.toPlainString()); | |||
| if (opay.compareTo(new BigDecimal(dbBill.getReceivePay())) >= 0 ) { | |||
| wxBillRent.setStatus(EnumBillStatus.PAID.getCode()); | |||
| sb.append(";【系统】账单已付金额已大于等于实际应付金额,自动归结为结清。"); | |||
| } | |||
| } | |||
| wxBillRent.setPayDate(new Date()); | |||
| wxBillRent.setPayWay(dto.getPayWay()); | |||
| wxBillRentManageMapper.updateById(wxBillRent); | |||
| dto.setRemark(sb.toString()); | |||
| return wxBillRent; | |||
| } | |||
| @@ -649,15 +649,56 @@ public class WxBillRentServiceImpl extends WxBillBaseService implements WxBillRe | |||
| if (StringUtils.isNotBlank(dbBill.getPay())) { | |||
| opay = new BigDecimal(dbBill.getPay()); | |||
| } | |||
| opay = opay.add(new BigDecimal(dto.getAddpay())); | |||
| wxBillRent.setPay(opay.toPlainString()); | |||
| if (opay.compareTo(new BigDecimal(dbBill.getReceivePay())) >= 0 ) { | |||
| wxBillRent.setStatus(EnumBillStatus.PAID.getCode()); | |||
| dto.setRemark(StringUtils.trimToEmpty(dto.getRemark())+ ";【系统】账单已付金额调整后已大于等于实际应付金额,自动归结为结清。"); | |||
| //支付的金额先扣除手续费和滞纳金,多余的再抵扣本金 | |||
| String servicePay = dbBill.getServiceChargePay(); | |||
| if (StringUtils.isBlank(servicePay)) { | |||
| servicePay = "0"; | |||
| } | |||
| StringBuffer sb = new StringBuffer(StringUtils.trimToEmpty(dto.getRemark())); | |||
| BigDecimal serviceLastMoney = new BigDecimal(dto.getAddpay()).subtract(new BigDecimal(servicePay)); | |||
| if (new BigDecimal(servicePay).compareTo(new BigDecimal(0)) > 0 ) { | |||
| if (serviceLastMoney.compareTo(new BigDecimal(0)) >= 0 ) { | |||
| wxBillRent.setServiceChargePay("0"); | |||
| sb.append(";手续费").append(servicePay).append("已结清"); | |||
| }else { | |||
| wxBillRent.setServiceChargePay(dto.getAddpay()); | |||
| sb.append(";手续费").append(servicePay).append("已支付").append(dto.getAddpay()); | |||
| } | |||
| } | |||
| BigDecimal latePayLastMoney = new BigDecimal(0); | |||
| if (serviceLastMoney.compareTo(new BigDecimal(0)) > 0 ) { | |||
| String latePay = dbBill.getLatePayPrice(); | |||
| if (StringUtils.isBlank(latePay)) { | |||
| latePay = "0"; | |||
| } | |||
| latePayLastMoney = serviceLastMoney.subtract(new BigDecimal(latePay)); | |||
| if (new BigDecimal(latePay).compareTo(new BigDecimal(0)) > 0 ) { | |||
| if (latePayLastMoney.compareTo(new BigDecimal(0)) >= 0 ) { | |||
| wxBillRent.setLatePayPrice("0"); | |||
| sb.append(";滞纳金").append(latePay).append("已结清"); | |||
| }else { | |||
| String lp = new BigDecimal(latePay).subtract(serviceLastMoney).toPlainString(); | |||
| wxBillRent.setLatePayPrice(lp); | |||
| sb.append(";滞纳金").append(latePay).append("已支付").append(lp); | |||
| } | |||
| } | |||
| } | |||
| if (latePayLastMoney.compareTo(new BigDecimal(0)) > 0 ) { | |||
| opay = opay.add(latePayLastMoney); | |||
| wxBillRent.setPay(opay.toPlainString()); | |||
| sb.append(";已付金额增加").append(latePayLastMoney.toPlainString()); | |||
| if (opay.compareTo(new BigDecimal(dbBill.getReceivePay())) >= 0 ) { | |||
| wxBillRent.setStatus(EnumBillStatus.PAID.getCode()); | |||
| sb.append(";【系统】账单已付金额已大于等于实际应付金额,自动归结为结清。"); | |||
| } | |||
| } | |||
| wxBillRent.setPayDate(new Date()); | |||
| wxBillRent.setPayWay(dto.getPayWay()); | |||
| wxBillRentMapper.updateById(wxBillRent); | |||
| dto.setRemark(sb.toString()); | |||
| return wxBillRent; | |||
| } | |||