From b97ab3e077df3665663eb3a5b0c23d54c83a5548 Mon Sep 17 00:00:00 2001 From: tzsk <Administrator@qq.com> Date: 星期五, 31 五月 2024 12:02:25 +0800 Subject: [PATCH] # --- src/main/java/com/zy/common/service/AgvCommonService.java | 101 +++++++++++++++++++++++++++++++++++++++++++++----- 1 files changed, 91 insertions(+), 10 deletions(-) diff --git a/src/main/java/com/zy/common/service/AgvCommonService.java b/src/main/java/com/zy/common/service/AgvCommonService.java index 9049ce8..8684a32 100644 --- a/src/main/java/com/zy/common/service/AgvCommonService.java +++ b/src/main/java/com/zy/common/service/AgvCommonService.java @@ -27,6 +27,10 @@ private AgvLocRuleService agvLocRuleService; @Autowired private AgvLocMastService agvLocMastService; + @Autowired + private MatService matService; + @Autowired + private LocRuleService locRuleService; public int getWorkNo(Integer wrkMk) { AgvWrkLastno wrkLastno = agvWrkLastnoService.selectById(wrkMk); @@ -70,9 +74,19 @@ public AgvLocMast getLocNo(List<AgvWaitPakin> agvWaitPakinList, int floor) { // 鐩爣搴撲綅 AgvLocMast locMast = null; + if(Cools.isEmpty(agvWaitPakinList)){ + return getLocNoRule(floor); + } //搴撲綅瑙勫垯 locMast = getLocByLocRule(agvWaitPakinList.get(0),floor); + if(!Cools.isEmpty(locMast)){ + return locMast; + } + + + //搴撲綅缂栫爜瑙勫垯 + locMast = getLocByLocCodeRule(agvWaitPakinList.get(0),floor); if(!Cools.isEmpty(locMast)){ return locMast; } @@ -83,15 +97,18 @@ //鎵惧埌搴撲綅锛岃繑鍥瀌to //return getLocNoStep6(staDescId, sourceStaNo, locMast);//杩斿洖dto } -// -// // 闈犺繎鎽嗘斁瑙勫垯 --- 绌烘墭 -// locMast = getLocNoStep4(staDescId, locTypeDto); -// if (locMast != null) { -// //鎵惧埌搴撲綅锛岃繑鍥瀌to -// return getLocNoStep6(staDescId, sourceStaNo, locMast);//杩斿洖dto -// } -// -// // 濡傛灉娌℃湁鐩歌繎鐗╂枡锛屽垯鎸夎鍒欒疆璇㈣揣鏋� + + //鏍规嵁鐗╂枡棰戠巼鎼滅储搴撲綅锛岄鐜囬珮鍒欐悳绱㈢缂撳瓨璐ф灦鏈�杩戝簱浣嶏紝棰戠巼浣庡垯鎼滅储鏈�杩滃簱浣� + Mat mat = matService.selectByMatnr(agvWaitPakinList.get(0).getMatnr()); + if(Cools.isEmpty(mat.getBeBatch())){ + mat.setBeBatch(0); + } + locMast = getLocByFre(mat.getBeBatch(), floor); + if (locMast != null) { + return locMast; + } + + // 寮�濮嬫煡鎵惧簱浣� ==============================>> locMast = getLocNoRule(floor); if (locMast != null) { @@ -137,14 +154,78 @@ } /* + 搴撲綅瑙勫垯鏌ユ壘 + */ + private AgvLocMast getLocByLocCodeRule(AgvWaitPakin agvWaitPakin, int floor) { + if(Cools.isEmpty(agvWaitPakin.getBrand())){ + return null; + } + + //搴撳尯 + String other = "agv-" + floor; + List<LocRule> locRules = locRuleService.findCode(agvWaitPakin.getMatnr(), other); + if(Cools.isEmpty(locRules)){ + return null; + } + + for (LocRule agvLocRule : locRules) { + EntityWrapper<AgvLocMast> wrapper = new EntityWrapper<>(); + wrapper.between("row1",agvLocRule.getRowBeg(),agvLocRule.getRowEnd()) + .between("bay1",agvLocRule.getBayBeg(),agvLocRule.getBayEnd()) + .between("lev1",agvLocRule.getLevBeg(),agvLocRule.getLevEnd()) + .eq("floor",floor) + .eq("loc_sts","O"); + AgvLocMast agvLocMast = agvLocMastService.selectOne(wrapper); + if(!Cools.isEmpty(agvLocMast)){ + return agvLocMast; + } + } + + return null; + } + + /* 闈犺繎鎽嗘斁瑙勫垯 */ - private AgvLocMast getLocByProximityRule(){ //to do return null; } + /* + 鏍规嵁鐗╂枡棰戠巼鏌ユ壘 + */ + private AgvLocMast getLocByFre(int fre, int floor){ + if(floor == 1){ + if(fre == 1){ + return agvLocMastService.selectOne(new EntityWrapper<AgvLocMast>() + .eq("floor",floor) + .eq("loc_sts","O") + .orderBy("bay1",false)); + }else{ + return agvLocMastService.selectOne(new EntityWrapper<AgvLocMast>() + .eq("floor",floor) + .eq("loc_sts","O") + .orderBy("bay1")); + } + } + if(floor == 3){ + if(fre == 1){ + return agvLocMastService.selectOne(new EntityWrapper<AgvLocMast>() + .eq("floor",floor) + .eq("loc_sts","O") + .orderBy("row1",false)); + }else{ + return agvLocMastService.selectOne(new EntityWrapper<AgvLocMast>() + .eq("floor",floor) + .eq("loc_sts","O") + .orderBy("row1")); + } + } + + throw new CoolException("鎼滅储搴撲綅鏃讹紝妤煎眰鍑洪敊銆�"); + } + //闅忔満鍙栦竴涓揣浣� private AgvLocMast getLocNoRule(int floor){ return agvLocMastService.selectOne(new EntityWrapper<AgvLocMast>() -- Gitblit v1.9.1