From aeebe4e93f647dd6ef8780a57997d7ffc62f96af Mon Sep 17 00:00:00 2001
From: luxiaotao1123 <t1341870251@63.com>
Date: 星期一, 11 七月 2022 10:24:07 +0800
Subject: [PATCH] #

---
 src/main/java/com/zy/asrs/service/impl/LocMastServiceImpl.java |   26 ++++++++++++++++++++++++++
 src/main/java/com/zy/asrs/mapper/LocDetlMapper.java            |    3 +++
 src/main/java/com/zy/asrs/service/LocDetlService.java          |    7 +++++++
 src/main/java/com/zy/asrs/service/impl/LocDetlServiceImpl.java |    5 +++++
 src/main/java/com/zy/asrs/service/LocMastService.java          |    2 ++
 src/main/java/com/zy/common/model/LocTypeDto.java              |   12 +++++++++++-
 src/main/java/com/zy/common/service/CommonService.java         |    4 +---
 7 files changed, 55 insertions(+), 4 deletions(-)

diff --git a/src/main/java/com/zy/asrs/mapper/LocDetlMapper.java b/src/main/java/com/zy/asrs/mapper/LocDetlMapper.java
index 6b2cfa3..40fd67d 100644
--- a/src/main/java/com/zy/asrs/mapper/LocDetlMapper.java
+++ b/src/main/java/com/zy/asrs/mapper/LocDetlMapper.java
@@ -30,6 +30,9 @@
     @Update("update asr_loc_detl set loc_no = #{newLocNo}, modi_time=getDate() where loc_no = #{oldLocNo}")
     int updateLocNo(String newLocNo, String oldLocNo);
 
+    @Select("SELECT ld.loc_no FROM asr_loc_detl ld LEFT JOIN asr_loc_mast lm ON ld.loc_no = lm.loc_no WHERE (1 = 1 AND ld.matnr = #{matnr} AND (lm.row1 >= #{start} AND lm.row1 <= #{end})  AND lm.loc_sts = 'F' ORDER BY lm.modi_time ASC")
+    List<String> selectSameDetl(@Param("matnr") String matnr, @Param("start") Integer start, @Param("end") Integer end);
+
     @Select("SELECT ld.loc_no FROM asr_loc_detl ld LEFT JOIN asr_loc_mast lm ON ld.loc_no = lm.loc_no WHERE (1 = 1 AND ld.matnr = #{matnr} AND (lm.row1 >= #{start} AND lm.row1 <= #{end})  AND lm.loc_sts = 'F' AND DateDiff(dd, lm.modi_time, getdate()) = 0) ORDER BY lm.modi_time ASC")
     List<String> selectSameDetlToday(@Param("matnr") String matnr, @Param("start") Integer start, @Param("end") Integer end);
 
diff --git a/src/main/java/com/zy/asrs/service/LocDetlService.java b/src/main/java/com/zy/asrs/service/LocDetlService.java
index 7473a64..e80ba27 100644
--- a/src/main/java/com/zy/asrs/service/LocDetlService.java
+++ b/src/main/java/com/zy/asrs/service/LocDetlService.java
@@ -22,6 +22,13 @@
     boolean updateLocNo(String newLocNo, String oldLocNo);
 
     /**
+     * 鑾峰彇鐩稿悓瑙勬牸璐х墿鐨勬繁搴撲綅鍙�
+     * @param matnr 浜у搧鍙�
+     * @return locNo 搴撲綅鍙�
+     */
+    List<String> getSameDetl(String matnr, Integer start, Integer end);
+
+    /**
      * 鑾峰彇褰撳ぉ鐩稿悓瑙勬牸璐х墿鐨勬繁搴撲綅鍙�
      * @param matnr 鍟嗗搧缂栧彿
      * @return locNo 搴撲綅鍙�
diff --git a/src/main/java/com/zy/asrs/service/LocMastService.java b/src/main/java/com/zy/asrs/service/LocMastService.java
index 1620090..868a7e8 100644
--- a/src/main/java/com/zy/asrs/service/LocMastService.java
+++ b/src/main/java/com/zy/asrs/service/LocMastService.java
@@ -39,4 +39,6 @@
      */
     Boolean isOutMost(String locNo);
 
+    LocMast findOutMost(List<String> locNos);
+
 }
diff --git a/src/main/java/com/zy/asrs/service/impl/LocDetlServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/LocDetlServiceImpl.java
index b2141f1..ff27e08 100644
--- a/src/main/java/com/zy/asrs/service/impl/LocDetlServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/LocDetlServiceImpl.java
@@ -36,6 +36,11 @@
     }
 
     @Override
+    public List<String> getSameDetl(String matnr, Integer start, Integer end) {
+        return this.baseMapper.selectSameDetl(matnr, start, end);
+    }
+
+    @Override
     public List<String> getSameDetlToday(String matnr, Integer start, Integer end) {
         return this.baseMapper.selectSameDetlToday(matnr, start, end);
     }
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..f286926 100644
--- a/src/main/java/com/zy/asrs/service/impl/LocMastServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/LocMastServiceImpl.java
@@ -11,7 +11,10 @@
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
+import java.util.ArrayList;
+import java.util.Comparator;
 import java.util.List;
+import java.util.stream.Collectors;
 
 @Service("locMastService")
 public class LocMastServiceImpl extends ServiceImpl<LocMastMapper, LocMast> implements LocMastService {
@@ -54,4 +57,27 @@
         return Integer.parseInt(locNo.substring(0, 2)) == Utils.getGroupRow(locNo);
     }
 
+    @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(new ArrayList<Integer>() {{ add(1);add(2);add(3);}})
+                || !rows.retainAll(new ArrayList<Integer>() {{ add(8);add(9);add(10);add(11);}})
+                || !rows.retainAll(new ArrayList<Integer>() {{ add(15);add(16);add(17);add(18);}})
+        ) {
+            locNos.sort(Comparator.comparingInt(o -> Integer.parseInt(o.substring(0, 2))));
+        } else if (!rows.retainAll(new ArrayList<Integer>() {{ add(4);add(5);add(6);add(7);}})
+                || !rows.retainAll(new ArrayList<Integer>() {{ add(12);add(13);add(14);}})
+                || !rows.retainAll(new ArrayList<Integer>() {{ add(19);add(20);add(21);}})
+        ) {
+            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;
+    }
+
 }
diff --git a/src/main/java/com/zy/common/model/LocTypeDto.java b/src/main/java/com/zy/common/model/LocTypeDto.java
index c6630aa..151dd75 100644
--- a/src/main/java/com/zy/common/model/LocTypeDto.java
+++ b/src/main/java/com/zy/common/model/LocTypeDto.java
@@ -11,7 +11,7 @@
  */
 @Slf4j
 @Data
-public class LocTypeDto {
+public class LocTypeDto implements Cloneable {
 
     // 楂樹綆绫诲瀷{0:鏈煡,1:浣庡簱浣�,2:楂樺簱浣峿
     private Short locType1;
@@ -37,4 +37,14 @@
         log.info(JSON.toJSONString(this));
     }
 
+    @Override
+    public LocTypeDto clone() {
+        try {
+            return (LocTypeDto) super.clone();
+        } catch (CloneNotSupportedException e) {
+            e.printStackTrace();
+        }
+        return null;
+    }
+
 }
diff --git a/src/main/java/com/zy/common/service/CommonService.java b/src/main/java/com/zy/common/service/CommonService.java
index b5f1c6f..51545f9 100644
--- a/src/main/java/com/zy/common/service/CommonService.java
+++ b/src/main/java/com/zy/common/service/CommonService.java
@@ -3,7 +3,6 @@
 import com.alibaba.fastjson.JSON;
 import com.baomidou.mybatisplus.mapper.EntityWrapper;
 import com.baomidou.mybatisplus.mapper.Wrapper;
-import com.core.common.Arith;
 import com.core.common.Cools;
 import com.core.exception.CoolException;
 import com.zy.asrs.entity.*;
@@ -11,7 +10,6 @@
 import com.zy.asrs.utils.Utils;
 import com.zy.asrs.utils.VersionUtils;
 import com.zy.common.model.LocTypeDto;
-import com.zy.common.model.Shelves;
 import com.zy.common.model.StartupDto;
 import com.zy.common.properties.SlaveProperties;
 import lombok.extern.slf4j.Slf4j;
@@ -255,7 +253,7 @@
 
         // 1.褰撴绱㈠簱鎺掍负娴呭簱浣嶆帓鏃讹紝浼樺厛瀵绘壘褰撳墠搴撴帓鐨勬繁搴撲綅鎺�
         if (locMast == null) {
-            locMast = locMastService.queryFreeLocMast(curRow, locTypeDto.getLocType1(), locTypeDto.getLocType2(), locTypeDto.getLocType3());
+            locMast = locMastService.queryFreeLocMast(curRow, locTypeDto.getLocType1());
             // 鍥犲簱浣嶇Щ杞�侀渶棰勭暀绌哄簱浣�
             if (!locMastService.checkEmptyCount(locMast)) {
                 locMast = null;

--
Gitblit v1.9.1