From 61a93ca962a62f56e378e16fbc2842a3210fd0b5 Mon Sep 17 00:00:00 2001
From: Junjie <xjj@123>
Date: 星期日, 08 六月 2025 08:06:12 +0800
Subject: [PATCH] #
---
src/main/java/com/zy/core/properties/SlaveProperties.java | 10 ++
src/main/java/com/zy/asrs/utils/Utils.java | 48 +++++------
src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java | 129 +++++++++++++-------------------
3 files changed, 84 insertions(+), 103 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 16623a9..573943d 100644
--- a/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
@@ -117,50 +117,27 @@
//LED
LedThread ledThread = (LedThread) SlaveConnection.get(SlaveType.Led, inSta.getLed());
- // 鍏ュ嚭搴撴ā寮忓垽鏂�
-// if ( inSta.getStaNo()==203 && devpThread.ioModeOf2F != IoModeType.PAKIN_MODE) { continue; }
-// if (inSta.getStaNo() == 203 && devpThread.ioModeOf2F == IoModeType.PAKOUT_MODE) {
-// continue;
-// }
// 鍒ゆ柇鏄惁婊¤冻鍏ュ簱鏉′欢
if (!staProtocol.isLoading()){
continue;
}
- String barcode11 = barcodeThread.getBarcode();
- if (Cools.isEmpty(barcode11)){
- if (staProtocol.isAutoing()&& !staProtocol.isEmptyMk() && staProtocol.getWorkNo() == 9999 && staProtocol.isPakMk()){
- News.info(""+mark+" - 7"+" - 鎵爜澶辫触2 ===>> {}鍙锋潯鐮佹壂鎻忓櫒妫�娴嬫潯鐮佷俊鎭細{},绔欑偣:{}", inSta.getBarcode(), barcode11, inSta.getStaNo());
- staProtocol.setWorkNo((short) 9989);
- staProtocol.setStaNo(inSta.getBackSta().shortValue());
- devpThread.setPakMk(staProtocol.getSiteId(), false);
- MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol));
- // led 寮傚父鏄剧ず
- if (ledThread != null) {
- String errorMsg = "鎵爜澶辫触锛岃閲嶈瘯";
- MessageQueue.offer(SlaveType.Led, inSta.getLed(), new Task(5, errorMsg));
- }
- continue;
- }
- }
- if (staProtocol.isAutoing() && staProtocol.isInEnable()
- && !staProtocol.isEmptyMk() && staProtocol.getWorkNo() > 9990
- && staProtocol.getWorkNo()!=9999 && staProtocol.getWorkNo()!=9992 && staProtocol.getWorkNo()!=0
- && staProtocol.isPakMk()) {// && !Cools.isEmpty(barcode)) {
+
+ if (staProtocol.isAutoing()
+ && staProtocol.isInEnable()
+ && !staProtocol.isEmptyMk()
+ && staProtocol.getWorkNo() == 9999
+ && staProtocol.isPakMk()) {
News.warnNoLog(""+mark+" - 0"+" - 寮�濮嬫墽琛�");
-// try {
-// Thread.sleep(300);
-// }catch (Exception e){}
String barcode = barcodeThread.getBarcode();
if(!Cools.isEmpty(barcode)) {
News.info(""+mark+" - 1"+" - {}鍙锋潯鐮佹壂鎻忓櫒妫�娴嬫潯鐮佷俊鎭細{}", inSta.getBarcode(), barcode);
if("NG".endsWith(barcode) || "NoRead".equals(barcode) || "empty".equals(barcode)) {
- staProtocol.setWorkNo((short) 9992);
- staProtocol.setStaNo(inSta.getBackSta().shortValue());
- devpThread.setPakMk(staProtocol.getSiteId(), false);
- MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol));
-
+// staProtocol.setWorkNo((short) 9992);
+// staProtocol.setStaNo(inSta.getBackSta().shortValue());
+// devpThread.setPakMk(staProtocol.getSiteId(), false);
+// MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol));
News.info(""+mark+" - 2"+" - 鎵爜澶辫触1 ===>> {}鍙锋潯鐮佹壂鎻忓櫒妫�娴嬫潯鐮佷俊鎭細{},绔欑偣:{}", inSta.getBarcode(), barcode, inSta.getStaNo());
// led 寮傚父鏄剧ず
if (ledThread != null) {
@@ -170,10 +147,10 @@
continue;
}
} else {
- staProtocol.setWorkNo((short) 9992);
- staProtocol.setStaNo(inSta.getBackSta().shortValue());
- devpThread.setPakMk(staProtocol.getSiteId(), false);
- MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol));
+// staProtocol.setWorkNo((short) 9992);
+// staProtocol.setStaNo(inSta.getBackSta().shortValue());
+// devpThread.setPakMk(staProtocol.getSiteId(), false);
+// MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol));
News.info(""+mark+" - 3"+" - 鎵爜澶辫触2 ===>> {}鍙锋潯鐮佹壂鎻忓櫒妫�娴嬫潯鐮佷俊鎭細{},绔欑偣:{}", inSta.getBarcode(), barcode, inSta.getStaNo());
// led 寮傚父鏄剧ず
@@ -195,13 +172,13 @@
}
if (wrkMast != null) {
News.error(""+mark+" - 4"+" - 宸ヤ綔妗d腑宸插瓨鍦ㄨ绔欑姸鎬佷负锛� 2.璁惧涓婅蛋 锛夌殑鏁版嵁,宸ヤ綔鍙�={}", wrkMast.getWrkNo());
- staProtocol.setWorkNo((short)9992);
- staProtocol.setStaNo(inSta.getBackSta().shortValue());
- devpThread.setPakMk(staProtocol.getSiteId(), false);
- boolean result = MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol));
- if (!result) {
- throw new CoolException("鏇存柊plc绔欑偣淇℃伅澶辫触");
- }
+// staProtocol.setWorkNo((short)9992);
+// staProtocol.setStaNo(inSta.getBackSta().shortValue());
+// devpThread.setPakMk(staProtocol.getSiteId(), false);
+// boolean result = MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol));
+// if (!result) {
+// throw new CoolException("鏇存柊plc绔欑偣淇℃伅澶辫触");
+// }
// led 寮傚父鏄剧ず
if (ledThread != null) {
@@ -229,9 +206,13 @@
if (jsonObject.getInteger("code").equals(200)) {
StartupDto dto = jsonObject.getObject("data", StartupDto.class);
+ LocMast locMast = locMastService.selectOne(new EntityWrapper<LocMast>()
+ .eq("loc_no", dto.getLocNo()));
+
barcodeThread.setBarcode("");
staProtocol.setWorkNo(dto.getWorkNo().shortValue());
staProtocol.setStaNo(dto.getStaNo().shortValue());
+ staProtocol.setPalletSize(locMast.getLocType2());
devpThread.setPakMk(staProtocol.getSiteId(), false);
boolean result = MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol));
if (!result) {
@@ -255,13 +236,13 @@
}
} else {
News.error(""+mark+" - 5"+" - 璇锋眰鎺ュ彛澶辫触锛侊紒锛乽rl锛歿}锛況equest锛歿}锛況esponse锛歿}", wmsUrl + "/rpc/pakin/loc/v1", JSON.toJSONString(param), response);
- staProtocol.setWorkNo((short)9992);
- staProtocol.setStaNo(inSta.getBackSta().shortValue());
- devpThread.setPakMk(staProtocol.getSiteId(), false);
- boolean result = MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol));
- if (!result) {
- throw new CoolException("鏇存柊plc绔欑偣淇℃伅澶辫触");
- }
+// staProtocol.setWorkNo((short)9992);
+// staProtocol.setStaNo(inSta.getBackSta().shortValue());
+// devpThread.setPakMk(staProtocol.getSiteId(), false);
+// boolean result = MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol));
+// if (!result) {
+// throw new CoolException("鏇存柊plc绔欑偣淇℃伅澶辫触");
+// }
// led 寮傚父鏄剧ず
if (ledThread != null) {
@@ -305,17 +286,15 @@
staProtocol = staProtocol.clone();
}
-// // 鍏ュ嚭搴撴ā寮忓垽鏂�
- if (inSta.getStaNo() == 203 && devpThread.ioModeOf2F != IoModeType.PAKIN_MODE) {
- continue;
- }
-
// 鍒ゆ柇鏄惁婊¤冻鍏ュ簱鏉′欢
if (!staProtocol.isLoading()){
continue;
}
- if (staProtocol.isAutoing() && staProtocol.isInEnable()
- && !staProtocol.isEmptyMk() && (staProtocol.getWorkNo() == 0 || staProtocol.getWorkNo() == 9999)
+
+ if (staProtocol.isAutoing()
+ && staProtocol.isInEnable()
+ && !staProtocol.isEmptyMk()
+ && staProtocol.getWorkNo() > 0
&& staProtocol.isPakMk()) {
News.warnNoLog(""+mark+" - 0"+" - 寮�濮嬫墽琛�");
// 鍒ゆ柇閲嶅宸ヤ綔妗�
@@ -360,21 +339,6 @@
for (DevpSlave devp : slaveProperties.getDevp()) {
// 閬嶅巻鎷f枡鍏ュ簱鍙�
for (DevpSlave.Sta pickSta : devp.getPickSta()) {
- // 鑾峰彇鏉$爜鎵弿浠俊鎭�
- BarcodeThread barcodeThread = (BarcodeThread) SlaveConnection.get(SlaveType.Barcode, pickSta.getBarcode());
- if (barcodeThread == null) {
- continue;
- }
- String barcode = barcodeThread.getBarcode();
- if(!Cools.isEmpty(barcode)) {
- News.info(""+mark+" - 1"+" - {}鍙锋潯鐮佹壂鎻忓櫒妫�娴嬫潯鐮佷俊鎭細{}", pickSta.getBarcode(), barcode);
- if("NG".endsWith(barcode) || "NoRead".equals(barcode)) {
- continue;
- }
- } else {
- continue;
- }
-
// 鑾峰彇鎷f枡鍏ュ簱绔欎俊鎭�
SiemensDevpThread devpThread = (SiemensDevpThread) SlaveConnection.get(SlaveType.Devp, devp.getId());
StaProtocol staProtocol = devpThread.getStation().get(pickSta.getStaNo());
@@ -384,11 +348,24 @@
staProtocol = staProtocol.clone();
}
-// // 鍏ュ嚭搴撴ā寮忓垽鏂�
-// if (devpThread.ioMode != IoModeType.PAKIN_MODE) { continue; }
-
if (staProtocol.isAutoing() && staProtocol.isLoading() && staProtocol.isInEnable() && staProtocol.isPakMk()) {
News.warnNoLog(""+mark+" - 0"+" - 寮�濮嬫墽琛�");
+
+ // 鑾峰彇鏉$爜鎵弿浠俊鎭�
+ BarcodeThread barcodeThread = (BarcodeThread) SlaveConnection.get(SlaveType.Barcode, pickSta.getBarcode());
+ if (barcodeThread == null) {
+ continue;
+ }
+ String barcode = barcodeThread.getBarcode();
+ if(!Cools.isEmpty(barcode)) {
+ News.info(""+mark+" - 1"+" - {}鍙锋潯鐮佹壂鎻忓櫒妫�娴嬫潯鐮佷俊鎭細{}", pickSta.getBarcode(), barcode);
+ if("NG".endsWith(barcode) || "NoRead".equals(barcode)) {
+ continue;
+ }
+ } else {
+ continue;
+ }
+
WrkMast wrkMast = wrkMastMapper.selectPickStep(barcode);
// WrkMast wrkMast = wrkMastMapper.selectPakInStep3(staProtocol.getWorkNo().intValue());
if (wrkMast == null) {
diff --git a/src/main/java/com/zy/asrs/utils/Utils.java b/src/main/java/com/zy/asrs/utils/Utils.java
index b5cf43c..e82cac2 100644
--- a/src/main/java/com/zy/asrs/utils/Utils.java
+++ b/src/main/java/com/zy/asrs/utils/Utils.java
@@ -87,14 +87,11 @@
*/
public static String getShallowLoc(SlaveProperties slaveProperties, String deepLoc) {
int row = getRow(deepLoc);
-// int remainder = (int) Arith.remainder(row, slaveProperties.getGroupCount());
- int shallowRow ;
- if(row==31){
- shallowRow = row + 1;
- }else if(row==34){
- shallowRow = row - 1;
+ int shallowRow = row;
+ if (slaveProperties.getDoubleLocsLeft().contains(row)) {
+ shallowRow = (row + 1);
}else {
- return null;
+ shallowRow = (row - 1);
}
return zerofill(String.valueOf(shallowRow), 2) + deepLoc.substring(2);
}
@@ -103,8 +100,13 @@
* 鑾峰彇 娣卞簱浣嶆帓瀵瑰簲鐨勬祬搴撲綅鎺�
*/
public static Integer getShallowRow(SlaveProperties slaveProperties, Integer deepRow) {
- int remainder = (int) Arith.remainder(deepRow, slaveProperties.getGroupCount());
- return remainder == 1 ? (deepRow + 1) : (deepRow - 1);
+ int shallowRow = deepRow;
+ if (slaveProperties.getDoubleLocsLeft().contains(deepRow)) {
+ shallowRow = (deepRow + 1);
+ }else {
+ shallowRow = (deepRow - 1);
+ }
+ return shallowRow;
}
/**
@@ -112,16 +114,11 @@
*/
public static String getDeepLoc(SlaveProperties slaveProperties, String shallowLoc) {
int row = getRow(shallowLoc);
- int targetRow;
- switch (row){
- case 32:
- targetRow = 31;
- break;
- case 33:
- targetRow = 34;
- break;
- default:
- throw new RuntimeException(shallowLoc + "涓嶆槸娴呭簱浣嶏紝绯荤粺绻佸繖");
+ int targetRow = row;
+ if (slaveProperties.getShallowLocsLeft().contains(row)) {
+ targetRow = (row - 1);
+ } else if (slaveProperties.getShallowLocsRight().contains(row)) {
+ targetRow = (row + 1);
}
return zerofill(String.valueOf(targetRow), 2) + shallowLoc.substring(2);
}
@@ -130,14 +127,11 @@
* 鑾峰彇 娴呭簱浣嶆帓瀵瑰簲鐨勬繁搴撲綅鎺�
*/
public static Integer getDeepRow(SlaveProperties slaveProperties, Integer shallowRow) {
-// int remainder = (int) Arith.remainder(shallowRow, slaveProperties.getGroupCount());
- int targetRow;
- if (shallowRow == 32) {
- targetRow = shallowRow - 1;
- } else if (shallowRow == 33) {
- targetRow = shallowRow + 1;
- } else {
- throw new RuntimeException(shallowRow + "涓嶆槸娴呭簱浣嶆帓锛岀郴缁熺箒蹇�");
+ int targetRow = shallowRow;
+ if (slaveProperties.getShallowLocsLeft().contains(shallowRow)) {
+ targetRow = (shallowRow - 1);
+ } else if (slaveProperties.getShallowLocsRight().contains(shallowRow)) {
+ targetRow = (shallowRow + 1);
}
return targetRow;
}
diff --git a/src/main/java/com/zy/core/properties/SlaveProperties.java b/src/main/java/com/zy/core/properties/SlaveProperties.java
index b2e19a4..7198dea 100644
--- a/src/main/java/com/zy/core/properties/SlaveProperties.java
+++ b/src/main/java/com/zy/core/properties/SlaveProperties.java
@@ -28,6 +28,16 @@
private List<Integer> doubleLocs = new ArrayList<>();
+ // 宸︽繁搴撲綅鎺掑彿
+ private List<Integer> doubleLocsLeft = new ArrayList<>();
+ // 鍙虫繁搴撲綅鎺掑彿
+ private List<Integer> doubleLocsRight = new ArrayList<>();
+
+ // 宸︽祬搴撲綅鎺掑彿
+ private List<Integer> shallowLocsLeft = new ArrayList<>();
+ // 鍙虫祬搴撲綅鎺掑彿
+ private List<Integer> shallowLocsRight = new ArrayList<>();
+
private int groupCount;
private List<CrnSlave> crn = new ArrayList<>();
--
Gitblit v1.9.1