diff --git a/src/main/java/com/zhgd/xmgl/async/AsyncHikvision.java b/src/main/java/com/zhgd/xmgl/async/AsyncHikvision.java index b8dd344b6..0e4775a82 100644 --- a/src/main/java/com/zhgd/xmgl/async/AsyncHikvision.java +++ b/src/main/java/com/zhgd/xmgl/async/AsyncHikvision.java @@ -490,8 +490,8 @@ public class AsyncHikvision { hikvisionCall.getDoorEvents(paramMap); } - public void sendBatchWorkerInfo(List allDevList, List workerList, List workerAndDevSnList, Long userId, String projectSn) { - this.sendBatchWorkerInfoAsync(allDevList, workerList, workerAndDevSnList, userId, projectSn, true, true); + public void sendBatchWorkerInfo(List allDevList, List workerList, List workerAndDevSnList, Long userId, String projectSn, boolean isRetry) { + this.sendBatchWorkerInfoAsync(allDevList, workerList, workerAndDevSnList, userId, projectSn, false, true); } /** diff --git a/src/main/java/com/zhgd/xmgl/modules/project/service/IProjectUfaceConfigService.java b/src/main/java/com/zhgd/xmgl/modules/project/service/IProjectUfaceConfigService.java index a6729c647..bd4b5b643 100644 --- a/src/main/java/com/zhgd/xmgl/modules/project/service/IProjectUfaceConfigService.java +++ b/src/main/java/com/zhgd/xmgl/modules/project/service/IProjectUfaceConfigService.java @@ -39,7 +39,7 @@ public interface IProjectUfaceConfigService extends IService void buildAndSendOneWorkerForHk(List allDevList, WorkerInfo workerInfo, int model, String projectSn, boolean sendNotice); - void buildAndSendOneWorkerAndDevForHk(List allDevList, WorkerInfo workerInfo, int operate, String devSn, String projectSn); + void buildAndSendOneWorkerAndDevForHk(List allDevList, WorkerInfo workerInfo, int operate, String devSn, String projectSn, boolean isRetry); /** * 添加权限的记录 diff --git a/src/main/java/com/zhgd/xmgl/modules/project/service/impl/ProjectUfaceConfigServiceImpl.java b/src/main/java/com/zhgd/xmgl/modules/project/service/impl/ProjectUfaceConfigServiceImpl.java index 56dfbbd2b..0d7e5e883 100644 --- a/src/main/java/com/zhgd/xmgl/modules/project/service/impl/ProjectUfaceConfigServiceImpl.java +++ b/src/main/java/com/zhgd/xmgl/modules/project/service/impl/ProjectUfaceConfigServiceImpl.java @@ -593,9 +593,10 @@ public class ProjectUfaceConfigServiceImpl extends ServiceImpl allDevList, WorkerInfo workerInfo, int operate, String devSn, String projectSn) { + public void buildAndSendOneWorkerAndDevForHk(List allDevList, WorkerInfo workerInfo, int operate, String devSn, String projectSn, boolean isRetry) { List workerAndDevSnList = new ArrayList<>(); if (operate == 1) { JSONObject jo = new JSONObject(); @@ -614,7 +615,7 @@ public class ProjectUfaceConfigServiceImpl extends ServiceImpl { List selectOneWorkerAttendance(Map param); - List selectWorkerAttendancePage(Page page, @Param("param")Map map); + List selectWorkerAttendancePage(Page page, @Param("param") Map map); + + List selectWorkerAttendancePage(@Param("param") Map map); List selectWorkerAttendanceNewestList(Map param); diff --git a/src/main/java/com/zhgd/xmgl/modules/worker/service/IWorkerAttendanceService.java b/src/main/java/com/zhgd/xmgl/modules/worker/service/IWorkerAttendanceService.java index cd3c3f416..230cd9c3d 100644 --- a/src/main/java/com/zhgd/xmgl/modules/worker/service/IWorkerAttendanceService.java +++ b/src/main/java/com/zhgd/xmgl/modules/worker/service/IWorkerAttendanceService.java @@ -32,15 +32,17 @@ public interface IWorkerAttendanceService extends IService { IPage selectWorkerAttendancePage(Map map); + List selectWorkerAttendanceList(Map map); + List selectWorkerAttendanceNewestList(Map param); - List> getWorkerDayAttendanceTotalCount(Map param); + List> getWorkerDayAttendanceTotalCount(Map param); void ufaceQYCallbackUrl(JSONObject body); void exportExcelWorkerAttendance(HttpServletResponse response, Map map); - void ufaceHQCallbackUrl(String projectSn,String json); + void ufaceHQCallbackUrl(String projectSn, String json); Map selectWorkerAttendanceByDev(Map map); diff --git a/src/main/java/com/zhgd/xmgl/modules/worker/service/impl/EnterpriseInfoServiceImpl.java b/src/main/java/com/zhgd/xmgl/modules/worker/service/impl/EnterpriseInfoServiceImpl.java index 6d14b0d76..492b99e88 100644 --- a/src/main/java/com/zhgd/xmgl/modules/worker/service/impl/EnterpriseInfoServiceImpl.java +++ b/src/main/java/com/zhgd/xmgl/modules/worker/service/impl/EnterpriseInfoServiceImpl.java @@ -1,5 +1,6 @@ package com.zhgd.xmgl.modules.worker.service.impl; +import cn.hutool.core.date.DateTime; import cn.hutool.core.date.DateUtil; import cn.hutool.core.util.StrUtil; import com.alibaba.fastjson.JSON; @@ -38,6 +39,7 @@ import com.zhgd.xmgl.modules.worker.entity.vo.StatsEnterpriseWeekVo; import com.zhgd.xmgl.modules.worker.mapper.DepartmentInfoMapper; import com.zhgd.xmgl.modules.worker.mapper.EnterpriseInfoMapper; import com.zhgd.xmgl.modules.worker.mapper.TeamInfoMapper; +import com.zhgd.xmgl.modules.worker.mapper.WorkerAttendanceMapper; import com.zhgd.xmgl.modules.worker.service.IEnterpriseInfoService; import com.zhgd.xmgl.modules.worker.service.IUserEnterpriseService; import com.zhgd.xmgl.modules.worker.service.IWorkerInfoService; @@ -55,6 +57,7 @@ import org.apache.commons.collections.CollectionUtils; import org.apache.commons.collections.MapUtils; import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.context.annotation.Lazy; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @@ -126,6 +129,12 @@ public class EnterpriseInfoServiceImpl extends ServiceImpl getEnterpriseInfoList(Map map) { @@ -563,10 +572,35 @@ public class EnterpriseInfoServiceImpl extends ServiceImpl map = new HashMap<>(); + map.put("enterpriseId", enterpriseId); + map.put("startTime", beginOfWeek); + map.put("projectSn", projectSn); + List workerAttendances = workerAttendanceService.selectWorkerAttendanceList(map); + int highNum = 0; + for (int i = 0; i < 7; i++) { + DateTime nextDate = DateUtil.offsetDay(DateUtil.parse(beginOfWeek), 1); + List oneDayWas = workerAttendances.stream().filter(workerAttendance -> DateUtil.parse(workerAttendance.getCreateTime()).compareTo(nextDate) < 0 + && DateUtil.parse(beginOfWeek).compareTo(DateUtil.parse(workerAttendance.getCreateTime())) <= 0).collect(Collectors.toList()); + Set inSet = new HashSet<>(); + for (WorkerAttendance attendance : oneDayWas) { + if (Objects.equals(attendance.getPassType(), 1)) { + inSet.add(attendance.getPersonSn()); + } else if (Objects.equals(attendance.getPassType(), 2)) { + inSet.remove(attendance.getPersonSn()); + } + } + highNum = Math.max(highNum, inSet.size()); + } + return highNum; + } + private double getTrainNotPassRadio(String enterpriseId, String projectSn, String beginOfWeek) { QueryWrapper wrapper = QueryGenerator.initPageQueryWrapper(ExamTrain.class, new HashMap<>()); Set trainIds = examTrainRecordService.list().stream().map(e -> e.getTrainId()).collect(Collectors.toSet()); @@ -596,6 +630,9 @@ public class EnterpriseInfoServiceImpl extends ServiceImpl selectWorkerAttendanceList(Map map) { + List list = workerAttendanceMapper.selectWorkerAttendancePage(map); + return BeanUtil.copyToList(list, WorkerAttendance.class); + } + @Override public List selectWorkerAttendanceNewestList(Map param) { return workerAttendanceMapper.selectWorkerAttendanceNewestList(param); diff --git a/src/main/java/com/zhgd/xmgl/modules/xz/service/impl/XzHikvisionSyncServiceImpl.java b/src/main/java/com/zhgd/xmgl/modules/xz/service/impl/XzHikvisionSyncServiceImpl.java index c890435b8..195a60e42 100644 --- a/src/main/java/com/zhgd/xmgl/modules/xz/service/impl/XzHikvisionSyncServiceImpl.java +++ b/src/main/java/com/zhgd/xmgl/modules/xz/service/impl/XzHikvisionSyncServiceImpl.java @@ -241,7 +241,7 @@ public class XzHikvisionSyncServiceImpl extends ServiceImpl ufaceDevs = ufaceDevMapper.selectList(qw); ThreadLocalUtil.addInKey(Cts.TL_HK_SYNC_ID, id); - projectUfaceConfigService.buildAndSendOneWorkerAndDevForHk(ufaceDevs, workerInfo, xzHikvisionSync.getOperate(), xzHikvisionSync.getDeviceSn(), projectSn); + projectUfaceConfigService.buildAndSendOneWorkerAndDevForHk(ufaceDevs, workerInfo, xzHikvisionSync.getOperate(), xzHikvisionSync.getDeviceSn(), projectSn, true); String redisKey = Cts.HK_SYNC_AUTH_SUCCESS_KEY + id; Object success = redisRepository.get(redisKey); redisRepository.del(redisKey);