From bdfd536193a109efa66ebc25d2434dc9e07abdc7 Mon Sep 17 00:00:00 2001
From: luxiaotao1123 <t1341870251@63.com>
Date: 星期三, 24 八月 2022 16:44:41 +0800
Subject: [PATCH] #

---
 src/main/java/com/zy/asrs/service/impl/LocMastServiceImpl.java |   28 ++++++++++++++++++++++++----
 1 files changed, 24 insertions(+), 4 deletions(-)

diff --git a/src/main/java/com/zy/asrs/service/impl/LocMastServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/LocMastServiceImpl.java
index 2b422df..b1f2189 100644
--- a/src/main/java/com/zy/asrs/service/impl/LocMastServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/LocMastServiceImpl.java
@@ -8,10 +8,13 @@
 import com.zy.asrs.service.LocMastService;
 import com.zy.asrs.service.RowLastnoService;
 import com.zy.asrs.utils.Utils;
+import com.zy.common.service.CommonService;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
+import java.util.Comparator;
 import java.util.List;
+import java.util.stream.Collectors;
 
 @Service("locMastService")
 public class LocMastServiceImpl extends ServiceImpl<LocMastMapper, LocMast> implements LocMastService {
@@ -20,8 +23,8 @@
     private RowLastnoService rowLastnoService;
 
     @Override
-    public LocMast queryFreeLocMast(Integer row, Short locType1) {
-        return this.baseMapper.queryFreeLocMast(row, locType1);
+    public LocMast queryFreeLocMast(Integer row, List<Integer> rows, Short locType1) {
+        return this.baseMapper.queryFreeLocMast(row, rows, locType1);
     }
 
     @Override
@@ -50,8 +53,25 @@
     }
 
     @Override
-    public Boolean isOutMost(String locNo) {
-        return Integer.parseInt(locNo.substring(0, 2)) == Utils.getGroupRow(locNo);
+    public Boolean isOutMost(String locNo, Boolean pakin) {
+        return Integer.parseInt(locNo.substring(0, 2)) == Utils.getGroupRow(locNo, true);
+    }
+
+    @Override
+    public LocMast findOutMost(List<String> locNos) {
+        List<Integer> rows = locNos.stream().map(item -> Integer.parseInt(item.substring(0, 2))).distinct().collect(Collectors.toList());
+        if (!rows.retainAll(CommonService.FIRST_GROUP_ROW_LIST)) {
+            locNos.sort(Comparator.comparingInt(o -> Integer.parseInt(o.substring(0, 2))));
+        } else if (!rows.retainAll(CommonService.SECOND_GROUP_ROW_LIST)) {
+            locNos.sort((o1, o2) -> Integer.parseInt(o2.substring(0, 2)) - Integer.parseInt(o1.substring(0, 2)));
+        }
+        for (String locNo : locNos) {
+            LocMast locMast = this.selectById(locNo);
+            if (locMast.getLocSts().equals("O")) {
+                return locMast;
+            }
+        }
+        return null;
     }
 
 }

--
Gitblit v1.9.1