Browse Source

fix

release_toaliyun_real
winter 1 year ago
parent
commit
fbf63d732d
1 changed files with 49 additions and 45 deletions
  1. +49
    -45
      mallinkService/src/main/java/com/iformall/service/helper/WxRentContractHelper.java

+ 49
- 45
mallinkService/src/main/java/com/iformall/service/helper/WxRentContractHelper.java View File

@@ -557,34 +557,73 @@ public class WxRentContractHelper {
//最后一个月
if (newStartDate.before(end)) {
Date last = DateUtils.getFirstDayForCurrMonth(end);
List<Date> lastValidDays = getValidDays(last,end,freeDays);
List<Date> 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<Date> getValidDays(Date start,Date end,List<Date> freeDays) {
List<Date> allDaysFrees = DateUtils.getAllDays(start, end);
if (null == allDaysFrees) {
List<Date> allDays = DateUtils.getAllDays(start, end);
if (null == allDays) {
return null;
}
List<Date> validDays = new ArrayList<Date>();
validDays.addAll(allDaysFrees);
validDays.addAll(allDays);
if (null != freeDays) {
List<Date> curfreeDays = (List<Date>)CollectionUtils.intersection(allDaysFrees, freeDays);
if (null != curfreeDays) {
validDays.removeAll(curfreeDays);
List<Date> currfreeDays = (List<Date>) 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<Date> 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<Date> freeDays = new ArrayList<Date>();
// 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<Date> 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<Date> freeDays = new ArrayList<Date>();
// 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);
}

}

Loading…
Cancel
Save