差旅报销单扣除餐补天数计算逻辑调整
This commit is contained in:
parent
06ffd9292d
commit
6359429d47
|
@ -185,7 +185,7 @@ public class TriprAutoCalWorkingDaysPlugin extends AbstractBillPlugIn implements
|
||||||
Date startdate = dynamicObject.getDate("startdate");
|
Date startdate = dynamicObject.getDate("startdate");
|
||||||
Date enddate = dynamicObject.getDate("enddate");
|
Date enddate = dynamicObject.getDate("enddate");
|
||||||
if(startdate!=null && enddate!=null){
|
if(startdate!=null && enddate!=null){
|
||||||
Set<LocalDate> datesExcludingWeekends = getStartAndEnd(dateToLocalDate(startdate), dateToLocalDate(enddate));
|
Set<LocalDate> datesExcludingWeekends = getWorkingDays(dateToLocalDate(startdate), dateToLocalDate(enddate));
|
||||||
addDateSet.addAll(datesExcludingWeekends);
|
addDateSet.addAll(datesExcludingWeekends);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -228,6 +228,24 @@ public class TriprAutoCalWorkingDaysPlugin extends AbstractBillPlugIn implements
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static Set<LocalDate> getWorkingDays(LocalDate startDate, LocalDate endDate) {
|
||||||
|
if (startDate.isAfter(endDate)) {
|
||||||
|
throw new IllegalArgumentException("开始日期不能晚于结束日期");
|
||||||
|
}
|
||||||
|
|
||||||
|
Set<LocalDate> workingDays = new HashSet<>();
|
||||||
|
LocalDate currentDate = startDate;
|
||||||
|
|
||||||
|
while (!currentDate.isAfter(endDate)) {
|
||||||
|
if (!isWeekend(currentDate)) {
|
||||||
|
workingDays.add(currentDate);
|
||||||
|
}
|
||||||
|
currentDate = currentDate.plusDays(1);
|
||||||
|
}
|
||||||
|
|
||||||
|
return workingDays;
|
||||||
|
}
|
||||||
|
|
||||||
private static boolean isWeekend(LocalDate date) {
|
private static boolean isWeekend(LocalDate date) {
|
||||||
return date.getDayOfWeek() == DayOfWeek.SATURDAY || date.getDayOfWeek() == DayOfWeek.SUNDAY;
|
return date.getDayOfWeek() == DayOfWeek.SATURDAY || date.getDayOfWeek() == DayOfWeek.SUNDAY;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue