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