From a40c2eb885bcdb697c2e16dae4f43cb6cd718973 Mon Sep 17 00:00:00 2001
From: wuxw <928255095@qq.com>
Date: 星期一, 22 一月 2024 11:28:03 +0800
Subject: [PATCH] 优化小区数据
---
service-job/src/main/java/com/java110/job/task/attendance/GeneratorAttendanceTaskTemplate.java | 123 +++++++++++++++++++++++++---------------
1 files changed, 77 insertions(+), 46 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 f37f815..e5dc315 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
@@ -1,26 +1,28 @@
package com.java110.job.task.attendance;
import com.java110.core.factory.GenerateCodeFactory;
-import com.java110.dto.attendanceClasses.AttendanceClassesDto;
-import com.java110.dto.attendanceClasses.AttendanceClassesTaskDetailDto;
-import com.java110.dto.attendanceClasses.AttendanceClassesTaskDto;
-import com.java110.dto.org.OrgStaffRelDto;
-import com.java110.dto.scheduleClassesStaff.ScheduleClassesStaffDto;
-import com.java110.dto.scheduleClassesTime.ScheduleClassesTimeDto;
+import com.java110.dto.attendance.AttendanceClassesDto;
+import com.java110.dto.attendance.AttendanceClassesTaskDetailDto;
+import com.java110.dto.attendance.AttendanceClassesTaskDto;
+import com.java110.dto.attendance.AttendanceClassesStaffDto;
+import com.java110.dto.classes.ScheduleClassesStaffDto;
+import com.java110.dto.classes.ScheduleClassesTimeDto;
import com.java110.dto.store.StoreDto;
import com.java110.dto.task.TaskDto;
+import com.java110.dto.user.UserDto;
import com.java110.intf.common.IAttendanceClassesInnerServiceSMO;
import com.java110.intf.common.IAttendanceClassesTaskDetailInnerServiceSMO;
import com.java110.intf.common.IAttendanceClassesTaskInnerServiceSMO;
import com.java110.intf.store.IOrgStaffRelV1InnerServiceSMO;
import com.java110.intf.store.IScheduleClassesStaffV1InnerServiceSMO;
import com.java110.intf.store.IStoreV1InnerServiceSMO;
+import com.java110.intf.user.IAttendanceClassesStaffV1InnerServiceSMO;
+import com.java110.intf.user.IUserV1InnerServiceSMO;
import com.java110.job.quartz.TaskSystemQuartz;
-import com.java110.po.attendanceClasses.AttendanceClassesPo;
-import com.java110.po.attendanceClassesTask.AttendanceClassesTaskPo;
-import com.java110.po.attendanceClassesTaskDetail.AttendanceClassesTaskDetailPo;
+import com.java110.po.attendance.AttendanceClassesTaskPo;
+import com.java110.po.attendance.AttendanceClassesTaskDetailPo;
+import com.java110.utils.util.Assert;
import com.java110.utils.util.DateUtil;
-import com.sun.tools.javah.Gen;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
@@ -41,6 +43,9 @@
private IAttendanceClassesInnerServiceSMO attendanceClassesInnerServiceSMOImpl;
@Autowired
+ private IAttendanceClassesStaffV1InnerServiceSMO attendanceClassesStaffV1InnerServiceSMOImpl;
+
+ @Autowired
private IAttendanceClassesTaskInnerServiceSMO attendanceClassesTaskInnerServiceSMOImpl;
@Autowired
@@ -51,6 +56,9 @@
@Autowired
private IScheduleClassesStaffV1InnerServiceSMO scheduleClassesStaffV1InnerServiceSMOImpl;
+
+ @Autowired
+ private IUserV1InnerServiceSMO userV1InnerServiceSMOImpl;
@Override
protected void process(TaskDto taskDto) throws Exception {
@@ -107,19 +115,19 @@
//鏌ヨ缁勭粐 鍏宠仈鐨勫憳宸�
- OrgStaffRelDto orgStaffRelDto = new OrgStaffRelDto();
- orgStaffRelDto.setOrgId(tmpAttendanceClassesDto.getClassesObjId());
- orgStaffRelDto.setStoreId(tmpStoreDto.getStoreId());
- List<OrgStaffRelDto> orgStaffRelDtos = orgStaffRelV1InnerServiceSMOImpl.queryOrgStaffRels(orgStaffRelDto);
- if (orgStaffRelDtos == null || orgStaffRelDtos.size() < 1) {
+ AttendanceClassesStaffDto attendanceClassesStaffDto = new AttendanceClassesStaffDto();
+ attendanceClassesStaffDto.setClassesId(tmpAttendanceClassesDto.getClassesId());
+ attendanceClassesStaffDto.setStoreId(tmpStoreDto.getStoreId());
+ List<AttendanceClassesStaffDto> attendanceClassesStaffs = attendanceClassesStaffV1InnerServiceSMOImpl.queryAttendanceClassesStaffs(attendanceClassesStaffDto);
+ if (attendanceClassesStaffs == null || attendanceClassesStaffs.size() < 1) {
return;
}
- for (OrgStaffRelDto tmpOrgStaffRelDto : orgStaffRelDtos) {
+ for (AttendanceClassesStaffDto tmpAttendanceClassesStaffDto : attendanceClassesStaffs) {
try {
- doGeneratorStaffAttendance(tmpStoreDto, tmpAttendanceClassesDto, tmpOrgStaffRelDto);
+ doGeneratorStaffAttendance(tmpStoreDto, tmpAttendanceClassesDto, tmpAttendanceClassesStaffDto);
} catch (Exception e) {
- logger.error("鍛樺伐鐢熸垚鑰冨嫟浠诲姟澶辫触" + tmpOrgStaffRelDto.getStaffId(), e);
+ logger.error("鍛樺伐鐢熸垚鑰冨嫟浠诲姟澶辫触" + tmpAttendanceClassesStaffDto.getStaffId(), e);
}
}
}
@@ -129,12 +137,12 @@
*
* @param tmpStoreDto
* @param tmpAttendanceClassesDto
- * @param tmpOrgStaffRelDto
+ * @param tmpAttendanceClassesStaffDto
*/
- private void doGeneratorStaffAttendance(StoreDto tmpStoreDto, AttendanceClassesDto tmpAttendanceClassesDto, OrgStaffRelDto tmpOrgStaffRelDto) {
+ private void doGeneratorStaffAttendance(StoreDto tmpStoreDto, AttendanceClassesDto tmpAttendanceClassesDto, AttendanceClassesStaffDto tmpAttendanceClassesStaffDto) {
ScheduleClassesStaffDto scheduleClassesStaffDto = new ScheduleClassesStaffDto();
- scheduleClassesStaffDto.setStaffId(tmpOrgStaffRelDto.getStaffId());
+ scheduleClassesStaffDto.setStaffId(tmpAttendanceClassesStaffDto.getStaffId());
scheduleClassesStaffDto.setToday(new Date());
scheduleClassesStaffDto = scheduleClassesStaffV1InnerServiceSMOImpl.staffIsWork(scheduleClassesStaffDto);
@@ -151,7 +159,7 @@
int day = calendar.get(Calendar.DAY_OF_MONTH);
AttendanceClassesTaskDto attendanceClassesTaskDto = new AttendanceClassesTaskDto();
- attendanceClassesTaskDto.setStaffId(tmpOrgStaffRelDto.getStaffId());
+ attendanceClassesTaskDto.setStaffId(tmpAttendanceClassesStaffDto.getStaffId());
attendanceClassesTaskDto.setClassId(tmpAttendanceClassesDto.getClassesId());
attendanceClassesTaskDto.setTaskYear(year + "");
attendanceClassesTaskDto.setTaskMonth(month + "");
@@ -163,15 +171,20 @@
return;
}
+ UserDto userDto = new UserDto();
+ userDto.setUserId(tmpAttendanceClassesStaffDto.getStaffId());
+ List<UserDto> userDtos = userV1InnerServiceSMOImpl.queryUsers(userDto);
+ Assert.listOnlyOne(userDtos, "鍛樺伐涓嶅瓨鍦�");
+
AttendanceClassesTaskPo attendanceClassesTaskPo = new AttendanceClassesTaskPo();
- attendanceClassesTaskPo.setStaffId(tmpOrgStaffRelDto.getStaffId());
+ attendanceClassesTaskPo.setStaffId(tmpAttendanceClassesStaffDto.getStaffId());
attendanceClassesTaskPo.setClassId(tmpAttendanceClassesDto.getClassesId());
attendanceClassesTaskPo.setTaskYear(year + "");
attendanceClassesTaskPo.setTaskMonth(month + "");
attendanceClassesTaskPo.setTaskDay(day + "");
attendanceClassesTaskPo.setState(AttendanceClassesTaskDto.STATE_WAIT);
- attendanceClassesTaskPo.setStaffName(tmpOrgStaffRelDto.getStaffName());
+ attendanceClassesTaskPo.setStaffName(userDtos.get(0).getName());
attendanceClassesTaskPo.setStoreId(tmpStoreDto.getStoreId());
attendanceClassesTaskPo.setTaskId(GenerateCodeFactory.getGeneratorId("11"));
@@ -180,9 +193,14 @@
if (flag < 1) {
throw new IllegalArgumentException("淇濆瓨鑰冨嫟浠诲姟澶辫触");
}
-
- for (ScheduleClassesTimeDto tmpScheduleClassesTimeDto : times) {
- doGeneratorStaffAttendanceTime(tmpStoreDto, tmpAttendanceClassesDto, tmpOrgStaffRelDto, 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);
}
}
@@ -192,11 +210,11 @@
*
* @param tmpStoreDto
* @param tmpAttendanceClassesDto
- * @param tmpOrgStaffRelDto
+ * @param tmpAttendanceClassesStaffDto
* @param tmpScheduleClassesTimeDto
*/
- private void doGeneratorStaffAttendanceTime(StoreDto tmpStoreDto, AttendanceClassesDto tmpAttendanceClassesDto, OrgStaffRelDto tmpOrgStaffRelDto,
- ScheduleClassesTimeDto tmpScheduleClassesTimeDto, AttendanceClassesTaskPo attendanceClassesTaskPo) {
+ private void doGeneratorStaffAttendanceTime(StoreDto tmpStoreDto, AttendanceClassesDto tmpAttendanceClassesDto, AttendanceClassesStaffDto tmpAttendanceClassesStaffDto,
+ ScheduleClassesTimeDto tmpScheduleClassesTimeDto, AttendanceClassesTaskPo attendanceClassesTaskPo, boolean islast) {
String curDate = DateUtil.getNow(DateUtil.DATE_FORMATE_STRING_B);
@@ -210,25 +228,26 @@
//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.add(Calendar.MINUTE,timeOffset * -1);
- attendanceClassesTaskDetailPo.setLeaveValue(DateUtil.getFormatTimeString(calendar.getTime(),DateUtil.DATE_FORMATE_STRING_A));
+ 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.add(Calendar.MINUTE,lateOffset);
- attendanceClassesTaskDetailPo.setLateValue(DateUtil.getFormatTimeString(calendar.getTime(),DateUtil.DATE_FORMATE_STRING_A));
+ calendar.setTime(startValueDate);
+ calendar.add(Calendar.MINUTE, lateOffset);
+ attendanceClassesTaskDetailPo.setLateValue(DateUtil.getFormatTimeString(calendar.getTime(), DateUtil.DATE_FORMATE_STRING_A));
attendanceClassesTaskDetailPo.setState(AttendanceClassesTaskDetailDto.STATE_WAIT);
attendanceClassesTaskDetailPo.setStoreId(tmpStoreDto.getStoreId());
@@ -239,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());
@@ -247,16 +274,20 @@
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.add(Calendar.MINUTE,leaveOffset * -1);
- attendanceClassesTaskDetailPo.setLeaveValue(DateUtil.getFormatTimeString(calendar.getTime(),DateUtil.DATE_FORMATE_STRING_A));
+ 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);
- attendanceClassesTaskDetailPo.setLateValue(DateUtil.getFormatTimeString(calendar.getTime(),DateUtil.DATE_FORMATE_STRING_A));
+ 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