fix(sales): 修复维度组装中业务日期相关逻辑

- 在 PassiveWarehouseReceiptToC 和 SoSaleReturnPluginInitializerToC 中添加业务日期处理逻辑
- 修复了因缺少业务日期导致的维度组装不完整问题
- 优化了异常处理,增加了更具体的错误提示
This commit is contained in:
liuy 2025-08-26 08:44:46 +08:00
parent 230c45d8e5
commit 66185351e9
3 changed files with 32 additions and 5 deletions

View File

@ -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);

View File

@ -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;
}
}

View File

@ -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();
// }
}
}