diff --git a/src/main/java/com/gaotao/modules/autoWareHourceHaian/HAIAN_AUTO_ISSUE_DOCKING_AND_PC.md b/src/main/java/com/gaotao/modules/autoWareHourceHaian/HAIAN_AUTO_ISSUE_DOCKING_AND_PC.md index 3c70384f..4f7e5e34 100644 --- a/src/main/java/com/gaotao/modules/autoWareHourceHaian/HAIAN_AUTO_ISSUE_DOCKING_AND_PC.md +++ b/src/main/java/com/gaotao/modules/autoWareHourceHaian/HAIAN_AUTO_ISSUE_DOCKING_AND_PC.md @@ -16,7 +16,7 @@ ``` AutoIssueShopOrderDto - site 发料任务 site(RFID 回调大 site,禁止登录态) + site 工单订单行 haian_SOIssueNotifyOrderList.sub_site(任务大site仅用于内部归属隔离) shopOrderNo OrderList.soorder_no workOrderNo 固定空串,不传工单号 releaseNo OrderList.release_no,空则海安先填 * @@ -102,7 +102,7 @@ RFID建单和真实移库入队仍沿用原流程;发料门禁及汇总只以 1. 只处理移库汇总为S且`issue_flag`为空的任务标签;移库F保持未发料,发料`S/F`复用结果,`P/U`进入待核实,均禁止再次发送。 - rqrq 2. 按标签再查一次 **当前** `handling_unit`(移库后 `location_id` 已变,禁止用建单快照)。现查询 XML 需补 `eng_chg_level`。 3. 用任务标签 `serial_no` 查 `haian_SOIssueNotifyOrderMaterialList_detail`,再 `site + notify_no + item_no` 关联 `haian_SOIssueNotifyOrderList`,取 `soorder_no / release_no / sequence_no`。 -4. 按 `site + shopOrderNo + releaseNo + sequenceNo` 分组,每组一个 `AutoIssueShopOrderDto`,`workOrderNo=""`;`releaseNo/sequenceNo` 空则海安填 `*`(不要依赖同事默认,两边口径一致)。 +4. 按订单子工厂`sub_site + shopOrderNo + releaseNo + sequenceNo`分组,每组一个 `AutoIssueShopOrderDto`,`workOrderNo=""`;`releaseNo/sequenceNo` 空则海安填 `*`(不要依赖同事默认,两边口径一致)。 - rqrq 5. 每张标签按第 1 节映射表填写;`labelCode` 空、`issueQty=qty` 全发、`lineItemNo` 由 `BOM_item_no` 转 Integer,转失败记 0。 6. 组完后 **本地先校验** site/工单号/handlingUnitId/partNo/locationId/issueQty,缺了不要调 `autoIssue`。 7. 回参 `failCount>0` 或任一张失败:**成功的留盘标-1,失败标-2,整托走异常位 type=2**(不要因为部分成功就 type=1)。 @@ -169,7 +169,7 @@ failSet = failures 里 labelCode 或 handlingUnitId 命中的集合 ## 4. 已拍板(原待确认项) -1. `shopOrders.site`:发料任务大 site。 +1. `shopOrders.site`:对应工单订单行`haian_SOIssueNotifyOrderList.sub_site`;为空或与标签库存site不一致时该标签本地判失败,禁止兜底为任务大site。- rqrq 2. `lineItemNo`:`detail.BOM_item_no` 转 Integer,转失败为 0(不是同事的 null→1)。 3. `labelCode` 固定空,失败对账用 `handlingUnitId`(同事内部会把空 labelCode 回退成 handlingUnitId)。 4. 只要有一张失败:成功标签留盘标-1,失败标签标-2,整托type=2去异常位。- rqrq diff --git a/src/main/java/com/gaotao/modules/autoWareHourceHaian/entity/HaiAnAutoIssueOrderSourceResult.java b/src/main/java/com/gaotao/modules/autoWareHourceHaian/entity/HaiAnAutoIssueOrderSourceResult.java index b26561b5..3374a56e 100644 --- a/src/main/java/com/gaotao/modules/autoWareHourceHaian/entity/HaiAnAutoIssueOrderSourceResult.java +++ b/src/main/java/com/gaotao/modules/autoWareHourceHaian/entity/HaiAnAutoIssueOrderSourceResult.java @@ -28,6 +28,11 @@ public class HaiAnAutoIssueOrderSourceResult { */ private BigDecimal itemNo; + /** + * 工单所属子工厂,来源haian_SOIssueNotifyOrderList.sub_site;映射同事shopOrders.site并参与工单分组。为空禁止该标签发料,不落库。- rqrq + */ + private String subSite; + /** * BOM行号原文,来源 detail.BOM_item_no,转 Integer 作为同事 lineItemNo;转失败由业务改 0。不落库。 - rqrq */ diff --git a/src/main/java/com/gaotao/modules/autoWareHourceHaian/entity/HaiAnAutoIssueShopOrderGroupKey.java b/src/main/java/com/gaotao/modules/autoWareHourceHaian/entity/HaiAnAutoIssueShopOrderGroupKey.java index a1a3a5ee..ffd24c3c 100644 --- a/src/main/java/com/gaotao/modules/autoWareHourceHaian/entity/HaiAnAutoIssueShopOrderGroupKey.java +++ b/src/main/java/com/gaotao/modules/autoWareHourceHaian/entity/HaiAnAutoIssueShopOrderGroupKey.java @@ -12,7 +12,7 @@ import lombok.EqualsAndHashCode; public class HaiAnAutoIssueShopOrderGroupKey { /** - * 分组用工厂 site,来源发料任务 site。同事 shopOrders.site 与本字段一致。不落库。 - rqrq + * 分组用工厂site,来源haian_SOIssueNotifyOrderList.sub_site;同事shopOrders.site使用同值,隔离不同子工厂的同号工单,不落库。- rqrq */ private String site; diff --git a/src/main/java/com/gaotao/modules/autoWareHourceHaian/service/impl/HaiAnAutoIssueServiceImpl.java b/src/main/java/com/gaotao/modules/autoWareHourceHaian/service/impl/HaiAnAutoIssueServiceImpl.java index d9705ee3..fbb533d4 100644 --- a/src/main/java/com/gaotao/modules/autoWareHourceHaian/service/impl/HaiAnAutoIssueServiceImpl.java +++ b/src/main/java/com/gaotao/modules/autoWareHourceHaian/service/impl/HaiAnAutoIssueServiceImpl.java @@ -737,6 +737,21 @@ public class HaiAnAutoIssueServiceImpl implements HaiAnAutoIssueService { continue; } + // IFS发料工厂取订单sub_site;任务site仅用于海安业务隔离,缺失或与库存工厂不符时本标签失败,其他标签仍可继续。- rqrq + String issueSite = normalizeText(orderSource.getSubSite()); + if (!StringUtils.hasText(issueSite)) { + // 保留可定位的订单来源错误,不登记P、不调用IFS,后续按任务结果写-2并通知异常位。- rqrq + localResults.put(serialNo, buildLabelIssueResult(serialNo, false, + "工单订单行缺少子工厂sub_site,notifyNo=" + orderSource.getNotifyNo() + ",itemNo=" + orderSource.getItemNo())); + continue; + } + if (!issueSite.equals(normalizeText(handlingUnit.getSite()))) { + // 同事方法按一个工厂查询库存,工单与标签工厂不一致时不能改用大工厂或静默替换为标签工厂。- rqrq + localResults.put(serialNo, buildLabelIssueResult(serialNo, false, + "工单子工厂与标签库存工厂不一致,orderSubSite=" + issueSite + ",labelSite=" + handlingUnit.getSite())); + continue; + } + String releaseNo = defaultWildcard(orderSource.getReleaseNo()); String sequenceNo = defaultWildcard(orderSource.getSequenceNo()); AutoIssueHandlingUnitDto huDto = new AutoIssueHandlingUnitDto(); @@ -752,14 +767,16 @@ public class HaiAnAutoIssueServiceImpl implements HaiAnAutoIssueService { huDto.setIssueQty(handlingUnit.getQty()); HaiAnAutoIssueShopOrderGroupKey groupKey = new HaiAnAutoIssueShopOrderGroupKey(); - groupKey.setSite(site); + // 子工厂也是工单分组键,避免多子工厂混托时把同号工单的标签合并后发给错误库存工厂。- rqrq + groupKey.setSite(issueSite); groupKey.setShopOrderNo(shopOrderNo); groupKey.setReleaseNo(releaseNo); groupKey.setSequenceNo(sequenceNo); AutoIssueShopOrderDto shopOrder = shopOrderGroups.get(groupKey); if (shopOrder == null) { shopOrder = new AutoIssueShopOrderDto(); - shopOrder.setSite(site); + // 同事autoIssue会把本字段原样传给IFS的ifsSiteID,明确使用当前订单行sub_site。- rqrq + shopOrder.setSite(issueSite); shopOrder.setShopOrderNo(shopOrderNo); shopOrder.setWorkOrderNo(HaiAnAutoIssueStaticData.EMPTY_WORK_ORDER_NO); shopOrder.setReleaseNo(releaseNo); diff --git a/src/main/resources/mapper/autoWareHourceHaian/HaiAnAutoIssueMoveRefMapper.xml b/src/main/resources/mapper/autoWareHourceHaian/HaiAnAutoIssueMoveRefMapper.xml index c4f519f9..478673b7 100644 --- a/src/main/resources/mapper/autoWareHourceHaian/HaiAnAutoIssueMoveRefMapper.xml +++ b/src/main/resources/mapper/autoWareHourceHaian/HaiAnAutoIssueMoveRefMapper.xml @@ -26,6 +26,7 @@ + diff --git a/src/main/resources/mapper/autoWareHourceHaian/HaiAnAutoIssueTaskLabelMapper.xml b/src/main/resources/mapper/autoWareHourceHaian/HaiAnAutoIssueTaskLabelMapper.xml index 0365d4f2..b4f82db7 100644 --- a/src/main/resources/mapper/autoWareHourceHaian/HaiAnAutoIssueTaskLabelMapper.xml +++ b/src/main/resources/mapper/autoWareHourceHaian/HaiAnAutoIssueTaskLabelMapper.xml @@ -129,11 +129,13 @@ +