|
@@ -163,9 +163,26 @@ public class LeaveServiceImpl implements LeaveService {
|
|
|
LocalTime finishPmFlag = LocalTime.parse(afternoonFinishTime, formatter);
|
|
|
long totalTime = 0;
|
|
|
for (LeaveDaysReqVO leaveDaysReqVO : reqVO) {
|
|
|
- //起始日期和结束日期同一天
|
|
|
LocalDateTime startTime = leaveDaysReqVO.getStartTime();
|
|
|
LocalDateTime endTime = leaveDaysReqVO.getEndTime();
|
|
|
+ if(startTime.toLocalTime().compareTo(normalTimeAm)<0){
|
|
|
+ startTime = startTime.withHour(normalTimeAm.getHour()).withMinute(normalTimeAm.getMinute());
|
|
|
+ }
|
|
|
+ if(startTime.toLocalTime().compareTo(finishAmFlag)>0&&startTime.toLocalTime().compareTo(normalTimePm)<0){
|
|
|
+ startTime = endTime.withHour(finishAmFlag.getHour()).withMinute(finishAmFlag.getMinute());
|
|
|
+ }
|
|
|
+ if(startTime.toLocalTime().compareTo(finishPmFlag)>0){
|
|
|
+ startTime = startTime.withHour(finishPmFlag.getHour()).withMinute(finishPmFlag.getMinute());
|
|
|
+ }
|
|
|
+ if(endTime.toLocalTime().compareTo(normalTimeAm)<0){
|
|
|
+ endTime = endTime.withHour(normalTimeAm.getHour()).withMinute(normalTimeAm.getMinute());
|
|
|
+ }
|
|
|
+ if(endTime.toLocalTime().compareTo(finishAmFlag)>0&&endTime.toLocalTime().compareTo(normalTimePm)<0){
|
|
|
+ endTime = endTime.withHour(finishAmFlag.getHour()).withMinute(finishAmFlag.getMinute());
|
|
|
+ }
|
|
|
+ if(endTime.toLocalTime().compareTo(finishPmFlag)>0){
|
|
|
+ endTime = endTime.withHour(finishPmFlag.getHour()).withMinute(finishPmFlag.getMinute());
|
|
|
+ }
|
|
|
WorkdayListReqDTO reqDTO = new WorkdayListReqDTO();
|
|
|
reqDTO.setDateDay(new LocalDateTime[]{startTime.withHour(0).withMinute(0), endTime.withHour(0).withMinute(0)});
|
|
|
List<WorkdayRespDTO> workdays = workdayApi.getWorkdayList(reqDTO).getCheckedData();
|
|
@@ -188,6 +205,7 @@ public class LeaveServiceImpl implements LeaveService {
|
|
|
}
|
|
|
}
|
|
|
totalTime = totalTime - (offDays * (6 * 75));
|
|
|
+ //起始日期和结束日期同一天
|
|
|
if (LocalDateTimeUtil.isSameDay(startTime, endTime)) {
|
|
|
//起始时间在上午下班之前结束之前在下午上班之后
|
|
|
if ((startTime.toLocalTime().compareTo(finishAmFlag)) <= 0 && (endTime.toLocalTime().compareTo(normalTimePm)) >= 0) {
|