From e64b1d5ec0b3ca0c42048903f4ab5f9d588349e8 Mon Sep 17 00:00:00 2001
From: cp <513960435@qq.com>
Date: 星期四, 19 六月 2025 08:37:51 +0800
Subject: [PATCH] #
---
zy-asrs-common/src/main/java/com/zy/asrs/common/wms/service/CommonService.java | 60 ++++++++++++++++++++++++++++++++++++++++++++++++++----------
1 files changed, 50 insertions(+), 10 deletions(-)
diff --git a/zy-asrs-common/src/main/java/com/zy/asrs/common/wms/service/CommonService.java b/zy-asrs-common/src/main/java/com/zy/asrs/common/wms/service/CommonService.java
index 37c6eb6..1f47c0a 100644
--- a/zy-asrs-common/src/main/java/com/zy/asrs/common/wms/service/CommonService.java
+++ b/zy-asrs-common/src/main/java/com/zy/asrs/common/wms/service/CommonService.java
@@ -46,6 +46,8 @@
@Autowired
private LocDirectionService locDirectionService;
+ private Long WHS_TYPE = 0L;//榛樿绔嬪簱
+
/**
* 鐢熸垚宸ヤ綔鍙�
*
@@ -91,6 +93,11 @@
*/
@Transactional
public StartupDto getLocNo(Integer staDescId, Integer sourceStaNo, List<String> matnrs, String batch, Long hostId, LocTypeDto locTypeDto, int times) {
+ if (sourceStaNo==999){//骞冲簱鍐呯疆鍒ゆ柇绔欑偣锛堜复鏃惰В鍐虫柟妗堬級
+ WHS_TYPE = 1L;//骞冲簱
+ } else {
+ WHS_TYPE = 0L;//绔嬪簱
+ }
// 鐩爣搴撲綅
LocMast locMast = null;
@@ -150,10 +157,10 @@
continue;
}
- List<LocMast> locMasts = locMastService.queryFreeLocMast2(locTypeDto.getLocType1(), locRule.getRowBeg(), locRule.getRowEnd(), locRule.getBayBeg(), locRule.getBayEnd(), locRule.getLevBeg(), locRule.getLevEnd(), hostId);
+ List<LocMast> locMasts = locMastService.queryFreeLocMast2(locTypeDto.getLocType1(), locRule.getRowBeg(), locRule.getRowEnd(), locRule.getBayBeg(), locRule.getBayEnd(), locRule.getLevBeg(), locRule.getLevEnd(), hostId,WHS_TYPE);
for (LocMast locMast0 : locMasts) {
//棰勭暀绌哄簱浣�
- if (locMastService.checkEmptyCount(locMast0, 10, hostId)) {
+ if (locMastService.checkEmptyCount(locMast0, 5, hostId)) {
return locMast0;
}
}
@@ -237,12 +244,14 @@
.eq(LocMast::getLocSts, "D")
.eq(LocMast::getLocType1, locTypeDto.getLocType1())
.eq(LocMast::getCrnNo, staDesc.getDeviceNo())
+ .eq(LocMast::getWhsType, WHS_TYPE)
.eq(LocMast::getHostId, hostId);
LambdaQueryWrapper<LocMast> wrapper1 = new LambdaQueryWrapper<LocMast>()
.eq(LocMast::getLocSts, "O")
.eq(LocMast::getLocType1, locTypeDto.getLocType1())
.eq(LocMast::getCrnNo, staDesc.getDeviceNo())
+ .eq(LocMast::getWhsType, WHS_TYPE)
.eq(LocMast::getHostId, hostId);
//搴撲綅鎼滅储鑼冨洿
@@ -312,8 +321,14 @@
LambdaQueryWrapper<LocMast> wrapper1 = new LambdaQueryWrapper<LocMast>()
.eq(LocMast::getLocSts, "O")
.eq(LocMast::getHostId, hostId)
- .in(LocMast::getRow1, curRow)
- .orderByAsc(LocMast::getLev1);
+ .eq(LocMast::getLocType1, locTypeDto.getLocType1())
+ .le(LocMast::getRow1, eRow)
+ .ge(LocMast::getRow1, sRow)
+// .in(LocMast::getRow1, curRow)
+ .orderByAsc(LocMast::getLev1)
+ .orderByAsc(LocMast::getBay1);
+
+
//搴撲綅鎼滅储鑼冨洿
LocRangeDto locRangeDto = locTypeDto.getLocRangeDto();
if (locRangeDto != null) {
@@ -328,18 +343,43 @@
for (LocMast mast : locMasts) {
LocMast innerLoc = null;
for (String loc : Utils.getGroupLoc(mast.getLocNo(), hostId)) {
+ //1 2
LocMast one = locMastService.getOne(new LambdaQueryWrapper<LocMast>().eq(LocMast::getLocNo, loc).eq(LocMast::getHostId, hostId));
if (!one.getLocSts().equals("O")) {
- innerLoc = null;
+// innerLoc = null;
continue;
}
-
- if (innerLoc == null) {
- List<Integer> innerDeepRow = locDirectionService.getInnerDeepRow(hostId);
- if (innerDeepRow.contains(one.getRow1())) {
- innerLoc = one;
+ if(Utils.getRow(one.getLocNo())==2){
+ LocMast locMast1=locMastService.getOne(new LambdaQueryWrapper<LocMast>()
+ .eq(LocMast::getRow1, 1)
+ .eq(LocMast::getBay1,one.getBay1())
+ .eq(LocMast::getLev1,one.getLev1())
+ .eq(LocMast::getHostId, hostId));
+ if(!locMast1.getLocSts().equals("F")){
+ continue;
+ }else if (locMast1.getLocSts().equals("O")){
+ one=locMast1;
+ }
+ }else if(Utils.getRow(one.getLocNo())==3){
+ LocMast locMast1=locMastService.getOne(new LambdaQueryWrapper<LocMast>()
+ .eq(LocMast::getRow1, 4)
+ .eq(LocMast::getBay1,one.getBay1())
+ .eq(LocMast::getLev1,one.getLev1())
+ .eq(LocMast::getHostId, hostId));
+ if(!locMast1.getLocSts().equals("F")){
+ continue;
+ }else if (locMast1.getLocSts().equals("O")){
+ one=locMast1;
}
}
+ innerLoc = one;
+
+// if (innerLoc == null) {
+// List<Integer> innerDeepRow = locDirectionService.getInnerDeepRow(hostId);
+//// if (innerDeepRow.contains(one.getRow1())) {
+// innerLoc = one;
+//// }
+// }
}
if(innerLoc == null) {
--
Gitblit v1.9.1