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