From ebf0db91e09be33fcbfe97ed5b91965dc2e61dfd Mon Sep 17 00:00:00 2001
From: zyx <zyx123456>
Date: 星期四, 01 八月 2024 10:54:26 +0800
Subject: [PATCH] 1. 托盘管理 2. 入库通知档导入功能 3. 工作档明细 新增来源单据类型及单据编号 4. 库存明细统计表 增加一栏ERP数量(需跟ERP确认接口实现方式)。 5. 存货档案、单据管理、库存管理可以支持模糊搜索(各个单据界面)。
---
zy-asrs-common/src/main/java/com/zy/asrs/common/wms/service/CommonService.java | 94 +++++++++++++++++++++++++++++++++++++++++++---
1 files changed, 87 insertions(+), 7 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 984dbf9..6ceab94 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,7 +157,7 @@
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)) {
@@ -228,10 +239,19 @@
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, locTypeDto.getLocType1())
.eq(LocMast::getCrnNo, staDesc.getDeviceNo())
+ .eq(LocMast::getWhsType, WHS_TYPE)
.eq(LocMast::getHostId, hostId);
//搴撲綅鎼滅储鑼冨洿
@@ -245,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;
+ }
}
}
}
@@ -276,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) {
@@ -291,11 +341,41 @@
}
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;
+ }
+
+ 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;
}
--
Gitblit v1.9.1