From b791daa70e38b4e426d2b065da5bd317fe8c91f3 Mon Sep 17 00:00:00 2001 From: 野心家 <1051256694@qq.com> Date: 星期二, 27 五月 2025 11:18:46 +0800 Subject: [PATCH] #ZH --- src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java | 133 +++++++++++++++++++++++++------------------ 1 files changed, 77 insertions(+), 56 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 5f596f5..2b44c8e 100644 --- a/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java +++ b/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java @@ -121,7 +121,7 @@ staProtocol = staProtocol.clone(); } Integer workNo = staProtocol.getWorkNo(); - if (workNo!=9998){ + if (workNo!=9998 && workNo!=9997){ continue; } Integer stano = staProtocol.getStaNo(); @@ -189,7 +189,7 @@ // 鍒ゆ柇鏄惁婊¤冻鍏ュ簱鏉′欢 if (staProtocol.isAutoing() && staProtocol.isLoading() && staProtocol.isInEnable() - && workNo == 9998 + && (workNo == 9998 || workNo == 9997) && staProtocol.isPakMk() && staProtocol.isPakMkWalk() ) { @@ -199,13 +199,14 @@ continue; } String barcode = barcodeThread.getBarcode(); - if (!Cools.isEmpty(barcode) && !barcode.equals("99999999")) { + if (!Cools.isEmpty(barcode) && !barcode.equals("99999999") && !barcode.equals("000000")) { // 璇锋眰wms鎺ュ彛锛岃幏鍙栧伐浣滃彿鍜岀洰鏍囧簱浣� - ToWmsDTO toWmsDTO = new ToWmsDTO(staProtocol.getSiteId(),staProtocol.getGrossWt(),barcode, 0); + ToWmsDTO toWmsDTO = new ToWmsDTO(staProtocol.getSiteId(),staProtocol.getGrossWt(),barcode, workNo == 9998? 0 : 1); + TaskWrk taskWrk1 = taskWrkService.selectOne(new EntityWrapper<TaskWrk>().eq("barcode", barcode)); if (!Cools.isEmpty(taskWrk1)) { log.info("鎵樼洏鐮侊細" + barcode + "浠诲姟妗e瓨鍦�"); - if (taskWrk1.getIoType() == 1 && taskWrk1.getStartPoint().equals(staProtocol.getSiteId().toString())) { + if (taskWrk1.getIoType() == 1 && taskWrk1.getStatus() < 3 && 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())); @@ -215,6 +216,7 @@ } else { staProtocol.setWorkNo(taskWrk1.getWrkNo()); staProtocol.setStaNo(staProtocol.getSiteId()); + devpThread.setPakMkWalk(staProtocol.getSiteId(), false); MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol)); } } @@ -249,6 +251,7 @@ staProtocol.setWorkNo(9999); staProtocol.setStaNo(inSta.getBackSta()); devpThread.setPakMk(staProtocol.getSiteId(), false); + devpThread.setPakMkWalk(staProtocol.getSiteId(), false); MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol)); continue; } @@ -264,7 +267,7 @@ ); log.info("鍏ュ簱璇锋眰鍙傛暟{}" + JSON.toJSONString(toWmsDTO)); log.info("鍏ュ簱璇锋眰杩斿洖鍙傛暟{}" + JSON.toJSONString(response)); - if (jsonObject.getInteger("code").equals(200)) { + if (!Cools.isEmpty(jsonObject.getInteger("code")) && jsonObject.getInteger("code").equals(200)) { try { devpThread.setPakMk(staProtocol.getSiteId(), false); } catch (Exception e) { @@ -384,9 +387,21 @@ && staProtocol.isPakMk() && staProtocol.isPakMkWalk() ) { + // 鑾峰彇鏉$爜鎵弿浠俊鎭� + BarcodeThread barcodeThread = (BarcodeThread) SlaveConnection.get(SlaveType.Barcode, inSta.getBarcode()); + if (barcodeThread == null) { + continue; + } + String barcode = barcodeThread.getBarcode(); + if (Cools.isEmpty(barcode) || barcode.equals("0") || barcode.equals("000000")) { + staProtocol.setWorkNo(9999); + staProtocol.setStaNo(inSta.getBackSta()); + devpThread.setPakMk(staProtocol.getSiteId(), false); + MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol)); + continue; + } // 璇锋眰wms鎺ュ彛锛岃幏鍙栧伐浣滃彿鍜岀洰鏍囧簱浣� - ToWmsDTO toWmsDTO = new ToWmsDTO("", staProtocol.getSiteId(), 1); - + ToWmsDTO toWmsDTO = new ToWmsDTO(staProtocol.getSiteId(),staProtocol.getGrossWt(),barcode, 1); HashMap<String, Object> headParam = new HashMap<>(); headParam.put("Content-Type", "application/json"); String response; @@ -431,7 +446,7 @@ ); log.info("鍏ュ簱璇锋眰鍙傛暟{}" + JSON.toJSONString(toWmsDTO)); log.info("鍏ュ簱璇锋眰杩斿洖鍙傛暟{}" + JSON.toJSONString(response)); - if (jsonObject.getInteger("code").equals(200)) { + if (!Cools.isEmpty(jsonObject.getInteger("code")) && jsonObject.getInteger("code").equals(200)) { try { devpThread.setPakMk(staProtocol.getSiteId(), false); } catch (Exception e) { @@ -494,7 +509,7 @@ if (!Cools.isEmpty(taskWrk1)) { log.info("鎵樼洏鐮侊細" + barcode + "浠诲姟妗e瓨鍦�"); - if (taskWrk1.getIoType() == 1 && taskWrk1.getStartPoint().equals(staProtocol.getSiteId().toString())) { + if (taskWrk1.getIoType() == 1 && taskWrk1.getStatus() < 3 && 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())); @@ -792,7 +807,7 @@ // //寮�濮嬭繍琛� // String response = CrnStartRunning(taskWrk); // JSONObject jsonObject = JSON.parseObject(response); -// if (jsonObject.getInteger("code").equals(200)) { +// if (!Cools.isEmpty(jsonObject.getInteger("code")) && jsonObject.getInteger("code").equals(200)) { // // }else { // log.error("鍏ュ簱寮�濮嬭繍琛岄�氳澶辫触,"+jsonObject.get("msg")); @@ -813,7 +828,7 @@ crnCommand.setDestinationPosX(Utils.getRowShort(taskWrk.getTargetPoint())); // 鐩爣搴撲綅鍒� crnCommand.setDestinationPosY(Utils.getBayShort(taskWrk.getTargetPoint())); // 鐩爣搴撲綅灞� crnCommand.setDestinationPosZ(Utils.getLevShort(taskWrk.getTargetPoint())); // 鐩爣搴撲綅鎺� - crnCommand.setCommand((short) 1); +// crnCommand.setCommand((short) 1); if (!MessageQueue.offer(SlaveType.Crn, slave.getId(), new Task(2, crnCommand))) { log.error("鍫嗗灈鏈哄懡浠ょ敓鎴愬け璐ワ紝鍫嗗灈鏈哄彿={}锛屼换鍔℃暟鎹�={}", taskWrk.getCrnNo(), JSON.toJSON(crnCommand)); throw new CoolException("鍫嗗灈鏈哄懡浠ょ敓鎴愬け璐�"); @@ -1041,7 +1056,7 @@ crnCommand.setDestinationPosX(Utils.getRowShort(taskWrk.getTargetPoint())); // 鐩爣搴撲綅鎺� crnCommand.setDestinationPosY(Utils.getBayShort(taskWrk.getTargetPoint())); // 鐩爣搴撲綅鍒� crnCommand.setDestinationPosZ(Utils.getLevShort(taskWrk.getTargetPoint())); // 鐩爣搴撲綅灞� - crnCommand.setCommand((short) 1); +// crnCommand.setCommand((short) 1); if (!MessageQueue.offer(SlaveType.Crn, slave.getId(), new Task(2, crnCommand))) { log.error("鍫嗗灈鏈哄懡浠や笅鍙戝け璐ワ紝鍫嗗灈鏈哄彿={}锛屼换鍔℃暟鎹�={}", taskWrk.getCrnNo(), JSON.toJSON(crnCommand)); } else { @@ -1389,7 +1404,10 @@ return false; } if (!rgvProtocol.getModeType().equals(RgvModeType.AUTO) || rgvProtocol.getRgvPos().equals(0L) || rgvTaskProtocol.getAvoid() == -1 - || (!rgvProtocol.getStatusType().equals(RgvStatusType.IDLE) && !rgvProtocol.getStatusType().equals(RgvStatusType.ROAM))) { + || ((!rgvProtocol.getStatusType().equals(RgvStatusType.IDLE) || (Math.abs(rgvProtocol.getRgvPos() - rgvProtocol.getRgvPosDestination())>100)) && !rgvProtocol.getStatusType().equals(RgvStatusType.ROAM))) { + return false; + } + if (rgvProtocol.getLoaded()==1){ return false; } RgvProtocol rgvProtocolOther = RgvStatusCache.getRgvStatus(slave.getOtherId()); @@ -1413,7 +1431,7 @@ return false; } if (!rgvProtocol.getModeType().equals(RgvModeType.AUTO) || rgvProtocol.getRgvPos().equals(0L) || rgvTaskProtocol.getAvoid() == -1 - || (!rgvProtocol.getStatusType().equals(RgvStatusType.IDLE) && !rgvProtocol.getStatusType().equals(RgvStatusType.ROAM))) { + || ((!rgvProtocol.getStatusType().equals(RgvStatusType.IDLE) || (Math.abs(rgvProtocol.getRgvPos() - rgvProtocol.getRgvPosDestination())>100)) && !rgvProtocol.getStatusType().equals(RgvStatusType.ROAM))) { return false; } @@ -1430,7 +1448,7 @@ return false; } if (!rgvProtocol.getModeType().equals(RgvModeType.AUTO) || rgvProtocol.getRgvPos().equals(0L) || rgvTaskProtocol.getAvoid() == -1 - || (!rgvProtocol.getStatusType().equals(RgvStatusType.IDLE) && !rgvProtocol.getStatusType().equals(RgvStatusType.ROAM))) { + || ((!rgvProtocol.getStatusType().equals(RgvStatusType.IDLE) || (Math.abs(rgvProtocol.getRgvPos() - rgvProtocol.getRgvPosDestination())>100)) && !rgvProtocol.getStatusType().equals(RgvStatusType.ROAM))) { return false; } RgvProtocol rgvProtocolOther = RgvStatusCache.getRgvStatus(slave.getOtherId()); @@ -1526,46 +1544,6 @@ Long[][] avoidedRange = new TrackRangeUtils().avoidRangeArr(rgvSlave, trackEntireLength, trackBenchmark, avoidDistance); List<Integer> belongToRange = RouteUtils.SortNearby(RouteUtils.belongToRange(rangeList, avoidedRange[0], basDevpPositions), rgvProtocol.RgvPos, basDevpPositions); - for (Integer staNoNow : belongToRange) { - 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) { - // 绛涢�夎寖鍥村唴鍙栬揣浠诲姟 - for (Integer staNoNow : belongToRange) { - 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 rgvStnOut : rgvSlave.getRgvOutSta()) { - if (rgvStnOut.getStaNo().equals(outStaNo)) { - sign = taskGenerate(rgvSlave, rgvStn, 0); - break; - } - } - } - break; - } - } - if (sign) { - break; - } - } - } if (!sign && staList.size()==1){ if (rgvOtherIDLEOther(rgvSlave)){ if (!rgvOtherIDLE(rgvSlave,staList.get(0))){ @@ -1593,6 +1571,49 @@ } } + if(!sign){ + for (Integer staNoNow : belongToRange) { + 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) { + // 绛涢�夎寖鍥村唴鍙栬揣浠诲姟 + for (Integer staNoNow : belongToRange) { + 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 rgvStnOut : rgvSlave.getRgvOutSta()) { + if (rgvStnOut.getStaNo().equals(outStaNo)) { + sign = taskGenerate(rgvSlave, rgvStn, 0); + break; + } + } + } + break; + } + } + if (sign) { + break; + } + } + } + if (!sign) { for (Integer staNoNow : rangeList) { for (RgvSlave.RgvStn rgvStn : rgvSlave.getRgvInSta()) { -- Gitblit v1.9.1