From 8309cebcb060d6146a716d5d7fa10e9699711603 Mon Sep 17 00:00:00 2001
From: zhang <zc857179121@qq.com>
Date: 星期五, 08 八月 2025 16:44:32 +0800
Subject: [PATCH] 1

---
 src/main/java/com/zy/asrs/service/impl/CtuMainServiceImpl.java |  142 +++++++++++++++++++++++
 src/main/java/com/zy/core/CtuMainProcess.java                  |   65 ++++++++++
 src/main/webapp/static/js/console.map.js                       |    2 
 src/main/webapp/static/js/common.js                            |    2 
 pom.xml                                                        |    2 
 src/main/resources/application.yml                             |   74 ++++++------
 src/main/java/com/zy/core/ServerBootstrap.java                 |   60 +++++-----
 7 files changed, 277 insertions(+), 70 deletions(-)

diff --git a/pom.xml b/pom.xml
index 6779859..5acf3ac 100644
--- a/pom.xml
+++ b/pom.xml
@@ -185,7 +185,7 @@
     </dependencies>
 
     <build>
-        <finalName>xgmFlwcs</finalName>
+        <finalName>whxrwcs</finalName>
         <plugins>
             <plugin>
                 <groupId>org.springframework.boot</groupId>
diff --git a/src/main/java/com/zy/asrs/service/impl/CtuMainServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/CtuMainServiceImpl.java
new file mode 100644
index 0000000..6eb2d28
--- /dev/null
+++ b/src/main/java/com/zy/asrs/service/impl/CtuMainServiceImpl.java
@@ -0,0 +1,142 @@
+package com.zy.asrs.service.impl;
+
+import com.baomidou.mybatisplus.mapper.EntityWrapper;
+import com.zy.asrs.entity.WrkMast;
+import com.zy.asrs.mapper.*;
+import com.zy.asrs.service.*;
+import com.zy.common.service.CommonService;
+import com.zy.common.utils.News;
+import com.zy.core.cache.MessageQueue;
+import com.zy.core.cache.SlaveConnection;
+import com.zy.core.enums.SlaveType;
+import com.zy.core.model.DevpSlave;
+import com.zy.core.model.Task;
+import com.zy.core.model.protocol.StaProtocol;
+import com.zy.core.properties.SlaveProperties;
+import com.zy.core.thread.SiemensDevpThread;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
+import java.util.Date;
+
+/**
+ * 绔嬩綋浠撳簱WCS绯荤粺涓绘祦绋嬩笟鍔�
+ * Created by vincent on 2020/8/6
+ */
+@Slf4j
+@Service("mainService")
+@Transactional
+public class CtuMainServiceImpl {
+
+    public static final long COMMAND_TIMEOUT = 5 * 1000;
+
+
+    @Autowired
+    private SlaveProperties slaveProperties;
+    @Autowired
+    private WrkMastMapper wrkMastMapper;
+
+    @Autowired
+    private WrkMastService wrkMastService;
+
+
+    public Integer wrkNo = 10000;
+
+    /**
+     * 鍏ュ簱锛屼粠鎷f枡绔欏埌鍏ュ簱绔欙紙CTU鍙栬揣绔欙級
+     */
+    public synchronized void generateStoreWrkFile(Integer mark) {
+        // 鏍规嵁杈撻�佺嚎plc閬嶅巻
+        for (DevpSlave devp : slaveProperties.getDevp()) {
+            // 閬嶅巻鍏ュ簱鍙�
+            for (DevpSlave.Sta inSta : devp.getInSta()) {
+                // 鑾峰彇鍏ュ簱绔欎俊鎭�
+                SiemensDevpThread devpThread = (SiemensDevpThread) SlaveConnection.get(SlaveType.Devp, devp.getId());
+                StaProtocol staProtocol = devpThread.getStation().get(inSta.getStaNo());
+                if (staProtocol == null) {
+                    continue;
+                } else {
+                    staProtocol = staProtocol.clone();
+                }
+                // 鍒ゆ柇鏄惁婊¤冻鏉′欢
+                if (!staProtocol.isLoading()) {
+                    continue;
+                }
+                if (staProtocol.isAutoing() && staProtocol.isInEnable()
+                        && !staProtocol.isEmptyMk() && (staProtocol.getWorkNo() == 0 || staProtocol.getWorkNo() == 9999)
+                        && staProtocol.isPakMk()) {
+                    WrkMast wrkMast = wrkMastMapper.selectByWrkNo(staProtocol.getWorkNo());
+                    if (wrkMast.getWrkSts() == 106) {
+                        //涓嬪彂绉诲姩浠诲姟锛屽苟鐢熸垚鍏ュ簱宸ヤ綔妗�
+
+                    } else {
+                        log.info("" + mark + " - " + staProtocol.getWorkNo() + " - 鎵句笉鍒板搴旂殑宸ヤ綔妗�");
+                    }
+                }
+            }
+        }
+    }
+
+    /**
+     * 鍑哄簱绔欏埌鎷f枡绔�
+     */
+    public synchronized void generateStoreWrkFile0(Integer mark) {
+        // 鏍规嵁杈撻�佺嚎plc閬嶅巻
+        for (DevpSlave devp : slaveProperties.getDevp()) {
+            // 閬嶅巻鍏ュ簱鍙�
+            for (DevpSlave.Sta inSta : devp.getOutSta()) {
+                // 鑾峰彇鍏ュ簱绔欎俊鎭�
+                SiemensDevpThread devpThread = (SiemensDevpThread) SlaveConnection.get(SlaveType.Devp, devp.getId());
+                StaProtocol staProtocol = devpThread.getStation().get(inSta.getStaNo());
+                if (staProtocol == null) {
+                    continue;
+                } else {
+                    staProtocol = staProtocol.clone();
+                }
+                // 鍒ゆ柇鏄惁婊¤冻鏉′欢
+                if (!staProtocol.isLoading()) {
+                    continue;
+                }
+
+                if (staProtocol.isAutoing() && staProtocol.isOutEnable()
+                        && !staProtocol.isEmptyMk() && (staProtocol.getWorkNo() == 0 || staProtocol.getWorkNo() == 9999)
+                        && staProtocol.isPakMk()) {
+                    News.warnNoLog("" + mark + " - 0" + " - 寮�濮嬫墽琛�");
+                    // 鍒ゆ柇閲嶅宸ヤ綔妗�
+                    WrkMast wrkMast = wrkMastService.selectOne(new EntityWrapper<WrkMast>().eq("source_sta_no", staProtocol.getSiteId()).eq("wrk_sts", 105));
+                    if (wrkMast == null) {
+                        continue;
+                    }
+
+                    // 鍛戒护涓嬪彂鍖� --------------------------------------------------------------------------
+
+                    // 鏇存柊绔欑偣淇℃伅 涓� 涓嬪彂plc鍛戒护
+                    staProtocol.setWorkNo(wrkMast.getWrkNo());
+                    staProtocol.setStaNo(wrkMast.getStaNo().shortValue());
+                    devpThread.setPakMk(staProtocol.getSiteId(), false);
+                    boolean result = MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol));
+                    log.info("杈撻�佺嚎涓嬪彂3锛歿},{}", wrkMast.getWrkNo(), wrkMast.getStaNo());
+                    if (result) {
+                        // 鏇存柊宸ヤ綔涓绘。
+                        wrkMast.setWrkSts(106L);
+                        wrkMast.setModiTime(new Date());
+                        if (wrkMastMapper.updateById(wrkMast) == 0) {
+                            News.error("" + mark + " - 1" + " - 鏇存柊宸ヤ綔妗eけ璐ワ紒锛侊紒 [宸ヤ綔鍙凤細{}]", wrkMast.getWrkNo());
+                        }
+                    } else {
+                        News.error("" + mark + " - 2" + " - 鍙戝竷鍛戒护鑷宠緭閫佺嚎闃熷垪澶辫触锛侊紒锛� [plc缂栧彿锛歿}]", devp.getId());
+                    }
+
+                } else {
+                    News.errorNoLog("" + mark + " - 6" + " - 绔欑偣淇℃伅涓嶇鍚堝叆搴撴潯浠讹紒锛侊紒" + " 鑷姩淇″彿锛�" + staProtocol.isLoading() + "銆佸彲鍏ヤ俊鍙凤細" + staProtocol.isInEnable()
+                            + "銆佺┖鏉夸俊鍙凤細" + staProtocol.isEmptyMk() + "銆佸伐浣滃彿锛�" + staProtocol.getWorkNo()
+                            + "銆侀攣瀹氭爣璁�" + staProtocol.isPakMk() + "銆佸叆搴撳嵃璁帮細" + staProtocol.getStamp());
+                }
+            }
+        }
+    }
+
+}
diff --git a/src/main/java/com/zy/core/CtuMainProcess.java b/src/main/java/com/zy/core/CtuMainProcess.java
new file mode 100644
index 0000000..fc0ba45
--- /dev/null
+++ b/src/main/java/com/zy/core/CtuMainProcess.java
@@ -0,0 +1,65 @@
+package com.zy.core;
+
+import com.zy.asrs.service.impl.CtuMainServiceImpl;
+import com.zy.core.properties.SystemProperties;
+import lombok.Data;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Component;
+
+import javax.annotation.PreDestroy;
+
+/**
+ * WCS涓绘祦绋�
+ * Created by vincent on 2020/8/6
+ */
+@Data
+@Slf4j
+@Component
+public class CtuMainProcess {
+
+    @Autowired
+    private CtuMainServiceImpl ctuMainService;
+    // 鎵�灞炵嚎绋�
+    private Thread thread;
+    // 棰戠巼
+    private int i = 0;
+    private boolean rgcWrk = true;
+
+    /**
+     * =====>>  寮�濮嬪伐浣�
+     */
+    public void start() {
+        thread = new Thread(() -> {
+            while (!Thread.currentThread().isInterrupted()) {
+                try {
+
+                    // 闂撮殧
+                    Thread.sleep(1000);
+
+                    // 绯荤粺杩愯鐘舵�佸垽鏂�
+                    if (!SystemProperties.WCS_RUNNING_STATUS.get()) {
+                        continue;
+                    }
+
+
+                    // 鍏ュ簱
+                    ctuMainService.generateStoreWrkFile(1);
+
+                    // 鎷f枡瀹屾垚
+                    //ctuMainService.checkCpm(1);
+
+                } catch (Exception e) {
+                    e.printStackTrace();
+                }
+            }
+        });
+        thread.start();
+    }
+
+    @PreDestroy
+    public void shutDown() {
+        if (thread != null) thread.interrupt();
+    }
+
+}
diff --git a/src/main/java/com/zy/core/ServerBootstrap.java b/src/main/java/com/zy/core/ServerBootstrap.java
index d9f526d..05e4a91 100644
--- a/src/main/java/com/zy/core/ServerBootstrap.java
+++ b/src/main/java/com/zy/core/ServerBootstrap.java
@@ -33,7 +33,7 @@
     @Autowired
     private SlaveProperties slaveProperties;
     @Autowired
-    private MainProcess mainProcess;
+    private CtuMainProcess ctuMainProcess;
 
     public static final Map<CrnThread, Thread> map = new ConcurrentHashMap<>();
 
@@ -52,15 +52,15 @@
         // 鍒濆鍖栦笅浣嶆満绾跨▼
         initThread();
         // 寮�濮嬩富娴佺▼杩涚▼
-        mainProcess.start();
+        ctuMainProcess.start();
         News.info("鏍稿績鎺у埗灞傚凡鍚姩...............................................");
     }
 
     private void initMq(){
         // 鍒濆鍖栧爢鍨涙満mq
-        for (Slave crn : slaveProperties.getCrn()) {
-            MessageQueue.init(SlaveType.Crn, crn);
-        }
+//        for (Slave crn : slaveProperties.getCrn()) {
+//            MessageQueue.init(SlaveType.Crn, crn);
+//        }
         // 鍒濆鍖朢gv灏忚溅mq
 //        for (Slave rgv : slaveProperties.getRgv()) {
 //            MessageQueue.init(SlaveType.Rgv, rgv);
@@ -70,13 +70,13 @@
             MessageQueue.init(SlaveType.Devp, devp);
         }
         // 鍒濆鍖栨潯鐮佹壂鎻忎华mq
-        for (Slave barcode : slaveProperties.getBarcode()) {
-            MessageQueue.init(SlaveType.Barcode, barcode);
-        }
+//        for (Slave barcode : slaveProperties.getBarcode()) {
+//            MessageQueue.init(SlaveType.Barcode, barcode);
+//        }
         // 鍒濆鍖朙ed鐏痬q
-        for (Slave led : slaveProperties.getLed()) {
-            MessageQueue.init(SlaveType.Led, led);
-        }
+//        for (Slave led : slaveProperties.getLed()) {
+//            MessageQueue.init(SlaveType.Led, led);
+//        }
         // 鍒濆鍖栫绉癿q
 //        for (Slave scale : slaveProperties.getScale()) {
 //            MessageQueue.init(SlaveType.Scale, scale);
@@ -89,12 +89,12 @@
 
     private void initThread(){
         // 鍒濆鍖栧爢鍨涙満绾跨▼
-        News.info("鍒濆鍖栧爢鍨涙満绾跨▼...................................................");
-        for (CrnSlave crn : slaveProperties.getCrn()) {
-            CrnThread crnThread = new SiemensCrnThread(crn);
-            new Thread((Runnable) crnThread).start();
-            SlaveConnection.put(SlaveType.Crn, crn.getId(), crnThread);
-        }
+//        News.info("鍒濆鍖栧爢鍨涙満绾跨▼...................................................");
+//        for (CrnSlave crn : slaveProperties.getCrn()) {
+//            CrnThread crnThread = new SiemensCrnThread(crn);
+//            new Thread((Runnable) crnThread).start();
+//            SlaveConnection.put(SlaveType.Crn, crn.getId(), crnThread);
+//        }
         // 鍒濆鍖栫┛姊溅绾跨▼
 //        log.info("鍒濆鍖朢GV绾跨▼...................................................");
 //        for (RgvSlave rgv : slaveProperties.getRgv()) {
@@ -110,19 +110,19 @@
             SlaveConnection.put(SlaveType.Devp, devp.getId(), devpThread);
         }
         // 鍒濆鍖栨潯鐮佹壂鎻忎华绾跨▼
-        News.info("鍒濆鍖栨潯鐮佹壂鎻忎华绾跨▼...................................................");
-        for (Slave barcode : slaveProperties.getBarcode()) {
-            BarcodeThread barcodeThread = new BarcodeThread(barcode);
-//            new Thread(barcodeThread).start();
-            SlaveConnection.put(SlaveType.Barcode, barcode.getId(), barcodeThread);
-        }
-        // 鍒濆鍖朙ED绾跨▼
-        News.info("鍒濆鍖朙ED绾跨▼...................................................");
-        for (LedSlave led : slaveProperties.getLed()) {
-            LedThread ledThread = new LedThread(led);
-            new Thread(ledThread).start();
-            SlaveConnection.put(SlaveType.Led, led.getId(), ledThread);
-        }
+//        News.info("鍒濆鍖栨潯鐮佹壂鎻忎华绾跨▼...................................................");
+//        for (Slave barcode : slaveProperties.getBarcode()) {
+//            BarcodeThread barcodeThread = new BarcodeThread(barcode);
+////            new Thread(barcodeThread).start();
+//            SlaveConnection.put(SlaveType.Barcode, barcode.getId(), barcodeThread);
+//        }
+//        // 鍒濆鍖朙ED绾跨▼
+//        News.info("鍒濆鍖朙ED绾跨▼...................................................");
+//        for (LedSlave led : slaveProperties.getLed()) {
+//            LedThread ledThread = new LedThread(led);
+//            new Thread(ledThread).start();
+//            SlaveConnection.put(SlaveType.Led, led.getId(), ledThread);
+//        }
         // 鍒濆鍖栫绉ょ嚎绋�
 //        News.info("鍒濆鍖栫绉ょ嚎绋�...................................................");
 //        for (Slave scale : slaveProperties.getScale()) {
diff --git a/src/main/resources/application.yml b/src/main/resources/application.yml
index 5a37a8c..4bc3220 100644
--- a/src/main/resources/application.yml
+++ b/src/main/resources/application.yml
@@ -8,7 +8,7 @@
     name: @pom.build.finalName@
   datasource:
     driver-class-name: com.microsoft.sqlserver.jdbc.SQLServerDriver
-    url: jdbc:sqlserver://192.168.11.30:1433;databasename=xgmFlasrs
+    url: jdbc:sqlserver://127.0.0.1:1433;databasename=whxrasrs
     username: sa
     password: sa@123
   mvc:
@@ -34,7 +34,7 @@
   enable: false
 
 wms:
-  url: 192.168.11.30:8080/xgmFlwms
+  url: 127.0.0.1:8080/whxrwms
 
 # 涓嬩綅鏈洪厤缃�
 wcs-slave:
@@ -167,45 +167,45 @@
     slot: 0
     # 鍏ュ簱鍙�1
     inSta[0]:
-      staNo: 101
+      staNo: 1004
       barcode: ${wcs-slave.barcode[0].id}
-      backSta: 100
+      backSta: 1004
       led: ${wcs-slave.led[0].id}
-    # 鍏ュ簱鍙�1
-    inSta[1]:
-      staNo: 201
-      barcode: ${wcs-slave.barcode[1].id}
-      backSta: 200
-      led: ${wcs-slave.led[1].id}
-    # 鎷f枡鍏ュ簱鍙�1
-    pickSta[0]:
-      staNo: 101
-      barcode: ${wcs-slave.barcode[0].id}
-      led: ${wcs-slave.led[0].id}
-      backSta: 100
-    # 鎷f枡鍏ュ簱鍙�1
-    pickSta[1]:
-      staNo: 201
-      barcode: ${wcs-slave.barcode[1].id}
-      led: ${wcs-slave.led[1].id}
-      backSta: 200
-    # 绌烘澘鍏ュ簱鍙�1
-    emptyInSta[0]:
-      staNo: 101
-      barcode: ${wcs-slave.barcode[0].id}
-      backSta: 100
-      led: ${wcs-slave.led[0].id}
-    # 绌烘澘鍏ュ簱鍙�2
-    emptyInSta[1]:
-      staNo: 201
-      barcode: ${wcs-slave.barcode[1].id}
-      backSta: 200
-      led: ${wcs-slave.led[1].id}
+#    # 鍏ュ簱鍙�1
+#    inSta[1]:
+#      staNo: 201
+#      barcode: ${wcs-slave.barcode[1].id}
+#      backSta: 200
+#      led: ${wcs-slave.led[1].id}
+#    # 鎷f枡鍏ュ簱鍙�1
+#    pickSta[0]:
+#      staNo: 101
+#      barcode: ${wcs-slave.barcode[0].id}
+#      led: ${wcs-slave.led[0].id}
+#      backSta: 100
+#    # 鎷f枡鍏ュ簱鍙�1
+#    pickSta[1]:
+#      staNo: 201
+#      barcode: ${wcs-slave.barcode[1].id}
+#      led: ${wcs-slave.led[1].id}
+#      backSta: 200
+#    # 绌烘澘鍏ュ簱鍙�1
+#    emptyInSta[0]:
+#      staNo: 101
+#      barcode: ${wcs-slave.barcode[0].id}
+#      backSta: 100
+#      led: ${wcs-slave.led[0].id}
+#    # 绌烘澘鍏ュ簱鍙�2
+#    emptyInSta[1]:
+#      staNo: 201
+#      barcode: ${wcs-slave.barcode[1].id}
+#      backSta: 200
+#      led: ${wcs-slave.led[1].id}
     # 鍑哄簱鍙�1
     outSta[0]:
-      staNo: 123
-    outSta[1]:
-      staNo: 223
+      staNo: 1001
+#    outSta[1]:
+#      staNo: 223
   # 鏉$爜鎵弿浠�1
   barcode[0]:
     id: 1
diff --git a/src/main/webapp/static/js/common.js b/src/main/webapp/static/js/common.js
index 3dbaab4..ecda814 100644
--- a/src/main/webapp/static/js/common.js
+++ b/src/main/webapp/static/js/common.js
@@ -1,4 +1,4 @@
-var baseUrl = "/xgmFlwcs";
+var baseUrl = "/whxrwcs";
 
 // 璧嬪��
 function setVal(el, val) {
diff --git a/src/main/webapp/static/js/console.map.js b/src/main/webapp/static/js/console.map.js
index 5ef9b5f..bcaee1b 100644
--- a/src/main/webapp/static/js/console.map.js
+++ b/src/main/webapp/static/js/console.map.js
@@ -1,5 +1,5 @@
 mapInfo ={
-    "mapName": "xgmFlwcs",
+    "mapName": "whxrwcs",
     "rackCount": 6,
     "crnCount": 3,
     "stbCount": 48,

--
Gitblit v1.9.1