From 28d1586f9184a50f566cb3d367cb03dd4afb0c7c Mon Sep 17 00:00:00 2001 From: winter Date: Fri, 2 Aug 2024 07:55:46 +0800 Subject: [PATCH] fix --- .../com/iformall/domain/po/WxEnergyFees.java | 18 +++++++++--------- .../com/iformall/domain/po/WxRentContract.java | 12 +++++++++--- .../com/iformall/enums/EnumBillAllType.java | 1 - .../enums/EnumFeesStandardsTimeUnit.java | 3 +-- .../impl/WxRentContractServiceImpl.java | 13 ++++++++----- 5 files changed, 27 insertions(+), 20 deletions(-) diff --git a/mallinkService/src/main/java/com/iformall/domain/po/WxEnergyFees.java b/mallinkService/src/main/java/com/iformall/domain/po/WxEnergyFees.java index 0e230d24e..4fe9c73f9 100644 --- a/mallinkService/src/main/java/com/iformall/domain/po/WxEnergyFees.java +++ b/mallinkService/src/main/java/com/iformall/domain/po/WxEnergyFees.java @@ -119,20 +119,21 @@ public class WxEnergyFees extends TenantEntity { } public String calcuteTotalMoney(Integer decimalSize,Date start,Date end,String count,boolean isFixed,EnumRentDayPriceCalcute priceCalcute,Integer monthDays ) { - if (isFixed) { - return this.price; - } - if (StringUtils.isBlank(count)) { + if (StringUtils.isBlank(count)) { count = "1"; } - if (this.timeUnit.intValue() == EnumFeesStandardsTimeUnit.DAY.getCode().intValue()) { + + if (isFixed) { + //如果是按计量单位计算的 BigDecimal priceD = new BigDecimal(this.price); priceD = priceD.multiply(new BigDecimal(count)); - return WxRentContractHelper.getNeedPay(decimalSize,new BigDecimal(0),priceD,start,end,priceCalcute,monthDays); - }if (this.timeUnit.intValue() == EnumFeesStandardsTimeUnit.ONECE.getCode().intValue()) { + return priceD.toPlainString(); + } + + if (this.timeUnit.intValue() == EnumFeesStandardsTimeUnit.DAY.getCode().intValue()) { BigDecimal priceD = new BigDecimal(this.price); priceD = priceD.multiply(new BigDecimal(count)); - return priceD.toPlainString(); + return WxRentContractHelper.getNeedPay(decimalSize,new BigDecimal(0),priceD,start,end,priceCalcute,monthDays); }else { //按月计算 BigDecimal priceMonth = new BigDecimal(this.price); @@ -208,5 +209,4 @@ public class WxEnergyFees extends TenantEntity { @TableField(exist = false) private Integer notSetOff; - } diff --git a/mallinkService/src/main/java/com/iformall/domain/po/WxRentContract.java b/mallinkService/src/main/java/com/iformall/domain/po/WxRentContract.java index 7e0ec2c46..d5d9d978f 100644 --- a/mallinkService/src/main/java/com/iformall/domain/po/WxRentContract.java +++ b/mallinkService/src/main/java/com/iformall/domain/po/WxRentContract.java @@ -527,18 +527,24 @@ public class WxRentContract extends TenantEntity { return sb.toString(); } - public Map getDepositEnergyFees() { + public Map getDepositEnergyFees(Map feesMap) { String dsdstr = this.getCashtypeContentLsit(); if (!StringUtils.isBlank(dsdstr)) { + Map retMap = new HashMap(); JSONArray rentInfoArray = JSONArray.parseArray(dsdstr); - Map retMap = new HashMap(); int size = rentInfoArray.size(); for (int i = 0; i < size; i++) { JSONObject rentInfoObject = rentInfoArray.getJSONObject(i); String depositType = rentInfoObject.getString("value"); String deposit = rentInfoObject.getString("deposit"); Long dt = Long.parseLong(depositType); - retMap.put(dt, deposit); + WxEnergyFees fees = feesMap.get(dt); + WxEnergyFees nfees = new WxEnergyFees(); + nfees.setId(fees.getId()); + nfees.setName(fees.getName()); + nfees.setCalcuteUnit(fees.getCalcuteUnit()); + nfees.setPrice(deposit); + retMap.put(dt, nfees); } return retMap; } diff --git a/mallinkService/src/main/java/com/iformall/enums/EnumBillAllType.java b/mallinkService/src/main/java/com/iformall/enums/EnumBillAllType.java index 55f7126c7..3a38a8e73 100644 --- a/mallinkService/src/main/java/com/iformall/enums/EnumBillAllType.java +++ b/mallinkService/src/main/java/com/iformall/enums/EnumBillAllType.java @@ -88,7 +88,6 @@ public enum EnumBillAllType { retList.add(EnumFeesStandardsTimeUnit.DAY); retList.add(EnumFeesStandardsTimeUnit.MONTH); retList.add(EnumFeesStandardsTimeUnit.YEAR); - retList.add(EnumFeesStandardsTimeUnit.ONECE); return retList; } } diff --git a/mallinkService/src/main/java/com/iformall/enums/EnumFeesStandardsTimeUnit.java b/mallinkService/src/main/java/com/iformall/enums/EnumFeesStandardsTimeUnit.java index 074718eb2..cca07310f 100644 --- a/mallinkService/src/main/java/com/iformall/enums/EnumFeesStandardsTimeUnit.java +++ b/mallinkService/src/main/java/com/iformall/enums/EnumFeesStandardsTimeUnit.java @@ -12,8 +12,7 @@ import com.iformall.utils.Constant; public enum EnumFeesStandardsTimeUnit { DAY(1, "每日"), MONTH(2, "每月"), - YEAR(3,"每年"), - ONECE(4,"单次"); + YEAR(3,"每年"); public static EnumFeesStandardsTimeUnit getEnum(Integer code) { for (EnumFeesStandardsTimeUnit value : values()) { 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 5fec9ec86..accd9f6cb 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxRentContractServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxRentContractServiceImpl.java @@ -946,29 +946,32 @@ public class WxRentContractServiceImpl implements WxRentContractService { WxRentContract wxRentContract = wxRentContractMapper.selectById(rentContractId); if (wxRentContract != null && StringUtils.isNotBlank(wxRentContract.getDeposit()) && new BigDecimal(wxRentContract.getDeposit()).compareTo(new BigDecimal(0)) > 0 ) { - //根据不同的科目生成不同的押金账单 - Map feesMap = wxRentContract.getDepositEnergyFees(); + WxEnergyFees fq = new WxEnergyFees(); fq.updateTenantInfo(tenantEntity); fq.setBillType(EnumBillAllType.RENT_DEPOSIT.getCode()); Map typeMap = wxEnergyService.getFeesMap(fq); + + //根据不同的科目生成不同的押金账单 + Map feesMap = wxRentContract.getDepositEnergyFees(typeMap); + List insertList = new ArrayList(); for (Iterator it = feesMap.keySet().iterator();it.hasNext();){ Long energyFeesId = it.next(); - String deposit = feesMap.get(energyFeesId); + WxEnergyFees depositFee = feesMap.get(energyFeesId); WxEnergyFees fees = typeMap.get(energyFeesId); final IdWorker idWorker = IdWorker.get(); WxBillDeposit wxBillDeposit = new WxBillDeposit(); wxBillDeposit.setId(idWorker.nextId()); wxBillDeposit.setRentContractId(wxRentContract.getId()); if (null != fees) { - wxBillDeposit.setContractDepoistDetail("合同押金项["+fees.getName()+"]"+deposit+"元"); + wxBillDeposit.setContractDepoistDetail("合同押金项["+fees.getName()+"]"+depositFee.getPrice()+"元"+"/"+fees.getCalcuteUnitName()); } wxBillDeposit.setPay("0"); //String needpay = wxRentContract.getDeposit(); - String needpay = deposit; + String needpay = depositFee.calcuteTotalMoney(wxRentContract.getDecimalSize(), null, null, "1", true, null, null); wxBillDeposit.setReceivePay(needpay); wxBillDeposit.setNeedPay(needpay); //wxBillDeposit.setOwe(needpay);