瀏覽代碼

获取请假天数接口修改

chenjun 1 年之前
父節點
當前提交
d09d43728a

+ 19 - 1
zjugis-business/src/main/java/com/zjugis/business/flow/leave/service/LeaveServiceImpl.java

@@ -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) {