From 9ec715d2deb18a269dd49c48da91a36632d08c81 Mon Sep 17 00:00:00 2001
From: wangxinhui <wangxinhui@hnkhzn.com>
Date: 星期三, 18 六月 2025 00:56:26 +0800
Subject: [PATCH] 最新代码上传,优化功能等

---
 代码管理/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/Controllers/AGV/CTU_AGVController .cs                    |   30 
 代码管理/WMS/WIDESEA_WMSServer/WIDESEA_SystemService/Sys_DictionaryService.cs                             |  106 ++
 代码管理/WMS/WIDESEA_WMSServer/WIDESEA_OutboundService/OutboundOrderService.cs                            |    6 
 代码管理/WMS/WIDESEA_WMSServer/WIDESEA_TaskInfoService/MesTaskService.cs                                  |   11 
 代码管理/WMS/WIDESEA_WMSServer/WIDESEA_OutboundService/ErpProScrapSheetService.cs                         |   64 +
 代码管理/WMS/WIDESEA_WMSServer/WIDESEA_TaskInfoService/WIDESEA_TaskInfoService.csproj                     |    1 
 代码管理/WMS/WIDESEA_WMSClient/src/extension/inbound/receiveOrder.js                                      |    7 
 代码管理/WMS/WIDESEA_WMSClient/src/extension/outbound/extend/PPStockSelect.vue                            |    4 
 代码管理/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/PP仓/ConveyorLineJob_PP.cs                                 |   10 
 代码管理/WMS/WIDESEA_WMSClient/src/extension/outbound/erpProScrapSheet.js                                 |  125 ++
 代码管理/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/PP仓/TSJConveyorLineJob_PP.cs                              |    2 
 代码管理/WMS/WIDESEA_WMSServer/WIDESEA_BasicService/Service/AssignLocation/LocationInfoService_GM.cs      |   78 +
 代码管理/WMS/WIDESEA_WMSServer/WIDESEA_Common/OrderEnum/CheckOrderEnum.cs                                 |   47 +
 代码管理/WMS/WIDESEA_WMSServer/WIDESEA_Common/OrderEnum/InboundOrderMenu.cs                               |    7 
 代码管理/WMS/WIDESEA_WMSServer/WIDESEA_Core/CodeConfigEnum/RuleCodeEnum.cs                                |    7 
 代码管理/WMS/WIDESEA_WMSClient/src/extension/outbound/extend/mesPPCutOutOrderDetail.vue                   |    4 
 代码管理/WMS/WIDESEA_WMSClient/src/views/check/checkOrder.vue                                             |    9 
 代码管理/WMS/WIDESEA_WMSServer/WIDESEA_BasicService/Service/LocationInfoService_Common.cs                 |    9 
 代码管理/WMS/WIDESEA_WMSServer/WIDESEA_CheckService/WIDESEA_CheckService.csproj                           |    1 
 代码管理/WMS/WIDESEA_WMSServer/WIDESEA_Model/Models/Outbound/Dt_ErpProScrapSheet.cs                       |   59 +
 代码管理/WMS/WIDESEA_WMSServer/WIDESEA_OutboundService/ProOutOrderService.cs                              |   69 
 代码管理/WMS/WIDESEA_WMSServer/WIDESEA_IOutboundRepository/IErpProScrapSheetDetailRepository.cs           |   17 
 代码管理/WMS/WIDESEA_WMSClient/src/api/http.js                                                            |    2 
 代码管理/WMS/WIDESEA_WMSServer/WIDESEA_CheckService/CheckOrderResultService.cs                            |  168 +++
 代码管理/WMS/WIDESEA_WMSClient/src/extension/outbound/extend/outOrderDetail.vue                           |    4 
 代码管理/WMS/WIDESEA_WMSServer/WIDESEA_Common/CommonEnum/CheckTypeEnum.cs                                 |   24 
 代码管理/WMS/WIDESEA_WMSServer/WIDESEA_Model/Models/Check/Dt_CheckOrder.cs                                |   13 
 代码管理/WMS/WIDESEA_WMSServer/WIDESEA_ICheckService/ICheckOrderResultService.cs                          |    1 
 代码管理/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/Outbound/ErpProScrapSheetController.cs       |   21 
 代码管理/WMS/WIDESEA_WMSServer/WIDESEA_Common/OrderEnum/ProScrapSheetStatusEnum.cs                        |   34 
 代码管理/WMS/WIDESEA_WMSServer/WIDESEA_BasicService/Service/AssignLocation/LocationInfoService_CSJ.cs     |  103 ++
 代码管理/WMS/WIDESEA_WMSServer/WIDESEA_IOutboundService/IErpProScrapSheetDetailService.cs                 |   16 
 代码管理/WMS/WIDESEA_WMSServer/WIDESEA_External/Model/ERPInspectModel.cs                                  |  104 ++
 代码管理/WMS/WIDESEA_WMSClient/src/extension/outbound/outboundOrder.js                                    |   28 
 代码管理/WMS/WIDESEA_WMSServer/WIDESEA_External/IERPService/IInvokeERPService.cs                          |    4 
 代码管理/WMS/WIDESEA_WMSClient/src/extension/check/extend/checkResult.vue                                 |    1 
 代码管理/WMS/WIDESEA_WMSServer/WIDESEA_OutboundRepository/ErpProScrapSheetDetailRepository.cs             |   18 
 代码管理/WMS/WIDESEA_WMSServer/WIDESEA_External/ERPService/InvokeERPService.cs                            |   19 
 代码管理/WMS/WIDESEA_WMSServer/WIDESEA_TaskInfoService/TaskService_Outbound.cs                            |    9 
 代码管理/WMS/WIDESEA_WMSServer/WIDESEA_Model/Models/Outbound/Dt_ErpProScrapSheetDetail.cs                 |   95 ++
 代码管理/WMS/WIDESEA_WMSClient/src/views/check/inspectOrder.vue                                           |  336 +++++++
 代码管理/WMS/WIDESEA_WMSClient/src/extension/outbound/extend/mesPPoutOrderDetail.vue                      |    4 
 代码管理/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/Check/CheckOrderResultController.cs          |   11 
 代码管理/WMS/WIDESEA_WMSClient/src/extension/outbound/extend/StockSelect.vue                              |    4 
 代码管理/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/TaskService.cs                                  |   15 
 代码管理/WMS/WIDESEA_WMSClient/src/router/viewGird.js                                                     |   10 
 代码管理/WMS/WIDESEA_WMSServer/WIDESEA_IOutboundRepository/IErpProScrapSheetRepository.cs                 |   17 
 代码管理/WMS/WIDESEA_WMSClient/src/extension/check/extend/inspectResultInfo.vue                           |   80 +
 代码管理/WMS/WIDESEA_WMSClient/src/extension/check/extend/inspectResult.vue                               |  243 +++++
 代码管理/WMS/WIDESEA_WMSServer/WIDESEA_BasicService/Service/AssignLocation/LocationInfoService_ZH.cs      |  103 ++
 代码管理/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/干膜仓/ConveyorLineJob_GM.cs                                 |   14 
 代码管理/WMS/WIDESEA_WMSServer/WIDESEA_IOutboundService/IProOutOrderService.cs                            |    2 
 代码管理/WMS/WIDESEA_WMSServer/WIDESEA_Common/StockEnum/StockStatusEmun.cs                                |    3 
 代码管理/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/appsettings.json                                         |    2 
 代码管理/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/阻焊仓/GroundStationJob_ZH.cs                                |    4 
 代码管理/WMS/WIDESEA_WMSServer/WIDESEA_IOutboundService/IErpProScrapSheetService.cs                       |   18 
 代码管理/WMS/WIDESEA_WMSServer/WIDESEA_TaskInfoService/TaskService.cs                                     |   62 +
 代码管理/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/ERP/ErpController.cs                         |   11 
 代码管理/WMS/WIDESEA_WMSServer/WIDESEA_InboundService/ReceiveOrderDetailService.cs                        |    2 
 代码管理/WMS/WIDESEA_WMSClient/src/views/outbound/erpProScrapSheet.vue                                    |  266 +++++
 代码管理/WMS/WIDESEA_WMSServer/WIDESEA_ICheckService/ICheckOrderService.cs                                |    1 
 代码管理/WMS/WIDESEA_WMSServer/WIDESEA_Model/Models/Check/Dt_CheckOrderResult.cs                          |    4 
 代码管理/WMS/WIDESEA_WMSServer/WIDESEA_OutboundService/ErpProScrapSheetDetailService.cs                   |   24 
 代码管理/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/Outbound/ErpProScrapSheetDetailController.cs |   20 
 代码管理/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/Outbound/ProOutOrderController.cs            |    4 
 代码管理/WMS/WIDESEA_WMSClient/src/extension/check/inspectOrder.js                                        |  137 ++
 代码管理/WMS/WIDESEA_WMSServer/WIDESEA_CheckService/CheckOrderService.cs                                  |   58 +
 代码管理/WMS/WIDESEA_WMSServer/WIDESEA_OutboundRepository/ErpProScrapSheetRepository.cs                   |   18 
 68 files changed, 2,656 insertions(+), 154 deletions(-)

diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/Controllers/AGV/CTU_AGVController .cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/Controllers/AGV/CTU_AGVController .cs"
index 9ecc331..a8bc416 100644
--- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/Controllers/AGV/CTU_AGVController .cs"
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/Controllers/AGV/CTU_AGVController .cs"
@@ -115,13 +115,14 @@
                 }
                 if (task.PalletCode!= agvCallbackBox.ContainerCode)
                 {
-                    string Address = task.CurrentAddress switch
+                    string Address = task?.CurrentAddress switch
                     {
                         "5206" => "5105",
                         "5212" => "5111",
                         "5218" => "5117",
                         "8005" => "8001",
                         "5135" => "5236",
+                        _ => throw new Exception("鏈壘鍒板湴鍧�淇℃伅"),
                     };
                     AgvCTUCancelDTO agvCTUCancel=new AgvCTUCancelDTO()
                     {
@@ -172,12 +173,7 @@
             {
                 if (agvUpdateModel == null) throw new Exception("鏈幏鍙栧埌璇锋眰鍙傛暟");
                 agvResponseContent.ReqCode = agvUpdateModel.ReqCode;
-                var task = _taskRepository.QueryFirst(x => agvUpdateModel.TaskCode == x.AgvTaskNum);
-                //鏄惁瀛樺湪杈撻�佺嚎浣撳緟AGV鎼繍浠诲姟
-                var taskExecutes = _taskRepository.QueryData(x => x.NextAddress == task.CurrentAddress && x.TaskState == TaskStatusEnum.Line_Executing.ObjToInt() && x.TaskType == TaskTypeEnum.InProduct.ObjToInt());
-                var taskExecutesFL = _taskRepository.QueryData(x => x.TaskState == TaskStatusEnum.New.ObjToInt() &&  x.DeviceCode=="AGV_FL" && !string.IsNullOrEmpty(x.DeviceCode));
-                if (task == null) throw new Exception($"鏈壘鍒颁换鍔�,浠诲姟鍙枫�恵agvUpdateModel.TaskCode}銆�");
-                
+                var task = _taskRepository.QueryFirst(x => agvUpdateModel.TaskCode == x.AgvTaskNum) ?? throw new Exception($"鏈壘鍒颁换鍔�,浠诲姟鍙枫�恵agvUpdateModel.TaskCode}銆�");
                 switch (agvUpdateModel.Method.ToUpper())
                 {
                     case "END":
@@ -190,27 +186,16 @@
                         //鏇存敼鎴愬搧鍏ュ簱AGV鍙栬揣浠诲姟鐘舵��
                         if (task.TaskType == TaskTypeEnum.InProduct.ObjToInt() || task.TaskType == TaskTypeEnum.InProductBack.ObjToInt())
                         {
-                            //for (int i = 0; i < 100; i++)
-                            //{
-                            //    task.TaskState = TaskStatusEnum.AGV_WaitToExecute.ObjToInt();
-                            //    task.Remark = task.TaskState.ToString();
-                            //    _taskRepository.UpdateData(task);
-                            //    var taskOk = _taskRepository.QueryFirst(x => agvUpdateModel.TaskCode == x.AgvTaskNum);
-                            //    if (taskOk.TaskState==TaskStatusEnum.AGV_WaitToExecute.ObjToInt() || taskOk.Remark.Contains("320"))
-                            //    {
-                            //        agvResponseContent.Code = "0";
-                            //        agvResponseContent.Message = ""+i;
-                            //        break;
-                            //    }
-                            //}
+                            
                             //鏄惁瀛樺湪杈撻�佺嚎浣撳緟AGV鎼繍浠诲姟
+                            var taskExecutes = _taskRepository.QueryData(x => x.NextAddress == task.CurrentAddress && x.TaskState == TaskStatusEnum.Line_Executing.ObjToInt() && x.TaskType == TaskTypeEnum.InProduct.ObjToInt());
                             if (taskExecutes.Count > 0)
                             {
                                 string address = task.CurrentAddress switch
                                 {
                                     "5206" => "5105",
                                     "5212" => "5111",
-                                    "5218" => "5117",
+                                    "5218" => "5117"
                                 };
                                 //璋冪敤AGV棰勮皟搴︽帴鍙�
                                 AgvScheduleTaskDTO agvScheduleTask = new AgvScheduleTaskDTO()
@@ -288,13 +273,14 @@
                         else //鏇存敼杈呮枡鍙栬揣
                         {
                             //鏄惁瀛樺湪杈撻�佺嚎浣撳緟AGV鎼繍浠诲姟
+                            var taskExecutesFL = _taskRepository.QueryData(x => x.TaskState == TaskStatusEnum.New.ObjToInt() && x.DeviceCode == "AGV_FL" && !string.IsNullOrEmpty(x.DeviceCode));
                             if (taskExecutesFL.Count > 0)
                             {
                                 //璋冪敤AGV棰勮皟搴︽帴鍙�
                                 AgvScheduleTaskDTO agvScheduleTask = new AgvScheduleTaskDTO()
                                 {
                                     PositionCode = "8001",
-                                    NextTask = "90",
+                                    NextTask = "60",
                                     UseableLayers = "1",
                                     CacheCount = "1",
                                     Update = "0",
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/TaskService.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/TaskService.cs"
index 14d41e6..47af224 100644
--- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/TaskService.cs"
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/TaskService.cs"
@@ -259,7 +259,7 @@
                                 task.NextAddress = router.NextPosi;
                                 task.DeviceCode = router.ChildPosi;
                             }
-                            else if (item.TaskType == TaskTypeEnum.MesOutbound.ObjToInt() || item.TaskType == TaskTypeEnum.MesHandOutbound.ObjToInt() || item.TaskType == TaskTypeEnum.MesHandPickOutbound.ObjToInt() || (item.TaskType == TaskTypeEnum.OutAllocate.ObjToInt() && item.RoadWay.Contains("BC")))
+                            else if (item.TaskType == TaskTypeEnum.MesOutbound.ObjToInt() || item.TaskType == TaskTypeEnum.MesHandOutbound.ObjToInt() || item.TaskType == TaskTypeEnum.MesHandPickOutbound.ObjToInt() || ((item.TaskType == TaskTypeEnum.OutAllocate.ObjToInt() || item.TaskType == TaskTypeEnum.OutQuality.ObjToInt() || item.TaskType == TaskTypeEnum.OutInventory.ObjToInt()) && item.RoadWay.Contains("BC")))
                             {
                                 task.NextAddress = router.NextPosi;
                                 task.DeviceCode = stationManger.StackerCraneCode;
@@ -290,6 +290,10 @@
                                 {
                                     task.DeviceCode = stationManger.StationDeviceCode;
                                     task.AgvTaskNum = task.Roadway + DateTime.Now.ToString("yyyyMMdd") + item.TaskNum;
+                                }
+                                else if (item.RoadWay.Contains("PP") && taskTypeGroup == TaskTypeGroup.OutbondGroup)
+                                {
+                                    task.DeviceCode = router.StartPosi;
                                 }
                                 else
                                 {
@@ -342,7 +346,14 @@
                             router = routers.FirstOrDefault();
                             task.NextAddress = router?.StartPosi ?? "";
                             task.DeviceCode = item.RoadWay;
-                            task.TaskState = TaskStatusEnum.SC_Execute.ObjToInt();
+                            if (item.RoadWay.Contains("ZH"))
+                            {
+                                task.TaskState = TaskStatusEnum.New.ObjToInt();
+                            }
+                            else
+                            {
+                                task.TaskState = TaskStatusEnum.SC_Execute.ObjToInt();
+                            }
                         }
                         else
                         {
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/PP\344\273\223/ConveyorLineJob_PP.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/PP\344\273\223/ConveyorLineJob_PP.cs"
index 485a7ae..1ab72e2 100644
--- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/PP\344\273\223/ConveyorLineJob_PP.cs"
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/PP\344\273\223/ConveyorLineJob_PP.cs"
@@ -77,20 +77,12 @@
 
                                 if (!string.IsNullOrEmpty(boxcode))
                                 {
-                                    string sc = device.Communicator.Read<string>("DB900.580.0");
+                                    string sc = device.Communicator.Read<string>("DB900.578.0");
                                     WriteError(device.DeviceName, $"璇诲彇鍊硷細{boxcode},瀵规瘮{sc}");
                                     string boxEndCode = "";
                                     if (boxcode.LastIndexOf(",PO:") >= 0)
                                     {
                                         boxEndCode = "M" + boxcode.Substring(0, boxcode.LastIndexOf(",PO:")) + sc.Substring(sc.IndexOf(",PO:")).Replace("\0", "");
-                                    }
-                                    else if (boxcode.LastIndexOf(",PO") > 0)
-                                    {
-                                        boxEndCode = "M" + boxcode.Substring(0, boxcode.LastIndexOf(",PO")) + sc.Substring(sc.IndexOf("PO:")).Replace("\0", "");
-                                    }
-                                    else if (boxcode.LastIndexOf(",P") > 0)
-                                    {
-                                        boxEndCode = "M" + boxcode.Substring(0, boxcode.LastIndexOf(",P")) + sc.Substring(sc.IndexOf("PO:")).Replace("\0", "");
                                     }
 
                                     //鍏ュ簱鐢宠浠诲姟
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/PP\344\273\223/TSJConveyorLineJob_PP.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/PP\344\273\223/TSJConveyorLineJob_PP.cs"
index 2a48f12..854306d 100644
--- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/PP\344\273\223/TSJConveyorLineJob_PP.cs"
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/PP\344\273\223/TSJConveyorLineJob_PP.cs"
@@ -115,7 +115,7 @@
                                 Dt_Task task = _taskRepository.QueryFirst(x => _taskService.TaskOutboundTypes.Contains(x.TaskType) && x.DeviceCode == item.StackerCraneCode && x.TaskState == TaskStatusEnum.New.ObjToInt() && string.IsNullOrEmpty(x.TargetAddress) && !string.IsNullOrEmpty(x.NextAddress));
                                 if (task != null)
                                 {
-                                    _taskService.UpdateTask(task, TaskStatusEnum.SC_Execute, nextAddress: item.StationCode, deviceCode: item.StackerCraneCode, targetAddress: item.StationCode);
+                                    _taskService.UpdateTask(task, TaskStatusEnum.SC_Execute, nextAddress: item.StackerCraneStationCode, deviceCode: item.StackerCraneCode, targetAddress: item.StationCode);
                                 }
                             }
 
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/\345\271\262\350\206\234\344\273\223/ConveyorLineJob_GM.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/\345\271\262\350\206\234\344\273\223/ConveyorLineJob_GM.cs"
index 8e3b890..187be46 100644
--- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/\345\271\262\350\206\234\344\273\223/ConveyorLineJob_GM.cs"
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/\345\271\262\350\206\234\344\273\223/ConveyorLineJob_GM.cs"
@@ -99,20 +99,12 @@
                                 
                                 if (!string.IsNullOrEmpty(boxcode))
                                 {
-                                    string sc = device.Communicator.Read<string>("DB900.508.0");
+                                    string sc = device.Communicator.Read<string>("DB900.478.0");
                                     WriteError(device.DeviceName, $"璇诲彇鍊硷細{boxcode},瀵规瘮{sc}");
                                     string boxEndCode = "";
-                                    if (boxcode.LastIndexOf(",SC:") >=0)
+                                    if (boxcode.LastIndexOf(",PO:") >=0)
                                     {
-                                        boxEndCode = "M"+ boxcode.Substring(0,boxcode.LastIndexOf(",SC:")) + sc.Substring(sc.IndexOf(",SC:")).Replace("\0", "");
-                                    }
-                                    else if (boxcode.LastIndexOf(",SC") > 0)
-                                    {
-                                        boxEndCode = "M" + boxcode.Substring(0, boxcode.LastIndexOf(",SC")) + sc.Substring(sc.IndexOf("SC:")).Replace("\0", "");
-                                    }
-                                    else if (boxcode.LastIndexOf(",S") > 0)
-                                    {
-                                        boxEndCode = "M" + boxcode.Substring(0, boxcode.LastIndexOf(",S")) + sc.Substring(sc.IndexOf("SC:")).Replace("\0", "");
+                                        boxEndCode = "M"+ boxcode.Substring(0,boxcode.LastIndexOf(",PO:")) + sc.Substring(sc.IndexOf(",PO:")).Replace("\0", "");
                                     }
 
                                     //鍏ュ簱鐢宠浠诲姟
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/\351\230\273\347\204\212\344\273\223/GroundStationJob_ZH.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/\351\230\273\347\204\212\344\273\223/GroundStationJob_ZH.cs"
index b7570c9..a495090 100644
--- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/\351\230\273\347\204\212\344\273\223/GroundStationJob_ZH.cs"
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/\351\230\273\347\204\212\344\273\223/GroundStationJob_ZH.cs"
@@ -70,10 +70,10 @@
                             ////鍒ゆ柇AGV浠诲姟瀹屾垚锛屽悗鍐欑粰鍦伴潰绔欏彇璐у畬鎴�
                             //device.SetValue(GroundStationDBName.W_TakeRequest, false, item.StationCode);
                             //device.SetValue(GroundStationDBName.W_TakeFinish, false, item.StationCode);
-                            Dt_Task task = _taskRepository.QueryFirst(x => x.DeviceCode == item.StackerCraneCode && x.TaskState == TaskStatusEnum.SC_Execute.ObjToInt() && string.IsNullOrEmpty(x.NextAddress));
+                            Dt_Task task = _taskRepository.QueryFirst(x => x.DeviceCode == item.StackerCraneCode && x.TaskState == TaskStatusEnum.New.ObjToInt() && x.NextAddress==item.StationCode);
                             if (task != null && isCanPut && !isCanTake && !putRequest && !putFinish && !takeRequest && !takeFinish)
                             {
-                                _taskService.UpdateTask(task, TaskStatusEnum.SC_Execute, nextAddress: item.StationCode);
+                                _taskService.UpdateTask(task, TaskStatusEnum.SC_Execute, nextAddress: item.StackerCraneStationCode);
                             }
                         }
                         if (item.StationType == StationTypeEnum.StationType_OnlyInbound.ObjToInt())
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSClient/src/api/http.js" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSClient/src/api/http.js"
index 70a500f..9405e2b 100644
--- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSClient/src/api/http.js"
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSClient/src/api/http.js"
@@ -3,7 +3,7 @@
 // import {getCurrentInstance} from 'vue'
 import { useRouter, useRoute } from 'vue-router'
 const router = useRouter();
-axios.defaults.timeout = 50000;
+axios.defaults.timeout = 60000;
 axios.defaults.headers.post['Content-Type'] = 'application/x-www-form-urlencoded;charset=UTF-8';
 
 import { ElLoading as Loading, ElMessage as Message } from 'element-plus';
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSClient/src/extension/check/extend/checkResult.vue" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSClient/src/extension/check/extend/checkResult.vue"
index 65e4552..91c6571 100644
--- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSClient/src/extension/check/extend/checkResult.vue"
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSClient/src/extension/check/extend/checkResult.vue"
@@ -166,7 +166,6 @@
       this.formFields.checkCount = this.rowData.receivedQuantity;
       //sampleCount淇濈暀涓や綅灏忔暟
       this.formFields.sampleCount = (this.rowData.receivedQuantity/10).toFixed(2);
-      console.log(this.rowData);
     },
     onModelClose() {
       this.$refs.form.reset();
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSClient/src/extension/check/extend/inspectResult.vue" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSClient/src/extension/check/extend/inspectResult.vue"
new file mode 100644
index 0000000..5aa6764
--- /dev/null
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSClient/src/extension/check/extend/inspectResult.vue"
@@ -0,0 +1,243 @@
+<template>
+    <vol-box
+      :lazy="true"
+      v-model="model"
+      :show-fullscreen="false"
+      title="妫�楠�"
+      :width="550"
+      :padding="5"
+      :onModelClose="onModelClose"
+    >
+      <div style="width: 520px; margin-left: 0px" :style="height + 'px'">
+        <div style="text-align: center; margin-top: 10px"></div>
+        <vol-form
+          ref="form"
+          :loadKey="true"
+          :formFields="formFields"
+          :formRules="formRules"
+        >
+        </vol-form>
+      </div>
+      <template #footer>
+        <div>
+          <el-button type="primary" size="small" @click="IsCheck">纭</el-button>
+          <el-button type="default" size="small" @click="closeModel"
+            >鍏抽棴</el-button
+          >
+        </div>
+      </template>
+    </vol-box>
+  </template>
+    <script>
+  import VolBox from "@/components/basic/VolBox.vue";
+  import VolForm from "@/components/basic/VolForm.vue";
+  //杩欓噷浣跨敤鐨剉ue2璇硶锛屼篃鍙互鍐欐垚vue3璇硶
+  export default {
+    components: { "vol-box": VolBox, "vol-form": VolForm },
+    methods: {},
+    data() {
+      return {
+        model: false,
+        height: 200,
+        rowData: null, //褰撳墠琛岀殑鏁版嵁
+        //琛ㄥ崟鏁版嵁
+        formFields: {
+          accpetVal: null, //璁剧疆鍗曢�夋榛樿鍊�
+          isReturn: null,
+          decimalVal: null,
+          Remark: null,
+          defectCode: null,
+          checkCount: null,
+          sampleCount: null
+        },
+        formRules: [
+          [
+            {
+              data: [
+                { key: 1, value: "鎺ュ彈" },
+                { key: 2, value: "涓嶆帴鍙�" },
+                { key: 3, value: "鐗归噰鎺ュ彈" },
+              ], //loadKey璁剧疆涓簍rue,浼氭牴鎹甦ataKey浠庡悗鍙扮殑涓嬫媺妗嗘暟鎹簮涓嚜鍔ㄥ姞杞芥暟鎹�
+              title: "鏄惁鎺ュ彈",
+              filter: true,
+              //  required: true, //璁剧疆涓哄繀閫夐」
+              field: "accpetVal",
+              type: "select",
+              labelWidth: 80,
+              validator: (rule, val) => {
+                if (!val) {
+                  return "璇烽�夋嫨鏄惁鎺ュ彈";
+                }
+              },
+              onChange: (val, option) => {
+                var select = option.find((x) => x.key == val)?.value;
+                if (select == "鎺ュ彈") {
+                  this.$Message.success(select);
+                } else if (select == "涓嶆帴鍙�" || select == "鐗归噰鎺ュ彈") {
+                  this.formFields.isReturn =1;
+                  this.formRules[2][0].hidden = false;
+                  this.formRules[2][0].required = true;
+                  this.formRules[2][1].hidden = false;
+                  this.formRules[2][1].required = true;
+                  this.formRules[3][0].hidden = false;
+                  this.$Message.error(select);
+                } else {
+                  this.$Message.warning("璇烽�夋嫨鏄惁鎺ュ彈");
+                }
+              },
+            },
+          ],
+          [
+            {
+              title: "鏄惁妫�鏁�",
+              field: "isReturn",
+              data: [],
+              required: false,
+              type: "switch",
+              onChange: (val) => {
+                if (val == 1) {
+                  this.formRules[2][0].hidden = false;
+                  this.formRules[2][0].required = true;
+                  this.formRules[2][1].hidden = false;
+                  this.formRules[2][1].required = true;
+                  this.formRules[3][0].hidden = false;
+                } else {
+                  this.formRules[2][0].hidden = true;
+                  this.formRules[2][0].required = false;
+                  this.formRules[2][1].hidden = true;
+                  this.formRules[2][1].required = false;
+                  this.formRules[3][0].hidden = true;
+                }
+              },
+            },
+          ],
+          [
+            {
+              type: "select",
+              title: "缂洪櫡浠g爜",
+              required: false,
+              hidden: true,
+              placeholder: "缂洪櫡浠g爜",
+              field: "defectCode",
+              data: [{key:'WMSReturn',value:'WMS鍝佽川閫�璐�'},{key:'0223',value:'WMS鎶ュ簾'},{key:'4529',value:'WMS鐗归噰'}]
+            },
+            {
+              type: "decimal",
+              title: "鏁伴噺",
+              required: false,
+              hidden: true,
+              placeholder: "鏁伴噺",
+              field: "decimalVal",
+            },
+          ],
+          [
+            {
+              title: "澶囨敞",
+              required: false,
+              hidden: true,
+              field: "Remark",
+              placeholder: "澶囨敞",
+              min: 1,
+              max: 3,
+              type: "textarea",
+              colSize: 12, //璁剧疆瀹藉害100%
+            },
+          ],
+          [
+            {
+              title: "妫�楠屾暟閲�",
+              field: "checkCount",
+              type: "label",
+              inputStyle: { color: "#000000" }, //鑷畾涔夋牱寮�,鍏朵粬鐨刬nput涔熺敓鏁�
+            },
+            {
+              title: "鎶芥牱鏁伴噺",
+              field: "sampleCount",
+              type: "label",
+              inputStyle: { color: "#e6a23c" }, //鑷畾涔夋牱寮�,鍏朵粬鐨刬nput涔熺敓鏁�
+            },
+          ],
+        ],
+      };
+    },
+    methods: {
+      open(res) {
+        this.model = true;
+        this.rowData = res[0];
+        this.formFields.checkCount = this.rowData.receivedQuantity;
+        //sampleCount淇濈暀涓や綅灏忔暟
+        this.formFields.sampleCount = (this.rowData.receivedQuantity/10).toFixed(2);
+      },
+      onModelClose() {
+        this.$refs.form.reset();
+        this.model = false;
+        this.formRules[2][0].hidden = true;
+        this.formRules[2][0].required = false;
+        this.formRules[2][1].hidden = true;
+        this.formRules[2][1].required = false;
+        this.formRules[3][0].hidden = true;
+      },
+      closeModel() {
+        this.$refs.form.reset();
+        this.model = false;
+        this.formRules[2][0].hidden = true;
+        this.formRules[2][0].required = false;
+        this.formRules[2][1].hidden = true;
+        this.formRules[2][1].required = false;
+        this.formRules[3][0].hidden = true;
+      },
+      IsCheck() {
+        //鑾峰彇accpetVal鐨勫��
+        this.$refs.form.validate(() => {
+          var requestData = null;
+          if (this.formFields.isReturn == 1) {
+            var ResultInfo="";
+            if(this.formFields.defectCode == "WMSReturn") {
+                ResultInfo="Return";
+            }else if(this.formFields.defectCode == "0223") {
+                ResultInfo="Scrapped";
+            }else if(this.formFields.defectCode == "4529") {
+                ResultInfo="Defect";
+            }
+            requestData = {
+              checkOrderId: this.rowData.checkOrderId,
+              defectCode: this.formFields.defectCode,
+              quantity: this.formFields.decimalVal,
+              note: this.formFields.Remark,
+              result: ResultInfo,
+              sampleCount: this.formFields.sampleCount,
+            };
+          }
+          this.http
+            .post(
+              "/api/CheckOrderResult/CommitInspectResult?checkOrderId=" +
+                this.rowData.checkOrderId +
+                "&isAccept=" +
+                this.formFields.accpetVal,
+              requestData ? requestData : {},
+              "璇锋眰涓�"
+            )
+            .then((x) => {
+              if (x.status) {
+                this.$refs.form.reset();
+                this.model = false;
+                this.formRules[2][0].hidden = true;
+                this.formRules[2][0].required = false;
+                this.formRules[3][0].hidden = true;
+                this.$Message.success("鎻愪氦鎴愬姛");
+                this.$parent.refresh();
+              } else {
+                this.$Message.error(x.message);
+              }
+            });
+        });
+      },
+    },
+  };
+  </script>
+  <style>
+  /* 闅愯棌鍏ㄥ睆鏀惧ぇ鎸夐挳 */
+  .el-icon-full-screen {
+    display: none;
+  }
+  </style>
\ No newline at end of file
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSClient/src/extension/check/extend/inspectResultInfo.vue" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSClient/src/extension/check/extend/inspectResultInfo.vue"
new file mode 100644
index 0000000..1a24d11
--- /dev/null
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSClient/src/extension/check/extend/inspectResultInfo.vue"
@@ -0,0 +1,80 @@
+<template>
+    <!-- 寮瑰嚭妗嗕竴 -->
+    <vol-box :lazy="true" v-model="model1" title="妫�楠屼俊鎭�" :width="500" :padding="5" :onModelClose="onModelClose">
+        <div style="height:350px;">
+            <div style="width:450px;margin: 10px auto;">
+                <el-descriptions column="1">
+                    <el-descriptions-item label="妫�楠岀粨鏋滐細">
+                        <el-tag size="small" :type="!model1Rows?'success':'error'">
+                            {{!model1Rows?"鍚堟牸":"鎶ュ簾" }}
+                        </el-tag>
+                    </el-descriptions-item>
+                    <el-descriptions-item :label="!model1Rows?'':'缂洪櫡浠g爜锛�'" >
+                        {{!model1Rows?"":model1Rows.defectCode}}
+                    </el-descriptions-item>
+                    <el-descriptions-item :label="!model1Rows?'':'妫�楠屾暟閲忥細'">
+                        {{!model1Rows?"":model1Rows.checkquantity}}
+                    </el-descriptions-item>
+                    <el-descriptions-item :label="!model1Rows?'':'鎶芥牱鏁伴噺锛�'">
+                        {{!model1Rows?"":model1Rows.sampleCount}}
+                    </el-descriptions-item>
+                    <el-descriptions-item :label="!model1Rows?'':'鎶ュ簾鏁伴噺锛�'">
+                        {{!model1Rows?"":model1Rows.quantity}}
+                    </el-descriptions-item>
+                    <el-descriptions-item :label="!model1Rows?'':'妫�楠屽憳宸ワ細'">
+                        {{!model1Rows?"":model1Rows.creater}}
+                    </el-descriptions-item>
+                    <el-descriptions-item :label="!model1Rows?'':'妫�楠屽娉細'">
+                        {{!model1Rows?"":model1Rows.note}}
+                    </el-descriptions-item>
+                </el-descriptions>
+            </div>
+        </div>
+        <template #footer>
+            <div>
+                <!-- <el-button type="primary" plain size="small" @click="callParent">璋冪敤鐢熸垚(鐖�)椤甸潰瀵硅薄</el-button> -->
+                <!-- <el-button type="primary" size="small" @click="closeModel1">纭</el-button> -->
+                <el-button type="default" size="small" @click="model1 = false">鍏抽棴</el-button>
+            </div>
+        </template>
+    </vol-box>
+</template>
+<script>
+import VolBox from '@/components/basic/VolBox.vue';
+//杩欓噷浣跨敤鐨剉ue2璇硶锛屼篃鍙互鍐欐垚vue3璇硶
+export default {
+    components: { 'vol-box': VolBox },
+    methods: {},
+    data() {
+        return {
+            model1: false,
+            model1Rows: null, 
+        };
+    },
+    methods: {
+        open(info) { //寮瑰嚭妗�1
+            this.model1Rows = info;
+            this.model1 = true;
+            console.log(info);
+        },
+        closeModel1() {
+            this.model1 = false;
+            this.model1Rows=null;
+        },
+        // callParent() {
+        //     this.$emit('parentCall', $parent => {
+        //         //$parent灏辨槸鐢熸垚椤甸潰鐨勫璞★紝姣斿鍙互璋冪敤椤甸潰鍒锋柊锛屽彲鑾峰彇鐨勫睘鎬т笌鏂规硶瑙併�愮敓鎴愰〉闈㈡枃妗c��,$parent.xxx鐩存帴璋冪敤
+        //         //璋冪敤鍒锋柊
+        //         $parent.search();
+        //         //鑾峰彇鎵�鏈夐�変腑鐨勮鏁版嵁
+        //         // $parent.getSelectRows();
+        //         this.$message.success('璋冪敤浜嗗埛鏂�')
+        //     })
+        // },
+        onModelClose() {
+            this.model1 = false;
+            this.model1Rows=null;
+        }
+    }
+};
+</script>
\ No newline at end of file
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSClient/src/extension/check/inspectOrder.js" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSClient/src/extension/check/inspectOrder.js"
new file mode 100644
index 0000000..ba845ed
--- /dev/null
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSClient/src/extension/check/inspectOrder.js"
@@ -0,0 +1,137 @@
+/*****************************************************************************************
+**  Author:jxx 2022
+**  QQ:283591387
+**瀹屾暣鏂囨。瑙侊細http://v2.volcore.xyz/document/api 銆愪唬鐮佺敓鎴愰〉闈iewGrid銆�
+**甯哥敤绀轰緥瑙侊細http://v2.volcore.xyz/document/vueDev
+**鍚庡彴鎿嶄綔瑙侊細http://v2.volcore.xyz/document/netCoreDev
+*****************************************************************************************/
+//姝s鏂囦欢鏄敤鏉ヨ嚜瀹氫箟鎵╁睍涓氬姟浠g爜锛屽彲浠ユ墿灞曚竴浜涜嚜瀹氫箟椤甸潰鎴栬�呴噸鏂伴厤缃敓鎴愮殑浠g爜
+import gridBody from './extend/inspectResult.vue'
+import gridHeader from './extend/inspectResultInfo.vue'
+let extension = {
+  components: {
+    //鏌ヨ鐣岄潰鎵╁睍缁勪欢
+    gridHeader: gridHeader,
+    gridBody: gridBody,
+    gridFooter: '',
+    //鏂板缓銆佺紪杈戝脊鍑烘鎵╁睍缁勪欢
+    modelHeader: '',
+    modelBody: '',
+    modelFooter: ''
+  },
+  tableAction: '', //鎸囧畾鏌愬紶琛ㄧ殑鏉冮檺(杩欓噷濉啓琛ㄥ悕,榛樿涓嶇敤濉啓)
+  buttons: { view: [], box: [], detail: [] }, //鎵╁睍鐨勬寜閽�
+  methods: {
+     //涓嬮潰杩欎簺鏂规硶鍙互淇濈暀涔熷彲浠ュ垹闄�
+    onInit() {  //妗嗘灦鍒濆鍖栭厤缃墠锛�
+        //绀轰緥锛氬湪鎸夐挳鐨勬渶鍓嶉潰娣诲姞涓�涓寜閽�
+        //   this.buttons.unshift({  //涔熷彲浠ョ敤push鎴栬�卻plice鏂规硶鏉ヤ慨鏀筨uttons鏁扮粍
+        //     name: '鎸夐挳', //鎸夐挳鍚嶇О
+        //     icon: 'el-icon-document', //鎸夐挳鍥炬爣vue2鐗堟湰瑙乮view鏂囨。icon锛寁ue3鐗堟湰瑙乪lement ui鏂囨。icon(娉ㄦ剰涓嶆槸element puls鏂囨。)
+        //     type: 'primary', //鎸夐挳鏍峰紡vue2鐗堟湰瑙乮view鏂囨。button锛寁ue3鐗堟湰瑙乪lement ui鏂囨。button
+        //     onClick: function () {
+        //       this.$Message.success('鐐瑰嚮浜嗘寜閽�');
+        //     }
+        //   });
+        this.columns.push({
+          title: '鎿嶄綔',
+          field: '鎿嶄綔',
+          width: 120,
+          align: 'center',
+          render: (h, { row, column, index }) => {
+            if  ( row.checkOrderStatus == 0 ) {
+              return (
+                <div>
+                  <el-button
+                    onClick={($e) => {
+                          this.$refs.gridBody.open([row],true);
+                    }}
+                    type="primary"
+                    plain
+                    size="small"
+                    style="height:26px; padding: 10px !important;"
+                  >
+                    瀹℃牳
+                  </el-button>
+                </div>
+              )
+              }
+              if ( row.checkOrderStatus == 1 ) {
+                return (
+                  <div>
+                    <el-button
+                      onClick={($e) => {
+                        this.http
+                          .post("api/CheckOrderResult/GetCheckResultInfo?checkId="+row.checkOrderId, "鏁版嵁澶勭悊涓�...")
+                          .then((x) => {
+                            if (x.status) {
+                                if (x.data) {
+                                  x.data.checkquantity=row.receivedQuantity
+                                }
+                                this.$refs.gridHeader.open(x.data);
+                            } else {
+                              return this.$error(x.message);
+                            }
+                        });
+                            
+                      }}
+                      type="primary"
+                      plain
+                      size="small"
+                      style="height:26px; padding: 10px !important;"
+                    >
+                      妫�楠屼俊鎭�
+                    </el-button>
+                  </div>
+                )
+              }
+            }
+            
+        });
+        this.columns.forEach(x=>{
+          //璁剧疆title鍒楀浐瀹�
+          if (x.field=='鎿嶄綔') {
+            x.fixed = 'right';
+              // x.align="center"//璁剧疆鏂囨湰灞呬腑
+          }
+      })
+        //绀轰緥锛氳缃慨鏀规柊寤恒�佺紪杈戝脊鍑烘瀛楁鏍囩鐨勯暱搴�
+        // this.boxOptions.labelWidth = 150;
+    },
+    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/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSClient/src/extension/inbound/receiveOrder.js" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSClient/src/extension/inbound/receiveOrder.js"
index a82bcc5..d565094 100644
--- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSClient/src/extension/inbound/receiveOrder.js"
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSClient/src/extension/inbound/receiveOrder.js"
@@ -58,6 +58,13 @@
               // x.numberLength = 4;
           }
         });
+        // this.boxButtons.forEach((btn) => {
+        //     if (btn.name == '淇� 瀛�') {
+        //         btn.hidden = true;
+        //         //鎴栬�呰缃彧璇�
+        //         //btn.readonly=true;
+        //     }
+        // });
     },
     searchBefore(param) {
       //鐣岄潰鏌ヨ鍓�,鍙互缁檖aram.wheres娣诲姞鏌ヨ鍙傛暟
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSClient/src/extension/outbound/erpProScrapSheet.js" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSClient/src/extension/outbound/erpProScrapSheet.js"
new file mode 100644
index 0000000..9e7c04a
--- /dev/null
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSClient/src/extension/outbound/erpProScrapSheet.js"
@@ -0,0 +1,125 @@
+
+//姝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() {
+        this.columns.push({
+            field: '鎿嶄綔',
+            title: '鎿嶄綔',
+            width: 120,
+            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);
+            }
+        });
+    //   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=>{ });
+      const isAdd=this.currentAction=='Update';//鍒ゆ柇鏄惁涓烘柊寤烘搷浣�
+    },
+    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) {
+   //闅愯棌鏄庣粏琛ㄦ寜閽�
+    this.detailOptions.buttons.forEach((btn) => {
+        if (btn.name == '瀵煎叆') {
+            btn.hidden = true;
+            //鎴栬�呰缃彧璇�
+            //btn.readonly=true;
+        }
+    });
+      //鐐瑰嚮缂栬緫銆佹柊寤烘寜閽脊鍑烘鍚庯紝鍙互鍦ㄦ澶勫啓閫昏緫锛屽锛屼粠鍚庡彴鑾峰彇鏁版嵁
+      //(1)鍒ゆ柇鏄紪杈戣繕鏄柊寤烘搷浣滐細 this.currentAction=='Add';
+      //(2)缁欏脊鍑烘璁剧疆榛樿鍊�
+      //(3)this.editFormFields.瀛楁='xxx';
+      //濡傛灉闇�瑕佺粰涓嬫媺妗嗚缃粯璁ゅ�硷紝璇烽亶鍘唗his.editFormOptions鎵惧埌瀛楁閰嶇疆瀵瑰簲data灞炴�х殑key鍊�
+      //鐪嬩笉鎳傚氨鎶婅緭鍑虹湅锛歝onsole.log(this.editFormOptions)
+    }
+  }
+};
+export default extension;
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSClient/src/extension/outbound/extend/PPStockSelect.vue" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSClient/src/extension/outbound/extend/PPStockSelect.vue"
index 8dc77b0..6f032d5 100644
--- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSClient/src/extension/outbound/extend/PPStockSelect.vue"
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSClient/src/extension/outbound/extend/PPStockSelect.vue"
@@ -95,9 +95,9 @@
         <el-button type="primary" size="small" @click="outbound"
           >鐩存帴鍑哄簱</el-button
         >
-        <el-button type="primary" size="small" @click="lockStock"
+        <!-- <el-button type="primary" size="small" @click="lockStock"
           >閿佸畾搴撳瓨</el-button
-        >
+        > -->
         <el-button type="danger" size="small" @click="showDetialBox = false"
           >鍏抽棴</el-button
         >
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSClient/src/extension/outbound/extend/StockSelect.vue" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSClient/src/extension/outbound/extend/StockSelect.vue"
index c4dcc64..70f93e3 100644
--- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSClient/src/extension/outbound/extend/StockSelect.vue"
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSClient/src/extension/outbound/extend/StockSelect.vue"
@@ -95,9 +95,9 @@
         <el-button type="primary" size="small" @click="outbound"
           >鐩存帴鍑哄簱</el-button
         >
-        <el-button type="primary" size="small" @click="lockStock"
+        <!-- <el-button type="primary" size="small" @click="lockStock"
           >閿佸畾搴撳瓨</el-button
-        >
+        > -->
         <el-button type="danger" size="small" @click="showDetialBox = false"
           >鍏抽棴</el-button
         >
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSClient/src/extension/outbound/extend/mesPPCutOutOrderDetail.vue" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSClient/src/extension/outbound/extend/mesPPCutOutOrderDetail.vue"
index 557cab9..9a5ce39 100644
--- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSClient/src/extension/outbound/extend/mesPPCutOutOrderDetail.vue"
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSClient/src/extension/outbound/extend/mesPPCutOutOrderDetail.vue"
@@ -14,13 +14,13 @@
               <span>宸查�変腑 {{ selection.length }} 椤�</span>
             </el-col>
             <el-col :span="8">
-              <el-link
+              <!-- <el-link
                 type="primary"
                 size="small"
                 style="float: right; height: 20px"
                 @click="lockstocks"
                 >閿佸畾搴撳瓨</el-link
-              >
+              > -->
               <el-link
                 type="primary"
                 size="small"
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSClient/src/extension/outbound/extend/mesPPoutOrderDetail.vue" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSClient/src/extension/outbound/extend/mesPPoutOrderDetail.vue"
index 58cdc5b..469d4d5 100644
--- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSClient/src/extension/outbound/extend/mesPPoutOrderDetail.vue"
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSClient/src/extension/outbound/extend/mesPPoutOrderDetail.vue"
@@ -14,13 +14,13 @@
               <span>宸查�変腑 {{ selection.length }} 椤�</span>
             </el-col>
             <el-col :span="8">
-              <el-link
+              <!-- <el-link
                 type="primary"
                 size="small"
                 style="float: right; height: 20px"
                 @click="lockstocks"
                 >閿佸畾搴撳瓨</el-link
-              >
+              > -->
               <el-link
                 type="primary"
                 size="small"
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSClient/src/extension/outbound/extend/outOrderDetail.vue" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSClient/src/extension/outbound/extend/outOrderDetail.vue"
index 0357e55..141bacc 100644
--- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSClient/src/extension/outbound/extend/outOrderDetail.vue"
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSClient/src/extension/outbound/extend/outOrderDetail.vue"
@@ -14,13 +14,13 @@
               <span>宸查�変腑 {{ selection.length }} 椤�</span>
             </el-col>
             <el-col :span="8">
-              <el-link
+              <!-- <el-link
                 type="primary"
                 size="small"
                 style="float: right; height: 20px"
                 @click="lockstocks"
                 >閿佸畾搴撳瓨</el-link
-              >
+              > -->
               <el-link
                 type="primary"
                 size="small"
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSClient/src/extension/outbound/outboundOrder.js" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSClient/src/extension/outbound/outboundOrder.js"
index 122b98c..f151a79 100644
--- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSClient/src/extension/outbound/outboundOrder.js"
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSClient/src/extension/outbound/outboundOrder.js"
@@ -19,20 +19,20 @@
       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);
-          }
-      });
+            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/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSClient/src/router/viewGird.js" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSClient/src/router/viewGird.js"
index 4894b77..fddf1a5 100644
--- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSClient/src/router/viewGird.js"
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSClient/src/router/viewGird.js"
@@ -292,6 +292,16 @@
     path: '/erpProInOrder',
     name: 'erpProInOrder',
     component: () => import('@/views/inbound/erpProInOrder.vue')
+  },
+  {
+    path: '/erpProScrapSheet',
+    name: 'erpProScrapSheet',
+    component: () => import('@/views/outbound/erpProScrapSheet.vue')
+  },
+  {
+    path: '/inspectOrder',
+    name: 'inspectOrder',
+    component: () => import('@/views/check/inspectOrder.vue')
   }
 ]
 export default viewgird
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSClient/src/views/check/checkOrder.vue" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSClient/src/views/check/checkOrder.vue"
index ef2acea..22e6b03 100644
--- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSClient/src/views/check/checkOrder.vue"
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSClient/src/views/check/checkOrder.vue"
@@ -38,6 +38,7 @@
       receiveOrderNo: "",
       checkOrderStatus: "",
       auditStatus: "",
+      orderType: "0",
     });
     const searchFormOptions = ref([
       [
@@ -92,6 +93,14 @@
         align: "left",
       },
       {
+        field: "orderType",
+        title: "妫�楠屽崟绫诲瀷",
+        type: "string",
+        width: 120,
+        align: "left",
+        bind: { key: "checkTypeEnum", data: [] },
+      },
+      {
         field: "receiveOrderNo",
         title: "鏀惰揣鍗曞彿",
         type: "string",
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSClient/src/views/check/inspectOrder.vue" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSClient/src/views/check/inspectOrder.vue"
new file mode 100644
index 0000000..b821479
--- /dev/null
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSClient/src/views/check/inspectOrder.vue"
@@ -0,0 +1,336 @@
+<!--
+*Author锛歫xx
+ *Contact锛�283591387@qq.com
+ *浠g爜鐢辨鏋剁敓鎴�,浠讳綍鏇存敼閮藉彲鑳藉鑷磋浠g爜鐢熸垚鍣ㄨ鐩�
+ *涓氬姟璇峰湪@/extension/widesea_wcs/order/Dt_CheckOrder.js姝ゅ缂栧啓
+ -->
+ <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/check/inspectOrder.js";
+  import { ref, defineComponent } from "vue";
+  export default defineComponent({
+    setup() {
+      const table = ref({
+        key: "checkOrderId",
+        footer: "Foots",
+        cnName: "閫佹鍗�",
+        name: "checkOrder",
+        url: "/CheckOrder/",
+        sortName: "checkOrderId",
+      });
+      const editFormFields = ref({});
+      const editFormOptions = ref([]);
+      const searchFormFields = ref({
+        checkOrderNo: "",
+        receiveOrderNo: "",
+        checkOrderStatus: "",
+        auditStatus: "",
+        orderType: "1",
+      });
+      const searchFormOptions = ref([
+        [
+          { title: "妫�楠屽崟鍙�", field: "checkOrderNo", type: "like" },
+          { title: "閫佹鍗曞彿", field: "receiveOrderNo", type: "like" },
+          {
+            title: "璐ㄦ鍗曠姸鎬�",
+            field: "checkOrderStatus",
+            type: "select",
+            dataKey: "checkOrderStatusEnum",
+            data: [],
+          },
+        ],
+        [
+          { title: "鐗╂枡缂栧彿", field: "materielCode", type: "like" },
+          { title: "鐗╂枡鎵规", field: "lotNo", type: "like" },
+          {
+            title: "妫�楠岀粨鏋�",
+            field: "result",
+            type: "select",
+            dataKey: "inspectAcceptEnum",
+            data: [],
+          },
+        ],
+        [
+          {
+            title: "涓婁紶鐘舵��",
+            field: "UploadStatus",
+            type: "select",
+            dataKey: "checkUploadEnum",
+            data: [],
+          },
+        ],
+      ]);
+      const columns = ref([
+        {
+          field: "checkOrderId",
+          title: "涓婚敭",
+          type: "int",
+          width: 150,
+          hidden: true,
+          readonly: true,
+          require: true,
+          align: "left",
+        },
+        {
+          field: "checkOrderNo",
+          title: "妫�楠屽崟鍙�",
+          type: "string",
+          width: 180,
+          require: true,
+          align: "left",
+        },
+        {
+          field: "orderType",
+          title: "妫�楠屽崟绫诲瀷",
+          type: "string",
+          width: 120,
+          align: "left",
+          bind: { key: "checkTypeEnum", data: [] },
+        },
+        {
+          field: "receiveOrderNo",
+          title: "閫佹鍗曞彿",
+          type: "string",
+          width: 180,
+          require: true,
+          align: "left",
+        },
+        {
+          field: "warehouseId",
+          title: "浠撳簱",
+          type: "string",
+          width: 90,
+          align: "left",
+          bind: { key: "warehouses", data: [] },
+        },
+        //    {field:'auditStatus',title:'瀹℃壒鐘舵��',type:'int',width:110,require:true,align:'left'},
+        {
+          field: "receiveDetailRowNo",
+          title: "閫佹鏄庣粏琛�",
+          type: "int",
+          width: 100,
+          require: true,
+          align: "left",
+        },
+        {
+          field: "materielCode",
+          title: "鐗╂枡缂栧彿",
+          type: "string",
+          width: 110,
+          require: true,
+          align: "left",
+        },
+        {
+          field: "materielSpec",
+          title: "鐗╂枡瑙勬牸",
+          type: "select",
+          type: "string",
+          width: 160,
+          align: "left",
+        },
+        {
+          field: "lotNo",
+          title: "鎵规鍙�",
+          type: "string",
+          width: 150,
+          require: true,
+          align: "left",
+        },
+        {
+          field: "checkOrderStatus",
+          title: "璐ㄦ鍗曠姸鎬�",
+          type: "string",
+          width: 110,
+          require: true,
+          align: "left",
+          bind: { key: "checkOrderStatusEnum", data: [] },
+        },
+        {
+          field: "qualifiedQuantity",
+          title: "鍚堟牸鏁伴噺",
+          type: "float",
+          width: 110,
+          align: "left",
+        },
+        {
+          field: "returnQuantity",
+          title: "閫�璐ф暟閲�",
+          type: "float",
+          width: 110,
+          align: "left",
+        },
+        {
+          field: "receivedQuantity",
+          title: "妫�楠屾�绘暟",
+          type: "float",
+          width: 110,
+          require: true,
+          align: "left",
+        },
+        {
+          field: "unit",
+          title: "鍗曚綅",
+          type: "string",
+          width: 90,
+          align: "left",
+        },
+        {
+          field: "result",
+          title: "妫�楠屽垽鏂�",
+          type: "string",
+          width: 120,
+          align: "left",
+          bind: { key: "inspectAcceptEnum", data: [] },
+        },
+        {
+          field: "uploadStatus",
+          title: "涓婁紶鐘舵��",
+          type: "string",
+          width: 100,
+          align: "left",
+          bind: { key: "checkUploadEnum", data: [] },
+        },
+        //    {field:'defectedNote',title:'鐗归噰璇存槑',type:'string',width:110,align:'left'},
+        {
+          field: "checkUserName",
+          title: "妫�楠屼汉",
+          type: "string",
+          width: 110,
+          align: "left",
+        },
+        // {
+        //   field: "creater",
+        //   title: "鍒涘缓鑰�",
+        //   type: "string",
+        //   width: 110,
+        //   require: true,
+        //   align: "left",
+        // },
+        {
+          field: "createDate",
+          title: "鍒涘缓鏃堕棿",
+          type: "datetime",
+          width: 180,
+          require: true,
+          align: "left",
+        },
+        //    {field:'modifier',title:'淇敼浜�',type:'string',width:100,align:'left'},
+        //    {field:'modifyDate',title:'淇敼鏃ユ湡',type:'datetime',width:150,align:'left',sort:true}
+      ]);
+      const detail = ref({
+        cnName: "妫�楠岀粨鏋�",
+        table: "CheckOrderResult",
+        columns: [
+          {
+            field: "id",
+            title: "涓婚敭",
+            type: "int",
+            width: 110,
+            hidden: true,
+            readonly: true,
+            require: true,
+            align: "left",
+          },
+          {
+            field: "checkOrderId",
+            title: "妫�楠屽崟涓婚敭",
+            type: "int",
+            width: 110,
+            require: true,
+            align: "left",
+            sort: true,
+          },
+          {
+            field: "defectCode",
+            title: "缂洪櫡浠g爜",
+            type: "string",
+            width: 110,
+            require: true,
+            align: "left",
+          },
+          {
+            field: "result",
+            title: "妫�楠岀粨鏋�",
+            type: "string",
+            width: 110,
+            require: true,
+            align: "left",
+          },
+          {
+            field: "quantity",
+            title: "鏁伴噺",
+            type: "float",
+            width: 110,
+            require: true,
+            align: "left",
+          },
+          {
+            field: "note",
+            title: "澶囨敞",
+            type: "string",
+            width: 220,
+            align: "left",
+          },
+          {
+            field: "creater",
+            title: "鍒涘缓鑰�",
+            type: "string",
+            width: 110,
+            require: true,
+            align: "left",
+          },
+          {
+            field: "createDate",
+            title: "鍒涘缓鏃堕棿",
+            type: "datetime",
+            width: 150,
+            require: true,
+            align: "left",
+            sort: true,
+          },
+          {
+            field: "modifier",
+            title: "淇敼浜�",
+            type: "string",
+            width: 100,
+            align: "left",
+          },
+          {
+            field: "modifyDate",
+            title: "淇敼鏃ユ湡",
+            type: "datetime",
+            width: 150,
+            align: "left",
+            sort: true,
+          },
+        ],
+        sortName: "id",
+        key: "id",
+      });
+      return {
+        table,
+        extend,
+        editFormFields,
+        editFormOptions,
+        searchFormFields,
+        searchFormOptions,
+        columns,
+        detail,
+      };
+    },
+  });
+  </script>
+  
\ No newline at end of file
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSClient/src/views/outbound/erpProScrapSheet.vue" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSClient/src/views/outbound/erpProScrapSheet.vue"
new file mode 100644
index 0000000..8683b1b
--- /dev/null
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSClient/src/views/outbound/erpProScrapSheet.vue"
@@ -0,0 +1,266 @@
+
+<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/erpProScrapSheet.js";
+  import { ref, defineComponent } from "vue";
+  export default defineComponent({
+    setup() {
+      const table = ref({
+        key: "id",
+        footer: "Foots",
+        cnName: "鎴愬搧瓒呮湡鎶ュ簾鍗�",
+        name: "erpProScrapSheet",
+        url: "/erpProScrapSheet/",
+        sortName: "id",
+      });
+      const editFormFields = ref({
+        warehouseId:"",
+        proScrapSheetOrderNo:""
+      });
+      const editFormOptions = ref([
+        [
+        {
+          title: "鎵�灞炰粨搴�",
+          required: true,
+          field: "warehouseId",
+          type: "select",
+          dataKey: "warehouses",
+          data: [],
+        },
+        {
+          field: "proScrapSheetOrderNo",
+          title: "鍗曟嵁缂栧彿",
+          type: "string",
+          readonly: "true",
+        },
+        ],
+      ]);
+      const searchFormFields = ref({
+        proScrapSheetOrderNo: "",
+      });
+      const searchFormOptions = ref([
+        [
+          { title: "鍗曟嵁缂栧彿", field: "proScrapSheetOrderNo", type:"like" },
+          { 
+            title: "鎶ュ簾鐘舵��", field: "proScrapStatus", type: "select",
+            dataKey: "outboundStatusEnum",
+            data: [] 
+          },
+        ],
+      ]);
+      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: "proScrapSheetOrderNo",
+          title: "鍗曟嵁缂栧彿",
+          type: "string",
+          width: 150,
+          align: "left",
+          link: true,
+        },
+        {
+          field: "proScrapStatus",
+          title: "鎶ュ簾鐘舵��",
+          type: "string",
+          width: 150,
+          align: "left",
+          bind: { key: "proScrapStatusEnum", data: [] },
+        },
+        {
+            field: "creater",
+            title: "鍒涘缓浜�",
+            type: "string",
+            width: 90,
+            align: "left",
+        },
+        {
+            field: "createDate",
+            title: "鍒涘缓鏃堕棿",
+            type: "datetime",
+            width: 160,
+            align: "left",
+        },
+        {
+          field: "remark",
+          title: "澶囨敞",
+          type: "string",
+          width: 90,
+          align: "left",
+        }
+        // {
+        //   field: "OrderStatus",
+        //   title: "鍗曟嵁鏁伴噺",
+        //   type: "string",
+        //   width: 90,
+        //   align: "left",
+        //   bind: { key: "orderDetailStatusEnum", data: [] }
+        // },
+      ]);
+      const detail = ref({
+      cnName: "鎴愬搧鎶ュ簾鍗曟槑缁�",
+      table: "erpProScrapSheetDetail",
+      columns: [
+            {
+            field: "id",
+            title: "Id",
+            type: "int",
+            width: 90,
+            hidden: true,
+            readonly: true,
+            require: true,
+            align: "left",
+            },
+            {
+                field: "proScrapSheetId",
+                title: "鎴愬搧鎶ュ簾鍗曚富閿�",
+                type: "string",
+                width: 90,
+                align: "left",
+                hidden: true,
+            },
+            {
+                field: "scrapProCode",
+                title: "浜у搧缂栫爜",
+                type: "string",
+                width: 180,
+                align: "left",
+                edit: { type: "string" },
+                required: true,
+            },
+            {
+                field: "scrapProVersion",
+                title: "鎶ュ簾鐗堟湰",
+                type: "string",
+                width: 130,
+                align: "left",
+                edit: { type: "string" },
+                required: true,
+            },
+            {
+                field: "scrapProLotNo",
+                title: "鎵规鍙�",
+                type: "decimal",
+                width: 130,
+                align: "left",
+                edit: { type: "string" },
+                required: true,
+            },
+            {
+                field: "scrapSETQty",
+                title: "鎶ュ簾SET鏁伴噺",
+                type: "string",
+                width: 120,
+                align: "left",
+                edit: { type: "number" },
+                required: true,
+            },
+            {
+                field: "scrapPcsQty",
+                title: "鎶ュ簾PCS鏁�",
+                type: "string",
+                width: 120,
+                align: "left",
+                edit: { type: "number" },
+                required: true,
+            },
+            {
+                field: "xSetQty",
+                title: "XSet鏁�",
+                type: "int",
+                width: 120,
+                hidden: true,
+                // edit: { type: "number",keep: false  },
+                align: "left",
+            },
+            {
+                field: "xPcsQty",
+                title: "XPcs鏁�",
+                type: "string",
+                width: 120,
+                hidden: true,
+                // edit: { type: "number",keep: false },
+                align: "left",
+            },
+            {
+                field: "overScrapSETQty",
+                title: "宸叉姤搴烻ET鏁�",
+                type: "int",
+                width: 120,
+                hidden: true,
+                // edit: { type: "number",keep: false  },
+                align: "left",
+            },
+            {
+                field: "overScrapPcsQty",
+                title: "宸叉姤搴烶CS鏁�",
+                type: "string",
+                width: 120,
+                hidden: true,
+                // edit: { type: "number",keep: false },
+                align: "left",
+            },
+            {
+                field: "scrapProDetailStatus",
+                title: "璁㈠崟鏄庣粏鐘舵��",
+                type: "string",
+                width: 130,
+                align: "left",
+                hidden: true,
+                // edit: { type: "number",},
+                bind: { key: "orderDetailStatusEnum", data: [] },
+            },
+            {
+                field: "remark",
+                title: "澶囨敞",
+                type: "string",
+                width: 120,
+                edit: { type: "text",},
+                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/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_BasicService/Service/AssignLocation/LocationInfoService_CSJ.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_BasicService/Service/AssignLocation/LocationInfoService_CSJ.cs"
index 0772349..700950d 100644
--- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_BasicService/Service/AssignLocation/LocationInfoService_CSJ.cs"
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_BasicService/Service/AssignLocation/LocationInfoService_CSJ.cs"
@@ -57,6 +57,8 @@
                 List<string> lockLocationCodes = locationCaches_CSJ.Select(x => x.LocationCode).ToList();
 
                 List<Dt_LocationInfo> locationInfos = Repository.QueryData(x => x.RoadwayNo == roadwayNo);
+                //鑾峰彇鎵�鏈夌殑璐т綅
+                List<Dt_LocationInfo> locationInfoDepth = Repository.QueryData(x => x.RoadwayNo == roadwayNo);
                 if (locationInfos == null || locationInfos.Count == 0)
                 {
                     throw new Exception($"鏈壘鍒拌宸烽亾鐨勮揣浣嶄俊鎭�,宸烽亾鍙�:{roadwayNo}");
@@ -101,6 +103,57 @@
                         Dt_LocationInfo? locationInfo = GetUsableLocation_CSJ(locationInfos, undefinedTypeEmptyLocation, palletType);
                         if (locationInfo != null)
                         {
+                            if (locationInfo.Depth < locationInfoDepth.Max(x => x.Depth))
+                            {
+                                Dt_LocationInfo? locationInfoExist = null;
+                                int Column = locationInfo.Column;
+                                if (locationInfo.Row < locationInfoDepth.Max(x => x.Depth))
+                                {
+                                    locationInfoExist = locationInfoDepth.FirstOrDefault(x => x.Row == (palletTypeInfo.LocaitonCount==2 ? (locationInfo.Row - 2): (locationInfo.Row - 1)) && x.Column == Column && x.Layer == locationInfo.Layer);
+                                }
+                                else
+                                {
+                                    locationInfoExist = locationInfoDepth.FirstOrDefault(x => x.Row == (palletTypeInfo.LocaitonCount == 2 ? (locationInfo.Row + 2) : (locationInfo.Row + 1)) && x.Column == Column && x.Layer == locationInfo.Layer);
+                                }
+                                //鑾峰彇娣变綅璐т綅绫诲瀷
+                                if (locationInfoExist == null)
+                                {
+                                    continue;
+                                }
+                                Dt_PalletTypeInfo palletTypeInfoDepth = _basicRepository.PalletTypeInfoRepository.QueryFirst(x => x.WarehouseId == locationInfoExist.WarehouseId && x.PalletType == locationInfoExist.LocationType);
+                                if (palletTypeInfoDepth != null && palletTypeInfoDepth.LocaitonCount != palletTypeInfo.LocaitonCount)
+                                {
+                                    continue;
+                                }
+
+                            }
+                            else
+                            {
+                                Dt_LocationInfo? locationInfoExist = null;
+                                int Column = locationInfo.Column;
+                                if (locationInfo.Row % locationInfoDepth.Max(x => x.Depth)==0)
+                                {
+                                    locationInfoExist = locationInfoDepth.FirstOrDefault(x => x.Row == (palletTypeInfo.LocaitonCount == 2 ? (locationInfo.Row - 2) : (locationInfo.Row - 1)) && x.Column == Column && x.Layer == locationInfo.Layer);
+                                }
+                                else
+                                {
+                                    locationInfoExist = locationInfoDepth.FirstOrDefault(x => x.Row == (palletTypeInfo.LocaitonCount == 2 ? (locationInfo.Row + 2) : (locationInfo.Row + 1)) && x.Column == Column && x.Layer == locationInfo.Layer);
+                                }
+                                //鑾峰彇娣变綅璐т綅绫诲瀷
+                                if (locationInfoExist == null)
+                                {
+                                    continue;
+                                }
+                                Dt_PalletTypeInfo palletTypeInfoDepth = _basicRepository.PalletTypeInfoRepository.QueryFirst(x => x.WarehouseId == locationInfoExist.WarehouseId && x.PalletType == locationInfoExist.LocationType);
+                                if (palletTypeInfoDepth != null && palletTypeInfoDepth.LocaitonCount != palletTypeInfo.LocaitonCount)
+                                {
+                                    continue;
+                                }
+                                if (locationInfoExist.LocationStatus != LocationStatusEnum.Free.ObjToInt() || locationInfoExist.EnableStatus != EnableStatusEnum.Normal.ObjToInt())
+                                {
+                                    continue;
+                                }
+                            }
                             locationCaches_CSJ.Add(new LocationCache { LocationCode = locationInfo.LocationCode, DateTime = DateTime.Now });
                             return locationInfo;
                         }
@@ -114,6 +167,56 @@
                         Dt_LocationInfo? locationInfo = GetUsableLocation_CSJ(locationInfos, definedTypeEmptyLocation, palletType);
                         if (locationInfo != null)
                         {
+                            if (locationInfo.Depth < locationInfoDepth.Max(x => x.Depth))
+                            {
+                                Dt_LocationInfo? locationInfoExist = null;
+                                int Column = locationInfo.Column;
+                                if (locationInfo.Row < locationInfoDepth.Max(x => x.Depth))
+                                {
+                                    locationInfoExist = locationInfoDepth.FirstOrDefault(x => x.Row == (palletTypeInfo.LocaitonCount == 2 ? (locationInfo.Row - 2) : (locationInfo.Row - 1)) && x.Column == Column && x.Layer == locationInfo.Layer);
+                                }
+                                else
+                                {
+                                    locationInfoExist = locationInfoDepth.FirstOrDefault(x => x.Row == (palletTypeInfo.LocaitonCount == 2 ? (locationInfo.Row + 2) : (locationInfo.Row + 1)) && x.Column == Column && x.Layer == locationInfo.Layer);
+                                }
+                                //鑾峰彇娣变綅璐т綅绫诲瀷
+                                if (locationInfoExist == null)
+                                {
+                                    continue;
+                                }
+                                Dt_PalletTypeInfo palletTypeInfoDepth = _basicRepository.PalletTypeInfoRepository.QueryFirst(x => x.WarehouseId == locationInfoExist.WarehouseId && x.PalletType == locationInfoExist.LocationType);
+                                if (palletTypeInfoDepth != null && palletTypeInfoDepth.LocaitonCount != palletTypeInfo.LocaitonCount)
+                                {
+                                    continue;
+                                }
+                            }
+                            else
+                            {
+                                Dt_LocationInfo? locationInfoExist = null;
+                                int Column = locationInfo.Column;
+                                if (locationInfo.Row % locationInfoDepth.Max(x => x.Depth) == 0)
+                                {
+                                    locationInfoExist = locationInfoDepth.FirstOrDefault(x => x.Row == (palletTypeInfo.LocaitonCount == 2 ? (locationInfo.Row - 2) : (locationInfo.Row - 1)) && x.Column == Column && x.Layer == locationInfo.Layer);
+                                }
+                                else
+                                {
+                                    locationInfoExist = locationInfoDepth.FirstOrDefault(x => x.Row == (palletTypeInfo.LocaitonCount == 2 ? (locationInfo.Row + 2) : (locationInfo.Row + 1)) && x.Column == Column && x.Layer == locationInfo.Layer);
+                                }
+                                //鑾峰彇娣变綅璐т綅绫诲瀷
+                                if (locationInfoExist == null)
+                                {
+                                    continue;
+                                }
+                                Dt_PalletTypeInfo palletTypeInfoDepth = _basicRepository.PalletTypeInfoRepository.QueryFirst(x => x.WarehouseId == locationInfoExist.WarehouseId && x.PalletType == locationInfoExist.LocationType);
+                                if (palletTypeInfoDepth != null && palletTypeInfoDepth.LocaitonCount != palletTypeInfo.LocaitonCount)
+                                {
+                                    continue;
+                                }
+                                if (locationInfoExist.LocationStatus != LocationStatusEnum.Free.ObjToInt() || locationInfoExist.EnableStatus != EnableStatusEnum.Normal.ObjToInt())
+                                {
+                                    continue;
+                                }
+                            }
                             locationCaches_CSJ.Add(new LocationCache { LocationCode = locationInfo.LocationCode, DateTime = DateTime.Now });
                             return locationInfo;
                         }
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_BasicService/Service/AssignLocation/LocationInfoService_GM.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_BasicService/Service/AssignLocation/LocationInfoService_GM.cs"
index 7145284..97f8d03 100644
--- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_BasicService/Service/AssignLocation/LocationInfoService_GM.cs"
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_BasicService/Service/AssignLocation/LocationInfoService_GM.cs"
@@ -43,8 +43,8 @@
                 List<string> lockLocationCodes = locationCaches_GM.Select(x => x.LocationCode).ToList();
 
                 List<Dt_LocationInfo> locationInfos = Repository.QueryData(x => x.RoadwayNo == roadwayNo);
-                //鑾峰彇鎵�鏈変簩娣变綅璐т綅鏁版嵁
-                List<Dt_LocationInfo> locationInfoDepth = Repository.QueryData(x => x.RoadwayNo == roadwayNo && x.Depth== locationInfos.Max(v=>v.Depth));
+                //鑾峰彇鎵�鏈夎揣浣嶆暟鎹�
+                List<Dt_LocationInfo> locationInfoDepth = Repository.QueryData(x => x.RoadwayNo == roadwayNo);
                 if (locationInfos == null || locationInfos.Count == 0)
                 {
                     throw new Exception($"鏈壘鍒拌宸烽亾鐨勮揣浣嶄俊鎭�,宸烽亾鍙�:{roadwayNo}");
@@ -93,7 +93,7 @@
                         Dt_LocationInfo? locationInfo = GetUsableLocation_GM(locationInfos, definedTypeEmptyLocation, palletType, palletTypeInfo);
                         if (locationInfo != null)
                         {
-                            if (locationInfo.Depth<locationInfoDepth.Max(x=>x.Depth) && palletTypeInfo.LocaitonCount<2)
+                            if (locationInfo.Depth<locationInfoDepth.Max(x=>x.Depth))
                             {
                                 Dt_LocationInfo? locationInfoExist = null;
                                 int Column = locationInfo.Column;
@@ -103,11 +103,11 @@
                                 }
                                 if (locationInfo.Row - locationInfo.Depth == locationInfo.Depth)
                                 {
-                                    locationInfoExist = locationInfoDepth.FirstOrDefault(x => x.Row == (locationInfo.Row-1) && x.Column== Column && x.Layer==locationInfo.Layer && x.LocationStatus==LocationStatusEnum.InStock.ObjToInt());
+                                    locationInfoExist = locationInfoDepth.FirstOrDefault(x => x.Row == (locationInfo.Row-1) && x.Column== Column && x.Layer==locationInfo.Layer);
                                 }
                                 else
                                 {
-                                    locationInfoExist = locationInfoDepth.FirstOrDefault(x => x.Row == (locationInfo.Row + 1) && x.Column == Column && x.Layer == locationInfo.Layer && x.LocationStatus == LocationStatusEnum.InStock.ObjToInt());
+                                    locationInfoExist = locationInfoDepth.FirstOrDefault(x => x.Row == (locationInfo.Row + 1) && x.Column == Column && x.Layer == locationInfo.Layer);
                                 }
                                 //鑾峰彇娣变綅璐т綅绫诲瀷
                                 if (locationInfoExist==null)
@@ -115,11 +115,38 @@
                                     continue;
                                 }
                                 Dt_PalletTypeInfo palletTypeInfoDepth = _basicRepository.PalletTypeInfoRepository.QueryFirst(x => x.WarehouseId == locationInfoExist.WarehouseId && x.PalletType == locationInfoExist.LocationType);
-                                if (palletTypeInfoDepth == null)
+                                if (palletTypeInfoDepth != null && palletTypeInfoDepth.LocaitonCount != palletTypeInfo.LocaitonCount)
                                 {
                                     continue;
                                 }
-                                if (palletTypeInfoDepth.LocaitonCount==2 && palletTypeInfo.LocaitonCount==1)
+                            }
+                            else
+                            {
+                                Dt_LocationInfo? locationInfoExist = null;
+                                int Column = locationInfo.Column;
+                                if (Column % 2 == 0)
+                                {
+                                    Column -= 1;
+                                }
+                                if (locationInfo.Row % 2 == 0)
+                                {
+                                    locationInfoExist = locationInfoDepth.FirstOrDefault(x => x.Row == (locationInfo.Row - 1) && x.Column == Column && x.Layer == locationInfo.Layer);
+                                }
+                                else
+                                {
+                                    locationInfoExist = locationInfoDepth.FirstOrDefault(x => x.Row == (locationInfo.Row + 1) && x.Column == Column && x.Layer == locationInfo.Layer);
+                                }
+                                //鑾峰彇娣变綅璐т綅绫诲瀷
+                                if (locationInfoExist == null)
+                                {
+                                    continue;
+                                }
+                                Dt_PalletTypeInfo palletTypeInfoDepth = _basicRepository.PalletTypeInfoRepository.QueryFirst(x => x.WarehouseId == locationInfoExist.WarehouseId && x.PalletType == locationInfoExist.LocationType);
+                                if (palletTypeInfoDepth != null && palletTypeInfoDepth.LocaitonCount != palletTypeInfo.LocaitonCount)
+                                {
+                                    continue;
+                                }
+                                if (locationInfoExist.LocationStatus!=LocationStatusEnum.Free.ObjToInt() || locationInfoExist.EnableStatus!= EnableStatusEnum.Normal.ObjToInt())
                                 {
                                     continue;
                                 }
@@ -144,7 +171,7 @@
                         Dt_LocationInfo? locationInfo = GetUsableLocation_GM(locationInfos, undefinedTypeEmptyLocation, palletType, palletTypeInfo);
                         if (locationInfo != null)
                         {
-                            if (locationInfo.Depth < locationInfoDepth.Max(x => x.Depth) && palletTypeInfo.LocaitonCount < 2)
+                            if (locationInfo.Depth < locationInfoDepth.Max(x => x.Depth))
                             {
                                 Dt_LocationInfo? locationInfoExist = null;
                                 int Column = locationInfo.Column;
@@ -154,11 +181,11 @@
                                 }
                                 if (locationInfo.Row - locationInfo.Depth == locationInfo.Depth)
                                 {
-                                    locationInfoExist = locationInfoDepth.FirstOrDefault(x => x.Row == (locationInfo.Row - 1) && x.Column == Column && x.Layer == locationInfo.Layer && x.LocationStatus == LocationStatusEnum.InStock.ObjToInt());
+                                    locationInfoExist = locationInfoDepth.FirstOrDefault(x => x.Row == (locationInfo.Row - 1) && x.Column == Column && x.Layer == locationInfo.Layer);
                                 }
                                 else
                                 {
-                                    locationInfoExist = locationInfoDepth.FirstOrDefault(x => x.Row == (locationInfo.Row + 1) && x.Column == Column && x.Layer == locationInfo.Layer && x.LocationStatus == LocationStatusEnum.InStock.ObjToInt());
+                                    locationInfoExist = locationInfoDepth.FirstOrDefault(x => x.Row == (locationInfo.Row + 1) && x.Column == Column && x.Layer == locationInfo.Layer);
                                 }
                                 //鑾峰彇娣变綅璐т綅绫诲瀷
                                 if (locationInfoExist == null)
@@ -166,11 +193,38 @@
                                     continue;
                                 }
                                 Dt_PalletTypeInfo palletTypeInfoDepth = _basicRepository.PalletTypeInfoRepository.QueryFirst(x => x.WarehouseId == locationInfoExist.WarehouseId && x.PalletType == locationInfoExist.LocationType);
-                                if (palletTypeInfoDepth == null)
+                                if (palletTypeInfoDepth != null && palletTypeInfoDepth.LocaitonCount != palletTypeInfo.LocaitonCount)
                                 {
                                     continue;
                                 }
-                                if (palletTypeInfoDepth.LocaitonCount == 2)
+                            }
+                            else
+                            {
+                                Dt_LocationInfo? locationInfoExist = null;
+                                int Column = locationInfo.Column;
+                                if (Column % 2 == 0)
+                                {
+                                    Column -= 1;
+                                }
+                                if (locationInfo.Row % 2 == 0)
+                                {
+                                    locationInfoExist = locationInfoDepth.FirstOrDefault(x => x.Row == (locationInfo.Row - 1) && x.Column == Column && x.Layer == locationInfo.Layer);
+                                }
+                                else
+                                {
+                                    locationInfoExist = locationInfoDepth.FirstOrDefault(x => x.Row == (locationInfo.Row + 1) && x.Column == Column && x.Layer == locationInfo.Layer);
+                                }
+                                //鑾峰彇娣变綅璐т綅绫诲瀷
+                                if (locationInfoExist == null)
+                                {
+                                    continue;
+                                }
+                                Dt_PalletTypeInfo palletTypeInfoDepth = _basicRepository.PalletTypeInfoRepository.QueryFirst(x => x.WarehouseId == locationInfoExist.WarehouseId && x.PalletType == locationInfoExist.LocationType);
+                                if (palletTypeInfoDepth != null && palletTypeInfoDepth.LocaitonCount != palletTypeInfo.LocaitonCount)
+                                {
+                                    continue;
+                                }
+                                if (locationInfoExist.LocationStatus != LocationStatusEnum.Free.ObjToInt() || locationInfoExist.EnableStatus != EnableStatusEnum.Normal.ObjToInt())
                                 {
                                     continue;
                                 }
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_BasicService/Service/AssignLocation/LocationInfoService_ZH.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_BasicService/Service/AssignLocation/LocationInfoService_ZH.cs"
index 6eb6459..2d3addd 100644
--- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_BasicService/Service/AssignLocation/LocationInfoService_ZH.cs"
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_BasicService/Service/AssignLocation/LocationInfoService_ZH.cs"
@@ -43,6 +43,8 @@
                 List<string> lockLocationCodes = locationCaches_ZH.Select(x => x.LocationCode).ToList();
 
                 List<Dt_LocationInfo> locationInfos = Repository.QueryData(x => x.RoadwayNo == roadwayNo);
+                //鑾峰彇鎵�鏈夎揣浣嶆暟鎹�
+                List<Dt_LocationInfo> locationInfoDepth = Repository.QueryData(x => x.RoadwayNo == roadwayNo);
                 if (locationInfos == null || locationInfos.Count == 0)
                 {
                     throw new Exception($"鏈壘鍒拌宸烽亾鐨勮揣浣嶄俊鎭�,宸烽亾鍙�:{roadwayNo}");
@@ -87,6 +89,56 @@
                         Dt_LocationInfo? locationInfo = GetUsableLocation_ZH(locationInfos, undefinedTypeEmptyLocation, palletType);
                         if (locationInfo != null)
                         {
+                            if (locationInfo.Depth < locationInfoDepth.Max(x => x.Depth))
+                            {
+                                Dt_LocationInfo? locationInfoExist = null;
+                                int Column = locationInfo.Column;
+                                if (locationInfo.Row - locationInfo.Depth == locationInfo.Depth)
+                                {
+                                    locationInfoExist = locationInfoDepth.FirstOrDefault(x => x.Row == (locationInfo.Row - 1) && x.Column == Column && x.Layer == locationInfo.Layer);
+                                }
+                                else
+                                {
+                                    locationInfoExist = locationInfoDepth.FirstOrDefault(x => x.Row == (locationInfo.Row + 1) && x.Column == Column && x.Layer == locationInfo.Layer);
+                                }
+                                //鑾峰彇娣变綅璐т綅绫诲瀷
+                                if (locationInfoExist == null)
+                                {
+                                    continue;
+                                }
+                                Dt_PalletTypeInfo palletTypeInfoDepth = _basicRepository.PalletTypeInfoRepository.QueryFirst(x => x.WarehouseId == locationInfoExist.WarehouseId && x.PalletType == locationInfoExist.LocationType);
+                                if (palletTypeInfoDepth != null && palletTypeInfoDepth.LocaitonCount != palletTypeInfo.LocaitonCount)
+                                {
+                                    continue;
+                                }
+                            }
+                            else
+                            {
+                                Dt_LocationInfo? locationInfoExist = null;
+                                int Column = locationInfo.Column;
+                                if (locationInfo.Row % 2 == 0)
+                                {
+                                    locationInfoExist = locationInfoDepth.FirstOrDefault(x => x.Row == (locationInfo.Row - 1) && x.Column == Column && x.Layer == locationInfo.Layer);
+                                }
+                                else
+                                {
+                                    locationInfoExist = locationInfoDepth.FirstOrDefault(x => x.Row == (locationInfo.Row + 1) && x.Column == Column && x.Layer == locationInfo.Layer);
+                                }
+                                //鑾峰彇娣变綅璐т綅绫诲瀷
+                                if (locationInfoExist == null)
+                                {
+                                    continue;
+                                }
+                                Dt_PalletTypeInfo palletTypeInfoDepth = _basicRepository.PalletTypeInfoRepository.QueryFirst(x => x.WarehouseId == locationInfoExist.WarehouseId && x.PalletType == locationInfoExist.LocationType);
+                                if (palletTypeInfoDepth != null && palletTypeInfoDepth.LocaitonCount != palletTypeInfo.LocaitonCount)
+                                {
+                                    continue;
+                                }
+                                if (locationInfoExist.LocationStatus != LocationStatusEnum.Free.ObjToInt() || locationInfoExist.EnableStatus != EnableStatusEnum.Normal.ObjToInt())
+                                {
+                                    continue;
+                                }
+                            }
                             locationCaches_ZH.Add(new LocationCache { LocationCode = locationInfo.LocationCode, DateTime = DateTime.Now });
                             return locationInfo;
                         }
@@ -100,6 +152,57 @@
                         Dt_LocationInfo? locationInfo = GetUsableLocation_ZH(locationInfos, definedTypeEmptyLocation, palletType);
                         if (locationInfo != null)
                         {
+                            if (locationInfo.Depth < locationInfoDepth.Max(x => x.Depth))
+                            {
+                                Dt_LocationInfo? locationInfoExist = null;
+                                int Column = locationInfo.Column;
+                                if (locationInfo.Row - locationInfo.Depth == locationInfo.Depth)
+                                {
+                                    locationInfoExist = locationInfoDepth.FirstOrDefault(x => x.Row == (locationInfo.Row - 1) && x.Column == Column && x.Layer == locationInfo.Layer);
+                                }
+                                else
+                                {
+                                    locationInfoExist = locationInfoDepth.FirstOrDefault(x => x.Row == (locationInfo.Row + 1) && x.Column == Column && x.Layer == locationInfo.Layer);
+                                }
+                                //鑾峰彇娣变綅璐т綅绫诲瀷
+                                if (locationInfoExist == null)
+                                {
+                                    continue;
+                                }
+                                Dt_PalletTypeInfo palletTypeInfoDepth = _basicRepository.PalletTypeInfoRepository.QueryFirst(x => x.WarehouseId == locationInfoExist.WarehouseId && x.PalletType == locationInfoExist.LocationType);
+                                if (palletTypeInfoDepth != null && palletTypeInfoDepth.LocaitonCount != palletTypeInfo.LocaitonCount)
+                                {
+                                    continue;
+                                }
+
+                            }
+                            else
+                            {
+                                Dt_LocationInfo? locationInfoExist = null;
+                                int Column = locationInfo.Column;
+                                if (locationInfo.Row % 2 == 0)
+                                {
+                                    locationInfoExist = locationInfoDepth.FirstOrDefault(x => x.Row == (locationInfo.Row - 1) && x.Column == Column && x.Layer == locationInfo.Layer);
+                                }
+                                else
+                                {
+                                    locationInfoExist = locationInfoDepth.FirstOrDefault(x => x.Row == (locationInfo.Row + 1) && x.Column == Column && x.Layer == locationInfo.Layer);
+                                }
+                                //鑾峰彇娣变綅璐т綅绫诲瀷
+                                if (locationInfoExist == null)
+                                {
+                                    continue;
+                                }
+                                Dt_PalletTypeInfo palletTypeInfoDepth = _basicRepository.PalletTypeInfoRepository.QueryFirst(x => x.WarehouseId == locationInfoExist.WarehouseId && x.PalletType == locationInfoExist.LocationType);
+                                if (palletTypeInfoDepth != null && palletTypeInfoDepth.LocaitonCount != palletTypeInfo.LocaitonCount)
+                                {
+                                    continue;
+                                }
+                                if (locationInfoExist.LocationStatus != LocationStatusEnum.Free.ObjToInt() || locationInfoExist.EnableStatus != EnableStatusEnum.Normal.ObjToInt())
+                                {
+                                    continue;
+                                }
+                            }
                             locationCaches_ZH.Add(new LocationCache { LocationCode = locationInfo.LocationCode, DateTime = DateTime.Now });
                             return locationInfo;
                         }
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_BasicService/Service/LocationInfoService_Common.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_BasicService/Service/LocationInfoService_Common.cs"
index 6ac4be6..c4fcbbc 100644
--- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_BasicService/Service/LocationInfoService_Common.cs"
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_BasicService/Service/LocationInfoService_Common.cs"
@@ -334,7 +334,14 @@
                     Dt_LocationInfo? nearLocation;
                     if (palletTypeInfo.IsOdd)
                     {
-                        nearLocation = locationInfos.FirstOrDefault(x => x.Row == location.Row && x.Layer == location.Layer && x.Depth == location.Depth && x.Column == location.Column + 1);
+                        if (warehouse.WarehouseCode==WarehouseEnum.HA154.ToString())
+                        {
+                            nearLocation = locationInfos.FirstOrDefault(x => x.Row == location.Row && x.Layer == location.Layer && x.Depth == location.Depth && x.Column == location.Column - 1);
+                        }
+                        else
+                        {
+                            nearLocation = locationInfos.FirstOrDefault(x => x.Row == location.Row && x.Layer == location.Layer && x.Depth == location.Depth && x.Column == location.Column + 1);
+                        }
                     }
                     else
                     {
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_CheckService/CheckOrderResultService.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_CheckService/CheckOrderResultService.cs"
index c67a1cc..1ecc986 100644
--- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_CheckService/CheckOrderResultService.cs"
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_CheckService/CheckOrderResultService.cs"
@@ -4,14 +4,18 @@
 using System.Text;
 using System.Threading.Tasks;
 using WIDESEA_Common.OrderEnum;
+using WIDESEA_Common.StockEnum;
 using WIDESEA_Core;
 using WIDESEA_Core.BaseRepository;
 using WIDESEA_Core.BaseServices;
+using WIDESEA_Core.Enums;
 using WIDESEA_Core.Helper;
 using WIDESEA_IApprovalRepository;
 using WIDESEA_ICheckRepository;
 using WIDESEA_ICheckService;
 using WIDESEA_IInboundRepository;
+using WIDESEA_IOutboundRepository;
+using WIDESEA_IStockRepository;
 using WIDESEA_Model.Models;
 
 namespace WIDESEA_CheckService
@@ -24,7 +28,9 @@
         private readonly ICheckOrderService _checkOrderService;
         private readonly IPurchaseOrderRepository _purchaseOrderRepository;
         private readonly IPurchaseOrderDetailRepository _purchaseOrderDetailRepository;
-        public CheckOrderResultService(ICheckOrderResultRepository BaseDal, IUnitOfWorkManage unitOfWorkManage, ICheckOrderRepository checkOrderRepository, IReceiveOrderRepository receiveOrderRepository, ICheckOrderService checkOrderService, IPurchaseOrderRepository purchaseOrderRepository, IPurchaseOrderDetailRepository purchaseOrderDetailRepository) : base(BaseDal)
+        private readonly IOutboundRepository _outboundRepository;
+        private readonly IStockRepository _stockRepository;
+        public CheckOrderResultService(ICheckOrderResultRepository BaseDal, IUnitOfWorkManage unitOfWorkManage, ICheckOrderRepository checkOrderRepository, IReceiveOrderRepository receiveOrderRepository, ICheckOrderService checkOrderService, IPurchaseOrderRepository purchaseOrderRepository, IPurchaseOrderDetailRepository purchaseOrderDetailRepository, IOutboundRepository outboundRepository, IStockRepository stockRepository) : base(BaseDal)
         {
             _checkOrderRepository = checkOrderRepository;
             _unitOfWorkManage = unitOfWorkManage;
@@ -32,6 +38,8 @@
             _checkOrderService = checkOrderService;
             _purchaseOrderRepository = purchaseOrderRepository;
             _purchaseOrderDetailRepository = purchaseOrderDetailRepository;
+            _outboundRepository = outboundRepository;
+            _stockRepository = stockRepository;
         }
 
         /// <summary>
@@ -159,6 +167,164 @@
             return content;
         }
         /// <summary>
+        /// 鎻愪氦閫佹纭缁撴灉
+        /// </summary>
+        /// <param name="checkOrderId"></param>
+        /// <param name="checkResult"></param>
+        /// <param name="IsAccept"></param>
+        /// <returns></returns>
+        public WebResponseContent CommitInspectResult(int checkOrderId, Dt_CheckOrderResult checkResult, int IsAccept = 0)
+        {
+            WebResponseContent content = new WebResponseContent();
+            try
+            {
+                Dt_CheckOrder checkOrder = _checkOrderRepository.QueryFirst(x => x.CheckOrderId == checkOrderId);
+                //鑾峰彇璐ㄦ鍗曞搴旂殑鏀惰揣鍗�
+                if (checkOrder == null)
+                {
+                    return content.Error($"鏈壘鍒拌璐ㄦ鍗�");
+                }
+                Dt_OutboundOrder outboundOrder = _outboundRepository.OutboundOrderRepository.Db.Queryable<Dt_OutboundOrder>().Where(x => x.OrderNo == checkOrder.ReceiveOrderNo).Includes(x => x.Details).First();
+                if (outboundOrder.OrderStatus != OutOrderStatusEnum.鍑哄簱瀹屾垚.ObjToInt())
+                {
+                    return content.Error($"{outboundOrder.OrderNo}閫佹鍗曞嚭搴撴湭瀹屾垚鏃犳硶璐ㄦ");
+                }
+                if (checkOrder.CheckOrderStatus == CheckOrderStatusEnum.Checked.ObjToInt())
+                {
+                    return content.Error($"璇ュ崟鎹凡缁忔楠屽畬鎴�");
+                }
+                Dt_CheckOrderResult? checkOrderResult = null;
+                //鑾峰彇搴撳瓨
+                Dt_OutStockLockInfo outStockLockInfo = _outboundRepository.OutboundStockLockInfoRepository.QueryFirst(x => x.Id == checkOrder.ReceiveDetailRowNo) ?? throw new Exception("鏈壘鍒伴�佹鍗曡鎯�");
+                Dt_StockInfo? stockInfo = _stockRepository.StockInfoRepository.Db.Queryable<Dt_StockInfo>()
+                    .Where(x => x.PalletCode == outStockLockInfo.PalletCode && x.StockStatus == StockStatusEmun.閫佹瀹屾垚.ObjToInt()).Includes(x => x.Details).First() ?? throw new Exception("鏈壘鍒伴�佹鍗曞搴斿簱瀛樻暟鎹�");
+                List<Dt_StockInfoDetail> stockInfoDetails = new List<Dt_StockInfoDetail>();
+                List<Dt_StockInfoDetail> DelStockDetails =new List<Dt_StockInfoDetail>();
+                if (checkResult.CheckOrderId != 0)
+                {
+                    if (checkResult.Quantity < 0 || checkResult.Quantity > checkOrder.ReceivedQuantity)
+                    {
+                        return content.Error($"鏁伴噺瓒呭嚭");
+                    }
+                    if (checkResult.Result == InspectResultEnum.Return.ToString())//閫�璐�
+                    {
+                        checkOrder.DefectedNote = checkResult.Note;
+                        checkOrder.ReturnQuantity += checkResult.Quantity;
+                    }
+                    else if(checkResult.Result == InspectResultEnum.Defect.ToString())
+                    {
+                        checkOrder.DefectedNote = checkResult.Note;
+                        checkOrder.DefectedQuantity += checkResult.Quantity;
+                    }
+                    else if (checkResult.Result == InspectResultEnum.Scrapped.ToString())
+                    {
+                        checkOrder.DefectedNote = checkResult.Note;
+                        checkOrder.ScrappedQuantity += checkResult.Quantity;
+                    }
+                    else
+                    {
+                        return content.Error($"鏈壘鍒扮己闄风被鍨�");
+                    }
+                    checkOrderResult = new Dt_CheckOrderResult()
+                    {
+                        Quantity = checkResult.Quantity,
+                        CheckOrderId = checkOrderId,
+                        DefectCode = checkResult.DefectCode,
+                        Result = checkResult.Result,
+                        Note = checkResult.Note,
+                        SampleCount = checkResult.SampleCount,
+                    };
+                    if (Math.Round(checkResult.Quantity,2) == Math.Round(stockInfoDetails.Sum(x=>x.StockQuantity),2))
+                    {
+                        DelStockDetails = stockInfo.Details;
+                    }
+                    else
+                    {
+                        foreach (var item in stockInfo.Details)
+                        {
+                            if (checkResult.Quantity == 0)
+                            {
+                                break;
+                            }
+                            else if(checkResult.Quantity< item.StockQuantity)
+                            {
+                                checkResult.Quantity = 0;
+                                item.StockQuantity -= checkResult.Quantity;
+                                stockInfoDetails.Add(item);
+                            }
+                            else if (checkResult.Quantity >= item.StockQuantity)
+                            {
+                                checkResult.Quantity = (float)Math.Round((checkResult.Quantity-item.StockQuantity), 2);
+                                DelStockDetails.Add(item);
+                            }
+                        }
+                    }
+                    
+                }
+                if (IsAccept == InspectAcceptEnum.Accept.ObjToInt())
+                {
+                    checkOrder.Result = InspectAcceptEnum.Accept.ToString();
+                }
+                else if (IsAccept == InspectAcceptEnum.UnAccept.ObjToInt())
+                {
+                    checkOrder.Result = InspectAcceptEnum.UnAccept.ToString();
+                }
+                else if (IsAccept == InspectAcceptEnum.DefectAccept.ObjToInt())
+                {
+                    checkOrder.Result = InspectAcceptEnum.DefectAccept.ToString();
+                }
+                else
+                {
+                    return content.Error("鏈壘鍒版楠岀被鍨�");
+                }
+                checkOrder.CheckOrderStatus = CheckOrderStatusEnum.Checked.ObjToInt();
+                if (checkOrderResult != null)
+                {
+                    checkOrder.QualifiedQuantity = checkOrder.ReceivedQuantity - checkOrderResult.Quantity;
+                }
+                else
+                {
+                    checkOrder.QualifiedQuantity = checkOrder.ReceivedQuantity;
+                }
+                checkOrder.CheckUserName = App.User.UserName;
+                _unitOfWorkManage.BeginTran();
+
+                if (checkOrderResult != null)
+                {
+                    BaseDal.AddData(checkOrderResult);
+                }
+                //娓呴櫎搴撳瓨鏁伴噺
+                if (stockInfoDetails.Count>0)
+                {
+                    _stockRepository.StockInfoDetailRepository.UpdateData(stockInfoDetails);
+                }
+                if (DelStockDetails.Count>0)
+                {
+                    _stockRepository.StockInfoDetailRepository.DeleteAndMoveIntoHty(DelStockDetails, App.User.UserId == 0 ? OperateTypeEnum.鑷姩瀹屾垚 : OperateTypeEnum.浜哄伐瀹屾垚);
+                }
+                if (DelStockDetails.Count==stockInfo.Details.Count)
+                {
+                    _stockRepository.StockInfoRepository.DeleteAndMoveIntoHty(stockInfo, App.User.UserId == 0 ? OperateTypeEnum.鑷姩瀹屾垚 : OperateTypeEnum.浜哄伐瀹屾垚);
+                }
+                //ERP涓婃姤
+                WebResponseContent responseContent = _checkOrderService.FeedbackInspectResult(checkOrder, checkOrderResult != null ? new List<Dt_CheckOrderResult> { checkOrderResult } : new List<Dt_CheckOrderResult>());
+                if (!responseContent.Status)
+                {
+                    throw new Exception(responseContent.Message);
+                }
+                checkOrder.UploadStatus = CheckUploadEnum.UploadOk.ObjToInt();
+                _checkOrderRepository.UpdateData(checkOrder);
+                _unitOfWorkManage.CommitTran();
+                content.OK();
+            }
+            catch (Exception ex)
+            {
+                _unitOfWorkManage.RollbackTran();
+                return content.Error($"{ex.Message}");
+            }
+            return content;
+        }
+        /// <summary>
         /// 鑾峰彇妫�楠屼俊鎭�
         /// </summary>
         public WebResponseContent GetCheckResultInfo(int checkId)
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_CheckService/CheckOrderService.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_CheckService/CheckOrderService.cs"
index 5c447a6..83c4c81 100644
--- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_CheckService/CheckOrderService.cs"
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_CheckService/CheckOrderService.cs"
@@ -189,6 +189,64 @@
             }
         }
         /// <summary>
+        /// 閫佹楠屽畬鎺ㄩ�丒RP
+        /// </summary>
+        /// <param name="checkOrder"></param>
+        /// <param name="checkOrderResults"></param>
+        /// <returns></returns>
+        public WebResponseContent FeedbackInspectResult(Dt_CheckOrder checkOrder, List<Dt_CheckOrderResult> checkOrderResults)
+        {
+            try
+            {
+                //澧炲姞涓笂浼犵姸鎬� 璐ㄦ鍗曠粨鏋�
+                List<ERPCheckResult> checkResults = new List<ERPCheckResult>();
+                foreach (var item in checkOrderResults)
+                {
+                    ERPCheckResult checkResult = new ERPCheckResult()
+                    {
+                        DefectCode = item.DefectCode,
+                        Note = item.Note,
+                        Quantity = item.Quantity.ToString(),
+                        Result = item.Result
+                    };
+                    checkResults.Add(checkResult);
+                }
+                ERPInspectModel model = new ERPInspectModel()
+                {
+                    Code = checkOrder.CheckOrderNo,
+                    CompanyId = "HATC",
+                    Result = checkOrder.Result,
+                    CreatorCode = checkOrder.CheckUserName,
+                    DefectedNote = checkOrder.DefectedNote,
+                    MaterialsCode = checkOrder.MaterielCode,
+                    PlantsId = "HA02",
+                    QtyDefected = checkOrder.DefectedQuantity.GetValueOrDefault().ToString(),
+                    QtyInspected = checkOrder.ReceivedQuantity.ToString(),
+                    QtyQualified = checkOrder.QualifiedQuantity.GetValueOrDefault().ToString(),
+                    QtyReturn = checkOrder.ReturnQuantity.GetValueOrDefault().ToString(),
+                    QtyScrapped = checkOrder.ScrappedQuantity.GetValueOrDefault().ToString(),
+                    Recheckcode = checkOrder.ReceiveOrderNo,
+                    ReceiveDate = checkOrder.CreateDate.ToString("yyyy-MM-dd HH:mm:ss"),
+                    TestDate = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"),
+                    UniqueTag = checkOrder.CheckOrderId.ToString(),
+                    Way = 1,
+                    Details = checkResults
+                };
+
+                string response = _invokeERPService.InvokeInspectApi(model);
+                ErpRequestContent requestContent = response.DeserializeObject<ErpRequestContent>();
+                if (requestContent.res != 1)
+                {
+                    return WebResponseContent.Instance.Error(requestContent.Data);
+                }
+                return WebResponseContent.Instance.OK();
+            }
+            catch (Exception ex)
+            {
+                return WebResponseContent.Instance.Error(ex.Message);
+            }
+        }
+        /// <summary>
         /// 璐ㄦ瀹屼笂鎶ヨ嚦ERP
         /// </summary>
         /// <param name="id"></param>
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_CheckService/WIDESEA_CheckService.csproj" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_CheckService/WIDESEA_CheckService.csproj"
index f958b64..5e85876 100644
--- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_CheckService/WIDESEA_CheckService.csproj"
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_CheckService/WIDESEA_CheckService.csproj"
@@ -11,6 +11,7 @@
     <ProjectReference Include="..\WIDESEA_IApprovalRepository\WIDESEA_IApprovalRepository.csproj" />
     <ProjectReference Include="..\WIDESEA_ICheckService\WIDESEA_ICheckService.csproj" />
     <ProjectReference Include="..\WIDESEA_IInboundRepository\WIDESEA_IInboundRepository.csproj" />
+    <ProjectReference Include="..\WIDESEA_IOutboundRepository\WIDESEA_IOutboundRepository.csproj" />
     <ProjectReference Include="..\WIDESEA_ISystemRepository\WIDESEA_ISystemRepository.csproj" />
   </ItemGroup>
 
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_Common/CommonEnum/CheckTypeEnum.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_Common/CommonEnum/CheckTypeEnum.cs"
new file mode 100644
index 0000000..b128798
--- /dev/null
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_Common/CommonEnum/CheckTypeEnum.cs"
@@ -0,0 +1,24 @@
+锘縰sing System;
+using System.Collections.Generic;
+using System.ComponentModel;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace WIDESEA_Common.CommonEnum
+{
+    public enum CheckTypeEnum
+    {
+        /// <summary>
+        /// 鏉ユ枡妫�楠屽崟
+        /// </summary>
+        [Description("鏉ユ枡妫�楠屽崟")]
+        ReceiveCheck = 0,
+
+        /// <summary>
+        /// 閫佹妫�楠屽崟
+        /// </summary>
+        [Description("閫佹妫�楠屽崟")]
+        InspectCheck = 1,
+    }
+}
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_Common/OrderEnum/CheckOrderEnum.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_Common/OrderEnum/CheckOrderEnum.cs"
index 2ea68b0..440cda1 100644
--- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_Common/OrderEnum/CheckOrderEnum.cs"
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_Common/OrderEnum/CheckOrderEnum.cs"
@@ -40,6 +40,33 @@
         [Description("涓嶆帴鍙�")]
         UnAccept=2,
     }
+    /// <summary>
+    /// 
+    /// </summary>
+    public enum InspectAcceptEnum
+    {
+        /// <summary>
+        /// 寰呮纭
+        /// </summary>
+        [Description("寰呮纭")]
+        NotCheckAccept = 0,
+        /// <summary>
+        /// 鎺ュ彈
+        /// </summary>
+        [Description("鎺ュ彈")]
+        Accept = 1,
+
+        /// <summary>
+        /// 涓嶆帴鍙�
+        /// </summary>
+        [Description("涓嶆帴鍙�")]
+        UnAccept = 2,
+        /// <summary>
+        /// 鐗归噰鎺ュ彈
+        /// </summary>
+        [Description("鐗归噰鎺ュ彈")]
+        DefectAccept = 3
+    }
     public enum CheckResultEnum
     {
         /// <summary>
@@ -60,6 +87,26 @@
         //[Description("鎶ュ簾")]
         //Scrapped
     }
+    public enum InspectResultEnum
+    {
+        /// <summary>
+        /// 閫�璐�
+        /// </summary>
+        [Description("閫�璐�")]
+        Return,
+
+        /// <summary>
+        /// 鐗归噰
+        /// </summary>
+        [Description("鐗归噰")]
+        Defect,
+
+        /// <summary>
+        /// 鎶ュ簾
+        /// </summary>
+        [Description("鎶ュ簾")]
+        Scrapped
+    }
     /// <summary>
     /// 妫�楠屼笂浼犵姸鎬�
     /// </summary>
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_Common/OrderEnum/InboundOrderMenu.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_Common/OrderEnum/InboundOrderMenu.cs"
index a3360be..20c0435 100644
--- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_Common/OrderEnum/InboundOrderMenu.cs"
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_Common/OrderEnum/InboundOrderMenu.cs"
@@ -93,7 +93,12 @@
         /// 瀹緵鍥炴敹
         /// </summary>
         [Description("瀹緵鍥炴敹")]
-        CustomerRecovery=135
+        CustomerRecovery=135,
+        /// <summary>
+        /// 閫佹鍏ュ簱鍗�
+        /// </summary>
+        [Description("閫佹鍏ュ簱鍗�")]
+        Inspect = 140,
     }
     /// <summary>
     /// 鎴愬搧鍏ュ簱鍗曟嵁绫诲瀷
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_Common/OrderEnum/ProScrapSheetStatusEnum.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_Common/OrderEnum/ProScrapSheetStatusEnum.cs"
new file mode 100644
index 0000000..c9a17e4
--- /dev/null
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_Common/OrderEnum/ProScrapSheetStatusEnum.cs"
@@ -0,0 +1,34 @@
+锘縰sing System;
+using System.Collections.Generic;
+using System.ComponentModel;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace WIDESEA_Common.OrderEnum
+{
+    public enum ProScrapSheetStatusEnum
+    {
+        /// <summary>
+        /// 寰呮牳鍑�
+        /// </summary>
+        [Description("寰呮牳鍑�")]
+        TOChecked,
+        /// <summary>
+        /// 宸叉牳鍑�
+        /// </summary>
+        [Description("宸叉牳鍑�")]
+        Valid
+        ///// <summary>
+        ///// 鐗归噰
+        ///// </summary>
+        //[Description("鐗归噰")]
+        //Defect,
+
+        ///// <summary>
+        ///// 鎶ュ簾
+        ///// </summary>
+        //[Description("鎶ュ簾")]
+        //Scrapped
+    }
+}
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_Common/StockEnum/StockStatusEmun.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_Common/StockEnum/StockStatusEmun.cs"
index 7cd4054..8446bf9 100644
--- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_Common/StockEnum/StockStatusEmun.cs"
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_Common/StockEnum/StockStatusEmun.cs"
@@ -59,6 +59,9 @@
         [Description("骞冲簱寰呭彂璐�")]
         骞冲簱寰呭彂璐� = 16,
 
+        [Description("閫佹瀹屾垚")]
+        閫佹瀹屾垚 = 18,
+
         [Description("閫�搴�")]
         MES閫�搴� = 21,
 
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_Core/CodeConfigEnum/RuleCodeEnum.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_Core/CodeConfigEnum/RuleCodeEnum.cs"
index 1af5034..e883580 100644
--- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_Core/CodeConfigEnum/RuleCodeEnum.cs"
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_Core/CodeConfigEnum/RuleCodeEnum.cs"
@@ -64,6 +64,11 @@
         /// 鎴愬搧鍑哄簱鍗曞彿缂栫爜瑙勫垯
         /// </summary>
         [Description("鎴愬搧鍑哄簱鍗曞彿缂栫爜瑙勫垯")]
-        ProOutCOdeRule
+        ProOutCOdeRule,
+        /// <summary>
+        /// 鎴愬搧鎶ュ簾鍗曞彿缂栫爜瑙勫垯
+        /// </summary>
+        [Description("鎴愬搧鎶ュ簾鍗曞彿缂栫爜瑙勫垯")]
+        ProScrapSheetRule
     }
 }
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_External/ERPService/InvokeERPService.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_External/ERPService/InvokeERPService.cs"
index f279c45..5ad1885 100644
--- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_External/ERPService/InvokeERPService.cs"
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_External/ERPService/InvokeERPService.cs"
@@ -72,6 +72,25 @@
         }
 
         /// <summary>
+        /// ERP鐗╂枡閫佹鎺ュ彛璋冪敤
+        /// </summary>
+        public string InvokeInspectApi(ERPInspectModel eRPInspectModel)
+        {
+            Dt_ApiInfo apiInfo = _apiInfoRepository.QueryFirst(x => x.ApiCode == APIEnum.InvokeErpApi.ToString());
+            ERPBaseModel<ERPInspectModel> model = new ERPBaseModel<ERPInspectModel>()
+            {
+                Data = eRPInspectModel,
+                Desc = "鐗╂枡鍑轰粨妫�楠屽崟",
+                Type = "toTCWMSOUTTest",
+                SecurityCode = "TeChuang"
+            };
+            string request = JsonConvert.SerializeObject(model, settings);
+
+            string response = HttpHelper.Post(apiInfo.ApiAddress, request);
+            return response;
+        }
+
+        /// <summary>
         /// ERP鐗╂枡鍏ュ簱鍗曟帴鍙h皟鐢�
         /// </summary>
         /// <param name="inboundModel"></param>
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_External/IERPService/IInvokeERPService.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_External/IERPService/IInvokeERPService.cs"
index d2c6d98..0b89e59 100644
--- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_External/IERPService/IInvokeERPService.cs"
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_External/IERPService/IInvokeERPService.cs"
@@ -26,6 +26,10 @@
         /// <param name="checkModel"></param>
         /// <returns></returns>
         string InvokeCheckOrderApi(ERPCheckModel checkModel);
+        /// <summary>
+        /// ERP鐗╂枡閫佹鎺ュ彛璋冪敤
+        /// </summary>
+        string InvokeInspectApi(ERPInspectModel eRPInspectModel);
 
         /// <summary>
         /// ERP鐗╂枡鍏ュ簱鍗曟帴鍙h皟鐢�
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_External/Model/ERPInspectModel.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_External/Model/ERPInspectModel.cs"
new file mode 100644
index 0000000..240301b
--- /dev/null
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_External/Model/ERPInspectModel.cs"
@@ -0,0 +1,104 @@
+锘縰sing System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace WIDESEA_External.Model
+{
+    /// <summary>
+    /// 璐ㄦ鍗曞洖浼燛RP
+    /// </summary>
+    public class ERPInspectModel
+    {
+        /// <summary>
+        /// 鎿嶄綔绫诲瀷
+        /// </summary>
+        public int Way { get; set; }
+
+        /// <summary>
+        /// 涓婚敭鍊�
+        /// </summary>
+        public string UniqueTag { get; set; }
+
+        /// <summary>
+        /// 妫�楠屽崟鍙�
+        /// </summary>
+        public string Code { get; set; }
+
+        /// <summary>
+        /// 鍏徃浠e彿
+        /// </summary>
+        public string CompanyId { get; set; } = "HATC";
+
+        /// <summary>
+        /// 宸ュ巶浠e彿
+        /// </summary>
+        public string PlantsId { get; set; } = "HA02";
+
+        /// <summary>
+        /// 閫佹鍗曞彿
+        /// </summary>
+        public string Recheckcode { get; set; }
+        /// <summary>
+        /// 鐗╂枡浠g爜
+        /// </summary>
+        public string MaterialsCode { get; set; }
+        /// <summary>
+        /// 鏀惰揣鏃ユ湡
+        /// </summary>
+        public string ReceiveDate { get; set; }
+
+        /// <summary>
+        /// 澶囨敞
+        /// </summary>
+        public string Note { get; set; }
+
+        /// <summary>
+        /// 鍚堟牸鏁伴噺
+        /// </summary>
+        public string QtyQualified { get; set; }
+
+        /// <summary>
+        /// 鐗归噰鏁伴噺
+        /// </summary>
+        public string QtyDefected { get; set; }
+
+        /// <summary>
+        /// 閫�璐ф暟閲�
+        /// </summary>
+        public string QtyReturn { get; set; }
+
+        /// <summary>
+        /// 鎶ュ簾鏁伴噺
+        /// </summary>
+        public string QtyScrapped { get; set; }
+
+        /// <summary>
+        /// 妫�楠屾�绘暟锛堥�佹鏁伴噺锛�
+        /// </summary>
+        public string QtyInspected { get; set; }
+
+        /// <summary>
+        /// 妫�楠屽垽鏂粨鏋�
+        /// </summary>
+        public string Result { get; set; }
+
+        /// <summary>
+        /// 鐗归噰璇存槑
+        /// </summary>
+        public string DefectedNote { get; set; }
+
+        /// <summary>
+        /// 鍒涘缓浜轰唬鍙�
+        /// </summary>
+        public string CreatorCode { get; set; }
+
+        /// <summary>
+        /// 妫�楠屾棩鏈�
+        /// </summary>
+        public string TestDate { get; set; }
+
+        public List<ERPCheckResult> Details { get; set; }
+    }
+}
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_ICheckService/ICheckOrderResultService.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_ICheckService/ICheckOrderResultService.cs"
index 869fd31..ab7efd9 100644
--- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_ICheckService/ICheckOrderResultService.cs"
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_ICheckService/ICheckOrderResultService.cs"
@@ -19,6 +19,7 @@
         /// <param name="IsAccept">鏄惁鎺ュ彈</param>
         /// <returns></returns>
         WebResponseContent CommitCheckResult(int checkOrderId, Dt_CheckOrderResult checkResult, int IsAccept = 0);
+        WebResponseContent CommitInspectResult(int checkOrderId, Dt_CheckOrderResult checkResult, int IsAccept = 0);
         /// <summary>
         /// 鑾峰彇妫�楠屼俊鎭�
         /// </summary>
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_ICheckService/ICheckOrderService.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_ICheckService/ICheckOrderService.cs"
index c65c105..92423c5 100644
--- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_ICheckService/ICheckOrderService.cs"
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_ICheckService/ICheckOrderService.cs"
@@ -25,5 +25,6 @@
         /// <returns></returns>
         WebResponseContent FeedbackCheckResult(int id);
         WebResponseContent FeedbackCheckResult(Dt_CheckOrder checkOrder, List<Dt_CheckOrderResult> checkOrderResults);
+        WebResponseContent FeedbackInspectResult(Dt_CheckOrder checkOrder, List<Dt_CheckOrderResult> checkOrderResults);
     }
 }
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_IOutboundRepository/IErpProScrapSheetDetailRepository.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_IOutboundRepository/IErpProScrapSheetDetailRepository.cs"
new file mode 100644
index 0000000..25d8fbf
--- /dev/null
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_IOutboundRepository/IErpProScrapSheetDetailRepository.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 IErpProScrapSheetDetailRepository : IRepository<Dt_ErpProScrapSheetDetail>
+    {
+    }
+}
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_IOutboundRepository/IErpProScrapSheetRepository.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_IOutboundRepository/IErpProScrapSheetRepository.cs"
new file mode 100644
index 0000000..b3ef60d
--- /dev/null
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_IOutboundRepository/IErpProScrapSheetRepository.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 IErpProScrapSheetRepository : IRepository<Dt_ErpProScrapSheet>
+    {
+    }
+}
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_IOutboundService/IErpProScrapSheetDetailService.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_IOutboundService/IErpProScrapSheetDetailService.cs"
new file mode 100644
index 0000000..74d29cb
--- /dev/null
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_IOutboundService/IErpProScrapSheetDetailService.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 IErpProScrapSheetDetailService : IService<Dt_ErpProScrapSheetDetail>
+    {
+        IErpProScrapSheetDetailRepository Repository { get; }
+    }
+}
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_IOutboundService/IErpProScrapSheetService.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_IOutboundService/IErpProScrapSheetService.cs"
new file mode 100644
index 0000000..112a79f
--- /dev/null
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_IOutboundService/IErpProScrapSheetService.cs"
@@ -0,0 +1,18 @@
+锘縰sing System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using WIDESEA_Common.LocationEnum;
+using WIDESEA_Core.BaseServices;
+using WIDESEA_Core;
+using WIDESEA_IOutboundRepository;
+using WIDESEA_Model.Models;
+
+namespace WIDESEA_IOutboundService
+{
+    public interface IErpProScrapSheetService : IService<Dt_ErpProScrapSheet>
+    {
+        IErpProScrapSheetRepository Repository { get; }
+    }
+}
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_IOutboundService/IProOutOrderService.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_IOutboundService/IProOutOrderService.cs"
index a4e0a9c..b821f68 100644
--- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_IOutboundService/IProOutOrderService.cs"
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_IOutboundService/IProOutOrderService.cs"
@@ -44,7 +44,7 @@
         /// <summary>
         /// 鏌ヨERP璁㈠崟鎵i櫎搴撳瓨鏁伴噺
         /// </summary>
-        Task <WebResponseContent> OutProErpSync(string outProOrderNo);
+        WebResponseContent OutProErpSync(string outProOrderNo);
         /// <summary>
         /// 鍑哄簱鍗曟壂鐮佸悓姝RP
         /// </summary>
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_InboundService/ReceiveOrderDetailService.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_InboundService/ReceiveOrderDetailService.cs"
index b71a4cd..d0977fd 100644
--- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_InboundService/ReceiveOrderDetailService.cs"
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_InboundService/ReceiveOrderDetailService.cs"
@@ -183,6 +183,7 @@
                             if (materielInfo.IsCheck == WhetherEnum.True)
                             {
                                 Dt_CheckOrder checkOrder = _mapper.Map<Dt_CheckOrder>(receiveOrderDetail);
+                                checkOrder.OrderType = CheckTypeEnum.ReceiveCheck.ObjToInt();
                                 checkOrder.ReceiveOrderNo = receiveOrder.ReceiveOrderNo;
                                 checkOrder.QualifiedQuantity = receiveOrderDetail.ReceivedQuantity;
                                 checkOrder.ReceiveDetailRowNo = receiveOrderDetail.RowNo;
@@ -332,6 +333,7 @@
                         if (materielInfo.IsCheck == WhetherEnum.True)
                         {
                             Dt_CheckOrder checkOrder = _mapper.Map<Dt_CheckOrder>(receiveOrderDetail);
+                            checkOrder.OrderType = CheckTypeEnum.ReceiveCheck.ObjToInt();
                             checkOrder.ReceiveOrderNo = receiveOrder.ReceiveOrderNo;
                             checkOrder.Result = CheckAcceptEnum.NotCheckAccept.ToString();
                             checkOrder.QualifiedQuantity = 0;
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_Model/Models/Check/Dt_CheckOrder.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_Model/Models/Check/Dt_CheckOrder.cs"
index 3308e72..2cdd69b 100644
--- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_Model/Models/Check/Dt_CheckOrder.cs"
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_Model/Models/Check/Dt_CheckOrder.cs"
@@ -34,9 +34,9 @@
         public string CheckOrderNo { get; set; }
 
         /// <summary>
-        /// 鏀惰揣鍗曞彿
+        /// 鏀惰揣鍗曞彿/閫佹鍑哄簱鍗曞彿
         /// </summary>
-        [SugarColumn(IsNullable = false, Length = 50, ColumnDescription = "鏀惰揣鍗曞彿")]
+        [SugarColumn(IsNullable = false, Length = 50, ColumnDescription = "鏀惰揣鍗曞彿/閫佹鍑哄簱鍗曞彿")]
         public string ReceiveOrderNo { get; set; }
 
         /// <summary>
@@ -52,9 +52,9 @@
         public int AuditStatus { get; set; }
 
         /// <summary>
-        /// 鏀惰揣鍗曟槑缁嗚鍙�
+        /// 鏀惰揣鍗曟槑缁嗚鍙�/閫佹鍑哄簱璇︽儏琛屽彿
         /// </summary>
-        [SugarColumn(IsNullable = false, ColumnDescription = "鏀惰揣鍗曟槑缁嗚鍙�")]
+        [SugarColumn(IsNullable = false, ColumnDescription = "鏀惰揣鍗曟槑缁嗚鍙�/閫佹鍑哄簱璇︽儏琛屽彿")]
         public int ReceiveDetailRowNo { get; set; }
 
         /// <summary>
@@ -133,6 +133,11 @@
         [SugarColumn(IsNullable = false, Length = 20, ColumnDescription = "鍗曚綅")]
         public string Unit { get; set; }
         /// <summary>
+        /// 妫�楠屽崟绫诲瀷
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDescription = "妫�楠屽崟绫诲瀷")]
+        public int OrderType { get; set; }
+        /// <summary>
         /// 璐ㄦ缁撴灉
         /// </summary>
         [Navigate(NavigateType.OneToMany, nameof(Dt_CheckOrderResult.CheckOrderId), nameof(CheckOrderId))]
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_Model/Models/Check/Dt_CheckOrderResult.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_Model/Models/Check/Dt_CheckOrderResult.cs"
index d2dd436..d3795e0 100644
--- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_Model/Models/Check/Dt_CheckOrderResult.cs"
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_Model/Models/Check/Dt_CheckOrderResult.cs"
@@ -39,14 +39,14 @@
         public string Result { get; set; }
 
         /// <summary>
-        /// 閫�璐ф暟閲�
+        /// 鏁伴噺
         /// </summary>
         [SugarColumn(IsNullable = false, ColumnDescription = "鏁伴噺")]
         public float Quantity { get; set; }
         /// <summary>
         /// 鎶芥牱鏁伴噺
         /// </summary>
-        [SugarColumn(IsNullable = false,  ColumnDescription = "鏁伴噺")]
+        [SugarColumn(IsNullable = false,  ColumnDescription = "鎶芥牱鏁伴噺")]
         public float SampleCount { get; set; }
         /// <summary>
         /// 澶囨敞
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_Model/Models/Outbound/Dt_ErpProScrapSheet.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_Model/Models/Outbound/Dt_ErpProScrapSheet.cs"
new file mode 100644
index 0000000..4427524
--- /dev/null
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_Model/Models/Outbound/Dt_ErpProScrapSheet.cs"
@@ -0,0 +1,59 @@
+锘縰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;
+
+namespace WIDESEA_Model.Models
+{
+    /// <summary>
+    /// 鎴愬搧鎶ュ簾鍗�
+    /// </summary>
+    [SugarTable(nameof(Dt_ErpProScrapSheet), "鎴愬搧鎶ュ簾鍗�")]
+    public class Dt_ErpProScrapSheet : 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>
+        [CodeRule(RuleCodeEnum.ProScrapSheetRule)]
+        [SugarColumn(IsNullable = false, Length = 50, ColumnDescription = "鍗曟嵁缂栧彿")]
+        public string ProScrapSheetOrderNo { get; set; }
+
+        /// <summary>
+        /// 鎶ュ簾鐘舵��<br/>
+        /// 寰呮牳鍑�<br/>
+        /// 宸叉牳鍑�<br/>
+        /// </summary>
+        [SugarColumn(IsNullable = false, Length = 50, ColumnDescription = "鎶ュ簾鐘舵��")]
+        public string ProScrapStatus { get; set; }
+
+        /// <summary>
+        /// 澶囨敞
+        /// </summary>
+        [SugarColumn(IsNullable = true, Length = 200, ColumnDescription = "澶囨敞")]
+        public string Remark { get; set; }
+
+
+        /// <summary>
+        /// 鍑哄簱鍗曟槑缁�
+        /// </summary>
+        [Navigate(NavigateType.OneToMany, nameof(Dt_ErpProScrapSheetDetail.ProScrapSheetId), nameof(Id))]
+        public List<Dt_ErpProScrapSheetDetail> Details { get; set; }
+    }
+}
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_Model/Models/Outbound/Dt_ErpProScrapSheetDetail.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_Model/Models/Outbound/Dt_ErpProScrapSheetDetail.cs"
new file mode 100644
index 0000000..8d93ff0
--- /dev/null
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_Model/Models/Outbound/Dt_ErpProScrapSheetDetail.cs"
@@ -0,0 +1,95 @@
+锘縰sing SqlSugar;
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using WIDESEA_Core.DB.Models;
+
+namespace WIDESEA_Model.Models
+{
+    /// <summary>
+    /// 鎴愬搧鎶ュ簾鍗曟槑缁�
+    /// </summary>
+    [SugarTable(nameof(Dt_ErpProScrapSheetDetail), "鎴愬搧鎶ュ簾鍗曟槑缁�")]
+    public class Dt_ErpProScrapSheetDetail : BaseEntity
+    {
+        /// <summary>
+        /// 涓婚敭
+        /// </summary>
+        [SugarColumn(IsPrimaryKey = true, IsIdentity = true, ColumnDescription = "涓婚敭")]
+        public int Id { get; set; }
+
+        /// <summary>
+        /// 鎴愬搧鎶ュ簾鍗曚富閿�
+        /// </summary>
+        [SugarColumn(IsNullable = false, ColumnDescription = "鎴愬搧鎶ュ簾鍗曚富閿�")]
+        public int ProScrapSheetId { get; set; }
+
+        /// <summary>
+        /// 浜у搧缂栫爜
+        /// </summary>
+        [SugarColumn(IsNullable = false, Length = 50, ColumnDescription = "浜у搧缂栫爜")]
+        public string ScrapProCode { get; set; }
+
+        /// <summary>
+        /// 鎶ュ簾鐗堟湰
+        /// </summary>
+        [SugarColumn(IsNullable = false, Length = 50, ColumnDescription = "鐗堟湰")]
+        public string ScrapProVersion { get; set; }
+
+        /// <summary>
+        /// 鎶ュ簾鎵规鍙�
+        /// </summary>
+        [SugarColumn(IsNullable = false, Length = 50, ColumnDescription = "鎵规鍙�")]
+        public string ScrapProLotNo { get; set; }
+
+        /// <summary>
+        /// 鎶ュ簾SET鏁伴噺
+        /// </summary>
+        [SugarColumn(IsNullable = false, ColumnDescription = "鎶ュ簾SET鏁伴噺")]
+        public int ScrapSETQty { get; set; }
+
+        /// <summary>
+        /// 鎶ュ簾PCS鏁�
+        /// </summary>
+        [SugarColumn(IsNullable = false, ColumnDescription = "鎶ュ簾PCS鏁�")]
+        public int ScrapPcsQty { get; set; }
+
+        /// <summary>
+        /// 宸叉姤搴烻ET鏁伴噺
+        /// </summary>
+        [SugarColumn(IsNullable = false, ColumnDescription = "宸蹭笅鎶ュ簾SET鏁伴噺")]
+        public int OverScrapSETQty { get; set; }
+
+        /// <summary>
+        /// 宸叉姤搴烶CS鏁�
+        /// </summary>
+        [SugarColumn(IsNullable = false, ColumnDescription = "宸蹭笅鎶ュ簾PCS鏁�")]
+        public int OverScrapPcsQty { get; set; }
+
+        /// <summary>
+        /// XSet鏁�
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDescription = "XSet鏁�")]
+        public int XSetQty { get; set; }
+
+        /// <summary>
+        /// XPcs鏁�
+        /// </summary>
+        [SugarColumn(IsNullable = true, Length = 50, ColumnDescription = "XPCS鏁�")]
+        public int XPcsQty { get; set; }
+
+        /// <summary>
+        /// 鎶ュ簾鏄庣粏鐘舵��
+        /// </summary>
+        [SugarColumn(IsNullable = false, Length = 50, ColumnDescription = "鎶ュ簾鏄庣粏鐘舵��")]
+        public int ScrapProDetailStatus { get; set; }
+
+        /// <summary>
+        /// 澶囨敞
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDescription = "澶囨敞")]
+        public string Remark { get; set; }
+    }
+}
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_OutboundRepository/ErpProScrapSheetDetailRepository.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_OutboundRepository/ErpProScrapSheetDetailRepository.cs"
new file mode 100644
index 0000000..36c323a
--- /dev/null
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_OutboundRepository/ErpProScrapSheetDetailRepository.cs"
@@ -0,0 +1,18 @@
+锘縰sing System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using WIDESEA_Core.BaseRepository;
+using WIDESEA_IOutboundRepository;
+using WIDESEA_Model.Models;
+
+namespace WIDESEA_OutboundRepository
+{
+    public class ErpProScrapSheetDetailRepository : RepositoryBase<Dt_ErpProScrapSheetDetail>, IErpProScrapSheetDetailRepository
+    {
+        public ErpProScrapSheetDetailRepository(IUnitOfWorkManage unitOfWorkManage) : base(unitOfWorkManage)
+        {
+        }
+    }
+}
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_OutboundRepository/ErpProScrapSheetRepository.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_OutboundRepository/ErpProScrapSheetRepository.cs"
new file mode 100644
index 0000000..7d31519
--- /dev/null
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_OutboundRepository/ErpProScrapSheetRepository.cs"
@@ -0,0 +1,18 @@
+锘縰sing System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using WIDESEA_Core.BaseRepository;
+using WIDESEA_IOutboundRepository;
+using WIDESEA_Model.Models;
+
+namespace WIDESEA_OutboundRepository
+{
+    public class ErpProScrapSheetRepository : RepositoryBase<Dt_ErpProScrapSheet>, IErpProScrapSheetRepository
+    {
+        public ErpProScrapSheetRepository(IUnitOfWorkManage unitOfWorkManage) : base(unitOfWorkManage)
+        {
+        }
+    }
+}
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_OutboundService/ErpProScrapSheetDetailService.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_OutboundService/ErpProScrapSheetDetailService.cs"
new file mode 100644
index 0000000..e911579
--- /dev/null
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_OutboundService/ErpProScrapSheetDetailService.cs"
@@ -0,0 +1,24 @@
+锘縰sing System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using WIDESEA_Core.BaseRepository;
+using WIDESEA_Core.BaseServices;
+using WIDESEA_IOutboundRepository;
+using WIDESEA_IOutboundService;
+using WIDESEA_Model.Models;
+
+namespace WIDESEA_OutboundService
+{
+    public partial class ErpProScrapSheetDetailService : ServiceBase<Dt_ErpProScrapSheetDetail, IErpProScrapSheetDetailRepository>, IErpProScrapSheetDetailService
+    {
+        private readonly IUnitOfWorkManage _unitOfWorkManage;
+        public IErpProScrapSheetDetailRepository Repository => BaseDal;
+
+        public ErpProScrapSheetDetailService(IErpProScrapSheetDetailRepository BaseDal, IUnitOfWorkManage unitOfWorkManage) : base(BaseDal)
+        {
+            _unitOfWorkManage = unitOfWorkManage;
+        }
+    }
+}
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_OutboundService/ErpProScrapSheetService.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_OutboundService/ErpProScrapSheetService.cs"
new file mode 100644
index 0000000..40a0e79
--- /dev/null
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_OutboundService/ErpProScrapSheetService.cs"
@@ -0,0 +1,64 @@
+锘縰sing System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using WIDESEA_Common.CommonEnum;
+using WIDESEA_Common.OrderEnum;
+using WIDESEA_Common.StockEnum;
+using WIDESEA_Core;
+using WIDESEA_Core.BaseRepository;
+using WIDESEA_Core.BaseServices;
+using WIDESEA_Core.Helper;
+using WIDESEA_IOutboundRepository;
+using WIDESEA_IOutboundService;
+using WIDESEA_Model.Models;
+
+namespace WIDESEA_OutboundService
+{
+    public partial class ErpProScrapSheetService : ServiceBase<Dt_ErpProScrapSheet, IErpProScrapSheetRepository>, IErpProScrapSheetService
+    {
+        private readonly IUnitOfWorkManage _unitOfWorkManage;
+        public IErpProScrapSheetRepository Repository => BaseDal;
+
+        public ErpProScrapSheetService(IErpProScrapSheetRepository BaseDal, IUnitOfWorkManage unitOfWorkManage) : base(BaseDal)
+        {
+            _unitOfWorkManage = unitOfWorkManage;
+        }
+        public override WebResponseContent AddData(SaveModel saveModel)
+        {
+            if (saveModel.MainData.ContainsKey(nameof(Dt_ErpProScrapSheet.ProScrapStatus).FirstLetterToLower()))
+            {
+                saveModel.MainData[nameof(Dt_ErpProScrapSheet.ProScrapStatus).FirstLetterToLower()] = ProScrapSheetStatusEnum.TOChecked.ObjToInt();
+            }
+            else
+            {
+                saveModel.MainData.Add(nameof(Dt_ErpProScrapSheet.ProScrapStatus).FirstLetterToLower(), ProScrapSheetStatusEnum.TOChecked.ObjToInt());
+            }
+            foreach (var item in saveModel.DetailData)
+            {
+                if (!item.ContainsKey(nameof(Dt_ErpProScrapSheetDetail.OverScrapSETQty).FirstLetterToLower()))
+                {
+                    item.Add(nameof(Dt_ErpProScrapSheetDetail.OverScrapSETQty).FirstLetterToLower(), 0);
+                }
+                if (!item.ContainsKey(nameof(Dt_ErpProScrapSheetDetail.OverScrapPcsQty).FirstLetterToLower()))
+                {
+                    item.Add(nameof(Dt_ErpProScrapSheetDetail.OverScrapPcsQty).FirstLetterToLower(), 0);
+                }
+                if (!item.ContainsKey(nameof(Dt_ErpProScrapSheetDetail.XSetQty).FirstLetterToLower()))
+                {
+                    item.Add(nameof(Dt_ErpProScrapSheetDetail.XSetQty).FirstLetterToLower(), 0);
+                }
+                if (!item.ContainsKey(nameof(Dt_ErpProScrapSheetDetail.XPcsQty).FirstLetterToLower()))
+                {
+                    item.Add(nameof(Dt_ErpProScrapSheetDetail.XPcsQty).FirstLetterToLower(), 0);
+                }
+                if (!item.ContainsKey(nameof(Dt_ErpProScrapSheetDetail.ScrapProDetailStatus).FirstLetterToLower()))
+                {
+                    item.Add(nameof(Dt_ErpProScrapSheetDetail.ScrapProDetailStatus).FirstLetterToLower(), OutOrderStatusEnum.鍑哄簱涓�.ObjToInt());
+                }
+            }
+            return base.AddData(saveModel);
+        }
+    }
+}
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_OutboundService/OutboundOrderService.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_OutboundService/OutboundOrderService.cs"
index 830712a..7c3db99 100644
--- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_OutboundService/OutboundOrderService.cs"
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_OutboundService/OutboundOrderService.cs"
@@ -300,7 +300,11 @@
                     DelOutOrder(oldOutboundOrder);
                     return WebResponseContent.Instance.Error($"鏈壘鍒拌浠撳簱淇℃伅");
                 }
-
+                if (materielInfo.WarehouseId!= materielInfo.WarehouseId)
+                {
+                    DelOutOrder(oldOutboundOrder);
+                    return WebResponseContent.Instance.Error($"鐗╂枡{materielInfo}涓嶅睘浜巤warehouse.WarehouseName}");
+                }
                 if (model.Way == 1)
                 {
                     if (oldOutboundOrder != null)
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_OutboundService/ProOutOrderService.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_OutboundService/ProOutOrderService.cs"
index c700679..d591f56 100644
--- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_OutboundService/ProOutOrderService.cs"
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_OutboundService/ProOutOrderService.cs"
@@ -131,6 +131,7 @@
                             keyValuePairs.Add(item.SaleOrder, responseContent.Data[0].Endcustomer);
                         }
                     }
+                    proOutOrderDetail.QtyPcs += proOutOrderDetail.SpareQty;
                     proOutOrderDetails.Add(proOutOrderDetail);
                 }
                 Dt_ProOutOrder  proOutOrder= new Dt_ProOutOrder()
@@ -717,7 +718,7 @@
         /// <summary>
         /// 鏌ヨERP璁㈠崟鎵i櫎搴撳瓨鏁伴噺
         /// </summary>
-        public async Task<WebResponseContent> OutProErpSync(string outProOrderNo)
+        public WebResponseContent OutProErpSync(string outProOrderNo)
         {
             WebResponseContent content = new WebResponseContent();
             try
@@ -726,52 +727,54 @@
                 Dt_ProOutOrder proOutOrder = BaseDal.Db.Queryable<Dt_ProOutOrder>().Where(x=>x.ProOutOrderNo== outProOrderNo).Includes(x => x.Details).First();
                 if (proOutOrder==null)
                 {
-                    return await Task.FromResult(content.Error($"鏈壘鍒版垚鍝佸嚭搴撹鍗晎outProOrderNo}"));
+                    return content.Error($"鏈壘鍒版垚鍝佸嚭搴撹鍗晎outProOrderNo}");
                 }
                 if (proOutOrder.ProOrderStatus>=OutOrderStatusEnum.鍑哄簱瀹屾垚.ObjToInt())
                 {
-                    return await Task.FromResult(content.Error($"鍑哄簱璁㈠崟宸插畬鎴愭垨鍏抽棴"));
+                    return content.Error($"鍑哄簱璁㈠崟宸插畬鎴愭垨鍏抽棴");
                 }
                 //璋冪敤erp鍑哄簱璁㈠崟搴撳瓨鏌ヨ鎺ュ彛
                 string response = _invokeERPService.InvokeOutProErpSync(outProOrderNo);
                 ErpOutProSyncResponseContent erpOutProSyncResponse= response.DeserializeObject<ErpOutProSyncResponseContent>();
                 if (erpOutProSyncResponse.Code!=200)
                 {
-                    return await Task.FromResult(content.Error($"ERP鍑哄簱璁㈠崟鏌ヨ鎺ュ彛璋冪敤澶辫触,閿欒淇℃伅:{erpOutProSyncResponse.Msg}"));
+                    return content.Error($"ERP鍑哄簱璁㈠崟鏌ヨ鎺ュ彛璋冪敤澶辫触,閿欒淇℃伅:{erpOutProSyncResponse.Msg}");
                 }
                 List<OutProStock> outProStocks = erpOutProSyncResponse.Data;
                 if (outProStocks.Count<=0 || outProStocks==null)
                 {
-                    return await Task.FromResult(content.Error($"鎴愬搧鍑哄簱璁㈠崟{outProOrderNo}ERP褰撳墠鏈湁鍑哄簱搴撳瓨淇℃伅"));
+                    return content.Error($"鎴愬搧鍑哄簱璁㈠崟{outProOrderNo}ERP褰撳墠鏈湁鍑哄簱搴撳瓨淇℃伅");
+                }
+                // 楠岃瘉鎵�鏈夊嚭搴撳崟鍙锋槸鍚︿竴鑷�
+                OutProStock? outExist = outProStocks.FirstOrDefault(x => x.ShippingNumber != outProOrderNo);
+                if (outExist != null)
+                {
+                    return content.Error($"ERP杩斿洖浜嗗嚭搴撹鍗晎outExist.ShippingNumber}搴撳瓨淇℃伅");
                 }
                 //鑾峰彇骞冲簱搴撳尯
                 Dt_Warehouse warehouse = _basicRepository.WarehouseRepository.QueryFirst(x => x.WarehouseCode == WarehouseEnum.HA101.ToString());
                 if (warehouse==null)
                 {
-                    return await Task.FromResult(content.Error("鏈壘鍒板簱鍖轰俊鎭�"));
+                    return content.Error("鏈壘鍒板簱鍖轰俊鎭�");
                 }
+                var productCodes = outProStocks.Select(x => x.Partnum).Distinct().ToList();
                 //鑾峰彇鎵�鏈夊钩搴撳簱瀛�
-                List<Dt_ProStockInfo> proStockInfos = _stockRepository.ProStockInfoRepository.Db.Queryable<Dt_ProStockInfo>().Where(x => x.WarehouseId == warehouse.WarehouseId).Includes(x => x.proStockInfoDetails).ToList();
-                List<Dt_ProStockInfoDetail> proStockInfoDetails= new List<Dt_ProStockInfoDetail>();
-                foreach (var item in proStockInfos)
-                {
-                    proStockInfoDetails.AddRange(item.proStockInfoDetails);
-                }
-                proStockInfoDetails = proStockInfoDetails.OrderBy(x => x.DateCode).ThenBy(x => x.CreateDate).ToList() ;
+                List<Dt_ProStockInfoDetail> proStockInfoDetails = _stockRepository.ProStockInfoRepository.Db.Queryable<Dt_ProStockInfo, Dt_ProStockInfoDetail>((master, detail) => master.Id == detail.ProStockId)
+                .Where((master, detail) => master.WarehouseId == warehouse.WarehouseId && productCodes.Contains(detail.ProductCode))
+                .Select((master, detail) => detail)
+                .ToList();
+                proStockInfoDetails = proStockInfoDetails.OrderBy(x => x.DateCode).ThenBy(x => x.CreateDate).ToList();
+
                 List<Dt_ProStockInfo> delProStockInfos = new List<Dt_ProStockInfo>();
                 List<Dt_ProStockInfoDetail> delStockInfoDetails = new List<Dt_ProStockInfoDetail>();
                 foreach (var item in outProStocks)
                 {
-                    //鏌ヨ搴撳瓨璁板綍
-                    if (item.ShippingNumber != outProOrderNo)
-                    {
-                        return await Task.FromResult(content.Error($"ERP杩斿洖浜嗗嚭搴撹鍗晎item.ShippingNumber}搴撳瓨淇℃伅"));
-                    }
+                    
                     //鑾峰彇搴撳瓨
                     List<Dt_ProStockInfoDetail> outStocks = proStockInfoDetails.Where(x=>x.ProductCode==item.Partnum).ToList();
                     if (outStocks.Count==0 || outStocks==null)
                     {
-                        return await Task.FromResult(content.Error($"{item.Partnum}浜у搧鍨嬪彿搴撳瓨涓嶅瓨鍦�"));
+                        return content.Error($"{item.Partnum}浜у搧鍨嬪彿搴撳瓨涓嶅瓨鍦�");
                     }
                     foreach (var itemOut in outStocks)
                     {
@@ -779,13 +782,9 @@
                         {
                             break;
                         }
+                        Dt_ProOutOrderDetail? proOutOrderDetail = proOutOrder.Details.FirstOrDefault(x => x.SaleOrder == item.SoNumber && x.PCode == item.Partnum) ?? throw new Exception($"鍑哄簱鍗晎proOutOrder.ProOutOrderNo}鏈壘鍒伴攢鍞鍗晎item.SoNumber}鏄庣粏,璇锋鏌�");
                         if (item.Quantity >= itemOut.StockPcsQty)
                         {
-                            Dt_ProOutOrderDetail? proOutOrderDetail = proOutOrder.Details.FirstOrDefault(x => x.SaleOrder == item.SoNumber && x.PCode == item.Partnum);
-                            if (proOutOrderDetail == null)
-                            {
-                                return await Task.FromResult(content.Error($"鍑哄簱鍗晎proOutOrder.ProOutOrderNo}鏈壘鍒伴攢鍞鍗晎item.SoNumber}鏄庣粏,璇锋鏌�"));
-                            }
                             //鏇存柊鍑哄簱鏄庣粏鍗曟暟閲�
                             proOutOrderDetail.OverQtyPcs += itemOut.StockPcsQty;
                             item.Quantity -= (int)itemOut.StockPcsQty;
@@ -793,7 +792,7 @@
                             proStockInfoDetails.Remove(itemOut);
                             if (proOutOrderDetail.OverQtyPcs > proOutOrderDetail.QtyPcs)
                             {
-                                return await Task.FromResult(content.Error($"鍑哄簱鍗晎proOutOrder.ProOutOrderNo}閿�鍞鍗晎item.SoNumber}鏁伴噺婧㈠嚭{proOutOrderDetail.OverQtyPcs - proOutOrderDetail.QtyPcs}"));
+                                return content.Error($"鍑哄簱鍗晎proOutOrder.ProOutOrderNo}閿�鍞鍗晎item.SoNumber}鏁伴噺婧㈠嚭{proOutOrderDetail.OverQtyPcs - proOutOrderDetail.QtyPcs}");
                             }
                             if (proOutOrderDetail.ProOrderDetailStatus == OrderDetailStatusEnum.New.ObjToInt())
                             {
@@ -806,11 +805,7 @@
                         }
                         else if (item.Quantity < itemOut.StockPcsQty)
                         {
-                            Dt_ProOutOrderDetail? proOutOrderDetail = proOutOrder.Details.FirstOrDefault(x => x.SaleOrder == item.SoNumber && x.PCode == item.Partnum);
-                            if (proOutOrderDetail == null)
-                            {
-                                return await Task.FromResult(content.Error($"鍑哄簱鍗晎proOutOrder.ProOutOrderNo}鏈壘鍒伴攢鍞鍗晎item.SoNumber}鏄庣粏,璇锋鏌�"));
-                            }
+                            
                             //鏇存柊鍑哄簱鏄庣粏鍗曟暟閲�
                             proOutOrderDetail.OverQtyPcs += item.Quantity;
                             item.Quantity -= item.Quantity;
@@ -819,7 +814,7 @@
                             itemOut.StockPcsQty -= item.Quantity;
                             if (proOutOrderDetail.OverQtyPcs > proOutOrderDetail.QtyPcs)
                             {
-                                return await Task.FromResult(content.Error($"鍑哄簱鍗晎proOutOrder.ProOutOrderNo}閿�鍞鍗晎item.SoNumber}鏁伴噺婧㈠嚭{proOutOrderDetail.OverQtyPcs - proOutOrderDetail.QtyPcs}"));
+                                return content.Error($"鍑哄簱鍗晎proOutOrder.ProOutOrderNo}閿�鍞鍗晎item.SoNumber}鏁伴噺婧㈠嚭{proOutOrderDetail.OverQtyPcs - proOutOrderDetail.QtyPcs}");
                             }
                             if (proOutOrderDetail.ProOrderDetailStatus == OrderDetailStatusEnum.New.ObjToInt())
                             {
@@ -839,7 +834,7 @@
                 else
                 {
                     Dt_ProOutOrderDetail? proOutOrderDetail = proOutOrder.Details.FirstOrDefault(x => x.ProOrderDetailStatus <= OrderDetailStatusEnum.Over.ObjToInt());
-                    return await Task.FromResult(content.Error($"{proOutOrderDetail?.SaleOrder}閿�鍞鍗曟暟閲忛渶鍑簕proOutOrderDetail?.QtyPcs},鍙嚭{proOutOrderDetail?.OverQtyPcs}"));
+                    return content.Error($"{proOutOrderDetail?.SaleOrder}閿�鍞鍗曟暟閲忛渶鍑簕proOutOrderDetail?.QtyPcs},鍙嚭{proOutOrderDetail?.OverQtyPcs}");
                 }
                 //鏇存柊鏁版嵁
                 _unitOfWorkManage.BeginTran();
@@ -847,16 +842,16 @@
                 {
                     _stockRepository.ProStockInfoDetailRepository.DeleteAndMoveIntoHty(delStockInfoDetails, OperateTypeEnum.鑷姩鍒犻櫎);
                 }
-                await _stockRepository.ProStockInfoDetailRepository.UpdateDataAsync(proStockInfoDetails);
-                await BaseDal.UpdateDataAsync(proOutOrder);
-                await _outboundRepository.ProOutOrderDetailRepository.UpdateDataAsync(proOutOrder.Details);
+                _stockRepository.ProStockInfoDetailRepository.UpdateData(proStockInfoDetails);
+                BaseDal.UpdateData(proOutOrder);
+                _outboundRepository.ProOutOrderDetailRepository.UpdateData(proOutOrder.Details);
                 _unitOfWorkManage.CommitTran();
-                return await Task.FromResult(content.OK());
+                return content.OK();
             }
             catch (Exception ex)
             {
                 _unitOfWorkManage.RollbackTran();
-                return await Task.FromResult(content.Error(ex.Message));
+                return content.Error(ex.Message);
             }
         }
         /// <summary>
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_SystemService/Sys_DictionaryService.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_SystemService/Sys_DictionaryService.cs"
index 114d968..f7726e8 100644
--- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_SystemService/Sys_DictionaryService.cs"
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_SystemService/Sys_DictionaryService.cs"
@@ -1130,6 +1130,112 @@
                             result = new VueDictionaryDTO { DicNo = key, Config = "", Data = data };
                         }
                         break;
+                    case "proScrapStatusEnum":
+                        {
+                            List<object> data = new List<object>();
+
+                            {
+                                Type type = typeof(ProScrapSheetStatusEnum);
+                                List<int> enums = Enum.GetValues(typeof(ProScrapSheetStatusEnum)).Cast<int>().ToList();
+                                int index = 0;
+                                foreach (var item in enums)
+                                {
+                                    FieldInfo? fieldInfo = typeof(ProScrapSheetStatusEnum).GetField(((ProScrapSheetStatusEnum)item).ToString());
+                                    DescriptionAttribute? description = fieldInfo.GetCustomAttribute<DescriptionAttribute>();
+                                    if (description != null)
+                                    {
+                                        data.Add(new { key = item.ToString(), value = description.Description });
+                                    }
+                                    else
+                                    {
+                                        data.Add(new { key = item.ToString(), value = item.ToString() });
+                                    }
+                                    index++;
+                                }
+                            }
+
+                            result = new VueDictionaryDTO { DicNo = key, Config = "", Data = data };
+                        }
+                        break;
+                    case "checkTypeEnum":
+                        {
+                            List<object> data = new List<object>();
+
+                            {
+                                Type type = typeof(CheckTypeEnum);
+                                List<int> enums = Enum.GetValues(typeof(CheckTypeEnum)).Cast<int>().ToList();
+                                int index = 0;
+                                foreach (var item in enums)
+                                {
+                                    FieldInfo? fieldInfo = typeof(CheckTypeEnum).GetField(((CheckTypeEnum)item).ToString());
+                                    DescriptionAttribute? description = fieldInfo.GetCustomAttribute<DescriptionAttribute>();
+                                    if (description != null)
+                                    {
+                                        data.Add(new { key = item.ToString(), value = description.Description });
+                                    }
+                                    else
+                                    {
+                                        data.Add(new { key = item.ToString(), value = item.ToString() });
+                                    }
+                                    index++;
+                                }
+                            }
+
+                            result = new VueDictionaryDTO { DicNo = key, Config = "", Data = data };
+                        }
+                        break;
+                    case "inspectAcceptEnum":
+                        {
+                            List<object> data = new List<object>();
+                            {
+                                Type type = typeof(InspectAcceptEnum);
+                                List<int> enums = Enum.GetValues(typeof(InspectAcceptEnum)).Cast<int>().ToList();
+                                int index = 0;
+                                foreach (var item in enums)
+                                {
+                                    FieldInfo? fieldInfo = typeof(InspectAcceptEnum).GetField(((InspectAcceptEnum)item).ToString());
+                                    DescriptionAttribute? description = fieldInfo.GetCustomAttribute<DescriptionAttribute>();
+                                    if (description != null)
+                                    {
+                                        data.Add(new { key = item.ToString(), value = description.Description });
+                                    }
+                                    else
+                                    {
+                                        data.Add(new { key = item.ToString(), value = item.ToString() });
+                                    }
+                                    index++;
+                                }
+                            }
+
+                            result = new VueDictionaryDTO { DicNo = key, Config = "", Data = data };
+                        }
+                        break;
+                    case "inspectResultEnum":
+                        {
+                            List<object> data = new List<object>();
+                            {
+                                Type type = typeof(InspectResultEnum);
+                                List<int> enums = Enum.GetValues(typeof(InspectResultEnum)).Cast<int>().ToList();
+                                int index = 0;
+                                foreach (var item in enums)
+                                {
+                                    FieldInfo? fieldInfo = typeof(InspectResultEnum).GetField(((InspectResultEnum)item).ToString());
+                                    DescriptionAttribute? description = fieldInfo.GetCustomAttribute<DescriptionAttribute>();
+                                    if (description != null)
+                                    {
+                                        data.Add(new { key = item.ToString(), value = description.Description });
+                                    }
+                                    else
+                                    {
+                                        data.Add(new { key = item.ToString(), value = item.ToString() });
+                                    }
+                                    index++;
+                                }
+                            }
+
+                            result = new VueDictionaryDTO { DicNo = key, Config = "", Data = data };
+                        }
+                        break;
                 }
                 return result;
             }
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_TaskInfoService/MesTaskService.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_TaskInfoService/MesTaskService.cs"
index aa4c376..a74fb82 100644
--- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_TaskInfoService/MesTaskService.cs"
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_TaskInfoService/MesTaskService.cs"
@@ -130,11 +130,6 @@
                 MesResponseContent responseContent = new MesResponseContent();
                 try
                 {
-                    Dt_Task exsit = Repository.QueryFirst(x => x.TargetAddress == model.TargetAddressCode);
-                    if (exsit != null)
-                    {
-                        return responseContent.Error($"鐩爣鍦板潃閲嶅");
-                    }
 
                     Dt_Warehouse warehouse = _basicRepository.WarehouseRepository.QueryFirst(x => x.WarehouseCode == WarehouseEnum.HA154.ToString());
                     //鑾峰彇搴撳瓨璁板綍
@@ -210,11 +205,7 @@
                 MesResponseContent responseContent = new MesResponseContent();
                 try
                 {
-                    Dt_Task exsit = Repository.QueryFirst(x => x.TargetAddress == model.TargetAddressCode);
-                    if (exsit != null)
-                    {
-                        return responseContent.Error($"鐩爣鍦板潃閲嶅");
-                    }
+                    
 
                     Dt_Warehouse warehouse = _basicRepository.WarehouseRepository.QueryFirst(x => x.WarehouseCode == WarehouseEnum.HA154.ToString());
                     //鑾峰彇搴撳瓨璁板綍
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_TaskInfoService/TaskService.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_TaskInfoService/TaskService.cs"
index 74436ca..4f51249 100644
--- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_TaskInfoService/TaskService.cs"
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_TaskInfoService/TaskService.cs"
@@ -41,6 +41,7 @@
 using WIDESEA_External.Model;
 using WIDESEA_IBasicRepository;
 using WIDESEA_IBasicService;
+using WIDESEA_ICheckRepository;
 using WIDESEA_IInboundRepository;
 using WIDESEA_IInboundService;
 using WIDESEA_IOutboundRepository;
@@ -75,6 +76,7 @@
         private readonly IOutboundRepository _outboundRepository;
         private readonly IProInStatisticsRepository _proInStatisticsRepository;
         private readonly IProInStatisticsService _proInStatisticsService;
+        private readonly ICheckOrderRepository _checkOrderRepository;
         public ITaskRepository Repository => BaseDal;
 
         private Dictionary<string, OrderByType> _taskOrderBy = new()
@@ -87,7 +89,7 @@
 
         public List<int> TaskOutboundTypes => typeof(TaskTypeEnum).GetEnumIndexList();
 
-        public TaskService(ITaskRepository BaseDal, IMapper mapper, IUnitOfWorkManage unitOfWorkManage, IStockRepository stockRepository, IBasicService basicService, IRecordService recordService, IOutboundService outboundService, IStockService stockService, IBasicRepository basicRepository, IApiInfoRepository apiInfoRepository, IInvokeERPService invokeERPService, IInboundRepository inboundRepository, IInboundOrderService inboundOrderService, IPalletTypeInfoRepository palletTypeInfoRepository, IOutProStockInfoRepository outProStockInfoRepository, IOutboundRepository outboundRepository, IProInStatisticsRepository proInStatisticsRepository, IProInStatisticsService proInStatisticsService) : base(BaseDal)
+        public TaskService(ITaskRepository BaseDal, IMapper mapper, IUnitOfWorkManage unitOfWorkManage, IStockRepository stockRepository, IBasicService basicService, IRecordService recordService, IOutboundService outboundService, IStockService stockService, IBasicRepository basicRepository, IApiInfoRepository apiInfoRepository, IInvokeERPService invokeERPService, IInboundRepository inboundRepository, IInboundOrderService inboundOrderService, IPalletTypeInfoRepository palletTypeInfoRepository, IOutProStockInfoRepository outProStockInfoRepository, IOutboundRepository outboundRepository, IProInStatisticsRepository proInStatisticsRepository, IProInStatisticsService proInStatisticsService, ICheckOrderRepository checkOrderRepository) : base(BaseDal)
         {
             _mapper = mapper;
             _unitOfWorkManage = unitOfWorkManage;
@@ -106,6 +108,7 @@
             _outboundRepository = outboundRepository;
             _proInStatisticsRepository = proInStatisticsRepository;
             _proInStatisticsService = proInStatisticsService;
+            _checkOrderRepository = checkOrderRepository;
         }
 
         /// <summary>
@@ -628,7 +631,9 @@
                 List<Dt_OutboundOrderDetail> outboundOrderDetails = new List<Dt_OutboundOrderDetail>();
                 List<Dt_MesOutboundOrder> mesOutboundOrders = new List<Dt_MesOutboundOrder>();
                 List<Dt_MesPPOutboundOrder> mesPPOutboundOrders = new List<Dt_MesPPOutboundOrder>();
-                if ((outStockLockInfos == null || outStockLockInfos.Count == 0) &&(warehouse.WarehouseCode != WarehouseEnum.HA64.ToString()|| warehouse.WarehouseCode != WarehouseEnum.HA154.ToString()) && (task.TaskType != TaskTypeEnum.OutEmpty.ObjToInt()))
+                Dt_CheckOrder? checkOrder = null;
+                Dt_OutboundOrder? outboundOrder = null;
+                if ((outStockLockInfos == null || outStockLockInfos.Count == 0) && warehouse.WarehouseCode != WarehouseEnum.HA64.ToString() && warehouse.WarehouseCode != WarehouseEnum.HA154.ToString() && (task.TaskType != TaskTypeEnum.OutEmpty.ObjToInt()))
                 {
                     return WebResponseContent.Instance.Error($"鏈壘鍒板嚭搴撹鎯呬俊鎭�");
                 }
@@ -665,6 +670,7 @@
                         }
                         else
                         {
+                            //鑾峰彇鍑哄簱鍗曟槑缁�
                             Dt_OutboundOrderDetail outboundOrderDetail = _outboundService.OutboundOrderDetailService.Repository.QueryFirst(x => x.Id == item.OrderDetailId);
                             if (outboundOrderDetail != null)
                             {
@@ -674,7 +680,32 @@
                                     outboundOrderDetail.OrderDetailStatus = OrderDetailStatusEnum.Over.ObjToInt();
                                 }
                                 outboundOrderDetails.Add(outboundOrderDetail);
+                                //鑾峰彇鍑哄簱鍗�
+                                outboundOrder = _outboundRepository.OutboundOrderRepository.Db.Queryable<Dt_OutboundOrder>().Where(x => x.Id == outboundOrderDetail.OrderId).Includes(x => x.Details).First() ?? throw new Exception("鏈壘鍒板嚭搴撳崟");
+                                if (task.TaskType == TaskTypeEnum.OutQuality.ObjToInt())
+                                {
+                                    Dt_MaterielInfo materielInfo = _basicRepository.MaterielInfoRepository.QueryFirst(x=>x.MaterielCode== outboundOrderDetail.MaterielCode);
+                                    
+                                    checkOrder = new Dt_CheckOrder
+                                    {
+                                        ReceivedQuantity = item.OriginalQuantity,
+                                        OrderType = CheckTypeEnum.InspectCheck.ObjToInt(),
+                                        ReceiveOrderNo = outboundOrder.OrderNo,
+                                        LotNo= item.BatchNo,
+                                        Result = CheckAcceptEnum.NotCheckAccept.ToString(),
+                                        QualifiedQuantity = 0,
+                                        ReceiveDetailRowNo = item.Id,
+                                        WarehouseId = outboundOrder.WarehouseId,
+                                        ScrappedQuantity = 0,
+                                        MaterielCode=materielInfo.MaterielCode,
+                                        MaterielSpec = materielInfo.MaterielSpec,
+                                        Unit = materielInfo.MaterielUnit,
+                                        ReturnQuantity = 0,
+                                        DefectedQuantity = 0
+                                    };
+                                }
                             }
+                            
                         }
                         item.Status = OutLockStockStatusEnum.鍑哄簱瀹屾垚.ObjToInt();
                     }
@@ -684,12 +715,22 @@
                 FeedBackWCSTaskCompleted(taskNum);
                 _unitOfWorkManage.BeginTran();
 
-                if (task.TaskType == TaskTypeEnum.Outbound.ObjToInt() || task.TaskType == TaskTypeEnum.OutAllocate.ObjToInt() || task.TaskType == TaskTypeEnum.MesHandPickOutbound.ObjToInt() || task.TaskType == TaskTypeEnum.MesHandOutbound.ObjToInt())
+                if (task.TaskType == TaskTypeEnum.Outbound.ObjToInt() || task.TaskType == TaskTypeEnum.OutQuality.ObjToInt() || task.TaskType == TaskTypeEnum.OutAllocate.ObjToInt() || task.TaskType == TaskTypeEnum.MesHandPickOutbound.ObjToInt() || task.TaskType == TaskTypeEnum.MesHandOutbound.ObjToInt())
                 {
-                    //澶勭悊鍑哄簱璇︽儏
+                    //澶勭悊鍑哄簱璇︽儏浠ュ強搴撳瓨鐘舵��
                     if (outboundOrderDetails.Count > 0)
                     {
                         _outboundService.OutboundOrderDetailService.Repository.UpdateData(outboundOrderDetails);
+                        //鏇存柊鍑哄簱鍗曠姸鎬�
+                        if (task.TaskType == TaskTypeEnum.OutQuality.ObjToInt() || task.TaskType == TaskTypeEnum.OutAllocate.ObjToInt())
+                        {
+                            int detailCount = outboundOrderDetails.Where(x => x.OrderDetailStatus == OrderDetailStatusEnum.Over.ObjToInt()).ToList().Count;
+                            if ((outboundOrder.Details.Where(x => x.OrderDetailStatus == OrderDetailStatusEnum.Over.ObjToInt()).ToList().Count + detailCount) == outboundOrder.Details.Count)
+                            {
+                                outboundOrder.OrderStatus = OutOrderStatusEnum.鍑哄簱瀹屾垚.ObjToInt();
+                                _outboundRepository.OutboundOrderRepository.UpdateData(outboundOrder);
+                            }
+                        }
                     }
                     stockInfo.LocationCode = "";
                     stockInfo.StockStatus = StockStatusEmun.鍑哄簱瀹屾垚.ObjToInt();
@@ -701,15 +742,24 @@
                     {
                         stockInfo.StockLength = 0;
                     }
+                    if (checkOrder!=null)
+                    {
+                        stockInfo.StockStatus = StockStatusEmun.閫佹瀹屾垚.ObjToInt();
+                        stockInfo.Details.ForEach(x =>
+                        {
+                            x.Status = StockStatusEmun.閫佹瀹屾垚.ObjToInt();
+                        });
+                        _checkOrderRepository.AddData(checkOrder);
+                    }
                     _stockRepository.StockInfoRepository.UpdateData(stockInfo);
                     _stockRepository.StockInfoDetailRepository.UpdateData(stockInfo.Details);
                 }
-                else if (task.TaskType == TaskTypeEnum.OutEmpty.ObjToInt())
+                else if (task.TaskType == TaskTypeEnum.OutEmpty.ObjToInt())//杈呮枡绌虹鍑哄簱瀹屾垚
                 {
                     _basicService.LocationInfoService.UpdateLocationStatus(locationInfo, stockInfo.PalletType, LocationStatusEnum.Free, stockInfo.WarehouseId);
                     _stockService.StockInfoService.Repository.DeleteAndMoveIntoHty(stockInfo, App.User.UserId == 0 ? OperateTypeEnum.鑷姩瀹屾垚 : OperateTypeEnum.浜哄伐瀹屾垚);
                 }
-                else if (task.TaskType == TaskTypeEnum.MesOutbound.ObjToInt())
+                else if (task.TaskType == TaskTypeEnum.MesOutbound.ObjToInt())//鏉挎枡Mes鍑哄簱瀹屾垚閫昏緫
                 {
                     _outboundService.MesOutboundOrderService.Repository.UpdateData(mesOutboundOrders);
                     _stockService.StockInfoService.Repository.DeleteAndMoveIntoHty(stockInfo, App.User.UserId == 0 ? OperateTypeEnum.鑷姩瀹屾垚 : OperateTypeEnum.浜哄伐瀹屾垚);
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_TaskInfoService/TaskService_Outbound.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_TaskInfoService/TaskService_Outbound.cs"
index 1574e33..11dc349 100644
--- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_TaskInfoService/TaskService_Outbound.cs"
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_TaskInfoService/TaskService_Outbound.cs"
@@ -884,6 +884,15 @@
                     {
                         x.StockStatus = StockStatusEmun.鍑哄簱閿佸畾.ObjToInt();
                     });
+                    outboundOrderDetails.ForEach(x =>
+                    {
+                        x.OrderDetailStatus = OrderDetailStatusEnum.Outbound.ObjToInt();
+                    });
+                    Dt_OutboundOrder outboundOrder = _outboundRepository.OutboundOrderRepository.QueryFirst(x => x.Id == outboundOrderDetails.FirstOrDefault().OrderId);
+                    if (outboundOrder.OrderStatus != OutOrderStatusEnum.鍑哄簱涓�.ObjToInt())
+                    {
+                        _outboundRepository.OutboundOrderRepository.UpdateData(outboundOrder);
+                    }
                     WebResponseContent content = _outboundService.OutboundOrderDetailService.LockOutboundStockDataUpdate(stockInfos, outboundOrderDetails, outStockLockInfos, locationInfos, tasks: tasks);
 
                     if (!content.Status)
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_TaskInfoService/WIDESEA_TaskInfoService.csproj" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_TaskInfoService/WIDESEA_TaskInfoService.csproj"
index d93a798..d716bcd 100644
--- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_TaskInfoService/WIDESEA_TaskInfoService.csproj"
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_TaskInfoService/WIDESEA_TaskInfoService.csproj"
@@ -9,6 +9,7 @@
   <ItemGroup>
     <ProjectReference Include="..\WIDESEA_External\WIDESEA_External.csproj" />
     <ProjectReference Include="..\WIDESEA_IBasicService\WIDESEA_IBasicService.csproj" />
+    <ProjectReference Include="..\WIDESEA_ICheckRepository\WIDESEA_ICheckRepository.csproj" />
     <ProjectReference Include="..\WIDESEA_IInboundService\WIDESEA_IInboundService.csproj" />
     <ProjectReference Include="..\WIDESEA_IOutboundService\WIDESEA_IOutboundService.csproj" />
     <ProjectReference Include="..\WIDESEA_IRecordService\WIDESEA_IRecordService.csproj" />
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/Check/CheckOrderResultController.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/Check/CheckOrderResultController.cs"
index 5e2bb12..9b4b87b 100644
--- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/Check/CheckOrderResultController.cs"
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/Check/CheckOrderResultController.cs"
@@ -30,6 +30,17 @@
             return Service.CommitCheckResult(checkOrderId, checkResult, isAccept);
         }
         /// <summary>
+        /// 鎻愪氦閫佹缁撴灉
+        /// </summary>
+        /// <param name="checkOrderId"></param>
+        /// <param name="checkResult"></param>
+        /// <returns></returns>
+        [HttpPost, Route("CommitInspectResult")]
+        public WebResponseContent CommitInspectResult(int checkOrderId, [FromBody] Dt_CheckOrderResult checkResult, int isAccept = 0)
+        {
+            return Service.CommitInspectResult(checkOrderId, checkResult, isAccept);
+        }
+        /// <summary>
         /// 鑾峰彇妫�楠屼俊鎭�
         /// </summary>
         /// <param name="checkId"></param>
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/ERP/ErpController.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/ERP/ErpController.cs"
index e67acf6..4431333 100644
--- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/ERP/ErpController.cs"
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/ERP/ErpController.cs"
@@ -233,11 +233,20 @@
         /// </summary>
         /// <returns></returns>
         [HttpPost, Route("InvokeCheckOrderApi"), AllowAnonymous]
-        public string InvokeCheckOrderApi(ERPCheckModel checkModel)
+        public string InvokeCheckOrderApi([FromBody] ERPCheckModel checkModel)
         {
             return _invokeERPService.InvokeCheckOrderApi(checkModel);
         }
         /// <summary>
+        /// 鎺ㄩ�丒RP鐗╂枡閫佹
+        /// </summary>
+        /// <returns></returns>
+        [HttpPost, Route("InvokeInspectApi"), AllowAnonymous]
+        public string InvokeInspectApi([FromBody] ERPInspectModel eRPInspectModel)
+        {
+            return _invokeERPService.InvokeInspectApi(eRPInspectModel);
+        }
+        /// <summary>
         /// 鎺ㄩ�丒RP鍏ュ簱
         /// </summary>
         /// <returns></returns>
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/Outbound/ErpProScrapSheetController.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/Outbound/ErpProScrapSheetController.cs"
new file mode 100644
index 0000000..a58f2ff
--- /dev/null
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/Outbound/ErpProScrapSheetController.cs"
@@ -0,0 +1,21 @@
+锘縰sing Microsoft.AspNetCore.Authorization;
+using Microsoft.AspNetCore.Mvc;
+using WIDESEA_Core.BaseController;
+using WIDESEA_Core;
+using WIDESEA_IOutboundService;
+using WIDESEA_Model.Models;
+
+namespace WIDESEA_WMSServer.Controllers.Outbound
+{
+    /// <summary>
+    /// 鎴愬搧鎶ュ簾鍗�
+    /// </summary>
+    [Route("api/ErpProScrapSheet")]
+    [ApiController]
+    public class ErpProScrapSheetController : ApiBaseController<IErpProScrapSheetService, Dt_ErpProScrapSheet>
+    {
+        public ErpProScrapSheetController(IErpProScrapSheetService service) : base(service)
+        {
+        }
+    }
+}
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/Outbound/ErpProScrapSheetDetailController.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/Outbound/ErpProScrapSheetDetailController.cs"
new file mode 100644
index 0000000..986bfa7
--- /dev/null
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/Outbound/ErpProScrapSheetDetailController.cs"
@@ -0,0 +1,20 @@
+锘縰sing Microsoft.AspNetCore.Mvc;
+using WIDESEA_Core.BaseController;
+using WIDESEA_IOutboundService;
+using WIDESEA_Model.Models;
+
+namespace WIDESEA_WMSServer.Controllers.Outbound
+{
+    /// <summary>
+    /// 鎴愬搧鎶ュ簾鍗曟槑缁�
+    /// </summary>
+    [Route("api/ErpProScrapSheetDetail")]
+    [ApiController]
+    public class ErpProScrapSheetDetailController : ApiBaseController<IErpProScrapSheetDetailService, Dt_ErpProScrapSheetDetail>
+    {
+        public ErpProScrapSheetDetailController(IErpProScrapSheetDetailService service) : base(service)
+        {
+
+        }
+    }
+}
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/Outbound/ProOutOrderController.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/Outbound/ProOutOrderController.cs"
index e7e0f8e..a5cbeba 100644
--- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/Outbound/ProOutOrderController.cs"
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/Outbound/ProOutOrderController.cs"
@@ -63,9 +63,9 @@
         /// 鏌ヨERP璁㈠崟鎵i櫎搴撳瓨鏁伴噺
         /// </summary>
         [HttpPost, HttpGet, Route("OutProErpSync")]
-        public async Task<WebResponseContent> OutProErpSync(string outProOrderNo)
+        public WebResponseContent OutProErpSync(string outProOrderNo)
         {
-            return await Service.OutProErpSync(outProOrderNo);
+            return Service.OutProErpSync(outProOrderNo);
         }
         /// <summary>
         /// 鍑哄簱鍗曟壂鐮佸悓姝RP
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/appsettings.json" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/appsettings.json"
index 2681d16..8afbe7f 100644
--- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/appsettings.json"
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/appsettings.json"
@@ -6,7 +6,7 @@
       "Microsoft.AspNetCore": "Warning"
     }
   },
-  "dics": "inOrderType,outOrderType,inboundState,createType,enableEnum,enableStatusEnum,locationStatusEnum,locationTypeEnum,taskTypeEnum,taskStatusEnum,outboundStatusEnum,orderDetailStatusEnum,stockStatusEmun,stockChangeType,outStockStatus,receiveOrderTypeEnum,authorityScope,authorityScopes,locationChangeType,warehouses,suppliers,taskType,receiveStatus,purchaseType,purchaseOrderStatus,printStatus,returnStatus,returnType,outLockStockStatusEnum,checkOrderStatusEnum,checkUploadEnum,checkAcceptEnum,proStockAttributeEnum,materielSourceTypeEnum,materielTypeEnum,customerOutRuleEnum",
+  "dics": "inOrderType,outOrderType,inboundState,createType,enableEnum,enableStatusEnum,locationStatusEnum,locationTypeEnum,taskTypeEnum,taskStatusEnum,outboundStatusEnum,orderDetailStatusEnum,stockStatusEmun,stockChangeType,outStockStatus,receiveOrderTypeEnum,authorityScope,authorityScopes,locationChangeType,warehouses,suppliers,taskType,receiveStatus,purchaseType,purchaseOrderStatus,printStatus,returnStatus,returnType,outLockStockStatusEnum,checkOrderStatusEnum,checkUploadEnum,checkAcceptEnum,proStockAttributeEnum,materielSourceTypeEnum,materielTypeEnum,customerOutRuleEnum,proScrapStatusEnum,checkTypeEnum,inspectAcceptEnum,inspectResultEnum",
   "AllowedHosts": "*",
   "ConnectionStringsEncryption": false,
   "MainDB": "DB_WIDESEA", //褰撳墠椤圭洰鐨勪富搴擄紝鎵�瀵瑰簲鐨勮繛鎺ュ瓧绗︿覆鐨凟nabled蹇呴』涓簍rue

--
Gitblit v1.9.3