From e7e64252e7df820798d51e26a9ed5b78a39e94d6 Mon Sep 17 00:00:00 2001 From: rcx <3084692334@qq.com> Date: Fri, 14 Aug 2026 16:38:48 +0800 Subject: [PATCH] =?UTF-8?q?feat(wms):=20=E5=87=BA=E5=BA=93=E6=8A=A5?= =?UTF-8?q?=E5=85=B3=E6=B5=81=E7=A8=8B=E5=A2=9E=E5=8A=A0=E9=80=9A=E5=AE=87?= =?UTF-8?q?=E7=BB=84=E7=BB=87=E9=99=90=E5=88=B6=EF=BC=8C=E4=BB=85=E9=80=9A?= =?UTF-8?q?=E5=AE=87(2830)=E5=90=AF=E7=94=A8=E6=8A=A5=E5=85=B3=E5=88=A4?= =?UTF-8?q?=E6=96=AD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../HandoverTaskOrderApplicationService.java | 7 ++++-- .../HandoverTaskOrderDomainService.java | 23 +++++++++++++++---- 2 files changed, 23 insertions(+), 7 deletions(-) diff --git a/mhd_wms/src/main/java/com/mhd/wms/application/service/handoverTaskOrder/HandoverTaskOrderApplicationService.java b/mhd_wms/src/main/java/com/mhd/wms/application/service/handoverTaskOrder/HandoverTaskOrderApplicationService.java index 4c9775cd2..dc8d448ac 100644 --- a/mhd_wms/src/main/java/com/mhd/wms/application/service/handoverTaskOrder/HandoverTaskOrderApplicationService.java +++ b/mhd_wms/src/main/java/com/mhd/wms/application/service/handoverTaskOrder/HandoverTaskOrderApplicationService.java @@ -270,10 +270,13 @@ public class HandoverTaskOrderApplicationService { .eq(HandoverTaskOrder::getOrderNumber, orderNumber) .set(HandoverTaskOrder::getBillingJson, handoverTaskOrderDO.getBillingJson()) .set(HandoverTaskOrder::getPictureApp, handoverTaskOrderDO.getPictureApp())); - // 2. 状态按是否报关:需报关→已交接(13),否则→已出库(9) + // 2. 状态按是否报关:仅通宇(2830)+需报关→已交接(13),否则→已出库(9) StockOutOrder soo = stockOutOrderService.getOne(new LambdaQueryWrapper() .eq(StockOutOrder::getOutOrderNumber, orderNumber)); - int targetStatus = (soo != null && "1".equals(soo.getNeedDeclareFlag())) ? 13 : 9; + boolean needCustoms = soo != null + && Long.valueOf(2830L).equals(soo.getOrganizationId()) + && "1".equals(soo.getNeedDeclareFlag()); + int targetStatus = needCustoms ? 13 : 9; stockOutOrderService.update(new LambdaUpdateWrapper() .eq(StockOutOrder::getOutOrderNumber, orderNumber) .set(StockOutOrder::getStatus, targetStatus) diff --git a/mhd_wms/src/main/java/com/mhd/wms/domain/handoverTaskOrder/service/HandoverTaskOrderDomainService.java b/mhd_wms/src/main/java/com/mhd/wms/domain/handoverTaskOrder/service/HandoverTaskOrderDomainService.java index 033cbae2f..e2745aa2b 100644 --- a/mhd_wms/src/main/java/com/mhd/wms/domain/handoverTaskOrder/service/HandoverTaskOrderDomainService.java +++ b/mhd_wms/src/main/java/com/mhd/wms/domain/handoverTaskOrder/service/HandoverTaskOrderDomainService.java @@ -105,12 +105,24 @@ public class HandoverTaskOrderDomainService { // 报关回写相关常量 private static final String CUSTOMS_PUSH_API_URL = "http://10.102.192.15/nagu-erp-api/transfer/pushData"; private static final String CUSTOMS_VERIFY = "ESLuxAmB6VXCgbqP1eFzxTPVRagkQ62BUkfhElrgQ6XmE/g2reHVflY/SiCSU7JD"; + // 通宇组织ID(只有通宇才启用报关出库流程) + private static final Long TONGYU_ORGANIZATION_ID = 2830L; // 视为「海关已放行/结关」的状态码(建议做成 @Value("${gw.customs.pass-status:P,I,R,F,K,B}")) // 视为「海关已放行」的状态码(ERP 确认:只有 P=海关已放行 才表示货物可出库) private static final String[] CUSTOMS_PASS_STATUS = {"P"}; // 退单/失败状态码(记告警用) private static final String[] CUSTOMS_FAIL_STATUS = {"E", "A", "D", "Z", "c", "H"}; + /** + * 判断是否需要走报关出库流程(仅通宇 + needDeclareFlag=1) + * 其它组织一律走老流程(交接直接出库) + */ + private boolean isCustomsDeclareOrder(StockOutOrder stockOutOrder) { + return stockOutOrder != null + && TONGYU_ORGANIZATION_ID.equals(stockOutOrder.getOrganizationId()) + && "1".equals(stockOutOrder.getNeedDeclareFlag()); + } + /** * 分页查询交接作业单列表 @@ -325,8 +337,8 @@ public class HandoverTaskOrderDomainService { } StockOutOrder soo = stockOutOrderMapper.selectOne(new QueryWrapper().lambda() .eq(StockOutOrder::getOutOrderNumber, hto.getOrderNumber())); - if (soo != null && "1".equals(soo.getNeedDeclareFlag())) { - continue; // 需报关,跳过 + if (isCustomsDeclareOrder(soo)) { + continue; // 需报关(仅通宇),跳过 } if (soo != null && !"yang_pin_chu_ku".equals(soo.getBusinessType())) { pushOms(handoverTaskOrderId); @@ -374,8 +386,8 @@ public class HandoverTaskOrderDomainService { if (stockOutOrder == null) { continue; } - // 需要报关:交接时只改状态为「已交接(13)」,不扣库存/不推OMS,等海关确认放行后再处理 - if ("1".equals(stockOutOrder.getNeedDeclareFlag())) { + // 需要报关(仅通宇+needDeclareFlag=1):交接时只改状态为「已交接(13)」,不扣库存/不推OMS,等海关确认放行后再处理 + if (isCustomsDeclareOrder(stockOutOrder)) { stockOutOrder.setStatus(13); stockOutOrderMapper.updateById(stockOutOrder); continue; // 跳过下方扣库存逻辑(B/C/D/E 全部延后到海关确认) @@ -484,8 +496,9 @@ public class HandoverTaskOrderDomainService { */ @Transactional(rollbackFor = Exception.class) public AjaxResult customsConfirmOut(List outOrderNumbers) { - // 1. 确定处理范围(只处理 status=13 且需要报关的出库单) + // 1. 确定处理范围(只处理通宇、status=13 且需要报关的出库单) LambdaQueryWrapper qw = new LambdaQueryWrapper() + .eq(StockOutOrder::getOrganizationId, TONGYU_ORGANIZATION_ID) .eq(StockOutOrder::getStatus, 13) .eq(StockOutOrder::getNeedDeclareFlag, "1"); if (outOrderNumbers != null && !outOrderNumbers.isEmpty()) {