From fd5a43c2e677740482b8d25195120ffa75c5ac77 Mon Sep 17 00:00:00 2001
From: yangpeixing <yangpeixing@hnkhzn.com>
Date: 星期一, 19 一月 2026 15:47:29 +0800
Subject: [PATCH] 1

---
 WMS/WIDESEA_WMSServer/WIDESEA_InboundService/Base/TakeStockOrderDetailCPService.cs                      |   12 
 WMS/WIDESEA_WMSServer/WIDESEA_InboundRepository/TakeStockOrderCPRepository.cs                           |   21 
 WMS/WIDESEA_WMSClient/src/views/inbound/takeStockOrderCP.vue                                            |  293 ++++++++++
 WMS/WIDESEA_WMSServer/WIDESEA_Core/AOP/LogAOP.cs                                                        |    8 
 WMS/WIDESEA_WMSServer/WIDESEA_Model/Models/Stock/Dt_StockInfo.cs                                        |    3 
 WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/FileContentIndex/d36a016b-a94a-49ea-9e1f-c42b0b35806c.vsidx |    0 
 WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/TaskInfo/TaskController.cs                          |   61 +
 WMS/WIDESEA_WMSServer/WIDESEA_Model/Models/Stock/VV_StockInfoDet.cs                                     |   10 
 吉安PDA/pages/stash/Syncretism.vue                                                                        |   19 
 WMS/WIDESEA_WMSServer/WIDESEA_DTO/Stock/StockViewDTO.cs                                                 |    6 
 WMS/WIDESEA_WMSServer/WIDESEA_ITaskInfoService/ITaskService.cs                                          |    3 
 WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/Inbound/TakeStockOrderCPController.cs               |   32 +
 WMS/WIDESEA_WMSClient/src/router/viewGird.js                                                            |    4 
 WMS/WIDESEA_WMSServer/WIDESEA_Model/Models/Inbound/Dt_TakeStockOrderCP.cs                               |   56 ++
 WMS/WIDESEA_WMSServer/WIDESEA_StockService/Service/VV_StockInfoDetService.cs                            |    2 
 WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/Inbound/TakeStockOrderDetailCPController.cs         |   22 
 WMS/WIDESEA_WMSServer/WIDESEA_Model/Models/Inbound/Dt_TakeStockOrderDetailCP.cs                         |   95 +++
 WMS/WIDESEA_WMSServer/WIDESEA_StockService/Base/StockViewService.cs                                     |   16 
 WMS/WIDESEA_WMSServer/WIDESEA_IInboundRepository/ITakeStockOrderDetailCPRepository.cs                   |   17 
 WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/v17/DocumentLayout.json                                     |   66 +-
 WMS/WIDESEA_WMSServer/WIDESEA_IInboundRepository/ITakeStockOrderCPRepository.cs                         |   17 
 WMS/WIDESEA_WMSServer/WIDESEA_InboundService/Base/TakeStockOrderCPService.cs                            |  116 ++++
 WMS/WIDESEA_WMSServer/WIDESEA_TaskInfoService/PartialTaskService_Outbound.cs                            |   14 
 WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/FileContentIndex/6b3736ba-630f-476c-9f4e-0d99fe3ed3a0.vsidx |    0 
 WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/v17/.suo                                                    |    0 
 WMS/WIDESEA_WMSServer/WIDESEA_TaskInfoService/TaskService.cs                                            |  352 +++++++++--
 WMS/WIDESEA_WMSServer/WIDESEA_InboundService/Base/InboundOrderService.cs                                |   65 +
 WMS/WIDESEA_WMSClient/src/extension/inbound/takeStockOrderCP.js                                         |   89 +++
 WMS/WIDESEA_WMSServer/WIDESEA_Common/HouseAdjustment.cs                                                 |   41 +
 WMS/WIDESEA_WMSServer/WIDESEA_Core/Enums/OrderEnum.cs                                                   |    6 
 WMS/WIDESEA_WMSServer/WIDESEA_InboundRepository/TakeStockOrderDetailCPRepository.cs                     |   21 
 WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/FileContentIndex/c1d52971-2c06-44dd-9a29-da27923e6af5.vsidx |    0 
 WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/v17/DocumentLayout.json                                     |    2 
 WMS/WIDESEA_WMSClient/src/extension/stock/stockInfo.js                                                  |    2 
 WMS/WIDESEA_WMSServer/WIDESEA_IInboundService/ITakeStockOrderDetailCPService.cs                         |   18 
 WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/FileContentIndex/209a70e9-a93a-4099-bb48-f6583e895856.vsidx |    0 
 WMS/WIDESEA_WMSClient/src/views/stock/stockView.vue                                                     |   19 
 WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/v17/DocumentLayout.backup.json                              |   26 
 WMS/WIDESEA_WMSServer/WIDESEA_TaskInfoService/NewPartialTaskService_Outbound.cs                         |  123 ++++
 WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/FileContentIndex/0bbc4c8d-52fc-48e7-998a-998139b31e02.vsidx |    0 
 WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/v17/HierarchyCache.v1.txt                                   |    0 
 WMS/WIDESEA_WMSServer/WIDESEA_IInboundService/ITakeStockOrderCPService.cs                               |   23 
 42 files changed, 1,484 insertions(+), 196 deletions(-)

diff --git a/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/FileContentIndex/37cec77f-3bf8-459c-8096-67b79676ae16.vsidx b/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/FileContentIndex/6b3736ba-630f-476c-9f4e-0d99fe3ed3a0.vsidx
similarity index 79%
rename from WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/FileContentIndex/37cec77f-3bf8-459c-8096-67b79676ae16.vsidx
rename to WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/FileContentIndex/6b3736ba-630f-476c-9f4e-0d99fe3ed3a0.vsidx
index c5de42b..c6ec5d1 100644
--- a/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/FileContentIndex/37cec77f-3bf8-459c-8096-67b79676ae16.vsidx
+++ b/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/FileContentIndex/6b3736ba-630f-476c-9f4e-0d99fe3ed3a0.vsidx
Binary files differ
diff --git a/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/v17/.suo b/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/v17/.suo
index 5916841..9707bea 100644
--- a/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/v17/.suo
+++ b/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/v17/.suo
Binary files differ
diff --git a/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/v17/DocumentLayout.backup.json b/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/v17/DocumentLayout.backup.json
index 2b33385..83f5529 100644
--- a/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/v17/DocumentLayout.backup.json
+++ b/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/v17/DocumentLayout.backup.json
@@ -94,8 +94,7 @@
               "RelativeToolTip": "WIDESEAWCS_Tasks\\\u5806\u579B\u673A\\StackerCraneJob_CP.cs",
               "ViewState": "AgIAAIYAAAAAAAAAAAAuwJsAAAAZAAAAAAAAAA==",
               "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
-              "WhenOpened": "2026-01-11T00:40:43.019Z",
-              "EditorCaption": ""
+              "WhenOpened": "2026-01-11T00:40:43.019Z"
             },
             {
               "$type": "Document",
@@ -107,8 +106,7 @@
               "RelativeToolTip": "WIDESEAWCS_Tasks\\\u5806\u579B\u673A\\StackerCraneJob_YS.cs",
               "ViewState": "AgIAAH8AAAAAAAAAAAAIwJoAAAAYAAAAAAAAAA==",
               "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
-              "WhenOpened": "2026-01-10T03:13:51.591Z",
-              "EditorCaption": ""
+              "WhenOpened": "2026-01-10T03:13:51.591Z"
             },
             {
               "$type": "Document",
@@ -144,8 +142,7 @@
               "RelativeToolTip": "WIDESEAWCS_Tasks\\RGV\\RGVJob_L1.cs",
               "ViewState": "AgIAAE0AAAAAAAAAAAAIwFUAAAAZAAAAAAAAAA==",
               "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
-              "WhenOpened": "2026-01-09T06:45:58.141Z",
-              "EditorCaption": ""
+              "WhenOpened": "2026-01-09T06:45:58.141Z"
             },
             {
               "$type": "Document",
@@ -157,8 +154,7 @@
               "RelativeToolTip": "WIDESEAWCS_Server\\appsettings.json",
               "ViewState": "AgIAAAAAAAAAAAAAAAAAABUAAAANAAAAAAAAAA==",
               "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.001642|",
-              "WhenOpened": "2026-01-08T10:46:15.09Z",
-              "EditorCaption": ""
+              "WhenOpened": "2026-01-08T10:46:15.09Z"
             },
             {
               "$type": "Document",
@@ -170,8 +166,7 @@
               "RelativeToolTip": "WIDESEAWCS_Tasks\\ConveyorLineJob\\CommonConveyorLineJob.cs",
               "ViewState": "AgIAAIsAAAAAAAAAAAAAwJsAAAB2AAAAAAAAAA==",
               "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
-              "WhenOpened": "2026-01-08T09:45:25.115Z",
-              "EditorCaption": ""
+              "WhenOpened": "2026-01-08T09:45:25.115Z"
             },
             {
               "$type": "Document",
@@ -195,8 +190,7 @@
               "RelativeToolTip": "WIDESEAWCS_Server\\Controllers\\Task\\TaskController.cs",
               "ViewState": "AgIAAFcAAAAAAAAAAAAuwGcAAAAAAAAAAAAAAA==",
               "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
-              "WhenOpened": "2026-01-08T09:43:55.271Z",
-              "EditorCaption": ""
+              "WhenOpened": "2026-01-08T09:43:55.271Z"
             },
             {
               "$type": "Document",
@@ -232,8 +226,7 @@
               "RelativeToolTip": "WIDESEAWCS_ITaskInfoService\\ITaskService.cs",
               "ViewState": "AgIAACgBAAAAAAAAAAAuwDgBAABaAAAAAAAAAA==",
               "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
-              "WhenOpened": "2025-07-24T06:51:20.03Z",
-              "EditorCaption": ""
+              "WhenOpened": "2025-07-24T06:51:20.03Z"
             },
             {
               "$type": "Document",
@@ -243,7 +236,7 @@
               "RelativeDocumentMoniker": "WIDESEAWCS_TaskInfoService\\TaskService.cs",
               "ToolTip": "E:\\KHGITHUB\\\u5409\u5B89\u7ACB\u5E93\u73B0\u7528\u7248\u672C\\JiAnLiKu\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_TaskInfoService\\TaskService.cs",
               "RelativeToolTip": "WIDESEAWCS_TaskInfoService\\TaskService.cs",
-              "ViewState": "AgIAANkBAAAAAAAAAAA8wPQBAAAIAAAAAAAAAA==",
+              "ViewState": "AgIAAPIBAAAAAAAAAAAowAUCAAAAAAAAAAAAAA==",
               "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
               "WhenOpened": "2025-07-23T05:44:58.595Z",
               "EditorCaption": ""
@@ -270,8 +263,7 @@
               "RelativeToolTip": "WIDESEAWCS_Tasks\\\u677F\u6750\u4ED3\\ConveyorLineJob_BC.cs",
               "ViewState": "AgIAALsAAAAAAAAAAAAIwMwAAABCAAAAAAAAAA==",
               "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
-              "WhenOpened": "2025-07-23T04:01:37.222Z",
-              "EditorCaption": ""
+              "WhenOpened": "2025-07-23T04:01:37.222Z"
             },
             {
               "$type": "Document",
diff --git a/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/v17/DocumentLayout.json b/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/v17/DocumentLayout.json
index 83f5529..119bbb4 100644
--- a/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/v17/DocumentLayout.json
+++ b/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/v17/DocumentLayout.json
@@ -3,6 +3,22 @@
   "WorkspaceRootPath": "E:\\KHGITHUB\\\u5409\u5B89\u7ACB\u5E93\u73B0\u7528\u7248\u672C\\JiAnLiKu\\WCS\\WIDESEAWCS_Server\\",
   "Documents": [
     {
+      "AbsoluteMoniker": "D:0:0:{294E4915-0241-4C8C-BA99-7588B945863A}|WIDESEAWCS_Tasks\\WIDESEAWCS_Tasks.csproj|e:\\khgithub\\\u5409\u5B89\u7ACB\u5E93\u73B0\u7528\u7248\u672C\\jianliku\\wcs\\wideseawcs_server\\wideseawcs_tasks\\\u677F\u6750\u4ED3\\rgvjob_bc.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+      "RelativeMoniker": "D:0:0:{294E4915-0241-4C8C-BA99-7588B945863A}|WIDESEAWCS_Tasks\\WIDESEAWCS_Tasks.csproj|solutionrelative:wideseawcs_tasks\\\u677F\u6750\u4ED3\\rgvjob_bc.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+    },
+    {
+      "AbsoluteMoniker": "D:0:0:{294E4915-0241-4C8C-BA99-7588B945863A}|WIDESEAWCS_Tasks\\WIDESEAWCS_Tasks.csproj|e:\\khgithub\\\u5409\u5B89\u7ACB\u5E93\u73B0\u7528\u7248\u672C\\jianliku\\wcs\\wideseawcs_server\\wideseawcs_tasks\\rgv\\rgvjob_l1.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+      "RelativeMoniker": "D:0:0:{294E4915-0241-4C8C-BA99-7588B945863A}|WIDESEAWCS_Tasks\\WIDESEAWCS_Tasks.csproj|solutionrelative:wideseawcs_tasks\\rgv\\rgvjob_l1.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+    },
+    {
+      "AbsoluteMoniker": "D:0:0:{294E4915-0241-4C8C-BA99-7588B945863A}|WIDESEAWCS_Tasks\\WIDESEAWCS_Tasks.csproj|e:\\khgithub\\\u5409\u5B89\u7ACB\u5E93\u73B0\u7528\u7248\u672C\\jianliku\\wcs\\wideseawcs_server\\wideseawcs_tasks\\rgv\\rgvjob_l2.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+      "RelativeMoniker": "D:0:0:{294E4915-0241-4C8C-BA99-7588B945863A}|WIDESEAWCS_Tasks\\WIDESEAWCS_Tasks.csproj|solutionrelative:wideseawcs_tasks\\rgv\\rgvjob_l2.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+    },
+    {
+      "AbsoluteMoniker": "D:0:0:{294E4915-0241-4C8C-BA99-7588B945863A}|WIDESEAWCS_Tasks\\WIDESEAWCS_Tasks.csproj|e:\\khgithub\\\u5409\u5B89\u7ACB\u5E93\u73B0\u7528\u7248\u672C\\jianliku\\wcs\\wideseawcs_server\\wideseawcs_tasks\\conveyorlinejob\\commonconveyorlinejob.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+      "RelativeMoniker": "D:0:0:{294E4915-0241-4C8C-BA99-7588B945863A}|WIDESEAWCS_Tasks\\WIDESEAWCS_Tasks.csproj|solutionrelative:wideseawcs_tasks\\conveyorlinejob\\commonconveyorlinejob.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+    },
+    {
       "AbsoluteMoniker": "D:0:0:{83F18A31-5983-4587-A0B2-414BF70E50B5}|WIDESEAWCS_TaskInfoService\\WIDESEAWCS_TaskInfoService.csproj|e:\\khgithub\\\u5409\u5B89\u7ACB\u5E93\u73B0\u7528\u7248\u672C\\jianliku\\wcs\\wideseawcs_server\\wideseawcs_taskinfoservice\\taskservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
       "RelativeMoniker": "D:0:0:{83F18A31-5983-4587-A0B2-414BF70E50B5}|WIDESEAWCS_TaskInfoService\\WIDESEAWCS_TaskInfoService.csproj|solutionrelative:wideseawcs_taskinfoservice\\taskservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
     },
@@ -19,24 +35,8 @@
       "RelativeMoniker": "D:0:0:{7279A2AE-8D1F-4E66-A73A-01AF7927A336}|WIDESEAWCS_ITaskInfoService\\WIDESEAWCS_ITaskInfoService.csproj|solutionrelative:wideseawcs_itaskinfoservice\\itaskservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
     },
     {
-      "AbsoluteMoniker": "D:0:0:{294E4915-0241-4C8C-BA99-7588B945863A}|WIDESEAWCS_Tasks\\WIDESEAWCS_Tasks.csproj|e:\\khgithub\\\u5409\u5B89\u7ACB\u5E93\u73B0\u7528\u7248\u672C\\jianliku\\wcs\\wideseawcs_server\\wideseawcs_tasks\\conveyorlinejob\\commonconveyorlinejob.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
-      "RelativeMoniker": "D:0:0:{294E4915-0241-4C8C-BA99-7588B945863A}|WIDESEAWCS_Tasks\\WIDESEAWCS_Tasks.csproj|solutionrelative:wideseawcs_tasks\\conveyorlinejob\\commonconveyorlinejob.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
-    },
-    {
       "AbsoluteMoniker": "D:0:0:{294E4915-0241-4C8C-BA99-7588B945863A}|WIDESEAWCS_Tasks\\WIDESEAWCS_Tasks.csproj|e:\\khgithub\\\u5409\u5B89\u7ACB\u5E93\u73B0\u7528\u7248\u672C\\jianliku\\wcs\\wideseawcs_server\\wideseawcs_tasks\\\u5806\u579B\u673A\\stackercranejob_cp.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
       "RelativeMoniker": "D:0:0:{294E4915-0241-4C8C-BA99-7588B945863A}|WIDESEAWCS_Tasks\\WIDESEAWCS_Tasks.csproj|solutionrelative:wideseawcs_tasks\\\u5806\u579B\u673A\\stackercranejob_cp.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
-    },
-    {
-      "AbsoluteMoniker": "D:0:0:{294E4915-0241-4C8C-BA99-7588B945863A}|WIDESEAWCS_Tasks\\WIDESEAWCS_Tasks.csproj|e:\\khgithub\\\u5409\u5B89\u7ACB\u5E93\u73B0\u7528\u7248\u672C\\jianliku\\wcs\\wideseawcs_server\\wideseawcs_tasks\\rgv\\rgvjob_l1.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
-      "RelativeMoniker": "D:0:0:{294E4915-0241-4C8C-BA99-7588B945863A}|WIDESEAWCS_Tasks\\WIDESEAWCS_Tasks.csproj|solutionrelative:wideseawcs_tasks\\rgv\\rgvjob_l1.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
-    },
-    {
-      "AbsoluteMoniker": "D:0:0:{294E4915-0241-4C8C-BA99-7588B945863A}|WIDESEAWCS_Tasks\\WIDESEAWCS_Tasks.csproj|e:\\khgithub\\\u5409\u5B89\u7ACB\u5E93\u73B0\u7528\u7248\u672C\\jianliku\\wcs\\wideseawcs_server\\wideseawcs_tasks\\rgv\\rgvjob_l2.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
-      "RelativeMoniker": "D:0:0:{294E4915-0241-4C8C-BA99-7588B945863A}|WIDESEAWCS_Tasks\\WIDESEAWCS_Tasks.csproj|solutionrelative:wideseawcs_tasks\\rgv\\rgvjob_l2.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
-    },
-    {
-      "AbsoluteMoniker": "D:0:0:{294E4915-0241-4C8C-BA99-7588B945863A}|WIDESEAWCS_Tasks\\WIDESEAWCS_Tasks.csproj|e:\\khgithub\\\u5409\u5B89\u7ACB\u5E93\u73B0\u7528\u7248\u672C\\jianliku\\wcs\\wideseawcs_server\\wideseawcs_tasks\\\u677F\u6750\u4ED3\\rgvjob_bc.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
-      "RelativeMoniker": "D:0:0:{294E4915-0241-4C8C-BA99-7588B945863A}|WIDESEAWCS_Tasks\\WIDESEAWCS_Tasks.csproj|solutionrelative:wideseawcs_tasks\\\u677F\u6750\u4ED3\\rgvjob_bc.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
     },
     {
       "AbsoluteMoniker": "D:0:0:{294E4915-0241-4C8C-BA99-7588B945863A}|WIDESEAWCS_Tasks\\WIDESEAWCS_Tasks.csproj|e:\\khgithub\\\u5409\u5B89\u7ACB\u5E93\u73B0\u7528\u7248\u672C\\jianliku\\wcs\\wideseawcs_server\\wideseawcs_tasks\\\u5806\u579B\u673A\\stackercranejob_ys.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
@@ -78,7 +78,7 @@
       "DocumentGroups": [
         {
           "DockedWidth": 200,
-          "SelectedChildIndex": 13,
+          "SelectedChildIndex": 17,
           "Children": [
             {
               "$type": "Bookmark",
@@ -86,7 +86,7 @@
             },
             {
               "$type": "Document",
-              "DocumentIndex": 5,
+              "DocumentIndex": 8,
               "Title": "StackerCraneJob_CP.cs",
               "DocumentMoniker": "E:\\KHGITHUB\\\u5409\u5B89\u7ACB\u5E93\u73B0\u7528\u7248\u672C\\JiAnLiKu\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Tasks\\\u5806\u579B\u673A\\StackerCraneJob_CP.cs",
               "RelativeDocumentMoniker": "WIDESEAWCS_Tasks\\\u5806\u579B\u673A\\StackerCraneJob_CP.cs",
@@ -122,7 +122,7 @@
             },
             {
               "$type": "Document",
-              "DocumentIndex": 7,
+              "DocumentIndex": 2,
               "Title": "RGVJob_L2.cs",
               "DocumentMoniker": "E:\\KHGITHUB\\\u5409\u5B89\u7ACB\u5E93\u73B0\u7528\u7248\u672C\\JiAnLiKu\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Tasks\\RGV\\RGVJob_L2.cs",
               "RelativeDocumentMoniker": "WIDESEAWCS_Tasks\\RGV\\RGVJob_L2.cs",
@@ -130,11 +130,12 @@
               "RelativeToolTip": "WIDESEAWCS_Tasks\\RGV\\RGVJob_L2.cs",
               "ViewState": "AgIAAE0AAAAAAAAAAAAYwFUAAAAYAAAAAAAAAA==",
               "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
-              "WhenOpened": "2026-01-09T06:57:14.268Z"
+              "WhenOpened": "2026-01-09T06:57:14.268Z",
+              "EditorCaption": ""
             },
             {
               "$type": "Document",
-              "DocumentIndex": 6,
+              "DocumentIndex": 1,
               "Title": "RGVJob_L1.cs",
               "DocumentMoniker": "E:\\KHGITHUB\\\u5409\u5B89\u7ACB\u5E93\u73B0\u7528\u7248\u672C\\JiAnLiKu\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Tasks\\RGV\\RGVJob_L1.cs",
               "RelativeDocumentMoniker": "WIDESEAWCS_Tasks\\RGV\\RGVJob_L1.cs",
@@ -142,11 +143,12 @@
               "RelativeToolTip": "WIDESEAWCS_Tasks\\RGV\\RGVJob_L1.cs",
               "ViewState": "AgIAAE0AAAAAAAAAAAAIwFUAAAAZAAAAAAAAAA==",
               "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
-              "WhenOpened": "2026-01-09T06:45:58.141Z"
+              "WhenOpened": "2026-01-09T06:45:58.141Z",
+              "EditorCaption": ""
             },
             {
               "$type": "Document",
-              "DocumentIndex": 2,
+              "DocumentIndex": 6,
               "Title": "appsettings.json",
               "DocumentMoniker": "E:\\KHGITHUB\\\u5409\u5B89\u7ACB\u5E93\u73B0\u7528\u7248\u672C\\JiAnLiKu\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Server\\appsettings.json",
               "RelativeDocumentMoniker": "WIDESEAWCS_Server\\appsettings.json",
@@ -158,7 +160,7 @@
             },
             {
               "$type": "Document",
-              "DocumentIndex": 4,
+              "DocumentIndex": 3,
               "Title": "CommonConveyorLineJob.cs",
               "DocumentMoniker": "E:\\KHGITHUB\\\u5409\u5B89\u7ACB\u5E93\u73B0\u7528\u7248\u672C\\JiAnLiKu\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Tasks\\ConveyorLineJob\\CommonConveyorLineJob.cs",
               "RelativeDocumentMoniker": "WIDESEAWCS_Tasks\\ConveyorLineJob\\CommonConveyorLineJob.cs",
@@ -166,7 +168,8 @@
               "RelativeToolTip": "WIDESEAWCS_Tasks\\ConveyorLineJob\\CommonConveyorLineJob.cs",
               "ViewState": "AgIAAIsAAAAAAAAAAAAAwJsAAAB2AAAAAAAAAA==",
               "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
-              "WhenOpened": "2026-01-08T09:45:25.115Z"
+              "WhenOpened": "2026-01-08T09:45:25.115Z",
+              "EditorCaption": ""
             },
             {
               "$type": "Document",
@@ -182,7 +185,7 @@
             },
             {
               "$type": "Document",
-              "DocumentIndex": 1,
+              "DocumentIndex": 5,
               "Title": "TaskController.cs",
               "DocumentMoniker": "E:\\KHGITHUB\\\u5409\u5B89\u7ACB\u5E93\u73B0\u7528\u7248\u672C\\JiAnLiKu\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Server\\Controllers\\Task\\TaskController.cs",
               "RelativeDocumentMoniker": "WIDESEAWCS_Server\\Controllers\\Task\\TaskController.cs",
@@ -218,7 +221,7 @@
             },
             {
               "$type": "Document",
-              "DocumentIndex": 3,
+              "DocumentIndex": 7,
               "Title": "ITaskService.cs",
               "DocumentMoniker": "E:\\KHGITHUB\\\u5409\u5B89\u7ACB\u5E93\u73B0\u7528\u7248\u672C\\JiAnLiKu\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_ITaskInfoService\\ITaskService.cs",
               "RelativeDocumentMoniker": "WIDESEAWCS_ITaskInfoService\\ITaskService.cs",
@@ -230,7 +233,7 @@
             },
             {
               "$type": "Document",
-              "DocumentIndex": 0,
+              "DocumentIndex": 4,
               "Title": "TaskService.cs",
               "DocumentMoniker": "E:\\KHGITHUB\\\u5409\u5B89\u7ACB\u5E93\u73B0\u7528\u7248\u672C\\JiAnLiKu\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_TaskInfoService\\TaskService.cs",
               "RelativeDocumentMoniker": "WIDESEAWCS_TaskInfoService\\TaskService.cs",
@@ -279,15 +282,16 @@
             },
             {
               "$type": "Document",
-              "DocumentIndex": 8,
+              "DocumentIndex": 0,
               "Title": "RGVJob_BC.cs",
               "DocumentMoniker": "E:\\KHGITHUB\\\u5409\u5B89\u7ACB\u5E93\u73B0\u7528\u7248\u672C\\JiAnLiKu\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Tasks\\\u677F\u6750\u4ED3\\RGVJob_BC.cs",
               "RelativeDocumentMoniker": "WIDESEAWCS_Tasks\\\u677F\u6750\u4ED3\\RGVJob_BC.cs",
               "ToolTip": "E:\\KHGITHUB\\\u5409\u5B89\u7ACB\u5E93\u73B0\u7528\u7248\u672C\\JiAnLiKu\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Tasks\\\u677F\u6750\u4ED3\\RGVJob_BC.cs",
               "RelativeToolTip": "WIDESEAWCS_Tasks\\\u677F\u6750\u4ED3\\RGVJob_BC.cs",
-              "ViewState": "AgIAAE0AAAAAAAAAAAAswFsAAABvAAAAAAAAAA==",
+              "ViewState": "AgIAAEcAAAAAAAAAAAAswGIAAABeAAAAAAAAAA==",
               "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
-              "WhenOpened": "2025-07-23T04:01:40.27Z"
+              "WhenOpened": "2025-07-23T04:01:40.27Z",
+              "EditorCaption": ""
             }
           ]
         }
diff --git a/WMS/WIDESEA_WMSClient/src/extension/inbound/takeStockOrderCP.js b/WMS/WIDESEA_WMSClient/src/extension/inbound/takeStockOrderCP.js
new file mode 100644
index 0000000..2ebc717
--- /dev/null
+++ b/WMS/WIDESEA_WMSClient/src/extension/inbound/takeStockOrderCP.js
@@ -0,0 +1,89 @@
+let extension = {
+    components: {
+      //鏌ヨ鐣岄潰鎵╁睍缁勪欢
+      gridHeader: '',
+      gridBody: '',
+      gridFooter: '',
+      //鏂板缓銆佺紪杈戝脊鍑烘鎵╁睍缁勪欢
+      modelHeader: '',
+      modelBody: '',
+      modelFooter: ''
+    },
+    tableAction: '', //鎸囧畾鏌愬紶琛ㄧ殑鏉冮檺(杩欓噷濉啓琛ㄥ悕,榛樿涓嶇敤濉啓)
+    buttons: { view: [], box: [], detail: [] }, //鎵╁睍鐨勬寜閽�
+    methods: {
+      onInit() {  
+        this.columns.push({
+          field: '鎿嶄綔',
+          title: '鎿嶄綔',
+          width: 90,
+          fixed: 'right',
+          align: 'center',
+          formatter: (row) => {
+              return (
+                  '<i style="cursor: pointer;color: #2d8cf0;"class="el-icon-view">鐩存帴鍑哄簱</i>'
+              );
+          },
+          click: (row) => {
+              this.$confirm("鏄惁纭鍑哄簱","鍑哄簱鎿嶄綔纭",{
+              confirmButtonText: "纭畾",
+              cancelButtonText: "鍙栨秷",
+              type: "warning",
+              center: true,
+              }).then(() => {
+                let rows = this.$refs.table.getSelected();
+                if (rows.length == 0) return this.$error("璇烽�夋嫨鏁版嵁!");
+                if (rows.length > 1) return this.$error("璇烽�夋嫨涓�鏉℃暟鎹�!");
+                const keys = rows.map(row => row.id);
+                // 鍙戦�丳OST璇锋眰锛屽皢ID鏁扮粍浣滀负璇锋眰浣撳彂閫�
+                this.http
+                .post("api/Task/SMOMGenerateSTOutboundTask", keys, "鏁版嵁澶勭悊涓�...")
+                .then((x) => {
+                    if (x.status) {
+                    this.$Message.success('鎿嶄綔鎴愬姛');
+                    this.refresh();
+                  } else {
+                    return this.$error(x.message);
+                  }
+                });
+              });
+          }
+      });
+      },
+      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/WMS/WIDESEA_WMSClient/src/extension/stock/stockInfo.js b/WMS/WIDESEA_WMSClient/src/extension/stock/stockInfo.js
index efd68fc..559497f 100644
--- a/WMS/WIDESEA_WMSClient/src/extension/stock/stockInfo.js
+++ b/WMS/WIDESEA_WMSClient/src/extension/stock/stockInfo.js
@@ -190,7 +190,7 @@
         align: 'center',
         formatter: (row) => {
             return (
-                '<i style="cursor: pointer;color: #2d8cf0;"class="el-icon-view">鐩存帴鍑哄簱</i>'
+                '<i style="cursor: pointer;color: #2d8cf0;"class="el-icon-view">鍚堟墭鍑哄簱</i>'
             );
         },
         click: (row) => {
diff --git a/WMS/WIDESEA_WMSClient/src/router/viewGird.js b/WMS/WIDESEA_WMSClient/src/router/viewGird.js
index 050984f..cdbb067 100644
--- a/WMS/WIDESEA_WMSClient/src/router/viewGird.js
+++ b/WMS/WIDESEA_WMSClient/src/router/viewGird.js
@@ -132,6 +132,10 @@
     path: '/takeStockOrder',
     name: 'takeStockOrder',
     component: () => import('@/views/inbound/takeStockOrder.vue')
+  }, {
+    path: '/takeStockOrderCP',
+    name: 'takeStockOrderCP',
+    component: () => import('@/views/inbound/takeStockOrderCP.vue')
   }]
 
 export default viewgird
diff --git a/WMS/WIDESEA_WMSClient/src/views/inbound/takeStockOrderCP.vue b/WMS/WIDESEA_WMSClient/src/views/inbound/takeStockOrderCP.vue
new file mode 100644
index 0000000..3a8026a
--- /dev/null
+++ b/WMS/WIDESEA_WMSClient/src/views/inbound/takeStockOrderCP.vue
@@ -0,0 +1,293 @@
+
+<template>
+    <!-- <div>
+      <assemble-dist></assemble-dist>
+    </div> -->
+    <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/inbound/takeStockOrderCP.js";
+  import { ref, defineComponent } from "vue";
+  // import AssembleDistVue from '../charts/AssembleDist.vue';
+  export default defineComponent({
+    // components: {
+    //   'assemble-dist': AssembleDistVue,
+    // },
+    setup() {
+      //浣跨敤缁勪欢AssembleDist
+      const table = ref({ 
+        key: "id",
+        footer: "Foots",
+        cnName: "鐩樼偣鍗�",
+        name: "takeStockOrderCP",
+        url: "/TakeStockOrderCP/",
+        sortName: "id",
+      });
+  
+      const searchFormFields = ref({
+        orderNo:""
+      });
+      const searchFormOptions = ref([
+        [
+        { title: "鍗曟嵁缂栧彿", field: "orderNo", type: "like" },
+        ]
+      ]);
+  
+      const editFormFields = ref({
+        orderNo:"",
+        warehouseId: "",
+        remark:""
+      });
+      const editFormOptions = ref([
+      [
+        {
+          field: "orderNo",
+          title: "鍗曟嵁缂栧彿",
+          type: "string",
+          readonly: "true",
+        },
+        {
+          title: "浠撳簱",
+          field: "warehouseId",
+          type: "select",
+          dataKey: "warehouses",
+          data: [],
+          required: true,
+        },
+        {
+          field: "remark",
+          title: "澶囨敞",
+          type: "string",
+        }
+      ]
+      ]);
+      const columns = ref([
+        {
+          field: "id",
+          title: "Id",
+          type: "int",
+          width: 90,
+          hidden: true,
+          readonly: true,
+          require: true,
+          align: "left",
+        },
+        {
+          field: "orderNo",
+          title: "鐩樼偣鍗曞彿",
+          type: "string",
+          width: 150,
+          align: "left",
+          link: true,
+        },
+        {
+          field: "takeStockStatus",
+          title: "鐩樼偣鐘舵��",
+          type: "string",
+          width: 120,
+          align: "left",
+          bind: { key: "takeStockStatusEnum", data: [] },
+        },
+        {
+          field: "warehouseId",
+          title: "浠撳簱",
+          type: "string",
+          width: 90,
+          align: "left",
+          bind:{key: "warehouses", data: []}
+        },
+        {
+          field: "creater",
+          title: "鍒涘缓浜�",
+          type: "string",
+          width: 90,
+          align: "left",
+        },
+        {
+          field: "createDate",
+          title: "鍒涘缓鏃堕棿",
+          type: "datetime",
+          width: 160,
+          align: "left",
+        },
+        {
+          field: "modifier",
+          title: "淇敼浜�",
+          type: "string",
+          width: 100,
+          align: "left",
+        },
+        {
+          field: "modifyDate",
+          title: "淇敼鏃堕棿",
+          type: "datetime",
+          width: 160,
+          align: "left",
+        },
+        {
+          field: "remark",
+          title: "澶囨敞",
+          type: "string",
+          width: 100,
+          align: "left",
+        },
+      ]);
+      const detail = ref({
+        cnName: "鐩樼偣鏄庣粏",
+        table: "Dt_TakeStockOrderDetail",
+        columns: [
+          {
+            field: "id",
+            title: "Id",
+            type: "int",
+            width: 90,
+            hidden: true,
+            readonly: true,
+            require: true,
+            align: "left",
+          },
+          {
+            field: "takeStockId",
+            title: "鐩樼偣鍗曚富閿�",
+            type: "string",
+            width: 90,
+            align: "left",
+            hidden: true,
+          },
+          {
+            field: "takePalletCode",
+            title: "鐩樼偣鎵樼洏",
+            type: "string",
+            width: 150,
+            align: "left",
+            required: true,
+          },
+          {
+            field: "takeDetalStatus",
+            title: "鐩樼偣鏄庣粏鐘舵��",
+            type: "int",
+            width: 130,
+            align: "left",
+            bind: { key: "takeStockDetailStatusEnum", data: [] },
+          },
+          {
+            field: "materielCode",
+            title: "鐗╂枡缂栫爜",
+            type: "string",
+            width: 110,
+            align: "left",
+            required: true,
+          },
+          {
+            field: "materielName",
+            title: "鐗╂枡鍚嶇О",
+            type: "string",
+            width: 120,
+            align: "left",
+            required: true,
+          },
+          {
+            field: "batchNo",
+            title: "鎵规鍙�",
+            type: "string",
+            width: 130,
+            align: "left",
+            required: true,
+          },
+          {
+            field: "materielSpec",
+            title: "鐗╂枡鍚嶇О",
+            type: "string",
+            width: 120,
+            align: "left",
+            required: true,
+          },
+          {
+            field: "sysQty",
+            title: "璐﹂潰鏁伴噺",
+            type: "decimal",
+            width: 90,
+            align: "left",
+            required: true,
+            edit: { type: "decimal" }
+          },
+          {
+            field: "qty",
+            title: "瀹炵洏鏁伴噺",
+            type: "decimal",
+            width: 90,
+            align: "left",
+            required: true,
+            edit: { type: "decimal" }
+          },
+          {
+            field: "unit",
+            title: "鍗曚綅",
+            type: "string",
+            width: 90,
+            align: "left",
+          },
+          {
+            field: "creater",
+            title: "鍒涘缓浜�",
+            type: "string",
+            width: 90,
+            align: "left",
+          },
+          {
+            field: "createDate",
+            title: "鍒涘缓鏃堕棿",
+            type: "datetime",
+            width: 160,
+            align: "left",
+          },
+          {
+            field: "modifier",
+            title: "淇敼浜�",
+            type: "string",
+            width: 100,
+            align: "left",
+          },
+          {
+            field: "modifyDate",
+            title: "淇敼鏃堕棿",
+            type: "datetime",
+            width: 160,
+            align: "left",
+          },
+          {
+            field: "remark",
+            title: "澶囨敞",
+            type: "string",
+            width: 100,
+            align: "left",
+          },
+        ],
+        sortName: "id",
+        key: "id",
+      });
+      return {
+        table,
+        extend,
+        editFormFields,
+        editFormOptions,
+        searchFormFields,
+        searchFormOptions,
+        columns,
+        detail,
+      };
+    },
+  });
+  </script>
+        
\ No newline at end of file
diff --git a/WMS/WIDESEA_WMSClient/src/views/stock/stockView.vue b/WMS/WIDESEA_WMSClient/src/views/stock/stockView.vue
index 9cec1aa..8e8389d 100644
--- a/WMS/WIDESEA_WMSClient/src/views/stock/stockView.vue
+++ b/WMS/WIDESEA_WMSClient/src/views/stock/stockView.vue
@@ -69,6 +69,17 @@
         },
         { title: "搴撳瓨鍒涘缓鏃堕棿", field: "createDate", type: "datetime" },
       ],
+      [
+        {
+          title:"涓婃父绯荤粺",
+          field:"system",
+          type:"select",
+            data: [
+          { key: "SMOM", value: "SMOM" },
+          { key: "ERP", value: "ERP" },
+        ]
+        }
+      ]
     ]);
     const columns = ref([
       {
@@ -172,6 +183,14 @@
         align: "left",
         hidden: true,
       },
+       {
+        field: "system",
+        title: "涓婃父绯荤粺",
+        type: "string",
+        width: 100,
+        align: "left",
+        // hidden: true,
+      },
       {
         field: "stockStatus",
         title: "搴撳瓨鐘舵��",
diff --git a/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/FileContentIndex/0bbc4c8d-52fc-48e7-998a-998139b31e02.vsidx b/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/FileContentIndex/0bbc4c8d-52fc-48e7-998a-998139b31e02.vsidx
new file mode 100644
index 0000000..d327a24
--- /dev/null
+++ b/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/FileContentIndex/0bbc4c8d-52fc-48e7-998a-998139b31e02.vsidx
Binary files differ
diff --git a/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/FileContentIndex/209a70e9-a93a-4099-bb48-f6583e895856.vsidx b/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/FileContentIndex/209a70e9-a93a-4099-bb48-f6583e895856.vsidx
new file mode 100644
index 0000000..d7ef8ae
--- /dev/null
+++ b/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/FileContentIndex/209a70e9-a93a-4099-bb48-f6583e895856.vsidx
Binary files differ
diff --git a/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/FileContentIndex/c1d52971-2c06-44dd-9a29-da27923e6af5.vsidx b/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/FileContentIndex/c1d52971-2c06-44dd-9a29-da27923e6af5.vsidx
new file mode 100644
index 0000000..c197404
--- /dev/null
+++ b/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/FileContentIndex/c1d52971-2c06-44dd-9a29-da27923e6af5.vsidx
Binary files differ
diff --git a/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/FileContentIndex/d36a016b-a94a-49ea-9e1f-c42b0b35806c.vsidx b/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/FileContentIndex/d36a016b-a94a-49ea-9e1f-c42b0b35806c.vsidx
new file mode 100644
index 0000000..03b68e9
--- /dev/null
+++ b/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/FileContentIndex/d36a016b-a94a-49ea-9e1f-c42b0b35806c.vsidx
Binary files differ
diff --git a/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/v17/DocumentLayout.json b/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/v17/DocumentLayout.json
index d8e2a35..b5fcb59 100644
--- a/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/v17/DocumentLayout.json
+++ b/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/v17/DocumentLayout.json
@@ -196,7 +196,7 @@
             },
             {
               "$type": "Document",
-              "DocumentIndex": 5,
+              "DocumentIndex": 18,
               "Title": "PartialTaskService_Inbound.cs",
               "DocumentMoniker": "D:\\\u9879\u76EE\\1.16\\JiAnLiKu\\WMS\\WIDESEA_WMSServer\\WIDESEA_TaskInfoService\\PartialTaskService_Inbound.cs",
               "RelativeDocumentMoniker": "WIDESEA_TaskInfoService\\PartialTaskService_Inbound.cs",
diff --git a/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/v17/HierarchyCache.v1.txt b/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/v17/HierarchyCache.v1.txt
index caf25dd..41f2695 100644
--- a/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/v17/HierarchyCache.v1.txt
+++ b/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/v17/HierarchyCache.v1.txt
Binary files differ
diff --git a/WMS/WIDESEA_WMSServer/WIDESEA_Common/HouseAdjustment.cs b/WMS/WIDESEA_WMSServer/WIDESEA_Common/HouseAdjustment.cs
new file mode 100644
index 0000000..a787046
--- /dev/null
+++ b/WMS/WIDESEA_WMSServer/WIDESEA_Common/HouseAdjustment.cs
@@ -0,0 +1,41 @@
+锘縰sing System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace WIDESEA_Common
+{
+    public class HouseAdjustment
+    {
+        public List<detailList> DetailList = new List<detailList>();
+
+        public class detailList
+        {
+            /// <summary>
+            /// 鎵樼洏鍙�
+            /// </summary>
+            public string LPNNo { get; set; }
+            /// <summary>
+            /// 鐗╂枡缂栫爜
+            /// </summary>
+            public string MaterielCode { get; set; }
+            /// <summary>
+            /// 鐗╂枡鍚嶇О
+            /// </summary>
+            public string MaterielName { get; set; }
+            /// <summary>
+            /// 鎵规鍙�
+            /// </summary>
+            public string BatchNo { get; set; }
+            /// <summary>
+            /// 
+            /// </summary>
+            public string LinId { get; set; }
+            /// <summary>
+            /// 鐩樼偣鍚庢暟閲�
+            /// </summary>
+            public decimal OrderQuantity { get; set; }
+        }
+    }
+}
diff --git a/WMS/WIDESEA_WMSServer/WIDESEA_Core/AOP/LogAOP.cs b/WMS/WIDESEA_WMSServer/WIDESEA_Core/AOP/LogAOP.cs
index 50c3754..05251de 100644
--- a/WMS/WIDESEA_WMSServer/WIDESEA_Core/AOP/LogAOP.cs
+++ b/WMS/WIDESEA_WMSServer/WIDESEA_Core/AOP/LogAOP.cs
@@ -82,7 +82,7 @@
                             async () => await SuccessAction(invocation, apiLogAopInfo, startTime), /*鎴愬姛鏃舵墽琛�*/
                             ex =>
                             {
-                                LogEx(ex, apiLogAopInfo);
+                                //LogEx(ex, apiLogAopInfo);
                             });
                     }
                     //Task<TResult>
@@ -95,7 +95,7 @@
                             async (o) => await SuccessAction(invocation, apiLogAopInfo, startTime, o), /*鎴愬姛鏃舵墽琛�*/
                             ex =>
                             {
-                                LogEx(ex, apiLogAopInfo);
+                                //LogEx(ex, apiLogAopInfo);
                             });
                     }
 
@@ -146,13 +146,13 @@
                     apiLogAopInfo.ResponseJsonData = jsonResult;
                     Parallel.For(0, 1, e =>
                     {
-                        LogLock.OutLogAOP("AOPLog", new string[] { apiLogAopInfo.GetType().ToString(), JsonConvert.SerializeObject(apiLogAopInfo) });
+                        //LogLock.OutLogAOP("AOPLog", new string[] { apiLogAopInfo.GetType().ToString(), JsonConvert.SerializeObject(apiLogAopInfo) });
                     });
                 }
             }
             catch (Exception ex) // 鍚屾2
             {
-                LogEx(ex, apiLogAopInfo);
+                //LogEx(ex, apiLogAopInfo);
                 throw;
             }
         }
diff --git a/WMS/WIDESEA_WMSServer/WIDESEA_Core/Enums/OrderEnum.cs b/WMS/WIDESEA_WMSServer/WIDESEA_Core/Enums/OrderEnum.cs
index adaa92a..0ba2f05 100644
--- a/WMS/WIDESEA_WMSServer/WIDESEA_Core/Enums/OrderEnum.cs
+++ b/WMS/WIDESEA_WMSServer/WIDESEA_Core/Enums/OrderEnum.cs
@@ -54,6 +54,12 @@
         [Description("鍙嶆嫞鍑哄簱鍗�")]
         鍙嶆嫞鍑哄簱鍗� = 6,
 
+        /// <summary>
+        /// 鐩樼偣鍥炲簱鍗�
+        /// </summary>
+        [Description("鐩樼偣鍥炲簱鍗�")]
+        鐩樼偣鍥炲簱鍗� = 7,
+
     }
     /// <summary>
     /// 鍗曟嵁澶х被
diff --git a/WMS/WIDESEA_WMSServer/WIDESEA_DTO/Stock/StockViewDTO.cs b/WMS/WIDESEA_WMSServer/WIDESEA_DTO/Stock/StockViewDTO.cs
index 0a86612..87ead94 100644
--- a/WMS/WIDESEA_WMSServer/WIDESEA_DTO/Stock/StockViewDTO.cs
+++ b/WMS/WIDESEA_WMSServer/WIDESEA_DTO/Stock/StockViewDTO.cs
@@ -122,6 +122,12 @@
         public string BatchNo { get; set; }
 
         /// <summary>
+        /// 涓婃父绯荤粺
+        /// </summary>
+        [ExporterHeader(DisplayName = "涓婃父绯荤粺")]
+        public string System { get; set; }
+
+        /// <summary>
         ///渚涘簲鍟嗘壒鍙�
         /// </summary>
         [ExporterHeader(DisplayName = "渚涘簲鍟嗘壒娆�")]
diff --git a/WMS/WIDESEA_WMSServer/WIDESEA_IInboundRepository/ITakeStockOrderCPRepository.cs b/WMS/WIDESEA_WMSServer/WIDESEA_IInboundRepository/ITakeStockOrderCPRepository.cs
new file mode 100644
index 0000000..956e69a
--- /dev/null
+++ b/WMS/WIDESEA_WMSServer/WIDESEA_IInboundRepository/ITakeStockOrderCPRepository.cs
@@ -0,0 +1,17 @@
+锘縰sing System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using WIDESEA_Core.BaseRepository;
+using WIDESEA_Model.Models;
+
+namespace WIDESEA_IInboundRepository
+{
+    /// <summary>
+    /// 鐩樼偣鍗曚粨鍌ㄦ帴鍙e眰
+    /// </summary>
+    public interface ITakeStockOrderCPRepository : IRepository<Dt_TakeStockOrderCP>
+    {
+    }
+}
diff --git a/WMS/WIDESEA_WMSServer/WIDESEA_IInboundRepository/ITakeStockOrderDetailCPRepository.cs b/WMS/WIDESEA_WMSServer/WIDESEA_IInboundRepository/ITakeStockOrderDetailCPRepository.cs
new file mode 100644
index 0000000..23aea65
--- /dev/null
+++ b/WMS/WIDESEA_WMSServer/WIDESEA_IInboundRepository/ITakeStockOrderDetailCPRepository.cs
@@ -0,0 +1,17 @@
+锘縰sing System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using WIDESEA_Core.BaseRepository;
+using WIDESEA_Model.Models;
+
+namespace WIDESEA_IInboundRepository
+{
+    /// <summary>
+    /// 鐩樼偣鍗曟槑缁嗕粨鍌ㄦ帴鍙e眰
+    /// </summary>
+    public interface ITakeStockOrderDetailCPRepository : IRepository<Dt_TakeStockOrderDetailCP>
+    {
+    }
+}
diff --git a/WMS/WIDESEA_WMSServer/WIDESEA_IInboundService/ITakeStockOrderCPService.cs b/WMS/WIDESEA_WMSServer/WIDESEA_IInboundService/ITakeStockOrderCPService.cs
new file mode 100644
index 0000000..26a6445
--- /dev/null
+++ b/WMS/WIDESEA_WMSServer/WIDESEA_IInboundService/ITakeStockOrderCPService.cs
@@ -0,0 +1,23 @@
+锘縰sing System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using WIDESEA_Common;
+using WIDESEA_Core;
+using WIDESEA_Core.BaseServices;
+using WIDESEA_DTO.ERP;
+using WIDESEA_IInboundRepository;
+using WIDESEA_Model.Models;
+
+namespace WIDESEA_IInboundService
+{
+    public interface ITakeStockOrderCPService : IService<Dt_TakeStockOrderCP>
+    {
+        ITakeStockOrderCPRepository Repository { get; }
+
+        //smom鐩樼偣浠诲姟
+        WebResponseContent NewInventoryOut(HouseCancelOut houseInventoryOut);
+    }
+
+}
diff --git a/WMS/WIDESEA_WMSServer/WIDESEA_IInboundService/ITakeStockOrderDetailCPService.cs b/WMS/WIDESEA_WMSServer/WIDESEA_IInboundService/ITakeStockOrderDetailCPService.cs
new file mode 100644
index 0000000..b3e3b92
--- /dev/null
+++ b/WMS/WIDESEA_WMSServer/WIDESEA_IInboundService/ITakeStockOrderDetailCPService.cs
@@ -0,0 +1,18 @@
+锘縰sing System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using WIDESEA_Core;
+using WIDESEA_Core.BaseServices;
+using WIDESEA_DTO.ERP;
+using WIDESEA_IInboundRepository;
+using WIDESEA_Model.Models;
+
+namespace WIDESEA_IInboundService
+{
+    public interface ITakeStockOrderDetailCPService : IService<Dt_TakeStockOrderDetailCP>
+    {
+        ITakeStockOrderDetailCPRepository Repository { get; }
+    }
+}
diff --git a/WMS/WIDESEA_WMSServer/WIDESEA_ITaskInfoService/ITaskService.cs b/WMS/WIDESEA_WMSServer/WIDESEA_ITaskInfoService/ITaskService.cs
index 40b7b75..40916ec 100644
--- a/WMS/WIDESEA_WMSServer/WIDESEA_ITaskInfoService/ITaskService.cs
+++ b/WMS/WIDESEA_WMSServer/WIDESEA_ITaskInfoService/ITaskService.cs
@@ -65,6 +65,7 @@
         WebResponseContent OutboundTaskCompleted(int taskNum);
         WebResponseContent AddOutboundOrders(Houseounbound orderAddDTO);
         WebResponseContent InventoryOut(HouseCancelOut houseInventoryOut);
+        WebResponseContent SMOMAdjustment(HouseAdjustment houseAdjustment);
         WebResponseContent InventoryIn(string name, int qty);
         /// <summary>
         /// 鍒嗛厤宸烽亾
@@ -101,5 +102,7 @@
         WebResponseContent WMSGenerateNewOutboundTask(int[] keys);
 
         WebResponseContent WMSGenerateSTOutboundTask(int[] keys);
+
+        WebResponseContent SMOMGenerateSTOutboundTask(int[] keys);
     }
 }
diff --git a/WMS/WIDESEA_WMSServer/WIDESEA_InboundRepository/TakeStockOrderCPRepository.cs b/WMS/WIDESEA_WMSServer/WIDESEA_InboundRepository/TakeStockOrderCPRepository.cs
new file mode 100644
index 0000000..ee9cb03
--- /dev/null
+++ b/WMS/WIDESEA_WMSServer/WIDESEA_InboundRepository/TakeStockOrderCPRepository.cs
@@ -0,0 +1,21 @@
+锘縰sing System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using WIDESEA_Core.BaseRepository;
+using WIDESEA_IInboundRepository;
+using WIDESEA_Model.Models;
+
+namespace WIDESEA_InboundRepository
+{
+    /// <summary>
+    /// 鐩樼偣鍗曚粨鍌ㄥ疄鐜板眰
+    /// </summary>
+    public class TakeStockOrderCPRepository : RepositoryBase<Dt_TakeStockOrderCP>, ITakeStockOrderCPRepository
+    {
+        public TakeStockOrderCPRepository(IUnitOfWorkManage unitOfWorkManage) : base(unitOfWorkManage)
+        {
+        }
+    }
+}
diff --git a/WMS/WIDESEA_WMSServer/WIDESEA_InboundRepository/TakeStockOrderDetailCPRepository.cs b/WMS/WIDESEA_WMSServer/WIDESEA_InboundRepository/TakeStockOrderDetailCPRepository.cs
new file mode 100644
index 0000000..77f781f
--- /dev/null
+++ b/WMS/WIDESEA_WMSServer/WIDESEA_InboundRepository/TakeStockOrderDetailCPRepository.cs
@@ -0,0 +1,21 @@
+锘縰sing System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using WIDESEA_Core.BaseRepository;
+using WIDESEA_IInboundRepository;
+using WIDESEA_Model.Models;
+
+namespace WIDESEA_InboundRepository
+{
+    /// <summary>
+    /// 鐩樼偣鍗曚粨鍌ㄥ疄鐜板眰
+    /// </summary>
+    public class TakeStockOrderDetailCPRepository : RepositoryBase<Dt_TakeStockOrderDetailCP>, ITakeStockOrderDetailCPRepository
+    {
+        public TakeStockOrderDetailCPRepository(IUnitOfWorkManage unitOfWorkManage) : base(unitOfWorkManage)
+        {
+        }
+    }
+}
diff --git a/WMS/WIDESEA_WMSServer/WIDESEA_InboundService/Base/InboundOrderService.cs b/WMS/WIDESEA_WMSServer/WIDESEA_InboundService/Base/InboundOrderService.cs
index 798eb01..92a3b43 100644
--- a/WMS/WIDESEA_WMSServer/WIDESEA_InboundService/Base/InboundOrderService.cs
+++ b/WMS/WIDESEA_WMSServer/WIDESEA_InboundService/Base/InboundOrderService.cs
@@ -213,6 +213,7 @@
                         Wlstatus = (int)InventoryMaterialStatus.鍚堟牸,
                         Mgeneratetime = DateTime.Now,
                         WarehouseId = warehouse.WarehouseId,
+                        System = inboundOrder.System,
                         Details = new List<Dt_StockInfoDetail>()
                     };
                 }
@@ -454,6 +455,7 @@
                         Wlstatus = (int)InventoryMaterialStatus.鍚堟牸,
                         Mgeneratetime = DateTime.Now,
                         WarehouseId = warehouse.WarehouseId,
+                        System = inboundOrder.System,
                         Details = new List<Dt_StockInfoDetail>()
                     };
                 }
@@ -722,6 +724,7 @@
                         Wlstatus = (int)InventoryMaterialStatus.鍚堟牸,
                         Mgeneratetime = DateTime.Now,
                         WarehouseId = warehouse.WarehouseId,
+                        System = inboundOrder.System,
                         Details = new List<Dt_StockInfoDetail>()
                     };
                 }
@@ -869,10 +872,46 @@
                 {
                     throw new Exception("搴撳瓨鏈壘鍒版墭鐩樺彿");
                 }
+
+                var sameItems = from sourceItem in stockInfo.Details
+                                join targetItem in targetstockInfo.Details
+                                on new
+                                {
+                                    sourceItem.BatchNo,
+                                    sourceItem.MaterielName,
+                                    sourceItem.MaterielCode
+                                }
+                                equals new
+                                {
+                                    targetItem.BatchNo,
+                                    targetItem.MaterielName,
+                                    targetItem.MaterielCode
+                                }
+                                select new
+                                {
+                                    SourceItem = sourceItem,
+                                    TargetItem = targetItem,
+                                    BatchNo = sourceItem.BatchNo,
+                                    MaterialCode = sourceItem.MaterielCode,
+                                    MaterialType = sourceItem.MaterielName
+                                };
+
+                var matchedSourceItemIds = sameItems.Select(x => x.SourceItem.Id).ToList();
+
                 foreach (var item in stockInfo.Details)
                 {
-                    item.StockId = targetstockInfo.Id;
+                    if (!matchedSourceItemIds.Contains(item.Id))
+                    {
+                        item.StockId = targetstockInfo.Id;
+                    }
                 }
+                var differentItems = stockInfo.Details
+      .Where(x => !matchedSourceItemIds.Contains(x.Id))
+      .ToList();
+                targetstockInfo.Details = targetstockInfo.Details
+      .Where(x => !matchedSourceItemIds.Contains(x.Id))
+      .Concat(differentItems)
+      .ToList();
                 if (warehouse.WarehouseCode == "SC02_CP")
                 {
                     warehouse.WarehouseCode = "SC01_CP";
@@ -905,21 +944,6 @@
                         }).ToList()
                             }
                     }
-                    //    Parameters = stockInfo.Details.Select(g => new HouseSyncretism.data
-                    //    {
-                    //        Lpn = stockInfo.PalletCode,
-                    //        MoveType = 0,
-                    //        WareHouseCode = warehouse.WarehouseCode,
-                    //        ItemCode = g.MaterielCode,
-                    //        MoveNumber = g.StockQuantity,
-                    //        //LotNo = g.,
-                    //        WipBatch = g.BatchNo,
-                    //        LocationName = stockInfo.PalletCode,
-                    //        TargetLocName = targetstockInfo.PalletCode,
-                    //        TargetLpn = targetstockInfo.PalletCode,
-
-                    //    }).ToList()
-                    //};
                 };
                 var authResult = AuthenticateWithWMS();
                 if (authResult.IsSuccess)
@@ -940,10 +964,15 @@
 
                 }
                 _unitOfWorkManage.BeginTran();
-                targetstockInfo.Details.AddRange(stockInfo.Details);
+                foreach (var sameItem in sameItems)
+                {
+                    sameItem.TargetItem.StockQuantity += sameItem.SourceItem.StockQuantity;
+                    _stockRepository.StockInfoDetailRepository.UpdateData(sameItem.TargetItem);
+                    _stockRepository.StockInfoDetailRepository.DeleteData(sameItem.SourceItem);
+                }
                 _stockRepository.StockInfoRepository.UpdateData(targetstockInfo);
-                _stockRepository.StockInfoDetailRepository.UpdateData(stockInfo.Details);
                 _stockRepository.StockInfoRepository.DeleteData(stockInfo);
+
                 _unitOfWorkManage.CommitTran();
                 webResponseContent = WebResponseContent.Instance.OK("鍚堟墭鎴愬姛");
             }
diff --git a/WMS/WIDESEA_WMSServer/WIDESEA_InboundService/Base/TakeStockOrderCPService.cs b/WMS/WIDESEA_WMSServer/WIDESEA_InboundService/Base/TakeStockOrderCPService.cs
new file mode 100644
index 0000000..4955f16
--- /dev/null
+++ b/WMS/WIDESEA_WMSServer/WIDESEA_InboundService/Base/TakeStockOrderCPService.cs
@@ -0,0 +1,116 @@
+锘縰sing System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using WIDESEA_Core.BaseServices;
+using WIDESEA_Core;
+using WIDESEA_IInboundRepository;
+using WIDESEA_IInboundService;
+using WIDESEA_Model.Models;
+using WIDESEA_DTO.ERP;
+using WIDESEA_Core.BaseRepository;
+using WIDESEA_IBasicRepository;
+using WIDESEA_Common.OrderEnum;
+using WIDESEA_Core.Helper;
+using Microsoft.AspNetCore.Mvc.RazorPages;
+using WIDESEA_InboundRepository;
+using WIDESEA_IStockRepository;
+using WIDESEA_Core.Enums;
+using SqlSugar;
+using System.Collections;
+using WIDESEA_Common;
+using WIDESEA_DTO.Outbound;
+using WIDESEA_Core.TaskEnum;
+
+namespace WIDESEA_InboundService
+{
+    public class TakeStockOrderCPService : ServiceBase<Dt_TakeStockOrderCP, ITakeStockOrderCPRepository>, ITakeStockOrderCPService
+    {
+        public ITakeStockOrderCPRepository Repository => BaseDal;
+        private readonly IUnitOfWorkManage _unitOfWorkManage;
+        private readonly IBasicRepository _basicRepository;
+        private readonly ITakeStockOrderDetailCPRepository _takeStockOrderDetailCPRepository;
+        private readonly IStockInfoRepository _stockInfoRepository;
+        private readonly IStockInfoDetailRepository _stockInfoDetailRepository;
+        public TakeStockOrderCPService(ITakeStockOrderCPRepository BaseDal, IUnitOfWorkManage unitOfWorkManage, IBasicRepository basicRepository, ITakeStockOrderDetailCPRepository takeStockOrderDetailCPRepository, IStockInfoRepository stockInfoRepository, IStockInfoDetailRepository stockInfoDetailRepository) : base(BaseDal)
+        {
+            _unitOfWorkManage = unitOfWorkManage;
+            _basicRepository = basicRepository;
+            _takeStockOrderDetailCPRepository = takeStockOrderDetailCPRepository;
+            _stockInfoRepository = stockInfoRepository;
+            _stockInfoDetailRepository = stockInfoDetailRepository;
+        }
+
+        //smom涓嬪彂鐩樼偣浠诲姟
+        public WebResponseContent NewInventoryOut(HouseCancelOut houseInventoryOut)
+        {
+            WebResponseContent content = new();
+            try
+            {
+                Dt_TakeStockOrderCP takeStockOrderCP = BaseDal.QueryFirst(x => x.OrderNo == houseInventoryOut.No);
+                if (takeStockOrderCP != null)
+                {
+                    OutboundOrderAddDTO orderAddDTO1 = new OutboundOrderAddDTO();
+                    orderAddDTO1.Details = houseInventoryOut.DetailList.DicToIEnumerable<OutboundOrderDetailAddDTO>();
+                    foreach (var item in orderAddDTO1.Details)
+                    {
+                        Dt_TakeStockOrderDetailCP takeStockOrderDetail = new Dt_TakeStockOrderDetailCP()
+                        {
+                            TakeStockId = takeStockOrderCP.Id,
+                            MaterielCode = item.MaterielCode,
+                            MaterielName = item.MaterielName,
+                            BatchNo = item.BatchNo,
+                            MaterielSpec = item.MaterieSpec,
+                            SysQty = item.OrderQuantity,
+                            TakeDetalStatus = TakeStockDetailStatusEnum.鏈洏鐐�.ObjToInt(),
+                        };
+                        takeStockOrderCP.Details.Add(takeStockOrderDetail);
+                    }
+                }
+                else
+                {
+                    OutboundOrderAddDTO orderAddDTO1 = new OutboundOrderAddDTO();
+                    orderAddDTO1.Details = houseInventoryOut.DetailList.DicToIEnumerable<OutboundOrderDetailAddDTO>();
+                    Dt_Warehouse warehouse = _basicRepository.WarehouseRepository.QueryFirst(x => x.WarehouseCode == orderAddDTO1.Details.FirstOrDefault().WarehouseCode);
+                    takeStockOrderCP = new Dt_TakeStockOrderCP()
+                    {
+                        OrderNo = houseInventoryOut.No,
+                        WarehouseId = warehouse.WarehouseId,
+                        TakeStockStatus = TakeStockDetailStatusEnum.鏈洏鐐�.ObjToInt(),
+                        Details = new List<Dt_TakeStockOrderDetailCP>()
+                    };
+
+                    foreach (var item in orderAddDTO1.Details)
+                    {
+                        Dt_TakeStockOrderDetailCP takeStockOrderDetail = new Dt_TakeStockOrderDetailCP()
+                        {
+                            TakeStockId = takeStockOrderCP.Id,
+                            MaterielCode = item.MaterielCode,
+                            MaterielName = item.MaterielName,
+                            BatchNo = item.BatchNo,
+                            MaterielSpec = item.MaterieSpec,
+                            SysQty = item.OrderQuantity,
+                            TakeDetalStatus = TakeStockDetailStatusEnum.鏈洏鐐�.ObjToInt(),
+                        };
+                        takeStockOrderCP.Details.Add(takeStockOrderDetail);
+                    }
+                }
+                _unitOfWorkManage.BeginTran();
+                BaseDal.Db.InsertNav(takeStockOrderCP).Include(x => x.Details).ExecuteCommand();
+                _unitOfWorkManage.CommitTran();
+                content = WebResponseContent.Instance.OK();
+            }
+            catch (Exception ex)
+            {
+                _unitOfWorkManage.RollbackTran();
+                content = WebResponseContent.Instance.Error(ex.Message);
+            }
+            finally
+            {
+
+            }
+            return content;
+        }
+    }
+}
diff --git a/WMS/WIDESEA_WMSServer/WIDESEA_InboundService/Base/TakeStockOrderDetailCPService.cs b/WMS/WIDESEA_WMSServer/WIDESEA_InboundService/Base/TakeStockOrderDetailCPService.cs
new file mode 100644
index 0000000..3f31060
--- /dev/null
+++ b/WMS/WIDESEA_WMSServer/WIDESEA_InboundService/Base/TakeStockOrderDetailCPService.cs
@@ -0,0 +1,12 @@
+锘縰sing System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace WIDESEA_InboundService.Base
+{
+    internal class TakeStockOrderDetailCPService
+    {
+    }
+}
diff --git a/WMS/WIDESEA_WMSServer/WIDESEA_Model/Models/Inbound/Dt_TakeStockOrderCP.cs b/WMS/WIDESEA_WMSServer/WIDESEA_Model/Models/Inbound/Dt_TakeStockOrderCP.cs
new file mode 100644
index 0000000..fd64a20
--- /dev/null
+++ b/WMS/WIDESEA_WMSServer/WIDESEA_Model/Models/Inbound/Dt_TakeStockOrderCP.cs
@@ -0,0 +1,56 @@
+锘縰sing SqlSugar;
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using WIDESEA_Core.Attributes;
+using WIDESEA_Core.CodeConfigEnum;
+using WIDESEA_Core.DB.Models;
+using WIDESEA_Core.Enums;
+
+namespace WIDESEA_Model.Models
+{
+    /// <summary>
+    /// 鐩樼偣鍗�
+    /// </summary>
+    [SugarTable(nameof(Dt_TakeStockOrderCP), "鎴愬搧鐩樼偣鍗�")]
+    public class Dt_TakeStockOrderCP : BaseEntity
+    {
+        /// <summary>
+        /// 涓婚敭
+        /// </summary>
+        [SugarColumn(IsPrimaryKey = true, IsIdentity = true, ColumnDescription = "涓婚敭")]
+        public int Id { get; set; }
+
+        /// <summary>
+        /// 鐩樼偣鍗曞彿
+        /// </summary>
+        [SugarColumn(IsNullable = false, Length = 50, ColumnDescription = "鐩樼偣鍗曞彿")]
+        public string OrderNo { get; set; }
+
+        /// <summary>
+        /// 浠撳簱涓婚敭
+        /// </summary>
+        [SugarColumn(IsNullable = false, ColumnDescription = "浠撳簱涓婚敭")]
+        public int WarehouseId { get; set; }
+
+        /// <summary>
+        /// 鐩樼偣鐘舵��
+        /// </summary>
+        [SugarColumn(IsNullable = false, ColumnDescription = "鐩樼偣鐘舵��")]
+        public int TakeStockStatus { get; set; }
+
+        /// <summary>
+        /// 澶囨敞
+        /// </summary>
+        [SugarColumn(IsNullable = true, Length = 500, ColumnDescription = "澶囨敞")]
+        public string Remark { get; set; }
+
+        /// <summary>
+        /// 鐩樼偣鏄庣粏
+        /// </summary>
+        [PropertyValidate("鐩樼偣鏄庣粏", NotNullAndEmpty = true), Navigate(NavigateType.OneToMany, nameof(Dt_TakeStockOrderDetailCP.TakeStockId), nameof(Id))]
+        public List<Dt_TakeStockOrderDetailCP> Details { get; set; }
+    }
+}
diff --git a/WMS/WIDESEA_WMSServer/WIDESEA_Model/Models/Inbound/Dt_TakeStockOrderDetailCP.cs b/WMS/WIDESEA_WMSServer/WIDESEA_Model/Models/Inbound/Dt_TakeStockOrderDetailCP.cs
new file mode 100644
index 0000000..9fb6134
--- /dev/null
+++ b/WMS/WIDESEA_WMSServer/WIDESEA_Model/Models/Inbound/Dt_TakeStockOrderDetailCP.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_TakeStockOrderDetailCP), "鎴愬搧鐩樼偣鍗曟槑缁�")]
+    public class Dt_TakeStockOrderDetailCP : BaseEntity
+    {
+        /// <summary>
+        /// 涓婚敭
+        /// </summary>
+        [SugarColumn(IsPrimaryKey = true, IsIdentity = true, ColumnDescription = "涓婚敭")]
+        public int Id { get; set; }
+
+        /// <summary>
+        /// 鐩樼偣鍗曚富閿�
+        /// </summary>
+        [SugarColumn(IsNullable = false, ColumnDescription = "鐩樼偣鍗曚富閿�")]
+        public int TakeStockId { get; set; }
+
+        /// <summary>
+        /// 鐗╂枡缂栫爜
+        /// </summary>
+        [SugarColumn(IsNullable = false, Length = 50, ColumnDescription = "鐗╂枡缂栫爜")]
+        public string MaterielCode { get; set; }
+
+        /// <summary>
+        /// 鐗╂枡鍚嶇О
+        /// </summary>
+        [SugarColumn(IsNullable = false, Length = 200, ColumnDescription = "鐗╂枡鍚嶇О")]
+        public string MaterielName { get; set; }
+
+        /// <summary>
+        /// 鎵规鍙�
+        /// </summary>
+        [SugarColumn(IsNullable = false, Length = 50, ColumnDescription = "鎵规鍙�")]
+        public string BatchNo { get; set; }
+
+        /// <summary>
+        /// 鐗╂枡瑙勬牸
+        /// </summary>
+        [SugarColumn(IsNullable = true, Length = 200, ColumnDescription = "鐗╂枡瑙勬牸")]
+        public string MaterielSpec { get; set; }
+
+        /// <summary>
+        /// 鍘熶粨浣�
+        /// </summary>
+        [SugarColumn(IsNullable = true, Length = 50, ColumnDescription = "鍘熶粨浣�")]
+        public string LocationCode { get; set; }
+
+        /// <summary>
+        /// 鐩樼偣鎵樼洏
+        /// </summary>
+        [SugarColumn(IsNullable = true, Length = 50, ColumnDescription = "鐩樼偣鎵樼洏")]
+        public string TakePalletCode { get; set; }
+
+        /// <summary>
+        /// 鐩樼偣鏄庣粏鐘舵��
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDescription = "鐩樼偣鏄庣粏鐘舵��")]
+        public int TakeDetalStatus { get; set; }
+
+        /// <summary>
+        /// 鍗曚綅
+        /// </summary>
+        [SugarColumn(IsNullable = true, Length = 50, ColumnDescription = "鍗曚綅")]
+        public string Unit { get; set; }
+
+        /// <summary>
+        /// 璐﹂潰鏁伴噺
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDescription = "璐﹂潰鏁伴噺")]
+        public decimal SysQty { get; set; }
+
+        /// <summary>
+        /// 瀹炵洏鏁伴噺
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDescription = "瀹炵洏鏁伴噺")]
+        public decimal Qty { get; set; }
+
+        /// <summary>
+        /// 澶囨敞
+        /// </summary>
+        [SugarColumn(IsNullable = true, Length = 500, ColumnDescription = "澶囨敞")]
+        public string Remark { get; set; }
+    }
+}
diff --git a/WMS/WIDESEA_WMSServer/WIDESEA_Model/Models/Stock/Dt_StockInfo.cs b/WMS/WIDESEA_WMSServer/WIDESEA_Model/Models/Stock/Dt_StockInfo.cs
index 1aba4c0..dc7a3a3 100644
--- a/WMS/WIDESEA_WMSServer/WIDESEA_Model/Models/Stock/Dt_StockInfo.cs
+++ b/WMS/WIDESEA_WMSServer/WIDESEA_Model/Models/Stock/Dt_StockInfo.cs
@@ -57,6 +57,9 @@
         [SugarColumn(IsNullable = true, ColumnDescription = "澶囨敞")]
         public string Remark { get; set; }
 
+        [SugarColumn(IsNullable = true, ColumnDescription = "涓婃父绯荤粺")]
+        public string System { get; set; }
+
         [SugarColumn(IsNullable = true, ColumnDescription = "鐢熶骇鏃堕棿")]
         public DateTime Mgeneratetime { get; set; }
 
diff --git a/WMS/WIDESEA_WMSServer/WIDESEA_Model/Models/Stock/VV_StockInfoDet.cs b/WMS/WIDESEA_WMSServer/WIDESEA_Model/Models/Stock/VV_StockInfoDet.cs
index f4d2b41..2826f35 100644
--- a/WMS/WIDESEA_WMSServer/WIDESEA_Model/Models/Stock/VV_StockInfoDet.cs
+++ b/WMS/WIDESEA_WMSServer/WIDESEA_Model/Models/Stock/VV_StockInfoDet.cs
@@ -13,8 +13,8 @@
     [SugarTable(nameof(VV_StockInfoDet), "搴撳瓨灞曠ず淇℃伅")]
     public class VV_StockInfoDet
     {
-        [ExporterHeader(DisplayName = "鎵樼洏缂栧彿",IsIgnore =true)]
-        [SugarColumn(IsNullable = true, Length = 50,  ColumnDescription = "鎵樼洏缂栧彿")]
+        [ExporterHeader(DisplayName = "鎵樼洏缂栧彿", IsIgnore = true)]
+        [SugarColumn(IsNullable = true, Length = 50, ColumnDescription = "鎵樼洏缂栧彿")]
         public string PalletCode { get; set; }
 
         [ExporterHeader(DisplayName = "绫诲瀷")]
@@ -48,7 +48,11 @@
         [SugarColumn(IsNullable = false, Length = 100, ColumnDescription = "搴忓垪鍙�")]
         public string SerialNumber { get; set; }
 
-        
+        [ExporterHeader(DisplayName = "涓婃父绯荤粺", IsIgnore = true)]
+        [SugarColumn(IsNullable = false, Length = 255, ColumnDescription = "涓婃父绯荤粺")]
+        public string System { get; set; }
+
+
         [ExporterHeader(DisplayName = "搴撳瓨鏁伴噺")]
         [SugarColumn(IsNullable = false, DecimalDigits = 2, ColumnDescription = "搴撳瓨鏁伴噺")]
         public decimal StockQuantity { get; set; }
diff --git a/WMS/WIDESEA_WMSServer/WIDESEA_StockService/Base/StockViewService.cs b/WMS/WIDESEA_WMSServer/WIDESEA_StockService/Base/StockViewService.cs
index 02b3a7e..e8982d8 100644
--- a/WMS/WIDESEA_WMSServer/WIDESEA_StockService/Base/StockViewService.cs
+++ b/WMS/WIDESEA_WMSServer/WIDESEA_StockService/Base/StockViewService.cs
@@ -46,7 +46,7 @@
                 {
                     try
                     {
-                        
+
                         List<SearchParameters> searchParametersList = options.Wheres.DeserializeObject<List<SearchParameters>>();
                         if (searchParametersList?.Any() == true)
                         {
@@ -58,7 +58,14 @@
                                         if (!string.IsNullOrEmpty(param.Value?.ToString()))
                                         {
                                             sugarQueryable1 = sugarQueryable1
-                                                .Where(x=>x.PalletCode.Contains(param.Value.ToString()));
+                                                .Where(x => x.PalletCode.Contains(param.Value.ToString()));
+                                        }
+                                        break;
+                                    case var name when name == nameof(Dt_StockInfo.System).FirstLetterToLower():
+                                        if (!string.IsNullOrEmpty(param.Value?.ToString()))
+                                        {
+                                            sugarQueryable1 = sugarQueryable1
+                                                .Where(x => x.System.Contains(param.Value.ToString()));
                                         }
                                         break;
                                     case var name when name == nameof(Dt_StockInfoDetail.MaterielCode).FirstLetterToLower():
@@ -126,7 +133,7 @@
                     {
                     }
                 }
-                
+
 
                 ISugarQueryable<StockViewDTO> list = sugarQueryable1
                     .InnerJoin(sugarQueryable, (b, a) => a.LocationCode == b.LocationCode)
@@ -148,6 +155,7 @@
                         PalletCode = b.PalletCode,
                         StockRemark = b.Remark,
                         RoadwayNo = a.RoadwayNo,
+                        System = b.System,
                         Row = a.Row,
                         StockId = b.Id,
                         StockStatus = b.StockStatus,
@@ -333,7 +341,7 @@
                 {
                     x.MaterielCode = string.Join(",", x.Details.Select(d => d.MaterielCode).Distinct());
                     x.BatchNo = string.Join(",", x.Details.Select(d => d.BatchNo).Distinct());
-                    x.SupplierBatch= string.Join(",", x.Details.Select(d => d.SupplierBatch).Distinct());
+                    x.SupplierBatch = string.Join(",", x.Details.Select(d => d.SupplierBatch).Distinct());
                     x.StockCounts = Math.Round(x.Details.Sum(x => x.StockQuantity), 3).ToString();
                     x.MaterielSpec = x.Details.FirstOrDefault()?.MaterieSpec ?? "";
                     x.MaterielName = x.Details.FirstOrDefault()?.MaterielName ?? "";
diff --git a/WMS/WIDESEA_WMSServer/WIDESEA_StockService/Service/VV_StockInfoDetService.cs b/WMS/WIDESEA_WMSServer/WIDESEA_StockService/Service/VV_StockInfoDetService.cs
index dbeb3d4..305b2b6 100644
--- a/WMS/WIDESEA_WMSServer/WIDESEA_StockService/Service/VV_StockInfoDetService.cs
+++ b/WMS/WIDESEA_WMSServer/WIDESEA_StockService/Service/VV_StockInfoDetService.cs
@@ -43,7 +43,7 @@
                     BatchNo = g.Key.BatchNo,
                     BatchNoName = g.Key.BatchNoName,
                     StockQuantity = g.Sum(x => x.StockQuantity),
-                    CreateDate = g.Min(x => x.CreateDate) // 鑾峰彇姣忕粍鐨勬渶鏃� CreateDate
+                    CreateDate = g.Min(x => x.CreateDate) // 鑾峰彇姣忕粍鐨勬渶鏃� CreateDate10
                 })
                 .ToList();
 
diff --git a/WMS/WIDESEA_WMSServer/WIDESEA_TaskInfoService/NewPartialTaskService_Outbound.cs b/WMS/WIDESEA_WMSServer/WIDESEA_TaskInfoService/NewPartialTaskService_Outbound.cs
index 1ab57a2..93af907 100644
--- a/WMS/WIDESEA_WMSServer/WIDESEA_TaskInfoService/NewPartialTaskService_Outbound.cs
+++ b/WMS/WIDESEA_WMSServer/WIDESEA_TaskInfoService/NewPartialTaskService_Outbound.cs
@@ -1,8 +1,12 @@
 锘縰sing System;
+using System.Collections;
 using System.Collections.Generic;
 using System.Linq;
 using System.Text;
 using System.Threading.Tasks;
+using MailKit.Search;
+using WIDESEA_Common;
+using WIDESEA_Common.OrderEnum;
 using WIDESEA_Core;
 using WIDESEA_Core.Enums;
 using WIDESEA_Core.Helper;
@@ -12,6 +16,11 @@
 {
     public partial class TaskService
     {
+        /// <summary>
+        /// 鎴愬搧鍑哄簱
+        /// </summary>
+        /// <param name="keys"></param>
+        /// <returns></returns>
         public WebResponseContent WMSGenerateNewOutboundTask(int[] keys)
         {
             try
@@ -116,7 +125,11 @@
             }
         }
 
-        //鍚堟墭鍑哄簱
+        /// <summary>
+        /// 鍚堟墭鍑哄簱
+        /// </summary>
+        /// <param name="keys"></param>
+        /// <returns></returns>
         public WebResponseContent WMSGenerateSTOutboundTask(int[] keys)
         {
             try
@@ -162,5 +175,113 @@
                 return WebResponseContent.Instance.Error(ex.Message);
             }
         }
+
+        /// <summary>
+        /// SMOM鐩樼偣鍑哄簱
+        /// </summary>
+        /// <param name="keys"></param>
+        /// <returns></returns>
+        public WebResponseContent SMOMGenerateSTOutboundTask(int[] keys)
+        {
+            try
+            {
+                List<Dt_Task> tasks = new List<Dt_Task>();
+                List<Dt_LocationInfo> locationInfos = new List<Dt_LocationInfo>();
+                List<Dt_OutStockLockInfo> outStockLockInfos = new List<Dt_OutStockLockInfo>();
+
+                List<Dt_TakeStockOrderCP> takeStockOrderCPs = _takeStockOrderCPRepository.QueryData(x => keys.Contains(x.Id));
+                if (takeStockOrderCPs == null || takeStockOrderCPs.Count == 0)
+                {
+                    throw new Exception("鏈壘鍒板簱瀛樹俊鎭�,鎴栧簱瀛樼姸鎬佷笉涓哄叆搴撳畬鎴�");
+                }
+                if (takeStockOrderCPs.FirstOrDefault(x => x.TakeStockStatus > TakeStockDetailStatusEnum.鏈洏鐐�.ObjToInt()) != null)
+                {
+                    throw new Exception("鎵�閫夊嚭搴撳崟鏄庣粏瀛樺湪鍑哄簱涓垨宸插畬鎴�");
+                }
+                List<Dt_StockInfo> stockInfos = new List<Dt_StockInfo>();
+                foreach (var takeStock in takeStockOrderCPs)
+                {
+                    List<Dt_TakeStockOrderDetailCP> takeStockOrderDetailCPs = _takeStockOrderDetailCPRepository.QueryData(x => x.TakeStockId == takeStock.Id);
+
+                    var lpngroup = takeStockOrderDetailCPs.GroupBy(x => x.TakePalletCode);
+                    foreach (var lpngroups in lpngroup)
+                    {
+                        string lpn = lpngroups.Key;
+                        Dt_StockInfo? stockInfo = _stockService.StockInfoService.Repository.QueryFirst(x => x.PalletCode == lpn);
+                        if (stockInfo == null)
+                        {
+                            throw new Exception($"鏈壘鍒板簱瀛樹俊鎭紝鎵樼洏鍙穥lpn}");
+                        }
+                        stockInfos.Add(stockInfo);
+                    }
+                    if (stockInfos == null || stockInfos.Count == 0)
+                    {
+                        throw new Exception("鏈壘鍒板簱瀛樹俊鎭�");
+                    }
+                }
+
+                var Newtasks = GetTasks(stockInfos, TaskTypeEnum.OutInventory);
+                List<Dt_StockInfoDetail> stockInfoDetails = _stockService.StockInfoDetailService.Repository.QueryData(x => stockInfos.Select(x => x.Id).Contains(x.StockId));
+                foreach (var item in stockInfos)
+                {
+                    Dt_StockInfo? stockInfo = stockInfos.FirstOrDefault(x => x.PalletCode == item.PalletCode);
+                    if (stockInfo == null) continue;
+
+                    stockInfo.StockStatus = StockStatusEmun.鍑哄簱閿佸畾.ObjToInt();
+                    var task = Newtasks.FirstOrDefault(x => x.PalletCode == item.PalletCode);
+                    tasks.Add(task);
+                }
+                locationInfos.AddRange(_basicService.LocationInfoService.Repository.GetLocationInfos(stockInfos.Select(x => x.LocationCode).ToList()));
+
+                _unitOfWorkManage.BeginTran();
+
+                BaseDal.AddData(tasks);
+                _stockService.StockInfoService.Repository.UpdateData(stockInfos);
+                _stockService.StockInfoDetailService.Repository.UpdateData(stockInfoDetails);
+                _recordService.LocationStatusChangeRecordSetvice.AddLocationStatusChangeRecord(locationInfos, LocationStatusEnum.Lock.ObjToInt(), StockChangeType.Outbound.ObjToInt(), "", tasks?.Select(x => x.TaskNum).ToList());
+                _basicService.LocationInfoService.Repository.UpdateLocationStatus(locationInfos, LocationStatusEnum.Lock);
+
+                _unitOfWorkManage.CommitTran();
+                //灏嗕换鍔℃帹閫佸埌WCS
+                return PushTasksWCS(tasks);
+            }
+            catch (Exception ex)
+            {
+                _unitOfWorkManage.RollbackTran();
+                return WebResponseContent.Instance.Error(ex.Message);
+            }
+        }
+
+        /// <summary>
+        /// SMOM鐩樼偣鍚庡簱瀛樿皟鏁�
+        /// </summary>
+        /// <param name="houseAdjustment"></param>
+        /// <returns></returns>
+        public WebResponseContent SMOMAdjustment(HouseAdjustment houseAdjustment)
+        {
+            WebResponseContent responseContent = new WebResponseContent();
+            try
+            {
+                foreach (var item in houseAdjustment.DetailList)
+                {
+                    Dt_StockInfoDetail dt_StockInfo = BaseDal.Db.Queryable<Dt_StockInfoDetail>().LeftJoin<Dt_StockInfo>((stockdetail, stock) => stockdetail.StockId == stock.Id)
+                         .Where((stockdetail, stock) => stockdetail.MaterielCode == item.MaterielCode && stockdetail.MaterielName == item.MaterielName && stockdetail.LinId == item.LinId && stockdetail.BatchNo == item.BatchNo && stock.PalletCode == item.LPNNo).Select((stockdetail, stock) => stockdetail).First();
+                    if (dt_StockInfo == null)
+                    {
+                        return WebResponseContent.Instance.Error("鏈壘鍒版搴撳瓨鏁版嵁");
+                    }
+                    dt_StockInfo.StockQuantity = item.OrderQuantity;
+                    _unitOfWorkManage.BeginTran();
+                    _stockInfoDetailRepository.UpdateData(dt_StockInfo);
+                    _unitOfWorkManage.CommitTran();
+                }
+            }
+            catch (Exception ex)
+            {
+                _unitOfWorkManage.RollbackTran();
+                return WebResponseContent.Instance.Error($"Error: {ex.Message}");
+            }
+            return WebResponseContent.Instance.OK();
+        }
     }
 }
diff --git a/WMS/WIDESEA_WMSServer/WIDESEA_TaskInfoService/PartialTaskService_Outbound.cs b/WMS/WIDESEA_WMSServer/WIDESEA_TaskInfoService/PartialTaskService_Outbound.cs
index 39961d7..467c714 100644
--- a/WMS/WIDESEA_WMSServer/WIDESEA_TaskInfoService/PartialTaskService_Outbound.cs
+++ b/WMS/WIDESEA_WMSServer/WIDESEA_TaskInfoService/PartialTaskService_Outbound.cs
@@ -47,7 +47,7 @@
                 if (stockInfo != null)
                 {
                     Dt_LocationInfo locationInfo = _basicService.LocationInfoService.Repository.QueryFirst(x => x.LocationCode == stockInfo.LocationCode);
-                    if (locationInfo==null)
+                    if (locationInfo == null)
                     {
                         throw new Exception("鏈壘鍒板嚭搴撳簱浣�");
                     }
@@ -116,7 +116,7 @@
                             }
                             tasks.Add(task);
                         }
-                        
+
                     }
                 }
 
@@ -163,7 +163,7 @@
                         (int)OrderTypeEnum.鍙嶆嫞鍑哄簱鍗� => TaskTypeEnum.ReverseOut,
                         _ => new TaskTypeEnum()
                     };
-                    tasks = GetTasks(result.Item1,typeEnum);
+                    tasks = GetTasks(result.Item1, typeEnum);
                     tasks.ForEach(x =>
                     {
                         x.OrderNo = outboundOrder.OrderNo;
@@ -316,7 +316,7 @@
                                 CreateDate = DateTime.Now,
                                 Remark = details.Remark,
                                 SupplierBatch = details.SupplierBatch,
-                                OrinalLocation=details.OrinalLocation,
+                                OrinalLocation = details.OrinalLocation,
                             };
                             _newOutboundOrderDetailRepository.AddData(outboundOrderDetail);
                             foreach (var item in orderAddDTO1.Details)
@@ -827,7 +827,7 @@
                 }
                 _unitOfWorkManage.CommitTran();
                 //灏嗕换鍔℃帹閫佸埌WCS
-               
+
                 if (tasks.FirstOrDefault().Roadway.Contains("SC01_BC"))
                 {
                     PushTasksToWCS(tasks);
@@ -1157,6 +1157,10 @@
                     {
                         return content.Error($"鏈壘鍒皗item.PalletCode}搴撳瓨鏄庣粏鏁版嵁");
                     }
+                    if (item.System.Contains("SMOM"))
+                    {
+                        return content.Error($"SMOM绯荤粺搴撳瓨鏁版嵁涓嶅彲鎵嬪姩鐩樼偣锛屾墭鐩樺彿{item.PalletCode}");
+                    }
                     Dt_LocationInfo? locationInfo = locationInfos.FirstOrDefault(x => x.LocationCode == item.LocationCode);
                     if (locationInfo != null && (locationInfo.EnableStatus == EnableStatusEnum.OnlyOut.ObjToInt() || locationInfo.EnableStatus == EnableStatusEnum.Normal.ObjToInt()) && locationInfo.LocationStatus == LocationStatusEnum.InStock.ObjToInt() && item.StockStatus == StockStatusEmun.鍏ュ簱瀹屾垚.ObjToInt())
                     {
diff --git a/WMS/WIDESEA_WMSServer/WIDESEA_TaskInfoService/TaskService.cs b/WMS/WIDESEA_WMSServer/WIDESEA_TaskInfoService/TaskService.cs
index 511a80a..72705e1 100644
--- a/WMS/WIDESEA_WMSServer/WIDESEA_TaskInfoService/TaskService.cs
+++ b/WMS/WIDESEA_WMSServer/WIDESEA_TaskInfoService/TaskService.cs
@@ -111,10 +111,11 @@
         private readonly IReturnOrderRepository _returnOrderRepository;
         private readonly IProductionRepository _productionRepository;
         private readonly IInboundRepository _inboundRepository;
-
+        private readonly ITakeStockOrderCPRepository _takeStockOrderCPRepository;
+        private readonly ITakeStockOrderDetailCPRepository _takeStockOrderDetailCPRepository;
         public ITaskRepository Repository => BaseDal;
 
-        public TaskService(ITaskRepository BaseDal, IMapper mapper, IUnitOfWorkManage unitOfWorkManage, IMaterielInfoService materielInfoService, IInboundOrderDetail_HtyService inboundOrderDetail_HtyService, IOutboundOrder_HtyService outboundOrder_HtyService, IOutboundOrderDetail_HtyService outboundOrderDetail_HtyService, IInboundOrder_HtyService inboundOrder_HtyService, IStockRepository stockRepository, IInboundOrderDetailService inboundOrderDetailService, IBasicService basicService, IOutboundService outboundService, IInboundService inboundService, IRecordService recordService, IStockService stockService, ITask_HtyService taskHtyService, ILocationInfoService locationInfoService, IOutboundOrderDetailRepository outboundOrderDetailRepository, IBasicRepository basicRepository, IStockInfoDetailRepository stockInfoDetailRepository, IPalletTypeInfoRepository palletTypeInfoRepository, IReturnOrderRepository returnOrderRepository, IProductionRepository productionRepository, IInboundRepository inboundRepository, INewOutboundOrderDetailRepository newOutboundOrderDetailRepository) : base(BaseDal)
+        public TaskService(ITaskRepository BaseDal, IMapper mapper, IUnitOfWorkManage unitOfWorkManage, IMaterielInfoService materielInfoService, IInboundOrderDetail_HtyService inboundOrderDetail_HtyService, IOutboundOrder_HtyService outboundOrder_HtyService, IOutboundOrderDetail_HtyService outboundOrderDetail_HtyService, IInboundOrder_HtyService inboundOrder_HtyService, IStockRepository stockRepository, IInboundOrderDetailService inboundOrderDetailService, IBasicService basicService, IOutboundService outboundService, IInboundService inboundService, IRecordService recordService, IStockService stockService, ITask_HtyService taskHtyService, ILocationInfoService locationInfoService, IOutboundOrderDetailRepository outboundOrderDetailRepository, IBasicRepository basicRepository, IStockInfoDetailRepository stockInfoDetailRepository, IPalletTypeInfoRepository palletTypeInfoRepository, IReturnOrderRepository returnOrderRepository, IProductionRepository productionRepository, IInboundRepository inboundRepository, INewOutboundOrderDetailRepository newOutboundOrderDetailRepository, ITakeStockOrderCPRepository takeStockOrderCPRepository, ITakeStockOrderDetailCPRepository takeStockOrderDetailCPRepository) : base(BaseDal)
         {
             _mapper = mapper;
             _stockRepository = stockRepository;
@@ -140,6 +141,8 @@
             _productionRepository = productionRepository;
             _inboundRepository = inboundRepository;
             _newOutboundOrderDetailRepository = newOutboundOrderDetailRepository;
+            _takeStockOrderCPRepository = takeStockOrderCPRepository;
+            _takeStockOrderDetailCPRepository = takeStockOrderDetailCPRepository;
         }
 
         public string ReceiveWMSTaskin = WIDESEA_Core.Helper.AppSettings.Configuration["ReceiveWMSTaskin"];
@@ -1650,7 +1653,11 @@
                 int lastStatus = locationInfo.LocationStatus;
 
                 ///鐩樼偣鍑哄簱浠诲姟瀹屾垚閫昏緫
-                if (task.TaskType == TaskTypeEnum.OutInventory.ObjToInt())
+                if (task.TaskType == TaskTypeEnum.OutInventory.ObjToInt() && stockInfo.System == "SMOM")
+                {
+                    return SMOMOutInventoryCompleted(task, stockInfo, locationInfo);
+                }
+                else if (task.TaskType == TaskTypeEnum.OutInventory.ObjToInt())
                 {
                     return OutInventoryCompleted(task, stockInfo, locationInfo);
                 }
@@ -3113,46 +3120,169 @@
             // 鑾峰彇鎵撳嵃鏈哄悕绉�
             string printerName = AppSettings.app("PrinterName");
 
-            // 灏濊瘯涓嶅悓鐨勬墦鍗版柟娉�
-            for (int retryCount = 0; retryCount < maxRetryCount; retryCount++)
-            {
-                try
-                {
-                    Console.WriteLine($"灏濊瘯鎵撳嵃 (鏂规硶 {retryCount + 1}/{maxRetryCount}): {fullPath}");
+            PrintUsingSpireSimple(fullPath, printerName);
 
-                    switch (retryCount)
-                    {
-                        case 0:
-                            // 鏂规硶1: 浣跨敤鍘熷鎵撳嵃鍛戒护
-                            PrintUsingRawCommand(fullPath, printerName);
-                            break;
-                        case 1:
-                            // 鏂规硶3: 鐩存帴浣跨敤Spire.PDF浣嗙畝鍖栬缃�
-                            PrintUsingSpireSimple(fullPath, printerName);
-                            break;
-                        case 2:
-                            // 鏂规硶3: 鐩存帴浣跨敤Spire.PDF浣嗙畝鍖栬缃�
-                            PrintUsingSpireSimple(fullPath, printerName);
-                            break;
-                    }
-
-                    Console.WriteLine("鎵撳嵃浠诲姟鍙戦�佹垚鍔�");
-                    return;
-                }
-                catch (Exception ex)
-                {
-                    Console.WriteLine($"鎵撳嵃鏂规硶 {retryCount + 1} 澶辫触: {ex.Message}");
-
-                    if (retryCount < maxRetryCount - 1)
-                    {
-                        Thread.Sleep(retryDelayMs);
-                    }
-                }
-            }
 
             Console.WriteLine("鎵�鏈夋墦鍗版柟娉曢兘澶辫触");
         }
 
+
+        private void PrintUsingSpireSimple(string filePath, string printerName)
+        {
+            try
+            {
+                using (Spire.Pdf.PdfDocument pdf = new Spire.Pdf.PdfDocument())
+                {
+                    // 鍔犺浇鏂囦欢
+                    pdf.LoadFromFile(filePath);
+
+                    // 鑾峰彇瀹為檯鐨勬墦鍗版満鍚嶇О
+                    string actualPrinterName = GetActualPrinterName(printerName);
+
+                    Console.WriteLine($"閰嶇疆鐨勬墦鍗版満鍚嶇О: {printerName}");
+                    Console.WriteLine($"瀹為檯浣跨敤鐨勬墦鍗版満鍚嶇О: {actualPrinterName}");
+
+                    // 濡傛灉鎵句笉鍒板疄闄呮墦鍗版満锛屼娇鐢ㄩ粯璁ゆ墦鍗版満
+                    if (!string.IsNullOrEmpty(actualPrinterName) && IsPrinterInstalled(actualPrinterName))
+                    {
+                        pdf.PrintSettings.PrinterName = actualPrinterName;
+                        Console.WriteLine($"鉁� 宸茶缃墦鍗版満: {actualPrinterName}");
+                    }
+                    else
+                    {
+                        Console.WriteLine($"鈿狅笍 鎵撳嵃鏈� '{actualPrinterName}' 鏈壘鍒帮紝浣跨敤榛樿鎵撳嵃鏈�");
+                    }
+
+                    // 鐩存帴鎵撳嵃
+                    pdf.Print();
+                    Console.WriteLine("鉁� 鎵撳嵃浠诲姟宸叉彁浜ゆ垚鍔�");
+                }
+            }
+            catch (Exception ex)
+            {
+                Console.WriteLine($"鉁� Spire.PDF鎵撳嵃澶辫触: {ex.Message}");
+
+                // 杈撳嚭鎵�鏈夊彲鐢ㄦ墦鍗版満锛屽府鍔╄皟璇�
+                Console.WriteLine("\n绯荤粺鎵�鏈夊彲鐢ㄦ墦鍗版満:");
+                foreach (string printer in System.Drawing.Printing.PrinterSettings.InstalledPrinters)
+                {
+                    Console.WriteLine($"  - {printer}");
+                }
+
+                throw;
+            }
+        }
+
+        /// <summary>
+        /// 浠庨厤缃殑鍙嬪ソ鍚嶇О鑾峰彇瀹為檯鐨勬墦鍗版満鍚嶇О
+        /// </summary>
+        private string GetActualPrinterName(string displayName)
+        {
+            if (string.IsNullOrEmpty(displayName))
+                return string.Empty;
+
+            // 濡傛灉閰嶇疆鐨勬槸 "192.168.99.3 涓婄殑 Lenovo M7605D"
+            if (displayName.Contains("192.168.99.3 涓婄殑 Lenovo M7605D"))
+            {
+                // 鍦ㄧ郴缁熶腑鏌ユ壘瀹為檯鐨勬墦鍗版満鍚嶇О
+                return FindActualPrinterForIP("192.168.99.3");
+            }
+
+            // 濡傛灉鐩存帴閰嶇疆鐨勬槸IP鍦板潃
+            if (displayName.Contains("192.168.99.3"))
+            {
+                return FindActualPrinterForIP("192.168.99.3");
+            }
+
+            // 濡傛灉宸茬粡鏄疄闄呯殑鎵撳嵃鏈哄悕绉帮紝鐩存帴杩斿洖
+            if (IsPrinterInstalled(displayName))
+            {
+                return displayName;
+            }
+
+            // 榛樿杩斿洖鍘熷悕绉�
+            return displayName;
+        }
+
+        /// <summary>
+        /// 鏌ユ壘IP鍦板潃瀵瑰簲鐨勫疄闄呮墦鍗版満鍚嶇О
+        /// </summary>
+        private string FindActualPrinterForIP(string ipAddress)
+        {
+            try
+            {
+                // 鑾峰彇鎵�鏈夋墦鍗版満
+                var allPrinters = new List<string>();
+                foreach (string printer in System.Drawing.Printing.PrinterSettings.InstalledPrinters)
+                {
+                    allPrinters.Add(printer);
+                }
+
+                Console.WriteLine($"鏌ユ壘IP鍦板潃 {ipAddress} 瀵瑰簲鐨勬墦鍗版満...");
+                Console.WriteLine("绯荤粺鎵撳嵃鏈哄垪琛�:");
+                foreach (var printer in allPrinters)
+                {
+                    Console.WriteLine($"  - {printer}");
+                }
+
+                // 浼樺厛鏌ユ壘鍖呭惈IP鍦板潃鐨勬墦鍗版満
+                foreach (string printer in allPrinters)
+                {
+                    if (printer.Contains(ipAddress))
+                    {
+                        Console.WriteLine($"鉁� 鎵惧埌鍖呭惈IP鐨勬墦鍗版満: {printer}");
+                        return printer;
+                    }
+                }
+
+                // 鏌ユ壘鑱旀兂鎵撳嵃鏈�
+                foreach (string printer in allPrinters)
+                {
+                    if (printer.Contains("M7605D", StringComparison.OrdinalIgnoreCase)
+                    {
+                        Console.WriteLine($"鉁� 鎵惧埌鑱旀兂鎵撳嵃鏈�: {printer}");
+                        return printer;
+                    }
+                }
+
+
+                // 杩斿洖绗竴涓彲鐢ㄧ殑鎵撳嵃鏈�
+                if (allPrinters.Any())
+                {
+                    Console.WriteLine($"鈿狅笍 鏈壘鍒扮簿纭尮閰嶏紝浣跨敤绗竴涓墦鍗版満: {allPrinters.First()}");
+                    return allPrinters.First();
+                }
+
+                return string.Empty;
+            }
+            catch (Exception ex)
+            {
+                Console.WriteLine($"鏌ユ壘鎵撳嵃鏈哄け璐�: {ex.Message}");
+                return string.Empty;
+            }
+        }
+
+        /// <summary>
+        /// 妫�鏌ユ墦鍗版満鏄惁宸插畨瑁�
+        /// </summary>
+        private bool IsPrinterInstalled(string printerName)
+        {
+            try
+            {
+                foreach (string printer in System.Drawing.Printing.PrinterSettings.InstalledPrinters)
+                {
+                    if (printer.Equals(printerName, StringComparison.OrdinalIgnoreCase))
+                    {
+                        return true;
+                    }
+                }
+                return false;
+            }
+            catch
+            {
+                return false;
+            }
+        }
         /// <summary>
         /// 浣跨敤鍘熷鎵撳嵃鍛戒护
         /// </summary>
@@ -3160,55 +3290,28 @@
         {
             try
             {
-                // 鏂规硶1: 浣跨敤Process鐩存帴鎵撳嵃
-                var process = new System.Diagnostics.Process();
-                process.StartInfo.FileName = filePath;
-                process.StartInfo.Verb = "print";
-                process.StartInfo.CreateNoWindow = true;
-                process.StartInfo.WindowStyle = System.Diagnostics.ProcessWindowStyle.Hidden;
-                process.Start();
+                var processStartInfo = new System.Diagnostics.ProcessStartInfo
+                {
+                    FileName = filePath,
+                    Verb = "print",  // 浣跨敤"print"鍔ㄨ瘝
+                    UseShellExecute = true,  // 鍏抽敭锛氬惎鐢⊿hell鎵ц
+                    CreateNoWindow = true,
+                    WindowStyle = System.Diagnostics.ProcessWindowStyle.Hidden
+                };
 
-                // 绛夊緟涓�娈垫椂闂磋鎵撳嵃浠诲姟鎻愪氦
-                if (!process.WaitForExit(5000))
-                {
-                    Console.WriteLine("鎵撳嵃杩涚▼鏈強鏃堕��鍑猴紝浣嗕换鍔″彲鑳藉凡鎻愪氦");
-                }
+                // 璁剧疆鎵撳嵃鏈猴紙鍙�夛紝绯荤粺閫氬父浼氫娇鐢ㄩ粯璁ゆ墦鍗版満锛�
+                // processStartInfo.Arguments = $"/t \"{filePath}\" \"{printerName}\"";
+
+                System.Diagnostics.Process.Start(processStartInfo);
             }
-            catch
+            catch (Exception ex)
             {
-                // 濡傛灉涓婅堪鏂规硶澶辫触锛屽皾璇曚娇鐢╮undll32
-                try
-                {
-                    var args = $@"/c rundll32.exe C:\Windows\System32\shimgvw.dll,ImageView_PrintTo ""{filePath}"" ""{printerName}""";
-                    System.Diagnostics.Process.Start("cmd.exe", args);
-                }
-                catch
-                {
-                    throw;
-                }
+                Console.WriteLine($"鎵撳嵃澶辫触: {ex.Message}");
+                // 鍙互灏濊瘯鍏朵粬鏂规硶
+                //TryAlternativePrintMethod(filePath, printerName);
             }
         }
 
-        /// <summary>
-        /// 浣跨敤Spire.PDF浣嗙畝鍖栬缃�
-        /// </summary>
-        private void PrintUsingSpireSimple(string filePath, string printerName)
-        {
-            using (Spire.Pdf.PdfDocument pdf = new Spire.Pdf.PdfDocument())
-            {
-                // 浣跨敤鏈�灏忛厤缃姞杞芥枃浠�
-                pdf.LoadFromFile(filePath);
-
-                // 璁剧疆鍩烘湰鎵撳嵃鏈轰俊鎭�
-                if (!string.IsNullOrEmpty(printerName))
-                {
-                    pdf.PrintSettings.PrinterName = printerName;
-                }
-
-                // 鐩存帴鎵撳嵃锛屼笉妫�鏌�
-                pdf.Print();
-            }
-        }
 
         /// <summary>
         /// 妫�鏌ユ枃浠舵槸鍚﹀彲璁块棶
@@ -3310,6 +3413,93 @@
             }
             return content;
         }
+
+        /// <summary>
+        /// SMOM鐩樼偣鍗曞畬鎴�
+        /// </summary>
+        /// <param name="task"></param>
+        /// <param name="stockInfo"></param>
+        /// <param name="locationInfo"></param>
+        /// <returns></returns>
+        public WebResponseContent SMOMOutInventoryCompleted(Dt_Task task, Dt_StockInfo stockInfo, Dt_LocationInfo locationInfo)
+        {
+            WebResponseContent content = new WebResponseContent();
+            try
+            {
+                //鑾峰彇瀵瑰簲鐩樼偣鍗�
+                Dt_TakeStockOrderCP takeStockOrder = _inboundRepository.TakeStockOrderRepository.Db.Queryable<Dt_TakeStockOrderCP>().Where(x => x.OrderNo == task.OrderNo).Includes(x => x.Details).First();
+                if (takeStockOrder == null)
+                {
+                    return content.Error($"鐩樼偣鍗晎task.OrderNo}涓嶅瓨鍦�");
+                }
+                if (takeStockOrder.TakeStockStatus != TakeStockStatusEnum.鐩樼偣涓�.ObjToInt())
+                {
+                    return content.Error($"鐩樼偣鍗晎task.OrderNo}鐩樼偣宸插畬鎴愭垨鏈紑濮�");
+                }
+                if (stockInfo.StockStatus != StockStatusEmun.鍑哄簱閿佸畾.ObjToInt())
+                {
+                    return content.Error($"{stockInfo.PalletCode}搴撳瓨鐘舵�佷笉姝g‘");
+                }
+                if (locationInfo.LocationStatus != LocationStatusEnum.Lock.ObjToInt())
+                {
+                    return content.Error($"{locationInfo.LocationCode}璐т綅鐘舵�佷笉姝g‘");
+                }
+                //鏍规嵁浠诲姟鎵樼洏鏌ョ洏鐐规槑缁�
+                Dt_TakeStockOrderDetailCP? takeStockOrderDetail = takeStockOrder.Details.FirstOrDefault(x => x.TakePalletCode == stockInfo.PalletCode);
+                if (takeStockOrderDetail == null)
+                {
+                    return content.Error($"{stockInfo.PalletCode}鏈壘鍒板搴旂洏鐐规槑缁�");
+                }
+                if (takeStockOrderDetail.TakeDetalStatus != TakeStockDetailStatusEnum.鐩樼偣鍑哄簱涓�.ObjToInt())
+                {
+                    return content.Error($"{stockInfo.PalletCode}鐩樼偣鏄庣粏鐘舵�佷笉姝g‘");
+                }
+                takeStockOrderDetail.TakeDetalStatus = TakeStockDetailStatusEnum.鐩樼偣鍑哄簱瀹屾垚.ObjToInt();
+                stockInfo.StockStatus = StockStatusEmun.鐩樼偣鍑哄簱瀹屾垚.ObjToInt();
+                stockInfo.Details.ForEach(x =>
+                {
+                    x.Status = StockStatusEmun.鐩樼偣鍑哄簱瀹屾垚.ObjToInt();
+                });
+                stockInfo.LocationCode = "";
+                task.TaskStatus = TaskStatusEnum.Finish.ObjToInt();
+                int beforeStatus = locationInfo.LocationStatus;
+                locationInfo.LocationStatus = LocationStatusEnum.Lock.ObjToInt();
+                Dt_ReturnOrder returnOrder = new Dt_ReturnOrder
+                {
+                    MaterielCode = stockInfo.Details.FirstOrDefault()?.MaterielCode,
+                    MaterielName = stockInfo.Details.FirstOrDefault()?.MaterielName,
+                    BatchNo = stockInfo.Details.FirstOrDefault()?.BatchNo,
+                    OrderQuantity = stockInfo.Details.Sum(x => x.StockQuantity),
+                    ReceiptQuantity = stockInfo.Details.Sum(x => x.StockQuantity),
+                    OrderStatus = InOrderStatusEnum.鏈紑濮�.ObjToInt(),
+                    LinId = stockInfo.Details.FirstOrDefault()?.LinId,
+                    LocationCode = stockInfo.LocationCode,
+                    LPNNo = stockInfo.PalletCode,
+                    Creater = "LK",
+                    CreateDate = DateTime.Now,
+                    OrderType = OrderTypeEnum.鐩樼偣鍥炲簱鍗�.ObjToInt(),
+                    System = "WMS"
+                };
+
+                _unitOfWorkManage.BeginTran();
+                //璐т綅鍙樺姩璁板綍
+                _basicService.LocationInfoService.UpdateData(locationInfo);
+                _returnOrderRepository.AddData(returnOrder);
+                _recordService.LocationStatusChangeRecordSetvice.AddLocationStatusChangeRecord(locationInfo, beforeStatus, LocationStatusEnum.Lock.ObjToInt(), LocationChangeType.OutboundCompleted.ObjToInt(), takeStockOrder?.OrderNo ?? "", task.TaskNum);
+                _takeStockOrderDetailCPRepository.UpdateData(takeStockOrderDetail);
+                _stockRepository.StockInfoRepository.UpdateData(stockInfo);
+                _stockRepository.StockInfoDetailRepository.UpdateData(stockInfo.Details);
+                BaseDal.DeleteAndMoveIntoHty(task, App.User.UserId == 0 ? OperateType.鑷姩瀹屾垚 : OperateType.浜哄伐瀹屾垚);
+                _unitOfWorkManage.CommitTran();
+                content.OK();
+            }
+            catch (Exception ex)
+            {
+                _unitOfWorkManage.RollbackTran();
+                content.Error(ex.Message);
+            }
+            return content;
+        }
     }
     #endregion
     #endregion
diff --git a/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/Inbound/TakeStockOrderCPController.cs b/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/Inbound/TakeStockOrderCPController.cs
new file mode 100644
index 0000000..c22228a
--- /dev/null
+++ b/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/Inbound/TakeStockOrderCPController.cs
@@ -0,0 +1,32 @@
+锘縰sing Microsoft.AspNetCore.Authorization;
+using Microsoft.AspNetCore.Http;
+using Microsoft.AspNetCore.Mvc;
+using WIDESEA_Common;
+using WIDESEA_Core;
+using WIDESEA_Core.BaseController;
+using WIDESEA_IInboundService;
+using WIDESEA_Model.Models;
+
+namespace WIDESEA_WMSServer.Controllers.Inbound
+{
+    /// <summary>
+    /// 鐩樼偣鍗�
+    /// </summary>
+    [Route("api/TakeStockOrderCP")]
+    [ApiController]
+    public class TakeStockOrderCPController : ApiBaseController<ITakeStockOrderCPService, Dt_TakeStockOrderCP>
+    {
+        public TakeStockOrderCPController(ITakeStockOrderCPService service) : base(service)
+        {
+        }
+        /// <summary>
+        /// 鑾峰彇瀵瑰簲浠撳簱鐩樼偣鍗�
+        /// </summary>
+        [HttpPost, HttpGet, Route("NewInventoryOut"), AllowAnonymous]
+        public WebResponseContent NewInventoryOut([FromBody] HouseCancelOut houseInventoryOut)
+        {
+            return Service.NewInventoryOut(houseInventoryOut);
+        }
+     
+    }
+}
diff --git a/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/Inbound/TakeStockOrderDetailCPController.cs b/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/Inbound/TakeStockOrderDetailCPController.cs
new file mode 100644
index 0000000..d0f8a85
--- /dev/null
+++ b/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/Inbound/TakeStockOrderDetailCPController.cs
@@ -0,0 +1,22 @@
+锘縰sing Microsoft.AspNetCore.Authorization;
+using Microsoft.AspNetCore.Http;
+using Microsoft.AspNetCore.Mvc;
+using WIDESEA_Core;
+using WIDESEA_Core.BaseController;
+using WIDESEA_IInboundService;
+using WIDESEA_Model.Models;
+
+namespace WIDESEA_WMSServer.Controllers.Inbound
+{
+    /// <summary>
+    /// 鐩樼偣鏄庣粏鍗�
+    /// </summary>
+    [Route("api/TakeStockOrderDetailCP")]
+    [ApiController]
+    public class TakeStockOrderDetailCPController : ApiBaseController<ITakeStockOrderDetailCPService, Dt_TakeStockOrderDetailCP>
+    {
+        public TakeStockOrderDetailCPController(ITakeStockOrderDetailCPService service) : base(service)
+        {
+        }
+    }
+}
diff --git a/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/TaskInfo/TaskController.cs b/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/TaskInfo/TaskController.cs
index f8c3ced..82a3f1a 100644
--- a/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/TaskInfo/TaskController.cs
+++ b/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/TaskInfo/TaskController.cs
@@ -53,6 +53,16 @@
         {
             return Service.WMSGenerateSTOutboundTask(keys);
         }
+        /// <summary>
+        /// SMOM鐩樼偣浠诲姟
+        /// </summary>
+        /// <param name="keys"></param>
+        /// <returns></returns>
+        [HttpPost, Route("SMOMGenerateSTOutboundTask"), AllowAnonymous]
+        public WebResponseContent SMOMGenerateSTOutboundTask([FromBody] int[] keys)
+        {
+            return Service.SMOMGenerateSTOutboundTask(keys);
+        }
 
         /// <summary>
         /// WCS鐢宠鍏ュ簱浠诲姟
@@ -135,26 +145,6 @@
             return Service.OutboundTaskCompleted(taskNum);
         }
         /// <summary>
-        /// WMS涓嬪彂鍑哄簱鍗曟嵁
-        /// </summary>
-        /// <param name="orderAddDTO"></param>
-        /// <returns></returns>
-        [HttpPost, Route("AddOutboundOrders"), AllowAnonymous]
-        public WebResponseContent AddOutboundOrders([FromBody] Houseounbound orderAddDTO)
-        {
-            return Service.AddOutboundOrders(orderAddDTO);
-        }
-        /// <summary>
-        /// 鐩樼偣浠诲姟涓婁紶
-        /// </summary>
-        /// <param name="houseInventoryOut"></param>
-        /// <returns></returns>
-        [HttpPost, Route("InventoryOut"), AllowAnonymous]
-        public WebResponseContent InventoryOut([FromBody] HouseCancelOut houseInventoryOut)
-        {
-            return Service.InventoryOut(houseInventoryOut);
-        }
-        /// <summary>
         /// 鐩樼偣浠诲姟鍥炰紶WMS
         /// </summary>
         /// <param name="name"></param>
@@ -233,5 +223,36 @@
         {
             return Service.TakeOutbound(stockViews);
         }
+
+        /// <summary>
+        /// SMOM涓嬪彂鍑哄簱鍗曟嵁
+        /// </summary>
+        /// <param name="orderAddDTO"></param>
+        /// <returns></returns>
+        [HttpPost, Route("AddOutboundOrders"), AllowAnonymous]
+        public WebResponseContent AddOutboundOrders([FromBody] Houseounbound orderAddDTO)
+        {
+            return Service.AddOutboundOrders(orderAddDTO);
+        }
+        /// <summary>
+        /// SMOM鐩樼偣浠诲姟涓婁紶
+        /// </summary>
+        /// <param name="houseInventoryOut"></param>
+        /// <returns></returns>
+        [HttpPost, Route("InventoryOut"), AllowAnonymous]
+        public WebResponseContent InventoryOut([FromBody] HouseCancelOut houseInventoryOut)
+        {
+            return Service.InventoryOut(houseInventoryOut);
+        }
+
+        /// <summary>
+        /// SMOM鐩樼偣鍚庡簱瀛樿皟鏁�
+        /// </summary>
+        /// <returns></returns>
+        [HttpPost, Route("SMOMAdjustment"), AllowAnonymous]
+        public WebResponseContent SMOMAdjustment([FromBody] HouseAdjustment houseAdjustment)
+        {
+            return Service.SMOMAdjustment(houseAdjustment);
+        }
     }
 }
diff --git "a/\345\220\211\345\256\211PDA/pages/stash/Syncretism.vue" "b/\345\220\211\345\256\211PDA/pages/stash/Syncretism.vue"
index fb87d59..0424b2f 100644
--- "a/\345\220\211\345\256\211PDA/pages/stash/Syncretism.vue"
+++ "b/\345\220\211\345\256\211PDA/pages/stash/Syncretism.vue"
@@ -3,12 +3,12 @@
 		<view class="itemstyle">
 			<uni-forms label-width="180">
 				<uni-forms-item label="鍘熷鎵樼洏鏉$爜:">
-					<uni-easyinput type="text" placeholder="璇锋壂鎻忔墭鐩樻潯鐮�" ref='midInput' :focus="!focus" v-model="soussAddress"
-						@input="barcodeInput" />
+					<uni-easyinput type="text" placeholder="璇锋壂鎻忔墭鐩樻潯鐮�" ref='midInput' :focus="!focus"
+						v-model="soussAddress" @input="barcodeInput" />
 				</uni-forms-item>
 				<uni-forms-item label="鐩爣鎵樼洏鏉$爜:">
-					<uni-easyinput type="text" placeholder="璇锋壂鎻忔墭鐩樻潯鐮�" ref='midInput' :focus="!focus" v-model="targetAddress"
-						@input="barcodeInput" />
+					<uni-easyinput type="text" placeholder="璇锋壂鎻忔墭鐩樻潯鐮�" ref='midInput' :focus="!focus"
+						v-model="targetAddress" @input="barcodeInput" />
 				</uni-forms-item>
 				<uni-forms-item>
 					<button @click="AGVTasks" type="primary" size="default" style="margin-top: 2%;">纭瀹屾垚</button>
@@ -27,13 +27,13 @@
 				focus: false,
 				soussAddress: "",
 				targetAddress: "",
-					warehouseId: "",
+				warehouseId: "",
 			}
 		},
 		onShow() {},
 		onLoad(res) {
 			this.focus = false;
-			this.warehouseId=res.warehouseId;
+			this.warehouseId = res.warehouseId;
 		},
 		methods: {
 			barcodeInput() {
@@ -62,17 +62,18 @@
 					MainData: {
 						soussAddress: this.soussAddress,
 						targetAddress: this.targetAddress,
-						warehouseId:this.warehouseId,
+						warehouseId: this.warehouseId,
 					}
 				}
 				this.$u.post('/api/InboundOrder/SYMaterielGroup', postDate).then(
 					res => {
 						if (res.status) {
 							this.$refs.uToast.show({
-								title: "浠诲姟鍒涘缓鎴愬姛鎴愬姛",
+								title: "鍚堟墭鎴愬姛",
 								type: "success"
 							})
-							this.barcode = "";
+							this.soussAddress = "";
+							this.targetAddress = "";
 						} else {
 							this.$refs.uToast.show({
 								title: res.message,

--
Gitblit v1.9.3