From dad0263459b30dbfa75f06dff062a0c85183517b Mon Sep 17 00:00:00 2001
From: huang <1532065656@qq.com>
Date: 星期一, 01 十二月 2025 17:01:51 +0800
Subject: [PATCH] 添加卧转立扫码设备交互逻辑,任务流转

---
 mes-processes/mes-plcSend/src/main/java/com/mes/device/service/impl/GlassInfoServiceImpl.java |   36 ++++++++++++++++++++++++++++++++++++
 1 files changed, 36 insertions(+), 0 deletions(-)

diff --git a/mes-processes/mes-plcSend/src/main/java/com/mes/device/service/impl/GlassInfoServiceImpl.java b/mes-processes/mes-plcSend/src/main/java/com/mes/device/service/impl/GlassInfoServiceImpl.java
index 94ed660..2e81b91 100644
--- a/mes-processes/mes-plcSend/src/main/java/com/mes/device/service/impl/GlassInfoServiceImpl.java
+++ b/mes-processes/mes-plcSend/src/main/java/com/mes/device/service/impl/GlassInfoServiceImpl.java
@@ -9,6 +9,7 @@
 import org.springframework.stereotype.Service;
 
 import java.util.Collections;
+import java.util.Date;
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
@@ -124,5 +125,40 @@
             return false;
         }
     }
+
+    @Override
+    public List<String> getRecentScannedGlassIds(Integer minutesAgo, Integer maxCount, String workLine) {
+        try {
+            // 榛樿鏌ヨ鏈�杩�2鍒嗛挓鍐呯殑璁板綍锛屾渶澶氳繑鍥�20鏉�
+            int minutes = minutesAgo != null && minutesAgo > 0 ? minutesAgo : 2;
+            int limit = maxCount != null && maxCount > 0 ? maxCount : 20;
+            
+            Date timeThreshold = new Date(System.currentTimeMillis() - minutes * 60 * 1000L);
+            
+            LambdaQueryWrapper<GlassInfo> wrapper = new LambdaQueryWrapper<>();
+            wrapper.eq(GlassInfo::getStatus, GlassInfo.Status.ACTIVE)
+                   .ge(GlassInfo::getCreatedTime, timeThreshold)
+                   .orderByDesc(GlassInfo::getCreatedTime)
+                   .last("LIMIT " + limit);
+            
+            // 濡傛灉鎸囧畾浜唚orkLine锛屽垯杩囨护description
+            if (workLine != null && !workLine.trim().isEmpty()) {
+                wrapper.like(GlassInfo::getDescription, "workLine=" + workLine);
+            }
+            
+            List<GlassInfo> recentGlasses = baseMapper.selectList(wrapper);
+            
+            // 鎻愬彇鐜荤拑ID鍒楄〃
+            return recentGlasses.stream()
+                    .map(GlassInfo::getGlassId)
+                    .filter(id -> id != null && !id.trim().isEmpty())
+                    .collect(Collectors.toList());
+            
+        } catch (Exception e) {
+            log.error("鏌ヨ鏈�杩戞壂鐮佺殑鐜荤拑ID澶辫触, minutesAgo={}, maxCount={}, workLine={}", 
+                    minutesAgo, maxCount, workLine, e);
+            return Collections.emptyList();
+        }
+    }
 }
 

--
Gitblit v1.8.0