diff --git a/mallinkService/src/main/java/com/iformall/service/helper/WxRentContractHelper.java b/mallinkService/src/main/java/com/iformall/service/helper/WxRentContractHelper.java index ea9c56810..21c8c1eea 100644 --- a/mallinkService/src/main/java/com/iformall/service/helper/WxRentContractHelper.java +++ b/mallinkService/src/main/java/com/iformall/service/helper/WxRentContractHelper.java @@ -557,34 +557,73 @@ public class WxRentContractHelper { //最后一个月 if (newStartDate.before(end)) { - Date last = DateUtils.getFirstDayForCurrMonth(end); - List lastValidDays = getValidDays(last,end,freeDays); + List lastValidDays = getValidDays(newStartDate,end,freeDays); if (null == lastValidDays || lastValidDays.size() <= 0 ) { return "0"; } - NeedPayDTO enp = getCurrentMonthPay(last, end, price, decimalSize, lastValidDays, dayPriceCalcute, monthAvageDays); + NeedPayDTO enp = getCurrentMonthPay(newStartDate, end, price, decimalSize, lastValidDays, dayPriceCalcute, monthAvageDays); total = total.add(enp.getMoney()); - System.out.println("末月>>>>"+DateUtils.date2String(last)+">>>"+DateUtils.date2String(end)+">>>>"+enp.getMoney().toPlainString()); + System.out.println("末月>>>>"+DateUtils.date2String(newStartDate)+">>>"+DateUtils.date2String(end)+">>>>"+enp.getMoney().toPlainString()); } return total.toPlainString(); } private static List getValidDays(Date start,Date end,List freeDays) { - List allDaysFrees = DateUtils.getAllDays(start, end); - if (null == allDaysFrees) { + List allDays = DateUtils.getAllDays(start, end); + if (null == allDays) { return null; } List validDays = new ArrayList(); - validDays.addAll(allDaysFrees); + validDays.addAll(allDays); if (null != freeDays) { - List curfreeDays = (List)CollectionUtils.intersection(allDaysFrees, freeDays); - if (null != curfreeDays) { - validDays.removeAll(curfreeDays); + List currfreeDays = (List) CollectionUtils.intersection(allDays, freeDays); + if (null != currfreeDays) { + validDays.removeAll(currfreeDays); } } return validDays; } + public static void main(String[] args) { + Date start = DateUtils.str2Date("2024-09-01 00:00:00").getTime(); + Date end = DateUtils.str2Date("2024-09-30 23:59:59").getTime(); + + Date d1 = DateUtils.str2Date("2024-08-20 00:00:00").getTime(); + Date d2 = DateUtils.str2Date("2024-09-10 00:00:00").getTime(); + List f1 = DateUtils.getAllDays(d1, d2); + +// Date d3 = DateUtils.str2Date("2024-09-01 00:00:00").getTime(); +// Date d4 = DateUtils.str2Date("2024-09-30 00:00:00").getTime(); +// f1.addAll(DateUtils.getAllDays(d3, d4)); + System.out.println(getValidDays(start,end,f1)); +// Date start = DateUtils.str2Date("2024-08-05 00:00:00").getTime(); +// Date end = DateUtils.str2Date("2025-11-04 23:59:59").getTime(); +// +// Date d1 = DateUtils.str2Date("2024-07-31 00:00:00").getTime(); +// Date d2 = DateUtils.str2Date("2024-08-03 00:00:00").getTime(); +// Date d3 = DateUtils.str2Date("2024-08-06 00:00:00").getTime(); +// Date d4 = DateUtils.str2Date("2024-08-31 00:00:00").getTime(); +// Date d5 = DateUtils.str2Date("2024-09-01 00:00:00").getTime(); +// Date d6 = DateUtils.str2Date("2024-09-11 00:00:00").getTime(); +// Date d7 = DateUtils.str2Date("2024-09-30 00:00:00").getTime(); +// +// List freeDays = new ArrayList(); +// freeDays.add(d1); +// freeDays.add(d2); +// freeDays.add(d3); +// freeDays.add(d4); +// freeDays.add(d5); +// freeDays.add(d6); +// freeDays.add(d7); + +// System.out.println(DateUtils.getDaySet(d1, Calendar.DATE, -1)); + //String dayMoney = getNeedPay(freeDays, 2, new BigDecimal(10), start, end, EnumRentDayPriceCalcute.AVERAGE_DAYS, 30); + //System.out.println(dayMoney); + + //String monthMoney = getMonthNeedPay(freeDays, 2, new BigDecimal(2000), start, end, EnumContractReceivePeriodUnit.QUARTER.getCode(), 1, EnumRentDayPriceCalcute.AVERAGE_DAYS.getCode(), 30); + //System.out.println(monthMoney); + } + //查询当前月内的金额 private static NeedPayDTO getCurrentMonthPay(Date start,Date end, BigDecimal priceMonth,Integer decimalSize,List validDays,Integer dayPriceCalcute,Integer monthAvageDays) { NeedPayDTO np = new NeedPayDTO(); @@ -770,40 +809,5 @@ public class WxRentContractHelper { } return 0; } - - public static void main(String[] args) { - Date start = DateUtils.str2Date("2024-09-01 00:00:00").getTime(); - Date end = DateUtils.str2Date("2024-09-30 23:59:59").getTime(); - - Date d1 = DateUtils.str2Date("2024-00-01 00:00:00").getTime(); - Date d2 = DateUtils.str2Date("2024-09-30 23:59:59").getTime(); - System.out.println(getValidDays(start,end,DateUtils.getAllDays(d1, d2))); -// Date start = DateUtils.str2Date("2024-08-05 00:00:00").getTime(); -// Date end = DateUtils.str2Date("2025-11-04 23:59:59").getTime(); -// -// Date d1 = DateUtils.str2Date("2024-07-31 00:00:00").getTime(); -// Date d2 = DateUtils.str2Date("2024-08-03 00:00:00").getTime(); -// Date d3 = DateUtils.str2Date("2024-08-06 00:00:00").getTime(); -// Date d4 = DateUtils.str2Date("2024-08-31 00:00:00").getTime(); -// Date d5 = DateUtils.str2Date("2024-09-01 00:00:00").getTime(); -// Date d6 = DateUtils.str2Date("2024-09-11 00:00:00").getTime(); -// Date d7 = DateUtils.str2Date("2024-09-30 00:00:00").getTime(); -// -// List freeDays = new ArrayList(); -// freeDays.add(d1); -// freeDays.add(d2); -// freeDays.add(d3); -// freeDays.add(d4); -// freeDays.add(d5); -// freeDays.add(d6); -// freeDays.add(d7); - -// System.out.println(DateUtils.getDaySet(d1, Calendar.DATE, -1)); - //String dayMoney = getNeedPay(freeDays, 2, new BigDecimal(10), start, end, EnumRentDayPriceCalcute.AVERAGE_DAYS, 30); - //System.out.println(dayMoney); - - //String monthMoney = getMonthNeedPay(freeDays, 2, new BigDecimal(2000), start, end, EnumContractReceivePeriodUnit.QUARTER.getCode(), 1, EnumRentDayPriceCalcute.AVERAGE_DAYS.getCode(), 30); - //System.out.println(monthMoney); - } }