From 7ef593e1e3c35aaeecf9318f0b3941230d3ed002 Mon Sep 17 00:00:00 2001
From: yangys <y_ys79@sina.com>
Date: 星期三, 09 十月 2024 11:22:54 +0800
Subject: [PATCH] 增加在数据点计算规则后数据点名称加_n的适配

---
 collect/src/main/java/com/qianwen/mdc/collect/cache/WorkstationCache.java |  119 +++++++++++++++++++++++++++++++++--------------------------
 1 files changed, 67 insertions(+), 52 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 7310b0d..1dfb57a 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 {
@@ -43,17 +36,16 @@
     @Autowired
     private RedisUtil redisUtil;
     private static final Logger log = LoggerFactory.getLogger(WorkstationCache.class);
-    //private static final BladeRedis bladeRedis = (BladeRedis) SpringUtil.getBean(BladeRedis.class);
-    //private static final IWorkstationService workStationService = (IWorkstationService) SpringUtil.getBean(IWorkstationService.class);
+    
     @Autowired
     private GlobalWcsOfRpsMapper globalWcsOfRpsMapper;
     @Autowired
-    private WorkstationService workStationService;
-    //private static final EmployeeOnOffWorkMapper employeeOnOffWorkMapper = (EmployeeOnOffWorkMapper) SpringUtil.getBean(EmployeeOnOffWorkMapper.class);
-
+    private WorkstationService workstationService;
+    @Autowired
+    private EmployeeOnOffWorkMapper employeeOnOffWorkMapper;
     
-
-    public Map<Long, WorkstationDTO> getWorkStations() {
+    
+    public Map<Long, WorkstationDTO> getWorkstations() {
         String redisKey = "posting:workstation".concat("::").concat(WORKSTATION_ALL);
         /*Map<String, WorkstationDTO> map = bladeRedis.hGetAll(redisKey);
        
@@ -66,15 +58,15 @@
         Map<Long, WorkstationDTO> map = convertMap(redisUtil.hmget(redisKey));
        
         if (ObjectUtil.isEmpty(map)) {
-            map = setWorkStations();
+            map = setWorkstations();
         }
 
         return map;
         
     }
     
-    private Map<Long, WorkstationDTO> setWorkStations() {
-        List<Workstation> list = workStationService.list();
+    private Map<Long, WorkstationDTO> setWorkstations() {
+        List<Workstation> list = workstationService.list();
         String redisKey = "posting:workstation".concat("::").concat(WORKSTATION_ALL);
        
         list.forEach(ws -> {
@@ -109,19 +101,29 @@
         String redisKey = "posting:workstation".concat("::").concat(WORKSTATION_ALL);
         return bladeRedis.del(redisKey);
     }
-    
-    public static String getWorkstationCalendarCodeForDate(Long workstationId, String date) {
+    */
+    /**
+     * 鑾峰彇鎸囧畾鏃ユ湡鐨勬棩鍘嗕唬鐮�
+     * @param workstationId
+     * @param date
+     * @return
+     */
+    public String getWorkstationCalendarCodeForDate(Long workstationId, String date) {
         String redisKey = "posting:workstation".concat("::").concat(WORKSTATION_ID).concat(workstationId.toString().concat(CALENDAR_DATE)).concat(date);
-        String calendarCode = (String) bladeRedis.get(redisKey);
-        if (Func.isEmpty(calendarCode)) {
-            log.warn("鑾峰彇宸ヤ綅{}鎸囧畾鏃ユ湡{}鏃ュ巻缂撳瓨涓嶅瓨鍦�", workstationId, date);
-            Optional.ofNullable(workStationService.getById(workstationId)).ifPresent(workStation -> {
-                bladeRedis.setEx(redisKey, workStation.getCalendarCode(), 259200L);
+        //String calendarCode = (String) bladeRedis.get(redisKey);
+        String calendarCode = (String) redisUtil.get(redisKey);
+        if (ObjectUtil.isEmpty(calendarCode)) {
+            log.warn("鑾峰彇宸ヤ綅{}鎸囧畾鏃ユ湡{}鏃ュ巻缂撳瓨涓嶅瓨鍦�,浠庢暟鎹簱鍐呰幏鍙栧苟鐢熸垚缂撳瓨", workstationId, date);
+            Optional.ofNullable(workstationService.getById(workstationId)).ifPresent(workStation -> {
+                //bladeRedis.setEx(redisKey, workStation.getCalendarCode(), 259200L);
+                redisUtil.set(redisKey, workStation.getCalendarCode(), 259200L);
             });
         }
-        return (String) bladeRedis.get(redisKey);
+        
+        //return (String) bladeRedis.get(redisKey);
+        return calendarCode;
     }
-	*/
+	
     public GlobalWcsOfRps getWorkstationWcsSetting(Long workstationId, String code) {
         String redisKey = "posting:workstation".concat("::").concat(WORKSTATION_ID).concat(workstationId.toString()
             .concat(WCS_SETTING));
@@ -145,28 +147,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