From b85aa415eec8ca04302b6b78b21baa2a445e796d Mon Sep 17 00:00:00 2001 From: guo Date: Fri, 12 Apr 2024 11:38:20 +0800 Subject: [PATCH] =?UTF-8?q?bug=E4=BF=AE=E5=A4=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/zhgd/xmgl/call/HikvisionCall.java | 20 +++++++++++-- .../xmgl/modules/project/entity/Project.java | 2 ++ .../service/impl/WorkerInfoServiceImpl.java | 4 +-- .../java/com/zhgd/xmgl/task/ProjectTask.java | 29 +++++++++++++++---- 4 files changed, 44 insertions(+), 11 deletions(-) diff --git a/src/main/java/com/zhgd/xmgl/call/HikvisionCall.java b/src/main/java/com/zhgd/xmgl/call/HikvisionCall.java index c2515752c..a0bd2b8e5 100644 --- a/src/main/java/com/zhgd/xmgl/call/HikvisionCall.java +++ b/src/main/java/com/zhgd/xmgl/call/HikvisionCall.java @@ -144,12 +144,19 @@ public class HikvisionCall { log.error("请先上传对应设备信息,idCard:{},devSN:{}", idCard, srcIndex); return Result.error("请先上传对应设备信息,idCard:" + idCard + ",extEventCardNo:" + extEventCardNo); } - HashMap map = new HashMap<>(); - map.put("passTime", DateUtil.formatDateTime(DateUtil.parse(happenTime))); + String time = DateUtil.formatDateTime(DateUtil.parse(happenTime)); + map.put("passTime", time); map.put("idCard", idCard); + Integer count = workerAttendanceMapper.selectCount(new LambdaQueryWrapper() + .eq(WorkerAttendance::getPersonSn, workerInfo.getPersonSn()) + .eq(WorkerAttendance::getCreateTime, time) + ); + if (count != 0) { + continue; + } map.put("attendanceNumber", workerInfo.getAttendanceNumber()); - int passType = workerAttendanceServiceImpl.getPassType(ufaceDev, DateUtil.formatDateTime(DateUtil.parse(happenTime))); + int passType = workerAttendanceServiceImpl.getPassType(ufaceDev, time); map.put("direction", passType); map.put("passType", 2); map.put("projectCode", workerInfo.getProjectSn()); @@ -212,6 +219,13 @@ public class HikvisionCall { entity.setCarNumber(plateNo); entity.setType(getPassType(carCamera.getPassType())); entity.setPassTime(time); + Integer count = carPassRecordMapper.selectCount(new LambdaQueryWrapper() + .eq(CarPassRecord::getCarNumber, plateNo) + .eq(CarPassRecord::getPassTime, time) + ); + if (count != 0) { + continue; + } try { //车牌 diff --git a/src/main/java/com/zhgd/xmgl/modules/project/entity/Project.java b/src/main/java/com/zhgd/xmgl/modules/project/entity/Project.java index 09d96e606..b7b1493c9 100644 --- a/src/main/java/com/zhgd/xmgl/modules/project/entity/Project.java +++ b/src/main/java/com/zhgd/xmgl/modules/project/entity/Project.java @@ -319,6 +319,8 @@ public class Project implements Serializable { @JsonIgnore @ApiModelProperty(value = "海康appSecret") private String artemisConfigAppSecret; + @ApiModelProperty(value = "是否开启劳务在场零点清空功能") + private Integer enableWorkerAttendanceZero; /** diff --git a/src/main/java/com/zhgd/xmgl/modules/worker/service/impl/WorkerInfoServiceImpl.java b/src/main/java/com/zhgd/xmgl/modules/worker/service/impl/WorkerInfoServiceImpl.java index e804a17d2..59cdf638a 100644 --- a/src/main/java/com/zhgd/xmgl/modules/worker/service/impl/WorkerInfoServiceImpl.java +++ b/src/main/java/com/zhgd/xmgl/modules/worker/service/impl/WorkerInfoServiceImpl.java @@ -1986,9 +1986,9 @@ public class WorkerInfoServiceImpl extends ServiceImpl sendcodecount = new HashMap<>(); + @Autowired + private IWorkerAttendancePresenceService workerAttendancePresenceService; /** * 定时清除无效的校验码 @@ -264,10 +267,6 @@ public class ProjectTask { } /** - * @param - * @return void 返回类型 - * @throws - * @Title: deleteAttendancePresence * @Description: 清除无效在场数据 */ /*@Scheduled(cron = "0 0 2 * * ?")*/ @@ -277,4 +276,22 @@ public class ProjectTask { workerAttendancePresenceMapper.deleteAttendancePresence(); } + /** + * 劳务在场零点清空功能 + */ + @Scheduled(cron = "0 20 0 * * ?") + @SchedulerLock(name = "updateWorkerAttendanceZero", lockAtMostFor = 1000 * 60 * 30, lockAtLeastFor = 1000 * 60 * 3) + @RequestMapping("updateWorkerAttendanceZero") + public void updateWorkerAttendanceZero() { + List projects = projectMapper.selectList(new LambdaQueryWrapper() + .eq(Project::getEnableWorkerAttendanceZero, 1)); + for (Project project : projects) { + String projectSn = project.getProjectSn(); + workerAttendancePresenceMapper.delete(new LambdaQueryWrapper() + .eq(WorkerAttendancePresence::getProjectSn, projectSn)); + workerAttendancePresenceService.addNowAllWorkerAttendancePresence(projectSn); + } + } + + }