From 03b0ea7369dcba72b560ec80f941f9d29ff7b9a5 Mon Sep 17 00:00:00 2001 From: zhangc <zc@123> Date: 星期五, 06 十二月 2024 16:21:47 +0800 Subject: [PATCH] 修复库位类型字段错误并优化工作档状态检查逻辑 --- src/main/java/com/zy/common/service/AgvCommonService.java | 55 ++++++++++++++++++++++++++++++++++++++++++++++--------- 1 files changed, 46 insertions(+), 9 deletions(-) diff --git a/src/main/java/com/zy/common/service/AgvCommonService.java b/src/main/java/com/zy/common/service/AgvCommonService.java index f756a9a..e7aded0 100644 --- a/src/main/java/com/zy/common/service/AgvCommonService.java +++ b/src/main/java/com/zy/common/service/AgvCommonService.java @@ -9,6 +9,7 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import java.util.ArrayList; import java.util.List; /** @@ -73,7 +74,7 @@ * 妫�绱㈠簱浣嶅彿 * @return locNo 妫�绱㈠埌鐨勫簱浣嶅彿 */ - public AgvLocMast getLocNo(int type, int floor) { + public AgvLocMast getLocNo(int type, int floor,boolean isEmpty,boolean isCurrLev) { // 鐩爣搴撲綅 AgvLocMast locMast = null; // if(Cools.isEmpty(agvWaitPakinList)){ @@ -113,16 +114,16 @@ try{ // 寮�濮嬫煡鎵惧簱浣� ==============================>> - locMast = getLocNoRule(type,floor); + locMast = getLocNoRule(type,floor,isEmpty,isCurrLev); if (locMast != null) { return locMast; } }catch (Exception e){ - throw new CoolException("妤煎眰鍙凤細"+floor+"锛涜妤煎眰娌℃湁绌哄簱浣�===>"+e.getMessage()); + throw new CoolException(floor+"妤硷紱璇ユゼ灞傛病鏈夌┖搴撲綅===>"+e.getMessage()); } //鎵句笉鍒板簱浣嶏紝鎶涘嚭寮傚父 - throw new CoolException("妤煎眰鍙凤細"+floor+"锛涜妤煎眰娌℃湁绌哄簱浣�"); + throw new CoolException(floor+"妤硷紱璇ユゼ灞傛病鏈夌┖搴撲綅"); } /* @@ -233,12 +234,48 @@ } //闅忔満鍙栦竴涓揣浣� - private AgvLocMast getLocNoRule(int type,int floor){ + private AgvLocMast getLocNoRule(int type,int floor,boolean isEmpty,boolean isCurrLev){ + Boolean orderBy = false; + int levCount = 0; + int times = 1; + if (floor == 1 || floor >= 4) { + if (floor >= 4 ) { + floor = 1; + } + orderBy = true; + levCount = 2; + } else { + orderBy = false; + levCount = 1; + } try{ - List<AgvLocMast> agvLocMasts = agvLocMastService.selectList(new EntityWrapper<AgvLocMast>() - .eq("loc_sts", "O") - .eq("floor", floor) - .eq("loc_type1", type)); + EntityWrapper<AgvLocMast> wrapper = new EntityWrapper<>(); + wrapper.eq("loc_sts", "O").eq("loc_type1", type); + List<AgvLocMast> agvLocMasts = new ArrayList<>(); + //涓嶆槸绌烘澘浼樺厛鎵�2灞� + if (isEmpty) { + wrapper.eq("floor", floor).eq("lev1",1); + } else { + if (isCurrLev) { + wrapper.eq("floor", floor).eq("lev1",1); + } else { + wrapper.eq("floor", floor).orderBy("lev1",!orderBy); + } + } + + + //褰撶洰鏍囧簱浣嶆槸1妤� + if(floor == 1) { + wrapper.orderBy("loc_no",false); + } + agvLocMasts = agvLocMastService.selectList(wrapper); + //鏄惁褰撳墠灞� + if (Cools.isEmpty(agvLocMasts) && !isCurrLev) { + if (times < levCount) { + times++; + return getLocNoRule(type,floor,isEmpty,isCurrLev); + } + } for (AgvLocMast agvLocMast : agvLocMasts){ AgvLocMast agvLocMast1 = agvLocMastService.selectOne(new EntityWrapper<AgvLocMast>().eq("loc_no", agvLocMast.getLocNo())); if (agvLocMast1.getLocSts().equals("O")){ -- Gitblit v1.9.1