From 9ae0890dd74771ba9edd44d4830e0de37f8d9938 Mon Sep 17 00:00:00 2001
From: wangxinhui <wangxinhui@hnkhzn.com>
Date: 星期五, 26 九月 2025 16:55:03 +0800
Subject: [PATCH] MES接口优化,老厂排程优化等

---
 项目代码/WMS/WMSServices/WIDESEA_DTO/MES/MESProInDTO.cs                                       |  119 ++
 项目代码/WMS/WMSServices/WIDESEA_WMSServer/Controllers/ERP/ErpBSTController.cs                |   20 
 项目代码/WCS/WCSServices/WIDESEAWCS_Tasks/成品仓/ConveyorLineJob_CPB.cs                          |  149 +-
 项目代码/WMS/WMSServices/WIDESEA_Model/Models/Inbound/Dt_MESProInOrderInfo.cs                 |  139 ++
 项目代码/WMS/WMSServices/WIDESEA_Model/Models/Outbound/Dt_OutMESOrder.cs                      |   14 
 项目代码/WMS/WMSServices/WIDESEA_WMSServer/Filter/CustomProfile.cs                            |    5 
 项目代码/WMS/WMSServices/WIDESEA_IOutboundRepository/IOutSGOrderDetailRepository.cs           |   17 
 项目代码/WMS/WMSServices/WIDESEA_DTO/MES/MESOrderStopDTO.cs                                   |   27 
 项目代码/WMS/WMSServices/WIDESEA_TaskInfoService/MesTaskService.cs                            |   95 +
 项目代码/WMS/WMSServices/WIDESEA_ITaskInfoService/ITaskService.cs                             |   10 
 项目代码/WMS/WMSServices/WIDESEA_WMSServer/Controllers/MES/MesController.cs                   |   30 
 项目代码/WMS/WMSServices/WIDESEA_OutboundService/OutboundService.cs                           |   39 
 项目代码/WMS/WMSServices/WIDESEA_DTO/ERP/SGOutOrderDTO.cs                                     |   93 +
 项目代码/WCS/WCSServices/WIDESEAWCS_Tasks/成品仓/ConveyorLineJob_CPC.cs                          |    2 
 项目代码/WMS/WMSServices/WIDESEA_IOutboundService/IOutboundService.cs                         |   32 
 项目代码/WMS/WMSServices/WIDESEA_IOutboundService/IOutSGOrderService.cs                       |   23 
 项目代码/WMS/WMSClient/src/extension/outbound/outBSTOrder.js                                  |   33 
 项目代码/WMS/WMSServices/WIDESEA_WMSServer/Controllers/Outbound/OutSGOrderDetailController.cs |   19 
 项目代码/WMS/WMSServices/WIDESEA_IInboundRepository/IInboundRepository.cs                     |   36 
 项目代码/WMS/WMSServices/WIDESEA_InboundService/InboundService.cs                             |   29 
 项目代码/WMS/WMSServices/WIDESEA_OutboundService/OutSGOrderService.cs                         |   98 +
 项目代码/WMS/WMSServices/WIDESEA_DTO/MES/MESReturnIssueDTO.cs                                 |   90 +
 项目代码/WMS/WMSServices/WIDESEA_WMSServer/Controllers/Outbound/OutSGOrderController.cs       |   19 
 项目代码/WMS/WMSServices/WIDESEA_IInboundRepository/IMESProInOrderInfoRepository.cs           |   17 
 项目代码/WMS/WMSServices/WIDESEA_WMSServer/Controllers/Inbound/MESProInOrderInfoController.cs |   19 
 项目代码/WMS/WMSClient/src/extension/outbound/extend/outSGOrderDetail.vue                     |   85 
 项目代码/WCS/WCSServices/WIDESEAWCS_Server/Controllers/Task/TaskController.cs                 |   11 
 项目资料/接口协议/博斯通利拓接口.V2.xlsx                                                                 |    0 
 项目代码/WMS/WMSServices/WIDESEA_IOutboundService/IOutMESOrderService.cs                      |    2 
 项目代码/WCS/WCSServices/WIDESEAWCS_Server/appsettings.json                                   |    4 
 项目代码/WCS/WCSServices/WIDESEAWCS_Tasks/ConveyorLineJob/ConveyorLineTaskCommand.cs          |    1 
 项目代码/WMS/WMSClient/src/extension/outbound/outMESOrder.js                                  |    0 
 项目代码/WCS/WCSServices/WIDESEAWCS_Server/Controllers/AGV/AGVController.cs                   |    4 
 项目代码/WMS/WMSServices/WIDESEA_IInboundService/IMESProInOrderInfoService.cs                 |   26 
 项目代码/WMS/WMSServices/WIDESEA_OutboundRepository/OutboundRepository.cs                     |   27 
 项目代码/WCS/WCSServices/WIDESEAWCS_TaskInfoService/TaskService.cs                            |   69 -
 项目代码/WCS/WCSServices/WIDESEAWCS_Tasks/成品仓/ConveyorLineJob_CPH.cs                          |   51 
 项目代码/WMS/WMSClient/src/views/outbound/outSGOrder.vue                                      |  283 +++++
 项目代码/WMS/WMSServices/WIDESEA_DTO/MES/MESManualIssueDTO.cs                                 |   34 
 项目代码/WMS/WMSServices/WIDESEA_OutboundRepository/OutSGOrderRepository.cs                   |   21 
 项目代码/WMS/WMSServices/WIDESEA_OutboundService/OutMESOrderService.cs                        |   46 
 项目代码/WMS/WMSServices/WIDESEA_IInboundService/IInboundService.cs                           |   36 
 项目代码/WMS/WMSServices/WIDESEA_OutboundRepository/OutSGOrderDetailRepository.cs             |   21 
 项目代码/WCS/WCSServices/WIDESEAWCS_TaskInfoService/TaskService_Operate.cs                    |   10 
 项目代码/WMS/WMSClient/src/extension/outbound/outSGOrder.js                                   |    2 
 项目代码/WMS/WMSServices/WIDESEA_InboundService/MESProInOrderInfoService.cs                   |  130 ++
 项目资料/通信协议/伸缩货叉接驳台IP分配表.xlsx                                                               |    0 
 项目代码/WCS/WCSServices/WIDESEAWCS_Tasks/码垛/MDJob_CP.cs                                      |   14 
 项目代码/WMS/WMSServices/WIDESEA_IOutboundRepository/IOutSGOrderRepository.cs                 |   17 
 项目代码/WMS/WMSClient/src/views/outbound/outSGOrderDetail.vue                                |  221 ++++
 项目代码/WMS/WMSServices/WIDESEA_Model/Models/Outbound/Dt_OutSGOrderDetail.cs                 |  119 ++
 项目代码/WMS/WMSClient/src/extension/outbound/outSGOrderDetail.js                             |    1 
 项目代码/WMS/WMSServices/WIDESEA_OutboundService/OutSGOrderDetailService.cs                   |   38 
 项目资料/接口协议/博思通利拓接口.V1.xlsx                                                                 |    0 
 项目代码/WCS/WCSServices/WIDESEAWCS_Tasks/成品仓/ConveyorLineJob_CPA.cs                          |   36 
 项目代码/WMS/WMSClient/src/views/outbound/outMESOrder.vue                                     |    0 
 项目资料/接口协议/龙利得MES接口.xlsx                                                                   |    0 
 /dev/null                                                                                 |  278 -----
 项目代码/WMS/WMSServices/WIDESEA_IOutboundService/IOutSGOrderDetailService.cs                 |   16 
 项目代码/WMS/WMSServices/WIDESEA_InboundRepository/InboundRepository.cs                       |   29 
 项目代码/WMS/WMSServices/WIDESEA_Model/Models/Outbound/Dt_OutSGOrder.cs                       |   75 +
 项目代码/WMS/WMSServices/WIDESEA_IOutboundRepository/IOutboundRepository.cs                   |   32 
 项目代码/WMS/WMSServices/WIDESEA_DTO/MES/OutMESOrderDTO.cs                                    |    2 
 项目代码/WMS/WMSServices/WIDESEA_InboundRepository/MESProInOrderInfoRepository.cs             |   21 
 项目代码/WMS/WMSClient/src/extension/outbound/extend/SelectedStock.vue                        |    2 
 项目代码/WMS/WMSClient/src/router/viewGird.js                                                 |   45 
 项目代码/WCS/WCSServices/WIDESEAWCS_ITaskInfoService/ITaskService.cs                          |    7 
 67 files changed, 2,362 insertions(+), 628 deletions(-)

diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WCSServices/WIDESEAWCS_ITaskInfoService/ITaskService.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WCSServices/WIDESEAWCS_ITaskInfoService/ITaskService.cs"
index 192bf13..fba8617 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WCSServices/WIDESEAWCS_ITaskInfoService/ITaskService.cs"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WCSServices/WIDESEAWCS_ITaskInfoService/ITaskService.cs"
@@ -208,13 +208,6 @@
         AgvResponseContent AgvUpdateTask(AgvUpdateDTO agvUpdateModel);
 
         /// <summary>
-        /// 
-        /// </summary>
-        /// <param name="taskNum"></param>
-        /// <returns></returns>
-        WebResponseContent SendSecureReplyToAgv(int taskNum);
-
-        /// <summary>
         /// 鏇存柊浠诲姟淇℃伅鍙婃坊鍔犱换鍔℃槑缁嗚褰�
         /// </summary>
         /// <param name="task">浠诲姟鍘熷璞″疄渚�(鏈慨鏀圭殑鏁版嵁瀵硅薄)</param>
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WCSServices/WIDESEAWCS_Server/Controllers/AGV/AGVController.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WCSServices/WIDESEAWCS_Server/Controllers/AGV/AGVController.cs"
index 104266a..8073876 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WCSServices/WIDESEAWCS_Server/Controllers/AGV/AGVController.cs"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WCSServices/WIDESEAWCS_Server/Controllers/AGV/AGVController.cs"
@@ -55,10 +55,6 @@
             AgvResponse agvResponse = new AgvResponse();
             try
             {
-                if (secureApplyModel.ReceiveTaskID=="100")
-                {
-                    return agvResponse.OK("鎴愬姛", "0");
-                }
                 var task = _taskRepository.QueryFirst(x => secureApplyModel.ReceiveTaskID.ObjToInt() == x.TaskNum);
                 if (task == null) throw new Exception("鏈壘鍒颁换鍔�");
                 if (task.TaskType.GetTaskTypeGroup() == TaskTypeGroup.OutbondGroup)
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WCSServices/WIDESEAWCS_Server/Controllers/Task/TaskController.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WCSServices/WIDESEAWCS_Server/Controllers/Task/TaskController.cs"
index 18a0ec3..dcc5eef 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WCSServices/WIDESEAWCS_Server/Controllers/Task/TaskController.cs"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WCSServices/WIDESEAWCS_Server/Controllers/Task/TaskController.cs"
@@ -64,17 +64,6 @@
             return Service.RollbackTaskStatusToLast(taskNum);
         }
 
-        /// <summary>
-        /// 鍥炲AGV瀹夊叏淇″彿
-        /// </summary>
-        /// <param name="taskNum"></param>
-        /// <returns></returns>
-        [HttpPost, HttpGet, Route("SendSecureReplyToAgv")]
-        public WebResponseContent SendSecureReplyToAgv(int taskNum)
-        {
-            return Service.SendSecureReplyToAgv(taskNum);
-        }
-
         [HttpPost, HttpGet, Route("GetRouteEndPoint"), AllowAnonymous]
         public WebResponseContent GetRouteEndPoint(string startPoint, int routeType)
         {
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WCSServices/WIDESEAWCS_Server/appsettings.json" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WCSServices/WIDESEAWCS_Server/appsettings.json"
index 18b5d76..bb98b45 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WCSServices/WIDESEAWCS_Server/appsettings.json"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WCSServices/WIDESEAWCS_Server/appsettings.json"
@@ -14,10 +14,10 @@
   //杩炴帴瀛楃涓�
   //"ConnectionString": "HTI6FB1H05Krd07mNm9yBCNhofW6edA5zLs9TY~MNthRYW3kn0qKbMIsGp~3yyPDF1YZUCPBQx8U0Jfk4PH~ajNFXVIwlH85M3F~v_qKYQ3CeAz3q1mLVDn8O5uWt1~3Ut2V3KRkEwYHvW2oMDN~QIDXPxDgXN0R2oTIhc9dNu7QNaLEknblqmHhjaNSSpERdDVZIgHnMKejU_SL49tralBkZmDNi0hmkbL~837j1NWe37u9fJKmv91QPb~16JsuI9uu0EvNZ06g6PuZfOSAeFH9GMMIZiketdcJG3tHelo=",
   //"ConnectionString": "Data Source=.;Initial Catalog=WIDESEA_WCSLLD;User ID=sa;Password=123456;Integrated Security=False;Connect Timeout=30;Encrypt=False;TrustServerCertificate=False;ApplicationIntent=ReadWrite;MultiSubnetFailover=False",
-  "ConnectionString": "Data Source=.;Initial Catalog=WIDESEA_WCSLLD;User ID=sa;Password=P@ssw0rd;Integrated Security=False;Connect Timeout=30;Encrypt=False;TrustServerCertificate=False;ApplicationIntent=ReadWrite;MultiSubnetFailover=False",
+  "ConnectionString": "Data Source=192.168.35.3;Initial Catalog=WIDESEA_WCSLLD;User ID=sa;Password=Sa123456;Integrated Security=False;Connect Timeout=30;Encrypt=False;TrustServerCertificate=False;ApplicationIntent=ReadWrite;MultiSubnetFailover=False",
   //"ConnectionString": "Data Source=192.168.35.3;Initial Catalog=TestWCS_TC;User ID=sa;Password=Sa123456;Integrated Security=False;Connect Timeout=30;Encrypt=False;TrustServerCertificate=False;ApplicationIntent=ReadWrite;MultiSubnetFailover=False",
   //"ConnectionString": "Data Source=10.30.4.92;Initial Catalog=TESTWCSCP_WCS;User ID=sa;Password=duo123456;Integrated Security=False;Connect Timeout=30;Encrypt=False;TrustServerCertificate=False;ApplicationIntent=ReadWrite;MultiSubnetFailover=False",
-  "WMSConnectionStrings": "Data Source=.;Initial Catalog=WIDESEA_WMSLLD;User ID=sa;Password=P@ssw0rd;Integrated Security=False;Connect Timeout=30;Encrypt=False;TrustServerCertificate=False;ApplicationIntent=ReadWrite;MultiSubnetFailover=False",
+  "WMSConnectionStrings": "Data Source=192.168.35.3;Initial Catalog=WIDESEA_WMSLLD;User ID=sa;Password=Sa123456;Integrated Security=False;Connect Timeout=30;Encrypt=False;TrustServerCertificate=False;ApplicationIntent=ReadWrite;MultiSubnetFailover=False",
   //"WMSConnectionStrings": "Data Source=.;Initial Catalog=WIDESEA_WMSLLD;User ID=sa;Password=123456;Integrated Security=False;Connect Timeout=30;Encrypt=False;TrustServerCertificate=False;ApplicationIntent=ReadWrite;MultiSubnetFailover=False",
   //"WMSConnectionStrings": "Data Source=10.30.4.92;Initial Catalog=WIDESEAWMS_HUAIAN;User ID=sa;Password=123456;Integrated Security=False;Connect Timeout=30;Encrypt=False;TrustServerCertificate=False;ApplicationIntent=ReadWrite;MultiSubnetFailover=False",
   //璺ㄥ煙
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WCSServices/WIDESEAWCS_TaskInfoService/TaskService.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WCSServices/WIDESEAWCS_TaskInfoService/TaskService.cs"
index 223bdad..7b7782f 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WCSServices/WIDESEAWCS_TaskInfoService/TaskService.cs"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WCSServices/WIDESEAWCS_TaskInfoService/TaskService.cs"
@@ -100,7 +100,9 @@
                 }
             }
         }
-
+        /// <summary>
+        /// 浠诲姟瀹屾垚
+        /// </summary>
         public WebResponseContent TaskCompleted(int taskNum)
         {
             try
@@ -482,41 +484,6 @@
             }
             return content;
         }
-        /// <summary>
-        /// 
-        /// </summary>
-        /// <param name="palletCode"></param>
-        /// <param name="sourceAddress"></param>
-        /// <param name="roadway"></param>
-        /// <returns></returns>
-        //public WebResponseContent RequestWMSTask(string palletCode, string sourceAddress, string roadway)
-        //{
-        //    WebResponseContent content = new WebResponseContent();
-        //    try
-        //    {
-        //        string address = AppSettings.Get("WMSApiAddress");
-        //        if (string.IsNullOrEmpty(address))
-        //        {
-        //            return WebResponseContent.Instance.Error($"鏈壘鍒癢MSApi鍦板潃");
-        //        }
-        //        string responseStr = HttpHelper.Get($"{address}/api/Task/DeviceRequestInboundTask?stationCode={sourceAddress}&roadwayNo={roadway}&palletCode={palletCode}");
-        //        WebResponseContent? responseContent = JsonConvert.DeserializeObject<WebResponseContent>(responseStr);
-        //        if (responseContent != null && responseContent.Status && responseContent.Data != null)
-        //        {
-        //            WMSTaskDTO? taskDTO = JsonConvert.DeserializeObject<WMSTaskDTO>(responseContent.Data.ToString());
-        //            if (taskDTO != null)
-        //            {
-        //                content = ReceiveWMSTask(new List<WMSTaskDTO> { taskDTO });
-        //            }
-        //        }
-
-        //    }
-        //    catch (Exception ex)
-        //    {
-        //        content = WebResponseContent.Instance.Error(ex.Message);
-        //    }
-        //    return content;
-        //}
 
         /// <summary>
         /// 鍚慦MS鐢宠鍒嗛厤璐т綅
@@ -723,35 +690,7 @@
             return content;
         }
 
-        public WebResponseContent SendSecureReplyToAgv(int taskNum)
-        {
-            try
-            {
-                Dt_Task WaitToTask = BaseDal.QueryFirst(x => x.TaskState == TaskStatusEnum.AGV_WaitToExecute.ObjToInt() && x.TaskNum == taskNum);
-                AgvSecureReplyDTO replyDTO = new AgvSecureReplyDTO()
-                {
-                    ReqCode = Guid.NewGuid().ToString().Replace("-", ""), //WaitToTask.TaskNum.ToString(),
-                    taskCode = WaitToTask.AgvTaskNum,
-                };
-                WebResponseContent content = AgvSecureReply(replyDTO);
-                if (content.Status)
-                {
-                    WaitToTask.TaskState = TaskStatusEnum.AGV_Executing.ObjToInt();
-                }
-                else
-                {
-                    WaitToTask.TaskState = TaskStatusEnum.Exception.ObjToInt();
-                    WaitToTask.ExceptionMessage = content.Message;
-                }
-                UpdateData(WaitToTask);
-
-                return WebResponseContent.Instance.OK();
-            }
-            catch (Exception ex)
-            {
-                return WebResponseContent.Instance.Error(ex.Message);
-            }
-        }
+        
         /// <summary>
         /// //鍒ゆ柇绉诲簱璐т綅浠诲姟鏄惁宸插瓨鍦紝濡傚瓨鍦ㄥ厛鎵ц
         /// </summary>
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WCSServices/WIDESEAWCS_TaskInfoService/TaskService_Operate.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WCSServices/WIDESEAWCS_TaskInfoService/TaskService_Operate.cs"
index 9e80cd0..f4209fe 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WCSServices/WIDESEAWCS_TaskInfoService/TaskService_Operate.cs"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WCSServices/WIDESEAWCS_TaskInfoService/TaskService_Operate.cs"
@@ -99,11 +99,11 @@
 
             BaseDal.UpdateData(task);
             //鍚屾鍒癢MS
-            string address = AppSettings.Get("WMSApiAddress");
-            if (!string.IsNullOrEmpty(address))
-            {
-                HttpHelper.Post($"{address}/api/Task/UpdateTaskInfo", task.Serialize());
-            }
+            //string address = AppSettings.Get("WMSApiAddress");
+            //if (!string.IsNullOrEmpty(address))
+            //{
+            //    HttpHelper.Post($"{address}/api/Task/UpdateTaskInfo", task.Serialize());
+            //}
             _taskExecuteDetailService.AddTaskExecuteDetail(task.TaskNum, stringBuilder.ToString());
         }
     }
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WCSServices/WIDESEAWCS_Tasks/ConveyorLineJob/ConveyorLineTaskCommand.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WCSServices/WIDESEAWCS_Tasks/ConveyorLineJob/ConveyorLineTaskCommand.cs"
index 39b5e8c..992fc25 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WCSServices/WIDESEAWCS_Tasks/ConveyorLineJob/ConveyorLineTaskCommand.cs"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WCSServices/WIDESEAWCS_Tasks/ConveyorLineJob/ConveyorLineTaskCommand.cs"
@@ -97,6 +97,7 @@
         ///7锛氱敵璇锋枡妗�
         ///8锛氭枡妗嗗埌浣�
         ///9锛氭墽琛屽懡浠や腑
+        ///10锛氱┖鐩樺噯澶�
         ///11锛氭弧鐩樺噯澶�
         /// </summary>
         public short Command { get; set; }
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WCSServices/WIDESEAWCS_Tasks/\346\210\220\345\223\201\344\273\223/ConveyorLineJob_CPA.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WCSServices/WIDESEAWCS_Tasks/\346\210\220\345\223\201\344\273\223/ConveyorLineJob_CPA.cs"
index 72c964a..a6e1576 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WCSServices/WIDESEAWCS_Tasks/\346\210\220\345\223\201\344\273\223/ConveyorLineJob_CPA.cs"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WCSServices/WIDESEAWCS_Tasks/\346\210\220\345\223\201\344\273\223/ConveyorLineJob_CPA.cs"
@@ -68,7 +68,7 @@
                 OtherDevice device = (OtherDevice)value;
                 List<string> deviceStations = device.DeviceProDTOs.Select(x => x.DeviceChildCode).ToList();
                 //鑾峰彇鏈夊崗璁殑杈撻�佺嚎
-                List<Dt_StationManger> stationMangers = _stationMangerRepository.QueryData(x => x.StationDeviceCode == device.DeviceCode);
+                List<Dt_StationManger> stationMangers = _stationMangerRepository.QueryData();
                 foreach (var item in stationMangers.Where(x => deviceStations.Contains(x.StationCode)))
                 {
                     DeviceProDTO? deviceProRead = device.DeviceProDTOs.Where(x => x.DeviceChildCode == item.StationCode && x.DeviceProParamType == nameof(R_ConveyorLineCPDB)).OrderBy(x => x.DeviceProOffset).FirstOrDefault();
@@ -82,16 +82,32 @@
                             Dt_Task task = _taskRepository.QueryFirst(x => x.TaskNum == conveyorLineInfoRead.TaskNo && x.NextAddress == item.StationCode && _taskService.TaskInboundTypes.Contains(x.TaskType) && x.TaskState == TaskStatusEnum.Line_Executing.ObjToInt() && x.DeviceCode == device.DeviceCode);
                             if (task != null)
                             {
-                                //鍒嗛厤璐т綅
-                                string? local = "SC01_CP-002-064-008-01";
-                                if (!string.IsNullOrEmpty(local))
+                                Dt_StationManger stationManger = stationMangers.FirstOrDefault(x => x.StationCode == task.SourceAddress);
+                                if (stationManger != null)
                                 {
-                                    task.CurrentAddress = item.StackerCraneStationCode;
-                                    task.TargetAddress = local;
-                                    task.NextAddress = local;
-                                    task.DeviceCode = item.StackerCraneCode;
-                                    _taskService.UpdateTask(task, TaskStatusEnum.SC_Execute);
-                                    WriteInfo(item.StationName, $"浠诲姟鍙�:{task.TaskNum}杩涜鍫嗗灈鏈哄叆搴�");
+                                    string? local = "";
+                                    switch (stationManger.AGVStationCode.ObjToInt() % 2)
+                                    {
+                                        case 1:
+                                            local = task.Roadway + "-001-062-001-01";
+                                            break;
+                                        case 0:
+                                            local = task.Roadway + "-002-062-001-01";
+                                            break;
+                                        default:
+                                            WriteError(item.StationName, $"鏈壘鍒板彲鍒嗛厤宸烽亾{task.TaskNum}");
+                                            break;
+                                    }
+                                    //鍒嗛厤璐т綅
+                                    if (!string.IsNullOrEmpty(local))
+                                    {
+                                        task.CurrentAddress = item.StackerCraneStationCode;
+                                        task.TargetAddress = local;
+                                        task.NextAddress = local;
+                                        task.DeviceCode = item.StackerCraneCode;
+                                        _taskService.UpdateTask(task, TaskStatusEnum.SC_Execute);
+                                        WriteInfo(item.StationName, $"浠诲姟鍙�:{task.TaskNum}杩涜鍫嗗灈鏈哄叆搴�");
+                                    }
                                 }
                             }
                         }
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WCSServices/WIDESEAWCS_Tasks/\346\210\220\345\223\201\344\273\223/ConveyorLineJob_CPB.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WCSServices/WIDESEAWCS_Tasks/\346\210\220\345\223\201\344\273\223/ConveyorLineJob_CPB.cs"
index 9b27ab8..7249c07 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WCSServices/WIDESEAWCS_Tasks/\346\210\220\345\223\201\344\273\223/ConveyorLineJob_CPB.cs"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WCSServices/WIDESEAWCS_Tasks/\346\210\220\345\223\201\344\273\223/ConveyorLineJob_CPB.cs"
@@ -68,7 +68,7 @@
             {
                 OtherDevice device = (OtherDevice)value;
                 List<string> deviceStations = device.DeviceProDTOs.Select(x => x.DeviceChildCode).Distinct().ToList();
-                List<Dt_StationManger> stationMangers = _stationMangerRepository.QueryData(x => x.StationDeviceCode == device.DeviceCode);
+                List<Dt_StationManger> stationMangers = _stationMangerRepository.QueryData();
                 foreach (var item in stationMangers.Where(x => deviceStations.Contains(x.StationCode)))
                 {
                     DeviceProDTO? deviceProRead = device.DeviceProDTOs.Where(x => x.DeviceChildCode == item.StationCode && x.DeviceProParamType == nameof(R_ConveyorLineCPDB)).OrderBy(x => x.DeviceProOffset).FirstOrDefault();
@@ -87,36 +87,65 @@
                                 //string roadWay = _taskService.AssignCPRoadwayNo().Data.ToString();
                                 //if (!string.IsNullOrEmpty(roadWay))
                                 //{
-                                    List<Dt_Router> routers = _routerService.QueryNextRoutes(item.StationCode, "SC01_CP", task.TaskType);
-                                    Dt_Router? router = routers.FirstOrDefault();
-                                    if (routers == null || routers.Count == 0 || router == null)
-                                    {
-                                        WriteError(item.StationName, $"鏈壘鍒板搴旇矾鐢变俊鎭�,璁惧缂栧彿:{item.StationCode},浠诲姟鍙�:{task.TaskNum}");
-                                        continue;
-                                    }
-                                    if (routers.Count > 1)
-                                    {
-                                        WriteError(item.StationName, $"璺敱淇℃伅閰嶇疆閿欒,璁惧缂栧彿:{item.StationCode},浠诲姟鍙�:{task.TaskNum}");
-                                        continue;
-                                    }
-                                    device.SetValue(W_ConveyorLineCPDB.W_TargetAddress, router.NextPosi, item.StationCode);
-                                    device.SetValue(W_ConveyorLineCPDB.W_TaskNo, task.TaskNum, item.StationCode);
-                                    device.SetValue(W_ConveyorLineCPDB.W_Command, 1, item.StationCode);
-                                    task.CurrentAddress = item.StationCode;
-                                    task.NextAddress = router.NextPosi;
-                                    task.PalletCode = DateTime.Now.ToString("yyMMddHHmmss");//todo涓存椂
-                                    task.Roadway = "SC01_CP";
-                                    task.DeviceCode = router.ChildPosiDeviceCode;
-                                    _taskService.UpdateTask(task, TaskStatusEnum.Line_Executing);
-                                    WriteInfo(item.StationName, $"浠诲姟鍙穥conveyorLineInfoRead.TaskNo}涓嬩竴姝�");
+
                                 //}
+                                Dt_StationManger stationManger = stationMangers.FirstOrDefault(x=>x.StationCode== task.SourceAddress);
+                                if (stationManger != null)
+                                {
+                                    string roadWay = "";
+                                    switch (stationManger.AGVStationCode.ObjToInt() % 5)
+                                    {
+                                        case 1:
+                                            roadWay = "SC01_CP";
+                                            break;
+                                        case 2:
+                                            roadWay = "SC02_CP";
+                                            break;
+                                        case 3:
+                                            roadWay = "SC03_CP";
+                                            break;
+                                        case 4:
+                                            roadWay = "SC04_CP";
+                                            break;
+                                        case 0:
+                                            roadWay = "SC05_CP";
+                                            break;
+                                        default:
+                                            WriteError(item.StationName, $"鏈壘鍒板彲鍒嗛厤宸烽亾{task.TaskNum}");
+                                            break;
+                                    }
+                                    if (!string.IsNullOrEmpty(roadWay))
+                                    {
+                                        List<Dt_Router> routers = _routerService.QueryNextRoutes(item.StationCode, roadWay, task.TaskType);
+                                        Dt_Router? router = routers.FirstOrDefault();
+                                        if (routers == null || routers.Count == 0 || router == null)
+                                        {
+                                            WriteError(item.StationName, $"鏈壘鍒板搴旇矾鐢变俊鎭�,璁惧缂栧彿:{item.StationCode},浠诲姟鍙�:{task.TaskNum}");
+                                            continue;
+                                        }
+                                        if (routers.Count > 1)
+                                        {
+                                            WriteError(item.StationName, $"璺敱淇℃伅閰嶇疆閿欒,璁惧缂栧彿:{item.StationCode},浠诲姟鍙�:{task.TaskNum}");
+                                            continue;
+                                        }
+                                        device.SetValue(W_ConveyorLineCPDB.W_TargetAddress, router.NextPosi, item.StationCode);
+                                        device.SetValue(W_ConveyorLineCPDB.W_TaskNo, task.TaskNum, item.StationCode);
+                                        device.SetValue(W_ConveyorLineCPDB.W_Command, 1, item.StationCode);
+                                        task.CurrentAddress = item.StationCode;
+                                        task.NextAddress = router.NextPosi;
+                                        task.PalletCode = DateTime.Now.ToString("yyMMddHHmmss");//todo涓存椂
+                                        task.Roadway = roadWay;
+                                        task.DeviceCode = router.ChildPosiDeviceCode;
+                                        _taskService.UpdateTask(task, TaskStatusEnum.Line_Executing);
+                                        WriteInfo(item.StationName, $"浠诲姟鍙穥conveyorLineInfoRead.TaskNo}涓嬩竴姝�");
+                                    }
+                                }
                             }
                         }
                     }
                     else if (item.StationType == StationTypeEnum.StationType_InboundAndOutbound.ObjToInt() && deviceProRead != null)
-                    {
+                    {//鍏ュ簱RGV鎺ラ┏浣嶄氦浜�
                         R_ConveyorLineCPInfo conveyorLineInfoRead = device.Communicator.ReadCustomer<R_ConveyorLineCPInfo>(deviceProRead.DeviceProAddress);
-                        //鍏ュ簱RGV鎺ラ┏浣嶄氦浜�
                         if (conveyorLineInfoRead != null && conveyorLineInfoRead.Command == 4 && conveyorLineInfoRead.TaskNo > 0)
                         {
                             Dt_Task task = _taskRepository.QueryFirst(x => x.TaskNum == conveyorLineInfoRead.TaskNo && x.CurrentAddress == item.StationCode && _taskService.TaskInboundTypes.Contains(x.TaskType) && x.TaskState == TaskStatusEnum.Line_Execute.ObjToInt() && x.DeviceCode == device.DeviceCode);
@@ -145,41 +174,41 @@
                     {//鍙犵洏鏈哄伐浣嶅彨鏂�
                         R_ConveyorLineCPInfo conveyorLineInfoRead = device.Communicator.ReadCustomer<R_ConveyorLineCPInfo>(deviceProRead.DeviceProAddress);
                         
-                        if (conveyorLineInfoRead != null && conveyorLineInfoRead.Command == 7 && conveyorLineInfoRead.TaskNo <= 0)
-                        {
-                            Dt_Task task = _taskRepository.QueryFirst(x =>  x.TargetAddress == item.StationCode && _taskService.TaskOutboundTypes.Contains(x.TaskType));
-                            if (task == null)
-                            {
-                                //璇锋眰浠诲姟
-                                WMSTaskDTO taskDTO = new WMSTaskDTO()
-                                {
-                                    Id = 1,
-                                    SourceAddress = "SC02_CP-001-064-001-01",
-                                    TaskNum = DateTime.Now.ToString("mmss").ObjToInt(),
-                                    PalletCode = "" + DateTime.Now.ToString("mmss"),
-                                    RoadWay = "SC02_CP",
-                                    TaskType = 160,
-                                    TaskStatus = TaskStatusEnum.New.ObjToInt(),
-                                    TargetAddress = item.StationCode,
-                                    Grade = 0,
-                                    WarehouseId = 1,
-                                    PalletType = 1
-                                };
-                                WriteInfo(item.StationName, $"浠诲姟鍙穥conveyorLineInfoRead.TaskNo}鐢熸垚锛屼笅涓�姝�");
-                                _taskService.ReceiveWMSTask(new List<WMSTaskDTO> { taskDTO });
-                            }
-                        }
-                        //鍙犵洏浠诲姟瀹屾垚浜や簰
-                        else if (conveyorLineInfoRead != null && conveyorLineInfoRead.Command == 8 && conveyorLineInfoRead.TaskNo > 0)
-                        {
-                            Dt_Task task = _taskRepository.QueryFirst(x => x.TaskNum == conveyorLineInfoRead.TaskNo && x.TaskState == TaskStatusEnum.Line_Executing.ObjToInt() && x.DeviceCode == device.DeviceCode);
-                            if (task != null)
-                            {
-                                //浠诲姟瀹屾垚
-                                device.SetValue(W_ConveyorLineCPDB.W_Command, 2, item.StationCode);
-                                WriteInfo(item.StationName, $"浠诲姟鍙穥conveyorLineInfoRead.TaskNo}鍙犵洏浣嶅嚭搴撳畬鎴�");
-                            }
-                        }
+                        //if (conveyorLineInfoRead != null && conveyorLineInfoRead.Command == 7 && conveyorLineInfoRead.TaskNo <= 0)
+                        //{
+                        //    Dt_Task task = _taskRepository.QueryFirst(x =>  x.TargetAddress == item.StationCode && _taskService.TaskOutboundTypes.Contains(x.TaskType));
+                        //    if (task == null)
+                        //    {
+                        //        //璇锋眰浠诲姟
+                        //        WMSTaskDTO taskDTO = new WMSTaskDTO()
+                        //        {
+                        //            Id = 1,
+                        //            SourceAddress = "SC02_CP-001-064-001-01",
+                        //            TaskNum = DateTime.Now.ToString("mmss").ObjToInt(),
+                        //            PalletCode = "" + DateTime.Now.ToString("mmss"),
+                        //            RoadWay = "SC02_CP",
+                        //            TaskType = 160,
+                        //            TaskStatus = TaskStatusEnum.New.ObjToInt(),
+                        //            TargetAddress = item.StationCode,
+                        //            Grade = 0,
+                        //            WarehouseId = 1,
+                        //            PalletType = 1
+                        //        };
+                        //        WriteInfo(item.StationName, $"浠诲姟鍙穥conveyorLineInfoRead.TaskNo}鐢熸垚锛屼笅涓�姝�");
+                        //        _taskService.ReceiveWMSTask(new List<WMSTaskDTO> { taskDTO });
+                        //    }
+                        //}
+                        ////鍙犵洏浠诲姟瀹屾垚浜や簰
+                        //else if (conveyorLineInfoRead != null && conveyorLineInfoRead.Command == 8 && conveyorLineInfoRead.TaskNo > 0)
+                        //{
+                        //    Dt_Task task = _taskRepository.QueryFirst(x => x.TaskNum == conveyorLineInfoRead.TaskNo && x.TaskState == TaskStatusEnum.Line_Executing.ObjToInt() && x.DeviceCode == device.DeviceCode);
+                        //    if (task != null)
+                        //    {
+                        //        //浠诲姟瀹屾垚
+                        //        device.SetValue(W_ConveyorLineCPDB.W_Command, 2, item.StationCode);
+                        //        WriteInfo(item.StationName, $"浠诲姟鍙穥conveyorLineInfoRead.TaskNo}鍙犵洏浣嶅嚭搴撳畬鎴�");
+                        //    }
+                        //}
                     }
                     else
                     {
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WCSServices/WIDESEAWCS_Tasks/\346\210\220\345\223\201\344\273\223/ConveyorLineJob_CPC.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WCSServices/WIDESEAWCS_Tasks/\346\210\220\345\223\201\344\273\223/ConveyorLineJob_CPC.cs"
index a662580..5ae08f3 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WCSServices/WIDESEAWCS_Tasks/\346\210\220\345\223\201\344\273\223/ConveyorLineJob_CPC.cs"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WCSServices/WIDESEAWCS_Tasks/\346\210\220\345\223\201\344\273\223/ConveyorLineJob_CPC.cs"
@@ -82,7 +82,7 @@
                             if (task == null)
                             {
                                 //鑾峰彇绔欏彴鐢熸垚浠诲姟
-                                WebResponseContent content = _taskService.RequestWMSTaskSimple("", item.StationCode,taskType:TaskTypeEnum.InProduct.ObjToInt());
+                                WebResponseContent content = _taskService.RequestWMSTaskSimple(DateTime.Now.ToString("yyyyMMddHHmmss"), item.StationCode,taskType:TaskTypeEnum.InProduct.ObjToInt());
                                 if (content.Status)
                                 {
                                     Dt_Task taskNew = _taskRepository.QueryFirst(x => x.SourceAddress == item.StationCode && _taskService.TaskInboundTypes.Contains(x.TaskType) && (x.TaskState == TaskStatusEnum.New.ObjToInt()));
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WCSServices/WIDESEAWCS_Tasks/\346\210\220\345\223\201\344\273\223/ConveyorLineJob_CPH.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WCSServices/WIDESEAWCS_Tasks/\346\210\220\345\223\201\344\273\223/ConveyorLineJob_CPH.cs"
index bdf7663..a23ee93 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WCSServices/WIDESEAWCS_Tasks/\346\210\220\345\223\201\344\273\223/ConveyorLineJob_CPH.cs"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WCSServices/WIDESEAWCS_Tasks/\346\210\220\345\223\201\344\273\223/ConveyorLineJob_CPH.cs"
@@ -82,13 +82,13 @@
                                 {
                                     //鑾峰彇褰撳墠璁惧
                                     OtherDevice device = (OtherDevice)value;
-                                    List<string> deviceStations = device.DeviceProDTOs.Select(x => x.DeviceChildCode).Distinct().ToList();
                                     List<Dt_StationManger> stationMangers = _stationMangerRepository.QueryData(x => x.StationDeviceCode == device.DeviceCode);
-                                    foreach (var item in stationMangers.Where(x => deviceStations.Contains(x.StationCode)))
+                                    Dt_StationManger? RequestIn = stationMangers.FirstOrDefault(x => x.StationType == StationTypeEnum.StationType_OnlyInbound.ObjToInt());
+                                    if (RequestIn != null)
                                     {
-                                        DeviceProDTO? deviceProRead = device.DeviceProDTOs.Where(x => x.DeviceChildCode == item.StationCode && x.DeviceProParamType == nameof(R_CLineCPHDB)).OrderBy(x => x.DeviceProOffset).FirstOrDefault();
-                                        DeviceProDTO? deviceProWrite = device.DeviceProDTOs.Where(x => x.DeviceChildCode == item.StationCode && x.DeviceProParamType == nameof(W_CLineCPHDB)).OrderBy(x => x.DeviceProOffset).FirstOrDefault();
-                                        if (item.StationType == StationTypeEnum.StationType_OnlyInbound.ObjToInt() && deviceProRead != null && deviceProWrite != null)
+                                        DeviceProDTO? deviceProRead = device.DeviceProDTOs.Where(x => x.DeviceChildCode == RequestIn.StationCode && x.DeviceProParamType == nameof(R_CLineCPHDB)).OrderBy(x => x.DeviceProOffset).FirstOrDefault();
+                                        DeviceProDTO? deviceProWrite = device.DeviceProDTOs.Where(x => x.DeviceChildCode == RequestIn.StationCode && x.DeviceProParamType == nameof(W_CLineCPHDB)).OrderBy(x => x.DeviceProOffset).FirstOrDefault();
+                                        if (deviceProRead != null && deviceProWrite != null)
                                         {
                                             R_CLineCPHInfo conveyorLineInfoRead = device.Communicator.ReadCustomer<R_CLineCPHInfo>(deviceProRead.DeviceProAddress);
                                             //鐮佸灈鐜嚎璇锋眰浠诲姟 
@@ -100,18 +100,34 @@
                                                 //{
 
                                                 //}
-                                                //鍐欏叆鎵ц鏁版嵁
-                                                device.SetValue(W_CLineCPHDB.W_TaskNo, 1002, item.StationCode);
-                                                device.SetValue(W_CLineCPHDB.W_Channel, 5, item.StationCode);
-                                                device.SetValue(W_CLineCPHDB.W_Long, 400, item.StationCode);
-                                                device.SetValue(W_CLineCPHDB.W_Wide, 370, item.StationCode);
-                                                device.SetValue(W_CLineCPHDB.W_High, 300, item.StationCode);
-                                                device.SetValue(W_CLineCPHDB.W_TMID, conveyorLineInfoRead.R_BoxCode, item.StationCode);
-                                                device.SetValue(W_CLineCPHDB.W_Request, 1, item.StationCode);
+                                                string[] strings = conveyorLineInfoRead.R_BoxCode.Split("-");
+                                                if (strings.Length==2)
+                                                {
+                                                    //鍐欏叆鎵ц鏁版嵁
+                                                    device.SetValue(W_CLineCPHDB.W_TaskNo, 100 + strings[1].ObjToInt(), RequestIn.StationCode);
+                                                    device.SetValue(W_CLineCPHDB.W_Channel, strings[1].ObjToInt(), RequestIn.StationCode);
 
+                                                    device.SetValue(W_CLineCPHDB.W_Long, 425, RequestIn.StationCode);
+                                                    device.SetValue(W_CLineCPHDB.W_Wide, 325, RequestIn.StationCode);
+                                                    device.SetValue(W_CLineCPHDB.W_High, 400, RequestIn.StationCode);
+                                                    device.SetValue(W_CLineCPHDB.W_TMID, conveyorLineInfoRead.R_BoxCode, RequestIn.StationCode);
+                                                    device.SetValue(W_CLineCPHDB.W_Request, 1, RequestIn.StationCode);
+                                                }
+                                                else
+                                                {
+                                                    WriteError(RequestIn.StationName, $"鏁版嵁鎴彇閿欒锛歿strings}");
+                                                }
                                             }
                                         }
-                                        else if (item.StationType == StationTypeEnum.StationType_OnlyOutbound.ObjToInt() && deviceProRead != null)
+                                        else
+                                        {
+                                            WriteError(RequestIn.StationName, $"鏈壘鍒拌澶囧瓙缂栧彿{RequestIn.StationCode}鐨勫崗璁俊鎭�");
+                                        }
+                                    }
+                                    foreach (var item in stationMangers.Where(x=>x.StationType==StationTypeEnum.StationType_OnlyOutbound.ObjToInt()))
+                                    {
+                                        DeviceProDTO? deviceProRead = device.DeviceProDTOs.Where(x => x.DeviceChildCode == item.StationCode && x.DeviceProParamType == nameof(R_CLineCPHDB)).OrderBy(x => x.DeviceProOffset).FirstOrDefault();
+                                        if (deviceProRead != null)
                                         {
                                             R_CLineCPHInfo conveyorLineInfoRead = device.Communicator.ReadCustomer<R_CLineCPHInfo>(deviceProRead.DeviceProAddress);
                                             //鑾峰彇鐮佸灈鍙d换鍔℃洿鏂颁换鍔$姸鎬�
@@ -127,14 +143,9 @@
                                                 }
                                             }
                                         }
-                                        else
-                                        {
-                                            WriteError(item.StationName, $"鏈壘鍒拌澶囧瓙缂栧彿{item.StationCode}鐨勫崗璁俊鎭�");
-                                        }
                                     }
+                                    Thread.Sleep(100);
                                 }
-                                Thread.Sleep(100);
-                                
                             }
                         }
                         catch (Exception ex)
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WCSServices/WIDESEAWCS_Tasks/\347\240\201\345\236\233/MDJob_CP.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WCSServices/WIDESEAWCS_Tasks/\347\240\201\345\236\233/MDJob_CP.cs"
index 7bd3cea..b7db2c9 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WCSServices/WIDESEAWCS_Tasks/\347\240\201\345\236\233/MDJob_CP.cs"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WCSServices/WIDESEAWCS_Tasks/\347\240\201\345\236\233/MDJob_CP.cs"
@@ -109,18 +109,20 @@
                         var axis = _packaxisRepository.QueryFirst(x => x.DeviceCode == item.StackerCraneCode && x.StationCode == Convert.ToInt32(item.StackerCraneStationCode));
                         if (axis != null)
                         {
+                            //杩涜缁撴墭
                             if (Convert.ToInt32(PackNum) == axis.PackNum)
                             {
                                 device.Communicator.Write<short>(device.DeviceProDTOs.FirstOrDefault(x => x.DeviceProParamName == GetPackSendEnum(item.StackerCraneStationCode).ToString()).DeviceProDataBlock, 2);
                             }
 
                             ConsoleHelper.WriteInfoLine($"鐮佸灈宸ヤ綅{item.StationCode}鐘舵�亄Allow}");
+                            //鐮佸灈鐢宠
                             if (Allow == 3 || Allow == 7)
                             {
                                 //鑾峰彇褰撳墠浠诲姟
                                 Dt_Task task = _taskRepository.QueryData(x => x.NextAddress == item.StationCode && _taskService.TaskInboundTypes.Contains(x.TaskType) && x.TaskState == TaskStatusEnum.MD_Executing.ObjToInt() && x.DeviceCode == device.DeviceCode).OrderBy(x => x.TaskNum).FirstOrDefault();
 
-                                if (task != null) //鐮佸灈鐢宠
+                                if (task != null) 
                                 {
                                     device.Communicator.Write<short>(device.DeviceProDTOs.FirstOrDefault(x => x.DeviceProParamName == GetPackSendEnum(item.StackerCraneStationCode).ToString()).DeviceProDataBlock, 1);
 
@@ -139,14 +141,7 @@
 
                                     #endregion
 
-                                    if (device.DeviceCode == "MD8_CP")
-                                    {
-                                        device.Communicator.Write<float>(device.DeviceProDTOs.FirstOrDefault(x => x.DeviceProParamName == W_MDDB.W_MDA.ToString()).DeviceProDataBlock, -1);
-                                    }
-                                    else
-                                    {
-                                        device.Communicator.Write<float>(device.DeviceProDTOs.FirstOrDefault(x => x.DeviceProParamName == W_MDDB.W_MDA.ToString()).DeviceProDataBlock, 1);
-                                    }
+                                    device.Communicator.Write<float>(device.DeviceProDTOs.FirstOrDefault(x => x.DeviceProParamName == W_MDDB.W_MDA.ToString()).DeviceProDataBlock, 1);
 
                                     device.Communicator.Write<short>(device.DeviceProDTOs.FirstOrDefault(x => x.DeviceProParamName == W_MDDB.W_MDReceiveDone.ToString()).DeviceProDataBlock, 3);
 
@@ -156,6 +151,7 @@
                                     //_taskRepository.UpdateData(task);
                                     Thread.Sleep(1500);
                                     WriteInfo(item.StationName, $"浠诲姟鍙穥task.TaskNum}鐮佸灈");
+                                    return Task.CompletedTask;
                                 }
 
                             }
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSClient/src/extension/outbound/extend/PPStockSelect.vue" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSClient/src/extension/outbound/extend/PPStockSelect.vue"
deleted file mode 100644
index 8dc77b0..0000000
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSClient/src/extension/outbound/extend/PPStockSelect.vue"
+++ /dev/null
@@ -1,332 +0,0 @@
-<template>
-  <div>
-    <vol-box
-      v-model="showDetialBox"
-      :lazy="true"
-      width="60%"
-      :padding="15"
-      title="鎸囧畾搴撳瓨"
-    >
-      <div class="box-head">
-        <el-alert :closable="false" style="width: 100%">
-          <el-row>
-            <el-col :span="16">
-              <span class="less-style">鐗╂枡鍚嶇О锛� {{ row.materielName }} </span>
-              <el-divider direction="vertical"></el-divider>
-              <span class="less-style">鐗╂枡缂栧彿锛� {{ row.materielCode }} </span>
-              <el-divider direction="vertical"></el-divider>
-              <span class="less-style"
-                >闇�姹傛暟閲忥細 {{ row.orderQuantity }}
-              </span>
-              <el-divider direction="vertical"></el-divider>
-              <span :class="selectionClass"
-                >宸查�夋暟閲忥細 {{ selectionSum }}
-              </span>
-            </el-col>
-            <el-col :span="8">
-              <el-link
-                type="primary"
-                size="small"
-                style="float: right; height: 20px"
-                @click="getData(false)"
-                >{{ kcname }}</el-link
-              >
-              <el-link
-                type="primary"
-                size="small"
-                style="float: right; height: 20px; margin-right: 10px"
-                @click="getData"
-                >鍒锋柊</el-link
-              >
-              <el-link
-                type="primary"
-                size="small"
-                style="float: right; height: 20px; margin-right: 10px"
-                @click="revokeAssign"
-                >鎾ら攢鍒嗛厤</el-link
-              >
-            </el-col>
-          </el-row>
-        </el-alert>
-      </div>
-      <div class="box-table" style="margin-top: 1%">
-        <el-table
-          ref="singleTable"
-          :data="tableData"
-          style="width: 100%; height: 100%"
-          highlight-current-row
-          @row-click="handleRowClick"
-          height="500px"
-          @selection-change="handleSelectionChange"
-        >
-          >
-          <el-table-column type="selection" width="55"> </el-table-column>
-          <el-table-column
-            label="搴忓彿"
-            type="index"
-            fixed="left"
-            width="55"
-            align="center"
-          ></el-table-column>
-          <el-table-column
-            v-for="(item, index) in tableColumns.filter((x) => !x.hidden)"
-            :key="index"
-            :prop="item.prop"
-            :label="item.title"
-            :width="item.width"
-            align="center"
-          >
-            <template #default="scoped" v-if="item.type == 'icon'">
-              <el-tooltip
-                class="item"
-                effect="dark"
-                :content="item.title"
-                placement="bottom"
-                ><el-button
-                  type="text"
-                  @click="tableButtonClick(scoped.row, item)"
-                  ><i :class="item.icon" style="font-size: 22px"></i></el-button
-              ></el-tooltip>
-            </template>
-          </el-table-column>
-        </el-table>
-      </div>
-      <template #footer>
-        <el-button type="primary" size="small" @click="outbound"
-          >鐩存帴鍑哄簱</el-button
-        >
-        <el-button type="primary" size="small" @click="lockStock"
-          >閿佸畾搴撳瓨</el-button
-        >
-        <el-button type="danger" size="small" @click="showDetialBox = false"
-          >鍏抽棴</el-button
-        >
-      </template>
-    </vol-box>
-  </div>
-</template>
-<script>
-import VolBox from "@/components/basic/VolBox.vue";
-import { fa } from "element-plus/es/locales.mjs";
-export default {
-  components: { VolBox },
-  data() {
-    return {
-      row: null,
-      kcname: "",
-      pkcx: false,
-      showDetialBox: false,
-      tableData: [],
-      tableColumns: [
-        {
-          prop: "materielCode",
-          title: "鐗╂枡缂栧彿",
-          type: "string",
-          width: 150,
-        },
-        {
-          prop: "materielName",
-          title: "鐗╂枡鍚嶇О",
-          type: "string",
-          width: 150,
-        },
-        {
-          prop: "palletCode",
-          title: "鎵樼洏缂栧彿",
-          type: "string",
-          width: 150,
-        },
-        {
-          prop: "locationCode",
-          title: "璐т綅缂栧彿",
-          type: "string",
-          width: 180,
-        },
-        {
-          prop: "unit",
-          title: "鍗曚綅",
-          type: "string",
-          width: 90,
-        },
-        {
-          prop: "cutedWidth",
-          title: "瑁佸垏瀹�",
-          type: "string",
-          width: 100,
-          align: "left",
-        },
-        {
-          prop: "useableQuantity",
-          title: "鍙敤鏁伴噺",
-          type: "string",
-        },
-      ],
-      selection: [],
-      selectionSum: 0,
-      selectionClass: "less-style",
-      originalQuantity: 0,
-    };
-  },
-  methods: {
-    open(row) {
-      console.log(row);
-      this.row = row;
-      this.showDetialBox = true;
-      this.originalQuantity = this.row.lockQuantity;
-      this.selectionSum = this.row.lockQuantity;
-      this.getData();
-      if (this.selectionSum == this.row.orderQuantity) {
-        this.selectionClass = "equle-style";
-      } else if (this.selectionSum < this.row.orderQuantity) {
-        this.selectionClass = "less-style";
-      } else {
-        this.selectionClass = "more-style";
-      }
-    },
-    lockStock() {
-      this.http
-        .post(
-          "api/OutboundOrderDetail/LockOutboundStock?id=" + this.row.id,
-          this.selection,
-          "鏁版嵁澶勭悊涓�"
-        )
-        .then((x) => {
-          if (!x.status) return this.$message.error(x.message);
-          this.$message.success("鎿嶄綔鎴愬姛");
-          this.showDetialBox = false;
-          this.$emit("parentCall", ($vue) => {
-            $vue.getData();
-          });
-        });
-    },
-    outbound() {
-      if (this.selection.length <= 0) {
-        return this.$message.error("璇峰嬀閫�");
-      }
-      let url = this.pkcx
-        ? "api/Mes/PPGeneratePKOutboundTask?orderDetailId="
-        : "api/Mes/PPCutOutGenerateOutboundTasks?orderDetailId=";
-      this.http
-        .post(url + this.row.id, this.selection, "鏁版嵁澶勭悊涓�")
-        .then((x) => {
-          if (!x.status) return this.$message.error(x.message);
-          this.$message.success("鎿嶄綔鎴愬姛");
-          this.showDetialBox = false;
-          this.$emit("parentCall", ($vue) => {
-            $vue.getData();
-          });
-        });
-    },
-    getData(a) {
-      if (!a) this.pkcx = !this.pkcx;
-      let url = this.pkcx
-        ? "api/StockInfo/PPGetPKStockSelectViews?materielCode="
-        : "api/StockInfo/PPGetStockSelectViews?materielCode=";
-      this.kcname = this.pkcx ? "绔嬪簱搴撳瓨" : "骞冲簱搴撳瓨";
-      console.log(this.row.materielCode),
-        this.http
-          .post(
-            url + this.row.materielCode + "&orderId=" + this.row.orderId,
-            null,
-            "鏌ヨ涓�"
-          )
-          .then((x) => {
-            this.tableData = x;
-          });
-    },
-    revokeAssign() {
-      console.log(this.row);
-      this.http
-        .post(
-          "api/OutboundOrderDetail/RevokeLockOutboundStock?id=" + this.row.id,
-          null,
-          "鏁版嵁澶勭悊涓�"
-        )
-        .then((x) => {
-          if (!x.status) return this.$message.error(x.message);
-          this.$message.success("鎿嶄綔鎴愬姛");
-          this.showDetialBox = false;
-          this.$emit("parentCall", ($vue) => {
-            $vue.getData();
-          });
-        });
-    },
-    handleSelectionChange(val) {
-      this.selection = val;
-      this.selectionSum =
-        val.reduce(
-          (accumulator, currentValue) =>
-            accumulator + currentValue["useableQuantity"],
-          0
-        ) + this.originalQuantity;
-      if (this.selectionSum == this.row.orderQuantity) {
-        this.selectionClass = "equle-style";
-      } else if (this.selectionSum < this.row.orderQuantity) {
-        this.selectionClass = "less-style";
-      } else {
-        this.selectionClass = "more-style";
-      }
-    },
-    toggleSelection(rows) {
-      if (rows) {
-        rows.forEach((row) => {
-          this.$refs.singleTable.toggleRowSelection(row);
-        });
-      } else {
-        this.$refs.singleTable.clearSelection();
-      }
-    },
-    clearSelection() {
-      this.$refs.singleTable.clearSelection();
-    },
-    handleRowClick(row) {
-      this.$refs.singleTable.toggleRowSelection(row);
-    },
-  },
-};
-</script>
-<style scoped>
-.less-style {
-  color: black;
-}
-
-.equle-style {
-  color: green;
-}
-
-.more-style {
-  color: red;
-}
-</style>
-
-<style>
-.text-button:hover {
-  background-color: #f0f9eb !important;
-}
-
-.el-table .warning-row {
-  background: oldlace;
-}
-
-.box-table .el-table tbody tr:hover > td {
-  background-color: #d8e0d4 !important;
-  /* color: #ffffff; */
-}
-
-.box-table .el-table tbody tr.current-row > td {
-  background-color: #f0f9eb !important;
-  /* color: #ffffff; */
-}
-
-.el-table .success-row {
-  background: #f0f9eb;
-}
-
-.box-table .el-table {
-  border: 1px solid #ebeef5;
-}
-
-.box-head .el-alert__content {
-  width: 100%;
-}
-</style>
\ No newline at end of file
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSClient/src/extension/outbound/extend/ProSelectedStock.vue" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSClient/src/extension/outbound/extend/ProSelectedStock.vue"
deleted file mode 100644
index c869c31..0000000
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSClient/src/extension/outbound/extend/ProSelectedStock.vue"
+++ /dev/null
@@ -1,261 +0,0 @@
-<template>
-    <div>
-      <vol-box
-        v-model="showDetialBox"
-        :lazy="true"
-        width="75%"
-        :padding="15"
-        title="鍑哄簱璇︽儏"
-      >
-        <div class="box-head">
-          <el-alert :closable="false" style="width: 100%">
-            <el-row>
-              <el-col :span="24">
-                <span class="less-style">浜у搧缂栫爜锛� {{ row.pCode }} </span>
-                <el-divider direction="vertical"></el-divider>
-                <span class="less-style">浜у搧鐗堟湰锛� {{ row.pVer }} </span>
-                <el-divider direction="vertical"></el-divider>
-                <span class="less-style">閿�鍞鍗曪細 {{ row.saleOrder }} </span>
-                <el-divider direction="vertical"></el-divider>
-                <span class="less-style"
-                  >闇�姹傛暟閲忥細 {{ row.qtyPcs }}
-                </span>
-                <el-divider direction="vertical"></el-divider>
-                <span class="less-style"
-                  >宸插垎閰嶆暟閲忥細 {{ row.lockQtyPcs }}
-                </span>
-              </el-col>
-            </el-row>
-          </el-alert>
-        </div>
-        <div class="box-table" style="margin-top: 1%">
-          <el-table
-            ref="singleTable"
-            :data="tableData"
-            style="width: 100%; height: 100%"
-            highlight-current-row
-            height="500px"
-          >
-            >
-            <el-table-column
-              label="搴忓彿"
-              type="index"
-              fixed="left"
-              width="55"
-              align="center"
-            ></el-table-column>
-            <el-table-column
-              v-for="(item, index) in tableColumns.filter((x) => !x.hidden)"
-              :key="index"
-              :prop="item.prop"
-              :label="item.title"
-              :width="item.width"
-              align="center"
-            >
-              <template #default="scoped" v-if="item.type == 'icon'">
-                <el-tooltip
-                  class="item"
-                  effect="dark"
-                  :content="item.title"
-                  placement="bottom"
-                  ><el-button
-                    type="text"
-                    @click="tableButtonClick(scoped.row, item)"
-                    ><i :class="item.icon" style="font-size: 22px"></i></el-button
-                ></el-tooltip>
-              </template>
-            </el-table-column>
-          </el-table>
-        </div>
-        <template #footer>
-          <!-- <el-button type="primary" size="small" @click="submit">纭</el-button> -->
-          <el-button type="danger" size="small" @click="showDetialBox = false"
-            >鍏抽棴</el-button
-          >
-        </template>
-      </vol-box>
-    </div>
-  </template>
-      <script>
-  import VolBox from "@/components/basic/VolBox.vue";
-  export default {
-    components: { VolBox },
-    data() {
-      return {
-        row: null,
-        showDetialBox: false,
-        tableData: [],
-        tableColumns: [
-          {
-            prop: "id",
-            title: "涓婚敭",
-            type: "string",
-            width: 150,
-            hidden: true,
-          },
-          {
-            prop: "orderNo",
-            title: "鍗曟嵁缂栧彿",
-            type: "string",
-            width: 150,
-          },
-          {
-            prop: "orderDetailId",
-            title: "鍗曟嵁鏄庣粏涓婚敭",
-            type: "string",
-            width: 150,
-            hidden: true,
-          },
-          // {
-          //   prop: "orderType",
-          //   title: "鍗曟嵁绫诲瀷",
-          //   type: "string",
-          //   width: 90,
-          // },
-          {
-            prop: "batchNo",
-            title: "鎵规鍙�",
-            type: "string",
-            width: 120,
-          },
-          {
-            prop: "pCode",
-            title: "浜у搧缂栫爜",
-            type: "string",
-            width: 150,
-          },
-          {
-            prop: "pVer",
-            title: "浜у搧鐗堟湰",
-            type: "string",
-            width: 150,
-          },
-          {
-            prop: "pLot",
-            title: "浜у搧鐗堟湰",
-            type: "string",
-            width: 150,
-          },
-          {
-            prop: "dateCode",
-            title: "浜у搧鐗堟湰",
-            type: "string",
-            width: 150,
-          },
-          {
-            prop: "stockId",
-            title: "搴撳瓨涓婚敭",
-            type: "string",
-            width: 150,
-            hidden: true,
-          },
-          {
-            prop: "originalQuantity",
-            title: "鍘熷搴撳瓨閲�",
-            type: "string",
-            width: 100,
-          },
-          // {
-          //   prop: "assignQuantity",
-          //   title: "鍒嗛厤鍑哄簱閲�",
-          //   type: "string",
-          //   width: 100,
-          // },
-          {
-            prop: "taskNum",
-            title: "鍑哄簱浠诲姟鍙�",
-            type: "string",
-            width: 100,
-          },
-          {
-            prop: "palletCode",
-            title: "鑳舵鍙�",
-            type: "string",
-            width: 150,
-          },
-          {
-            prop: "locationCode",
-            title: "璐т綅缂栧彿",
-            type: "string",
-            width: 180,
-          },
-          {
-            prop: "status",
-            title: "鐘舵��",
-            type: "string",
-          },
-        ],
-      };
-    },
-    methods: {
-      open(row) {
-        this.row = row;
-        this.showDetialBox = true;
-        this.getData();
-      },
-      getData() {
-        this.http
-          .post(
-            "api/OutProStockInfo/GetByOrderDetailId?orderDetailId=" +
-              this.row.id,
-            null,
-            "鏌ヨ涓�"
-          )
-          .then((x) => {
-            
-            var label=[
-                { label: '宸插垎閰�', value: 0 },
-                { label: '鍑哄簱涓�', value: 1 },
-                { label: '鍑哄簱瀹屾垚', value: 2 },
-                { label: '鎷i�夊畬鎴�', value: 3 },
-                { label: '鎾ら攢', value: 99 }
-            ]
-            this.tableData=x.map((i) => ({
-              ...i,
-              status:label.find((j) => j.value === i.status).label
-            }))
-          });
-      },
-    },
-  };
-  </script>
-    <style scoped>
-  .less-style {
-    color: black;
-  }
-  .equle-style {
-    color: green;
-  }
-  .more-style {
-    color: red;
-  }
-  </style>
-    
-    <style>
-  .text-button:hover {
-    background-color: #f0f9eb !important;
-  }
-  .el-table .warning-row {
-    background: oldlace;
-  }
-  .box-table .el-table tbody tr:hover > td {
-    background-color: #d8e0d4 !important;
-    /* color: #ffffff; */
-  }
-  
-  .box-table .el-table tbody tr.current-row > td {
-    background-color: #f0f9eb !important;
-    /* color: #ffffff; */
-  }
-  
-  .el-table .success-row {
-    background: #f0f9eb;
-  }
-  
-  .box-table .el-table {
-    border: 1px solid #ebeef5;
-  }
-  .box-head .el-alert__content {
-    width: 100%;
-  }
-  </style>
\ No newline at end of file
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSClient/src/extension/outbound/extend/ProStockSelect.vue" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSClient/src/extension/outbound/extend/ProStockSelect.vue"
deleted file mode 100644
index 03b4fdc..0000000
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSClient/src/extension/outbound/extend/ProStockSelect.vue"
+++ /dev/null
@@ -1,448 +0,0 @@
-<template>
-    <div>
-      <vol-box
-        v-model="showDetialBox"
-        :lazy="true"
-        width="78%"
-        :padding="15"
-        title="鎸囧畾搴撳瓨"
-      >
-        <div class="box-head">
-          <el-alert :closable="false" style="width: 100%">
-            <el-row>
-              <el-col :span="24">
-                <span class="less-style">浜у搧缂栫爜锛� {{ row.pCode }} </span>
-                <el-divider direction="vertical"></el-divider>
-                <span class="less-style">浜у搧鐗堟湰锛� {{ row.pVer }} </span>
-                <el-divider direction="vertical"></el-divider>
-                <span class="less-style">閿�鍞鍗曪細 {{ row.saleOrder }} </span>
-                <el-divider direction="vertical"></el-divider>
-                <span class="less-style"
-                  >闇�姹傛暟閲忥細 {{ row.qtyPcs }}
-                </span>
-                <el-divider direction="vertical"></el-divider>
-                <span :class="selectionClass"
-                  >宸查�夋暟閲忥細 {{ selectionSum }}
-                </span>
-              </el-col>
-              <el-col>
-                <el-link
-                  type="primary"
-                  size="small"
-                  style="float: right; height: 20px; margin-right: 10px"
-                  @click="getData"
-                  >鍒锋柊</el-link
-                >
-              </el-col>
-            </el-row>
-          </el-alert>
-        </div>
-        <div class="box-table" style="margin-top: 1%">
-          <el-table
-            ref="singleTable"
-            :data="tableData"
-            style="width: 100%; height: 100%"
-            highlight-current-row
-            @row-click="handleRowClick"
-            height="500px"
-            @selection-change="handleSelectionChange"
-          >
-            >
-            <el-table-column type="selection" width="55"> </el-table-column>
-            <el-table-column
-              label="搴忓彿"
-              type="index"
-              fixed="left"
-              width="55"
-              align="center"
-            ></el-table-column>
-            <el-table-column
-              v-for="(item, index) in tableColumns.filter((x) => !x.hidden)"
-              :key="index"
-              :prop="item.prop"
-              :label="item.title"
-              :width="item.width"
-              align="center"
-            >
-              <template #default="scoped">
-                <div v-if="item.type == 'icon'">
-                  <el-tooltip
-                    class="item"
-                    effect="dark"
-                    :content="item.title"
-                    placement="bottom"
-                    ><el-link
-                      type="primary"
-                      :disabled="getButtonEnable(item.prop, scoped.row)"
-                      @click="tableButtonClick(scoped.row, item)"
-                      ><i :class="item.icon" style="font-size: 22px"></i></el-link
-                  ></el-tooltip>
-                </div>
-
-                <div v-else-if="item.type == 'tag'">
-                  <el-tag size="small">
-                    {{ getDictionary(scoped.row, item) }}
-                  </el-tag>
-                </div>
-              </template>
-            </el-table-column>
-          </el-table>
-        </div>
-        <template #footer>
-          <el-button type="primary" size="small" @click="outbound"
-            >鐩存帴鍑哄簱</el-button
-          >
-          <el-button type="danger" size="small" @click="showDetialBox = false"
-            >鍏抽棴</el-button
-          >
-        </template>
-      </vol-box>
-    </div>
-  </template>
-  <script>
-  import VolBox from "@/components/basic/VolBox.vue";
-  import { fa } from "element-plus/es/locales.mjs";
-import { el } from 'element-plus/es/locale';
-  export default {
-    components: { VolBox },
-    data() {
-      return {
-        row: null,
-        kcname: "",
-        pkcx: false,
-        showDetialBox: false,
-        tableData: [],
-        tableColumns: [
-          {
-            prop: "proStockId",
-            title: "搴撳瓨淇℃伅涓婚敭",
-            type: "string",
-            width: 90,
-            hidden: true,
-          },
-          {
-            prop: "proStockAttribute",
-            title: "搴撳瓨灞炴��",
-            type: "tag",
-            width: 110,
-            bindKey: "proStockAttributeEnum",
-          },
-          {
-            prop: "locationCode",
-            title: "浠撳偍浣嶇疆",
-            type: "string",
-            width: 130,
-          },
-          {
-            prop: "palletCode",
-            title: "澶栧寘鍙�",
-            type: "string",
-            width: 130,
-          },
-          {
-            prop: "productCode",
-            title: "浜у搧缂栫爜",
-            type: "string",
-            width: 140,
-          },
-          {
-            prop: "productVersion",
-            title: "浜у搧鐗堟湰",
-            type: "string",
-            width: 100,
-          },
-          {
-            prop: "dateCode",
-            title: "鍛ㄦ湡",
-            type: "string",
-            width: 120,
-          },
-          {
-            prop: "erpOrder",
-            title: "ERP宸ュ崟",
-            type: "string",
-            width: 200,
-          },
-          {
-            prop: "moNumber",
-            title: "鍒堕�犲崟",
-            type: "string",
-            width: 140,
-          },
-          {
-            prop: "saleOrder",
-            title: "閿�鍞鍗�",
-            type: "string",
-            width: 200,
-          },
-          {
-            prop: "sumStocks",
-            title: "搴撳瓨PCS鏁�",
-            type: "string",
-            width: 120,
-          },
-          {
-            prop: "createDate",
-            title: "鍒涘缓鏃堕棿",
-            type: "string",
-            width: 160,
-          },
-        //   {
-        //     field: "lotNumber",
-        //     title: "浜у搧鎵瑰彿",
-        //     type: "string",
-        //     width: 90,
-        //     align: "left",
-        //   },
-        //   {
-        //     field: "outboundQuantity",
-        //     title: "鍑哄簱PCS鏁伴噺",
-        //     type: "string",
-        //     width: 90,
-        //     align: "left",
-        //   },
-        //   {
-        //     field: "outSETQty",
-        //     title: "鍑哄簱SET鏁伴噺",
-        //     type: "string",
-        //     width: 90,
-        //     align: "left",
-        //   },
-        //   {
-        //     field: "xQty",
-        //     title: "X鏁�",
-        //     type: "string",
-        //     width: 90,
-        //     align: "left",
-        //   },
-        //   {
-        //     field: "xSite",
-        //     title: "X浣�",
-        //     type: "string",
-        //     width: 100,
-        //     align: "left",
-        //   },
-        //   {
-        //     field: "proOutDetailStatus",
-        //     title: "搴撳瓨鐘舵��",
-        //     type: "int",
-        //     width: 120,
-        //     align: "left",
-        //     bind: { key: "stockStatusEmun", data: [] },
-        //   },
-        //   {
-        //     field: "weight",
-        //     title: "鍐呭寘閲嶉噺",
-        //     type: "string",
-        //     width: 80,
-        //     align: "left",
-        //   },
-        //   {
-        //     field: "creater",
-        //     title: "鍒涘缓浜�",
-        //     type: "string",
-        //     width: 90,
-        //     align: "left",
-        //     hidden: true
-        //   },
-        //   {
-        //     field: "createDate",
-        //     title: "鍒涘缓鏃堕棿",
-        //     type: "datetime",
-        //     width: 130,
-        //     align: "left",
-        //     hidden: true
-        //   },
-        ],
-        selection: [],
-        isTrue: false,
-        selectionSum: 0,
-        selectionClass: "less-style",
-        originalQuantity: 0,
-      };
-    },
-    methods: {
-      open(row) {
-        console.log(row);
-        this.row = row;
-        this.showDetialBox = true;
-        this.originalQuantity = this.row.lockQuantity;
-        this.selectionSum = this.row.lockQtyPcs;
-        this.getData();
-        this.getDictionaryData();
-        if (this.selectionSum == this.row.orderQuantity) {
-          this.selectionClass = "equle-style";
-        } else if (this.selectionSum < this.row.orderQuantity) {
-          this.selectionClass = "less-style";
-        } else {
-          this.selectionClass = "more-style";
-        }
-      },
-      outbound() {
-        if (this.selection.length <= 0) {
-          return this.$message.error("璇峰嬀閫�");
-        }
-        let url ="api/Task/OutProductSelect?orderDetailId=";
-        this.http
-          .post(url + this.row.id, this.selection, "鏁版嵁澶勭悊涓�")
-          .then((x) => {
-            if (!x.status) return this.$message.error(x.message);
-            this.$message.success("鎿嶄綔鎴愬姛");
-            this.showDetialBox = false;
-            this.$emit("parentCall", ($vue) => {
-              $vue.getData();
-            });
-            this.$parent.refresh();
-          });
-      },
-      getData(a) {
-        if (!a) this.pkcx = !this.pkcx;
-        let url = "api/ProStockView/GetProPKSelectStocks?";
-        this.http
-          .post(
-            url + "&orderId=" + this.row.id,
-            null,
-            "鏌ヨ涓�"
-          )
-          .then((x) => {
-            this.tableData = x;
-          });
-      },
-      handleSelectionChange(val) {
-        this.selection=val;
-        this.CheckSelection(val);
-        //鍒ゆ柇鍕鹃�変腑鐨剆umStocks鏁伴噺濡傛灉褰撳墠鍕鹃�夋暟澶т簬row.qtyPcs鍒欏彇娑堝嬀閫�
-        // if (this.selection.length<=0) {
-        //   this.selection = val;
-        //   this.selectionSum = val[0].sumStocks;
-        // }else{
-        //   if (this.selectionSum + val[0].sumStocks > this.row.qtyPcs) {
-        //     this.$message.error("鍕鹃�夋暟閲忓凡婊¤冻闇�姹傛暟閲�,鏃犻渶鍐嶅嬀閫�");
-        //   }else {
-        //     this.selection = val;
-        //     this.selectionSum += val[0].sumStocks;
-        //   }
-        // }1   
-      },
-      CheckSelection(rows) {
-          if (rows.length <= 0) {
-            this.selectionSum = this.row.lockQtyPcs;
-          } else {
-            if (this.selectionSum >= this.row.qtyPcs) {
-              this.$message.error("宸叉弧瓒抽渶姹傛暟閲�,鏃犻渶鍐嶅嬀閫�");
-              //绉婚櫎this.selection涓渶鍚庝竴涓�
-              this.$refs.singleTable.toggleRowSelection(this.selection[this.selection.length - 1],false);
-              this.selection.splice(-1, 1);
-              this.selectionSum = this.selection.reduce((sum, item) => {
-                return sum + item.sumStocks;
-              }, 0)+this.row.lockQtyPcs;
-            }else {
-              this.selectionSum=0;
-              rows.forEach(row => {
-                this.selectionSum+= row.sumStocks;
-              });
-              this.selectionSum+=this.row.lockQtyPcs;
-            }
-          }
-      },
-      toggleSelection(rows) {
-        if (rows) {
-          rows.forEach((row) => {
-            this.$refs.singleTable.toggleRowSelection(row);
-          });
-        } else {
-          this.$refs.singleTable.clearSelection();
-        }
-      },
-      clearSelection() {
-        this.$refs.singleTable.clearSelection();
-      },
-      handleRowClick(row) {
-        this.$refs.singleTable.toggleRowSelection(row);
-      },
-      getDictionaryData() {
-        if (this.dictionaryList) {
-          return;
-        }
-        var param = [];
-        this.tableColumns.forEach((x) => {
-          if (x.type == "tag" && x.bindKey != "") {
-            param.push(x.bindKey);
-          }
-        });
-        this.http
-          .post("api/Sys_Dictionary/GetVueDictionary", param, "鏌ヨ涓�")
-          .then((x) => {
-            if (x.length > 0) {
-              this.dictionaryList = x;
-              console.log(this.dictionaryList);
-            }
-          });
-      },
-      getDictionary(row, column) {
-        if (this.dictionaryList) {
-          var item = this.dictionaryList.find((x) => x.dicNo == column.bindKey);
-          if (item) {
-            var dicItem = item.data.find((x) => x.key == row[column.prop]);
-            console.log(dicItem);
-            if (dicItem) {
-              return dicItem.value;
-            } else {
-              return row[column.prop];
-            }
-          } else {
-            return row[column.prop];
-          }
-        }
-      },
-    },
-  };
-  </script>
-  <style scoped>
-  .less-style {
-    color: black;
-  }
-  
-  .equle-style {
-    color: green;
-  }
-  
-  .more-style {
-    color: red;
-  }
-  </style>
-  
-  <style>
-  .text-button:hover {
-    background-color: #f0f9eb !important;
-  }
-  
-  .el-table .warning-row {
-    background: oldlace;
-  }
-  
-  .box-table .el-table tbody tr:hover > td {
-    background-color: #d8e0d4 !important;
-    /* color: #ffffff; */
-  }
-  
-  .box-table .el-table tbody tr.current-row > td {
-    background-color: #f0f9eb !important;
-    /* color: #ffffff; */
-  }
-  
-  .el-table .success-row {
-    background: #f0f9eb;
-  }
-  
-  .box-table .el-table {
-    border: 1px solid #ebeef5;
-  }
-  
-  .box-head .el-alert__content {
-    width: 100%;
-  }
-  .el-table__header .el-checkbox {
-    display: none;
-  }
-  </style>
\ No newline at end of file
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSClient/src/extension/outbound/extend/SelectedStock.vue" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSClient/src/extension/outbound/extend/SelectedStock.vue"
index 0bab4d2..c8e419f 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSClient/src/extension/outbound/extend/SelectedStock.vue"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSClient/src/extension/outbound/extend/SelectedStock.vue"
@@ -11,7 +11,7 @@
         <el-alert :closable="false" style="width: 100%">
           <el-row>
             <el-col :span="24">
-              <span class="less-style">鐗╂枡鍚嶇О锛� {{ row.materielName }} </span>
+              <span class="less-style">鐗╂枡鍚嶇О锛� {{ row.materialName }} </span>
               <el-divider direction="vertical"></el-divider>
               <span class="less-style">鐗╂枡缂栧彿锛� {{ row.materialNo }} </span>
               <el-divider direction="vertical"></el-divider>
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSClient/src/extension/outbound/extend/StockSelect.vue" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSClient/src/extension/outbound/extend/StockSelect.vue"
deleted file mode 100644
index c4dcc64..0000000
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSClient/src/extension/outbound/extend/StockSelect.vue"
+++ /dev/null
@@ -1,318 +0,0 @@
-<template>
-  <div>
-    <vol-box
-      v-model="showDetialBox"
-      :lazy="true"
-      width="60%"
-      :padding="15"
-      title="鎸囧畾搴撳瓨"
-    >
-      <div class="box-head">
-        <el-alert :closable="false" style="width: 100%">
-          <el-row>
-            <el-col :span="16">
-              <span class="less-style">鐗╂枡鍚嶇О锛� {{ row.materielName }} </span>
-              <el-divider direction="vertical"></el-divider>
-              <span class="less-style">鐗╂枡缂栧彿锛� {{ row.materielCode }} </span>
-              <el-divider direction="vertical"></el-divider>
-              <span class="less-style"
-                >闇�姹傛暟閲忥細 {{ row.orderQuantity }}
-              </span>
-              <el-divider direction="vertical"></el-divider>
-              <span :class="selectionClass"
-                >宸查�夋暟閲忥細 {{ selectionSum }}
-              </span>
-            </el-col>
-            <el-col :span="8">
-              <el-link
-                type="primary"
-                size="small"
-                style="float: right; height: 20px"
-                @click="getData(false)"
-                >{{ kcname }}</el-link
-              >
-              <el-link
-                type="primary"
-                size="small"
-                style="float: right; height: 20px; margin-right: 10px"
-                @click="getData"
-                >鍒锋柊</el-link
-              >
-              <el-link
-                type="primary"
-                size="small"
-                style="float: right; height: 20px; margin-right: 10px"
-                @click="revokeAssign"
-                >鎾ら攢鍒嗛厤</el-link
-              >
-            </el-col>
-          </el-row>
-        </el-alert>
-      </div>
-      <div class="box-table" style="margin-top: 1%">
-        <el-table
-          ref="singleTable"
-          :data="tableData"
-          style="width: 100%; height: 100%"
-          highlight-current-row
-          @row-click="handleRowClick"
-          height="500px"
-          @selection-change="handleSelectionChange"
-        >
-          >
-          <el-table-column type="selection" width="55"> </el-table-column>
-          <el-table-column
-            label="搴忓彿"
-            type="index"
-            fixed="left"
-            width="55"
-            align="center"
-          ></el-table-column>
-          <el-table-column
-            v-for="(item, index) in tableColumns.filter((x) => !x.hidden)"
-            :key="index"
-            :prop="item.prop"
-            :label="item.title"
-            :width="item.width"
-            align="center"
-          >
-            <template #default="scoped" v-if="item.type == 'icon'">
-              <el-tooltip
-                class="item"
-                effect="dark"
-                :content="item.title"
-                placement="bottom"
-                ><el-button
-                  type="text"
-                  @click="tableButtonClick(scoped.row, item)"
-                  ><i :class="item.icon" style="font-size: 22px"></i></el-button
-              ></el-tooltip>
-            </template>
-          </el-table-column>
-        </el-table>
-      </div>
-      <template #footer>
-        <el-button type="primary" size="small" @click="outbound"
-          >鐩存帴鍑哄簱</el-button
-        >
-        <el-button type="primary" size="small" @click="lockStock"
-          >閿佸畾搴撳瓨</el-button
-        >
-        <el-button type="danger" size="small" @click="showDetialBox = false"
-          >鍏抽棴</el-button
-        >
-      </template>
-    </vol-box>
-  </div>
-</template>
-<script>
-import VolBox from "@/components/basic/VolBox.vue";
-import { fa } from "element-plus/es/locales.mjs";
-export default {
-  components: { VolBox },
-  data() {
-    return {
-      row: null,
-      kcname: "",
-      pkcx: false,
-      showDetialBox: false,
-      tableData: [],
-      tableColumns: [
-        {
-          prop: "materielCode",
-          title: "鐗╂枡缂栧彿",
-          type: "string",
-          width: 150,
-        },
-        {
-          prop: "materielName",
-          title: "鐗╂枡鍚嶇О",
-          type: "string",
-          width: 150,
-        },
-        {
-          prop: "palletCode",
-          title: "鎵樼洏缂栧彿",
-          type: "string",
-          width: 150,
-        },
-        {
-          prop: "locationCode",
-          title: "璐т綅缂栧彿",
-          type: "string",
-          width: 180,
-        },
-        {
-          prop: "useableQuantity",
-          title: "鍙敤鏁伴噺",
-          type: "string",
-        },
-      ],
-      selection: [],
-      selectionSum: 0,
-      selectionClass: "less-style",
-      originalQuantity: 0,
-    };
-  },
-  methods: {
-    open(row) {
-      console.log(row);
-      this.row = row;
-      this.showDetialBox = true;
-      this.originalQuantity = this.row.lockQuantity;
-      this.selectionSum = this.row.lockQuantity;
-      this.getData();
-      if (this.selectionSum == this.row.orderQuantity) {
-        this.selectionClass = "equle-style";
-      } else if (this.selectionSum < this.row.orderQuantity) {
-        this.selectionClass = "less-style";
-      } else {
-        this.selectionClass = "more-style";
-      }
-    },
-    lockStock() {
-      this.http
-        .post(
-          "api/OutboundOrderDetail/LockOutboundStock?id=" + this.row.id,
-          this.selection,
-          "鏁版嵁澶勭悊涓�"
-        )
-        .then((x) => {
-          if (!x.status) return this.$message.error(x.message);
-          this.$message.success("鎿嶄綔鎴愬姛");
-          this.showDetialBox = false;
-          this.$emit("parentCall", ($vue) => {
-            $vue.getData();
-          });
-        });
-    },
-    outbound() {
-      if (this.selection.length <= 0) {
-        return this.$message.error("璇峰嬀閫�");
-      }
-      let url = this.pkcx
-        ? "api/Task/GeneratePKOutboundTask?orderDetailId="
-        : "api/Task/GenerateOutboundTask?orderDetailId=";
-      this.http
-        .post(url + this.row.id, this.selection, "鏁版嵁澶勭悊涓�")
-        .then((x) => {
-          if (!x.status) return this.$message.error(x.message);
-          this.$message.success("鎿嶄綔鎴愬姛");
-          this.showDetialBox = false;
-          this.$emit("parentCall", ($vue) => {
-            $vue.getData();
-          });
-        });
-    },
-    getData(a) {
-      if (!a) this.pkcx = !this.pkcx;
-      let url = this.pkcx
-        ? "api/StockInfo/GetPKStockSelectViews?materielCode="
-        : "api/StockInfo/GetStockSelectViews?materielCode=";
-      this.kcname = this.pkcx ? "绔嬪簱搴撳瓨" : "骞冲簱搴撳瓨";
-      this.http
-        .post(
-          url + this.row.materielCode + "&orderId=" + this.row.orderId,
-          null,
-          "鏌ヨ涓�"
-        )
-        .then((x) => {
-          this.tableData = x;
-        });
-    },
-    revokeAssign() {
-      console.log(this.row);
-      this.http
-        .post(
-          "api/OutboundOrderDetail/RevokeLockOutboundStock?id=" + this.row.id,
-          null,
-          "鏁版嵁澶勭悊涓�"
-        )
-        .then((x) => {
-          if (!x.status) return this.$message.error(x.message);
-          this.$message.success("鎿嶄綔鎴愬姛");
-          this.showDetialBox = false;
-          this.$emit("parentCall", ($vue) => {
-            $vue.getData();
-          });
-        });
-    },
-    handleSelectionChange(val) {
-      this.selection = val;
-      this.selectionSum =
-        val.reduce(
-          (accumulator, currentValue) =>
-            accumulator + currentValue["useableQuantity"],
-          0
-        ) + this.originalQuantity;
-      if (this.selectionSum == this.row.orderQuantity) {
-        this.selectionClass = "equle-style";
-      } else if (this.selectionSum < this.row.orderQuantity) {
-        this.selectionClass = "less-style";
-      } else {
-        this.selectionClass = "more-style";
-      }
-    },
-    toggleSelection(rows) {
-      if (rows) {
-        rows.forEach((row) => {
-          this.$refs.singleTable.toggleRowSelection(row);
-        });
-      } else {
-        this.$refs.singleTable.clearSelection();
-      }
-    },
-    clearSelection() {
-      this.$refs.singleTable.clearSelection();
-    },
-    handleRowClick(row) {
-      this.$refs.singleTable.toggleRowSelection(row);
-    },
-  },
-};
-</script>
-<style scoped>
-.less-style {
-  color: black;
-}
-
-.equle-style {
-  color: green;
-}
-
-.more-style {
-  color: red;
-}
-</style>
-
-<style>
-.text-button:hover {
-  background-color: #f0f9eb !important;
-}
-
-.el-table .warning-row {
-  background: oldlace;
-}
-
-.box-table .el-table tbody tr:hover > td {
-  background-color: #d8e0d4 !important;
-  /* color: #ffffff; */
-}
-
-.box-table .el-table tbody tr.current-row > td {
-  background-color: #f0f9eb !important;
-  /* color: #ffffff; */
-}
-
-.el-table .success-row {
-  background: #f0f9eb;
-}
-
-.box-table .el-table {
-  border: 1px solid #ebeef5;
-}
-
-.box-head .el-alert__content {
-  width: 100%;
-}
-</style>
\ No newline at end of file
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSClient/src/extension/outbound/extend/addMesOutOrder.vue" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSClient/src/extension/outbound/extend/addMesOutOrder.vue"
deleted file mode 100644
index 8b97e61..0000000
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSClient/src/extension/outbound/extend/addMesOutOrder.vue"
+++ /dev/null
@@ -1,163 +0,0 @@
-<template>
-  <div>
-    <vol-box
-      v-model="showDetailBox"
-      :lazy="true"
-      width="60%"
-      :padding="15"
-      title="Mes鍑哄簱鍗�(鏂板缓)"
-    >
-      <div>
-        <el-form :inline="true" :model="formData" ref="formData">
-          <el-form-item
-            label="鎵�灞炰粨搴�:"
-            style="width: 30%"
-            required
-            prop="warehouseId"
-          >
-            <el-select v-model="formData.warehouseId" placeholder="璇烽�夋嫨浠撳簱">
-              <el-option label="鏉挎潗浠�" value="3"></el-option>
-            </el-select>
-          </el-form-item>
-          <el-form-item
-            label="鐗╂枡缂栫爜:"
-            style="width: 30%"
-            required
-            prop="materialCode"
-          >
-            <el-input
-              v-model="formData.materialCode"
-              placeholder="璇疯緭鍏ョ墿鏂欑紪鐮�"
-            ></el-input>
-          </el-form-item>
-          <el-form-item
-            label="鍑哄簱鏁伴噺:"
-            style="width: 30%"
-            required
-            prop="num"
-          >
-            <el-input-number
-              v-model="formData.num"
-              :min="1"
-              label="璇疯緭鍏ュ嚭搴撴暟閲�"
-            ></el-input-number>
-          </el-form-item>
-          <el-form-item
-            label="鍑哄簱鍦板潃:"
-            style="width: 30%"
-            required
-            prop="outAddress"
-          >
-            <el-select
-              v-model="formData.outAddress"
-              placeholder="璇烽�夋嫨鍑哄簱鍦板潃"
-            >
-              <el-option label="涓�宸烽亾浜屽眰涓婃枡浣�" value="1011"></el-option>
-              <el-option label="SCUTL-001" value="SCUTL-001"></el-option>
-            </el-select>
-          </el-form-item>
-          <!-- <el-form-item label="浠撳簱">
-            <el-col :span="8">
-              <el-select v-model="warehouseId" placeholder="璇烽�夋嫨浠撳簱">
-                <el-option label="鏉挎潗浠�" value="3"></el-option>
-              </el-select>
-            </el-col>
-          </el-form-item> -->
-        </el-form>
-      </div>
-
-      <template #footer>
-        <el-button type="primary" size="small" @click="add">纭畾</el-button>
-        <el-button type="danger" size="small" @click="showDetailBox = false"
-          >鍏抽棴</el-button
-        >
-      </template>
-    </vol-box>
-  </div>
-</template>
-  <script>
-import VolBox from "@/components/basic/VolBox.vue";
-export default {
-  components: { VolBox },
-  data() {
-    return {
-      showDetailBox: false,
-      formData: {
-        warehouseId: "",
-        materialCode: "",
-        num: 1,
-        outAddress: "",
-      },
-    };
-  },
-  methods: {
-    open() {
-      this.showDetailBox = true;
-    },
-    add() {
-      var params = {
-        //warehouseId: this.formData.warehouseId,
-        materialCode: this.formData.materialCode,
-        requiredQuantity: this.formData.num,
-        line: this.formData.outAddress,
-      };
-
-      this.http
-        .post("/api/mesOutboundOrder/AddMesOrder", params, "鏁版嵁澶勭悊涓�...")
-        .then((res) => {
-          if (!res.status) return this.$message.error(res.message);
-          this.$message.success("鎿嶄綔鎴愬姛");
-          this.showDetailBox = false;
-          this.$emit("parentCall", ($vue) => {
-            $vue.refresh();
-          });
-        });
-    },
-  },
-};
-</script>
-  <style scoped>
-.less-style {
-  color: black;
-}
-
-.equle-style {
-  color: green;
-}
-
-.more-style {
-  color: red;
-}
-</style>
-  
-  <style>
-.text-button:hover {
-  background-color: #f0f9eb !important;
-}
-
-.el-table .warning-row {
-  background: oldlace;
-}
-
-.box-table .el-table tbody tr:hover > td {
-  background-color: #d8e0d4 !important;
-  /* color: #ffffff; */
-}
-
-.box-table .el-table tbody tr.current-row > td {
-  background-color: #f0f9eb !important;
-  /* color: #ffffff; */
-}
-
-.el-table .success-row {
-  background: #f0f9eb;
-}
-
-.box-table .el-table {
-  border: 1px solid #ebeef5;
-}
-
-.box-head .el-alert__content {
-  width: 100%;
-}
-</style>
\ No newline at end of file
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSClient/src/extension/outbound/extend/mesPPCutOutOrderDetail.vue" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSClient/src/extension/outbound/extend/mesPPCutOutOrderDetail.vue"
deleted file mode 100644
index 557cab9..0000000
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSClient/src/extension/outbound/extend/mesPPCutOutOrderDetail.vue"
+++ /dev/null
@@ -1,443 +0,0 @@
-<template>
-  <div>
-    <vol-box
-      v-model="showDetialBox"
-      :lazy="true"
-      width="75%"
-      :padding="15"
-      title="鍗曟嵁鏄庣粏淇℃伅"
-    >
-      <div class="box-head">
-        <el-alert :closable="false" style="width: 100%">
-          <el-row>
-            <el-col :span="16">
-              <span>宸查�変腑 {{ selection.length }} 椤�</span>
-            </el-col>
-            <el-col :span="8">
-              <el-link
-                type="primary"
-                size="small"
-                style="float: right; height: 20px"
-                @click="lockstocks"
-                >閿佸畾搴撳瓨</el-link
-              >
-              <el-link
-                type="primary"
-                size="small"
-                style="float: right; height: 20px; margin-right: 10px"
-                @click="outbound"
-                >鐩存帴鍑哄簱</el-link
-              >
-              <el-link
-                type="primary"
-                size="small"
-                style="float: right; height: 20px; margin-right: 10px"
-                @click="getData"
-                >鍒锋柊</el-link
-              ></el-col
-            >
-          </el-row>
-        </el-alert>
-      </div>
-      <div class="box-table" style="margin-top: 1%">
-        <el-table
-          ref="singleTable"
-          :data="tableData"
-          style="width: 100%; height: 100%"
-          highlight-current-row
-          @current-change="handleCurrentChange"
-          height="500px"
-          @row-click="handleRowClick"
-          @selection-change="handleSelectionChange"
-        >
-          <el-table-column type="selection" width="55"> </el-table-column>
-          <el-table-column
-            label="搴忓彿"
-            type="index"
-            fixed="left"
-            width="55"
-            align="center"
-          ></el-table-column>
-          <el-table-column
-            v-for="(item, index) in tableColumns.filter((x) => !x.hidden)"
-            :key="index"
-            :prop="item.prop"
-            :label="item.title"
-            :width="item.width"
-            align="center"
-          >
-            <template #default="scoped">
-              <div v-if="item.type == 'icon'">
-                <el-tooltip
-                  class="item"
-                  effect="dark"
-                  :content="item.title"
-                  placement="bottom"
-                  ><el-link
-                    type="primary"
-                    :disabled="getButtonEnable(item.prop, scoped.row)"
-                    @click="tableButtonClick(scoped.row, item)"
-                    ><i :class="item.icon" style="font-size: 22px"></i></el-link
-                ></el-tooltip>
-              </div>
-
-              <div v-else-if="item.type == 'tag'">
-                <el-tag size="small">
-                  {{ getDictionary(scoped.row, item) }}
-                </el-tag>
-              </div>
-            </template>
-          </el-table-column>
-        </el-table>
-      </div>
-    </vol-box>
-    <pp-stock-select ref="childs" ></pp-stock-select>
-    <selected-stock
-      ref="SelectedStock"
-      @parentCall="parentCall"
-    ></selected-stock>
-  </div>
-</template>
-<script>
-import VolBox from "@/components/basic/VolBox.vue";
-import VolForm from "@/components/basic/VolForm.vue";
-import PPStockSelect from "./PPStockSelect.vue";
-import SelectedStock from "./SelectedStock.vue";
-export default {
-  components: { VolBox, VolForm,"pp-stock-select":PPStockSelect, SelectedStock },
-  data() {
-    return {
-      row: null,
-      showDetialBox: false,
-      flag: false,
-      currentRow: null,
-      selection: [],
-      tableData: [],
-       tableColumns: [
-        {
-          prop: "id",
-          title: "Id",
-          type: "int",
-          width: 90,
-          hidden: true,
-        },
-        {
-          prop: "orderId",
-          title: "鍑哄簱鍗曚富閿�",
-          type: "string",
-          width: 90,
-          hidden: true,
-        },
-        {
-          prop: "materielCode",
-          title: "鐗╂枡缂栧彿",
-          type: "string",
-          width: 150,
-        },
-        {
-          prop: "materielName",
-          title: "鐗╂枡鍚嶇О",
-          type: "string",
-          width: 150,
-        },
-      {
-        field: "targetAddressCode",
-        title: "绾胯竟浠撳湴鍧�鐮�",
-        type: "string",
-        width: 100,
-        align: "left",
-      },
-      {
-        field: "width",
-        title: "瑁佸垏瀹�",
-        type: "string",
-        width: 100,
-        align: "left",
-      },
-        {
-          prop: "orderQuantity",
-          title: "鍗曟嵁鏁伴噺",
-          type: "string",
-          width: 90,
-        },
-        {
-          prop: "lockQuantity",
-          title: "閿佸畾鏁伴噺",
-          type: "int",
-          width: 90,
-        },
-        {
-          prop: "overOutQuantity",
-          title: "宸插嚭鏁伴噺",
-          type: "string",
-          width: 90,
-        },
-        {
-          prop: "unit",
-          title: "鍗曚綅",
-          type: "string",
-          width: 90,
-        },
-        {
-          prop: "orderDetailStatus",
-          title: "璁㈠崟鏄庣粏鐘舵��",
-          type: "tag",
-          width: 180,
-          bindKey: "orderDetailStatusEnum",
-        },
-        {
-          prop: "assignStock",
-          title: "鎸囧畾搴撳瓨",
-          type: "icon",
-          width: 90,
-          icon: "el-icon-s-grid",
-        },
-        {
-          prop: "viewDetail",
-          title: "鍑哄簱璇︾粏",
-          type: "icon",
-          width: 90,
-          icon: "el-icon-s-operation",
-        },
-        {
-          prop: "creater",
-          title: "鍒涘缓浜�",
-          type: "string",
-          width: 90,
-        },
-        {
-          prop: "createDate",
-          title: "鍒涘缓鏃堕棿",
-          type: "datetime",
-          width: 160,
-        },
-        {
-          prop: "modifier",
-          title: "淇敼浜�",
-          type: "string",
-          width: 100,
-        },
-        {
-          prop: "modifyDate",
-          title: "淇敼鏃堕棿",
-          type: "datetime",
-          width: 160,
-        },
-        {
-          prop: "remark",
-          title: "澶囨敞",
-          type: "string",
-        },
-      ],
-      paginations: {
-        sort: "id",
-        order: "desc",
-        Foots: "",
-        total: 0,
-        // 2020.08.29澧炲姞鑷畾涔夊垎椤垫潯澶у皬
-        sizes: [30, 60, 100, 120],
-        size: 30, // 榛樿鍒嗛〉澶у皬
-        Wheres: [],
-        page: 1,
-        rows: 30,
-      },
-      searchFormOptions: [
-        [
-          {
-            title: "鍗曟嵁缂栧彿",
-            field: "allocation_code",
-            type: "like",
-          },
-          {
-            title: "鍗曟嵁绫诲瀷",
-            field: "allocation_type",
-            type: "select",
-            dataKey: "OrderType",
-            data: [],
-          },
-          {
-            title: "鍗曟嵁鐘舵��",
-            field: "allocation_state",
-            type: "select",
-            dataKey: "OrderState",
-            data: [],
-          },
-        ],
-      ],
-      searchFormFields: {
-        allocation_code: "",
-        allocation_type: "",
-        allocation_state: "",
-      },
-      dictionaryList: null,
-    };
-  },
-  methods: {
-    open(row) {
-      this.row = row;
-      this.showDetialBox = true;
-      this.getDictionaryData();
-      this.getData();
-    },
-    getData() {
-      var wheres = [{ name: "orderId", value: this.row.id }];
-      var param = {
-        page: this.paginations.page,
-        rows: this.paginations.rows,
-        sort: this.paginations.sort,
-        order: this.paginations.order,
-        wheres: JSON.stringify(wheres), // 鏌ヨ鏉′欢锛屾牸寮忎负[{ name: "瀛楁", value: "xx" }]
-      };
-      this.http
-        .post("api/MesPPCutOutboundOrderDetail/GetPageData", param, "鏌ヨ涓�")
-        .then((x) => {
-            // console.log(x.rows);
-          this.tableData = x.rows;
-        });
-    },
-    tableButtonClick(row, column) {
-      if (column.prop == "assignStock") {
-        console.log(row);
-        console.log(this.$refs.childs);
-        this.$refs.childs.open(row);
-      } else {
-        //鐐瑰嚮鎵撳紑鍑哄簱璇︽儏
-        this.$refs.SelectedStock.open(row);
-      }
-    },
-    lockstocks() {
-      if (this.selection.length === 0) {
-        return this.$message.error("璇烽�夋嫨鍗曟嵁鏄庣粏");
-      }
-      var keys = this.selection.map((item) => item.id); // 鑾峰彇閫変腑琛岀殑id
-      this.http
-        .post("api/OutboundOrderDetail/LockOutboundStocks", keys, "鏁版嵁澶勭悊涓�")
-        .then((x) => {
-          if (!x.status) return this.$message.error(x.message);
-          this.$message.success("鎿嶄綔鎴愬姛");
-          this.showDetialBox = false;
-          this.$emit("parentCall", ($vue) => {
-            $vue.getData();
-          });
-        });
-    },
-    outbound() {
-      if (this.selection.length === 0) {
-        return this.$message.error("璇烽�夋嫨鍗曟嵁鏄庣粏");
-      }
-      var keys = this.selection.map((item) => item.id); // 鑾峰彇閫変腑琛岀殑id
-
-      this.http
-        .post("api/Mes/PPCutOutGenerateOutboundTasks", keys, "鏁版嵁澶勭悊涓�")
-        .then((x) => {
-          if (!x.status) return this.$message.error(x.message);
-          this.$message.success("鎿嶄綔鎴愬姛");
-          this.showDetialBox = false;
-          this.$emit("parentCall", ($vue) => {
-            $vue.getData();
-          });
-        });
-    },
-    setCurrent(row) {
-      this.$refs.singleTable.setCurrentRow(row);
-    },
-    handleCurrentChange(val) {
-      this.currentRow = val;
-    },
-    getButtonEnable(propName, row) {
-      if (propName == "assignStock") {
-        if (
-          row.orderDetailStatus !== 0 &&
-          row.orderDetailStatus !== 60 &&
-          row.orderDetailStatus !== 70 &&
-          row.orderDetailStatus !== 80
-        ) {
-          return true;
-        } else {
-          return false;
-        }
-      }
-      return false;
-    },
-    parentCall(fun) {
-      if (typeof fun != "function") {
-        return console.log("鎵╁睍缁勪欢闇�瑕佷紶鍏ヤ竴涓洖璋冩柟娉曟墠鑳借幏鍙栫埗绾ue瀵硅薄");
-      }
-      fun(this);
-    },
-    handleRowClick(row) {
-      this.$refs.singleTable.toggleRowSelection(row);
-    },
-    handleSelectionChange(val) {
-      this.selection = val;
-    },
-    getDictionaryData() {
-      if (this.dictionaryList) {
-        return;
-      }
-      var param = [];
-      this.tableColumns.forEach((x) => {
-        if (x.type == "tag" && x.bindKey != "") {
-          param.push(x.bindKey);
-        }
-      });
-      this.http
-        .post("api/Sys_Dictionary/GetVueDictionary", param, "鏌ヨ涓�")
-        .then((x) => {
-          if (x.length > 0) {
-            this.dictionaryList = x;
-          }
-        });
-    },
-    getDictionary(row, column) {
-      if (this.dictionaryList) {
-        var item = this.dictionaryList.find((x) => x.dicNo == column.bindKey);
-        if (item) {
-          var dicItem = item.data.find((x) => x.key == row[column.prop]);
-          console.log(dicItem);
-          if (dicItem) {
-            return dicItem.value;
-          } else {
-            return row[column.prop];
-          }
-        } else {
-          return row[column.prop];
-        }
-      }
-    },
-  },
-};
-</script>
-<style scoped>
-.text-button {
-  border: 0px;
-}
-</style>
-
-<style>
-.text-button:hover {
-  background-color: #f0f9eb !important;
-}
-
-.el-table .warning-row {
-  background: oldlace;
-}
-
-.box-table .el-table tbody tr:hover > td {
-  background-color: #d8e0d4 !important;
-  /* color: #ffffff; */
-}
-
-.box-table .el-table tbody tr.current-row > td {
-  background-color: #f0f9eb !important;
-  /* color: #ffffff; */
-}
-
-.el-table .success-row {
-  background: #f0f9eb;
-}
-
-.box-table .el-table {
-  border: 1px solid #ebeef5;
-}
-</style>
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSClient/src/extension/outbound/extend/mesPPoutOrderDetail.vue" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSClient/src/extension/outbound/extend/mesPPoutOrderDetail.vue"
deleted file mode 100644
index 58cdc5b..0000000
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSClient/src/extension/outbound/extend/mesPPoutOrderDetail.vue"
+++ /dev/null
@@ -1,421 +0,0 @@
-<template>
-  <div>
-    <vol-box
-      v-model="showDetialBox"
-      :lazy="true"
-      width="75%"
-      :padding="15"
-      title="鍗曟嵁鏄庣粏淇℃伅"
-    >
-      <div class="box-head">
-        <el-alert :closable="false" style="width: 100%">
-          <el-row>
-            <el-col :span="16">
-              <span>宸查�変腑 {{ selection.length }} 椤�</span>
-            </el-col>
-            <el-col :span="8">
-              <el-link
-                type="primary"
-                size="small"
-                style="float: right; height: 20px"
-                @click="lockstocks"
-                >閿佸畾搴撳瓨</el-link
-              >
-              <el-link
-                type="primary"
-                size="small"
-                style="float: right; height: 20px; margin-right: 10px"
-                @click="outbound"
-                >鐩存帴鍑哄簱</el-link
-              >
-              <el-link
-                type="primary"
-                size="small"
-                style="float: right; height: 20px; margin-right: 10px"
-                @click="getData"
-                >鍒锋柊</el-link
-              ></el-col
-            >
-          </el-row>
-        </el-alert>
-      </div>
-      <div class="box-table" style="margin-top: 1%">
-        <el-table
-          ref="singleTable"
-          :data="tableData"
-          style="width: 100%; height: 100%"
-          highlight-current-row
-          @current-change="handleCurrentChange"
-          height="500px"
-          @row-click="handleRowClick"
-          @selection-change="handleSelectionChange"
-        >
-          <el-table-column type="selection" width="55"> </el-table-column>
-          <el-table-column
-            label="搴忓彿"
-            type="index"
-            fixed="left"
-            width="55"
-            align="center"
-          ></el-table-column>
-          <el-table-column
-            v-for="(item, index) in tableColumns.filter((x) => !x.hidden)"
-            :key="index"
-            :prop="item.prop"
-            :label="item.title"
-            :width="item.width"
-            align="center"
-          >
-            <template #default="scoped">
-              <div v-if="item.type == 'icon'">
-                <el-tooltip
-                  class="item"
-                  effect="dark"
-                  :content="item.title"
-                  placement="bottom"
-                  ><el-link
-                    type="primary"
-                    :disabled="getButtonEnable(item.prop, scoped.row)"
-                    @click="tableButtonClick(scoped.row, item)"
-                    ><i :class="item.icon" style="font-size: 22px"></i></el-link
-                ></el-tooltip>
-              </div>
-
-              <div v-else-if="item.type == 'tag'">
-                <el-tag size="small">
-                  {{ getDictionary(scoped.row, item) }}
-                </el-tag>
-              </div>
-            </template>
-          </el-table-column>
-        </el-table>
-      </div>
-    </vol-box>
-    <stock-select ref="child" @parentCall="parentCall"></stock-select>
-    <selected-stock
-      ref="selectedStock"
-      @parentCall="parentCall"
-    ></selected-stock>
-  </div>
-</template>
-<script>
-import VolBox from "@/components/basic/VolBox.vue";
-import VolForm from "@/components/basic/VolForm.vue";
-import StockSelect from "./StockSelect.vue";
-import SelectedStock from "./SelectedStock.vue";
-export default {
-  components: { VolBox, VolForm, StockSelect, SelectedStock },
-  data() {
-    return {
-      row: null,
-      showDetialBox: false,
-      flag: false,
-      currentRow: null,
-      selection: [],
-      tableData: [],
-      tableColumns: [
-        {
-          prop: "id",
-          title: "Id",
-          type: "int",
-          width: 90,
-          hidden: true,
-        },
-        {
-          prop: "orderId",
-          title: "鍑哄簱鍗曚富閿�",
-          type: "string",
-          width: 90,
-          hidden: true,
-        },
-        {
-          prop: "warehouse",
-          title: "搴撳尯",
-          type: "string",
-          width: 150,
-        },
-        {
-          prop: "carrierCode",
-          title: "杞藉叿鍙�",
-          type: "string",
-          width: 150,
-        },
-        // {
-        //   prop: "orderQuantity",
-        //   title: "鍗曟嵁鏁伴噺",
-        //   type: "string",
-        //   width: 90,
-        // },
-        // {
-        //   prop: "lockQuantity",
-        //   title: "閿佸畾鏁伴噺",
-        //   type: "int",
-        //   width: 90,
-        // },
-        // {
-        //   prop: "overOutQuantity",
-        //   title: "宸插嚭鏁伴噺",
-        //   type: "string",
-        //   width: 90,
-        // },
-        {
-          prop: "orderDetailStatus",
-          title: "璁㈠崟鏄庣粏鐘舵��",
-          type: "tag",
-          width: 180,
-          bindKey: "orderDetailStatusEnum",
-        },
-        // {
-        //   prop: "assignStock",
-        //   title: "鎸囧畾搴撳瓨",
-        //   type: "icon",
-        //   width: 90,
-        //   icon: "el-icon-s-grid",
-        // },
-        // {
-        //   prop: "viewDetail",
-        //   title: "鍑哄簱璇︾粏",
-        //   type: "icon",
-        //   width: 90,
-        //   icon: "el-icon-s-operation",
-        // },
-        {
-          prop: "creater",
-          title: "鍒涘缓浜�",
-          type: "string",
-          width: 90,
-        },
-        {
-          prop: "createDate",
-          title: "鍒涘缓鏃堕棿",
-          type: "datetime",
-          width: 160,
-        },
-        {
-          prop: "modifier",
-          title: "淇敼浜�",
-          type: "string",
-          width: 100,
-        },
-        {
-          prop: "modifyDate",
-          title: "淇敼鏃堕棿",
-          type: "datetime",
-          width: 160,
-        },
-        {
-          prop: "remark",
-          title: "澶囨敞",
-          type: "string",
-        },
-      ],
-      paginations: {
-        sort: "id",
-        order: "desc",
-        Foots: "",
-        total: 0,
-        // 2020.08.29澧炲姞鑷畾涔夊垎椤垫潯澶у皬
-        sizes: [30, 60, 100, 120],
-        size: 30, // 榛樿鍒嗛〉澶у皬
-        Wheres: [],
-        page: 1,
-        rows: 30,
-      },
-      searchFormOptions: [
-        [
-          {
-            title: "鍗曟嵁缂栧彿",
-            field: "allocation_code",
-            type: "like",
-          },
-          {
-            title: "鍗曟嵁绫诲瀷",
-            field: "allocation_type",
-            type: "select",
-            dataKey: "OrderType",
-            data: [],
-          },
-          {
-            title: "鍗曟嵁鐘舵��",
-            field: "allocation_state",
-            type: "select",
-            dataKey: "OrderState",
-            data: [],
-          },
-        ],
-      ],
-      searchFormFields: {
-        allocation_code: "",
-        allocation_type: "",
-        allocation_state: "",
-      },
-      dictionaryList: null,
-    };
-  },
-  methods: {
-    open(row) {
-      this.row = row;
-      this.showDetialBox = true;
-      this.getDictionaryData();
-      this.getData();
-    },
-    getData() {
-      var wheres = [{ name: "orderId", value: this.row.id }];
-      var param = {
-        page: this.paginations.page,
-        rows: this.paginations.rows,
-        sort: this.paginations.sort,
-        order: this.paginations.order,
-        wheres: JSON.stringify(wheres), // 鏌ヨ鏉′欢锛屾牸寮忎负[{ name: "瀛楁", value: "xx" }]
-      };
-      this.http
-        .post("api/MesPPOutboundOrderDetail/GetPageData", param, "鏌ヨ涓�")
-        .then((x) => {
-            console.log(x.rows);
-          this.tableData = x.rows;
-        });
-    },
-    tableButtonClick(row, column) {
-      if (column.prop == "assignStock") {
-        this.$refs.child.open(row);
-      } else {
-        //鐐瑰嚮鎵撳紑鍑哄簱璇︽儏
-        this.$refs.selectedStock.open(row);
-      }
-    },
-    lockstocks() {
-      if (this.selection.length === 0) {
-        return this.$message.error("璇烽�夋嫨鍗曟嵁鏄庣粏");
-      }
-      var keys = this.selection.map((item) => item.id); // 鑾峰彇閫変腑琛岀殑id
-      this.http
-        .post("api/OutboundOrderDetail/LockOutboundStocks", keys, "鏁版嵁澶勭悊涓�")
-        .then((x) => {
-          if (!x.status) return this.$message.error(x.message);
-          this.$message.success("鎿嶄綔鎴愬姛");
-          this.showDetialBox = false;
-          this.$emit("parentCall", ($vue) => {
-            $vue.getData();
-          });
-        });
-    },
-    outbound() {
-      if (this.selection.length === 0) {
-        return this.$message.error("璇烽�夋嫨鍗曟嵁鏄庣粏");
-      }
-      var keys = this.selection.map((item) => item.id); // 鑾峰彇閫変腑琛岀殑id
-
-      this.http
-        .post("api/Mes/MESPPGenerateOutboundTasks", keys, "鏁版嵁澶勭悊涓�")
-        .then((x) => {
-          if (!x.status) return this.$message.error(x.message);
-          this.$message.success("鎿嶄綔鎴愬姛");
-          this.showDetialBox = false;
-          this.$emit("parentCall", ($vue) => {
-            $vue.getData();
-          });
-        });
-    },
-    setCurrent(row) {
-      this.$refs.singleTable.setCurrentRow(row);
-    },
-    handleCurrentChange(val) {
-      this.currentRow = val;
-    },
-    getButtonEnable(propName, row) {
-      if (propName == "assignStock") {
-        if (
-          row.orderDetailStatus !== 0 &&
-          row.orderDetailStatus !== 60 &&
-          row.orderDetailStatus !== 70 &&
-          row.orderDetailStatus !== 80
-        ) {
-          return true;
-        } else {
-          return false;
-        }
-      }
-      return false;
-    },
-    parentCall(fun) {
-      if (typeof fun != "function") {
-        return console.log("鎵╁睍缁勪欢闇�瑕佷紶鍏ヤ竴涓洖璋冩柟娉曟墠鑳借幏鍙栫埗绾ue瀵硅薄");
-      }
-      fun(this);
-    },
-    handleRowClick(row) {
-      this.$refs.singleTable.toggleRowSelection(row);
-    },
-    handleSelectionChange(val) {
-      this.selection = val;
-    },
-    getDictionaryData() {
-      if (this.dictionaryList) {
-        return;
-      }
-      var param = [];
-      this.tableColumns.forEach((x) => {
-        if (x.type == "tag" && x.bindKey != "") {
-          param.push(x.bindKey);
-        }
-      });
-      this.http
-        .post("api/Sys_Dictionary/GetVueDictionary", param, "鏌ヨ涓�")
-        .then((x) => {
-          if (x.length > 0) {
-            this.dictionaryList = x;
-          }
-        });
-    },
-    getDictionary(row, column) {
-      if (this.dictionaryList) {
-        var item = this.dictionaryList.find((x) => x.dicNo == column.bindKey);
-        if (item) {
-          var dicItem = item.data.find((x) => x.key == row[column.prop]);
-          console.log(dicItem);
-          if (dicItem) {
-            return dicItem.value;
-          } else {
-            return row[column.prop];
-          }
-        } else {
-          return row[column.prop];
-        }
-      }
-    },
-  },
-};
-</script>
-<style scoped>
-.text-button {
-  border: 0px;
-}
-</style>
-
-<style>
-.text-button:hover {
-  background-color: #f0f9eb !important;
-}
-
-.el-table .warning-row {
-  background: oldlace;
-}
-
-.box-table .el-table tbody tr:hover > td {
-  background-color: #d8e0d4 !important;
-  /* color: #ffffff; */
-}
-
-.box-table .el-table tbody tr.current-row > td {
-  background-color: #f0f9eb !important;
-  /* color: #ffffff; */
-}
-
-.el-table .success-row {
-  background: #f0f9eb;
-}
-
-.box-table .el-table {
-  border: 1px solid #ebeef5;
-}
-</style>
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSClient/src/extension/outbound/extend/outOrderDetail.vue" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSClient/src/extension/outbound/extend/outSGOrderDetail.vue"
similarity index 87%
rename from "\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSClient/src/extension/outbound/extend/outOrderDetail.vue"
rename to "\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSClient/src/extension/outbound/extend/outSGOrderDetail.vue"
index 8504352..0d7740c 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSClient/src/extension/outbound/extend/outOrderDetail.vue"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSClient/src/extension/outbound/extend/outSGOrderDetail.vue"
@@ -3,7 +3,7 @@
     <vol-box
       v-model="showDetialBox"
       :lazy="true"
-      width="75%"
+      width="80%"
       :padding="15"
       title="鍗曟嵁鏄庣粏淇℃伅"
     >
@@ -12,6 +12,8 @@
           <el-row>
             <el-col :span="16">
               <span>宸查�変腑 {{ selection.length }} 椤�</span>
+              <el-divider direction="vertical"></el-divider>
+              <span>鍗曞彿 {{ row.orderId }} </span>
             </el-col>
             <el-col :span="8">
               <!-- <el-link
@@ -103,10 +105,9 @@
 <script>
 import VolBox from "@/components/basic/VolBox.vue";
 import VolForm from "@/components/basic/VolForm.vue";
-import StockSelect from "./StockSelect.vue";
 import SelectedStock from "./SelectedStock.vue";
 export default {
-  components: { VolBox, VolForm, StockSelect, SelectedStock },
+  components: { VolBox, VolForm, SelectedStock },
   data() {
     return {
       row: null,
@@ -124,17 +125,18 @@
           hidden: true,
         },
         {
-          prop: "outBSTOrderId",
+          prop: "outSGOrderId",
           title: "鍑哄簱鍗曚富閿�",
-          type: "string",
+          type: "int",
           width: 90,
           hidden: true,
         },
         {
-          prop: "materialId",
-          title: "涓婃父鐗╂枡ID",
-          type: "string",
-          width: 120,
+          prop: "鍏宠仈鐨勬槑缁咺D(涓婃父)",
+          title: "鍑哄簱鍗曞彿",
+          type: "int",
+          width: 90,
+          hidden: true,
         },
         {
           prop: "materialNo",
@@ -143,11 +145,22 @@
           width: 150,
         },
         {
-          prop: "materielName",
+          prop: "materialName",
           title: "鐗╂枡鍚嶇О",
           type: "string",
           width: 150,
-          hidden: true,
+        },
+        {
+          prop: "boardFluteNo",
+          title: "妤炲埆",
+          type: "string",
+          width: 110,
+        },
+        {
+          prop: "machineName",
+          title: "鏈哄彴",
+          type: "string",
+          width: 110,
         },
         {
           prop: "width",
@@ -180,7 +193,7 @@
           width: 130,
         },
         {
-          prop: "outBSTOrderDetailStatus",
+          prop: "outSGOrderDetailStatus",
           title: "璁㈠崟鏄庣粏鐘舵��",
           type: "tag",
           width: 180,
@@ -206,12 +219,12 @@
           type: "datetime",
           width: 170,
         },
-        {
-          prop: "modifyDate",
-          title: "淇敼鏃堕棿",
-          type: "datetime",
-          width: 170,
-        },
+        // {
+        //   prop: "modifyDate",
+        //   title: "淇敼鏃堕棿",
+        //   type: "datetime",
+        //   width: 170,
+        // },
       ],
       paginations: {
         sort: "id",
@@ -219,7 +232,7 @@
         Foots: "",
         total: 0,
         // 2020.08.29澧炲姞鑷畾涔夊垎椤垫潯澶у皬
-        sizes: [60, 100, 120],
+        sizes: [60],
         size: 60, // 榛樿鍒嗛〉澶у皬
         Wheres: [],
         page: 1,
@@ -260,6 +273,7 @@
     open(row) {
       this.row = row;
       this.showDetialBox = true;
+      console.log(row);
       this.getDictionaryData();
       this.getData();
     },
@@ -276,12 +290,11 @@
         // 浠呭鏁板�煎垪姹傚拰
         if (column.property === 'xqLen' || column.property === 'assignTotalUsage' || column.property === 'outTotalUsage' || column.property === 'totalUsage') {
           const values = data.map(item => Number(item[column.property]))
-        console.log(values);
         if (!values.every(value => isNaN(value))) {
           sums[index] = values.reduce((prev, curr) => {
             return prev + (isNaN(curr) ? 0 : curr)
           }, 0);
-          //淇濈暀涓や綅灏忔暟
+          //淇濈暀4浣嶅皬鏁�
           sums[index] = sums[index].toFixed(4)
         } else {
           sums[index] = '-'
@@ -293,7 +306,7 @@
       return sums
     },
     getData() {
-      var wheres = [{ name: "outBSTOrderId", value: this.row.id }];
+      var wheres = [{ name: "outSGOrderId", value: this.row.id }];
       var param = {
         page: this.paginations.page,
         rows: this.paginations.rows,
@@ -302,7 +315,7 @@
         wheres: JSON.stringify(wheres), // 鏌ヨ鏉′欢锛屾牸寮忎负[{ name: "瀛楁", value: "xx" }]
       };
       this.http
-        .post("api/OutBSTOrderDetail/GetPageData", param, "鏌ヨ涓�")
+        .post("api/OutSGOrderDetail/GetPageData", param, "鏌ヨ涓�")
         .then((x) => {
           this.tableData = x.rows;
         });
@@ -315,22 +328,6 @@
         this.$refs.selectedStock.open(row,this.row.outBSTOrderNo);
       }
     },
-    // lockstocks() {
-    //   if (this.selection.length === 0) {
-    //     return this.$message.error("璇烽�夋嫨鍗曟嵁鏄庣粏");
-    //   }
-    //   var keys = this.selection.map((item) => item.id); // 鑾峰彇閫変腑琛岀殑id
-    //   this.http
-    //     .post("api/OutboundOrderDetail/LockOutboundStocks", keys, "鏁版嵁澶勭悊涓�")
-    //     .then((x) => {
-    //       if (!x.status) return this.$message.error(x.message);
-    //       this.$message.success("鎿嶄綔鎴愬姛");
-    //       this.showDetialBox = false;
-    //       this.$emit("parentCall", ($vue) => {
-    //         $vue.getData();
-    //       });
-    //     });
-    // },
     outbound() {
       if (this.selection.length === 0) {
         return this.$message.error("璇烽�夋嫨鍗曟嵁鏄庣粏");
@@ -357,10 +354,10 @@
     getButtonEnable(propName, row) {
       if (propName == "assignStock") {
         if (
-          row.orderDetailStatus !== 0 &&
-          row.orderDetailStatus !== 60 &&
-          row.orderDetailStatus !== 70 &&
-          row.orderDetailStatus !== 80
+          row.outSGOrderDetailStatus !== 0 &&
+          row.outSGOrderDetailStatus !== 60 &&
+          row.outSGOrderDetailStatus !== 70 &&
+          row.outSGOrderDetailStatus !== 80
         ) {
           return true;
         } else {
@@ -404,7 +401,7 @@
         var item = this.dictionaryList.find((x) => x.dicNo == column.bindKey);
         if (item) {
           var dicItem = item.data.find((x) => x.key == row[column.prop]);
-          console.log(dicItem);
+          // console.log(dicItem);
           if (dicItem) {
             return dicItem.value;
           } else {
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSClient/src/extension/outbound/extend/proOutboundOrderDetail.vue" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSClient/src/extension/outbound/extend/proOutboundOrderDetail.vue"
deleted file mode 100644
index e3357c4..0000000
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSClient/src/extension/outbound/extend/proOutboundOrderDetail.vue"
+++ /dev/null
@@ -1,615 +0,0 @@
-<template>
-  <div>
-    <vol-box
-      v-model="dialogFormVisible"
-      :on-model-close="closeCustomModel"
-      :lazy="true"
-      width="20%"
-      :padding="15"
-      title="閫夋嫨鍑哄簱绾夸綋"
-    >   
-        <div> 
-          <VolForm
-            ref="myform"
-            :label-width="120"
-            :loadKey="true"
-            :formFields="formFields1"
-            :formRules="formRules1"
-          >
-
-          </VolForm>
-        </div>
-        <template #footer>
-          <!-- <el-button type="primary" size="small" @click="submit">纭</el-button> -->
-          <el-button type="danger" size="small" @click="outbound"
-            >鍑哄簱</el-button
-          >
-        </template>
-    </vol-box>
-    <vol-box
-      v-model="showDetialBox"
-      :lazy="true"
-      width="85%"
-      :padding="15"
-      title="鍗曟嵁鏄庣粏淇℃伅"
-    >
-      <div class="box-head">
-        <!-- <el-dialog v-model="dialogFormVisible" title="閫夋嫨鍑哄簱绾夸綋" width="500" center>
-          <span>
-            It should be noted that the content will not be aligned in center by
-            default
-          </span>
-          <template #footer>
-            <div class="dialog-footer">
-              <el-button @click="outbound">鍑哄簱</el-button>
-            </div>
-          </template>
-        </el-dialog> -->
-        
-        <!-- <el-dialog
-          v-model="dialogFormVisible"
-          title="Warning"
-          width="500"
-          align-center
-        >
-          <span>Open the dialog from the center from the screen</span>
-          <template #footer>
-            <div class="dialog-footer">
-              <el-button @click="outbound">鍑哄簱</el-button>
-            </div>
-          </template>
-        </el-dialog> -->
-        <!-- <el-dialog v-model="dialogFormVisible" title="閫夋嫨鍑哄簱绾夸綋" width="500">
-          <el-form :model="form" width="500">
-            <div style="width: 300px;margin: 0px auto;"> 
-              <el-form-item label="璇烽�夋嫨绾夸綋" :label-width="formLabelWidth">
-                <el-select v-model="form.region" placeholder="閫夋嫨绾夸綋">
-                  <el-option label="1鍙风嚎" value="5236" />
-                  <el-option label="2鍙风嚎" value="5243" />
-                  <el-option label="3鍙风嚎" value="5250" />
-                </el-select>
-              </el-form-item>
-            </div>
-          </el-form>
-          <template #footer>
-            <div class="dialog-footer">
-              <el-button @click="outbound">鍑哄簱</el-button>
-            </div>
-          </template>
-        </el-dialog> -->
-        <el-alert :closable="false" style="width: 100%">
-          <el-row>
-            <el-col :span="16">
-              <span>宸查�変腑 {{ selection.length }} 椤�</span>
-            </el-col>
-            <el-col :span="8">
-              <!-- <el-link
-                type="primary"
-                size="small"
-                style="float: right; height: 20px"
-                @click="lockstocks"
-                >閿佸畾搴撳瓨</el-link
-              > -->
-              <el-link
-                type="primary"
-                size="small"
-                style="float: right; height: 20px; margin-right: 10px"
-                @click="outSelect"
-                >鐩存帴鍑哄簱</el-link
-              >
-              <el-link
-                type="primary"
-                size="small"
-                style="float: right; height: 20px; margin-right: 10px"
-                @click="getData"
-                >鍒锋柊</el-link
-              ></el-col
-            >
-          </el-row>
-        </el-alert>
-      </div>
-      <div class="box-table" style="margin-top: 1%">
-        <el-table
-          ref="singleTable"
-          :data="tableData"
-          style="width: 100%; height: 100%"
-          highlight-current-row
-          @current-change="handleCurrentChange"
-          height="500px"
-          @row-click="handleRowClick"
-          @selection-change="handleSelectionChange"
-        >
-          <el-table-column type="selection" width="55"> </el-table-column>
-          <el-table-column
-            label="搴忓彿"
-            type="index"
-            fixed="left"
-            width="55"
-            align="center"
-          ></el-table-column>
-          <el-table-column
-            v-for="(item, index) in tableColumns.filter((x) => !x.hidden)"
-            :key="index"
-            :prop="item.prop"
-            :label="item.title"
-            :width="item.width"
-            align="center"
-          >
-            <template #default="scoped">
-              <div v-if="item.type == 'icon'">
-                <el-tooltip
-                  class="item"
-                  effect="dark"
-                  :content="item.title"
-                  placement="bottom"
-                  ><el-link
-                    type="primary"
-                    :disabled="getButtonEnable(item.prop, scoped.row)"
-                    @click="tableButtonClick(scoped.row, item)"
-                    ><i :class="item.icon" style="font-size: 22px"></i></el-link
-                ></el-tooltip>
-              </div>
-
-              <div v-else-if="item.type == 'tag'">
-                <el-tag size="small">
-                  {{ getDictionary(scoped.row, item) }}
-                </el-tag>
-              </div>
-            </template>
-          </el-table-column>
-        </el-table>
-      </div>
-    </vol-box>
-    <stock-select ref="childs" ></stock-select>
-    <selected-stock
-      ref="SelectedStock"
-      @parentCall="parentCall"
-    ></selected-stock>
-  </div>
-</template>
-<script>
-import VolBox from "@/components/basic/VolBox.vue";
-import VolForm from "@/components/basic/VolForm.vue";
-import StockSelect from "./ProStockSelect.vue";
-import SelectedStock from "./ProSelectedStock.vue";
-export default {
-  components: { VolBox, VolForm, StockSelect, SelectedStock },
-  data() {
-    return {
-      row: null,
-      showDetialBox: false,
-      flag: false,
-      currentRow: null,
-      selection: [],
-      tableData: [],
-      dialogFormVisible:false,
-      formLabelWidth: '160px',
-      formFields1: {
-        LineCode: "",
-        Grade: "0",
-      },
-      formRules1:[[
-          {
-            dataKey: "line",
-            title: "閫夋嫨绾夸綋",
-            required: true,
-            field: "LineCode",
-            data: [
-              { key: "5236", value: "1鍙风嚎" },
-              { key: "5243", value: "2鍙风嚎" },
-              { key: "5250", value: "3鍙风嚎" },
-            ],
-            type: "select",
-            extra: {
-              
-            },
-          }],
-          [
-          {
-            title: "鏄惁浼樺厛",
-            field: "Grade",
-            data: [],
-            required: false,
-            type: "switch",
-          },
-        ]],
-      form: {
-        name: '',
-        region: '',
-        date1: '',
-        date2: '',
-        delivery: false,
-        type: [],
-        resource: '',
-        desc: '',
-      },
-      tableColumns: [
-        {
-          prop: "id",
-          title: "Id",
-          type: "int",
-          width: 90,
-          hidden: true,
-        },
-        {
-          prop: "proOrderId",
-          title: "鍑哄簱鍗曚富閿�",
-          type: "string",
-          width: 90,
-          hidden: true,
-        },
-        {
-          prop: "proOrderDetailStatus",
-          title: "璁㈠崟鏄庣粏鐘舵��",
-          type: "tag",
-          width: 180,
-          bindKey: "orderDetailStatusEnum",
-        },
-        {
-          prop: "saleOrder",
-          title: "閿�鍞鍗曞彿",
-          type: "string",
-          width: 150,
-        },
-        {
-          prop: "customer",
-          title: "瀹㈡埛",
-          type: "string",
-          width: 150,
-        },
-        {
-          prop: "factoryCode",
-          title: "宸ュ巶",
-          type: "string",
-          width: 150,
-        },
-        {
-          prop: "pCode",
-          title: "浜у搧缂栫爜",
-          type: "string",
-          width: 150,
-        },
-        {
-          prop: "dateCode",
-          title: "浜у搧鍛ㄦ湡",
-          type: "string",
-          width: 150,
-        },
-        {
-          prop: "pVer",
-          title: "浜у搧鐗堟湰",
-          type: "string",
-          width: 90,
-        },
-        {
-          prop: "outSpecifyVer",
-          title: "鎸囨淳鐗堟湰",
-          type: "string",
-          width: 90,
-        },
-        {
-          prop: "pLot",
-          title: "浜у搧鎵规",
-          type: "string",
-          width: 150,
-        },
-        {
-          prop: "assignStock",
-          title: "鎸囧畾搴撳瓨",
-          type: "icon",
-          width: 90,
-          icon: "el-icon-s-grid",
-        },
-        {
-          prop: "viewDetail",
-          title: "鍑哄簱璇︾粏",
-          type: "icon",
-          width: 90,
-          icon: "el-icon-s-operation",
-        },
-        {
-          prop: "qtyPcs",
-          title: "鍚堟牸PCS鏁�",
-          type: "string",
-          width: 150,
-        },
-        // {
-        //   prop: "overQtyPcs",
-        //   title: "宸插嚭鏁伴噺",
-        //   type: "string",
-        //   width: 150,
-        // },
-        {
-          prop: "lockQtyPcs",
-          title: "閿佸畾鏁伴噺",
-          type: "string",
-          width: 150,
-        },
-        {
-          prop: "xQty",
-          title: "x鏉挎暟",
-          type: "string",
-          width: 120,
-        },
-        {
-          prop: "xSite",
-          title: "x鏉夸綅",
-          type: "string",
-          width: 120,
-        },
-        {
-          prop: "unit",
-          title: "鍗曚綅",
-          type: "string",
-          width: 120,
-        },
-        
-        {
-          prop: "spareQty",
-          title: "澶囧搧鏁�",
-          type: "string",
-          width: 120,
-        },
-        {
-          prop: "creater",
-          title: "鍒涘缓浜�",
-          type: "string",
-          width: 90,
-        },
-        {
-          prop: "createDate",
-          title: "鍒涘缓鏃堕棿",
-          type: "datetime",
-          width: 160,
-        },
-        // {
-        //   prop: "modifier",
-        //   title: "淇敼浜�",
-        //   type: "string",
-        //   width: 100,
-        // },
-        // {
-        //   prop: "modifyDate",
-        //   title: "淇敼鏃堕棿",
-        //   type: "datetime",
-        //   width: 160,
-        // },
-        {
-          prop: "remark",
-          title: "澶囨敞",
-          type: "string",
-        },
-      ],
-      paginations: {
-        sort: "id",
-        order: "desc",
-        Foots: "",
-        total: 0,
-        // 2020.08.29澧炲姞鑷畾涔夊垎椤垫潯澶у皬
-        sizes: [60, 100, 120],
-        size: 60, // 榛樿鍒嗛〉澶у皬
-        Wheres: [],
-        page: 1,
-        rows: 60,
-      },
-      searchFormOptions: [
-        [
-          {
-            title: "鍗曟嵁缂栧彿",
-            field: "allocation_code",
-            type: "like",
-          },
-          {
-            title: "鍗曟嵁绫诲瀷",
-            field: "allocation_type",
-            type: "select",
-            dataKey: "OrderType",
-            data: [],
-          },
-          {
-            title: "鍗曟嵁鐘舵��",
-            field: "allocation_state",
-            type: "select",
-            dataKey: "OrderState",
-            data: [],
-          },
-        ],
-      ],
-      searchFormFields: {
-        allocation_code: "",
-        allocation_type: "",
-        allocation_state: "",
-      },
-      dictionaryList: null,
-    };
-  },
-  methods: {
-    outSelect(){
-      if (this.selection.length === 0) {
-        return this.$message.error("璇烽�夋嫨鍗曟嵁鏄庣粏");
-      }
-      this.dialogFormVisible=true;
-    },
-    open(row) {
-      this.row = row;
-      this.showDetialBox = true;
-      this.getDictionaryData();
-      this.getData();
-    },
-    getData() {
-      var wheres = [{ name: "proOrderId", value: this.row.id }];
-      var param = {
-        page: this.paginations.page,
-        rows: this.paginations.rows,
-        sort: this.paginations.sort,
-        order: this.paginations.order,
-        wheres: JSON.stringify(wheres), // 鏌ヨ鏉′欢锛屾牸寮忎负[{ name: "瀛楁", value: "xx" }]
-      };
-      this.http
-        .post("api/ProOutOrderDetail/GetPageData", param, "鏌ヨ涓�")
-        .then((x) => {
-            // console.log(x.rows);
-          this.tableData = x.rows;
-        });
-    },
-    tableButtonClick(row, column) {
-      if (column.prop == "assignStock") {
-        console.log(row);
-        console.log(this.$refs.childs);
-        this.$refs.childs.open(row);
-      } else {
-        //鐐瑰嚮鎵撳紑鍑哄簱璇︽儏
-        this.$refs.SelectedStock.open(row);
-      }
-    },
-    lockstocks() {
-      if (this.selection.length === 0) {
-        return this.$message.error("璇烽�夋嫨鍗曟嵁鏄庣粏");
-      }
-      var keys = this.selection.map((item) => item.id); // 鑾峰彇閫変腑琛岀殑id
-      this.http
-        .post("api/OutboundOrderDetail/LockOutboundStocks", keys, "鏁版嵁澶勭悊涓�")
-        .then((x) => {
-          if (!x.status) return this.$message.error(x.message);
-          this.$message.success("鎿嶄綔鎴愬姛");
-          this.showDetialBox = false;
-          this.$emit("parentCall", ($vue) => {
-            $vue.getData();
-          });
-        });
-    },
-    outbound() {
-      if (this.selection.length === 0) {
-        return this.$message.error("璇烽�夋嫨鍗曟嵁鏄庣粏");
-      }
-      //璇烽�夋嫨鍗曟潯鏁版嵁
-      if (this.selection.length > 1) {
-        return this.$message.error("璇烽�夋嫨鍗曟潯鏁版嵁");
-      }
-      var keys = this.selection.map((item) => item.id); // 鑾峰彇閫変腑琛岀殑id
-
-      this.http
-        .post("api/Task/OutProductTask?stationCode="+this.formFields1.LineCode +"&grade="+this.formFields1.Grade, keys, "鏁版嵁澶勭悊涓�")
-        .then((x) => {
-          if (!x.status) return this.$message.error(x.message);
-          this.$message.success("鎿嶄綔鎴愬姛");
-          this.formFields1.LineCode="";
-          this.formFields1.Grade="0";
-          this.dialogFormVisible=false;
-          this.$parent.refresh();
-          this.showDetialBox = false;
-          this.$emit("parentCall", ($vue) => {
-            $vue.getData();
-          });
-        });
-    },
-    setCurrent(row) {
-      this.$refs.singleTable.setCurrentRow(row);
-    },
-    handleCurrentChange(val) {
-      this.currentRow = val;
-    },
-    getButtonEnable(propName, row) {
-      console.log(row)
-      if (propName == "assignStock") {
-        if (
-          (row.proOrderDetailStatus !== 0 &&
-          row.proOrderDetailStatus !== 60 &&
-          row.proOrderDetailStatus !== 70 &&
-          row.proOrderDetailStatus !== 80) || row.qtyPcs==row.lockQtyPcs
-        ) {
-          return true;
-        } else {
-          return false;
-        }
-      }
-      return false;
-    },
-    parentCall(fun) {
-      if (typeof fun != "function") {
-        return console.log("鎵╁睍缁勪欢闇�瑕佷紶鍏ヤ竴涓洖璋冩柟娉曟墠鑳借幏鍙栫埗绾ue瀵硅薄");
-      }
-      fun(this);
-    },
-    handleRowClick(row) {
-      this.$refs.singleTable.toggleRowSelection(row);
-    },
-    handleSelectionChange(val) {
-      this.selection = val;
-    },
-    getDictionaryData() {
-      if (this.dictionaryList) {
-        return;
-      }
-      var param = [];
-      this.tableColumns.forEach((x) => {
-        if (x.type == "tag" && x.bindKey != "") {
-          param.push(x.bindKey);
-        }
-      });
-      this.http
-        .post("api/Sys_Dictionary/GetVueDictionary", param, "鏌ヨ涓�")
-        .then((x) => {
-          if (x.length > 0) {
-            this.dictionaryList = x;
-          }
-        });
-    },
-    closeCustomModel() {
-      this.formFields1.LineCode="";
-      this.formFields1.Grade="0";
-          this.dialogFormVisible=false;
-          this.$parent.refresh();
-    },
-    getDictionary(row, column) {
-      if (this.dictionaryList) {
-        var item = this.dictionaryList.find((x) => x.dicNo == column.bindKey);
-        if (item) {
-          var dicItem = item.data.find((x) => x.key == row[column.prop]);
-          console.log(dicItem);
-          if (dicItem) {
-            return dicItem.value;
-          } else {
-            return row[column.prop];
-          }
-        } else {
-          return row[column.prop];
-        }
-      }
-    },
-  },
-};
-</script>
-<style scoped>
-.text-button {
-  border: 0px;
-}
-</style>
-
-<style>
-.text-button:hover {
-  background-color: #f0f9eb !important;
-}
-
-.el-table .warning-row {
-  background: oldlace;
-}
-
-.box-table .el-table tbody tr:hover > td {
-  background-color: #d8e0d4 !important;
-  /* color: #ffffff; */
-}
-
-.box-table .el-table tbody tr.current-row > td {
-  background-color: #f0f9eb !important;
-  /* color: #ffffff; */
-}
-
-.el-table .success-row {
-  background: #f0f9eb;
-}
-
-.box-table .el-table {
-  border: 1px solid #ebeef5;
-}
-</style>
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSClient/src/extension/outbound/mesOutboundOrder.js" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSClient/src/extension/outbound/mesOutboundOrder.js"
deleted file mode 100644
index 67a03bf..0000000
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSClient/src/extension/outbound/mesOutboundOrder.js"
+++ /dev/null
@@ -1,102 +0,0 @@
-
-//姝s鏂囦欢鏄敤鏉ヨ嚜瀹氫箟鎵╁睍涓氬姟浠g爜锛屽彲浠ユ墿灞曚竴浜涜嚜瀹氫箟椤甸潰鎴栬�呴噸鏂伴厤缃敓鎴愮殑浠g爜
-import gridBody from './extend/MesOutOrderDetail.vue'
-import gridHeader from './extend/addMesOutOrder.vue'
-let extension = {
-  components: {
-    //鏌ヨ鐣岄潰鎵╁睍缁勪欢
-    gridHeader: gridHeader,
-    gridBody: gridBody,
-    gridFooter: '',
-    //鏂板缓銆佺紪杈戝脊鍑烘鎵╁睍缁勪欢
-    modelHeader: '',
-    modelBody: '',
-    modelFooter: ''
-  },
-  tableAction: '', //鎸囧畾鏌愬紶琛ㄧ殑鏉冮檺(杩欓噷濉啓琛ㄥ悕,榛樿涓嶇敤濉啓)
-  buttons: { view: [], box: [], detail: [] }, //鎵╁睍鐨勬寜閽�
-  methods: {
-    //涓嬮潰杩欎簺鏂规硶鍙互淇濈暀涔熷彲浠ュ垹闄�
-    onInit() {
-
-      let addButton = this.buttons.find(item => item.value == 'Add');
-      if (addButton) {
-        addButton.onClick = () => {
-          this.$refs.gridHeader.open();
-        }
-      }
-
-      let executeOutbound = this.buttons.find(item => item.value == 'ExecuteOutbound');
-      if (executeOutbound) {
-        executeOutbound.onClick = () => {
-          let rows = this.$refs.table.getSelected();
-          if (rows.length == 0) return this.$error("璇烽�夋嫨鏁版嵁!");
-          if (rows.length > 1) return this.$error("璇烽�夋嫨涓�鏉℃暟鎹�!");
-          var param = rows[0].taskNum;
-          this.http
-            .post("api/Task/HandSubstrateOut?orderId=" + rows[0].id, null, "鏁版嵁澶勭悊涓�...")
-            .then((x) => {
-              if (x.status) {
-                this.$Message.success('鏁版嵁澶勭悊鎴愬姛.');
-                this.refresh();
-              } else {
-                return this.$error(x.message);
-              }
-            });
-        }
-      }
-
-      //鎵╁睍椤甸潰鍒濆鍖栨搷浣�
-      this.columns.push({
-        field: '鎿嶄綔',
-        title: '鎿嶄綔',
-        width: 90,
-        fixed: 'right',
-        align: 'center',
-        formatter: (row) => {
-          return (
-            '<i style="cursor: pointer;color: #2d8cf0;"class="el-icon-view">鏌ョ湅鏄庣粏</i>'
-          );
-        },
-        click: (row) => {
-          this.$refs.gridBody.open(row);
-        }
-      });
-    },
-    onInited() {
-      //妗嗘灦鍒濆鍖栭厤缃悗
-      //濡傛灉瑕侀厤缃槑缁嗚〃,鍦ㄦ鏂规硶鎿嶄綔
-      //this.detailOptions.columns.forEach(column=>{ });
-    },
-    searchBefore(param) {
-      //鐣岄潰鏌ヨ鍓�,鍙互缁檖aram.wheres娣诲姞鏌ヨ鍙傛暟
-      //杩斿洖false锛屽垯涓嶄細鎵ц鏌ヨ
-      return true;
-    },
-    searchAfter(result) {
-      //鏌ヨ鍚庯紝result杩斿洖鐨勬煡璇㈡暟鎹�,鍙互鍦ㄦ樉绀哄埌琛ㄦ牸鍓嶅鐞嗚〃鏍肩殑鍊�
-      return true;
-    },
-    addBefore(formData) {
-      //鏂板缓淇濆瓨鍓峟ormData涓哄璞★紝鍖呮嫭鏄庣粏琛紝鍙互缁欑粰琛ㄥ崟璁剧疆鍊硷紝鑷繁杈撳嚭鐪媐ormData鐨勫��
-      return true;
-    },
-    updateBefore(formData) {
-      //缂栬緫淇濆瓨鍓峟ormData涓哄璞★紝鍖呮嫭鏄庣粏琛ㄣ�佸垹闄よ鐨処d
-      return true;
-    },
-    rowClick({ row, column, event }) {
-      //鏌ヨ鐣岄潰鐐瑰嚮琛屼簨浠�
-      this.$refs.table.$refs.table.toggleRowSelection(row); //鍗曞嚮琛屾椂閫変腑褰撳墠琛�;
-    },
-    modelOpenAfter(row) {
-      //鐐瑰嚮缂栬緫銆佹柊寤烘寜閽脊鍑烘鍚庯紝鍙互鍦ㄦ澶勫啓閫昏緫锛屽锛屼粠鍚庡彴鑾峰彇鏁版嵁
-      //(1)鍒ゆ柇鏄紪杈戣繕鏄柊寤烘搷浣滐細 this.currentAction=='Add';
-      //(2)缁欏脊鍑烘璁剧疆榛樿鍊�
-      //(3)this.editFormFields.瀛楁='xxx';
-      //濡傛灉闇�瑕佺粰涓嬫媺妗嗚缃粯璁ゅ�硷紝璇烽亶鍘唗his.editFormOptions鎵惧埌瀛楁閰嶇疆瀵瑰簲data灞炴�х殑key鍊�
-      //鐪嬩笉鎳傚氨鎶婅緭鍑虹湅锛歝onsole.log(this.editFormOptions)
-    }
-  }
-};
-export default extension;
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSClient/src/extension/outbound/mesPPCutOutboundOrder.js" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSClient/src/extension/outbound/mesPPCutOutboundOrder.js"
deleted file mode 100644
index fa57908..0000000
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSClient/src/extension/outbound/mesPPCutOutboundOrder.js"
+++ /dev/null
@@ -1,74 +0,0 @@
-
-//姝s鏂囦欢鏄敤鏉ヨ嚜瀹氫箟鎵╁睍涓氬姟浠g爜锛屽彲浠ユ墿灞曚竴浜涜嚜瀹氫箟椤甸潰鎴栬�呴噸鏂伴厤缃敓鎴愮殑浠g爜
-import gridBody from './extend/mesPPCutOutOrderDetail.vue'
-let extension = {
-    components: {
-      //鏌ヨ鐣岄潰鎵╁睍缁勪欢
-      gridHeader: '',
-      gridBody: gridBody,
-      gridFooter: '',
-      //鏂板缓銆佺紪杈戝脊鍑烘鎵╁睍缁勪欢
-      modelHeader: '',
-      modelBody: '',
-      modelFooter: ''
-    },
-    tableAction: '', //鎸囧畾鏌愬紶琛ㄧ殑鏉冮檺(杩欓噷濉啓琛ㄥ悕,榛樿涓嶇敤濉啓)
-    buttons: { view: [], box: [], detail: [] }, //鎵╁睍鐨勬寜閽�
-    methods: {
-       //涓嬮潰杩欎簺鏂规硶鍙互淇濈暀涔熷彲浠ュ垹闄�
-      onInit() {  
-        //鎵╁睍椤甸潰鍒濆鍖栨搷浣�
-        this.columns.push({
-          field: '鎿嶄綔',
-          title: '鎿嶄綔',
-          width: 90,
-          fixed: 'right',
-          align: 'center',
-          formatter: (row) => {
-              return (
-                  '<i style="cursor: pointer;color: #2d8cf0;"class="el-icon-view">鏌ョ湅鏄庣粏</i>'
-              );
-          },
-          click: (row) => {
-              this.$refs.gridBody.open(row);
-          }
-      });
-      },
-      onInited() {
-        //妗嗘灦鍒濆鍖栭厤缃悗
-        //濡傛灉瑕侀厤缃槑缁嗚〃,鍦ㄦ鏂规硶鎿嶄綔
-        //this.detailOptions.columns.forEach(column=>{ });
-      },
-      searchBefore(param) {
-        //鐣岄潰鏌ヨ鍓�,鍙互缁檖aram.wheres娣诲姞鏌ヨ鍙傛暟
-        //杩斿洖false锛屽垯涓嶄細鎵ц鏌ヨ
-        return true;
-      },
-      searchAfter(result) {
-        //鏌ヨ鍚庯紝result杩斿洖鐨勬煡璇㈡暟鎹�,鍙互鍦ㄦ樉绀哄埌琛ㄦ牸鍓嶅鐞嗚〃鏍肩殑鍊�
-        return true;
-      },
-      addBefore(formData) {
-        //鏂板缓淇濆瓨鍓峟ormData涓哄璞★紝鍖呮嫭鏄庣粏琛紝鍙互缁欑粰琛ㄥ崟璁剧疆鍊硷紝鑷繁杈撳嚭鐪媐ormData鐨勫��
-        return true;
-      },
-      updateBefore(formData) {
-        //缂栬緫淇濆瓨鍓峟ormData涓哄璞★紝鍖呮嫭鏄庣粏琛ㄣ�佸垹闄よ鐨処d
-        return true;
-      },
-      rowClick({ row, column, event }) {
-        //鏌ヨ鐣岄潰鐐瑰嚮琛屼簨浠�
-        this.$refs.table.$refs.table.toggleRowSelection(row); //鍗曞嚮琛屾椂閫変腑褰撳墠琛�;
-      },
-      modelOpenAfter(row) {
-        //鐐瑰嚮缂栬緫銆佹柊寤烘寜閽脊鍑烘鍚庯紝鍙互鍦ㄦ澶勫啓閫昏緫锛屽锛屼粠鍚庡彴鑾峰彇鏁版嵁
-        //(1)鍒ゆ柇鏄紪杈戣繕鏄柊寤烘搷浣滐細 this.currentAction=='Add';
-        //(2)缁欏脊鍑烘璁剧疆榛樿鍊�
-        //(3)this.editFormFields.瀛楁='xxx';
-        //濡傛灉闇�瑕佺粰涓嬫媺妗嗚缃粯璁ゅ�硷紝璇烽亶鍘唗his.editFormOptions鎵惧埌瀛楁閰嶇疆瀵瑰簲data灞炴�х殑key鍊�
-        //鐪嬩笉鎳傚氨鎶婅緭鍑虹湅锛歝onsole.log(this.editFormOptions)
-      }
-    }
-  };
-  export default extension;
-  
\ No newline at end of file
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSClient/src/extension/outbound/mesPPCutOutboundOrderDetail.js" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSClient/src/extension/outbound/mesPPCutOutboundOrderDetail.js"
deleted file mode 100644
index 7d1cbad..0000000
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSClient/src/extension/outbound/mesPPCutOutboundOrderDetail.js"
+++ /dev/null
@@ -1,73 +0,0 @@
-
-//姝s鏂囦欢鏄敤鏉ヨ嚜瀹氫箟鎵╁睍涓氬姟浠g爜锛屽彲浠ユ墿灞曚竴浜涜嚜瀹氫箟椤甸潰鎴栬�呴噸鏂伴厤缃敓鎴愮殑浠g爜
-let extension = {
-    components: {
-      //鏌ヨ鐣岄潰鎵╁睍缁勪欢
-      gridHeader: '',
-      gridBody: gridBody,
-      gridFooter: '',
-      //鏂板缓銆佺紪杈戝脊鍑烘鎵╁睍缁勪欢
-      modelHeader: '',
-      modelBody: '',
-      modelFooter: ''
-    },
-    tableAction: '', //鎸囧畾鏌愬紶琛ㄧ殑鏉冮檺(杩欓噷濉啓琛ㄥ悕,榛樿涓嶇敤濉啓)
-    buttons: { view: [], box: [], detail: [] }, //鎵╁睍鐨勬寜閽�
-    methods: {
-       //涓嬮潰杩欎簺鏂规硶鍙互淇濈暀涔熷彲浠ュ垹闄�
-      onInit() {  
-        //鎵╁睍椤甸潰鍒濆鍖栨搷浣�
-        this.columns.push({
-          field: '鎿嶄綔',
-          title: '鎿嶄綔',
-          width: 90,
-          fixed: 'right',
-          align: 'center',
-          formatter: (row) => {
-              return (
-                  '<i style="cursor: pointer;color: #2d8cf0;"class="el-icon-view">鏌ョ湅鏄庣粏</i>'
-              );
-          },
-          click: (row) => {
-              this.$refs.gridBody.open(row);
-          }
-      });
-      },
-      onInited() {
-        //妗嗘灦鍒濆鍖栭厤缃悗
-        //濡傛灉瑕侀厤缃槑缁嗚〃,鍦ㄦ鏂规硶鎿嶄綔
-        //this.detailOptions.columns.forEach(column=>{ });
-      },
-      searchBefore(param) {
-        //鐣岄潰鏌ヨ鍓�,鍙互缁檖aram.wheres娣诲姞鏌ヨ鍙傛暟
-        //杩斿洖false锛屽垯涓嶄細鎵ц鏌ヨ
-        return true;
-      },
-      searchAfter(result) {
-        //鏌ヨ鍚庯紝result杩斿洖鐨勬煡璇㈡暟鎹�,鍙互鍦ㄦ樉绀哄埌琛ㄦ牸鍓嶅鐞嗚〃鏍肩殑鍊�
-        return true;
-      },
-      addBefore(formData) {
-        //鏂板缓淇濆瓨鍓峟ormData涓哄璞★紝鍖呮嫭鏄庣粏琛紝鍙互缁欑粰琛ㄥ崟璁剧疆鍊硷紝鑷繁杈撳嚭鐪媐ormData鐨勫��
-        return true;
-      },
-      updateBefore(formData) {
-        //缂栬緫淇濆瓨鍓峟ormData涓哄璞★紝鍖呮嫭鏄庣粏琛ㄣ�佸垹闄よ鐨処d
-        return true;
-      },
-      rowClick({ row, column, event }) {
-        //鏌ヨ鐣岄潰鐐瑰嚮琛屼簨浠�
-        this.$refs.table.$refs.table.toggleRowSelection(row); //鍗曞嚮琛屾椂閫変腑褰撳墠琛�;
-      },
-      modelOpenAfter(row) {
-        //鐐瑰嚮缂栬緫銆佹柊寤烘寜閽脊鍑烘鍚庯紝鍙互鍦ㄦ澶勫啓閫昏緫锛屽锛屼粠鍚庡彴鑾峰彇鏁版嵁
-        //(1)鍒ゆ柇鏄紪杈戣繕鏄柊寤烘搷浣滐細 this.currentAction=='Add';
-        //(2)缁欏脊鍑烘璁剧疆榛樿鍊�
-        //(3)this.editFormFields.瀛楁='xxx';
-        //濡傛灉闇�瑕佺粰涓嬫媺妗嗚缃粯璁ゅ�硷紝璇烽亶鍘唗his.editFormOptions鎵惧埌瀛楁閰嶇疆瀵瑰簲data灞炴�х殑key鍊�
-        //鐪嬩笉鎳傚氨鎶婅緭鍑虹湅锛歝onsole.log(this.editFormOptions)
-      }
-    }
-  };
-  export default extension;
-  
\ No newline at end of file
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSClient/src/extension/outbound/mesPPOutboundOrderDetail.js" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSClient/src/extension/outbound/mesPPOutboundOrderDetail.js"
deleted file mode 100644
index 04c9401..0000000
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSClient/src/extension/outbound/mesPPOutboundOrderDetail.js"
+++ /dev/null
@@ -1,72 +0,0 @@
-
-//姝s鏂囦欢鏄敤鏉ヨ嚜瀹氫箟鎵╁睍涓氬姟浠g爜锛屽彲浠ユ墿灞曚竴浜涜嚜瀹氫箟椤甸潰鎴栬�呴噸鏂伴厤缃敓鎴愮殑浠g爜
-let extension = {
-  components: {
-    //鏌ヨ鐣岄潰鎵╁睍缁勪欢
-    gridHeader: '',
-    gridBody: gridBody,
-    gridFooter: '',
-    //鏂板缓銆佺紪杈戝脊鍑烘鎵╁睍缁勪欢
-    modelHeader: '',
-    modelBody: '',
-    modelFooter: ''
-  },
-  tableAction: '', //鎸囧畾鏌愬紶琛ㄧ殑鏉冮檺(杩欓噷濉啓琛ㄥ悕,榛樿涓嶇敤濉啓)
-  buttons: { view: [], box: [], detail: [] }, //鎵╁睍鐨勬寜閽�
-  methods: {
-     //涓嬮潰杩欎簺鏂规硶鍙互淇濈暀涔熷彲浠ュ垹闄�
-    onInit() {  
-      //鎵╁睍椤甸潰鍒濆鍖栨搷浣�
-      this.columns.push({
-        field: '鎿嶄綔',
-        title: '鎿嶄綔',
-        width: 90,
-        fixed: 'right',
-        align: 'center',
-        formatter: (row) => {
-            return (
-                '<i style="cursor: pointer;color: #2d8cf0;"class="el-icon-view">鏌ョ湅鏄庣粏</i>'
-            );
-        },
-        click: (row) => {
-            this.$refs.gridBody.open(row);
-        }
-    });
-    },
-    onInited() {
-      //妗嗘灦鍒濆鍖栭厤缃悗
-      //濡傛灉瑕侀厤缃槑缁嗚〃,鍦ㄦ鏂规硶鎿嶄綔
-      //this.detailOptions.columns.forEach(column=>{ });
-    },
-    searchBefore(param) {
-      //鐣岄潰鏌ヨ鍓�,鍙互缁檖aram.wheres娣诲姞鏌ヨ鍙傛暟
-      //杩斿洖false锛屽垯涓嶄細鎵ц鏌ヨ
-      return true;
-    },
-    searchAfter(result) {
-      //鏌ヨ鍚庯紝result杩斿洖鐨勬煡璇㈡暟鎹�,鍙互鍦ㄦ樉绀哄埌琛ㄦ牸鍓嶅鐞嗚〃鏍肩殑鍊�
-      return true;
-    },
-    addBefore(formData) {
-      //鏂板缓淇濆瓨鍓峟ormData涓哄璞★紝鍖呮嫭鏄庣粏琛紝鍙互缁欑粰琛ㄥ崟璁剧疆鍊硷紝鑷繁杈撳嚭鐪媐ormData鐨勫��
-      return true;
-    },
-    updateBefore(formData) {
-      //缂栬緫淇濆瓨鍓峟ormData涓哄璞★紝鍖呮嫭鏄庣粏琛ㄣ�佸垹闄よ鐨処d
-      return true;
-    },
-    rowClick({ row, column, event }) {
-      //鏌ヨ鐣岄潰鐐瑰嚮琛屼簨浠�
-      this.$refs.table.$refs.table.toggleRowSelection(row); //鍗曞嚮琛屾椂閫変腑褰撳墠琛�;
-    },
-    modelOpenAfter(row) {
-      //鐐瑰嚮缂栬緫銆佹柊寤烘寜閽脊鍑烘鍚庯紝鍙互鍦ㄦ澶勫啓閫昏緫锛屽锛屼粠鍚庡彴鑾峰彇鏁版嵁
-      //(1)鍒ゆ柇鏄紪杈戣繕鏄柊寤烘搷浣滐細 this.currentAction=='Add';
-      //(2)缁欏脊鍑烘璁剧疆榛樿鍊�
-      //(3)this.editFormFields.瀛楁='xxx';
-      //濡傛灉闇�瑕佺粰涓嬫媺妗嗚缃粯璁ゅ�硷紝璇烽亶鍘唗his.editFormOptions鎵惧埌瀛楁閰嶇疆瀵瑰簲data灞炴�х殑key鍊�
-      //鐪嬩笉鎳傚氨鎶婅緭鍑虹湅锛歝onsole.log(this.editFormOptions)
-    }
-  }
-};
-export default extension;
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSClient/src/extension/outbound/outBSTOrder.js" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSClient/src/extension/outbound/outBSTOrder.js"
index 122b98c..8855c6b 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSClient/src/extension/outbound/outBSTOrder.js"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSClient/src/extension/outbound/outBSTOrder.js"
@@ -1,11 +1,10 @@
 
 //姝s鏂囦欢鏄敤鏉ヨ嚜瀹氫箟鎵╁睍涓氬姟浠g爜锛屽彲浠ユ墿灞曚竴浜涜嚜瀹氫箟椤甸潰鎴栬�呴噸鏂伴厤缃敓鎴愮殑浠g爜
-import gridBody from './extend/outOrderDetail.vue'
 let extension = {
     components: {
       //鏌ヨ鐣岄潰鎵╁睍缁勪欢
       gridHeader: '',
-      gridBody: gridBody,
+      gridBody: '',
       gridFooter: '',
       //鏂板缓銆佺紪杈戝脊鍑烘鎵╁睍缁勪欢
       modelHeader: '',
@@ -18,21 +17,21 @@
        //涓嬮潰杩欎簺鏂规硶鍙互淇濈暀涔熷彲浠ュ垹闄�
       onInit() {  
         //鎵╁睍椤甸潰鍒濆鍖栨搷浣�
-        this.columns.push({
-          field: '鎿嶄綔',
-          title: '鎿嶄綔',
-          width: 90,
-          fixed: 'right',
-          align: 'center',
-          formatter: (row) => {
-              return (
-                  '<i style="cursor: pointer;color: #2d8cf0;"class="el-icon-view">鏌ョ湅鏄庣粏</i>'
-              );
-          },
-          click: (row) => {
-              this.$refs.gridBody.open(row);
-          }
-      });
+      //   this.columns.push({
+      //     field: '鎿嶄綔',
+      //     title: '鎿嶄綔',
+      //     width: 90,
+      //     fixed: 'right',
+      //     align: 'center',
+      //     formatter: (row) => {
+      //         return (
+      //             '<i style="cursor: pointer;color: #2d8cf0;"class="el-icon-view">鏌ョ湅鏄庣粏</i>'
+      //         );
+      //     },
+      //     click: (row) => {
+      //         this.$refs.gridBody.open(row);
+      //     }
+      // });
       },
       onInited() {
         //妗嗘灦鍒濆鍖栭厤缃悗
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSClient/src/extension/outbound/outMESOrder.js" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSClient/src/extension/outbound/outMESOrder.js"
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSClient/src/extension/outbound/outMESOrder.js"
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSClient/src/extension/outbound/mesPPOutboundOrder.js" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSClient/src/extension/outbound/outSGOrder.js"
similarity index 97%
rename from "\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSClient/src/extension/outbound/mesPPOutboundOrder.js"
rename to "\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSClient/src/extension/outbound/outSGOrder.js"
index fa95931..ce5cafe 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSClient/src/extension/outbound/mesPPOutboundOrder.js"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSClient/src/extension/outbound/outSGOrder.js"
@@ -1,6 +1,6 @@
 
 //姝s鏂囦欢鏄敤鏉ヨ嚜瀹氫箟鎵╁睍涓氬姟浠g爜锛屽彲浠ユ墿灞曚竴浜涜嚜瀹氫箟椤甸潰鎴栬�呴噸鏂伴厤缃敓鎴愮殑浠g爜
-import gridBody from './extend/mesPPoutOrderDetail.vue'
+import gridBody from './extend/outSGOrderDetail.vue'
 let extension = {
     components: {
       //鏌ヨ鐣岄潰鎵╁睍缁勪欢
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSClient/src/extension/outbound/proOutOrderDetail.js" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSClient/src/extension/outbound/outSGOrderDetail.js"
similarity index 99%
rename from "\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSClient/src/extension/outbound/proOutOrderDetail.js"
rename to "\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSClient/src/extension/outbound/outSGOrderDetail.js"
index 24e1d94..5362714 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSClient/src/extension/outbound/proOutOrderDetail.js"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSClient/src/extension/outbound/outSGOrderDetail.js"
@@ -1,6 +1,5 @@
 
 //姝s鏂囦欢鏄敤鏉ヨ嚜瀹氫箟鎵╁睍涓氬姟浠g爜锛屽彲浠ユ墿灞曚竴浜涜嚜瀹氫箟椤甸潰鎴栬�呴噸鏂伴厤缃敓鎴愮殑浠g爜
-
 let extension = {
     components: {
       //鏌ヨ鐣岄潰鎵╁睍缁勪欢
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSClient/src/extension/outbound/proOutOrder.js" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSClient/src/extension/outbound/proOutOrder.js"
deleted file mode 100644
index f918ec2..0000000
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSClient/src/extension/outbound/proOutOrder.js"
+++ /dev/null
@@ -1,110 +0,0 @@
-
-//姝s鏂囦欢鏄敤鏉ヨ嚜瀹氫箟鎵╁睍涓氬姟浠g爜锛屽彲浠ユ墿灞曚竴浜涜嚜瀹氫箟椤甸潰鎴栬�呴噸鏂伴厤缃敓鎴愮殑浠g爜
-import { el } from 'element-plus/es/locales.mjs';
-import gridBody from './extend/proOutboundOrderDetail.vue'
-let extension = {
-    components: {
-      //鏌ヨ鐣岄潰鎵╁睍缁勪欢
-      gridHeader: '',
-      gridBody: gridBody,
-      gridFooter: '',
-      //鏂板缓銆佺紪杈戝脊鍑烘鎵╁睍缁勪欢
-      modelHeader: '',
-      modelBody: '',
-      modelFooter: ''
-    },
-    tableAction: '', //鎸囧畾鏌愬紶琛ㄧ殑鏉冮檺(杩欓噷濉啓琛ㄥ悕,榛樿涓嶇敤濉啓)
-    buttons: { view: [], box: [], detail: [] }, //鎵╁睍鐨勬寜閽�
-    methods: {
-       //涓嬮潰杩欎簺鏂规硶鍙互淇濈暀涔熷彲浠ュ垹闄�
-      onInit() {  
-        let outSysc = this.buttons.find(x => x.value == 'ExecuteOutboundSync');
-        if (outSysc) {
-          outSysc.onClick = function () {
-            let rows = this.$refs.table.getSelected();
-            if (rows.length == 0) return this.$error("璇烽�夋嫨鏁版嵁!");
-            if (rows.length > 1) return this.$error("璇烽�夋嫨鍗曟潯鏁版嵁!");
-            // this.$confirm("纭鍒涘缓鏀惰揣鍗�" + rows[0].receiveOrderNo + "鐨勫叆搴撳悧?", "璀﹀憡", {
-            //   confirmButtonText: "纭畾",
-            //   cancelButtonText: "鍙栨秷",
-            //   type: "warning",
-            //   center: true,
-            // }).then(() => {
-
-              var keys = rows.map(x => { return x.proOutOrderNo });
-              this.http
-                .post("api/ProOutOrder/OutProErpSync?outProOrderNo=" + keys[0], null, "鏁版嵁澶勭悊涓�")
-                .then((x) => {
-                  if (!x.status) return this.$message.error(x.message);
-                  this.$message.success("鎿嶄綔鎴愬姛");
-                  this.refresh();
-                });
-            // });
-          }
-
-        }
-        //鎵╁睍椤甸潰鍒濆鍖栨搷浣�
-        this.columns.push({
-            field: '鎿嶄綔',
-            title: '鎿嶄綔',
-            width: 90,
-            fixed: 'right',
-            align: 'center',
-            formatter: (row) => {
-                return (
-                    '<i style="cursor: pointer;color: #2d8cf0;"class="el-icon-view">鏌ョ湅鏄庣粏</i>'
-                );
-            },
-            click: (row) => {
-                this.$refs.gridBody.open(row);
-            }
-        });
-      },
-      onInited() {
-        //妗嗘灦鍒濆鍖栭厤缃悗
-        //濡傛灉瑕侀厤缃槑缁嗚〃,鍦ㄦ鏂规硶鎿嶄綔
-        //this.detailOptions.columns.forEach(column=>{ });
-      },
-      searchBefore(param) {
-        //鐣岄潰鏌ヨ鍓�,鍙互缁檖aram.wheres娣诲姞鏌ヨ鍙傛暟
-        //杩斿洖false锛屽垯涓嶄細鎵ц鏌ヨ
-        return true;
-      },
-      searchAfter(result) {
-        //鏌ヨ鍚庯紝result杩斿洖鐨勬煡璇㈡暟鎹�,鍙互鍦ㄦ樉绀哄埌琛ㄦ牸鍓嶅鐞嗚〃鏍肩殑鍊�
-        return true;
-      },
-      addBefore(formData) {
-        //鏂板缓淇濆瓨鍓峟ormData涓哄璞★紝鍖呮嫭鏄庣粏琛紝鍙互缁欑粰琛ㄥ崟璁剧疆鍊硷紝鑷繁杈撳嚭鐪媐ormData鐨勫��
-        return true;
-      },
-      updateBefore(formData) {
-        //缂栬緫淇濆瓨鍓峟ormData涓哄璞★紝鍖呮嫭鏄庣粏琛ㄣ�佸垹闄よ鐨処d
-        return true;
-      },
-      rowClick({ row, column, event }) {
-        //鏌ヨ鐣岄潰鐐瑰嚮琛屼簨浠�
-        this.$refs.table.$refs.table.toggleRowSelection(row); //鍗曞嚮琛屾椂閫変腑褰撳墠琛�;
-        let outSysc = this.buttons.find(x => x.value == 'ExecuteOutboundSync'); 
-        console.log(outSysc);
-        if (row.proOrderStatus==2) {
-          if (!outSysc.hidden){
-            this.$message.warning(row.proOutOrderNo+"璁㈠崟宸插畬鎴愶紝鏃犻渶鍚屾");
-            outSysc.hidden=true;
-          }
-        }else{
-          outSysc.hidden=false;
-        }
-      },
-      modelOpenAfter(row) {
-        //鐐瑰嚮缂栬緫銆佹柊寤烘寜閽脊鍑烘鍚庯紝鍙互鍦ㄦ澶勫啓閫昏緫锛屽锛屼粠鍚庡彴鑾峰彇鏁版嵁
-        //(1)鍒ゆ柇鏄紪杈戣繕鏄柊寤烘搷浣滐細 this.currentAction=='Add';
-        //(2)缁欏脊鍑烘璁剧疆榛樿鍊�
-        //(3)this.editFormFields.瀛楁='xxx';
-        //濡傛灉闇�瑕佺粰涓嬫媺妗嗚缃粯璁ゅ�硷紝璇烽亶鍘唗his.editFormOptions鎵惧埌瀛楁閰嶇疆瀵瑰簲data灞炴�х殑key鍊�
-        //鐪嬩笉鎳傚氨鎶婅緭鍑虹湅锛歝onsole.log(this.editFormOptions)
-      }
-    }
-  };
-  export default extension;
-  
\ No newline at end of file
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSClient/src/router/viewGird.js" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSClient/src/router/viewGird.js"
index 4e841e6..86713bb 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSClient/src/router/viewGird.js"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSClient/src/router/viewGird.js"
@@ -171,37 +171,7 @@
     name: 'userInfo',
     component: () => import('@/views/basic/userInfo.vue')
   }
-  , {
-    path: '/mesOutboundOrder',
-    name: 'mesOutboundOrder',
-    component: () => import('@/views/outbound/mesOutboundOrder.vue')
-  },{
-    path: '/mesPPOutboundOrder',
-    name: 'mesPPOutboundOrder',
-    component: () => import('@/views/outbound/mesPPOutboundOrder.vue')
-  },{
-    path: '/mesPPOutboundOrderDetail',
-    name: 'mesPPOutboundOrderDetail',
-    component: () => import('@/views/outbound/mesPPOutboundOrderDetail.vue')
-  },{
-    path: '/mesPPCutOutboundOrder',
-    name: 'mesPPCutOutboundOrder',
-    component: () => import('@/views/outbound/mesPPCutOutboundOrder.vue')
-  }, {
-    path: '/mesPPCutOutboundOrderDetail',
-    name: 'mesPPCutOutboundOrderDetail',
-    component: () => import('@/views/outbound/mesPPCutOutboundOrderDetail.vue')
-  },
-  {
-    path: '/mesPPBackInboundOrder',
-    name: 'mesPPBackInboundOrder',
-    component: () => import('@/views/inbound/mesPPBackInboundOrder.vue')
-  },
-  {
-    path: '/mesPPBackInboundOrderDetail',
-    name: 'mesPPBackInboundOrderDetail',
-    component: () => import('@/views/inbound/mesPPBackInboundOrderDetail.vue')
-  },
+  ,
   {
     path: '/returnOrder',
     name: 'returnOrder',
@@ -230,14 +200,6 @@
     path: '/proStockInfoDetail_Hty',
     name: 'proStockInfoDetail_Hty',
     component: () => import('@/views/stock/proStockInfoDetail_Hty.vue')
-  },{
-    path: '/proOutOrder',
-    name: 'proOutOrder',
-    component: () => import('@/views/outbound/proOutOrder.vue')
-  }, {
-    path: '/proOutOrderDetail',
-    name: 'proOutOrderDetail',
-    component: () => import('@/views/outbound/proOutOrderDetail.vue')
   },
   {
     path: '/mesProInOrder',
@@ -278,6 +240,11 @@
     path: '/agvStationInfo',
     name: 'agvStationInfo',
     component: () => import('@/views/basic/agvStationInfo.vue')
+  },
+  {
+    path: '/outSGOrder',
+    name: 'outSGOrder',
+    component: () => import('@/views/outbound/outSGOrder.vue')
   }
 ]
 export default viewgird
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSClient/src/views/outbound/mesOutboundOrder.vue" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSClient/src/views/outbound/mesOutboundOrder.vue"
deleted file mode 100644
index 6f368a2..0000000
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSClient/src/views/outbound/mesOutboundOrder.vue"
+++ /dev/null
@@ -1,195 +0,0 @@
-
-<template>
-    <view-grid
-      ref="grid"
-      :columns="columns"
-      :detail="detail"
-      :editFormFields="editFormFields"
-      :editFormOptions="editFormOptions"
-      :searchFormFields="searchFormFields"
-      :searchFormOptions="searchFormOptions"
-      :table="table"
-      :extend="extend"
-    >
-    </view-grid>
-  </template>
-    <script>
-  import extend from "@/extension/outbound/mesOutboundOrder.js";
-  import { ref, defineComponent } from "vue";
-  export default defineComponent({
-    setup() {
-      const table = ref({
-        key: "id",
-        footer: "Foots",
-        cnName: "MES鍑哄簱鍗�",
-        name: "mesOutboundOrder",
-        url: "/mesOutboundOrder/",
-        sortName: "id",
-      });
-      const editFormFields = ref({
-      });
-      const editFormOptions = ref([
-        [
-        ],
-      ]);
-      const searchFormFields = ref({
-        orderNo: "",
-        taskNo:"",
-        materialCode: "",
-        batchNo: "",
-      });
-      const searchFormOptions = ref([
-        [
-          { title: "鍗曟嵁缂栧彿", field: "orderNo", type:"like" },
-          { title: "MES浠诲姟鍗曞彿", field: "taskNo", type:"like" },
-          { title: "鐗╂枡缂栧彿", field: "materialCode" ,type:"like"},
-          { title: "鎵规鍙�", field: "batchNo" ,type:"like"},
-        ],
-      ]);
-      const columns = ref([
-      {
-          field: "id",
-          title: "Id",
-          type: "int",
-          width: 90,
-          hidden: true,
-          readonly: true,
-          align: "left",
-        },
-        {
-          field: "warehouseId",
-          title: "鎵�灞炰粨搴�",
-          type: "string",
-          width: 80,
-          align: "left",
-          bind: { key: "warehouses", data: [] },
-        },
-        {
-          field: "orderNo",
-          title: "鍗曟嵁缂栧彿",
-          type: "string",
-          width: 150,
-          align: "left",
-        },
-        {
-          field: "taskNo",
-          title: "MES浠诲姟鍗曞彿",
-          type: "string",
-          width: 150,
-          align: "left",
-        },
-        {
-          field: "batchNo",
-          title: "鎵规鍙�",
-          type: "decimal",
-          width: 90,
-          align: "left",
-        },
-        // {
-        //   field: "OrderStatus",
-        //   title: "鍗曟嵁鏁伴噺",
-        //   type: "string",
-        //   width: 90,
-        //   align: "left",
-        //   bind: { key: "orderDetailStatusEnum", data: [] }
-        // },
-        {
-          field: "createType",
-          title: "鍒涘缓鏂瑰紡",
-          type: "string",
-          width: 120,
-          align: "left",
-          bind: { key: "createType", data: [] },
-        },
-        {
-          field: "materialCode",
-          title: "鐗╂枡缂栧彿",
-          type: "string",
-          width: 200,
-          align: "left",
-        },
-        {
-          field: "materialName",
-          title: "鐗╂枡鍚嶇О",
-          type: "string",
-          width: 180,
-          align: "left",
-        },
-        {
-          field: "unit",
-          title: "鍗曚綅",
-          type: "string",
-          width: 90,
-          align: "left",
-        },
-        {
-          field: "orderQuantity",
-          title: "鍗曟嵁鏁伴噺",
-          type: "datetime",
-          width: 160,
-          align: "left",
-        },
-        {
-          field: "lockQuantity",
-          title: "閿佸畾鏁伴噺",
-          type: "string",
-          width: 100,
-          align: "left",
-        },
-        // {
-        //   field: "overOutQuantity",
-        //   title: "宸插嚭鏁伴噺",
-        //   type: "datetime",
-        //   width: 160,
-        //   align: "left",
-        // },
-        {
-          field: "line",
-          title: "绾夸綋",
-          type: "string",
-          width: 100,
-          align: "left",
-        },
-        {
-          field: "targetAddressCode",
-          title: "绾胯竟浠撳湴鍧�鐮�",
-          type: "string",
-          width: 100,
-          align: "left",
-          hidden: true
-        },
-        {
-          field: "createDate",
-          title: "鍒涘缓鏃堕棿",
-          type: "datetime",
-          width: 160,
-          align: "left",
-        },
-        {
-          field: "width",
-          title: "瑁佸垏瀹�",
-          type: "string",
-          width: 100,
-          align: "left",
-        },
-      ]);
-      const detail = ref({
-        cnName: "#detailCnName",
-        table: "",
-        columns: [],
-        sortName: "",
-      });
-      return {
-        table,
-        extend,
-        editFormFields,
-        editFormOptions,
-        searchFormFields,
-        searchFormOptions,
-        columns,
-        detail,
-      };
-    },
-  });
-  </script>
-    
\ No newline at end of file
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSClient/src/views/outbound/mesPPCutOutboundOrder.vue" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSClient/src/views/outbound/mesPPCutOutboundOrder.vue"
deleted file mode 100644
index 22e5153..0000000
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSClient/src/views/outbound/mesPPCutOutboundOrder.vue"
+++ /dev/null
@@ -1,352 +0,0 @@
-
-<template>
-  <view-grid
-    ref="grid"
-    :columns="columns"
-    :detail="detail"
-    :editFormFields="editFormFields"
-    :editFormOptions="editFormOptions"
-    :searchFormFields="searchFormFields"
-    :searchFormOptions="searchFormOptions"
-    :table="table"
-    :extend="extend"
-  >
-  </view-grid>
-</template>
-    <script>
-import extend from "@/extension/outbound/mesPPCutOutboundOrder.js";
-import { ref, defineComponent } from "vue";
-export default defineComponent({
-  setup() {
-    const table = ref({
-      key: "id",
-      footer: "Foots",
-      cnName: "PP浠撳皬鍗稭ES鍑哄簱鍗�",
-      name: "mesPPCutOutboundOrder",
-      url: "/mesPPCutOutboundOrder/",
-      sortName: "id",
-    });
-    const editFormFields = ref({
-      orderType: "",
-      orderNo: "",
-      upperOrderNo: "",
-      orderStatus: "",
-      remark: "",
-      warehouseId: "",
-    });
-    const editFormOptions = ref([
-      [
-        {
-          title: "鍗曟嵁绫诲瀷",
-          required: true,
-          field: "orderType",
-          type: "select",
-          dataKey: "outOrderType",
-          data: [],
-        },
-        {
-          field: "orderNo",
-          title: "鍗曟嵁缂栧彿",
-          type: "string",
-          readonly: true,
-        },
-        {
-          title: "鍗曟嵁鐘舵��",
-          field: "orderStatus",
-          type: "select",
-          dataKey: "inboundState",
-          data: [],
-          readonly: true,
-        },
-        {
-          title: "浠撳簱",
-          field: "warehouseId",
-          type: "select",
-          dataKey: "warehouses",
-          data: [],
-          required: true,
-        },
-        {
-          title: "澶囨敞",
-          field: "remark",
-          type: "textarea",
-        },
-      ],
-    ]);
-    const searchFormFields = ref({
-      orderNo: "",
-      upperOrderNo: "",
-      orderType: "",
-      orderStatus: "",
-      createType: "",
-      creater: "",
-      createDate: "",
-    });
-    const searchFormOptions = ref([
-      [
-        { title: "鍗曟嵁缂栧彿", field: "orderNo", type: "like" },
-        {
-          title: "鍗曟嵁绫诲瀷",
-          field: "orderType",
-          type: "select",
-          dataKey: "outOrderType",
-          data: [],
-        },
-        {
-          title: "鍗曟嵁鐘舵��",
-          field: "orderStatus",
-          type: "select",
-          dataKey: "outboundStatusEnum",
-          data: [],
-        },
-      ],
-      [
-        {
-          title: "鍒涘缓鏂瑰紡",
-          field: "createType",
-          type: "select",
-          dataKey: "createType",
-          data: [],
-        },
-        { title: "鍒涘缓鑰�", field: "creater", type: "like" },
-        { title: "鍒涘缓鏃堕棿", field: "createDate", type: "datetime" },
-      ],
-    ]);
-    const columns = ref([
-      {
-        field: "id",
-        title: "Id",
-        type: "int",
-        width: 90,
-        hidden: true,
-        readonly: true,
-        require: true,
-        align: "left",
-      },
-      {
-        field: "warehouseId",
-        title: "浠撳簱",
-        type: "string",
-        width: 90,
-        align: "left",
-        bind: { key: "warehouses", data: [] },
-      },
-      {
-        field: "orderNo",
-        title: "鍗曟嵁缂栧彿",
-        type: "string",
-        width: 160,
-        align: "left",
-        // link: true
-      },
-      {
-        field: "orderType",
-        title: "鍗曟嵁绫诲瀷",
-        type: "string",
-        width: 150,
-        align: "left",
-        bind: { key: "outOrderType", data: [] },
-      },
-      {
-        field: "orderStatus",
-        title: "鍗曟嵁鐘舵��",
-        type: "decimal",
-        width: 90,
-        align: "left",
-        bind: { key: "outboundStatusEnum", data: [] },
-      },
-      {
-        field: "createType",
-        title: "鍒涘缓鏂瑰紡",
-        type: "string",
-        width: 120,
-        align: "left",
-        bind: { key: "createType", data: [] },
-      },
-      {
-        field: "creater",
-        title: "鍒涘缓浜�",
-        type: "string",
-        width: 90,
-        align: "left",
-      },
-      {
-        field: "createDate",
-        title: "鍒涘缓鏃堕棿",
-        type: "datetime",
-        width: 160,
-        align: "left",
-      },
-      {
-        field: "modifier",
-        title: "淇敼浜�",
-        type: "string",
-        width: 100,
-        align: "left",
-      },
-      {
-        field: "modifyDate",
-        title: "淇敼鏃堕棿",
-        type: "datetime",
-        width: 160,
-        align: "left",
-      },
-    ]);
-    const detail = ref({
-      cnName: "鍑哄簱鏄庣粏鍗�",
-      table: "MesPPCutOutOrderDetail",
-      columns: [
-       {
-        field: "id",
-        title: "Id",
-        type: "int",
-        width: 90,
-        hidden: true,
-        readonly: true,
-        align: "left",
-      },
-      {
-        field: "orderId",
-        title: "鍑哄簱鍗曚富閿�",
-        type: "string",
-        width: 90,
-        align: "left",
-        hidden: true,
-      },
-      {
-        field: "materielCode",
-        title: "鐗╂枡缂栧彿",
-        type: "string",
-        width: 150,
-        align: "left",
-      },
-      {
-        field: "materielName",
-        title: "鐗╂枡鍚嶇О",
-        type: "string",
-        width: 150,
-        align: "left",
-      },
-      {
-        field: "batchNo",
-        title: "鎵规鍙�",
-        type: "decimal",
-        width: 90,
-        align: "left",
-      },
-      {
-        field: "orderQuantity",
-        title: "鍗曟嵁鏁伴噺",
-        type: "string",
-        width: 90,
-        align: "left",
-      },
-      {
-        field: "lockQuantity",
-        title: "閿佸畾鏁伴噺",
-        type: "int",
-        width: 120,
-        align: "left",
-      },
-      {
-        field: "overOutQuantity",
-        title: "宸插嚭鏁伴噺",
-        type: "string",
-        width: 200,
-        align: "left",
-      },
-      {
-        field: "unit",
-        title: "鍗曚綅",
-        type: "string",
-        width: 90,
-        align: "left",
-      },
-      {
-        field: "targetAddressCode",
-        title: "绾胯竟浠撳湴鍧�鐮�",
-        type: "string",
-        width: 100,
-        align: "left",
-      },
-      {
-        field: "width",
-        title: "瑁佸垏瀹�",
-        type: "string",
-        width: 100,
-        align: "left",
-      },
-      {
-        field: "orderDetailStatus",
-        title: "璁㈠崟鏄庣粏鐘舵��",
-        type: "string",
-        width: 180,
-        align: "left",
-      },
-      {
-        field: "LayerCode",
-        title: "灞傚埆",
-        type: "string",
-        width: 180,
-        align: "left",
-      },
-      {
-        field: "Sequence",
-        title: "搴忓垪",
-        type: "int",
-        width: 180,
-        align: "left",
-      },
-      {
-        field: "creater",
-        title: "鍒涘缓浜�",
-        type: "string",
-        width: 90,
-        align: "left",
-      },
-      {
-        field: "createDate",
-        title: "鍒涘缓鏃堕棿",
-        type: "datetime",
-        width: 160,
-        align: "left",
-      },
-      {
-        field: "modifier",
-        title: "淇敼浜�",
-        type: "string",
-        width: 100,
-        align: "left",
-      },
-      {
-        field: "modifyDate",
-        title: "淇敼鏃堕棿",
-        type: "datetime",
-        width: 160,
-        align: "left",
-      },
-      {
-        field: "remark",
-        title: "澶囨敞",
-        type: "string",
-        width: 100,
-        align: "left",
-      },
-      ],
-      sortName: "id",
-      key: "id",
-    });
-    return {
-      table,
-      extend,
-      editFormFields,
-      editFormOptions,
-      searchFormFields,
-      searchFormOptions,
-      columns,
-      detail,
-    };
-  },
-});
-</script>
-    
\ No newline at end of file
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSClient/src/views/outbound/mesPPCutOutboundOrderDetail.vue" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSClient/src/views/outbound/mesPPCutOutboundOrderDetail.vue"
deleted file mode 100644
index a51f590..0000000
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSClient/src/views/outbound/mesPPCutOutboundOrderDetail.vue"
+++ /dev/null
@@ -1,256 +0,0 @@
-
-<template>
-  <view-grid
-    ref="grid"
-    :columns="columns"
-    :detail="detail"
-    :editFormFields="editFormFields"
-    :editFormOptions="editFormOptions"
-    :searchFormFields="searchFormFields"
-    :searchFormOptions="searchFormOptions"
-    :table="table"
-    :extend="extend"
-  >
-  </view-grid>
-</template>
-    <script>
-import extend from "@/extension/outbound/mesPPCutOutboundOrderDetail.js";
-import { ref, defineComponent } from "vue";
-export default defineComponent({
-  setup() {
-    const table = ref({
-      key: "id",
-      footer: "Foots",
-      cnName: "鍑哄簱鍗曟槑缁�",
-      name: "mesPPCutOutboundOrderDetail",
-      url: "/mesPPCutOutboundOrderDetail/",
-      sortName: "id",
-    });
-    const editFormFields = ref({
-      deviceCode: "",
-      deviceName: "",
-      deviceType: "",
-      deviceStatus: "",
-      deviceIp: "",
-      devicePort: "",
-      devicePlcType: "",
-      deviceRemark: "",
-    });
-    const editFormOptions = ref([
-      [
-        {
-          title: "璁惧缂栧彿",
-          required: true,
-          field: "deviceCode",
-          type: "string",
-        },
-        {
-          title: "璁惧鍚嶇О",
-          required: true,
-          field: "deviceName",
-          type: "string",
-        },
-        {
-          title: "璁惧绫诲瀷",
-          required: true,
-          field: "deviceType",
-          type: "string",
-        },
-        {
-          title: "璁惧鐘舵��",
-          required: true,
-          field: "deviceStatus",
-          type: "string",
-        },
-      ],
-      [
-        { title: "璁惧IP", required: true, field: "deviceIp", type: "string" },
-        {
-          title: "璁惧绔彛",
-          required: true,
-          field: "devicePort",
-          type: "string",
-        },
-        {
-          title: "PLC绫诲瀷",
-          required: true,
-          field: "devicePlcType",
-          type: "string",
-        },
-        {
-          title: "澶囨敞",
-          field: "deviceRemark",
-          type: "string",
-        },
-      ],
-    ]);
-    const searchFormFields = ref({
-      deviceCode: "",
-      deviceType: "",
-      deviceStatus: "",
-    });
-    const searchFormOptions = ref([
-      [
-        { title: "璁惧缂栧彿", field: "deviceCode" },
-        { title: "璁惧绫诲瀷", field: "deviceType" },
-        { title: "璁惧鐘舵��", field: "deviceStatus" },
-      ],
-    ]);
-    const columns = ref([
-      {
-        field: "id",
-        title: "Id",
-        type: "int",
-        width: 90,
-        hidden: true,
-        readonly: true,
-        align: "left",
-      },
-      {
-        field: "orderId",
-        title: "鍑哄簱鍗曚富閿�",
-        type: "string",
-        width: 90,
-        align: "left",
-        hidden: true,
-      },
-      {
-        field: "materielCode",
-        title: "鐗╂枡缂栧彿",
-        type: "string",
-        width: 150,
-        align: "left",
-      },
-      {
-        field: "materielName",
-        title: "鐗╂枡鍚嶇О",
-        type: "string",
-        width: 150,
-        align: "left",
-      },
-      {
-        field: "batchNo",
-        title: "鎵规鍙�",
-        type: "decimal",
-        width: 90,
-        align: "left",
-      },
-      {
-        field: "orderQuantity",
-        title: "鍗曟嵁鏁伴噺",
-        type: "string",
-        width: 90,
-        align: "left",
-      },
-      {
-        field: "lockQuantity",
-        title: "閿佸畾鏁伴噺",
-        type: "int",
-        width: 120,
-        align: "left",
-      },
-      {
-        field: "overOutQuantity",
-        title: "宸插嚭鏁伴噺",
-        type: "string",
-        width: 200,
-        align: "left",
-      },
-      {
-        field: "unit",
-        title: "鍗曚綅",
-        type: "string",
-        width: 90,
-        align: "left",
-      },
-      {
-        field: "targetAddressCode",
-        title: "绾胯竟浠撳湴鍧�鐮�",
-        type: "string",
-        width: 100,
-        align: "left",
-      },
-      {
-        field: "width",
-        title: "瑁佸垏瀹�",
-        type: "string",
-        width: 100,
-        align: "left",
-      },
-      {
-        field: "orderDetailStatus",
-        title: "璁㈠崟鏄庣粏鐘舵��",
-        type: "string",
-        width: 180,
-        align: "left",
-      },
-      {
-        field: "LayerCode",
-        title: "灞傚埆",
-        type: "string",
-        width: 180,
-        align: "left",
-      },
-      {
-        field: "Sequence",
-        title: "搴忓垪",
-        type: "int",
-        width: 180,
-        align: "left",
-      },
-      {
-        field: "creater",
-        title: "鍒涘缓浜�",
-        type: "string",
-        width: 90,
-        align: "left",
-      },
-      {
-        field: "createDate",
-        title: "鍒涘缓鏃堕棿",
-        type: "datetime",
-        width: 160,
-        align: "left",
-      },
-      {
-        field: "modifier",
-        title: "淇敼浜�",
-        type: "string",
-        width: 100,
-        align: "left",
-      },
-      {
-        field: "modifyDate",
-        title: "淇敼鏃堕棿",
-        type: "datetime",
-        width: 160,
-        align: "left",
-      },
-      {
-        field: "remark",
-        title: "澶囨敞",
-        type: "string",
-        width: 100,
-        align: "left",
-      },
-    ]);
-    const detail = ref({
-      cnName: "#detailCnName",
-      table: "",
-      columns: [],
-      sortName: "",
-    });
-    return {
-      table,
-      extend,
-      editFormFields,
-      editFormOptions,
-      searchFormFields,
-      searchFormOptions,
-      columns,
-      detail,
-    };
-  },
-});
-</script>
-    
\ No newline at end of file
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSClient/src/views/outbound/mesPPOutboundOrder.vue" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSClient/src/views/outbound/mesPPOutboundOrder.vue"
deleted file mode 100644
index 622fcdd..0000000
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSClient/src/views/outbound/mesPPOutboundOrder.vue"
+++ /dev/null
@@ -1,265 +0,0 @@
-
-<template>
-  <view-grid
-    ref="grid"
-    :columns="columns"
-    :detail="detail"
-    :editFormFields="editFormFields"
-    :editFormOptions="editFormOptions"
-    :searchFormFields="searchFormFields"
-    :searchFormOptions="searchFormOptions"
-    :table="table"
-    :extend="extend"
-  >
-  </view-grid>
-</template>
-    <script>
-import extend from "@/extension/outbound/mesPPOutboundOrder.js";
-import { ref, defineComponent } from "vue";
-export default defineComponent({
-  setup() {
-    const table = ref({
-      key: "id",
-      footer: "Foots",
-      cnName: "PP浠撳ぇ鍗稭ES鍑哄簱鍗�",
-      name: "mesPPOutboundOrder",
-      url: "/mesPPOutboundOrder/",
-      sortName: "id",
-    });
-    const editFormFields = ref({});
-    const editFormOptions = ref([[]]);
-    const searchFormFields = ref({
-      orderNo: "",
-      materialCode: "",
-      batchNo: "",
-    });
-    const searchFormOptions = ref([
-      [
-        { title: "鍗曟嵁缂栧彿", field: "orderNo", type: "like" },
-        { title: "鐗╂枡缂栧彿", field: "materialCode", type: "like" },
-        { title: "鎵规鍙�", field: "batchNo", type: "like" },
-      ],
-    ]);
-    const columns = ref([
-      {
-        field: "id",
-        title: "Id",
-        type: "int",
-        width: 90,
-        hidden: true,
-        readonly: true,
-        align: "left",
-      },
-      {
-        field: "warehouseId",
-        title: "鎵�灞炰粨搴�",
-        type: "string",
-        width: 80,
-        align: "left",
-        bind: { key: "warehouses", data: [] },
-      },
-      {
-        field: "orderNo",
-        title: "鍗曟嵁缂栧彿",
-        type: "string",
-        width: 150,
-        align: "left",
-      },
-      {
-        field: "taskNo",
-        title: "浠诲姟鍗曞彿",
-        type: "string",
-        width: 150,
-        align: "left",
-      },
-      // {
-      //   field: "batchNo",
-      //   title: "鎵规鍙�",
-      //   type: "decimal",
-      //   width: 90,
-      //   align: "left",
-      // },
-     {
-        field: "orderStatus",
-        title: "鍗曟嵁鐘舵��",
-        type: "decimal",
-        width: 90,
-        align: "left",
-        bind: { key: "outboundStatusEnum", data: [] },
-      },
-      {
-        field: "materialCode",
-        title: "鐗╂枡缂栧彿",
-        type: "string",
-        width: 200,
-        align: "left",
-      },
-      {
-        field: "materialName",
-        title: "鐗╂枡鍚嶇О",
-        type: "string",
-        width: 180,
-        align: "left",
-      },
-      {
-        field: "createType",
-        title: "鍒涘缓鏂瑰紡",
-        type: "string",
-        width: 120,
-        align: "left",
-        bind: { key: "createType", data: [] },
-      },
-      {
-        field: "unit",
-        title: "鍗曚綅",
-        type: "string",
-        width: 90,
-        align: "left",
-      },
-      {
-        field: "orderQuantity",
-        title: "鍗曟嵁鏁伴噺",
-        type: "datetime",
-        width: 160,
-        align: "left",
-      },
-      {
-        field: "lockQuantity",
-        title: "閿佸畾鏁伴噺",
-        type: "string",
-        width: 100,
-        align: "left",
-      },
-      {
-        field: "overOutQuantity",
-        title: "宸插嚭鏁伴噺",
-        type: "datetime",
-        width: 160,
-        align: "left",
-      },
-      {
-        field: "line",
-        title: "绾夸綋",
-        type: "string",
-        width: 100,
-        align: "left",
-      },
-      {
-        field: "targetAddressCode",
-        title: "绾胯竟浠撳湴鍧�鐮�",
-        type: "string",
-        width: 100,
-        align: "left",
-      },
-      {
-        field: "width",
-        title: "瑁佸垏瀹�",
-        type: "string",
-        width: 100,
-        align: "left",
-      },
-    ]);
-    const detail = ref({
-      cnName: "鍑哄簱鏄庣粏鍗�",
-      table: "MesPPOutboundOrderDetail",
-      columns: [
-         {
-        field: "id",
-        title: "Id",
-        type: "int",
-        width: 90,
-        hidden: true,
-        readonly: true,
-        align: "left",
-      },
-      {
-        field: "OrderId",
-        title: "鍑哄簱鍗曚富閿�",
-        type: "string",
-        width: 80,
-        align: "left",
-        bind: { key: "warehouses", data: [] },
-      },
-      {
-        field: "Warehouse",
-        title: "搴撳尯",
-        type: "string",
-        width: 150,
-        align: "left",
-      },
-      {
-        field: "CarrierCode",
-        title: "杞藉叿鍙�",
-        type: "string",
-        width: 150,
-        align: "left",
-      },
-      {
-        field: "createType",
-        title: "鍒涘缓鏂瑰紡",
-        type: "string",
-        width: 120,
-        align: "left",
-        bind: { key: "createType", data: [] },
-      },
-      {
-        field: "orderDetailStatus",
-        title: "璁㈠崟鏄庣粏鐘舵��",
-        type: "string",
-        width: 180,
-        align: "left",
-      },
-      {
-        field: "creater",
-        title: "鍒涘缓浜�",
-        type: "string",
-        width: 90,
-        align: "left",
-      },
-      {
-        field: "createDate",
-        title: "鍒涘缓鏃堕棿",
-        type: "datetime",
-        width: 160,
-        align: "left",
-      },
-      {
-        field: "modifier",
-        title: "淇敼浜�",
-        type: "string",
-        width: 100,
-        align: "left",
-      },
-      {
-        field: "modifyDate",
-        title: "淇敼鏃堕棿",
-        type: "datetime",
-        width: 160,
-        align: "left",
-      },
-      {
-        field: "remark",
-        title: "澶囨敞",
-        type: "string",
-        width: 100,
-        align: "left",
-      },
-      ],
-      sortName: "id",
-      key: "id",
-    });
-
-    return {
-      table,
-      extend,
-      editFormFields,
-      editFormOptions,
-      searchFormFields,
-      searchFormOptions,
-      columns,
-      detail,
-    };
-  },
-});
-</script>
-    
\ No newline at end of file
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSClient/src/views/outbound/mesPPOutboundOrderDetail.vue" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSClient/src/views/outbound/mesPPOutboundOrderDetail.vue"
deleted file mode 100644
index 4e77384..0000000
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSClient/src/views/outbound/mesPPOutboundOrderDetail.vue"
+++ /dev/null
@@ -1,149 +0,0 @@
-
-<template>
-    <view-grid
-      ref="grid"
-      :columns="columns"
-      :detail="detail"
-      :editFormFields="editFormFields"
-      :editFormOptions="editFormOptions"
-      :searchFormFields="searchFormFields"
-      :searchFormOptions="searchFormOptions"
-      :table="table"
-      :extend="extend"
-    >
-    </view-grid>
-  </template>
-    <script>
-  import extend from "@/extension/outbound/mesPPOutboundOrderDetail.js";
-  import { ref, defineComponent } from "vue";
-  export default defineComponent({
-    setup() {
-      const table = ref({
-        key: "id",
-        footer: "Foots",
-        cnName: "PP浠撳ぇ鍗稭ES鍑哄簱鍗曟槑缁�",
-        name: "mesPPOutboundOrderDetail",
-        url: "/mesPPOutboundOrderDetail/",
-        sortName: "id",
-      });
-      const editFormFields = ref({
-      });
-      const editFormOptions = ref([
-        [
-        ],
-      ]);
-      const searchFormFields = ref({
-        orderNo: "",
-        materialCode: "",
-        batchNo: "",
-      });
-      const searchFormOptions = ref([
-        [
-          { title: "鍗曟嵁缂栧彿", field: "orderNo", type:"like" },
-          { title: "鐗╂枡缂栧彿", field: "materialCode" ,type:"like"},
-          { title: "鎵规鍙�", field: "batchNo" ,type:"like"},
-        ],
-      ]);
-      const columns = ref([
-      {
-          field: "id",
-          title: "Id",
-          type: "int",
-          width: 90,
-          hidden: true,
-          readonly: true,
-          align: "left",
-        },
-        {
-          field: "OrderId",
-          title: "鍑哄簱鍗曚富閿�",
-          type: "string",
-          width: 80,
-          align: "left",
-          bind: { key: "warehouses", data: [] },
-        },
-        {
-          field: "Warehouse",
-          title: "搴撳尯",
-          type: "string",
-          width: 150,
-          align: "left",
-        },
-        {
-          field: "CarrierCode",
-          title: "杞藉叿鍙�",
-          type: "string",
-          width: 150,
-          align: "left",
-        },
-        {
-          field: "createType",
-          title: "鍒涘缓鏂瑰紡",
-          type: "string",
-          width: 120,
-          align: "left",
-          bind: { key: "createType", data: [] },
-        },
-            {
-          field: "orderDetailStatus",
-          title: "璁㈠崟鏄庣粏鐘舵��",
-          type: "string",
-          width: 180,
-          align: "left",
-        },
-        {
-          field: "creater",
-          title: "鍒涘缓浜�",
-          type: "string",
-          width: 90,
-          align: "left",
-        },
-        {
-          field: "createDate",
-          title: "鍒涘缓鏃堕棿",
-          type: "datetime",
-          width: 160,
-          align: "left",
-        },
-        {
-          field: "modifier",
-          title: "淇敼浜�",
-          type: "string",
-          width: 100,
-          align: "left",
-        },
-        {
-          field: "modifyDate",
-          title: "淇敼鏃堕棿",
-          type: "datetime",
-          width: 160,
-          align: "left",
-        },
-        {
-          field: "remark",
-          title: "澶囨敞",
-          type: "string",
-          width: 100,
-          align: "left",
-        },
-      ]);
-      const detail = ref({
-        cnName: "#detailCnName",
-        table: "",
-        columns: [],
-        sortName: "",
-      });
-      return {
-        table,
-        extend,
-        editFormFields,
-        editFormOptions,
-        searchFormFields,
-        searchFormOptions,
-        columns,
-        detail,
-      };
-    },
-  });
-  </script>
-    
\ No newline at end of file
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSClient/src/views/outbound/outMESOrder.vue" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSClient/src/views/outbound/outMESOrder.vue"
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSClient/src/views/outbound/outMESOrder.vue"
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSClient/src/views/outbound/outSGOrder.vue" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSClient/src/views/outbound/outSGOrder.vue"
new file mode 100644
index 0000000..0e7cd71
--- /dev/null
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSClient/src/views/outbound/outSGOrder.vue"
@@ -0,0 +1,283 @@
+
+<template>
+    <view-grid
+      ref="grid"
+      :columns="columns"
+      :detail="detail"
+      :editFormFields="editFormFields"
+      :editFormOptions="editFormOptions"
+      :searchFormFields="searchFormFields"
+      :searchFormOptions="searchFormOptions"
+      :table="table"
+      :extend="extend"
+    >
+    </view-grid>
+  </template>
+      <script>
+  import extend from "@/extension/outbound/outSGOrder.js";
+  import { ref, defineComponent } from "vue";
+  export default defineComponent({
+    setup() {
+      const table = ref({
+        key: "id",
+        footer: "Foots",
+        cnName: "鐢熺鎺掔▼鍗�",
+        name: "outSGOrder",
+        url: "/OutSGOrder/",
+        sortName: "id",
+      });
+      const editFormFields = ref({
+        boardMpsNo:""
+      });
+      const editFormOptions = ref([
+        [
+          {
+            field: "boardMpsNo",
+            title: "鍗曟嵁缂栧彿",
+            type: "string",
+            readonly:true
+          }
+        ],
+      ]);
+      const searchFormFields = ref({
+        outSGOrderNo: "",
+        boardMpsId: "",
+        orderId: "",
+        outSGOrderStatus: "",
+        warehouseId: "",
+        shortName: "",
+      });
+      const searchFormOptions = ref([
+        [
+          { title: "WMS鍗曞彿", field: "outSGOrderNo", type: "like" },
+          { title: "鍑哄簱涓婃父ID", field: "boardMpsId", type: "like" },
+          { title: "涓婃父鐢熶骇鍗曞彿", field: "orderId", type: "like" },
+          {
+            title: "鍗曟嵁鐘舵��",
+            field: "outSGOrderStatus",
+            type: "select",
+            dataKey: "outboundStatusEnum",
+            data: [],
+          },
+        ],
+        [
+          { title: "浠撳簱", field: "warehouseId",type: "selectList",dataKey: "warehouses",data: [],},
+          { title: "瀹㈡埛绠�绉�", field: "shortName", type: "like" },
+        ],
+      ]);
+      const columns = ref([
+        {
+          field: "id",
+          title: "Id",
+          type: "int",
+          width: 90,
+          hidden: true,
+          readonly: true,
+          require: true,
+          align: "left",
+        },
+        {
+          field: "warehouseId",
+          title: "浠撳簱",
+          type: "string",
+          width: 90,
+          align: "left",
+          bind:{key: "warehouses", data: []}
+        },
+        {
+          field: "outSGOrderNo",
+          title: "WMS鍗曞彿",
+          type: "string",
+          width: 160,
+          align: "left",
+          // link: true,
+        },
+        {
+          field: "boardMpsId",
+          title: "涓婃父鍗曟嵁ID",
+          type: "int",
+          width: 160,
+          align: "left",
+          // link: true,
+        },
+        {
+          field: "orderId",
+          title: "涓婃父鐢熶骇鍗曞彿",
+          type: "string",
+          width: 160,
+          align: "left",
+        },
+        {
+          field: "shortName",
+          title: "瀹㈡埛绠�绉�",
+          type: "string",
+          width: 90,
+          align: "left",
+        },
+        {
+          field: "outSGOrderStatus",
+          title: "鍑哄簱鍗曠姸鎬�",
+          type: "string",
+          width: 110,
+          align: "left",
+          bind: { key: "outboundStatusEnum", data: [] },
+        },
+        {
+          field: "createDate",
+          title: "鍒涘缓鏃堕棿",
+          type: "datetime",
+          width: 160,
+          align: "left",
+        },
+      ]);
+      const detail = ref({
+        cnName: "鍑哄簱鏄庣粏鍗�",
+        table: "OutSGOrderDetail",
+        columns: [
+          {
+            field: "id",
+            title: "Id",
+            type: "int",
+            width: 90,
+            hidden: true,
+            readonly: true,
+            require: true,
+            align: "left",
+          },
+          {
+            field: "outSGOrderId",
+            title: "鍑哄簱鍗曚富閿�",
+            type: "string",
+            width: 90,
+            align: "left",
+            hidden: true,
+          },
+          {
+            field: "boardMpsId",
+            title: "鍏宠仈鐨勪富琛↖D(涓婃父)",
+            type: "string",
+            width: 90,
+            align: "left",
+          },
+          {
+            field: "boardMpsDetailId",
+            title: "鍏宠仈鏄庣粏ID(涓婃父)",
+            type: "string",
+            width: 90,
+            align: "left",
+          },
+          {
+            field: "materialNo",
+            title: "鐗╂枡缂栧彿",
+            type: "string",
+            width: 150,
+            align: "left",
+            edit: { type: "string" },
+            required: true,
+          },
+          {
+            field: "materielName",
+            title: "鐗╂枡鍚嶇О",
+            type: "string",
+            width: 150,
+            align: "left",
+            edit: { type: "string" },
+          },
+          {
+            field: "boardFluteNo",
+            title: "妤炲埆",
+            type: "string",
+            width: 110,
+            align: "left",
+            edit: { type: "string" },
+          },
+          {
+            field: "machineName",
+            title: "鏈哄彴浣�",
+            type: "string",
+            width: 110,
+            align: "left",
+            edit: { type: "string" },
+            required: true,
+          },
+          {
+            field: "width",
+            title: "骞呭",
+            type: "string",
+            width: 110,
+            align: "left",
+            edit: { type: "string" },
+            required: true,
+          },
+          {
+            field: "xqLen",
+            title: "闇�姹傞暱搴�",
+            type: "string",
+            width: 110,
+            align: "left",
+            edit: { type: "number" },
+            required: true,
+          },
+          {
+            field: "totalUsage",
+            title: "鎬荤敤閲�",
+            type: "string",
+            width: 90,
+            align: "left",
+            edit: { type: "number" },
+            required: true,
+          },
+          {
+            field: "procurementLength",
+            title: "閲囪喘闀垮害",
+            type: "string",
+            width: 110,
+            align: "left",
+          },
+          {
+            field: "assignTotalUsage",
+            title: "宸插垎閰嶇敤閲�",
+            type: "string",
+            width: 110,
+            align: "left",
+          },
+          {
+            field: "outTotalUsage",
+            title: "宸插嚭鐢ㄩ噺",
+            type: "string",
+            width: 110,
+            align: "left",
+          },
+          {
+            field: "outBSTOrderDetailStatus",
+            title: "璁㈠崟鏄庣粏鐘舵��",
+            type: "string",
+            width: 180,
+            align: "left",
+            bind: { key: "outboundStatusEnum", data: [] },
+          },
+          {
+            field: "createDate",
+            title: "鍒涘缓鏃堕棿",
+            type: "datetime",
+            width: 160,
+            align: "left",
+          }
+        ],
+        sortName: "id",
+        key: "id",
+      });
+      return {
+        table,
+        extend,
+        editFormFields,
+        editFormOptions,
+        searchFormFields,
+        searchFormOptions,
+        columns,
+        detail,
+      };
+    },
+  });
+  </script>
+      
\ No newline at end of file
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSClient/src/views/outbound/outSGOrderDetail.vue" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSClient/src/views/outbound/outSGOrderDetail.vue"
new file mode 100644
index 0000000..3285c1d
--- /dev/null
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSClient/src/views/outbound/outSGOrderDetail.vue"
@@ -0,0 +1,221 @@
+
+<template>
+    <view-grid
+      ref="grid"
+      :columns="columns"
+      :detail="detail"
+      :editFormFields="editFormFields"
+      :editFormOptions="editFormOptions"
+      :searchFormFields="searchFormFields"
+      :searchFormOptions="searchFormOptions"
+      :table="table"
+      :extend="extend"
+    >
+    </view-grid>
+  </template>
+    <script>
+  import extend from "@/extension/outbound/outSGOrderDetail.js";
+  import { ref, defineComponent } from "vue";
+  export default defineComponent({
+    setup() {
+      const table = ref({
+        key: "id",
+        footer: "Foots",
+        cnName: "鍑哄簱鍗曟槑缁�",
+        name: "outSGOrderDetail",
+        url: "/OutSGOrderDetail/",
+        sortName: "id",
+      });
+      const editFormFields = ref({
+        deviceCode: "",
+        deviceName: "",
+        deviceType: "",
+        deviceStatus: "",
+        deviceIp: "",
+        devicePort: "",
+        devicePlcType: "",
+        deviceRemark: "",
+      });
+      const editFormOptions = ref([
+        [
+          {
+            title: "璁惧缂栧彿",
+            required: true,
+            field: "deviceCode",
+            type: "string",
+          },
+          {
+            title: "璁惧鍚嶇О",
+            required: true,
+            field: "deviceName",
+            type: "string",
+          },
+          {
+            title: "璁惧绫诲瀷",
+            required: true,
+            field: "deviceType",
+            type: "string",
+          },
+          {
+            title: "璁惧鐘舵��",
+            required: true,
+            field: "deviceStatus",
+            type: "string",
+          },
+        ],
+        [
+          { title: "璁惧IP", required: true, field: "deviceIp", type: "string" },
+          {
+            title: "璁惧绔彛",
+            required: true,
+            field: "devicePort",
+            type: "string",
+          },
+          {
+            title: "PLC绫诲瀷",
+            required: true,
+            field: "devicePlcType",
+            type: "string",
+          },
+          {
+            title: "澶囨敞",
+            field: "deviceRemark",
+            type: "string",
+          },
+        ],
+      ]);
+      const searchFormFields = ref({
+        deviceCode: "",
+        deviceType: "",
+        deviceStatus: "",
+      });
+      const searchFormOptions = ref([
+        [
+          { title: "璁惧缂栧彿", field: "deviceCode" },
+          { title: "璁惧绫诲瀷", field: "deviceType" },
+          { title: "璁惧鐘舵��", field: "deviceStatus" },
+        ],
+      ]);
+      const columns = ref([
+      {
+          field: "id",
+          title: "Id",
+          type: "int",
+          width: 90,
+          hidden: true,
+          readonly: true,
+          align: "left",
+        },
+        {
+          field: "outSGOrderId",
+          title: "鍑哄簱鍗曚富閿�",
+          type: "string",
+          width: 90,
+          align: "left",
+          hidden: true,
+        },
+        {
+          field: "MaterialNo",
+          title: "鐗╂枡缂栧彿",
+          type: "string",
+          width: 150,
+          align: "left",
+        },
+        {
+          field: "materielName",
+          title: "鐗╂枡鍚嶇О",
+          type: "string",
+          width: 150,
+          align: "left",
+        },
+        {
+          field: "batchNo",
+          title: "鎵规鍙�",
+          type: "decimal",
+          width: 90,
+          align: "left",
+        },
+        {
+          field: "orderQuantity",
+          title: "鍗曟嵁鏁伴噺",
+          type: "string",
+          width: 90,
+          align: "left",
+        },
+        {
+          field: "lockQuantity",
+          title: "閿佸畾鏁伴噺",
+          type: "int",
+          width: 120,
+          align: "left",
+        },
+        {
+          field: "overOutQuantity",
+          title: "宸插嚭鏁伴噺",
+          type: "string",
+          width: 200,
+          align: "left",
+        },
+        {
+          field: "orderDetailStatus",
+          title: "璁㈠崟鏄庣粏鐘舵��",
+          type: "string",
+          width: 180,
+          align: "left",
+        },
+        {
+          field: "creater",
+          title: "鍒涘缓浜�",
+          type: "string",
+          width: 90,
+          align: "left",
+        },
+        {
+          field: "createDate",
+          title: "鍒涘缓鏃堕棿",
+          type: "datetime",
+          width: 160,
+          align: "left",
+        },
+        {
+          field: "modifier",
+          title: "淇敼浜�",
+          type: "string",
+          width: 100,
+          align: "left",
+        },
+        {
+          field: "modifyDate",
+          title: "淇敼鏃堕棿",
+          type: "datetime",
+          width: 160,
+          align: "left",
+        },
+        {
+          field: "remark",
+          title: "澶囨敞",
+          type: "string",
+          width: 100,
+          align: "left",
+        },
+      ]);
+      const detail = ref({
+        cnName: "#detailCnName",
+        table: "",
+        columns: [],
+        sortName: "",
+      });
+      return {
+        table,
+        extend,
+        editFormFields,
+        editFormOptions,
+        searchFormFields,
+        searchFormOptions,
+        columns,
+        detail,
+      };
+    },
+  });
+  </script>
+    
\ No newline at end of file
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSClient/src/views/outbound/proOutOrder.vue" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSClient/src/views/outbound/proOutOrder.vue"
deleted file mode 100644
index 0811f3f..0000000
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSClient/src/views/outbound/proOutOrder.vue"
+++ /dev/null
@@ -1,363 +0,0 @@
-
-<template>
-  <view-grid
-    ref="grid"
-    :columns="columns"
-    :detail="detail"
-    :editFormFields="editFormFields"
-    :editFormOptions="editFormOptions"
-    :searchFormFields="searchFormFields"
-    :searchFormOptions="searchFormOptions"
-    :table="table"
-    :extend="extend"
-  >
-  </view-grid>
-</template>
-    <script>
-import extend from "@/extension/outbound/proOutOrder.js";
-import { ref, defineComponent } from "vue";
-export default defineComponent({
-  setup() {
-    const table = ref({
-      key: "id",
-      footer: "Foots",
-      cnName: "鎴愬搧鍑哄簱鍗�",
-      name: "proOutOrder",
-      url: "/proOutOrder/",
-      sortName: "id",
-    });
-    const editFormFields = ref({
-      orderType: "",
-      orderNo: "",
-      upperOrderNo: "",
-      orderStatus: "",
-      remark: "",
-      warehouseId: "",
-    });
-    const editFormOptions = ref([
-      [
-        {
-          title: "鍗曟嵁绫诲瀷",
-          required: true,
-          field: "orderType",
-          type: "select",
-          dataKey: "outOrderType",
-          data: [],
-        },
-        {
-          field: "orderNo",
-          title: "鍗曟嵁缂栧彿",
-          type: "string",
-          readonly: true,
-        },
-        {
-          title: "涓婃父鍗曟嵁缂栧彿",
-          field: "upperOrderNo",
-          type: "string",
-        },
-        {
-          title: "鍗曟嵁鐘舵��",
-          field: "orderStatus",
-          type: "select",
-          dataKey: "inboundState",
-          data: [],
-          readonly: true,
-        },
-        {
-          title: "浠撳簱",
-          field: "warehouseId",
-          type: "select",
-          dataKey: "warehouses",
-          data: [],
-          required: true,
-        },
-        {
-          title: "澶囨敞",
-          field: "remark",
-          type: "textarea",
-        },
-      ],
-    ]);
-    const searchFormFields = ref({
-      orderNo: "",
-      upperOrderNo: "",
-      orderType: "",
-      orderStatus: "",
-      createType: "",
-      creater: "",
-      createDate: "",
-    });
-    const searchFormOptions = ref([
-      [
-        { title: "鍑哄簱鍗曞彿", field: "proOutOrderNo", type: "like" },
-        { title: "涓婃父鍗曟嵁缂栧彿", field: "upperOrderNo", type: "like" },
-        {
-          title: "鍗曟嵁绫诲瀷",
-          field: "orderType",
-          type: "select",
-          dataKey: "outOrderType",
-          data: [],
-        },
-        {
-          title: "鍗曟嵁鐘舵��",
-          field: "orderStatus",
-          type: "select",
-          dataKey: "outboundStatusEnum",
-          data: [],
-        },
-      ],
-      [
-        {
-          title: "鍒涘缓鏂瑰紡",
-          field: "createType",
-          type: "select",
-          dataKey: "createType",
-          data: [],
-        },
-        { title: "鍒涘缓鑰�", field: "creater", type: "like" },
-        { title: "鍒涘缓鏃堕棿", field: "createDate", type: "datetime" },
-      ],
-    ]);
-    const columns = ref([
-      {
-        field: "id",
-        title: "Id",
-        type: "int",
-        width: 90,
-        hidden: true,
-        readonly: true,
-        require: true,
-        align: "left",
-      },
-      {
-        field: "warehouseId",
-        title: "浠撳簱",
-        type: "string",
-        width: 90,
-        align: "left",
-        bind: { key: "warehouses", data: [] },
-      },
-      {
-        field: "proOutOrderNo",
-        title: "鍑哄簱鍗曞彿",
-        type: "string",
-        width: 160,
-        align: "left",
-        // link: true,
-      },
-      {
-        field: "proOrderType",
-        title: "鍗曟嵁绫诲瀷",
-        type: "string",
-        width: 150,
-        align: "left",
-        bind: { key: "proOutOrderType", data: [{key:1,value:"璁㈠崟鍑鸿揣"},,{key:2,value:"閿�鍞嚭搴�"}] },
-      },
-      {
-        field: "proOrderStatus",
-        title: "鍗曟嵁鐘舵��",
-        type: "decimal",
-        width: 90,
-        align: "left",
-        bind: { key: "outboundStatusEnum", data: [] },
-      },
-      {
-        field: "plantShipDate",
-        title: "璁″垝鍑鸿揣鏃堕棿",
-        type: "datetime",
-        width: 160,
-        align: "left",
-      },
-      // {
-      //   field: "createType",
-      //   title: "鍒涘缓鏂瑰紡",
-      //   type: "string",
-      //   width: 120,
-      //   align: "left",
-      //   bind: { key: "createType", data: [] },
-      // },
-      // {
-      //   field: "departmentCode",
-      //   title: "淇敼鏃堕棿",
-      //   type: "string",
-      //   width: 120,
-      //   align: "left",
-      //   hidden: true,
-      // },
-      {
-        field: "creater",
-        title: "鍒涘缓浜�",
-        type: "string",
-        width: 90,
-        align: "left",
-      },
-      {
-        field: "createDate",
-        title: "鍒涘缓鏃堕棿",
-        type: "datetime",
-        width: 160,
-        align: "left",
-      },
-      // {
-      //   field: "modifier",
-      //   title: "淇敼浜�",
-      //   type: "string",
-      //   width: 100,
-      //   align: "left",
-      // },
-      // {
-      //   field: "modifyDate",
-      //   title: "淇敼鏃堕棿",
-      //   type: "datetime",
-      //   width: 160,
-      //   align: "left",
-      // },
-      {
-        field: "remark",
-        title: "澶囨敞",
-        type: "string",
-        width: 100,
-        align: "left",
-      },
-    ]);
-    const detail = ref({
-      cnName: "鍑哄簱鏄庣粏鍗�",
-      table: "OnboundOrderDetail",
-      columns: [
-        {
-          field: "id",
-          title: "Id",
-          type: "int",
-          width: 90,
-          hidden: true,
-          readonly: true,
-          require: true,
-          align: "left",
-        },
-        {
-          field: "orderId",
-          title: "鍑哄簱鍗曚富閿�",
-          type: "string",
-          width: 90,
-          align: "left",
-          hidden: true,
-        },
-        {
-          field: "materielCode",
-          title: "鐗╂枡缂栧彿",
-          type: "string",
-          width: 150,
-          align: "left",
-          edit: { type: "string" },
-          required: true,
-        },
-        {
-          field: "materielName",
-          title: "鐗╂枡鍚嶇О",
-          type: "string",
-          width: 150,
-          align: "left",
-          edit: { type: "string" },
-        },
-        {
-          field: "batchNo",
-          title: "鎵规鍙�",
-          type: "decimal",
-          width: 90,
-          align: "left",
-          edit: { type: "string" },
-          required: true,
-        },
-        {
-          field: "orderQuantity",
-          title: "鍗曟嵁鏁伴噺",
-          type: "string",
-          width: 90,
-          align: "left",
-          edit: { type: "number" },
-          required: true,
-        },
-        {
-          field: "rowNo",
-          title: "琛屽彿",
-          type: "string",
-          width: 90,
-          align: "left",
-          edit: { type: "number" },
-          required: true,
-        },
-        {
-          field: "lockQuantity",
-          title: "閿佸畾鏁伴噺",
-          type: "int",
-          width: 120,
-          align: "left",
-        },
-        {
-          field: "overOutQuantity",
-          title: "宸插嚭鏁伴噺",
-          type: "string",
-          width: 200,
-          align: "left",
-        },
-        {
-          field: "orderDetailStatus",
-          title: "璁㈠崟鏄庣粏鐘舵��",
-          type: "string",
-          width: 180,
-          align: "left",
-          bind: { key: "orderDetailStatusEnum", data: [] },
-        },
-        {
-          field: "creater",
-          title: "鍒涘缓浜�",
-          type: "string",
-          width: 90,
-          align: "left",
-        },
-        {
-          field: "createDate",
-          title: "鍒涘缓鏃堕棿",
-          type: "datetime",
-          width: 160,
-          align: "left",
-        },
-        {
-          field: "modifier",
-          title: "淇敼浜�",
-          type: "string",
-          width: 100,
-          align: "left",
-        },
-        {
-          field: "modifyDate",
-          title: "淇敼鏃堕棿",
-          type: "datetime",
-          width: 160,
-          align: "left",
-        },
-        {
-          field: "remark",
-          title: "澶囨敞",
-          type: "string",
-          width: 100,
-          align: "left",
-        },
-      ],
-      sortName: "id",
-      key: "id",
-    });
-    return {
-      table,
-      extend,
-      editFormFields,
-      editFormOptions,
-      searchFormFields,
-      searchFormOptions,
-      columns,
-      detail,
-    };
-  },
-});
-</script>
-    
\ No newline at end of file
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSClient/src/views/outbound/proOutOrderDetail.vue" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSClient/src/views/outbound/proOutOrderDetail.vue"
deleted file mode 100644
index bc10867..0000000
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSClient/src/views/outbound/proOutOrderDetail.vue"
+++ /dev/null
@@ -1,278 +0,0 @@
-
-<template>
-  <view-grid
-    ref="grid"
-    :columns="columns"
-    :detail="detail"
-    :editFormFields="editFormFields"
-    :editFormOptions="editFormOptions"
-    :searchFormFields="searchFormFields"
-    :searchFormOptions="searchFormOptions"
-    :table="table"
-    :extend="extend"
-  >
-  </view-grid>
-</template>
-    <script>
-import extend from "@/extension/outbound/proOutOrderDetail.js";
-import { ref, defineComponent } from "vue";
-export default defineComponent({
-  setup() {
-    const table = ref({
-      key: "id",
-      footer: "Foots",
-      cnName: "鎴愬搧鍑哄簱鍗曟槑缁�",
-      name: "proOutOrderDetail",
-      url: "/proOutOrderDetail/",
-      sortName: "id",
-    });
-    const editFormFields = ref({
-      deviceCode: "",
-      deviceName: "",
-      deviceType: "",
-      deviceStatus: "",
-      deviceIp: "",
-      devicePort: "",
-      devicePlcType: "",
-      deviceRemark: "",
-    });
-    const editFormOptions = ref([
-      [
-        {
-          title: "璁惧缂栧彿",
-          required: true,
-          field: "deviceCode",
-          type: "string",
-        },
-        {
-          title: "璁惧鍚嶇О",
-          required: true,
-          field: "deviceName",
-          type: "string",
-        },
-        {
-          title: "璁惧绫诲瀷",
-          required: true,
-          field: "deviceType",
-          type: "string",
-        },
-        {
-          title: "璁惧鐘舵��",
-          required: true,
-          field: "deviceStatus",
-          type: "string",
-        },
-      ],
-      [
-        { title: "璁惧IP", required: true, field: "deviceIp", type: "string" },
-        {
-          title: "璁惧绔彛",
-          required: true,
-          field: "devicePort",
-          type: "string",
-        },
-        {
-          title: "PLC绫诲瀷",
-          required: true,
-          field: "devicePlcType",
-          type: "string",
-        },
-        {
-          title: "澶囨敞",
-          field: "deviceRemark",
-          type: "string",
-        },
-      ],
-    ]);
-    const searchFormFields = ref({
-      deviceCode: "",
-      deviceType: "",
-      deviceStatus: "",
-    });
-    const searchFormOptions = ref([
-      [
-        { title: "璁惧缂栧彿", field: "deviceCode" },
-        { title: "璁惧绫诲瀷", field: "deviceType" },
-        { title: "璁惧鐘舵��", field: "deviceStatus" },
-      ],
-    ]);
-    const columns = ref([
-      {
-        field: "id",
-        title: "Id",
-        type: "int",
-        width: 90,
-        hidden: true,
-        readonly: true,
-        align: "left",
-      },
-      {
-        field: "proOrderId",
-        title: "鍑哄簱鍗曚富閿�",
-        type: "string",
-        width: 90,
-        align: "left",
-        hidden: true,
-      },
-      {
-        field: "rowId",
-        title: "鍑哄簱鍗曡鍙�",
-        type: "int",
-        width: 150,
-        align: "left",
-      },
-      {
-        field: "proOrderDetailStatus",
-        title: "璁㈠崟鏄庣粏鐘舵��",
-        type: "int",
-        width: 180,
-        align: "left",
-      },
-      {
-        field: "saleOrder",
-        title: "閿�鍞鍗曞彿",
-        type: "string",
-        width: 150,
-        align: "left",
-      },
-      {
-        field: "customer",
-        title: "瀹㈡埛",
-        type: "string",
-        width: 90,
-        align: "left",
-      },
-      {
-        field: "factoryCode",
-        title: "宸ュ巶",
-        type: "string",
-        width: 90,
-        align: "left",
-      },
-      {
-        field: "pCode",
-        title: "浜у搧缂栫爜",
-        type: "string",
-        width: 120,
-        align: "left",
-      },
-      {
-        field: "dateCode",
-        title: "浜у搧鍛ㄦ湡",
-        type: "string",
-        width: 120,
-        align: "left",
-      },
-      {
-        field: "pVer",
-        title: "浜у搧鐗堟湰",
-        type: "string",
-        width: 200,
-        align: "left",
-      },
-      {
-        field: "pLot",
-        title: "浜у搧鎵规",
-        type: "string",
-        width: 200,
-        align: "left",
-      },
-      {
-        field: "qtyPcs",
-        title: "鍚堟牸PCS鏁�",
-        type: "string",
-        width: 120,
-        align: "left",
-      },
-      {
-        field: "overQtyPcs",
-        title: "宸插嚭鏁伴噺",
-        type: "string",
-        width: 120,
-        align: "left",
-      },
-      {
-        field: "xQty",
-        title: "x鏉挎暟",
-        type: "string",
-        width: 120,
-        align: "left",
-      },
-      {
-        field: "xSite",
-        title: "x鏉夸綅",
-        type: "string",
-        width: 120,
-        align: "left",
-      },
-      {
-        field: "unit",
-        title: "鍗曚綅",
-        type: "string",
-        width: 120,
-        align: "left",
-      },
-      {
-        field: "spareQty",
-        title: "澶囧搧鏁�",
-        type: "string",
-        width: 120,
-        align: "left",
-      },
-
-      {
-        field: "creater",
-        title: "鍒涘缓浜�",
-        type: "string",
-        width: 90,
-        align: "left",
-      },
-      {
-        field: "createDate",
-        title: "鍒涘缓鏃堕棿",
-        type: "datetime",
-        width: 160,
-        align: "left",
-      },
-      {
-        field: "modifier",
-        title: "淇敼浜�",
-        type: "string",
-        width: 100,
-        align: "left",
-      },
-      {
-        field: "modifyDate",
-        title: "淇敼鏃堕棿",
-        type: "datetime",
-        width: 160,
-        align: "left",
-      },
-      {
-        field: "remark",
-        title: "澶囨敞",
-        type: "string",
-        width: 100,
-        align: "left",
-      },
-    ]);
-    const detail = ref({
-      cnName: "#detailCnName",
-      table: "",
-      columns: [],
-      sortName: "",
-    });
-    return {
-      table,
-      extend,
-      editFormFields,
-      editFormOptions,
-      searchFormFields,
-      searchFormOptions,
-      columns,
-      detail,
-    };
-  },
-});
-</script>
-    
\ No newline at end of file
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_DTO/ERP/SGOutOrderDTO.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_DTO/ERP/SGOutOrderDTO.cs"
new file mode 100644
index 0000000..e6343fa
--- /dev/null
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_DTO/ERP/SGOutOrderDTO.cs"
@@ -0,0 +1,93 @@
+锘縰sing System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using WIDESEA_Core.Attributes;
+
+namespace WIDESEA_DTO.ERP
+{
+    /// <summary>
+    /// 鐢熺鎺掔▼鎺ユ敹瀹炰綋
+    /// </summary>
+    public class SGOutOrderDTO
+    {
+        /// <summary>
+        /// 涓绘帓绋婭d
+        /// </summary>
+        [PropertyValidate("涓绘帓绋婭d", NotNullAndEmpty = true)]
+        public int BoardMpsId { get; set; }
+
+        /// <summary>
+        /// 鎺掔▼鏄庣粏ID
+        /// </summary>
+        [PropertyValidate("鎺掔▼鏄庣粏ID", NotNullAndEmpty = true)]
+        public int BoardMpsDetailId { get; set; }
+
+        /// <summary>
+        /// 骞呭
+        /// </summary>
+        [PropertyValidate("骞呭", NotNullAndEmpty = true)]
+        public decimal Width { get; set; }
+
+        /// <summary>
+        /// 闇�姹傞暱搴�
+        /// </summary>
+        [PropertyValidate("闇�姹傞暱搴�", NotNullAndEmpty = true)]
+        public decimal XqLen { get; set; }
+
+        /// <summary>
+        /// 鎬荤敤閲�
+        /// </summary>
+        [PropertyValidate("鎬荤敤閲�", NotNullAndEmpty = true)]
+        public decimal TotalUsage { get; set; }
+
+        /// <summary>
+        /// 鐗╂枡鏉ユ簮ID(涓婃父)
+        /// </summary>
+        [PropertyValidate("鐗╂枡ID", NotNullAndEmpty = true)]
+        public int MaterialId { get; set; }
+
+        /// <summary>
+        /// 鐗╂枡缂栧彿
+        /// </summary>
+        [PropertyValidate("鐗╂枡缂栧彿", NotNullAndEmpty = true)]
+        public string MaterialNo { get; set; }
+
+        /// <summary>
+        /// 閲囪喘闀垮害
+        /// </summary>
+        [PropertyValidate("閲囪喘闀垮害", NotNullAndEmpty = true)]
+        public decimal ProcurementLength { get; set; }
+
+        /// <summary>
+        /// 妤炲埆
+        /// </summary>
+        [PropertyValidate("妤炲埆", NotNullAndEmpty = true)]
+        public string BoardFluteNo { get; set; }
+
+        /// <summary>
+        /// 鏈哄彴浣嶇疆
+        /// </summary>
+        [PropertyValidate("鏈哄彴浣嶇疆", NotNullAndEmpty = true)]
+        public string MachineName { get; set; }
+
+        /// <summary>
+        /// 瀹㈡埛绠�绉�
+        /// </summary>
+        [PropertyValidate("瀹㈡埛绠�绉�", NotNullAndEmpty = true)]
+        public string ShortName { get; set; }
+
+        /// <summary>
+        /// 鎬婚暱
+        /// </summary>
+        [PropertyValidate("鎬婚暱", NotNullAndEmpty = true)]
+        public decimal TotalLenth { get; set; }
+
+        /// <summary>
+        /// 鐢熶骇宸ュ崟鍙�(涓婃父)
+        /// </summary>
+        [PropertyValidate("鐢熶骇宸ュ崟鍙�", NotNullAndEmpty = true)]
+        public string OrderId { get; set; }
+    }
+}
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_DTO/MES/MESManualIssueDTO.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_DTO/MES/MESManualIssueDTO.cs"
new file mode 100644
index 0000000..5c21a84
--- /dev/null
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_DTO/MES/MESManualIssueDTO.cs"
@@ -0,0 +1,34 @@
+锘縰sing System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using WIDESEA_Core.Attributes;
+
+namespace WIDESEA_DTO.MES
+{
+    /// <summary>
+    /// MES棰嗘枡鑷姩鍙枡鎺ユ敹瀹炰綋
+    /// </summary>
+    [ModelValidate]
+    public class MESManualIssueDTO
+    {
+        /// <summary>
+        /// 鍑哄簱鏉ユ簮鏄庣粏ID
+        /// </summary>
+        [PropertyValidate("鍑哄簱鏉ユ簮鏄庣粏ID", NotNullAndEmpty = true)]
+        public int OutDetailId { get; set; }
+
+        /// <summary>
+        /// 鍛煎彨Id
+        /// </summary>
+        [PropertyValidate("鍛煎彨Id", NotNullAndEmpty = true)]
+        public string IssueId { get; set; }
+
+        /// <summary>
+        /// 鍛ㄨ浆浣嶇疆缂栧彿
+        /// </summary>
+        [PropertyValidate("鍛ㄨ浆浣嶇疆缂栧彿", NotNullAndEmpty = true)]
+        public string PointCode { get; set; }
+    }
+}
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_DTO/MES/MESOrderStopDTO.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_DTO/MES/MESOrderStopDTO.cs"
new file mode 100644
index 0000000..755882c
--- /dev/null
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_DTO/MES/MESOrderStopDTO.cs"
@@ -0,0 +1,27 @@
+锘縰sing System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using WIDESEA_Core.Attributes;
+
+namespace WIDESEA_DTO.MES
+{
+    /// <summary>
+    /// MES宸ュ崟鍋滄鍙枡鎺ユ敹瀹炰綋
+    /// </summary>
+    [ModelValidate]
+    public class MESOrderStopDTO
+    {
+        /// <summary>
+        /// 鐢熶骇璁㈠崟缂栫爜
+        /// </summary>
+        [PropertyValidate("鐢熶骇璁㈠崟缂栫爜", NotNullAndEmpty = true)]
+        public string ProductOrderNo { get; set; }
+        /// <summary>
+        /// 鍋滄鏍囪瘑
+        /// </summary>
+        [PropertyValidate("鍋滄鏍囪瘑", NotNullAndEmpty = true)]
+        public int IsStop { get; set; }
+    }
+}
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_DTO/MES/MESProInDTO.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_DTO/MES/MESProInDTO.cs"
new file mode 100644
index 0000000..4bcb8d8
--- /dev/null
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_DTO/MES/MESProInDTO.cs"
@@ -0,0 +1,119 @@
+锘縰sing SqlSugar;
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using WIDESEA_Core.Attributes;
+
+namespace WIDESEA_DTO.MES
+{
+    /// <summary>
+    /// MES鎴愬搧/鍗婃垚鍝佹帴鏀跺疄浣�
+    /// </summary>
+    [ModelValidate]
+    public class MESProInDTO
+    {
+        /// <summary>
+        /// 鐢熶骇璁㈠崟缂栫爜(涓婃父)
+        /// </summary>
+        [PropertyValidate("鐢熶骇璁㈠崟缂栫爜", NotNullAndEmpty = true)]
+        public string ProductOrderNo { get; set; }
+
+        /// <summary>
+        /// 娲惧崟宸ュ崟缂栫爜(涓婃父)
+        /// </summary>
+        [PropertyValidate("娲惧崟宸ュ崟缂栫爜", NotNullAndEmpty = true)]
+        public string SendOrderNo { get; set; }
+
+        /// <summary>
+        /// 鐗╂枡缂栫爜
+        /// </summary>
+        [PropertyValidate("鐗╂枡缂栫爜", NotNullAndEmpty = true)]
+        public string MaterialCode { get; set; }
+
+        /// <summary>
+        /// 鐗╂枡鎵规
+        /// </summary>
+        [PropertyValidate("鐗╂枡鎵规", NotNullAndEmpty = true)]
+        public string MaterialLot { get; set; }
+
+        /// <summary>
+        /// 鐗╂枡绛夌骇
+        /// </summary>
+        [PropertyValidate("鐗╂枡绛夌骇", NotNullAndEmpty = true)]
+        public string GradeCode { get; set; }
+
+        /// <summary>
+        /// 鐗╂枡鏁伴噺
+        /// </summary>
+        [PropertyValidate("鐗╂枡鏁伴噺", NotNullAndEmpty = true)]
+        public decimal ProQuantity { get; set; }
+
+        /// <summary>
+        /// 鐗╂枡鏉$爜
+        /// </summary>
+        [PropertyValidate("鐗╂枡鏉$爜", NotNullAndEmpty = true)]
+        public string BarCode { get; set; }
+
+        /// <summary>
+        /// 鍔犲伐涓績缂栫爜(鏈哄彴)
+        /// </summary>
+        [PropertyValidate("鍔犲伐涓績缂栫爜", NotNullAndEmpty = true)]
+        public string MakeCode { get; set; }
+
+        /// <summary>
+        /// 鏄惁灏剧
+        /// </summary>
+        [PropertyValidate("鏄惁灏剧", NotNullAndEmpty = true)]
+        public bool IsMantissa { get; set; }
+
+        /// <summary>
+        /// 浣嶇疆缂栧彿
+        /// </summary>
+        [PropertyValidate("浣嶇疆缂栧彿", NotNullAndEmpty = true)]
+        public string PointCode { get; set; }
+
+        /// <summary>
+        /// 鍗峰緞
+        /// </summary>
+        [PropertyValidate("鍗峰緞", NotNullAndEmpty = true)]
+        public decimal Thickness { get; set; }
+
+        /// <summary>
+        /// 骞呭
+        /// </summary>
+        [PropertyValidate("骞呭", NotNullAndEmpty = true)]
+        public decimal Wide { get; set; }
+
+        /// <summary>
+        /// 閲嶉噺
+        /// </summary>
+        [PropertyValidate("閲嶉噺", NotNullAndEmpty = true)]
+        public decimal Weight { get; set; }
+
+        /// <summary>
+        /// 鎴愬搧鍖呮潗绾哥鐗╂枡缂栫爜
+        /// </summary>
+        [PropertyValidate("鎴愬搧鍖呮潗绾哥鐗╂枡缂栫爜", NotNullAndEmpty = true)]
+        public string ProPackCode { get; set; }
+
+        /// <summary>
+        /// 绠遍暱
+        /// </summary>
+        [PropertyValidate("绠遍暱", NotNullAndEmpty = true)]
+        public decimal Length { get; set; }
+
+        /// <summary>
+        /// 绠卞
+        /// </summary>
+        [PropertyValidate("绠卞", NotNullAndEmpty = true)]
+        public decimal Width { get; set; }
+
+        /// <summary>
+        /// 绠遍珮
+        /// </summary>
+        [PropertyValidate("绠遍珮", NotNullAndEmpty = true)]
+        public decimal Height { get; set; }
+    }
+}
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_DTO/MES/MESReturnIssueDTO.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_DTO/MES/MESReturnIssueDTO.cs"
new file mode 100644
index 0000000..89bc658
--- /dev/null
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_DTO/MES/MESReturnIssueDTO.cs"
@@ -0,0 +1,90 @@
+锘縰sing System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using WIDESEA_Core.Attributes;
+
+namespace WIDESEA_DTO.MES
+{
+    /// <summary>
+    /// MES绌烘墭/浣欐枡鎺ユ敹瀹炰綋
+    /// </summary>
+    [ModelValidate]
+    public class MESReturnIssueDTO
+    {
+        /// <summary>
+        /// 鍑哄簱鏉ユ簮鏄庣粏ID
+        /// </summary>
+        [PropertyValidate("鍑哄簱鏉ユ簮鏄庣粏ID", NotNullAndEmpty = true)]
+        public int OutDetailId { get; set; }
+
+        /// <summary>
+        /// 鍛煎彨Id
+        /// </summary>
+        [PropertyValidate("鍛煎彨Id", NotNullAndEmpty = true)]
+        public string IssueId { get; set; }
+
+        /// <summary>
+        /// 鍛ㄨ浆浣嶇疆缂栧彿
+        /// </summary>
+        [PropertyValidate("鍛ㄨ浆浣嶇疆缂栧彿", NotNullAndEmpty = true)]
+        public string PointCode { get; set; }
+        /// <summary>
+        /// 浣欐枡淇℃伅
+        /// </summary>
+        [PropertyValidate("浣欐枡淇℃伅", NotNullAndEmpty = false)]
+        public MESReturnMaterial? ReturnMaterial { get; set; }
+    }
+    /// <summary>
+    /// 浣欐枡淇℃伅
+    /// </summary>
+    public class MESReturnMaterial
+    {
+        /// <summary>
+        /// 鏉$爜淇℃伅
+        /// </summary>
+        [PropertyValidate("鏉$爜淇℃伅", NotNullAndEmpty = true)]
+        public string BarCode { get; set; }
+        /// <summary>
+        /// 鐗╂枡浠g爜
+        /// </summary>
+        [PropertyValidate("鐗╂枡浠g爜", NotNullAndEmpty = true)]
+        public string MaterialCode { get; set; }
+        /// <summary>
+        /// 鐗╂枡鎵规
+        /// </summary>
+        [PropertyValidate("鐗╂枡鎵规", NotNullAndEmpty = true)]
+        public string MaterialLot { get; set; }
+        /// <summary>
+        /// 閫�鏂欐暟閲�
+        /// </summary>
+        [PropertyValidate("閫�鏂欐暟閲�", NotNullAndEmpty = true)]
+        public decimal ReturnQuantity { get; set; }
+        /// <summary>
+        /// 鏄惁棰嗘枡锛�1鏈鏂� 0宸蹭复鏂欙級
+        /// </summary>
+        [PropertyValidate("鏄惁棰嗘枡锛�1鏈鏂� 0宸蹭复鏂欙級", NotNullAndEmpty = true)]
+        public string Whether { get; set; }
+        /// <summary>
+        /// 閫�鏂欏伐鍗曞彿(ERP鐩稿叧)
+        /// </summary>
+        [PropertyValidate("閫�鏂欏伐鍗曞彿(ERP鐩稿叧)", NotNullAndEmpty = false)]
+        public string ReturnOrderNo { get; set; }
+        /// <summary>
+        /// 鐩村緞
+        /// </summary>
+        [PropertyValidate("鐩村緞", NotNullAndEmpty = true)]
+        public string Thickness { get; set; }
+        /// <summary>
+        /// 骞呭
+        /// </summary>
+        [PropertyValidate("骞呭", NotNullAndEmpty = true)]
+        public decimal Wide { get; set; }
+        /// <summary>
+        /// 閲嶉噺
+        /// </summary>
+        [PropertyValidate("閲嶉噺", NotNullAndEmpty = true)]
+        public decimal Weight { get; set; }
+    }
+}
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_DTO/MES/OutMESOrderDTO.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_DTO/MES/OutMESOrderDTO.cs"
index 8df49a8..97035da 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_DTO/MES/OutMESOrderDTO.cs"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_DTO/MES/OutMESOrderDTO.cs"
@@ -22,7 +22,7 @@
         /// <summary>
         /// 浠撳簱浠e彿
         /// </summary>
-        [PropertyValidate("绾歌川鏀惰揣鍗曚富琛↖D", NotNullAndEmpty = false)]
+        [PropertyValidate("浠撳簱浠e彿", NotNullAndEmpty = true)]
         public string WarehouseCode { get; set; }
 
         /// <summary>
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_IInboundRepository/IInboundRepository.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_IInboundRepository/IInboundRepository.cs"
new file mode 100644
index 0000000..5483cf9
--- /dev/null
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_IInboundRepository/IInboundRepository.cs"
@@ -0,0 +1,36 @@
+锘縰sing System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using WIDESEA_Core;
+
+namespace WIDESEA_IInboundRepository
+{
+    /// <summary>
+    /// 鍏ュ簱浠撳偍鎺ュ彛灞傞泦鎴�
+    /// </summary>
+    public interface IInboundRepository : IDependency
+    {
+        /// <summary>
+        /// 鍗氭�濋�氶噰璐富琛ㄤ粨鍌ㄦ帴鍙�
+        /// </summary>
+        IPurchaseBSTOrderRepository PurchaseBSTOrderRepository { get; }
+        /// <summary>
+        /// 鍗氭�濋�氶噰璐槑缁嗕粨鍌ㄦ帴鍙�
+        /// </summary>
+        IPurchaseBSTOrderDetailRepository PurchaseBSTOrderDetailRepository { get; }
+        /// <summary>
+        /// 鍗氭�濋�氶��鏂欎富琛ㄤ粨鍌ㄦ帴鍙�
+        /// </summary>
+        IReturnBSTOrderRepository ReturnBSTOrderRepository { get; }
+        /// <summary>
+        /// 鍗氭�濋�氶��鏂欐槑缁嗕粨鍌ㄦ帴鍙�
+        /// </summary>
+        IReturnBSTOrderDetailRepository ReturnBSTOrderDetailRepository { get; }
+        /// <summary>
+        /// MES鎴愬搧/鍗婃垚鍝佷粨鍌ㄦ帴鍙�
+        /// </summary>
+        IMESProInOrderInfoRepository MESProInOrderInfoRepository { get; }
+    }
+}
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_IInboundRepository/IMESProInOrderInfoRepository.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_IInboundRepository/IMESProInOrderInfoRepository.cs"
new file mode 100644
index 0000000..fa730f2
--- /dev/null
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_IInboundRepository/IMESProInOrderInfoRepository.cs"
@@ -0,0 +1,17 @@
+锘縰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_IInboundRepository
+{
+    /// <summary>
+    /// MES鎴愬搧/鍗婃垚鍝佷粨鍌ㄦ帴鍙e眰
+    /// </summary>
+    public interface IMESProInOrderInfoRepository : IRepository<Dt_MESProInOrderInfo>
+    {
+    }
+}
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_IInboundService/IInboundService.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_IInboundService/IInboundService.cs"
new file mode 100644
index 0000000..1a51735
--- /dev/null
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_IInboundService/IInboundService.cs"
@@ -0,0 +1,36 @@
+锘縰sing System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using WIDESEA_Core;
+
+namespace WIDESEA_IInboundService
+{
+    /// <summary>
+    /// 鍏ュ簱涓氬姟鎺ュ彛灞傞泦鎴�
+    /// </summary>
+    public interface IInboundService : IDependency
+    {
+        /// <summary>
+        /// MES鎴愬搧/鍗婃垚鍝佷笟鍔″眰
+        /// </summary>
+        IMESProInOrderInfoService MESProInOrderInfoService { get; }
+        /// <summary>
+        /// 鍗氭�濋�氶噰璐崟涓氬姟灞�
+        /// </summary>
+        IPurchaseBSTOrderService PurchaseBSTOrderService { get; }
+        /// <summary>
+        /// 鍗氭�濋�氶噰璐崟鏄庣粏涓氬姟灞�
+        /// </summary>
+        IPurchaseBSTOrderDetailService PurchaseBSTOrderDetailService { get; }
+        /// <summary>
+        /// 鍗氭�濋�氶��鏂欏崟涓氬姟灞�
+        /// </summary>
+        IReturnBSTOrderService ReturnBSTOrderService { get; }
+        /// <summary>
+        /// 鍗氭�濋�氶��鏂欏崟鏄庣粏涓氬姟灞�
+        /// </summary>
+        IReturnBSTOrderDetailService ReturnBSTOrderDetailService { get; }
+    }
+}
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_IInboundService/IMESProInOrderInfoService.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_IInboundService/IMESProInOrderInfoService.cs"
new file mode 100644
index 0000000..e583a36
--- /dev/null
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_IInboundService/IMESProInOrderInfoService.cs"
@@ -0,0 +1,26 @@
+锘縰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.MES;
+using WIDESEA_IInboundRepository;
+using WIDESEA_Model.Models;
+
+namespace WIDESEA_IInboundService
+{
+    public interface IMESProInOrderInfoService : IService<Dt_MESProInOrderInfo>
+    {
+        IMESProInOrderInfoRepository Repository { get; }
+        /// <summary>
+        /// 鎴愬搧/鍗婃垚鍝佷俊鎭悓姝ユ帴鍙�
+        /// </summary>
+        WebResponseContent ReceiveProCodeInfo(List<MESProInDTO> proInDTOs);
+        /// <summary>
+        /// MES宸ュ崟鍋滄鎺ュ彛
+        /// </summary>
+        WebResponseContent ReceiveProOrderStop(MESOrderStopDTO orderStopDTO);
+    }
+}
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_IOutboundRepository/IOutSGOrderDetailRepository.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_IOutboundRepository/IOutSGOrderDetailRepository.cs"
new file mode 100644
index 0000000..f3b8929
--- /dev/null
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_IOutboundRepository/IOutSGOrderDetailRepository.cs"
@@ -0,0 +1,17 @@
+锘縰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
+{
+    /// <summary>
+    /// 鐢熺鍑哄簱淇℃伅浠撳偍鎺ュ彛灞�
+    /// </summary>
+    public interface IOutSGOrderDetailRepository : IRepository<Dt_OutSGOrderDetail>
+    {
+    }
+}
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_IOutboundRepository/IOutSGOrderRepository.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_IOutboundRepository/IOutSGOrderRepository.cs"
new file mode 100644
index 0000000..afb1205
--- /dev/null
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_IOutboundRepository/IOutSGOrderRepository.cs"
@@ -0,0 +1,17 @@
+锘縰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
+{
+    /// <summary>
+    /// 鐢熺鍑哄簱淇℃伅浠撳偍鎺ュ彛灞�
+    /// </summary>
+    public interface IOutSGOrderRepository : IRepository<Dt_OutSGOrder>
+    {
+    }
+}
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_IOutboundRepository/IOutboundRepository.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_IOutboundRepository/IOutboundRepository.cs"
new file mode 100644
index 0000000..e7284e2
--- /dev/null
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_IOutboundRepository/IOutboundRepository.cs"
@@ -0,0 +1,32 @@
+锘縰sing System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using WIDESEA_Core;
+
+namespace WIDESEA_IOutboundRepository
+{
+    /// <summary>
+    /// 鍑哄簱浠撳偍鎺ュ彛灞傞泦鎴�
+    /// </summary>
+    public interface IOutboundRepository : IDependency
+    {
+        /// <summary>
+        /// MES棰嗘枡鍗曚粨鍌ㄦ帴鍙e眰
+        /// </summary>
+        IOutMESOrderRepository OutMESOrderRepository { get; }
+        /// <summary>
+        /// 鐢熺鎺掔▼浠撳偍鎺ュ彛灞�
+        /// </summary>
+        IOutSGOrderRepository OutSGOrderRepository { get; }
+        /// <summary>
+        /// 鐢熺鎺掔▼鏄庣粏浠撳偍鎺ュ彛灞�
+        /// </summary>
+        IOutSGOrderDetailRepository OutSGOrderDetailRepository { get; }
+        /// <summary>
+        /// 鍑哄簱璇︽儏浠撳偍鎺ュ彛灞�
+        /// </summary>
+        IOutStockLockInfoRepository OutStockLockInfoRepository { get; }
+    }
+}
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_IOutboundService/IOutMESOrderService.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_IOutboundService/IOutMESOrderService.cs"
index 1a5cb93..5c7d91e 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_IOutboundService/IOutMESOrderService.cs"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_IOutboundService/IOutMESOrderService.cs"
@@ -18,6 +18,6 @@
         /// <summary>
         /// 鎺ユ敹MES棰嗘枡璁″垝
         /// </summary>
-        WebResponseContent ReceiveOutBound(OutMESOrderDTO outMESOrderDTO);
+        WebResponseContent ReceiveOutBound(List<OutMESOrderDTO> outMESOrderDTO);
     }
 }
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_IOutboundService/IOutSGOrderDetailService.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_IOutboundService/IOutSGOrderDetailService.cs"
new file mode 100644
index 0000000..1ab146b
--- /dev/null
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_IOutboundService/IOutSGOrderDetailService.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 IOutSGOrderDetailService : IService<Dt_OutSGOrderDetail>
+    {
+        IOutSGOrderDetailRepository Repository { get; }
+    }
+}
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_IOutboundService/IOutSGOrderService.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_IOutboundService/IOutSGOrderService.cs"
new file mode 100644
index 0000000..09099c4
--- /dev/null
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_IOutboundService/IOutSGOrderService.cs"
@@ -0,0 +1,23 @@
+锘縰sing System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using WIDESEA_Common.StockEnum;
+using WIDESEA_Core;
+using WIDESEA_Core.BaseServices;
+using WIDESEA_DTO.ERP;
+using WIDESEA_IOutboundRepository;
+using WIDESEA_Model.Models;
+
+namespace WIDESEA_IOutboundService
+{
+    public interface IOutSGOrderService : IService<Dt_OutSGOrder>
+    {
+        IOutSGOrderRepository Repository { get; }
+        /// <summary>
+        /// 娣诲姞鐢熺鎺掔▼
+        /// </summary>
+        WebResponseContent AddOutSGOrder(List<SGOutOrderDTO> outOrderDTOs);
+    }
+}
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_IOutboundService/IOutboundService.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_IOutboundService/IOutboundService.cs"
new file mode 100644
index 0000000..a815eb1
--- /dev/null
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_IOutboundService/IOutboundService.cs"
@@ -0,0 +1,32 @@
+锘縰sing System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using WIDESEA_Core;
+
+namespace WIDESEA_IOutboundService
+{
+    /// <summary>
+    /// 鍑哄簱涓氬姟鎺ュ彛灞傞泦鎴�
+    /// </summary>
+    public interface IOutboundService : IDependency
+    {
+        /// <summary>
+        /// MES棰嗘枡涓氬姟鎺ュ彛灞�
+        /// </summary>
+        IOutMESOrderService OutMESOrderService { get; }
+        /// <summary>
+        /// 鐢熺鎺掔▼涓氬姟鎺ュ彛灞�
+        /// </summary>
+        IOutSGOrderService OutSGOrderService { get; }
+        /// <summary>
+        /// 鐢熺鎺掔▼鏄庣粏涓氬姟鎺ュ彛灞�
+        /// </summary>
+        IOutSGOrderDetailService OutSGOrderDetailService { get; }
+        /// <summary>
+        /// 鍑哄簱璇︽儏涓氬姟鎺ュ彛灞�
+        /// </summary>
+        IOutStockLockInfoService OutStockLockInfoService { get; }
+    }
+}
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_ITaskInfoService/ITaskService.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_ITaskInfoService/ITaskService.cs"
index 4da871c..0adef17 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_ITaskInfoService/ITaskService.cs"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_ITaskInfoService/ITaskService.cs"
@@ -201,5 +201,15 @@
         /// </summary>
         /// <returns></returns>
         WebResponseContent ReceiveAutoIssue(MESAutoIssueDTO autoIssueDTO);
+        /// <summary>
+        /// MES鎵嬪姩鍙枡鎺ュ彛
+        /// </summary>
+        /// <returns></returns>
+        WebResponseContent ReceiveManualIssue(MESManualIssueDTO manualIssueDTO);
+        /// <summary>
+        /// MES绌烘墭/浣欐枡鍛煎彨鎺ュ彛
+        /// </summary>
+        /// <returns></returns>
+        WebResponseContent ReceiveReturnIssue(List<MESReturnIssueDTO> returnIssueDTOs);
     }
 }
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_InboundRepository/InboundRepository.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_InboundRepository/InboundRepository.cs"
new file mode 100644
index 0000000..9908336
--- /dev/null
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_InboundRepository/InboundRepository.cs"
@@ -0,0 +1,29 @@
+锘縰sing System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using WIDESEA_IInboundRepository;
+
+namespace WIDESEA_InboundRepository
+{
+    /// <summary>
+    /// 鍏ュ簱浠撳偍瀹炵幇灞傞泦鎴�
+    /// </summary>
+    public class InboundRepository : IInboundRepository
+    {
+        public IPurchaseBSTOrderRepository PurchaseBSTOrderRepository { get; }
+        public IPurchaseBSTOrderDetailRepository PurchaseBSTOrderDetailRepository { get; }
+        public IReturnBSTOrderRepository ReturnBSTOrderRepository { get; }
+        public IReturnBSTOrderDetailRepository ReturnBSTOrderDetailRepository { get; }
+        public IMESProInOrderInfoRepository MESProInOrderInfoRepository { get; }
+        public InboundRepository(IPurchaseBSTOrderRepository purchaseBSTOrderRepository,IPurchaseBSTOrderDetailRepository purchaseBSTOrderDetailRepository, IReturnBSTOrderRepository returnBSTOrderRepository, IReturnBSTOrderDetailRepository returnBSTOrderDetailRepository, IMESProInOrderInfoRepository mESProInOrderInfoRepository)
+        {
+            PurchaseBSTOrderRepository = purchaseBSTOrderRepository;
+            PurchaseBSTOrderDetailRepository = purchaseBSTOrderDetailRepository;
+            ReturnBSTOrderRepository = returnBSTOrderRepository;
+            ReturnBSTOrderDetailRepository = returnBSTOrderDetailRepository;
+            MESProInOrderInfoRepository = mESProInOrderInfoRepository;
+        }
+    }
+}
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_InboundRepository/MESProInOrderInfoRepository.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_InboundRepository/MESProInOrderInfoRepository.cs"
new file mode 100644
index 0000000..172d577
--- /dev/null
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_InboundRepository/MESProInOrderInfoRepository.cs"
@@ -0,0 +1,21 @@
+锘縰sing System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using WIDESEA_Core.BaseRepository;
+using WIDESEA_IInboundRepository;
+using WIDESEA_Model.Models;
+
+namespace WIDESEA_InboundRepository
+{
+    /// <summary>
+    /// MES鎴愬搧/鍗婃垚鍝佷粨鍌ㄥ疄鐜板眰
+    /// </summary>
+    public class MESProInOrderInfoRepository : RepositoryBase<Dt_MESProInOrderInfo>, IMESProInOrderInfoRepository
+    {
+        public MESProInOrderInfoRepository(IUnitOfWorkManage unitOfWorkManage) : base(unitOfWorkManage)
+        {
+        }
+    }
+}
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_InboundService/InboundService.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_InboundService/InboundService.cs"
new file mode 100644
index 0000000..74bdc7d
--- /dev/null
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_InboundService/InboundService.cs"
@@ -0,0 +1,29 @@
+锘縰sing System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using WIDESEA_IInboundService;
+
+namespace WIDESEA_InboundService
+{
+    /// <summary>
+    /// 鍏ュ簱涓氬姟瀹炵幇灞傞泦鎴�
+    /// </summary>
+    public class InboundService : IInboundService
+    {
+        public IMESProInOrderInfoService MESProInOrderInfoService { get; }
+        public IPurchaseBSTOrderService PurchaseBSTOrderService { get; }
+        public IPurchaseBSTOrderDetailService PurchaseBSTOrderDetailService { get; }
+        public IReturnBSTOrderService ReturnBSTOrderService { get; }
+        public IReturnBSTOrderDetailService ReturnBSTOrderDetailService { get; }
+        public InboundService(IMESProInOrderInfoService mESProInOrderInfoService,IPurchaseBSTOrderService purchaseBSTOrderService,IPurchaseBSTOrderDetailService purchaseBSTOrderDetailService,IReturnBSTOrderService returnBSTOrderService,IReturnBSTOrderDetailService returnBSTOrderDetailService)
+        {
+            MESProInOrderInfoService = mESProInOrderInfoService;
+            PurchaseBSTOrderService = purchaseBSTOrderService;
+            PurchaseBSTOrderDetailService = purchaseBSTOrderDetailService;
+            ReturnBSTOrderService = returnBSTOrderService;
+            ReturnBSTOrderDetailService = returnBSTOrderDetailService;
+        }
+    }
+}
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_InboundService/MESProInOrderInfoService.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_InboundService/MESProInOrderInfoService.cs"
new file mode 100644
index 0000000..62dfd91
--- /dev/null
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_InboundService/MESProInOrderInfoService.cs"
@@ -0,0 +1,130 @@
+锘縰sing AutoMapper;
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using WIDESEA_Common.MaterielEnum;
+using WIDESEA_Common.OrderEnum;
+using WIDESEA_Core;
+using WIDESEA_Core.BaseServices;
+using WIDESEA_Core.Helper;
+using WIDESEA_DTO.MES;
+using WIDESEA_IBasicRepository;
+using WIDESEA_IInboundRepository;
+using WIDESEA_IInboundService;
+using WIDESEA_Model.Models;
+
+namespace WIDESEA_InboundService
+{
+    public class MESProInOrderInfoService : ServiceBase<Dt_MESProInOrderInfo, IMESProInOrderInfoRepository>, IMESProInOrderInfoService
+    {
+        public IMESProInOrderInfoRepository Repository => BaseDal;
+        private readonly IBasicRepository _basicRepository;
+        private readonly IAGVStationInfoRepository _agvStationInfoRepository;
+        private readonly IMapper _mapper;
+        public MESProInOrderInfoService(IMESProInOrderInfoRepository BaseDal,IBasicRepository basicRepository,IMapper mapper, IAGVStationInfoRepository agvStationInfoRepository) : base(BaseDal)
+        {
+            _basicRepository = basicRepository;
+            _mapper = mapper;
+            _agvStationInfoRepository = agvStationInfoRepository;
+        }
+
+        public class TEMp
+        {
+            public int ID { get; set; }
+            public string Name { get; set; }
+        }
+        /// <summary>
+        /// 鎴愬搧/鍗婃垚鍝佷俊鎭悓姝ユ帴鍙�
+        /// </summary>
+        public WebResponseContent ReceiveProCodeInfo(List<MESProInDTO> proInDTOs)
+        {
+            WebResponseContent content = new WebResponseContent();
+            try
+            {
+                if (proInDTOs==null || proInDTOs.Count<=0)
+                {
+                    return content.Error("浼犲叆淇℃伅涓虹┖");
+                }
+                //鑾峰彇鎵�鏈夋垚鍝侊紝鍗婃垚鍝佷俊鎭�
+                List<Dt_MESProInOrderInfo> proInOrderInfos = BaseDal.QueryData();
+                List<TEMp> temp = BaseDal.QueryData().Select(x => new TEMp() { ID=x.Id,Name=x.BarCode}).Where(x => x.Name.Split("-")[1].StartsWith("U1")).ToList();
+                //鑾峰彇鎵�鏈夌墿鏂欎俊鎭�
+                List<Dt_MaterielInfo> materielInfos = _basicRepository.MaterielInfoRepository.QueryData(x => x.MaterielInvOrgId == MaterielInvOrgEnum.鏂板巶.ObjToInt());
+                //鑾峰彇鎵�鏈夐鏂欒鍒�
+                MESProInDTO? CheckMaterialCode = proInDTOs.FirstOrDefault(x => !materielInfos.Select(x => x.MaterielCode).Contains(x.MaterialCode));
+                if (CheckMaterialCode != null)
+                {
+                    return content.Error($"鐗╂枡缂栫爜{nameof(MESProInDTO.MaterialCode)}:{CheckMaterialCode.MaterialCode}淇℃伅涓嶅瓨鍦�");
+                }
+                //鑾峰彇鎵�鏈堿GV鐐逛綅
+                List<Dt_AGVStationInfo> aGVStationInfos = _agvStationInfoRepository.QueryData(x => !string.IsNullOrEmpty(x.MESPointCode));
+                MESProInDTO? CheckPointCode = proInDTOs.FirstOrDefault(x => !aGVStationInfos.Select(x => x.MESPointCode).Contains(x.PointCode));
+                if (CheckPointCode != null)
+                {
+                    return content.Error($"鍛ㄨ浆浣峽nameof(MESReturnIssueDTO.PointCode)}{CheckPointCode.PointCode}涓嶅瓨鍦�");
+                }
+                //鍒ゆ柇鏄惁瀛樺湪閲嶅
+                MESProInDTO? proInDTO = proInDTOs.FirstOrDefault(x=>x.IsMantissa==false && proInOrderInfos.Select(x=>x.BarCode).Contains(x.BarCode));
+                if (proInDTO!=null)
+                {
+                    return content.Error($"{proInDTO.ProductOrderNo}鐢熶骇宸ュ崟{proInDTO.BarCode}鏉$爜宸插瓨鍦�");
+                }
+                Dt_MESProInOrderInfo? proInOrderInfo = proInOrderInfos.FirstOrDefault(x=>x.MESProInStatus==InOrderStatusEnum.鍏抽棴.ObjToInt() && proInDTOs.Select(x=>x.ProductOrderNo).Distinct().Contains(x.ProductOrderNo));
+                if (proInOrderInfo != null)
+                {
+                    return content.Error($"{proInOrderInfo.ProductOrderNo}鐢熶骇宸ュ崟宸插叧闂�");
+                }
+                List<Dt_MESProInOrderInfo> AddMESProInOrders = new List<Dt_MESProInOrderInfo>();
+                foreach (var item in proInDTOs)
+                {
+                    Dt_MaterielInfo materielInfo = materielInfos.FirstOrDefault(x=>x.MaterielCode== item.MaterialCode);
+                    Dt_MESProInOrderInfo AddproInOrderInfo = _mapper.Map<Dt_MESProInOrderInfo>(item);
+                    AddproInOrderInfo.WarehouseId = materielInfo.WarehouseId;
+                    AddproInOrderInfo.MESProOrderType = materielInfo.MaterielSourceType;
+                    AddMESProInOrders.Add(AddproInOrderInfo);
+                }
+                BaseDal.AddData(AddMESProInOrders);
+                content.OK("鎺ユ敹鎴愬姛");
+            }
+            catch (Exception ex)
+            {
+                content.Error(ex.Message);
+            }
+            return content;
+        }
+        /// <summary>
+        /// MES宸ュ崟鍋滄鎺ュ彛
+        /// </summary>
+        /// <summary>
+        public WebResponseContent ReceiveProOrderStop(MESOrderStopDTO orderStopDTO)
+        {
+            WebResponseContent content = new WebResponseContent();
+            try
+            {
+                if (orderStopDTO == null)
+                {
+                    return content.Error("浼犲叆淇℃伅涓嶈兘涓虹┖");
+                }
+                //鑾峰彇瀵瑰簲鍗曟嵁
+                List<Dt_MESProInOrderInfo>? mESProInOrderInfos = BaseDal.QueryData(x => x.ProductOrderNo == orderStopDTO.ProductOrderNo && x.MESProInStatus != OutOrderStatusEnum.鍏抽棴.ObjToInt());
+                if (mESProInOrderInfos == null || mESProInOrderInfos.Count <= 0)
+                {
+                    return content.Error($"鎴愬搧鎴栧崐鎴愬搧宸ュ崟{nameof(MESOrderStopDTO.ProductOrderNo)}{orderStopDTO.ProductOrderNo}涓嶅瓨鍦ㄦ垨宸插叧闂�");
+                }
+                mESProInOrderInfos.ForEach(x =>
+                {
+                    x.MESProInStatus = OutOrderStatusEnum.鍏抽棴.ObjToInt();
+                });
+                BaseDal.UpdateData(mESProInOrderInfos);
+                content.OK($"宸ュ崟{nameof(MESOrderStopDTO.ProductOrderNo)}{orderStopDTO.ProductOrderNo}鍋滄鎴愬姛");
+            }
+            catch (Exception ex)
+            {
+                content.Error(ex.Message);
+            }
+            return content;
+        }
+    }
+}
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_Model/Models/Inbound/Dt_MESProInOrderInfo.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_Model/Models/Inbound/Dt_MESProInOrderInfo.cs"
new file mode 100644
index 0000000..0d9c85e
--- /dev/null
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_Model/Models/Inbound/Dt_MESProInOrderInfo.cs"
@@ -0,0 +1,139 @@
+锘縰sing SqlSugar;
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using WIDESEA_Core.Attributes;
+using WIDESEA_Core.DB.Models;
+
+
+namespace WIDESEA_Model.Models
+{
+    /// <summary>
+    /// MES鎴愬搧/鍗婃垚鍝佸崟
+    /// </summary>
+    [SugarTable(nameof(Dt_MESProInOrderInfo), "MES鎴愬搧/鍗婃垚鍝佸崟")]
+    public class Dt_MESProInOrderInfo : 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 = 50, ColumnDescription = "鐢熶骇璁㈠崟缂栫爜(涓婃父)")]
+        public string ProductOrderNo { get; set; }
+
+        /// <summary>
+        /// 璁㈠崟绫诲瀷
+        /// </summary>
+        [SugarColumn(IsNullable = false, ColumnDescription = "璁㈠崟绫诲瀷")]
+        public int MESProOrderType { get; set; }
+
+        /// <summary>
+        /// 娲惧崟宸ュ崟缂栫爜(涓婃父)
+        /// </summary>
+        [SugarColumn(IsNullable = false, Length = 50, ColumnDescription = "娲惧崟宸ュ崟缂栫爜")]
+        public string SendOrderNo { get; set; }
+
+        /// <summary>
+        /// 鐗╂枡缂栫爜
+        /// </summary>
+        [SugarColumn(IsNullable = false, Length = 50, ColumnDescription = "鐗╂枡缂栫爜")]
+        public string MaterialCode { get; set; }
+
+        /// <summary>
+        /// 鐗╂枡鎵规
+        /// </summary>
+        [SugarColumn(IsNullable = true, Length = 50, ColumnDescription = "鐗╂枡鎵规")]
+        public string MaterialLot { get; set; }
+
+        /// <summary>
+        /// 鐗╂枡绛夌骇
+        /// </summary>
+        [SugarColumn(IsNullable = false, Length = 50, ColumnDescription = "鐗╂枡绛夌骇")]
+        public string GradeCode { get; set; }
+
+        /// <summary>
+        /// 鐗╂枡鏁伴噺
+        /// </summary>
+        [SugarColumn(IsNullable = false,  ColumnDescription = "鐗╂枡鏁伴噺")]
+        public decimal ProQuantity { get; set; }
+
+        /// <summary>
+        /// 鐗╂枡鏉$爜
+        /// </summary>
+        [SugarColumn(IsNullable = false, Length = 50, ColumnDescription = "鐗╂枡鏉$爜")]
+        public string BarCode { get; set; }
+
+        /// <summary>
+        /// 鍔犲伐涓績缂栫爜(鏈哄彴)
+        /// </summary>
+        [SugarColumn(IsNullable = false, Length = 50, ColumnDescription = "鍔犲伐涓績缂栫爜(鏈哄彴)")]
+        public string MakeCode { get; set; }
+
+        /// <summary>
+        /// 浣嶇疆缂栧彿
+        /// </summary>
+        [SugarColumn(IsNullable = false, Length = 50, ColumnDescription = "浣嶇疆缂栧彿")]
+        public string PointCode { get; set; }
+
+        /// <summary>
+        /// 鍗峰緞
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDescription = "鍗峰緞")]
+        public decimal Thickness { get; set; }
+
+        /// <summary>
+        /// 骞呭
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDescription = "骞呭")]
+        public decimal Wide { get; set; }
+
+        /// <summary>
+        /// 閲嶉噺
+        /// </summary>
+        [SugarColumn(IsNullable = true,  ColumnDescription = "閲嶉噺")]
+        public decimal Weight { get; set; }
+
+        /// <summary>
+        /// 鎴愬搧鍖呮潗绾哥鐗╂枡缂栫爜
+        /// </summary>
+        [SugarColumn(IsNullable = true,  ColumnDescription = "鎴愬搧鍖呮潗绾哥鐗╂枡缂栫爜")]
+        public string ProPackCode { get; set; }
+
+        /// <summary>
+        /// 绠遍暱
+        /// </summary>
+        [SugarColumn(IsNullable = true,  ColumnDescription = "绠遍暱")]
+        public decimal Length { get; set; }
+
+        /// <summary>
+        /// 绠卞
+        /// </summary>
+        [SugarColumn(IsNullable = true,  ColumnDescription = "绠卞")]
+        public decimal Width { get; set; }
+
+        /// <summary>
+        /// 绠遍珮
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDescription = "绠遍珮")]
+        public decimal Height { get; set; }
+
+        /// <summary>
+        /// 鐘舵��
+        /// </summary>
+        [SugarColumn(IsNullable = false, ColumnDescription = "鐘舵��")]
+        public int MESProInStatus { get; set; }
+    }
+}
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_Model/Models/Outbound/Dt_OutMESOrder.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_Model/Models/Outbound/Dt_OutMESOrder.cs"
index ad501fb..b023173 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_Model/Models/Outbound/Dt_OutMESOrder.cs"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_Model/Models/Outbound/Dt_OutMESOrder.cs"
@@ -22,11 +22,11 @@
         [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, ColumnDescription = "浠撳簱涓婚敭")]
+        public int WarehouseId { get; set; }
 
         /// <summary>
         /// 鍑哄簱鏉ユ簮鏄庣粏ID
@@ -102,9 +102,9 @@
         public DateTime EndDate { get; set; }
 
         /// <summary>
-        /// 鍒嗛厤闇�姹傛暟閲�
+        /// 宸插垎閰嶉渶姹傛暟閲�
         /// </summary>
-        [SugarColumn(IsNullable = true, ColumnDescription = "鍒嗛厤闇�姹傛暟閲�")]
+        [SugarColumn(IsNullable = true, ColumnDescription = "宸插垎閰嶉渶姹傛暟閲�")]
         public decimal AssignTotalUsage { get; set; }
 
         /// <summary>
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_Model/Models/Outbound/Dt_OutSGOrder.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_Model/Models/Outbound/Dt_OutSGOrder.cs"
new file mode 100644
index 0000000..feed1bd
--- /dev/null
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_Model/Models/Outbound/Dt_OutSGOrder.cs"
@@ -0,0 +1,75 @@
+锘縰sing SqlSugar;
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using WIDESEA_Core.Attributes;
+using WIDESEA_Core.CodeConfigEnum;
+using WIDESEA_Core.DB.Models;
+using WIDESEA_Model.Models;
+
+namespace WIDESEA_Model.Models
+{
+    /// <summary>
+    /// SG鍑哄簱鎺掔▼鍗�
+    /// </summary>
+    [SugarTable(nameof(Dt_OutSGOrder), "SG鍑哄簱鎺掔▼鍗�")]
+    public class Dt_OutSGOrder : 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>
+        /// 鍑哄簱鏉ユ簮ID
+        /// </summary>
+        [SugarColumn(IsNullable = false, ColumnDescription = "鍑哄簱鏉ユ簮ID")]
+        public int BoardMpsId { get; set; }
+
+        /// <summary>
+        /// WMS鍗曟嵁缂栧彿
+        /// </summary>
+        [CodeRule(RuleCodeEnum.OutboundOrderRule)]
+        [SugarColumn(IsNullable = false, Length = 50, ColumnDescription = "WMS鍗曟嵁缂栧彿", IsOnlyIgnoreUpdate = true)]
+        public string OutSGOrderNo { get; set; }
+
+        /// <summary>
+        /// 鐢熶骇宸ュ崟鍙�(涓婃父)
+        /// </summary>
+        [SugarColumn(IsNullable = false, Length = 50, ColumnDescription = "鐢熶骇宸ュ崟鍙�(涓婃父)")]
+        public string OrderId { get; set; }
+
+        /// <summary>
+        /// 瀹㈡埛绠�绉�
+        /// </summary>
+        [SugarColumn(IsNullable = false, Length = 50, ColumnDescription = "瀹㈡埛绠�绉�")]
+        public string ShortName { get; set; }
+
+        /// <summary>
+        /// 鍑哄簱鍗曠姸鎬�
+        /// </summary>
+        [SugarColumn(IsNullable = false, ColumnDescription = "鍑哄簱鍗曠姸鎬�")]
+        public int OutSGOrderStatus { get; set; }
+
+        /// <summary>
+        /// 澶囨敞
+        /// </summary>
+        [SugarColumn(IsNullable = true, Length = 200, ColumnDescription = "澶囨敞")]
+        public string Remark { get; set; }
+
+        /// <summary>
+        /// 閲囪喘鍒楄〃
+        /// </summary>
+        [Navigate(NavigateType.OneToMany, nameof(Dt_OutSGOrderDetail.OutSGOrderId), nameof(Id))]
+        public List<Dt_OutSGOrderDetail> Details { get; set; }
+    }
+}
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_Model/Models/Outbound/Dt_OutSGOrderDetail.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_Model/Models/Outbound/Dt_OutSGOrderDetail.cs"
new file mode 100644
index 0000000..dcdb75d
--- /dev/null
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_Model/Models/Outbound/Dt_OutSGOrderDetail.cs"
@@ -0,0 +1,119 @@
+锘縰sing SqlSugar;
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using WIDESEA_Core.Attributes;
+using WIDESEA_Core.DB.Models;
+
+namespace WIDESEA_Model.Models
+{
+    /// <summary>
+    /// SG鍑哄簱鎺掔▼鏄庣粏
+    /// </summary>
+    [SugarTable(nameof(Dt_OutSGOrderDetail), "SG鍑哄簱鎺掔▼鏄庣粏")]
+    public class Dt_OutSGOrderDetail : BaseEntity
+    {
+        /// <summary>
+        /// 涓婚敭
+        /// </summary>
+        [SugarColumn(IsPrimaryKey = true, IsIdentity = true, ColumnDescription = "涓婚敭")]
+        public int Id { get; set; }
+
+        /// <summary>
+        /// 鍑哄簱涓昏〃ID
+        /// </summary>
+        [SugarColumn(IsNullable = false, ColumnDescription = "鍑哄簱涓昏〃ID")]
+        public int OutSGOrderId { get; set; }
+
+        /// <summary>
+        /// 鍏宠仈鐨勪富琛↖D(涓婃父)
+        /// </summary>
+        [SugarColumn(IsNullable = false, ColumnDescription = "鍏宠仈鐨勪富琛↖D(涓婃父)")]
+        public int BoardMpsId { get; set; }
+
+        /// <summary>
+        /// 鍏宠仈鐨勬槑缁咺D(涓婃父)
+        /// </summary>
+        [SugarColumn(IsNullable = false, ColumnDescription = "鍏宠仈鐨勪富琛↖D(涓婃父)")]
+        public int BoardMpsDetailId { get; set; }
+
+        /// <summary>
+        /// 骞呭
+        /// </summary>
+        [SugarColumn(IsNullable = false, ColumnDescription = "骞呭")]
+        public decimal Width { get; set; }
+
+        /// <summary>
+        /// 闇�姹傞暱搴�
+        /// </summary>
+        [SugarColumn(IsNullable = false, ColumnDescription = "闇�姹傞暱搴�")]
+        public decimal XqLen { get; set; }
+
+        /// <summary>
+        /// 鎬荤敤閲�
+        /// </summary>
+        [SugarColumn(IsNullable = false, ColumnDescription = "鎬荤敤閲�")]
+        public decimal TotalUsage { get; set; }
+
+        /// <summary>
+        /// 鐗╂枡鏉ユ簮ID(涓婃父)
+        /// </summary>
+        [SugarColumn(IsNullable = false, ColumnDescription = "鐗╂枡鏉ユ簮ID(涓婃父)")]
+        public int MaterialId { get; set; }
+
+        /// <summary>
+        /// 鐗╂枡缂栧彿
+        /// </summary>
+        [SugarColumn(IsNullable = false,Length =50, ColumnDescription = "鐗╂枡缂栧彿")]
+        public string MaterialNo { get; set; }
+
+        /// <summary>
+        /// 閲囪喘闀垮害
+        /// </summary>
+        [SugarColumn(IsNullable = false, ColumnDescription = "閲囪喘闀垮害")]
+        public decimal ProcurementLength { get; set; }
+        /// <summary>
+        /// 妤炲埆
+        /// </summary>
+        [SugarColumn(IsNullable = false, Length = 50, ColumnDescription = "妤炲埆")]
+        public string BoardFluteNo { get; set; }
+
+        /// <summary>
+        /// 鏈哄彴浣嶇疆
+        /// </summary>
+        [SugarColumn(IsNullable = false, Length = 50, ColumnDescription = "鏈哄彴浣嶇疆")]
+        public string MachineName { get; set; }
+
+        /// <summary>
+        /// 鎬婚暱
+        /// </summary>
+        [SugarColumn(IsNullable = false, ColumnDescription = "鎬婚暱")]
+        public decimal TotalLenth { get; set; }
+
+        /// <summary>
+        /// 宸插垎閰嶇敤閲�
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDescription = "宸插垎閰嶇敤閲�")]
+        public decimal AssignTotalUsage { get; set; }
+
+        /// <summary>
+        /// 宸插嚭鐢ㄩ噺
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDescription = "宸插嚭鐢ㄩ噺")]
+        public decimal OutTotalUsage { get; set; }
+
+        /// <summary>
+        /// 鐗╂枡鍚嶇О
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDescription = "鐗╂枡鍚嶇О")]
+        public string MaterialName { get; set; }
+
+        /// <summary>
+        /// 鍑哄簱鍗曟槑缁嗙姸鎬�
+        /// </summary>
+        [SugarColumn(IsNullable = false, ColumnDescription = "鍑哄簱鍗曟槑缁嗙姸鎬�")]
+        public int OutSGOrderDetailStatus { get; set; }
+    }
+}
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_OutboundRepository/OutSGOrderDetailRepository.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_OutboundRepository/OutSGOrderDetailRepository.cs"
new file mode 100644
index 0000000..c8d0344
--- /dev/null
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_OutboundRepository/OutSGOrderDetailRepository.cs"
@@ -0,0 +1,21 @@
+锘縰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
+{
+    /// <summary>
+    /// 鐢熺鍑哄簱淇℃伅浠撳偍瀹炵幇灞�
+    /// </summary>
+    public class OutSGOrderDetailRepository : RepositoryBase<Dt_OutSGOrderDetail>, IOutSGOrderDetailRepository
+    {
+        public OutSGOrderDetailRepository(IUnitOfWorkManage unitOfWorkManage) : base(unitOfWorkManage)
+        {
+        }
+    }
+}
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_OutboundRepository/OutSGOrderRepository.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_OutboundRepository/OutSGOrderRepository.cs"
new file mode 100644
index 0000000..a9d04b7
--- /dev/null
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_OutboundRepository/OutSGOrderRepository.cs"
@@ -0,0 +1,21 @@
+锘縰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
+{
+    /// <summary>
+    /// 鐢熺鍑哄簱淇℃伅浠撳偍瀹炵幇灞�
+    /// </summary>
+    public class OutSGOrderRepository : RepositoryBase<Dt_OutSGOrder>, IOutSGOrderRepository
+    {
+        public OutSGOrderRepository(IUnitOfWorkManage unitOfWorkManage) : base(unitOfWorkManage)
+        {
+        }
+    }
+}
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_OutboundRepository/OutboundRepository.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_OutboundRepository/OutboundRepository.cs"
new file mode 100644
index 0000000..9d10508
--- /dev/null
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_OutboundRepository/OutboundRepository.cs"
@@ -0,0 +1,27 @@
+锘縰sing System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using WIDESEA_IOutboundRepository;
+
+namespace WIDESEA_OutboundRepository
+{
+    /// <summary>
+    /// 鍑哄簱浠撳偍瀹炵幇灞傞泦鎴�
+    /// </summary>
+    public class OutboundRepository : IOutboundRepository
+    {
+        public IOutMESOrderRepository OutMESOrderRepository { get; }
+        public IOutSGOrderRepository OutSGOrderRepository { get; }
+        public IOutSGOrderDetailRepository OutSGOrderDetailRepository { get; }
+        public IOutStockLockInfoRepository OutStockLockInfoRepository { get; }
+        public OutboundRepository(IOutMESOrderRepository outMESOrderRepository, IOutSGOrderRepository outSGOrderRepository, IOutSGOrderDetailRepository outSGOrderDetailRepository, IOutStockLockInfoRepository outStockLockInfoRepository)
+        {
+            OutMESOrderRepository = outMESOrderRepository;
+            OutSGOrderRepository = outSGOrderRepository;
+            OutSGOrderDetailRepository = outSGOrderDetailRepository;
+            OutStockLockInfoRepository = outStockLockInfoRepository;
+        }
+    }
+}
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_OutboundService/OutMESOrderService.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_OutboundService/OutMESOrderService.cs"
index 466fd52..3dc3380 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_OutboundService/OutMESOrderService.cs"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_OutboundService/OutMESOrderService.cs"
@@ -38,44 +38,60 @@
             _locationStatusChangeRecordService = locationStatusChangeRecordService;
             _mapper = mapper;
         }
+        List<string> GradeCodes = new List<string>
+        {
+            "001"
+        };
         /// <summary>
         /// 鎺ユ敹MES棰嗘枡璁″垝
         /// </summary>
         /// <returns></returns>
-        public WebResponseContent ReceiveOutBound(OutMESOrderDTO outMESOrderDTO)
+        public WebResponseContent ReceiveOutBound(List<OutMESOrderDTO> outMESOrderDTOs)
         {
             WebResponseContent content = new WebResponseContent();
             try
             {
-                if (outMESOrderDTO==null)
+                if (outMESOrderDTOs==null || outMESOrderDTOs.Count <= 0)
                 {
                     return content.Error("棰嗘枡璁″垝浼犲叆淇℃伅涓虹┖");
                 }
-                if (outMESOrderDTO.OutDetailId <= 0)
+                outMESOrderDTOs.Select(x => x.OutDetailId);
+                List<Dt_Warehouse> warehouses = _basicRepository.WarehouseRepository.QueryData();
+                OutMESOrderDTO? CheckWarehouseCode = outMESOrderDTOs.FirstOrDefault(x => !warehouses.Select(x => x.WarehouseCode).Contains(x.WarehouseCode));
+                if (CheckWarehouseCode!=null)
                 {
-                    return content.Error($"棰嗘枡璁″垝{nameof(OutMESOrderDTO.OutDetailId)}:{outMESOrderDTO.OutDetailId}闇�瑕佸ぇ浜�0");
+                    return content.Error($"棰嗘枡璁″垝搴撳尯{nameof(OutMESOrderDTO.WarehouseCode)}:{CheckWarehouseCode.WarehouseCode}涓嶅瓨鍦�");
                 }
-                if (outMESOrderDTO.ReqQuantity <= 0)
+                OutMESOrderDTO? CheckGradeCode = outMESOrderDTOs.FirstOrDefault(x => !GradeCodes.Contains(x.GradeCode));
+                if (CheckGradeCode != null)
                 {
-                    return content.Error($"棰嗘枡璁″垝{nameof(OutMESOrderDTO.ReqQuantity)}:{outMESOrderDTO.ReqQuantity}闇�瑕佸ぇ浜�0");
+                    return content.Error($"棰嗘枡璁″垝搴撳尯{nameof(OutMESOrderDTO.GradeCode)}:{CheckGradeCode.GradeCode}涓嶅瓨鍦�");
+                }
+                OutMESOrderDTO? CheckOutDetailId = outMESOrderDTOs.FirstOrDefault(x => x.OutDetailId <= 0);
+                if (CheckOutDetailId != null)
+                {
+                    return content.Error($"棰嗘枡璁″垝{nameof(OutMESOrderDTO.OutDetailId)}:{CheckOutDetailId.ProductOrderNo}闇�瑕佸ぇ浜�0");
+                }
+                OutMESOrderDTO? CheckReqQuantity = outMESOrderDTOs.FirstOrDefault(x => x.ReqQuantity <= 0);
+                if (CheckReqQuantity != null)
+                {
+                    return content.Error($"棰嗘枡璁″垝{nameof(OutMESOrderDTO.ReqQuantity)}:{CheckReqQuantity.ProductOrderNo}闇�瑕佸ぇ浜�0");
                 }
                 //鑾峰彇鎵�鏈夌墿鏂欎俊鎭�
                 List<Dt_MaterielInfo> materielInfos = _basicRepository.MaterielInfoRepository.QueryData(x=>x.MaterielInvOrgId==MaterielInvOrgEnum.鏂板巶.ObjToInt());
-                //鑾峰彇鎵�鏈変复鏂欒鍒�
+                //鑾峰彇鎵�鏈夐鏂欒鍒�
                 List<Dt_OutMESOrder> outMESOrders = BaseDal.QueryData();
-                Dt_MaterielInfo? ExistmaterielInfo = materielInfos.FirstOrDefault(x=>x.MaterielCode== outMESOrderDTO.MaterialCode);
-                if (ExistmaterielInfo == null)
+                OutMESOrderDTO? CheckMaterialCode = outMESOrderDTOs.FirstOrDefault(x=> !materielInfos.Select(x=>x.MaterielCode).Contains(x.MaterialCode));
+                if (CheckMaterialCode != null)
                 {
-                    return content.Error($"鐗╂枡缂栫爜{nameof(OutMESOrderDTO.MaterialCode)}:{outMESOrderDTO.MaterialCode}淇℃伅涓嶅瓨鍦�");
+                    return content.Error($"鐗╂枡缂栫爜{nameof(OutMESOrderDTO.MaterialCode)}:{CheckMaterialCode.MaterialCode}淇℃伅涓嶅瓨鍦�");
                 }
-                Dt_OutMESOrder? OldoutMESOrder = outMESOrders.FirstOrDefault(x=>x.OutDetailId==outMESOrderDTO.OutDetailId);
+                Dt_OutMESOrder? OldoutMESOrder = outMESOrders.FirstOrDefault(x=> outMESOrderDTOs.Select(x=>x.OutDetailId).Contains(x.OutDetailId));
                 if (OldoutMESOrder!=null)
                 {
-                    return content.Error($"棰嗘枡璁″垝{nameof(OutMESOrderDTO.OutDetailId)}:{outMESOrderDTO.OutDetailId}淇℃伅宸插瓨鍦�");
+                    return content.Error($"棰嗘枡璁″垝{nameof(OutMESOrderDTO.OutDetailId)}:{OldoutMESOrder.OutDetailId}淇℃伅宸插瓨鍦�");
                 }
-                return content.Error($"棰嗘枡璁″垝{nameof(OutMESOrderDTO.ProductOrderNo)}:{outMESOrderDTO.ProductOrderNo},鐗╂枡{outMESOrderDTO.MaterialCode}鏃犲彲鍒嗛厤搴撳瓨");
-
-                Dt_OutMESOrder outMESOrder = _mapper.Map<Dt_OutMESOrder>(outMESOrderDTO);
+                List<Dt_OutMESOrder> outMESOrder = outMESOrderDTOs.Select(x=> _mapper.Map<Dt_OutMESOrder>(x)).ToList();
                 BaseDal.AddData(outMESOrder);
                 return content.OK("鎺ユ敹鎴愬姛");
             }
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_OutboundService/OutSGOrderDetailService.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_OutboundService/OutSGOrderDetailService.cs"
new file mode 100644
index 0000000..e6ae397
--- /dev/null
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_OutboundService/OutSGOrderDetailService.cs"
@@ -0,0 +1,38 @@
+锘縰sing AutoMapper;
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using WIDESEA_Core.BaseServices;
+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 class OutSGOrderDetailService : ServiceBase<Dt_OutSGOrderDetail, IOutSGOrderDetailRepository>, IOutSGOrderDetailService
+    {
+        public IOutSGOrderDetailRepository Repository => BaseDal;
+        private IBasicRepository _basicRepository;
+        private IStockService _stockService;
+        private IOutStockLockInfoService _outStockLockInfoService;
+        private IBasicService _basicService;
+        private ILocationStatusChangeRecordService _locationStatusChangeRecordService;
+        private readonly IMapper _mapper;
+
+        public OutSGOrderDetailService(IOutSGOrderDetailRepository BaseDal, IBasicRepository basicRepository, IStockService stockService, IOutStockLockInfoService outStockLockInfoService, IBasicService basicService, ILocationStatusChangeRecordService locationStatusChangeRecordService, IMapper mapper) : base(BaseDal)
+        {
+            _basicRepository = basicRepository;
+            _stockService = stockService;
+            _outStockLockInfoService = outStockLockInfoService;
+            _basicService = basicService;
+            _locationStatusChangeRecordService = locationStatusChangeRecordService;
+            _mapper = mapper;
+        }
+    }
+}
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_OutboundService/OutSGOrderService.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_OutboundService/OutSGOrderService.cs"
new file mode 100644
index 0000000..f39c371
--- /dev/null
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_OutboundService/OutSGOrderService.cs"
@@ -0,0 +1,98 @@
+锘縰sing AutoMapper;
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using WIDESEA_Core.BaseServices;
+using WIDESEA_Core;
+using WIDESEA_DTO.MES;
+using WIDESEA_IBasicRepository;
+using WIDESEA_IBasicService;
+using WIDESEA_IOutboundRepository;
+using WIDESEA_IOutboundService;
+using WIDESEA_IRecordService;
+using WIDESEA_IStockService;
+using WIDESEA_Model.Models;
+using WIDESEA_DTO.ERP;
+using WIDESEA_Core.BaseRepository;
+using WIDESEA_Common.MaterielEnum;
+using WIDESEA_Common.WareHouseEnum;
+using WIDESEA_Core.Helper;
+
+namespace WIDESEA_OutboundService
+{
+    public class OutSGOrderService : ServiceBase<Dt_OutSGOrder, IOutSGOrderRepository>, IOutSGOrderService
+    {
+        public IOutSGOrderRepository Repository => BaseDal;
+        private IBasicRepository _basicRepository;
+        private IStockService _stockService;
+        private IBasicService _basicService;
+        private ILocationStatusChangeRecordService _locationStatusChangeRecordService;
+        private readonly IMapper _mapper;
+        private readonly IUnitOfWorkManage _unitOfWorkManage;
+
+        public OutSGOrderService(IOutSGOrderRepository BaseDal, IBasicRepository basicRepository, IStockService stockService, IBasicService basicService, ILocationStatusChangeRecordService locationStatusChangeRecordService, IMapper mapper,IUnitOfWorkManage unitOfWorkManage) : base(BaseDal)
+        {
+            _basicRepository = basicRepository;
+            _stockService = stockService;
+            _basicService = basicService;
+            _locationStatusChangeRecordService = locationStatusChangeRecordService;
+            _mapper = mapper;
+            _unitOfWorkManage = unitOfWorkManage;
+        }
+
+        public WebResponseContent AddOutSGOrder(List<SGOutOrderDTO> outOrderDTOs)
+        {
+            WebResponseContent content = new WebResponseContent();
+            try
+            {
+                //鑾峰彇鎵�鏈夋帓绋嬪崟
+                List<Dt_OutSGOrder> outSGOrders=BaseDal.Db.Queryable<Dt_OutSGOrder>().Includes(x => x.Details).ToList();
+                //鍒ゆ柇鍗曟嵁
+                Dt_OutSGOrder? ExistAddOutOrder = outSGOrders.FirstOrDefault(x => outOrderDTOs.Select(x => x.OrderId).Distinct().Contains(x.OrderId));
+                if (ExistAddOutOrder != null)
+                {
+                    return content.Error($"鍑哄簱鎺掔▼鍗曞彿{nameof(SGOutOrderDTO.OrderId)}:{ExistAddOutOrder.OrderId}宸插瓨鍦�");
+                }
+                //鑾峰彇鎵�鏈夌墿鏂� 
+                List<Dt_MaterielInfo> materielInfos = _basicRepository.MaterielInfoRepository.QueryData(x => x.WarehouseId == WarehouseEnum.LLDYL.ObjToInt() && x.MaterielInvOrgId == MaterielInvOrgEnum.鑰佸巶.ObjToInt() && x.MaterialSourceId != 0);
+                SGOutOrderDTO?  sGOutOrderDTO = outOrderDTOs.FirstOrDefault(x => !materielInfos.Select(x => x.MaterielCode).Contains(x.MaterialNo));
+                if (sGOutOrderDTO != null)
+                {
+                    return content.Error($"鐢熶骇鎺掔▼{sGOutOrderDTO.OrderId}鐗╂枡:{sGOutOrderDTO.MaterialNo}涓嶅瓨鍦�");
+                }
+                List<Dt_OutSGOrder> AddOutSGOrders = new List<Dt_OutSGOrder>();
+                foreach (var item in outOrderDTOs)
+                {
+                    //鑾峰彇宸ュ崟
+                    Dt_OutSGOrder? ExistOutSGOrder = AddOutSGOrders.FirstOrDefault(x=>x.OrderId== item.OrderId);
+                    //鑾峰彇鐗╂枡
+                    Dt_MaterielInfo materielInfo = materielInfos.FirstOrDefault(x => x.MaterielCode == item.MaterialNo);
+                    //鏄庣粏鎻愬墠杞崲
+                    Dt_OutSGOrderDetail outSGOrderDetail = _mapper.Map<Dt_OutSGOrderDetail>(item);
+                    outSGOrderDetail.MaterialName = materielInfo.MaterielName;
+                    //鍒ゆ柇宸ュ崟鏄惁宸茬粡瀛樺湪
+                    if (ExistOutSGOrder!=null)
+                    {
+                        ExistOutSGOrder.Details.Add(outSGOrderDetail);
+                    }
+                    else
+                    {
+                        
+                        Dt_OutSGOrder outSGOrder=_mapper.Map<Dt_OutSGOrder>(item);
+                        outSGOrder.Details=new List<Dt_OutSGOrderDetail>() { outSGOrderDetail };
+                        AddOutSGOrders.Add(outSGOrder);
+                    }
+                }
+                BaseDal.Db.InsertNav(AddOutSGOrders).Include(x => x.Details).ExecuteCommand();
+                content.OK("鎺ユ敹鎺掔▼鎴愬姛");
+            }
+            catch (Exception ex)
+            {
+                content.Error(ex.Message);
+            }
+            return content;
+        }
+    }
+}
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_OutboundService/OutboundService.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_OutboundService/OutboundService.cs"
new file mode 100644
index 0000000..4250bda
--- /dev/null
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_OutboundService/OutboundService.cs"
@@ -0,0 +1,39 @@
+锘縰sing System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using WIDESEA_IOutboundService;
+
+namespace WIDESEA_OutboundService
+{
+    /// <summary>
+    /// 鍑哄簱涓氬姟灞傞泦鎴�
+    /// </summary>
+    public class OutboundService : IOutboundService
+    {
+        /// <summary>
+        /// MES棰嗘枡涓氬姟鎺ュ彛灞�
+        /// </summary>
+        public IOutMESOrderService OutMESOrderService { get; }
+        /// <summary>
+        /// 鐢熺鎺掔▼涓氬姟鎺ュ彛灞�
+        /// </summary>
+        public IOutSGOrderService OutSGOrderService { get; }
+        /// <summary>
+        /// 鐢熺鎺掔▼鏄庣粏涓氬姟鎺ュ彛灞�
+        /// </summary>
+        public IOutSGOrderDetailService OutSGOrderDetailService { get; }
+        /// <summary>
+        /// 鍑哄簱璇︽儏涓氬姟鎺ュ彛灞�
+        /// </summary>
+        public IOutStockLockInfoService OutStockLockInfoService { get; }
+        public OutboundService(IOutMESOrderService outMESOrderService, IOutSGOrderService outSGOrderService, IOutSGOrderDetailService outSGOrderDetailService, IOutStockLockInfoService outStockLockInfoService)
+        {
+            OutMESOrderService = outMESOrderService;
+            OutSGOrderService = outSGOrderService;
+            OutSGOrderDetailService = outSGOrderDetailService;
+            OutStockLockInfoService = outStockLockInfoService;
+        }
+    }
+}
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_TaskInfoService/MesTaskService.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_TaskInfoService/MesTaskService.cs"
index f45c567..308eac6 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_TaskInfoService/MesTaskService.cs"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_TaskInfoService/MesTaskService.cs"
@@ -45,11 +45,19 @@
             WebResponseContent content = new WebResponseContent();
             try
             {
+                if (autoIssueDTO == null)
+                {
+                    return content.Error("浼犲叆淇℃伅涓嶈兘涓虹┖");
+                }
                 //鑾峰彇瀵瑰簲鍗曟嵁
                 Dt_OutMESOrder? outMESOrder = _outMESOrderRepository.QueryFirst(x=>x.OutDetailId==autoIssueDTO.OutDetailId);
                 if (outMESOrder==null)
                 {
                     return content.Error($"棰嗘枡璁″垝{nameof(MESAutoIssueDTO.OutDetailId)}{autoIssueDTO.OutDetailId}涓嶅瓨鍦�");
+                }
+                if (outMESOrder.OutMESOrderStatus==OutOrderStatusEnum.鍏抽棴.ObjToInt())
+                {
+                    return content.Error($"棰嗘枡璁″垝{nameof(MESAutoIssueDTO.OutDetailId)}{outMESOrder.ProductOrderNo}宸ュ崟宸插叧闂�");
                 }
                 //鑾峰彇鍛ㄨ浆浣嶇疆缂栧彿
                 Dt_AGVStationInfo? stationInfo = _agvStationInfoRepository.QueryFirst(x=>x.MESPointCode==autoIssueDTO.PointCode);
@@ -61,15 +69,15 @@
                 {
                     return content.Error($"棰嗘枡璁″垝鍛ㄨ浆浣峽nameof(MESAutoIssueDTO.PointCode)}{autoIssueDTO.PointCode}瀛樺湪绌烘墭");
                 }
-                Dt_Task? task = BaseDal.QueryData(x => x.OrderNo == outMESOrder.OutMESOrderNo && x.TaskStatus==TaskStatusEnum.CallPending.ObjToInt()).OrderByDescending(x=>x.Grade).ThenBy(x=>x.TaskNum).FirstOrDefault();
-                //鑾峰彇浠诲姟
-                if (task==null)
-                {
-                    return content.Error($"鏈壘鍒伴鏂欒鍒掔紪鍙穥outMESOrder.ProductOrderNo}鍙厤閫佷换鍔�");
-                }
-                task.TaskStatus = TaskStatusEnum.New.ObjToInt();
-                task.TargetAddress= stationInfo.AGVStationCode;
-                PushTasksToWCS(new List<Dt_Task> { task });
+                //Dt_Task? task = BaseDal.QueryData(x => x.OrderNo == outMESOrder.OutMESOrderNo && x.TaskStatus==TaskStatusEnum.CallPending.ObjToInt()).OrderByDescending(x=>x.Grade).ThenBy(x=>x.TaskNum).FirstOrDefault();
+                ////鑾峰彇浠诲姟
+                //if (task==null)
+                //{
+                //    return content.Error($"鏈壘鍒伴鏂欒鍒掔紪鍙穥outMESOrder.ProductOrderNo}鍙厤閫佷换鍔�");
+                //}
+                //task.TaskStatus = TaskStatusEnum.New.ObjToInt();
+                //task.TargetAddress= stationInfo.AGVStationCode;
+                //PushTasksToWCS(new List<Dt_Task> { task });
                 return content.OK("鍙枡鎴愬姛");
             }
             catch (Exception ex)
@@ -78,5 +86,74 @@
             }
             return content;
         }
+
+        public WebResponseContent ReceiveManualIssue(MESManualIssueDTO manualIssueDTO)
+        {
+            WebResponseContent content = new WebResponseContent();
+            try
+            {
+                if (manualIssueDTO == null)
+                {
+                    return content.Error("浼犲叆淇℃伅涓嶈兘涓虹┖");
+                }
+                //鑾峰彇瀵瑰簲鍗曟嵁
+                Dt_OutMESOrder? outMESOrder = _outMESOrderRepository.QueryFirst(x => x.OutDetailId == manualIssueDTO.OutDetailId);
+                if (outMESOrder == null)
+                {
+                    return content.Error($"棰嗘枡璁″垝{nameof(MESAutoIssueDTO.OutDetailId)}{manualIssueDTO.OutDetailId}涓嶅瓨鍦�");
+                }
+                if (outMESOrder.OutMESOrderStatus == OutOrderStatusEnum.鍏抽棴.ObjToInt())
+                {
+                    return content.Error($"棰嗘枡璁″垝{nameof(MESAutoIssueDTO.OutDetailId)}{outMESOrder.ProductOrderNo}宸ュ崟宸插叧闂�");
+                }
+                //鑾峰彇鍛ㄨ浆浣嶇疆缂栧彿
+                Dt_AGVStationInfo? stationInfo = _agvStationInfoRepository.QueryFirst(x => x.MESPointCode == manualIssueDTO.PointCode);
+                if (stationInfo == null)
+                {
+                    return content.Error($"棰嗘枡璁″垝鍛ㄨ浆浣峽nameof(MESAutoIssueDTO.PointCode)}{manualIssueDTO.PointCode}涓嶅瓨鍦�");
+                }
+                //Dt_Task? task = BaseDal.QueryData(x => x.OrderNo == outMESOrder.OutMESOrderNo && x.TaskStatus == TaskStatusEnum.CallPending.ObjToInt()).OrderByDescending(x => x.Grade).ThenBy(x => x.TaskNum).FirstOrDefault();
+                ////鑾峰彇浠诲姟
+                //if (task == null)
+                //{
+                //    return content.Error($"鏈壘鍒伴鏂欒鍒掔紪鍙穥outMESOrder.ProductOrderNo}鍙厤閫佷换鍔�");
+                //}
+                //task.TaskStatus = TaskStatusEnum.New.ObjToInt();
+                //task.TargetAddress = stationInfo.AGVStationCode;
+                //PushTasksToWCS(new List<Dt_Task> { task });
+                return content.OK("鍙枡鎴愬姛");
+            }
+            catch (Exception ex)
+            {
+                content.Error(ex.Message);
+            }
+            return content;
+        }
+
+        public WebResponseContent ReceiveReturnIssue(List<MESReturnIssueDTO> returnIssueDTOs)
+        {
+            WebResponseContent content = new WebResponseContent();
+            try
+            {
+                if (returnIssueDTOs==null || returnIssueDTOs.Count<=0)
+                {
+                    return content.Error("浼犲叆淇℃伅涓嶈兘涓虹┖");
+                }
+                //鑾峰彇鎵�鏈堿GV鐐逛綅
+                List<Dt_AGVStationInfo> aGVStationInfos= _agvStationInfoRepository.QueryData(x => !string.IsNullOrEmpty(x.MESPointCode));
+                MESReturnIssueDTO? returnIssueDTO = returnIssueDTOs.FirstOrDefault(x=> !aGVStationInfos.Select(x=>x.MESPointCode).Contains(x.PointCode));
+                if (returnIssueDTO != null)
+                {
+                    return content.Error($"鍛ㄨ浆浣峽nameof(MESReturnIssueDTO.PointCode)}{returnIssueDTO.PointCode}涓嶅瓨鍦�");
+                }
+                content.OK("鍛煎彨鎴愬姛");
+            }
+            catch (Exception ex)
+            {
+                content.Error(ex.Message);
+            }
+            return content;
+        }
+        
     }
 }
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_WMSServer/Controllers/ERP/ErpBSTController.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_WMSServer/Controllers/ERP/ErpBSTController.cs"
index da8da61..7bccd2e 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_WMSServer/Controllers/ERP/ErpBSTController.cs"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_WMSServer/Controllers/ERP/ErpBSTController.cs"
@@ -18,6 +18,7 @@
 using WIDESEA_IInboundService;
 using WIDESEA_IOutboundService;
 using WIDESEA_Model.Models;
+using WIDESEA_OutboundService;
 using static WIDESEA_DTO.ErpResponseContent;
 
 namespace WIDESEA_WMSServer.Controllers.ERP
@@ -34,14 +35,16 @@
         private readonly IPurchaseBSTOrderService _purchaseBSTOrderService;
         private readonly IOutBSTOrderService _outBSTOrderService;
         private readonly IReturnBSTOrderService _returnBSTOrderService;
+        private readonly IOutboundService _outboundService;
 
-        public ErpBSTController(IBasicService basicService, IInvokeERPService invokeERPService,IPurchaseBSTOrderService purchaseBSTOrderService,IOutBSTOrderService outBSTOrderService,IReturnBSTOrderService returnBSTOrderService)
+        public ErpBSTController(IBasicService basicService, IInvokeERPService invokeERPService,IPurchaseBSTOrderService purchaseBSTOrderService,IOutBSTOrderService outBSTOrderService,IReturnBSTOrderService returnBSTOrderService, IOutboundService outboundService)
         {
             _basicService = basicService;
             _invokeERPService = invokeERPService;
             _purchaseBSTOrderService = purchaseBSTOrderService;
             _outBSTOrderService = outBSTOrderService;
             _returnBSTOrderService = returnBSTOrderService;
+            _outboundService = outboundService;
         }
         /// <summary>
         /// 娣诲姞鑰佸巶鐗╂枡
@@ -75,14 +78,23 @@
             return _purchaseBSTOrderService.AddPurchaseBSTOrder(bSTPurchaseOrderDTOs);
         }
 
+        ///// <summary>
+        ///// 鎺ユ敹鍑哄簱鎺掔▼淇℃伅
+        ///// </summary>
+        ///// <returns></returns>
+        //[HttpPost, HttpGet, Route("ReceiveOutOrder"), AllowAnonymous]
+        //public WebResponseContent AddOutBSTOrder([FromBody] List<BSTOutOrderDTO> bSTOutOrderDTOs)
+        //{
+        //    return _outBSTOrderService.AddOutBSTOrder(bSTOutOrderDTOs);
+        //}
         /// <summary>
-        /// 鎺ユ敹鍑哄簱鎺掔▼淇℃伅
+        /// 鎺ユ敹涓�鏈熺敓绠℃帓绋嬩俊鎭�
         /// </summary>
         /// <returns></returns>
         [HttpPost, HttpGet, Route("ReceiveOutOrder"), AllowAnonymous]
-        public WebResponseContent AddOutBSTOrder([FromBody] List<BSTOutOrderDTO> bSTOutOrderDTOs)
+        public WebResponseContent AddOutBSTOrder([FromBody] List<SGOutOrderDTO> outOrderDTOs)
         {
-            return _outBSTOrderService.AddOutBSTOrder(bSTOutOrderDTOs);
+            return _outboundService.OutSGOrderService.AddOutSGOrder(outOrderDTOs);
         }
         /// <summary>
         /// 鎺ユ敹鍗氭�濋�氶鏂欎俊鎭�
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_WMSServer/Controllers/Inbound/MESProInOrderInfoController.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_WMSServer/Controllers/Inbound/MESProInOrderInfoController.cs"
new file mode 100644
index 0000000..f4d88d0
--- /dev/null
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_WMSServer/Controllers/Inbound/MESProInOrderInfoController.cs"
@@ -0,0 +1,19 @@
+锘縰sing Microsoft.AspNetCore.Mvc;
+using WIDESEA_Core.BaseController;
+using WIDESEA_IInboundService;
+using WIDESEA_Model.Models;
+
+namespace WIDESEA_WMSServer.Controllers.Inbound
+{
+    /// <summary>
+    /// MES鎴愬搧/鍗婃垚鍝�
+    /// </summary>
+    [Route("api/MESProInOrderInfo")]
+    [ApiController]
+    public class MESProInOrderInfoController : ApiBaseController<IMESProInOrderInfoService, Dt_MESProInOrderInfo>
+    {
+        public MESProInOrderInfoController(IMESProInOrderInfoService service) : base(service)
+        {
+        }
+    }
+}
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_WMSServer/Controllers/MES/MesController.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_WMSServer/Controllers/MES/MesController.cs"
index 9f70627..9533314 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_WMSServer/Controllers/MES/MesController.cs"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_WMSServer/Controllers/MES/MesController.cs"
@@ -14,6 +14,7 @@
 using WIDESEA_DTO.Basic;
 using WIDESEA_DTO.MES;
 using WIDESEA_IOutboundService;
+using WIDESEA_IInboundService;
 
 namespace WIDESEA_WMSServer.Controllers.MES
 {
@@ -26,11 +27,13 @@
     {
         private readonly ITaskService _taskService;
         private readonly IOutMESOrderService _outMESOrderService;
+        private readonly IMESProInOrderInfoService _proInOrderInfoService;
 
-        public MesController(ITaskService taskService,IOutMESOrderService outMESOrderService)
+        public MesController(ITaskService taskService,IOutMESOrderService outMESOrderService,IMESProInOrderInfoService proInOrderInfoService)
         {
             _taskService = taskService;
             _outMESOrderService = outMESOrderService;
+            _proInOrderInfoService=proInOrderInfoService;
         }
         /// <summary>
         /// 鎺ユ敹MES棰嗘枡璁″垝
@@ -38,15 +41,14 @@
         /// <returns></returns>
         [HttpPost, HttpGet, Route("ReceiveOutBound"), AllowAnonymous]
 
-        public WebResponseContent ReceiveOutBound([FromBody] OutMESOrderDTO outMESOrderDTO)
+        public WebResponseContent ReceiveOutBound([FromBody] List<OutMESOrderDTO> outMESOrderDTOs)
         {
-            return _outMESOrderService.ReceiveOutBound(outMESOrderDTO);
+            return _outMESOrderService.ReceiveOutBound(outMESOrderDTOs);
         }
         /// <summary>
         /// MES鑷姩鍙枡鎺ュ彛
         /// </summary>
         /// <returns></returns>
-        /// <summary>
         [HttpPost, HttpGet, Route("ReceiveAutoIssue"), AllowAnonymous]
         public WebResponseContent ReceiveAutoIssue([FromBody] MESAutoIssueDTO autoIssueDTO)
         {
@@ -57,44 +59,40 @@
         /// MES鎵嬪姩鍙枡鎺ュ彛
         /// </summary>
         /// <returns></returns>
-        /// <summary>
         [HttpPost, HttpGet, Route("ReceiveManualIssue"), AllowAnonymous]
-        public WebResponseContent ReceiveManualIssue([FromBody] MESAutoIssueDTO autoIssueDTO)
+        public WebResponseContent ReceiveManualIssue([FromBody] MESManualIssueDTO manualIssueDTO)
         {
-            return _taskService.ReceiveAutoIssue(autoIssueDTO);
+            return _taskService.ReceiveManualIssue(manualIssueDTO);
         }
 
         /// <summary>
         /// MES绌烘墭/浣欐枡鍛煎彨鎺ュ彛
         /// </summary>
         /// <returns></returns>
-        /// <summary>
         [HttpPost, HttpGet, Route("ReceiveReturnIssue"), AllowAnonymous]
-        public WebResponseContent ReceiveReturnIssue([FromBody] MESAutoIssueDTO autoIssueDTO)
+        public WebResponseContent ReceiveReturnIssue([FromBody] List<MESReturnIssueDTO> returnIssueDTOs)
         {
-            return _taskService.ReceiveAutoIssue(autoIssueDTO);
+            return _taskService.ReceiveReturnIssue(returnIssueDTOs);
         }
 
         /// <summary>
         /// 鎴愬搧/鍗婃垚鍝佷俊鎭悓姝ユ帴鍙�
         /// </summary>
         /// <returns></returns>
-        /// <summary>
         [HttpPost, HttpGet, Route("ReceiveProCodeInfo"), AllowAnonymous]
-        public WebResponseContent ReceiveProCodeInfo([FromBody] MESAutoIssueDTO autoIssueDTO)
+        public WebResponseContent ReceiveProCodeInfo([FromBody] List<MESProInDTO> proInDTOs)
         {
-            return _taskService.ReceiveAutoIssue(autoIssueDTO);
+            return _proInOrderInfoService.ReceiveProCodeInfo(proInDTOs);
         }
 
         /// <summary>
         /// MES宸ュ崟鍋滄鎺ュ彛
         /// </summary>
         /// <returns></returns>
-        /// <summary>
         [HttpPost, HttpGet, Route("ReceiveProOrderStop"), AllowAnonymous]
-        public WebResponseContent ReceiveProOrderStop([FromBody] MESAutoIssueDTO autoIssueDTO)
+        public WebResponseContent ReceiveProOrderStop([FromBody] MESOrderStopDTO orderStopDTO)
         {
-            return _taskService.ReceiveAutoIssue(autoIssueDTO);
+            return _proInOrderInfoService.ReceiveProOrderStop(orderStopDTO);
         }
     }
 }
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_WMSServer/Controllers/Outbound/OutSGOrderController.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_WMSServer/Controllers/Outbound/OutSGOrderController.cs"
new file mode 100644
index 0000000..07c2dd7
--- /dev/null
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_WMSServer/Controllers/Outbound/OutSGOrderController.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/OutSGOrder")]
+    [ApiController]
+    public class OutSGOrderController : ApiBaseController<IOutSGOrderService, Dt_OutSGOrder>
+    {
+        public OutSGOrderController(IOutSGOrderService service) : base(service)
+        {
+        }
+    }
+}
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_WMSServer/Controllers/Outbound/OutSGOrderDetailController.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_WMSServer/Controllers/Outbound/OutSGOrderDetailController.cs"
new file mode 100644
index 0000000..01b4fe7
--- /dev/null
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_WMSServer/Controllers/Outbound/OutSGOrderDetailController.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/OutSGOrderDetail")]
+    [ApiController]
+    public class OutSGOrderDetailController : ApiBaseController<IOutSGOrderDetailService, Dt_OutSGOrderDetail>
+    {
+        public OutSGOrderDetailController(IOutSGOrderDetailService service) : base(service)
+        {
+        }
+    }
+}
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_WMSServer/Filter/CustomProfile.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_WMSServer/Filter/CustomProfile.cs"
index a6ce9d9..6d0ca3e 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_WMSServer/Filter/CustomProfile.cs"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_WMSServer/Filter/CustomProfile.cs"
@@ -46,6 +46,11 @@
             CreateMap<BSTReturnOrderDTOItem, Dt_ReturnBSTOrderDetail>().ForMember(x => x.ReturnBSTOrderDetailStatus, b => b.MapFrom(b => OutOrderStatusEnum.鏈紑濮�.ObjToInt())).ForMember(x => x.MaterialWide, b => b.MapFrom(b => b.W)).ForMember(x => x.MaterialThick, b => b.MapFrom(b => b.Thick));
             //MES棰嗘枡璁″垝瀹炰綋杞崲
             CreateMap<OutMESOrderDTO, Dt_OutMESOrder>().ForMember(x => x.OutMESOrderStatus, b => b.MapFrom(b => OutOrderStatusEnum.鏈紑濮�.ObjToInt()));
+            //鐢熺鎺掔▼瀹炰綋杞崲
+            CreateMap<SGOutOrderDTO, Dt_OutSGOrder>().ForMember(x => x.OutSGOrderStatus, b => b.MapFrom(b => OutOrderStatusEnum.鏈紑濮�.ObjToInt())).ForMember(x => x.WarehouseId, b => b.MapFrom(b => WarehouseEnum.LLDYL.ObjToInt()));
+            CreateMap<SGOutOrderDTO, Dt_OutSGOrderDetail>().ForMember(x => x.OutSGOrderDetailStatus, b => b.MapFrom(b => OutOrderStatusEnum.鏈紑濮�.ObjToInt()));
+            //鎴愬搧鍗婃垚鍝佸疄浣撹浆鎹�
+            CreateMap<MESProInDTO, Dt_MESProInOrderInfo>().ForMember(x => x.MESProInStatus, b => b.MapFrom(b => InOrderStatusEnum.鏈紑濮�.ObjToInt()));
         }
     }
 }
diff --git "a/\351\241\271\347\233\256\350\265\204\346\226\231/\346\216\245\345\217\243\345\215\217\350\256\256/\345\215\232\346\200\235\351\200\232\345\210\251\346\213\223\346\216\245\345\217\243.xlsx" "b/\351\241\271\347\233\256\350\265\204\346\226\231/\346\216\245\345\217\243\345\215\217\350\256\256/\345\215\232\346\200\235\351\200\232\345\210\251\346\213\223\346\216\245\345\217\243.V1.xlsx"
similarity index 100%
rename from "\351\241\271\347\233\256\350\265\204\346\226\231/\346\216\245\345\217\243\345\215\217\350\256\256/\345\215\232\346\200\235\351\200\232\345\210\251\346\213\223\346\216\245\345\217\243.xlsx"
rename to "\351\241\271\347\233\256\350\265\204\346\226\231/\346\216\245\345\217\243\345\215\217\350\256\256/\345\215\232\346\200\235\351\200\232\345\210\251\346\213\223\346\216\245\345\217\243.V1.xlsx"
Binary files differ
diff --git "a/\351\241\271\347\233\256\350\265\204\346\226\231/\346\216\245\345\217\243\345\215\217\350\256\256/\345\215\232\346\226\257\351\200\232\345\210\251\346\213\223\346\216\245\345\217\243.V2.xlsx" "b/\351\241\271\347\233\256\350\265\204\346\226\231/\346\216\245\345\217\243\345\215\217\350\256\256/\345\215\232\346\226\257\351\200\232\345\210\251\346\213\223\346\216\245\345\217\243.V2.xlsx"
new file mode 100644
index 0000000..32ba7b5
--- /dev/null
+++ "b/\351\241\271\347\233\256\350\265\204\346\226\231/\346\216\245\345\217\243\345\215\217\350\256\256/\345\215\232\346\226\257\351\200\232\345\210\251\346\213\223\346\216\245\345\217\243.V2.xlsx"
Binary files differ
diff --git "a/\351\241\271\347\233\256\350\265\204\346\226\231/\346\216\245\345\217\243\345\215\217\350\256\256/\351\276\231\345\210\251\345\276\227MES\346\216\245\345\217\243.xlsx" "b/\351\241\271\347\233\256\350\265\204\346\226\231/\346\216\245\345\217\243\345\215\217\350\256\256/\351\276\231\345\210\251\345\276\227MES\346\216\245\345\217\243.xlsx"
index c47d8a2..8373de5 100644
--- "a/\351\241\271\347\233\256\350\265\204\346\226\231/\346\216\245\345\217\243\345\215\217\350\256\256/\351\276\231\345\210\251\345\276\227MES\346\216\245\345\217\243.xlsx"
+++ "b/\351\241\271\347\233\256\350\265\204\346\226\231/\346\216\245\345\217\243\345\215\217\350\256\256/\351\276\231\345\210\251\345\276\227MES\346\216\245\345\217\243.xlsx"
Binary files differ
diff --git "a/\351\241\271\347\233\256\350\265\204\346\226\231/\351\200\232\344\277\241\345\215\217\350\256\256/\344\274\270\347\274\251\350\264\247\345\217\211\346\216\245\351\251\263\345\217\260IP\345\210\206\351\205\215\350\241\250.xlsx" "b/\351\241\271\347\233\256\350\265\204\346\226\231/\351\200\232\344\277\241\345\215\217\350\256\256/\344\274\270\347\274\251\350\264\247\345\217\211\346\216\245\351\251\263\345\217\260IP\345\210\206\351\205\215\350\241\250.xlsx"
index 3fd91ef..bd4ce41 100644
--- "a/\351\241\271\347\233\256\350\265\204\346\226\231/\351\200\232\344\277\241\345\215\217\350\256\256/\344\274\270\347\274\251\350\264\247\345\217\211\346\216\245\351\251\263\345\217\260IP\345\210\206\351\205\215\350\241\250.xlsx"
+++ "b/\351\241\271\347\233\256\350\265\204\346\226\231/\351\200\232\344\277\241\345\215\217\350\256\256/\344\274\270\347\274\251\350\264\247\345\217\211\346\216\245\351\251\263\345\217\260IP\345\210\206\351\205\215\350\241\250.xlsx"
Binary files differ

--
Gitblit v1.9.3