From eaa43b12bfe9185b4f0b8f09d9ca081895a4d185 Mon Sep 17 00:00:00 2001
From: zwl <1051256694@qq.com>
Date: 星期四, 12 三月 2026 21:27:44 +0800
Subject: [PATCH] 1.任务下发失败提醒 2.针对订单出库循环堵塞问题优化
---
src/main/java/com/zy/common/service/CommonService.java | 208 +++++++++++----------------------------------------
1 files changed, 47 insertions(+), 161 deletions(-)
diff --git a/src/main/java/com/zy/common/service/CommonService.java b/src/main/java/com/zy/common/service/CommonService.java
index e659ad1..845ecd9 100644
--- a/src/main/java/com/zy/common/service/CommonService.java
+++ b/src/main/java/com/zy/common/service/CommonService.java
@@ -130,14 +130,13 @@
RowLastno rowLastno = rowLastnoService.selectById(whsType);
RowLastnoType rowLastnoType = rowLastnoTypeService.selectById(rowLastno.getTypeId());
/**
- * 搴撳瀷 1: 鏍囧噯鍫嗗灈鏈哄簱 2: 骞冲簱 3: 绌挎鏉� 4: 鍥涘悜杞� 5: AGV 0: 鏈煡
+ * 搴撳瀷 1: 鏍囧噯鍫嗗灈鏈哄簱 2: 鍚屽贩閬撴壘搴撲綅 3: 绌挎鏉� 4: 鍥涘悜杞� 5: AGV 0: 鏈煡
*/
switch (rowLastnoType.getType()) {
case 1:
return getLocNoRun(whsType, staDescId, sourceStaNo, findLocNoAttributeVo, 0, locTypeDto, 0);
case 2:
- log.error("绔欑偣={} 鏈煡璇㈠埌瀵瑰簲鐨勮鍒�", sourceStaNo);
- break;
+ return getLocNoRun(whsType, staDescId, sourceStaNo, findLocNoAttributeVo, 0, locTypeDto, 0);
case 3:
log.error("绔欑偣={} 鏈煡璇㈠埌瀵瑰簲鐨勮鍒�", sourceStaNo);
break;
@@ -154,6 +153,33 @@
log.error("绔欑偣={} 鏈煡璇㈠埌瀵瑰簲鐨勮鍒�", sourceStaNo);
}
return null;
+ }
+
+ /**
+ * 妫�绱㈠簱浣嶅彿
+ */
+ @Transactional
+ public StartupDto getLocNo1(Integer crnNo) {
+ LocMast locMast = locMastService.selectOne(new EntityWrapper<LocMast>()
+ .eq("crn_no", crnNo)
+ .eq("loc_sts","O")
+ .eq("whs_type",1)
+ .orderBy("lev1,bay1"));
+ if (Cools.isEmpty(locMast)) {
+ return null;
+ }
+ StartupDto startupDto = new StartupDto();
+
+ String locNo = locMast.getLocNo();
+
+ // 鐢熸垚宸ヤ綔鍙�
+ int workNo = getWorkNo(0);
+ // 杩斿洖dto
+ startupDto.setWorkNo(workNo);
+ startupDto.setCrnNo(crnNo);
+// startupDto.setSourceStaNo(sourceStaNo);
+ startupDto.setLocNo(locNo);
+ return startupDto;
}
/**
@@ -207,15 +233,20 @@
//姝ょ▼搴忕敤浜庝紭鍖栧爢鍨涙満寮傚父鏃剁殑杩愯鏃堕棿
for (int i = times; i < crnNumber * 2; i++) {
int[] locNecessaryParameters = Utils.LocNecessaryParameters(rowLastno, curRow, crnNumber);
- curRow = locNecessaryParameters[1];
crnNo = locNecessaryParameters[2];
if (basCrnpService.checkSiteError(crnNo, true)) {
- rowCount = locNecessaryParameters[0];
nearRow = locNecessaryParameters[3];
List<LocMast> locMasts = locMastService.selectList(new EntityWrapper<LocMast>()
- .eq("row1", nearRow).eq("loc_sts", "O").eq("whs_type", rowLastnoType.getType().longValue()));
+ .eq("row1", nearRow)
+ .eq("loc_sts", "O")
+ .eq("frozen", 0)
+ .eq("deleted", 0)
+ .eq("whs_type", rowLastnoType.getType().longValue()));
int crnCountO = wrkMastService.selectCount(new EntityWrapper<WrkMast>().eq("crn_no", crnNo).le("io_type", 100));
if (locMasts.size() - crnCountO <= 2) {
+ if(curRow+2==7){
+
+ }
log.error(crnNo + "鍙峰爢鍨涙満娌℃湁绌哄簱浣嶏紒锛侊紒 灏哄瑙勬牸锛� {}锛� 杞娆℃暟锛歿}", JSON.toJSONString(locTypeDto), times);
nearRow = 0;
times++;
@@ -228,107 +259,6 @@
}
if (nearRow == 0) {
throw new CoolException("鏃犲彲鐢ㄥ爢鍨涙満");
- }
-
- boolean signRule1 = false;
- boolean signRule2 = false;
-
-
- if (Utils.BooleanWhsTypeStaIoType(rowLastno)) {
- // 闈犺繎鎽嗘斁瑙勫垯 --- 鍚屽ぉ鍚岃鏍肩墿鏂� //鍒嗙鐗�
- if (!Cools.isEmpty(findLocNoAttributeVo.getMatnr()) && staDescId == 1) {
- signRule1 = true;
- }
- // 闈犺繎鎽嗘斁瑙勫垯 --- 鍚屽ぉ鍚岃鏍肩墿鏂� //浜掗�氱増
- if (!Cools.isEmpty(findLocNoAttributeVo.getMatnr()) && staDescId == 1) {
- signRule2 = true;
- }
-
- if (!Cools.isEmpty(findLocNoAttributeVo.getMatnr()) && (staDescId == 11 || staDescId == 111)) {
- signRule1 = true;
- }
- }
-
- if (signRule1) {
- if (nearRow != curRow) {
- List<LocMast> locMasts = locMastService.selectList(new EntityWrapper<LocMast>()
- .eq("row1", nearRow).eq("loc_sts", "O").eq("whs_type", rowLastnoType.getType().longValue()));
- for (LocMast locMast1 : locMasts) {
- //鑾峰彇宸烽亾
-// List<String> groupOutsideLocCrn = Utils.getGroupOutLocCrn(curRow,nearRow,locMast1.getLocNo(), curRow>nearRow);
-// LocMast locMastGro = locMastService.selectById(wrkMast.getLocNo());
- //鑾峰彇鐩爣搴撲綅鎵�鍦ㄥ贩閬撴渶娴呴潪绌哄簱浣�
- LocMast locMastF = locMastService.selectLocByLocStsPakInF(curRow, nearRow, locMast1, rowLastnoType.getType().longValue());
- if (!Cools.isEmpty(locMastF) && locMastF.getLocSts().equals("F")) {
- LocDetl locDetl = locDetlService.selectOne(new EntityWrapper<LocDetl>().eq("loc_no", locMastF.getLocNo()));
- if (!Cools.isEmpty(locDetl) && findLocNoAttributeVo.beSimilar(locDetl)) {
- //鑾峰彇鐩爣搴撲綅鎵�鍦ㄥ贩閬撴渶娣辩┖搴撲綅
- locMast = locMastService.selectLocByLocStsPakInO(curRow, nearRow, locMast1, rowLastnoType.getType().longValue());
- break;
- }
- }
- }
- }
- } else if (signRule2) {
- List<String> locNos = locDetlService.getSameDetlToday(findLocNoAttributeVo.getMatnr(), sRow, eRow);
- for (String locNo : locNos) {
- if (Utils.isShallowLoc(slaveProperties, locNo)) {
- continue;
- }
- String shallowLocNo = Utils.getShallowLoc(slaveProperties, locNo);
- // 妫�娴嬬洰鏍囧簱浣嶆槸鍚︿负绌哄簱浣�
- LocMast shallowLoc = locMastService.selectById(shallowLocNo);
- if (shallowLoc != null && shallowLoc.getLocSts().equals("O")) {
- if (VersionUtils.locMoveCheckLocTypeComplete(shallowLoc, locTypeDto)) {
- if (basCrnpService.checkSiteError(shallowLoc.getCrnNo(), true)) {
- locMast = shallowLoc;
- crnNo = locMast.getCrnNo();
- break;
- }
- }
- }
- }
- }
-
-// // 闈犺繎鎽嗘斁瑙勫垯 --- 绌烘墭 //鍒嗙鐗�
-// if (staDescId == 10 && Utils.BooleanWhsTypeStaIoType(whsType)) {
-// List<LocMast> locMasts = locMastService.selectList(new EntityWrapper<LocMast>().eq("row1", nearRow).eq("loc_sts", "O"));
-// for (LocMast locMast1:locMasts){
-// if (VersionUtils.locMoveCheckLocTypeComplete(locMast1, locTypeDto)) {
-// continue;
-// }
-// String shallowLoc = Utils.getDeepLoc(slaveProperties,locMast1.getLocNo());
-// LocMast locMast2 = locMastService.selectOne(new EntityWrapper<LocMast>().eq("loc_no",shallowLoc));
-// if (!Cools.isEmpty(locMast2) && locMast2.getLocSts().equals("D")){
-// locMast = locMast1;
-// break;
-// }
-// }
-// }
-
- // 闈犺繎鎽嗘斁瑙勫垯 --- 绌烘墭 //浜掗�氱増
- if (staDescId == 10 && Utils.BooleanWhsTypeStaIoType(rowLastno)) {
- List<LocMast> locMasts = locMastService.selectList(new EntityWrapper<LocMast>()
- .eq("loc_sts", "D").ge("row1", sRow).le("row1", eRow).eq("whs_type", rowLastnoType.getType().longValue()));
- if (!locMasts.isEmpty()) {
- for (LocMast loc : locMasts) {
- if (Utils.isShallowLoc(slaveProperties, loc.getLocNo())) {
- continue;
- }
- String shallowLocNo = Utils.getShallowLoc(slaveProperties, loc.getLocNo());
- // 妫�娴嬬洰鏍囧簱浣嶆槸鍚︿负绌哄簱浣�
- LocMast shallowLoc = locMastService.selectById(shallowLocNo);
- if (shallowLoc != null && shallowLoc.getLocSts().equals("O")) {
- if (VersionUtils.locMoveCheckLocTypeComplete(shallowLoc, locTypeDto)) {
- if (basCrnpService.checkSiteError(shallowLoc.getCrnNo(), true)) {
- locMast = shallowLoc;
- crnNo = locMast.getCrnNo();
- break;
- }
- }
- }
- }
- }
}
Wrapper<StaDesc> wrapper = null;
@@ -366,64 +296,15 @@
// 1.鎸夎鍒欐煡鎵惧簱浣�
if (Cools.isEmpty(locMast) && crnNo != 0) {
- List<LocMast> locMasts = locMastService.selectList(new EntityWrapper<LocMast>()
- .eq("row1", nearRow)
- .eq("loc_sts", "O").eq("whs_type", rowLastnoType.getType().longValue())
- .orderBy("lev1", true).orderBy("bay1", true));
- for (LocMast locMast1 : locMasts) {
- if (!VersionUtils.locMoveCheckLocTypeComplete(locMast1, locTypeDto)) {
- continue;
- }
- if (Utils.BooleanWhsTypeStaIoType(rowLastno)) {
- String shallowLoc = Utils.getDeepLoc(slaveProperties, locMast1.getLocNo());
- LocMast locMast2 = locMastService.selectOne(new EntityWrapper<LocMast>()
- .eq("loc_no", shallowLoc).eq("loc_sts", "O").eq("whs_type", rowLastnoType.getType().longValue()));
- if (!Cools.isEmpty(locMast2)) {
- locMast = locMast2;
- break;
- }
- } else {
- if (!Cools.isEmpty(locMast1)) {
+ List<LocMast> locMasts = locMastService.selectList(new EntityWrapper<LocMast>().eq("loc_sts", "O").eq("crn_no", crnNo).eq("whs_type", rowLastnoType.getType().longValue()).orderBy("lev1").orderBy("bay1"));
+ if (!locMasts.isEmpty()) {
+ for (LocMast locMast1 : locMasts) {
+ if (basCrnpService.checkSiteError(crnNo, true)) {
locMast = locMast1;
break;
}
}
- }
- if (Cools.isEmpty(locMast) && Utils.BooleanWhsTypeStaIoType(rowLastno)) {
- for (LocMast locMast1 : locMasts) {
- if (!VersionUtils.locMoveCheckLocTypeComplete(locMast1, locTypeDto)) {
- continue;
- }
- if (Utils.BooleanWhsTypeStaIoType(rowLastno)) {
- String shallowLoc = Utils.getDeepLoc(slaveProperties, locMast1.getLocNo());
- LocMast locMast2 = locMastService.selectOne(new EntityWrapper<LocMast>()
- .eq("loc_no", shallowLoc).eq("loc_sts", "O").eq("whs_type", rowLastnoType.getType().longValue()));
- if (!Cools.isEmpty(locMast2)) {
- locMast = locMast2;
- break;
- } else {
- locMast2 = locMastService.selectOne(new EntityWrapper<LocMast>()
- .eq("loc_no", shallowLoc).eq("loc_sts", "F").eq("whs_type", rowLastnoType.getType().longValue()));
- if (!Cools.isEmpty(locMast2)) {
- locMast = locMast1;
- break;
- } else {
- locMast2 = locMastService.selectOne(new EntityWrapper<LocMast>()
- .eq("loc_no", shallowLoc).eq("loc_sts", "D").eq("whs_type", rowLastnoType.getType().longValue()));
- if (!Cools.isEmpty(locMast2)) {
- locMast = locMast1;
- break;
- }
- }
- }
- } else {
- if (!Cools.isEmpty(locMast1)) {
- locMast = locMast1;
- break;
- }
- }
- }
}
}
@@ -501,6 +382,7 @@
crnNo = locNecessaryParameters[2];
nearRow = locNecessaryParameters[3];
List<LocMast> locMasts = locMastService.selectList(new EntityWrapper<LocMast>()
+ .eq("frozen", 0).eq("deleted", 0)
.eq("crn_no", crnNo).eq("loc_sts", "O").eq("whs_type", rowLastnoType.getType().longValue()));
if (locMasts.size() <= 5) {
nearRow = 0;
@@ -662,6 +544,7 @@
if (signRule1) {
if (nearRow != curRow) {
List<LocMast> locMasts = locMastService.selectList(new EntityWrapper<LocMast>()
+ .eq("frozen", 0).eq("deleted", 0)
.eq("row1", nearRow).eq("loc_sts", "O").eq("whs_type", rowLastnoType.getType().longValue()));
for (LocMast locMast1 : locMasts) {
//鑾峰彇宸烽亾
@@ -747,7 +630,8 @@
// 闈犺繎鎽嗘斁瑙勫垯 --- 绌烘墭 //浜掗�氱増
if (staDescId == 10 && Utils.BooleanWhsTypeStaIoType(rowLastno)) {
- List<LocMast> locMasts = locMastService.selectList(new EntityWrapper<LocMast>().eq("loc_sts", "D").ge("row1", sRow).le("row1", eRow));
+ List<LocMast> locMasts = locMastService.selectList(new EntityWrapper<LocMast>().eq("loc_sts", "D").eq("frozen", 0).eq("deleted", 0)
+ .ge("row1", sRow).le("row1", eRow));
int nearbay = 0;
int nearlev = 0;
for (LocMast locMastSign : locMasts) {
@@ -833,6 +717,7 @@
if (Cools.isEmpty(locMast) && crnNo != 0) {
List<LocMast> locMasts = locMastService.selectList(new EntityWrapper<LocMast>()
.eq("row1", nearRow)
+ .eq("frozen", 0).eq("deleted", 0)
.eq("loc_sts", "O").eq("whs_type", rowLastnoType.getType().longValue())
.orderBy("lev1", true).orderBy("bay1", true));//鏈�娴呭簱浣�
for (LocMast locMast1 : locMasts) {
@@ -978,6 +863,7 @@
if (Cools.isEmpty(locMast) && crnNo != 0) {
List<LocMast> locMasts = locMastService.selectList(new EntityWrapper<LocMast>()
.eq("row1", nearRow)
+ .eq("frozen", 0).eq("deleted", 0)
.eq("loc_sts", "O").eq("whs_type", rowLastnoType.getType().longValue())
.orderBy("lev1", true).orderBy("bay1", true));//鏈�娴呭簱浣�
for (LocMast locMast1 : locMasts) {
--
Gitblit v1.9.1