From 000092952fa1721c4ae23a92715f73985300a810 Mon Sep 17 00:00:00 2001 From: rcx <3084692334@qq.com> Date: Fri, 21 Aug 2026 15:28:50 +0800 Subject: [PATCH] =?UTF-8?q?feat(oms,wms):=E5=87=BA=E5=BA=93/=E8=BF=90?= =?UTF-8?q?=E8=BE=93=E5=8D=95=E6=8D=AE=E5=A2=9E=E5=8A=A0=E7=BA=BF=E8=B7=AF?= =?UTF-8?q?=E8=BD=A6=E6=AC=A1=E5=AD=97=E6=AE=B5,=E7=BA=BF=E8=B7=AF?= =?UTF-8?q?=E7=AE=A1=E7=90=86=E6=94=AF=E6=8C=81=E8=BD=A6=E6=AC=A1=E6=B8=85?= =?UTF-8?q?=E5=8D=95=E7=BB=B4=E6=8A=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 1. OMS四张表(business_document_order/execute_order/ reservation_stock_out_order/execution_stock_out_order)加 LINE_CODE/LINE_NAME/SHUTTLE_NO三列,entity/DO/DTO/PO同步加字段, 出库两链路Mapper XML补列与resultMap。 线路编码/名称冗余存line_management的route_code/route_name (两库不互通无法join);SHUTTLE_NO为字符串(如4或31-4), 前端拼"编码-车次"显示(31-4车次);不复用route(存tms_route.id) 和train_no(入库链路占用)。 下发链路(预约单->执行单,业务单->执行单)同名拷贝自动透传。 2. WMS line_management加SHUTTLE_JSON列(车次序号JSON数组), 四层加字段+XML;DTO加反序列化器兼容前端传数组, PO加序列化器返回原样输出数组。 3. LineManagementImpl.update组织/仓库名称空串兜底, 修复编辑线路后组织名称被刷成空串、列表查不到的问题。 4. 新增建表脚本sql/20260820_oms_outbound_transport_add_line_shuttle.sql(达梦语法)。 --- .../entity/BusinessDocumentOrder.java | 12 +++++ .../po/BusinessDocumentOrderPO.java | 12 +++++ .../todo/BusinessDocumentOrderDO.java | 9 ++++ .../executeOrder/entity/ExecuteOrder.java | 12 +++++ .../repository/po/ExecuteOrderPO.java | 12 +++++ .../repository/todo/ExecuteOrderDO.java | 9 ++++ .../entity/ExecutionStockOutOrder.java | 12 +++++ .../po/ExecutionStockOutOrderPO.java | 12 +++++ .../todo/ExecutionStockOutOrderDO.java | 9 ++++ .../todo/ExecutionStockOutOrderDTO.java | 9 ++++ .../entity/ReservationStockOutOrder.java | 11 ++++ .../po/ReservationStockOutOrderPO.java | 13 +++++ .../todo/ReservationStockOutOrderDO.java | 10 ++++ .../todo/ReservationStockOutOrderDTO.java | 10 ++++ .../BusinessDocumentOrderDTO.java | 9 ++++ .../dto/executeOrder/ExecuteOrderDTO.java | 9 ++++ .../ExecutionStockOutOrderMapper.xml | 5 +- .../ReservationStockOutOrderMapper.xml | 5 +- .../lineManagement/entity/LineManagement.java | 6 +++ .../persistence/LineManagementImpl.java | 9 ++++ .../repository/po/LineManagementPO.java | 8 +++ .../repository/po/ShuttleJsonSerializer.java | 31 +++++++++++ .../repository/todo/LineManagementDO.java | 6 +++ .../dto/LineManagement/LineManagementDTO.java | 8 +++ .../ShuttleJsonDeserializer.java | 24 +++++++++ .../lineManagement/LineManagementMapper.xml | 2 + ...ms_outbound_transport_add_line_shuttle.sql | 52 +++++++++++++++++++ 27 files changed, 324 insertions(+), 2 deletions(-) create mode 100644 mhd_wms/src/main/java/com/mhd/wms/domain/lineManagement/repository/po/ShuttleJsonSerializer.java create mode 100644 mhd_wms/src/main/java/com/mhd/wms/interfaces/dto/LineManagement/ShuttleJsonDeserializer.java create mode 100644 sql/20260820_oms_outbound_transport_add_line_shuttle.sql diff --git a/mhd_oms/src/main/java/com/mhd/oms/domain/businessDocumentOrder/entity/BusinessDocumentOrder.java b/mhd_oms/src/main/java/com/mhd/oms/domain/businessDocumentOrder/entity/BusinessDocumentOrder.java index e1bd5a51f..5734bedad 100644 --- a/mhd_oms/src/main/java/com/mhd/oms/domain/businessDocumentOrder/entity/BusinessDocumentOrder.java +++ b/mhd_oms/src/main/java/com/mhd/oms/domain/businessDocumentOrder/entity/BusinessDocumentOrder.java @@ -813,4 +813,16 @@ public class BusinessDocumentOrder extends BaseVOEntity{ @ApiModelProperty("车次") private Integer trainNo; + + @ApiModelProperty("线路编码(取自WMS线路管理)") + @Excel(name = "线路编码") + private String lineCode; + + @ApiModelProperty("线路名称(冗余存储)") + @Excel(name = "线路名称") + private String lineName; + + @ApiModelProperty("车次") + @Excel(name = "车次") + private String shuttleNo; } diff --git a/mhd_oms/src/main/java/com/mhd/oms/domain/businessDocumentOrder/repository/po/BusinessDocumentOrderPO.java b/mhd_oms/src/main/java/com/mhd/oms/domain/businessDocumentOrder/repository/po/BusinessDocumentOrderPO.java index ea6e26ee2..3dd4448bf 100644 --- a/mhd_oms/src/main/java/com/mhd/oms/domain/businessDocumentOrder/repository/po/BusinessDocumentOrderPO.java +++ b/mhd_oms/src/main/java/com/mhd/oms/domain/businessDocumentOrder/repository/po/BusinessDocumentOrderPO.java @@ -850,4 +850,16 @@ public class BusinessDocumentOrderPO extends BaseVOEntity{ @ApiModelProperty("车次") private Integer trainNo; + @ApiModelProperty("线路编码(取自WMS线路管理)") + @Excel(name = "线路编码") + private String lineCode; + + @ApiModelProperty("线路名称(冗余存储)") + @Excel(name = "线路名称") + private String lineName; + + @ApiModelProperty("车次") + @Excel(name = "车次") + private String shuttleNo; + } diff --git a/mhd_oms/src/main/java/com/mhd/oms/domain/businessDocumentOrder/repository/todo/BusinessDocumentOrderDO.java b/mhd_oms/src/main/java/com/mhd/oms/domain/businessDocumentOrder/repository/todo/BusinessDocumentOrderDO.java index 5f7f53c53..064754dc3 100644 --- a/mhd_oms/src/main/java/com/mhd/oms/domain/businessDocumentOrder/repository/todo/BusinessDocumentOrderDO.java +++ b/mhd_oms/src/main/java/com/mhd/oms/domain/businessDocumentOrder/repository/todo/BusinessDocumentOrderDO.java @@ -886,4 +886,13 @@ public class BusinessDocumentOrderDO extends BaseVOEntity{ @ApiModelProperty("车次") private Integer trainNo; + @ApiModelProperty("线路编码(取自WMS线路管理)") + private String lineCode; + + @ApiModelProperty("线路名称(冗余存储)") + private String lineName; + + @ApiModelProperty("车次") + private String shuttleNo; + } diff --git a/mhd_oms/src/main/java/com/mhd/oms/domain/executeOrder/entity/ExecuteOrder.java b/mhd_oms/src/main/java/com/mhd/oms/domain/executeOrder/entity/ExecuteOrder.java index b46112e77..8365613f7 100644 --- a/mhd_oms/src/main/java/com/mhd/oms/domain/executeOrder/entity/ExecuteOrder.java +++ b/mhd_oms/src/main/java/com/mhd/oms/domain/executeOrder/entity/ExecuteOrder.java @@ -158,4 +158,16 @@ public class ExecuteOrder extends BaseVOEntity{ @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss") private Date invoiceDate; + @ApiModelProperty("线路编码(取自WMS线路管理)") + @Excel(name = "线路编码") + private String lineCode; + + @ApiModelProperty("线路名称(冗余存储)") + @Excel(name = "线路名称") + private String lineName; + + @ApiModelProperty("车次") + @Excel(name = "车次") + private String shuttleNo; + } diff --git a/mhd_oms/src/main/java/com/mhd/oms/domain/executeOrder/repository/po/ExecuteOrderPO.java b/mhd_oms/src/main/java/com/mhd/oms/domain/executeOrder/repository/po/ExecuteOrderPO.java index 8d6c76c19..9764dea47 100644 --- a/mhd_oms/src/main/java/com/mhd/oms/domain/executeOrder/repository/po/ExecuteOrderPO.java +++ b/mhd_oms/src/main/java/com/mhd/oms/domain/executeOrder/repository/po/ExecuteOrderPO.java @@ -244,4 +244,16 @@ public class ExecuteOrderPO extends BaseVOEntity{ @ApiModelProperty("车次") private Integer trainNo; + @ApiModelProperty("线路编码(取自WMS线路管理)") + @Excel(name = "线路编码") + private String lineCode; + + @ApiModelProperty("线路名称(冗余存储)") + @Excel(name = "线路名称") + private String lineName; + + @ApiModelProperty("车次") + @Excel(name = "车次") + private String shuttleNo; + } diff --git a/mhd_oms/src/main/java/com/mhd/oms/domain/executeOrder/repository/todo/ExecuteOrderDO.java b/mhd_oms/src/main/java/com/mhd/oms/domain/executeOrder/repository/todo/ExecuteOrderDO.java index 63c73e9f3..648bf04fd 100644 --- a/mhd_oms/src/main/java/com/mhd/oms/domain/executeOrder/repository/todo/ExecuteOrderDO.java +++ b/mhd_oms/src/main/java/com/mhd/oms/domain/executeOrder/repository/todo/ExecuteOrderDO.java @@ -182,4 +182,13 @@ public class ExecuteOrderDO extends BaseVOEntity{ @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss") @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss") private Date documentEndTime; + + @ApiModelProperty("线路编码(取自WMS线路管理)") + private String lineCode; + + @ApiModelProperty("线路名称(冗余存储)") + private String lineName; + + @ApiModelProperty("车次") + private String shuttleNo; } diff --git a/mhd_oms/src/main/java/com/mhd/oms/domain/executionStockOutOrder/entity/ExecutionStockOutOrder.java b/mhd_oms/src/main/java/com/mhd/oms/domain/executionStockOutOrder/entity/ExecutionStockOutOrder.java index a664ff674..ed985f9ba 100644 --- a/mhd_oms/src/main/java/com/mhd/oms/domain/executionStockOutOrder/entity/ExecutionStockOutOrder.java +++ b/mhd_oms/src/main/java/com/mhd/oms/domain/executionStockOutOrder/entity/ExecutionStockOutOrder.java @@ -492,4 +492,16 @@ public class ExecutionStockOutOrder extends BaseVOEntity { @Excel(name = "车次") private Integer trainNo; + @ApiModelProperty("线路编码(取自WMS线路管理)") + @Excel(name = "线路编码") + private String lineCode; + + @ApiModelProperty("线路名称(冗余存储)") + @Excel(name = "线路名称") + private String lineName; + + @ApiModelProperty("车次") + @Excel(name = "车次") + private String shuttleNo; + } \ No newline at end of file diff --git a/mhd_oms/src/main/java/com/mhd/oms/domain/executionStockOutOrder/repository/po/ExecutionStockOutOrderPO.java b/mhd_oms/src/main/java/com/mhd/oms/domain/executionStockOutOrder/repository/po/ExecutionStockOutOrderPO.java index e1af403b6..cedc1b2d4 100644 --- a/mhd_oms/src/main/java/com/mhd/oms/domain/executionStockOutOrder/repository/po/ExecutionStockOutOrderPO.java +++ b/mhd_oms/src/main/java/com/mhd/oms/domain/executionStockOutOrder/repository/po/ExecutionStockOutOrderPO.java @@ -504,4 +504,16 @@ public class ExecutionStockOutOrderPO extends BaseVOEntity { @Excel(name = "车次") private Integer trainNo; private String khdm; + + @ApiModelProperty("线路编码(取自WMS线路管理)") + @Excel(name = "线路编码") + private String lineCode; + + @ApiModelProperty("线路名称(冗余存储)") + @Excel(name = "线路名称") + private String lineName; + + @ApiModelProperty("车次") + @Excel(name = "车次") + private String shuttleNo; } \ No newline at end of file diff --git a/mhd_oms/src/main/java/com/mhd/oms/domain/executionStockOutOrder/repository/todo/ExecutionStockOutOrderDO.java b/mhd_oms/src/main/java/com/mhd/oms/domain/executionStockOutOrder/repository/todo/ExecutionStockOutOrderDO.java index 7b6cf96c8..9104aec61 100644 --- a/mhd_oms/src/main/java/com/mhd/oms/domain/executionStockOutOrder/repository/todo/ExecutionStockOutOrderDO.java +++ b/mhd_oms/src/main/java/com/mhd/oms/domain/executionStockOutOrder/repository/todo/ExecutionStockOutOrderDO.java @@ -567,4 +567,13 @@ public class ExecutionStockOutOrderDO extends BaseVOEntity { @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") private Date createTimeTo; private String xfStatus; + + @ApiModelProperty("线路编码(取自WMS线路管理)") + private String lineCode; + + @ApiModelProperty("线路名称(冗余存储)") + private String lineName; + + @ApiModelProperty("车次") + private String shuttleNo; } \ No newline at end of file diff --git a/mhd_oms/src/main/java/com/mhd/oms/domain/executionStockOutOrder/repository/todo/ExecutionStockOutOrderDTO.java b/mhd_oms/src/main/java/com/mhd/oms/domain/executionStockOutOrder/repository/todo/ExecutionStockOutOrderDTO.java index ac7a0903a..3478f949c 100644 --- a/mhd_oms/src/main/java/com/mhd/oms/domain/executionStockOutOrder/repository/todo/ExecutionStockOutOrderDTO.java +++ b/mhd_oms/src/main/java/com/mhd/oms/domain/executionStockOutOrder/repository/todo/ExecutionStockOutOrderDTO.java @@ -555,4 +555,13 @@ public class ExecutionStockOutOrderDTO extends ExecutionStockOutOrderBaseDTO { private String outboundDateEnd; private String xfStatus; + + @ApiModelProperty("线路编码(取自WMS线路管理)") + private String lineCode; + + @ApiModelProperty("线路名称(冗余存储)") + private String lineName; + + @ApiModelProperty("车次") + private String shuttleNo; } \ No newline at end of file diff --git a/mhd_oms/src/main/java/com/mhd/oms/domain/reservationStockOutOrder/entity/ReservationStockOutOrder.java b/mhd_oms/src/main/java/com/mhd/oms/domain/reservationStockOutOrder/entity/ReservationStockOutOrder.java index 5279cf42f..74ade0268 100644 --- a/mhd_oms/src/main/java/com/mhd/oms/domain/reservationStockOutOrder/entity/ReservationStockOutOrder.java +++ b/mhd_oms/src/main/java/com/mhd/oms/domain/reservationStockOutOrder/entity/ReservationStockOutOrder.java @@ -491,5 +491,16 @@ public class ReservationStockOutOrder extends BaseVOEntity { @ApiModelProperty("车次") @Excel(name = "车次") private Integer trainNo; + @ApiModelProperty("线路编码(取自WMS线路管理)") + @Excel(name = "线路编码") + private String lineCode; + + @ApiModelProperty("线路名称(冗余存储)") + @Excel(name = "线路名称") + private String lineName; + + @ApiModelProperty("车次") + @Excel(name = "车次") + private String shuttleNo; } \ No newline at end of file diff --git a/mhd_oms/src/main/java/com/mhd/oms/domain/reservationStockOutOrder/repository/po/ReservationStockOutOrderPO.java b/mhd_oms/src/main/java/com/mhd/oms/domain/reservationStockOutOrder/repository/po/ReservationStockOutOrderPO.java index b8bf6e520..b890a96f5 100644 --- a/mhd_oms/src/main/java/com/mhd/oms/domain/reservationStockOutOrder/repository/po/ReservationStockOutOrderPO.java +++ b/mhd_oms/src/main/java/com/mhd/oms/domain/reservationStockOutOrder/repository/po/ReservationStockOutOrderPO.java @@ -513,4 +513,17 @@ public class ReservationStockOutOrderPO extends BaseVOEntity { @Excel(name = "车次") private Integer trainNo; private String khdm; + + @ApiModelProperty("线路编码(取自WMS线路管理)") + @Excel(name = "线路编码") + private String lineCode; + + @ApiModelProperty("线路名称(冗余存储)") + @Excel(name = "线路名称") + private String lineName; + + @ApiModelProperty("车次") + @Excel(name = "车次") + private String shuttleNo; + } \ No newline at end of file diff --git a/mhd_oms/src/main/java/com/mhd/oms/domain/reservationStockOutOrder/repository/todo/ReservationStockOutOrderDO.java b/mhd_oms/src/main/java/com/mhd/oms/domain/reservationStockOutOrder/repository/todo/ReservationStockOutOrderDO.java index 3e9dd473d..fe791b4f5 100644 --- a/mhd_oms/src/main/java/com/mhd/oms/domain/reservationStockOutOrder/repository/todo/ReservationStockOutOrderDO.java +++ b/mhd_oms/src/main/java/com/mhd/oms/domain/reservationStockOutOrder/repository/todo/ReservationStockOutOrderDO.java @@ -569,4 +569,14 @@ public class ReservationStockOutOrderDO extends BaseVOEntity { @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") private Date createTimeTo; private String xfStatus; + + @ApiModelProperty("线路编码(取自WMS线路管理)") + private String lineCode; + + @ApiModelProperty("线路名称(冗余存储)") + private String lineName; + + @ApiModelProperty("车次") + private String shuttleNo; + } \ No newline at end of file diff --git a/mhd_oms/src/main/java/com/mhd/oms/domain/reservationStockOutOrder/repository/todo/ReservationStockOutOrderDTO.java b/mhd_oms/src/main/java/com/mhd/oms/domain/reservationStockOutOrder/repository/todo/ReservationStockOutOrderDTO.java index 6fecfa5d5..8372dce92 100644 --- a/mhd_oms/src/main/java/com/mhd/oms/domain/reservationStockOutOrder/repository/todo/ReservationStockOutOrderDTO.java +++ b/mhd_oms/src/main/java/com/mhd/oms/domain/reservationStockOutOrder/repository/todo/ReservationStockOutOrderDTO.java @@ -558,4 +558,14 @@ public class ReservationStockOutOrderDTO extends ReservationStockOutOrderBaseDTO private String outboundDateEnd; private String xfStatus; + + @ApiModelProperty("线路编码(取自WMS线路管理)") + private String lineCode; + + @ApiModelProperty("线路名称(冗余存储)") + private String lineName; + + @ApiModelProperty("车次") + private String shuttleNo; + } \ No newline at end of file diff --git a/mhd_oms/src/main/java/com/mhd/oms/interfaces/dto/businessDocumentOrder/BusinessDocumentOrderDTO.java b/mhd_oms/src/main/java/com/mhd/oms/interfaces/dto/businessDocumentOrder/BusinessDocumentOrderDTO.java index f2a00c1ae..11057c7c9 100644 --- a/mhd_oms/src/main/java/com/mhd/oms/interfaces/dto/businessDocumentOrder/BusinessDocumentOrderDTO.java +++ b/mhd_oms/src/main/java/com/mhd/oms/interfaces/dto/businessDocumentOrder/BusinessDocumentOrderDTO.java @@ -902,4 +902,13 @@ public class BusinessDocumentOrderDTO extends BaseVOEntity{ @ApiModelProperty("车次") private Integer trainNo; + + @ApiModelProperty("线路编码(取自WMS线路管理)") + private String lineCode; + + @ApiModelProperty("线路名称(冗余存储)") + private String lineName; + + @ApiModelProperty("车次") + private String shuttleNo; } diff --git a/mhd_oms/src/main/java/com/mhd/oms/interfaces/dto/executeOrder/ExecuteOrderDTO.java b/mhd_oms/src/main/java/com/mhd/oms/interfaces/dto/executeOrder/ExecuteOrderDTO.java index 8b330cf53..d43a2502d 100644 --- a/mhd_oms/src/main/java/com/mhd/oms/interfaces/dto/executeOrder/ExecuteOrderDTO.java +++ b/mhd_oms/src/main/java/com/mhd/oms/interfaces/dto/executeOrder/ExecuteOrderDTO.java @@ -172,4 +172,13 @@ public class ExecuteOrderDTO extends BaseVOEntity{ @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss") private Date documentEndTime; + @ApiModelProperty("线路编码(取自WMS线路管理)") + private String lineCode; + + @ApiModelProperty("线路名称(冗余存储)") + private String lineName; + + @ApiModelProperty("车次") + private String shuttleNo; + } \ No newline at end of file diff --git a/mhd_oms/src/main/resources/mapper/executionStockOutOrder/ExecutionStockOutOrderMapper.xml b/mhd_oms/src/main/resources/mapper/executionStockOutOrder/ExecutionStockOutOrderMapper.xml index 47081b394..340755509 100644 --- a/mhd_oms/src/main/resources/mapper/executionStockOutOrder/ExecutionStockOutOrderMapper.xml +++ b/mhd_oms/src/main/resources/mapper/executionStockOutOrder/ExecutionStockOutOrderMapper.xml @@ -109,6 +109,9 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" + + + @@ -127,7 +130,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" a.CUSTOMS_INSPECTION_FLAG,a.NEED_DECLARE_FLAG,a.NEED_TRANSPORT_FLAG,a.picture_app,a.reservation_audit_time,a.reservation_audit_name ,a.reservation_audit_id,a.issue_name,a.issue_id,a.issue_time,a.issue_status,a.tms_order_number, a.DIRECTOR_NAME ,a.DIRECTOR_PHONE,a.DIRECTOR_ID,a.RESERVATION_ORDER_SOURCE,a.OUTBOUND_TIME,a.RETURN_QUANTITY,a.DELIVERY_NAME,a.CUSTOMER_NUMBER,a.INVOICE_NUMBER,a.RETURN_ORDER_NUMBER,a.TOTAL_AMOUNT, - a.ROUTE,a.PUSH_TIME,a.PUSH_STATUS,a.PUSH_BY,a.PUSH_BY_NAME + a.ROUTE,a.PUSH_TIME,a.PUSH_STATUS,a.PUSH_BY,a.PUSH_BY_NAME,a.LINE_CODE,a.LINE_NAME,a.SHUTTLE_NO diff --git a/mhd_oms/src/main/resources/mapper/reservationStockOutOrder/ReservationStockOutOrderMapper.xml b/mhd_oms/src/main/resources/mapper/reservationStockOutOrder/ReservationStockOutOrderMapper.xml index ac2b11596..68fd934af 100644 --- a/mhd_oms/src/main/resources/mapper/reservationStockOutOrder/ReservationStockOutOrderMapper.xml +++ b/mhd_oms/src/main/resources/mapper/reservationStockOutOrder/ReservationStockOutOrderMapper.xml @@ -109,6 +109,9 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" + + + @@ -127,7 +130,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" a.CUSTOMS_INSPECTION_FLAG,a.NEED_DECLARE_FLAG,a.NEED_TRANSPORT_FLAG,a.picture_app,a.reservation_audit_time,a.reservation_audit_name ,a.reservation_audit_id,a.issue_name,a.issue_id,a.issue_time,a.issue_status,a.tms_order_number, a.DIRECTOR_NAME ,a.DIRECTOR_PHONE,a.DIRECTOR_ID,a.RESERVATION_ORDER_SOURCE,a.OUTBOUND_TIME,a.RETURN_QUANTITY,a.DELIVERY_NAME,a.CUSTOMER_NUMBER,a.INVOICE_NUMBER,a.RETURN_ORDER_NUMBER,a.TOTAL_AMOUNT, - a.ROUTE,a.PUSH_TIME,a.PUSH_STATUS,a.PUSH_BY,a.PUSH_BY_NAME,a.execution_out_order_number + a.ROUTE,a.PUSH_TIME,a.PUSH_STATUS,a.PUSH_BY,a.PUSH_BY_NAME,a.execution_out_order_number,a.LINE_CODE,a.LINE_NAME,a.SHUTTLE_NO diff --git a/mhd_wms/src/main/java/com/mhd/wms/domain/lineManagement/entity/LineManagement.java b/mhd_wms/src/main/java/com/mhd/wms/domain/lineManagement/entity/LineManagement.java index 0f6311298..e5a3f2c59 100644 --- a/mhd_wms/src/main/java/com/mhd/wms/domain/lineManagement/entity/LineManagement.java +++ b/mhd_wms/src/main/java/com/mhd/wms/domain/lineManagement/entity/LineManagement.java @@ -62,6 +62,12 @@ public class LineManagement extends BaseVOEntity{ @ApiModelProperty("客户Json数据") private String customerJson; + /** + * 车次清单 + */ + @ApiModelProperty("车次Json数据(车次序号数组,如[1,2,4,6],OMS单据车次下拉数据源)") + private String shuttleJson; + @ApiModelProperty("注册地址") private String register; } \ No newline at end of file diff --git a/mhd_wms/src/main/java/com/mhd/wms/domain/lineManagement/repository/persistence/LineManagementImpl.java b/mhd_wms/src/main/java/com/mhd/wms/domain/lineManagement/repository/persistence/LineManagementImpl.java index 578938a64..d4595dbff 100644 --- a/mhd_wms/src/main/java/com/mhd/wms/domain/lineManagement/repository/persistence/LineManagementImpl.java +++ b/mhd_wms/src/main/java/com/mhd/wms/domain/lineManagement/repository/persistence/LineManagementImpl.java @@ -14,6 +14,7 @@ import com.mhd.wms.domain.lineManagement.repository.mapper.LineManagementMapper; import com.mhd.wms.domain.lineManagement.repository.po.LineManagementPO; import com.mhd.wms.domain.lineManagement.repository.todo.LineManagementCustomer; import com.mhd.wms.domain.lineManagement.repository.todo.LineManagementDO; +import org.apache.commons.lang3.StringUtils; import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; @@ -93,6 +94,14 @@ public class LineManagementImpl extends ServiceImpl lineManagementCustomers = JSONObject.parseArray(lineManagementDB.getCustomerJson(), LineManagementCustomer.class); diff --git a/mhd_wms/src/main/java/com/mhd/wms/domain/lineManagement/repository/po/LineManagementPO.java b/mhd_wms/src/main/java/com/mhd/wms/domain/lineManagement/repository/po/LineManagementPO.java index e32b9132f..553eb39b2 100644 --- a/mhd_wms/src/main/java/com/mhd/wms/domain/lineManagement/repository/po/LineManagementPO.java +++ b/mhd_wms/src/main/java/com/mhd/wms/domain/lineManagement/repository/po/LineManagementPO.java @@ -2,6 +2,7 @@ package com.mhd.wms.domain.lineManagement.repository.po; import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.TableId; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; import com.mhd.common.core.annotation.Excel; import com.mhd.common.core.web.domain.BaseVOEntity; import io.swagger.annotations.ApiModelProperty; @@ -56,6 +57,13 @@ public class LineManagementPO extends BaseVOEntity{ @ApiModelProperty("客户Json数据") private String customerJson; + /** + * 车次清单 + */ + @ApiModelProperty("车次清单Json数组,如[\"1\",\"2\",\"4\"],OMS单据车次下拉数据源") + @JsonSerialize(using = ShuttleJsonSerializer.class) + private String shuttleJson; + @ApiModelProperty("注册地址") private String register; diff --git a/mhd_wms/src/main/java/com/mhd/wms/domain/lineManagement/repository/po/ShuttleJsonSerializer.java b/mhd_wms/src/main/java/com/mhd/wms/domain/lineManagement/repository/po/ShuttleJsonSerializer.java new file mode 100644 index 000000000..f1bd95185 --- /dev/null +++ b/mhd_wms/src/main/java/com/mhd/wms/domain/lineManagement/repository/po/ShuttleJsonSerializer.java @@ -0,0 +1,31 @@ +package com.mhd.wms.domain.lineManagement.repository.po; + +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.fasterxml.jackson.databind.SerializerProvider; + +import java.io.IOException; + +/** + * 车次清单序列化器:库里存的 JSON 文本(如 ["1","2","3","4"])原样输出为 JSON 数组, + * 前端无需再 JSON.parse;空值输出 null,非法 JSON 兜底按普通字符串输出。 + */ +public class ShuttleJsonSerializer extends JsonSerializer { + + private static final ObjectMapper MAPPER = new ObjectMapper(); + + @Override + public void serialize(String value, JsonGenerator gen, SerializerProvider serializers) throws IOException { + if (value == null || value.isEmpty()) { + gen.writeNull(); + return; + } + try { + MAPPER.readTree(value); + gen.writeRawValue(value); + } catch (Exception e) { + gen.writeString(value); + } + } +} diff --git a/mhd_wms/src/main/java/com/mhd/wms/domain/lineManagement/repository/todo/LineManagementDO.java b/mhd_wms/src/main/java/com/mhd/wms/domain/lineManagement/repository/todo/LineManagementDO.java index 13f61438e..575a7ad10 100644 --- a/mhd_wms/src/main/java/com/mhd/wms/domain/lineManagement/repository/todo/LineManagementDO.java +++ b/mhd_wms/src/main/java/com/mhd/wms/domain/lineManagement/repository/todo/LineManagementDO.java @@ -56,6 +56,12 @@ public class LineManagementDO extends BaseVOEntity{ @ApiModelProperty("客户Json数据") private String customerJson; + /** + * 车次清单 + */ + @ApiModelProperty("车次Json数据(车次序号数组,如[1,2,4,6],OMS单据车次下拉数据源)") + private String shuttleJson; + @ApiModelProperty("注册地址") private String register; } \ No newline at end of file diff --git a/mhd_wms/src/main/java/com/mhd/wms/interfaces/dto/LineManagement/LineManagementDTO.java b/mhd_wms/src/main/java/com/mhd/wms/interfaces/dto/LineManagement/LineManagementDTO.java index 6f0b57f52..5cc41452e 100644 --- a/mhd_wms/src/main/java/com/mhd/wms/interfaces/dto/LineManagement/LineManagementDTO.java +++ b/mhd_wms/src/main/java/com/mhd/wms/interfaces/dto/LineManagement/LineManagementDTO.java @@ -3,6 +3,7 @@ package com.mhd.wms.interfaces.dto.LineManagement; import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.TableId; import com.fasterxml.jackson.annotation.JsonFormat; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; import com.mhd.common.core.annotation.Excel; import com.mhd.common.core.web.domain.BaseVOEntity; import io.swagger.annotations.ApiModelProperty; @@ -62,6 +63,13 @@ public class LineManagementDTO extends BaseVOEntity{ @ApiModelProperty("客户Json数据") private String customerJson; + /** + * 车次清单 + */ + @ApiModelProperty("车次清单Json数组,如[\"1\",\"2\",\"4\"],OMS单据车次下拉数据源") + @JsonDeserialize(using = ShuttleJsonDeserializer.class) + private String shuttleJson; + @ApiModelProperty("注册地址") private String register; } \ No newline at end of file diff --git a/mhd_wms/src/main/java/com/mhd/wms/interfaces/dto/LineManagement/ShuttleJsonDeserializer.java b/mhd_wms/src/main/java/com/mhd/wms/interfaces/dto/LineManagement/ShuttleJsonDeserializer.java new file mode 100644 index 000000000..5e845bf16 --- /dev/null +++ b/mhd_wms/src/main/java/com/mhd/wms/interfaces/dto/LineManagement/ShuttleJsonDeserializer.java @@ -0,0 +1,24 @@ +package com.mhd.wms.interfaces.dto.LineManagement; + +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonNode; + +import java.io.IOException; + +/** + * 车次清单反序列化器:前端传 JSON 数组(如 ["1","2","3","4"])或 JSON 文本字符串均可, + * 统一转成 JSON 文本存入 String 字段落库(形如 ["1","2","3","4"])。 + */ +public class ShuttleJsonDeserializer extends JsonDeserializer { + + @Override + public String deserialize(JsonParser p, DeserializationContext ctxt) throws IOException { + JsonNode node = p.readValueAsTree(); + if (node == null || node.isNull()) { + return null; + } + return node.toString(); + } +} diff --git a/mhd_wms/src/main/resources/mapper/lineManagement/LineManagementMapper.xml b/mhd_wms/src/main/resources/mapper/lineManagement/LineManagementMapper.xml index b6028576d..c3c28f794 100644 --- a/mhd_wms/src/main/resources/mapper/lineManagement/LineManagementMapper.xml +++ b/mhd_wms/src/main/resources/mapper/lineManagement/LineManagementMapper.xml @@ -15,6 +15,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" + @@ -38,6 +39,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" a.route_code, a.route_name, a.customer_json, + a.shuttle_json, a.create_by, a.create_by_name, a.create_time, diff --git a/sql/20260820_oms_outbound_transport_add_line_shuttle.sql b/sql/20260820_oms_outbound_transport_add_line_shuttle.sql new file mode 100644 index 000000000..a63c3ba02 --- /dev/null +++ b/sql/20260820_oms_outbound_transport_add_line_shuttle.sql @@ -0,0 +1,52 @@ +-- ===================================================================== +-- 出库/运输单据增加"线路+车次"字段 —— 4 张表加列 + 线路管理加车次清单 +-- 日期: 2026-08-20 +-- 数据库: 达梦(DM), 兼容 Oracle 语法, 表名/字段名统一大写 +-- 背景: +-- 需求: +-- 出库业务单、出库执行单、运输业务单、运输执行单 的列表/新增/编辑/详情增加字段"线路"和"车次"; +-- (出库预约/出库预约单经确认不需要,未加列) +-- WMS-基础数据-线路管理 页面增加"车次"维护。 +-- 线路取自 line_management(ROUTE_CODE/ROUTE_NAME, 如 31 / 31线路), +-- 车次为下拉选择(选项=所选线路在 SHUTTLE_JSON 里维护的车次序号清单), +-- 前端拼接显示 "线路编码-序号车次"(如 31-4车次)。 +-- 设计说明: +-- LINE_CODE 线路编码, 冗余存 line_management.route_code +-- LINE_NAME 线路名称, 冗余存储(OMS 与 WMS 两库不互通, 列表无法 join) +-- SHUTTLE_NO 车次, 字符串(用户输入内容不确定,序号或完整值均可,如4或31-4) +-- SHUTTLE_JSON 线路管理的车次序号清单(JSON数组, 如 [1,2,4,6]), 车次下拉数据源 +-- 不复用已有 ROUTE 列(存的是 tms_route.id) 和 TRAIN_NO 列(老车次, +-- 入库链路 deliveryHeader.trainNumber 与 OMS->WMS 推送在用), 语义不同, 避免污染。 +-- 关联代码: mhd_oms 四条链路 entity/DO/DTO/PO 已同步加 lineCode/lineName/shuttleNo +-- (reservationStockOutOrder/executionStockOutOrder/ +-- businessDocumentOrder/executeOrder); +-- mhd_wms lineManagement 四层已加 shuttleJson。 +-- 下发链路(预约单->执行单, 业务单->执行单)为 copyProperties 同名拷贝, 自动透传。 +-- 最下面的是 wms 模块数据库 +-- ===================================================================== + +ALTER TABLE RESERVATION_STOCK_OUT_ORDER ADD (LINE_CODE VARCHAR2(50), LINE_NAME VARCHAR2(100), SHUTTLE_NO VARCHAR2(50)); +ALTER TABLE EXECUTION_STOCK_OUT_ORDER ADD (LINE_CODE VARCHAR2(50), LINE_NAME VARCHAR2(100), SHUTTLE_NO VARCHAR2(50)); +ALTER TABLE BUSINESS_DOCUMENT_ORDER ADD (LINE_CODE VARCHAR2(50), LINE_NAME VARCHAR2(100), SHUTTLE_NO VARCHAR2(50)); +ALTER TABLE EXECUTE_ORDER ADD (LINE_CODE VARCHAR2(50), LINE_NAME VARCHAR2(100), SHUTTLE_NO VARCHAR2(50)); + +COMMENT ON COLUMN RESERVATION_STOCK_OUT_ORDER.LINE_CODE IS '线路编码(取自WMS线路管理line_management.route_code)'; +COMMENT ON COLUMN RESERVATION_STOCK_OUT_ORDER.LINE_NAME IS '线路名称(冗余存储)'; +COMMENT ON COLUMN RESERVATION_STOCK_OUT_ORDER.SHUTTLE_NO IS '车次(字符串,可存序号或完整值,如4或31-4)'; +COMMENT ON COLUMN EXECUTION_STOCK_OUT_ORDER.LINE_CODE IS '线路编码(取自WMS线路管理line_management.route_code)'; +COMMENT ON COLUMN EXECUTION_STOCK_OUT_ORDER.LINE_NAME IS '线路名称(冗余存储)'; +COMMENT ON COLUMN EXECUTION_STOCK_OUT_ORDER.SHUTTLE_NO IS '车次(字符串,可存序号或完整值,如4或31-4)'; +COMMENT ON COLUMN BUSINESS_DOCUMENT_ORDER.LINE_CODE IS '线路编码(取自WMS线路管理line_management.route_code)'; +COMMENT ON COLUMN BUSINESS_DOCUMENT_ORDER.LINE_NAME IS '线路名称(冗余存储)'; +COMMENT ON COLUMN BUSINESS_DOCUMENT_ORDER.SHUTTLE_NO IS '车次(字符串,可存序号或完整值,如4或31-4)'; +COMMENT ON COLUMN EXECUTE_ORDER.LINE_CODE IS '线路编码(取自WMS线路管理line_management.route_code)'; +COMMENT ON COLUMN EXECUTE_ORDER.LINE_NAME IS '线路名称(冗余存储)'; +COMMENT ON COLUMN EXECUTE_ORDER.SHUTTLE_NO IS '车次(字符串,可存序号或完整值,如4或31-4)'; + +-- ---------------- 线路管理增加车次清单 ---------------- +-- WMS-基础数据-线路管理 页面增加"车次"字段: 每条线路维护车次序号清单, +-- OMS 出库/运输单据的车次下拉按线路查此清单 +-- (如 31线路 SHUTTLE_JSON=[1,2,4,6] -> 下拉选项 31-1车次/31-2车次/31-4车次/31-6车次) +ALTER TABLE LINE_MANAGEMENT ADD (SHUTTLE_JSON VARCHAR2(1000)); + +COMMENT ON COLUMN LINE_MANAGEMENT.SHUTTLE_JSON IS '车次序号清单JSON数组,如[1,2,4,6],OMS单据车次下拉数据源';