diff --git a/attendance-performance-manager/src/main/java/com/mortals/xhx/daemon/task/SyncDoorsEventWeekTaskImpl.java b/attendance-performance-manager/src/main/java/com/mortals/xhx/daemon/task/SyncDoorsEventWeekTaskImpl.java new file mode 100644 index 0000000000000000000000000000000000000000..a255f33c0035eea7a41b431ce92b99985b731ab9 --- /dev/null +++ b/attendance-performance-manager/src/main/java/com/mortals/xhx/daemon/task/SyncDoorsEventWeekTaskImpl.java @@ -0,0 +1,86 @@ +package com.mortals.xhx.daemon.task; + +import cn.hutool.core.date.DateTime; +import cn.hutool.core.date.DateUnit; +import cn.hutool.core.date.DateUtil; +import cn.hutool.core.util.PageUtil; +import cn.hutool.core.util.StrUtil; +import com.alibaba.fastjson.JSON; +import com.mortals.framework.common.Rest; +import com.mortals.framework.exception.AppException; +import com.mortals.framework.model.Context; +import com.mortals.framework.service.ITask; +import com.mortals.framework.service.ITaskExcuteService; +import com.mortals.framework.util.ThreadPool; +import com.mortals.xhx.base.system.user.model.UserEntity; +import com.mortals.xhx.common.code.YesNoEnum; +import com.mortals.xhx.common.utils.AddAttendThread; +import com.mortals.xhx.module.attendance.model.AttendanceRecordHikEntity; +import com.mortals.xhx.module.attendance.model.AttendanceRecordHikQuery; +import com.mortals.xhx.module.attendance.service.AttendanceRecordHikService; +import com.mortals.xhx.module.attendance.service.AttendanceStatService; +import com.mortals.xhx.module.hik.door.model.req.door.DoorEventReq; +import com.mortals.xhx.module.hik.door.model.rsp.door.DoorEventDataInfo; +import com.mortals.xhx.module.hik.door.service.IHikDoorService; +import com.mortals.xhx.module.staff.model.StaffEntity; +import com.mortals.xhx.module.staff.service.StaffService; +import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.util.ObjectUtils; +import org.springframework.util.StopWatch; + +import java.util.ArrayList; +import java.util.Date; +import java.util.List; +import java.util.Set; +import java.util.stream.Collectors; + +/** + * 鍚屾鑾峰彇鏈懆闂ㄧ浜嬩欢涓庤绠� + */ +@Slf4j +@Service("SyncDoorsEventWeekTask") +public class SyncDoorsEventWeekTaskImpl implements ITaskExcuteService { + + @Autowired + private AttendanceRecordHikService recordHikService; + + @Override + public void excuteTask(ITask task) throws AppException { + //鍚屾鏈懆鎵€浠ヤ汉鐨勯棬绂佷簨浠� + log.info("鍚屾鏈懆鎵€鏈夌殑闂ㄧ浜媫"); + DateTime weekStart = DateUtil.offsetDay(new Date(), -7); + AttendanceRecordHikQuery hikEntity = new AttendanceRecordHikQuery(); + hikEntity.setAttendanceDateStart(DateUtil.format(weekStart, "yyyy-MM-dd")); + hikEntity.setAttendanceDateEnd(DateUtil.today()); + + //澶╂暟鍖洪棿鍒嗘璁$畻 + DateTime attendStart = DateUtil.parseDate(hikEntity.getAttendanceDateStart()); + DateTime attendEnd = DateUtil.parseDate(hikEntity.getAttendanceDateEnd()); + Long compare = DateUtil.between(attendEnd, attendStart, DateUnit.DAY); + StopWatch stopWatch = new StopWatch("stopwatch attend1"); + log.info("鑰冨嫟璁$畻澶╂暟鍖洪棿锛歿}", compare); + for (int i = 0; i <= compare.intValue(); i++) { + DateTime curDate = DateUtil.offsetDay(attendStart, i); + log.info("鑰冨嫟璁$畻鏃ユ湡锛歿}", curDate.toDateStr()); + stopWatch.start("鎵ц鏈湴鏂规硶"); + hikEntity.setAttendanceDateStart(curDate.toDateStr()); + hikEntity.setAttendanceDateEnd(curDate.toDateStr()); + recordHikService.buildSourceHikRecord(hikEntity, null); + stopWatch.stop(); + log.info("鑰冨嫟璁$畻鏃ユ湡锛歿} 瀹屾垚,鑰楁椂锛歿}ms", curDate.toDateStr(), stopWatch.getLastTaskTimeMillis()); + } + + + AddAttendThread addAttendThread = new AddAttendThread(recordHikService, hikEntity, null); + ThreadPool.getInstance().execute(addAttendThread); + } + + + + @Override + public void stopTask(ITask task) throws AppException { + + } +}