refactor(sales): 重构 Toc 退货库存处理逻辑
- 修改数据过滤和插入底表的顺序,提高处理效率 -优化代码结构,注释掉不必要的逻辑 - 更新测试用例,使用新的退货单号进行测试
This commit is contained in:
parent
4f863731a5
commit
aeef3bafb5
|
@ -423,11 +423,11 @@ public class PassiveWarehouseReceiptToC extends PluginBaseEntity {
|
|||
LOCK1.lock();
|
||||
try {
|
||||
//保存到mysql底表
|
||||
batchInsert(returnGoodHeaderDetailsDataDtoArrayList);
|
||||
// batchInsert(returnGoodHeaderDetailsDataDtoArrayList);
|
||||
//过滤成功的数据
|
||||
List<PassiveStorageResponse.Data> data = filterDataStock(returnGoodHeaderDetailsDataDtoArrayList);
|
||||
// List<PassiveStorageResponse.Data> 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<String, List<SaleorderRequestDto>> stringStringMap = new HashMap<>();
|
||||
stringStringMap.put("saleorder", saleorderRequestDtoList);
|
||||
|
||||
SoSaleResultRootDto soSaleResultRootDto = sendU8CTOCOrder(JSON.toJSONString(stringStringMap));
|
||||
String vreceiptcode = null;
|
||||
String pk_corp = null;
|
||||
|
@ -1674,6 +1675,12 @@ public class PassiveWarehouseReceiptToC extends PluginBaseEntity {
|
|||
//初始化公司档案对照关系
|
||||
// Map<String, String> 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();
|
||||
|
|
|
@ -460,13 +460,13 @@ public class SoSaleReturnPluginInitializerToC extends PluginBaseEntity {
|
|||
LOCK1.lock();
|
||||
try {
|
||||
//过滤成功的数据
|
||||
List<StockinOrderSearchResponse.StockinOrder> stockinOrderList = filterDataStock(returnGoodHeaderDetailsDataDtoArrayList);
|
||||
// List<StockinOrderSearchResponse.StockinOrder> 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<StockinOrderSearchResponse.StockinOrder> 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<GoodsRertunSonDetailsDto> goodsRertunSonDetailsDtos = queryBasicArchivesStock(returnGoodHeaderDetailsDataDtoList1, sceneType);
|
||||
List<GoodsRertunSonDetailsDto> 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<GoodsRertunSonDetailsDto> goodsRertunSonDetailsDtos = queryBasicArchivesStock(returnGoodHeaderDetailsDataDtoList1, sceneType);
|
||||
List<GoodsRertunSonDetailsDto> goodsRertunSonDetailsDtos = queryBasicArchivesStock(returnGoodHeaderDetailsDataDtoList1, sceneType, pushScenarioType);
|
||||
// 分组汇总
|
||||
String dimension = null;
|
||||
Map<String, List<GoodsRertunSonDetailsDto>> summaryDimensionMap = groupSummary(goodsRertunSonDetailsDtos, dimension, sceneType);
|
||||
|
@ -1604,7 +1604,7 @@ public class SoSaleReturnPluginInitializerToC extends PluginBaseEntity {
|
|||
* @param sceneType 业务场景类型
|
||||
* @author liuyang
|
||||
*/
|
||||
private List<GoodsRertunSonDetailsDto> queryBasicArchivesStock(List<StockinOrderSearchResponse.StockinOrder> returnGoodHeaderDetailsDataDtoList1, String sceneType) throws Exception {
|
||||
private List<GoodsRertunSonDetailsDto> queryBasicArchivesStock(List<StockinOrderSearchResponse.StockinOrder> 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);
|
||||
|
|
|
@ -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();
|
||||
|
|
|
@ -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");
|
||||
|
||||
|
|
Loading…
Reference in New Issue