From 2191824072549f0da35d73686a075e59b0196321 Mon Sep 17 00:00:00 2001
From: ZY <zc857179121@qq.com>
Date: 星期三, 25 九月 2024 15:02:25 +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 | 64 +++++++++++++++++++++++++++-----
1 files changed, 54 insertions(+), 10 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..02263e7 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.param.FieldParam;
import com.zy.asrs.wms.asrs.mapper.ViewLocDetlMapper;
import com.zy.asrs.wms.asrs.mapper.ViewTaskDetlMapper;
import com.zy.asrs.wms.asrs.service.*;
@@ -35,22 +36,29 @@
private ViewLocDetlMapper viewLocDetlMapper;
@Autowired
private ViewTaskDetlMapper viewTaskDetlMapper;
+ @Autowired
+ private MatService matService;
//浠庡簱瀛樻垨浠诲姟涓尮閰嶇浉閭诲簱浣�(婊℃墭鐩�)
- public Loc getNeighborLoc(Long taskType, OrderDetl orderDetl, Integer locTypeHeight) {
+ public Loc getNeighborLoc(Long taskType, Long matId, String batch, List<FieldParam> uniqueFields, Integer locTypeHeight) {
//婊℃墭鐩�
+ Mat mat = matService.getById(matId);
+ if (mat == null) {
+ return null;
+ }
+
//浠庝换鍔′腑杩涜鍖归厤
List<Loc> locs = new ArrayList<>();
- List<Map<String, Object>> list = viewTaskDetlMapper.getList(orderDetl.getMat$().getMatnr(), orderDetl.getBatch(), orderDetl.getUniqueField());
+ List<Map<String, Object>> list = viewTaskDetlMapper.getList(mat.getMatnr(), batch, uniqueFields);
for (Map<String, Object> map : list) {
Task task = taskService.getById(map.get("taskId").toString());
- if(task == null) {
+ if (task == null) {
continue;
}
String targetLoc = task.getTargetLoc();
Loc one = locService.getOne(new LambdaQueryWrapper<Loc>().eq(Loc::getLocNo, targetLoc));
- if(one == null) {
+ if (one == null) {
continue;
}
locs.add(one);
@@ -63,10 +71,10 @@
//浠庡簱瀛樹腑杩涜鍖归厤
List<Loc> locs2 = new ArrayList<>();
- List<Map<String, Object>> list2 = viewLocDetlMapper.getList(orderDetl.getMat$().getMatnr(), orderDetl.getBatch(), orderDetl.getUniqueField());
+ List<Map<String, Object>> list2 = viewLocDetlMapper.getList(mat.getMatnr(), batch, uniqueFields, null);
for (Map<String, Object> map : list2) {
Loc one = locService.getById(map.get("locId").toString());
- if(one == null) {
+ if (one == null) {
continue;
}
locs2.add(one);
@@ -80,7 +88,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 +117,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 +135,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 +149,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 +296,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 +309,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 +327,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 +341,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