From 66185351e9b96f7db09c08db7d6d42d8c5aaf26e Mon Sep 17 00:00:00 2001 From: liuy <37787198+LiuyCodes@users.noreply.github.com> Date: Tue, 26 Aug 2025 08:44:46 +0800 Subject: [PATCH] =?UTF-8?q?fix(sales):=20=E4=BF=AE=E5=A4=8D=E7=BB=B4?= =?UTF-8?q?=E5=BA=A6=E7=BB=84=E8=A3=85=E4=B8=AD=E4=B8=9A=E5=8A=A1=E6=97=A5?= =?UTF-8?q?=E6=9C=9F=E7=9B=B8=E5=85=B3=E9=80=BB=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 在 PassiveWarehouseReceiptToC 和 SoSaleReturnPluginInitializerToC 中添加业务日期处理逻辑 - 修复了因缺少业务日期导致的维度组装不完整问题 - 优化了异常处理,增加了更具体的错误提示 --- .../plugin/sales/PassiveWarehouseReceiptToC.java | 16 ++++++++++++++-- .../sales/SoSaleReturnPluginInitializerToC.java | 14 +++++++++++++- .../SoSaleReturnPluginInitializerToCTest.java | 7 +++++-- 3 files changed, 32 insertions(+), 5 deletions(-) diff --git a/buildpackage/src/main/java/com/hzya/frame/plugin/lets/plugin/sales/PassiveWarehouseReceiptToC.java b/buildpackage/src/main/java/com/hzya/frame/plugin/lets/plugin/sales/PassiveWarehouseReceiptToC.java index df05a81f..d7b5bf4a 100644 --- a/buildpackage/src/main/java/com/hzya/frame/plugin/lets/plugin/sales/PassiveWarehouseReceiptToC.java +++ b/buildpackage/src/main/java/com/hzya/frame/plugin/lets/plugin/sales/PassiveWarehouseReceiptToC.java @@ -2433,6 +2433,17 @@ public class PassiveWarehouseReceiptToC extends PluginBaseEntity { } summaryDimensionStr.append(ADD); + //业务日期:关联时间或者交易成功时间 + String targetBusinessDate = passiveStorageSonDetailsDto2.getTargetBusinessDate(); + Assert.notNull(targetBusinessDate, "业务日期:关联时间或者交易成功时间不能为空"); + targetBusinessDate = targetBusinessDate.substring(0, 10); + if (targetBusinessDate != null && !"".equals(targetBusinessDate)) { + summaryDimensionStr.append(targetBusinessDate); + } else { + summaryDimensionStr.append(NOTHING); + } + summaryDimensionStr.append(ADD); + if (newState != null) { summaryDimensionStr.append(newState); } else { @@ -2965,14 +2976,15 @@ public class PassiveWarehouseReceiptToC extends PluginBaseEntity { //销售订单-交易成功时间 HeaderDetailsDto headerDetailsDto = stringHeaderDetailsDtoMap.get(header.getRefOrderCode()); - Assert.notNull("无源入库单关联的销售订单不能为空!"); + Assert.notNull(headerDetailsDto, "无源入库单关联的销售订单不能为空!"); HeaderDto header1 = headerDetailsDto.getHeader(); String tradeSuccessAt = header1.getTradeSuccessAt(); + Assert.notNull(tradeSuccessAt, "销售订单交易成功时间不能为空!"); DateTime tradeSuccessAtDate = DateUtil.parse(tradeSuccessAt); //无源入库单-关联时间 PassiveStorageResponse.Data passiveStorageResponseData = header.getPassiveStorageResponseData(); - Assert.notNull("售后订单关联的无源入库单不能为空!"); + Assert.notNull(passiveStorageResponseData, "售后订单关联的无源入库单不能为空!"); PassiveStorageResponse.Header header2 = passiveStorageResponseData.getHeader(); String relatedAt = header2.getRelatedAt(); DateTime relatedAtDate = DateUtil.parse(relatedAt); diff --git a/buildpackage/src/main/java/com/hzya/frame/plugin/lets/plugin/sales/SoSaleReturnPluginInitializerToC.java b/buildpackage/src/main/java/com/hzya/frame/plugin/lets/plugin/sales/SoSaleReturnPluginInitializerToC.java index 19b061c9..e46f31d0 100644 --- a/buildpackage/src/main/java/com/hzya/frame/plugin/lets/plugin/sales/SoSaleReturnPluginInitializerToC.java +++ b/buildpackage/src/main/java/com/hzya/frame/plugin/lets/plugin/sales/SoSaleReturnPluginInitializerToC.java @@ -1654,7 +1654,10 @@ public class SoSaleReturnPluginInitializerToC extends PluginBaseEntity { String closedAt = stockinH.getClosedAt(); com.hzya.frame.ttxofs.dto.ofssalesordersearch.HeaderDetailsDto headerDetailsDto = stockinH.getHeaderDetailsDto(); + Assert.notNull(headerDetailsDto, "售后入库单对应的销售订单不能为空! 售后入库单编码:{}", code); com.hzya.frame.ttxofs.dto.ofssalesordersearch.HeaderDto header = headerDetailsDto.getHeader(); + Assert.notNull(header, "header表头对象不能为空"); + Assert.notNull(header.getTradeSuccessAt(), "交易成功时间不能为空!"); String businessFormat = null; try { @@ -2069,9 +2072,17 @@ public class SoSaleReturnPluginInitializerToC extends PluginBaseEntity { } else { summaryDimensionStr.append(NOTHING); } + summaryDimensionStr.append(ADD); //如果为退款业务,则增加入库时间类型标记、推送状态的维度 if ("tran".equals(sceneType)) { + //业务日期 + String generateBusinessDate = createSuccessFulTradeDate(header); + if (generateBusinessDate != null) { + summaryDimensionStr.append(generateBusinessDate); + } else { + summaryDimensionStr.append(NOTHING); + } summaryDimensionStr.append(ADD); if (storageTimeStamp != null) { @@ -2128,7 +2139,8 @@ public class SoSaleReturnPluginInitializerToC extends PluginBaseEntity { private static boolean contains(String[] array, String targetValue) { for (String value : array) { - if (value.equals(targetValue)) { +// if (value.contains(targetValue)) { + if (targetValue.contains(value)) { return true; } } diff --git a/buildpackage/src/test/java/com/hzya/frame/plugin/lets/plugin/sales/SoSaleReturnPluginInitializerToCTest.java b/buildpackage/src/test/java/com/hzya/frame/plugin/lets/plugin/sales/SoSaleReturnPluginInitializerToCTest.java index c81cd2a2..d1c3ef04 100644 --- a/buildpackage/src/test/java/com/hzya/frame/plugin/lets/plugin/sales/SoSaleReturnPluginInitializerToCTest.java +++ b/buildpackage/src/test/java/com/hzya/frame/plugin/lets/plugin/sales/SoSaleReturnPluginInitializerToCTest.java @@ -74,9 +74,9 @@ public class SoSaleReturnPluginInitializerToCTest { //满足红字应收单 // soSaleReturnPluginInitializerToC.startImplementByCode("LETS-RE2025072200001324", "tran"); //情况一 - soSaleReturnPluginInitializerToC.startImplementByCode("LETS-RE2025072200000255", "tran"); +// soSaleReturnPluginInitializerToC.startImplementByCode("LETS-RE2025072200000255", "tran"); //情况二 -// soSaleReturnPluginInitializerToC.startImplementByCode("LETS-RE2025072800000594", "tran"); +// soSaleReturnPluginInitializerToC.startImplementByCode("LETS-RE2025072900002597", "tran"); //情况三 // soSaleReturnPluginInitializerToC.startImplementByCode("LETS-RE2025080200002257", "tran"); @@ -103,6 +103,8 @@ public class SoSaleReturnPluginInitializerToCTest { // System.out.println(s); // soSaleReturnPluginInitializerToC.u8cOperationFlow(); + + soSaleReturnPluginInitializerToC.startImplementByTradeTime("2025-08-01 00:00:00","2025-08-01 23:59:59", "2"); } catch (Exception e) { e.printStackTrace(); } @@ -131,5 +133,6 @@ public class SoSaleReturnPluginInitializerToCTest { // } catch (Exception e) { // e.printStackTrace(); // } + } } \ No newline at end of file