From 9b6a50bf1288d2f7f06a67bec0c902d1256e44fe Mon Sep 17 00:00:00 2001
From: zwl <1051256694@qq.com>
Date: 星期六, 05 七月 2025 11:15:54 +0800
Subject: [PATCH] 1.订单出库改物料多的先出 2.新增订单明细打印功能
---
zy-asrs-common/src/main/java/com/zy/asrs/common/wms/service/CommonService.java | 124 +++++++++++++++++++++++++++++++++++++---
1 files changed, 113 insertions(+), 11 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 3b57b43..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
@@ -6,6 +6,7 @@
import com.zy.asrs.common.domain.dto.StartupDto;
import com.zy.asrs.common.domain.entity.StaDesc;
import com.zy.asrs.common.sys.service.StaDescService;
+import com.zy.asrs.common.utils.Utils;
import com.zy.asrs.common.utils.VersionUtils;
import com.zy.asrs.common.wms.entity.*;
import com.zy.asrs.framework.common.Cools;
@@ -15,6 +16,7 @@
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
+import java.util.ArrayList;
import java.util.List;
/**
@@ -41,6 +43,10 @@
private LocDetlService locDetlService;
@Autowired
private LocRuleService locRuleService;
+ @Autowired
+ private LocDirectionService locDirectionService;
+
+ private Long WHS_TYPE = 0L;//榛樿绔嬪簱
/**
* 鐢熸垚宸ヤ綔鍙�
@@ -87,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;
@@ -146,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;
}
}
@@ -228,12 +239,20 @@
throw new CoolException("鍏ュ簱璺緞涓嶅瓨鍦�");
}
+ //鎵剧浉鍚岀┖鎵樼洏
+ LambdaQueryWrapper<LocMast> wrapper0 = new LambdaQueryWrapper<LocMast>()
+ .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, 1)
+ .eq(LocMast::getLocType1, locTypeDto.getLocType1())
.eq(LocMast::getCrnNo, staDesc.getDeviceNo())
- .eq(LocMast::getHostId, hostId)
- .orderByAsc(LocMast::getLev1, LocMast::getBay1, LocMast::getRow1);
+ .eq(LocMast::getWhsType, WHS_TYPE)
+ .eq(LocMast::getHostId, hostId);
//搴撲綅鎼滅储鑼冨洿
LocRangeDto locRangeDto = locTypeDto.getLocRangeDto();
@@ -246,13 +265,26 @@
wrapper1.le(LocMast::getLev1, locRangeDto.getTargetLev());
}
- List<LocMast> locMasts = locMastService.list(wrapper1);
- if (!locMasts.isEmpty()) {
- for (LocMast loc : locMasts) {
+ List<LocMast> locMasts0 = locMastService.list(wrapper0);
+ if (!locMasts0.isEmpty()) {
+ for (LocMast loc : locMasts0) {
LocMast locMast0 = locMastService.findNearloc(loc.getLocNo(), hostId, locRangeDto);
if (null != locMast0) {
locMast = locMast0;
break;
+ }
+ }
+ }
+
+ if (locMast == null) {
+ List<LocMast> locMasts = locMastService.list(wrapper1);
+ if (!locMasts.isEmpty()) {
+ for (LocMast loc : locMasts) {
+ LocMast locMast0 = locMastService.findNearloc(loc.getLocNo(), hostId, locRangeDto);
+ if (null != locMast0) {
+ locMast = locMast0;
+ break;
+ }
}
}
}
@@ -277,9 +309,26 @@
throw new CoolException("鍏ュ簱璺緞涓嶅瓨鍦�");
}
+ RowLastno rowLastno = rowLastnoService.getOne(new LambdaQueryWrapper<RowLastno>().eq(RowLastno::getWhsType, 1).eq(RowLastno::getHostId, hostId));
+ if (Cools.isEmpty(rowLastno)) {
+ throw new CoolException("1鏁版嵁寮傚父锛岃鑱旂郴绠$悊鍛�");
+ }
+
+ int curRow = rowLastno.getCurrentRow();
+ int sRow = rowLastno.getStartRow();
+ int eRow = rowLastno.getTargetRow();
+
LambdaQueryWrapper<LocMast> wrapper1 = new LambdaQueryWrapper<LocMast>()
.eq(LocMast::getLocSts, "O")
- .eq(LocMast::getHostId, hostId);
+ .eq(LocMast::getHostId, hostId)
+ .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) {
@@ -292,11 +341,63 @@
}
List<LocMast> locMasts = locMastService.list(wrapper1);//鎼滅储璐х墿
for (LocMast mast : locMasts) {
- if (VersionUtils.checkLocType(mast, locTypeDto)) {
- locMast = mast;
+ 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;
+ continue;
+ }
+ 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) {
+ continue;
+ }
+
+ if (VersionUtils.checkLocType(innerLoc, locTypeDto)) {
+ locMast = innerLoc;
break;
}
}
+
+ curRow++;
+ if (curRow > eRow) {
+ curRow = sRow;
+ }
+ rowLastno.setCurrentRow(curRow);
+ rowLastnoService.updateById(rowLastno);
return locMast;
}
@@ -326,6 +427,7 @@
startupDto.setSourceStaNo(sourceStaNo);
startupDto.setStaNo(staNo.getDevNo());
startupDto.setLocNo(locMast.getLocNo());
+ startupDto.setCrnNo(locMast.getCrnNo());
return startupDto;
}
}
--
Gitblit v1.9.1