From 449e4e9df08162b1e7e04ac0d4e05a1387298171 Mon Sep 17 00:00:00 2001 From: Junjie <fallin.jie@qq.com> Date: 星期二, 08 七月 2025 16:48:16 +0800 Subject: [PATCH] # --- src/main/java/com/zy/core/dispatcher/ShuttleDispatchUtils.java | 24 +++++++++++++++++------- 1 files changed, 17 insertions(+), 7 deletions(-) diff --git a/src/main/java/com/zy/core/dispatcher/ShuttleDispatchUtils.java b/src/main/java/com/zy/core/dispatcher/ShuttleDispatchUtils.java index dd6f4fd..5e0d93c 100644 --- a/src/main/java/com/zy/core/dispatcher/ShuttleDispatchUtils.java +++ b/src/main/java/com/zy/core/dispatcher/ShuttleDispatchUtils.java @@ -1,9 +1,11 @@ package com.zy.core.dispatcher; import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.mapper.Wrapper; import com.core.common.Cools; import com.core.exception.CoolException; import com.zy.asrs.domain.ShuttleGatherResult; +import com.zy.asrs.domain.param.ShuttleGatherParam; import com.zy.asrs.entity.BasShuttle; import com.zy.asrs.entity.WrkMast; import com.zy.asrs.service.BasShuttleService; @@ -55,14 +57,14 @@ /** * 璋冨害杞﹁締-璋冨害鎸囧畾绌挎杞� */ - public boolean dispatchShuttle(Integer wrkNo, String locNo, Integer shuttleNo) { + public synchronized boolean dispatchShuttle(Integer wrkNo, String locNo, Integer shuttleNo) { return shuttleMoveGenerate(wrkNo, locNo, shuttleNo); } /** * 璋冨害杞﹁締 */ - public boolean dispatchShuttle(Integer wrkNo, String locNo) { + public synchronized boolean dispatchShuttle(Integer wrkNo, String locNo) { ArrayList<ShuttleThread> sameLev = new ArrayList<>();//鐩稿悓妤煎眰鐨勭┛姊溅 ArrayList<ShuttleThread> diffLev = new ArrayList<>();//涓嶅悓妤煎眰鐨勭┛姊溅 @@ -166,7 +168,8 @@ //褰撳墠绌挎杞﹀簱浣嶅彿 String currentLocNo = shuttleProtocol.getCurrentLocNo(); int currentLev = Utils.getLev(currentLocNo); - List<WrkMast> wrkMasts1 = wrkMastService.selectNoShuttleWrkByLev(currentLev);//鍒ゆ柇褰撳墠绌挎杞︽ゼ灞傛槸鍚︽湁寰呭垎閰嶈溅杈嗙殑浠诲姟锛屽鏋滄湁鍒欎笉鍒嗛厤杩欒締杞� + //鍒ゆ柇褰撳墠妤煎眰鏄惁鏈変换鍔★紝濡傛灉鏈夊垯涓嶅垎閰嶈繖杈嗚溅 + List<WrkMast> wrkMasts1 = wrkMastService.selectWrkByLev(currentLev); int shuttleCount = this.getShuttleCountByLev(currentLev);//鑾峰彇绌挎杞︽ゼ灞傝溅杈嗘暟閲� if (!wrkMasts1.isEmpty() && shuttleCount <= 1) { //瀛樺湪鍏朵粬浠诲姟涓斿彲鐢ㄥ皬杞︽暟閲忓皬浜庣瓑浜�1锛岃烦杩囪繖杈嗚溅 @@ -200,7 +203,7 @@ * 灏忚溅杩佺Щ浠诲姟鐢熸垚 */ @Transactional - public boolean shuttleMoveGenerate(Integer wrkNo, String locNo, Integer shuttleNo) { + public synchronized boolean shuttleMoveGenerate(Integer wrkNo, String locNo, Integer shuttleNo) { Date now = new Date(); //鑾峰彇鍥涘悜绌挎杞︾嚎绋� ShuttleThread shuttleThread = (ShuttleThread) SlaveConnection.get(SlaveType.Shuttle, shuttleNo); @@ -237,7 +240,7 @@ News.info("{}鍙峰皬杞︼紝瀛樺湪鍏朵粬宸ヤ綔妗d换鍔★紝绛夊緟鎵ц瀹屾垚鍐嶇敓鎴愭柊鐨勪换鍔�", shuttleNo); return false; }else { - if (!mainWrkMast.getShuttleNo().equals(shuttleNo)) { + if (!shuttleNo.equals(mainWrkMast.getShuttleNo())) { News.info("{}鍙峰皬杞︼紝瀛樺湪鍏朵粬宸ヤ綔妗d换鍔★紝绛夊緟鎵ц瀹屾垚鍐嶇敓鎴愭柊鐨勪换鍔�", shuttleNo); return false; } @@ -299,8 +302,15 @@ /** * 灏忚溅闆嗗悎 */ - public List<ShuttleGatherResult> shuttleGather() { - List<BasShuttle> basShuttles = basShuttleService.selectList(new EntityWrapper<BasShuttle>().eq("status", 1)); + public List<ShuttleGatherResult> shuttleGather(ShuttleGatherParam param) { + Wrapper<BasShuttle> wrapper = new EntityWrapper<BasShuttle>().eq("status", 1); + if (param != null) { + if (!param.getShuttleNos().isEmpty()) { + wrapper.in("shuttle_no", param.getShuttleNos()); + } + } + + List<BasShuttle> basShuttles = basShuttleService.selectList(wrapper); List<ShuttleGatherResult> list = new ArrayList<>(); for (BasShuttle basShuttle : basShuttles) { String idleLoc = basShuttle.getIdleLoc(); -- Gitblit v1.9.1