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 { } +