From 00523d18d292357a31afc4d531315c51cae51319 Mon Sep 17 00:00:00 2001 From: luozukai Date: Fri, 31 May 2019 22:19:49 +0800 Subject: [PATCH 1/8] =?UTF-8?q?[bug][=E4=BF=AE=E6=94=B9][=E4=BF=AE?= =?UTF-8?q?=E6=94=B9=E9=A2=84=E8=A7=88=E8=B4=A6=E5=8D=95=E9=97=AE=E9=A2=98?= =?UTF-8?q?]?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../impl/WxPropertyContractServiceImpl.java | 37 +++++---- .../impl/WxRentContractServiceImpl.java | 80 +++++++++++++++---- 2 files changed, 84 insertions(+), 33 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 00f4a74ac..d3d3854c3 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxPropertyContractServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxPropertyContractServiceImpl.java @@ -517,21 +517,20 @@ public class WxPropertyContractServiceImpl implements WxPropertyContractService } List billTimeVoList = WxRentContractServiceImpl.initBillTimeList(wxPropertyContract.getRentalStartDate(),wxPropertyContract.getRentalEndDate(),wxPropertyContract.getAdjustPeriod(),dayType,receivePeriod); + int index = 0; - for (BillTimeVo billTimeVo : billTimeVoList){ - if(sd.format(billTimeVo.getStartDate()).equals("2020-05-29")){ - System.out.println(); - } + for (int i = 0; i < billTimeVoList.size(); i++) { + BillTimeVo billTimeVo = billTimeVoList.get(i); if(yearList.size() > 1) { - if (endDate!=null && (sd.format(billTimeVo.getStartDate()).equals(sd.format(endDate)) || billTimeVo.getStartDate().after(endDate))) { + if (endDate!=null && (sd.format(billTimeVo.getStartDate()).equals(sd.format(endDate)) || billTimeVo.getStartDate().after(endDate) || billTimeVo.getEndDate().after(endDate) )) { logger.info("=====billTimeVo.getStartDate():"+sd.format(billTimeVo.getStartDate())+" endDate:"+sd.format(endDate)); index++; if(index >= yearList.size()-1){ - //endDate = wxPropertyContract.getRentalEndDate(); + //endDate = wxRentContract.getRentalEndDate(); endDate = null; - }else { + }else{ endDate = yearList.get(index+1);//price index 0开始,year.end 从第二年开始 logger.info("==========cross:"+sd.format(endDate)); } @@ -551,7 +550,6 @@ public class WxPropertyContractServiceImpl implements WxPropertyContractService wxBillProperty.setReceiveDate(billTimeVo.getReceiveDate()); long needpay; - //按日 if (wxPropertyContract.getPriceUnit().equals(EnumPriceUnit.D.getCode())){ Double priceD = new Double(price); @@ -564,15 +562,19 @@ public class WxPropertyContractServiceImpl implements WxPropertyContractService priceD = new Double(price)/12; } - //当天也算,加1天 - Date newEndDate = DateUtils.getDaySet(wxBillProperty.getEndtime(),Calendar.DATE,1); - //按月 - int[] diff = DateUtils.getDiff(wxBillProperty.getStarttime(),newEndDate); - needpay =new Double( diff[0]*priceD).longValue(); - - double oneDayProce = priceD/DateUtils.getMonthDayCount(wxPropertyContract.getRentalEndDate()); - needpay += diff[1] * oneDayProce; + if(i == 0){//第一期 + if(wxPropertyContract.getAdjustPeriod().equals(EnumRentContractAdjustPeriod.ADJUST_PERIOD_NAR_MONTH.getCode())){ + 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{//中间 + needpay = new Double(receivePeriod * priceD).longValue(); + } } + wxBillProperty.setNeedPay(needpay); wxBillProperty.setOwe(needpay); wxBillProperty.setReceivePay(needpay); @@ -650,7 +652,7 @@ public class WxPropertyContractServiceImpl implements WxPropertyContractService //按月计租 // if (propertyContract.getAdjustPeriod().equals(EnumRentContractAdjustPeriod.ADJUST_PERIOD_MONTH.getCode()) // ||propertyContract.getAdjustPeriod().equals(EnumRentContractAdjustPeriod.ADJUST_PERIOD_NAR_MONTH.getCode())) { - result = buildRentMonth(wxMerchant, userId, propertyContract, receivePeriod, lease, rentalStartDate, price,isPreview); + result = buildRentMonth(wxMerchant, userId, propertyContract, receivePeriod, lease, rentalStartDate, price,isPreview); // } else { // //如果按日 // List yearList = new ArrayList<>(); @@ -916,3 +918,4 @@ public class WxPropertyContractServiceImpl implements WxPropertyContractService } + 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 5368b6536..df5038632 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxRentContractServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxRentContractServiceImpl.java @@ -33,7 +33,10 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import org.springframework.util.CollectionUtils; - +import org.joda.time.DateTime; +import org.joda.time.Months; +import org.joda.time.format.DateTimeFormat; +import org.joda.time.format.DateTimeFormatter; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.io.File; @@ -732,7 +735,7 @@ public class WxRentContractServiceImpl implements WxRentContractService { //按月计租 // if (wxRentContract.getAdjustPeriod().equals(EnumRentContractAdjustPeriod.ADJUST_PERIOD_MONTH.getCode()) // ||wxRentContract.getAdjustPeriod().equals(EnumRentContractAdjustPeriod.ADJUST_PERIOD_NAR_MONTH.getCode())) { - rentList = buildRentMonth(wxMerchant, userId, wxRentContract, receivePeriod, lease, rentalStartDate, price,isPreview); + rentList = buildRentMonth(wxMerchant, userId, wxRentContract, receivePeriod, lease, rentalStartDate, price,isPreview); // } else { // //如果按日 // List yearList = new ArrayList<>(); @@ -882,9 +885,11 @@ public class WxRentContractServiceImpl implements WxRentContractService { // } int index = 0; - for (BillTimeVo billTimeVo : billTimeVoList){ + for (int i = 0; i < billTimeVoList.size(); i++) { + BillTimeVo billTimeVo = billTimeVoList.get(i); + if(yearList.size() > 1) { - if (endDate!=null && (sd.format(billTimeVo.getStartDate()).equals(sd.format(endDate)) || billTimeVo.getStartDate().after(endDate))) { + if (endDate!=null && (sd.format(billTimeVo.getStartDate()).equals(sd.format(endDate)) || billTimeVo.getStartDate().after(endDate) || billTimeVo.getEndDate().after(endDate) )) { logger.info("=====billTimeVo.getStartDate():"+sd.format(billTimeVo.getStartDate())+" endDate:"+sd.format(endDate)); index++; @@ -895,7 +900,6 @@ public class WxRentContractServiceImpl implements WxRentContractService { endDate = yearList.get(index+1);//price index 0开始,year.end 从第二年开始 logger.info("==========cross:"+sd.format(endDate)); } - } } @@ -916,8 +920,8 @@ public class WxRentContractServiceImpl implements WxRentContractService { JSONArray rentInfoArray = JSONArray.parseArray(rentInfo); int rentSize = rentInfoArray.size(); Map shopInfoMap = new HashMap<>(); - for (int i = 0; i < rentSize; i++) { - JSONObject rentInfoObject = rentInfoArray.getJSONObject(i); + for (int j = 0; j < rentSize; j++) { + JSONObject rentInfoObject = rentInfoArray.getJSONObject(j); shopInfoMap.put(rentInfoObject.getString("shopNumber"), 0); } shopInfoStr = JSONObject.toJSONString(shopInfoMap); @@ -934,7 +938,6 @@ public class WxRentContractServiceImpl implements WxRentContractService { wxBillRent.setReceiveDate(billTimeVo.getReceiveDate()); long needpay; - //按日 if (wxRentContract.getPriceUnit().equals(EnumPriceUnit.D.getCode())){ Double priceD = new Double(price); @@ -947,14 +950,17 @@ public class WxRentContractServiceImpl implements WxRentContractService { priceD = new Double(price)/12; } - //当天也算,加1天 - Date newEndDate = DateUtils.getDaySet(wxBillRent.getEndtime(),Calendar.DATE,1); - //按月 - int[] diff = DateUtils.getDiff(wxBillRent.getStarttime(),newEndDate); - needpay =new Double( diff[0]*priceD).longValue(); - - double oneDayProce = priceD/DateUtils.getMonthDayCount(wxRentContract.getRentalEndDate()); - needpay += diff[1] * oneDayProce; + if(i == 0){//第一期 + if(wxRentContract.getAdjustPeriod().equals(EnumRentContractAdjustPeriod.ADJUST_PERIOD_NAR_MONTH.getCode())){ + 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{//中间 + needpay = new Double(receivePeriod * priceD).longValue(); + } } wxBillRent.setNeedPay(needpay); @@ -1001,6 +1007,23 @@ public class WxRentContractServiceImpl implements WxRentContractService { return resultMap; } + public boolean isFirstDay(Date date){ + int dateInt = Integer.parseInt(new SimpleDateFormat("d").format(date)); + if(dateInt == 1){ + return true; + } + return false; + } + + public static int getMonths(String startStr,String endStr){ + DateTimeFormatter formatter = DateTimeFormat.forPattern("yyyy-MM-dd"); + DateTime start = formatter.parseDateTime(startStr); + DateTime end = formatter.parseDateTime(endStr); + int months = Months.monthsBetween(start, end).getMonths(); + return months; + } + + @Transactional(rollbackFor = {Exception.class}) @Override public ResultData deleteById(String id) { @@ -1769,6 +1792,30 @@ public class WxRentContractServiceImpl implements WxRentContractService { return wxRentContractMapper.getShopType(wxRentContract); } + public static double getMonthNeedPay(Double price,Date start,Date end){ + SimpleDateFormat sd = new SimpleDateFormat("yyyy-MM-dd"); + SimpleDateFormat sdM = new SimpleDateFormat("yyyy-MM"); + Double total = new Double(0); + int[] diff; + + //第一个月 + Date lastMonthDay = DateUtils.getLastDayForMonth(start); + diff = DateUtils.getDiff(start,lastMonthDay); + int dayCount = DateUtils.getMonthDayCount(start); + total += (diff[1]+1) * (price/dayCount); + + //中间月份 + Date newStartDate = DateUtils.getDaySet(lastMonthDay,Calendar.DATE,1); + int months = getMonths(sdM.format(newStartDate)+"-01",sdM.format(end)+"-01"); + total += months * price; + + //最后一个月 + diff = DateUtils.getDiff(DateUtils.getFirstDayForCurrMonth(end),end); + dayCount = DateUtils.getMonthDayCount(end); + total += (diff[1]+1) * (price/dayCount); + return total; + } + /** * 按日计租 根据每月的日期总数计算needpay * @param monthPrice @@ -1908,3 +1955,4 @@ public class WxRentContractServiceImpl implements WxRentContractService { + From fd53718af86a71f914885f2ca683bc7c4bce91c5 Mon Sep 17 00:00:00 2001 From: luozukai Date: Fri, 31 May 2019 22:27:02 +0800 Subject: [PATCH 2/8] =?UTF-8?q?[bug][=E4=BF=AE=E6=94=B9][=E4=BF=AE?= =?UTF-8?q?=E6=94=B9=E9=A2=84=E8=A7=88=E8=B4=A6=E5=8D=95=E9=97=AE=E9=A2=98?= =?UTF-8?q?]?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/impl/WxPropertyContractServiceImpl.java | 6 +----- .../iformall/service/impl/WxRentContractServiceImpl.java | 6 +----- 2 files changed, 2 insertions(+), 10 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 d3d3854c3..e27a58eb0 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxPropertyContractServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxPropertyContractServiceImpl.java @@ -563,11 +563,7 @@ public class WxPropertyContractServiceImpl implements WxPropertyContractService } if(i == 0){//第一期 - if(wxPropertyContract.getAdjustPeriod().equals(EnumRentContractAdjustPeriod.ADJUST_PERIOD_NAR_MONTH.getCode())){ - needpay = new Double(WxRentContractServiceImpl.getMonthNeedPay(priceD,billTimeVo.getStartDate(),billTimeVo.getEndDate())).longValue(); - }else{ - needpay = new Double(receivePeriod * priceD).longValue(); - } + needpay = new Double(WxRentContractServiceImpl.getMonthNeedPay(priceD,billTimeVo.getStartDate(),billTimeVo.getEndDate())).longValue(); }else if(i == billTimeVoList.size()-1){//最后 needpay = new Double(WxRentContractServiceImpl.getMonthNeedPay(priceD,billTimeVo.getStartDate(),billTimeVo.getEndDate())).longValue(); }else{//中间 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 df5038632..6c8d343c9 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxRentContractServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxRentContractServiceImpl.java @@ -951,11 +951,7 @@ public class WxRentContractServiceImpl implements WxRentContractService { } if(i == 0){//第一期 - if(wxRentContract.getAdjustPeriod().equals(EnumRentContractAdjustPeriod.ADJUST_PERIOD_NAR_MONTH.getCode())){ - needpay = new Double(getMonthNeedPay(priceD,billTimeVo.getStartDate(),billTimeVo.getEndDate())).longValue(); - }else{ - needpay = new Double(receivePeriod * priceD).longValue(); - } + needpay = new Double(getMonthNeedPay(priceD,billTimeVo.getStartDate(),billTimeVo.getEndDate())).longValue(); }else if(i == billTimeVoList.size()-1){//最后 needpay = new Double(getMonthNeedPay(priceD,billTimeVo.getStartDate(),billTimeVo.getEndDate())).longValue(); }else{//中间 From b1dddc8ddb5afb26dc2bf9d5af25ca79618676c8 Mon Sep 17 00:00:00 2001 From: luozukai Date: Fri, 31 May 2019 22:52:51 +0800 Subject: [PATCH 3/8] =?UTF-8?q?[bug][=E4=BF=AE=E6=94=B9][=E4=BF=AE?= =?UTF-8?q?=E6=94=B9=E9=A2=84=E8=A7=88=E8=B4=A6=E5=8D=95=E9=97=AE=E9=A2=98?= =?UTF-8?q?]?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/impl/WxPropertyContractServiceImpl.java | 9 ++++++--- .../iformall/service/impl/WxRentContractServiceImpl.java | 9 ++++++--- 2 files changed, 12 insertions(+), 6 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 e27a58eb0..bdb5af02e 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,11 @@ public class WxPropertyContractServiceImpl implements WxPropertyContractService } if(i == 0){//第一期 - needpay = new Double(WxRentContractServiceImpl.getMonthNeedPay(priceD,billTimeVo.getStartDate(),billTimeVo.getEndDate())).longValue(); + if(wxPropertyContract.getAdjustPeriod().equals(EnumRentContractAdjustPeriod.ADJUST_PERIOD_NAR_MONTH.getCode())){ + 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{//中间 @@ -648,7 +652,7 @@ public class WxPropertyContractServiceImpl implements WxPropertyContractService //按月计租 // if (propertyContract.getAdjustPeriod().equals(EnumRentContractAdjustPeriod.ADJUST_PERIOD_MONTH.getCode()) // ||propertyContract.getAdjustPeriod().equals(EnumRentContractAdjustPeriod.ADJUST_PERIOD_NAR_MONTH.getCode())) { - result = buildRentMonth(wxMerchant, userId, propertyContract, receivePeriod, lease, rentalStartDate, price,isPreview); + result = buildRentMonth(wxMerchant, userId, propertyContract, receivePeriod, lease, rentalStartDate, price,isPreview); // } else { // //如果按日 // List yearList = new ArrayList<>(); @@ -914,4 +918,3 @@ public class WxPropertyContractServiceImpl implements WxPropertyContractService } - 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 6c8d343c9..f1d3e2ecb 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxRentContractServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxRentContractServiceImpl.java @@ -735,7 +735,7 @@ public class WxRentContractServiceImpl implements WxRentContractService { //按月计租 // if (wxRentContract.getAdjustPeriod().equals(EnumRentContractAdjustPeriod.ADJUST_PERIOD_MONTH.getCode()) // ||wxRentContract.getAdjustPeriod().equals(EnumRentContractAdjustPeriod.ADJUST_PERIOD_NAR_MONTH.getCode())) { - rentList = buildRentMonth(wxMerchant, userId, wxRentContract, receivePeriod, lease, rentalStartDate, price,isPreview); + rentList = buildRentMonth(wxMerchant, userId, wxRentContract, receivePeriod, lease, rentalStartDate, price,isPreview); // } else { // //如果按日 // List yearList = new ArrayList<>(); @@ -951,7 +951,11 @@ public class WxRentContractServiceImpl implements WxRentContractService { } if(i == 0){//第一期 - needpay = new Double(getMonthNeedPay(priceD,billTimeVo.getStartDate(),billTimeVo.getEndDate())).longValue(); + if(wxRentContract.getAdjustPeriod().equals(EnumRentContractAdjustPeriod.ADJUST_PERIOD_NAR_MONTH.getCode())){ + 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{//中间 @@ -1951,4 +1955,3 @@ public class WxRentContractServiceImpl implements WxRentContractService { - From 1c49c72bd57bdfc7425350803b28e019fc49ad82 Mon Sep 17 00:00:00 2001 From: luozukai Date: Fri, 31 May 2019 23:11:06 +0800 Subject: [PATCH 4/8] =?UTF-8?q?[bug][=E4=BF=AE=E6=94=B9][=E4=BF=AE?= =?UTF-8?q?=E6=94=B9=E9=A2=84=E8=A7=88=E8=B4=A6=E5=8D=95=E9=97=AE=E9=A2=98?= =?UTF-8?q?]?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/impl/WxPropertyContractServiceImpl.java | 6 +----- .../iformall/service/impl/WxRentContractServiceImpl.java | 6 +----- 2 files changed, 2 insertions(+), 10 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 bdb5af02e..e5fcc95c6 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxPropertyContractServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxPropertyContractServiceImpl.java @@ -563,11 +563,7 @@ public class WxPropertyContractServiceImpl implements WxPropertyContractService } if(i == 0){//第一期 - if(wxPropertyContract.getAdjustPeriod().equals(EnumRentContractAdjustPeriod.ADJUST_PERIOD_NAR_MONTH.getCode())){ - needpay = new Double(WxRentContractServiceImpl.getMonthNeedPay(priceD,billTimeVo.getStartDate(),billTimeVo.getEndDate())).longValue(); - }else{ - needpay = new Double(receivePeriod * priceD).longValue(); - } + needpay = new Double(receivePeriod * priceD).longValue(); }else if(i == billTimeVoList.size()-1){//最后 needpay = new Double(WxRentContractServiceImpl.getMonthNeedPay(priceD,billTimeVo.getStartDate(),billTimeVo.getEndDate())).longValue(); }else{//中间 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 f1d3e2ecb..23b17eb8e 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxRentContractServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxRentContractServiceImpl.java @@ -951,11 +951,7 @@ public class WxRentContractServiceImpl implements WxRentContractService { } if(i == 0){//第一期 - if(wxRentContract.getAdjustPeriod().equals(EnumRentContractAdjustPeriod.ADJUST_PERIOD_NAR_MONTH.getCode())){ - needpay = new Double(getMonthNeedPay(priceD,billTimeVo.getStartDate(),billTimeVo.getEndDate())).longValue(); - }else{ - needpay = new Double(receivePeriod * priceD).longValue(); - } + needpay = new Double(receivePeriod * priceD).longValue(); }else if(i == billTimeVoList.size()-1){//最后 needpay = new Double(getMonthNeedPay(priceD,billTimeVo.getStartDate(),billTimeVo.getEndDate())).longValue(); }else{//中间 From cc8796635365a22c661ef33b5d0ff626ec6b46cf Mon Sep 17 00:00:00 2001 From: luozukai Date: Fri, 31 May 2019 23:33:43 +0800 Subject: [PATCH 5/8] =?UTF-8?q?[bug][=E4=BF=AE=E6=94=B9][=E4=BF=AE?= =?UTF-8?q?=E6=94=B9=E9=A2=84=E8=A7=88=E8=B4=A6=E5=8D=95=E9=97=AE=E9=A2=98?= =?UTF-8?q?]?= 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"); From d049764c9a2b2672e80b28acf6ea1152d759ef14 Mon Sep 17 00:00:00 2001 From: luozukai Date: Fri, 31 May 2019 23:53:43 +0800 Subject: [PATCH 6/8] =?UTF-8?q?[bug][=E4=BF=AE=E6=94=B9][=E4=BF=AE?= =?UTF-8?q?=E6=94=B9=E9=A2=84=E8=A7=88=E8=B4=A6=E5=8D=95=E9=97=AE=E9=A2=98?= =?UTF-8?q?]?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/impl/WxRentContractServiceImpl.java | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) 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 2f85a6619..afa8d449a 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxRentContractServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxRentContractServiceImpl.java @@ -1802,17 +1802,20 @@ public class WxRentContractServiceImpl implements WxRentContractService { Double total = new Double(0); int[] diff; + //同月 + if(sdM.format(start).equals(sdM.format(end))){ + diff = DateUtils.getDiff(start,end); + int dayCount = DateUtils.getMonthDayCount(start); + total += (diff[1]+1) * (price/dayCount); + return total; + } + //第一个月 Date lastMonthDay = DateUtils.getLastDayForMonth(start); diff = DateUtils.getDiff(start,lastMonthDay); 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"); From f1f6e423d16f88914095216b3818f28180e13d9c Mon Sep 17 00:00:00 2001 From: luozukai Date: Sat, 1 Jun 2019 00:19:07 +0800 Subject: [PATCH 7/8] =?UTF-8?q?[bug][=E4=BF=AE=E6=94=B9][=E4=BF=AE?= =?UTF-8?q?=E6=94=B9=E9=A2=84=E8=A7=88=E8=B4=A6=E5=8D=95=E9=97=AE=E9=A2=98?= =?UTF-8?q?]?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../iformall/service/impl/WxRentContractServiceImpl.java | 6 ++++++ 1 file changed, 6 insertions(+) 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 afa8d449a..0041583b7 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxRentContractServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxRentContractServiceImpl.java @@ -1802,6 +1802,12 @@ public class WxRentContractServiceImpl implements WxRentContractService { Double total = new Double(0); int[] diff; + //同一天 + if(sd.format(start).equals(sd.format(end))){ + int dayCount = DateUtils.getMonthDayCount(start); + return 1 * (price/dayCount); + } + //同月 if(sdM.format(start).equals(sdM.format(end))){ diff = DateUtils.getDiff(start,end); From 7ea793ce2ddf69417cb9e04e689fcca7d57720aa Mon Sep 17 00:00:00 2001 From: Stormeye Wu Date: Sat, 1 Jun 2019 02:18:35 +0800 Subject: [PATCH 8/8] =?UTF-8?q?[=E7=A7=9F=E8=B5=81=E5=8D=95=E4=BB=B7][?= =?UTF-8?q?=E4=BF=AE=E6=94=B9]:=E9=BB=98=E8=AE=A4=E4=B8=BA0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../iformall/domain/po/WxRentContract.java | 40 ++++++++++--------- 1 file changed, 21 insertions(+), 19 deletions(-) diff --git a/mallinkService/src/main/java/com/iformall/domain/po/WxRentContract.java b/mallinkService/src/main/java/com/iformall/domain/po/WxRentContract.java index ed46ee1b3..0f4b0835d 100644 --- a/mallinkService/src/main/java/com/iformall/domain/po/WxRentContract.java +++ b/mallinkService/src/main/java/com/iformall/domain/po/WxRentContract.java @@ -217,6 +217,27 @@ public class WxRentContract extends BaseEntity { @io.swagger.annotations.ApiModelProperty(value = "主体名称", name = "subjectName") private String subjectName; +// public Integer getAdjustPeriod() { +// if(EnumPriceUnit.D.getCode().equals(this.getPriceUnit()) && EnumRentContractAdjustPeriod.ADJUST_PERIOD_MONTH.getCode().equals(adjustPeriod)){ +// return EnumRentContractAdjustPeriod.ADJUST_PERIOD_DAY.getCode(); +// } +// return adjustPeriod; +// } + + public void setAdjustPeriodHandle() { + if(EnumPriceUnit.D.getCode().equals(this.getPriceUnit()) && EnumRentContractAdjustPeriod.ADJUST_PERIOD_MONTH.getCode().equals(adjustPeriod)){ + this.adjustPeriod = EnumRentContractAdjustPeriod.ADJUST_PERIOD_DAY.getCode(); + } + } + + public void setRentPriceHandle() { + if(StringUtils.isNotBlank(rentPrice)) { + rentPrice = Double.parseDouble(rentPrice) * 100 +""; + } else { + rentPrice = "0"; + } + } + public static enum Field { Id_ASC("`id` ASC"), Id_DESC("`id` DESC") , MerchantId_ASC("`merchant_id` ASC"), MerchantId_DESC("`merchant_id` DESC") @@ -292,24 +313,5 @@ public class WxRentContract extends BaseEntity { } } -// public Integer getAdjustPeriod() { -// if(EnumPriceUnit.D.getCode().equals(this.getPriceUnit()) && EnumRentContractAdjustPeriod.ADJUST_PERIOD_MONTH.getCode().equals(adjustPeriod)){ -// return EnumRentContractAdjustPeriod.ADJUST_PERIOD_DAY.getCode(); -// } -// return adjustPeriod; -// } - - public void setAdjustPeriodHandle() { - if(EnumPriceUnit.D.getCode().equals(this.getPriceUnit()) && EnumRentContractAdjustPeriod.ADJUST_PERIOD_MONTH.getCode().equals(adjustPeriod)){ - this.adjustPeriod = EnumRentContractAdjustPeriod.ADJUST_PERIOD_DAY.getCode(); - } - } - - public void setRentPriceHandle() { - if(StringUtils.isNotBlank(rentPrice)) { - rentPrice = Double.parseDouble(rentPrice) * 100 +""; - } - } - }