| @@ -876,6 +876,10 @@ public class WxRentContractServiceImpl implements WxRentContractService { | |||||
| } | } | ||||
| List<BillTimeVo> billTimeVoList = initBillTimeList(wxRentContract.getRentalStartDate(),wxRentContract.getRentalEndDate(),wxRentContract.getAdjustPeriod(),dayType,receivePeriod); | List<BillTimeVo> billTimeVoList = initBillTimeList(wxRentContract.getRentalStartDate(),wxRentContract.getRentalEndDate(),wxRentContract.getAdjustPeriod(),dayType,receivePeriod); | ||||
| for (BillTimeVo vo:billTimeVoList) { | |||||
| System.out.println("ooooooooo"); | |||||
| System.out.println(sd.format(vo.getStartDate()) + " "+sd.format(vo.getEndDate()) ); | |||||
| } | |||||
| int index = 0; | int index = 0; | ||||
| for (BillTimeVo billTimeVo : billTimeVoList){ | for (BillTimeVo billTimeVo : billTimeVoList){ | ||||
| @@ -936,10 +940,8 @@ public class WxRentContractServiceImpl implements WxRentContractService { | |||||
| double needpayD = WxRentContractServiceImpl.getNeedPay(0,price,wxBillRent.getStarttime(),wxBillRent.getEndtime()); | double needpayD = WxRentContractServiceImpl.getNeedPay(0,price,wxBillRent.getStarttime(),wxBillRent.getEndtime()); | ||||
| needpay = new Double(needpayD).longValue(); | needpay = new Double(needpayD).longValue(); | ||||
| }else{ | }else{ | ||||
| //当天也算,加1天 | |||||
| Date newEndDate = DateUtils.getDaySet(wxBillRent.getEndtime(),Calendar.DATE,1); | |||||
| //按月 | //按月 | ||||
| int[] diff = DateUtils.getDiff(wxBillRent.getStarttime(),newEndDate); | |||||
| int[] diff = DateUtils.getDiff(wxBillRent.getStarttime(),wxBillRent.getEndtime()); | |||||
| needpay = diff[0]*price; | needpay = diff[0]*price; | ||||
| double oneDayProce = (double) price/DateUtils.getMonthDayCount(wxRentContract.getRentalEndDate()); | double oneDayProce = (double) price/DateUtils.getMonthDayCount(wxRentContract.getRentalEndDate()); | ||||
| @@ -1746,7 +1748,7 @@ public class WxRentContractServiceImpl implements WxRentContractService { | |||||
| */ | */ | ||||
| public static double getNeedPay(long monthPrice,long dayPrice,Date start,Date end){ | public static double getNeedPay(long monthPrice,long dayPrice,Date start,Date end){ | ||||
| SimpleDateFormat sd = new SimpleDateFormat("yyyy-MM-dd"); | SimpleDateFormat sd = new SimpleDateFormat("yyyy-MM-dd"); | ||||
| SimpleDateFormat sdM = new SimpleDateFormat("MM"); | |||||
| SimpleDateFormat sdM = new SimpleDateFormat("yyyy-MM"); | |||||
| Double total; | Double total; | ||||
| int[] diff; | int[] diff; | ||||
| @@ -1757,20 +1759,20 @@ public class WxRentContractServiceImpl implements WxRentContractService { | |||||
| }else{ | }else{ | ||||
| price = dayPrice; | price = dayPrice; | ||||
| } | } | ||||
| Date currEnd = DateUtils.getLastDayForMonth(start); | |||||
| System.out.println("-----------"); | |||||
| System.out.println(sd.format(start)); | |||||
| System.out.println(sd.format(currEnd)); | |||||
| //同一天 | |||||
| if(sd.format(start).equals(sd.format(end))){ | if(sd.format(start).equals(sd.format(end))){ | ||||
| total = 1 * price; //算1天 | |||||
| return total; | |||||
| }else{ | |||||
| diff = DateUtils.getDiff(start,currEnd); | |||||
| total = (diff[1]+1) * price; | |||||
| return 1 * price; //算1天 | |||||
| } | } | ||||
| System.out.println("-------total:"+total); | |||||
| //同月 | |||||
| if(sdM.format(start).equals(sdM.format(end))){ | |||||
| diff = DateUtils.getDiff(start,end); | |||||
| return (diff[1]+1) * price; | |||||
| } | |||||
| Date currEnd = DateUtils.getLastDayForMonth(start); | |||||
| diff = DateUtils.getDiff(start,currEnd); | |||||
| total = (diff[1]+1) * price; | |||||
| while (true){ | while (true){ | ||||
| Date monthStartDate = DateUtils.getDaySet(currEnd,Calendar.DATE,1); | Date monthStartDate = DateUtils.getDaySet(currEnd,Calendar.DATE,1); | ||||
| @@ -1782,6 +1784,7 @@ public class WxRentContractServiceImpl implements WxRentContractService { | |||||
| } | } | ||||
| System.out.println("-------monthStartDate:"+sd.format(monthStartDate)); | System.out.println("-------monthStartDate:"+sd.format(monthStartDate)); | ||||
| System.out.println("-------monthStartDate:"+sd.format(end)); | |||||
| //最后一个月 | //最后一个月 | ||||
| if(sdM.format(monthStartDate).equals(sdM.format(end))){ | if(sdM.format(monthStartDate).equals(sdM.format(end))){ | ||||
| @@ -1797,7 +1800,6 @@ public class WxRentContractServiceImpl implements WxRentContractService { | |||||
| diff = DateUtils.getDiff(monthStartDate,currEnd); | diff = DateUtils.getDiff(monthStartDate,currEnd); | ||||
| total += price * (diff[1] +1); | total += price * (diff[1] +1); | ||||
| } | } | ||||
| System.out.println("-------total:"+total); | |||||
| } | } | ||||
| return total; | return total; | ||||
| } | } | ||||
| @@ -1805,7 +1807,7 @@ public class WxRentContractServiceImpl implements WxRentContractService { | |||||
| public static void main(String[] args) throws Exception{ | public static void main(String[] args) throws Exception{ | ||||
| long tprice = 100; | long tprice = 100; | ||||
| SimpleDateFormat sd = new SimpleDateFormat("yyyy-MM-dd"); | SimpleDateFormat sd = new SimpleDateFormat("yyyy-MM-dd"); | ||||
| Date start = sd.parse("2019-05-28"); | |||||
| Date start = sd.parse("2019-05-13"); | |||||
| Date end = sd.parse("2019-07-05"); | Date end = sd.parse("2019-07-05"); | ||||
| System.out.println("===="+new WxRentContractServiceImpl().getNeedPay(tprice,0,start,end));; | System.out.println("===="+new WxRentContractServiceImpl().getNeedPay(tprice,0,start,end));; | ||||