修复
This commit is contained in:
@@ -99,7 +99,10 @@ public class LeaseBillUtil {
|
|||||||
System.out.println("【按年方法1】生成账单参数结束");
|
System.out.println("【按年方法1】生成账单参数结束");
|
||||||
System.out.println("======================================");
|
System.out.println("======================================");
|
||||||
|
|
||||||
return createCycleBills(startTime, endTime, isMonthLastDay, payCycleMonths, params, chargeType);
|
// endTime 为 Controller 传入的左闭右开日期(已+1天),createCycleBills 内部自行 +1,需还原为包含式
|
||||||
|
Calendar adjustedEnd = (Calendar) endTime.clone();
|
||||||
|
adjustedEnd.add(Calendar.DATE, -1);
|
||||||
|
return createCycleBills(startTime, adjustedEnd, isMonthLastDay, payCycleMonths, params, chargeType);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@@ -122,16 +125,20 @@ public class LeaseBillUtil {
|
|||||||
System.out.println("【按年方法2】生成账单参数结束");
|
System.out.println("【按年方法2】生成账单参数结束");
|
||||||
System.out.println("======================================");
|
System.out.println("======================================");
|
||||||
|
|
||||||
|
// endTime 为 Controller 传入的左闭右开日期(已+1天),还原为包含式
|
||||||
|
Calendar adjustedEnd = (Calendar) endTime.clone();
|
||||||
|
adjustedEnd.add(Calendar.DATE, -1);
|
||||||
|
|
||||||
List<Map<String, String>> billList = new ArrayList<>();
|
List<Map<String, String>> billList = new ArrayList<>();
|
||||||
int startYear = startTime.get(Calendar.YEAR);
|
int startYear = startTime.get(Calendar.YEAR);
|
||||||
int endYear = endTime.get(Calendar.YEAR);
|
int endYear = adjustedEnd.get(Calendar.YEAR);
|
||||||
int totalYears = endYear - startYear + 1;
|
int totalYears = endYear - startYear + 1;
|
||||||
|
|
||||||
Calendar tempStart = (Calendar) startTime.clone();
|
Calendar tempStart = (Calendar) startTime.clone();
|
||||||
Calendar yearBaseCal = (Calendar) tempStart.clone();
|
Calendar yearBaseCal = (Calendar) tempStart.clone();
|
||||||
|
|
||||||
for (int i = 0; i < totalYears; i++) {
|
for (int i = 0; i < totalYears; i++) {
|
||||||
if (!tempStart.before(endTime)) break;
|
if (!tempStart.before(adjustedEnd)) break;
|
||||||
|
|
||||||
Map<String, String> bill = new HashMap<>();
|
Map<String, String> bill = new HashMap<>();
|
||||||
bill.put(fieldDisplayNameService.getDisplayName("开始日期"), getSdf().format(tempStart.getTime()));
|
bill.put(fieldDisplayNameService.getDisplayName("开始日期"), getSdf().format(tempStart.getTime()));
|
||||||
@@ -140,7 +147,7 @@ public class LeaseBillUtil {
|
|||||||
tempStart.set(Calendar.MONTH, 11);
|
tempStart.set(Calendar.MONTH, 11);
|
||||||
tempStart.set(Calendar.DATE, 31);
|
tempStart.set(Calendar.DATE, 31);
|
||||||
|
|
||||||
if (tempStart.before(endTime)) {
|
if (tempStart.before(adjustedEnd)) {
|
||||||
// 当前年度在结束时间之前 → 完整年度账单
|
// 当前年度在结束时间之前 → 完整年度账单
|
||||||
Calendar nextYearStart = (Calendar) tempStart.clone();
|
Calendar nextYearStart = (Calendar) tempStart.clone();
|
||||||
nextYearStart.add(Calendar.DATE, 1);
|
nextYearStart.add(Calendar.DATE, 1);
|
||||||
@@ -154,14 +161,11 @@ public class LeaseBillUtil {
|
|||||||
yearBaseCal = (Calendar) tempStart.clone();
|
yearBaseCal = (Calendar) tempStart.clone();
|
||||||
} else {
|
} else {
|
||||||
// 最后一个年度 → 不足一年
|
// 最后一个年度 → 不足一年
|
||||||
int monthCount = dateUtil.betweenMonthByTwoCalendar(yearBaseCal, endTime);
|
int monthCount = dateUtil.betweenMonthByTwoCalendar(yearBaseCal, adjustedEnd);
|
||||||
String rent = calculateRent(monthCount, params, chargeType);
|
String rent = calculateRent(monthCount, params, chargeType);
|
||||||
|
|
||||||
Calendar realEnd = (Calendar) endTime.clone();
|
|
||||||
realEnd.add(Calendar.DATE, -1);
|
|
||||||
|
|
||||||
bill.put(fieldDisplayNameService.getDisplayName("租费"), rent);
|
bill.put(fieldDisplayNameService.getDisplayName("租费"), rent);
|
||||||
bill.put(fieldDisplayNameService.getDisplayName("结束日期"), getSdf().format(realEnd.getTime()));
|
bill.put(fieldDisplayNameService.getDisplayName("结束日期"), getSdf().format(adjustedEnd.getTime()));
|
||||||
}
|
}
|
||||||
|
|
||||||
// 下一期开始时间 = 当前结束时间 + 1天
|
// 下一期开始时间 = 当前结束时间 + 1天
|
||||||
|
|||||||
Reference in New Issue
Block a user