From 1ea84a23004ebcfaf86cb436d84164602ca9091d Mon Sep 17 00:00:00 2001
From: skyouc
Date: 星期五, 08 八月 2025 17:03:36 +0800
Subject: [PATCH] Merge branch 'devlop' of http://47.97.1.152:5880/r/wms-master into devlop
---
rsf-server/src/main/java/com/vincent/rsf/server/api/service/impl/WcsServiceImpl.java | 73 ++++++++++++++++++++++++++----------
1 files changed, 52 insertions(+), 21 deletions(-)
diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/api/service/impl/WcsServiceImpl.java b/rsf-server/src/main/java/com/vincent/rsf/server/api/service/impl/WcsServiceImpl.java
index 85bf298..c6bec07 100644
--- a/rsf-server/src/main/java/com/vincent/rsf/server/api/service/impl/WcsServiceImpl.java
+++ b/rsf-server/src/main/java/com/vincent/rsf/server/api/service/impl/WcsServiceImpl.java
@@ -331,7 +331,7 @@
// return locNo;
// }
@Override
- public InTaskMsgDto getLocNo(TaskInParam param) throws Exception{
+ public InTaskMsgDto getLocNo(TaskInParam param) throws Exception {
String matnr = null;
String batch = null;
List<WaitPakin> waitPakins = waitPakinService.list(new LambdaQueryWrapper<WaitPakin>().eq(WaitPakin::getBarcode, param.getBarcode()));
@@ -361,7 +361,7 @@
//鏍规嵁绔嬪簱绫诲瀷鑾峰彇鑾峰彇搴撲綅
if (warehouseArea.getType().equals(WarehType.WAREHOUSE_TYPE_CRN.val)) {
//鍫嗗灈鏈�
- dto = getLocNoCrn(deviceBind, warehouseArea.getId(), param.getSourceStaNo(), matnr, batch, locTypeDto, 0, param.getIoType());
+ dto = getLocNoCrn(param.getOrgLoc(),deviceBind, warehouseArea.getId(), param.getSourceStaNo(), matnr, batch, locTypeDto, 0, param.getIoType());
} else if (warehouseArea.getType().equals(WarehType.WAREHOUSE_TYPE_FOUR_DIRECTIONS.val)) {
//鍥涘悜搴�
@@ -372,7 +372,7 @@
return dto;
}
- private InTaskMsgDto getLocNoCrn(DeviceBind deviceBind, Long area, Integer sourceStaNo, String matnr, String batch, LocTypeDto locTypeDto, int times, Integer ioType) {
+ private InTaskMsgDto getLocNoCrn(String orgLoc,DeviceBind deviceBind, Long area, Integer sourceStaNo, String matnr, String batch, LocTypeDto locTypeDto, int times, Integer ioType) {
if (Cools.isEmpty(matnr)) { //鐗╂枡鍙�
matnr = "";
}
@@ -388,36 +388,33 @@
InTaskMsgDto inTaskMsgDto = new InTaskMsgDto();
- int sRow = deviceBind.getStartRow();
- int eRow = deviceBind.getEndRow();
int deviceQty = deviceBind.getDeviceQty();
// ===============>>>> 寮�濮嬫墽琛�
curRow = deviceBind.getCurrentRow();
- //姝ょ▼搴忕敤浜庝紭鍖栧爢鍨涙満寮傚父鏃剁殑杩愯鏃堕棿
- for (int i = times; i <= deviceQty * 2; i++) {
- int[] locNecessaryParameters = LocUtils.LocNecessaryParameters(deviceBind, curRow, deviceQty);
- curRow = locNecessaryParameters[1];
- channel = locNecessaryParameters[2];
- rowCount = locNecessaryParameters[0];
- nearRow = locNecessaryParameters[3];
- break;
- }
+ //鑾峰彇鎺�
+ int[] locNecessaryParameters = LocUtils.LocNecessaryParameters(deviceBind, curRow, deviceQty);
+ curRow = locNecessaryParameters[1];
+ channel = locNecessaryParameters[2];
+ rowCount = locNecessaryParameters[0];
+ nearRow = locNecessaryParameters[3];
+
+
if (nearRow == 0) {
throw new CoolException("鏃犲彲鐢ㄥ爢鍨涙満");
}
//鍏ュ簱闈犺繎鎽嗘斁
- if (ioType == 1 && deviceBind.getBeSimilar().equals("1") && !Cools.isEmpty(matnr)) {
+ if (ioType == 1 && deviceBind.getBeSimilar().equals("1") && !Cools.isEmpty(matnr) && Cools.isEmpty(orgLoc)) {
if (nearRow != curRow) {
List<LocItem> locItems = locItemService.list(new LambdaQueryWrapper<LocItem>().eq(LocItem::getMatnrCode, matnr));
for (LocItem locItem : locItems) {
Loc loc1 = locService.getById(locItem.getLocId());
- if (LocUtils.isShallowLoc(slaveProperties, loc1.getCode())) {
+ if (LocUtils.isShallowLoc(loc1.getCode())) {
continue;
}
- String shallowLocNo = LocUtils.getShallowLoc(slaveProperties, loc1.getCode());
+ String shallowLocNo = LocUtils.getShallowLoc(loc1.getCode());
// 妫�娴嬬洰鏍囧簱浣嶆槸鍚︿负绌哄簱浣�
Loc shallowLoc = locService.getOne(new LambdaQueryWrapper<Loc>().eq(Loc::getCode, shallowLocNo));
if (shallowLoc != null && shallowLoc.getUseStatus().equals(LocStsType.LOC_STS_TYPE_O.type)) {
@@ -484,11 +481,15 @@
.orderByAsc(Loc::getLev)
.orderByAsc(Loc::getCol)
);
+ Loc orgMoveLoc = null;
+ if (!Cools.isEmpty(orgLoc)) {
+ orgMoveLoc = locService.getOne(new LambdaQueryWrapper<Loc>().eq(Loc::getCode, orgLoc));
+ }
for (Loc locMast1 : locMasts) {
if (!LocUtils.locMoveCheckLocTypeComplete(locMast1, locTypeDto)) {
continue;
}
- String shallowLoc = LocUtils.getDeepLoc(slaveProperties, locMast1.getCode());
+ String shallowLoc = LocUtils.getDeepLoc(locMast1.getCode());
if ((ioType == 1 && deviceBind.getBeSimilar().equals("1"))) {
//鐩镐技鐗╂枡鎵撳紑锛屽垽鏂繁搴撲綅鏈夋病鏈夎揣锛屾病璐у氨鏀炬繁搴撲綅锛屾湁璐у氨涓嶆搷浣�
Loc locMast2 = locService.getOne(new LambdaQueryWrapper<Loc>()
@@ -496,7 +497,13 @@
.eq(Loc::getUseStatus, LocStsType.LOC_STS_TYPE_O.type)
.eq(Loc::getAreaId, area)
);
+
if (!Cools.isEmpty(locMast2)) {
+ if (null != orgMoveLoc){
+ if (!locMast2.getChannel().equals(orgMoveLoc.getChannel())) {
+ break;
+ }
+ }
loc = locMast2;
break;
}
@@ -507,7 +514,13 @@
.in(Loc::getUseStatus, LocStsType.LOC_STS_TYPE_D.type, LocStsType.LOC_STS_TYPE_F.type)
.eq(Loc::getAreaId, area)
);
+
if (!Cools.isEmpty(locMast2)) {
+ if (null != orgMoveLoc){
+ if (!locMast2.getChannel().equals(orgMoveLoc.getChannel())) {
+ break;
+ }
+ }
loc = locMast1;
break;
} else {
@@ -516,7 +529,13 @@
.eq(Loc::getUseStatus, LocStsType.LOC_STS_TYPE_O.type)
.eq(Loc::getAreaId, area)
);
+
if (!Cools.isEmpty(locMast2)) {
+ if (null != orgMoveLoc){
+ if (!locMast2.getChannel().equals(orgMoveLoc.getChannel())) {
+ break;
+ }
+ }
loc = locMast2;
break;
}
@@ -529,13 +548,19 @@
continue;
}
if (deviceBind.getBeSimilar().equals("1")) {
- String shallowLoc = LocUtils.getDeepLoc(slaveProperties, locMast1.getCode());
+ String shallowLoc = LocUtils.getDeepLoc(locMast1.getCode());
Loc locMast2 = locService.getOne(new LambdaQueryWrapper<Loc>()
.eq(Loc::getCode, shallowLoc)
.eq(Loc::getUseStatus, LocStsType.LOC_STS_TYPE_O.type)
.eq(Loc::getAreaId, area)
);
+
if (!Cools.isEmpty(locMast2)) {
+ if (null != orgMoveLoc){
+ if (!locMast2.getChannel().equals(orgMoveLoc.getChannel())) {
+ break;
+ }
+ }
loc = locMast2;
break;
} else {
@@ -544,7 +569,13 @@
.in(Loc::getUseStatus, LocStsType.LOC_STS_TYPE_D.type, LocStsType.LOC_STS_TYPE_D.type)
.eq(Loc::getAreaId, area)
);
+
if (!Cools.isEmpty(locMast2)) {
+ if (null != orgMoveLoc){
+ if (!locMast2.getChannel().equals(orgMoveLoc.getChannel())) {
+ break;
+ }
+ }
loc = locMast1;
break;
}
@@ -573,14 +604,14 @@
// 褰撳墠宸烽亾鏃犵┖搴撲綅鏃讹紝閫掑綊璋冩暣鑷充笅涓�宸烽亾锛屾绱㈠叏閮ㄥ贩閬撴棤鏋滃悗锛岃烦鍑洪�掑綊
if (times < rowCount * 2) {
times = times + 1;
- return getLocNoCrn(deviceBind, area, sourceStaNo, matnr, batch, locTypeDto, times, ioType);
+ return getLocNoCrn(orgLoc,deviceBind, area, sourceStaNo, matnr, batch, locTypeDto, times, ioType);
}
// 2.搴撲綅褰撳墠鎵�灞炲昂瀵告棤绌哄簱浣嶆椂锛岃皟鏁村昂瀵稿弬鏁帮紝鍚戜笂鍏煎妫�绱㈠簱浣�
if (locTypeDto.getLocType1() < 3) {
int i = locTypeDto.getLocType1() + 1;
locTypeDto.setLocType1(i);
- return getLocNoCrn(deviceBind, area, sourceStaNo, matnr, batch, locTypeDto, 0, ioType);
+ return getLocNoCrn(orgLoc,deviceBind, area, sourceStaNo, matnr, batch, locTypeDto, 0, ioType);
}
throw new CoolException("娌℃湁绌哄簱浣�");
}
--
Gitblit v1.9.1