From a1b99c6eb0e36c36f7696eff9bc23ecf57206661 Mon Sep 17 00:00:00 2001
From: zwl <1051256694@qq.com>
Date: 星期三, 08 四月 2026 19:51:49 +0800
Subject: [PATCH] WCS申请任务重新分配入库位
---
src/main/java/com/zy/common/service/CommonService.java | 45 +++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 45 insertions(+), 0 deletions(-)
diff --git a/src/main/java/com/zy/common/service/CommonService.java b/src/main/java/com/zy/common/service/CommonService.java
index 5f92b5b..c9a4cac 100644
--- a/src/main/java/com/zy/common/service/CommonService.java
+++ b/src/main/java/com/zy/common/service/CommonService.java
@@ -216,6 +216,51 @@
}
/**
+ * 渚� 6.15 閲嶅垎閰嶆帴鍙e鐢細鎸夊閮ㄦ寚瀹氱殑鍫嗗灈鏈洪『搴忥紝鍦ㄦ寚瀹氬簱鍖哄唴鎵炬柊鐨勫叆搴撲綅銆�
+ *
+ * 杩欓噷涓嶆帹杩� row_lastno 娓告爣锛屽彧璐熻矗涓�娆℃�х殑璺緞鏍¢獙 + 璁惧鏍¢獙 + 绌哄簱浣嶆悳绱€��
+ */
+ public StartupDto findRun2InboundLocByCandidateCrnNos(Integer sourceStaNo, Integer staDescId, Integer preferredArea,
+ List<Integer> candidateCrnNos, LocTypeDto locTypeDto) {
+ if (sourceStaNo == null) {
+ throw new CoolException("婧愮珯涓嶈兘涓虹┖");
+ }
+ if (Cools.isEmpty(candidateCrnNos)) {
+ return null;
+ }
+ Integer whsType = Utils.GetWhsType(sourceStaNo);
+ RowLastno defaultRowLastno = rowLastnoService.selectById(whsType);
+ if (Cools.isEmpty(defaultRowLastno)) {
+ throw new CoolException("绔欑偣=" + sourceStaNo + " 鏈煡璇㈠埌瀵瑰簲鐨勫簱浣嶈鍒�");
+ }
+ RowLastno searchRowLastno = defaultRowLastno;
+ if (preferredArea != null && preferredArea > 0) {
+ RowLastno areaRowLastno = rowLastnoService.selectById(preferredArea);
+ if (Cools.isEmpty(areaRowLastno)) {
+ throw new CoolException("鏈壘鍒板簱鍖鸿疆璇㈣鍒�");
+ }
+ searchRowLastno = areaRowLastno;
+ }
+ RowLastnoType rowLastnoType = rowLastnoTypeService.selectById(searchRowLastno.getTypeId());
+ if (Cools.isEmpty(rowLastnoType)) {
+ throw new CoolException("鏁版嵁寮傚父锛岃鑱旂郴绠$悊鍛�===銆嬪簱浣嶈鍒欑被鍨嬫湭鐭�");
+ }
+ if (rowLastnoType.getType() != 1 && rowLastnoType.getType() != 2) {
+ throw new CoolException("褰撳墠浠撳簱涓嶆敮鎸侀噸鏂板垎閰嶅叆搴撲綅");
+ }
+ StartupDto startupDto = new StartupDto();
+ LocMast locMast = findRun2EmptyLocByCrnNos(searchRowLastno, rowLastnoType, candidateCrnNos, locTypeDto,
+ staDescId, sourceStaNo, startupDto, preferredArea, "reassign-inbound");
+ if (Cools.isEmpty(locMast) || !"O".equals(locMast.getLocSts())) {
+ return null;
+ }
+ startupDto.setSourceStaNo(sourceStaNo);
+ startupDto.setCrnNo(locMast.getCrnNo());
+ startupDto.setLocNo(locMast.getLocNo());
+ return startupDto;
+ }
+
+ /**
* 绌烘墭鐩樿瘑鍒鍒欙細
* 1. 浠ョ粍鎵樻。鐗╂枡缂栫爜 matnr=emptyPallet 涓轰富锛屼笉鍐嶄緷璧� ioType=10銆�
* 2. 淇濈暀 staDescId=10 鐨勫吋瀹瑰垽鏂紝閬垮厤鏃ч摼璺繕鏈垏鎹㈡椂琛屼负绐佸彉銆�
--
Gitblit v1.9.1