|
|
|
@ -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); |
|
|
|
|