From aeef3bafb50971f24129500f6f1e58fc9942ccde Mon Sep 17 00:00:00 2001 From: liuy <37787198+LiuyCodes@users.noreply.github.com> Date: Wed, 13 Aug 2025 16:23:03 +0800 Subject: [PATCH] =?UTF-8?q?refactor(sales):=20=E9=87=8D=E6=9E=84=20Toc=20?= =?UTF-8?q?=E9=80=80=E8=B4=A7=E5=BA=93=E5=AD=98=E5=A4=84=E7=90=86=E9=80=BB?= =?UTF-8?q?=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 修改数据过滤和插入底表的顺序,提高处理效率 -优化代码结构,注释掉不必要的逻辑 - 更新测试用例,使用新的退货单号进行测试 --- .../sales/PassiveWarehouseReceiptToC.java | 15 +++++++--- .../SoSaleReturnPluginInitializerToC.java | 28 +++++++++++-------- .../sales/PassiveWarehouseReceiptToCTest.java | 2 +- .../SoSaleReturnPluginInitializerToCTest.java | 2 +- 4 files changed, 30 insertions(+), 17 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 157acea0..68ec76f9 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 @@ -423,11 +423,11 @@ public class PassiveWarehouseReceiptToC extends PluginBaseEntity { LOCK1.lock(); try { //保存到mysql底表 - batchInsert(returnGoodHeaderDetailsDataDtoArrayList); +// batchInsert(returnGoodHeaderDetailsDataDtoArrayList); //过滤成功的数据 - List data = filterDataStock(returnGoodHeaderDetailsDataDtoArrayList); +// List data = filterDataStock(returnGoodHeaderDetailsDataDtoArrayList); //执行推送主逻辑 - implementStock(data); + implementStock(returnGoodHeaderDetailsDataDtoArrayList); } catch (Exception e) { logger.error("TOC退货-库存:getSetStock方法抛出异常", e); } finally { @@ -974,6 +974,7 @@ public class PassiveWarehouseReceiptToC extends PluginBaseEntity { saleorderRequestDtoList.add(saleorderRequestDto); Map> stringStringMap = new HashMap<>(); stringStringMap.put("saleorder", saleorderRequestDtoList); + SoSaleResultRootDto soSaleResultRootDto = sendU8CTOCOrder(JSON.toJSONString(stringStringMap)); String vreceiptcode = null; String pk_corp = null; @@ -1546,7 +1547,7 @@ public class PassiveWarehouseReceiptToC extends PluginBaseEntity { // return null; // } // } - + /** * 2025 年 3 月 12 日 15:53:27 * 生成业务日期:取「关联时间」,只能取关联时间,否则会存在跨月问题 @@ -1674,6 +1675,12 @@ public class PassiveWarehouseReceiptToC extends PluginBaseEntity { //初始化公司档案对照关系 // Map comparisonCompanyArchives = queryU8CEntityUtil.queryBdDefDocByPkDefDocAll(); + //过滤成功的数据 + passiveStorageResponseDataList = filterDataStock(passiveStorageResponseDataList); + + //保存到mysql底表 + batchInsert(passiveStorageResponseDataList); + for (int i = 0; i < passiveStorageResponseDataList.size(); i++) { PassiveStorageResponse.Data data = passiveStorageResponseDataList.get(i); PassiveStorageResponse.Header header = data.getHeader(); 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 0d298dbd..87c7e5b8 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 @@ -460,13 +460,13 @@ public class SoSaleReturnPluginInitializerToC extends PluginBaseEntity { LOCK1.lock(); try { //过滤成功的数据 - List stockinOrderList = filterDataStock(returnGoodHeaderDetailsDataDtoArrayList); +// List stockinOrderList = filterDataStock(returnGoodHeaderDetailsDataDtoArrayList); //保存到mysql - if (!ProfilesActiveConstant.PUSH_SCENE_TYPE_1.equals(pushScenarioType)) { - batchInsert(stockinOrderList); - } +// if (!ProfilesActiveConstant.PUSH_SCENE_TYPE_1.equals(pushScenarioType)) { +// batchInsert(stockinOrderList); +// } //执行推送主逻辑 - implementStock(stockinOrderList, pushScenarioType); + implementStock(returnGoodHeaderDetailsDataDtoArrayList, pushScenarioType); } catch (Exception e) { logger.error("TOC退货-库存:getSetStock方法抛出异常", e); } finally { @@ -487,9 +487,9 @@ public class SoSaleReturnPluginInitializerToC extends PluginBaseEntity { //移动到档案查询时发生过滤 // List stockinOrderList = filterDataTran(returnGoodHeaderDetailsDataDtoArrayList); //保存到mysql - if (!ProfilesActiveConstant.PUSH_SCENE_TYPE_1.equals(pushScenarioType)) { - batchInsert(returnGoodHeaderDetailsDataDtoArrayList); - } +// if (!ProfilesActiveConstant.PUSH_SCENE_TYPE_1.equals(pushScenarioType)) { +// batchInsert(returnGoodHeaderDetailsDataDtoArrayList); +// } //执行推送主逻辑 implementTran(returnGoodHeaderDetailsDataDtoArrayList, pushScenarioType); } catch (Exception e) { @@ -746,7 +746,7 @@ public class SoSaleReturnPluginInitializerToC extends PluginBaseEntity { try { // 查询基本档案 String sceneType = "stock"; - List goodsRertunSonDetailsDtos = queryBasicArchivesStock(returnGoodHeaderDetailsDataDtoList1, sceneType); + List goodsRertunSonDetailsDtos = queryBasicArchivesStock(returnGoodHeaderDetailsDataDtoList1, sceneType, pushScenarioType); // 分组汇总 String dimension = null; // dimension = "1001&dy-intoyou&B2CHA20240033&6973391733588&SALES&002"; @@ -1044,7 +1044,7 @@ public class SoSaleReturnPluginInitializerToC extends PluginBaseEntity { try { // 查询基本档案 String sceneType = "tran"; - List goodsRertunSonDetailsDtos = queryBasicArchivesStock(returnGoodHeaderDetailsDataDtoList1, sceneType); + List goodsRertunSonDetailsDtos = queryBasicArchivesStock(returnGoodHeaderDetailsDataDtoList1, sceneType, pushScenarioType); // 分组汇总 String dimension = null; Map> summaryDimensionMap = groupSummary(goodsRertunSonDetailsDtos, dimension, sceneType); @@ -1604,7 +1604,7 @@ public class SoSaleReturnPluginInitializerToC extends PluginBaseEntity { * @param sceneType 业务场景类型 * @author liuyang */ - private List queryBasicArchivesStock(List returnGoodHeaderDetailsDataDtoList1, String sceneType) throws Exception { + private List queryBasicArchivesStock(List returnGoodHeaderDetailsDataDtoList1, String sceneType, String pushScenarioType) throws Exception { Assert.notNull(returnGoodHeaderDetailsDataDtoList1, "returnGoodHeaderDetailsDataDtoList1不能为空"); Assert.notNull(sceneType, "sceneType不能为空"); @@ -1648,12 +1648,18 @@ public class SoSaleReturnPluginInitializerToC extends PluginBaseEntity { markTimeInMorningEvening(returnGoodHeaderDetailsDataDtoList1); if ("stock".equals(sceneType)) { returnGoodHeaderDetailsDataDtoList1 = filtrationTransactionSuccessTime(returnGoodHeaderDetailsDataDtoList1); + //过滤成功数据 + returnGoodHeaderDetailsDataDtoList1 = filterDataStock(returnGoodHeaderDetailsDataDtoList1); } if ("tran".equals(sceneType)) { returnGoodHeaderDetailsDataDtoList1 = filterForSale(returnGoodHeaderDetailsDataDtoList1); //2025年8月5日10:30:14 过滤掉推送成功的售后入库单 returnGoodHeaderDetailsDataDtoList1 = filterDataTran(returnGoodHeaderDetailsDataDtoList1); } + //插入到底表,过滤之后再插入到底表 + if (!ProfilesActiveConstant.PUSH_SCENE_TYPE_1.equals(pushScenarioType)) { + batchInsert(returnGoodHeaderDetailsDataDtoList1); + } for (int i = 0; i < returnGoodHeaderDetailsDataDtoList1.size(); i++) { StockinOrderSearchResponse.StockinOrder stockinOrder = returnGoodHeaderDetailsDataDtoList1.get(i); diff --git a/buildpackage/src/test/java/com/hzya/frame/plugin/lets/plugin/sales/PassiveWarehouseReceiptToCTest.java b/buildpackage/src/test/java/com/hzya/frame/plugin/lets/plugin/sales/PassiveWarehouseReceiptToCTest.java index d1337b8e..9250780a 100644 --- a/buildpackage/src/test/java/com/hzya/frame/plugin/lets/plugin/sales/PassiveWarehouseReceiptToCTest.java +++ b/buildpackage/src/test/java/com/hzya/frame/plugin/lets/plugin/sales/PassiveWarehouseReceiptToCTest.java @@ -37,7 +37,7 @@ public class PassiveWarehouseReceiptToCTest { //情况二 // passiveWarehouseReceiptToC.startImplementByCode("RH20250731000423", "tran"); //情况三 - passiveWarehouseReceiptToC.startImplementByCode("RH20250731000423", "stock"); + passiveWarehouseReceiptToC.startImplementByCode("RH20250722000231", "stock"); // passiveWarehouseReceiptToC.startImplementByCode("RH20250723000754", "tran"); } catch (Exception e) { e.printStackTrace(); 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 7fbd2a24..a7c63e5b 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 @@ -69,7 +69,7 @@ public class SoSaleReturnPluginInitializerToCTest { try { // soSaleReturnPluginInitializerToC.startImplementByTradeTime("2025-04-28 00:00:00", "2025-04-28 23:59:59", "0"); - soSaleReturnPluginInitializerToC.startImplementByCode("LETS-RE2025072700000824", "stock"); + soSaleReturnPluginInitializerToC.startImplementByCode("LETS-RE2025080200002257", "stock"); // soSaleReturnPluginInitializerToC.startImplementStockByTime("2025-01-31 00:00:00", "2025-01-31 23:59:59", "0");