From 835b6e9a9f38bc628d1309aed98ab680118b345f Mon Sep 17 00:00:00 2001 From: luozukai Date: Mon, 15 Apr 2019 15:42:25 +0800 Subject: [PATCH] =?UTF-8?q?[=E5=AE=A1=E6=89=B9=E6=B5=81][=E4=BF=AE?= =?UTF-8?q?=E6=94=B9][=E5=AE=8C=E5=96=84=E8=B4=A6=E5=8D=95=E5=AE=A1?= =?UTF-8?q?=E6=89=B9]?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../impl/WxPropertyContractServiceImpl.java | 26 +++++++++-------- .../impl/WxRentContractServiceImpl.java | 28 +++++++++---------- 2 files changed, 29 insertions(+), 25 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 00a08d3d9..f231e2d95 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxPropertyContractServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxPropertyContractServiceImpl.java @@ -288,7 +288,7 @@ public class WxPropertyContractServiceImpl implements WxPropertyContractService ||!wxPropertyContract.getPrice().equals(record.getPrice()) ||!wxPropertyContract.getDeposit().equals(record.getDeposit()) ||!wxPropertyContract.getAdjustPeriod().equals(record.getAdjustPeriod()) - || !DateUtils.date2String(wxPropertyContract.getStartDate(),"yyyy-MM-dd").equals(DateUtils.date2String(record.getStartDate(),"yyyy-MM-dd")) + || !DateUtils.date2String(wxPropertyContract.getRentalStartDate(),"yyyy-MM-dd").equals(DateUtils.date2String(record.getRentalStartDate(),"yyyy-MM-dd")) )){ wxBillPropertyMapper.deletePreviewBill(record); //重新生成 @@ -469,6 +469,10 @@ public class WxPropertyContractServiceImpl implements WxPropertyContractService int paycount = lease / receivePeriod + extracount; int index = paycount - 1; final IdWorker idWorker = IdWorker.get(); + //自然月,周期为一个月 n+1 + if(wxPropertyContract.getAdjustPeriod().equals(EnumRentContractAdjustPeriod.ADJUST_PERIOD_NAR_MONTH.getCode()) && receivePeriod <= 1){ + paycount ++; + } for (int i = 0; i < paycount; i++) { WxBillProperty wxBillProperty = new WxBillProperty(); wxBillProperty.setIsPreview(isPreview); @@ -516,25 +520,25 @@ public class WxPropertyContractServiceImpl implements WxPropertyContractService //自然月,开始日期、缴款日,结束日期 if(wxPropertyContract.getAdjustPeriod().equals(EnumRentContractAdjustPeriod.ADJUST_PERIOD_NAR_MONTH.getCode())){ if(i == 0){//第一周期 - wxBillProperty.setReceiveDate(wxPropertyContract.getStartDate()); - wxBillProperty.setStarttime(wxPropertyContract.getStartDate()); - double oneDayProce = (double) price / DateUtils.getMonthDayCount(wxPropertyContract.getStartDate()); - int startDateInt = Integer.parseInt(new SimpleDateFormat("d").format(wxPropertyContract.getStartDate())); + wxBillProperty.setReceiveDate(wxPropertyContract.getRentalStartDate()); + wxBillProperty.setStarttime(wxPropertyContract.getRentalStartDate()); + double oneDayProce = (double) price / DateUtils.getMonthDayCount(wxPropertyContract.getRentalStartDate()); + int startDateInt = Integer.parseInt(new SimpleDateFormat("d").format(wxPropertyContract.getRentalStartDate())); double needPayDouble; if(receivePeriod <= 1) {//周期为一个月 - wxBillProperty.setEndtime(DateUtils.getLastDayForMonth(wxPropertyContract.getStartDate())); - needPayDouble = oneDayProce * (DateUtils.getMonthDayCount(wxPropertyContract.getStartDate())-startDateInt+1); + wxBillProperty.setEndtime(DateUtils.getLastDayForMonth(wxPropertyContract.getRentalStartDate())); + needPayDouble = oneDayProce * (DateUtils.getMonthDayCount(wxPropertyContract.getRentalStartDate())-startDateInt+1); }else{ //周期大于一个月 - wxBillProperty.setEndtime(DateUtils.getLastDayForMonth(wxPropertyContract.getStartDate(),receivePeriod - 1)); + wxBillProperty.setEndtime(DateUtils.getLastDayForMonth(wxPropertyContract.getRentalStartDate(),receivePeriod - 1)); // [A/31 *(31-12+1)]+A+A - needPayDouble = oneDayProce * (DateUtils.getMonthDayCount(wxPropertyContract.getStartDate())-startDateInt+1); + needPayDouble = oneDayProce * (DateUtils.getMonthDayCount(wxPropertyContract.getRentalStartDate())-startDateInt+1); needPayDouble += price * (receivePeriod - 1); } DecimalFormat format = new DecimalFormat("0"); needpay = Integer.parseInt(format.format(needPayDouble)); //分做四舍五入 }else if(i < paycount - 1){//中间周期 - Date receiveDate = DateUtils.getFirstDayOfNextMonth(wxPropertyContract.getStartDate(),receivePeriod * i); + Date receiveDate = DateUtils.getFirstDayOfNextMonth(wxPropertyContract.getRentalStartDate(),receivePeriod * i); wxBillProperty.setReceiveDate(receiveDate); wxBillProperty.setStarttime(receiveDate); wxBillProperty.setEndtime(DateUtils.getLastDayForMonth(receiveDate,receivePeriod * i)); @@ -545,7 +549,7 @@ public class WxPropertyContractServiceImpl implements WxPropertyContractService instance.add(Calendar.DAY_OF_MONTH, -1); wxBillProperty.setEndtime(instance.getTime()); }else if(i == paycount - 1) {//最后周期 - Date receiveDate = DateUtils.getFirstDayOfNextMonth(wxPropertyContract.getStartDate(),receivePeriod * i); + Date receiveDate = DateUtils.getFirstDayOfNextMonth(wxPropertyContract.getRentalStartDate(),receivePeriod * i); wxBillProperty.setReceiveDate(receiveDate); wxBillProperty.setStarttime(receiveDate); instance.clear(); 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 1f13129fa..eaf6ece11 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxRentContractServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxRentContractServiceImpl.java @@ -344,7 +344,7 @@ public class WxRentContractServiceImpl implements WxRentContractService { || !record.getType().equals(dbRent.getType()) || !record.getPrice().equals(dbRent.getPrice()) || !record.getAdjustRatio().replaceAll("\\s*", "").equals(dbRent.getAdjustRatio().replaceAll("\\s*", "")) - || !DateUtils.date2String(record.getStartDate(),"yyyy-MM-dd").equals(DateUtils.date2String(dbRent.getStartDate(),"yyyy-MM-dd")) + || !DateUtils.date2String(record.getRentalStartDate(),"yyyy-MM-dd").equals(DateUtils.date2String(dbRent.getRentalStartDate(),"yyyy-MM-dd")) ) { change = true; } @@ -354,7 +354,7 @@ public class WxRentContractServiceImpl implements WxRentContractService { || !record.getType().equals(dbRent.getType()) || !record.getRevenue().equals(dbRent.getRevenue()) || !record.getPayRatio().equals(dbRent.getPayRatio()) - || !DateUtils.date2String(record.getStartDate(),"yyyy-MM-dd").equals(DateUtils.date2String(dbRent.getStartDate(),"yyyy-MM-dd")) + || !DateUtils.date2String(record.getRentalStartDate(),"yyyy-MM-dd").equals(DateUtils.date2String(dbRent.getRentalStartDate(),"yyyy-MM-dd")) ) { change = true; } @@ -364,7 +364,7 @@ public class WxRentContractServiceImpl implements WxRentContractService { || !record.getType().equals(dbRent.getType()) || !record.getPrice().equals(dbRent.getPrice()) || !record.getPayRatio().equals(dbRent.getPayRatio()) - || !DateUtils.date2String(record.getStartDate(),"yyyy-MM-dd").equals(DateUtils.date2String(dbRent.getStartDate(),"yyyy-MM-dd")) + || !DateUtils.date2String(record.getRentalStartDate(),"yyyy-MM-dd").equals(DateUtils.date2String(dbRent.getRentalStartDate(),"yyyy-MM-dd")) ) { change = true; } @@ -787,25 +787,25 @@ public class WxRentContractServiceImpl implements WxRentContractService { //自然月,开始日期、缴款日,结束日期 if(wxRentContract.getAdjustPeriod().equals(EnumRentContractAdjustPeriod.ADJUST_PERIOD_NAR_MONTH.getCode())){ if(i == 0){//第一周期 - wxBillRent.setReceiveDate(wxRentContract.getStartDate()); - wxBillRent.setStarttime(wxRentContract.getStartDate()); - double oneDayProce = (double) price / DateUtils.getMonthDayCount(wxRentContract.getStartDate()); - int startDateInt = Integer.parseInt(new SimpleDateFormat("d").format(wxRentContract.getStartDate())); + wxBillRent.setReceiveDate(wxRentContract.getRentalStartDate()); + wxBillRent.setStarttime(wxRentContract.getRentalStartDate()); + double oneDayProce = (double) price / DateUtils.getMonthDayCount(wxRentContract.getRentalStartDate()); + int startDateInt = Integer.parseInt(new SimpleDateFormat("d").format(wxRentContract.getRentalStartDate())); double needPayDouble; if(receivePeriod <= 1) {//周期为一个月 - wxBillRent.setEndtime(DateUtils.getLastDayForMonth(wxRentContract.getStartDate())); - needPayDouble = oneDayProce * (DateUtils.getMonthDayCount(wxRentContract.getStartDate())-startDateInt+1); + wxBillRent.setEndtime(DateUtils.getLastDayForMonth(wxRentContract.getRentalStartDate())); + needPayDouble = oneDayProce * (DateUtils.getMonthDayCount(wxRentContract.getRentalStartDate())-startDateInt+1); }else{ //周期大于一个月 - wxBillRent.setEndtime(DateUtils.getLastDayForMonth(wxRentContract.getStartDate(),receivePeriod - 1)); + wxBillRent.setEndtime(DateUtils.getLastDayForMonth(wxRentContract.getRentalStartDate(),receivePeriod - 1)); // [A/31 *(31-12+1)]+A+A - needPayDouble = oneDayProce * (DateUtils.getMonthDayCount(wxRentContract.getStartDate())-startDateInt+1); + needPayDouble = oneDayProce * (DateUtils.getMonthDayCount(wxRentContract.getRentalStartDate())-startDateInt+1); needPayDouble += price * (receivePeriod - 1); } DecimalFormat format = new DecimalFormat("0"); needpay = Integer.parseInt(format.format(needPayDouble)); //分做四舍五入 }else if(i < paycount - 1){//中间周期 - Date receiveDate = DateUtils.getFirstDayOfNextMonth(wxRentContract.getStartDate(),receivePeriod * i); + Date receiveDate = DateUtils.getFirstDayOfNextMonth(wxRentContract.getRentalStartDate(),receivePeriod * i); wxBillRent.setReceiveDate(receiveDate); wxBillRent.setStarttime(receiveDate); wxBillRent.setEndtime(DateUtils.getLastDayForMonth(receiveDate,receivePeriod * i)); @@ -816,14 +816,14 @@ public class WxRentContractServiceImpl implements WxRentContractService { instance.add(Calendar.DAY_OF_MONTH, -1); wxBillRent.setEndtime(instance.getTime()); }else if(i == paycount - 1) {//最后周期 - Date receiveDate = DateUtils.getFirstDayOfNextMonth(wxRentContract.getStartDate(),receivePeriod * i); + Date receiveDate = DateUtils.getFirstDayOfNextMonth(wxRentContract.getRentalStartDate(),receivePeriod * i); wxBillRent.setReceiveDate(receiveDate); wxBillRent.setStarttime(receiveDate); instance.clear(); instance.setTime(receiveDate); instance.add(dayType, extracount>0?extralease:receivePeriod);//最后一期不足,一个完整周期 instance.add(Calendar.DAY_OF_MONTH, -1); - int endDateInt = Integer.parseInt(new SimpleDateFormat("d").format(wxRentContract.getEndDate())); + int endDateInt = Integer.parseInt(new SimpleDateFormat("d").format(wxRentContract.getRentalEndDate())); String endDateStr = DateUtils.date2String(instance.getTime(),"yyyy-MM")+ "-" +endDateInt; wxBillRent.setEndtime(DateUtils.stringToDate(endDateStr,"yyyy-MM-dd"));