From d835d1b51f832889929cdf69010034a30ef44d02 Mon Sep 17 00:00:00 2001 From: Junjie <xjj@123> Date: 星期四, 17 十月 2024 13:57:29 +0800 Subject: [PATCH] # --- zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/service/impl/MainServiceImpl.java | 68 +++++++++++++++++++++------------- 1 files changed, 42 insertions(+), 26 deletions(-) diff --git a/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/service/impl/MainServiceImpl.java b/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/service/impl/MainServiceImpl.java index e0f0670..1c69d07 100644 --- a/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/service/impl/MainServiceImpl.java +++ b/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/service/impl/MainServiceImpl.java @@ -84,6 +84,8 @@ private BasLedService basLedService; @Autowired private DeviceBarcodeService deviceBarcodeService; + @Autowired + private ShuttleChargeStaService shuttleChargeStaService; /** * 缁勬墭 @@ -544,7 +546,7 @@ // staProtocol1 = staProtocol1.clone(); } - // 鍒ゆ柇鍫嗗灈鏈哄嚭搴撶珯鐘舵�� + // 鍒ゆ柇鍑哄簱绔欑姸鎬� if (staProtocol.isAutoing() && !staProtocol.isLoading() && staProtocol.getWorkNo() == 0 && staProtocol.isOutEnable()) { // if (!(staProtocol1.isAutoing() && !staProtocol1.isLoading() && staProtocol1.getWorkNo() == 0 && staProtocol1.isOutEnable())) { // continue; @@ -668,20 +670,19 @@ String currentLocNo = shuttleProtocol.getCurrentLocNo(); int lev = Utils.getLev(currentLocNo);//鑾峰彇灏忚溅妤煎眰 //鎼滅储灏忚溅褰撳墠妤煎眰鍏呯數妗� - ArrayList<Loc> allChargeLoc = new ArrayList<>(); - List<Loc> list1 = locService.list(new LambdaQueryWrapper<Loc>() - .eq(Loc::getLocSts, LocStsType.C.val()) - .eq(Loc::getStatus, 1) - .eq(Loc::getLev, lev)); + ArrayList<ShuttleChargeSta> allChargeLoc = new ArrayList<>(); + + List<ShuttleChargeSta> list1 = shuttleChargeStaService.list(new LambdaQueryWrapper<ShuttleChargeSta>() + .eq(ShuttleChargeSta::getDeviceLev, lev) + .eq(ShuttleChargeSta::getStatus, 1)); if (!list1.isEmpty()) { allChargeLoc.addAll(list1); } //鎼滅储鍏朵粬妤煎眰鍏呯數妗� - List<Loc> list2 = locService.list(new LambdaQueryWrapper<Loc>() - .eq(Loc::getLocSts, LocStsType.C.val()) - .eq(Loc::getStatus, 1) - .notIn(Loc::getLev, lev)); + List<ShuttleChargeSta> list2 = shuttleChargeStaService.list(new LambdaQueryWrapper<ShuttleChargeSta>() + .notIn(ShuttleChargeSta::getDeviceLev, lev) + .eq(ShuttleChargeSta::getStatus, 1)); if (!list2.isEmpty()) { allChargeLoc.addAll(list2); } @@ -692,24 +693,34 @@ } //閫夋嫨绌洪棽鍏呯數妗� - Loc chargeLoc = null; - for (Loc loc : allChargeLoc) { + ShuttleChargeSta chargeSta = null; + for (ShuttleChargeSta shuttleChargeSta : allChargeLoc) { // 鍒ゆ柇鍏呯數浣嶆槸鍚﹁鍗犵敤(杞﹁締浣嶇疆) - if (Utils.hasShuttleInLoc(loc.getLocNo(), device.getId())) { + if (Utils.hasShuttleInLoc(shuttleChargeSta.getDeviceLoc(), device.getId())) { continue; } // 鐩樼偣鍏呯數浣嶆槸鍚﹀瓨鍦ㄤ换鍔℃。 - List<Task> tasks = taskService.hasChargeInLoc(loc.getLocNo()); + List<Task> tasks = taskService.hasChargeInLoc(shuttleChargeSta.getDeviceLoc()); if (!tasks.isEmpty()) { continue; } - chargeLoc = loc; + Loc loc = locService.getOne(new LambdaQueryWrapper<Loc>() + .eq(Loc::getLocNo, shuttleChargeSta.getDeviceLoc())); + if (loc == null) { + continue; + } + + if (!loc.getLocSts().equals(LocStsType.C.val())) { + continue;//搴撲綅涓嶆槸鍏呯數妗� + } + + chargeSta = shuttleChargeSta; break; } - if (chargeLoc == null) { + if (chargeSta == null) { continue;//鏈壘鍒板厖鐢垫々 } @@ -730,7 +741,7 @@ continue; } - String chargeLocNo = chargeLoc.getLocNo(); + String chargeLocNo = chargeSta.getDeviceLoc(); Task task = new Task(); task.setUuid(String.valueOf(snowflakeIdWorker.nextId())); task.setTaskNo(String.valueOf(Utils.getTaskNo("CHARGE"))); @@ -770,14 +781,6 @@ * 鍥涘悜绌挎杞︾數閲忔娴� ===>> 婊$數鍚庡洖鍒板緟鏈轰綅 */ public synchronized void loopShuttleToStandbyCauseCharge() { - Integer enoughPower = 90; - Dict dict = dictService.getOne(new LambdaQueryWrapper<Dict>() - .eq(Dict::getFlag, "chargeMaxValue") - .eq(Dict::getStatus, 1)); - if (dict != null) { - enoughPower = Integer.parseInt(dict.getValue()); - } - //鑾峰彇杩佺Щ浠诲姟绫诲瀷 TaskCtg taskCtg = taskCtgService.getOne(new LambdaQueryWrapper<TaskCtg>() .eq(TaskCtg::getFlag, String.valueOf(TaskCtgType.MOVE)) @@ -823,8 +826,21 @@ continue; } + ShuttleChargeSta chargeSta = shuttleChargeStaService.getOne(new LambdaQueryWrapper<ShuttleChargeSta>() + .eq(ShuttleChargeSta::getDeviceLoc, chargeTask.getDestLoc()) + .eq(ShuttleChargeSta::getStatus, 1)); + if (chargeSta == null) { + continue;//鍏呯數妗╀笉瀛樺湪锛屽紓甯� + } + + String standbyLoc = chargeSta.getStandbyLoc(); + if (standbyLoc == null) { + continue;//閬胯浣嶇疆鏁版嵁涓嶅瓨鍦� + } + List<String> availableLoc = JSON.parseArray(standbyLoc, String.class); + //鑾峰彇閬胯浣嶇疆 - String standByLocNo = shuttleDispatcher.searchStandByLocNo(Integer.valueOf(device.getDeviceNo()), device.getHostId(), shuttleThread.getStatus().getCurrentLocNo()); + String standByLocNo = shuttleDispatcher.searchAvailableLocNo(Integer.valueOf(device.getDeviceNo()), device.getHostId(), shuttleThread.getStatus().getCurrentLocNo(), availableLoc); Task task = new Task(); task.setUuid(String.valueOf(snowflakeIdWorker.nextId())); -- Gitblit v1.9.1