From d516e38fd44e186f393bbb05c4e7ca34b323b609 Mon Sep 17 00:00:00 2001
From: java110 <928255095@qq.com>
Date: 星期二, 16 五月 2023 18:50:52 +0800
Subject: [PATCH] optimize report
---
service-job/src/main/java/com/java110/job/task/attendance/GeneratorAttendanceTaskTemplate.java | 53 +++++++++++++++++++++++++++++++++++------------------
1 files changed, 35 insertions(+), 18 deletions(-)
diff --git a/service-job/src/main/java/com/java110/job/task/attendance/GeneratorAttendanceTaskTemplate.java b/service-job/src/main/java/com/java110/job/task/attendance/GeneratorAttendanceTaskTemplate.java
index 71d9ebd..87db3f2 100644
--- a/service-job/src/main/java/com/java110/job/task/attendance/GeneratorAttendanceTaskTemplate.java
+++ b/service-job/src/main/java/com/java110/job/task/attendance/GeneratorAttendanceTaskTemplate.java
@@ -4,10 +4,9 @@
import com.java110.dto.attendanceClasses.AttendanceClassesDto;
import com.java110.dto.attendanceClasses.AttendanceClassesTaskDetailDto;
import com.java110.dto.attendanceClasses.AttendanceClassesTaskDto;
-import com.java110.dto.attendanceClassesStaff.AttendanceClassesStaffDto;
-import com.java110.dto.org.OrgStaffRelDto;
-import com.java110.dto.scheduleClassesStaff.ScheduleClassesStaffDto;
-import com.java110.dto.scheduleClassesTime.ScheduleClassesTimeDto;
+import com.java110.dto.attendanceClasses.AttendanceClassesStaffDto;
+import com.java110.dto.scheduleClasses.ScheduleClassesStaffDto;
+import com.java110.dto.scheduleClasses.ScheduleClassesTimeDto;
import com.java110.dto.store.StoreDto;
import com.java110.dto.task.TaskDto;
import com.java110.dto.user.UserDto;
@@ -175,7 +174,7 @@
UserDto userDto = new UserDto();
userDto.setUserId(tmpAttendanceClassesStaffDto.getStaffId());
List<UserDto> userDtos = userV1InnerServiceSMOImpl.queryUsers(userDto);
- Assert.listOnlyOne(userDtos,"鍛樺伐涓嶅瓨鍦�");
+ Assert.listOnlyOne(userDtos, "鍛樺伐涓嶅瓨鍦�");
AttendanceClassesTaskPo attendanceClassesTaskPo = new AttendanceClassesTaskPo();
@@ -194,9 +193,14 @@
if (flag < 1) {
throw new IllegalArgumentException("淇濆瓨鑰冨嫟浠诲姟澶辫触");
}
-
- for (ScheduleClassesTimeDto tmpScheduleClassesTimeDto : times) {
- doGeneratorStaffAttendanceTime(tmpStoreDto, tmpAttendanceClassesDto, tmpAttendanceClassesStaffDto, tmpScheduleClassesTimeDto, attendanceClassesTaskPo);
+ ScheduleClassesTimeDto tmpScheduleClassesTimeDto = null;
+ boolean isLast = false;
+ for (int timeIndex = 0; timeIndex < times.size(); timeIndex++) {
+ tmpScheduleClassesTimeDto = times.get(timeIndex);
+ if (timeIndex == (times.size() - 1)) {
+ isLast = true;
+ }
+ doGeneratorStaffAttendanceTime(tmpStoreDto, tmpAttendanceClassesDto, tmpAttendanceClassesStaffDto, tmpScheduleClassesTimeDto, attendanceClassesTaskPo, isLast);
}
}
@@ -210,7 +214,7 @@
* @param tmpScheduleClassesTimeDto
*/
private void doGeneratorStaffAttendanceTime(StoreDto tmpStoreDto, AttendanceClassesDto tmpAttendanceClassesDto, AttendanceClassesStaffDto tmpAttendanceClassesStaffDto,
- ScheduleClassesTimeDto tmpScheduleClassesTimeDto, AttendanceClassesTaskPo attendanceClassesTaskPo) {
+ ScheduleClassesTimeDto tmpScheduleClassesTimeDto, AttendanceClassesTaskPo attendanceClassesTaskPo, boolean islast) {
String curDate = DateUtil.getNow(DateUtil.DATE_FORMATE_STRING_B);
@@ -224,23 +228,24 @@
//alter table attendance_classes_task_detail add COLUMN late_value varchar(12) not null comment '姝e父鎴栬�呮棭閫�鏃堕棿锛宻pec_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());
AttendanceClassesTaskDetailPo attendanceClassesTaskDetailPo = new AttendanceClassesTaskDetailPo();
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);
@@ -253,7 +258,15 @@
}
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());
@@ -261,15 +274,19 @@
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.add(Calendar.MINUTE, timeOffset);
+ calendar.setTime(endValueDate);
+ if (!islast) {
+ calendar.add(Calendar.MINUTE, timeOffset);
+ } else {
+ calendar.add(Calendar.MINUTE, maxLastOffset);
+ }
attendanceClassesTaskDetailPo.setLateValue(DateUtil.getFormatTimeString(calendar.getTime(), DateUtil.DATE_FORMATE_STRING_A));
attendanceClassesTaskDetailPo.setState(AttendanceClassesTaskDetailDto.STATE_WAIT);
attendanceClassesTaskDetailPo.setStoreId(tmpStoreDto.getStoreId());
--
Gitblit v1.8.0