From 68a2cc40b6d7f438267f9dc74bb2f6045cf4f01d Mon Sep 17 00:00:00 2001
From: dengjunjie <dengjunjie@hnkhzn.com>
Date: 星期三, 15 一月 2025 10:18:17 +0800
Subject: [PATCH] 1

---
 代码管理/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/AGV/AGV_CSJExtend.cs                                             |    6 
 代码管理/WMS/WIDESEA_WMSServer/WIDESEA_Common/OrderEnum/MesOutboundOrderType.cs                                  |   12 +
 代码管理/WMS/WIDESEA_WMSServer/WIDESEA_TaskInfoService/TaskService_Inbound.cs                                    |    2 
 代码管理/淮安PDA/pages/stash/receiveorderoutbound.vue                                                              |   15 +
 代码管理/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/FileContentIndex/d7c583d9-acf0-49bb-8248-e69ce4ffd40c.vsidx |    0 
 代码管理/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/FileContentIndex/0ab50d0d-a6f6-4ee8-8c70-1d34f5126aeb.vsidx |    0 
 代码管理/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/油墨仓/CommonHoisterJob.cs                                          |    8 
 代码管理/WMS/WIDESEA_WMSServer/WIDESEA_ITaskInfoService/ITaskService.cs                                          |    9 
 代码管理/WCS/WIDESEAWCS_Server/WIDESEAWCS_Model/WIDESEAWCS_Model.csproj                                          |    2 
 代码管理/WMS/WIDESEA_WMSServer/WIDESEA_TaskInfoService/AssignInboundTaskLocation_BC.cs                           |  106 +++++++++
 代码管理/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/FileContentIndex/c27c829f-7a3d-4626-bb9f-b920ddec36a6.vsidx |    0 
 代码管理/淮安PDA/common/config.js                                                                                  |    2 
 代码管理/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/Outbound/MesOutboundOrderController.cs              |   11 +
 代码管理/淮安PDA/pages/stash/boxing.vue                                                                            |    8 
 代码管理/WMS/WIDESEA_WMSServer/WIDESEA_Common/TaskEnum/TaskTypeEnum.cs                                           |   13 +
 代码管理/WMS/WIDESEA_WMSServer/WIDESEA_TaskInfoService/TaskService.cs                                            |    2 
 代码管理/淮安PDA/pages/stash/raworderboxing.vue                                                                    |   17 +
 代码管理/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/TaskInfo/TaskController.cs                          |   11 +
 代码管理/WMS/WIDESEA_WMSClient/src/extension/outbound/mesOutboundOrder.js                                        |  101 +++++++++
 代码管理/WMS/WIDESEA_WMSServer/WIDESEA_InboundService/ReceiveOrderDetailService.cs                               |   17 +
 /dev/null                                                                                                    |    0 
 代码管理/WMS/WIDESEA_WMSClient/src/views/outbound/mesOutboundOrder.vue                                           |    2 
 代码管理/淮安PDA/pages/stash/TakeStock.vue                                                                         |   10 
 代码管理/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/板材仓/ConveyorLineJob_BC.cs                                        |   11 +
 代码管理/WMS/WIDESEA_WMSServer/WIDESEA_IOutboundService/IMesOutboundOrderService.cs                              |    7 
 代码管理/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/板材仓/StackerCraneJob_BC.cs                                        |    9 
 代码管理/淮安PDA/pages/stash/receiveorder.vue                                                                      |    2 
 代码管理/WMS/WIDESEA_WMSServer/WIDESEA_SystemService/Sys_RoleService.cs                                          |    2 
 代码管理/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/Outbound/OutboundOrderController.cs                 |    6 
 代码管理/淮安PDA/pages/stash/pickingMat.vue                                                                        |    8 
 代码管理/WMS/WIDESEA_WMSClient/config/buttons.js                                                                 |    9 
 代码管理/WMS/WIDESEA_WMSClient/src/extension/outbound/extend/addMesOutOrder.vue                                  |  163 ++++++++++++++
 代码管理/WMS/WIDESEA_WMSServer/WIDESEA_OutboundService/MesOutboundOrderService.cs                                |   50 ++++
 代码管理/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/板材仓/RGVJob_BC.cs                                                 |    1 
 34 files changed, 582 insertions(+), 40 deletions(-)

diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/FileContentIndex/0ab50d0d-a6f6-4ee8-8c70-1d34f5126aeb.vsidx" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/FileContentIndex/0ab50d0d-a6f6-4ee8-8c70-1d34f5126aeb.vsidx"
new file mode 100644
index 0000000..ee99032
--- /dev/null
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/FileContentIndex/0ab50d0d-a6f6-4ee8-8c70-1d34f5126aeb.vsidx"
Binary files differ
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/FileContentIndex/6d6fd497-0513-41bc-af51-04d63cd9843e.vsidx" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/FileContentIndex/6d6fd497-0513-41bc-af51-04d63cd9843e.vsidx"
deleted file mode 100644
index d7df79e..0000000
--- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/FileContentIndex/6d6fd497-0513-41bc-af51-04d63cd9843e.vsidx"
+++ /dev/null
Binary files differ
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/FileContentIndex/8cc7cbb4-d887-4b48-8514-053a923806f4.vsidx" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/FileContentIndex/8cc7cbb4-d887-4b48-8514-053a923806f4.vsidx"
deleted file mode 100644
index a94af99..0000000
--- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/FileContentIndex/8cc7cbb4-d887-4b48-8514-053a923806f4.vsidx"
+++ /dev/null
Binary files differ
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/FileContentIndex/9d850b17-0be4-494b-9f52-085d0b20437e.vsidx" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/FileContentIndex/9d850b17-0be4-494b-9f52-085d0b20437e.vsidx"
deleted file mode 100644
index 00fc9b2..0000000
--- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/FileContentIndex/9d850b17-0be4-494b-9f52-085d0b20437e.vsidx"
+++ /dev/null
Binary files differ
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/FileContentIndex/c27c829f-7a3d-4626-bb9f-b920ddec36a6.vsidx" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/FileContentIndex/c27c829f-7a3d-4626-bb9f-b920ddec36a6.vsidx"
new file mode 100644
index 0000000..572bee1
--- /dev/null
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/FileContentIndex/c27c829f-7a3d-4626-bb9f-b920ddec36a6.vsidx"
Binary files differ
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_Model/WIDESEAWCS_Model.csproj" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_Model/WIDESEAWCS_Model.csproj"
index 0da9e1f..c6d82b8 100644
--- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_Model/WIDESEAWCS_Model.csproj"
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_Model/WIDESEAWCS_Model.csproj"
@@ -8,7 +8,7 @@
 
 	<ItemGroup>
 		<PackageReference Include="System.Text.RegularExpressions" Version="4.3.1" />
-		<PackageReference Include="WIDESEAWCS_Core" Version="1.0.11" />
+		<PackageReference Include="WIDESEAWCS_Core" Version="1.0.12" />
 	</ItemGroup>
 
 	<ItemGroup>
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/AGV/AGV_CSJExtend.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/AGV/AGV_CSJExtend.cs"
index f26d272..a56bf1b 100644
--- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/AGV/AGV_CSJExtend.cs"
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/AGV/AGV_CSJExtend.cs"
@@ -53,6 +53,7 @@
                         {
                             agvTask.TaskState = TaskStatusEnum.AGV_Executing.ObjToInt();
                             //agvTask.Remark = content.Data.ObjToString();
+                            _taskService.UpdateTask(agvTask, TaskStatusEnum.AGV_Executing);
                         }
                         else
                         {
@@ -88,7 +89,7 @@
                 {
                     if (WaitToTask.TaskType.GetTaskTypeGroup() == TaskTypeGroup.InboundGroup)
                     {
-                        if (WaitToTasks.FirstOrDefault(x=>x.TaskState==TaskStatusEnum.AGV_Puting.ObjToInt())!=null)
+                        if (WaitToTasks.FirstOrDefault(x=>x.TaskState==TaskStatusEnum.AGV_Puting.ObjToInt() || x.TaskState == TaskStatusEnum.Finish.ObjToInt()) !=null)
                         {
                             continue;
                         }
@@ -150,16 +151,19 @@
                     if (content.Status && WaitToTask.TaskType.GetTaskTypeGroup() == TaskTypeGroup.InboundGroup)
                     {
                         WaitToTask.TaskState = TaskStatusEnum.AGV_Puting.ObjToInt();
+                        _taskService.UpdateTask(WaitToTask, TaskStatusEnum.AGV_Puting);
                         break;
                     }
                     else if (content.Status && WaitToTask.TaskType.GetTaskTypeGroup() == TaskTypeGroup.OutbondGroup)
                     {
                         WaitToTask.TaskState = TaskStatusEnum.AGV_Executing.ObjToInt();
+                        _taskService.UpdateTask(WaitToTask, TaskStatusEnum.AGV_Executing);
                     }
                     else
                     {
                         WaitToTask.TaskState = TaskStatusEnum.Exception.ObjToInt();
                         WaitToTask.ExceptionMessage = content.Message;
+                        _taskService.UpdateTask(WaitToTask, TaskStatusEnum.Exception);
                     }
                 }
                 _taskService.UpdateData(WaitToTasks);
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/\346\235\277\346\235\220\344\273\223/ConveyorLineJob_BC.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/\346\235\277\346\235\220\344\273\223/ConveyorLineJob_BC.cs"
index 7f50783..f6d4ff9 100644
--- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/\346\235\277\346\235\220\344\273\223/ConveyorLineJob_BC.cs"
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/\346\235\277\346\235\220\344\273\223/ConveyorLineJob_BC.cs"
@@ -114,6 +114,13 @@
                                         _taskService.UpdateTask(task, TaskStatusEnum.Line_Execute, deviceCode: item.StationDeviceCode, roadwayNo: responseContent.Data.ToString() ?? "");
                                     }
                                 }
+                                else
+                                {
+                                    if (conveyorLineInfoWrite.Spare2 != 0)
+                                    {
+                                        WriteDebug(device.DeviceName, $"鍚姩淇″彿宸插啓鍏�");
+                                    }
+                                }
                                 #endregion
                             }
 
@@ -173,6 +180,10 @@
                                         device.SetValue(W_ConveyorLineDB.ACK, true, item.StationCode);
                                         _taskService.UpdateTask(task, taskState, currentAddress: currentAddress, nextAddress: nextAddress, targetAddress: targetAddress, deviceCode: deviceCode);
                                     }
+                                    else
+                                    {
+                                        WriteInfo(device.DeviceName, $"鏈壘鍒版墭鐩榹conveyorLineInfoRead.Barcode}瀵瑰簲鐨勪换鍔′俊鎭�");
+                                    }
                                     #endregion
                                 }
                                 else//鐢熶骇閫�搴�
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/\346\235\277\346\235\220\344\273\223/RGVJob_BC.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/\346\235\277\346\235\220\344\273\223/RGVJob_BC.cs"
index bff0b97..33ebd26 100644
--- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/\346\235\277\346\235\220\344\273\223/RGVJob_BC.cs"
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/\346\235\277\346\235\220\344\273\223/RGVJob_BC.cs"
@@ -201,6 +201,7 @@
                             }
                             else if (conveyorLineSignalRead.STB /*&& conveyorLineStatus.Online && conveyorLineStatus.Goods && !conveyorLineStatus.Alarm*/ && !conveyorLineSignalWrite.ACK && conveyorLineInfoRead.TaskNum > 0)//鍑哄簱
                             {
+                                WriteDebug(device.DeviceName, $"浠诲姟瀹屾垚,浠诲姟鍙�:{conveyorLineInfoRead.TaskNum}");
                                 _taskService.TaskCompleted(conveyorLineInfoRead.TaskNum);
                                 device.SetValue(W_ConveyorLineDB.ACK, true, item.StationCode);
                             }
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/\346\235\277\346\235\220\344\273\223/StackerCraneJob_BC.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/\346\235\277\346\235\220\344\273\223/StackerCraneJob_BC.cs"
index 1725ca9..c498401 100644
--- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/\346\235\277\346\235\220\344\273\223/StackerCraneJob_BC.cs"
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/\346\235\277\346\235\220\344\273\223/StackerCraneJob_BC.cs"
@@ -169,16 +169,17 @@
                         Dt_StationManger stationManger = _stationMangerRepository.QueryFirst(x => x.StackerCraneStationCode == task.NextAddress);
                         if (stationManger == null)
                         {
-                            _taskExecuteDetailService.AddTaskExecuteDetail(taskNum, $"杈撻�佺嚎鍑哄簱绔欑偣鏈厤缃�,{task.NextAddress}");
+                            //_taskExecuteDetailService.AddTaskExecuteDetail(taskNum, $"杈撻�佺嚎鍑哄簱绔欑偣鏈厤缃�,{task.NextAddress}");
                             _taskService.UpdateTaskExceptionMessage(taskNum, $"杈撻�佺嚎鍑哄簱绔欑偣鏈厤缃�,{task.NextAddress}");
-                            WriteInfo(deviceCode, $"杈撻�佺嚎鍑哄簱绔欑偣鏈厤缃�,{task.NextAddress}");
+                            WriteError(deviceCode, $"杈撻�佺嚎鍑哄簱绔欑偣鏈厤缃�,{task.NextAddress}");
                             return WebResponseContent.Instance.Error($"杈撻�佺嚎鍑哄簱绔欑偣鏈厤缃�,{task.NextAddress}");
                         }
                         Dt_Router router = _routerRepository.QueryFirst(x => x.InOutType == task.TaskType && x.StartPosi == stationManger.StationCode);
                         if (router == null)
                         {
-                            _taskExecuteDetailService.AddTaskExecuteDetail(taskNum, $"鏈壘鍒拌矾鐢变俊鎭�,{task.NextAddress}");
+                            //_taskExecuteDetailService.AddTaskExecuteDetail(taskNum, $"鏈壘鍒拌矾鐢变俊鎭�,{task.NextAddress}");
                             _taskService.UpdateTaskExceptionMessage(taskNum, $"鏈壘鍒拌矾鐢变俊鎭�,{task.NextAddress}");
+                            WriteError(deviceCode, $"鏈壘鍒拌矾鐢变俊鎭�,{task.NextAddress}");
                             return WebResponseContent.Instance.Error($"鏈壘鍒拌矾鐢变俊鎭�,{task.NextAddress}");
                         }
 
@@ -338,7 +339,7 @@
             stackerCraneTaskCommand.Barcode = task.PalletCode;
             stackerCraneTaskCommand.TaskNum = task.TaskNum;
             stackerCraneTaskCommand.WorkType = 1;
-            stackerCraneTaskCommand.TrayType = (Int16)task.PalletType;
+            stackerCraneTaskCommand.TrayType = (short)task.PalletType;
             if (task.TaskType.GetTaskTypeGroup() == TaskTypeGroup.InboundGroup)//鍒ゆ柇鏄惁鏄叆搴撲换鍔�
             {
                 string[] startCodes = task.CurrentAddress.Split("-");
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/\346\262\271\345\242\250\344\273\223/CommonHoisterJob.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/\346\262\271\345\242\250\344\273\223/CommonHoisterJob.cs"
index 9246eaf..fa169f0 100644
--- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/\346\262\271\345\242\250\344\273\223/CommonHoisterJob.cs"
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/\346\262\271\345\242\250\344\273\223/CommonHoisterJob.cs"
@@ -103,7 +103,13 @@
                         }
                         else if (leisure && !tray && !requestIn && !inbounding && !requestOut && !outbounding)
                         {
-                            Dt_Task task = _taskRepository.QueryFirst(x => x.TaskState == TaskStatusEnum.New.ObjToInt() && string.IsNullOrEmpty(x.TargetAddress) && _taskService.TaskOutboundTypes.Contains(x.TaskType) && x.TaskType != TaskTypeEnum.MesOutbound.ObjToInt());
+                            Dt_StationManger? stationManger = stationMangers.FirstOrDefault(x => x.StationCode == deviceChildCode);
+                            if (stationManger == null)
+                            {
+                                WriteError(hoister.DeviceName, $"鏈壘鍒板搴旂珯鍙颁俊鎭�,璁惧缂栧彿:{deviceChildCode}");
+                                break;
+                            }
+                            Dt_Task task = _taskRepository.QueryFirst(x => x.TaskState == TaskStatusEnum.New.ObjToInt() && string.IsNullOrEmpty(x.TargetAddress) && _taskService.TaskOutboundTypes.Contains(x.TaskType) && x.TaskType != TaskTypeEnum.MesOutbound.ObjToInt() && x.Roadway== stationManger.StackerCraneCode);
                             if (task != null)
                             {
                                 task.TaskState=TaskStatusEnum.HT_Executing.ObjToInt();
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSClient/config/buttons.js" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSClient/config/buttons.js"
index 9e6e9df..67c05e7 100644
--- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSClient/config/buttons.js"
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSClient/config/buttons.js"
@@ -171,6 +171,15 @@
     onClick: function () {
     }
 },
+{
+    name: "鎵ц鍑哄簱",
+    icon: '',
+    class: '',
+    value: 'ExecuteOutbound',
+    type: 'success',
+    onClick: function () {
+    }
+},
 ]
 
 export default buttons
\ 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/outbound/extend/addMesOutOrder.vue" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSClient/src/extension/outbound/extend/addMesOutOrder.vue"
new file mode 100644
index 0000000..26dd254
--- /dev/null
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSClient/src/extension/outbound/extend/addMesOutOrder.vue"
@@ -0,0 +1,163 @@
+<template>
+  <div>
+    <vol-box
+      v-model="showDetailBox"
+      :lazy="true"
+      width="60%"
+      :padding="15"
+      title="Mes鍑哄簱鍗�(鏂板缓)"
+    >
+      <div>
+        <el-form :inline="true" :model="formData" ref="formData">
+          <el-form-item
+            label="鎵�灞炰粨搴�:"
+            style="width: 30%"
+            required
+            prop="warehouseId"
+          >
+            <el-select v-model="formData.warehouseId" placeholder="璇烽�夋嫨浠撳簱">
+              <el-option label="鏉挎潗浠�" value="3"></el-option>
+            </el-select>
+          </el-form-item>
+          <el-form-item
+            label="鐗╂枡缂栫爜:"
+            style="width: 30%"
+            required
+            prop="materialCode"
+          >
+            <el-input
+              v-model="formData.materialCode"
+              placeholder="璇疯緭鍏ョ墿鏂欑紪鐮�"
+            ></el-input>
+          </el-form-item>
+          <el-form-item
+            label="鍑哄簱鏁伴噺:"
+            style="width: 30%"
+            required
+            prop="num"
+          >
+            <el-input-number
+              v-model="formData.num"
+              :min="1"
+              label="璇疯緭鍏ュ嚭搴撴暟閲�"
+            ></el-input-number>
+          </el-form-item>
+          <el-form-item
+            label="鍑哄簱鍦板潃:"
+            style="width: 30%"
+            required
+            prop="outAddress"
+          >
+            <el-select
+              v-model="formData.outAddress"
+              placeholder="璇烽�夋嫨鍑哄簱鍦板潃"
+            >
+              <el-option label="涓�宸烽亾浜屽眰涓婃枡浣�" value="1011"></el-option>
+              <el-option label="SCUTL-001" value="SCUTL-001"></el-option>
+            </el-select>
+          </el-form-item>
+          <!-- <el-form-item label="浠撳簱">
+            <el-col :span="8">
+              <el-select v-model="warehouseId" placeholder="璇烽�夋嫨浠撳簱">
+                <el-option label="鏉挎潗浠�" value="3"></el-option>
+              </el-select>
+            </el-col>
+          </el-form-item> -->
+        </el-form>
+      </div>
+
+      <template #footer>
+        <el-button type="primary" size="small" @click="add">纭畾</el-button>
+        <el-button type="danger" size="small" @click="showDetailBox = false"
+          >鍏抽棴</el-button
+        >
+      </template>
+    </vol-box>
+  </div>
+</template>
+  <script>
+import VolBox from "@/components/basic/VolBox.vue";
+export default {
+  components: { VolBox },
+  data() {
+    return {
+      showDetailBox: false,
+      formData: {
+        warehouseId: "",
+        materialCode: "",
+        num: 1,
+        outAddress: "",
+      },
+    };
+  },
+  methods: {
+    open() {
+      this.showDetailBox = true;
+    },
+    add() {
+      var params = {
+        //warehouseId: this.formData.warehouseId,
+        materialCode: this.formData.materialCode,
+        requiredQuantity: this.formData.num,
+        line: this.formData.outAddress,
+      };
+
+      this.http
+        .post("/api/mesOutboundOrder/AddMesOrder", params, "鏁版嵁澶勭悊涓�...")
+        .then((res) => {
+          if (!res.status) return this.$message.error(x.message);
+          this.$message.success("鎿嶄綔鎴愬姛");
+          this.showDetailBox = false;
+          this.$emit("parentCall", ($vue) => {
+            $vue.refresh();
+          });
+        });
+    },
+  },
+};
+</script>
+  <style scoped>
+.less-style {
+  color: black;
+}
+
+.equle-style {
+  color: green;
+}
+
+.more-style {
+  color: red;
+}
+</style>
+  
+  <style>
+.text-button:hover {
+  background-color: #f0f9eb !important;
+}
+
+.el-table .warning-row {
+  background: oldlace;
+}
+
+.box-table .el-table tbody tr:hover > td {
+  background-color: #d8e0d4 !important;
+  /* color: #ffffff; */
+}
+
+.box-table .el-table tbody tr.current-row > td {
+  background-color: #f0f9eb !important;
+  /* color: #ffffff; */
+}
+
+.el-table .success-row {
+  background: #f0f9eb;
+}
+
+.box-table .el-table {
+  border: 1px solid #ebeef5;
+}
+
+.box-head .el-alert__content {
+  width: 100%;
+}
+</style>
\ No newline at end of file
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSClient/src/extension/outbound/mesOutboundOrder.js" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSClient/src/extension/outbound/mesOutboundOrder.js"
new file mode 100644
index 0000000..4bb4e08
--- /dev/null
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSClient/src/extension/outbound/mesOutboundOrder.js"
@@ -0,0 +1,101 @@
+
+//姝s鏂囦欢鏄敤鏉ヨ嚜瀹氫箟鎵╁睍涓氬姟浠g爜锛屽彲浠ユ墿灞曚竴浜涜嚜瀹氫箟椤甸潰鎴栬�呴噸鏂伴厤缃敓鎴愮殑浠g爜
+import gridBody from './extend/addMesOutOrder.vue'
+let extension = {
+  components: {
+    //鏌ヨ鐣岄潰鎵╁睍缁勪欢
+    gridHeader: '',
+    gridBody: gridBody,
+    gridFooter: '',
+    //鏂板缓銆佺紪杈戝脊鍑烘鎵╁睍缁勪欢
+    modelHeader: '',
+    modelBody: '',
+    modelFooter: ''
+  },
+  tableAction: '', //鎸囧畾鏌愬紶琛ㄧ殑鏉冮檺(杩欓噷濉啓琛ㄥ悕,榛樿涓嶇敤濉啓)
+  buttons: { view: [], box: [], detail: [] }, //鎵╁睍鐨勬寜閽�
+  methods: {
+    //涓嬮潰杩欎簺鏂规硶鍙互淇濈暀涔熷彲浠ュ垹闄�
+    onInit() {
+
+      let addButton = this.buttons.find(item => item.value == 'Add');
+      if (addButton) {
+        addButton.onClick = () => {
+          this.$refs.gridBody.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, "鏁版嵁澶勭悊涓�...")
+            .then((x) => {
+              if (x.status) {
+                this.$Message.success('鏁版嵁澶勭悊鎴愬姛.');
+                this.refresh();
+              } else {
+                return this.$error(x.message);
+              }
+            });
+        }
+      }
+
+      //鎵╁睍椤甸潰鍒濆鍖栨搷浣�
+      this.columns.push({
+        field: '鎿嶄綔',
+        title: '鎿嶄綔',
+        width: 90,
+        fixed: 'right',
+        align: 'center',
+        formatter: (row) => {
+          return (
+            '<i style="cursor: pointer;color: #2d8cf0;"class="el-icon-view">鏌ョ湅鏄庣粏</i>'
+          );
+        },
+        click: (row) => {
+          this.$refs.gridBody.open(row);
+        }
+      });
+    },
+    onInited() {
+      //妗嗘灦鍒濆鍖栭厤缃悗
+      //濡傛灉瑕侀厤缃槑缁嗚〃,鍦ㄦ鏂规硶鎿嶄綔
+      //this.detailOptions.columns.forEach(column=>{ });
+    },
+    searchBefore(param) {
+      //鐣岄潰鏌ヨ鍓�,鍙互缁檖aram.wheres娣诲姞鏌ヨ鍙傛暟
+      //杩斿洖false锛屽垯涓嶄細鎵ц鏌ヨ
+      return true;
+    },
+    searchAfter(result) {
+      //鏌ヨ鍚庯紝result杩斿洖鐨勬煡璇㈡暟鎹�,鍙互鍦ㄦ樉绀哄埌琛ㄦ牸鍓嶅鐞嗚〃鏍肩殑鍊�
+      return true;
+    },
+    addBefore(formData) {
+      //鏂板缓淇濆瓨鍓峟ormData涓哄璞★紝鍖呮嫭鏄庣粏琛紝鍙互缁欑粰琛ㄥ崟璁剧疆鍊硷紝鑷繁杈撳嚭鐪媐ormData鐨勫��
+      return true;
+    },
+    updateBefore(formData) {
+      //缂栬緫淇濆瓨鍓峟ormData涓哄璞★紝鍖呮嫭鏄庣粏琛ㄣ�佸垹闄よ鐨処d
+      return true;
+    },
+    rowClick({ row, column, event }) {
+      //鏌ヨ鐣岄潰鐐瑰嚮琛屼簨浠�
+      this.$refs.table.$refs.table.toggleRowSelection(row); //鍗曞嚮琛屾椂閫変腑褰撳墠琛�;
+    },
+    modelOpenAfter(row) {
+      //鐐瑰嚮缂栬緫銆佹柊寤烘寜閽脊鍑烘鍚庯紝鍙互鍦ㄦ澶勫啓閫昏緫锛屽锛屼粠鍚庡彴鑾峰彇鏁版嵁
+      //(1)鍒ゆ柇鏄紪杈戣繕鏄柊寤烘搷浣滐細 this.currentAction=='Add';
+      //(2)缁欏脊鍑烘璁剧疆榛樿鍊�
+      //(3)this.editFormFields.瀛楁='xxx';
+      //濡傛灉闇�瑕佺粰涓嬫媺妗嗚缃粯璁ゅ�硷紝璇烽亶鍘唗his.editFormOptions鎵惧埌瀛楁閰嶇疆瀵瑰簲data灞炴�х殑key鍊�
+      //鐪嬩笉鎳傚氨鎶婅緭鍑虹湅锛歝onsole.log(this.editFormOptions)
+    }
+  }
+};
+export default extension;
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSClient/src/views/outbound/mesOutboundOrder.vue" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSClient/src/views/outbound/mesOutboundOrder.vue"
index bf25d44..e5c696c 100644
--- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSClient/src/views/outbound/mesOutboundOrder.vue"
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSClient/src/views/outbound/mesOutboundOrder.vue"
@@ -14,7 +14,7 @@
     </view-grid>
   </template>
     <script>
-  import extend from "@/extension/outbound/outboundOrderDetail.js";
+  import extend from "@/extension/outbound/mesOutboundOrder.js";
   import { ref, defineComponent } from "vue";
   export default defineComponent({
     setup() {
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/FileContentIndex/2ad7410e-7b16-4692-8ca2-e7055946c8fa.vsidx" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/FileContentIndex/2ad7410e-7b16-4692-8ca2-e7055946c8fa.vsidx"
deleted file mode 100644
index 597a8a5..0000000
--- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/FileContentIndex/2ad7410e-7b16-4692-8ca2-e7055946c8fa.vsidx"
+++ /dev/null
Binary files differ
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/FileContentIndex/4b3148ac-ac73-4f51-871c-b180e5505f3e.vsidx" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/FileContentIndex/4b3148ac-ac73-4f51-871c-b180e5505f3e.vsidx"
deleted file mode 100644
index 62a2d2a..0000000
--- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/FileContentIndex/4b3148ac-ac73-4f51-871c-b180e5505f3e.vsidx"
+++ /dev/null
Binary files differ
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/FileContentIndex/d7c583d9-acf0-49bb-8248-e69ce4ffd40c.vsidx" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/FileContentIndex/d7c583d9-acf0-49bb-8248-e69ce4ffd40c.vsidx"
new file mode 100644
index 0000000..5181cd7
--- /dev/null
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/FileContentIndex/d7c583d9-acf0-49bb-8248-e69ce4ffd40c.vsidx"
Binary files differ
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/FileContentIndex/dd0e45d4-3741-49da-b1eb-25a4729fc53f.vsidx" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/FileContentIndex/dd0e45d4-3741-49da-b1eb-25a4729fc53f.vsidx"
deleted file mode 100644
index 586f76a..0000000
--- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/FileContentIndex/dd0e45d4-3741-49da-b1eb-25a4729fc53f.vsidx"
+++ /dev/null
Binary files differ
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_Common/OrderEnum/MesOutboundOrderType.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_Common/OrderEnum/MesOutboundOrderType.cs"
index d269e16..31f61eb 100644
--- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_Common/OrderEnum/MesOutboundOrderType.cs"
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_Common/OrderEnum/MesOutboundOrderType.cs"
@@ -23,5 +23,17 @@
         /// </summary>
         [Description("鍩烘澘浣欐枡閫�搴�")]
         SubstrateBack = 200,
+
+        /// <summary>
+        /// 鎵嬪姩鍩烘澘鍑哄簱
+        /// </summary>
+        [Description("鎵嬪姩鍩烘澘鍑哄簱")]
+        HandSubstrateOut = 300,
+
+        /// <summary>
+        /// 鎵嬪姩鍩烘澘鍑哄簱鎷i��
+        /// </summary>
+        [Description("鎵嬪姩鍩烘澘鍑哄簱鎷i��")]
+        HandSubstrateOutPick = 400,
     }
 }
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_Common/TaskEnum/TaskTypeEnum.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_Common/TaskEnum/TaskTypeEnum.cs"
index 60d5863..1013730 100644
--- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_Common/TaskEnum/TaskTypeEnum.cs"
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_Common/TaskEnum/TaskTypeEnum.cs"
@@ -41,6 +41,19 @@
         /// </summary>
         [Description("MES鍑哄簱")]
         MesOutbound = 200,
+
+        /// <summary>
+        /// MES鎵嬪姩鍑哄簱
+        /// </summary>
+        [Description("MES鎵嬪姩鍑哄簱")]
+        MesHandOutbound = 210,
+
+        /// <summary>
+        /// MES鎵嬪姩鎷i�夊嚭搴�
+        /// </summary>
+        [Description("MES鎵嬪姩鎷i�夊嚭搴�")]
+        MesHandPickOutbound = 220,
+
         /// <summary>
         /// 閲囪喘鍏ュ簱
         /// </summary>
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_IOutboundService/IMesOutboundOrderService.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_IOutboundService/IMesOutboundOrderService.cs"
index 0704dab..95fb08f 100644
--- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_IOutboundService/IMesOutboundOrderService.cs"
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_IOutboundService/IMesOutboundOrderService.cs"
@@ -37,5 +37,12 @@
         /// <param name="tasks"></param>
         /// <returns></returns>
         WebResponseContent LockOutboundStockDataUpdate(List<Dt_StockInfo> stockInfos, List<Dt_OutStockLockInfo> outStockLockInfos, List<Dt_LocationInfo> locationInfos, LocationStatusEnum locationStatus = LocationStatusEnum.Lock, List<Dt_Task>? tasks = null);
+
+        /// <summary>
+        /// 
+        /// </summary>
+        /// <param name="substrateOutModel"></param>
+        /// <returns></returns>
+        WebResponseContent AddMesOrder(SubstrateOutModel substrateOutModel);
     }
 }
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_ITaskInfoService/ITaskService.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_ITaskInfoService/ITaskService.cs"
index b8274e8..a1aab3b 100644
--- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_ITaskInfoService/ITaskService.cs"
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_ITaskInfoService/ITaskService.cs"
@@ -239,11 +239,20 @@
         WebResponseContent AssignRoadway(List<string> roadwayNos);
 
         /// <summary>
+        /// 
+        /// </summary>
+        /// <param name="orderId"></param>
+        /// <returns></returns>
+        WebResponseContent HandSubstrateOut(int orderId);
+
+        /// <summary>
         /// 淇敼浠诲姟鐘舵��
         /// </summary>
         /// <param name="task"></param>
         /// <returns></returns>
         WebResponseContent UpdateTaskInfo(WCSTaskDTO task);
+
+
         WebResponseContent GeneratePKOutboundTask(int orderDetailId, List<StockSelectViewDTO> stockSelectViews);
     }
 }
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 0e8e15d..eb1fd26 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"
@@ -94,20 +94,21 @@
                 {
                     return WebResponseContent.Instance.Error($"璇ラ噰璐崟鏄庣粏鏀惰揣宸插畬鎴�");
                 }
-                //鍒ゆ柇鏄惁瀛樺湪瀵瑰簲閲囪喘鏄庣粏鐨勬敹璐ф槑缁�
-                Dt_ReceiveOrderDetail? detail = receiveOrder.Details.FirstOrDefault(x => x.PurchaseOrderNo == model.PurchaseOrderNo && x.PurchaseOrderDetailRowNo == purchaseOrderDetail.RowNo);
-                if (detail != null && detail.ReceivedQuantity == purchaseOrderDetail.PurchaseDetailQuantity)
+                //鍒ゆ柇璇ラ噰璐崟鏄庣粏鏄惁宸插瓨鍦ㄦ槑缁�
+                List<Dt_ReceiveOrderDetail> details = receiveOrder.Details.Where(x => x.PurchaseOrderNo == model.PurchaseOrderNo && x.PurchaseOrderDetailRowNo == purchaseOrderDetail.RowNo && x.MaterielCode == model.MaterielCode).ToList();
+                if (details.Count >0 && details.Sum(x=>x.ReceivedQuantity) == purchaseOrderDetail.PurchaseDetailQuantity)
                 {
                     return WebResponseContent.Instance.Error($"璇ユ敹璐у崟鏄庣粏宸叉敹璐�");
                 }
-
+                //鑾峰彇鍏蜂綋鎵规
+                Dt_ReceiveOrderDetail? detail = details.FirstOrDefault(x => x.LotNo == model.LotNo);
                 lock (_rowNoLocker)
                 {
                     if (detail != null)
                     {
                         //鍘熸湁鏀惰揣鏄庣粏澧炲姞鏀惰揣鏁伴噺
                         detail.ReceivedQuantity += model.Quantity;
-                        purchaseOrderDetail.PurchaseDetailReceiveQty = detail.ReceivedQuantity;
+                        purchaseOrderDetail.PurchaseDetailReceiveQty += model.Quantity;
                         if (purchaseOrderDetail.PurchaseDetailReceiveQty > purchaseOrderDetail.PurchaseDetailQuantity)
                         {
                             return WebResponseContent.Instance.Error($"閲囪喘鍗曡鐗╂枡鏁伴噺鍜屾敹璐ф暟閲忎笉涓�鑷�");
@@ -182,7 +183,11 @@
                         {
                             purchaseOrderDetail.PurchaseDetailStatus = PurchaseOrderDetailStatusEnum.Received.ObjToInt();
                         }
-                        float sumQty = purchaseOrder.Details.Sum(x => x.PurchaseDetailReceiveQty);
+                        else
+                        {
+                            purchaseOrderDetail.PurchaseDetailStatus = PurchaseOrderDetailStatusEnum.Receiving.ObjToInt();
+                        }
+                        float sumQty = purchaseOrder.Details.Sum(x => x.PurchaseDetailReceiveQty); //+ model.Quantity
                         _unitOfWorkManage.BeginTran();
                         BaseDal.AddData(receiveOrderDetail);
                         if (purchaseOrder.OrderQuantity == sumQty)
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_OutboundService/MesOutboundOrderService.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_OutboundService/MesOutboundOrderService.cs"
index 26a6b2b..d1a47ae 100644
--- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_OutboundService/MesOutboundOrderService.cs"
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_OutboundService/MesOutboundOrderService.cs"
@@ -21,6 +21,7 @@
 using WIDESEA_Common.LocationEnum;
 using WIDESEA_IRecordService;
 using WIDESEA_Common.StockEnum;
+using WIDESEA_Common.TaskEnum;
 
 namespace WIDESEA_OutboundService
 {
@@ -144,5 +145,54 @@
                 return WebResponseContent.Instance.Error(ex.Message);
             }
         }
+
+        public WebResponseContent AddMesOrder(SubstrateOutModel substrateOutModel)
+        {
+            try
+            {
+                Dt_Warehouse warehouse = _basicRepository.WarehouseRepository.QueryFirst(x => x.WarehouseCode == WarehouseEnum.HA57.ToString());
+                if (warehouse == null)
+                {
+                    return WebResponseContent.Instance.Error($"浠撳簱鍩虹淇℃伅鏈厤缃�");
+                }
+
+                Dt_MaterielInfo materielInfo = _basicRepository.MaterielInfoRepository.QueryFirst(x => x.MaterielCode == substrateOutModel.MaterialCode);
+                if (materielInfo == null)
+                {
+                    return WebResponseContent.Instance.Error($"鏈壘鍒拌鐗╂枡淇℃伅");
+                }
+                int orderType = 0;
+                if(substrateOutModel.Line == "1011")
+                {
+                    orderType = MesOutboundOrderTypeEnum.HandSubstrateOutPick.ObjToInt();
+                }
+                else
+                {
+                    orderType = MesOutboundOrderTypeEnum.HandSubstrateOut.ObjToInt();
+                }
+
+                Dt_MesOutboundOrder mesOutboundOrder = new Dt_MesOutboundOrder()
+                {
+                    CreateType = OrderCreateTypeEnum.CreateInSystem.ObjToInt(),
+                    Line = substrateOutModel.Line,
+                    MaterialCode = substrateOutModel.MaterialCode,
+                    MaterialName = materielInfo.MaterielName,
+                    OrderQuantity = substrateOutModel.RequiredQuantity,
+                    TaskNo = DateTime.Now.ToString("yyyyMMddHHmmss"),
+                    Unit = substrateOutModel.Unit,
+                    OrderType = orderType,
+                    OrderStatus = OutOrderStatusEnum.鏈紑濮�.ObjToInt(),
+                    WarehouseId = warehouse.WarehouseId
+                };
+
+                AddData(mesOutboundOrder);
+                
+                return WebResponseContent.Instance.OK();
+            }
+            catch (Exception ex)
+            {
+                return WebResponseContent.Instance.Error(ex.Message);
+            }
+        }
     }
 }
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_SystemService/Sys_RoleService.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_SystemService/Sys_RoleService.cs"
index db45659..0136a31 100644
--- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_SystemService/Sys_RoleService.cs"
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_SystemService/Sys_RoleService.cs"
@@ -333,7 +333,7 @@
                     x.AuthValue = "";
                 });
                 //灏嗗彇娑堢殑鏉冮檺璁剧疆涓�""
-                _RoleAuthRepository.UpdateData(delAuths);
+                _RoleAuthRepository.DeleteData(delAuths);
 
                 int addCount = updateAuths.Where(x => x.AuthId <= 0).Count();
                 int updateCount = updateAuths.Where(x => x.AuthId > 0).Count();
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_TaskInfoService/AssignInboundTaskLocation_BC.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_TaskInfoService/AssignInboundTaskLocation_BC.cs"
index 9dcadff..34f74bb 100644
--- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_TaskInfoService/AssignInboundTaskLocation_BC.cs"
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_TaskInfoService/AssignInboundTaskLocation_BC.cs"
@@ -5,9 +5,13 @@
 using System.Text;
 using System.Threading.Tasks;
 using WIDESEA_Common.LocationEnum;
+using WIDESEA_Common.OrderEnum;
+using WIDESEA_Common.StockEnum;
 using WIDESEA_Common.TaskEnum;
 using WIDESEA_Core;
 using WIDESEA_Core.Helper;
+using WIDESEA_DTO;
+using WIDESEA_DTO.MES;
 using WIDESEA_Model.Models;
 
 namespace WIDESEA_TaskInfoService
@@ -20,11 +24,11 @@
         /// <param name="taskNum">浠诲姟鍙�</param>
         /// <param name="roadwayNos">宸烽亾鍙�</param>
         /// <returns></returns>
-        public WebResponseContent AssignRoadway(List<string> roadwayNos, int taskNum,  int heightType = 0)
+        public WebResponseContent AssignRoadway(List<string> roadwayNos, int taskNum, int heightType = 0)
         {
             try
             {
-                if(heightType == 0 || heightType > 3)
+                if (heightType == 0 || heightType > 3)
                 {
                     return WebResponseContent.Instance.Error($"楂樺害閿欒");
                 }
@@ -89,8 +93,8 @@
                 List<LocationCount> locationCounts = Db.Queryable<Dt_LocationInfo>().Where(x => (x.LocationType == task.PalletType || x.LocationType == LocationTypeEnum.Undefined.ObjToInt()) && x.LocationStatus == LocationStatusEnum.Free.ObjToInt() && (x.EnableStatus == EnableStatusEnum.OnlyIn.ObjToInt() || x.EnableStatus == EnableStatusEnum.Normal.ObjToInt()) && roadwayNos.Contains(x.RoadwayNo)).GroupBy(x => x.RoadwayNo).Select(x => new LocationCount { RoadwayNo = x.RoadwayNo, Count = SqlFunc.AggregateCount(x) }).ToList();
 
                 string roadwayNo = locationCounts.OrderBy(x => x.Count).FirstOrDefault()?.RoadwayNo ?? "";
-                
-                return !string.IsNullOrEmpty(roadwayNo) ? WebResponseContent.Instance.OK(data: roadwayNo): WebResponseContent.Instance.Error("鏈壘鍒板彲鍒嗛厤宸烽亾");
+
+                return !string.IsNullOrEmpty(roadwayNo) ? WebResponseContent.Instance.OK(data: roadwayNo) : WebResponseContent.Instance.Error("鏈壘鍒板彲鍒嗛厤宸烽亾");
             }
             catch (Exception ex)
             {
@@ -121,11 +125,99 @@
             }
         }
 
-        public class LocationCount
+        public WebResponseContent HandSubstrateOut(int orderId)
         {
-            public string RoadwayNo { get; set; }
+            try
+            {
+                Dt_MesOutboundOrder mesOutboundOrder = _outboundService.MesOutboundOrderService.Repository.QueryFirst(x => x.Id == orderId);
+                if (mesOutboundOrder == null)
+                {
+                    return WebResponseContent.Instance.Error($"鏈壘鍒拌璁㈠崟");
+                }
 
-            public int Count { get; set; }
+                if (mesOutboundOrder.OrderStatus != OutOrderStatusEnum.鏈紑濮�.ObjToInt())
+                {
+                    return WebResponseContent.Instance.Error($"璇ヨ鍗曚笉鍙啀鍑哄簱");
+                }
+
+                List<Dt_Task> tasks = new List<Dt_Task>();
+
+                List<Dt_StockInfo>? stockInfos = null;
+                List<Dt_OutStockLockInfo>? outStockLockInfos = null;
+                List<Dt_LocationInfo>? locationInfos = null;
+                {
+                    (List<Dt_StockInfo>, Dt_MesOutboundOrder, List<Dt_OutStockLockInfo>, List<Dt_LocationInfo>) result = _outboundService.MesOutboundOrderService.AssignStockOutbound(mesOutboundOrder);
+                    if (result.Item1 != null && result.Item1.Count > 0)
+                    {
+                        tasks = GetTasks(result.Item1, TaskTypeEnum.MesOutbound);
+                        result.Item2.OrderStatus = OrderDetailStatusEnum.Outbound.ObjToInt();
+                        result.Item3.ForEach(x =>
+                        {
+                            x.Status = OutLockStockStatusEnum.鍑哄簱涓�.ObjToInt();
+                        });
+
+                        stockInfos = result.Item1;
+                        mesOutboundOrder = result.Item2;
+                        outStockLockInfos = result.Item3;
+                        locationInfos = result.Item4;
+                    }
+                    else
+                    {
+                        throw new Exception("鏃犲簱瀛�");
+                    }
+                }
+
+                tasks.ForEach(x =>
+                {
+                    if (mesOutboundOrder.OrderType == MesOutboundOrderTypeEnum.HandSubstrateOut.ObjToInt())
+                    {
+                        x.TaskType = TaskTypeEnum.MesHandOutbound.ObjToInt();
+                    }
+                    else if (mesOutboundOrder.OrderType == MesOutboundOrderTypeEnum.HandSubstrateOutPick.ObjToInt())
+                    {
+                        x.TaskType = TaskTypeEnum.MesHandPickOutbound.ObjToInt();
+                    }
+                });
+
+                mesOutboundOrder.OrderStatus = OutOrderStatusEnum.鍑哄簱涓�.ObjToInt();
+
+                _unitOfWorkManage.BeginTran();
+
+                int id = BaseDal.AddData(tasks);
+                outStockLockInfos.ForEach(x =>
+                {
+                    x.OrderNo = mesOutboundOrder.TaskNo;
+                    x.OrderDetailId = id;
+                });
+                _outboundService.MesOutboundOrderService.Repository.UpdateData(mesOutboundOrder);
+                if (stockInfos != null && stockInfos.Count > 0 && outStockLockInfos != null && outStockLockInfos.Count > 0 && locationInfos != null && locationInfos.Count > 0)
+                {
+                    WebResponseContent content = _outboundService.MesOutboundOrderService.LockOutboundStockDataUpdate(stockInfos, outStockLockInfos, locationInfos, tasks: tasks);
+
+                    if (!content.Status)
+                    {
+                        _unitOfWorkManage.RollbackTran();
+                        return WebResponseContent.Instance.Error(content.Message);
+                    }
+                }
+                _unitOfWorkManage.CommitTran();
+                PushTasksToWCS(tasks);
+
+                return WebResponseContent.Instance.OK();
+            }
+            catch (Exception ex)
+            {
+                return WebResponseContent.Instance.Error(ex.Message);
+            }
         }
+
+
+    }
+
+    public class LocationCount
+    {
+        public string RoadwayNo { get; set; }
+
+        public int Count { get; set; }
     }
 }
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 b3a551d..95b2237 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"
@@ -422,7 +422,7 @@
                 }
                 if (task.TaskType == TaskTypeEnum.MesOutbound.ObjToInt())
                 {
-                    MesMaterialLotaAceptModel model = GetMesMaterialLotaAceptModel(stockInfo, stockInfo.Details.FirstOrDefault(), mesOutboundOrders.FirstOrDefault().TaskNo, warehouse.WarehouseCode, mesOutboundOrders.FirstOrDefault().OrderQuantity);
+                    MesMaterialLotaAceptModel model = GetMesMaterialLotaAceptModel(stockInfo, stockInfo.Details.FirstOrDefault(), mesOutboundOrders.FirstOrDefault().TaskNo, warehouse.WarehouseCode, stockInfo.Details.Where(x => x.MaterielCode == mesOutboundOrders.FirstOrDefault().MaterialCode).Sum(x => x.StockQuantity));
                     UploadMesMaterialLotaAcept(model);
                 }
                 return WebResponseContent.Instance.OK();
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_TaskInfoService/TaskService_Inbound.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_TaskInfoService/TaskService_Inbound.cs"
index 018d5ce..3dfe8a2 100644
--- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_TaskInfoService/TaskService_Inbound.cs"
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_TaskInfoService/TaskService_Inbound.cs"
@@ -36,6 +36,7 @@
                 {
                     return WebResponseContent.Instance.Error($"鏈壘鍒板簱鍖�");
                 }
+
                 Dt_Task task = Repository.QueryFirst(x => x.PalletCode == palletCode && x.WarehouseId == warehouseId);
                 if (task != null)
                 {
@@ -95,6 +96,7 @@
                     {
                         stockInfo.StockStatus = StockStatusEmun.鍏ュ簱纭.ObjToInt();
                     }
+
                     _unitOfWorkManage.BeginTran();
                     int taskId = BaseDal.AddData(newTask);
                     newTask.TaskId = taskId;
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/Outbound/MesOutboundOrderController.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/Outbound/MesOutboundOrderController.cs"
index 4ca90b1..8e8e7d7 100644
--- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/Outbound/MesOutboundOrderController.cs"
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/Outbound/MesOutboundOrderController.cs"
@@ -5,6 +5,7 @@
 using WIDESEA_Core;
 using WIDESEA_Core.BaseController;
 using WIDESEA_DTO.Inbound;
+using WIDESEA_DTO.MES;
 using WIDESEA_DTO.Outbound;
 using WIDESEA_IOutboundService;
 using WIDESEA_Model.Models;
@@ -22,5 +23,15 @@
         {
 
         }
+        /// <summary>
+        /// 
+        /// </summary>
+        /// <param name="substrateOutModel"></param>
+        /// <returns></returns>
+        [HttpPost, Route("AddMesOrder"), AllowAnonymous]
+        public WebResponseContent AddMesOrder([FromBody] SubstrateOutModel substrateOutModel)
+        {
+            return Service.AddMesOrder(substrateOutModel);
+        }
     }
 }
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/Outbound/OutboundOrderController.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/Outbound/OutboundOrderController.cs"
index c8c8cfe..eaf062b 100644
--- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/Outbound/OutboundOrderController.cs"
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/Outbound/OutboundOrderController.cs"
@@ -23,6 +23,12 @@
         {
 
         }
+
+        /// <summary>
+        /// 
+        /// </summary>
+        /// <param name="id"></param>
+        /// <returns></returns>
         [HttpPost, Route("TestOutUpload"), AllowAnonymous]
         public WebResponseContent TestOutUpload(int id)
         {
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/TaskInfo/TaskController.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/TaskInfo/TaskController.cs"
index 3b3657b..12659d5 100644
--- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/TaskInfo/TaskController.cs"
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/TaskInfo/TaskController.cs"
@@ -256,6 +256,17 @@
         }
 
         /// <summary>
+        /// 
+        /// </summary>
+        /// <param name="orderId"></param>
+        /// <returns></returns>
+        [HttpPost, Route("HandSubstrateOut")]
+        public WebResponseContent HandSubstrateOut(int orderId)
+        {
+            return Service.HandSubstrateOut(orderId);
+        }
+
+        /// <summary>
         /// 淇敼浠诲姟鐘舵��
         /// </summary>
         /// <param name="task"></param>
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/\346\267\256\345\256\211PDA/common/config.js" "b/\344\273\243\347\240\201\347\256\241\347\220\206/\346\267\256\345\256\211PDA/common/config.js"
index 0e01f92..ee92f58 100644
--- "a/\344\273\243\347\240\201\347\256\241\347\220\206/\346\267\256\345\256\211PDA/common/config.js"
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/\346\267\256\345\256\211PDA/common/config.js"
@@ -1,5 +1,5 @@
 let config = {
-	baseUrl: 'http://10.30.4.92:9283',
+	baseUrl: 'http://localhost:9293',
 	urls: [
 		'http://10.30.4.92:9283',
 		'http://10.30.4.92:9283'
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/\346\267\256\345\256\211PDA/pages/stash/TakeStock.vue" "b/\344\273\243\347\240\201\347\256\241\347\220\206/\346\267\256\345\256\211PDA/pages/stash/TakeStock.vue"
index a7148fa..750b344 100644
--- "a/\344\273\243\347\240\201\347\256\241\347\220\206/\346\267\256\345\256\211PDA/pages/stash/TakeStock.vue"
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/\346\267\256\345\256\211PDA/pages/stash/TakeStock.vue"
@@ -90,7 +90,7 @@
 								placeholder="璇锋壂鎻忔墭鐩樻潯鐮�" ref='midInput' @input="inputChangebarcode3" />
 						</uni-forms-item>
 						<uni-forms-item label="鍦板潃鏉$爜">
-							<uni-easyinput type="text" v-model="address" placeholder="璇锋壂鎻忓湴鍧�鏉$爜" ref='midInput'
+							<uni-easyinput type="text" v-model="address" :disabled="addressdisabled" placeholder="璇锋壂鎻忓湴鍧�鏉$爜" ref='midInput'
 								:focus="addressFocus" />
 						</uni-forms-item>
 						<uni-forms-item>
@@ -133,15 +133,21 @@
 				addressFocus: false,
 				inboundBarcode: "",
 				address: "",
+				addressdisabled: true,
+				warehouseId:""
 			}
 		},
 		onLoad(res) {
 			this.barcodefocus = false;
 			this.istrue = false;
+			this.warehouseId = res.warehouseId;
+			if (this.warehouseId == 3) { //杈呮枡浠撳簱鍖篒D
+				this.address = "1011";
+				this.addressdisabled = true;
+			}
 		},
 		methods: {
 			onClickItem(e) {
-				this.barcodeFo = true;
 				this.focus = false;
 				this.addressFocus = false;
 				if (this.current !== e.currentIndex) {
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/\346\267\256\345\256\211PDA/pages/stash/boxing.vue" "b/\344\273\243\347\240\201\347\256\241\347\220\206/\346\267\256\345\256\211PDA/pages/stash/boxing.vue"
index 7f9fa17..82d6dc8 100644
--- "a/\344\273\243\347\240\201\347\256\241\347\220\206/\346\267\256\345\256\211PDA/pages/stash/boxing.vue"
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/\346\267\256\345\256\211PDA/pages/stash/boxing.vue"
@@ -64,7 +64,7 @@
 								placeholder="璇锋壂鎻忔墭鐩樻潯鐮�" ref='midInput' @input="inputChangebarcode" />
 						</uni-forms-item>
 						<uni-forms-item label="鍦板潃鏉$爜">
-							<uni-easyinput type="text" v-model="address" placeholder="璇锋壂鎻忓湴鍧�鏉$爜" ref='midInput'
+							<uni-easyinput type="text" v-model="address" :disabled="addressdisabled" placeholder="璇锋壂鎻忓湴鍧�鏉$爜" ref='midInput'
 								:focus="addressFocus" />
 						</uni-forms-item>
 						<uni-forms-item>
@@ -209,7 +209,8 @@
 				Testplaceholder: "",
 				Testcheck: false,
 				Summmary:0,
-				stockInfoDetail:[]
+				stockInfoDetail:[],
+				addressdisabled: false
 			}
 		},
 		onShow() {},
@@ -229,6 +230,9 @@
 				this.Initiallife = 16;
 			} else if (this.warehouseId == 5) { //杈呮枡浠撳簱鍖篒D
 				this.address = "8005";
+			}else if (this.warehouseId == 3) { //杈呮枡浠撳簱鍖篒D
+				this.address = "1011";
+				this.addressdisabled = true;
 			}
 			this.label = "鍗曟嵁缂栧彿锛�" + this.orderNo;
 			this.getData();
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/\346\267\256\345\256\211PDA/pages/stash/pickingMat.vue" "b/\344\273\243\347\240\201\347\256\241\347\220\206/\346\267\256\345\256\211PDA/pages/stash/pickingMat.vue"
index cb7cf9c..5de35a0 100644
--- "a/\344\273\243\347\240\201\347\256\241\347\220\206/\346\267\256\345\256\211PDA/pages/stash/pickingMat.vue"
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/\346\267\256\345\256\211PDA/pages/stash/pickingMat.vue"
@@ -61,7 +61,7 @@
 								placeholder="璇锋壂鎻忔墭鐩樻潯鐮�" ref='midInput' @input="inputChangebarcode3" />
 						</uni-forms-item>
 						<uni-forms-item label="鍦板潃鏉$爜">
-							<uni-easyinput type="text" v-model="address" placeholder="璇锋壂鎻忓湴鍧�鏉$爜" ref='midInput'
+							<uni-easyinput type="text" v-model="address" :disabled = "addressdisabled" placeholder="璇锋壂鎻忓湴鍧�鏉$爜" ref='midInput'
 								:focus="addressFocus" />
 						</uni-forms-item>
 						<uni-forms-item>
@@ -135,7 +135,8 @@
 				address: "",
 				warehouseId: 0,
 				Summmary: 0,
-				stockInfoDetail: []
+				stockInfoDetail: [],
+				addressdisabled: false
 			}
 		},
 		onLoad(res) {
@@ -143,6 +144,9 @@
 			this.warehouseId = res.warehouseId;
 			if (this.warehouseId == 5) {
 				this.address = "8005"
+			}else if (this.warehouseId == 3) {
+				this.address = "1011";
+				this.addressdisabled = true;
 			}
 			this.istrue = false;
 			this.addressFocus = false;
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/\346\267\256\345\256\211PDA/pages/stash/raworderboxing.vue" "b/\344\273\243\347\240\201\347\256\241\347\220\206/\346\267\256\345\256\211PDA/pages/stash/raworderboxing.vue"
index ab57cba..b138417 100644
--- "a/\344\273\243\347\240\201\347\256\241\347\220\206/\346\267\256\345\256\211PDA/pages/stash/raworderboxing.vue"
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/\346\267\256\345\256\211PDA/pages/stash/raworderboxing.vue"
@@ -68,7 +68,7 @@
 								placeholder="璇锋壂鎻忔墭鐩樻潯鐮�" ref='midInput' @input="inputChangebarcode" />
 						</uni-forms-item>
 						<uni-forms-item label="鍦板潃鏉$爜">
-							<uni-easyinput type="text" v-model="address" placeholder="璇锋壂鎻忓湴鍧�鏉$爜" ref='midInput'
+							<uni-easyinput type="text" v-model="address" :disabled="addressdisabled" placeholder="璇锋壂鎻忓湴鍧�鏉$爜" ref='midInput'
 								:focus="addressFocus" />
 						</uni-forms-item>
 						<uni-forms-item>
@@ -147,12 +147,12 @@
 				label: "",
 				orderInfo: [],
 				focus: false,
-				pkfocus:false,
+				pkfocus: false,
 				barcode: "",
 				materSn: "",
 				Initiallife: 1000,
 				sns: [],
-				pksns:[],
+				pksns: [],
 				addressFocus: false,
 				inboundBarcode: "",
 				address: "",
@@ -167,7 +167,8 @@
 				Testplaceholder: "",
 				Testcheck: false,
 				pkmaterSn: "",
-				pkmatInfos: []
+				pkmatInfos: [],
+				addressdisabled: false
 			}
 		},
 		onShow() {},
@@ -189,6 +190,9 @@
 				this.items.push("鍏ュ钩搴�");
 				this.items[1] = "鍏ョ珛搴�";
 				this.address = "8005";
+			} else if (this.warehouseId == 3) { //杈呮枡
+				this.address = "1011";
+				this.addressdisabled = true;
 			}
 			this.label = "鍗曟嵁缂栧彿锛�" + this.orderNo;
 			this.getData();
@@ -478,7 +482,7 @@
 				this.pkmatInfos.splice(res, 1);
 				this.pksns.splice(res, 1);
 			},
-			pksubmit(){
+			pksubmit() {
 				if (this.pkmatInfos.length == 0) {
 					this.$refs.uToast.show({
 						title: "璇锋壂鎻忓唴绠辨爣绛�",
@@ -486,7 +490,8 @@
 					})
 					return;
 				}
-				this.$u.post('/api/InboundOrder/InPinKu?warehouseId=' + this.warehouseId+"&orderNo="+ this.orderNo, this.pksns).then(res => {
+				this.$u.post('/api/InboundOrder/InPinKu?warehouseId=' + this.warehouseId + "&orderNo=" + this.orderNo, this
+					.pksns).then(res => {
 					if (res.status) {
 						this.$refs.uToast.show({
 							title: "鍏ュ簱鎴愬姛",
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/\346\267\256\345\256\211PDA/pages/stash/receiveorder.vue" "b/\344\273\243\347\240\201\347\256\241\347\220\206/\346\267\256\345\256\211PDA/pages/stash/receiveorder.vue"
index de09c0a..04a4b97 100644
--- "a/\344\273\243\347\240\201\347\256\241\347\220\206/\346\267\256\345\256\211PDA/pages/stash/receiveorder.vue"
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/\346\267\256\345\256\211PDA/pages/stash/receiveorder.vue"
@@ -7,7 +7,7 @@
 		</u-sticky>
 		<uni-list :border="true">
 			<uni-list-item direction="column" clickable @click="groupClick(item.receiveOrderNo)" link
-				:to="page+item.receiveOrderNo+'&receiveOrderId='+item.receiveOrderId" v-for="item in allReceivingOrders"
+				:to="page+item.receiveOrderNo+'&receiveOrderId='+item.receiveOrderId+'&warehouseId='+warehouseId" v-for="item in allReceivingOrders"
 				:key="item.receiveOrderNo">
 				<template v-slot:body>
 					<uni-group margin-top="20">
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/\346\267\256\345\256\211PDA/pages/stash/receiveorderoutbound.vue" "b/\344\273\243\347\240\201\347\256\241\347\220\206/\346\267\256\345\256\211PDA/pages/stash/receiveorderoutbound.vue"
index af2a882..f77f363 100644
--- "a/\344\273\243\347\240\201\347\256\241\347\220\206/\346\267\256\345\256\211PDA/pages/stash/receiveorderoutbound.vue"
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/\346\267\256\345\256\211PDA/pages/stash/receiveorderoutbound.vue"
@@ -43,7 +43,7 @@
 					</uni-forms-item>
 				</uni-forms> -->
 				<uni-list :border="true">
-					<uni-list-item direction="column" v-for="(item,index) in orderInfo" :key="item.id">
+					<uni-list-item direction="column" v-for="item in orderinfoDetails" :key="item.id">
 						<template v-slot:body>
 								<view class="uni-content">
 									<view>鏀惰揣鍗曞彿锛歿{orderNo}}</view>
@@ -175,6 +175,7 @@
 				current: 0,
 				orderNo: "",
 				orderInfo: [],
+				orderinfoDetails:[],
 				label: "",
 				innerCode: "",
 				PurchaseOrderNo: "閲囪喘鍗曞彿锛�",
@@ -218,6 +219,7 @@
 				endTypeRange: [],
 				sns: "",
 				receiveOrderId: 0,
+				warehouseId:""
 			}
 		},
 
@@ -233,6 +235,7 @@
 			this.orderNo = res.orderNo;
 			this.receiveOrderId = res.receiveOrderId;
 			this.label = "鏀惰揣鍗曞彿锛�" + this.orderNo;
+			this.warehouseId=res.warehouseId;
 			this.getData();
 		},
 		mounted() {
@@ -363,6 +366,12 @@
 					})
 					return;
 				}
+				if(this.warehouseId==2){
+					//鏇挎崲鎸囧畾涓や釜瀛楃闂寸殑瀛楃
+					this.sns = this.sns.replace(/(Q:)([^,PO]+)(,PO)/, (match, p1, p2, p3) => {
+					  return p1 + this.Quantity + p3;
+					});
+				}
 				this.$u.post('/api/ReceiveOrderDetail/AddReceiveOrderDetail?serNum=' + this.sns + '&orderNo=' + this
 					.orderNo, {}).then(res => {
 					if (res.status) {
@@ -464,8 +473,8 @@
 				}
 				this.$u.post('/api/ReceiveOrderDetail/GetReceiveOrderInfos', postData).then((res) => {
 					if (res.status) {
-						this.orderInfo = res.data;
-						if (this.orderInfo.length > 3) {
+						this.orderinfoDetails = res.data;
+						if (this.orderinfoDetails.length > 3) {
 							this.loadVisible = true;
 						}
 					}

--
Gitblit v1.9.3