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");