refactor(sales): 重构业务日期生成逻辑

- 修改 createGenerateBusinessDateTran 方法,增加 SonDetailsDto 参数
- 从明细行获取交易成功时间,而非头部
- 更新错误日志,增加明细行主键信息
- 在 implementTran 方法中调用更新后的 createGenerateBusinessDateTran
This commit is contained in:
liuy 2024-12-27 15:48:22 +08:00
parent f5ea373be2
commit ad24a5e99e
1 changed files with 16 additions and 11 deletions

View File

@ -1353,28 +1353,32 @@ public class SoSaleOutPluginInitializerToC extends PluginBaseEntity {
* *
* @author liuyang * @author liuyang
*/ */
private String createGenerateBusinessDateTran(com.hzya.frame.ttxofs.dto.ofssaleorderoutsearch.HeaderDto header) { private String createGenerateBusinessDateTran(com.hzya.frame.ttxofs.dto.ofssaleorderoutsearch.HeaderDto header, SonDetailsDto sonDetailsDto) {
//O出库单单号
String code = null; String code = null;
if (header != null && header.getCode() != null) { if (header != null && header.getCode() != null) {
code = header.getCode(); code = header.getCode();
} }
//测试 //O出库单明细行主键
// header.setTradeSuccessAt("2024-10-24 14:46:28"); String detailedId = null;
if (header != null && header.getTradeSuccessAt() != null) { if (sonDetailsDto != null && sonDetailsDto.getId() != null) {
detailedId = sonDetailsDto.getId();
}
if (sonDetailsDto != null && sonDetailsDto.getTradeSuccessAt() != null) {
//TOC以出库日期作为业务日期 //TOC以出库日期作为业务日期
String tradeSuccessAt = header.getTradeSuccessAt(); String tradeSuccessAt = sonDetailsDto.getTradeSuccessAt();
String businessFormat = null; String businessFormat = null;
try { try {
Date dbill = DateUtil.parse(tradeSuccessAt); Date dbill = DateUtil.parse(tradeSuccessAt);
businessFormat = DateUtil.format(dbill, "yyyy-MM-dd"); businessFormat = DateUtil.format(dbill, "yyyy-MM-dd");
} catch (Exception e) { } catch (Exception e) {
logger.error("业务日期生成失败tradeSuccessAt(O交易成功时间)解析异常:{} O销售出库单编码{}", e.getMessage(), code); logger.error("业务日期生成失败tradeSuccessAt(O交易成功时间)解析异常:{} O销售出库单编码{} 明细主键:{}", e.getMessage(), code, detailedId);
Assert.state(false, "业务日期生成失败tradeSuccessAt(O交易成功时间)解析异常:{} O销售出库单编码{}", e.getMessage(), code); Assert.state(false, "业务日期生成失败tradeSuccessAt(O交易成功时间)解析异常:{} O销售出库单编码{} 明细主键:{}", e.getMessage(), code, detailedId);
} }
return businessFormat; return businessFormat;
} else { } else {
logger.error("业务日期生成失败tradeSuccessAt(O交易成功时间)不能为空! O销售出库单编码{}", code); logger.error("业务日期生成失败tradeSuccessAt(O交易成功时间,取明细行)不能为空! O销售出库单编码{} 明细主键:{}", code, detailedId);
Assert.state(false, "业务日期生成失败tradeSuccessAt(O交易成功时间)不能为空! O销售出库单编码{}", code); Assert.state(false, "业务日期生成失败tradeSuccessAt(O交易成功时间,取明细行)不能为空! O销售出库单编码{} 明细主键:{}", code, detailedId);
return null; return null;
} }
} }
@ -2137,6 +2141,7 @@ public class SoSaleOutPluginInitializerToC extends PluginBaseEntity {
* 库存同步代码同步逻辑 * 库存同步代码同步逻辑
* *
* @param headerDetailsDtos 查询得到的O出库单对象 * @param headerDetailsDtos 查询得到的O出库单对象
* @param pushScenarioType 阶段纬度标识
* @author liuyang * @author liuyang
*/ */
private void implementTran(List<com.hzya.frame.ttxofs.dto.ofssaleorderoutsearch.HeaderDetailsDto> headerDetailsDtos, String pushScenarioType) throws Exception { private void implementTran(List<com.hzya.frame.ttxofs.dto.ofssaleorderoutsearch.HeaderDetailsDto> headerDetailsDtos, String pushScenarioType) throws Exception {
@ -2215,7 +2220,7 @@ public class SoSaleOutPluginInitializerToC extends PluginBaseEntity {
// checkArchives(oldValue.get(0)); // checkArchives(oldValue.get(0));
// checkAllFail(oldValue, newState2, "1"); // checkAllFail(oldValue, newState2, "1");
//取交易成功时间生成业务日期 //取交易成功时间生成业务日期
String generateBusinessDate = createGenerateBusinessDateTran(header); String generateBusinessDate = createGenerateBusinessDateTran(header, oldValue.get(0));
SaleorderRequestDto saleorderRequestDto = new SaleorderRequestDto(); SaleorderRequestDto saleorderRequestDto = new SaleorderRequestDto();
SaleorderRequestParentDto saleorderRequestParentDto = new SaleorderRequestParentDto(); SaleorderRequestParentDto saleorderRequestParentDto = new SaleorderRequestParentDto();
@ -2504,7 +2509,7 @@ public class SoSaleOutPluginInitializerToC extends PluginBaseEntity {
//验证数据完整性 //验证数据完整性
// checkAllFail(oldValue, newState3, "2"); // checkAllFail(oldValue, newState3, "2");
//取交易成功时间生成业务日期 //取交易成功时间生成业务日期
String generateBusinessDate = createGenerateBusinessDateTran(header); String generateBusinessDate = createGenerateBusinessDateTran(header, oldValue.get(0));
SaleorderRequestDto saleorderRequestDto = new SaleorderRequestDto(); SaleorderRequestDto saleorderRequestDto = new SaleorderRequestDto();
SaleorderRequestParentDto saleorderRequestParentDto = new SaleorderRequestParentDto(); SaleorderRequestParentDto saleorderRequestParentDto = new SaleorderRequestParentDto();