From 0f769b47d8d71bd419ddf1733b0b2f21c82e86b1 Mon Sep 17 00:00:00 2001 From: pang.jiabao <pang_jiabao@163.com> Date: 星期一, 07 十月 2024 10:33:30 +0800 Subject: [PATCH] 跨巷道移库 --- src/main/java/com/zy/common/service/CommonService.java | 78 +++++++++++++++++++++------------------ 1 files changed, 42 insertions(+), 36 deletions(-) diff --git a/src/main/java/com/zy/common/service/CommonService.java b/src/main/java/com/zy/common/service/CommonService.java index 67550c8..96e877c 100644 --- a/src/main/java/com/zy/common/service/CommonService.java +++ b/src/main/java/com/zy/common/service/CommonService.java @@ -17,7 +17,10 @@ import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; +import java.util.HashMap; import java.util.List; +import java.util.Map; +import java.util.stream.Collectors; /** * 璐ф灦鏍稿績鍔熻兘 @@ -119,20 +122,11 @@ * 鍙屾繁鎵惧簱浣� */ @Transactional - public StartupDto getLocNo(Integer staDescId, Integer sourceStaNo,LocTypeDto locTypeDto) { - - // 鐩爣搴撲綅 + public StartupDto getLocNo(Integer staDescId, Integer sourceStaNo,LocTypeDto locTypeDto,int times) { LocMast locMast; -// // 鎼滅储绌烘墭 -// locMast = getLocNoStep4(staDescId, sourceStaNo); -// if (locMast != null) { -// //鎵惧埌搴撲綅锛岃繑鍥瀌to -// return getLocNoStep6(staDescId, sourceStaNo, locMast);//杩斿洖dto -// } - - //鎼滅储鏁翠釜绌哄簱浣嶇粍 locMast = getLocNoStepSingle(locTypeDto); + if (locMast != null) { //鎵惧埌搴撲綅锛岃繑鍥瀌to return getLocNoStep6(staDescId, sourceStaNo, locMast);//杩斿洖dto @@ -141,37 +135,49 @@ //鎵句笉鍒板簱浣嶏紝鎶涘嚭寮傚父 throw new CoolException("娌℃湁绌哄簱浣�"); } + // 鎼滅储鍗曞搧(鏁翠釜搴撲綅缁�) private LocMast getLocNoStepSingle(LocTypeDto locTypeDto) { + LocMast locMast = null; - //鍗曞搧 - List<LocMast> locMasts = locMastService.selectAreaEmpty(locTypeDto.getLocType1());//鎼滅储璐х墿 + // 鑾峰彇妯″紡涓虹數鑴戞ā寮忥紝鏃犱换鍔$殑鍫嗗灈鏈哄垪琛�:闃叉鍒嗛厤鍒板爢鍨涙満涓嶅彲鐢� + List<BasCrnp> basCrnps = basCrnpService.selectList(new EntityWrapper<BasCrnp>().eq("crn_sts",3) + .eq("wrk_no",0).eq("in_enable","Y")); + if (basCrnps.isEmpty()) { + // 閮芥湁浠诲姟鍒欒幏鍙栫數鑴戞ā寮忕殑鍫嗗灈鏈哄垪琛� + basCrnps = basCrnpService.selectList(new EntityWrapper<BasCrnp>().eq("crn_sts",3).eq("in_enable","Y")); + } + if (basCrnps.isEmpty()) { + throw new CoolException("娌℃湁鍙敤鍫嗗灈鏈�,鍫嗗灈鏈哄仠姝㈡垨寮傚父鎴栫鐢�"); + } + // 鍙敤鍫嗗灈鏈哄垪琛� + List<Integer> crnNoList = basCrnps.stream().map(BasCrnp::getCrnNo).collect(Collectors.toList()); + + // 鎼滅储娣卞簱浣� + List<LocMast> locMasts = locMastService.selectList(new EntityWrapper<LocMast>() + .eq("loc_sts","O").in("crn_no",crnNoList).in("row1","1,4,5,8,9,12,13,16,17,20,21,24").orderBy("lev1,bay1,row1")); + + // 娣卞簱浣嶆病鏈夊垯鎼滅储娴呭簱浣� + if (locMasts.isEmpty()) { + locMasts = locMastService.selectList(new EntityWrapper<LocMast>() + .eq("loc_sts","O").in("crn_no",crnNoList).in("row1","2,3,6,7,10,11,14,15,18,19,22,23").orderBy("lev1,bay1,row1")); + } + if (locMasts.isEmpty()) { + throw new CoolException("娌℃湁鍙敤搴撲綅"); + } + + // 璁板綍鍫嗗灈鏈烘槸鍚︽煡璇㈣繃锛岄伩鍏嶉噸澶嶆煡璇� + Map<Integer,Boolean> crnMap = new HashMap<>(); for (LocMast mast : locMasts) { - List<String> groupLoc = Utils.getGroupLocNo(mast.getLocNo(), true); -// if (!locMastService.checkAllLocEmpty(groupLoc)) { -// continue; -// } - - LocMast tmp = null; - for (String loc : groupLoc) { - LocMast locMast1 = locMastService.selectByLoc(loc); - if (locMast1 == null) { - continue; + if (crnMap.get(mast.getCrnNo()) == null) { + //棰勭暀绌哄簱浣� + if (locMastService.checkEmptyCount(mast, 10)) { + locMast = mast; + break; + } else { + crnMap.put(mast.getCrnNo(),true); } - - if (!locMast1.getLocSts().equals("O")) { - continue; - } - - tmp = locMast1; - break; - } - - //棰勭暀绌哄簱浣� - if (tmp != null && locMastService.checkEmptyCount(mast, 10)) { - locMast = tmp; - break; } } -- Gitblit v1.9.1