From 08d8933d3fe66fb83f1e2e7e4038e62b3c5143e1 Mon Sep 17 00:00:00 2001
From: cpT <1@123>
Date: 星期四, 19 六月 2025 11:10:43 +0800
Subject: [PATCH] #改造
---
src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java | 232 ++++++++++++++++++++++++++++++++++++++++++++++++++++-----
1 files changed, 211 insertions(+), 21 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 f9b5f6e..5881a59 100644
--- a/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
@@ -200,6 +200,25 @@
continue;
}
String barcode = barcodeThread.getBarcode();
+ int signI = 0;
+ while (signI<6){
+ Thread.sleep(200);
+ signI = signI +1;
+ // 鑾峰彇鏉$爜鎵弿浠俊鎭�
+ if (Cools.isEmpty(barcode) || barcode.equals("000000")) {
+ devpThread.setErrorDev(staProtocol.getSiteId(), "寰幆娆℃暟锛�"+signI+"锛涙壂鐮佸�硷細"+barcode);
+
+ BarcodeThread barcodeThreadO = (BarcodeThread) SlaveConnection.get(SlaveType.Barcode, inSta.getBarcode());
+ if (barcodeThreadO == null) {
+ continue;
+ }
+ barcode = barcodeThreadO.getBarcode();
+ } else {
+ break;
+ }
+ }
+
+
if (!Cools.isEmpty(barcode) && !barcode.equals("99999999") && !barcode.equals("000000")) {
// 璇锋眰wms鎺ュ彛锛岃幏鍙栧伐浣滃彿鍜岀洰鏍囧簱浣�
ToWmsDTO toWmsDTO = new ToWmsDTO(staProtocol.getSiteId(),staProtocol.getGrossWt(),barcode, workNo == 9998? 0 : 1);
@@ -1598,6 +1617,70 @@
&& staProtocol.getWorkNo() != 0) {
TaskWrk taskWrk = taskWrkService.selectByWrkNo(staProtocol.getWorkNo());
if (taskWrk != null) {
+ Integer stano = staProtocol.getStaNo();
+
+ if (staProtocol.getSiteId() == 1004 || staProtocol.getSiteId()==1020){
+
+ // 灏哄妫�娴嬪紓甯�
+ boolean back = false;
+ String errMsg = "-";
+ if (staProtocol.getGrossWt()>=600){
+ errMsg = "瓒呴噸";
+ back = true;
+ }
+ if (staProtocol.isFrontErr()) {
+ errMsg = "鍓嶈秴闄�";
+ back = true;
+ }
+ if (!back && staProtocol.isBackErr()) {
+ errMsg = "鍚庤秴闄�";
+ back = true;
+ }
+ if (!back && staProtocol.isHighErr()) {
+ errMsg = "楂樿秴闄�";
+ back = true;
+ }
+ if (!back && staProtocol.isLeftErr()) {
+ errMsg = "宸﹁秴闄�";
+ back = true;
+ }
+ if (!back && staProtocol.isRightErr()) {
+ errMsg = "鍙宠秴闄�";
+ back = true;
+ }
+ if (!back && staProtocol.isWeightErr()) {
+ errMsg = "瓒呴噸";
+ back = true;
+ }
+ if (!back && staProtocol.isBarcodeErr()) {
+ errMsg = "鎵爜澶辫触";
+ back = true;
+ }
+ // 閫�鍥�
+ if (back) {
+ if (stano.equals(staProtocol.getStaNo() + 1)) {
+ return null;
+ }
+ if (!staProtocol.isPakMk()) {
+ return null;
+ }
+ System.out.println("鎵爜鍏ュ簱澶辫触锛寋"+inSta.getStaNo()+"}鍏ュ簱绔欏洜{"+errMsg+"}寮傚父锛屾墭鐩樺凡琚��鍥�");
+// News.warn("鎵爜鍏ュ簱澶辫触锛寋}鍏ュ簱绔欏洜{}寮傚父锛屾墭鐩樺凡琚��鍥�", inSta.getStaNo(), errMsg);
+ staProtocol.setWorkNo(9999);
+ staProtocol.setStaNo(staProtocol.getStaNo()+1);
+ devpThread.setPakMk(staProtocol.getSiteId(), false);
+ devpThread.setErrorDev(staProtocol.getSiteId(), errMsg);
+ MessageQueue.offer(SlaveType.Devp, 1, new Task(2, staProtocol));
+ try{
+ taskWrk.setMemo(errMsg);//灏嗛敊璇爜瀛樺叆澶囨敞瀛楁杩涜灞曠ず
+ taskWrk.setModiTime(new Date());
+ taskWrkMapper.updateById(taskWrk);
+ } catch (Exception e){
+ devpThread.setErrorDev(staProtocol.getSiteId(), errMsg+"寮傚父淇℃伅淇濆瓨宸ヤ綔妗f澶辫触锛�");
+ }
+ return null;
+ }
+ }
return taskWrk;
}
}
@@ -1664,6 +1747,8 @@
if (!sign && staList.size()==1){
if (rgvOtherIDLEOther(rgvSlave)){
if (!rgvOtherIDLE(rgvSlave,staList.get(0))){
+ System.out.println("绌洪棽灏辫繎璺宠繃==="+rgvSlave.getId()+"===");
+
sign=true;
}
}
@@ -1675,6 +1760,8 @@
Integer outStaNo = BarcodeUtils.getOutStaNo(taskWrk.getOriginTargetPoint());
for (RgvSlave.RgvStn rgvSuper : rgvSlave.getRgvSuperSta()){
if (rgvSuper.getStaNo().equals(outStaNo)){
+ System.out.println("绌洪棽灏辫繎璺宠繃鍚庡洜鏈�杩滃啀娆℃墽琛�==="+rgvSlave.getId()+"===");
+
sign=false;
break;
}
@@ -1696,6 +1783,9 @@
if (taskWrk != null) {
BasDevpPosition basDevpPosition = basDevpPositionService.selectOne(new EntityWrapper<BasDevpPosition>().eq("DEV_NO", BarcodeUtils.getOutStaNo(taskWrk.getOriginTargetPoint())));
if (RouteUtils.CheckIfItIsWithinTheRange(rangeList, basDevpPosition.getPlcPosition(), basDevpPositions, itSmall)) {
+ System.out.println("鍏ㄨ寖鍥存墽琛�==="+rgvSlave.getId()+"==="+taskWrk);
+ System.out.println("鍏ㄨ寖鍥存墽琛�==="+rgvSlave.getId()+"==="+JSON.toJSONString(belongToRange));
+
sign = taskGenerate(rgvSlave, rgvStn, 0);
}
}
@@ -1717,6 +1807,9 @@
Integer outStaNo = BarcodeUtils.getOutStaNo(taskWrk.getOriginTargetPoint());
for (RgvSlave.RgvStn rgvStnOut : rgvSlave.getRgvOutSta()) {
if (rgvStnOut.getStaNo().equals(outStaNo)) {
+ System.out.println("绛涢�夎寖鍥村唴鍙栬揣浠诲姟==="+rgvSlave.getId()+"==="+taskWrk);
+ System.out.println("绛涢�夎寖鍥村唴鍙栬揣浠诲姟==="+rgvSlave.getId()+"==="+JSON.toJSONString(belongToRange));
+
sign = taskGenerate(rgvSlave, rgvStn, 0);
break;
}
@@ -1734,12 +1827,37 @@
if (!sign && staList.size()==1){
if (rgvOtherIDLEOther2(rgvSlave)){
if (!rgvOtherIDLE2(rgvSlave,staList.get(0))){
+ System.out.println("杩愯灏辫繎璺宠繃==="+rgvSlave.getId()+"===");
+
sign=true;
+ }
+ }
+ if (sign){
+ for (RgvSlave.RgvStn rgvStn : rgvSlave.getRgvInSta()) {
+ if (rgvStn.getStaNo().equals(staList.get(0))) {
+ TaskWrk taskWrk = deviceDetection(rgvStn);
+ if (taskWrk != null) {
+ Integer outStaNo = BarcodeUtils.getOutStaNo(taskWrk.getOriginTargetPoint());
+ for (RgvSlave.RgvStn rgvSuper : rgvSlave.getRgvSuperSta()){
+ if (rgvSuper.getStaNo().equals(outStaNo)){
+ System.out.println("杩愯灏辫繎璺宠繃鍚庡洜鏈�杩滃啀娆℃墽琛�==="+rgvSlave.getId()+"===");
+
+ sign=false;
+ break;
+ }
+ }
+ } else {
+ return;
+ }
+ break;
+ }
}
}
}
- if (!sign) {
+
+
+ if (!sign && staList.size()>1) {
for (Integer staNoNow : rangeList) {
for (RgvSlave.RgvStn rgvStn : rgvSlave.getRgvInSta()) {
if (rgvStn.getStaNo().equals(staNoNow)) {
@@ -1747,6 +1865,9 @@
if (taskWrk != null) {
BasDevpPosition basDevpPosition = basDevpPositionService.selectOne(new EntityWrapper<BasDevpPosition>().eq("DEV_NO", BarcodeUtils.getOutStaNo(taskWrk.getOriginTargetPoint())));
if (RouteUtils.CheckIfItIsWithinTheRange(rangeList, basDevpPosition.getPlcPosition(), basDevpPositions, itSmall)) {
+ System.out.println("绛涢�夊崐杈硅寖鍥村唴浠诲姟==="+rgvSlave.getId()+"==="+taskWrk);
+ System.out.println("绛涢�夊崐杈硅寖鍥村唴浠诲姟==="+rgvSlave.getId()+"==="+JSON.toJSONString(belongToRange));
+
sign = taskGenerate(rgvSlave, rgvStn, 0);
}
}
@@ -1757,7 +1878,34 @@
break;
}
}
+ }else if (!sign && staList.size()==1){
+ BasDevpPosition basDevpPosition1 = basDevpPositionService.selectOne(new EntityWrapper<BasDevpPosition>().eq("DEV_NO", staList.get(0)));
+ if (Math.abs(basDevpPosition1.getPlcPosition()- rgvProtocol.getRgvPos())<rgvProtocol.getCarBodyJiaoMing()+rgvProtocol.getCarBodyKunPeng() + avoidDistance*2){
+ for (Integer staNoNow : rangeList) {
+ for (RgvSlave.RgvStn rgvStn : rgvSlave.getRgvInSta()) {
+ if (rgvStn.getStaNo().equals(staNoNow)) {
+ TaskWrk taskWrk = deviceDetection(rgvStn);
+ if (taskWrk != null) {
+ BasDevpPosition basDevpPosition = basDevpPositionService.selectOne(new EntityWrapper<BasDevpPosition>().eq("DEV_NO", BarcodeUtils.getOutStaNo(taskWrk.getOriginTargetPoint())));
+ if (RouteUtils.CheckIfItIsWithinTheRange(rangeList, basDevpPosition.getPlcPosition(), basDevpPositions, itSmall)) {
+ System.out.println("绛涢�夊崐杈硅寖鍥村唴浠诲姟==="+rgvSlave.getId()+"==="+taskWrk);
+ System.out.println("绛涢�夊崐杈硅寖鍥村唴浠诲姟==="+rgvSlave.getId()+"==="+JSON.toJSONString(belongToRange));
+
+ sign = taskGenerate(rgvSlave, rgvStn, 0);
+ }
+ }
+ break;
+ }
+ }
+ if (sign) {
+ break;
+ }
+ }
+ }
}
+
+
+
if (!sign && staList.size()>1) {
// 鍗婅竟鍖哄煙鍐呭彇璐т换鍔�
for (Integer staNoNow : rangeList) {
@@ -1768,6 +1916,9 @@
Integer outStaNo = BarcodeUtils.getOutStaNo(taskWrk.getOriginTargetPoint());
for (RgvSlave.RgvStn rgvStnOut : rgvSlave.getRgvOutSta()) {
if (rgvStnOut.getStaNo().equals(outStaNo)) {
+ System.out.println("绛涢�夊崐杈硅寖鍥村彇璐т换鍔�==="+rgvSlave.getId()+"==="+taskWrk);
+ System.out.println("绛涢�夊崐杈硅寖鍥村彇璐т换鍔�==="+rgvSlave.getId()+"==="+JSON.toJSONString(belongToRange));
+
sign = taskGenerate(rgvSlave, rgvStn, 0);
break;
}
@@ -1781,26 +1932,65 @@
}
}
}
-// if (!sign) {
-// // 鍗婅竟鍖哄煙鍐呮斁璐т换鍔�
-// for (Integer staNoNow : rangeListOther) {
-// for (RgvSlave.RgvStn rgvStn : rgvSlave.getRgvInSta()) {
-// if (rgvStn.getStaNo().equals(staNoNow)) {
-// TaskWrk taskWrk = deviceDetection(rgvStn);
-// if (taskWrk != null) {
-// BasDevpPosition basDevpPosition = basDevpPositionService.selectOne(new EntityWrapper<BasDevpPosition>().eq("DEV_NO", BarcodeUtils.getOutStaNo(taskWrk.getOriginTargetPoint())));
-// if (RouteUtils.CheckIfItIsWithinTheRange(rangeList, basDevpPosition.getPlcPosition(), basDevpPositions, itSmall)) {
-// sign = taskGenerate(rgvSlave, rgvStn, 0);
-// }
-// }
-// break;
-// }
-// }
-// if (sign) {
-// break;
-// }
-// }
-// }
+ if (!sign && staList.size()>1) {
+ for (Integer staNoNow : rangeListOther) {
+ for (RgvSlave.RgvStn rgvStn : rgvSlave.getRgvInSta()) {
+ if (rgvStn.getStaNo().equals(staNoNow)) {
+ TaskWrk taskWrk = deviceDetection(rgvStn);
+ if (taskWrk != null) {
+ Integer outStaNo = BarcodeUtils.getOutStaNo(taskWrk.getOriginTargetPoint());
+ for (RgvSlave.RgvStn rgvSuper : rgvSlave.getRgvSuperSta()){
+ if (rgvSuper.getStaNo().equals(outStaNo)){
+ System.out.println("鍥犳渶杩滄墽琛屽崐杈瑰尯鍩熷唴鏀捐揣浠诲姟==="+rgvSlave.getId()+"===");
+ BasDevpPosition basDevpPosition = basDevpPositionService.selectOne(new EntityWrapper<BasDevpPosition>().eq("DEV_NO", BarcodeUtils.getOutStaNo(taskWrk.getOriginTargetPoint())));
+ if (RouteUtils.CheckIfItIsWithinTheRange(rangeList, basDevpPosition.getPlcPosition(), basDevpPositions, itSmall)) {
+ sign = taskGenerate(rgvSlave, rgvStn, 0);
+ }
+ break;
+ }
+ }
+ }
+ break;
+ }
+ if (sign) {
+ break;
+ }
+ }
+ if (sign) {
+ break;
+ }
+ }
+
+ }else if (!sign && staList.size()==1){
+ for (Integer staNoNow : rangeList) {
+ for (RgvSlave.RgvStn rgvStn : rgvSlave.getRgvInSta()) {
+ if (rgvStn.getStaNo().equals(staNoNow)) {
+ TaskWrk taskWrk = deviceDetection(rgvStn);
+ if (taskWrk != null) {
+ Integer outStaNo = BarcodeUtils.getOutStaNo(taskWrk.getOriginTargetPoint());
+ for (RgvSlave.RgvStn rgvSuper : rgvSlave.getRgvSuperSta()){
+ if (rgvSuper.getStaNo().equals(outStaNo)){
+ System.out.println("鍥犳渶杩滄墽琛屽崐杈瑰尯鍩熷唴鏀捐揣浠诲姟==="+rgvSlave.getId()+"===");
+ BasDevpPosition basDevpPosition = basDevpPositionService.selectOne(new EntityWrapper<BasDevpPosition>().eq("DEV_NO", BarcodeUtils.getOutStaNo(taskWrk.getOriginTargetPoint())));
+ if (RouteUtils.CheckIfItIsWithinTheRange(rangeList, basDevpPosition.getPlcPosition(), basDevpPositions, itSmall)) {
+ sign = taskGenerate(rgvSlave, rgvStn, 0);
+ }
+ break;
+ }
+ }
+ }
+ break;
+ }
+ if (sign) {
+ break;
+ }
+ }
+ if (sign) {
+ break;
+ }
+ }
+
+ }
} else {
//鍙敤鍖哄煙灏辫繎鍙栬揣
//灏辫繎鎺掑簭
--
Gitblit v1.9.1