From a6480edc1d366bfeead1eb2784be13ae747e3f23 Mon Sep 17 00:00:00 2001 From: 1 <1@123> Date: 星期一, 12 五月 2025 17:12:24 +0800 Subject: [PATCH] # --- src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java | 127 +++++++++++++++++++++++++++++++++--------- 1 files changed, 100 insertions(+), 27 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 55a8c13..077784a 100644 --- a/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java +++ b/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java @@ -38,6 +38,7 @@ import org.springframework.transaction.interceptor.TransactionAspectSupport; import java.io.IOException; +import java.time.LocalDateTime; import java.util.*; import java.util.concurrent.ConcurrentHashMap; import java.util.stream.Collectors; @@ -463,7 +464,7 @@ // 鍒ゆ柇鏄惁婊¤冻鍏ュ簱鏉′欢 if (staProtocol.isAutoing() && staProtocol.isLoading() // && staProtocol.isInEnable() - && (workNo == 0 || (workNo>9000 && workNo<10000)) +// && (workNo == 0 || (workNo>9000 && workNo<10000)) && staProtocol.isPakMkWalk() ) { if (inSta.isBarcodeSign()){ @@ -653,13 +654,17 @@ continue; } + CrnSlave crnSlave = new CrnSlave(crn); + if (!crn.getId().equals(crnProtocol.getLaneNo())) { for (CrnSlave crnOther : slaveProperties.getCrn()) { if (crnOther.getId().equals(crnProtocol.getLaneNo())) { - crn.updateCrnInStn(crnOther); + crnSlave.updateCrnInStn(crnOther); } } } + + crn = crnSlave; // 搴撲綅绉昏浆 this.locToLoc(crn, crnProtocol); @@ -807,10 +812,13 @@ } try { HashMap<String, Object> headParam = new HashMap<>(); - headParam.put("taskNo", taskWrk.getTaskNo()); - headParam.put("status", taskWrk.getStatus()); - headParam.put("ioType", taskWrk.getIoTypeWms()); - headParam.put("barcode", taskWrk.getBarcode()); + headParam.put("taskNo",taskWrk.getTaskNo()); + headParam.put("taskStatus",taskWrk.getStatusWms()); + headParam.put("ioType",taskWrk.getIoTypeWms()); + headParam.put("barCode",taskWrk.getBarcode()); + headParam.put("reportTime", LocalDateTime.now()); + headParam.put("weight",taskWrk.getScWeight().doubleValue()); + String response; response = new HttpHandler.Builder() // .setHeaders(headParam) @@ -927,10 +935,13 @@ } try { HashMap<String, Object> headParam = new HashMap<>(); - headParam.put("taskNo", taskWrk.getTaskNo()); - headParam.put("status", taskWrk.getStatus()); - headParam.put("ioType", taskWrk.getIoTypeWms()); - headParam.put("barcode", taskWrk.getBarcode()); + headParam.put("taskNo",taskWrk.getTaskNo()); + headParam.put("taskStatus",taskWrk.getStatusWms()); + headParam.put("ioType",taskWrk.getIoTypeWms()); + headParam.put("barCode",taskWrk.getBarcode()); + headParam.put("reportTime", LocalDateTime.now()); + headParam.put("weight",taskWrk.getScWeight().doubleValue()); + String response; response = new HttpHandler.Builder() // .setHeaders(headParam) @@ -1031,10 +1042,13 @@ } try { HashMap<String, Object> headParam = new HashMap<>(); - headParam.put("taskNo", taskWrk.getTaskNo()); - headParam.put("status", taskWrk.getStatus()); - headParam.put("ioType", taskWrk.getIoTypeWms()); - headParam.put("barcode", taskWrk.getBarcode()); + headParam.put("taskNo",taskWrk.getTaskNo()); + headParam.put("taskStatus",taskWrk.getStatusWms()); + headParam.put("ioType",taskWrk.getIoTypeWms()); + headParam.put("barCode",taskWrk.getBarcode()); + headParam.put("reportTime", LocalDateTime.now()); + headParam.put("weight",taskWrk.getScWeight().doubleValue()); + String response; response = new HttpHandler.Builder() // .setHeaders(headParam) @@ -1145,10 +1159,13 @@ try { HashMap<String, Object> headParam = new HashMap<>(); - headParam.put("taskNo", taskWrk.getTaskNo()); - headParam.put("status", taskWrk.getStatus()); - headParam.put("ioType", taskWrk.getIoTypeWms()); - headParam.put("barcode", taskWrk.getBarcode()); + headParam.put("taskNo",taskWrk.getTaskNo()); + headParam.put("taskStatus",taskWrk.getStatusWms()); + headParam.put("ioType",taskWrk.getIoTypeWms()); + headParam.put("barCode",taskWrk.getBarcode()); + headParam.put("reportTime", LocalDateTime.now()); + headParam.put("weight",taskWrk.getScWeight().doubleValue()); + String response; log.error("wcs瀹岀粨浠诲姟涓婃姤wms==銆�", headParam); @@ -1372,6 +1389,58 @@ } return true; } + public boolean rgvOtherIDLEOther(RgvSlave slave) { + RgvProtocol rgvProtocol = RgvStatusCache.getRgvStatus(slave.getOtherId()); + RgvTaskProtocol rgvTaskProtocol = RgvTaskCache.getRgvStatus(slave.getOtherId()); + + if (rgvProtocol == null || rgvTaskProtocol == null) { + 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))) { + return false; + } + RgvProtocol rgvProtocolOther = RgvStatusCache.getRgvStatus(slave.getId()); + RgvTaskProtocol rgvTaskProtocolOther = RgvTaskCache.getRgvStatus(slave.getId()); + + if (rgvProtocolOther == null) { + return true; + } + if (rgvProtocolOther.statusEnable) { + if (rgvProtocolOther.getModeType().equals(RgvModeType.AUTO) + && rgvProtocolOther.getStatusType().equals(RgvStatusType.IDLE) + && rgvProtocolOther.getLoaded()==0) { + return false; + } + } + return true; + } + public boolean rgvOtherIDLE(RgvSlave slave) { + RgvProtocol rgvProtocol = RgvStatusCache.getRgvStatus(slave.getId()); + RgvTaskProtocol rgvTaskProtocol = RgvTaskCache.getRgvStatus(slave.getId()); + + if (rgvProtocol == null || rgvTaskProtocol == null) { + 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))) { + return false; + } + RgvProtocol rgvProtocolOther = RgvStatusCache.getRgvStatus(slave.getOtherId()); + RgvTaskProtocol rgvTaskProtocolOther = RgvTaskCache.getRgvStatus(slave.getOtherId()); + + if (rgvProtocolOther == null) { + return true; + } + if (rgvProtocolOther.statusEnable) { + if (rgvProtocolOther.getModeType().equals(RgvModeType.AUTO) + && rgvProtocolOther.getStatusType().equals(RgvStatusType.IDLE) + && rgvProtocolOther.getLoaded()==0) { + return false; + } + } + return true; + } public TaskWrk deviceDetection(RgvSlave.RgvStn inSta) { @@ -1455,7 +1524,7 @@ if (rgvStn.getStaNo().equals(staNoNow)) { TaskWrk taskWrk = deviceDetection(rgvStn); if (taskWrk != null) { - BasDevpPosition basDevpPosition = basDevpPositionService.selectOne(new EntityWrapper<BasDevpPosition>().eq("DEV_NO", taskWrk.getTargetPointConvert())); + 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); } @@ -1482,13 +1551,21 @@ } } + if (!sign){ + if (rgvOtherIDLEOther(rgvSlave)){ + if (!rgvOtherIDLE(rgvSlave)){ + sign=true; + } + } + } + if (!sign) { 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", taskWrk.getTargetPointConvert())); + 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); } @@ -1522,7 +1599,7 @@ if (rgvStn.getStaNo().equals(staNoNow)) { TaskWrk taskWrk = deviceDetection(rgvStn); if (taskWrk != null) { - BasDevpPosition basDevpPosition = basDevpPositionService.selectOne(new EntityWrapper<BasDevpPosition>().eq("DEV_NO", taskWrk.getTargetPointConvert())); + 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); } @@ -1612,10 +1689,6 @@ if (targetPointConvert == null) { return false; } - RgvSlave.RgvStn rgvStnEnd = getRgvStnNow(rgvSlave, targetPointConvert); - if (rgvStnEnd == null) { - return false; - } BasDevpPosition basDevpPositionSou = basDevpPositionService.selectOne(new EntityWrapper<BasDevpPosition>().eq("DEV_NO", rgvStn.getStaNo())); BasDevpPosition basDevpPositionEnd = basDevpPositionService.selectOne(new EntityWrapper<BasDevpPosition>().eq("DEV_NO", targetPointConvert)); @@ -1625,7 +1698,7 @@ issuedTake.setTaskNoDirection(issuedTake.gettaskNoDirection$(issuedTake.getTaskNo(), issuedTake.getTaskStatus())); issuedTake.setTargetPosition(basDevpPositionSou.getPlcPosition()); issuedTake.setIsRunning(1); - issuedTake.setDirection(rgvStn.isDirection()); + issuedTake.setDirection(basDevpPositionSou.getRgvSign()==1); issuedPut.setTaskNo(Long.valueOf(taskWrk.getTaskNo())); @@ -1633,7 +1706,7 @@ issuedPut.setTaskNoDirection(issuedPut.gettaskNoDirection$(issuedPut.getTaskNo(), issuedPut.getTaskStatus())); issuedPut.setTargetPosition(basDevpPositionEnd.getPlcPosition()); issuedPut.setIsRunning(1); - issuedPut.setDirection(rgvStnEnd.isDirection()); + issuedPut.setDirection(basDevpPositionEnd.getRgvSign()==1); } catch (Exception e) { log.error("浠诲姟鐢熸垚澶辫触issued1===銆嬪紓甯镐俊鎭細{}", e.getMessage()); return false; -- Gitblit v1.9.1