From 4790be9d288a84a38b10e143c8433b7becc62404 Mon Sep 17 00:00:00 2001
From: luxiaotao1123 <t1341870251@163.com>
Date: 星期四, 11 十二月 2025 13:10:42 +0800
Subject: [PATCH] #

---
 src/main/java/com/zy/asrs/service/impl/CtuMainServiceImpl.java |   71 ++++++++++++++++++++++++++++-------
 1 files changed, 57 insertions(+), 14 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 bf00720..bcd030c 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());
@@ -301,9 +326,20 @@
             OpenBusSubmitParam openBusSubmitParam = new OpenBusSubmitParam();
             openBusSubmitParam.setBatch(DateUtils.convert(new Date()));
             List<TaskDto> taskList = new ArrayList<>();
+            Random rand = new Random();
             TaskDto taskDto = new TaskDto();
-            taskDto.setSeqNum(Math.random() * 1000 + "");
+            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);
@@ -312,7 +348,11 @@
         }
     }
 
-
+    /**
+     * 1007鍏ュ簱
+     *
+     * @param mark
+     */
     public synchronized void autoIn(Integer mark) {
         SiemensDevpThread devpThread = (SiemensDevpThread) SlaveConnection.get(SlaveType.Devp, 1);
         StaProtocol staProtocol = devpThread.getStation().get(1007);
@@ -328,20 +368,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);
         sendTask(openBusSubmitParam, staProtocol);
+
     }
 
 
@@ -360,7 +401,7 @@
     }
 
     @Transactional
-    public void sendTask(OpenBusSubmitParam openBusSubmitParam, StaProtocol staProtocol) {
+    public boolean sendTask(OpenBusSubmitParam openBusSubmitParam, StaProtocol staProtocol) {
         String response = "";
         try {
             response = new HttpHandler.Builder()
@@ -373,13 +414,15 @@
             JSONObject jsonObject = JSON.parseObject(response);
             if (jsonObject.getInteger("code").equals(200)) {
                 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) {
-            log.error("fail", e);
+            //log.error("fail", e);
         }
+        return false;
     }
 
     @Transactional
@@ -428,7 +471,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