From 56b6f93fbf3e1d5b27676a1d6ad34dc5c626249a Mon Sep 17 00:00:00 2001
From: dubin <dubin@163.com>
Date: 星期二, 27 五月 2025 15:58:16 +0800
Subject: [PATCH] 电视机ip配置和wcs监控图
---
src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java | 141 ++++++++++++++++++++++++++++++++++++++--------
1 files changed, 115 insertions(+), 26 deletions(-)
diff --git a/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
index d862449..a6f9389 100644
--- a/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
@@ -29,6 +29,7 @@
import com.zy.core.enums.*;
import com.zy.core.model.CrnSlave;
import com.zy.core.model.DevpSlave;
+import com.zy.core.model.LedSlave;
import com.zy.core.model.Task;
import com.zy.core.model.command.CommandPackage;
import com.zy.core.model.command.CrnCommand;
@@ -36,6 +37,7 @@
import com.zy.core.model.protocol.StaProtocol;
import com.zy.core.properties.SlaveProperties;
import com.zy.core.thread.BarcodeThread;
+import com.zy.core.thread.LedThread;
import com.zy.core.thread.SiemensDevpThread;
import com.zy.system.entity.Config;
import com.zy.system.service.ConfigService;
@@ -304,6 +306,8 @@
}
Short workNo = staProtocol.getWorkNo();
Short stano = staProtocol.getStaNo();
+ //led
+ LedThread ledThread = (LedThread) SlaveConnection.get(SlaveType.Led, inSta.getLed());
// 灏哄妫�娴嬪紓甯�
boolean back = false;
@@ -343,27 +347,34 @@
&& staProtocol.isPakMk()) {
// 鑾峰彇鏉$爜鎵弿浠俊鎭�
BarcodeThread barcodeThread = (BarcodeThread) SlaveConnection.get(SlaveType.Barcode, inSta.getBarcode());
- if (barcodeThread == null) {
- continue;
- }
- String BoxNo = barcodeThread.getBarcode();
- TaskWrk taskWrk1 = taskWrkService.selectOne(new EntityWrapper<TaskWrk>().eq("barcode", BoxNo));
- if (!Cools.isEmpty(taskWrk1)) {
- log.info("鎵樼洏鐮侊細" + BoxNo + "浠诲姟妗e瓨鍦�");
- if (taskWrk1.getIoType() == 1 && taskWrk1.getStartPoint().equals(staProtocol.getSiteId().toString())) {
- StaDesc staDesc = staDescService.selectOne(new EntityWrapper<StaDesc>()
- .eq("crn_no", taskWrk1.getCrnNo()).eq("type_no", 1).eq("stn_no", staProtocol.getSiteId()));
- if (Cools.isEmpty(staDesc)) {
- return;
- } else {
- continue;
+ String BoxNo = "";
+ if (barcodeThread != null) {
+ BoxNo = barcodeThread.getBarcode();
+ TaskWrk taskWrk1 = taskWrkService.selectOne(new EntityWrapper<TaskWrk>().eq("barcode", BoxNo));
+ if (!Cools.isEmpty(taskWrk1)) {
+ log.info("鎵樼洏鐮侊細" + BoxNo + "浠诲姟妗e瓨鍦�");
+ if (taskWrk1.getIoType() == 1 && taskWrk1.getStartPoint().equals(staProtocol.getSiteId().toString())) {
+ StaDesc staDesc = staDescService.selectOne(new EntityWrapper<StaDesc>()
+ .eq("crn_no", taskWrk1.getCrnNo()).eq("type_no", 1).eq("stn_no", staProtocol.getSiteId()));
+ if (Cools.isEmpty(staDesc)) {
+ return;
+ } else {
+ continue;
+ }
+ }
+ }
+ if (back) {
+ storageEscalationParam.setWCSStatus(1);
+ storageEscalationParam.setWCSErrorMessage(storageEscalationParam.getWCSErrorMessage() + errMsg);
+ // led 寮傚父鏄剧ず
+ if (ledThread != null) {
+ String errorMsg = errMsg;
+ MessageQueue.offer(SlaveType.Led, inSta.getLed(), new Task(5, errorMsg));
}
}
}
- if (back) {
- storageEscalationParam.setWCSStatus(1);
- storageEscalationParam.setWCSErrorMessage(storageEscalationParam.getWCSErrorMessage() + errMsg);
- }
+
+
storageEscalationParam.setBoxNo(BoxNo);
//鏄惁婊℃澘 1婊℃澘 0绌烘澘
storageEscalationParam.setStaType(staProtocol.isEmptyMk() ? 0 : 1);
@@ -432,6 +443,11 @@
}
}
} else {
+ // led 寮傚父鏄剧ず
+ if (ledThread != null) {
+ String errorMsg = "宸叉湁鍏ュ簱浠诲姟锛侊紒锛�";
+ MessageQueue.offer(SlaveType.Led, inSta.getLed(), new Task(5, errorMsg));
+ }
staProtocol.setWorkNo((short) 9991);
staProtocol.setStaNo(inSta.getBackSta().shortValue());
devpThread.setPakMk(staProtocol.getSiteId(), false);
@@ -439,6 +455,13 @@
}
} else {
+
+ // led 寮傚父鏄剧ず
+ if (ledThread != null) {
+ String errorMsg = jsonObject.getString("ErrorMessage");
+ MessageQueue.offer(SlaveType.Led, inSta.getLed(), new Task(5, errorMsg));
+ }
+
staProtocol.setWorkNo((short) 9991);
staProtocol.setStaNo(inSta.getBackSta().shortValue());
devpThread.setPakMk(staProtocol.getSiteId(), false);
@@ -498,19 +521,28 @@
staProtocol = staProtocol.clone();
}
Short workNo = staProtocol.getWorkNo();
+ //led
+ LedThread ledThread = (LedThread) SlaveConnection.get(SlaveType.Led, inSta.getLed());
+
// 鍒ゆ柇鏄惁婊¤冻鍏ュ簱鏉′欢
if (staProtocol.isAutoing() && staProtocol.isLoading()
&& staProtocol.isInEnable()
&& staProtocol.isPakMk()) {
// 鑾峰彇鏉$爜鎵弿浠俊鎭�
String BoxNo = "";
+ //绔欑偣鎷f枡鍥炲簱浠诲姟鏄細鏈変竴鏉�
+ TaskWrk taskWrkk =taskWrkService.selectOne(new EntityWrapper<TaskWrk>().eq("start_point",staProtocol.getSiteId()));
+ if (!Cools.isEmpty(taskWrkk)) {
+ continue;
+ }
if(!staProtocol.isEmptyMk()&&staProtocol.getWorkNo()<9990){
- TaskWrk taskWrk1 = taskWrkService.selectOne(new EntityWrapper<TaskWrk>().eq("task_no", workNo));
+
+ TaskWrk taskWrk1 = taskWrkService.selectOne(new EntityWrapper<TaskWrk>().eq("wrk_no", workNo));
if (!Cools.isEmpty(taskWrk1)) {
BoxNo = taskWrk1.getBarcode();
} else {
- TaskWrkLog taskWrkLog = taskWrkLogService.selectOne(new EntityWrapper<TaskWrkLog>().eq("task_no", workNo).orderBy("modi_time", false));
+ TaskWrkLog taskWrkLog = taskWrkLogService.selectOne(new EntityWrapper<TaskWrkLog>().eq("wrk_no", workNo).orderBy("modi_time", false));
if (taskWrkLog != null) {
BoxNo = taskWrkLog.getBarcode();
}
@@ -536,6 +568,7 @@
if (!Cools.isEmpty(response) && !Cools.isEmpty(jsonObject.get("ReturnStatus")) && jsonObject.get("ReturnStatus").equals(0) && !Cools.isEmpty(jsonObject.get("Result").toString())) {
Result result = JSON.parseObject(jsonObject.get("Result").toString(), Result.class);
+
// 鍒涙柊涓�涓叆搴撳伐浣滄。
TaskWrk taskWrk = taskWrkService.selectByTaskNo(result.getTaskNo());
if (Cools.isEmpty(taskWrk)) {
@@ -579,6 +612,11 @@
}
}
} else {
+ // led 寮傚父鏄剧ず
+ if (ledThread != null) {
+ String errorMsg = "浠诲姟宸插瓨鍦紒锛侊紒锛�";
+ MessageQueue.offer(SlaveType.Led, inSta.getLed(), new Task(5, errorMsg));
+ }
staProtocol.setWorkNo((short) 9991);
staProtocol.setStaNo(inSta.getBackSta().shortValue());
devpThread.setPakMk(staProtocol.getSiteId(), false);
@@ -586,6 +624,11 @@
}
} else {
+ // led 寮傚父鏄剧ず
+ if (ledThread != null) {
+ String errorMsg = jsonObject.getString("ErrorMessage");
+ MessageQueue.offer(SlaveType.Led, inSta.getLed(), new Task(5, errorMsg));
+ }
staProtocol.setWorkNo((short) 9991);
staProtocol.setStaNo(inSta.getBackSta().shortValue());
devpThread.setPakMk(staProtocol.getSiteId(), false);
@@ -932,7 +975,7 @@
staProtocol.setStaNo(staDesc.getStnNo().shortValue());
boolean offer = false;
try {
- offer = MessageQueue.offer(SlaveType.Devp, 1, new Task(2, staProtocol));
+ offer = MessageQueue.offer(SlaveType.Devp, crnStn.getDevpPlcId(), new Task(2, staProtocol));
} catch (Exception e) {
log.error("涓嬪彂杈撻�佺嚎浠诲姟澶辫触锛氬紓甯�:" + e);
log.error("涓嬪彂杈撻�佺嚎浠诲姟澶辫触锛氬紓甯�:offer:" + offer);
@@ -1118,9 +1161,19 @@
LocMast locMast = locMastService.selectByLocNo(taskWrk.getStartPoint());
//鍒ゆ柇鍏跺簱浣嶆槸鍚︿负娣卞簱浣嶏紝濡傛灉涓烘繁搴撲綅鎵惧叾娴呭簱浣嶆槸閮芥湁璐�
- if (locMast.getRow1() == 8 || locMast.getRow1() == 5) {
+ if (locMast.getRow1() == 5) {
LocMast locMast1 = locMastService.selectOne(new EntityWrapper<LocMast>()
.eq("row1", (locMast.getRow1() + 1))
+ .eq("bay1", locMast.getBay1())
+ .eq("lev1", locMast.getLev1()).eq("loc_sts", "F"));
+ if (!Cools.isEmpty(locMast1)) {
+ log.info(locMast.getLocNo() + "鍑烘繁搴撲綅锛屾祬搴撲綅鏈夎揣");
+ continue;
+ }
+ }
+ if (locMast.getRow1() == 8) {
+ LocMast locMast1 = locMastService.selectOne(new EntityWrapper<LocMast>()
+ .eq("row1", (locMast.getRow1() - 1 ))
.eq("bay1", locMast.getBay1())
.eq("lev1", locMast.getLev1()).eq("loc_sts", "F"));
if (!Cools.isEmpty(locMast1)) {
@@ -1771,7 +1824,6 @@
private TaskWrk createTask1(Result result, String barcode,Integer staNo) {
String locNo = Utils.Fusion(result.getRow(), result.getFloor(), result.getColumn());
-
Date now = new Date();
TaskWrk taskWrk = new TaskWrk();
int workNo1 = commonService.getWorkNo(WorkNoType.PAKIN.type);//鑾峰彇鍏ュ簱宸ヤ綔鍙�
@@ -1779,11 +1831,9 @@
taskWrk.setWrkNo(workNo1);
taskWrk.setStatus(TaskStatusType.RECEIVE.id);//浠诲姟鐘舵�侊細鎺ユ敹
taskWrk.setCreateTime(now);
- taskWrk.setIoType(1);//浠诲姟绫诲瀷
+ taskWrk.setIoType(1);//浠诲姟绫诲瀷 鍏ュ簱
taskWrk.setIoPri(13);//浼樺厛绾�
taskWrk.setBarcode(barcode);//鏉$爜
- LocMast locMast = locMastService.selectByLocNo(locNo);
- taskWrk.setCrnNo(locMast.getCrnNo());
taskWrk.setTargetPoint(locNo);
taskWrk.setStartPoint(staNo+"");
taskWrk.setCrnNo(Integer.valueOf(result.getAlley()));//鍫嗗灈鏈哄彿
@@ -1839,4 +1889,43 @@
return taskWrk;
}
+ //----------------------------------------------------------鐢佃鏈烘樉绀哄鐞�----------------------------------------
+ /**
+ * 鍏朵粬 ===>> LED鏄剧ず鍣ㄥ浣嶏紝鏄剧ず榛樿淇℃伅
+ */
+ public synchronized void ledReset(Integer mark) {
+
+// log.info(""+mark+" - 0"+" - 寮�濮嬫墽琛�:鍏朵粬 ===>> LED鏄剧ず鍣ㄥ浣嶏紝鏄剧ず榛樿淇℃伅");
+ for (LedSlave led : slaveProperties.getLed()) {
+
+ // 鑾峰彇杈撻�佺嚎plc绾跨▼
+ DevpThread devpThread = (DevpThread) SlaveConnection.get(SlaveType.Devp, led.getDevpPlcId());
+ // 鍛戒护闆嗗悎
+ boolean reset = true;
+ for (Integer staNo : led.getStaArr()) {
+ // 鑾峰彇鍙夎溅绔欑偣
+ StaProtocol staProtocol = devpThread.getStation().get(staNo);
+ if (staProtocol == null) {
+ continue;
+ }
+ if (staProtocol.getWorkNo() != 0 && staProtocol.isLoading()) {
+ reset = false;
+ break;
+ }
+ }
+ // 鑾峰彇led绾跨▼
+ LedThread ledThread = (LedThread) SlaveConnection.get(SlaveType.Led, led.getId());
+ // led鏄剧ず榛樿鍐呭
+ if (reset && !ledThread.isLedMk()) {
+ ledThread.setLedMk(true);
+ if (!MessageQueue.offer(SlaveType.Led, led.getId(), new Task(4, new ArrayList<>()))) {
+ log.error(""+mark+" - 1"+" - {}鍙稬ED鍛戒护涓嬪彂澶辫触锛侊紒锛乕ip锛歿}] [port锛歿}]", led.getId(), led.getIp(), led.getPort());
+ } else {
+
+ }
+ }
+ }
+// log.info(""+mark+" - 0"+" - 鎵ц瀹屾垚锛氬叾浠� ===>> LED鏄剧ず鍣ㄥ浣嶏紝鏄剧ず榛樿淇℃伅");
+ }
+
}
--
Gitblit v1.9.1