From 3a71ddf935a034666f8556c40bc5e3cdab7aa198 Mon Sep 17 00:00:00 2001 From: gongbiao Date: Wed, 23 Oct 2019 12:08:01 +0800 Subject: [PATCH] =?UTF-8?q?[=E5=90=88=E5=90=8C][=E4=BF=AE=E6=94=B9][?= =?UTF-8?q?=E5=88=9B=E5=BB=BA=E8=B4=A6=E5=8D=95=E6=B7=BB=E5=8A=A0=E6=89=8B?= =?UTF-8?q?=E7=BB=AD=E8=B4=B9]?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/impl/WxPropertyContractServiceImpl.java | 4 ++++ .../iformall/service/impl/WxRentContractServiceImpl.java | 9 +++++++-- 2 files changed, 11 insertions(+), 2 deletions(-) diff --git a/mallinkService/src/main/java/com/iformall/service/impl/WxPropertyContractServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/WxPropertyContractServiceImpl.java index 2989aab7b..722e4e594 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxPropertyContractServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxPropertyContractServiceImpl.java @@ -219,6 +219,7 @@ public class WxPropertyContractServiceImpl implements WxPropertyContractService return; } wxBillPropertyMapper.deletePreviewBill(record); + WxPayAccountBill wxPayAccountBill = wxPayAccountBillService.getByTenantId(record.getTenantId()); final IdWorker idWorker = IdWorker.get(); int count = 1; for (WxBillProperty bill:record.getPreviewBillRentList()) { @@ -245,6 +246,9 @@ public class WxPropertyContractServiceImpl implements WxPropertyContractService bill.setStatus(EnumBillRentStatus.PAID.getCode()); bill.setPayDate(date); } + BigDecimal servicePay = new BigDecimal(bill.getReceivePay()).multiply(new BigDecimal(wxPayAccountBill.getServiceChargeRate())).divide(new BigDecimal(10000), 2, BigDecimal.ROUND_HALF_UP); + bill.setServiceChargePay(servicePay.intValue()); + bill.setOwe(bill.getReceivePay() + bill.getServiceChargePay()); count++; } wxBillPropertyMapper.insertBills(record.getPreviewBillRentList()); diff --git a/mallinkService/src/main/java/com/iformall/service/impl/WxRentContractServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/WxRentContractServiceImpl.java index 3ceac0416..98f61c156 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxRentContractServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxRentContractServiceImpl.java @@ -1,6 +1,5 @@ package com.iformall.service.impl; -import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; @@ -628,10 +627,12 @@ public class WxRentContractServiceImpl implements WxRentContractService { * 重新生成账单(预账单调整) */ public void savePreviewBill(WxRentContract record){ + if(CollectionUtils.isEmpty(record.getPreviewBillRentList())){ return; } wxBillRentMapper.deletePreviewBill(record); + WxPayAccountBill wxPayAccountBill = wxPayAccountBillService.getByTenantId(record.getTenantId()); final IdWorker idWorker = IdWorker.get(); int count = 1; for (WxBillRent bill:record.getPreviewBillRentList()) { @@ -640,7 +641,6 @@ public class WxRentContractServiceImpl implements WxRentContractService { bill.setRentContractId(record.getId()); bill.setCreatetime(date); bill.setTenantId(record.getTenantId()); - bill.setOwe(bill.getReceivePay()); bill.setNeedPay(bill.getNeedPay()); bill.setUpdatetime(date); bill.setRentShopType(record.getRentShopType()); @@ -657,6 +657,10 @@ public class WxRentContractServiceImpl implements WxRentContractService { bill.setStatus(EnumBillRentStatus.PAID.getCode()); bill.setPayDate(date); } + //计算手续费 + BigDecimal servicePay = new BigDecimal(bill.getReceivePay()).multiply(new BigDecimal(wxPayAccountBill.getServiceChargeRate())).divide(new BigDecimal(10000), 2, BigDecimal.ROUND_HALF_UP); + bill.setServiceChargePay(servicePay.intValue()); + bill.setOwe(bill.getReceivePay() + bill.getServiceChargePay()); count++; } wxBillRentMapper.insertBills(record.getPreviewBillRentList()); @@ -1330,6 +1334,7 @@ public class WxRentContractServiceImpl implements WxRentContractService { //计算手续费 BigDecimal servicePay = new BigDecimal(wxBillRent.getReceivePay()).multiply(new BigDecimal(wxPayAccountBill.getServiceChargeRate())).divide(new BigDecimal(10000), 2, BigDecimal.ROUND_HALF_UP); wxBillRent.setServiceChargePay(servicePay.intValue()); + wxBillRent.setOwe(wxBillRent.getReceivePay() + wxBillRent.getServiceChargePay()); resultList.add(wxBillRent); }