From 02df7ad658b0fbc73b3c4739719be691eec45a8b Mon Sep 17 00:00:00 2001 From: whycq <10027870+whycq@user.noreply.gitee.com> Date: 星期三, 01 十一月 2023 11:33:26 +0800 Subject: [PATCH] # --- src/main/java/com/zy/asrs/utils/Utils.java | 107 ++++++++++++++++++++++++++++++++++- src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java | 39 ++++++++++-- 2 files changed, 134 insertions(+), 12 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 3218390..8948c1f 100644 --- a/src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java +++ b/src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java @@ -478,21 +478,44 @@ Date now = new Date(); // 鍚堝苟鍚岀被椤� Set<String> locNos = new HashSet<>(); + ArrayList<String> locNos2 = new ArrayList<String>(); List<OutLocDto> dtos = new ArrayList<>(); for (LocDetlDto locDetlDto : locDetlDtos) { String locNo = locDetlDto.getLocDetl().getLocNo(); - if (locNos.contains(locNo)) { - for (OutLocDto dto : dtos) { - if (dto.getLocNo().equals(locNo)) { - dto.getLocDetlDtos().add(locDetlDto); - break; + locNos2.add(locNo); + //if (locNos.contains(locNo)) { + //for (OutLocDto dto : dtos) { + // if (dto.getLocNo().equals(locNo)) { + // dto.getLocDetlDtos().add(locDetlDto); + // break; + // } + //} + //} else { + //locNos.add(locNo); + + //dtos.add(new OutLocDto(locNo, locDetlDto)); + //} + } + List<String> innermostSideLoc = Utils.getInnermostSideLoc(locNos2, true); + System.out.println(innermostSideLoc); + for (LocDetlDto locDetlDto : locDetlDtos) { + String locNo = locDetlDto.getLocDetl().getLocNo(); + if(innermostSideLoc.contains(locNo)) { + if (locNos.contains(locNo)) { + for (OutLocDto dto : dtos) { + if (dto.getLocNo().equals(locNo)) { + dto.getLocDetlDtos().add(locDetlDto); + break; + } } + } else { + locNos.add(locNo); + dtos.add(new OutLocDto(locNo, locDetlDto)); } - } else { - locNos.add(locNo); - dtos.add(new OutLocDto(locNo, locDetlDto)); + //dtos.add(new OutLocDto(locNo,locDetlDto)); } } + Integer ioType = null; List<String> excludeLocNos = dtos.stream().map(OutLocDto::getLocNo).distinct().collect(Collectors.toList()); // 鐢熸垚宸ヤ綔妗� diff --git a/src/main/java/com/zy/asrs/utils/Utils.java b/src/main/java/com/zy/asrs/utils/Utils.java index 1eeb648..1705301 100644 --- a/src/main/java/com/zy/asrs/utils/Utils.java +++ b/src/main/java/com/zy/asrs/utils/Utils.java @@ -868,10 +868,10 @@ return randomCrnNo; } - public static void main(String[] args) { - List<String> groupLoc = Utils.getGroupLoc("1300801"); - System.out.println(groupLoc); - } + //public static void main(String[] args) { + // List<String> groupLoc = Utils.getGroupLoc("1300801"); + // System.out.println(groupLoc); + //} public static Double getIoPri(String locNo){ switch (Utils.getRow(locNo)){ @@ -997,4 +997,103 @@ } } + public static void main(String[] args) { + ArrayList<String> locS = new ArrayList<String>(); + locS.add("1902501"); + locS.add("2102501"); + locS.add("1802301"); + locS.add("1800101"); + locS.add("0300102"); + locS.add("0100102"); + List<String> innermostSideLoc = getInnermostSideLoc(locS, true); + System.out.println(innermostSideLoc); + } + + public static List<String> getInnermostSideLoc(List<String> locS, boolean pakin){ + ArrayList<String> listLoc = new ArrayList<>(); + ArrayList<String> listLocRBL = new ArrayList<>(); + for (String locNo : locS){ + if (!listLocRBL.contains(Utils.getInnermostSideLocRBL(locNo, pakin))){ + listLocRBL.add(Utils.getInnermostSideLocRBL(locNo, pakin)); + listLoc.add(locNo); + }else { + for (String loc1 : listLoc){ + if (Utils.getInnermostSideLocRBL(locNo, pakin).equals(Utils.getInnermostSideLocRBL(loc1, pakin))){ + if (!pakin){ + if (Utils.getRow(loc1)>17 && Utils.getRow(locNo)>Utils.getRow(loc1) ){ + listLoc.remove(loc1); + listLoc.add(locNo); + break; + }else if ( Utils.getRow(loc1)<18 && Utils.getRow(locNo)<Utils.getRow(loc1)){ + listLoc.remove(loc1); + listLoc.add(locNo); + break; + } + }else { + if ( Utils.getRow(loc1)<4 && Utils.getRow(locNo)>Utils.getRow(loc1)){ + listLoc.remove(loc1); + listLoc.add(locNo); + break; + } else if (Utils.getRow(loc1)>3 && Utils.getRow(loc1)<8 && Utils.getRow(locNo)<Utils.getRow(loc1) ){ + listLoc.remove(loc1); + listLoc.add(locNo); + break; + } else if (Utils.getRow(loc1)>7 && Utils.getRow(loc1)<12 && Utils.getRow(locNo)>Utils.getRow(loc1) ){ + listLoc.remove(loc1); + listLoc.add(locNo); + break; + } else if (Utils.getRow(loc1)>11 && Utils.getRow(loc1)<15 && Utils.getRow(locNo)<Utils.getRow(loc1) ){ + listLoc.remove(loc1); + listLoc.add(locNo); + break; + } else if (Utils.getRow(loc1)>14 && Utils.getRow(loc1)<19 && Utils.getRow(locNo)>Utils.getRow(loc1) ){ + listLoc.remove(loc1); + listLoc.add(locNo); + break; + } else if ( Utils.getRow(loc1)>18 && Utils.getRow(locNo)<Utils.getRow(loc1)){ + listLoc.remove(loc1); + listLoc.add(locNo); + break; + } + } + } + } + } + } + return listLoc; + } + + public static String getInnermostSideLocRBL(String locNo, boolean pakin){ + int row = Utils.getRow(locNo); + if (row <= 3) { + row = 3; + } else if (row <= 7) { + row = 4; + } else if (row <= 11) { + row = 11; + } else if (row <= 14) { + row = 12; + } else if (row <= 18) { + row = 18; + } else { + row = 19; + } + return ""+row+Utils.getBay(locNo)+Utils.getLev(locNo); + + //if (row <3){ + // return ""+33+Utils.getBay(locNo)+Utils.getLev(locNo); + //}else if (row>30){ + // return ""+31+Utils.getBay(locNo)+Utils.getLev(locNo); + //} + //if (row<18 && row>1){ + // row=1; + //}else if (row < 31 && row>17){ + // row=2; + //} + //if (pakin){ + // row=3-row; + //} + //return ""+row+Utils.getBay(locNo)+Utils.getLev(locNo); + + } } -- Gitblit v1.9.1