From 1c02f5b648cd3c58a7db7dcec761071d5daabb26 Mon Sep 17 00:00:00 2001
From: ZY <zc857179121@qq.com>
Date: 星期二, 20 八月 2024 13:24:20 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/wms-dev' into wms-dev

---
 zy-asrs-wms/src/main/java/com/zy/asrs/wms/utils/LocUtils.java |   45 +++++++++++++++++++++++++++++++++++++++++----
 1 files changed, 41 insertions(+), 4 deletions(-)

diff --git a/zy-asrs-wms/src/main/java/com/zy/asrs/wms/utils/LocUtils.java b/zy-asrs-wms/src/main/java/com/zy/asrs/wms/utils/LocUtils.java
index 06d9e13..3c9330c 100644
--- a/zy-asrs-wms/src/main/java/com/zy/asrs/wms/utils/LocUtils.java
+++ b/zy-asrs-wms/src/main/java/com/zy/asrs/wms/utils/LocUtils.java
@@ -6,6 +6,7 @@
 import com.zy.asrs.wms.asrs.entity.*;
 import com.zy.asrs.wms.asrs.entity.enums.LocStsType;
 import com.zy.asrs.wms.asrs.entity.enums.LocTypeHeightType;
+import com.zy.asrs.wms.asrs.entity.enums.ShelvesRuleType;
 import com.zy.asrs.wms.asrs.mapper.ViewLocDetlMapper;
 import com.zy.asrs.wms.asrs.mapper.ViewTaskDetlMapper;
 import com.zy.asrs.wms.asrs.service.*;
@@ -80,7 +81,7 @@
     }
 
     //鑾峰彇鎺ㄨ崘搴撲綅(婊℃墭鐩�)
-    public List<Loc> getSuggestLoc(Long taskType, Long matId, String batch, Integer locTypeHeight) {
+    public List<Loc> getSuggestLoc(Long taskType, Long matId, String batch, Integer locTypeHeight, List<Integer> laneRowList, Integer currentLev) {
         //婊℃墭鐩�
         List<Loc> locs = new ArrayList<>();
         LocTypeHeightType locTypeHeightType = LocTypeHeightType.get(locTypeHeight);
@@ -109,6 +110,15 @@
             queryWrapper.le(Loc::getLev1, suggestLocRule.getTargetLev());
             queryWrapper.eq(Loc::getLocStsId, LocStsType.O.val());
             queryWrapper.in(Loc::getId, locIdList);
+
+            if (laneRowList != null && !laneRowList.isEmpty()) {
+                queryWrapper.in(Loc::getRow1, laneRowList);
+            }
+
+            if (currentLev != null) {
+                queryWrapper.eq(Loc::getLev1, currentLev);
+            }
+
             List<Loc> list = locService.list(queryWrapper);
             if (!list.isEmpty()) {
                 locs.addAll(list);
@@ -118,7 +128,7 @@
     }
 
     //鑾峰彇鍏ㄥ眬搴撲綅(瀹屾暣宸烽亾)
-    public List<Loc> getGlobalLoc(Long taskType, Integer locTypeHeight) {
+    public List<Loc> getGlobalLoc(Long taskType, Integer locTypeHeight, List<Integer> laneRowList, Integer currentLev) {
         List<Loc> locs = new ArrayList<>();
         LocTypeHeightType locTypeHeightType = LocTypeHeightType.get(locTypeHeight);
         if (locTypeHeightType == null) {
@@ -132,6 +142,15 @@
         LambdaQueryWrapper<Loc> queryWrapper = new LambdaQueryWrapper<>();
         queryWrapper.eq(Loc::getLocStsId, LocStsType.O.val());
         queryWrapper.in(Loc::getId, locIdList);
+
+        if (laneRowList != null && !laneRowList.isEmpty()) {
+            queryWrapper.in(Loc::getRow1, laneRowList);
+        }
+
+        if (currentLev != null) {
+            queryWrapper.eq(Loc::getLev1, currentLev);
+        }
+
         List<Loc> list = locService.list(queryWrapper);
         if (!list.isEmpty()) {
             locs.addAll(list);
@@ -270,7 +289,7 @@
     }
 
     //鑾峰彇鎺ㄨ崘搴撲綅(绌烘墭鐩�)
-    public List<Loc> getSuggestEmptyLoc(Long taskType, Integer locTypeHeight) {
+    public List<Loc> getSuggestEmptyLoc(Long taskType, Integer locTypeHeight, List<Integer> laneRowList, Integer currentLev) {
         List<Loc> locs = new ArrayList<>();
         //绌烘墭鐩�
         List<SuggestLocRule> suggestLocRules = suggestLocRuleService.list(new LambdaQueryWrapper<SuggestLocRule>().eq(SuggestLocRule::getLocType, 0));
@@ -283,6 +302,15 @@
             queryWrapper.ge(Loc::getLev1, suggestLocRule.getStartLev());
             queryWrapper.le(Loc::getLev1, suggestLocRule.getTargetLev());
             queryWrapper.eq(Loc::getLocStsId, LocStsType.O.val());
+
+            if (laneRowList != null && !laneRowList.isEmpty()) {
+                queryWrapper.in(Loc::getRow1, laneRowList);
+            }
+
+            if (currentLev != null) {
+                queryWrapper.eq(Loc::getLev1, currentLev);
+            }
+
             List<Loc> list = locService.list(queryWrapper);
             if (!list.isEmpty()) {
                 locs.addAll(list);
@@ -292,7 +320,7 @@
     }
 
     //鑾峰彇鍏ㄥ眬搴撲綅(瀹屾暣宸烽亾)
-    public List<Loc> getGlobalEmptyLoc(Long taskType, Integer locTypeHeight) {
+    public List<Loc> getGlobalEmptyLoc(Long taskType, Integer locTypeHeight, List<Integer> laneRowList, Integer currentLev) {
         List<Loc> locs = new ArrayList<>();
         LocTypeHeightType locTypeHeightType = LocTypeHeightType.get(locTypeHeight);
         if (locTypeHeightType == null) {
@@ -306,6 +334,15 @@
         LambdaQueryWrapper<Loc> queryWrapper = new LambdaQueryWrapper<>();
         queryWrapper.eq(Loc::getLocStsId, LocStsType.O.val());
         queryWrapper.in(Loc::getId, locIdList);
+
+        if (laneRowList != null && !laneRowList.isEmpty()) {
+            queryWrapper.in(Loc::getRow1, laneRowList);
+        }
+
+        if (currentLev != null) {
+            queryWrapper.eq(Loc::getLev1, currentLev);
+        }
+
         List<Loc> list = locService.list(queryWrapper);
         if (!list.isEmpty()) {
             locs.addAll(list);

--
Gitblit v1.9.1