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