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 | 152 ++++++++++++++++++++++++++++++++++++++++++++++---- 1 files changed, 138 insertions(+), 14 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 df4d621..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; @@ -159,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()); // 鑾峰彇搴撲綅鏄庣粏 @@ -175,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 @@ -220,7 +297,9 @@ // 鑾峰彇搴撲綅 LocMast locMast = locMastService.selectById(dto.getLocNo()); // 鑾峰彇璺緞 - StaDesc staDesc = staDescService.queryCrnStn(ioType, locMast.getCrnNo(), staNo.getDevNo()); + Boolean outMost = locMastService.isOutMost(dto.getLocNo(), false); + Integer outCrnNo = locMastService.getOutCrnNo(locMast); + StaDesc staDesc = staDescService.queryCrnStn(ioType, outCrnNo, staNo.getDevNo()); // 鐢熸垚宸ヤ綔鍙� int workNo = commonService.getWorkNo(WorkNoType.getWorkNoType(ioType)); // 鐢熸垚宸ヤ綔妗� @@ -231,8 +310,8 @@ wrkMast.setIoType(ioType); // 鍏ュ嚭搴撶姸鎬� Double ioPri = wrkMastService.getIoPri(ioType, dto.getLocNo()); wrkMast.setIoPri(ioPri); // 浼樺厛绾э細13 - wrkMast.setOutMost(locMastService.isOutMost(dto.getLocNo(), false)?1:0);; - wrkMast.setCrnNo(locMast.getCrnNo()); + wrkMast.setOutMost(outMost?1:0);; + wrkMast.setCrnNo(outMost?outCrnNo:locMast.getCrnNo()); wrkMast.setSourceStaNo(staDesc.getCrnStn()); // 婧愮珯 wrkMast.setStaNo(staDesc.getStnNo()); // 鐩爣绔� wrkMast.setSourceLocNo(dto.getLocNo()); // 婧愬簱浣� @@ -297,7 +376,9 @@ LocMast locMast = locMastService.selectById(taskDto.getLocNo()); // 鑾峰彇璺緞 int ioType = taskDto.isAll() ? 101 : 103; - StaDesc staDesc = staDescService.queryCrnStnAuto(ioType, locMast.getCrnNo(), staNo.getDevNo()); + Boolean outMost = locMastService.isOutMost(taskDto.getLocNo(), false); + Integer outCrnNo = locMastService.getOutCrnNo(locMast); + StaDesc staDesc = staDescService.queryCrnStnAuto(ioType, outCrnNo, staNo.getDevNo()); // 鐢熸垚宸ヤ綔鍙� int workNo = commonService.getWorkNo(WorkNoType.getWorkNoType(ioType)); // 鐢熸垚宸ヤ綔妗� @@ -308,8 +389,8 @@ wrkMast.setIoType(ioType); // 鍏ュ嚭搴撶姸鎬� Double ioPri = wrkMastService.getIoPri(ioType, taskDto.getLocNo()); wrkMast.setIoPri(ioPri); // 浼樺厛绾э細13 - wrkMast.setOutMost(locMastService.isOutMost(taskDto.getLocNo(), false)?1:0);; - wrkMast.setCrnNo(locMast.getCrnNo()); + wrkMast.setOutMost(outMost?1:0);; + wrkMast.setCrnNo(outMost?outCrnNo:locMast.getCrnNo()); wrkMast.setSourceStaNo(staDesc.getCrnStn()); // 婧愮珯 wrkMast.setStaNo(staDesc.getStnNo()); // 鐩爣绔� wrkMast.setSourceLocNo(taskDto.getLocNo()); // 婧愬簱浣� @@ -451,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("绔欑偣涓嶅瓨鍦�"); } @@ -469,11 +595,13 @@ if (Cools.isEmpty(locMast)) { throw new CoolException(locNo+"搴撲綅涓嶅瓨鍦�"); } + Boolean outMost = locMastService.isOutMost(locNo, false); + Integer outCrnNo = locMastService.getOutCrnNo(locMast); // 鑾峰彇婧愮珯 Wrapper<StaDesc> wrapper = new EntityWrapper<StaDesc>() .eq("type_no", 110) .eq("stn_no", param.getOutSite()) - .eq("crn_no", locMast.getCrnNo()); + .eq("crn_no", outCrnNo); StaDesc staDesc = staDescService.selectOne(wrapper); if (Cools.isEmpty(staDesc)) { throw new CoolException("闈炴硶璺緞锛�"); @@ -492,8 +620,8 @@ wrkMast.setIoPri(ioPri); wrkMast.setSourceStaNo(sourceStaNo); // 婧愮珯 wrkMast.setStaNo(param.getOutSite()); // 鐩爣绔� - wrkMast.setOutMost(locMastService.isOutMost(locNo, false)?1:0);; - wrkMast.setCrnNo(locMast.getCrnNo()); + wrkMast.setOutMost(outMost?1:0);; + wrkMast.setCrnNo(outMost?outCrnNo:locMast.getCrnNo()); wrkMast.setSourceLocNo(locNo); // 婧愬簱浣� wrkMast.setFullPlt("N"); // 婊℃澘锛歒 wrkMast.setPicking("N"); // 鎷f枡 @@ -938,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, list); + return null; } @Override -- Gitblit v1.9.1