Your Name лет назад: 3
Родитель
Сommit
a82594b35e

+ 16 - 8
service-job/src/main/java/com/java110/job/task/attendance/GeneratorAttendanceTaskTemplate.java

@@ -229,7 +229,7 @@ public class GeneratorAttendanceTaskTemplate extends TaskSystemQuartz {
         //alter table attendance_classes_task_detail add COLUMN late_value varchar(12) not null comment '正常或者早退时间,spec_cd 1001 是迟到 2002 是正常时间';
 
         String value = curDate + " " + startTimeStr + ":00";
-        Date valueDate = DateUtil.getDateFromStringA(value);
+        Date startValueDate = DateUtil.getDateFromStringA(value);
 
         int timeOffset = Integer.parseInt(tmpAttendanceClassesDto.getTimeOffset());
         int maxLastOffset = Integer.parseInt(tmpAttendanceClassesDto.getMaxLastOffset());
@@ -238,15 +238,15 @@ public class GeneratorAttendanceTaskTemplate extends TaskSystemQuartz {
         attendanceClassesTaskDetailPo.setDetailId(GenerateCodeFactory.getGeneratorId("12"));
         attendanceClassesTaskDetailPo.setTaskId(attendanceClassesTaskPo.getTaskId());
         attendanceClassesTaskDetailPo.setSpecCd(AttendanceClassesTaskDetailDto.SPEC_CD_START);
-        attendanceClassesTaskDetailPo.setValue(curDate + " " + startTimeStr + ":00");
+        attendanceClassesTaskDetailPo.setValue(value);
         Calendar calendar = Calendar.getInstance();
-        calendar.setTime(valueDate);
+        calendar.setTime(startValueDate);
         calendar.add(Calendar.MINUTE, timeOffset * -1);
         attendanceClassesTaskDetailPo.setLeaveValue(DateUtil.getFormatTimeString(calendar.getTime(), DateUtil.DATE_FORMATE_STRING_A));
 
         int lateOffset = Integer.parseInt(tmpAttendanceClassesDto.getLateOffset());
         calendar = Calendar.getInstance();
-        calendar.setTime(valueDate);
+        calendar.setTime(startValueDate);
         calendar.add(Calendar.MINUTE, lateOffset);
         attendanceClassesTaskDetailPo.setLateValue(DateUtil.getFormatTimeString(calendar.getTime(), DateUtil.DATE_FORMATE_STRING_A));
         attendanceClassesTaskDetailPo.setState(AttendanceClassesTaskDetailDto.STATE_WAIT);
@@ -259,7 +259,15 @@ public class GeneratorAttendanceTaskTemplate extends TaskSystemQuartz {
         }
 
         value = curDate + " " + endTimeStr + ":00";
-        valueDate = DateUtil.getDateFromStringA(value);
+        Date endValueDate = DateUtil.getDateFromStringA(value);
+
+        if (endValueDate.getTime() < startValueDate.getTime()) {
+            Calendar endDateCal = Calendar.getInstance();
+            endDateCal.setTime(endValueDate);
+            endDateCal.add(Calendar.DAY_OF_MONTH, 1);
+            endValueDate = endDateCal.getTime();
+            value = DateUtil.getFormatTimeString(endValueDate, DateUtil.DATE_FORMATE_STRING_A);
+        }
 
         int leaveOffset = Integer.parseInt(tmpAttendanceClassesDto.getLeaveOffset());
 
@@ -267,14 +275,14 @@ public class GeneratorAttendanceTaskTemplate extends TaskSystemQuartz {
         attendanceClassesTaskDetailPo.setDetailId(GenerateCodeFactory.getGeneratorId("12"));
         attendanceClassesTaskDetailPo.setTaskId(attendanceClassesTaskPo.getTaskId());
         attendanceClassesTaskDetailPo.setSpecCd(AttendanceClassesTaskDetailDto.SPEC_CD_END);
-        attendanceClassesTaskDetailPo.setValue(curDate + " " + endTimeStr + ":00");
+        attendanceClassesTaskDetailPo.setValue(value);
 
         calendar = Calendar.getInstance();
-        calendar.setTime(valueDate);
+        calendar.setTime(endValueDate);
         calendar.add(Calendar.MINUTE, leaveOffset * -1);
         attendanceClassesTaskDetailPo.setLeaveValue(DateUtil.getFormatTimeString(calendar.getTime(), DateUtil.DATE_FORMATE_STRING_A));
         calendar = Calendar.getInstance();
-        calendar.setTime(valueDate);
+        calendar.setTime(endValueDate);
         if (!islast) {
             calendar.add(Calendar.MINUTE, timeOffset);
         } else {