From 33861e7fbf9cc4af3088f715ce7607a681f9c181 Mon Sep 17 00:00:00 2001
From: wangxinhui <wangxinhui@hnkhzn.com>
Date: 星期三, 05 三月 2025 16:58:12 +0800
Subject: [PATCH] 成品代码,板材巷道高度增加

---
 代码管理/WMS/WIDESEA_WMSServer/WIDESEA_IOutboundRepository/IProOutOrderDetailRepository.cs                       |   14 
 代码管理/WMS/WIDESEA_WMSServer/WIDESEA_External/Model/ERPProInboundModel.cs                                      |    8 
 代码管理/WMS/WIDESEA_WMSServer/WIDESEA_Model/Models/Stock/Dt_ProStockInfo_Hty.cs                                 |   43 +
 代码管理/WCS/WIDESEAWCS_Server/WIDESEAWCS_ITaskInfoService/ITaskService.cs                                       |    2 
 代码管理/WMS/WIDESEA_WMSServer/WIDESEA_Common/APIEnum/APIEnum.cs                                                 |    7 
 代码管理/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/FileContentIndex/0f3806e6-14d4-496b-9b44-cf2ad051b337.vsidx |    0 
 代码管理/WMS/WIDESEA_WMSServer/WIDESEA_TaskInfoService/MesTaskService.cs                                         |  140 ++++
 代码管理/WMS/WIDESEA_WMSServer/WIDESEA_OutboundRepository/ProOutOrderRepository.cs                               |   18 
 代码管理/WMS/WIDESEA_WMSServer/WIDESEA_IStockRepository/IProStockInfo_HtyRepository.cs                           |   14 
 代码管理/WMS/WIDESEA_WMSServer/WIDESEA_IStockService/IProStockInfoDetail_HtyService.cs                           |   16 
 代码管理/WMS/WIDESEA_WMSServer/WIDESEA_OutboundService/OutboundService.cs                                        |    7 
 代码管理/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/Outbound/ProOutOrderDetailController.cs             |   19 
 代码管理/WMS/WIDESEA_WMSServer/WIDESEA_IStockRepository/IProStockInfoRepository.cs                               |   14 
 代码管理/WMS/WIDESEA_WMSServer/WIDESEA_BasicService/Service/AssignLocation/LocationInfoService_BC.cs             |    2 
 代码管理/WMS/WIDESEA_WMSServer/WIDESEA_External/Model/ERPReceiveModel.cs                                         |    2 
 代码管理/WMS/WIDESEA_WMSServer/WIDESEA_ITaskInfoService/ITaskService.cs                                          |   13 
 代码管理/WMS/WIDESEA_WMSServer/WIDESEA_IOutboundRepository/IProOutOrderRepository.cs                             |   14 
 代码管理/WMS/WIDESEA_WMSServer/WIDESEA_IOutboundService/IProOutOrderDetailService.cs                             |   16 
 代码管理/WMS/WIDESEA_WMSServer/WIDESEA_InboundService/MesProInOrderService.cs                                    |   15 
 代码管理/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/成品仓/AGV_CPJob.cs                                                 |   45 +
 代码管理/WMS/WIDESEA_WMSServer/WIDESEA_DTO/MES/MesBagInfoModel.cs                                                |   65 +
 代码管理/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Filter/CustomProfile.cs                                         |    4 
 代码管理/WMS/WIDESEA_WMSServer/WIDESEA_Model/Models/Outbound/Dt_ProOutOrder.cs                                   |   65 ++
 代码管理/WMS/WIDESEA_WMSServer/WIDESEA_StockService/ProStockInfoDetail_HtyService.cs                             |   21 
 代码管理/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/Stock/ProStockInfoDetailController.cs               |   19 
 代码管理/WMS/WIDESEA_WMSServer/WIDESEA_Model/Models/Outbound/Dt_ProOutOrderDetail.cs                             |  114 +++
 代码管理/WMS/WIDESEA_WMSServer/WIDESEA_Core/Helper/HttpMesHelper.cs                                              |    8 
 代码管理/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/Stock/ProStockInfoDetail_HtyController.cs           |   19 
 代码管理/WMS/WIDESEA_WMSServer/WIDESEA_OutboundService/ProOutOrderService.cs                                     |  140 ++++
 代码管理/WMS/WIDESEA_WMSServer/WIDESEA_StockService/ProStockInfoService.cs                                       |   41 +
 代码管理/WMS/WIDESEA_WMSServer/WIDESEA_Model/Models/Inbound/Dt_MesProInOrder.cs                                  |    5 
 代码管理/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/成品仓/AGV_CPExtend.cs                                              |  103 +++
 代码管理/WMS/WIDESEA_WMSServer/WIDESEA_StockService/StockInfoDetail_HtyService.cs                                |    2 
 代码管理/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/Stock/ProStockInfoController.cs                     |   19 
 代码管理/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/TaskService_Operate.cs                                 |    6 
 代码管理/WMS/WIDESEA_WMSServer/WIDESEA_DTO/MES/MesShipmentOrderSync.cs                                           |   77 ++
 代码管理/WCS/WIDESEAWCS_Server/WIDESEAWCS_Model/Models/TaskInfo/Dt_Task.cs                                       |    8 
 代码管理/WMS/WIDESEA_WMSServer/WIDESEA_Model/Models/Stock/Dt_ProStockInfoDetail.cs                               |  115 +++
 代码管理/WMS/WIDESEA_WMSServer/WIDESEA_Model/Models/Stock/Dt_ProStockInfo.cs                                     |   69 ++
 代码管理/WMS/WIDESEA_WMSServer/WIDESEA_IStockService/IProStockInfo_HtyService.cs                                 |   16 
 代码管理/WMS/WIDESEA_WMSServer/WIDESEA_OutboundRepository/ProOutOrderDetailRepository.cs                         |   18 
 代码管理/WMS/WIDESEA_WMSServer/WIDESEA_StockService/ProStockInfo_HtyService.cs                                   |   20 
 代码管理/WMS/WIDESEA_WMSServer/WIDESEA_External/IERPService/IInvokeERPService.cs                                 |   12 
 代码管理/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/FileContentIndex/b697bc68-cc10-4945-8b22-efceeb7bf056.vsidx |    0 
 代码管理/WMS/WIDESEA_WMSServer/WIDESEA_External/ERPService/InvokeERPService.cs                                   |   34 +
 代码管理/WMS/WIDESEA_WMSServer/WIDESEA_TaskInfoService/TaskService_Outbound.cs                                   |    2 
 代码管理/WMS/WIDESEA_WMSServer/WIDESEA_Model/Models/Inbound/Dt_MesProInOrderDetail.cs                            |   26 
 代码管理/WMS/WIDESEA_WMSServer/WIDESEA_DTO/ERP/ErpProOutOrderDTO.cs                                              |    8 
 代码管理/WMS/WIDESEA_WMSServer/WIDESEA_IStockService/IProStockInfoDetailService.cs                               |   16 
 代码管理/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/FileContentIndex/53944191-d3e3-4dc3-a3d3-f76da5a49529.vsidx |    0 
 代码管理/WMS/WIDESEA_WMSServer/WIDESEA_StockService/ProStockInfoDetailService.cs                                 |   20 
 代码管理/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/MES/MesController.cs                                |   21 
 代码管理/WMS/WIDESEA_WMSServer/WIDESEA_StockRepository/ProStockInfoDetail_HtyRepository.cs                       |   18 
 代码管理/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/FileContentIndex/042147bb-52cb-4805-9b14-80f5cec0e226.vsidx |    0 
 代码管理/WMS/WIDESEA_WMSServer/WIDESEA_StockRepository/ProStockInfo_HtyRepository.cs                             |   18 
 代码管理/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/FileContentIndex/c3720f0e-fb5a-46ef-9245-3c9faa5a877f.vsidx |    0 
 代码管理/WMS/WIDESEA_WMSServer/WIDESEA_IOutboundService/IProOutOrderService.cs                                   |   23 
 代码管理/WMS/WIDESEA_WMSServer/WIDESEA_OutboundService/ProOutOrderDetailService.cs                               |   25 
 代码管理/WMS/WIDESEA_WMSServer/WIDESEA_IStockRepository/IProStockInfoDetailRepository.cs                         |   14 
 代码管理/WMS/WIDESEA_WMSServer/WIDESEA_StockRepository/ProStockInfoDetailRepository.cs                           |   18 
 代码管理/WMS/WIDESEA_WMSServer/WIDESEA_Model/Models/Stock/Dt_ProStockInfoDetail_Hty.cs                           |   43 +
 代码管理/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/ERP/ErpController.cs                                |   29 
 代码管理/WMS/WIDESEA_WMSServer/WIDESEA_StockRepository/StockRepository.cs                                        |   10 
 代码管理/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/成品仓/ConveyorLineJob_CP.cs                                        |   70 ++
 /dev/null                                                                                                    |    0 
 代码管理/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/FileContentIndex/dabe2c19-7075-4f3e-b4b4-ad475717f014.vsidx |    0 
 代码管理/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/FileContentIndex/c4ebba94-b522-42e2-9e35-4d78739b7bd8.vsidx |    0 
 代码管理/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/板材仓/ConveyorLineJob_BC.cs                                        |   14 
 代码管理/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/FileContentIndex/19f2ce5e-ac6e-4a83-a8d8-de666adbd753.vsidx |    0 
 代码管理/WMS/WIDESEA_WMSServer/WIDESEA_IStockRepository/IStockRepository.cs                                      |    4 
 代码管理/WMS/WIDESEA_WMSServer/WIDESEA_IOutboundService/IOutboundService.cs                                      |    2 
 代码管理/WMS/WIDESEA_WMSServer/WIDESEA_IStockService/IProStockInfoService.cs                                     |   16 
 代码管理/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/Stock/ProStockInfo_HtyController.cs                 |   19 
 代码管理/WMS/WIDESEA_WMSServer/WIDESEA_IStockRepository/IProStockInfoDetail_HtyRepository.cs                     |   14 
 代码管理/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/Outbound/ProOutOrderController.cs                   |   19 
 代码管理/WMS/WIDESEA_WMSServer/WIDESEA_StockRepository/ProStockInfoRepository.cs                                 |   18 
 76 files changed, 1,820 insertions(+), 56 deletions(-)

diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/FileContentIndex/53944191-d3e3-4dc3-a3d3-f76da5a49529.vsidx" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/FileContentIndex/53944191-d3e3-4dc3-a3d3-f76da5a49529.vsidx"
new file mode 100644
index 0000000..4e1871c
--- /dev/null
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/FileContentIndex/53944191-d3e3-4dc3-a3d3-f76da5a49529.vsidx"
Binary files differ
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/FileContentIndex/c3720f0e-fb5a-46ef-9245-3c9faa5a877f.vsidx" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/FileContentIndex/c3720f0e-fb5a-46ef-9245-3c9faa5a877f.vsidx"
new file mode 100644
index 0000000..fee28df
--- /dev/null
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/FileContentIndex/c3720f0e-fb5a-46ef-9245-3c9faa5a877f.vsidx"
Binary files differ
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/FileContentIndex/c3952f00-6f03-46e1-a8c4-0c2746ff48ae.vsidx" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/FileContentIndex/c3952f00-6f03-46e1-a8c4-0c2746ff48ae.vsidx"
deleted file mode 100644
index 4ccb739..0000000
--- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/FileContentIndex/c3952f00-6f03-46e1-a8c4-0c2746ff48ae.vsidx"
+++ /dev/null
Binary files differ
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/FileContentIndex/c4ebba94-b522-42e2-9e35-4d78739b7bd8.vsidx" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/FileContentIndex/c4ebba94-b522-42e2-9e35-4d78739b7bd8.vsidx"
new file mode 100644
index 0000000..a368323
--- /dev/null
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/FileContentIndex/c4ebba94-b522-42e2-9e35-4d78739b7bd8.vsidx"
Binary files differ
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/FileContentIndex/dabe2c19-7075-4f3e-b4b4-ad475717f014.vsidx" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/FileContentIndex/dabe2c19-7075-4f3e-b4b4-ad475717f014.vsidx"
new file mode 100644
index 0000000..1ea4f2f
--- /dev/null
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/FileContentIndex/dabe2c19-7075-4f3e-b4b4-ad475717f014.vsidx"
Binary files differ
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_ITaskInfoService/ITaskService.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_ITaskInfoService/ITaskService.cs"
index 9112aad..cb4391f 100644
--- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_ITaskInfoService/ITaskService.cs"
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_ITaskInfoService/ITaskService.cs"
@@ -218,7 +218,7 @@
         /// <param name="targetAddress">淇敼鍚庣殑鐩爣鍦板潃</param>
         /// <param name="currentAddress">淇敼鍚庣殑褰撳墠鍦板潃</param>
         /// <param name="nextAddress">淇敼鍚庣殑涓嬩竴鍦板潃</param>
-        void UpdateTask(Dt_Task task, TaskStatusEnum taskStatus, string deviceCode = "", string sourceAddress = "", string targetAddress = "", string currentAddress = "", string nextAddress = "", string roadwayNo = "");
+        void UpdateTask(Dt_Task task, TaskStatusEnum taskStatus, string deviceCode = "", string sourceAddress = "", string targetAddress = "", string currentAddress = "", string nextAddress = "", string roadwayNo = "", int heightType = 0);
 
         /// <summary>
         /// 璇锋眰鍒嗛厤宸烽亾
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_Model/Models/TaskInfo/Dt_Task.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_Model/Models/TaskInfo/Dt_Task.cs"
index 68cc2df..133dd59 100644
--- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_Model/Models/TaskInfo/Dt_Task.cs"
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_Model/Models/TaskInfo/Dt_Task.cs"
@@ -161,7 +161,13 @@
         [ExporterHeader(DisplayName = "WMS浠诲姟涓婚敭")]
         [SugarColumn(IsNullable = false, ColumnDescription = "WMS浠诲姟涓婚敭")]
         public int WMSId { get; set; }
-
+        /// <summary>
+        /// 楂樺害绫诲瀷
+        /// </summary>
+        [ImporterHeader(Name = "楂樺害绫诲瀷")]
+        [ExporterHeader(DisplayName = "楂樺害绫诲瀷")]
+        [SugarColumn(IsNullable = false, ColumnDescription = "楂樺害绫诲瀷")]
+        public int HeightType { get; set; }
         /// <summary>
         /// 浠诲姟涓嬪彂鏃堕棿
         /// </summary>
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/TaskService_Operate.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/TaskService_Operate.cs"
index 0ade787..714f7c7 100644
--- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/TaskService_Operate.cs"
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/TaskService_Operate.cs"
@@ -24,7 +24,7 @@
         /// <param name="targetAddress">淇敼鍚庣殑鐩爣鍦板潃</param>
         /// <param name="currentAddress">淇敼鍚庣殑褰撳墠鍦板潃</param>
         /// <param name="nextAddress">淇敼鍚庣殑涓嬩竴鍦板潃</param>
-        public void UpdateTask(Dt_Task task, TaskStatusEnum taskStatus, string deviceCode = "", string sourceAddress = "", string targetAddress = "", string currentAddress = "", string nextAddress = "", string roadwayNo = "")
+        public void UpdateTask(Dt_Task task, TaskStatusEnum taskStatus, string deviceCode = "", string sourceAddress = "", string targetAddress = "", string currentAddress = "", string nextAddress = "", string roadwayNo = "", int heightType = 0)
         {
             StringBuilder stringBuilder = new StringBuilder(App.User?.UserId == 0 ? $"绯荤粺鑷姩娴佺▼" : "浜哄伐鎵嬪姩娴佺▼");
             if (task.DeviceCode != deviceCode && !string.IsNullOrEmpty(deviceCode))
@@ -57,6 +57,10 @@
                 stringBuilder.Append($",宸烽亾鍙风敱{task.Roadway}鍙樻洿涓簕roadwayNo}");
                 task.Roadway = roadwayNo;
             }
+            if (heightType!=0)
+            {
+                task.HeightType= heightType;
+            }
             if (task.TaskState != taskStatus.ObjToInt())
             {
                 string newStatus = $"{taskStatus}";
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/\346\210\220\345\223\201\344\273\223/AGV_CPExtend.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/\346\210\220\345\223\201\344\273\223/AGV_CPExtend.cs"
new file mode 100644
index 0000000..ce8099a
--- /dev/null
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/\346\210\220\345\223\201\344\273\223/AGV_CPExtend.cs"
@@ -0,0 +1,103 @@
+锘縰sing System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using WIDESEA_DTO.Agv;
+using WIDESEAWCS_Common.APIEnum;
+using WIDESEAWCS_Common.TaskEnum;
+using WIDESEAWCS_Core;
+using WIDESEAWCS_Core.Helper;
+using WIDESEAWCS_Model.Models;
+
+namespace WIDESEAWCS_Tasks
+{
+    public partial class AGV_CPJob
+    {
+        public void SendAGVTask()
+        {
+            try
+            {
+                var newTasks = _taskService.Db.Queryable<Dt_Task>().Where(x => x.TaskState == TaskStatusEnum.New.ObjToInt() && nameof(AGV_FLJob).Contains(x.DeviceCode) && !string.IsNullOrEmpty(x.DeviceCode)).ToList().OrderBy(x => x.Grade).ThenBy(x => x.CreateDate).ToList();
+                foreach (var task in newTasks)
+                {
+                    try
+                    {
+                        if (task.TaskType == TaskTypeEnum.Outbound.ObjToInt() || task.TaskType == TaskTypeEnum.OutEmpty.ObjToInt() || task.TaskType == TaskTypeEnum.OutAllocate.ObjToInt())
+                            task.CurrentAddress = GetAGVAddress(task.CurrentAddress);
+                        else
+                            task.NextAddress = GetAGVAddress(task.NextAddress);
+                        AgvTaskDTO taskDTO = new AgvTaskDTO()
+                        {
+                            TaskCode = task.AgvTaskNum,
+                            ReqCode = DateTime.Now.ToString("yyyyMMddHHmmss") + task.AgvTaskNum,
+                            TaskTyp = task.TaskType < TaskTypeEnum.Inbound.ObjToInt() ? "FLC" : "FLR",
+                            ctnrCode = task.PalletCode,
+                            PositionCodePath = new List<CodePath>()
+                        {
+                            new CodePath()
+                            {
+                                type="05",
+                                positionCode=task.CurrentAddress
+                            },
+                            new CodePath()
+                            {
+                                type="05",
+                                positionCode=task.NextAddress
+                            }
+                        },
+                        };
+                        WebResponseContent content = _taskService.AgvSendTask(taskDTO, APIEnum.Agv_FLSendTask);
+                        if (!content.Status) throw new Exception(content.Message);
+
+                        task.TaskState = TaskStatusEnum.AGV_Executing.ObjToInt();
+
+                    }
+                    catch (Exception ex)
+                    {
+                        task.TaskState = TaskStatusEnum.Exception.ObjToInt();
+                        task.ExceptionMessage = ex.Message;
+                    }
+                }
+                _taskService.UpdateData(newTasks);
+            }
+            catch (Exception ex)
+            {
+                WriteError(nameof(AGV_FLJob), ex.Message, ex);
+            }
+        }
+        /// <summary>
+        /// 鑾峰彇AGV鍦板潃
+        /// </summary>
+        /// <param name="Address"></param>
+        /// <returns></returns>
+        public static string GetAGVAddress(string Address)
+        {
+            string[] targetCodes = Address.Split("-");
+            if (targetCodes.Length == 5)
+            {
+                var Row = Convert.ToInt16(targetCodes[1]);
+                var Column = Convert.ToInt16(targetCodes[2]);
+                var Layer = Convert.ToInt16(targetCodes[3]);
+                var a = Row switch
+                {
+                    1 => "A1",
+                    2 => "B1",
+                    3 => "C1",
+                    4 => "D1",
+                    5 => "E1",
+                    _ => throw new Exception($"鏈畾涔夌殑鎺�,鍦板潃:銆恵Address}銆�"),
+                };
+                var b = Layer > 9 ? "" + Layer : "0" + Layer;
+                var c = Column > 9 ? "" + Column : "0" + Column;
+                if (Column == 10) c = "010";
+                Address = a + b + c;
+            }
+            else
+            {
+                throw new Exception($"鍦板潃鏈夎,鍦板潃:銆恵Address}銆�");
+            }
+            return Address;
+        }
+    }
+}
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/\346\210\220\345\223\201\344\273\223/AGV_CPJob.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/\346\210\220\345\223\201\344\273\223/AGV_CPJob.cs"
new file mode 100644
index 0000000..92930b9
--- /dev/null
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/\346\210\220\345\223\201\344\273\223/AGV_CPJob.cs"
@@ -0,0 +1,45 @@
+锘縰sing AutoMapper;
+using Quartz;
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using WIDESEAWCS_IBasicInfoRepository;
+using WIDESEAWCS_ITaskInfoService;
+using WIDESEAWCS_QuartzJob;
+using WIDESEAWCS_QuartzJob.Service;
+
+namespace WIDESEAWCS_Tasks
+{
+    [DisallowConcurrentExecution]
+    public partial class AGV_CPJob : JobBase, IJob
+    {
+        public readonly ITaskService _taskService;
+        private readonly ITaskExecuteDetailService _taskExecuteDetailService;
+        private readonly IRouterService _routerService;
+        private readonly IStationMangerRepository _stationMangerRepository;
+        private readonly IMapper _mapper;
+
+        public AGV_CPJob(ITaskService taskService, ITaskExecuteDetailService taskExecuteDetailService, IRouterService routerService, IStationMangerRepository stationMangerRepository, IMapper mapper)
+        {
+            _taskService = taskService;
+            _taskExecuteDetailService = taskExecuteDetailService;
+            _routerService = routerService;
+            _stationMangerRepository = stationMangerRepository;
+            _mapper = mapper;
+        }
+        public Task Execute(IJobExecutionContext context)
+        {
+            try
+            {
+                SendAGVTask();
+            }
+            catch (Exception ex)
+            {
+                Console.Out.WriteLine(nameof(AGV_CPJob) + ":" + ex.Message);
+            }
+            return Task.CompletedTask;
+        }
+    }
+}
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/\346\210\220\345\223\201\344\273\223/ConveyorLineJob_CP.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/\346\210\220\345\223\201\344\273\223/ConveyorLineJob_CP.cs"
new file mode 100644
index 0000000..4d5acbb
--- /dev/null
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/\346\210\220\345\223\201\344\273\223/ConveyorLineJob_CP.cs"
@@ -0,0 +1,70 @@
+锘縰sing Newtonsoft.Json;
+using Quartz;
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using WIDESEAWCS_IBasicInfoRepository;
+using WIDESEAWCS_ITaskInfoRepository;
+using WIDESEAWCS_ITaskInfoService;
+using WIDESEAWCS_Model.Models;
+using WIDESEAWCS_QuartzJob;
+using WIDESEAWCS_QuartzJob.Repository;
+using WIDESEAWCS_QuartzJob.Service;
+using ICacheService = WIDESEAWCS_Core.Caches.ICacheService;
+
+namespace WIDESEAWCS_Tasks.鎴愬搧浠�
+{
+    [DisallowConcurrentExecution]
+    public class ConveyorLineJob_CP : JobBase, IJob
+    {
+        private readonly ICacheService _cacheService;
+        private readonly ITaskService _taskService;
+        private readonly ITaskExecuteDetailService _taskExecuteDetailService;
+        private readonly ITaskRepository _taskRepository;
+        private readonly IStationMangerRepository _stationMangerRepository;
+        private readonly IRouterRepository _routerRepository;
+        private readonly IRouterService _routerService;
+        private readonly IRouterExtension _routerExtension;
+        private readonly List<Dt_WarehouseDevice> warehouseDevices;
+
+        public ConveyorLineJob_CP(ICacheService cacheService, ITaskService taskService, ITaskExecuteDetailService taskExecuteDetailService, ITaskRepository taskRepository, IStationMangerRepository stationMangerRepository, IRouterRepository routerRepository, IRouterService routerService, IRouterExtension routerExtension)
+        {
+            _cacheService = cacheService;
+            _taskService = taskService;
+            _taskExecuteDetailService = taskExecuteDetailService;
+            _taskRepository = taskRepository;
+            _stationMangerRepository = stationMangerRepository;
+            _routerRepository = routerRepository;
+            _routerService = routerService;
+            _routerExtension = routerExtension;
+
+            string? warehouseDevicesStr = _cacheService.Get<string>(nameof(Dt_WarehouseDevice));
+            if (!string.IsNullOrEmpty(warehouseDevicesStr))
+            {
+                warehouseDevices = JsonConvert.DeserializeObject<List<Dt_WarehouseDevice>>(warehouseDevicesStr) ?? new List<Dt_WarehouseDevice>();
+            }
+            else
+            {
+                warehouseDevices = new List<Dt_WarehouseDevice>();
+            }
+        }
+
+        public Task Execute(IJobExecutionContext context)
+        {
+            bool flag = context.JobDetail.JobDataMap.TryGetValue("JobParams", out object? value);
+            if (flag && value != null)
+            {
+                OtherDevice device = (OtherDevice)value;
+                Dt_WarehouseDevice? warehouseDevice = warehouseDevices.FirstOrDefault(x => x.DeviceCode == device.DeviceCode);
+                if (warehouseDevice == null)
+                {
+                    WriteError(device.DeviceName, $"璇烽厤缃粨搴撹澶囦俊鎭�");
+                    return Task.CompletedTask;
+                }
+            }
+            return Task.CompletedTask;
+        }
+    }
+}
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/\346\235\277\346\235\220\344\273\223/ConveyorLineJob_BC.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/\346\235\277\346\235\220\344\273\223/ConveyorLineJob_BC.cs"
index 787946b..160aaee 100644
--- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/\346\235\277\346\235\220\344\273\223/ConveyorLineJob_BC.cs"
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/\346\235\277\346\235\220\344\273\223/ConveyorLineJob_BC.cs"
@@ -142,7 +142,7 @@
                                             WebResponseContent responseContent = _taskService.RequestWMSAssignRoadway(stations, task.TaskNum, conveyorLineInfoRead.Spare2);
                                             if (responseContent.Status)
                                             {
-                                                _taskService.UpdateTask(task, TaskStatusEnum.Line_Execute, roadwayNo: responseContent.Data.ToString() ?? "");
+                                                _taskService.UpdateTask(task, TaskStatusEnum.Line_Execute, roadwayNo: responseContent.Data.ToString() ?? "",heightType: conveyorLineInfoRead.Spare2);
                                             }
                                         }
 
@@ -272,7 +272,7 @@
                                             device.SetValue(W_ConveyorLineDB.StartPos, task.CurrentAddress, item.StationCode);
                                             device.SetValue(W_ConveyorLineDB.Spare1, ConveyorWorkTypeEnum.Outbound.ObjToInt(), item.StationCode);
                                             device.SetValue(W_ConveyorLineDB.ACK, true, item.StationCode);
-                                            _taskService.UpdateTask(task, taskState, currentAddress: currentAddress, nextAddress: nextAddress, targetAddress: targetAddress, deviceCode: deviceCode, roadwayNo: roadwayNo);
+                                            _taskService.UpdateTask(task, taskState, currentAddress: currentAddress, nextAddress: nextAddress, targetAddress: targetAddress, deviceCode: deviceCode, roadwayNo: roadwayNo,heightType: conveyorLineInfoRead.Spare2);
                                         }
                                        
                                     }
@@ -298,7 +298,7 @@
 
                                         if (router.IsEnd)
                                         {
-                                            string? targetLoca = _taskService.RequestAssignLocationByHeight(taskIn.TaskNum, taskIn.Roadway, conveyorLineInfoRead.Spare2);
+                                            string? targetLoca = _taskService.RequestAssignLocationByHeight(taskIn.TaskNum, taskIn.Roadway, taskIn.HeightType);
                                             if (!string.IsNullOrEmpty(targetLoca))
                                             {
                                                 currentAddress = item.StackerCraneStationCode;
@@ -340,10 +340,10 @@
                                     device.SetValue(W_ConveyorLineDB.Spare1, ConveyorWorkTypeEnum.Outbound.ObjToInt(), item.StationCode);
                                     device.SetValue(W_ConveyorLineDB.STB, true, item.StationCode);
                                 }
-                                else //璋冩嫧浣跨敤
-                                {
-                                    device.SetValue(W_ConveyorLineDB.STB, true, item.StationCode);
-                                }
+                                //else //璋冩嫧浣跨敤
+                                //{
+                                //    device.SetValue(W_ConveyorLineDB.STB, true, item.StationCode);
+                                //}
                                 //{
                                 //    task = _taskRepository.QueryFirst(x => x.CurrentAddress == item.StationCode && _taskService.TaskInboundTypes.Contains(x.TaskType) && string.IsNullOrEmpty(x.DeviceCode) && x.TaskState == TaskStatusEnum.New.ObjToInt() && x.WarehouseId == warehouseDevice.WarehouseId);
                                 //    if (task != null)
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/FileContentIndex/042147bb-52cb-4805-9b14-80f5cec0e226.vsidx" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/FileContentIndex/042147bb-52cb-4805-9b14-80f5cec0e226.vsidx"
new file mode 100644
index 0000000..b0f62dc
--- /dev/null
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/FileContentIndex/042147bb-52cb-4805-9b14-80f5cec0e226.vsidx"
Binary files differ
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/FileContentIndex/0f3806e6-14d4-496b-9b44-cf2ad051b337.vsidx" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/FileContentIndex/0f3806e6-14d4-496b-9b44-cf2ad051b337.vsidx"
new file mode 100644
index 0000000..c70ac53
--- /dev/null
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/FileContentIndex/0f3806e6-14d4-496b-9b44-cf2ad051b337.vsidx"
Binary files differ
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/FileContentIndex/16bda44f-cb60-43e3-8deb-16983a6c8720.vsidx" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/FileContentIndex/16bda44f-cb60-43e3-8deb-16983a6c8720.vsidx"
deleted file mode 100644
index fea932b..0000000
--- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/FileContentIndex/16bda44f-cb60-43e3-8deb-16983a6c8720.vsidx"
+++ /dev/null
Binary files differ
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/FileContentIndex/19f2ce5e-ac6e-4a83-a8d8-de666adbd753.vsidx" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/FileContentIndex/19f2ce5e-ac6e-4a83-a8d8-de666adbd753.vsidx"
new file mode 100644
index 0000000..909024c
--- /dev/null
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/FileContentIndex/19f2ce5e-ac6e-4a83-a8d8-de666adbd753.vsidx"
Binary files differ
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/FileContentIndex/3a86d184-9f6a-4b52-8eb2-6a125517673d.vsidx" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/FileContentIndex/3a86d184-9f6a-4b52-8eb2-6a125517673d.vsidx"
deleted file mode 100644
index 30a74c3..0000000
--- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/FileContentIndex/3a86d184-9f6a-4b52-8eb2-6a125517673d.vsidx"
+++ /dev/null
Binary files differ
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/FileContentIndex/b697bc68-cc10-4945-8b22-efceeb7bf056.vsidx" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/FileContentIndex/b697bc68-cc10-4945-8b22-efceeb7bf056.vsidx"
new file mode 100644
index 0000000..cbb3d35
--- /dev/null
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/FileContentIndex/b697bc68-cc10-4945-8b22-efceeb7bf056.vsidx"
Binary files differ
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/FileContentIndex/bcaff427-9b5a-40c5-b7b6-df06507540f9.vsidx" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/FileContentIndex/bcaff427-9b5a-40c5-b7b6-df06507540f9.vsidx"
deleted file mode 100644
index 1abdbed..0000000
--- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/FileContentIndex/bcaff427-9b5a-40c5-b7b6-df06507540f9.vsidx"
+++ /dev/null
Binary files differ
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/FileContentIndex/d50a9bd1-175b-443a-a8be-5e84630a8286.vsidx" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/FileContentIndex/d50a9bd1-175b-443a-a8be-5e84630a8286.vsidx"
deleted file mode 100644
index 8b3ff22..0000000
--- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/FileContentIndex/d50a9bd1-175b-443a-a8be-5e84630a8286.vsidx"
+++ /dev/null
Binary files differ
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/FileContentIndex/fed89d2c-c26e-4f31-9fa3-8a0b7f92a8fd.vsidx" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/FileContentIndex/fed89d2c-c26e-4f31-9fa3-8a0b7f92a8fd.vsidx"
deleted file mode 100644
index 8f9e9fa..0000000
--- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/FileContentIndex/fed89d2c-c26e-4f31-9fa3-8a0b7f92a8fd.vsidx"
+++ /dev/null
Binary files differ
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_BasicService/Service/AssignLocation/LocationInfoService_BC.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_BasicService/Service/AssignLocation/LocationInfoService_BC.cs"
index 5c615e9..5841275 100644
--- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_BasicService/Service/AssignLocation/LocationInfoService_BC.cs"
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_BasicService/Service/AssignLocation/LocationInfoService_BC.cs"
@@ -174,7 +174,7 @@
             {
                 Dt_LocationInfo? nearLocation = null;
                 if (emptyLocation.RoadwayNo != "SC01_BC" && emptyLocation.Column % 2 == 1)
-                    nearLocation = locationInfos.FirstOrDefault(x => x.Row == emptyLocation.Row && x.Layer == emptyLocation.Layer && x.Depth == emptyLocation.Depth && x.Column == emptyLocation.Column + 1);
+                    nearLocation = locationInfos.FirstOrDefault(x => x.Row == emptyLocation.Row && x.Layer == emptyLocation.Layer && x.Depth == emptyLocation.Depth && x.Column == emptyLocation.Column - 1);
                 else if (emptyLocation.RoadwayNo == "SC01_BC" && emptyLocation.Column % 2 == 0)
                     nearLocation = locationInfos.FirstOrDefault(x => x.Row == emptyLocation.Row && x.Layer == emptyLocation.Layer && x.Depth == emptyLocation.Depth && x.Column == emptyLocation.Column + 1);
                 if (nearLocation != null && DepthLocationIsEmpty_BC(locationInfos, nearLocation) != null)
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_Common/APIEnum/APIEnum.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_Common/APIEnum/APIEnum.cs"
index 63dc0e1..c7850d6 100644
--- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_Common/APIEnum/APIEnum.cs"
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_Common/APIEnum/APIEnum.cs"
@@ -36,6 +36,11 @@
         /// MES鍚屾鏉挎枡鍑哄簱
         /// </summary>
         [Description("MES鍚屾鏉挎枡鍑哄簱")]
-        WMS_MES_MaterialLotaAcept
+        WMS_MES_MaterialLotaAcept,
+        /// <summary>
+        /// MES鍚屾鎴愬搧鍑哄簱
+        /// </summary>
+        [Description("MES鍚屾鎴愬搧鍑哄簱")]
+        WMS_MES_ShipmentOrderSync
     }
 }
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_Core/Helper/HttpMesHelper.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_Core/Helper/HttpMesHelper.cs"
index 36da40e..19fad41 100644
--- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_Core/Helper/HttpMesHelper.cs"
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_Core/Helper/HttpMesHelper.cs"
@@ -23,11 +23,15 @@
                     
                     using HttpClient httpClient = new HttpClient();
                     httpClient.Timeout = new TimeSpan(0, 0, 60);
-                    string authorization = "AppKey 1830415116987195392";
+                    //string authorization = "AppKey 1830415116987195392";
+                    string authorization = "AppKey 1773317109539201024";
+
+                    
                     headers = new Dictionary<string, string>
                     {
                         { "Authorization", authorization },
-                        { "Site_tenant_id", "0dc2d164-8a62-417e-8a00-808007464feb" }
+                        //{ "Site_tenant_id", "0dc2d164-8a62-417e-8a00-808007464feb" }
+                        { "Site_tenant_id", "ced19269-2b83-4577-be43-8cc2f700251e" }
                     };
                     if (headers != null)
                     {
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_DTO/ERP/ErpProOutOrderDTO.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_DTO/ERP/ErpProOutOrderDTO.cs"
index 94acb66..13015cb 100644
--- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_DTO/ERP/ErpProOutOrderDTO.cs"
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_DTO/ERP/ErpProOutOrderDTO.cs"
@@ -33,6 +33,10 @@
         [PropertyValidate("璁㈠崟绫诲瀷", NotNullAndEmpty = true, Check = new object[] { 1, 2})]
         public int OType { get; set; }
         /// <summary>
+        /// 浠撳簱绫诲瀷
+        /// </summary>
+        public string WaType { get; set; }
+        /// <summary>
         /// 璁″垝鍑鸿揣鏃堕棿
         /// </summary>
         public string PlantShipDate { get; set; }
@@ -65,7 +69,7 @@
         /// <summary>
         /// 宸ュ巶
         /// </summary>
-        public string FactoryCode { get; set; } = "HA02";
+        public string FactoryCode { get; set; }
         /// <summary>
         /// 浜у搧缂栫爜
         /// </summary>
@@ -81,7 +85,7 @@
         /// <summary>
         /// 浜у搧鍛ㄦ湡
         /// </summary>
-        public int DateCode { get; set; }
+        public string DateCode { get; set; }
         /// <summary>
         /// 鍚堟牸PCS鏁�
         /// </summary>
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_DTO/MES/MesBagInfoModel.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_DTO/MES/MesBagInfoModel.cs"
index a1e5991..6e238f2 100644
--- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_DTO/MES/MesBagInfoModel.cs"
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_DTO/MES/MesBagInfoModel.cs"
@@ -24,9 +24,31 @@
         /// </summary>
         public int UnPackStock { get; set; }
         /// <summary>
+        /// 宸ヤ綔涓績
+        /// </summary>
+        public string WorkCenter { get; set; }
+        /// <summary>
         /// 鍐呭寘淇℃伅
         /// </summary>
         public List<MESBagDetail> BagDetails { get; set; }
+    }
+    /// <summary>
+    /// MES鍐呭寘鍏ュ簱
+    /// </summary>
+    public class MesBoxInfoModel
+    {
+        /// <summary>
+        /// 澶栫鍙�
+        /// </summary>
+        public string BoxNo { get; set; }
+        /// <summary>
+        /// 鍑哄簱鍗曞彿
+        /// </summary>
+        public string ShipmentOrder { get; set; }
+        /// <summary>
+        /// 鍑鸿揣鍗曞彿
+        /// </summary>
+        public List<MESBagDetail> Bags { get; set; }
     }
     /// <summary>
     /// 鍐呭寘淇℃伅
@@ -66,6 +88,32 @@
         /// </summary>
         public string XSite { get; set; }
         /// <summary>
+        /// 鍐呭寘閲嶉噺
+        /// </summary>
+        public float Weight { get; set; }
+        /// <summary>
+        /// 鍖呰鏃堕棿
+        /// </summary>
+        public DateTime PackingDate { get; set; }
+        /// <summary>
+        /// 鍐呭寘鏄庣粏
+        /// </summary>
+        public List<MESBagItem> BagItems { get; set; }
+    }
+    /// <summary>
+    /// 鍐呭寘鏄庣粏
+    /// </summary>
+    public class MESBagItem
+    {
+        /// <summary>
+        /// 鍒堕�犺鍗�
+        /// </summary>
+        public string MoNumber { get; set; }
+        /// <summary>
+        /// 鎵规鍙�
+        /// </summary>
+        public string LotNumber { get; set; }
+        /// <summary>
         /// ERP宸ュ崟
         /// </summary>
         public string ERPOrder { get; set; }
@@ -74,21 +122,20 @@
         /// </summary>
         public string SaleOrder { get; set; }
         /// <summary>
-        /// 瀹㈡埛鍘熷鍛ㄦ湡
+        /// 鍖呰SET鏁伴噺
         /// </summary>
-        public string CustomDateCode { get; set; }
+        public float SETQty { get;set; }
         /// <summary>
-        /// 鍐呭寘閲嶉噺
+        /// 鍚堟牸PCS鏁�
         /// </summary>
-        public float Weight { get; set; }
+        public float OKPCSQTY { get; set; }
         /// <summary>
-        /// 宸ヤ綔涓績
+        /// X鏁�
         /// </summary>
-        public string WorkCenter { get; set; }
+        public float XQty { get; set; }
         /// <summary>
-        /// 鍖呰鏃堕棿
+        /// X浣�
         /// </summary>
-        public DateTime PackingDate { get; set; }
-        
+        public string XSite { get; set; }
     }
 }
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_DTO/MES/MesShipmentOrderSync.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_DTO/MES/MesShipmentOrderSync.cs"
new file mode 100644
index 0000000..8b11172
--- /dev/null
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_DTO/MES/MesShipmentOrderSync.cs"
@@ -0,0 +1,77 @@
+锘縰sing System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace WIDESEA_DTO.MES
+{
+    /// <summary>
+    /// WMS鍚屾鎴愬搧鑷矼ES
+    /// </summary>
+    public class MesShipmentOrderSync
+    {
+        /// <summary>
+        /// 鍑鸿揣鍗曞彿
+        /// </summary>
+        public string ShipmentOrder { get; set; }
+        /// <summary>
+        /// 瀹㈡埛
+        /// </summary>
+        public string Customer { get; set; }
+        /// <summary>
+        /// 宸ュ巶
+        /// </summary>
+        public string FactoryCode { get; set; }
+        /// <summary>
+        /// 鍑鸿揣鍦板悕绉�
+        /// </summary>
+        public string ShipName { get; set; }
+        /// <summary>
+        /// 鍑鸿揣鍦板潃
+        /// </summary>
+        public string ShippingAddress { get; set; }
+        /// <summary>
+        /// 璁″垝鍑鸿揣鏃堕棿
+        /// </summary>
+        public string PlantShipDate { get; set; }
+        /// <summary>
+        /// 璇︽儏
+        /// </summary>
+        public List<MesShipOrderDetail> OrderDetails { get; set; }
+    }
+    /// <summary>
+    /// 璇︽儏
+    /// </summary>
+    public class MesShipOrderDetail
+    {
+        /// <summary>
+        /// 浜у搧缂栫爜
+        /// </summary>
+        public string ProductCode { get; set; }
+        /// <summary>
+        /// 浜у搧鐗堟湰
+        /// </summary>
+        public string ProductVersion { get; set; }
+        /// <summary>
+        /// 鍑鸿揣鏁伴噺
+        /// </summary>
+        public float Qty { get; set; }
+        /// <summary>
+        /// 鍛ㄦ湡
+        /// </summary>
+        public string DateCode { get; set; }
+        /// <summary>
+        /// 閿�鍞鍗�
+        /// </summary>
+        public string SaleOrder { get; set; }
+        /// <summary>
+        /// 搴忓彿
+        /// </summary>
+        public int Sequence { get; set; }
+        /// <summary>
+        /// 宸ヤ綔涓績
+        /// </summary>
+        public string WorkCenter { get; set; }
+    }
+}
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_External/ERPService/InvokeERPService.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_External/ERPService/InvokeERPService.cs"
index f831843..963d767 100644
--- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_External/ERPService/InvokeERPService.cs"
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_External/ERPService/InvokeERPService.cs"
@@ -142,6 +142,40 @@
             return response;
         }
         /// <summary>
+        /// ERP鎴愬搧鍑哄簱涓婃姤鎺ュ彛璋冪敤
+        /// </summary>
+        public string InvokeProOutApi(ERPProOutOrderModel outOrderModel)
+        {
+            Dt_ApiInfo apiInfo = _apiInfoRepository.QueryFirst(x => x.ApiCode == APIEnum.InvokeErpApi.ToString());
+            ERPBaseModel<ERPProOutOrderModel> model = new ERPBaseModel<ERPProOutOrderModel>()
+            {
+                Data = outOrderModel,
+                Desc = "鍑哄簱鎴愬搧閫氱煡",
+                Type = "toOrderAssignment",
+                SecurityCode = "TeChuang"
+            };
+            string request = JsonConvert.SerializeObject(model, settings);
+            string response = HttpHelper.Post(apiInfo.ApiAddress, request);
+            return response;
+        }
+        /// <summary>
+        /// ERP鎴愬搧鍏ュ簱涓婃姤鎺ュ彛璋冪敤
+        /// </summary>
+        public string InvokeProInApi(ERPProInboundModel inboundModel)
+        {
+            Dt_ApiInfo apiInfo = _apiInfoRepository.QueryFirst(x => x.ApiCode == APIEnum.InvokeErpApi.ToString());
+            ERPBaseModel<ERPProInboundModel> model = new ERPBaseModel<ERPProInboundModel>()
+            {
+                Data = inboundModel,
+                Desc = "鎴愬搧鍏ュ簱",
+                Type = "toWOStockForm",
+                SecurityCode = "TeChuang"
+            };
+            string request = JsonConvert.SerializeObject(model, settings);
+            string response = HttpHelper.Post(apiInfo.ApiAddress, request);
+            return response;
+        }
+        /// <summary>
         /// ERP鐗╂枡鍑哄簱鎺ュ彛璋冪敤
         /// </summary>
         /// <param name="outboundModel"></param>
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_External/IERPService/IInvokeERPService.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_External/IERPService/IInvokeERPService.cs"
index dd2356c..ddbd68f 100644
--- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_External/IERPService/IInvokeERPService.cs"
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_External/IERPService/IInvokeERPService.cs"
@@ -45,5 +45,17 @@
         /// ERP鐩樿耽/浜忎笂鎶ユ帴鍙h皟鐢�
         /// </summary>
         string InvokeTakeStockApi(ERPTakeStockModel takeModel);
+        /// <summary>
+        /// ERP鎴愬搧鍑哄簱瀹屾垚涓婃姤
+        /// </summary>
+        /// <param name="outOrderModel"></param>
+        /// <returns></returns>
+        string InvokeProOutApi(ERPProOutOrderModel outOrderModel);
+        /// <summary>
+        /// ERP鎴愬搧鍏ュ簱瀹屾垚涓婃姤
+        /// </summary>
+        /// <param name="inboundModel"></param>
+        /// <returns></returns>
+        string InvokeProInApi(ERPProInboundModel inboundModel);
     }
 }
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_External/Model/ERPProInboundModel.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_External/Model/ERPProInboundModel.cs"
index 1ac50e1..60c2be5 100644
--- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_External/Model/ERPProInboundModel.cs"
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_External/Model/ERPProInboundModel.cs"
@@ -26,11 +26,11 @@
         /// <summary>
         /// 鍏徃浠g爜
         /// </summary>
-        public string CompanyCode { get; set; } = "HATC";
+        public string CompanyCode { get; set; }
         /// <summary>
         /// 宸ュ巶浠e彿
         /// </summary>
-        public string FactoryCode { get; set; } = "HA02";
+        public string FactoryCode { get; set; }
         /// <summary>
         /// 浠撳簱浠g爜
         /// </summary>
@@ -44,13 +44,13 @@
         /// </summary>
         public string StockDate { get; set; }
         /// <summary>
-        /// 鍏ュ簱鏃ユ湡
+        /// 澶囨敞(鑳舵鐮�)
         /// </summary>
         public string Remark { get; set; }
         /// <summary>
         /// 鍏ュ簱绫诲瀷
         /// </summary>
-        public string StockFormType { get; set; } = "Production";
+        public string StockFormType { get; set; }
         /// <summary>
         /// 鍏ュ簱鏄庣粏
         /// </summary>
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_External/Model/ERPReceiveModel.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_External/Model/ERPReceiveModel.cs"
index 52b5668..64e91b1 100644
--- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_External/Model/ERPReceiveModel.cs"
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_External/Model/ERPReceiveModel.cs"
@@ -104,7 +104,7 @@
         /// <summary>
         /// 鏀惰揣鏁伴噺
         /// </summary>
-        public int QtyRecieved { get; set; }
+        public float QtyRecieved { get; set; }
 
         /// <summary>
         /// 鏀惰揣鎵规
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_IOutboundRepository/IProOutOrderDetailRepository.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_IOutboundRepository/IProOutOrderDetailRepository.cs"
new file mode 100644
index 0000000..97ba303
--- /dev/null
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_IOutboundRepository/IProOutOrderDetailRepository.cs"
@@ -0,0 +1,14 @@
+锘縰sing System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using WIDESEA_Core.BaseRepository;
+using WIDESEA_Model.Models;
+
+namespace WIDESEA_IOutboundRepository
+{
+    public interface IProOutOrderDetailRepository : IRepository<Dt_ProOutOrderDetail>
+    {
+    }
+}
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_IOutboundRepository/IProOutOrderRepository.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_IOutboundRepository/IProOutOrderRepository.cs"
new file mode 100644
index 0000000..daab7b0
--- /dev/null
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_IOutboundRepository/IProOutOrderRepository.cs"
@@ -0,0 +1,14 @@
+锘縰sing System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using WIDESEA_Core.BaseRepository;
+using WIDESEA_Model.Models;
+
+namespace WIDESEA_IOutboundRepository
+{
+    public interface IProOutOrderRepository : IRepository<Dt_ProOutOrder>
+    {
+    }
+}
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_IOutboundService/IOutboundService.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_IOutboundService/IOutboundService.cs"
index a584a50..568cc5f 100644
--- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_IOutboundService/IOutboundService.cs"
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_IOutboundService/IOutboundService.cs"
@@ -24,5 +24,7 @@
         IMesPPCutOutboundOrderService MesPPCutOutboundOrderService { get; }
 
         IMesPPCutOutboundOrderDetailService MesPPCutOutboundOrderDetailService { get; }
+        IProOutOrderService ProOutOrderService { get; }
+        IProOutOrderDetailService ProOutOrderDetailService { get; }
     }
 }
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_IOutboundService/IProOutOrderDetailService.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_IOutboundService/IProOutOrderDetailService.cs"
new file mode 100644
index 0000000..3154f3c
--- /dev/null
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_IOutboundService/IProOutOrderDetailService.cs"
@@ -0,0 +1,16 @@
+锘縰sing System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using WIDESEA_Core.BaseServices;
+using WIDESEA_IOutboundRepository;
+using WIDESEA_Model.Models;
+
+namespace WIDESEA_IOutboundService
+{
+    public interface IProOutOrderDetailService : IService<Dt_ProOutOrderDetail>
+    {
+        IProOutOrderDetailRepository Repository { get; }
+    }
+}
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_IOutboundService/IProOutOrderService.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_IOutboundService/IProOutOrderService.cs"
new file mode 100644
index 0000000..013c7b1
--- /dev/null
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_IOutboundService/IProOutOrderService.cs"
@@ -0,0 +1,23 @@
+锘縰sing System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using WIDESEA_Core;
+using WIDESEA_Core.BaseServices;
+using WIDESEA_DTO.ERP;
+using WIDESEA_IOutboundRepository;
+using WIDESEA_Model.Models;
+
+namespace WIDESEA_IOutboundService
+{
+    public interface IProOutOrderService : IService<Dt_ProOutOrder>
+    {
+        IProOutOrderRepository Repository { get; }
+        /// <summary>
+        /// 鎺ユ敹鎴愬搧鍑哄簱鍗�
+        /// </summary>
+        /// <returns></returns>
+        WebResponseContent ProductDeliveryOrder(ErpProOutOrderDTO outOrderDTO);
+    }
+}
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_IStockRepository/IProStockInfoDetailRepository.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_IStockRepository/IProStockInfoDetailRepository.cs"
new file mode 100644
index 0000000..dc47aab
--- /dev/null
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_IStockRepository/IProStockInfoDetailRepository.cs"
@@ -0,0 +1,14 @@
+锘縰sing System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using WIDESEA_Core.BaseRepository;
+using WIDESEA_Model.Models;
+
+namespace WIDESEA_IStockRepository
+{
+    public interface IProStockInfoDetailRepository : IRepository<Dt_ProStockInfoDetail>
+    {
+    }
+}
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_IStockRepository/IProStockInfoDetail_HtyRepository.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_IStockRepository/IProStockInfoDetail_HtyRepository.cs"
new file mode 100644
index 0000000..cd5f98d
--- /dev/null
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_IStockRepository/IProStockInfoDetail_HtyRepository.cs"
@@ -0,0 +1,14 @@
+锘縰sing System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using WIDESEA_Core.BaseRepository;
+using WIDESEA_Model.Models;
+
+namespace WIDESEA_IStockRepository
+{
+    public interface IProStockInfoDetail_HtyRepository : IRepository<Dt_ProStockInfoDetail_Hty>
+    {
+    }
+}
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_IStockRepository/IProStockInfoRepository.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_IStockRepository/IProStockInfoRepository.cs"
new file mode 100644
index 0000000..553243d
--- /dev/null
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_IStockRepository/IProStockInfoRepository.cs"
@@ -0,0 +1,14 @@
+锘縰sing System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using WIDESEA_Core.BaseRepository;
+using WIDESEA_Model.Models;
+
+namespace WIDESEA_IStockRepository
+{
+    public interface IProStockInfoRepository : IRepository<Dt_ProStockInfo>
+    {
+    }
+}
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_IStockRepository/IProStockInfo_HtyRepository.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_IStockRepository/IProStockInfo_HtyRepository.cs"
new file mode 100644
index 0000000..577e035
--- /dev/null
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_IStockRepository/IProStockInfo_HtyRepository.cs"
@@ -0,0 +1,14 @@
+锘縰sing System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using WIDESEA_Core.BaseRepository;
+using WIDESEA_Model.Models;
+
+namespace WIDESEA_IStockRepository
+{
+    public interface IProStockInfo_HtyRepository : IRepository<Dt_ProStockInfo_Hty>
+    {
+    }
+}
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_IStockRepository/IStockRepository.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_IStockRepository/IStockRepository.cs"
index 8bc79c6..1c30203 100644
--- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_IStockRepository/IStockRepository.cs"
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_IStockRepository/IStockRepository.cs"
@@ -16,5 +16,9 @@
         IStockInfoDetail_HtyRepository StockInfoDetail_HtyRepository { get; }
 
         IStockInfo_HtyRepository StockInfo_HtyRepository { get; }
+        IProStockInfoRepository ProStockInfoRepository { get; }
+        IProStockInfoDetailRepository ProStockInfoDetailRepository { get; }
+        IProStockInfo_HtyRepository ProStockInfo_HtyRepository { get; }
+        IProStockInfoDetail_HtyRepository ProStockInfoDetail_HtyRepository { get; }
     }
 }
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_IStockService/IProStockInfoDetailService.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_IStockService/IProStockInfoDetailService.cs"
new file mode 100644
index 0000000..a48f918
--- /dev/null
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_IStockService/IProStockInfoDetailService.cs"
@@ -0,0 +1,16 @@
+锘縰sing System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using WIDESEA_Core.BaseServices;
+using WIDESEA_IStockRepository;
+using WIDESEA_Model.Models;
+
+namespace WIDESEA_IStockService
+{
+    public interface IProStockInfoDetailService : IService<Dt_ProStockInfoDetail>
+    {
+        IProStockInfoDetailRepository Repository { get; }
+    }
+}
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_IStockService/IProStockInfoDetail_HtyService.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_IStockService/IProStockInfoDetail_HtyService.cs"
new file mode 100644
index 0000000..6659594
--- /dev/null
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_IStockService/IProStockInfoDetail_HtyService.cs"
@@ -0,0 +1,16 @@
+锘縰sing System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using WIDESEA_Core.BaseServices;
+using WIDESEA_IStockRepository;
+using WIDESEA_Model.Models;
+
+namespace WIDESEA_IStockService
+{
+    public interface IProStockInfoDetail_HtyService : IService<Dt_ProStockInfoDetail_Hty>
+    {
+        IProStockInfoDetail_HtyRepository Repository { get; }
+    }
+}
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_IStockService/IProStockInfoService.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_IStockService/IProStockInfoService.cs"
new file mode 100644
index 0000000..1f65de3
--- /dev/null
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_IStockService/IProStockInfoService.cs"
@@ -0,0 +1,16 @@
+锘縰sing System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using WIDESEA_Core.BaseServices;
+using WIDESEA_IStockRepository;
+using WIDESEA_Model.Models;
+
+namespace WIDESEA_IStockService
+{
+    public interface IProStockInfoService : IService<Dt_ProStockInfo>
+    {
+        IProStockInfoRepository Repository { get; }
+    }
+}
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_IStockService/IProStockInfo_HtyService.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_IStockService/IProStockInfo_HtyService.cs"
new file mode 100644
index 0000000..4bd437f
--- /dev/null
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_IStockService/IProStockInfo_HtyService.cs"
@@ -0,0 +1,16 @@
+锘縰sing System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using WIDESEA_Core.BaseServices;
+using WIDESEA_IStockRepository;
+using WIDESEA_Model.Models;
+
+namespace WIDESEA_IStockService
+{
+    public interface IProStockInfo_HtyService : IService<Dt_ProStockInfo_Hty>
+    {
+        IProStockInfo_HtyRepository Repository { get; }
+    }
+}
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_ITaskInfoService/ITaskService.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_ITaskInfoService/ITaskService.cs"
index 41ad135..64f434b 100644
--- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_ITaskInfoService/ITaskService.cs"
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_ITaskInfoService/ITaskService.cs"
@@ -315,9 +315,20 @@
 
         WebResponseContent GeneratePKOutboundTask(int orderDetailId, List<StockSelectViewDTO> stockSelectViews);
         /// <summary>
-        /// MES鎴愬搧鍏ュ簱鍗曟帴鏀�
+        /// MES鎴愬搧鍐呭寘淇℃伅鎺ユ敹
         /// </summary>
         /// <returns></returns>
         MesResponseContent BagInfoSync(MesBagInfoModel bagInfoModel);
+        /// <summary>
+        /// MES鎴愬搧澶栧寘淇℃伅鎺ユ敹
+        /// </summary>
+        /// <param name="boxInfoModel"></param>
+        /// <returns></returns>
+        MesResponseContent BoxStockin(MesBoxInfoModel boxInfoModel);
+        /// <summary>
+        /// MES鎴愬搧鍑哄簱鎺ュ彛璋冪敤
+        /// </summary>
+        /// <returns></returns>
+        WebResponseContent ShipmentOrderSync(MesShipmentOrderSync model);
     }
 }
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_InboundService/MesProInOrderService.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_InboundService/MesProInOrderService.cs"
index 9928363..98b19b1 100644
--- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_InboundService/MesProInOrderService.cs"
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_InboundService/MesProInOrderService.cs"
@@ -51,14 +51,25 @@
                     return content.Error("褰撳墠鍗曟嵁宸插叆搴撴垨鍏抽棴鐘舵��");
                 }
                 ProSerNumAnalysisModel model = CodeAnalysisHelper.CodeAnalysis<ProSerNumAnalysisModel>(AnalysisCodeEnum.ProSerNumAnalysis, serNum);
+                Dt_MesProInOrderDetail? proInOrderDetail = mesProInOrder.Details.FirstOrDefault(x => x.BagNo == model.BagNO);
+                //鍒ゆ柇鎵弿鍜屽崟鎹腑鏄惁鍖归厤
+                if (proInOrderDetail == null)
+                {
+                    return content.Error($"妗嗙爜{mesProInOrder.BatchNo}涓棤鍐呭寘{model.BagNO}淇℃伅");
+                }
+                if ((proInOrderDetail.OverInQuantity + model.OKPCSQTY.ObjToInt())> proInOrderDetail.OKPCSQTY)
+                {
+                    return content.Error($"鍐呭寘鏁伴噺婧㈠嚭{(proInOrderDetail.OverInQuantity + model.OKPCSQTY.ObjToInt()) - proInOrderDetail.OKPCSQTY}");
+                }
                 float SumPCSQty = mesProInOrder.Details.Sum(x => x.OKPCSQTY);
                 float OverPCSQty = mesProInOrder.Details.Sum(x=>x.OverInQuantity);
                 if ((OverPCSQty+model.OKPCSQTY.ObjToInt())>SumPCSQty)
                 {
                     return content.Error($"褰撳墠鍏ュ簱璁㈠崟鏁伴噺婧㈠嚭{(OverPCSQty + model.OKPCSQTY.ObjToInt())- SumPCSQty}");
                 }
-                //鑾峰彇瀵瑰簲鍐呭寘鏄庣粏
-                Dt_MesProInOrderDetail? proInOrderDetail = mesProInOrder.Details.FirstOrDefault(x=>x.BagNo==model.BagNO) ?? throw new Exception($"鏈壘鍒�");
+                proInOrderDetail.OverInQuantity += model.OKPCSQTY.ObjToInt();
+                _inboundRepository.MesProInOrderDetailRepository.UpdateData(proInOrderDetail);
+                return content.OK($"鍐呭寘{proInOrderDetail.BagNo}宸叉壂鏁伴噺锛歿proInOrderDetail.OverInQuantity},鍓╀綑锛歿proInOrderDetail.OKPCSQTY-proInOrderDetail.OverInQuantity}");
             }
             catch (Exception ex)
             {
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_Model/Models/Inbound/Dt_MesProInOrder.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_Model/Models/Inbound/Dt_MesProInOrder.cs"
index 717d814..cdf719d 100644
--- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_Model/Models/Inbound/Dt_MesProInOrder.cs"
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_Model/Models/Inbound/Dt_MesProInOrder.cs"
@@ -48,6 +48,11 @@
         [SugarColumn(IsNullable = false, ColumnDescription = "鏄惁鎷嗙鍏ュ簱")]
         public int UnPackStock { get; set; }
         /// <summary>
+        /// 宸ヤ綔涓績
+        /// </summary>
+        [SugarColumn(IsNullable = false, Length = 50, ColumnDescription = "宸ヤ綔涓績")]
+        public string WorkCenter { get; set; }
+        /// <summary>
         /// 澶囨敞
         /// </summary>
         [SugarColumn(IsNullable = true, Length = 200, ColumnDescription = "澶囨敞")]
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_Model/Models/Inbound/Dt_MesProInOrderDetail.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_Model/Models/Inbound/Dt_MesProInOrderDetail.cs"
index a2ae630..5150702 100644
--- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_Model/Models/Inbound/Dt_MesProInOrderDetail.cs"
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_Model/Models/Inbound/Dt_MesProInOrderDetail.cs"
@@ -72,30 +72,30 @@
         [SugarColumn(IsNullable = true, Length = 50, ColumnDescription = "X浣�")]
         public string XSite { get; set; }
         /// <summary>
+        /// 鍐呭寘閲嶉噺
+        /// </summary>
+        [SugarColumn(IsNullable = false, ColumnDescription = "鍐呭寘閲嶉噺")]
+        public float Weight { get; set; }
+        /// <summary>
         /// ERP宸ュ崟
         /// </summary>
         [SugarColumn(IsNullable = false, Length = 50, ColumnDescription = "ERP宸ュ崟")]
         public string ERPOrder { get; set; }
+        /// <summary>
+        /// 鍒堕�犺鍗�
+        /// </summary>
+        [SugarColumn(IsNullable = false, Length = 50, ColumnDescription = "鍒堕�犺鍗�")]
+        public string MoNumber { get; set; }
         /// <summary>
         /// 閿�鍞鍗�
         /// </summary>
         [SugarColumn(IsNullable = false, Length = 50, ColumnDescription = "閿�鍞鍗�")]
         public string SaleOrder { get; set; }
         /// <summary>
-        /// 瀹㈡埛鍘熷鍛ㄦ湡
+        /// 鎵规鍙�
         /// </summary>
-        [SugarColumn(IsNullable = false, Length = 50, ColumnDescription = "瀹㈡埛鍘熷鍛ㄦ湡")]
-        public string CustomDateCode { get; set; }
-        /// <summary>
-        /// 鍐呭寘閲嶉噺
-        /// </summary>
-        [SugarColumn(IsNullable = false, ColumnDescription = "鍐呭寘閲嶉噺")]
-        public float Weight { get; set; }
-        /// <summary>
-        /// 宸ヤ綔涓績
-        /// </summary>
-        [SugarColumn(IsNullable = false, Length = 50, ColumnDescription = "宸ヤ綔涓績")]
-        public string WorkCenter { get; set; }
+        [SugarColumn(IsNullable = false, Length = 50, ColumnDescription = "鎵规鍙�")]
+        public string LotNumber { get; set; }
         /// <summary>
         /// 鍖呰鏃堕棿
         /// </summary>
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_Model/Models/Outbound/Dt_ProOutOrder.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_Model/Models/Outbound/Dt_ProOutOrder.cs"
new file mode 100644
index 0000000..b3ca30b
--- /dev/null
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_Model/Models/Outbound/Dt_ProOutOrder.cs"
@@ -0,0 +1,65 @@
+锘縰sing SqlSugar;
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using WIDESEA_Core.DB.Models;
+
+namespace WIDESEA_Model.Models
+{
+    /// <summary>
+    /// 鎴愬搧鍑哄簱鍗�
+    /// </summary>
+    [SugarTable(nameof(Dt_ProOutOrder), "鎴愬搧鍑哄簱鍗�")]
+    public class Dt_ProOutOrder : BaseEntity
+    {
+        /// <summary>
+        /// 涓婚敭
+        /// </summary>
+        [SugarColumn(IsPrimaryKey = true, IsIdentity = true, ColumnDescription = "涓婚敭")]
+        public int Id { get; set; }
+
+        /// <summary>
+        /// 浠撳簱涓婚敭
+        /// </summary>
+        [SugarColumn(IsNullable = false, ColumnDescription = "浠撳簱涓婚敭")]
+        public int WarehouseId { get; set; }
+
+        /// <summary>
+        /// 鍑哄簱鍗曞彿
+        /// </summary>
+        [SugarColumn(IsNullable = false,Length = 20, ColumnDescription = "鍑哄簱鍗曞彿")]
+        public string ProOutOrderNo { get; set; }
+
+        /// <summary>
+        /// 璁㈠崟绫诲瀷
+        /// </summary>
+        [SugarColumn(IsNullable = false, ColumnDescription = "璁㈠崟绫诲瀷")]
+        public int ProOrderType { get; set; }
+
+        /// <summary>
+        /// 璁㈠崟鐘舵��
+        /// </summary>
+        [SugarColumn(IsNullable = false, ColumnDescription = "璁㈠崟鐘舵��")]
+        public int ProOrderStatus { get; set; }
+
+        /// <summary>
+        /// 璁″垝鍑鸿揣鏃堕棿
+        /// </summary>
+        [SugarColumn(IsNullable = false, ColumnDescription = "璁″垝鍑鸿揣鏃堕棿")]
+        public DateTime PlantShipDate { get; set; }
+
+        /// <summary>
+        /// 澶囨敞
+        /// </summary>
+        [SugarColumn(IsNullable = true,Length = 200, ColumnDescription = "澶囨敞")]
+        public string Remark { get; set; }
+
+        /// <summary>
+        /// 鎴愬搧鍑哄簱鍗曡鎯�
+        /// </summary>
+        [Navigate(NavigateType.OneToMany, nameof(Dt_ProOutOrderDetail.ProOrderId), nameof(Id))]
+        public List<Dt_ProOutOrderDetail> Details { get; set; }
+    }
+}
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_Model/Models/Outbound/Dt_ProOutOrderDetail.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_Model/Models/Outbound/Dt_ProOutOrderDetail.cs"
new file mode 100644
index 0000000..ce8dbed
--- /dev/null
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_Model/Models/Outbound/Dt_ProOutOrderDetail.cs"
@@ -0,0 +1,114 @@
+锘縰sing SqlSugar;
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using WIDESEA_Core.DB.Models;
+
+namespace WIDESEA_Model.Models
+{
+    /// <summary>
+    /// 鎴愬搧鍑哄簱鏄庣粏鍗�
+    /// </summary>
+    [SugarTable(nameof(Dt_ProOutOrderDetail), "鎴愬搧鍑哄簱鏄庣粏鍗�")]
+    public class Dt_ProOutOrderDetail: BaseEntity
+    {
+        /// <summary>
+        /// 涓婚敭
+        /// </summary>
+        [SugarColumn(IsPrimaryKey = true, IsIdentity = true, ColumnDescription = "涓婚敭")]
+        public int Id { get; set; }
+
+        /// <summary>
+        /// 鎴愬搧鍑哄簱鍗曚富閿�
+        /// </summary>
+        [SugarColumn(IsNullable = false, ColumnDescription = "鍑哄簱鍗曚富閿�")]
+        public int ProOrderId { get; set; }
+
+        /// <summary>
+        /// 鍑哄簱鍗曡鍙�
+        /// </summary>
+        [SugarColumn(IsNullable = false, ColumnDescription = "鍑哄簱鍗曡鍙�")]
+        public int RowId { get; set; }
+
+        /// <summary>
+        /// 鍑哄簱鍗曟槑缁嗙姸鎬�
+        /// </summary>
+        [SugarColumn(IsNullable = false, ColumnDescription = "鍑哄簱鍗曟槑缁嗙姸鎬�")]
+        public int ProOrderDetailStatus { get; set; }
+
+        /// <summary>
+        /// 閿�鍞鍗曞彿
+        /// </summary>
+        [SugarColumn(IsNullable = false,Length = 50, ColumnDescription = "閿�鍞鍗曞彿")]
+        public string SaleOrder { get; set; }
+
+        /// <summary>
+        /// 瀹㈡埛
+        /// </summary>
+        [SugarColumn(IsNullable = false, Length = 50, ColumnDescription = "瀹㈡埛")]
+        public string Customer { get; set; }
+
+        /// <summary>
+        /// 宸ュ巶
+        /// </summary>
+        [SugarColumn(IsNullable = false, Length = 50, ColumnDescription = "宸ュ巶")]
+        public string FactoryCode { get; set; }
+        /// <summary>
+        /// 浜у搧缂栫爜
+        /// </summary>
+        [SugarColumn(IsNullable = false, Length = 50, ColumnDescription = "浜у搧缂栫爜")]
+        public string PCode { get; set; }
+        /// <summary>
+        /// 浜у搧鐗堟湰
+        /// </summary>
+        [SugarColumn(IsNullable = false, Length = 50, ColumnDescription = "浜у搧鐗堟湰")]
+        public string PVer { get; set; }
+
+        /// <summary>
+        /// 浜у搧鎵规
+        /// </summary>
+        [SugarColumn(IsNullable = true, Length = 50, ColumnDescription = "浜у搧鎵规")]
+        public string PLot { get; set; }
+
+        /// <summary>
+        /// 浜у搧鍛ㄦ湡
+        /// </summary>
+        [SugarColumn(IsNullable = true, Length = 50, ColumnDescription = "浜у搧鍛ㄦ湡")]
+        public string DateCode { get; set; }
+
+        /// <summary>
+        /// 鍚堟牸PCS鏁�
+        /// </summary>
+        [SugarColumn(IsNullable = false, ColumnDescription = "鍚堟牸PCS鏁�")]
+        public float QtyPcs { get; set; }
+
+        /// <summary>
+        /// 宸插嚭鏁伴噺
+        /// </summary>
+        [SugarColumn(IsNullable = false, ColumnDescription = "宸插嚭鏁伴噺")]
+        public float OverQtyPcs { get; set; }
+
+        /// <summary>
+        /// X鏉挎暟
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDescription = "X鏉挎暟")]
+        public string XQty { get; set; }
+        /// <summary>
+        /// X鏉夸綅
+        /// </summary>
+        [SugarColumn(IsNullable = true, Length = 50, ColumnDescription = "X鏉夸綅")]
+        public string XSite { get; set; }
+        /// <summary>
+        /// 鍗曚綅
+        /// </summary>
+        [SugarColumn(IsNullable = false, Length = 50, ColumnDescription = "鍗曚綅")]
+        public string Unit { get; set; }
+        /// <summary>
+        /// 澶囧搧鏁�
+        /// </summary>
+        [SugarColumn(IsNullable = false, ColumnDescription = "澶囧搧鏁�")]
+        public float SpareQty { get; set; }
+    }
+}
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_Model/Models/Stock/Dt_ProStockInfo.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_Model/Models/Stock/Dt_ProStockInfo.cs"
new file mode 100644
index 0000000..05490d3
--- /dev/null
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_Model/Models/Stock/Dt_ProStockInfo.cs"
@@ -0,0 +1,69 @@
+锘縰sing SqlSugar;
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using WIDESEA_Core.DB.Models;
+
+namespace WIDESEA_Model.Models
+{
+    /// <summary>
+    /// 鎴愬搧搴撳瓨淇℃伅
+    /// </summary>
+    [SugarTable(nameof(Dt_ProStockInfo), "鎴愬搧搴撳瓨淇℃伅")]
+    public class Dt_ProStockInfo : BaseEntity
+    {
+        /// <summary>
+        /// 涓婚敭
+        /// </summary>
+        [SugarColumn(IsPrimaryKey = true, IsIdentity = true, ColumnDescription = "涓婚敭")]
+        public int Id { get; set; }
+
+        /// <summary>
+        /// 鑳舵鍙�
+        /// </summary>
+        [SugarColumn(IsNullable = false, Length = 50, ColumnDescription = "鑳舵鍙�/澶栫鍙�")]
+        public string PalletCode { get; set; }
+
+        /// <summary>
+        /// 鑳舵绫诲瀷
+        /// </summary>
+        [SugarColumn(IsNullable = false, ColumnDescription = "鑳舵绫诲瀷")]
+        public int PalletType { get; set; }
+
+        /// <summary>
+        /// 璐т綅缂栧彿
+        /// </summary>
+        [SugarColumn(IsNullable = true, Length = 30, ColumnDescription = "璐т綅缂栧彿")]
+        public string LocationCode { get; set; }
+
+        /// <summary>
+        /// 鍑鸿揣鍗曞彿
+        /// </summary>
+        [SugarColumn(IsNullable = true, Length = 30, ColumnDescription = "鍑鸿揣鍗曞彿")]
+        public string ShipmentOrder { get; set; }
+
+        /// <summary>
+        /// 浠撳簱涓婚敭
+        /// </summary>
+        [SugarColumn(IsNullable = false, ColumnDescription = "浠撳簱涓婚敭")]
+        public int WarehouseId { get; set; }
+        /// <summary>
+        /// 搴撳瓨鐘舵��
+        /// </summary>
+        [SugarColumn(IsNullable = false, ColumnDescription = "搴撳瓨鐘舵��")]
+        public int StockStatus { get; set; }
+
+        /// <summary>
+        /// 澶囨敞
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDescription = "澶囨敞")]
+        public string Remark { get; set; }
+        /// <summary>
+        /// 搴撳瓨鏄庣粏
+        /// </summary>
+        [Navigate(NavigateType.OneToMany, nameof(Dt_ProStockInfoDetail.ProStockId), nameof(Id))]
+        public List<Dt_ProStockInfoDetail> proStockInfoDetails { get; set; }
+    }
+}
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_Model/Models/Stock/Dt_ProStockInfoDetail.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_Model/Models/Stock/Dt_ProStockInfoDetail.cs"
new file mode 100644
index 0000000..723c9e1
--- /dev/null
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_Model/Models/Stock/Dt_ProStockInfoDetail.cs"
@@ -0,0 +1,115 @@
+锘縰sing SqlSugar;
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using WIDESEA_Core.DB.Models;
+
+namespace WIDESEA_Model.Models
+{
+    /// <summary>
+    /// 鎴愬搧搴撳瓨淇℃伅鏄庣粏
+    /// </summary>
+    [SugarTable(nameof(Dt_ProStockInfoDetail), "鎴愬搧搴撳瓨淇℃伅鏄庣粏")]
+    public class Dt_ProStockInfoDetail : BaseEntity
+    {
+        /// <summary>
+        /// 涓婚敭
+        /// </summary>
+        [SugarColumn(IsPrimaryKey = true, IsIdentity = true, ColumnDescription = "涓婚敭")]
+        public int Id { get; set; }
+
+        /// <summary>
+        /// 鎴愬搧搴撳瓨涓婚敭
+        /// </summary>
+        [SugarColumn(IsNullable = false, ColumnDescription = "鎴愬搧搴撳瓨涓婚敭")]
+        public int ProStockId { get; set; }
+        /// <summary>
+        /// 鍐呭寘鍙�
+        /// </summary>
+        [SugarColumn(IsNullable = false, Length = 50, ColumnDescription = "鍐呭寘鍙�")]
+        public string BagNo { get; set; }
+        /// <summary>
+        /// 浜у搧缂栫爜
+        /// </summary>
+        [SugarColumn(IsNullable = false, Length = 50, ColumnDescription = "浜у搧缂栫爜")]
+        public string ProductCode { get; set; }
+        /// <summary>
+        /// 鍑哄簱鏁伴噺
+        /// </summary>
+        [SugarColumn(IsNullable = false, ColumnDescription = "鍑哄簱鏁伴噺")]
+        public float OutboundQuantity { get; set; }
+        /// <summary>
+        /// 鎴愬搧搴撳瓨鏄庣粏鐘舵��
+        /// </summary>
+        [SugarColumn(IsNullable = false, ColumnDescription = "鎴愬搧搴撳瓨鏄庣粏鐘舵��")]
+        public int ProOutDetailStatus { get; set; }
+        /// <summary>
+        /// 鐗堟湰
+        /// </summary>
+        [SugarColumn(IsNullable = false, Length = 50, ColumnDescription = "鐗堟湰")]
+        public string ProductVersion { get; set; }
+        /// <summary>
+        /// 鍖呰SET鏁伴噺
+        /// </summary>
+        [SugarColumn(IsNullable = false, ColumnDescription = "鍖呰SET鏁伴噺")]
+        public float SETQty { get; set; }
+        /// <summary>
+        /// 鍚堟牸PCS鏁�
+        /// </summary>
+        [SugarColumn(IsNullable = false, ColumnDescription = "鍚堟牸PCS鏁�")]
+        public float OKPCSQTY { get; set; }
+        /// <summary>
+        /// 鍛ㄦ湡
+        /// </summary>
+        [SugarColumn(IsNullable = false, Length = 50, ColumnDescription = "鍛ㄦ湡")]
+        public string DateCode { get; set; }
+        /// <summary>
+        /// X鏁�
+        /// </summary>
+        [SugarColumn(IsNullable = false, ColumnDescription = "X鏁�")]
+        public float XQty { get; set; }
+        /// <summary>
+        /// X浣�
+        /// </summary>
+        [SugarColumn(IsNullable = true, Length = 50, ColumnDescription = "X浣�")]
+        public string XSite { get; set; }
+        
+        /// <summary>
+        /// 鍐呭寘閲嶉噺
+        /// </summary>
+        [SugarColumn(IsNullable = false, ColumnDescription = "鍐呭寘閲嶉噺")]
+        public float Weight { get; set; }
+        /// <summary>
+        /// 鍖呰鏃堕棿
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDescription = "鍖呰鏃堕棿")]
+        public DateTime PackingDate { get; set; }
+        /// <summary>
+        /// 鎵规鍙�
+        /// </summary>
+        [SugarColumn(IsNullable = false, Length = 50, ColumnDescription = "鎵规鍙�")]
+        public string LotNumber { get; set; }
+        /// <summary>
+        /// ERP宸ュ崟
+        /// </summary>
+        [SugarColumn(IsNullable = false, Length = 50, ColumnDescription = "ERP宸ュ崟")]
+        public string ERPOrder { get; set; }
+        /// <summary>
+        /// 鍒堕�犺鍗�
+        /// </summary>
+        [SugarColumn(IsNullable = false, Length = 50, ColumnDescription = "鍒堕�犺鍗�")]
+        public string MoNumber { get; set; }
+        /// <summary>
+        /// 閿�鍞鍗�
+        /// </summary>
+        [SugarColumn(IsNullable = false, Length = 50, ColumnDescription = "閿�鍞鍗�")]
+        public string SaleOrder { get; set; }
+        /// <summary>
+        /// 澶囨敞
+        /// </summary>
+        [SugarColumn(IsNullable = true, Length = 200, ColumnDescription = "澶囨敞")]
+        public string Remark { get; set; }
+    }
+}
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_Model/Models/Stock/Dt_ProStockInfoDetail_Hty.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_Model/Models/Stock/Dt_ProStockInfoDetail_Hty.cs"
new file mode 100644
index 0000000..1ececf2
--- /dev/null
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_Model/Models/Stock/Dt_ProStockInfoDetail_Hty.cs"
@@ -0,0 +1,43 @@
+锘縰sing Magicodes.ExporterAndImporter.Core;
+using SqlSugar;
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using System.Xml.Linq;
+using WIDESEA_Core.DB.Models;
+
+namespace WIDESEA_Model.Models
+{
+    /// <summary>
+    /// 鎴愬搧搴撳瓨鍘嗗彶淇℃伅鏄庣粏
+    /// </summary>
+    [SugarTable(nameof(Dt_ProStockInfoDetail_Hty), "鎴愬搧搴撳瓨鍘嗗彶淇℃伅鏄庣粏")]
+    public class Dt_ProStockInfoDetail_Hty:Dt_ProStockInfoDetail, IBaseHistoryEntity
+    {
+        /// <summary>
+        /// 鍘熻〃涓婚敭
+        /// </summary>
+        [ImporterHeader(Name = "鍘熻〃涓婚敭")]
+        [ExporterHeader(DisplayName = "鍘熻〃涓婚敭")]
+        [SugarColumn(IsNullable = false, DefaultValue = "0", ColumnDescription = "鍘熻〃涓婚敭")]
+        public int SourceId { get; set; }
+
+        /// <summary>
+        /// 鎿嶄綔绫诲瀷
+        /// </summary>
+        [ImporterHeader(Name = "鎿嶄綔绫诲瀷")]
+        [ExporterHeader(DisplayName = "鎿嶄綔绫诲瀷")]
+        [SugarColumn(IsNullable = false, Length = 50, ColumnDescription = "鎿嶄綔绫诲瀷")]
+        public string OperateType { get; set; }
+
+        /// <summary>
+        /// 绉诲叆鍘嗗彶鏃堕棿
+        /// </summary>
+        [ImporterHeader(Name = "绉诲叆鍘嗗彶鏃堕棿")]
+        [ExporterHeader(DisplayName = "绉诲叆鍘嗗彶鏃堕棿")]
+        [SugarColumn(IsNullable = false, ColumnDescription = "绉诲叆鍘嗗彶鏃堕棿")]
+        public DateTime InsertTime { get; set; }
+    }
+}
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_Model/Models/Stock/Dt_ProStockInfo_Hty.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_Model/Models/Stock/Dt_ProStockInfo_Hty.cs"
new file mode 100644
index 0000000..ee8e5a2
--- /dev/null
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_Model/Models/Stock/Dt_ProStockInfo_Hty.cs"
@@ -0,0 +1,43 @@
+锘縰sing Magicodes.ExporterAndImporter.Core;
+using SqlSugar;
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using System.Xml.Linq;
+using WIDESEA_Core.DB.Models;
+
+namespace WIDESEA_Model.Models
+{
+    /// <summary>
+    /// 鎴愬搧搴撳瓨鍘嗗彶淇℃伅
+    /// </summary>
+    [SugarTable(nameof(Dt_ProStockInfo_Hty), "鎴愬搧搴撳瓨鍘嗗彶淇℃伅")]
+    public class Dt_ProStockInfo_Hty:Dt_ProStockInfo, IBaseHistoryEntity
+    {
+        /// <summary>
+        /// 鍘熻〃涓婚敭
+        /// </summary>
+        [ImporterHeader(Name = "鍘熻〃涓婚敭")]
+        [ExporterHeader(DisplayName = "鍘熻〃涓婚敭")]
+        [SugarColumn(IsNullable = false, DefaultValue = "0", ColumnDescription = "鍘熻〃涓婚敭")]
+        public int SourceId { get; set; }
+
+        /// <summary>
+        /// 鎿嶄綔绫诲瀷
+        /// </summary>
+        [ImporterHeader(Name = "鎿嶄綔绫诲瀷")]
+        [ExporterHeader(DisplayName = "鎿嶄綔绫诲瀷")]
+        [SugarColumn(IsNullable = false, Length = 50, ColumnDescription = "鎿嶄綔绫诲瀷")]
+        public string OperateType { get; set; }
+
+        /// <summary>
+        /// 绉诲叆鍘嗗彶鏃堕棿
+        /// </summary>
+        [ImporterHeader(Name = "绉诲叆鍘嗗彶鏃堕棿")]
+        [ExporterHeader(DisplayName = "绉诲叆鍘嗗彶鏃堕棿")]
+        [SugarColumn(IsNullable = false, ColumnDescription = "绉诲叆鍘嗗彶鏃堕棿")]
+        public DateTime InsertTime { get; set; }
+    }
+}
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_OutboundRepository/ProOutOrderDetailRepository.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_OutboundRepository/ProOutOrderDetailRepository.cs"
new file mode 100644
index 0000000..9740eff
--- /dev/null
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_OutboundRepository/ProOutOrderDetailRepository.cs"
@@ -0,0 +1,18 @@
+锘縰sing System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using WIDESEA_Core.BaseRepository;
+using WIDESEA_IOutboundRepository;
+using WIDESEA_Model.Models;
+
+namespace WIDESEA_OutboundRepository
+{
+    public class ProOutOrderDetailRepository : RepositoryBase<Dt_ProOutOrderDetail>, IProOutOrderDetailRepository
+    {
+        public ProOutOrderDetailRepository(IUnitOfWorkManage unitOfWorkManage) : base(unitOfWorkManage)
+        {
+        }
+    }
+}
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_OutboundRepository/ProOutOrderRepository.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_OutboundRepository/ProOutOrderRepository.cs"
new file mode 100644
index 0000000..d08941c
--- /dev/null
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_OutboundRepository/ProOutOrderRepository.cs"
@@ -0,0 +1,18 @@
+锘縰sing System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using WIDESEA_Core.BaseRepository;
+using WIDESEA_IOutboundRepository;
+using WIDESEA_Model.Models;
+
+namespace WIDESEA_OutboundRepository
+{
+    public class ProOutOrderRepository : RepositoryBase<Dt_ProOutOrder>, IProOutOrderRepository
+    {
+        public ProOutOrderRepository(IUnitOfWorkManage unitOfWorkManage) : base(unitOfWorkManage)
+        {
+        }
+    }
+}
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_OutboundService/OutboundService.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_OutboundService/OutboundService.cs"
index eaaf4d8..c0ddece 100644
--- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_OutboundService/OutboundService.cs"
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_OutboundService/OutboundService.cs"
@@ -24,15 +24,18 @@
         public IMesPPCutOutboundOrderService MesPPCutOutboundOrderService { get; }
 
         public IMesPPCutOutboundOrderDetailService MesPPCutOutboundOrderDetailService { get; }
+        public IProOutOrderService ProOutOrderService { get; }
+        public IProOutOrderDetailService ProOutOrderDetailService { get; }
 
-        public OutboundService(IOutboundOrderDetailService outboundOrderDetailService,IMesPPOutboundOrderService mesPPOutboundOrderService, IOutboundOrderService outboundOrderService, IOutStockLockInfoService outboundStockLockInfoService, IMesOutboundOrderService mesOutboundOrderService)
+        public OutboundService(IOutboundOrderDetailService outboundOrderDetailService,IMesPPOutboundOrderService mesPPOutboundOrderService, IOutboundOrderService outboundOrderService, IOutStockLockInfoService outboundStockLockInfoService, IMesOutboundOrderService mesOutboundOrderService, IProOutOrderService proOutOrderService, IProOutOrderDetailService proOutOrderDetailService)
         {
             OutboundOrderDetailService = outboundOrderDetailService;
             OutboundOrderService = outboundOrderService;
             OutboundStockLockInfoService = outboundStockLockInfoService;
             MesOutboundOrderService = mesOutboundOrderService;
             MesPPOutboundOrderService = mesPPOutboundOrderService;
-
+            ProOutOrderService = proOutOrderService;
+            ProOutOrderDetailService = proOutOrderDetailService;
         }
     }
 }
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_OutboundService/ProOutOrderDetailService.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_OutboundService/ProOutOrderDetailService.cs"
new file mode 100644
index 0000000..dd8108e
--- /dev/null
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_OutboundService/ProOutOrderDetailService.cs"
@@ -0,0 +1,25 @@
+锘縰sing System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using WIDESEA_Core.BaseRepository;
+using WIDESEA_Core.BaseServices;
+using WIDESEA_IOutboundRepository;
+using WIDESEA_IOutboundService;
+using WIDESEA_Model.Models;
+
+namespace WIDESEA_OutboundService
+{
+    public partial class ProOutOrderDetailService : ServiceBase<Dt_ProOutOrderDetail, IProOutOrderDetailRepository>, IProOutOrderDetailService
+    {
+        private readonly IUnitOfWorkManage _unitOfWorkManage;
+
+        public IProOutOrderDetailRepository Repository => BaseDal;
+
+        public ProOutOrderDetailService(IProOutOrderDetailRepository BaseDal, IUnitOfWorkManage unitOfWorkManage) : base(BaseDal)
+        {
+            _unitOfWorkManage = unitOfWorkManage;
+        }
+    }
+}
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_OutboundService/ProOutOrderService.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_OutboundService/ProOutOrderService.cs"
new file mode 100644
index 0000000..d0811af
--- /dev/null
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_OutboundService/ProOutOrderService.cs"
@@ -0,0 +1,140 @@
+锘縰sing AutoMapper;
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using WIDESEA_Common.OrderEnum;
+using WIDESEA_Common.WareHouseEnum;
+using WIDESEA_Core;
+using WIDESEA_Core.BaseRepository;
+using WIDESEA_Core.BaseServices;
+using WIDESEA_Core.Helper;
+using WIDESEA_DTO.ERP;
+using WIDESEA_IBasicRepository;
+using WIDESEA_IBasicService;
+using WIDESEA_IOutboundRepository;
+using WIDESEA_IOutboundService;
+using WIDESEA_IRecordService;
+using WIDESEA_IStockService;
+using WIDESEA_Model.Models;
+
+namespace WIDESEA_OutboundService
+{
+    public partial class ProOutOrderService : ServiceBase<Dt_ProOutOrder, IProOutOrderRepository>, IProOutOrderService
+    {
+        private readonly IUnitOfWorkManage _unitOfWorkManage;
+        private readonly IBasicRepository _basicRepository;
+        private readonly IMapper _mapper;
+
+        public IProOutOrderRepository Repository => BaseDal;
+
+        public ProOutOrderService(IProOutOrderRepository BaseDal, IUnitOfWorkManage unitOfWorkManage, IBasicRepository basicRepository, IMapper mapper) : base(BaseDal)
+        {
+            _unitOfWorkManage = unitOfWorkManage;
+            _basicRepository = basicRepository;
+            _mapper = mapper;
+        }
+        /// <summary>
+        /// 鎺ユ敹ERP鎴愬搧鍑哄簱鍗�
+        /// </summary>
+        /// <returns></returns>
+        public WebResponseContent ProductDeliveryOrder(ErpProOutOrderDTO outOrderDTO)
+        {
+            try
+            {
+                return outOrderDTO.Way switch
+                {
+                    1 => AddDeliveryOrder(outOrderDTO),
+                    2 => UpdateDeliveryOrder(outOrderDTO),
+                    3 => DeleteDeliveryOrder(outOrderDTO),
+                    _ => WebResponseContent.Instance.Error($"鎿嶄綔绫诲瀷涓嶅瓨鍦�,Way:{outOrderDTO.Way}"),
+                };
+            }
+            catch (Exception ex)
+            {
+                return WebResponseContent.Instance.Error(ex.Message);
+            }
+        }
+        /// <summary>
+        /// 鏂板鎴愬搧鍑哄簱鍗�
+        /// </summary>
+        /// <returns></returns>
+        public WebResponseContent AddDeliveryOrder(ErpProOutOrderDTO outOrderDTO)
+        {
+            WebResponseContent content=new WebResponseContent();
+            try
+            {
+                if (BaseDal.QueryFirst(x => x.ProOutOrderNo == outOrderDTO.OrderNo) != null) 
+                {
+                    return content.Error($"鍑哄簱鍗曞彿{outOrderDTO.OrderNo}宸插瓨鍦�!");
+                }
+                Dt_Warehouse warehouse=null;
+                if (outOrderDTO.OType==1 && string.IsNullOrEmpty(outOrderDTO.WaType))
+                {
+                    warehouse = _basicRepository.WarehouseRepository.QueryFirst(x=>x.WarehouseCode==WarehouseEnum.HA71.ToString());
+                }
+                else if (outOrderDTO.OType==2)
+                {
+                    warehouse = _basicRepository.WarehouseRepository.QueryFirst(x => x.WarehouseCode == WarehouseEnum.HA101.ToString());
+                }
+                List<Dt_ProOutOrderDetail> proOutOrderDetails = new List<Dt_ProOutOrderDetail>();
+                foreach (var item in outOrderDTO.OrderDetails)
+                {
+                    proOutOrderDetails.Add(_mapper.Map<Dt_ProOutOrderDetail>(item));
+                }
+                Dt_ProOutOrder  proOutOrder= new Dt_ProOutOrder()
+                {
+                    ProOutOrderNo= outOrderDTO.OrderNo,
+                    WarehouseId= warehouse.WarehouseId,
+                    ProOrderType= outOrderDTO.OType,
+                    ProOrderStatus=OutOrderStatusEnum.鏈紑濮�.ObjToInt(),
+                    PlantShipDate= outOrderDTO.PlantShipDate.ObjToDate(),
+                    Remark= outOrderDTO.Note,
+                    Details= proOutOrderDetails
+                };
+                Db.InsertNav(proOutOrder).Include(x => x.Details).ExecuteCommand();
+                content.OK("鎴愬姛");
+            }
+            catch (Exception ex)
+            {
+                content.Error(ex.Message);
+            }
+            return content;
+        }
+        /// <summary>
+        /// 鏇存柊鎴愬搧鍑哄簱鍗�
+        /// </summary>
+        /// <returns></returns>
+        public WebResponseContent UpdateDeliveryOrder(ErpProOutOrderDTO outOrderDTO)
+        {
+            WebResponseContent content = new WebResponseContent();
+            try
+            {
+
+            }
+            catch (Exception ex)
+            {
+                content.Error(ex.Message);
+            }
+            return content;
+        }
+        /// <summary>
+        /// 鍒犻櫎鎴愬搧鍑哄簱鍗�
+        /// </summary>
+        /// <returns></returns>
+        public WebResponseContent DeleteDeliveryOrder(ErpProOutOrderDTO outOrderDTO)
+        {
+            WebResponseContent content = new WebResponseContent();
+            try
+            {
+
+            }
+            catch (Exception ex)
+            {
+                content.Error(ex.Message);
+            }
+            return content;
+        }
+    }
+}
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_StockRepository/ProStockInfoDetailRepository.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_StockRepository/ProStockInfoDetailRepository.cs"
new file mode 100644
index 0000000..b9fb48c
--- /dev/null
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_StockRepository/ProStockInfoDetailRepository.cs"
@@ -0,0 +1,18 @@
+锘縰sing System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using WIDESEA_Core.BaseRepository;
+using WIDESEA_IStockRepository;
+using WIDESEA_Model.Models;
+
+namespace WIDESEA_StockRepository
+{
+    public class ProStockInfoDetailRepository : RepositoryBase<Dt_ProStockInfoDetail>, IProStockInfoDetailRepository
+    {
+        public ProStockInfoDetailRepository(IUnitOfWorkManage unitOfWorkManage) : base(unitOfWorkManage)
+        {
+        }
+    }
+}
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_StockRepository/ProStockInfoDetail_HtyRepository.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_StockRepository/ProStockInfoDetail_HtyRepository.cs"
new file mode 100644
index 0000000..d2753d3
--- /dev/null
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_StockRepository/ProStockInfoDetail_HtyRepository.cs"
@@ -0,0 +1,18 @@
+锘縰sing System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using WIDESEA_Core.BaseRepository;
+using WIDESEA_IStockRepository;
+using WIDESEA_Model.Models;
+
+namespace WIDESEA_StockRepository
+{
+    public class ProStockInfoDetail_HtyRepository : RepositoryBase<Dt_ProStockInfoDetail_Hty>, IProStockInfoDetail_HtyRepository
+    {
+        public ProStockInfoDetail_HtyRepository(IUnitOfWorkManage unitOfWorkManage) : base(unitOfWorkManage)
+        {
+        }
+    }
+}
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_StockRepository/ProStockInfoRepository.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_StockRepository/ProStockInfoRepository.cs"
new file mode 100644
index 0000000..0d83d13
--- /dev/null
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_StockRepository/ProStockInfoRepository.cs"
@@ -0,0 +1,18 @@
+锘縰sing System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using WIDESEA_Core.BaseRepository;
+using WIDESEA_IStockRepository;
+using WIDESEA_Model.Models;
+
+namespace WIDESEA_StockRepository
+{
+    public class ProStockInfoRepository : RepositoryBase<Dt_ProStockInfo>, IProStockInfoRepository
+    {
+        public ProStockInfoRepository(IUnitOfWorkManage unitOfWorkManage) : base(unitOfWorkManage)
+        {
+        }
+    }
+}
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_StockRepository/ProStockInfo_HtyRepository.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_StockRepository/ProStockInfo_HtyRepository.cs"
new file mode 100644
index 0000000..c325a7b
--- /dev/null
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_StockRepository/ProStockInfo_HtyRepository.cs"
@@ -0,0 +1,18 @@
+锘縰sing System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using WIDESEA_Core.BaseRepository;
+using WIDESEA_IStockRepository;
+using WIDESEA_Model.Models;
+
+namespace WIDESEA_StockRepository
+{
+    public class ProStockInfo_HtyRepository : RepositoryBase<Dt_ProStockInfo_Hty>, IProStockInfo_HtyRepository
+    {
+        public ProStockInfo_HtyRepository(IUnitOfWorkManage unitOfWorkManage) : base(unitOfWorkManage)
+        {
+        }
+    }
+}
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_StockRepository/StockRepository.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_StockRepository/StockRepository.cs"
index 6ecd970..a813d0b 100644
--- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_StockRepository/StockRepository.cs"
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_StockRepository/StockRepository.cs"
@@ -16,13 +16,21 @@
         public IStockInfoDetail_HtyRepository StockInfoDetail_HtyRepository { get; }
 
         public IStockInfo_HtyRepository StockInfo_HtyRepository { get; }
+        public IProStockInfoRepository ProStockInfoRepository { get; }
+        public IProStockInfoDetailRepository ProStockInfoDetailRepository { get; }
+        public IProStockInfo_HtyRepository ProStockInfo_HtyRepository { get; }
+        public IProStockInfoDetail_HtyRepository ProStockInfoDetail_HtyRepository { get; }
 
-        public StockRepository(IStockInfoDetailRepository stockInfoDetailRepository, IStockInfoRepository stockInfoRepository, IStockInfoDetail_HtyRepository stockInfoDetail_HtyRepository,IStockInfo_HtyRepository stockInfo_HtyRepository)
+        public StockRepository(IStockInfoDetailRepository stockInfoDetailRepository, IStockInfoRepository stockInfoRepository, IStockInfoDetail_HtyRepository stockInfoDetail_HtyRepository,IStockInfo_HtyRepository stockInfo_HtyRepository,IProStockInfoRepository proStockInfoRepository,IProStockInfoDetailRepository proStockInfoDetailRepository,IProStockInfo_HtyRepository proStockInfo_HtyRepository,IProStockInfoDetail_HtyRepository proStockInfoDetail_HtyRepository)
         {
             StockInfoDetailRepository = stockInfoDetailRepository;
             StockInfoRepository = stockInfoRepository;
             StockInfoDetail_HtyRepository = stockInfoDetail_HtyRepository;
             StockInfo_HtyRepository = stockInfo_HtyRepository;
+            ProStockInfoRepository=proStockInfoRepository;
+            ProStockInfoDetailRepository = proStockInfoDetailRepository;
+            ProStockInfo_HtyRepository = proStockInfo_HtyRepository;
+            ProStockInfoDetail_HtyRepository = proStockInfoDetail_HtyRepository;
         }
     }
 }
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_StockService/ProStockInfoDetailService.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_StockService/ProStockInfoDetailService.cs"
new file mode 100644
index 0000000..6d17a1f
--- /dev/null
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_StockService/ProStockInfoDetailService.cs"
@@ -0,0 +1,20 @@
+锘縰sing System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using WIDESEA_Core.BaseServices;
+using WIDESEA_IStockRepository;
+using WIDESEA_IStockService;
+using WIDESEA_Model.Models;
+
+namespace WIDESEA_StockService
+{
+    public partial class ProStockInfoDetailService : ServiceBase<Dt_ProStockInfoDetail, IProStockInfoDetailRepository>, IProStockInfoDetailService
+    {
+        public IProStockInfoDetailRepository Repository => BaseDal;
+        public ProStockInfoDetailService(IProStockInfoDetailRepository BaseDal) : base(BaseDal)
+        {
+        }
+    }
+}
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_StockService/ProStockInfoDetail_HtyService.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_StockService/ProStockInfoDetail_HtyService.cs"
new file mode 100644
index 0000000..f5c20e3
--- /dev/null
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_StockService/ProStockInfoDetail_HtyService.cs"
@@ -0,0 +1,21 @@
+锘縰sing System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using WIDESEA_Core.BaseServices;
+using WIDESEA_IStockRepository;
+using WIDESEA_IStockService;
+using WIDESEA_Model.Models;
+
+namespace WIDESEA_StockService
+{
+    public partial class ProStockInfoDetail_HtyService : ServiceBase<Dt_ProStockInfoDetail_Hty, IProStockInfoDetail_HtyRepository>, IProStockInfoDetail_HtyService
+    {
+        public IProStockInfoDetail_HtyRepository Repository => BaseDal;
+        public ProStockInfoDetail_HtyService(IProStockInfoDetail_HtyRepository BaseDal) : base(BaseDal)
+        {
+
+        }
+    }
+}
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_StockService/ProStockInfoService.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_StockService/ProStockInfoService.cs"
new file mode 100644
index 0000000..fc4b072
--- /dev/null
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_StockService/ProStockInfoService.cs"
@@ -0,0 +1,41 @@
+锘縰sing System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using WIDESEA_Core;
+using WIDESEA_Core.BaseServices;
+using WIDESEA_IStockRepository;
+using WIDESEA_IStockService;
+using WIDESEA_Model.Models;
+
+namespace WIDESEA_StockService
+{
+    public partial class ProStockInfoService : ServiceBase<Dt_ProStockInfo, IProStockInfoRepository>, IProStockInfoService
+    {
+        public IProStockInfoRepository Repository => BaseDal;
+        public IStockRepository _stockRepository;
+        public ProStockInfoService(IProStockInfoRepository BaseDal,IStockRepository stockRepository) : base(BaseDal)
+        {
+            _stockRepository = stockRepository;
+        }
+        public WebResponseContent UnBindStock(List<Dt_ProStockInfoDetail> proStockInfoDetails)
+        {
+            WebResponseContent content = new WebResponseContent();
+            //鏍规嵁鍐呭寘鍙疯繘琛屽簱瀛樻墸闄�
+            try
+            {
+                List<Dt_ProStockInfoDetail> delProStockDetails=new List<Dt_ProStockInfoDetail>();
+                //foreach (var item in collection)
+                //{
+                //    Dt_ProStockInfoDetail delProStockDetal=
+                //}
+            }
+            catch (Exception ex)
+            {
+                content.Error(ex.Message);
+            }
+            return content;
+        }
+    }
+}
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_StockService/ProStockInfo_HtyService.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_StockService/ProStockInfo_HtyService.cs"
new file mode 100644
index 0000000..bb199ad
--- /dev/null
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_StockService/ProStockInfo_HtyService.cs"
@@ -0,0 +1,20 @@
+锘縰sing System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using WIDESEA_Core.BaseServices;
+using WIDESEA_IStockRepository;
+using WIDESEA_IStockService;
+using WIDESEA_Model.Models;
+
+namespace WIDESEA_StockService
+{
+    public partial class ProStockInfo_HtyService : ServiceBase<Dt_ProStockInfo_Hty, IProStockInfo_HtyRepository>, IProStockInfo_HtyService
+    {
+        public IProStockInfo_HtyRepository Repository => BaseDal;
+        public ProStockInfo_HtyService(IProStockInfo_HtyRepository BaseDal) : base(BaseDal)
+        {
+        }
+    }
+}
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_StockService/StockInfoDetail_HtyService.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_StockService/StockInfoDetail_HtyService.cs"
index a8809e5..dc7e66c 100644
--- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_StockService/StockInfoDetail_HtyService.cs"
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_StockService/StockInfoDetail_HtyService.cs"
@@ -12,9 +12,9 @@
 {
     public partial class StockInfoDetail_HtyService : ServiceBase<Dt_StockInfoDetail_Hty, IStockInfoDetail_HtyRepository>, IStockInfoDetail_HtyService
     {
+        public IStockInfoDetail_HtyRepository Repository => BaseDal;
         public StockInfoDetail_HtyService(IStockInfoDetail_HtyRepository BaseDal) : base(BaseDal)
         {
         }
-        public IStockInfoDetail_HtyRepository Repository => BaseDal;
     }
 }
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_TaskInfoService/MesTaskService.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_TaskInfoService/MesTaskService.cs"
index a4d45d8..5c9cf50 100644
--- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_TaskInfoService/MesTaskService.cs"
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_TaskInfoService/MesTaskService.cs"
@@ -291,7 +291,46 @@
             }
             return content;
         }
-
+        /// <summary>
+        /// WMS鍚屾鎴愬搧鍑哄簱鑷矼ES
+        /// </summary>
+        /// <param name="model"></param>
+        /// <returns></returns>
+        public WebResponseContent ShipmentOrderSync(MesShipmentOrderSync model)
+        {
+            WebResponseContent content = new WebResponseContent();
+            try
+            {
+                Dt_ApiInfo apiInfo = _apiInfoRepository.QueryFirst(x => x.ApiCode == APIEnum.WMS_MES_ShipmentOrderSync.ToString());
+                MESRoot<MesShipmentOrderSync> root = new MESRoot<MesShipmentOrderSync>()
+                {
+                    From = "WMS",
+                    DateTime = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"),
+                    Content = model
+                };
+                JsonSerializerSettings settings = new JsonSerializerSettings
+                {
+                    ContractResolver = new CamelCasePropertyNamesContractResolver()
+                };
+                string request = JsonConvert.SerializeObject(root, settings);
+                string response = HttpMesHelper.Post(apiInfo.ApiAddress, request);
+                MesResponseContent mesResponseContent = response.DeserializeObject<MesResponseContent>();
+                //璋冪敤鎺ュ彛
+                if (mesResponseContent.BSucc == true)
+                {
+                    content.OK(mesResponseContent.StrMsg);
+                }
+                else
+                {
+                    content.Error(mesResponseContent.StrMsg);
+                }
+            }
+            catch (Exception ex)
+            {
+                content.Error(ex.Message);
+            }
+            return content;
+        }
         /// <summary>
         /// 
         /// </summary>
@@ -939,21 +978,117 @@
                 {
                     return content.Error("鏈壘鍒颁粨搴撲俊鎭�");
                 }
+                //鍒ゆ柇鏄惁MES鍐呭寘淇℃伅鏄惁閲嶅
                 List<Dt_MesProInOrderDetail> mesProInOrderDetails = new List<Dt_MesProInOrderDetail>();
                 foreach (var item in bagInfoModel.BagDetails)
                 {
-                    mesProInOrderDetails.Add(_mapper.Map<Dt_MesProInOrderDetail>(item));
+                    foreach (var child in item.BagItems)
+                    {
+                        Dt_MesProInOrderDetail mesProInOrderDetail=new Dt_MesProInOrderDetail()
+                        {
+                            BagNo=item.BagNo,
+                            ProductCode=item.ProductCode,
+                            ProductVersion=item.ProductVersion,
+                            SETQty=child.SETQty,
+                            OKPCSQTY=child.OKPCSQTY,
+                            DateCode=item.DateCode,
+                            XQty=child.XQty,
+                            XSite=child.XSite,
+                            Weight=item.Weight,
+                            PackingDate=item.PackingDate,
+                            LotNumber=child.LotNumber,
+                            ERPOrder=child.ERPOrder,
+                            SaleOrder=child.SaleOrder,
+                            MoNumber=child.MoNumber,
+                        };
+                        mesProInOrderDetails.Add(mesProInOrderDetail);
+                    }
+                }
+                List<Dt_ProStockInfoDetail> proStockInfoDetails = new List<Dt_ProStockInfoDetail>();
+                foreach (var item in mesProInOrderDetails)
+                {
+                    proStockInfoDetails.Add(_mapper.Map<Dt_ProStockInfoDetail>(item));
                 }
                 Dt_MesProInOrder mesProInOrder = new Dt_MesProInOrder()
                 {
                     WarehouseId = warehouse.WarehouseId,
                     BatchNo = bagInfoModel.BatchNo,
+                    WorkCenter=bagInfoModel.WorkCenter,
                     MesProStatus = InOrderStatusEnum.鏈紑濮�.ObjToInt(),
                     UnPackStock=bagInfoModel.UnPackStock,
                     Details= mesProInOrderDetails
                 };
+                Dt_ProStockInfo proStockInfo = new Dt_ProStockInfo()
+                {
+                    PalletCode = bagInfoModel.BatchNo,
+                    PalletType = 1,
+                    WarehouseId = warehouse.WarehouseId,
+                    StockStatus = StockStatusEmun.缁勭洏鏆傚瓨.ObjToInt(),
+                    proStockInfoDetails= proStockInfoDetails
+                };
+                _unitOfWorkManage.BeginTran();
                 Db.InsertNav(mesProInOrder).Include(x=>x.Details).ExecuteCommand();
+                Db.InsertNav(proStockInfo).Include(x => x.proStockInfoDetails).ExecuteCommand();
+                _unitOfWorkManage.CommitTran();
                 return content.OK("鎺ユ敹鎴愬姛");
+            }
+            catch (Exception ex)
+            {
+                _unitOfWorkManage.RollbackTran();
+                content.Error(ex.Message);
+            }
+            return content;
+        }
+        public MesResponseContent BoxStockin(MesBoxInfoModel boxInfoModel)
+        {
+            MesResponseContent content = new MesResponseContent();
+            try
+            {
+                Dt_Warehouse warehouse = _basicRepository.WarehouseRepository.QueryFirst(x=>x.WarehouseCode==WarehouseEnum.HA101.ToString());
+                //鑾峰彇MES鍐呭寘淇℃伅
+                List<Dt_MesProInOrderDetail> mesProInOrderDetails = new List<Dt_MesProInOrderDetail>();
+                foreach (var item in boxInfoModel.Bags)
+                {
+                    foreach (var child in item.BagItems)
+                    {
+                        Dt_MesProInOrderDetail mesProInOrderDetail = new Dt_MesProInOrderDetail()
+                        {
+                            BagNo = item.BagNo,
+                            ProductCode = item.ProductCode,
+                            ProductVersion = item.ProductVersion,
+                            SETQty = child.SETQty,
+                            OKPCSQTY = child.OKPCSQTY,
+                            DateCode = item.DateCode,
+                            XQty = child.XQty,
+                            XSite = child.XSite,
+                            Weight = item.Weight,
+                            PackingDate = item.PackingDate,
+                            LotNumber = child.LotNumber,
+                            ERPOrder = child.ERPOrder,
+                            SaleOrder = child.SaleOrder,
+                            MoNumber = child.MoNumber,
+                        };
+                        mesProInOrderDetails.Add(mesProInOrderDetail);
+                    }
+                }
+                List<Dt_ProStockInfoDetail> proStockInfoDetails = new List<Dt_ProStockInfoDetail>();
+                foreach (var item in mesProInOrderDetails)
+                {
+                    proStockInfoDetails.Add(_mapper.Map<Dt_ProStockInfoDetail>(item));
+                }
+                Dt_ProStockInfo proStockInfo = new Dt_ProStockInfo()
+                {
+                    PalletCode = boxInfoModel.BoxNo,
+                    PalletType = 0,
+                    WarehouseId = warehouse.WarehouseId,
+                    ShipmentOrder= boxInfoModel.ShipmentOrder,
+                    StockStatus = StockStatusEmun.鍏ュ簱瀹屾垚.ObjToInt(),
+                    proStockInfoDetails = proStockInfoDetails
+                };
+                _unitOfWorkManage.BeginTran();
+                Db.InsertNav(proStockInfo).Include(x => x.proStockInfoDetails).ExecuteCommand();
+                _unitOfWorkManage.CommitTran();
+                return content.OK("澶栧寘鎺ユ敹鎴愬姛");
             }
             catch (Exception ex)
             {
@@ -961,7 +1096,6 @@
             }
             return content;
         }
-
         /// <summary>
         /// 鎴愬搧杩斿伐鎻愬簱
         /// </summary>
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_TaskInfoService/TaskService_Outbound.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_TaskInfoService/TaskService_Outbound.cs"
index 341b487..21fc096 100644
--- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_TaskInfoService/TaskService_Outbound.cs"
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_TaskInfoService/TaskService_Outbound.cs"
@@ -152,7 +152,7 @@
                         (int)OutOrderTypeEnum.Quality => TaskTypeEnum.OutQuality,
                         _ => new TaskTypeEnum()
                     };
-                    tasks = GetTasks(result.Item1, TaskTypeEnum.Outbound);
+                    tasks = GetTasks(result.Item1, typeEnum);
                     result.Item2.OrderDetailStatus = OrderDetailStatusEnum.Outbound.ObjToInt();
                     result.Item3.ForEach(x =>
                     {
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/ERP/ErpController.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/ERP/ErpController.cs"
index 2e13b15..8350a8f 100644
--- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/ERP/ErpController.cs"
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/ERP/ErpController.cs"
@@ -124,7 +124,17 @@
             if (content.Status) return Instance.OK();
             else return Instance.Error(content.Message);
         }
-
+        /// <summary>
+        /// 鎺ユ敹ERP鎴愬搧鍑哄簱鍗曚俊鎭�
+        /// </summary>
+        /// <returns></returns>
+        [HttpPost, Route("ProductDeliveryOrder"), AllowAnonymous, MethodParamsValidate]
+        public ErpResponseContent ProductDeliveryOrder([FromBody] Root<ErpProOutOrderDTO> erpProOutOrder)
+        {
+            WebResponseContent content = _outboundService.ProOutOrderService.ProductDeliveryOrder(erpProOutOrder.Content);
+            if (content.Status) return Instance.OK();
+            else return Instance.Error(content.Message);
+        }
         /// <summary>
         /// 鎺ユ敹ERP閫�鏂欏崟淇℃伅
         /// </summary>
@@ -189,5 +199,22 @@
         {
             return _invokeERPService.InvokeTakeStockApi(takeModel);
         }
+        /// <summary>
+        /// ERP鎴愬搧鍏ュ簱涓婃姤鎺ュ彛璋冪敤
+        /// </summary>
+        /// <returns></returns>
+        [HttpPost, Route("InvokeProInApi"), AllowAnonymous]
+        public string InvokeProInApi([FromBody] ERPProInboundModel inboundModel)
+        {
+            return _invokeERPService.InvokeProInApi(inboundModel);
+        }
+        /// <summary>
+        /// ERP鎴愬搧鍑哄簱涓婃姤鎺ュ彛璋冪敤
+        /// </summary>
+        [HttpPost, Route("InvokeProOutApi"), AllowAnonymous]
+        public string InvokeProOutApi([FromBody] ERPProOutOrderModel outOrderModel)
+        {
+            return _invokeERPService.InvokeProOutApi(outOrderModel);
+        }
     }
 }
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/MES/MesController.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/MES/MesController.cs"
index 7082f41..45336a4 100644
--- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/MES/MesController.cs"
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/MES/MesController.cs"
@@ -160,7 +160,7 @@
             return _taskService.RworkTask(model);
         }
         /// <summary>
-        /// MES鎴愬搧鍏ュ簱鍗曟帴鏀�
+        /// MES鎴愬搧鍐呭寘淇℃伅鎺ユ敹
         /// </summary>
         /// <param name="model"></param>
         /// <returns></returns>
@@ -169,5 +169,24 @@
         {
             return _taskService.BagInfoSync(model.Content);
         }
+        /// <summary>
+        /// MES鎴愬搧澶栧寘淇℃伅鎺ユ敹
+        /// </summary>
+        /// <param name="model"></param>
+        /// <returns></returns>
+        [HttpPost, Route("BoxStockin"), AllowAnonymous]
+        public MesResponseContent BoxStockin([FromBody] Root<MesBoxInfoModel> model)
+        {
+            return _taskService.BoxStockin(model.Content);
+        }
+        /// <summary>
+        /// MES鎴愬搧鍑哄簱鎺ュ彛璋冪敤
+        /// </summary>
+        /// <returns></returns>
+        [HttpPost, Route("ShipmentOrderSync"), AllowAnonymous]
+        public WebResponseContent ShipmentOrderSync([FromBody] MesShipmentOrderSync model)
+        {
+            return _taskService.ShipmentOrderSync(model);
+        }
     }
 }
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/Outbound/ProOutOrderController.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/Outbound/ProOutOrderController.cs"
new file mode 100644
index 0000000..9ddad80
--- /dev/null
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/Outbound/ProOutOrderController.cs"
@@ -0,0 +1,19 @@
+锘縰sing Microsoft.AspNetCore.Mvc;
+using WIDESEA_Core.BaseController;
+using WIDESEA_IOutboundService;
+using WIDESEA_Model.Models;
+
+namespace WIDESEA_WMSServer.Controllers.Outbound
+{
+    /// <summary>
+    /// 鎴愬搧鍑哄簱鍗�
+    /// </summary>
+    [Route("api/ProOutOrder")]
+    [ApiController]
+    public class ProOutOrderController : ApiBaseController<IProOutOrderService, Dt_ProOutOrder>
+    {
+        public ProOutOrderController(IProOutOrderService service) : base(service)
+        {
+        }
+    }
+}
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/Outbound/ProOutOrderDetailController.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/Outbound/ProOutOrderDetailController.cs"
new file mode 100644
index 0000000..2a23e27
--- /dev/null
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/Outbound/ProOutOrderDetailController.cs"
@@ -0,0 +1,19 @@
+锘縰sing Microsoft.AspNetCore.Mvc;
+using WIDESEA_Core.BaseController;
+using WIDESEA_IOutboundService;
+using WIDESEA_Model.Models;
+
+namespace WIDESEA_WMSServer.Controllers.Outbound
+{
+    /// <summary>
+    /// 鎴愬搧鍑哄簱鍗曟槑缁�
+    /// </summary>
+    [Route("api/ProOutOrderDetail")]
+    [ApiController]
+    public class ProOutOrderDetailController : ApiBaseController<IProOutOrderDetailService, Dt_ProOutOrderDetail>
+    {
+        public ProOutOrderDetailController(IProOutOrderDetailService service) : base(service)
+        {
+        }
+    }
+}
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/Stock/ProStockInfoController.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/Stock/ProStockInfoController.cs"
new file mode 100644
index 0000000..31a7ca6
--- /dev/null
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/Stock/ProStockInfoController.cs"
@@ -0,0 +1,19 @@
+锘縰sing Microsoft.AspNetCore.Mvc;
+using WIDESEA_Core.BaseController;
+using WIDESEA_IStockService;
+using WIDESEA_Model.Models;
+
+namespace WIDESEA_WMSServer.Controllers.Stock
+{
+    /// <summary>
+    /// 鎴愬搧搴撳瓨
+    /// </summary>
+    [Route("api/ProStockInfo")]
+    [ApiController]
+    public class ProStockInfoController : ApiBaseController<IProStockInfoService, Dt_ProStockInfo>
+    {
+        public ProStockInfoController(IProStockInfoService service) : base(service)
+        {
+        }
+    }
+}
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/Stock/ProStockInfoDetailController.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/Stock/ProStockInfoDetailController.cs"
new file mode 100644
index 0000000..9bdb52d
--- /dev/null
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/Stock/ProStockInfoDetailController.cs"
@@ -0,0 +1,19 @@
+锘縰sing Microsoft.AspNetCore.Mvc;
+using WIDESEA_Core.BaseController;
+using WIDESEA_IStockService;
+using WIDESEA_Model.Models;
+
+namespace WIDESEA_WMSServer.Controllers.Stock
+{
+    /// <summary>
+    /// 鎴愬搧搴撳瓨鏄庣粏
+    /// </summary>
+    [Route("api/ProStockInfoDetail")]
+    [ApiController]
+    public class ProStockInfoDetailController : ApiBaseController<IProStockInfoDetailService, Dt_ProStockInfoDetail>
+    {
+        public ProStockInfoDetailController(IProStockInfoDetailService service) : base(service)
+        {
+        }
+    }
+}
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/Stock/ProStockInfoDetail_HtyController.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/Stock/ProStockInfoDetail_HtyController.cs"
new file mode 100644
index 0000000..817ddb8
--- /dev/null
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/Stock/ProStockInfoDetail_HtyController.cs"
@@ -0,0 +1,19 @@
+锘縰sing Microsoft.AspNetCore.Mvc;
+using WIDESEA_Core.BaseController;
+using WIDESEA_IStockService;
+using WIDESEA_Model.Models;
+
+namespace WIDESEA_WMSServer.Controllers.Stock
+{
+    /// <summary>
+    /// 鎴愬搧搴撳瓨鍘嗗彶
+    /// </summary>
+    [Route("api/ProStockInfoDetail_Hty")]
+    [ApiController]
+    public class ProStockInfoDetail_HtyController : ApiBaseController<IProStockInfoDetail_HtyService, Dt_ProStockInfoDetail_Hty>
+    {
+        public ProStockInfoDetail_HtyController(IProStockInfoDetail_HtyService service) : base(service)
+        {
+        }
+    }
+}
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/Stock/ProStockInfo_HtyController.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/Stock/ProStockInfo_HtyController.cs"
new file mode 100644
index 0000000..5a768cf
--- /dev/null
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/Stock/ProStockInfo_HtyController.cs"
@@ -0,0 +1,19 @@
+锘縰sing Microsoft.AspNetCore.Mvc;
+using WIDESEA_Core.BaseController;
+using WIDESEA_IStockService;
+using WIDESEA_Model.Models;
+
+namespace WIDESEA_WMSServer.Controllers.Stock
+{
+    /// <summary>
+    /// 鎴愬搧搴撳瓨鍘嗗彶
+    /// </summary>
+    [Route("api/ProStockInfo_Hty")]
+    [ApiController]
+    public class ProStockInfo_HtyController : ApiBaseController<IProStockInfo_HtyService, Dt_ProStockInfo_Hty>
+    {
+        public ProStockInfo_HtyController(IProStockInfo_HtyService service) : base(service)
+        {
+        }
+    }
+}
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Filter/CustomProfile.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Filter/CustomProfile.cs"
index f930f5e..bfcb11d 100644
--- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Filter/CustomProfile.cs"
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Filter/CustomProfile.cs"
@@ -6,8 +6,10 @@
 using System.Text;
 using System.Threading.Tasks;
 using WIDESEA_Common.OrderEnum;
+using WIDESEA_Common.StockEnum;
 using WIDESEA_Core.Helper;
 using WIDESEA_DTO;
+using WIDESEA_DTO.ERP;
 using WIDESEA_DTO.Inbound;
 using WIDESEA_DTO.MES;
 using WIDESEA_DTO.Outbound;
@@ -35,6 +37,8 @@
 
             CreateMap<Dt_Task, WMSTaskDTO>();
             CreateMap<MESBagDetail, Dt_MesProInOrderDetail>().ForMember(x => x.OverInQuantity, b => b.MapFrom(b => 0));
+            CreateMap<ErpProOutOrderDetailds, Dt_ProOutOrderDetail>().ForMember(x => x.ProOrderDetailStatus, b => b.MapFrom(b => 0)).ForMember(x => x.OverQtyPcs, b => b.MapFrom(b => 0));
+            CreateMap<Dt_MesProInOrderDetail, Dt_ProStockInfoDetail>().ForMember(x => x.ProOutDetailStatus, b => b.MapFrom(b => StockStatusEmun.缁勭洏鏆傚瓨.ObjToInt())).ForMember(x => x.OutboundQuantity, b => b.MapFrom(b => 0));
         }
     }
 }
diff --git "a/\351\241\271\347\233\256\350\265\204\346\226\231/\346\216\245\345\217\243\346\226\207\346\241\243/\346\267\256\345\256\211\347\211\271\345\210\233\347\247\221\346\212\200\346\231\272\350\203\275\345\210\266\351\200\240\351\241\271\347\233\256MES-WMS\346\216\245\345\217\243\350\247\204\350\214\203.xlsx" "b/\351\241\271\347\233\256\350\265\204\346\226\231/\346\216\245\345\217\243\346\226\207\346\241\243/\346\267\256\345\256\211\347\211\271\345\210\233\347\247\221\346\212\200\346\231\272\350\203\275\345\210\266\351\200\240\351\241\271\347\233\256MES-WMS\346\216\245\345\217\243\350\247\204\350\214\203.xlsx"
deleted file mode 100644
index d724d16..0000000
--- "a/\351\241\271\347\233\256\350\265\204\346\226\231/\346\216\245\345\217\243\346\226\207\346\241\243/\346\267\256\345\256\211\347\211\271\345\210\233\347\247\221\346\212\200\346\231\272\350\203\275\345\210\266\351\200\240\351\241\271\347\233\256MES-WMS\346\216\245\345\217\243\350\247\204\350\214\203.xlsx"
+++ /dev/null
Binary files differ

--
Gitblit v1.9.3