refactor(sales): 回退业务日期生成逻辑

- 在 PassiveWarehouseReceiptToC 和 SoSaleReturnPluginInitializerToC 类中
- 回退了之前修改的业务日期生成逻辑
- 恢复到原始版本,即仅使用关联时间和关单时间来生成业务日期
- 移除了对交易成功时间的判断和相关逻辑
This commit is contained in:
liuy 2025-08-13 08:55:53 +08:00
parent 0011e45611
commit 02bc259d32
2 changed files with 116 additions and 51 deletions

View File

@ -1506,40 +1506,71 @@ public class PassiveWarehouseReceiptToC extends PluginBaseEntity {
* *
* @author liuyang * @author liuyang
*/ */
// private String createGenerateBusinessDate(PassiveStorageResponse.Header header) {
// String code = null;
// if (header != null && header.getReceiptCode() != null) {
// code = header.getReceiptCode();
// }
//
// HeaderDetailsDto headerDetailsDto = header.getHeaderDetailsDto();
// Assert.notNull(headerDetailsDto, "售后入库单对应的销售订单不能为空! 无源入库单编码:{}", code);
// Assert.notNull(headerDetailsDto.getHeader(), "售后入库单对应的销售订单不能为空! 无源入库单编码:{}", code);
//
// if (header != null && header.getRelatedAt() != null) {
// String relatedAt = header.getRelatedAt();
// String relatedAtDateStr = null;
// String tradeSuccessAtDateStr = null;
// try {
// Date relatedAtDate = DateUtil.parse(relatedAt);
// relatedAtDateStr = DateUtil.format(relatedAtDate, "yyyy-MM-dd");
//
// if (headerDetailsDto.getHeader().getTradeSuccessAt() != null && !"".equals(headerDetailsDto.getHeader().getTradeSuccessAt())) {
// Date tradeSuccessAtDate = DateUtil.parse(headerDetailsDto.getHeader().getTradeSuccessAt());
// tradeSuccessAtDateStr = DateUtil.format(tradeSuccessAtDate, "yyyy-MM-dd");
//
// if ((relatedAtDate.before(tradeSuccessAtDate) || relatedAtDate.equals(tradeSuccessAtDate))) {
// //满足"2.关联时间早于交易成功时间"
// return tradeSuccessAtDateStr;
// }
// }
// //满足"1.无源入库单没有交易成功时间"
// return relatedAtDateStr;
// } catch (Exception e) {
// logger.error("时间日期解析异常:{} O 无源入库单号:{}", e.getMessage(), code);
// Assert.state(false, "时间日期解析异常:{} O 无源入库单号:{}", e.getMessage(), code);
// }
// return null;
// } else {
// logger.error("业务日期生成失败relatedAt(O 关联时间)不能为空 O 无源入库单号:{}", code);
// Assert.state(false, "业务日期生成失败relatedAt(O 关联时间)不能为空 O 无源入库单号:{}", code);
// return null;
// }
// }
/**
* 2025 3 12 15:53:27
* 生成业务日期关联时间,只能取关联时间否则会存在跨月问题
* <p>
* 2025年8月13日08:41:33 回退原始版本
*
* @author liuyang
*/
private String createGenerateBusinessDate(PassiveStorageResponse.Header header) { private String createGenerateBusinessDate(PassiveStorageResponse.Header header) {
String code = null; String code = null;
if (header != null && header.getReceiptCode() != null) { if (header != null && header.getReceiptCode() != null) {
code = header.getReceiptCode(); code = header.getReceiptCode();
} }
HeaderDetailsDto headerDetailsDto = header.getHeaderDetailsDto();
Assert.notNull(headerDetailsDto, "售后入库单对应的销售订单不能为空! 无源入库单编码:{}", code);
Assert.notNull(headerDetailsDto.getHeader(), "售后入库单对应的销售订单不能为空! 无源入库单编码:{}", code);
if (header != null && header.getRelatedAt() != null) { if (header != null && header.getRelatedAt() != null) {
String relatedAt = header.getRelatedAt(); String closedAt = header.getRelatedAt();
String relatedAtDateStr = null; String businessFormat = null;
String tradeSuccessAtDateStr = null;
try { try {
Date relatedAtDate = DateUtil.parse(relatedAt); Date dbill = DateUtil.parse(closedAt);
relatedAtDateStr = DateUtil.format(relatedAtDate, "yyyy-MM-dd"); businessFormat = DateUtil.format(dbill, "yyyy-MM-dd");
if (headerDetailsDto.getHeader().getTradeSuccessAt() != null && !"".equals(headerDetailsDto.getHeader().getTradeSuccessAt())) {
Date tradeSuccessAtDate = DateUtil.parse(headerDetailsDto.getHeader().getTradeSuccessAt());
tradeSuccessAtDateStr = DateUtil.format(tradeSuccessAtDate, "yyyy-MM-dd");
if ((relatedAtDate.before(tradeSuccessAtDate) || relatedAtDate.equals(tradeSuccessAtDate))) {
//满足"2.关联时间早于交易成功时间"
return tradeSuccessAtDateStr;
}
}
//满足"1.无源入库单没有交易成功时间"
return relatedAtDateStr;
} catch (Exception e) { } catch (Exception e) {
logger.error("时间日期解析异常:{} O 无源入库单号:{}", e.getMessage(), code); logger.error("业务日期生成失败relatedAt(O 关联时间)解析异常:{} O 无源入库单号:{}", e.getMessage(), code);
Assert.state(false, "时间日期解析异常:{} O 无源入库单号:{}", e.getMessage(), code); Assert.state(false, "业务日期生成失败closedAt(O 关联时间)解析异常:{} O 无源入库单号:{}", e.getMessage(), code);
} }
return null; return businessFormat;
} else { } else {
logger.error("业务日期生成失败relatedAt(O 关联时间)不能为空 O 无源入库单号:{}", code); logger.error("业务日期生成失败relatedAt(O 关联时间)不能为空 O 无源入库单号:{}", code);
Assert.state(false, "业务日期生成失败relatedAt(O 关联时间)不能为空 O 无源入库单号:{}", code); Assert.state(false, "业务日期生成失败relatedAt(O 关联时间)不能为空 O 无源入库单号:{}", code);

View File

@ -1451,44 +1451,78 @@ public class SoSaleReturnPluginInitializerToC extends PluginBaseEntity {
* *
* @author liuyang * @author liuyang
*/ */
private String createGenerateBusinessDate(StockinOrderSearchResponse.StockinOrder.StockinH header) throws Exception { // private String createGenerateBusinessDate(StockinOrderSearchResponse.StockinOrder.StockinH header) throws Exception {
// //测试
//// header.setClosedAt("2024-11-29 10:00:12");
// String code = null;
// if (header != null && header.getCode() != null) {
// code = header.getCode();
// }
//
// //OFS销售订单
// com.hzya.frame.ttxofs.dto.ofssalesordersearch.HeaderDetailsDto headerDetailsDto = header.getHeaderDetailsDto();
// Assert.notNull(headerDetailsDto, "售后入库单对应的销售订单不能为空! 售后入库单编码:{}", code);
// Assert.notNull(headerDetailsDto.getHeader(), "售后入库单对应的销售订单不能为空! 售后入库单编码:{}", code);
//
// if (header != null && header.getClosedAt() != null) {
// //TOC以出库日期作为业务日期
// String closedAt = header.getClosedAt();
// String closedAtDateStr = null;
// String tradeSuccessAtDateStr = null;
// try {
// Date closedAtDate = DateUtil.parse(closedAt);
// closedAtDateStr = DateUtil.format(closedAtDate, "yyyy-MM-dd");
//
// if (headerDetailsDto.getHeader().getTradeSuccessAt() != null && !"".equals(headerDetailsDto.getHeader().getTradeSuccessAt())) {
// Date tradeSuccessAtDate = DateUtil.parse(headerDetailsDto.getHeader().getTradeSuccessAt());
// tradeSuccessAtDateStr = DateUtil.format(tradeSuccessAtDate, "yyyy-MM-dd");
//
// if ((closedAtDate.before(tradeSuccessAtDate) || closedAtDate.equals(tradeSuccessAtDate))) {
// //满足"2.关单时间早于交易成功时间"
// return tradeSuccessAtDateStr;
// }
// }
// //满足"1.售后入库单没有交易成功时间"
// return closedAtDateStr;
// } catch (Exception e) {
// logger.error("时间日期解析异常:{} O售后入库单号{}", e.getMessage(), code);
// Assert.state(false, "时间日期解析异常:{} O售后入库单号{}", e.getMessage(), code);
// }
// return null;
// } else {
// logger.error("业务日期生成失败closedAt(O关单时间)不能为空 O售后入库单号:{}", code);
// Assert.state(false, "业务日期生成失败closedAt(O关单时间)不能为空 O售后入库单号:{}", code);
// return null;
// }
// }
/**
* 2024年8月9日 15:43:13
* 生成业务日期入库时间还是取结束收货时间
* <p>
* 2025年8月13日08:39:17 回退原版本
*
* @author liuyang
*/
private String createGenerateBusinessDate(StockinOrderSearchResponse.StockinOrder.StockinH header) {
//测试 //测试
// header.setClosedAt("2024-11-29 10:00:12"); // header.setClosedAt("2024-11-29 10:00:12");
String code = null; String code = null;
if (header != null && header.getCode() != null) { if (header != null && header.getCode() != null) {
code = header.getCode(); code = header.getCode();
} }
//OFS销售订单
com.hzya.frame.ttxofs.dto.ofssalesordersearch.HeaderDetailsDto headerDetailsDto = header.getHeaderDetailsDto();
Assert.notNull(headerDetailsDto, "售后入库单对应的销售订单不能为空! 售后入库单编码:{}", code);
Assert.notNull(headerDetailsDto.getHeader(), "售后入库单对应的销售订单不能为空! 售后入库单编码:{}", code);
if (header != null && header.getClosedAt() != null) { if (header != null && header.getClosedAt() != null) {
//TOC以出库日期作为业务日期 //TOC以出库日期作为业务日期
String closedAt = header.getClosedAt(); String closedAt = header.getClosedAt();
String closedAtDateStr = null; String businessFormat = null;
String tradeSuccessAtDateStr = null;
try { try {
Date closedAtDate = DateUtil.parse(closedAt); Date dbill = DateUtil.parse(closedAt);
closedAtDateStr = DateUtil.format(closedAtDate, "yyyy-MM-dd"); businessFormat = DateUtil.format(dbill, "yyyy-MM-dd");
if (headerDetailsDto.getHeader().getTradeSuccessAt() != null && !"".equals(headerDetailsDto.getHeader().getTradeSuccessAt())) {
Date tradeSuccessAtDate = DateUtil.parse(headerDetailsDto.getHeader().getTradeSuccessAt());
tradeSuccessAtDateStr = DateUtil.format(tradeSuccessAtDate, "yyyy-MM-dd");
if ((closedAtDate.before(tradeSuccessAtDate) || closedAtDate.equals(tradeSuccessAtDate))) {
//满足"2.关单时间早于交易成功时间"
return tradeSuccessAtDateStr;
}
}
//满足"1.售后入库单没有交易成功时间"
return closedAtDateStr;
} catch (Exception e) { } catch (Exception e) {
logger.error("时间日期解析异常:{} O售后入库单号{}", e.getMessage(), code); logger.error("业务日期生成失败closedAt(O关单时间)解析异常:{} O售后入库单号{}", e.getMessage(), code);
Assert.state(false, "时间日期解析异常:{} O售后入库单号{}", e.getMessage(), code); Assert.state(false, "业务日期生成失败closedAt(O关单时间)解析异常:{} O售后入库单号{}", e.getMessage(), code);
} }
return null; return businessFormat;
} else { } else {
logger.error("业务日期生成失败closedAt(O关单时间)不能为空 O售后入库单号:{}", code); logger.error("业务日期生成失败closedAt(O关单时间)不能为空 O售后入库单号:{}", code);
Assert.state(false, "业务日期生成失败closedAt(O关单时间)不能为空 O售后入库单号:{}", code); Assert.state(false, "业务日期生成失败closedAt(O关单时间)不能为空 O售后入库单号:{}", code);