From 52ff3bda72646a532c3297e4843bc4d5aee8b949 Mon Sep 17 00:00:00 2001 From: yangys <y_ys79@sina.com> Date: 星期二, 03 九月 2024 17:20:49 +0800 Subject: [PATCH] 采集数据增加employeeid的设置 --- collect/src/main/java/com/qianwen/mdc/collect/cache/WorkstationCache.java | 75 +++++++++++++++++++++---------------- 1 files changed, 42 insertions(+), 33 deletions(-) diff --git a/collect/src/main/java/com/qianwen/mdc/collect/cache/WorkstationCache.java b/collect/src/main/java/com/qianwen/mdc/collect/cache/WorkstationCache.java index 6bbdfae..ac0eb4c 100644 --- a/collect/src/main/java/com/qianwen/mdc/collect/cache/WorkstationCache.java +++ b/collect/src/main/java/com/qianwen/mdc/collect/cache/WorkstationCache.java @@ -17,21 +17,14 @@ import com.baomidou.mybatisplus.core.toolkit.Wrappers; //import com.qianwen.core.redis.cache.BladeRedis; import com.qianwen.mdc.collect.dto.WorkstationDTO; +import com.qianwen.mdc.collect.entity.mgr.EmployeeOnOffWork; import com.qianwen.mdc.collect.entity.mgr.GlobalWcsOfRps; import com.qianwen.mdc.collect.entity.mgr.Workstation; +import com.qianwen.mdc.collect.mapper.mgr.EmployeeOnOffWorkMapper; import com.qianwen.mdc.collect.mapper.mgr.GlobalWcsOfRpsMapper; import com.qianwen.mdc.collect.service.WorkstationService; import com.qianwen.mdc.collect.utils.redis.RedisUtil; - import cn.hutool.core.util.ObjectUtil; -//import com.qianwen.posting.convert.WorkstationConvert; - -//import com.qianwen.posting.entity.mysql.EmployeeOnOffWork; - -//import com.qianwen.posting.entity.mysql.Workstation; -//import com.qianwen.posting.mapper.mysql.EmployeeOnOffWorkMapper; - -//import com.qianwen.posting.service.IWorkstationService; @Component public class WorkstationCache { @@ -49,6 +42,9 @@ private GlobalWcsOfRpsMapper globalWcsOfRpsMapper; @Autowired private WorkstationService workstationService; + @Autowired + private EmployeeOnOffWorkMapper employeeOnOffWorkMapper; + //private static final EmployeeOnOffWorkMapper employeeOnOffWorkMapper = (EmployeeOnOffWorkMapper) SpringUtil.getBean(EmployeeOnOffWorkMapper.class); @@ -155,28 +151,41 @@ return wcsSetting; } - /* - public static Long getBelongToEmployeeForWorkstation(Long workstationId, Date timePoint) { - Long employeeId = null; - String redisKey = "posting:workstation".concat("::").concat("workstation:id:").concat(workstationId.toString() - .concat(EMPLOYEE)); - Set<EmployeeOnOffWork> employeeOnOffWorks = bladeRedis.sMembers(redisKey); - EmployeeOnOffWork matchRecord = null; - if (Func.isNotEmpty(employeeOnOffWorks)) - matchRecord = employeeOnOffWorks.stream().filter(item -> (item.getOnlineTime().getTime() <= timePoint.getTime() && (item.getOfflineTime() == null || item.getOfflineTime().getTime() > timePoint.getTime()))).findFirst().orElse(null); - if (Func.isNotEmpty(matchRecord)) { - employeeId = matchRecord.getOnEmployeeId(); - } else { - List<EmployeeOnOffWork> queryResult = employeeOnOffWorkMapper.selectList(Wrappers.<EmployeeOnOffWork>lambdaQuery() - .eq(EmployeeOnOffWork::getWorkstationId, workstationId) - .le(EmployeeOnOffWork::getOnlineTime, timePoint) - .and(wrapper -> wrapper.gt(EmployeeOnOffWork::getOfflineTime, timePoint).or().isNull(EmployeeOnOffWork::getOfflineTime))); - if (Func.isNotEmpty(queryResult)) { - employeeId = ((EmployeeOnOffWork)queryResult.get(0)).getOnEmployeeId(); - bladeRedis.sAdd(redisKey, new Object[] { queryResult.get(0) }); - bladeRedis.expire(redisKey, 259200L); - } - } - return employeeId; - }*/ + /** + * 鑾峰彇宸ヤ綅鍦ㄦ寚瀹氭椂闂寸殑涓婄彮鍛樺伐 + * @param workstationId + * @param timePoint + * @return + */ + public Long getBelongToEmployeeForWorkstation(Long workstationId, Date timePoint) { + Long employeeId = null; + String redisKey = "posting:workstation".concat("::").concat("workstation:id:") + .concat(workstationId.toString().concat(EMPLOYEE)); + // Set<EmployeeOnOffWork> employeeOnOffWorks = bladeRedis.sMembers(redisKey); + + Set<EmployeeOnOffWork> employeeOnOffWorks = (Set<EmployeeOnOffWork>) redisUtil.sGet(redisKey); + EmployeeOnOffWork matchEmployee = null; + if (ObjectUtil.isNotEmpty(employeeOnOffWorks)) { + matchEmployee = employeeOnOffWorks.stream().filter( + item -> (item.getOnlineTime().getTime() <= timePoint.getTime() && (item.getOfflineTime() == null + || item.getOfflineTime().getTime() > timePoint.getTime()))) + .findFirst().orElse(null); + } + if (ObjectUtil.isNotEmpty(matchEmployee)) { + employeeId = matchEmployee.getOnEmployeeId(); + } else { + List<EmployeeOnOffWork> queryResult = employeeOnOffWorkMapper.selectList( + Wrappers.<EmployeeOnOffWork>lambdaQuery().eq(EmployeeOnOffWork::getWorkstationId, workstationId) + .le(EmployeeOnOffWork::getOnlineTime, timePoint) + .and(wrapper -> wrapper.gt(EmployeeOnOffWork::getOfflineTime, timePoint).or() + .isNull(EmployeeOnOffWork::getOfflineTime))); + if (ObjectUtil.isNotEmpty(queryResult)) { + employeeId = ((EmployeeOnOffWork) queryResult.get(0)).getOnEmployeeId(); + //bladeRedis.sAdd(redisKey, new Object[] { queryResult.get(0) }); + //bladeRedis.expire(redisKey, 259200L); + redisUtil.sSetAndTime(redisKey, 259200L, new Object[] { queryResult.get(0) }); + } + } + return employeeId; + } } -- Gitblit v1.9.3