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/controller/SiteController.java       |    3 +
 src/main/java/com/zy/asrs/controller/OpenController.java       |   22 +++++++++--
 src/main/webapp/views/index.html                               |    5 +-
 src/main/java/com/zy/asrs/service/impl/CtuMainServiceImpl.java |   28 ++++++++++++--
 src/main/java/com/zy/core/CtuMainProcess.java                  |    4 +-
 src/main/java/com/zy/core/thread/SiemensDevpThread.java        |   46 +++++++++++++++++++++-
 6 files changed, 93 insertions(+), 15 deletions(-)

diff --git a/src/main/java/com/zy/asrs/controller/OpenController.java b/src/main/java/com/zy/asrs/controller/OpenController.java
index 9c5c79c..8c26564 100644
--- a/src/main/java/com/zy/asrs/controller/OpenController.java
+++ b/src/main/java/com/zy/asrs/controller/OpenController.java
@@ -81,10 +81,10 @@
      */
     @RequestMapping("/task/sync/v1")
     public R taskSync(@RequestBody TaskReportParam param) {
-        if (param == null || param.getSeqNum() == null || param.getQrCode() == null) {
+        if (param == null || param.getSeqNum() == null) {
             return R.error("鍙傛暟涓虹┖");
         }
-        if ((param.getQrCode().equals("00001547") || param.getQrCode().equals("1001")) && param.getTaskSts() == 15) {
+        if (param.getTaskSts() == 15 && (param.getQrCode().equals("00001547") || param.getQrCode().equals("1001"))) {
             log.info("1001浠诲姟鐘舵�佷笂鎶ユ帴鏀讹細{}", param);
             DevpThread devpThread = (DevpThread) SlaveConnection.get(SlaveType.Devp, 1);
             Map<Integer, StaProtocol> station = devpThread.getStation();
@@ -94,6 +94,9 @@
             } else {
                 staProtocol = staProtocol.clone();
             }
+            if (!staProtocol.isLoading()) {
+                return R.error("绔欑偣鏃犵墿");
+            }
             Random rand = new Random();
             staProtocol.setWorkNo(rand.nextInt(1000));
             staProtocol.setStaNo((short) 1004);
@@ -101,9 +104,20 @@
             if (result) {
                 log.info("涓嬪彂鎴愬姛锛歿},{}", staProtocol.getWorkNo(), 1004);
             }
-        } else if (param.getQrCode().equals("00001612") && param.getTaskSts() == 5) {
+        } else if (param.getTaskSts() == 5) {
             log.info("1007浠诲姟鐘舵�佷笂鎶ユ帴鏀讹細{}", param);
-
+            DevpThread devpThread = (DevpThread) SlaveConnection.get(SlaveType.Devp, 1);
+            Map<Integer, StaProtocol> station = devpThread.getStation();
+            StaProtocol staProtocol = station.get(1007);
+            if (staProtocol == null) {
+                return R.error("鏈壘鍒扮珯鐐�");
+            } else {
+                staProtocol = staProtocol.clone();
+            }
+            boolean result = MessageQueue.offer(SlaveType.Devp, 1, new Task(3, staProtocol));
+            if (result) {
+                log.info("涓嬪彂鎴愬姛锛歿},{}", staProtocol.getWorkNo(), 1007);
+            }
         }
         return R.ok();
     }
diff --git a/src/main/java/com/zy/asrs/controller/SiteController.java b/src/main/java/com/zy/asrs/controller/SiteController.java
index 3c29dc3..feeac95 100644
--- a/src/main/java/com/zy/asrs/controller/SiteController.java
+++ b/src/main/java/com/zy/asrs/controller/SiteController.java
@@ -10,6 +10,7 @@
 import com.zy.asrs.entity.BasRgv;
 import com.zy.asrs.service.BasDevpService;
 import com.zy.asrs.service.BasRgvService;
+import com.zy.asrs.service.impl.CtuMainServiceImpl;
 import com.zy.core.cache.MessageQueue;
 import com.zy.core.cache.OutputQueue;
 import com.zy.core.cache.SlaveConnection;
@@ -43,6 +44,8 @@
     @Autowired
     private BasRgvService basRgvService;
 
+
+
     @GetMapping("/io/mode/info/site")
     @ManagerAuth(memo = "鍏ュ嚭搴撴ā寮�")
     public R ioMode(){
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..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);
 
             }
@@ -302,7 +322,7 @@
         }
         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<>();
diff --git a/src/main/java/com/zy/core/CtuMainProcess.java b/src/main/java/com/zy/core/CtuMainProcess.java
index 8d8633e..358c875 100644
--- a/src/main/java/com/zy/core/CtuMainProcess.java
+++ b/src/main/java/com/zy/core/CtuMainProcess.java
@@ -58,10 +58,10 @@
 
 
                     //1001鑷姩鍑�
-                    //ctuMainService.autoOut(4);
+                    ctuMainService.autoOut(4);
 
                     //1007鑷姩鍏�
-                    //ctuMainService.autoIn(5);
+                    ctuMainService.autoIn(5);
 
                     //ctuMainService.updateSta(6);
 
diff --git a/src/main/java/com/zy/core/thread/SiemensDevpThread.java b/src/main/java/com/zy/core/thread/SiemensDevpThread.java
index 5abe98d..094fd26 100644
--- a/src/main/java/com/zy/core/thread/SiemensDevpThread.java
+++ b/src/main/java/com/zy/core/thread/SiemensDevpThread.java
@@ -121,12 +121,16 @@
                     // 鍐欐暟鎹� ID+鐩爣绔�
                     case 2:
                         write((StaProtocol) task.getData());
-                        log.error("杈撻�佺嚎涓嬪彂鍛戒护锛�" + ((StaProtocol) task.getData()).getWorkNo() + "," + ((StaProtocol) task.getData()).getStaNo());
+                        log.info("杈撻�佺嚎涓嬪彂鍛戒护锛�" + ((StaProtocol) task.getData()).getWorkNo() + "," + ((StaProtocol) task.getData()).getStaNo());
                         break;
                     // 鍐欐暟鎹� ID+鐩爣绔�
                     case 3:
                         write2((StaProtocol) task.getData());
-                        log.error("杈撻�佺嚎涓嬪彂鍛戒护锛�" + ((StaProtocol) task.getData()).getWorkNo() + "," + ((StaProtocol) task.getData()).getStaNo());
+                        log.info("杈撻�佺嚎涓嬪彂鍛戒护3锛�");
+                        break;
+                    case 4:
+                        write4((StaProtocol) task.getData());
+                        log.info("杈撻�佺嚎涓嬪彂鍛戒护4锛�");
                         break;
                     default:
                         break;
@@ -253,6 +257,16 @@
                 if (!staProtocol.isPakMk() && !staProtocol.isLoading()) {
                     staProtocol.setPakMk(true);
                 }
+            }
+        }
+
+        OperateResultExOne<byte[]> result4 = siemensS7Net.Read("DB102.0", (short) 2);
+        if (result4.IsSuccess) {
+            boolean[] status = siemensS7Net.getByteTransform().TransBool(result4.Content, 0, 1);
+            if (status[0] && status[1]) {
+                StaProtocol staProtocol = station.get(1007);
+                MessageQueue.offer(SlaveType.Devp, 1, new Task(4, staProtocol));
+                log.info("澶嶄綅1007");
             }
         }
 
@@ -413,7 +427,7 @@
         do {
             write = siemensS7Net.Write("DB102.0", array);
             if (write.IsSuccess) {
-                log.error("鍐欏叆杈撻�佺嚎鍛戒护鎴愬姛銆傝緭閫佺嚎plc缂栧彿={}锛岀珯鐐规暟鎹�={},鍐欏叆娆℃暟={}", slave.getId(), JSON.toJSON(staProtocol), writeCount);
+                log.error("鍐欏叆杈撻�佺嚎DB102.0鍛戒护鎴愬姛3銆傝緭閫佺嚎plc缂栧彿={}锛岀珯鐐规暟鎹�={},鍐欏叆娆℃暟={}", slave.getId(), JSON.toJSON(staProtocol), writeCount);
                 break;
             } else {
                 writeCount++;
@@ -426,6 +440,32 @@
         }
     }
 
+    private void write4(StaProtocol staProtocol) throws InterruptedException {
+        if (null == staProtocol) {
+            return;
+        }
+        OperateResult write = null;
+        boolean[] array = new boolean[2];
+        array[0] = false;
+        array[1] = false;
+        //浠诲姟涓嬪彂娆℃暟
+        int writeCount = 0;
+        do {
+            write = siemensS7Net.Write("DB102.0", array);
+            if (write.IsSuccess) {
+                log.error("44鍐欏叆杈撻�佺嚎DB102.0鍛戒护鎴愬姛3銆傝緭閫佺嚎plc缂栧彿={}锛岀珯鐐规暟鎹�={},鍐欏叆娆℃暟={}", slave.getId(), JSON.toJSON(staProtocol), writeCount);
+                break;
+            } else {
+                writeCount++;
+                log.error("44鍐欏叆杈撻�佺嚎鍛戒护澶辫触銆傝緭閫佺嚎plc缂栧彿={}锛岀珯鐐规暟鎹�={},鍐欏叆娆℃暟={}", slave.getId(), JSON.toJSON(staProtocol), writeCount);
+            }
+        } while (writeCount < 5);
+
+        if (!write.IsSuccess) {
+            News.error("SiemensDevp" + " - 4" + " - 鍐欏叆杈撻�佺嚎绔欑偣鏁版嵁澶辫触銆傝緭閫佺嚎plc缂栧彿={}锛岀珯鐐规暟鎹�={}", slave.getId(), JSON.toJSON(staProtocol));
+        }
+    }
+
     // 鏇存柊鍏ュ嚭搴撴ā寮�
     private void updateIoMode() throws InterruptedException {
         if (this.ioModeOf2F != IoModeType.NONE) {
diff --git a/src/main/webapp/views/index.html b/src/main/webapp/views/index.html
index e47b77d..d4fba38 100644
--- a/src/main/webapp/views/index.html
+++ b/src/main/webapp/views/index.html
@@ -22,8 +22,9 @@
 <div class="sidebar">
     <div class="nav">
         <ul class="cl-effect-4">
-            <li><a id="console" onclick="nav(this.id)" class="nav-select" href="#">涓绘帶鍥�</a></li>
-            <li><a id="pipeline" onclick="nav(this.id)" class="nav-unselect" href="#">杈撻�佽澶�</a></li>
+
+            <li><a id="pipeline" onclick="nav(this.id)" class="nav-select" href="#">杈撻�佽澶�</a></li>
+            <li><a id="console" onclick="nav(this.id)" class="nav-unselect" href="#">涓绘帶鍥�</a></li>
             <li><a id="crn" onclick="nav(this.id)" class="nav-unselect" href="#">鍫嗗灈鏈�</a></li>
             <li><a id="rgv" onclick="nav(this.id)" class="nav-unselect" href="#">RGV</a></li>
         </ul>

--
Gitblit v1.9.1