From 9e256f6ac53316f51c06e2ec3d9ee686b51ad435 Mon Sep 17 00:00:00 2001
From: zjh <2207896513@qq.com>
Date: 星期五, 19 十二月 2025 20:51:29 +0800
Subject: [PATCH] 代码提交

---
 StandardPda/MES.Service/Dto/webApi/ErpShipmentPlanDeliveryDto.cs                   |  137 +++++
 StandardPda/MES.Service/Modes/ShipmentPlanDeliveryDetail.cs                        |  274 +++++++++++
 StandardPda/MESApplication/Controllers/BasicData/ShipmentPlanDeliveryController.cs |  262 +++++++++++
 StandardPda/MES.Service/Dto/webApi/ErpShipmentPlanDelivery.cs                      |   17 
 StandardPda/MES.Service/Modes/ShipmentPlanDelivery.cs                              |  166 +++++++
 StandardPda/MES.Service/Dto/webApi/ErpShipmentPlanDeliveryDetailDto.cs             |  217 +++++++++
 StandardPda/MES.Service/service/BasicData/ShipmentPlanDeliveryManager.cs           |  302 +++++++++++++
 7 files changed, 1,375 insertions(+), 0 deletions(-)

diff --git a/StandardPda/MES.Service/Dto/webApi/ErpShipmentPlanDelivery.cs b/StandardPda/MES.Service/Dto/webApi/ErpShipmentPlanDelivery.cs
new file mode 100644
index 0000000..7c61da0
--- /dev/null
+++ b/StandardPda/MES.Service/Dto/webApi/ErpShipmentPlanDelivery.cs
@@ -0,0 +1,17 @@
+namespace MES.Service.Dto.webApi;
+
+/// <summary>
+///     鍑鸿揣璁″垝鍑鸿揣鎺ュ彛鏁版嵁鍖呰绫�
+/// </summary>
+public class ErpShipmentPlanDelivery
+{
+    /// <summary>
+    ///     涓昏〃鏁版嵁
+    /// </summary>
+    public ErpShipmentPlanDeliveryDto OrderDto { get; set; }
+
+    /// <summary>
+    ///     鏄庣粏琛ㄦ暟鎹�
+    /// </summary>
+    public List<ErpShipmentPlanDeliveryDetailDto> Items { get; set; }
+}
diff --git a/StandardPda/MES.Service/Dto/webApi/ErpShipmentPlanDeliveryDetailDto.cs b/StandardPda/MES.Service/Dto/webApi/ErpShipmentPlanDeliveryDetailDto.cs
new file mode 100644
index 0000000..177d2fa
--- /dev/null
+++ b/StandardPda/MES.Service/Dto/webApi/ErpShipmentPlanDeliveryDetailDto.cs
@@ -0,0 +1,217 @@
+namespace MES.Service.Dto.webApi;
+
+/// <summary>
+///     鍑鸿揣璁″垝鍑鸿揣鎺ュ彛鏄庣粏DTO
+/// </summary>
+public class ErpShipmentPlanDeliveryDetailDto
+{
+    /// <summary>
+    ///     ERP琛孖D
+    /// </summary>
+    public string? ErpLineId { get; set; }
+
+    /// <summary>
+    ///     ERP澶碔D
+    /// </summary>
+    public string? ErpHeadId { get; set; }
+
+    /// <summary>
+    ///     琛屽彿
+    /// </summary>
+    public string? LineNo { get; set; }
+
+    /// <summary>
+    ///     灏忔椤圭洰
+    /// </summary>
+    public string? Project { get; set; }
+
+    /// <summary>
+    ///     瀹㈡埛鏂欏彿
+    /// </summary>
+    public string? CustomerItemNo { get; set; }
+
+    /// <summary>
+    ///     瀹㈡埛鍝佸悕
+    /// </summary>
+    public string? CustomerItemName { get; set; }
+
+    /// <summary>
+    ///     鏂欏彿
+    /// </summary>
+    public string? MaterialId { get; set; }
+
+    /// <summary>
+    ///     鍝佸悕
+    /// </summary>
+    public string? MaterialName { get; set; }
+
+    /// <summary>
+    ///     瑙勬牸
+    /// </summary>
+    public string? Specification { get; set; }
+
+    /// <summary>
+    ///     瀛樺偍鍦扮偣
+    /// </summary>
+    public string? StorageLocation { get; set; }
+
+    /// <summary>
+    ///     鍗曚綅
+    /// </summary>
+    public string? Unit { get; set; }
+
+    /// <summary>
+    ///     鏁伴噺
+    /// </summary>
+    public string? Quantity { get; set; }
+
+    /// <summary>
+    ///     鍏嶈垂鍝佺被鍨�
+    /// </summary>
+    public string? FreeItemType { get; set; }
+
+    /// <summary>
+    ///     浜ゆ湡
+    /// </summary>
+    public string? DeliveryDate { get; set; }
+
+    /// <summary>
+    ///     琛ㄤ綋澶囨敞
+    /// </summary>
+    public string? BodyNote { get; set; }
+
+    /// <summary>
+    ///     ASN琛屽彿
+    /// </summary>
+    public string? AsnLineNo { get; set; }
+
+    /// <summary>
+    ///     搴撳瓨鍙敤閲�
+    /// </summary>
+    public decimal? AvailableStock { get; set; }
+
+    /// <summary>
+    ///     鏌ヨ搴撳瓨鏃堕棿
+    /// </summary>
+    public string? InventoryQueryTime { get; set; }
+
+    /// <summary>
+    ///     琛岀姸鎬�
+    /// </summary>
+    public string? LineStatus { get; set; }
+
+    /// <summary>
+    ///     鏀惰揣浣嶇疆
+    /// </summary>
+    public string? ReceiverLocation { get; set; }
+
+    /// <summary>
+    ///     鏀惰揣鍦板潃
+    /// </summary>
+    public string? ReceiverAddress { get; set; }
+
+    /// <summary>
+    ///     鏀惰揣鍦板潃鍏ㄧО
+    /// </summary>
+    public string? ReceiverAddressFull { get; set; }
+
+    /// <summary>
+    ///     鏀惰揣鑱旂郴浜�
+    /// </summary>
+    public string? ReceiverContact { get; set; }
+
+    /// <summary>
+    ///     鍙��鎹�
+    /// </summary>
+    public string? Returnable { get; set; }
+
+    /// <summary>
+    ///     鍙敤鏃ユ湡
+    /// </summary>
+    public string? AvailableDate { get; set; }
+
+    /// <summary>
+    ///     鎵胯鏃ユ湡
+    /// </summary>
+    public string? CommitmentDate { get; set; }
+
+    /// <summary>
+    ///     璁″垝鍑鸿揣鏃�
+    /// </summary>
+    public string? PlanShipDate { get; set; }
+
+    /// <summary>
+    ///     瀹㈡埛纭鍑鸿揣鏃�
+    /// </summary>
+    public string? CustomerConfirmDate { get; set; }
+
+    /// <summary>
+    ///     璁″垝缁勭粐
+    /// </summary>
+    public string? PlanOrg { get; set; }
+
+    /// <summary>
+    ///     渚涘簲鍟嗙洿杩�
+    /// </summary>
+    public string? VendorDirectShip { get; set; }
+
+    /// <summary>
+    ///     渚涘簲鏉ユ簮
+    /// </summary>
+    public string? SupplySource { get; set; }
+
+    /// <summary>
+    ///     渚涘簲绫诲瀷
+    /// </summary>
+    public string? SupplyType { get; set; }
+
+    /// <summary>
+    ///     渚涘簲缁勭粐
+    /// </summary>
+    public string? SupplyOrg { get; set; }
+
+    /// <summary>
+    ///     渚涘簲鍟�
+    /// </summary>
+    public string? Supplier { get; set; }
+
+    /// <summary>
+    ///     鍑鸿揣鏂瑰紡
+    /// </summary>
+    public string? DetailShippingMethod { get; set; }
+
+    /// <summary>
+    ///     璐т富缁勭粐
+    /// </summary>
+    public string? OwnerOrg { get; set; }
+
+    /// <summary>
+    ///     闇�姹傚垎绫�
+    /// </summary>
+    public string? DetailDemandCategory { get; set; }
+
+    /// <summary>
+    ///     搴撳瓨瑙勫垝
+    /// </summary>
+    public string? InventoryPlanning { get; set; }
+
+    /// <summary>
+    ///     琛屽娉�
+    /// </summary>
+    public string? LineRemark { get; set; }
+
+    /// <summary>
+    ///     鏉ユ簮鍗曟嵁绫诲埆
+    /// </summary>
+    public string? SourceDocCategory { get; set; }
+
+    /// <summary>
+    ///     鏉ユ簮鍗曞彿
+    /// </summary>
+    public string? SourceDocNo { get; set; }
+
+    /// <summary>
+    ///     鏉ユ簮鍗曡鍙�
+    /// </summary>
+    public string? SourceLineNo { get; set; }
+}
diff --git a/StandardPda/MES.Service/Dto/webApi/ErpShipmentPlanDeliveryDto.cs b/StandardPda/MES.Service/Dto/webApi/ErpShipmentPlanDeliveryDto.cs
new file mode 100644
index 0000000..698107c
--- /dev/null
+++ b/StandardPda/MES.Service/Dto/webApi/ErpShipmentPlanDeliveryDto.cs
@@ -0,0 +1,137 @@
+namespace MES.Service.Dto.webApi;
+
+/// <summary>
+///     鍑鸿揣璁″垝鍑鸿揣鎺ュ彛涓昏〃DTO
+/// </summary>
+public class ErpShipmentPlanDeliveryDto
+{
+    /// <summary>
+    ///     鎺ュ彛绫诲瀷锛�2:鏂板/鏇存柊, 3:淇敼, 4:鍒犻櫎锛�
+    /// </summary>
+    public string? Type { get; set; }
+
+    /// <summary>
+    ///     ERP涓昏〃ID
+    /// </summary>
+    public string? ErpHeadId { get; set; }
+
+    /// <summary>
+    ///     鍗曟嵁绫诲瀷
+    /// </summary>
+    public string? BillType { get; set; }
+
+    /// <summary>
+    ///     鍗曞彿
+    /// </summary>
+    public string? BillNo { get; set; }
+
+    /// <summary>
+    ///     瀹㈡埛
+    /// </summary>
+    public string? Customer { get; set; }
+
+    /// <summary>
+    ///     鏃ユ湡锛堟牸寮忥細yyyy-MM-dd HH:mm:ss锛�
+    /// </summary>
+    public string? FDate { get; set; }
+
+    /// <summary>
+    ///     鎺ュ彛鐘舵��
+    /// </summary>
+    public string? InterfaceStatus { get; set; }
+
+    /// <summary>
+    ///     涓氬姟鍛�
+    /// </summary>
+    public string? Salesperson { get; set; }
+
+    /// <summary>
+    ///     閮ㄩ棬
+    /// </summary>
+    public string? Department { get; set; }
+
+    /// <summary>
+    ///     鏉ユ簮鍗曟嵁绫诲埆
+    /// </summary>
+    public string? SourceDocCategory { get; set; }
+
+    /// <summary>
+    ///     鏉ユ簮鍗曟嵁
+    /// </summary>
+    public string? SourceDocument { get; set; }
+
+    /// <summary>
+    ///     鐘舵��
+    /// </summary>
+    public string? Status { get; set; }
+
+    /// <summary>
+    ///     鍒涘缓浜�
+    /// </summary>
+    public string? CreatedBy { get; set; }
+
+    /// <summary>
+    ///     鍒涘缓鏃堕棿锛堟牸寮忥細yyyy-MM-dd HH:mm:ss锛�
+    /// </summary>
+    public string? CreatedDate { get; set; }
+
+    /// <summary>
+    ///     瀹℃牳浜�
+    /// </summary>
+    public string? ApprovedBy { get; set; }
+
+    /// <summary>
+    ///     瀹℃牳鏃ユ湡锛堟牸寮忥細yyyy-MM-dd HH:mm:ss锛�
+    /// </summary>
+    public string? ApprovedDate { get; set; }
+
+    /// <summary>
+    ///     琛ㄥご澶囨敞
+    /// </summary>
+    public string? HeaderNote { get; set; }
+
+    /// <summary>
+    ///     澶囨敞
+    /// </summary>
+    public string? Remark { get; set; }
+
+    /// <summary>
+    ///     ASN鍙�
+    /// </summary>
+    public string? AsnNo { get; set; }
+
+    /// <summary>
+    ///     椤圭洰
+    /// </summary>
+    public string? Project { get; set; }
+
+    /// <summary>
+    ///     瀹㈡埛閲囪喘璁㈠崟
+    /// </summary>
+    public string? CustomerPo { get; set; }
+
+    /// <summary>
+    ///     鍑鸿揣鍘熷垯
+    /// </summary>
+    public string? ShippingPolicy { get; set; }
+
+    /// <summary>
+    ///     鍑鸿揣鏂瑰紡
+    /// </summary>
+    public string? ShippingMethod { get; set; }
+
+    /// <summary>
+    ///     闇�姹傚垎绫�
+    /// </summary>
+    public string? DemandCategory { get; set; }
+
+    /// <summary>
+    ///     瑁呰繍娓�
+    /// </summary>
+    public string? ShippingPort { get; set; }
+
+    /// <summary>
+    ///     鐩殑娓�
+    /// </summary>
+    public string? DestinationPort { get; set; }
+}
diff --git a/StandardPda/MES.Service/Modes/ShipmentPlanDelivery.cs b/StandardPda/MES.Service/Modes/ShipmentPlanDelivery.cs
new file mode 100644
index 0000000..7e849af
--- /dev/null
+++ b/StandardPda/MES.Service/Modes/ShipmentPlanDelivery.cs
@@ -0,0 +1,166 @@
+using SqlSugar;
+
+namespace MES.Service.Modes;
+
+/// <summary>
+///     鏉ユ簮鍑鸿揣璁″垝鐨勬爣鍑嗗嚭璐т富琛�
+/// </summary>
+[SugarTable("SHIPMENT_PLAN_DELIVERY")]
+public class ShipmentPlanDelivery
+{
+    /// <summary>
+    ///     涓婚敭ID
+    /// </summary>
+    [SugarColumn(ColumnName = "ID", OracleSequenceName = "SEQ_SHIPMENT_PLAN_DELIVERY", IsPrimaryKey = true)]
+    public decimal? Id { get; set; }
+
+    /// <summary>
+    ///     鍗曟嵁绫诲瀷
+    /// </summary>
+    [SugarColumn(ColumnName = "BILL_TYPE")]
+    public string? BillType { get; set; }
+
+    /// <summary>
+    ///     鍗曞彿
+    /// </summary>
+    [SugarColumn(ColumnName = "BILL_NO")]
+    public string? BillNo { get; set; }
+
+    /// <summary>
+    ///     瀹㈡埛
+    /// </summary>
+    [SugarColumn(ColumnName = "CUSTOMER")]
+    public string? Customer { get; set; }
+
+    /// <summary>
+    ///     鏃ユ湡
+    /// </summary>
+    [SugarColumn(ColumnName = "F_DATE")]
+    public DateTime? FDate { get; set; }
+
+    /// <summary>
+    ///     鎺ュ彛鐘舵��
+    /// </summary>
+    [SugarColumn(ColumnName = "INTERFACE_STATUS")]
+    public string? InterfaceStatus { get; set; }
+
+    /// <summary>
+    ///     涓氬姟鍛�
+    /// </summary>
+    [SugarColumn(ColumnName = "SALESPERSON")]
+    public string? Salesperson { get; set; }
+
+    /// <summary>
+    ///     閮ㄩ棬
+    /// </summary>
+    [SugarColumn(ColumnName = "DEPARTMENT")]
+    public string? Department { get; set; }
+
+    /// <summary>
+    ///     鏉ユ簮鍗曟嵁绫诲埆
+    /// </summary>
+    [SugarColumn(ColumnName = "SOURCE_DOC_CATEGORY")]
+    public string? SourceDocCategory { get; set; }
+
+    /// <summary>
+    ///     鏉ユ簮鍗曟嵁
+    /// </summary>
+    [SugarColumn(ColumnName = "SOURCE_DOCUMENT")]
+    public string? SourceDocument { get; set; }
+
+    /// <summary>
+    ///     鐘舵��
+    /// </summary>
+    [SugarColumn(ColumnName = "STATUS")]
+    public string? Status { get; set; }
+
+    /// <summary>
+    ///     鍒涘缓浜�
+    /// </summary>
+    [SugarColumn(ColumnName = "CREATED_BY")]
+    public string? CreatedBy { get; set; }
+
+    /// <summary>
+    ///     鍒涘缓鏃堕棿
+    /// </summary>
+    [SugarColumn(ColumnName = "CREATED_DATE")]
+    public DateTime? CreatedDate { get; set; }
+
+    /// <summary>
+    ///     瀹℃牳浜�
+    /// </summary>
+    [SugarColumn(ColumnName = "APPROVED_BY")]
+    public string? ApprovedBy { get; set; }
+
+    /// <summary>
+    ///     瀹℃牳鏃ユ湡
+    /// </summary>
+    [SugarColumn(ColumnName = "APPROVED_DATE")]
+    public DateTime? ApprovedDate { get; set; }
+
+    /// <summary>
+    ///     琛ㄥご澶囨敞
+    /// </summary>
+    [SugarColumn(ColumnName = "HEADER_NOTE")]
+    public string? HeaderNote { get; set; }
+
+    /// <summary>
+    ///     澶囨敞
+    /// </summary>
+    [SugarColumn(ColumnName = "REMARK")]
+    public string? Remark { get; set; }
+
+    /// <summary>
+    ///     ASN鍙�
+    /// </summary>
+    [SugarColumn(ColumnName = "ASN_NO")]
+    public string? AsnNo { get; set; }
+
+    /// <summary>
+    ///     椤圭洰
+    /// </summary>
+    [SugarColumn(ColumnName = "PROJECT")]
+    public string? Project { get; set; }
+
+    /// <summary>
+    ///     瀹㈡埛閲囪喘璁㈠崟
+    /// </summary>
+    [SugarColumn(ColumnName = "CUSTOMER_PO")]
+    public string? CustomerPo { get; set; }
+
+    /// <summary>
+    ///     鍑鸿揣鍘熷垯
+    /// </summary>
+    [SugarColumn(ColumnName = "SHIPPING_POLICY")]
+    public string? ShippingPolicy { get; set; }
+
+    /// <summary>
+    ///     鍑鸿揣鏂瑰紡
+    /// </summary>
+    [SugarColumn(ColumnName = "SHIPPING_METHOD")]
+    public string? ShippingMethod { get; set; }
+
+    /// <summary>
+    ///     闇�姹傚垎绫�
+    /// </summary>
+    [SugarColumn(ColumnName = "DEMAND_CATEGORY")]
+    public string? DemandCategory { get; set; }
+
+    /// <summary>
+    ///     瑁呰繍娓�
+    /// </summary>
+    [SugarColumn(ColumnName = "SHIPPING_PORT")]
+    public string? ShippingPort { get; set; }
+
+    /// <summary>
+    ///     鐩殑娓�
+    /// </summary>
+    [SugarColumn(ColumnName = "DESTINATION_PORT")]
+    public string? DestinationPort { get; set; }
+
+    /// <summary>
+    ///     涓昏〃ERPID
+    /// </summary>
+    [SugarColumn(ColumnName = "ERP_HEAD_ID")]
+    public string? ErpHeadId { get; set; }
+}
diff --git a/StandardPda/MES.Service/Modes/ShipmentPlanDeliveryDetail.cs b/StandardPda/MES.Service/Modes/ShipmentPlanDeliveryDetail.cs
new file mode 100644
index 0000000..3fb20d0
--- /dev/null
+++ b/StandardPda/MES.Service/Modes/ShipmentPlanDeliveryDetail.cs
@@ -0,0 +1,274 @@
+using SqlSugar;
+
+namespace MES.Service.Modes;
+
+/// <summary>
+///     鏉ユ簮鍑鸿揣璁″垝鐨勬爣鍑嗗嚭璐ф槑缁嗚〃
+/// </summary>
+[SugarTable("SHIPMENT_PLAN_DELIVERY_DETAIL")]
+public class ShipmentPlanDeliveryDetail
+{
+    /// <summary>
+    ///     涓婚敭ID
+    /// </summary>
+    [SugarColumn(ColumnName = "ID", OracleSequenceName = "SEQ_SHIPMENT_PLAN_DELIVERY_D", IsPrimaryKey = true)]
+    public decimal? Id { get; set; }
+
+    /// <summary>
+    ///     涓昏〃ID
+    /// </summary>
+    [SugarColumn(ColumnName = "HEAD_ID")]
+    public decimal? HeadId { get; set; }
+
+    /// <summary>
+    ///     琛屽彿
+    /// </summary>
+    [SugarColumn(ColumnName = "LINE_NO")]
+    public string? LineNo { get; set; }
+
+    /// <summary>
+    ///     灏忔椤圭洰
+    /// </summary>
+    [SugarColumn(ColumnName = "PROJECT")]
+    public string? Project { get; set; }
+
+    /// <summary>
+    ///     瀹㈡埛鏂欏彿
+    /// </summary>
+    [SugarColumn(ColumnName = "CUSTOMER_ITEM_NO")]
+    public string? CustomerItemNo { get; set; }
+
+    /// <summary>
+    ///     瀹㈡埛鍝佸悕
+    /// </summary>
+    [SugarColumn(ColumnName = "CUSTOMER_ITEM_NAME")]
+    public string? CustomerItemName { get; set; }
+
+    /// <summary>
+    ///     鏂欏彿
+    /// </summary>
+    [SugarColumn(ColumnName = "MATERIAL_ID")]
+    public string? MaterialId { get; set; }
+
+    /// <summary>
+    ///     鍝佸悕
+    /// </summary>
+    [SugarColumn(ColumnName = "MATERIAL_NAME")]
+    public string? MaterialName { get; set; }
+
+    /// <summary>
+    ///     瑙勬牸
+    /// </summary>
+    [SugarColumn(ColumnName = "SPECIFICATION")]
+    public string? Specification { get; set; }
+
+    /// <summary>
+    ///     瀛樺偍鍦扮偣
+    /// </summary>
+    [SugarColumn(ColumnName = "STORAGE_LOCATION")]
+    public string? StorageLocation { get; set; }
+
+    /// <summary>
+    ///     鍗曚綅
+    /// </summary>
+    [SugarColumn(ColumnName = "UNIT")]
+    public string? Unit { get; set; }
+
+    /// <summary>
+    ///     鏁伴噺
+    /// </summary>
+    [SugarColumn(ColumnName = "QUANTITY")]
+    public decimal? Quantity { get; set; }
+
+    /// <summary>
+    ///     鍏嶈垂鍝佺被鍨�
+    /// </summary>
+    [SugarColumn(ColumnName = "FREE_ITEM_TYPE")]
+    public string? FreeItemType { get; set; }
+
+    /// <summary>
+    ///     浜ゆ湡
+    /// </summary>
+    [SugarColumn(ColumnName = "DELIVERY_DATE")]
+    public string? DeliveryDate { get; set; }
+
+    /// <summary>
+    ///     琛ㄤ綋澶囨敞
+    /// </summary>
+    [SugarColumn(ColumnName = "BODY_NOTE")]
+    public string? BodyNote { get; set; }
+
+    /// <summary>
+    ///     ASN琛屽彿
+    /// </summary>
+    [SugarColumn(ColumnName = "ASN_LINE_NO")]
+    public string? AsnLineNo { get; set; }
+
+    /// <summary>
+    ///     搴撳瓨鍙敤閲�
+    /// </summary>
+    [SugarColumn(ColumnName = "AVAILABLE_STOCK")]
+    public decimal? AvailableStock { get; set; }
+
+    /// <summary>
+    ///     鏌ヨ搴撳瓨鏃堕棿
+    /// </summary>
+    [SugarColumn(ColumnName = "INVENTORY_QUERY_TIME")]
+    public string? InventoryQueryTime { get; set; }
+
+    /// <summary>
+    ///     琛岀姸鎬�
+    /// </summary>
+    [SugarColumn(ColumnName = "LINE_STATUS")]
+    public string? LineStatus { get; set; }
+
+    /// <summary>
+    ///     鏀惰揣浣嶇疆
+    /// </summary>
+    [SugarColumn(ColumnName = "RECEIVER_LOCATION")]
+    public string? ReceiverLocation { get; set; }
+
+    /// <summary>
+    ///     鏀惰揣鍦板潃
+    /// </summary>
+    [SugarColumn(ColumnName = "RECEIVER_ADDRESS")]
+    public string? ReceiverAddress { get; set; }
+
+    /// <summary>
+    ///     鏀惰揣鍦板潃鍏ㄧО
+    /// </summary>
+    [SugarColumn(ColumnName = "RECEIVER_ADDRESS_FULL")]
+    public string? ReceiverAddressFull { get; set; }
+
+    /// <summary>
+    ///     鏀惰揣鑱旂郴浜�
+    /// </summary>
+    [SugarColumn(ColumnName = "RECEIVER_CONTACT")]
+    public string? ReceiverContact { get; set; }
+
+    /// <summary>
+    ///     鍙��鎹�
+    /// </summary>
+    [SugarColumn(ColumnName = "RETURNABLE")]
+    public string? Returnable { get; set; }
+
+    /// <summary>
+    ///     鍙敤鏃ユ湡
+    /// </summary>
+    [SugarColumn(ColumnName = "AVAILABLE_DATE")]
+    public string? AvailableDate { get; set; }
+
+    /// <summary>
+    ///     鎵胯鏃ユ湡
+    /// </summary>
+    [SugarColumn(ColumnName = "COMMITMENT_DATE")]
+    public string? CommitmentDate { get; set; }
+
+    /// <summary>
+    ///     璁″垝鍑鸿揣鏃�
+    /// </summary>
+    [SugarColumn(ColumnName = "PLAN_SHIP_DATE")]
+    public string? PlanShipDate { get; set; }
+
+    /// <summary>
+    ///     瀹㈡埛纭鍑鸿揣鏃�
+    /// </summary>
+    [SugarColumn(ColumnName = "CUSTOMER_CONFIRM_DATE")]
+    public string? CustomerConfirmDate { get; set; }
+
+    /// <summary>
+    ///     璁″垝缁勭粐
+    /// </summary>
+    [SugarColumn(ColumnName = "PLAN_ORG")]
+    public string? PlanOrg { get; set; }
+
+    /// <summary>
+    ///     渚涘簲鍟嗙洿杩�
+    /// </summary>
+    [SugarColumn(ColumnName = "VENDOR_DIRECT_SHIP")]
+    public string? VendorDirectShip { get; set; }
+
+    /// <summary>
+    ///     渚涘簲鏉ユ簮
+    /// </summary>
+    [SugarColumn(ColumnName = "SUPPLY_SOURCE")]
+    public string? SupplySource { get; set; }
+
+    /// <summary>
+    ///     渚涘簲绫诲瀷
+    /// </summary>
+    [SugarColumn(ColumnName = "SUPPLY_TYPE")]
+    public string? SupplyType { get; set; }
+
+    /// <summary>
+    ///     渚涘簲缁勭粐
+    /// </summary>
+    [SugarColumn(ColumnName = "SUPPLY_ORG")]
+    public string? SupplyOrg { get; set; }
+
+    /// <summary>
+    ///     渚涘簲鍟�
+    /// </summary>
+    [SugarColumn(ColumnName = "SUPPLIER")]
+    public string? Supplier { get; set; }
+
+    /// <summary>
+    ///     鍑鸿揣鏂瑰紡
+    /// </summary>
+    [SugarColumn(ColumnName = "DETAIL_SHIPPING_METHOD")]
+    public string? DetailShippingMethod { get; set; }
+
+    /// <summary>
+    ///     璐т富缁勭粐
+    /// </summary>
+    [SugarColumn(ColumnName = "OWNER_ORG")]
+    public string? OwnerOrg { get; set; }
+
+    /// <summary>
+    ///     闇�姹傚垎绫�
+    /// </summary>
+    [SugarColumn(ColumnName = "DETAIL_DEMAND_CATEGORY")]
+    public string? DetailDemandCategory { get; set; }
+
+    /// <summary>
+    ///     搴撳瓨瑙勫垝
+    /// </summary>
+    [SugarColumn(ColumnName = "INVENTORY_PLANNING")]
+    public string? InventoryPlanning { get; set; }
+
+    /// <summary>
+    ///     琛屽娉�
+    /// </summary>
+    [SugarColumn(ColumnName = "LINE_REMARK")]
+    public string? LineRemark { get; set; }
+
+    /// <summary>
+    ///     鏉ユ簮鍗曟嵁绫诲埆
+    /// </summary>
+    [SugarColumn(ColumnName = "SOURCE_DOC_CATEGORY")]
+    public string? SourceDocCategory { get; set; }
+
+    /// <summary>
+    ///     鏉ユ簮鍗曞彿
+    /// </summary>
+    [SugarColumn(ColumnName = "SOURCE_DOC_NO")]
+    public string? SourceDocNo { get; set; }
+
+    /// <summary>
+    ///     鏉ユ簮鍗曡鍙�
+    /// </summary>
+    [SugarColumn(ColumnName = "SOURCE_LINE_NO")]
+    public string? SourceLineNo { get; set; }
+
+    /// <summary>
+    ///     ERP琛孖D
+    /// </summary>
+    [SugarColumn(ColumnName = "ERP_LINE_ID")]
+    public string? ErpLineId { get; set; }
+
+    /// <summary>
+    ///     ERP澶碔D
+    /// </summary>
+    [SugarColumn(ColumnName = "ERP_HEAD_ID")]
+    public string? ErpHeadId { get; set; }
+}
diff --git a/StandardPda/MES.Service/service/BasicData/ShipmentPlanDeliveryManager.cs b/StandardPda/MES.Service/service/BasicData/ShipmentPlanDeliveryManager.cs
new file mode 100644
index 0000000..c360130
--- /dev/null
+++ b/StandardPda/MES.Service/service/BasicData/ShipmentPlanDeliveryManager.cs
@@ -0,0 +1,302 @@
+using System.Globalization;
+using MES.Service.DB;
+using MES.Service.Dto.webApi;
+using MES.Service.Modes;
+using SqlSugar;
+
+namespace MES.Service.service;
+
+/// <summary>
+///     鍑鸿揣璁″垝鍑鸿揣鏈嶅姟绠$悊绫�
+/// </summary>
+public class ShipmentPlanDeliveryManager : Repository<ShipmentPlanDelivery>
+{
+    private readonly ShipmentPlanDeliveryDetailManager _detailManager = new();
+
+    /// <summary>
+    ///     淇濆瓨鍑鸿揣璁″垝鍑鸿揣鏁版嵁
+    /// </summary>
+    public bool Save(ErpShipmentPlanDelivery data)
+    {
+        var headerDto = data.OrderDto;
+        var header = ConvertDtoToHeader(data.OrderDto);
+        var details = ConvertDtoToDetails(data.Items);
+
+        return UseTransaction(db =>
+        {
+            switch (headerDto.Type)
+            {
+                case "3":
+                    return UpdateData(db, header, details) ? 1 : 0;
+                case "2":
+                case "4":
+                    return SaveOrUpdateData(db, header, details) ? 1 : 0;
+                default:
+                    throw new NotImplementedException($"涓嶆敮鎸佺殑鎺ュ彛绫诲瀷: {headerDto.Type}");
+            }
+        }) > 0;
+    }
+
+    /// <summary>
+    ///     鏇存柊鏁版嵁
+    /// </summary>
+    private bool UpdateData(SqlSugarScope db, ShipmentPlanDelivery header, List<ShipmentPlanDeliveryDetail> details)
+    {
+        // 妫�鏌ユ槸鍚﹀凡鐢熸垚鍑哄簱鍗�
+        var outCount = Db.Ado.SqlQuery<decimal>(
+            "SELECT COUNT(*) FROM MES_INV_ITEM_OUTS A WHERE A.WORK_NO = :billNo AND A.BILL_TYPE_ID = 200 AND A.TRANSACTION_NO = 250",
+            new { billNo = header.BillNo }).First();
+
+        if (outCount > 0)
+        {
+            throw new NotImplementedException("璇ュ嚭璐у崟宸茬敓鎴愬嚭搴撳崟锛屼笉鑳戒慨鏀癸紒");
+        }
+
+        // 鍒犻櫎鍘熸湁鏁版嵁
+        var deleteHeader = base.DeleteById(header.Id);
+        var detailIds = details.Select(d => d.Id).ToArray();
+        var deleteDetails = db.Deleteable<ShipmentPlanDeliveryDetail>().In(detailIds).ExecuteCommand() > 0;
+
+        if (deleteHeader && deleteDetails)
+        {
+            return true;
+        }
+
+        throw new NotImplementedException("鏇存柊澶辫触");
+    }
+
+    /// <summary>
+    ///     鎻掑叆鎴栨洿鏂版暟鎹�
+    /// </summary>
+    private bool SaveOrUpdateData(SqlSugarScope db, ShipmentPlanDelivery header, List<ShipmentPlanDeliveryDetail> details)
+    {
+        // 妫�鏌ユ槸鍚﹀凡鐢熸垚鍑哄簱鍗�
+        var outCount = Db.Ado.SqlQuery<decimal>(
+            "SELECT COUNT(*) FROM MES_INV_ITEM_OUTS A WHERE A.WORK_NO = :billNo AND A.BILL_TYPE_ID = 200 AND A.TRANSACTION_NO = 250",
+            new { billNo = header.BillNo }).First();
+
+        if (outCount > 0)
+        {
+            throw new NotImplementedException("璇ュ嚭璐у崟宸茬敓鎴愬嚭搴撳崟锛屼笉鑳戒慨鏀癸紒");
+        }
+
+        // 濡傛灉瀛樺湪鍒欏垹闄ゆ棫鏁版嵁
+        if (header.Id != null)
+        {
+            base.DeleteById(header.Id);
+        }
+
+        if (details.Count > 0)
+        {
+            db.Deleteable<ShipmentPlanDeliveryDetail>()
+                .Where(s => s.ErpHeadId == header.ErpHeadId)
+                .ExecuteCommand();
+        }
+
+        // 鎻掑叆鏂版暟鎹苟鑾峰彇涓昏〃ID
+        var headerId = base.InsertReturnIdentity(header);
+
+        // 鎻掑叆鏄庣粏鏁版嵁锛屽叧鑱斾富琛↖D
+        if (headerId > 0)
+        {
+            foreach (var detail in details)
+            {
+                detail.HeadId = headerId;
+                _detailManager.Insert(detail);
+            }
+        }
+
+        return headerId > 0;
+    }
+
+    /// <summary>
+    ///     鎵归噺淇濆瓨
+    /// </summary>
+    public bool SaveList(List<ErpShipmentPlanDelivery> dataList)
+    {
+        var result = dataList.Select(Save).ToList();
+        return result.All(b => b);
+    }
+
+    /// <summary>
+    ///     杞崲DTO涓轰富琛ㄥ疄浣�
+    /// </summary>
+    private ShipmentPlanDelivery ConvertDtoToHeader(ErpShipmentPlanDeliveryDto dto)
+    {
+        DateTime? ParseDateTime(string? dateStr)
+        {
+            if (string.IsNullOrEmpty(dateStr)) return null;
+
+            if (DateTime.TryParseExact(dateStr, "yyyy-MM-dd HH:mm:ss",
+                    CultureInfo.InvariantCulture,
+                    DateTimeStyles.None,
+                    out var parsedDate))
+            {
+                return parsedDate;
+            }
+
+            return null;
+        }
+
+        var entity = new ShipmentPlanDelivery
+        {
+            BillType = dto.BillType,
+            BillNo = dto.BillNo,
+            Customer = dto.Customer,
+            FDate = ParseDateTime(dto.FDate),
+            InterfaceStatus = dto.InterfaceStatus,
+            Salesperson = dto.Salesperson,
+            Department = dto.Department,
+            SourceDocCategory = dto.SourceDocCategory,
+            SourceDocument = dto.SourceDocument,
+            Status = dto.Status,
+            CreatedBy = dto.CreatedBy,
+            CreatedDate = ParseDateTime(dto.CreatedDate),
+            ApprovedBy = dto.ApprovedBy,
+            ApprovedDate = ParseDateTime(dto.ApprovedDate),
+            HeaderNote = dto.HeaderNote,
+            Remark = dto.Remark,
+            AsnNo = dto.AsnNo,
+            Project = dto.Project,
+            CustomerPo = dto.CustomerPo,
+            ShippingPolicy = dto.ShippingPolicy,
+            ShippingMethod = dto.ShippingMethod,
+            DemandCategory = dto.DemandCategory,
+            ShippingPort = dto.ShippingPort,
+            DestinationPort = dto.DestinationPort,
+            ErpHeadId = dto.ErpHeadId
+        };
+
+        // 鏍规嵁ErpHeadId鏌ユ壘鏄惁宸插瓨鍦�
+        var existing = base.GetSingle(it => it.ErpHeadId == dto.ErpHeadId);
+        if (existing != null)
+        {
+            entity.Id = existing.Id;
+        }
+
+        // 楠岃瘉蹇呭~椤�
+        if (string.IsNullOrEmpty(entity.ErpHeadId))
+        {
+            throw new NotImplementedException("琛ㄥごErpHeadId涓嶈兘涓虹┖");
+        }
+
+        return entity;
+    }
+
+    /// <summary>
+    ///     杞崲DTO涓烘槑缁嗚〃瀹炰綋鍒楄〃
+    /// </summary>
+    private List<ShipmentPlanDeliveryDetail> ConvertDtoToDetails(List<ErpShipmentPlanDeliveryDetailDto> dtoList)
+    {
+        var detailList = new List<ShipmentPlanDeliveryDetail>();
+
+        foreach (var dto in dtoList)
+        {
+            var detail = new ShipmentPlanDeliveryDetail
+            {
+                LineNo = dto.LineNo,
+                Project = dto.Project,
+                CustomerItemNo = dto.CustomerItemNo,
+                CustomerItemName = dto.CustomerItemName,
+                MaterialId = dto.MaterialId,
+                MaterialName = dto.MaterialName,
+                Specification = dto.Specification,
+                StorageLocation = dto.StorageLocation,
+                Unit = dto.Unit,
+                Quantity = string.IsNullOrEmpty(dto.Quantity) ? null : Convert.ToDecimal(dto.Quantity),
+                FreeItemType = dto.FreeItemType,
+                DeliveryDate = dto.DeliveryDate,
+                BodyNote = dto.BodyNote,
+                AsnLineNo = dto.AsnLineNo,
+                AvailableStock = dto.AvailableStock,
+                InventoryQueryTime = dto.InventoryQueryTime,
+                LineStatus = dto.LineStatus,
+                ReceiverLocation = dto.ReceiverLocation,
+                ReceiverAddress = dto.ReceiverAddress,
+                ReceiverAddressFull = dto.ReceiverAddressFull,
+                ReceiverContact = dto.ReceiverContact,
+                Returnable = dto.Returnable,
+                AvailableDate = dto.AvailableDate,
+                CommitmentDate = dto.CommitmentDate,
+                PlanShipDate = dto.PlanShipDate,
+                CustomerConfirmDate = dto.CustomerConfirmDate,
+                PlanOrg = dto.PlanOrg,
+                VendorDirectShip = dto.VendorDirectShip,
+                SupplySource = dto.SupplySource,
+                SupplyType = dto.SupplyType,
+                SupplyOrg = dto.SupplyOrg,
+                Supplier = dto.Supplier,
+                DetailShippingMethod = dto.DetailShippingMethod,
+                OwnerOrg = dto.OwnerOrg,
+                DetailDemandCategory = dto.DetailDemandCategory,
+                InventoryPlanning = dto.InventoryPlanning,
+                LineRemark = dto.LineRemark,
+                SourceDocCategory = dto.SourceDocCategory,
+                SourceDocNo = dto.SourceDocNo,
+                SourceLineNo = dto.SourceLineNo,
+                ErpLineId = dto.ErpLineId,
+                ErpHeadId = dto.ErpHeadId
+            };
+
+            // 楠岃瘉蹇呭~椤�
+            if (string.IsNullOrEmpty(detail.ErpLineId))
+            {
+                throw new NotImplementedException("鏄庣粏琛孍rpLineId涓嶈兘涓虹┖");
+            }
+
+            if (string.IsNullOrEmpty(detail.ErpHeadId))
+            {
+                throw new NotImplementedException("鏄庣粏琛孍rpHeadId涓嶈兘涓虹┖");
+            }
+
+            // 鏍规嵁ErpLineId鏌ユ壘鏄惁宸插瓨鍦�
+            var existing = _detailManager.GetSingle(it => it.ErpLineId == detail.ErpLineId);
+            if (existing != null)
+            {
+                detail.Id = existing.Id;
+            }
+
+            // 鐗╂枡ID鏄犲皠杞崲锛堝鏋滈渶瑕侊級
+            if (!string.IsNullOrEmpty(dto.MaterialId) && !string.IsNullOrEmpty(dto.SupplyOrg))
+            {
+                var materialLink = Db.Queryable<MesLinkU9>()
+                    .Where(x => x.U9Id == dto.MaterialId
+                                && x.OrgId == dto.SupplyOrg
+                                && x.TableType == "MES_ITEMS")
+                    .First();
+
+                if (materialLink != null)
+                {
+                    detail.MaterialId = materialLink.MesId;
+                }
+            }
+
+            // 椤圭洰鏄犲皠杞崲锛堝鏋滈渶瑕侊級
+            if (!string.IsNullOrEmpty(dto.Project) && !string.IsNullOrEmpty(dto.SupplyOrg))
+            {
+                var projectLink = Db.Queryable<MesLinkU9>()
+                    .Where(x => x.U9Id == dto.Project
+                                && x.OrgId == dto.SupplyOrg
+                                && x.TableType == "MES_PROJECT")
+                    .First();
+
+                if (projectLink != null)
+                {
+                    detail.Project = projectLink.MesId;
+                }
+            }
+
+            detailList.Add(detail);
+        }
+
+        return detailList;
+    }
+}
+
+/// <summary>
+///     鍑鸿揣璁″垝鍑鸿揣鏄庣粏绠$悊绫�
+/// </summary>
+public class ShipmentPlanDeliveryDetailManager : Repository<ShipmentPlanDeliveryDetail>
+{
+    // 缁ф壙Repository鍩虹澧炲垹鏀规煡鏂规硶
+}
diff --git a/StandardPda/MESApplication/Controllers/BasicData/ShipmentPlanDeliveryController.cs b/StandardPda/MESApplication/Controllers/BasicData/ShipmentPlanDeliveryController.cs
new file mode 100644
index 0000000..4abeba7
--- /dev/null
+++ b/StandardPda/MESApplication/Controllers/BasicData/ShipmentPlanDeliveryController.cs
@@ -0,0 +1,262 @@
+using System.Dynamic;
+using MES.Service.Dto.webApi;
+using MES.Service.Modes;
+using MES.Service.service;
+using MES.Service.util;
+using Microsoft.AspNetCore.Mvc;
+using Newtonsoft.Json;
+
+namespace MESApplication.Controllers;
+
+/// <summary>
+///     鏉ユ簮鍑鸿揣璁″垝鐨勬爣鍑嗗嚭璐ф帴鍙�
+/// </summary>
+[ApiController]
+[Route("api/[controller]")]
+public class ShipmentPlanDeliveryController : ControllerBase
+{
+    private readonly MessageCenterManager _manager = new();
+    private readonly ShipmentPlanDeliveryManager m = new();
+    private readonly string METHOD = "POST";
+    private readonly string TableName = "SHIPMENT_PLAN_DELIVERY";
+    private readonly string URL = "http://localhost:10054/api/ShipmentPlanDelivery/";
+
+    /// <summary>
+    ///     淇濆瓨鍑鸿揣璁″垝鍑鸿揣鏁版嵁锛堟爣鍑嗘帴鍙o級
+    /// </summary>
+    /// <param name="data">鍑鸿揣璁″垝鍑鸿揣鏁版嵁</param>
+    /// <returns></returns>
+    [HttpPost("Save")]
+    public ResponseResult Save(ErpShipmentPlanDelivery data)
+    {
+        var entity = new MessageCenter();
+        entity.TableName = TableName;
+        entity.Url = URL + "Save";
+        entity.Method = METHOD;
+        entity.Route = data.OrderDto.BillNo;
+        entity.Data = JsonConvert.SerializeObject(data);
+        entity.Status = (short)1;
+        entity.CreateBy = "SYSTEM";
+
+        try
+        {
+            dynamic resultInfos = new ExpandoObject();
+            var save = m.Save(data);
+
+            resultInfos.tbBillList = save;
+
+            entity.Result = (short)(save ? 1 : 0);
+            entity.DealWith = (short)1;
+            _manager.save(entity);
+
+            return new ResponseResult
+            {
+                status = 0,
+                message = "OK",
+                data = resultInfos
+            };
+        }
+        catch (Exception ex)
+        {
+            entity.Result = (short)0;
+            entity.DealWith = (short)0;
+            entity.ResultData = ex.Message;
+            _manager.save(entity);
+
+            return ResponseResult.ResponseError(ex);
+        }
+    }
+
+    /// <summary>
+    ///     鎵归噺淇濆瓨鍑鸿揣璁″垝鍑鸿揣鏁版嵁
+    /// </summary>
+    /// <param name="dataList">鍑鸿揣璁″垝鍑鸿揣鏁版嵁鍒楄〃</param>
+    /// <returns></returns>
+    [HttpPost("SaveList")]
+    public ResponseResult SaveList(List<ErpShipmentPlanDelivery> dataList)
+    {
+        var entity = new MessageCenter();
+        entity.TableName = TableName;
+        entity.Url = URL + "SaveList";
+        entity.Method = METHOD;
+        entity.Data = JsonConvert.SerializeObject(dataList);
+        entity.Status = (short)1;
+        entity.CreateBy = "SYSTEM";
+
+        try
+        {
+            dynamic resultInfos = new ExpandoObject();
+            var save = m.SaveList(dataList);
+            resultInfos.tbBillList = save;
+
+            entity.Result = (short)(save ? 1 : 0);
+            entity.DealWith = (short)1;
+            _manager.save(entity);
+
+            return new ResponseResult
+            {
+                status = 0,
+                message = "OK",
+                data = resultInfos
+            };
+        }
+        catch (Exception ex)
+        {
+            entity.Result = (short)0;
+            entity.DealWith = (short)0;
+            entity.ResultData = ex.Message;
+            _manager.save(entity);
+
+            return ResponseResult.ResponseError(ex);
+        }
+    }
+
+    /// <summary>
+    ///     鑾峰彇鎵�鏈夊嚭璐ц鍒掑嚭璐ф暟鎹�
+    /// </summary>
+    /// <returns></returns>
+    [HttpPost("GetList")]
+    public ResponseResult GetList()
+    {
+        try
+        {
+            dynamic resultInfos = new ExpandoObject();
+            resultInfos.tbBillList = m.GetList();
+            return new ResponseResult
+            {
+                status = 0,
+                message = "OK",
+                data = resultInfos
+            };
+        }
+        catch (Exception ex)
+        {
+            return ResponseResult.ResponseError(ex);
+        }
+    }
+
+    /// <summary>
+    ///     鏍规嵁涓婚敭鑾峰彇鍑鸿揣璁″垝鍑鸿揣鏁版嵁
+    /// </summary>
+    /// <param name="id">涓婚敭ID</param>
+    /// <returns></returns>
+    [HttpPost("GetById")]
+    public ResponseResult GetById(decimal id)
+    {
+        try
+        {
+            dynamic resultInfos = new ExpandoObject();
+            resultInfos.tbBillList = m.GetById(id);
+            return new ResponseResult
+            {
+                status = 0,
+                message = "OK",
+                data = resultInfos
+            };
+        }
+        catch (Exception ex)
+        {
+            return ResponseResult.ResponseError(ex);
+        }
+    }
+
+    /// <summary>
+    ///     鏍规嵁涓婚敭鍒犻櫎鍑鸿揣璁″垝鍑鸿揣鏁版嵁
+    /// </summary>
+    /// <param name="ids">涓婚敭ID鏁扮粍</param>
+    /// <returns></returns>
+    [HttpPost("DeleteByIds")]
+    public ResponseResult DeleteByIds([FromBody] object[] ids)
+    {
+        try
+        {
+            dynamic resultInfos = new ExpandoObject();
+            resultInfos.tbBillList = m.DeleteByIds(ids);
+            return new ResponseResult
+            {
+                status = 0,
+                message = "OK",
+                data = resultInfos
+            };
+        }
+        catch (Exception ex)
+        {
+            return ResponseResult.ResponseError(ex);
+        }
+    }
+
+    /// <summary>
+    ///     娣诲姞鍑鸿揣璁″垝鍑鸿揣鏁版嵁
+    /// </summary>
+    /// <param name="data">鍑鸿揣璁″垝鍑鸿揣鏁版嵁</param>
+    /// <returns></returns>
+    [HttpPost("Insert")]
+    public ResponseResult Add([FromBody] ShipmentPlanDelivery data)
+    {
+        try
+        {
+            dynamic resultInfos = new ExpandoObject();
+            resultInfos.tbBillList = m.Insert(data);
+            return new ResponseResult
+            {
+                status = 0,
+                message = "OK",
+                data = resultInfos
+            };
+        }
+        catch (Exception ex)
+        {
+            return ResponseResult.ResponseError(ex);
+        }
+    }
+
+    /// <summary>
+    ///     娣诲姞鍑鸿揣璁″垝鍑鸿揣鏁版嵁骞惰繑鍥炶嚜澧濱D
+    /// </summary>
+    /// <param name="data">鍑鸿揣璁″垝鍑鸿揣鏁版嵁</param>
+    /// <returns></returns>
+    [HttpPost("InsertReturnIdentity")]
+    public ResponseResult InsertReturnIdentity([FromBody] ShipmentPlanDelivery data)
+    {
+        try
+        {
+            dynamic resultInfos = new ExpandoObject();
+            resultInfos.tbBillList = m.InsertReturnIdentity(data);
+            return new ResponseResult
+            {
+                status = 0,
+                message = "OK",
+                data = resultInfos
+            };
+        }
+        catch (Exception ex)
+        {
+            return ResponseResult.ResponseError(ex);
+        }
+    }
+
+    /// <summary>
+    ///     淇敼鍑鸿揣璁″垝鍑鸿揣鏁版嵁
+    /// </summary>
+    /// <param name="data">鍑鸿揣璁″垝鍑鸿揣鏁版嵁</param>
+    /// <returns></returns>
+    [HttpPost("Update")]
+    public ResponseResult Update([FromBody] ShipmentPlanDelivery data)
+    {
+        try
+        {
+            dynamic resultInfos = new ExpandoObject();
+            resultInfos.tbBillList = m.Update(data);
+            return new ResponseResult
+            {
+                status = 0,
+                message = "OK",
+                data = resultInfos
+            };
+        }
+        catch (Exception ex)
+        {
+            return ResponseResult.ResponseError(ex);
+        }
+    }
+}

--
Gitblit v1.9.3