From fe783a3ae2295dba85fd9775b610eb13e4e41f00 Mon Sep 17 00:00:00 2001 From: cpT <1@123> Date: 星期二, 24 六月 2025 22:36:37 +0800 Subject: [PATCH] #改造 --- src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java | 270 +++++++++++++++++++++++++++++++++++++++++++++++++----- 1 files changed, 245 insertions(+), 25 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..c22aa53 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); @@ -960,8 +979,11 @@ } // 鍒ゆ柇鍫嗗灈鏈哄嚭搴撶珯鐘舵�� - if (staProtocol.isAutoing() && !staProtocol.isLoading() && staDetl.getCanouting() != null && staDetl.getCanouting().equals("Y") - && staProtocol.getWorkNo() == 0 && staProtocol.isOutEnable()) { + if (staProtocol.isAutoing() && staDetl.getCanouting() != null && staDetl.getCanouting().equals("Y")) { + +// // 鍒ゆ柇鍫嗗灈鏈哄嚭搴撶珯鐘舵�� +// if (staProtocol.isAutoing() && !staProtocol.isLoading() && staDetl.getCanouting() != null && staDetl.getCanouting().equals("Y") +// && staProtocol.getWorkNo() == 0 && staProtocol.isOutEnable()) { // 鍛戒护涓嬪彂鍖� -------------------------------------------------------------------------- // 鍫嗗灈鏈烘帶鍒惰繃婊� @@ -1063,6 +1085,8 @@ if (staProtocol.isOutEnable()){ CrnErrCache.updateCrnErr(crnProtocol.getCrnNo(), "娌℃湁鍙嚭"); } + } else { + CrnErrCache.updateCrnErr(crnProtocol.getCrnNo(), "鍑哄簱绔欑偣锛氶潪鑷姩"); } } } @@ -1549,9 +1573,15 @@ } if (rgvProtocolOther.statusEnable) { BasDevpPosition basDevpPosition = basDevpPositionService.selectOne(new EntityWrapper<BasDevpPosition>().eq("DEV_NO", staNo)); - if (Math.abs(basDevpPosition.getPlcPosition()-rgvProtocol.getRgvPos()) + long abs = Math.abs(Math.abs(basDevpPosition.getPlcPosition() - rgvProtocol.getRgvPos()) + - + Math.abs(basDevpPosition.getPlcPosition() - rgvProtocolOther.getRgvPos())); + if (abs<100){ + return true; + } + if (Math.abs(basDevpPosition.getPlcPosition() - rgvProtocol.getRgvPos()) >= - Math.abs(basDevpPosition.getPlcPosition()-rgvProtocolOther.getRgvPos())){ + Math.abs(basDevpPosition.getPlcPosition() - rgvProtocolOther.getRgvPos())){ return false; } } @@ -1575,6 +1605,12 @@ } if (rgvProtocolOther.statusEnable) { BasDevpPosition basDevpPosition = basDevpPositionService.selectOne(new EntityWrapper<BasDevpPosition>().eq("DEV_NO", staNo)); + long abs = Math.abs(Math.abs(basDevpPosition.getPlcPosition() - rgvProtocol.getRgvPos()) + - + Math.abs(basDevpPosition.getPlcPosition() - rgvProtocolOther.getRgvPos())); + if (abs<100){ + return true; + } if (Math.abs(basDevpPosition.getPlcPosition()-rgvProtocol.getRgvPos()) >= Math.abs(basDevpPosition.getPlcPosition()-rgvProtocolOther.getRgvPos())){ @@ -1598,7 +1634,85 @@ && 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; + } + } else if (staProtocol.isAutoing() && staProtocol.getWorkNo() == 0 && !staProtocol.isLoading()){ + if (inSta.isDirectionOther()){ + StaProtocol staProtocolOther = devpThread.getStation().get(inSta.getStaNoOther()); + if (staProtocolOther == null) { + return null; + } + // 鍒ゆ柇鏄惁婊¤冻鍙栬揣鏉′欢 + if (staProtocolOther.isAutoing() + && staProtocolOther.getWorkNo() != 0) { + TaskWrk taskWrkOther = taskWrkService.selectByWrkNo(staProtocolOther.getWorkNo()); + if (taskWrkOther != null) { + return taskWrkOther; + } + } } } return null; @@ -1664,6 +1778,8 @@ if (!sign && staList.size()==1){ if (rgvOtherIDLEOther(rgvSlave)){ if (!rgvOtherIDLE(rgvSlave,staList.get(0))){ + System.out.println("绌洪棽灏辫繎璺宠繃==="+rgvSlave.getId()+"==="); + sign=true; } } @@ -1675,6 +1791,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 +1814,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 +1838,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 +1858,36 @@ 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 +1895,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 +1908,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 +1946,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 +1962,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