From ff1fedd00c22aa232541f63ebcaa5a7f929b89b7 Mon Sep 17 00:00:00 2001 From: Junjie <540245094@qq.com> Date: 星期一, 15 七月 2024 08:28:26 +0800 Subject: [PATCH] # --- zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/service/impl/MainServiceImpl.java | 68 ++++++++++++++++++++++++++-------- 1 files changed, 52 insertions(+), 16 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 1791776..b84fccf 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 @@ -15,10 +15,7 @@ import com.zy.asrs.wcs.core.entity.*; import com.zy.asrs.wcs.core.kernel.AnalyzeService; import com.zy.asrs.wcs.core.model.MapNode; -import com.zy.asrs.wcs.core.model.enums.DeviceCtgType; -import com.zy.asrs.wcs.core.model.enums.MotionStsType; -import com.zy.asrs.wcs.core.model.enums.TaskCtgType; -import com.zy.asrs.wcs.core.model.enums.TaskStsType; +import com.zy.asrs.wcs.core.model.enums.*; import com.zy.asrs.wcs.core.service.*; import com.zy.asrs.wcs.core.utils.RedisUtil; import com.zy.asrs.wcs.core.utils.ShuttleDispatcher; @@ -85,6 +82,8 @@ private BasConveyorPathService basConveyorPathService; @Autowired private BasLedService basLedService; + @Autowired + private DeviceBarcodeService deviceBarcodeService; /** * 缁勬墭 @@ -307,6 +306,17 @@ mapNode.setNo(object.getString("row") + "-" + object.getString("bay")); mapNode.setXBase(object.getInteger("refx")); mapNode.setYBase(object.getInteger("refy")); + + if(mapNode.getValue() == MapNodeType.CONVEYOR.id) { + //杈撻�佺嚎,鍒ゆ柇灏忚溅鏄惁鍙蛋 + if (object.containsKey("conveyorHasGo")) { + if(object.getBoolean("conveyorHasGo")) { + //灏忚溅鍙蛋 + mapNode.setValue(MapNodeType.CONVEYOR_CAR_GO.id); + } + } + } + nodes.add(mapNode); } @@ -329,7 +339,7 @@ //瀛樺湪绌虹己鑺傜偣锛岃嚜鍔ㄨˉ瓒� for (int i = defaultBay; i < node.getBay(); i++) { MapNode mapNode = new MapNode(); - mapNode.setValue(-1); + mapNode.setValue(MapNodeType.DISABLE.id); mapNode.setTop(1000); mapNode.setBottom(1000); mapNode.setLeft(1000); @@ -356,7 +366,7 @@ ArrayList<ArrayList<MapNode>> lists = entry.getValue();//鑾峰彇鍦板浘 MapNode mapNode = new MapNode(); - mapNode.setValue(-1); + mapNode.setValue(MapNodeType.DISABLE.id); mapNode.setTop(1000); mapNode.setBottom(1000); mapNode.setLeft(1000); @@ -421,6 +431,40 @@ // 瑙f瀽鍏ュ簱宸ヤ綔妗� public synchronized void analyzeInBoundTask() { for (Task task : taskService.selectWaitAnalyzeInBoundTask()) { + BasConveyorSta basConveyorSta = basConveyorStaService.getOne(new LambdaQueryWrapper<BasConveyorSta>().eq(BasConveyorSta::getSiteNo, task.getDestSite())); + if (basConveyorSta == null) { + continue; + } + BasConveyor basConveyor = basConveyorService.getById(basConveyorSta.getConveyorId()); + if (basConveyor == null) { + continue; + } + DeviceBarcode deviceBarcode = deviceBarcodeService.getById(basConveyorSta.getBarcodeId()); + if (deviceBarcode == null) { + continue; + } + BarcodeThread barcodeThread = (BarcodeThread) SlaveConnection.get(SlaveType.Barcode, Integer.parseInt(deviceBarcode.getDeviceId())); + if (barcodeThread == null) { + continue; + } + if (!barcodeThread.getBarcode().equals(task.getZpallet())) { + continue; + } + DevpThread devpThread = (DevpThread) SlaveConnection.get(SlaveType.Conveyor, basConveyor.getDeviceId().intValue()); + if (devpThread == null) { + continue; + } + StaProtocol staProtocol = devpThread.getStation().get(basConveyorSta.getSiteNo()); + if (staProtocol == null) { + continue; + } + if (!(staProtocol.isAutoing() + && staProtocol.isLoading() + && staProtocol.isInEnable())) { + continue; + } + + if (Cools.isEmpty(task.getShuttleNo())) { //鍒嗛厤灏忚溅 //鎼滅储绌洪棽杞� @@ -574,14 +618,6 @@ * 鍥涘悜绌挎杞︾數閲忔娴� ===>> 鍙戣捣鍏呯數 */ public synchronized void loopShuttleCharge() { - // 鑾峰彇鍏呯數妗╁簱浣嶇被鍨� - LocCtg locCtg = locCtgService.getOne(new LambdaQueryWrapper<LocCtg>() - .eq(LocCtg::getFlag, "CHARGE") - .eq(LocCtg::getStatus, 1)); - if (locCtg == null) { - return; - } - //鑾峰彇鍏呯數浠诲姟绫诲瀷 TaskCtg taskCtg = taskCtgService.getOne(new LambdaQueryWrapper<TaskCtg>() .eq(TaskCtg::getFlag, String.valueOf(TaskCtgType.CHARGE)) @@ -618,7 +654,7 @@ //鎼滅储灏忚溅褰撳墠妤煎眰鍏呯數妗� ArrayList<Loc> allChargeLoc = new ArrayList<>(); List<Loc> list1 = locService.list(new LambdaQueryWrapper<Loc>() - .eq(Loc::getLocCtg, locCtg.getId()) + .eq(Loc::getLocSts, LocStsType.C.val()) .eq(Loc::getStatus, 1) .eq(Loc::getLev, lev)); if (!list1.isEmpty()) { @@ -627,7 +663,7 @@ //鎼滅储鍏朵粬妤煎眰鍏呯數妗� List<Loc> list2 = locService.list(new LambdaQueryWrapper<Loc>() - .eq(Loc::getLocCtg, locCtg.getId()) + .eq(Loc::getLocSts, LocStsType.C.val()) .eq(Loc::getStatus, 1) .notIn(Loc::getLev, lev)); if (!list2.isEmpty()) { -- Gitblit v1.9.1