| @@ -268,7 +268,7 @@ public class WxBillController extends BaseController { | |||||
| if (null == billdetail) { | if (null == billdetail) { | ||||
| return new ResultData(Result.ERROR,"账单支付未查询到"); | return new ResultData(Result.ERROR,"账单支付未查询到"); | ||||
| } | } | ||||
| BigDecimal owe = new BigDecimal(billdetail.getOwe()); | |||||
| BigDecimal owe = new BigDecimal(billdetail.getBillAllNeedPay()); | |||||
| if (owe.compareTo(new BigDecimal(payMoney)) < 0) { | if (owe.compareTo(new BigDecimal(payMoney)) < 0) { | ||||
| return new ResultData(Result.ERROR,"支付金额大于欠费金额,请刷新账单后再支付"); | return new ResultData(Result.ERROR,"支付金额大于欠费金额,请刷新账单后再支付"); | ||||
| } | } | ||||
| @@ -132,5 +132,15 @@ public class WxBillDaily extends WxBillBaseEntity { | |||||
| @Override | @Override | ||||
| public String getBillRemark() { | public String getBillRemark() { | ||||
| return remark; | 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() { | public String getBillRemark() { | ||||
| return ""; | 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() { | public String getBillRemark() { | ||||
| return StringUtils.trimToEmpty(name)+StringUtils.trimToEmpty(comments); | 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() { | public String getBillRemark() { | ||||
| return StringUtils.trimToEmpty(name)+StringUtils.trimToEmpty(comments); | 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 ""; | return ""; | ||||
| } | } | ||||
| @Override | |||||
| public String getBillLatePay() { | |||||
| return latePayPrice; | |||||
| } | |||||
| @Override | |||||
| public String getBillServicePay() { | |||||
| return serviceChargePay; | |||||
| } | |||||
| @TableField(exist = false) | @TableField(exist = false) | ||||
| private String totalFee; | private String totalFee; | ||||
| public void calcuteTotalFee(Integer decimalSize) { | public void calcuteTotalFee(Integer decimalSize) { | ||||
| @@ -109,4 +109,14 @@ public class WxBillPropertyDeposit extends WxBillBaseEntity { | |||||
| return ""; | 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() { | public String getBillRemark() { | ||||
| return ""; | return ""; | ||||
| } | } | ||||
| @Override | |||||
| public String getBillLatePay() { | |||||
| return latePayPrice; | |||||
| } | |||||
| @Override | |||||
| public String getBillServicePay() { | |||||
| return serviceChargePay; | |||||
| } | |||||
| @io.swagger.annotations.ApiModelProperty(value="商业管理费应收金额",name="bussinessManageFeeNeedPay") | @io.swagger.annotations.ApiModelProperty(value="商业管理费应收金额",name="bussinessManageFeeNeedPay") | ||||
| private String bussinessManageFeeNeedPay; | private String bussinessManageFeeNeedPay; | ||||
| @@ -217,4 +227,6 @@ public class WxBillRent extends WxBillBaseEntity { | |||||
| .setScale(decimalSize, RoundingMode.HALF_UP).toPlainString(); | .setScale(decimalSize, RoundingMode.HALF_UP).toPlainString(); | ||||
| } | } | ||||
| } | } | ||||
| @@ -173,6 +173,16 @@ public class WxBillRentManage extends WxBillBaseEntity { | |||||
| return ""; | return ""; | ||||
| } | } | ||||
| @Override | |||||
| public String getBillLatePay() { | |||||
| return latePayPrice; | |||||
| } | |||||
| @Override | |||||
| public String getBillServicePay() { | |||||
| return serviceChargePay; | |||||
| } | |||||
| @TableField(exist = false) | @TableField(exist = false) | ||||
| private List<Long> merchantIds; | private List<Long> merchantIds; | ||||
| @TableField(exist = false) | @TableField(exist = false) | ||||
| @@ -104,6 +104,28 @@ public class WxBillBaseEntity extends TenantEntity { | |||||
| @TableField(exist = false) | @TableField(exist = false) | ||||
| protected Long floor; | 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) | @TableField(exist = false) | ||||
| protected List<Long> merchantIdList; | protected List<Long> merchantIdList; | ||||
| @@ -125,5 +147,7 @@ public class WxBillBaseEntity extends TenantEntity { | |||||
| //临期计算截止时间 | //临期计算截止时间 | ||||
| @TableField(exist = false) | @TableField(exist = false) | ||||
| private Integer notifyed; | private Integer notifyed; | ||||
| } | } | ||||
| @@ -529,15 +529,57 @@ public class WxBillDailyServiceImpl extends WxBillBaseService implements WxBillD | |||||
| if (StringUtils.isNotBlank(dbBill.getPay())) { | if (StringUtils.isNotBlank(dbBill.getPay())) { | ||||
| opay = new BigDecimal(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.setPayDate(new Date()); | ||||
| wxBillRent.setPayWay(dto.getPayWay()); | wxBillRent.setPayWay(dto.getPayWay()); | ||||
| wxBillDailyMapper.updateById(wxBillRent); | wxBillDailyMapper.updateById(wxBillRent); | ||||
| dto.setRemark(sb.toString()); | |||||
| return wxBillRent; | return wxBillRent; | ||||
| } | } | ||||
| @@ -486,15 +486,38 @@ public class WxBillDepositServiceImpl extends WxBillBaseService implements WxBil | |||||
| if (StringUtils.isNotBlank(dbBill.getPay())) { | if (StringUtils.isNotBlank(dbBill.getPay())) { | ||||
| opay = new BigDecimal(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.setPayDate(new Date()); | ||||
| wxBillRent.setPayWay(dto.getPayWay()); | wxBillRent.setPayWay(dto.getPayWay()); | ||||
| wxBillDepositMapper.updateById(wxBillRent); | wxBillDepositMapper.updateById(wxBillRent); | ||||
| dto.setRemark(sb.toString()); | |||||
| return wxBillRent; | return wxBillRent; | ||||
| } | } | ||||
| @@ -488,15 +488,38 @@ public class WxBillOtherDepositServiceImpl extends WxBillBaseService implements | |||||
| if (StringUtils.isNotBlank(dbBill.getPay())) { | if (StringUtils.isNotBlank(dbBill.getPay())) { | ||||
| opay = new BigDecimal(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.setPayDate(new Date()); | ||||
| wxBillRent.setPayWay(dto.getPayWay()); | wxBillRent.setPayWay(dto.getPayWay()); | ||||
| wxBillOtherDepositMapper.updateById(wxBillRent); | wxBillOtherDepositMapper.updateById(wxBillRent); | ||||
| dto.setRemark(sb.toString()); | |||||
| return wxBillRent; | return wxBillRent; | ||||
| } | } | ||||
| @@ -433,15 +433,37 @@ public class WxBillOtherServiceImpl extends WxBillBaseService implements WxBillO | |||||
| if (StringUtils.isNotBlank(dbBill.getPay())) { | if (StringUtils.isNotBlank(dbBill.getPay())) { | ||||
| opay = new BigDecimal(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.setPayDate(new Date()); | ||||
| wxBillRent.setPayWay(dto.getPayWay()); | wxBillRent.setPayWay(dto.getPayWay()); | ||||
| wxBillOtherMapper.updateById(wxBillRent); | wxBillOtherMapper.updateById(wxBillRent); | ||||
| dto.setRemark(sb.toString()); | |||||
| return wxBillRent; | return wxBillRent; | ||||
| } | } | ||||
| @@ -466,15 +466,37 @@ public class WxBillPropertyDepositServiceImpl extends WxBillBaseService implemen | |||||
| if (StringUtils.isNotBlank(dbBill.getPay())) { | if (StringUtils.isNotBlank(dbBill.getPay())) { | ||||
| opay = new BigDecimal(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.setPayDate(new Date()); | ||||
| wxBillRent.setPayWay(dto.getPayWay()); | wxBillRent.setPayWay(dto.getPayWay()); | ||||
| wxBillPropertyDepositMapper.updateById(wxBillRent); | wxBillPropertyDepositMapper.updateById(wxBillRent); | ||||
| dto.setRemark(sb.toString()); | |||||
| return wxBillRent; | return wxBillRent; | ||||
| } | } | ||||
| @@ -555,15 +555,56 @@ public class WxBillPropertyServiceImpl extends WxBillBaseService implements WxBi | |||||
| if (StringUtils.isNotBlank(dbBill.getPay())) { | if (StringUtils.isNotBlank(dbBill.getPay())) { | ||||
| opay = new BigDecimal(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.setPayDate(new Date()); | ||||
| wxBillRent.setPayWay(dto.getPayWay()); | wxBillRent.setPayWay(dto.getPayWay()); | ||||
| wxBillPropertyMapper.updateById(wxBillRent); | wxBillPropertyMapper.updateById(wxBillRent); | ||||
| dto.setRemark(sb.toString()); | |||||
| return wxBillRent; | return wxBillRent; | ||||
| } | } | ||||
| @@ -484,15 +484,57 @@ public class WxBillRentManageServiceImpl extends WxBillBaseService implements W | |||||
| if (StringUtils.isNotBlank(dbBill.getPay())) { | if (StringUtils.isNotBlank(dbBill.getPay())) { | ||||
| opay = new BigDecimal(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.setPayDate(new Date()); | ||||
| wxBillRent.setPayWay(dto.getPayWay()); | wxBillRent.setPayWay(dto.getPayWay()); | ||||
| wxBillRentManageMapper.updateById(wxBillRent); | wxBillRentManageMapper.updateById(wxBillRent); | ||||
| dto.setRemark(sb.toString()); | |||||
| return wxBillRent; | return wxBillRent; | ||||
| } | } | ||||
| @@ -649,15 +649,56 @@ public class WxBillRentServiceImpl extends WxBillBaseService implements WxBillRe | |||||
| if (StringUtils.isNotBlank(dbBill.getPay())) { | if (StringUtils.isNotBlank(dbBill.getPay())) { | ||||
| opay = new BigDecimal(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.setPayDate(new Date()); | ||||
| wxBillRent.setPayWay(dto.getPayWay()); | wxBillRent.setPayWay(dto.getPayWay()); | ||||
| wxBillRentMapper.updateById(wxBillRent); | wxBillRentMapper.updateById(wxBillRent); | ||||
| dto.setRemark(sb.toString()); | |||||
| return wxBillRent; | return wxBillRent; | ||||
| } | } | ||||