From 58bb9d3e0a8d8c385085f8cce3492eccf5448ec4 Mon Sep 17 00:00:00 2001
From: zhang <zc857179121@qq.com>
Date: 星期三, 10 九月 2025 16:20:12 +0800
Subject: [PATCH] 1

---
 src/main/java/com/zy/asrs/service/impl/CtuMainServiceImpl.java |   54 ++++++++++++++++++++++++++++++++++++++----------------
 1 files changed, 38 insertions(+), 16 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 e26b268..db9082c 100644
--- a/src/main/java/com/zy/asrs/service/impl/CtuMainServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/CtuMainServiceImpl.java
@@ -69,11 +69,26 @@
 
     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 +98,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 +115,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);
 
             }
@@ -148,7 +168,7 @@
         if (flag1007 && staProtocol.getWorkNo() > 0 && staProtocol.isAutoing() && !staProtocol.isEmptyMk() && staProtocol.isPakMk()) {
             staProtocol.setWorkNo(0);
             staProtocol.setStaNo((short) 0);
-            boolean result = MessageQueue.offer(SlaveType.Devp, 1, new Task(3, staProtocol));
+            boolean result = MessageQueue.offer(SlaveType.Devp, 1, new Task(2, staProtocol));
             log.info("鍙栬蛋鍐欏叆纭浣嶏細{},{}", staProtocol.getWorkNo(), 1007);
         }
     }
@@ -174,7 +194,7 @@
                     continue;
                 }
                 //&& staProtocol.isOutEnable()
-                if (flag1001 && staProtocol.isAutoing() && !staProtocol.isEmptyMk() && (staProtocol.getWorkNo() == 0 || staProtocol.getWorkNo() == 9999) && staProtocol.isPakMk()) {
+                if (staProtocol.isAutoing() && !staProtocol.isEmptyMk() && (staProtocol.getWorkNo() == 0 || staProtocol.getWorkNo() == 9999) && staProtocol.isPakMk()) {
                     News.warnNoLog("" + mark + " - 0" + " - 寮�濮嬫墽琛�");
                     // 鍒ゆ柇閲嶅宸ヤ綔妗�
                     // 106涔熺畻涓婏紝浠ュ悗106-銆�107鐢ㄤ簬鏇存柊搴撳瓨
@@ -192,6 +212,11 @@
                     boolean result = MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol));
                     log.info("杈撻�佺嚎涓嬪彂3锛歿},{}", staProtocol.getWorkNo(), 1004);
                     if (result) {
+                        try {
+                            Thread.sleep(8000L);
+                        } catch (InterruptedException e) {
+                            throw new RuntimeException(e);
+                        }
                         setFlag1001(false);
                     } else {
                         News.error("" + mark + " - 2" + " - 鍙戝竷鍛戒护鑷宠緭閫佺嚎闃熷垪澶辫触锛侊紒锛� [plc缂栧彿锛歿}]", devp.getId());
@@ -302,7 +327,8 @@
             openBusSubmitParam.setBatch(DateUtils.convert(new Date()));
             List<TaskDto> taskList = new ArrayList<>();
             TaskDto taskDto = new TaskDto();
-            taskDto.setSeqNum(Math.random() * 1000 + "");
+            Random rand = new Random();
+            taskDto.setSeqNum("SSX-CK" + rand.nextInt() * 10000);
             taskDto.setOriLoc(getFLoc("1001", "16"));
             taskDto.setDestSta("1001");
             taskDto.setPriority(123);
@@ -332,25 +358,21 @@
         if (!staProtocol.isLoading()) {
             return;
         }
-        if (staProtocol.getStaNo() > 0) {
+        if (staProtocol.getStaNo() <= 0) {
             return;
         }
         OpenBusSubmitParam openBusSubmitParam = new OpenBusSubmitParam();
         openBusSubmitParam.setBatch(DateUtils.convert(new Date()));
         List<TaskDto> taskList = new ArrayList<>();
         TaskDto taskDto = new TaskDto();
-        taskDto.setSeqNum(Math.random() * 1000 + "");
+        taskDto.setSeqNum("SSX-RK" + staProtocol.getWorkNo());
         taskDto.setDestLoc(getFLoc("1007", "15"));
-        taskDto.setOriLoc("1007");
+        taskDto.setOriSta("1007");
         taskDto.setPriority(123);
         taskList.add(taskDto);
         openBusSubmitParam.setTaskList(taskList);
-        if (sendTask(openBusSubmitParam, staProtocol)) {
-            staProtocol.setWorkNo(0);
-            staProtocol.setStaNo((short) 0);
-            boolean result = MessageQueue.offer(SlaveType.Devp, 1, new Task(3, staProtocol));
-            log.info("涓嬪彂缁檙cs鎴愬姛锛歿},{}", 0, 0);
-        }
+        sendTask(openBusSubmitParam, staProtocol);
+
     }
 
 
@@ -388,7 +410,7 @@
                 throw new CoolException("璋冪敤涓嬪彂浠诲姟鎺ュ彛鎶ラ敊");
             }
         } catch (Exception e) {
-            log.error("fail", e);
+            //log.error("fail", e);
         }
         return false;
     }

--
Gitblit v1.9.1