From 5d24f639d62119f4c661e7f04ac7cc5b0f5ce827 Mon Sep 17 00:00:00 2001
From: zhang <zc857179121@qq.com>
Date: 星期三, 07 一月 2026 14:00:37 +0800
Subject: [PATCH] 1

---
 src/main/java/com/zy/asrs/service/impl/CtuMainServiceImpl.java |   55 +++++++++++++++++++++++++++++++++++++------------------
 1 files changed, 37 insertions(+), 18 deletions(-)

diff --git a/src/main/java/com/zy/asrs/service/impl/CtuMainServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/CtuMainServiceImpl.java
index ef92490..6a96f58 100644
--- a/src/main/java/com/zy/asrs/service/impl/CtuMainServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/CtuMainServiceImpl.java
@@ -6,9 +6,6 @@
 import com.core.exception.CoolException;
 import com.zy.asrs.domain.param.OpenBusSubmitParam;
 import com.zy.asrs.domain.param.TaskDto;
-import com.zy.asrs.mapper.WrkMastMapper;
-import com.zy.asrs.service.LocMastService;
-import com.zy.asrs.service.WrkMastService;
 import com.zy.common.utils.HttpHandler;
 import com.zy.common.utils.News;
 import com.zy.core.cache.MessageQueue;
@@ -56,24 +53,31 @@
     @Autowired
     private SlaveProperties slaveProperties;
 
-    @Autowired
-    private WrkMastMapper wrkMastMapper;
-
-    @Autowired
-    private LocMastService locMastService;
-
-    @Autowired
-    private WrkMastService wrkMastService;
 
     private boolean flag1001 = false;
 
     private boolean flag1007 = false;
 
+    private Map<Integer, Long> staNoSet = new HashMap<>();
+
+    public Map<Integer, Long> getStaNoSet() {
+        return staNoSet;
+    }
+
+    public void setStaNoSet(Map<Integer, Long> staNoSet) {
+        this.staNoSet = staNoSet;
+    }
 
     /**
      * 鍏ュ簱锛屼粠鎷f枡绔欏埌鍏ュ簱绔欙紙CTU鍙栬揣绔欙級
      */
     public synchronized void generateStoreWrkFile(Integer mark) {
+        for (Map.Entry<Integer, Long> entry : staNoSet.entrySet()) {
+            if (entry.getValue() != null && System.currentTimeMillis() - entry.getValue() > 1000 * 60 * 5) {
+                log.info("瓒呮椂锛歿}", entry.getKey());
+                staNoSet.remove(entry.getKey());
+            }
+        }
         // 鏍规嵁杈撻�佺嚎plc閬嶅巻
         SiemensDevpThread devpThread = (SiemensDevpThread) SlaveConnection.get(SlaveType.Devp, 1);
         StaProtocol staProtocol = devpThread.getStation().get(1004);
@@ -83,9 +87,13 @@
             staProtocol = staProtocol.clone();
         }
         // 鍒ゆ柇鏄惁婊¤冻鏉′欢
-//        if (!staProtocol.isLoading()) {
-//            return;
-//        }
+        if (!staProtocol.isLoading()) {
+            return;
+        }
+        Long i = staNoSet.get(staProtocol.getWorkNo());
+        if (i != null) {
+            return;
+        }
         // && staProtocol.isInEnable()
         if (staProtocol.getWorkNo() > 0 && staProtocol.isAutoing() && !staProtocol.isEmptyMk() && staProtocol.isPakMk()) {
             if (staProtocol.getStaNo() == 1004) {
@@ -96,6 +104,7 @@
                 }
                 staProtocol.setStaNo((short) 1007);
                 boolean result = MessageQueue.offer(SlaveType.Devp, 1, new Task(2, staProtocol));
+                staNoSet.put(staProtocol.getWorkNo(), System.currentTimeMillis());
                 log.info("鍏ュ簱杈撻�佺嚎涓嬪彂锛歿},{}", staProtocol.getWorkNo(), 1007);
 
             }
@@ -302,14 +311,24 @@
         }
         SiemensDevpThread devpThread = (SiemensDevpThread) SlaveConnection.get(SlaveType.Devp, 1);
         StaProtocol staProtocol = devpThread.getStation().get(1001);
-        if (i >= 6) {
+        if (i >= 7) {
             OpenBusSubmitParam openBusSubmitParam = new OpenBusSubmitParam();
             openBusSubmitParam.setBatch(DateUtils.convert(new Date()));
             List<TaskDto> taskList = new ArrayList<>();
-            TaskDto taskDto = new TaskDto();
             Random rand = new Random();
+            TaskDto taskDto = new TaskDto();
             taskDto.setSeqNum("SSX-CK" + rand.nextInt() * 10000);
             taskDto.setOriLoc(getFLoc("1001", "16"));
+            taskDto.setDestSta("1001");
+            taskDto.setPriority(123);
+            taskList.add(taskDto);
+            String fLoc = getFLoc("1001", "16");
+            if (fLoc == taskDto.getOriLoc()) {
+                fLoc = getFLoc("1001", "16");
+            }
+            taskDto = new TaskDto();
+            taskDto.setSeqNum("SSX-CK" + rand.nextInt() * 10000);
+            taskDto.setOriLoc(fLoc);
             taskDto.setDestSta("1001");
             taskDto.setPriority(123);
             taskList.add(taskDto);
@@ -386,7 +405,7 @@
                 log.info("涓嬪彂浠诲姟杩斿洖鏁版嵁锛歿}", response);
                 return true;
             } else {
-                log.error("璇锋眰鎺ュ彛澶辫触锛侊紒锛乽rl锛歿}锛況equest锛歿}锛況esponse锛歿}", ctuUrl + sendTask, JSON.toJSONString(openBusSubmitParam), response);
+                //log.error("璇锋眰鎺ュ彛澶辫触锛侊紒锛乽rl锛歿}锛況equest锛歿}锛況esponse锛歿}", ctuUrl + sendTask, JSON.toJSONString(openBusSubmitParam), response);
                 throw new CoolException("璋冪敤涓嬪彂浠诲姟鎺ュ彛鎶ラ敊");
             }
         } catch (Exception e) {
@@ -441,7 +460,7 @@
                 JSONObject loc = JSON.parseObject(jsonObject.getString("data"));
                 return loc.getString("locNo");
             } else {
-                log.error("璇锋眰鎺ュ彛澶辫触锛侊紒锛乽rl锛歿}锛況equest锛歿}锛況esponse锛歿}", ctuUrl + sendTask, JSON.toJSONString(data), response);
+                //log.error("璇锋眰鎺ュ彛澶辫触锛侊紒锛乽rl锛歿}锛況equest锛歿}锛況esponse锛歿}", ctuUrl + sendTask, JSON.toJSONString(data), response);
                 throw new CoolException("璋冪敤涓嬪彂浠诲姟鎺ュ彛鎶ラ敊");
             }
         } catch (Exception e) {

--
Gitblit v1.9.1