diff --git a/attendance-performance-manager/src/main/java/com/mortals/xhx/daemon/task/SyncDoorsEventTaskImpl.java b/attendance-performance-manager/src/main/java/com/mortals/xhx/daemon/task/SyncDoorsEventTaskImpl.java index 104b5c0b205a1b415b99e431c96fb57f6766f126..87b328ad60532d4b7a51ccb019dbba1413b47fce 100644 --- a/attendance-performance-manager/src/main/java/com/mortals/xhx/daemon/task/SyncDoorsEventTaskImpl.java +++ b/attendance-performance-manager/src/main/java/com/mortals/xhx/daemon/task/SyncDoorsEventTaskImpl.java @@ -82,7 +82,7 @@ public class SyncDoorsEventTaskImpl implements ITaskExcuteService { } else { log.info("鍚屾璁惧涓婇棬绂佷簨浠讹紒"); HikDoorEventReq hikDoorEventReq = new HikDoorEventReq(); - hikDoorEventReq.setStartTime(startTime.toJdkDate()); + hikDoorEventReq.setStartTime(DateUtil.parseDate( startTime.toDateStr()).toJdkDate()); hikDoorEventReq.setEndTime(DateUtil.endOfDay(new Date())); List<DoorEntity> doorEntities = doorService.find(new DoorQuery()); for (DoorEntity doorEntity : doorEntities) { diff --git a/attendance-performance-manager/src/main/java/com/mortals/xhx/module/attendance/web/AttendanceRecordHikController.java b/attendance-performance-manager/src/main/java/com/mortals/xhx/module/attendance/web/AttendanceRecordHikController.java index d9782b0e6dcf1aac1844c110ed6422e95686405d..a2dcca6993182b57cf32882ef65e81ba9973e5c0 100644 --- a/attendance-performance-manager/src/main/java/com/mortals/xhx/module/attendance/web/AttendanceRecordHikController.java +++ b/attendance-performance-manager/src/main/java/com/mortals/xhx/module/attendance/web/AttendanceRecordHikController.java @@ -4,6 +4,7 @@ import cn.hutool.core.date.DateTime; import cn.hutool.core.date.DateUnit; import cn.hutool.core.date.DateUtil; import cn.hutool.core.util.StrUtil; +import com.alibaba.fastjson.JSON; import com.mortals.framework.annotation.UnAuth; import com.mortals.framework.common.Rest; import com.mortals.framework.exception.AppException; @@ -26,11 +27,16 @@ import com.mortals.xhx.module.attendance.service.AttendanceRecordHikService; import com.mortals.xhx.module.dept.model.DeptEntity; import com.mortals.xhx.module.dept.model.DeptQuery; import com.mortals.xhx.module.dept.service.DeptService; +import com.mortals.xhx.module.door.model.DoorEntity; +import com.mortals.xhx.module.door.model.DoorQuery; +import com.mortals.xhx.module.door.service.DoorService; +import com.mortals.xhx.module.hik.door.model.req.door.HikDoorEventReq; import com.mortals.xhx.module.staff.model.StaffEntity; import com.mortals.xhx.module.staff.model.StaffQuery; import com.mortals.xhx.module.staff.service.StaffService; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; import org.springframework.transaction.annotation.Transactional; import org.springframework.util.ObjectUtils; import org.springframework.util.StopWatch; @@ -74,6 +80,11 @@ public class AttendanceRecordHikController extends BaseCRUDJsonBodyMappingContro private AttendanceClassService classService; @Autowired private ICacheService cacheService; + @Value("${hik.host:}") + protected String hikhost; + + @Autowired + private DoorService doorService; public AttendanceRecordHikController() { super.setModuleDesc("鑰冨嫟鎵撳崱璁板綍姹囨€讳俊鎭�"); @@ -228,8 +239,20 @@ public class AttendanceRecordHikController extends BaseCRUDJsonBodyMappingContro stopWatch.start("鎵ц鏈湴鏂规硶"); hikEntity.setAttendanceDateStart(curDate.toDateStr()); hikEntity.setAttendanceDateEnd(curDate.toDateStr()); - hikService.syncDoorEvents(hikEntity); - hikService.deletFakeRecord(hikEntity, context); + if (!ObjectUtils.isEmpty(hikhost)) { + hikService.syncDoorEvents(hikEntity); + hikService.deletFakeRecord(hikEntity, context); + } else { + HikDoorEventReq hikDoorEventReq = new HikDoorEventReq(); + hikDoorEventReq.setStartTime(DateUtil.parseDate(curDate.toDateStr()).toJdkDate()); + hikDoorEventReq.setEndTime(DateUtil.endOfDay(new Date())); + log.info("鍚屾璁惧涓婇棬绂佷簨浠讹紒req==>{}", JSON.toJSONString(hikDoorEventReq)); + List<DoorEntity> doorEntities = doorService.find(new DoorQuery()); + for (DoorEntity doorEntity : doorEntities) { + doorService.syncDoorDeviceEvents(doorEntity, hikDoorEventReq); + } + this.service.deletFakeRecord(hikEntity, null); + } stopWatch.stop(); log.info("鑰冨嫟璁$畻鏃ユ湡锛歿} 瀹屾垚,鑰楁椂锛歿}ms", curDate.toDateStr(), stopWatch.getLastTaskTimeMillis()); }