From 7af3053038d9dc0b08f21f054cc3bc357a4d37f6 Mon Sep 17 00:00:00 2001 From: luozukai Date: Fri, 26 Apr 2019 11:03:43 +0800 Subject: [PATCH] =?UTF-8?q?[=E8=B4=A6=E5=8D=95=E8=B0=83=E6=95=B4][?= =?UTF-8?q?=E4=BF=AE=E6=94=B9][=E4=BF=AE=E6=94=B9=E7=94=9F=E6=88=90?= =?UTF-8?q?=E9=80=BB=E8=BE=91]?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../impl/WxPropertyContractServiceImpl.java | 35 ++++++------ .../impl/WxRentContractServiceImpl.java | 53 ++++++++----------- 2 files changed, 36 insertions(+), 52 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 a293f7f16..53f483357 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxPropertyContractServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxPropertyContractServiceImpl.java @@ -605,7 +605,7 @@ public class WxPropertyContractServiceImpl implements WxPropertyContractService Date receiveDate = DateUtils.getFirstDayOfNextMonth(startdate,receivePeriod * i); wxBillProperty.setReceiveDate(receiveDate); wxBillProperty.setStarttime(receiveDate); - wxBillProperty.setEndtime(DateUtils.getLastDayForMonth(receiveDate,receivePeriod * i)); + wxBillProperty.setEndtime(DateUtils.getLastDayForMonth(wxBillProperty.getStarttime(),receivePeriod * i)); instance.clear(); instance.setTime(receiveDate); @@ -613,38 +613,37 @@ public class WxPropertyContractServiceImpl implements WxPropertyContractService instance.add(Calendar.DAY_OF_MONTH, -1); wxBillProperty.setEndtime(instance.getTime()); }else if(i == paycount - 1) {//最后周期 + //receivePeriod * i 得到开始日期 Date receiveDate = DateUtils.getFirstDayOfNextMonth(startdate,receivePeriod * i); wxBillProperty.setReceiveDate(receiveDate); wxBillProperty.setStarttime(receiveDate); + //得到开始日期第一天 Date firstDay = DateUtils.getFirstDayForCurrMonth(wxBillProperty.getStarttime()); instance.clear(); instance.setTime(firstDay); - //最后一期有余,加上残月,(不整除时,最后一个月有余,否则为0) - if(isFirstDay(wxPropertyContract.getRentalStartDate())){ - if(receivePeriod > 1) { - if(isLastYesr && extralease > 0) { + //若最后一期有余,带上残月,(不整除时,最后一个月有余,否则extralease=0) + if(isFirstDay(wxPropertyContract.getRentalStartDate())){ //月第一天起租 + if(receivePeriod > 1){ + if(isLastYesr && extralease > 0){ instance.add(dayType, extralease); }else{ instance.add(dayType, receivePeriod); } - }else { + }else{ instance.add(dayType, receivePeriod); } }else{ - if(receivePeriod > 1) { - if(isLastYesr) { - instance.add(dayType, extralease); - }else{ - instance.add(dayType, receivePeriod); - } - } if(isLastYesr) { + instance.add(dayType, extralease); instance.add(Calendar.DAY_OF_MONTH, rentStartDateInt - 1); + }else{ + instance.add(dayType, receivePeriod); } } + //先减一个月 后加上残月 instance.add(Calendar.DAY_OF_MONTH, -1); wxBillProperty.setEndtime(instance.getTime()); @@ -662,15 +661,11 @@ public class WxPropertyContractServiceImpl implements WxPropertyContractService needPayDouble += price * receivePeriod; } }else{ - if(receivePeriod > 1) { - if(isLastYesr) { - needPayDouble += price * extralease; - }else{ - needPayDouble += price * receivePeriod; - } - } if(isLastYesr) { + needPayDouble += price * extralease; needPayDouble += oneDayProce * endDateInt; + }else{ + needPayDouble += price * receivePeriod; } } DecimalFormat format = new DecimalFormat("0"); 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 616fec76c..9b0f5acd5 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxRentContractServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxRentContractServiceImpl.java @@ -134,7 +134,7 @@ public class WxRentContractServiceImpl implements WxRentContractService { wxRentContract.setAdjustPeriod(2); wxRentContract.setMonthHandleType(2); }else if(wxRentContract.getAdjustPeriod().intValue() == 3){ - wxRentContract.setAdjustPeriod(null); + wxRentContract.setAdjustPeriod(2); wxRentContract.setMonthHandleType(3); } result.put("wxRentContract", wxRentContract); @@ -970,51 +970,43 @@ public class WxRentContractServiceImpl implements WxRentContractService { wxBillRent.setStarttime(receiveDate); wxBillRent.setEndtime(DateUtils.getLastDayForMonth(wxBillRent.getStarttime(),receivePeriod * i)); -// instance.clear(); -// instance.setTime(receiveDate); -// instance.add(dayType, receivePeriod); -// instance.add(Calendar.DAY_OF_MONTH, -1); -// wxBillRent.setEndtime(instance.getTime()); + instance.clear(); + instance.setTime(receiveDate); + instance.add(dayType, receivePeriod); + instance.add(Calendar.DAY_OF_MONTH, -1); + wxBillRent.setEndtime(instance.getTime()); }else if(i == paycount - 1) {//最后周期 + //receivePeriod * i 得到开始日期 Date receiveDate = DateUtils.getFirstDayOfNextMonth(startdate,receivePeriod * i); wxBillRent.setReceiveDate(receiveDate); wxBillRent.setStarttime(receiveDate); + //得到开始日期第一天 Date firstDay = DateUtils.getFirstDayForCurrMonth(wxBillRent.getStarttime()); instance.clear(); instance.setTime(firstDay); - if(new SimpleDateFormat("yyyy-MM-dd").format(wxBillRent.getEndtime()).equals("2020-02-29")){ - System.out.println( "-----------"+receivePeriod * i); - System.out.println("-----------"+new SimpleDateFormat("yyyy-MM-dd").format(wxBillRent.getReceiveDate())); - System.out.println("-----------"+new SimpleDateFormat("yyyy-MM-dd").format(wxBillRent.getEndtime())); - System.out.println(); - } - - //最后一期有余,加上残月,(不整除时,最后一个月有余,否则为0) - if(isFirstDay(wxRentContract.getRentalStartDate())){ - if(receivePeriod > 1) { - if(isLastYesr && extralease > 0) { + //若最后一期有余,带上残月,(不整除时,最后一个月有余,否则extralease=0) + if(isFirstDay(wxRentContract.getRentalStartDate())){ //月第一天起租 + if(receivePeriod > 1){ + if(isLastYesr && extralease > 0){ instance.add(dayType, extralease); }else{ instance.add(dayType, receivePeriod); } - }else { + }else{ instance.add(dayType, receivePeriod); } }else{ - if(receivePeriod > 1) { - if(isLastYesr) { - instance.add(dayType, extralease); - }else{ - instance.add(dayType, receivePeriod); - } - } if(isLastYesr) { + instance.add(dayType, extralease); instance.add(Calendar.DAY_OF_MONTH, rentStartDateInt - 1); + }else{ + instance.add(dayType, receivePeriod); } } + //先减一个月 后加上残月 instance.add(Calendar.DAY_OF_MONTH, -1); wxBillRent.setEndtime(instance.getTime()); @@ -1032,15 +1024,11 @@ public class WxRentContractServiceImpl implements WxRentContractService { needPayDouble += price * receivePeriod; } }else{ - if(receivePeriod > 1) { - if(isLastYesr) { - needPayDouble += price * extralease; - }else{ - needPayDouble += price * receivePeriod; - } - } if(isLastYesr) { + needPayDouble += price * extralease; needPayDouble += oneDayProce * endDateInt; + }else{ + needPayDouble += price * receivePeriod; } } DecimalFormat format = new DecimalFormat("0"); @@ -2038,3 +2026,4 @@ public class WxRentContractServiceImpl implements WxRentContractService { } +