From 577c8c6a1edb2aee63dc55d5970f3fd6b3dcbd08 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=B8=B8=E7=86=9F=E5=90=B4=E5=BD=A6=E7=A5=96?= Date: Thu, 8 Oct 2026 11:01:13 +0800 Subject: [PATCH] =?UTF-8?q?=E6=8E=A5=E5=8F=A3bug?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../impl/HaiAnPalletTransferServiceImpl.java | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/src/main/java/com/gaotao/modules/autoWareHourceHaian/service/impl/HaiAnPalletTransferServiceImpl.java b/src/main/java/com/gaotao/modules/autoWareHourceHaian/service/impl/HaiAnPalletTransferServiceImpl.java index 36b204d0..62725742 100644 --- a/src/main/java/com/gaotao/modules/autoWareHourceHaian/service/impl/HaiAnPalletTransferServiceImpl.java +++ b/src/main/java/com/gaotao/modules/autoWareHourceHaian/service/impl/HaiAnPalletTransferServiceImpl.java @@ -87,7 +87,7 @@ public class HaiAnPalletTransferServiceImpl implements HaiAnPalletTransferServic * @author rqrq * @Description 海安自动化托盘移库主流程:目标区域仓库/库位比对差异标签,按site+仓库分组生成trans三表,并将IFS移库分组写入海安专用队列表(不在本方法立即修改标签) - rqrq * @param request 海安移库请求参数,必须包含site/palletId/targetArea,username用于事务审计 - rqrq - * @return 入队结果:queueIds 供发料任务关联 IFS 完成;无需搬库时为空列表,message 仅日志说明 - rqrq + * @return 入队结果:queueIds 供发料任务关联 IFS 完成;目标区域无配置或无库位、无需搬库时为空列表,message 仅日志说明 - rqrq */ @Override @Transactional(rollbackFor = Exception.class) @@ -116,10 +116,15 @@ public class HaiAnPalletTransferServiceImpl implements HaiAnPalletTransferServic // 2. 解析目标区域仓库与库位:海安判定不走“托盘首条标签”,统一以haian_area配置为准 - rqrq HaiAnAreaOption targetAreaInfo = haiAnPdaAutoWarehouseMapper.getHaianArea(requestSite, targetArea); if (targetAreaInfo == null) { - throw new RuntimeException("目标区域不存在或不属于当前工厂:" + targetArea); + // 目标区域未配置时直接返回空队列,不生成移库单据;调用方可继续处理原业务 - rqrq + return buildEnqueueResult(new ArrayList(), "目标区域未配置,跳过移库:" + targetArea); } - if (!StringUtils.hasText(targetAreaInfo.getWarehouseId()) || !StringUtils.hasText(targetAreaInfo.getLocationId())) { - throw new RuntimeException("目标区域缺少仓库或库位映射,无法执行移库:" + targetArea); + if (!StringUtils.hasText(targetAreaInfo.getLocationId())) { + // 区域没有有效location_id时直接返回空队列,避免生成目标库位为空的事务和IFS任务 - rqrq + return buildEnqueueResult(new ArrayList(), "目标区域未配置库位,跳过移库:" + targetArea); + } + if (!StringUtils.hasText(targetAreaInfo.getWarehouseId())) { + throw new RuntimeException("目标区域缺少仓库映射,无法执行移库:" + targetArea); } String targetWarehouseId = targetAreaInfo.getWarehouseId().trim(); String targetLocationId = targetAreaInfo.getLocationId().trim();