From cc8796635365a22c661ef33b5d0ff626ec6b46cf Mon Sep 17 00:00:00 2001 From: luozukai Date: Fri, 31 May 2019 23:33:43 +0800 Subject: [PATCH] =?UTF-8?q?[bug][=E4=BF=AE=E6=94=B9][=E4=BF=AE=E6=94=B9?= =?UTF-8?q?=E9=A2=84=E8=A7=88=E8=B4=A6=E5=8D=95=E9=97=AE=E9=A2=98]?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../impl/WxPropertyContractServiceImpl.java | 18 +++++++++++++++++- .../impl/WxRentContractServiceImpl.java | 15 ++++++++++++++- 2 files changed, 31 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 e5fcc95c6..1bd8539f8 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxPropertyContractServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxPropertyContractServiceImpl.java @@ -563,7 +563,15 @@ public class WxPropertyContractServiceImpl implements WxPropertyContractService } if(i == 0){//第一期 - needpay = new Double(receivePeriod * priceD).longValue(); + if(wxPropertyContract.getAdjustPeriod().equals(EnumRentContractAdjustPeriod.ADJUST_PERIOD_NAR_MONTH.getCode())){ + if(isFirstDay(billTimeVo.getStartDate())){ + needpay = new Double(receivePeriod * priceD).longValue(); + }else{ + needpay = new Double(WxRentContractServiceImpl.getMonthNeedPay(priceD, billTimeVo.getStartDate(), billTimeVo.getEndDate())).longValue(); + } + }else{ + needpay = new Double(receivePeriod * priceD).longValue(); + } }else if(i == billTimeVoList.size()-1){//最后 needpay = new Double(WxRentContractServiceImpl.getMonthNeedPay(priceD,billTimeVo.getStartDate(),billTimeVo.getEndDate())).longValue(); }else{//中间 @@ -616,6 +624,14 @@ public class WxPropertyContractServiceImpl implements WxPropertyContractService return resultMap; } + public boolean isFirstDay(Date date){ + int dateInt = Integer.parseInt(new SimpleDateFormat("d").format(date)); + if(dateInt == 1){ + return true; + } + return false; + } + /** * 根据商户/指定物业合同生成物业账单 * @param wxMerchant 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 23b17eb8e..2f85a6619 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxRentContractServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxRentContractServiceImpl.java @@ -951,7 +951,15 @@ public class WxRentContractServiceImpl implements WxRentContractService { } if(i == 0){//第一期 - needpay = new Double(receivePeriod * priceD).longValue(); + if(wxRentContract.getAdjustPeriod().equals(EnumRentContractAdjustPeriod.ADJUST_PERIOD_NAR_MONTH.getCode())){ + if(isFirstDay(billTimeVo.getStartDate())){ + needpay = new Double(receivePeriod * priceD).longValue(); + }else{ + needpay = new Double(getMonthNeedPay(priceD, billTimeVo.getStartDate(), billTimeVo.getEndDate())).longValue(); + } + }else{ + needpay = new Double(receivePeriod * priceD).longValue(); + } }else if(i == billTimeVoList.size()-1){//最后 needpay = new Double(getMonthNeedPay(priceD,billTimeVo.getStartDate(),billTimeVo.getEndDate())).longValue(); }else{//中间 @@ -1800,6 +1808,11 @@ public class WxRentContractServiceImpl implements WxRentContractService { int dayCount = DateUtils.getMonthDayCount(start); total += (diff[1]+1) * (price/dayCount); + //同月 + if(sdM.format(start).equals(sdM.format(end))){ + return total; + } + //中间月份 Date newStartDate = DateUtils.getDaySet(lastMonthDay,Calendar.DATE,1); int months = getMonths(sdM.format(newStartDate)+"-01",sdM.format(end)+"-01");