From ac88fa85ea2b39f9c94f080a95406739e64fd7f2 Mon Sep 17 00:00:00 2001
From: zwl <1051256694@qq.com>
Date: 星期六, 21 三月 2026 18:01:18 +0800
Subject: [PATCH] 优化找库位规则
---
src/main/java/com/zy/common/service/CommonService.java | 100 +++++++------------------------------------------
1 files changed, 15 insertions(+), 85 deletions(-)
diff --git a/src/main/java/com/zy/common/service/CommonService.java b/src/main/java/com/zy/common/service/CommonService.java
index 95363ed..5627380 100644
--- a/src/main/java/com/zy/common/service/CommonService.java
+++ b/src/main/java/com/zy/common/service/CommonService.java
@@ -749,34 +749,6 @@
}
/**
- * 鏅�� run2 鐨勬帹鑽愭帓浼樺厛闃舵銆�
- *
- * 鎺ㄨ崘鎺掑彧瀵规櫘閫氱墿鏂欑敓鏁堬紝绌烘墭鐩樺凡缁忓垏鎹㈡垚鈥滄寜搴撳尯杞鍫嗗灈鏈衡�濈殑瑙勫垯锛�
- * 鍥犳杩欓噷浼氱洿鎺ヨ烦杩囩┖鎵樼洏璇锋眰锛岄伩鍏� row 鍙傛暟鎶婄┖鎵樼洏閲嶆柊甯﹀洖鏃ч�昏緫銆�
- *
- * 鍙﹀锛屽崟鎺掓帹鑽愪笉鍐嶄綔涓衡�滃己缁戝畾鍗曞彴鍫嗗灈鏈衡�濆鐞嗐��
- * 鐜板満涓婃父缁忓父鍙紶涓�涓帹鑽愭帓锛屼緥濡� row=[1]锛屽鏋滆繖閲岀洿鎺ョ煭璺懡涓紝
- * 婊℃澘浠诲姟灏变細闀挎湡鍘嬪湪鍚屼竴鍙板爢鍨涙満涓娿�傜幇鍦ㄥ彧鏈夊綋鎺ㄨ崘鎺掕兘瑕嗙洊澶氬彴鍫嗗灈鏈烘椂锛�
- * 鎵嶆妸瀹冨綋浣滅湡姝g殑浼樺厛鍊欓�夐泦鍚堛��
- */
- private LocMast findRun2RecommendLoc(RowLastno rowLastno, RowLastnoType rowLastnoType, boolean emptyPalletRequest,
- List<Integer> recommendRows, LocTypeDto locTypeDto, Integer staDescId,
- Integer sourceStaNo, StartupDto startupDto, Integer preferredArea,
- List<Integer> triedCrnNos) {
- if (emptyPalletRequest) {
- return null;
- }
- List<Integer> recommendCrnNos = mapRowsToCrnNos(rowLastno, recommendRows);
- if (Cools.isEmpty(recommendCrnNos) || recommendCrnNos.size() <= 1) {
- return null;
- }
- LocMast locMast = findRun2EmptyLocByCrnNos(rowLastno, rowLastnoType, recommendCrnNos, locTypeDto,
- staDescId, sourceStaNo, startupDto, preferredArea, "recommend");
- triedCrnNos.addAll(recommendCrnNos);
- return locMast;
- }
-
- /**
* 鏅�氱墿鏂� run2 鎵句綅涓绘祦绋嬨��
*
* 鎵ц椤哄簭锛�
@@ -874,33 +846,6 @@
}
}
}
- return result;
- }
-
- private List<Integer> mapRowsToCrnNos(RowLastno rowLastno, List<Integer> rows) {
- List<Integer> result = new ArrayList<>();
- if (rowLastno == null || Cools.isEmpty(rows)) {
- return result;
- }
- LinkedHashSet<Integer> orderedCrnNos = new LinkedHashSet<>();
- Integer rowSpan = getCrnRowSpan(rowLastno.getTypeId());
- if (rowSpan == null || rowSpan <= 0) {
- rowSpan = 2;
- }
- int startCrnNo = rowLastno.getsCrnNo() == null ? 1 : rowLastno.getsCrnNo();
- int endCrnNo = rowLastno.geteCrnNo() == null ? startCrnNo + rowLastno.getCrnQty() - 1 : rowLastno.geteCrnNo();
- int startRow = rowLastno.getsRow() == null ? 1 : rowLastno.getsRow();
- int endRow = rowLastno.geteRow() == null ? Integer.MAX_VALUE : rowLastno.geteRow();
- for (Integer row : rows) {
- if (row == null || row < startRow || row > endRow) {
- continue;
- }
- int crnNo = startCrnNo + (row - startRow) / rowSpan;
- if (crnNo >= startCrnNo && crnNo <= endCrnNo) {
- orderedCrnNos.add(crnNo);
- }
- }
- result.addAll(orderedCrnNos);
return result;
}
@@ -1717,9 +1662,11 @@
* run2 鍏ュ簱鎵句綅涓绘祦绋嬨��
*
* 褰撳墠鏂规硶鍙繚鐣欌�滅粍缁囨祦绋嬧�濆拰鈥滅粺涓�鏀跺彛鈥濈殑鑱岃矗锛屽叿浣撶瓥鐣ユ媶鎴愮嫭绔嬫柟娉曪細
- * 1. 鏅�氱墿鏂欙細鎺ㄨ崘鎺掍紭鍏� -> 绔欑偣浼樺厛搴撳尯/鍫嗗灈鏈� -> 鍏跺畠搴撳尯銆�
+ * 1. 鏅�氱墿鏂欙細鎸� row_lastno 鑷韩杞椤哄簭 -> 绔欑偣浼樺厛搴撳尯/鍫嗗灈鏈� -> 鍏跺畠搴撳尯銆�
* 2. 绌烘墭鐩橈細浼樺厛搴撳尯 loc_type2=1 -> 鍏跺畠搴撳尯 loc_type2=1 -> loc_type1=2 鍏煎銆�
* 3. 鍛戒腑搴撲綅鍚庡垎鍒洖鍐欐櫘閫氱墿鏂欐父鏍囨垨绌烘墭鐩樺簱鍖烘父鏍囥��
+ *
+ * WCS 浼犲叆鐨勬帹鑽愭帓涓嶅啀鍙備笌 run2 閫変綅锛岄伩鍏嶄笂娓� row 鍙傛暟鎶婁换鍔¢噸鏂扮粦鍥炲浐瀹氬爢鍨涙満銆�
*/
public StartupDto getLocNoRun2(Integer whsType, Integer staDescId, Integer sourceStaNo, FindLocNoAttributeVo findLocNoAttributeVo, Integer moveCrnNo, LocTypeDto locTypeDto, List<Integer> recommendRows, int times) {
@@ -1751,22 +1698,18 @@
List<Integer> orderedCrnNos = getOrderedCrnNos(rowLastno, crnNo);
List<Integer> orderedRunnableCrnNos = getOrderedRunnableRun2CrnNos(rowLastno, staDescId, sourceStaNo, orderedCrnNos);
List<Integer> triedCrnNos = new ArrayList<>();
- locMast = findRun2RecommendLoc(rowLastno, rowLastnoType, emptyPalletRequest, recommendRows, locTypeDto,
- staDescId, sourceStaNo, startupDto, preferredArea, triedCrnNos);
- if (Cools.isEmpty(locMast)) {
- if (emptyPalletRequest) {
- // 绌烘墭鐩樺崟鐙寜搴撳尯杞锛�
- // 1. 褰撳墠搴撳尯鍏堟壘 loc_type2=1
- // 2. 褰撳墠搴撳尯娌℃湁锛屽啀鎵惧叾浠栧簱鍖� loc_type2=1
- // 3. 鍏ㄩ儴 narrow 閮芥病鏈夋椂锛屽啀閫�鍒� loc_type1=2
- emptyPalletAreaSearchResult = findEmptyPalletRun2AreaLoc(rowLastno, staDescId, sourceStaNo, startupDto, preferredArea, locTypeDto);
- if (!Cools.isEmpty(emptyPalletAreaSearchResult)) {
- locMast = emptyPalletAreaSearchResult.locMast;
- }
- } else {
- locMast = findNormalRun2Loc(rowLastno, rowLastnoType, sourceStaNo, staDescId, findLocNoAttributeVo,
- locTypeDto, startupDto, preferredArea, orderedCrnNos, triedCrnNos);
+ if (emptyPalletRequest) {
+ // 绌烘墭鐩樺崟鐙寜搴撳尯杞锛�
+ // 1. 褰撳墠搴撳尯鍏堟壘 loc_type2=1
+ // 2. 褰撳墠搴撳尯娌℃湁锛屽啀鎵惧叾浠栧簱鍖� loc_type2=1
+ // 3. 鍏ㄩ儴 narrow 閮芥病鏈夋椂锛屽啀閫�鍒� loc_type1=2
+ emptyPalletAreaSearchResult = findEmptyPalletRun2AreaLoc(rowLastno, staDescId, sourceStaNo, startupDto, preferredArea, locTypeDto);
+ if (!Cools.isEmpty(emptyPalletAreaSearchResult)) {
+ locMast = emptyPalletAreaSearchResult.locMast;
}
+ } else {
+ locMast = findNormalRun2Loc(rowLastno, rowLastnoType, sourceStaNo, staDescId, findLocNoAttributeVo,
+ locTypeDto, startupDto, preferredArea, orderedCrnNos, triedCrnNos);
}
if (!Cools.isEmpty(locMast)) {
@@ -2269,6 +2212,7 @@
}
public StartupDto getLocNoRun5(Integer whsType, Integer staDescId, Integer sourceStaNo, FindLocNoAttributeVo findLocNoAttributeVo, Integer moveCrnNo, LocTypeDto locTypeDto, List<Integer> recommendRows, int times) {
+ // WCS 浼犲叆鐨勬帹鑽愭帓涓嶅啀鍙備笌 AGV/骞冲簱閫変綅锛岀粺涓�鎸夊簱浣嶆帓鍙疯嚜韬疆璇㈤�昏緫鎵句綅銆�
// 鍒濆鍖栧弬鏁�
int crnNo = 0; //鍫嗗灈鏈哄彿
@@ -2338,20 +2282,6 @@
}
// 寮�濮嬫煡鎵惧簱浣� ==============================>>
-
- if (Cools.isEmpty(locMast) && !Cools.isEmpty(recommendRows)) {
- for (Integer recommendRow : recommendRows) {
- if (Cools.isEmpty(recommendRow)) {
- continue;
- }
- LocMast recommendLoc = locMastService.queryFreeLocMast(recommendRow, locTypeDto.getLocType1(), rowLastnoType.getType().longValue());
- if (!Cools.isEmpty(recommendLoc) && VersionUtils.locMoveCheckLocTypeComplete(recommendLoc, locTypeDto)) {
- locMast = recommendLoc;
- crnNo = recommendLoc.getCrnNo();
- break;
- }
- }
- }
Integer preferredArea = findLocNoAttributeVo.getOutArea();
--
Gitblit v1.9.1