From dca272efbaf315859decfcd339b39f9f647fffad Mon Sep 17 00:00:00 2001 From: LSH Date: 星期一, 27 三月 2023 10:17:21 +0800 Subject: [PATCH] # --- src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java | 137 +++++++++++++++++++++++++++++++++++++++++---- 1 files changed, 124 insertions(+), 13 deletions(-) diff --git a/src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java index a002055..ebd138e 100644 --- a/src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java +++ b/src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java @@ -27,6 +27,7 @@ import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; +import javax.swing.*; import java.util.*; import java.util.concurrent.TimeUnit; import java.util.stream.Collectors; @@ -90,14 +91,7 @@ BasDevp sourceStaNo = basDevpService.checkSiteStatus(param.getDevpNo(), true); // 妫�绱㈠簱浣� LocTypeDto locTypeDto = new LocTypeDto(sourceStaNo); - - List<String> matnrs = new ArrayList<>(); - for (FullStoreParam.MatCodeStore matCodeStore : param.getList()) { - Mat mat = matService.selectByMatnr(matCodeStore.getMatnr()); - if (mat != null && !matnrs.contains(mat.getMaktx())) { - matnrs.add(mat.getMaktx()); - } - } + List<String> matnrs = param.getList().stream().map(FullStoreParam.MatCodeStore::getMatnr).distinct().collect(Collectors.toList()); StartupDto dto = commonService.getLocNo(DEFAULT_ROW_NO_TYPE, 1, param.getDevpNo(), matnrs, locTypeDto, 0); // 鐢熸垚宸ヤ綔鍙� int workNo = dto.getWorkNo(); @@ -166,6 +160,55 @@ @Override @Transactional public void startupFullTakeStore(StockOutParam param, Long userId) { + ArrayList<String> locNos = new ArrayList<>(); + for (StockOutParam.LocDetl locDetl:param.getLocDetls()){ + locNos.add(locDetl.getLocNo()); + } + //妫�娴嬫槸鍚︿负娴呭簱浣� + List<LocMast> locMasts = null; + boolean sign=false; + String th = ""; + for (StockOutParam.LocDetl locDetl:param.getLocDetls()){ + int row = getRow(locDetl.getLocNo()); + int bay = getBay(locDetl.getLocNo()); + int lev = getLev(locDetl.getLocNo()); + if (!(row==4 || row==5)){ + if (row>5){ + locMasts=locMastService.selectList(new EntityWrapper<LocMast>().ge("row1", 5).le("row1", row) + .eq("bay1",bay).eq("lev1",lev)); + for (LocMast locMast1:locMasts){ + if (locNos.contains(locMast1.getLocNo())){ + continue; + } + if (locMast1.getRow1()<row){ + if (!locMast1.getLocSts().equals("O")){ + sign=true; + th="搴撲綅鍙凤細"+locDetl.getLocNo()+" 娴呭簱浣嶆湁闈炵┖搴撲綅锛�"; + break; + } + } + } + }else { + locMasts=locMastService.selectList(new EntityWrapper<LocMast>().le("row1", 4).ge("row1", row) + .eq("bay1",bay).eq("lev1",lev)); + for (LocMast locMast1:locMasts){ + if (locNos.contains(locMast1.getLocNo())){ + continue; + } + if (locMast1.getRow1()>row){ + if (!locMast1.getLocSts().equals("O")){ + sign=true; + th="搴撲綅鍙凤細"+locDetl.getLocNo()+" 娴呭簱浣嶆湁闈炵┖搴撲綅锛�"; + break; + } + } + } + } + } + } + if (sign){ + throw new CoolException("鍑哄簱澶辫触锛�"+th); + } // 鐩爣绔欑偣鐘舵�佹娴� BasDevp staNo = basDevpService.checkSiteStatus(param.getOutSite()); // 鑾峰彇搴撲綅鏄庣粏 @@ -182,6 +225,33 @@ } else { throw new CoolException("搴撳瓨涓嶅瓨鍦�"); } + } + /** + * 閫氳繃搴撲綅鍙疯幏鍙� 鎺� + */ + public static int getRow(String locNo) { + if (!Cools.isEmpty(locNo)) { + return Integer.parseInt(locNo.substring(0, 2)); + } + throw new RuntimeException("搴撲綅瑙f瀽寮傚父"); + } + /** + * 閫氳繃搴撲綅鍙疯幏鍙� 鍒� + */ + public static int getBay(String locNo) { + if (!Cools.isEmpty(locNo)) { + return Integer.parseInt(locNo.substring(2, 5)); + } + throw new RuntimeException("搴撲綅瑙f瀽寮傚父"); + } + /** + * 閫氳繃搴撲綅鍙疯幏鍙� 灞� + */ + public static int getLev(String locNo) { + if (!Cools.isEmpty(locNo)) { + return Integer.parseInt(locNo.substring(5, 7)); + } + throw new RuntimeException("搴撲綅瑙f瀽寮傚父"); } @Override @@ -462,6 +532,51 @@ @Override @Transactional public void emptyPlateOut(EmptyPlateOutParam param, Long userId) { + //妫�娴嬫槸鍚︿负娴呭簱浣� + List<LocMast> locMasts = null; + boolean sign=false; + String th = ""; + for (String locNoKong: param.getLocNos()){ + int row = getRow(locNoKong); + int bay = getBay(locNoKong); + int lev = getLev(locNoKong); + if (!(row==4 || row==5)){ + if (row>5){ + locMasts=locMastService.selectList(new EntityWrapper<LocMast>().ge("row1", 5).le("row1", row) + .eq("bay1",bay).eq("lev1",lev)); + for (LocMast locMast1:locMasts){ + if (locMast1.getRow1()<row){ + if (!locMast1.getLocSts().equals("O")){ + if (param.getLocNos().contains(locMast1.getLocNo())){ + continue; + } + sign=true; + th="搴撲綅鍙凤細"+locNoKong+" 娴呭簱浣嶆湁闈炵┖搴撲綅锛�"; + break; + } + } + } + }else { + locMasts=locMastService.selectList(new EntityWrapper<LocMast>().le("row1", 4).ge("row1", row) + .eq("bay1",bay).eq("lev1",lev)); + for (LocMast locMast1:locMasts){ + if (locMast1.getRow1()>row){ + if (!locMast1.getLocSts().equals("O")){ + if (param.getLocNos().contains(locMast1.getLocNo())){ + continue; + } + sign=true; + th="搴撲綅鍙凤細"+locNoKong+" 娴呭簱浣嶆湁闈炵┖搴撲綅锛�"; + break; + } + } + } + } + } + } + if (sign){ + throw new CoolException("鍑哄簱澶辫触锛�"+th); + } if (Cools.isEmpty(param.getOutSite())) { throw new CoolException("绔欑偣涓嶅瓨鍦�"); } @@ -951,11 +1066,7 @@ @Override public StartupDto createWaitPainWrkMastStart(List<WaitPakin> list, Long userId) { - if (Cools.isEmpty(list)) { - throw new CoolException("鍏ュ簱閫氱煡妗d笉鑳戒负绌�"); - } - LocTypeDto locTypeDto = new LocTypeDto(); - return wcsController.startupFullPutStore(301, list.get(0).getZpallet(), locTypeDto, null); + return null; } @Override -- Gitblit v1.9.1