From 992e143bbcae75b3dc09a47cb9b1c509c281d9d0 Mon Sep 17 00:00:00 2001 From: liuy <37787198+LiuyCodes@users.noreply.github.com> Date: Tue, 15 Oct 2024 11:55:36 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A2=9E=E5=BC=BA=E9=94=80=E5=94=AE=E5=87=BA?= =?UTF-8?q?=E5=BA=93=E5=92=8C=E9=80=80=E8=B4=A7=E6=8F=92=E4=BB=B6=E4=B8=AD?= =?UTF-8?q?=E7=9A=84=E4=B8=9A=E5=8A=A1=E6=97=A5=E6=9C=9F=E7=94=9F=E6=88=90?= =?UTF-8?q?=E9=80=BB=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 在销售出库和退货插件中,增加获取订单编码的逻辑- 优化业务日期生成方法,加入订单编码信息到日志和异常信息中 - 提高代码健壮性,增加空值检查和异常处理 - 重构部分代码,提高可读性和维护性 --- .../sales/SoSaleOutPluginInitializerToB.java | 32 +++++++++++-------- .../sales/SoSaleOutPluginInitializerToC.java | 28 +++++++++------- .../SoSaleReturnPluginInitializerToB.java | 23 +++++++++---- .../SoSaleReturnPluginInitializerToC.java | 25 +++++++++------ 4 files changed, 66 insertions(+), 42 deletions(-) diff --git a/buildpackage/src/main/java/com/hzya/frame/plugin/lets/plugin/sales/SoSaleOutPluginInitializerToB.java b/buildpackage/src/main/java/com/hzya/frame/plugin/lets/plugin/sales/SoSaleOutPluginInitializerToB.java index d5594506..8a4492d4 100644 --- a/buildpackage/src/main/java/com/hzya/frame/plugin/lets/plugin/sales/SoSaleOutPluginInitializerToB.java +++ b/buildpackage/src/main/java/com/hzya/frame/plugin/lets/plugin/sales/SoSaleOutPluginInitializerToB.java @@ -876,6 +876,10 @@ public class SoSaleOutPluginInitializerToB extends PluginBaseEntity { * @author liuyang */ 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) { HeaderDto header = orderOutTobHeaderDto.getHeader(); String shipAt = header.getShipAt(); @@ -884,14 +888,13 @@ public class SoSaleOutPluginInitializerToB extends PluginBaseEntity { Date dbill = DateUtil.parse(shipAt); businessFormat = DateUtil.format(dbill, "yyyy-MM-dd"); } catch (Exception e) { - logger.error("业务日期生成失败", e); - Assert.state(false, "业务日期生成失败,抛出异常:" + e.getMessage()); + logger.error("业务日期生成失败shipAt(O发货时间)解析异常:{} O销售出库单编码:{}", e.getMessage(), code); + Assert.state(false, "业务日期生成失败shipAt(O发货时间)解析异常:{} O销售出库单编码:{}", e.getMessage(), code); } - logger.info("TOB库存同步业务,生成的业务日期:{}", businessFormat); return businessFormat; } else { - logger.error("生成出库日期失败,或者shipAt为空! json:{}", JSON.toJSON(orderOutTobHeaderDto)); - Assert.state(false, "生成出库日期失败,或者shipAt为空! json:{}", JSON.toJSON(orderOutTobHeaderDto)); + logger.error("业务日期生成失败shipAt(O发货时间)不能为空! O销售出库单编码:{}", code); + Assert.state(false, "业务日期生成失败shipAt(O发货时间)不能为空! O销售出库单编码:{}", code); return null; } } @@ -903,24 +906,25 @@ public class SoSaleOutPluginInitializerToB extends PluginBaseEntity { * @author liuyang */ private String createSuccessFulTradeDate(OrderOutTobHeaderDto orderOutTobHeaderDto) throws Exception { - //测试 -// orderOutTobHeaderDto.getHeader().setTradeSuccessAt("2024-09-12"); + String code = null; + if (orderOutTobHeaderDto != null && orderOutTobHeaderDto.getHeader() != null) { + code = orderOutTobHeaderDto.getHeader().getCode(); + } if (orderOutTobHeaderDto != null && orderOutTobHeaderDto.getHeader() != null && orderOutTobHeaderDto.getHeader().getTradeSuccessAt() != null) { HeaderDto header = orderOutTobHeaderDto.getHeader(); - String shipAt = header.getTradeSuccessAt(); + String tradeSuccessAt = header.getTradeSuccessAt(); String businessFormat = null; try { - Date dbill = DateUtil.parse(shipAt); + Date dbill = DateUtil.parse(tradeSuccessAt); businessFormat = DateUtil.format(dbill, "yyyy-MM-dd"); } catch (Exception e) { - logger.error("tradeSuccessAt业务日期生成失败", e); - Assert.state(false, "业务日期生成失败,抛出异常:" + e.getMessage()); + logger.error("业务日期生成失败tradeSuccessAt(O交易成功时间)解析异常:{} O销售出库单编码:{}", e.getMessage(), code); + Assert.state(false, "业务日期生成失败tradeSuccessAt(O交易成功日期)解析异常:{} O销售出库单编码:{}", e.getMessage(), code); } - logger.info("TOB销售发票业务,生成的的业务日期为:{}", businessFormat); return businessFormat; } else { - logger.error("生成发票业务日期失败,或者tradeSuccessAt为空! json:{}", JSON.toJSON(orderOutTobHeaderDto)); - Assert.state(false, "生成发票业务日期失败,或者tradeSuccessAt为空! json:{}", JSON.toJSON(orderOutTobHeaderDto)); + logger.error("业务日期生成失败tradeSuccessAt(O交易成功时间)不能为空! O销售出库单编码:{}", code); + Assert.state(false, "业务日期生成失败tradeSuccessAt(O交易成功日期)不能为空! O销售出库单编码:{}", code); return null; } } diff --git a/buildpackage/src/main/java/com/hzya/frame/plugin/lets/plugin/sales/SoSaleOutPluginInitializerToC.java b/buildpackage/src/main/java/com/hzya/frame/plugin/lets/plugin/sales/SoSaleOutPluginInitializerToC.java index 9ddab6aa..54be2875 100644 --- a/buildpackage/src/main/java/com/hzya/frame/plugin/lets/plugin/sales/SoSaleOutPluginInitializerToC.java +++ b/buildpackage/src/main/java/com/hzya/frame/plugin/lets/plugin/sales/SoSaleOutPluginInitializerToC.java @@ -916,8 +916,10 @@ public class SoSaleOutPluginInitializerToC extends PluginBaseEntity { * @author liuyang */ private String createGenerateBusinessDateStock(com.hzya.frame.ttxofs.dto.ofssaleorderoutsearch.HeaderDto header) { - //测试 -// header.setShipAt("2024-09-14"); + String code = null; + if (header != null && header.getCode() != null) { + code = header.getCode(); + } if (header != null && header.getShipAt() != null) { //TOC以出库日期作为业务日期 String shipAt = header.getShipAt(); @@ -926,14 +928,13 @@ public class SoSaleOutPluginInitializerToC extends PluginBaseEntity { Date dbill = DateUtil.parse(shipAt); businessFormat = DateUtil.format(dbill, "yyyy-MM-dd"); } catch (Exception e) { -// e.printStackTrace(); - logger.error("业务日期转换失败", e); - Assert.state(false, "业务日期生成失败,原因:", e); + logger.error("业务日期生成失败shipAt(O发货时间)解析异常:{} O销售出库单编码:{}", e.getMessage(), code); + Assert.state(false, "业务日期生成失败shipAt(O发货时间)解析异常:{} O销售出库单编码:{}", e.getMessage(), code); } return businessFormat; } else { - logger.error("生成出库日期失败,或者shipAt为空! json:{}", JSON.toJSON(header)); - Assert.state(false, "生成出库日期失败,或者shipAt为空! json:{}", JSON.toJSON(header)); + logger.error("业务日期生成失败shipAt(O发货时间)不能为空! O销售出库单编码:{}", code); + Assert.state(false, "业务日期生成失败shipAt(O发货时间)不能为空! O销售出库单编码:{}", code); return null; } } @@ -945,6 +946,10 @@ public class SoSaleOutPluginInitializerToC extends PluginBaseEntity { * @author liuyang */ 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) { //TOC以出库日期作为业务日期 String tradeSuccessAt = header.getTradeSuccessAt(); @@ -953,14 +958,13 @@ public class SoSaleOutPluginInitializerToC extends PluginBaseEntity { Date dbill = DateUtil.parse(tradeSuccessAt); businessFormat = DateUtil.format(dbill, "yyyy-MM-dd"); } catch (Exception e) { -// e.printStackTrace(); - logger.error("业务日期转换失败", e); - Assert.state(false, "业务日期生成失败,原因:", e); + logger.error("业务日期生成失败tradeSuccessAt(O交易成功时间)解析异常:{} O销售出库单编码:{}", e.getMessage(), code); + Assert.state(false, "业务日期生成失败tradeSuccessAt(O交易成功时间)解析异常:{} O销售出库单编码:{}", e.getMessage(), code); } return businessFormat; } else { - logger.error("生成出库日期失败,或者tradeSuccessAt为空! json:{}", JSON.toJSON(header)); - Assert.state(false, "生成出库日期失败,或者tradeSuccessAt为空! json:{}", JSON.toJSON(header)); + logger.error("业务日期生成失败tradeSuccessAt(O交易成功时间)不能为空! O销售出库单编码:{}", code); + Assert.state(false, "业务日期生成失败tradeSuccessAt(O交易成功时间)不能为空! O销售出库单编码:{}", code); return null; } } diff --git a/buildpackage/src/main/java/com/hzya/frame/plugin/lets/plugin/sales/SoSaleReturnPluginInitializerToB.java b/buildpackage/src/main/java/com/hzya/frame/plugin/lets/plugin/sales/SoSaleReturnPluginInitializerToB.java index e9d4ab28..f46bbe85 100644 --- a/buildpackage/src/main/java/com/hzya/frame/plugin/lets/plugin/sales/SoSaleReturnPluginInitializerToB.java +++ b/buildpackage/src/main/java/com/hzya/frame/plugin/lets/plugin/sales/SoSaleReturnPluginInitializerToB.java @@ -863,6 +863,10 @@ public class SoSaleReturnPluginInitializerToB extends PluginBaseEntity { * @author liuyang */ 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) { StockinOrderSearchResponse.StockinOrder.StockinH header = orderOutTobHeaderDto.getHeader(); String closedAt = header.getClosedAt(); @@ -871,12 +875,13 @@ public class SoSaleReturnPluginInitializerToB extends PluginBaseEntity { Date dbill = DateUtil.parse(closedAt); businessFormat = DateUtil.format(dbill, "yyyy-MM-dd"); } 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; } else { - logger.error("OFS字段closedAt为空(作为U8C的业务日期)! json:{}", JSON.toJSON(orderOutTobHeaderDto)); - Assert.state(false, "OFS字段closedAt为空(作为U8C的业务日期)! json:{}", JSON.toJSON(orderOutTobHeaderDto)); + logger.error("业务日期生成失败closedAt(O关单时间)不能为空 O售后入库单号:{}", code); + Assert.state(false, "业务日期生成失败closedAt(O关单时间)不能为空 O售后入库单号:{}", code); return null; } } @@ -1886,6 +1891,10 @@ public class SoSaleReturnPluginInitializerToB extends PluginBaseEntity { * @author liuyang */ 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) { StockinOrderSearchResponse.StockinOrder.StockinH header = orderOutTobHeaderDto.getHeader(); String refundedAt = header.getRefundedAt(); @@ -1894,13 +1903,13 @@ public class SoSaleReturnPluginInitializerToB extends PluginBaseEntity { Date dbill = DateUtil.parse(refundedAt); businessFormat = DateUtil.format(dbill, "yyyy-MM-dd"); } catch (Exception e) { - logger.error("refundedAt业务日期生成失败", e); - Assert.state(false, "refundedAt业务日期生成失败不能为空"); + logger.error("业务日期生成失败refundedAt(O退款完成时间)解析异常:{} O售后入库单编码:{}", e.getMessage(), code); + Assert.state(false, "业务日期生成失败refundedAt(O退款完成时间)解析异常:{} O售后入库单编码:{}", e.getMessage(), code); } return businessFormat; } else { - logger.error("refundedAt为空! json:{}", JSON.toJSON(orderOutTobHeaderDto)); - Assert.state(false, "refundedAt为空! json:{}", JSON.toJSON(orderOutTobHeaderDto)); + logger.error("业务日期生成失败refundedAt(O退款完成时间)不能为空! O售后入库单编码:{}", code); + Assert.state(false, "业务日期生成失败refundedAt(O退款完成时间)不能为空! O售后入库单编码:{}", code); return null; } } diff --git a/buildpackage/src/main/java/com/hzya/frame/plugin/lets/plugin/sales/SoSaleReturnPluginInitializerToC.java b/buildpackage/src/main/java/com/hzya/frame/plugin/lets/plugin/sales/SoSaleReturnPluginInitializerToC.java index 69583825..5fd926ec 100644 --- a/buildpackage/src/main/java/com/hzya/frame/plugin/lets/plugin/sales/SoSaleReturnPluginInitializerToC.java +++ b/buildpackage/src/main/java/com/hzya/frame/plugin/lets/plugin/sales/SoSaleReturnPluginInitializerToC.java @@ -959,6 +959,10 @@ public class SoSaleReturnPluginInitializerToC extends PluginBaseEntity { * @author liuyang */ 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) { //TOC以出库日期作为业务日期 String closedAt = header.getClosedAt(); @@ -967,13 +971,13 @@ public class SoSaleReturnPluginInitializerToC extends PluginBaseEntity { Date dbill = DateUtil.parse(closedAt); businessFormat = DateUtil.format(dbill, "yyyy-MM-dd"); } catch (Exception e) { - e.printStackTrace(); - logger.error("业务日期转换失败", e); + logger.error("业务日期生成失败closedAt(O关单时间)解析异常:{} O售后入库单号:{}", e.getMessage(), code); + Assert.state(false, "业务日期生成失败closedAt(O关单时间)解析异常:{} O售后入库单号:{}", e.getMessage(), code); } return businessFormat; } else { - logger.error("OFS字段closedAt为空(作为U8C的业务日期)! json:{}", JSON.toJSON(header)); - Assert.state(false, "OFS字段closedAt为空(作为U8C的业务日期)! json:{}", JSON.toJSON(header)); + logger.error("业务日期生成失败closedAt(O关单时间)不能为空 O售后入库单号:{}", code); + Assert.state(false, "业务日期生成失败closedAt(O关单时间)不能为空 O售后入库单号:{}", code); return null; } } @@ -985,21 +989,24 @@ public class SoSaleReturnPluginInitializerToC extends PluginBaseEntity { * @author liuyang */ 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) { -// StockinOrderSearchResponse.StockinOrder.StockinH header = orderOutTobHeaderDto.getHeader(); String refundedAt = stockinH.getRefundedAt(); String businessFormat = null; try { Date dbill = DateUtil.parse(refundedAt); businessFormat = DateUtil.format(dbill, "yyyy-MM-dd"); } catch (Exception e) { - logger.error("refundedAt业务日期生成失败", e); - Assert.state(false, "refundedAt业务日期生成失败不能为空"); + logger.error("业务日期生成失败refundedAt(O退款完成时间)解析异常:{} O售后入库单编码:{}", e.getMessage(), code); + Assert.state(false, "业务日期生成失败refundedAt(O退款完成时间)解析异常:{} O售后入库单编码:{}", e.getMessage(), code); } return businessFormat; } else { - logger.error("refundedAt为空! json:{}", JSON.toJSON(stockinH)); - Assert.state(false, "refundedAt为空! json:{}", JSON.toJSON(stockinH)); + logger.error("业务日期生成失败refundedAt(O退款完成时间)不能为空! O售后入库单编码:{}", code); + Assert.state(false, "业务日期生成失败refundedAt(O退款完成时间)不能为空! O售后入库单编码:{}", code); return null; } }