增强销售出库和退货插件中的业务日期生成逻辑

- 在销售出库和退货插件中,增加获取订单编码的逻辑- 优化业务日期生成方法,加入订单编码信息到日志和异常信息中
- 提高代码健壮性,增加空值检查和异常处理
- 重构部分代码,提高可读性和维护性
This commit is contained in:
liuy 2024-10-15 11:55:36 +08:00
parent 035e0829ab
commit 992e143bbc
4 changed files with 66 additions and 42 deletions

View File

@ -876,6 +876,10 @@ public class SoSaleOutPluginInitializerToB extends PluginBaseEntity {
* @author liuyang * @author liuyang
*/ */
private String createGenerateBusinessDate(OrderOutTobHeaderDto orderOutTobHeaderDto) { private String createGenerateBusinessDate(OrderOutTobHeaderDto orderOutTobHeaderDto) {
String code = null;
if (orderOutTobHeaderDto != null && orderOutTobHeaderDto.getHeader() != null) {
code = orderOutTobHeaderDto.getHeader().getCode();
}
if (orderOutTobHeaderDto != null && orderOutTobHeaderDto.getHeader() != null && orderOutTobHeaderDto.getHeader().getShipAt() != null) { if (orderOutTobHeaderDto != null && orderOutTobHeaderDto.getHeader() != null && orderOutTobHeaderDto.getHeader().getShipAt() != null) {
HeaderDto header = orderOutTobHeaderDto.getHeader(); HeaderDto header = orderOutTobHeaderDto.getHeader();
String shipAt = header.getShipAt(); String shipAt = header.getShipAt();
@ -884,14 +888,13 @@ public class SoSaleOutPluginInitializerToB extends PluginBaseEntity {
Date dbill = DateUtil.parse(shipAt); Date dbill = DateUtil.parse(shipAt);
businessFormat = DateUtil.format(dbill, "yyyy-MM-dd"); businessFormat = DateUtil.format(dbill, "yyyy-MM-dd");
} catch (Exception e) { } catch (Exception e) {
logger.error("业务日期生成失败", e); logger.error("业务日期生成失败shipAt(O发货时间)解析异常:{} O销售出库单编码{}", e.getMessage(), code);
Assert.state(false, "业务日期生成失败,抛出异常:" + e.getMessage()); Assert.state(false, "业务日期生成失败shipAt(O发货时间)解析异常:{} O销售出库单编码{}", e.getMessage(), code);
} }
logger.info("TOB库存同步业务生成的业务日期{}", businessFormat);
return businessFormat; return businessFormat;
} else { } else {
logger.error("生成出库日期失败或者shipAt为空! json{}", JSON.toJSON(orderOutTobHeaderDto)); logger.error("业务日期生成失败shipAt(O发货时间)不能为空! O销售出库单编码{}", code);
Assert.state(false, "生成出库日期失败或者shipAt为空! json{}", JSON.toJSON(orderOutTobHeaderDto)); Assert.state(false, "业务日期生成失败shipAt(O发货时间)不能为空! O销售出库单编码{}", code);
return null; return null;
} }
} }
@ -903,24 +906,25 @@ public class SoSaleOutPluginInitializerToB extends PluginBaseEntity {
* @author liuyang * @author liuyang
*/ */
private String createSuccessFulTradeDate(OrderOutTobHeaderDto orderOutTobHeaderDto) throws Exception { private String createSuccessFulTradeDate(OrderOutTobHeaderDto orderOutTobHeaderDto) throws Exception {
//测试 String code = null;
// orderOutTobHeaderDto.getHeader().setTradeSuccessAt("2024-09-12"); if (orderOutTobHeaderDto != null && orderOutTobHeaderDto.getHeader() != null) {
code = orderOutTobHeaderDto.getHeader().getCode();
}
if (orderOutTobHeaderDto != null && orderOutTobHeaderDto.getHeader() != null && orderOutTobHeaderDto.getHeader().getTradeSuccessAt() != null) { if (orderOutTobHeaderDto != null && orderOutTobHeaderDto.getHeader() != null && orderOutTobHeaderDto.getHeader().getTradeSuccessAt() != null) {
HeaderDto header = orderOutTobHeaderDto.getHeader(); HeaderDto header = orderOutTobHeaderDto.getHeader();
String shipAt = header.getTradeSuccessAt(); String tradeSuccessAt = header.getTradeSuccessAt();
String businessFormat = null; String businessFormat = null;
try { try {
Date dbill = DateUtil.parse(shipAt); 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业务日期生成失败", e); logger.error("业务日期生成失败tradeSuccessAt(O交易成功时间)解析异常:{} O销售出库单编码{}", e.getMessage(), code);
Assert.state(false, "业务日期生成失败,抛出异常:" + e.getMessage()); Assert.state(false, "业务日期生成失败tradeSuccessAt(O交易成功日期)解析异常:{} O销售出库单编码{}", e.getMessage(), code);
} }
logger.info("TOB销售发票业务生成的的业务日期为{}", businessFormat);
return businessFormat; return businessFormat;
} else { } else {
logger.error("生成发票业务日期失败或者tradeSuccessAt为空! json{}", JSON.toJSON(orderOutTobHeaderDto)); logger.error("业务日期生成失败tradeSuccessAt(O交易成功时间)不能为空! O销售出库单编码{}", code);
Assert.state(false, "生成发票业务日期失败或者tradeSuccessAt为空! json{}", JSON.toJSON(orderOutTobHeaderDto)); Assert.state(false, "业务日期生成失败tradeSuccessAt(O交易成功日期)不能为空! O销售出库单编码{}", code);
return null; return null;
} }
} }

View File

@ -916,8 +916,10 @@ public class SoSaleOutPluginInitializerToC extends PluginBaseEntity {
* @author liuyang * @author liuyang
*/ */
private String createGenerateBusinessDateStock(com.hzya.frame.ttxofs.dto.ofssaleorderoutsearch.HeaderDto header) { private String createGenerateBusinessDateStock(com.hzya.frame.ttxofs.dto.ofssaleorderoutsearch.HeaderDto header) {
//测试 String code = null;
// header.setShipAt("2024-09-14"); if (header != null && header.getCode() != null) {
code = header.getCode();
}
if (header != null && header.getShipAt() != null) { if (header != null && header.getShipAt() != null) {
//TOC以出库日期作为业务日期 //TOC以出库日期作为业务日期
String shipAt = header.getShipAt(); String shipAt = header.getShipAt();
@ -926,14 +928,13 @@ public class SoSaleOutPluginInitializerToC extends PluginBaseEntity {
Date dbill = DateUtil.parse(shipAt); Date dbill = DateUtil.parse(shipAt);
businessFormat = DateUtil.format(dbill, "yyyy-MM-dd"); businessFormat = DateUtil.format(dbill, "yyyy-MM-dd");
} catch (Exception e) { } catch (Exception e) {
// e.printStackTrace(); logger.error("业务日期生成失败shipAt(O发货时间)解析异常:{} O销售出库单编码{}", e.getMessage(), code);
logger.error("业务日期转换失败", e); Assert.state(false, "业务日期生成失败shipAt(O发货时间)解析异常:{} O销售出库单编码{}", e.getMessage(), code);
Assert.state(false, "业务日期生成失败,原因:", e);
} }
return businessFormat; return businessFormat;
} else { } else {
logger.error("生成出库日期失败或者shipAt为空! json{}", JSON.toJSON(header)); logger.error("业务日期生成失败shipAt(O发货时间)不能为空! O销售出库单编码{}", code);
Assert.state(false, "生成出库日期失败或者shipAt为空! json{}", JSON.toJSON(header)); Assert.state(false, "业务日期生成失败shipAt(O发货时间)不能为空! O销售出库单编码{}", code);
return null; return null;
} }
} }
@ -945,6 +946,10 @@ 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) {
String code = null;
if (header != null && header.getCode() != null) {
code = header.getCode();
}
if (header != null && header.getTradeSuccessAt() != null) { if (header != null && header.getTradeSuccessAt() != null) {
//TOC以出库日期作为业务日期 //TOC以出库日期作为业务日期
String tradeSuccessAt = header.getTradeSuccessAt(); String tradeSuccessAt = header.getTradeSuccessAt();
@ -953,14 +958,13 @@ public class SoSaleOutPluginInitializerToC extends PluginBaseEntity {
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) {
// e.printStackTrace(); logger.error("业务日期生成失败tradeSuccessAt(O交易成功时间)解析异常:{} O销售出库单编码{}", e.getMessage(), code);
logger.error("业务日期转换失败", e); Assert.state(false, "业务日期生成失败tradeSuccessAt(O交易成功时间)解析异常:{} O销售出库单编码{}", e.getMessage(), code);
Assert.state(false, "业务日期生成失败,原因:", e);
} }
return businessFormat; return businessFormat;
} else { } else {
logger.error("生成出库日期失败或者tradeSuccessAt为空! json{}", JSON.toJSON(header)); logger.error("业务日期生成失败tradeSuccessAt(O交易成功时间)不能为空! O销售出库单编码{}", code);
Assert.state(false, "生成出库日期失败或者tradeSuccessAt为空! json{}", JSON.toJSON(header)); Assert.state(false, "业务日期生成失败tradeSuccessAt(O交易成功时间)不能为空! O销售出库单编码{}", code);
return null; return null;
} }
} }

View File

@ -863,6 +863,10 @@ public class SoSaleReturnPluginInitializerToB extends PluginBaseEntity {
* @author liuyang * @author liuyang
*/ */
private String createGenerateBusinessDate(OrderToBHeaderDto orderOutTobHeaderDto) { private String createGenerateBusinessDate(OrderToBHeaderDto orderOutTobHeaderDto) {
String code = null;
if (orderOutTobHeaderDto != null && orderOutTobHeaderDto.getHeader() != null) {
code = orderOutTobHeaderDto.getHeader().getCode();
}
if (orderOutTobHeaderDto != null && orderOutTobHeaderDto.getHeader() != null && orderOutTobHeaderDto.getHeader().getClosedAt() != null) { if (orderOutTobHeaderDto != null && orderOutTobHeaderDto.getHeader() != null && orderOutTobHeaderDto.getHeader().getClosedAt() != null) {
StockinOrderSearchResponse.StockinOrder.StockinH header = orderOutTobHeaderDto.getHeader(); StockinOrderSearchResponse.StockinOrder.StockinH header = orderOutTobHeaderDto.getHeader();
String closedAt = header.getClosedAt(); String closedAt = header.getClosedAt();
@ -871,12 +875,13 @@ public class SoSaleReturnPluginInitializerToB extends PluginBaseEntity {
Date dbill = DateUtil.parse(closedAt); Date dbill = DateUtil.parse(closedAt);
businessFormat = DateUtil.format(dbill, "yyyy-MM-dd"); businessFormat = DateUtil.format(dbill, "yyyy-MM-dd");
} catch (Exception e) { } catch (Exception e) {
logger.error("业务日期生成失败", e); logger.error("业务日期生成失败closedAt(O关单时间)解析异常:{} O售后入库单号{}", e.getMessage(), code);
Assert.state(false, "业务日期生成失败closedAt(O关单时间)解析异常:{} O售后入库单号{}", e.getMessage(), code);
} }
return businessFormat; return businessFormat;
} else { } else {
logger.error("OFS字段closedAt为空(作为U8C的业务日期)! json{}", JSON.toJSON(orderOutTobHeaderDto)); logger.error("业务日期生成失败closedAt(O关单时间)不能为空 O售后入库单号:{}", code);
Assert.state(false, "OFS字段closedAt为空(作为U8C的业务日期)! json{}", JSON.toJSON(orderOutTobHeaderDto)); Assert.state(false, "业务日期生成失败closedAt(O关单时间)不能为空 O售后入库单号:{}", code);
return null; return null;
} }
} }
@ -1886,6 +1891,10 @@ public class SoSaleReturnPluginInitializerToB extends PluginBaseEntity {
* @author liuyang * @author liuyang
*/ */
private String createSuccessFulTradeDate(OrderToBHeaderDto orderOutTobHeaderDto) { private String createSuccessFulTradeDate(OrderToBHeaderDto orderOutTobHeaderDto) {
String code = null;
if (orderOutTobHeaderDto != null && orderOutTobHeaderDto.getHeader() != null) {
code = orderOutTobHeaderDto.getHeader().getCode();
}
if (orderOutTobHeaderDto != null && orderOutTobHeaderDto.getHeader() != null && orderOutTobHeaderDto.getHeader().getRefundedAt() != null) { if (orderOutTobHeaderDto != null && orderOutTobHeaderDto.getHeader() != null && orderOutTobHeaderDto.getHeader().getRefundedAt() != null) {
StockinOrderSearchResponse.StockinOrder.StockinH header = orderOutTobHeaderDto.getHeader(); StockinOrderSearchResponse.StockinOrder.StockinH header = orderOutTobHeaderDto.getHeader();
String refundedAt = header.getRefundedAt(); String refundedAt = header.getRefundedAt();
@ -1894,13 +1903,13 @@ public class SoSaleReturnPluginInitializerToB extends PluginBaseEntity {
Date dbill = DateUtil.parse(refundedAt); Date dbill = DateUtil.parse(refundedAt);
businessFormat = DateUtil.format(dbill, "yyyy-MM-dd"); businessFormat = DateUtil.format(dbill, "yyyy-MM-dd");
} catch (Exception e) { } catch (Exception e) {
logger.error("refundedAt业务日期生成失败", e); logger.error("业务日期生成失败refundedAt(O退款完成时间)解析异常:{} O售后入库单编码{}", e.getMessage(), code);
Assert.state(false, "refundedAt业务日期生成失败不能为空"); Assert.state(false, "业务日期生成失败refundedAt(O退款完成时间)解析异常:{} O售后入库单编码{}", e.getMessage(), code);
} }
return businessFormat; return businessFormat;
} else { } else {
logger.error("refundedAt为空! json{}", JSON.toJSON(orderOutTobHeaderDto)); logger.error("业务日期生成失败refundedAt(O退款完成时间)不能为空! O售后入库单编码{}", code);
Assert.state(false, "refundedAt为空! json{}", JSON.toJSON(orderOutTobHeaderDto)); Assert.state(false, "业务日期生成失败refundedAt(O退款完成时间)不能为空! O售后入库单编码{}", code);
return null; return null;
} }
} }

View File

@ -959,6 +959,10 @@ public class SoSaleReturnPluginInitializerToC extends PluginBaseEntity {
* @author liuyang * @author liuyang
*/ */
private String createGenerateBusinessDate(StockinOrderSearchResponse.StockinOrder.StockinH header) { private String createGenerateBusinessDate(StockinOrderSearchResponse.StockinOrder.StockinH header) {
String code = null;
if (header != null && header.getCode() != null) {
code = header.getCode();
}
if (header != null && header.getClosedAt() != null) { if (header != null && header.getClosedAt() != null) {
//TOC以出库日期作为业务日期 //TOC以出库日期作为业务日期
String closedAt = header.getClosedAt(); String closedAt = header.getClosedAt();
@ -967,13 +971,13 @@ public class SoSaleReturnPluginInitializerToC extends PluginBaseEntity {
Date dbill = DateUtil.parse(closedAt); Date dbill = DateUtil.parse(closedAt);
businessFormat = DateUtil.format(dbill, "yyyy-MM-dd"); businessFormat = DateUtil.format(dbill, "yyyy-MM-dd");
} catch (Exception e) { } catch (Exception e) {
e.printStackTrace(); logger.error("业务日期生成失败closedAt(O关单时间)解析异常:{} O售后入库单号{}", e.getMessage(), code);
logger.error("业务日期转换失败", e); Assert.state(false, "业务日期生成失败closedAt(O关单时间)解析异常:{} O售后入库单号{}", e.getMessage(), code);
} }
return businessFormat; return businessFormat;
} else { } else {
logger.error("OFS字段closedAt为空(作为U8C的业务日期)! json{}", JSON.toJSON(header)); logger.error("业务日期生成失败closedAt(O关单时间)不能为空 O售后入库单号:{}", code);
Assert.state(false, "OFS字段closedAt为空(作为U8C的业务日期)! json{}", JSON.toJSON(header)); Assert.state(false, "业务日期生成失败closedAt(O关单时间)不能为空 O售后入库单号:{}", code);
return null; return null;
} }
} }
@ -985,21 +989,24 @@ public class SoSaleReturnPluginInitializerToC extends PluginBaseEntity {
* @author liuyang * @author liuyang
*/ */
private String createSuccessFulTradeDate(StockinOrderSearchResponse.StockinOrder.StockinH stockinH) { private String createSuccessFulTradeDate(StockinOrderSearchResponse.StockinOrder.StockinH stockinH) {
String code = null;
if (stockinH != null && stockinH.getCode() != null) {
code = stockinH.getCode();
}
if (stockinH != null && stockinH.getRefundedAt() != null) { if (stockinH != null && stockinH.getRefundedAt() != null) {
// StockinOrderSearchResponse.StockinOrder.StockinH header = orderOutTobHeaderDto.getHeader();
String refundedAt = stockinH.getRefundedAt(); String refundedAt = stockinH.getRefundedAt();
String businessFormat = null; String businessFormat = null;
try { try {
Date dbill = DateUtil.parse(refundedAt); Date dbill = DateUtil.parse(refundedAt);
businessFormat = DateUtil.format(dbill, "yyyy-MM-dd"); businessFormat = DateUtil.format(dbill, "yyyy-MM-dd");
} catch (Exception e) { } catch (Exception e) {
logger.error("refundedAt业务日期生成失败", e); logger.error("业务日期生成失败refundedAt(O退款完成时间)解析异常:{} O售后入库单编码{}", e.getMessage(), code);
Assert.state(false, "refundedAt业务日期生成失败不能为空"); Assert.state(false, "业务日期生成失败refundedAt(O退款完成时间)解析异常:{} O售后入库单编码{}", e.getMessage(), code);
} }
return businessFormat; return businessFormat;
} else { } else {
logger.error("refundedAt为空! json{}", JSON.toJSON(stockinH)); logger.error("业务日期生成失败refundedAt(O退款完成时间)不能为空! O售后入库单编码{}", code);
Assert.state(false, "refundedAt为空! json{}", JSON.toJSON(stockinH)); Assert.state(false, "业务日期生成失败refundedAt(O退款完成时间)不能为空! O售后入库单编码{}", code);
return null; return null;
} }
} }