From d34366b9d348f47a8083aa3dd2e3e0efa2377dcf Mon Sep 17 00:00:00 2001
From: zc <zc@123>
Date: 星期五, 25 四月 2025 20:57:18 +0800
Subject: [PATCH] 初步调试
---
src/main/java/com/zy/core/dispatcher/ShuttleDispatchUtils.java | 24 +++++--
src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java | 80 +++++++++++++++++---------
src/main/java/com/zy/asrs/controller/TVController.java | 45 ++++++++------
src/main/java/com/zy/asrs/service/impl/TransportLiftOutServiceImpl.java | 8 +-
4 files changed, 100 insertions(+), 57 deletions(-)
diff --git a/src/main/java/com/zy/asrs/controller/TVController.java b/src/main/java/com/zy/asrs/controller/TVController.java
index 1b8e616..d797b27 100644
--- a/src/main/java/com/zy/asrs/controller/TVController.java
+++ b/src/main/java/com/zy/asrs/controller/TVController.java
@@ -231,30 +231,37 @@
*/
@GetMapping("/led")
public R monitorLed(@RequestParam("ledId") Integer ledId) {
- int dev_no = 1012;
+ int dev_no1 = 1011;
+ int dev_no2 = 1012;
+ int dev_no3 = 1015;
if (ledId == 1) {
- dev_no = 1012;
+ dev_no1 = 1011;
+ dev_no2 = 1012;
} else if (ledId == 2) {
- dev_no = 1014;
+ dev_no1 = 1013;
+ dev_no2 = 1015;
+ dev_no3 = 1015;
} else if (ledId == 3) {
- dev_no = 1021;
+ dev_no1 = 1021;
+ dev_no2 = 1022;
+ dev_no3 = 1023;
} else if (ledId == 4) {
- dev_no = 1024;
+ dev_no1 = 1024;
+ dev_no2 = 1025;
+ dev_no3 = 1026;
}
- BasDevp basDevp = basDevpService.selectOne(new EntityWrapper<BasDevp>().eq("dev_no", dev_no));
- if (Cools.isEmpty(basDevp)) {
- return R.ok();
- }
- if (Cools.isEmpty(basDevp.getWrkNo1())) {
- return R.ok();
- }
- if (basDevp.getWrkNo() == null || basDevp.getWrkNo() == 0) {
- return R.ok();
- }
- Object o = redisUtil.get("LED_" + dev_no);
- if (o != null) {
- log.info("鐢佃鏈烘樉绀猴細{}",JSONObject.toJSONString(o));
- return R.ok().add(o);
+ Object o1 = redisUtil.get("LED_" + dev_no1);
+ Object o2 = redisUtil.get("LED_" + dev_no2);
+ Object o3 = redisUtil.get("LED_" + dev_no3);
+ if (o1 != null) {
+ log.info("鐢佃鏈烘樉绀�1锛歿}", JSONObject.toJSONString(o1));
+ return R.ok().add(o1);
+ } else if (o2 != null) {
+ log.info("鐢佃鏈烘樉绀�2锛歿}", JSONObject.toJSONString(o2));
+ return R.ok().add(o2);
+ } else if (o3 != null) {
+ log.info("鐢佃鏈烘樉绀�3锛歿}", JSONObject.toJSONString(o3));
+ return R.ok().add(o3);
}
return R.ok();
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 4840377..65dcae0 100644
--- a/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
@@ -22,10 +22,7 @@
import com.zy.core.cache.SlaveConnection;
import com.zy.core.dispatcher.ShuttleDispatchUtils;
import com.zy.core.enums.*;
-import com.zy.core.model.DevpSlave;
-import com.zy.core.model.LiftSlave;
-import com.zy.core.model.ShuttleSlave;
-import com.zy.core.model.Task;
+import com.zy.core.model.*;
import com.zy.core.model.command.*;
import com.zy.core.model.protocol.ForkLiftStaProtocol;
import com.zy.core.model.protocol.LiftProtocol;
@@ -37,7 +34,9 @@
import com.zy.core.thread.LiftThread;
import com.zy.core.thread.ShuttleThread;
import com.zy.core.thread.impl.FyDevpThread;
+import com.zy.core.thread.impl.NormalLedThread;
import com.zy.system.service.ConfigService;
+import io.swagger.models.auth.In;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
@@ -200,15 +199,8 @@
}
// 閫�鍥�
if (back) {
- if (!staProtocol.isLoading()) {
- continue;
- }
- if (!staProtocol.isPakMk()) {
- continue;
- }
// led 寮傚父鏄剧ず
if (ledThread != null) {
- MessageQueue.offer(SlaveType.Led, inSta.getLed(), new Task(3, errMsg));
ledThread.error(errMsg);
}
}
@@ -231,8 +223,6 @@
wrkMast.setWrkSts(WrkStsType.INBOUND_DEVICE_RUN.sts);
wrkMast.setModiTime(new Date());
wrkMastService.updateById(wrkMast);
- setLedData(wrkMast.getWrkNo(), wrkMast.getStaNo());
-
} else if (wrkMast != null && wrkMast.getWrkSts() != WrkStsType.NEW_INBOUND.sts) {
continue;
}
@@ -308,6 +298,34 @@
} else {
staProtocol = staProtocol.clone();
}
+ LedThread ledThread = (LedThread) SlaveConnection.get(SlaveType.Led, inSta.getLed());
+ String errMsg = "";
+ boolean back = false;
+ if (!back && staProtocol.isBackErr()) {
+ errMsg = "瓒呭寮傚父";
+ back = true;
+ }
+ if (!back && staProtocol.isHighErr()) {
+ errMsg = "瓒呴珮寮傚父";
+ back = true;
+ }
+ if (!back && staProtocol.isRightErr()) {
+ errMsg = "瓒呴暱寮傚父";
+ back = true;
+ }
+ if (!back && staProtocol.isWeightErr()) {
+ errMsg = "瓒呴噸";
+ back = true;
+ }
+ // 閫�鍥�
+ if (back) {
+
+ // led 寮傚父鏄剧ず
+ if (ledThread != null) {
+ ledThread.error(errMsg);
+ }
+ }
+
Short workNo = staProtocol.getWorkNo();
if (staProtocol.isAutoing() && staProtocol.isLoading() && isInEnable(devpThread, inSta.getStaNo()) && !staProtocol.isEmptyMk() && (workNo == 0 || (workNo >= 9990 && workNo <= 9999)) && staProtocol.isPakMk()) {
String barcode = staProtocol.getBarcode();
@@ -329,7 +347,6 @@
JSONObject jsonObject = JSON.parseObject(response);
Integer code = jsonObject.getInteger("code");
if (code.equals(200)) {
- setLedData(wrkMast.getWrkNo(), wrkMast.getStaNo());
} else {
String msg = jsonObject.getString("msg");
@@ -401,6 +418,8 @@
wrkMast.setModiTime(new Date());
if (!wrkMastService.updateById(wrkMast)) {
News.info("{}浠诲姟锛屾洿鏂板伐浣滄。澶辫触", wrkMast.getWrkNo());
+ } else {
+ setLedData(Integer.parseInt(wrkMast.getWmsWrkNo()), wrkMast.getStaNo());
}
}
}
@@ -516,7 +535,7 @@
wrkMast.setModiTime(new Date());
wrkMast.setShuttleNo(null);
wrkMastService.updateById(wrkMast);
- setLedData(wrkMast.getWrkNo(), wrkMast.getStaNo());
+ setLedData(Integer.parseInt(wrkMast.getWmsWrkNo()), wrkMast.getStaNo());
}
}
}
@@ -526,7 +545,6 @@
private void setLedData(Integer wrkNo, Integer staNo) {
try {
- List<LedCommand> commands = new ArrayList<>();
Map<String, Object> param = new HashMap<>();
param.put("taskNo", wrkNo);
String response = null;
@@ -541,9 +559,10 @@
if (code.equals(200)) {
String data = jsonObject.getString("data");
List<LedCommand> wrkDetls = JSONArray.parseArray(data, LedCommand.class);
- commands.addAll(wrkDetls);
- redisUtil.set("LED_" + staNo, commands, 10);
- log.info("鐢佃鏈烘暟鎹缃細{}", data);
+ redisUtil.set("LED_" + staNo, wrkDetls, 30);
+ log.info("鐢佃鏈烘暟鎹缃細{},{}", staNo, data);
+ } else {
+ log.info("鐢佃鏈烘暟鎹缃紓甯革細{},{}", wrkNo, response);
}
} catch (Exception e) {
e.printStackTrace();
@@ -949,19 +968,21 @@
}
}
String barcode = staProtocol.getBarcode();
- if (Cools.isEmpty(barcode) || "?".endsWith(barcode) || "NG".endsWith(barcode) || "NoRead".equals(barcode) || "00000000".equals(barcode)) {
- return false;
- }
- if (!staProtocol.isAutoing()) {
- News.info("{}浠诲姟锛寋}绔欑偣锛屼笉鍦ㄨ嚜鍔ㄧ姸鎬�", wrkMast.getWrkNo(), staProtocol.getSiteId());
- return false;
- }
+
+
if (!staProtocol.isLoading()) {
News.info("{}浠诲姟锛寋}绔欑偣锛屾棤鎵樼洏", wrkMast.getWrkNo(), staProtocol.getSiteId());
return false;
}
if (wrkMast.getSourceStaNo() != 1031) {
+ if (!staProtocol.isAutoing()) {
+ News.info("{}浠诲姟锛寋}绔欑偣锛屼笉鍦ㄨ嚜鍔ㄧ姸鎬�", wrkMast.getWrkNo(), staProtocol.getSiteId());
+ return false;
+ }
+ if (Cools.isEmpty(barcode) || "?".endsWith(barcode) || "NG".endsWith(barcode) || "NoRead".equals(barcode) || "00000000".equals(barcode)) {
+ return false;
+ }
if (!staProtocol.getBarcode().equals(wrkMast.getBarcode())) {
News.info("{}浠诲姟锛寋}绔欑偣锛屾墭鐩樼爜涓嶅尮閰嶏紝绔欑偣鎵樼洏鐮侊細{}锛屼换鍔℃墭鐩樼爜锛歿}", wrkMast.getWrkNo(), staProtocol.getSiteId(), staProtocol.getBarcode(), wrkMast.getBarcode());
return false;
@@ -993,6 +1014,7 @@
wrkMast.setSystemMsg("");//娓呯┖娑堟伅
wrkMast.setModiTime(now);
if (wrkMastService.updateById(wrkMast)) {
+ setLedData(Integer.parseInt(wrkMast.getWmsWrkNo()), wrkMast.getStaNo());
return false;
}
return false;
@@ -1341,7 +1363,7 @@
wrkMast.setModiTime(now);
if (wrkMastService.updateById(wrkMast)) {
- setLedData(wrkMast.getWrkNo(), wrkMast.getStaNo());
+ setLedData(Integer.parseInt(wrkMast.getWmsWrkNo()), wrkMast.getStaNo());
//涓嬪彂浠诲姟
liftAction.assignWork(wrkMast.getLiftNo(), assignCommand);
return false;
@@ -2301,6 +2323,10 @@
* 鍏ュ嚭搴撴ā寮忓垏鎹㈠嚱鏁�
*/
public synchronized void ioConvert() {
+ for (LedSlave led : slaveProperties.getLed()) {
+ NormalLedThread ledThread = (NormalLedThread) SlaveConnection.get(SlaveType.Led, led.getId());
+ ledThread.reset();
+ }
try {
// 鏍规嵁杈撻�佺嚎plc閬嶅巻
FyDevpThread devpThread = (FyDevpThread) SlaveConnection.get(SlaveType.Devp, 1);
diff --git a/src/main/java/com/zy/asrs/service/impl/TransportLiftOutServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/TransportLiftOutServiceImpl.java
index dea517b..2dd8e9c 100644
--- a/src/main/java/com/zy/asrs/service/impl/TransportLiftOutServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/TransportLiftOutServiceImpl.java
@@ -542,19 +542,19 @@
//鍘诲緟鏈轰綅
String locNo = Utils.getLocNo(Utils.getRow(liftStandByLocNo) + 1, Utils.getBay(liftStandByLocNo) - 1, Utils.getLev(liftStandByLocNo));
//闃叉鍙︿竴杈嗚溅鍗犵敤寰呮満浣�
- try{
+ try {
if (shuttleProtocol.getShuttleNo() == 2) {
ShuttleThread shuttleThread1 = (ShuttleThread) SlaveConnection.get(SlaveType.Shuttle, 1);
if (locNo.equals(shuttleThread1.getStatus().getCurrentLocNo())) {
- locNo = Utils.getLocNo(Utils.getRow(liftStandByLocNo) + 2, Utils.getBay(liftStandByLocNo) - 1, Utils.getLev(liftStandByLocNo));
+ locNo = Utils.getLocNo(Utils.getRow(liftStandByLocNo) - 1, Utils.getBay(liftStandByLocNo) - 1, Utils.getLev(liftStandByLocNo));
}
} else {
ShuttleThread shuttleThread2 = (ShuttleThread) SlaveConnection.get(SlaveType.Shuttle, 2);
if (locNo.equals(shuttleThread2.getStatus().getCurrentLocNo())) {
- locNo = Utils.getLocNo(Utils.getRow(liftStandByLocNo) + 2, Utils.getBay(liftStandByLocNo) - 1, Utils.getLev(liftStandByLocNo));
+ locNo = Utils.getLocNo(Utils.getRow(liftStandByLocNo) - 1, Utils.getBay(liftStandByLocNo) - 1, Utils.getLev(liftStandByLocNo));
}
}
- }catch (Exception e){
+ } catch (Exception e) {
}
//鑾峰彇灏忚溅鍒版彁鍗囨満寰呮満琛岃蛋鍛戒护
diff --git a/src/main/java/com/zy/core/dispatcher/ShuttleDispatchUtils.java b/src/main/java/com/zy/core/dispatcher/ShuttleDispatchUtils.java
index 9c4b360..10bd959 100644
--- a/src/main/java/com/zy/core/dispatcher/ShuttleDispatchUtils.java
+++ b/src/main/java/com/zy/core/dispatcher/ShuttleDispatchUtils.java
@@ -434,7 +434,7 @@
if (wrkMast1.getIoType() == 101 && currentLocNo.equals(locNo)) {
//杞﹁締褰撳墠浣嶇疆宸茬粡鏄洰鏍囧簱浣嶏紝璋冨害璇ヨ溅
//缁欏伐浣滄。缁戝畾灏忚溅鍙�
- diffShuttles.put(-1, shuttleThread);
+ diffShuttles.put(-2, shuttleThread);
} else {
// if (tongLev && diffLev.size() >= 2) {
// //褰撳墠绌挎杞︾嚎绋嬪埌鐩爣鍦扮偣璺濈
@@ -445,14 +445,24 @@
// Integer currentAllDistance = navigateUtils.getOriginPathAllDistance(currentShuttlePath);//璁$畻褰撳墠璺緞琛岃蛋鎬昏窛绂�
// diffShuttles.put(currentAllDistance, shuttleThread);
// } else {
- //ABS(鐩爣妤煎眰 - 褰撳墠妤煎眰) 寰楀埌宸窛锛屽彇鏈�灏忓樊鍊�
- int currentValue = Math.abs(lev - currentLev);
- if (diffShuttles.get(currentValue) != null) {
+ //ABS(鐩爣妤煎眰 - 褰撳墠妤煎眰) 寰楀埌宸窛锛屽彇鏈�灏忓樊鍊�
+ int currentValue = Math.abs(lev - currentLev);
+ if (diffShuttles.get(currentValue) != null) {
+ try {
+ List<NavigateNode> currentShuttlePath = navigateUtils.calc(currentLocNo, locNo, NavigationMapType.NORMAL.id, Utils.getShuttlePoints(shuttleProtocol.getShuttleNo(), Utils.getLev(currentLocNo)), null);//鎼滅储绌洪棽绌挎杞︼紝浣跨敤姝e父閫氶亾鍦板浘
+ if (currentShuttlePath == null) {
+ continue;
+ }
+ Integer currentAllDistance = navigateUtils.getOriginPathAllDistance(currentShuttlePath);//璁$畻褰撳墠璺緞琛岃蛋鎬昏窛绂�
+ diffShuttles.put(currentAllDistance, shuttleThread);
+ diffShuttles.put(currentValue - 1, shuttleThread);
+ } catch (Exception e) {
diffShuttles.put(currentValue + 1, shuttleThread);
- } else {
- diffShuttles.put(currentValue, shuttleThread);
}
- // }
+ } else {
+ diffShuttles.put(currentValue, shuttleThread);
+ }
+ // }
}
}
--
Gitblit v1.9.1