From ce9c9af4a3710d17e17814bab629ab4ef474f3f1 Mon Sep 17 00:00:00 2001 From: Junjie <fallin.jie@qq.com> Date: 星期三, 09 七月 2025 11:16:51 +0800 Subject: [PATCH] # --- src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java | 104 ++++++++++++++++++++++++++++++++++++++------------- 1 files changed, 77 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 70f84cb..80f3170 100644 --- a/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java +++ b/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java @@ -76,6 +76,8 @@ private NotifyUtils notifyUtils; @Autowired private BasShuttleChargeService basShuttleChargeService; + @Autowired + private DeviceConfigService deviceConfigService; /** * 鍒濆鍖栧疄鏃跺湴鍥� @@ -309,6 +311,23 @@ return false; } + List<WrkMast> shuttleMoveList = wrkMastService.selectList(new EntityWrapper<WrkMast>() + .eq("io_type", 200) + ); + for (WrkMast moveWrkMast : shuttleMoveList) { + if(Utils.getLev(moveWrkMast.getLocNo()) != Utils.getLev(wrkMast.getSourceLocNo())) { + continue; + } + + if(Utils.getLev(moveWrkMast.getLocNo()) == Utils.getLev(moveWrkMast.getSourceLocNo())) { + continue; + } + + //瀛樺湪鎹㈠眰浠诲姟锛屽嚭搴撲换鍔℃殏鏃朵笉鎵ц + News.taskInfo(wrkMast.getWrkNo(), "{}浠诲姟锛屽瓨鍦ㄦ崲灞備换鍔★紝鍑哄簱浠诲姟绛夊緟涓�", wrkMast.getWrkNo()); + return false; + } + boolean checkLocPathIsAvailable = navigateUtils.checkLocPathIsAvailable(wrkMast.getSourceLocNo(), liftSta.getLocNo()); if(!checkLocPathIsAvailable) { News.taskInfo(wrkMast.getWrkNo(), "{}浠诲姟锛屾湭璁$畻鍒板彲鎵ц璺緞锛岀瓑寰呬腑", wrkMast.getWrkNo()); @@ -421,9 +440,11 @@ */ public synchronized void shuttleFinished() { try { - for (ShuttleSlave shuttle : slaveProperties.getShuttle()) { + List<DeviceConfig> shuttleList = deviceConfigService.selectList(new EntityWrapper<DeviceConfig>() + .eq("device_type", String.valueOf(SlaveType.Shuttle))); + for (DeviceConfig device : shuttleList) { //鑾峰彇鍥涘悜绌挎杞︿俊鎭� - ShuttleThread shuttleThread = (ShuttleThread) SlaveConnection.get(SlaveType.Shuttle, shuttle.getId()); + ShuttleThread shuttleThread = (ShuttleThread) SlaveConnection.get(SlaveType.Shuttle, device.getDeviceNo()); ShuttleProtocol shuttleProtocol = shuttleThread.getStatus(); if (shuttleProtocol == null) { continue; @@ -902,9 +923,11 @@ */ public synchronized void forkLiftFinished() { try { - for (ForkLiftSlave forkLiftSlave : slaveProperties.getForkLift()) { + List<DeviceConfig> forkliftList = deviceConfigService.selectList(new EntityWrapper<DeviceConfig>() + .eq("device_type", String.valueOf(SlaveType.ForkLift))); + for (DeviceConfig device : forkliftList) { //鑾峰彇鎻愬崌鏈轰俊鎭� - ForkLiftThread forkLiftThread = (ForkLiftThread) SlaveConnection.get(SlaveType.ForkLift, forkLiftSlave.getId()); + ForkLiftThread forkLiftThread = (ForkLiftThread) SlaveConnection.get(SlaveType.ForkLift, device.getDeviceNo()); ForkLiftProtocol forkLiftProtocol = forkLiftThread.getStatus(); if (forkLiftProtocol == null) { continue; @@ -974,9 +997,11 @@ */ private void recShuttleErr() { Date now = new Date(); - for (ShuttleSlave shuttleSlave : slaveProperties.getShuttle()) { + List<DeviceConfig> shuttleList = deviceConfigService.selectList(new EntityWrapper<DeviceConfig>() + .eq("device_type", String.valueOf(SlaveType.Shuttle))); + for (DeviceConfig device : shuttleList) { // 鑾峰彇鍥涘悜绌挎杞︿俊鎭� - ShuttleThread shuttleThread = (ShuttleThread) SlaveConnection.get(SlaveType.Shuttle, shuttleSlave.getId()); + ShuttleThread shuttleThread = (ShuttleThread) SlaveConnection.get(SlaveType.Shuttle, device.getDeviceNo()); if (shuttleThread == null) { continue; } @@ -987,7 +1012,7 @@ if (shuttleProtocol.getTaskNo() != 0) { //鏈変换鍔� - BasShuttleErrLog latest = basShuttleErrLogService.findLatestByTaskNo(shuttleSlave.getId(), shuttleProtocol.getTaskNo()); + BasShuttleErrLog latest = basShuttleErrLogService.findLatestByTaskNo(device.getDeviceNo(), shuttleProtocol.getTaskNo()); // 鏈夊紓甯� if (latest == null) { if (shuttleProtocol.getErrorCode() != null && Integer.parseInt(shuttleProtocol.getErrorCode()) != 0) { @@ -1005,7 +1030,7 @@ null, // 缁撴潫鏃堕棿 wrkMast.getWrkSts(), // 宸ヤ綔鐘舵�� wrkMast.getIoType(), // 鍏ュ嚭搴撶被鍨� - shuttleSlave.getId(), // 鍥涘悜绌挎杞� + device.getDeviceNo(), // 鍥涘悜绌挎杞� null, // plc wrkMast.getLocNo(), // 鐩爣搴撲綅 wrkMast.getStaNo(), // 鐩爣绔� @@ -1023,7 +1048,7 @@ JSON.toJSONString(shuttleProtocol) // 绯荤粺鐘舵�佹暟鎹� ); if (!basShuttleErrLogService.insert(basShuttleErrLog)) { - News.error("鍥涘悜绌挎杞lc寮傚父璁板綍澶辫触 ===>> [id:{}] [error:{}]", shuttleSlave.getId(), errName); + News.error("鍥涘悜绌挎杞lc寮傚父璁板綍澶辫触 ===>> [id:{}] [error:{}]", device.getDeviceNo(), errName); } } } else { @@ -1033,7 +1058,7 @@ latest.setUpdateTime(now); latest.setStatus(2); if (!basShuttleErrLogService.updateById(latest)) { - News.error("鍥涘悜绌挎杞lc寮傚父璁板綍淇澶辫触 ===>> [id:{}] [errLogId:{}]", shuttleSlave.getId(), latest.getId()); + News.error("鍥涘悜绌挎杞lc寮傚父璁板綍淇澶辫触 ===>> [id:{}] [errLogId:{}]", device.getDeviceNo(), latest.getId()); } } } @@ -1046,9 +1071,11 @@ */ private void recLiftErr() { Date now = new Date(); - for (ForkLiftSlave forkLiftSlave : slaveProperties.getForkLift()) { + List<DeviceConfig> forkliftList = deviceConfigService.selectList(new EntityWrapper<DeviceConfig>() + .eq("device_type", String.valueOf(SlaveType.ForkLift))); + for (DeviceConfig device : forkliftList) { // 鑾峰彇鎻愬崌鏈轰俊鎭� - ForkLiftThread forkLiftThread = (ForkLiftThread) SlaveConnection.get(SlaveType.ForkLift, forkLiftSlave.getId()); + ForkLiftThread forkLiftThread = (ForkLiftThread) SlaveConnection.get(SlaveType.ForkLift, device.getDeviceNo()); if (forkLiftThread == null) { continue; } @@ -1059,7 +1086,7 @@ if (forkLiftProtocol.getTaskNo() != 0) { //鏈変换鍔� - BasLiftErrLog latest = basLiftErrLogService.findLatestByTaskNo(forkLiftSlave.getId(), forkLiftProtocol.getTaskNo()); + BasLiftErrLog latest = basLiftErrLogService.findLatestByTaskNo(device.getDeviceNo(), forkLiftProtocol.getTaskNo()); // 鏈夊紓甯� if (latest == null) { if (forkLiftProtocol.getErrorCode() != null && forkLiftProtocol.getErrorCode() != 0) { @@ -1078,7 +1105,7 @@ null, // 缁撴潫鏃堕棿 wrkMast.getWrkSts(), // 宸ヤ綔鐘舵�� wrkMast.getIoType(), // 鍏ュ嚭搴撶被鍨� - forkLiftSlave.getId(), // 鎻愬崌鏈� + device.getDeviceNo(), // 鎻愬崌鏈� null, // plc wrkMast.getLocNo(), // 鐩爣搴撲綅 wrkMast.getStaNo(), // 鐩爣绔� @@ -1096,7 +1123,7 @@ JSON.toJSONString(forkLiftProtocol) // 绯荤粺鐘舵�佹暟鎹� ); if (!basLiftErrLogService.insert(basLiftErrLog)) { - News.error("鎻愬崌鏈簆lc寮傚父璁板綍澶辫触 ===>> [id:{}] [error:{}]", forkLiftSlave.getId(), errName); + News.error("鎻愬崌鏈簆lc寮傚父璁板綍澶辫触 ===>> [id:{}] [error:{}]", device.getDeviceNo(), errName); } } } else { @@ -1106,7 +1133,7 @@ latest.setUpdateTime(now); latest.setStatus(2); if (!basLiftErrLogService.updateById(latest)) { - News.error("鎻愬崌鏈簆lc寮傚父璁板綍淇澶辫触 ===>> [id:{}] [errLogId:{}]", forkLiftSlave.getId(), latest.getId()); + News.error("鎻愬崌鏈簆lc寮傚父璁板綍淇澶辫触 ===>> [id:{}] [errLogId:{}]", device.getDeviceNo(), latest.getId()); } } } @@ -1125,9 +1152,11 @@ return;//鏃犲厖鐢垫々 } - for (ShuttleSlave shuttle : slaveProperties.getShuttle()) { + List<DeviceConfig> shuttleList = deviceConfigService.selectList(new EntityWrapper<DeviceConfig>() + .eq("device_type", String.valueOf(SlaveType.Shuttle))); + for (DeviceConfig device : shuttleList) { //鑾峰彇鍥涘悜绌挎杞︾嚎绋� - ShuttleThread shuttleThread = (ShuttleThread) SlaveConnection.get(SlaveType.Shuttle, shuttle.getId()); + ShuttleThread shuttleThread = (ShuttleThread) SlaveConnection.get(SlaveType.Shuttle, device.getDeviceNo()); ShuttleProtocol shuttleProtocol = shuttleThread.getStatus(); if (shuttleProtocol == null) { continue; @@ -1200,15 +1229,15 @@ wrkMast.setIoType(WrkIoType.SHUTTLE_CHARGE.id);//300.鍏呯數 wrkMast.setIoPri((double) 999); wrkMast.setLocNo(chargeLocNo); - wrkMast.setShuttleNo(shuttle.getId()); + wrkMast.setShuttleNo(device.getDeviceNo()); wrkMast.setMemo("charge"); wrkMast.setAppeTime(new Date()); if (!wrkMastService.insert(wrkMast)) { - News.error("淇濆瓨{}鍙峰洓鍚戠┛姊溅鍏呯數浠诲姟澶辫触!!!", shuttle.getId()); + News.error("淇濆瓨{}鍙峰洓鍚戠┛姊溅鍏呯數浠诲姟澶辫触!!!", device.getDeviceNo()); continue; } - News.info("淇濆瓨{}鍙峰洓鍚戠┛姊溅鍏呯數浠诲姟鎴愬姛!!!", shuttle.getId()); + News.info("淇濆瓨{}鍙峰洓鍚戠┛姊溅鍏呯數浠诲姟鎴愬姛!!!", device.getDeviceNo()); } } catch (Exception e) { e.printStackTrace(); @@ -1221,8 +1250,10 @@ public synchronized void executeShuttleCharge() { try { //鏌ヨ灏忚溅鍏呯數浠诲姟 - for (ShuttleSlave shuttle : slaveProperties.getShuttle()) { - WrkMast wrkMast = wrkMastService.selectChargeWorking(shuttle.getId()); + List<DeviceConfig> shuttleList = deviceConfigService.selectList(new EntityWrapper<DeviceConfig>() + .eq("device_type", String.valueOf(SlaveType.Shuttle))); + for (DeviceConfig device : shuttleList) { + WrkMast wrkMast = wrkMastService.selectChargeWorking(device.getDeviceNo()); if(wrkMast == null) { continue; } @@ -1343,7 +1374,7 @@ ShuttleAssignCommand assignCommand = new ShuttleAssignCommand(); assignCommand.setShuttleNo(shuttleProtocol.getShuttleNo());//鍥涘悜绌挎杞﹀彿 assignCommand.setTaskNo(wrkMast.getWrkNo());//浠诲姟鍙� - assignCommand.setTaskMode(ShuttleTaskModeType.CHARGE.id);//鍑哄簱妯″紡 + assignCommand.setTaskMode(ShuttleTaskModeType.CHARGE_ON.id);//鍏呯數寮� assignCommand.setSourceLocNo(shuttleProtocol.getCurrentLocNo());//婧愬簱浣�(灏忚溅褰撳墠浣嶇疆) List<ShuttleCommand> commands = shuttleOperaUtils.getShuttleChargeCommand(assignCommand, shuttleThread, true); @@ -1384,7 +1415,7 @@ ShuttleAssignCommand assignCommand = new ShuttleAssignCommand(); assignCommand.setShuttleNo(shuttleProtocol.getShuttleNo());//鍥涘悜绌挎杞﹀彿 assignCommand.setTaskNo(wrkMast.getWrkNo());//浠诲姟鍙� - assignCommand.setTaskMode(ShuttleTaskModeType.CHARGE.id);//鍑哄簱妯″紡 + assignCommand.setTaskMode(ShuttleTaskModeType.CHARGE_OFF.id);//鍏呯數鍏� assignCommand.setSourceLocNo(shuttleProtocol.getCurrentLocNo());//婧愬簱浣�(灏忚溅褰撳墠浣嶇疆) List<ShuttleCommand> commands = shuttleOperaUtils.getShuttleChargeCommand(assignCommand, shuttleThread, false); @@ -1566,6 +1597,7 @@ wrkMast.setWrkSts(WrkStsType.MOVE_NEARBY_COMPLETE.sts);//灏忚溅绉诲姩鍒版彁鍗囨満涓� 301.鐢熸垚灏忚溅绉诲簱浠诲姟 ==> 303.灏忚溅绉诲姩鑷宠繎鐐瑰畬鎴� wrkMast.setModiTime(now); wrkMast.setSystemMsg("");//娓呯┖娑堟伅 + wrkMastService.updateById(wrkMast); return true; } @@ -1650,6 +1682,22 @@ if (liftStaTarget.getHasCar()) { News.taskInfo(wrkMast.getWrkNo(), "{}浠诲姟锛岀洰鏍囩珯瀛樺湪灏忚溅", wrkMast.getWrkNo()); return false; + } + + List<WrkMast> outWrkMastList = wrkMastService.selectList(new EntityWrapper<WrkMast>() + .eq("io_type", 101) + .in("wrk_sts" + , WrkStsType.OUTBOUND_SHUTTLE_RUN.sts + , WrkStsType.OUTBOUND_SHUTTLE_RUN_COMPLETE.sts + , WrkStsType.OUTBOUND_LIFT_RUN.sts + , WrkStsType.OUTBOUND_LIFT_RUN_COMPLETE.sts + ) + ); + for (WrkMast outWrkMast : outWrkMastList) { + if(Utils.getLev(outWrkMast.getSourceLocNo()) == Utils.getLev(wrkMast.getLocNo())) { + News.taskInfo(wrkMast.getWrkNo(), "{}浠诲姟锛屽瓨鍦ㄦ鍦ㄦ墽琛岀殑灏忚溅鍑哄簱浠诲姟锛岀姝㈢Щ鍔ㄨ嚦绔欑偣", wrkMast.getWrkNo()); + return false; + } } if (wrkMast.getLiftNo() == null) { @@ -1875,8 +1923,10 @@ //鑷姩鍒囨崲鍑哄叆搴撴ā寮� public void autoSwitchForkLiftIOMode() { - for (ForkLiftSlave forkLiftSlave : slaveProperties.getForkLift()) { - Integer liftNo = forkLiftSlave.getId(); + List<DeviceConfig> forkliftList = deviceConfigService.selectList(new EntityWrapper<DeviceConfig>() + .eq("device_type", String.valueOf(SlaveType.ForkLift))); + for (DeviceConfig device : forkliftList) { + Integer liftNo = device.getDeviceNo(); ForkLiftThread forkLiftThread = (ForkLiftThread) SlaveConnection.get(SlaveType.ForkLift, liftNo); if (forkLiftThread == null) { continue; -- Gitblit v1.9.1