From a296223898d61a9838bbd35ed75c87575e308a36 Mon Sep 17 00:00:00 2001
From: huangxiaoqiang <huangxiaoqiang@hnkhzn.com>
Date: 星期五, 07 十一月 2025 17:19:38 +0800
Subject: [PATCH] 1

---
 项目代码/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/v17/DocumentLayout.json                                |    5 
 项目代码/WMS/WIDESEA_WMSServer/WIDESEA_StorageTaskServices/Task/Dt_TaskService.cs                           |  140 ++-
 项目代码/WMS/WIDESEA_WMSClient/src/components/basic/ViewGrid/ViewGrid.vue                                   |  297 +-----
 项目代码/WMS/WIDESEA_WMSServer/WIDESEA_Model/Models/Basic/Dt_WareAreaInfo.cs                                |   30 
 项目代码/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/v17/DocumentLayout.backup.json                         |    7 
 项目代码/WMS/WIDESEA_WMSClient/src/components/basic/ViewGrid/ViewGridDetail.vue                             |   19 
 项目代码/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/CopilotIndices/17.14.1231.31060/SemanticSymbols.db-wal |    0 
 项目代码/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/CopilotIndices/17.14.1231.31060/SemanticSymbols.db-wal |    0 
 项目代码/Print/Print/.vs/Print/CopilotIndices/17.14.1231.31060/SemanticSymbols.db-shm                       |    0 
 项目代码/WMS/WIDESEA_WMSClient/src/components/basic/VolTable.vue                                            |  517 +++---------
 项目代码/WMS/WIDESEA_WMSServer/WIDESEA_Model/Models/Basic/Dt_AreaInfo.cs                                    |    7 
 项目代码/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/CopilotIndices/17.14.1231.31060/CodeChunks.db          |    0 
 项目代码/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/CopilotIndices/17.14.1231.31060/CodeChunks.db-shm      |    0 
 项目代码/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/v17/DocumentLayout.json                                |  131 +--
 项目代码/WMS/WIDESEA_WMSServer/WIDESEA_IStorageTaskService/Task/IDt_TaskService.cs                          |    2 
 项目代码/WMS/WIDESEA_WMSClient/src/extension/widesea_wms/stock/Dt_BillGroupStock.jsx                        |  206 +++-
 项目代码/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/Task/TaskController.cs                         |    4 
 项目代码/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/CopilotIndices/17.14.1231.31060/CodeChunks.db-shm      |    0 
 项目代码/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/v17/DocumentLayout.backup.json                         |  169 +--
 项目代码/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/CopilotIndices/17.14.1231.31060/SemanticSymbols.db-shm |    0 
 项目代码/WMS/WIDESEA_WMSClient/src/extension/widesea_wms/stock/extend/Remark.vue                            |   69 +
 项目代码/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/Basic/StockInfoController.cs                   |   21 
 项目代码/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/CopilotIndices/17.14.1231.31060/SemanticSymbols.db     |    0 
 项目代码/WMS/WIDESEA_WMSServer/WIDESEA_StorageBasicServices/Stock/StockInfoService.cs                       |  179 ----
 项目代码/WMS/WIDESEA_WMSServer/WIDESEA_StorageBasicServices/Boxing/BoxingInfoService.cs                     |  282 +++---
 项目代码/Print/Print/Print/Controllers/PrintController.cs                                                   |    8 
 项目代码/WMS/WIDESEA_WMSServer/WIDESEA_Model/Models/ERP/WMS_采购及成品入库清单_ST.cs                                 |   22 
 项目代码/WMS/WIDESEA_WMSServer/WIDESEA_OrderServices/Dt_AllocateOutboundOrderService.cs                     |   18 
 项目代码/Print/Print/.vs/Print/v17/DocumentLayout.backup.json                                               |    2 
 /dev/null                                                                                               |  104 --
 项目代码/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/CopilotIndices/17.14.1231.31060/CodeChunks.db          |    0 
 项目代码/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/CopilotIndices/17.14.1231.31060/CodeChunks.db-wal      |    0 
 项目代码/Print/Print/.vs/Print/CopilotIndices/17.14.1231.31060/CodeChunks.db-shm                            |    0 
 项目代码/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/CopilotIndices/17.14.1231.31060/CodeChunks.db-wal      |    0 
 项目代码/WMS/WIDESEA_WMSServer/WIDESEA_Model/Models/BasicModel/Dt_InventoryRecord.cs                        |   54 +
 项目代码/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/CopilotIndices/17.14.1231.31060/SemanticSymbols.db     |    0 
 项目代码/WMS/WIDESEA_WMSServer/WIDESEA_IStorageBasicService/Stock/IStockInfoService.cs                      |   14 
 项目代码/WMS/WIDESEA_WMSServer/WIDESEA_OrderServices/Dt_InboundOrderService.cs                              |   18 
 项目代码/WMS/WIDESEA_WMSServer/WIDESEA_Model/Models/BasicModel/DtStockInfoDetail.cs                         |    7 
 项目代码/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/CopilotIndices/17.14.1231.31060/SemanticSymbols.db-shm |    0 
 项目代码/WMS/WIDESEA_WMSClient/src/views/widesea_wms/stock/Dt_BillGroupStock.vue                            |   29 
 41 files changed, 902 insertions(+), 1,459 deletions(-)

diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/Print/Print/.vs/Print/CopilotIndices/17.14.1231.31060/CodeChunks.db-shm" "b/\351\241\271\347\233\256\344\273\243\347\240\201/Print/Print/.vs/Print/CopilotIndices/17.14.1231.31060/CodeChunks.db-shm"
index 70e5032..13da352 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/Print/Print/.vs/Print/CopilotIndices/17.14.1231.31060/CodeChunks.db-shm"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/Print/Print/.vs/Print/CopilotIndices/17.14.1231.31060/CodeChunks.db-shm"
Binary files differ
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/Print/Print/.vs/Print/CopilotIndices/17.14.1231.31060/SemanticSymbols.db-shm" "b/\351\241\271\347\233\256\344\273\243\347\240\201/Print/Print/.vs/Print/CopilotIndices/17.14.1231.31060/SemanticSymbols.db-shm"
index 06208e8..b89d753 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/Print/Print/.vs/Print/CopilotIndices/17.14.1231.31060/SemanticSymbols.db-shm"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/Print/Print/.vs/Print/CopilotIndices/17.14.1231.31060/SemanticSymbols.db-shm"
Binary files differ
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/Print/Print/.vs/Print/v17/DocumentLayout.backup.json" "b/\351\241\271\347\233\256\344\273\243\347\240\201/Print/Print/.vs/Print/v17/DocumentLayout.backup.json"
index f53396f..cc17c72 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/Print/Print/.vs/Print/v17/DocumentLayout.backup.json"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/Print/Print/.vs/Print/v17/DocumentLayout.backup.json"
@@ -28,7 +28,7 @@
               "RelativeDocumentMoniker": "Print\\Controllers\\PrintController.cs",
               "ToolTip": "E:\\GET\\DuiDuoJiLiKu\\\u9879\u76EE\u4EE3\u7801\\Print\\Print\\Print\\Controllers\\PrintController.cs",
               "RelativeToolTip": "Print\\Controllers\\PrintController.cs",
-              "ViewState": "AgIAAAAAAAAAAAAAAAAAAF8AAABJAAAAAAAAAA==",
+              "ViewState": "AgIAAAAAAAAAAAAAAAAAAA4AAABIAAAAAAAAAA==",
               "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
               "WhenOpened": "2025-10-27T13:23:53.618Z",
               "EditorCaption": ""
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/Print/Print/Print/Controllers/PrintController.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/Print/Print/Print/Controllers/PrintController.cs"
index 80e043a..9812636 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/Print/Print/Print/Controllers/PrintController.cs"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/Print/Print/Print/Controllers/PrintController.cs"
@@ -84,11 +84,11 @@
                     report.Print();
                     report.Dispose();
                 }
-                return new { code = 200, status = false };
+                return new { Code = 200, Status = true , Message = "鎵撳嵃鎴愬姛" };
             }
             catch (Exception ex)
             {
-                return ex.Message;
+                return new { Code = 400, Status = false, Message = "鎵撳嵃澶辫触锛岃鏌ョ湅鏄惁杩炴帴鎵撳嵃鏈�" };
             }
         }
 
@@ -115,11 +115,11 @@
                     report.Print();
                     report.Dispose();
                 }
-                return new { code = 200, status = false };
+                return new { Code = 400, Status = false, Message = "鎵撳嵃鎴愬姛" };
             }
             catch (Exception ex)
             {
-                return ex.Message;
+                return new { Code = 400, Status = false, Message = "鎵撳嵃澶辫触锛岃鏌ョ湅鏄惁杩炴帴鎵撳嵃鏈�" };
             }
         }
 
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/CopilotIndices/17.14.1231.31060/CodeChunks.db" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/CopilotIndices/17.14.1231.31060/CodeChunks.db"
index 146b995..5bddea2 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/CopilotIndices/17.14.1231.31060/CodeChunks.db"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/CopilotIndices/17.14.1231.31060/CodeChunks.db"
Binary files differ
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/CopilotIndices/17.14.1231.31060/CodeChunks.db-shm" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/CopilotIndices/17.14.1231.31060/CodeChunks.db-shm"
index 57140b3..59cb3f8 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/CopilotIndices/17.14.1231.31060/CodeChunks.db-shm"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/CopilotIndices/17.14.1231.31060/CodeChunks.db-shm"
Binary files differ
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/CopilotIndices/17.14.1231.31060/CodeChunks.db-wal" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/CopilotIndices/17.14.1231.31060/CodeChunks.db-wal"
index 5505e12..2ab5642 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/CopilotIndices/17.14.1231.31060/CodeChunks.db-wal"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/CopilotIndices/17.14.1231.31060/CodeChunks.db-wal"
Binary files differ
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/CopilotIndices/17.14.1231.31060/SemanticSymbols.db" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/CopilotIndices/17.14.1231.31060/SemanticSymbols.db"
index 2edc113..b4484dd 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/CopilotIndices/17.14.1231.31060/SemanticSymbols.db"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/CopilotIndices/17.14.1231.31060/SemanticSymbols.db"
Binary files differ
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/CopilotIndices/17.14.1231.31060/SemanticSymbols.db-shm" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/CopilotIndices/17.14.1231.31060/SemanticSymbols.db-shm"
index b294b2c..614946e 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/CopilotIndices/17.14.1231.31060/SemanticSymbols.db-shm"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/CopilotIndices/17.14.1231.31060/SemanticSymbols.db-shm"
Binary files differ
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/CopilotIndices/17.14.1231.31060/SemanticSymbols.db-wal" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/CopilotIndices/17.14.1231.31060/SemanticSymbols.db-wal"
index 1c305d0..9424ec3 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/CopilotIndices/17.14.1231.31060/SemanticSymbols.db-wal"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/CopilotIndices/17.14.1231.31060/SemanticSymbols.db-wal"
Binary files differ
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/v17/DocumentLayout.backup.json" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/v17/DocumentLayout.backup.json"
index c37bc6f..eb0267e 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/v17/DocumentLayout.backup.json"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/v17/DocumentLayout.backup.json"
@@ -52,7 +52,7 @@
               "RelativeDocumentMoniker": "WIDESEAWCS_TaskInfoService\\TaskService.cs",
               "ToolTip": "E:\\GET\\DuiDuoJiLiKu\\\u9879\u76EE\u4EE3\u7801\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_TaskInfoService\\TaskService.cs",
               "RelativeToolTip": "WIDESEAWCS_TaskInfoService\\TaskService.cs",
-              "ViewState": "AgIAAAAAAAAAAAAAAAAAANACAAAkAAAAAAAAAA==",
+              "ViewState": "AgIAAAAAAAAAAAAAAAAAAEwAAABBAAAAAAAAAA==",
               "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
               "WhenOpened": "2025-09-25T03:21:17.498Z",
               "EditorCaption": ""
@@ -77,9 +77,10 @@
               "RelativeDocumentMoniker": "WIDESEAWCS_Tasks\\StackerCraneJob\\CommonStackerCraneJob.cs",
               "ToolTip": "E:\\GET\\DuiDuoJiLiKu\\\u9879\u76EE\u4EE3\u7801\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Tasks\\StackerCraneJob\\CommonStackerCraneJob.cs",
               "RelativeToolTip": "WIDESEAWCS_Tasks\\StackerCraneJob\\CommonStackerCraneJob.cs",
-              "ViewState": "AgIAAEMAAAAAAAAAAAD4v10AAAA6AAAAAAAAAA==",
+              "ViewState": "AgIAAAAAAAAAAAAAAAAAAF0AAAA6AAAAAAAAAA==",
               "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
-              "WhenOpened": "2025-10-08T02:55:34.719Z"
+              "WhenOpened": "2025-10-08T02:55:34.719Z",
+              "EditorCaption": ""
             },
             {
               "$type": "Document",
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/v17/DocumentLayout.json" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/v17/DocumentLayout.json"
index da62172..9a367df 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/v17/DocumentLayout.json"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/v17/DocumentLayout.json"
@@ -52,7 +52,7 @@
               "RelativeDocumentMoniker": "WIDESEAWCS_TaskInfoService\\TaskService.cs",
               "ToolTip": "E:\\GET\\DuiDuoJiLiKu\\\u9879\u76EE\u4EE3\u7801\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_TaskInfoService\\TaskService.cs",
               "RelativeToolTip": "WIDESEAWCS_TaskInfoService\\TaskService.cs",
-              "ViewState": "AgIAAEkAAAAAAAAAAAAAwNACAAAkAAAAAAAAAA==",
+              "ViewState": "AgIAAAAAAAAAAAAAAAAAAEwAAABBAAAAAAAAAA==",
               "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
               "WhenOpened": "2025-09-25T03:21:17.498Z",
               "EditorCaption": ""
@@ -79,8 +79,7 @@
               "RelativeToolTip": "WIDESEAWCS_Tasks\\StackerCraneJob\\CommonStackerCraneJob.cs",
               "ViewState": "AgIAAAAAAAAAAAAAAAAAAF0AAAA6AAAAAAAAAA==",
               "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
-              "WhenOpened": "2025-10-08T02:55:34.719Z",
-              "EditorCaption": ""
+              "WhenOpened": "2025-10-08T02:55:34.719Z"
             },
             {
               "$type": "Document",
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSClient/src/components/basic/ViewGrid/ViewGrid.vue" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSClient/src/components/basic/ViewGrid/ViewGrid.vue"
index 5be6e89..1665712 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSClient/src/components/basic/ViewGrid/ViewGrid.vue"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSClient/src/components/basic/ViewGrid/ViewGrid.vue"
@@ -2,29 +2,17 @@
   <div class="layout-container">
     <a :href="exportHref" ref="export"></a>
     <!--寮�鍚噿鍔犺浇2020.12.06 -->
-    <vol-box
-      :on-model-close="closeCustomModel"
-      v-model="viewModel"
-      :height="520"
-      :width="500"
-      :padding="0"
-      :lazy="true"
-      title="璁剧疆"
-    >
+    <vol-box :on-model-close="closeCustomModel" v-model="viewModel" :height="520" :width="500" :padding="0" :lazy="true"
+      title="璁剧疆">
       <template #content>
         <custom-column :view-columns="viewColumns"></custom-column>
       </template>
       <template #footer>
         <div style="text-align: center">
-          <el-button type="default" size="small" @click="closeCustomModel"
-            ><i class="el-icon-close"></i>鍙栨秷</el-button
-          >
-          <el-button type="success" size="small" @click="initViewColumns(true)"
-            ><i class="el-icon-refresh"></i>閲嶇疆</el-button
-          >
-          <el-button type="primary" size="small" @click="saveColumnConfig"
-            ><i class="el-icon-check"></i>纭畾</el-button
-          >
+          <el-button type="default" size="small" @click="closeCustomModel"><i class="el-icon-close"></i>鍙栨秷</el-button>
+          <el-button type="success" size="small" @click="initViewColumns(true)"><i
+              class="el-icon-refresh"></i>閲嶇疆</el-button>
+          <el-button type="primary" size="small" @click="saveColumnConfig"><i class="el-icon-check"></i>纭畾</el-button>
         </div>
       </template>
     </vol-box>
@@ -34,28 +22,13 @@
     <!--2020.10.31娣诲姞瀵煎叆鍓嶇殑鏂规硶-->
     <!--寮�鍚噿鍔犺浇2020.12.06 -->
     <!-- 2022.01.08澧炲姞鏄庣粏琛ㄥ鍏ュ垽鏂� -->
-    <vol-box
-      v-if="upload.url"
-      v-model="upload.excel"
-      :height="350"
-      :width="600"
-      :lazy="true"
-      :title="(boxModel ? detailOptions.cnName : table.cnName) + '-瀵煎叆'"
-    >
-      <UploadExcel
-        ref="upload_excel"
-        @importExcelAfter="importExcelAfter"
-        :importExcelBefore="importExcelBefore"
-        :url="upload.url"
-        :template="upload.template"
-      ></UploadExcel>
+    <vol-box v-if="upload.url" v-model="upload.excel" :height="350" :width="600" :lazy="true"
+      :title="(boxModel ? detailOptions.cnName : table.cnName) + '-瀵煎叆'">
+      <UploadExcel ref="upload_excel" @importExcelAfter="importExcelAfter" :importExcelBefore="importExcelBefore"
+        :url="upload.url" :template="upload.template"></UploadExcel>
     </vol-box>
     <!--澶撮儴鑷畾涔夌粍浠�-->
-    <component
-      :is="dynamicComponent.gridHeader"
-      ref="gridHeader"
-      @parentCall="parentCall"
-    ></component>
+    <component :is="dynamicComponent.gridHeader" ref="gridHeader" @parentCall="parentCall"></component>
     <!--涓荤晫闈㈡煡璇笌table琛ㄥ崟甯冨眬-->
     <div class="view-container">
       <!-- 2020.09.11澧炲姞鍥哄畾鏌ヨ琛ㄥ崟 -->
@@ -63,15 +36,8 @@
       <div class="grid-search">
         <div :class="[fiexdSearchForm ? 'fiexd-search-box' : 'search-box']" v-show="searchBoxShow">
           <!-- 2020.09.13澧炲姞formFileds鎷煎啓閿欒鍏煎澶勭悊 -->
-          <vol-form
-            ref="searchForm"
-            :load-key="false"
-            style="padding: 0 15px"
-            :label-width="labelWidth"
-            :formRules="searchFormOptions"
-            :formFields="searchFormFields"
-            :select2Count="select2Count"
-          >
+          <vol-form ref="searchForm" :load-key="false" style="padding: 0 15px" :label-width="labelWidth"
+            :formRules="searchFormOptions" :formFields="searchFormFields" :select2Count="select2Count">
             <template #footer>
               <div v-if="!fiexdSearchForm" class="form-closex">
                 <el-button size="small" type="primary" plain @click="search">
@@ -99,15 +65,9 @@
           </div>
           <!--蹇�熸煡璇㈠瓧娈�-->
           <div class="search-line" v-if="!fiexdSearchForm && !searchBoxShow">
-            <QuickSearch
-              v-if="singleSearch"
-              :searchFormOptions="searchFormOptions"
-              :searchFormFields="searchFormFields"
-              :select2Count="select2Count"
-              :label-width="labelWidth"
-              :queryFields="queryFields"
-              @tiggerPress="quickSearchKeyPress"
-            ></QuickSearch>
+            <QuickSearch v-if="singleSearch" :searchFormOptions="searchFormOptions" :searchFormFields="searchFormFields"
+              :select2Count="select2Count" :label-width="labelWidth" :queryFields="queryFields"
+              @tiggerPress="quickSearchKeyPress"></QuickSearch>
           </div>
           <!--鎿嶄綔鎸夐挳缁�-->
           <!-- 2020.11.29澧炲姞鏌ヨ鐣岄潰hidden灞炴�� -->
@@ -116,8 +76,7 @@
             <template :key="bIndex" v-for="(btn, bIndex) in buttons.slice(0, maxBtnLength)">
               <el-dropdown size="small" v-if="btn.data" :split-button="false">
                 <el-button :color="btn.color" :dark="false" :type="btn.type" :plain="btn.plain">
-                  {{ btn.name }}<i class="el-icon-arrow-down el-icon--right"></i
-                ></el-button>
+                  {{ btn.name }}<i class="el-icon-arrow-down el-icon--right"></i></el-button>
                 <template #dropdown>
                   <el-dropdown-menu>
                     <el-dropdown-item v-for="(item, index) in btn.data" :key="index">
@@ -129,28 +88,13 @@
                   </el-dropdown-menu>
                 </template>
               </el-dropdown>
-              <el-button
-                v-else
-                :type="btn.type"
-                size="small"
-                :color="btn.color"
-                :dark="false"
-                :class="btn.class"
-                :plain="btn.plain"
-                v-show="!btn.hidden"
-                @click="onClick(btn.onClick)"
-              >
+              <el-button v-else :type="btn.type" size="small" :color="btn.color" :dark="false" :class="btn.class"
+                :plain="btn.plain" v-show="!btn.hidden" @click="onClick(btn.onClick)">
                 <i :class="btn.icon"></i> {{ btn.name }}
               </el-button>
             </template>
-            <el-button
-              type="default"
-              style="padding: 0px 10px"
-              size="small"
-              :plain="true"
-              v-if="showCustom"
-              @click="showCustomModel"
-            >
+            <el-button type="default" style="padding: 0px 10px" size="small" :plain="true" v-if="showCustom"
+              @click="showCustomModel">
               <i class="el-icon-s-grid"></i>
             </el-button>
             <el-dropdown size="small" @click="changeDropdown" v-if="buttons.length > maxBtnLength">
@@ -159,15 +103,9 @@
               </el-button>
               <template #dropdown>
                 <el-dropdown-menu>
-                  <el-dropdown-item
-                    @click="changeDropdown(item.name)"
-                    :name="item.name"
-                    v-show="!item.hidden"
-                    v-for="(item, dIndex) in buttons.slice(maxBtnLength, buttons.length)"
-                    :key="dIndex"
-                  >
-                    <i :class="item.icon"></i> {{ item.name }}</el-dropdown-item
-                  >
+                  <el-dropdown-item @click="changeDropdown(item.name)" :name="item.name" v-show="!item.hidden"
+                    v-for="(item, dIndex) in buttons.slice(maxBtnLength, buttons.length)" :key="dIndex">
+                    <i :class="item.icon"></i> {{ item.name }}</el-dropdown-item>
                 </el-dropdown-menu>
               </template>
             </el-dropdown>
@@ -175,54 +113,27 @@
         </div>
 
         <!-- 鍒嗗壊浣嶇疆 -->
-        <vol-box
-          v-if="boxInit"
-          v-model="boxModel"
-          :title="boxOptions.title"
-          :width="boxOptions.width"
-          :height="boxOptions.height"
-          :modal="boxOptions.modal"
-          :draggable="boxOptions.draggable"
-          :padding="0"
-          :on-model-close="onGridModelClose"
-          @fullscreen="fullscreen"
-        >
+        <vol-box v-if="boxInit" v-model="boxModel" :title="boxOptions.title" :width="boxOptions.width"
+          :height="boxOptions.height" :modal="boxOptions.modal" :draggable="boxOptions.draggable" :padding="0"
+          :on-model-close="onGridModelClose" @fullscreen="fullscreen">
           <!--鏄庣粏澶撮儴鑷畾涔夌粍浠�-->
           <template #content>
             <div class="box-com vol-edit-box">
               <div class="vol-edit-content">
-                <component
-                  :is="dynamicComponent.modelHeader"
-                  ref="modelHeader"
-                  @parentCall="parentCall"
-                ></component>
+                <component :is="dynamicComponent.modelHeader" ref="modelHeader" @parentCall="parentCall"></component>
                 <!-- <div v-show="isBoxAudit" class="flow-step">
                 <div v-for="(item, index) in workFlowSteps" :key="index">
                   {{ item.stepName }}
                 </div>
               </div> -->
                 <div class="item form-item">
-                  <vol-form
-                    ref="form"
-                    :editor="editor"
-                    :load-key="false"
-                    :label-width="boxOptions.labelWidth"
-                    :formRules="editFormOptions"
-                    :formFields="editFormFields"
-                    :select2Count="select2Count"
-                  ></vol-form>
+                  <vol-form ref="form" :editor="editor" :load-key="false" :label-width="boxOptions.labelWidth"
+                    :formRules="editFormOptions" :formFields="editFormFields" :select2Count="select2Count"></vol-form>
                 </div>
                 <!--鏄庣粏body鑷畾涔夌粍浠�-->
-                <component
-                  :is="dynamicComponent.modelBody"
-                  ref="modelBody"
-                  @parentCall="parentCall"
-                ></component>
-                <div
-                  v-show="hasDetail"
-                  v-if="detail.columns && detail.columns.length > 0"
-                  class="grid-detail table-item item"
-                >
+                <component :is="dynamicComponent.modelBody" ref="modelBody" @parentCall="parentCall"></component>
+                <div v-show="hasDetail" v-if="detail.columns && detail.columns.length > 0"
+                  class="grid-detail table-item item">
                   <div class="toolbar">
                     <div class="title form-text">
                       <span>
@@ -232,57 +143,26 @@
                     </div>
                     <!--鏄庣粏琛ㄦ牸鎸夐挳-->
                     <div class="btns" v-show="!isBoxAudit">
-                      <el-button
-                        v-for="(btn, bIndex) in detailOptions.buttons"
-                        :key="bIndex"
-                        :plain="btn.plain"
-                        v-show="!(typeof btn.hidden == 'boolean' && btn.hidden)"
-                        @click="onClick(btn.onClick)"
-                        size="small"
-                        ><i :class="btn.icon"></i>{{ btn.name }}</el-button
-                      >
+                      <el-button v-for="(btn, bIndex) in detailOptions.buttons" :key="bIndex" :plain="btn.plain"
+                        v-show="!(typeof btn.hidden == 'boolean' && btn.hidden)" @click="onClick(btn.onClick)"
+                        size="small"><i :class="btn.icon"></i>{{ btn.name }}</el-button>
                     </div>
                   </div>
-                  <vol-table
-                    ref="detail"
-                    @loadBefore="loadInternalDetailTableBefore"
-                    @loadAfter="loadDetailTableAfter"
-                    @rowChange="detailRowOnChange"
-                    @rowClick="detailRowOnClick"
-                    :url="detailOptions.url"
-                    :load-key="false"
-                    :index="true"
-                    :tableData="detailOptions.data"
-                    :columns="detailOptions.columns"
-                    :pagination="detailOptions.pagination"
-                    :height="detailOptions.height"
-                    :single="detailOptions.single"
-                    :pagination-hide="detailOptions.paginationHide"
-                    :defaultLoadPage="detailOptions.load"
-                    :beginEdit="detailOptions.beginEdit"
-                    :endEditBefore="detailOptions.endEditBefore"
-                    :endEditAfter="detailOptions.endEditAfter"
-                    :double-edit="detailOptions.doubleEdit"
-                    :column-index="detailOptions.columnIndex"
-                    :ck="detailOptions.ck"
-                    :text-inline="detailOptions.textInline"
-                    :select2Count="select2Count"
-                    :selectable="detailSelectable"
-                    :spanMethod="detailSpanMethod"
-                  ></vol-table>
+                  <vol-table ref="detail" @loadBefore="loadInternalDetailTableBefore" @loadAfter="loadDetailTableAfter"
+                    @rowChange="detailRowOnChange" @rowClick="detailRowOnClick" :url="detailOptions.url" :load-key="false"
+                    :index="true" :tableData="detailOptions.data" :columns="detailOptions.columns"
+                    :pagination="detailOptions.pagination" :height="detailOptions.height" :single="detailOptions.single"
+                    :pagination-hide="detailOptions.paginationHide" :defaultLoadPage="detailOptions.load"
+                    :beginEdit="detailOptions.beginEdit" :endEditBefore="detailOptions.endEditBefore"
+                    :endEditAfter="detailOptions.endEditAfter" :double-edit="detailOptions.doubleEdit"
+                    :column-index="detailOptions.columnIndex" :ck="detailOptions.ck"
+                    :text-inline="detailOptions.textInline" :select2Count="select2Count" :selectable="detailSelectable"
+                    :spanMethod="detailSpanMethod"></vol-table>
                 </div>
-                <component
-                  :is="dynamicComponent.modelFooter"
-                  ref="modelFooter"
-                  @parentCall="parentCall"
-                ></component>
+                <component :is="dynamicComponent.modelFooter" ref="modelFooter" @parentCall="parentCall"></component>
               </div>
               <div class="vol-edit-box-right">
-                <component
-                  :is="dynamicComponent.modelRight"
-                  ref="modelRight"
-                  @parentCall="parentCall"
-                ></component>
+                <component :is="dynamicComponent.modelRight" ref="modelRight" @parentCall="parentCall"></component>
               </div>
             </div>
           </template>
@@ -291,26 +171,14 @@
               <el-button size="small" type="primary" plain @click="onGridModelClose(false)">
                 <i class="el-icon-close">鍏抽棴</i>
               </el-button>
-              <el-button
-                size="small"
-                type="primary"
-                v-show="auditParam.showViewButton"
-                @click="auditParam.model = true"
-              >
+              <el-button size="small" type="primary" v-show="auditParam.showViewButton" @click="auditParam.model = true">
                 <i class="el-icon-view">瀹℃壒</i>
               </el-button>
             </div>
             <div v-show="!isBoxAudit">
-              <el-button
-                v-for="(btn, bIndex) in boxButtons"
-                :key="bIndex"
-                :type="btn.type"
-                size="small"
-                :plain="btn.plain"
-                v-show="!(typeof btn.hidden == 'boolean' && btn.hidden)"
-                :disabled="btn.hasOwnProperty('disabled') && !!btn.disabled"
-                @click="onClick(btn.onClick)"
-              >
+              <el-button v-for="(btn, bIndex) in boxButtons" :key="bIndex" :type="btn.type" size="small"
+                :plain="btn.plain" v-show="!(typeof btn.hidden == 'boolean' && btn.hidden)"
+                :disabled="btn.hasOwnProperty('disabled') && !!btn.disabled" @click="onClick(btn.onClick)">
                 <i :class="btn.icon"></i>{{ btn.name }}
               </el-button>
               <el-button size="small" type="primary" plain @click="onGridModelClose(false)">
@@ -322,61 +190,26 @@
       </div>
       <!--body鑷畾涔夌粍浠�-->
       <div class="grid-body">
-        <component
-          :is="dynamicComponent.gridBody"
-          ref="gridBody"
-          @parentCall="parentCall"
-        ></component>
+        <component :is="dynamicComponent.gridBody" ref="gridBody" @parentCall="parentCall"></component>
       </div>
 
       <!--table琛ㄦ牸-->
       <div class="grid-container">
         <!-- 2021.05.02澧炲姞鏍戝舰缁撴瀯 rowKey -->
-        <vol-table
-          ref="table"
-          :single="single"
-          :rowKey="rowKey"
-          :loadTreeChildren="loadTreeTableChildren"
-          @loadBefore="loadTableBefore"
-          @loadAfter="loadTableAfter"
-          @rowChange="rowOnChange"
-          @rowClick="rowOnClick"
-          @rowDbClick="rowOnDbClick"
-          @selectionChange="selectionOnChange"
-          :tableData="[]"
-          :linkView="linkData"
-          :columns="columns"
-          :pagination="pagination"
-          :height="height"
-          :max-height="tableMaxHeight"
-          :pagination-hide="paginationHide"
-          :url="url"
-          :load-key="false"
-          :defaultLoadPage="load"
-          :double-edit="doubleEdit"
-          :index="doubleEdit"
-          :beginEdit="tableBeginEdit"
-          :endEditBefore="tableEndEditBefore"
-          :column-index="columnIndex"
-          :text-inline="textInline"
-          :ck="ck"
-          :select2Count="select2Count"
-          :selectable="selectable"
-          :spanMethod="spanMethod"
-          :lazy="lazy"
-          :defaultExpandAll="defaultExpandAll"
-          :expandRowKeys="expandRowKeys"
-          :rowParentField="rowParentField"
-        ></vol-table>
+        <vol-table ref="table" :single="single" :rowKey="rowKey" :loadTreeChildren="loadTreeTableChildren"
+          @loadBefore="loadTableBefore" @loadAfter="loadTableAfter" @rowChange="rowOnChange" @rowClick="rowOnClick"
+          @rowDbClick="rowOnDbClick" @selectionChange="selectionOnChange" :tableData="[]" :linkView="linkData"
+          :columns="columns" :pagination="pagination" :height="height" :max-height="tableMaxHeight"
+          :pagination-hide="paginationHide" :url="url" :load-key="false" :defaultLoadPage="load" :double-edit="doubleEdit"
+          :index="doubleEdit" :beginEdit="tableBeginEdit" :endEditBefore="tableEndEditBefore" :column-index="columnIndex"
+          :text-inline="textInline" :ck="ck" :select2Count="select2Count" :selectable="selectable"
+          :spanMethod="spanMethod" :lazy="lazy" :defaultExpandAll="defaultExpandAll" :expandRowKeys="expandRowKeys"
+          :rowParentField="rowParentField"></vol-table>
       </div>
     </div>
 
     <!--footer鑷畾涔夌粍浠�-->
-    <component
-      :is="dynamicComponent.gridFooter"
-      ref="gridFooter"
-      @parentCall="parentCall"
-    ></component>
+    <component :is="dynamicComponent.gridFooter" ref="gridFooter" @parentCall="parentCall"></component>
   </div>
 </template>
 
@@ -617,8 +450,8 @@
     this.initDicKeys() //鍒濆涓嬫鏁版嵁婧�
     this.onInited() //鍒濆鍖栧悗锛屽鏋滈渶瑕佸仛鍏朵粬澶勭悊鍦ㄦ墿灞曟柟娉曚腑瑕嗙洊姝ゆ柟娉�
   },
-  beforeUpdate: function () {},
-  updated: function () {}
+  beforeUpdate: function () { },
+  updated: function () { }
 }
 
 import props from './props.js'
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSClient/src/components/basic/ViewGrid/ViewGridDetail.vue" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSClient/src/components/basic/ViewGrid/ViewGridDetail.vue"
index 5f3ae0d..331be90 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSClient/src/components/basic/ViewGrid/ViewGridDetail.vue"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSClient/src/components/basic/ViewGrid/ViewGridDetail.vue"
@@ -25,8 +25,7 @@
                                 {{ btn.name }}
                             </el-button>
                         </template>
-                        <el-dropdown size="small" @click="changeDropdown"
-                            v-if="Mybuttons.length > 5">
+                        <el-dropdown size="small" @click="changeDropdown" v-if="Mybuttons.length > 5">
                             <el-button type="primary" plain size="small">
                                 鏇村<i class="el-icon-arrow-down el-icon--right"></i>
                             </el-button>
@@ -53,18 +52,17 @@
                         <template #default="props">
                             <h4>鏄庣粏鏁版嵁</h4>
                             <div m="4">
-                                <el-table stripe :data="props.row.boxingInfoDetails" max-height="400"
-                                    style="width: 100%" border>
+                                <el-table stripe :data="props.row.boxingInfoDetails" max-height="400" style="width: 100%"
+                                    border>
                                     <el-table-column label="搴忓彿" type="index" fixed="left" width="55"></el-table-column>
-                                    <el-table-column :key="index" v-for="(item, index) in detailColumns"
-                                        :label="item.title" :prop="item.field" :width="item.width"
-                                        show-overflow-tooltip></el-table-column>
+                                    <el-table-column :key="index" v-for="(item, index) in detailColumns" :label="item.title"
+                                        :prop="item.field" :width="item.width" show-overflow-tooltip></el-table-column>
                                 </el-table>
                             </div>
                         </template>
                     </el-table-column>
-                    <el-table-column v-for="(item, index) in columns" :key="index" :label="item.title"
-                        :prop="item.field" sortable="true" show-overflow-tooltip>
+                    <el-table-column v-for="(item, index) in columns" :key="index" :label="item.title" :prop="item.field"
+                        sortable="true" show-overflow-tooltip>
                         <template #default="scope" v-if="item.type == 'tag'">
                             <el-tag size="small">
                                 {{ getDictionary(scope.row, item) }}
@@ -78,8 +76,7 @@
                         <el-pagination key="pagination-02" @size-change="handleSizeChange"
                             @current-change="handleCurrentChange" :current-page="currentPage1.page"
                             :page-sizes="currentPage1.sizes" :page-size="currentPage1.size"
-                            layout="total, sizes, prev, pager, next, jumper"
-                            :total="currentPage1.total"></el-pagination>
+                            layout="total, sizes, prev, pager, next, jumper" :total="currentPage1.total"></el-pagination>
                     </div>
                 </template>
             </div>
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSClient/src/components/basic/VolTable.vue" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSClient/src/components/basic/VolTable.vue"
index 5618bf6..c2f2c75 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSClient/src/components/basic/VolTable.vue"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSClient/src/components/basic/VolTable.vue"
@@ -1,114 +1,50 @@
 <template>
   <!-- 2021.11.18绉婚櫎voltable鏂规硶@cell-mouse-leave="rowEndEdit" -->
-  <div
-    class="vol-table"
-    :class="[
-      textInline ? 'text-inline' : '',
-      fxRight ? 'fx-right' : '',
-      isChrome ? 'chrome' : '',
-      smallCell ? 'small-table' : ''
-    ]"
-  >
+  <div class="vol-table" :class="[
+    textInline ? 'text-inline' : '',
+    fxRight ? 'fx-right' : '',
+    isChrome ? 'chrome' : '',
+    smallCell ? 'small-table' : ''
+  ]">
     <div class="mask" v-show="loading"></div>
     <div class="message" v-show="loading">鍔犺浇涓�.....</div>
-    <el-table
-      :show-summary="summary"
-      :summary-method="getSummaryData"
-      :row-key="rowKey"
-      :key="randomTableKey"
-      :lazy="lazy"
-      :defaultExpandAll="defaultExpandAll"
-      :expand-row-keys="rowKey ? expandRowKeys : undefined"
-      stripe
-      :load="loadTreeChildren"
-      @select="userSelect"
-      @select-all="userSelect"
-      @selection-change="selectionChange"
-      @row-dblclick="rowDbClick"
-      @row-click="rowClick"
-      @header-click="headerClick"
-      :highlight-current-row="highlightCurrentRow"
-      ref="table"
-      class="v-table"
-      @sort-change="sortChange"
-      tooltip-effect="dark"
-      :height="realHeight"
-      :max-height="realMaxHeight"
-      :data="url ? rowData : tableData"
-      border
-      :row-class-name="initIndex"
-      :cell-style="getCellStyle"
-      style="width: 100%"
-      :scrollbar-always-on="true"
-      :span-method="cellSpanMethod"
-      @expand-change="expandChange"
-    >
+    <el-table :show-summary="summary" :summary-method="getSummaryData" :row-key="rowKey" :key="randomTableKey"
+      :lazy="lazy" :defaultExpandAll="defaultExpandAll" :expand-row-keys="rowKey ? expandRowKeys : undefined" stripe
+      :load="loadTreeChildren" @select="userSelect" @select-all="userSelect" @selection-change="selectionChange"
+      @row-dblclick="rowDbClick" @row-click="rowClick" @header-click="headerClick"
+      :highlight-current-row="highlightCurrentRow" ref="table" class="v-table" @sort-change="sortChange"
+      tooltip-effect="dark" :height="realHeight" :max-height="realMaxHeight" :data="url ? rowData : tableData" border
+      :row-class-name="initIndex" :cell-style="getCellStyle" style="width: 100%" :scrollbar-always-on="true"
+      :span-method="cellSpanMethod" @expand-change="expandChange">
       <el-table-column v-if="columnIndex" type="index" :fixed="fixed" width="55"></el-table-column>
-      <el-table-column
-        v-if="ck"
-        type="selection"
-        :fixed="fixed"
-        :selectable="selectable"
-        width="55"
-      ></el-table-column>
+      <el-table-column v-if="ck" type="selection" :fixed="fixed" :selectable="selectable" width="55"></el-table-column>
 
       <!-- 2020.10.10绉婚櫎table绗竴琛屽己鍒舵帓搴� -->
-      <el-table-column
-        v-for="(column, cindex) in filterColumns"
-        :prop="column.field"
-        :label="column.title"
-        :min-width="column.width"
-        :formatter="formatter"
-        :fixed="column.fixed"
-        :key="column.field + cindex"
-        :align="column.align"
-        :sortable="column.sort ? 'custom' : false"
-        :show-overflow-tooltip="true"
-      >
+      <el-table-column v-for="(column, cindex) in    filterColumns   " :prop="column.field" :label="column.title"
+        :min-width="column.width" :formatter="formatter" :fixed="column.fixed" :key="column.field + cindex"
+        :align="column.align" :sortable="column.sort ? 'custom' : false" :show-overflow-tooltip="true">
         <template #header>
-          <span v-if="(column.require || column.required) && column.edit" class="column-required"
-            >*</span
-          >{{ column.title }}
+          <span v-if="(column.require || column.required) && column.edit" class="column-required">*</span>{{ column.title
+          }}
         </template>
 
         <template #default="scope">
           <!-- 2022.01.08澧炲姞澶氳〃澶达紝鐜板湪鍙敮鎸佸父鐢ㄥ姛鑳芥覆鏌擄紝涓嶆敮鎸佺紪杈戝姛鑳�(娑夊強鍒扮粍浠堕噸鍐�) -->
-          <el-table-column
-            style="border: none"
-            v-for="columnChildren in filterChildrenColumn(column.children)"
-            :key="columnChildren.field"
-            :min-width="columnChildren.width"
-            :class-name="columnChildren.class"
-            :prop="columnChildren.field"
-            :align="columnChildren.align"
-            :label="columnChildren.title"
-          >
+          <el-table-column style="border: none" v-for="columnChildren in filterChildrenColumn(column.children)"
+            :key="columnChildren.field" :min-width="columnChildren.width" :class-name="columnChildren.class"
+            :prop="columnChildren.field" :align="columnChildren.align" :label="columnChildren.title">
             <template #default="scopeChildren">
-              <a
-                href="javascript:void(0);"
-                style="text-decoration: none"
-                @click="link(scopeChildren.row, columnChildren, $event)"
-                v-if="columnChildren.link"
-                v-text="scopeChildren.row[columnChildren.field]"
-              ></a>
-              <table-render
-                v-else-if="columnChildren.render && typeof columnChildren.render == 'function'"
-                :row="scopeChildren.row"
-                key="rd-01"
-                :index="scope.$index"
-                :column="columnChildren"
-                :render="columnChildren.render"
-              ></table-render>
-              <div
-                v-else-if="columnChildren.formatter"
-                @click="
-                  columnChildren.click &&
-                    columnChildren.click(scopeChildren.row, columnChildren, scopeChildren.$index)
-                "
-                v-html="
-                  columnChildren.formatter(scopeChildren.row, columnChildren, scopeChildren.$index)
-                "
-              ></div>
+              <a href="javascript:void(0);" style="text-decoration: none"
+                @click="link(scopeChildren.row, columnChildren, $event)" v-if="columnChildren.link"
+                v-text="scopeChildren.row[columnChildren.field]"></a>
+              <table-render v-else-if="columnChildren.render && typeof columnChildren.render == 'function'"
+                :row="scopeChildren.row" key="rd-01" :index="scope.$index" :column="columnChildren"
+                :render="columnChildren.render"></table-render>
+              <div v-else-if="columnChildren.formatter" @click="
+                columnChildren.click &&
+                columnChildren.click(scopeChildren.row, columnChildren, scopeChildren.$index)
+                " v-html="columnChildren.formatter(scopeChildren.row, columnChildren, scopeChildren.$index)
+    "></div>
               <div v-else-if="columnChildren.bind">
                 {{ formatter(scopeChildren.row, columnChildren, true) }}
               </div>
@@ -121,183 +57,95 @@
             </template>
           </el-table-column>
           <!-- 2020.06.18澧炲姞render娓叉煋鑷畾涔夊唴瀹� -->
-          <table-render
-            v-if="column.render && typeof column.render == 'function'"
-            :row="scope.row"
-            key="rd-01"
-            :index="scope.$index"
-            :column="column"
-            :render="column.render"
-          ></table-render>
+          <table-render v-if="column.render && typeof column.render == 'function'" :row="scope.row" key="rd-01"
+            :index="scope.$index" :column="column" :render="column.render"></table-render>
           <!-- 鍚敤鍙屽嚮缂栬緫鍔熻兘锛屽甫缂栬緫鍔熻兘鐨勪笉浼氭覆鏌撲笅鎷夋鏂囨湰鑳屾櫙棰滆壊 -->
           <!-- @click="rowBeginEdit(scope.$index,cindex)" -->
           <!-- 2021.09.21澧炲姞缂栬緫鏃跺readonly灞炴�у垽鏂� -->
-          <template
-            v-else-if="
-              column.edit &&
-              !column.readonly &&
-              ['file', 'img', 'excel'].indexOf(column.edit.type) != -1
-            "
-          >
+          <template v-else-if="column.edit &&
+            !column.readonly &&
+            ['file', 'img', 'excel'].indexOf(column.edit.type) != -1
+            ">
             <div style="display: flex; align-items: center" @click.stop>
-              <i
-                v-if="!column.showUpload || column.showUpload(scope.row, column)"
+              <i v-if="!column.showUpload || column.showUpload(scope.row, column)"
                 style="padding: 3px; margin-right: 10px; color: #8f9293; cursor: pointer"
-                @click="showUpload(scope.row, column)"
-                class="el-icon-upload"
-              ></i>
+                @click="showUpload(scope.row, column)" class="el-icon-upload"></i>
               <template v-if="column.edit.type == 'img'">
-                <img
-                  v-for="(file, imgIndex) in getFilePath(scope.row[column.field], column)"
-                  :key="imgIndex"
-                  @error="handleImageError"
-                  @click="viewImg(scope.row, column, file.path, $event, imgIndex)"
-                  class="table-img"
-                  :src="file.path"
-                />
+                <img v-for="(file, imgIndex) in getFilePath(scope.row[column.field], column)" :key="imgIndex"
+                  @error="handleImageError" @click="viewImg(scope.row, column, file.path, $event, imgIndex)"
+                  class="table-img" :src="file.path" />
               </template>
-              <a
-                style="margin-right: 8px"
-                v-else
-                class="t-file"
-                v-for="(file, fIndex) in getFilePath(scope.row[column.field], column)"
-                :key="fIndex"
-                @click="dowloadFile(file)"
-                >{{ file.name }}</a
-              >
+              <a style="margin-right: 8px" v-else class="t-file"
+                v-for="(file, fIndex) in getFilePath(scope.row[column.field], column)" :key="fIndex"
+                @click="dowloadFile(file)">{{ file.name }}</a>
             </div>
           </template>
-          <div
-            v-else-if="
-              column.edit && !column.readonly && (column.edit.keep || edit.rowIndex == scope.$index)
-            "
-            class="edit-el"
-          >
+          <div v-else-if="column.edit && !column.readonly && (column.edit.keep || edit.rowIndex == scope.$index)
+            " class="edit-el">
             <div @click.stop class="e-item">
               <div>
                 <!-- 2020.07.24澧炲姞鏃ユ湡onChange浜嬩欢 -->
-                <el-date-picker
-                  clearable
-                  size="default"
-                  style="width: 100%"
-                  v-if="['date', 'datetime'].indexOf(column.edit.type) != -1"
-                  v-model="scope.row[column.field]"
-                  @change="
-                    (val) => {
-                      column.onChange && column.onChange(scope.row, column, val)
-                    }
-                  "
-                  :type="column.edit.type"
-                  :placeholder="column.placeholder || column.title"
-                  :disabledDate="(val) => getDateOptions(val, column)"
-                  :value-format="getDateFormat(column)"
-                  :disabled="initColumnDisabled(scope.row, column)"
-                >
+                <el-date-picker clearable size="default" style="width: 100%"
+                  v-if="['date', 'datetime'].indexOf(column.edit.type) != -1" v-model="scope.row[column.field]" @change="(val) => {
+                    column.onChange && column.onChange(scope.row, column, val)
+                  }
+                    " :type="column.edit.type" :placeholder="column.placeholder || column.title"
+                  :disabledDate="(val) => getDateOptions(val, column)" :value-format="getDateFormat(column)"
+                  :disabled="initColumnDisabled(scope.row, column)">
                 </el-date-picker>
-                <el-time-picker
-                  clearable
-                  size="default"
-                  style="width: 100%"
-                  v-else-if="column.edit.type == 'time'"
-                  v-model="scope.row[column.field]"
-                  @change="
-                    (val) => {
-                      column.onChange && column.onChange(scope.row, column, val)
-                    }
-                  "
-                  :placeholder="column.placeholder || column.title"
-                  :value-format="column.format || 'HH:mm:ss'"
-                  :disabled="initColumnDisabled(scope.row, column)"
-                >
+                <el-time-picker clearable size="default" style="width: 100%" v-else-if="column.edit.type == 'time'"
+                  v-model="scope.row[column.field]" @change="(val) => {
+                    column.onChange && column.onChange(scope.row, column, val)
+                  }
+                    " :placeholder="column.placeholder || column.title" :value-format="column.format || 'HH:mm:ss'"
+                  :disabled="initColumnDisabled(scope.row, column)">
                 </el-time-picker>
-                <el-switch
-                  v-else-if="column.edit.type == 'switch'"
-                  v-model="scope.row[column.field]"
-                  active-color="#0f84ff"
-                  inactive-color="rgb(194 194 194)"
-                  active-text="鏄�"
-                  inactive-text="鍚�"
-                  inline-prompt
-                  @change="
-                    (val) => {
-                      switchChange(val, scope.row, column)
-                    }
-                  "
-                  :active-value="
-                    typeof scope.row[column.field] == 'boolean'
-                      ? true
-                      : typeof scope.row[column.field] == 'string'
-                      ? '1'
-                      : 1
-                  "
-                  :inactive-value="
-                    typeof scope.row[column.field] == 'boolean'
-                      ? false
-                      : typeof scope.row[column.field] == 'string'
-                      ? '0'
-                      : 0
-                  "
-                  :disabled="initColumnDisabled(scope.row, column)"
-                >
+                <el-switch v-else-if="column.edit.type == 'switch'" v-model="scope.row[column.field]"
+                  active-color="#0f84ff" inactive-color="rgb(194 194 194)" active-text="鏄�" inactive-text="鍚�" inline-prompt
+                  @change="(val) => {
+                    switchChange(val, scope.row, column)
+                  }
+                    " :active-value="typeof scope.row[column.field] == 'boolean'
+    ? true
+    : typeof scope.row[column.field] == 'string'
+      ? '1'
+      : 1
+    " :inactive-value="typeof scope.row[column.field] == 'boolean'
+    ? false
+    : typeof scope.row[column.field] == 'string'
+      ? '0'
+      : 0
+    " :disabled="initColumnDisabled(scope.row, column)">
                 </el-switch>
                 <template v-else-if="['select', 'selectList'].indexOf(column.edit.type) != -1">
-                  <el-select-v2
-                    style="width: 100%"
-                    :size="size"
-                    v-if="column.bind.data.length >= select2Count"
-                    v-model="scope.row[column.field]"
-                    filterable
-                    :multiple="column.edit.type == 'select' ? false : true"
-                    :placeholder="column.placeholder || column.title"
-                    :autocomplete="column.autocomplete"
-                    :options="column.bind.data"
-                    @change="column.onChange && column.onChange(scope.row, column)"
-                    clearable
-                    :disabled="initColumnDisabled(scope.row, column)"
-                  >
+                  <el-select-v2 style="width: 100%" :size="size" v-if="column.bind.data.length >= select2Count"
+                    v-model="scope.row[column.field]" filterable :multiple="column.edit.type == 'select' ? false : true"
+                    :placeholder="column.placeholder || column.title" :autocomplete="column.autocomplete"
+                    :options="column.bind.data" @change="column.onChange && column.onChange(scope.row, column)" clearable
+                    :disabled="initColumnDisabled(scope.row, column)">
                     <template #default="{ item }">
                       {{ item.label }}
                     </template>
                   </el-select-v2>
 
-                  <el-select
-                    size="default"
-                    style="width: 100%"
-                    v-else
-                    v-model="scope.row[column.field]"
+                  <el-select size="default" style="width: 100%" v-else v-model="scope.row[column.field]"
                     :filterable="column.filter || column.bind.data.length > 10 ? true : false"
                     :multiple="column.edit.type == 'select' ? false : true"
-                    :placeholder="column.placeholder || column.title"
-                    :allow-create="column.autocomplete"
-                    @change="column.onChange && column.onChange(scope.row, column)"
-                    clearable
-                    :disabled="initColumnDisabled(scope.row, column)"
-                  >
-                    <el-option
-                      v-for="item in column.bind.data"
-                      :key="item.key"
-                      v-show="!item.hidden"
-                      :disabled="item.disabled"
-                      :label="item.value"
-                      :value="item.key"
-                      >{{ item.value }}
+                    :placeholder="column.placeholder || column.title" :allow-create="column.autocomplete"
+                    @change="column.onChange && column.onChange(scope.row, column)" clearable
+                    :disabled="initColumnDisabled(scope.row, column)">
+                    <el-option v-for="item in column.bind.data" :key="item.key" v-show="!item.hidden"
+                      :disabled="item.disabled" :label="item.value" :value="item.key">{{ item.value }}
                     </el-option>
                   </el-select>
                 </template>
-                <el-tree-select
-                  style="width: 100%"
+                <el-tree-select style="width: 100%"
                   v-else-if="column.edit.type == 'treeSelect' || column.edit.type == 'cascader'"
-                  v-model="scope.row[column.field]"
-                  :data="column.bind.data"
-                  :multiple="column.multiple === undefined ? true : column.multiple"
-                  :render-after-expand="false"
-                  :show-checkbox="true"
-                  :check-strictly="column.checkStrictly === undefined ? true : column.checkStrictly"
-                  check-on-click-node
-                  node-key="key"
-                  @change="column.onChange && column.onChange(scope.row, column)"
-                  :props="{ label: 'label' }"
-                >
+                  v-model="scope.row[column.field]" :data="column.bind.data"
+                  :multiple="column.multiple === undefined ? true : column.multiple" :render-after-expand="false"
+                  :show-checkbox="true" :check-strictly="column.checkStrictly === undefined ? true : column.checkStrictly"
+                  check-on-click-node node-key="key" @change="column.onChange && column.onChange(scope.row, column)"
+                  :props="{ label: 'label' }">
                   <template #default="{ data, node }"> {{ data.label }}</template>
                 </el-tree-select>
                 <!-- <div     v-else-if="column.edit.type == 'cascader'">4444444</div> -->
@@ -313,38 +161,21 @@
                   @change="column.onChange && column.onChange(scope.row, column)"
                 >
                 </el-cascader> -->
-                <el-input
-                  v-else-if="column.edit.type == 'textarea'"
-                  type="textarea"
-                  :placeholder="column.placeholder || column.title"
-                  v-model="scope.row[column.field]"
-                  :disabled="initColumnDisabled(scope.row, column)"
-                >
+                <el-input v-else-if="column.edit.type == 'textarea'" type="textarea"
+                  :placeholder="column.placeholder || column.title" v-model="scope.row[column.field]"
+                  :disabled="initColumnDisabled(scope.row, column)">
                 </el-input>
-                <input
-                  class="table-input"
-                  v-else-if="!column.summary && !column.onKeyPress"
-                  v-model.lazy="scope.row[column.field]"
-                  :placeholder="column.placeholder || column.title"
-                  :disabled="initColumnDisabled(scope.row, column)"
-                />
-                <el-input
-                  v-else
-                  @change="inputKeyPress(scope.row, column, $event)"
+                <input class="table-input" v-else-if="!column.summary && !column.onKeyPress"
+                  v-model.lazy="scope.row[column.field]" :placeholder="column.placeholder || column.title"
+                  :disabled="initColumnDisabled(scope.row, column)" />
+                <el-input v-else @change="inputKeyPress(scope.row, column, $event)"
                   @input="inputKeyPress(scope.row, column, $event)"
-                  @keyup.enter="inputKeyPress(scope.row, column, $event)"
-                  size="default"
-                  v-model="scope.row[column.field]"
+                  @keyup.enter="inputKeyPress(scope.row, column, $event)" size="default" v-model="scope.row[column.field]"
                   :placeholder="column.placeholder || column.title"
-                  :disabled="initColumnDisabled(scope.row, column)"
-                ></el-input>
+                  :disabled="initColumnDisabled(scope.row, column)"></el-input>
               </div>
               <div class="extra" v-if="column.extra && edit.rowIndex == scope.$index">
-                <a
-                  :style="column.extra.style"
-                  style="text-decoration: none"
-                  @click="extraClick(scope.row, column)"
-                >
+                <a :style="column.extra.style" style="text-decoration: none" @click="extraClick(scope.row, column)">
                   <i v-if="column.extra.icon" :class="[column.extra.icon]" />
                   {{ column.extra.text }}
                 </a>
@@ -353,67 +184,39 @@
           </div>
           <!--娌℃湁缂栬緫鍔熻兘鐨勭洿鎺ユ覆鏌撴爣绛�-->
           <template v-else>
-            <a
-              href="javascript:void(0)"
-              style="text-decoration: none; line-height: 1.3"
-              @click="link(scope.row, column, $event)"
-              v-if="column.link"
-              v-text="scope.row[column.field]"
-            ></a>
-            <img
-              v-else-if="column.type == 'img'"
-              v-for="(file, imgIndex) in getFilePath(scope.row[column.field], column)"
-              :key="imgIndex"
-              @error="handleImageError"
-              @click="viewImg(scope.row, column, file.path, $event, imgIndex)"
-              class="table-img"
-              :src="file.path"
-            />
-            <a
-              style="margin-right: 8px"
-              v-else-if="column.type == 'file' || column.type == 'excel'"
-              class="t-file"
-              v-for="(file, fIndex) in getFilePath(scope.row[column.field], column)"
-              :key="fIndex"
-              @click="dowloadFile(file)"
-              >{{ file.name }}</a
-            >
+            <a href="javascript:void(0)" style="text-decoration: none; line-height: 1.3"
+              @click="link(scope.row, column, $event)" v-if="column.link" v-text="scope.row[column.field]"></a>
+            <img v-else-if="column.type == 'img'" v-for="(file, imgIndex) in getFilePath(scope.row[column.field], column)"
+              :key="imgIndex" @error="handleImageError" @click="viewImg(scope.row, column, file.path, $event, imgIndex)"
+              class="table-img" :src="file.path" />
+            <a style="margin-right: 8px" v-else-if="column.type == 'file' || column.type == 'excel'" class="t-file"
+              v-for="(file, fIndex) in getFilePath(scope.row[column.field], column)" :key="fIndex"
+              @click="dowloadFile(file)">{{ file.name }}</a>
             <span v-else-if="column.type == 'date'">{{ formatterDate(scope.row, column) }}</span>
-            <div
-              v-else-if="column.formatter"
-              @click="formatterClick(scope.row, column, $event)"
-              v-html="column.formatter(scope.row, column)"
-            ></div>
+            <div v-else-if="column.type == 'jsx'" @click="formatterClick(scope.row, column, $event)">
+              <el-button v-for="item in column.formatter(scope.row, column) " :key="item" :type="item.type">{{
+                item.name
+              }}</el-button>
+            </div>
+            <div v-else-if="column.formatter" @click="formatterClick(scope.row, column, $event)"
+              v-html="column.formatter(scope.row, column)"></div>
+
             <!-- 2021.11.18淇table鏁版嵁婧愯缃负normal鍚庣偣鍑昏$event缂哄け鐨勯棶棰� -->
-            <div
-              v-else-if="column.bind && (column.normal || column.edit)"
+            <div v-else-if="column.bind && (column.normal || column.edit)"
               @click="formatterClick(scope.row, column, $event)"
-              :style="column.getStyle && column.getStyle(scope.row, column)"
-            >
+              :style="column.getStyle && column.getStyle(scope.row, column)">
               {{ formatter(scope.row, column, true) }}
             </div>
-            <div
-              v-else-if="column.click && !column.bind"
-              @click="formatterClick(scope.row, column)"
-            >
+            <div v-else-if="column.click && !column.bind" @click="formatterClick(scope.row, column)">
               {{ scope.row[column.field] }}
             </div>
-            <div
-              @click="
-                () => {
-                  column.click && formatterClick(scope.row, column)
-                }
-              "
-              v-else-if="column.bind"
-            >
-              <el-tag
-                v-if="useTag"
-                class="cell-tag"
-                :class="[isEmptyTag(scope.row, column)]"
-                :type="getColor(scope.row, column)"
-                :effect="column.effect"
-                >{{ formatter(scope.row, column, true) }}</el-tag
-              >
+            <div @click="() => {
+              column.click && formatterClick(scope.row, column)
+            }
+              " v-else-if="column.bind">
+              <el-tag v-if="useTag" class="cell-tag" :class="[isEmptyTag(scope.row, column)]"
+                :type="getColor(scope.row, column)" :effect="column.effect">{{ formatter(scope.row, column, true)
+                }}</el-tag>
               <template v-else>{{ formatter(scope.row, column, true) }}</template>
             </div>
 
@@ -425,16 +228,9 @@
     <template v-if="!paginationHide">
       <div class="block pagination" key="pagination-01" style="display: flex">
         <div style="flex: 1"></div>
-        <el-pagination
-          key="pagination-02"
-          @size-change="handleSizeChange"
-          @current-change="handleCurrentChange"
-          :current-page="paginations.page"
-          :page-sizes="paginations.sizes"
-          :page-size="paginations.size"
-          layout="total, sizes, prev, pager, next, jumper"
-          :total="paginations.total"
-        ></el-pagination>
+        <el-pagination key="pagination-02" @size-change="handleSizeChange" @current-change="handleCurrentChange"
+          :current-page="paginations.page" :page-sizes="paginations.sizes" :page-size="paginations.size"
+          layout="total, sizes, prev, pager, next, jumper" :total="paginations.total"></el-pagination>
       </div>
     </template>
   </div>
@@ -442,20 +238,11 @@
   <VolBox v-model="uploadModel" title="涓婁紶" :height="228" :width="500" :padding="15" lazy>
     <!-- 涓婁紶鍥剧墖銆乪xcel鎴栧叾浠栨枃浠躲�佹枃浠舵暟閲忋�佸ぇ灏忛檺鍒堕兘鍙互锛屽弬鐓olupload缁勪欢api -->
     <div style="height: 200px; display: flex; align-items: center">
-      <VolUpload
-        style="text-align: center"
-        :autoUpload="currentColumn.edit.autoUpload"
-        :multiple="currentColumn.edit.multiple"
-        :url="uploadUrl"
-        :max-file="currentColumn.edit.maxFile"
-        :img="currentColumn.edit.type == 'img'"
-        :excel="currentColumn.edit.type == 'excel'"
-        :fileTypes="currentColumn.edit.fileTypes ? currentColumn.edit.fileTypes : []"
-        :fileInfo="fileInfo"
-        :upload-after="uploadAfter"
-        :upload-before="uploadBefore"
-        :append="currentColumn.edit.accept"
-      >
+      <VolUpload style="text-align: center" :autoUpload="currentColumn.edit.autoUpload"
+        :multiple="currentColumn.edit.multiple" :url="uploadUrl" :max-file="currentColumn.edit.maxFile"
+        :img="currentColumn.edit.type == 'img'" :excel="currentColumn.edit.type == 'excel'"
+        :fileTypes="currentColumn.edit.fileTypes ? currentColumn.edit.fileTypes : []" :fileInfo="fileInfo"
+        :upload-after="uploadAfter" :upload-before="uploadBefore" :append="currentColumn.edit.accept">
         <div>{{ currentColumn.message }}</div>
       </VolUpload>
     </div>
@@ -635,7 +422,7 @@
     },
     spanMethod: {
       type: Function,
-      default: ({ row, column, rowIndex, columnIndex }) => {}
+      default: ({ row, column, rowIndex, columnIndex }) => { }
     },
     lazy: {
       //鏍戝舰琛ㄦ牸鏄惁榛樿寤惰繜鍔犺浇
@@ -1072,7 +859,7 @@
       // }
       return
     },
-    toggleEdit(event) {},
+    toggleEdit(event) { },
     setEditStatus(status) {
       // this.columns.forEach((x) => {
       //   if (x.hasOwnProperty("edit")) {
@@ -1483,7 +1270,7 @@
         }
       }
     },
-    getInputChangeSummaries() {},
+    getInputChangeSummaries() { },
     handleSizeChange(val) {
       this.paginations.size = val
       this.paginations.rows = val
@@ -1601,7 +1388,7 @@
       // 缂栬緫澶氶�塼able鏄剧ず
       let valArr = (val + '').split(',')
       for (let index = 0; index < valArr.length; index++) {
-        ;(column.bind.orginData && column.bind.orginData.length
+        ; (column.bind.orginData && column.bind.orginData.length
           ? column.bind.orginData
           : column.bind.data
         ).forEach((x) => {
@@ -1627,13 +1414,13 @@
       // column鍒楄缃簡summary灞炴�х殑鎵嶈绠楀��
       if (!column.summary) return
       let sum = 0
-      //  let _index = 0;
-      ;(this.url ? this.rowData : this.tableData).forEach((x, index) => {
-        if (x.hasOwnProperty(column.field) && !isNaN(x[column.field])) {
-          // _index = index;
-          sum += x[column.field] * 1
-        }
-      })
+        //  let _index = 0;
+        ; (this.url ? this.rowData : this.tableData).forEach((x, index) => {
+          if (x.hasOwnProperty(column.field) && !isNaN(x[column.field])) {
+            // _index = index;
+            sum += x[column.field] * 1
+          }
+        })
       if (sum) {
         if (column.summary == 'avg') {
           sum = sum / (this.rowData.length || this.tableData.length || 1)
@@ -1816,7 +1603,7 @@
 .e-item {
   display: flex;
 
-  > div:first-child {
+  >div:first-child {
     flex: 1;
   }
 }
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSClient/src/extension/widesea_wms/stock/Dt_BillGroupStock.jsx" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSClient/src/extension/widesea_wms/stock/Dt_BillGroupStock.jsx"
index df43713..6a2415c 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSClient/src/extension/widesea_wms/stock/Dt_BillGroupStock.jsx"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSClient/src/extension/widesea_wms/stock/Dt_BillGroupStock.jsx"
@@ -9,12 +9,12 @@
 
 // import gridHeader from "./demo_Product/Dt_BillGroupStockDetail.vue";
 // import gridHeader from './extend/printView.vue'
-// import gridBody from './extend/OtherOutBound.vue'
+import gridBody from './extend/Remark.vue'
 let extension = {
   components: {
     //鏌ヨ鐣岄潰鎵╁睍缁勪欢
     gridHeader: '',
-    gridBody: '',
+    gridBody: gridBody,
     gridFooter: '',
     //鏂板缓銆佺紪杈戝脊鍑烘鎵╁睍缁勪欢
     modelHeader: '',
@@ -55,19 +55,27 @@
         type: 'primary',
         plain: true,
         onClick: function () {
-          this.$confirm('鏄惁鍏朵粬鍑哄簱', "璀﹀憡浣犳鍦ㄤ娇鐢ㄥ叾浠栧嚭搴�", {
+          this.$confirm('鏄惁鍏朵粬鍑哄簱', '璀﹀憡', {
             confirmButtonText: '纭畾',
             cancelButtonText: '鍙栨秷',
             type: 'warning',
             center: true
           }).then(() => {
-            this.http.post(`/api/Task/OtherOutBoundTaskAsync`, this.$refs.detail.rowData, "姝e湪瀹屾垚浠诲姟").then((res) => {
-              if (res.status) {
-                this.$Message.success(res.message)
-              } else {
-                this.$Message.error(res.message) //閿欒鎻愮ず
-              }
-            })
+            this.http
+              .post(
+                `/api/Task/OtherOutBoundTaskAsync`,
+                this.$refs.detail.rowData,
+                '姝e湪鐢熸垚鍑哄簱浠诲姟'
+              )
+              .then((res) => {
+                if (res.status) {
+                  this.$Message.success(res.message)
+                  this.boxModel = false
+                  this.refresh()
+                } else {
+                  this.$Message.error(res.message) //閿欒鎻愮ず
+                }
+              })
           })
         }
       })
@@ -78,19 +86,27 @@
         type: 'danger',
         plain: true,
         onClick: function () {
-          this.$confirm('鏄惁璋冩嫧鍑哄簱', "璀﹀憡浣犳鍦ㄤ娇鐢ㄨ皟鎷ㄥ嚭搴�", {
+          this.$confirm('鏄惁璋冩嫧鍑哄簱', '璀﹀憡', {
             confirmButtonText: '纭畾',
             cancelButtonText: '鍙栨秷',
             type: 'warning',
             center: true
           }).then(() => {
-            this.http.post(`/api/Task/HandAllocateOutBoundTaskAsync`, this.$refs.detail.rowData, "姝e湪瀹屾垚浠诲姟").then((res) => {
-              if (res.status) {
-                this.$Message.success(res.message)
-              } else {
-                this.$Message.error(res.message) //閿欒鎻愮ず
-              }
-            })
+            this.http
+              .post(
+                `/api/Task/HandAllocateOutBoundTaskAsync`,
+                this.$refs.detail.rowData,
+                '姝e湪鐢熸垚鍑哄簱浠诲姟'
+              )
+              .then((res) => {
+                if (res.status) {
+                  this.$Message.success(res.message)
+                  this.boxModel = false
+                  this.refresh()
+                } else {
+                  this.$Message.error(res.message) //閿欒鎻愮ず
+                }
+              })
           })
         }
       })
@@ -116,30 +132,78 @@
       //     })
       //   }
       // });
+      // this.columns.push({
+      //   field: '鎿嶄綔',
+      //   title: '鎿嶄綔',
+      //   width: 90,
+      //   fixed: 'right',
+      //   align: 'center',
+      //   type:'jsx',
+      //   formatter: (row) => {
+      //     //return '<i style="cursor: pointer;color: #2d8cf0;"class="el-icon-view">鐩樼偣鍑哄簱</i>'
+      //     return [{
+      //       name:"btn1",
+      //       type:"primary"
+      //     },{
+      //       name:"btn1",
+      //       type:"success"
+      //     }]
+      //   },
+      //   click: (row,formatter) => {
+      //     console.log(formatter);
+      //     this.http
+      //       .post(`/api/Task/OutBoundTaskAsync?palletCode=${row.palletCode}`, {}, '姝e湪鐢熸垚浠诲姟')
+      //       .then((res) => {
+      //         //绀轰緥锛氳皟鐢ㄥ悗鍙版帴鍙�
+      //         if (res.status) {
+      //           this.$Message.success(row.palletCode + '鍑哄簱鎴愬姛')
+      //           this.refresh()
+      //         } else {
+      //           this.$Message.error(res.message) //閿欒鎻愮ず
+      //           this.refresh()
+      //         }
+      //       })
+      //   }
+      // })
       this.columns.push({
-        field: '鎿嶄綔',
         title: '鎿嶄綔',
-        width: 90,
-        fixed: 'right',
-        align: 'center',
-        formatter: (row) => {
+        field: '鎿嶄綔',
+        width: 250,
+        align: 'center', // 'center',
+        render: (h, { row, column, index }) => {
           return (
-            '<i style="cursor: pointer;color: #2d8cf0;"class="el-icon-view">鐩樼偣鍑哄簱</i>'
-          );
-        },
-        click: (row) => {
-          this.http.post(`/api/Task/OutBoundTaskAsync?palletCode=${row.palletCode}`, {}, "姝e湪鐢熸垚浠诲姟").then((res) => {
-            //绀轰緥锛氳皟鐢ㄥ悗鍙版帴鍙�
-            if (res.status) {
-              this.$Message.success(row.palletCode + "鍑哄簱鎴愬姛");
-              this.refresh();
-            } else {
-              this.$Message.error(res.message) //閿欒鎻愮ず
-              this.refresh();
-            }
-          })
+            <div>
+              <el-button onClick={($e) => { }} type="primary">
+                鍏朵粬鍑哄簱
+              </el-button>
+
+              <el-button onClick={($e) => {
+
+               }} type="success" >
+                璋冩嫧鍑哄簱
+              </el-button>
+
+              <el-button onClick={($e) => {
+                    // this.http
+                    //   .post(`/api/Task/OutBoundTaskAsync?palletCode=${row.palletCode}`, {}, '姝e湪鐢熸垚浠诲姟')
+                    //   .then((res) => {
+                    //     //绀轰緥锛氳皟鐢ㄥ悗鍙版帴鍙�
+                    //     if (res.status) {
+                    //       this.$Message.success(row.palletCode + '鍑哄簱鎴愬姛')
+                    //       this.refresh()
+                    //     } else {
+                    //       this.$Message.error(res.message) //閿欒鎻愮ず
+                    //       this.refresh()
+                    //     }
+                    //   })
+                    this.$refs.gridBody.open(row.palletCode);
+                }} type="warning">
+                鐩樼偣鍑哄簱
+              </el-button>
+            </div>
+          )
         }
-      });
+      })
       // this.columns.push({
       //   title: "鎿嶄綔",
       //   field: "鎿嶄綔",
@@ -159,7 +223,7 @@
       //           style="height:26px; padding: 10px !important;"
       //         >
       //           鎵撳嵃
-      //         </el-button> 
+      //         </el-button>
       //       </div>
       //     );
       //   },
@@ -169,57 +233,51 @@
       this.boxOptions.labelWidth = 150
       this.buttons.forEach((btn) => {
         if (btn.name == '缂栬緫') {
-          btn.hidden = true;
+          btn.hidden = true
         }
-      });
+      })
 
       this.columns.forEach((column) => {
-
         if (column.field == 'floor') {
-
           const floorMap = {
             '1F': '涓�妤�',
-            '2F': '浜屾ゼ',
-          };
+            '2F': '浜屾ゼ'
+          }
           column.formatter = (row) => {
             return floorMap[row?.locationInfo?.floor] || ''
           }
         }
         if (column.field == 'areaId') {
-
           const floorMap = {
-            '1': '涓�妤煎爢鍨涙満鍖哄煙',
-            '2': '涓�妤糀GV鍑哄簱缂撳瓨鍖�',
-            '3': '涓�妤糀GV绔嬪簱缂撳瓨鍖�',
-            '4': '涓�妤糀GV鍏ュ簱缂撳瓨鍖�',
-            '5': '浜屾ゼB4-G4缂撳瓨鍖�',
-            '6': '浜屾ゼB5-G5缂撳瓨鍖�',
-          };
+            1: '涓�妤煎爢鍨涙満鍖哄煙',
+            2: '涓�妤糀GV鍑哄簱缂撳瓨鍖�',
+            3: '涓�妤糀GV绔嬪簱缂撳瓨鍖�',
+            4: '涓�妤糀GV鍏ュ簱缂撳瓨鍖�',
+            5: '浜屾ゼB4-G4缂撳瓨鍖�',
+            6: '浜屾ゼB5-G5缂撳瓨鍖�'
+          }
           column.formatter = (row) => {
             return floorMap[row?.locationInfo?.areaId] || ''
           }
         }
         if (column.field == 'locationStatus') {
           const statusMap = {
-            '0': '绌洪棽',
-            '1': '閿佸畾',
-            '2': '鏈夎揣',
-            '3': '鏈夎揣绂佺敤',
-            '4': '鏃犺揣绂佺敤'
-          };
+            0: '绌洪棽',
+            1: '閿佸畾',
+            2: '鏈夎揣',
+            3: '鏈夎揣绂佺敤',
+            4: '鏃犺揣绂佺敤'
+          }
           column.formatter = (row) => {
-            return statusMap[row?.locationInfo?.locationStatus] || '';
+            return statusMap[row?.locationInfo?.locationStatus] || ''
           }
         }
-
       })
     },
     onInited() {
       //妗嗘灦鍒濆鍖栭厤缃悗
       //濡傛灉瑕侀厤缃槑缁嗚〃,鍦ㄦ鏂规硶鎿嶄綔
-      this.detailOptions.columns.forEach(column => {
-
-      });
+      this.detailOptions.columns.forEach((column) => {})
     },
     searchBefore(param) {
       //鐣岄潰鏌ヨ鍓�,鍙互缁檖aram.wheres娣诲姞鏌ヨ鍙傛暟
@@ -242,38 +300,38 @@
       //this.$refs.table.$refs.table.toggleRowSelection(row) //鍗曞嚮琛屾椂閫変腑褰撳墠琛�;
     },
     modelOpenAfter(row) {
-      const isAdd = this.currentAction == 'Add';//鍒ゆ柇鏄惁涓烘柊寤烘搷浣�
+      const isAdd = this.currentAction == 'Add' //鍒ゆ柇鏄惁涓烘柊寤烘搷浣�
       //闅愯棌鏄庣粏琛ㄦ寜閽�
       this.detailOptions.buttons.forEach((btn) => {
         if (btn.name == '娣诲姞琛�') {
-          btn.hidden = true;
+          btn.hidden = true
           //鎴栬�呰缃彧璇�
           //btn.readonly=true;
         }
-      });
-      const isDel = this.currentAction == 'Add';//鍒ゆ柇鏄惁涓烘柊寤烘搷浣�
+      })
+      const isDel = this.currentAction == 'Add' //鍒ゆ柇鏄惁涓烘柊寤烘搷浣�
       //闅愯棌鏄庣粏琛ㄦ寜閽�
       this.detailOptions.buttons.forEach((btn) => {
         if (btn.name == '鍒犻櫎琛�') {
-          btn.hidden = true;
+          btn.hidden = true
           //鎴栬�呰缃彧璇�
           //btn.readonly=true;
         }
-      });
+      })
       this.detailOptions.buttons.forEach((btn) => {
         if (btn.name == '瀵煎叆') {
-          btn.hidden = true;
+          btn.hidden = true
           //鎴栬�呰缃彧璇�
           //btn.readonly=true;
         }
-      });
+      })
       this.detailOptions.buttons.forEach((btn) => {
         if (btn.name == '瀵煎嚭') {
-          btn.hidden = true;
+          btn.hidden = true
           //鎴栬�呰缃彧璇�
           //btn.readonly=true;
         }
-      });
+      })
       //鐐瑰嚮缂栬緫銆佹柊寤烘寜閽脊鍑烘鍚庯紝鍙互鍦ㄦ澶勫啓閫昏緫锛屽锛屼粠鍚庡彴鑾峰彇鏁版嵁
       //(1)鍒ゆ柇鏄紪杈戣繕鏄柊寤烘搷浣滐細 this.currentAction=='Add';
       //(2)缁欏脊鍑烘璁剧疆榛樿鍊�
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSClient/src/extension/widesea_wms/stock/extend/Remark.vue" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSClient/src/extension/widesea_wms/stock/extend/Remark.vue"
new file mode 100644
index 0000000..244aa4a
--- /dev/null
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSClient/src/extension/widesea_wms/stock/extend/Remark.vue"
@@ -0,0 +1,69 @@
+<template>
+  <vol-box v-model="show" title="鐩樼偣鍑哄簱" :width="800" :height="600">
+    <template #content>
+      <el-form ref="form" :model="form" label-width="90px">
+        <el-form-item label="澶囨敞">
+          <el-input type="text" v-model="this.form.remark"></el-input>
+        </el-form-item>
+      </el-form>
+    </template>
+    <template #footer>
+      <div>
+        <el-button type="danger" size="small" plain @click="submit">
+          <i class="el-icon-check">纭</i>
+        </el-button>
+        <el-button size="small" type="primary" plain @click="() => { this.show = false }">
+          <i class="el-icon-close">鍏抽棴</i>
+        </el-button>
+      </div>
+    </template>
+  </vol-box>
+</template>
+
+<script>
+import VolBox from '@/components/basic/VolBox.vue'
+export default {
+  components: {
+    'vol-box': VolBox
+  },
+  data() {
+    return {
+      form: {
+        remark: ''
+      },
+      palletCode: '',
+      show: false
+    }
+  },
+  methods: {
+    open(palletCode) {
+      this.show = true
+      this.palletCode = palletCode
+    },
+    submit() {
+      this.$emit('parentCall', ($vue) => {
+        console.log(this.form.remark, this.palletCode)
+        if (
+          !this.form.remark ||
+          !this.palletCode ||
+          this.form.remark == '' ||
+          this.palletCode == ''
+        ) {
+          this.$message.error('鍙傛暟閿欒')
+          return
+        }
+        this.http.post(`/api/Task/OutBoundTaskAsync?palletCode=${this.palletCode}&remark=${this.form.remark}`, {}, '姝e湪鐢熸垚浠诲姟')
+          .then((x) => {
+            if (!x.status) {
+              this.$message.error(x.message)
+            } else {
+              this.$Message.success(row.palletCode + '鍑哄簱鎴愬姛')
+              this.show = false
+              $vue.refresh()
+            }
+          })
+      })
+    }
+  }
+}
+</script>
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSClient/src/extension/widesea_wms/stock/extend/SupplementationData.vue" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSClient/src/extension/widesea_wms/stock/extend/SupplementationData.vue"
deleted file mode 100644
index 36021ba..0000000
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSClient/src/extension/widesea_wms/stock/extend/SupplementationData.vue"
+++ /dev/null
@@ -1,104 +0,0 @@
-<template>
-  <vol-box v-model="show" title="琛ュ綍鏁版嵁" :width="800" :height="600">
-    <template #content>
-      <el-form ref="form" :model="form" label-width="90px">
-        <el-form-item label="鎵樼洏鍙�">
-          <el-input type="text" v-model="this.form.palletCode" readonly></el-input>
-        </el-form-item>
-        <el-form-item label="鍑哄簱OR鍏ュ簱" prop="OutIn">
-          <el-select v-model="OutIn" placeholder="璇烽�夋嫨鍑哄簱Or鍏ュ簱">
-            <el-option label="鍑哄簱" value="Out" />
-            <el-option label="鍏ュ簱" value="In" />
-          </el-select>
-        </el-form-item>
-        <el-form-item label="鍖哄煙" prop="areaID">
-          <el-select v-model="form.areaID" placeholder="璇烽�夋嫨鍖哄煙">
-            <el-option label="闄堝寲" value="1" />
-            <el-option label="闈欑疆" value="2" />
-            <el-option label="鍒嗗" value="3" />
-            <el-option label="楂樻俯" value="4" />
-            <el-option label="甯告俯1" value="5" />
-            <el-option label="甯告俯2" value="6" />
-            <el-option label="甯告俯3" value="7" />
-          </el-select>
-        </el-form-item>
-      </el-form>
-    </template>
-    <template #footer>
-      <div>
-        <el-button type="danger" size="small" plain @click="submit">
-          <i class="el-icon-check">纭</i>
-        </el-button>
-        <el-button size="small" type="primary" plain @click="() => {
-            this.show = false;
-          }
-          ">
-          <i class="el-icon-close">鍏抽棴</i>
-        </el-button>
-      </div>
-    </template>
-  </vol-box>
-</template>
-
-<script>
-import VolBox from "@/components/basic/VolBox.vue";
-export default {
-  components: {
-    "vol-box": VolBox,
-  },
-  data() {
-    return {
-      OutIn:"",
-      form:{
-        areaID:"",
-        palletCode:""
-      },
-      show: false,
-    };
-  },
-  methods: {
-    open(palletCode) {
-      this.show = true;
-      this.form.palletCode=palletCode;
-    },
-    submit() {
-      this.$emit("parentCall", ($vue) => {
-        if (
-          !this.OutIn ||
-          !this.form.areaID ||
-          !this.form.palletCode||
-          this.OutIn==""||
-          this.form.areaID==""||
-          this.form.palletCode==""
-        ) {
-          this.$message.error("鍙傛暟閿欒");
-          return;
-        }
-        if(this.OutIn=="Out"){
-          this.http.post("api/ProcessApply/StockOutDataBack", this.form, "").then((x) => {
-          if (!x.status) {
-            this.$message.error(x.message);
-          } else {
-            this.$Message.success("鎴愬姛");
-            this.show = false;
-            $vue.refresh();
-          }
-        });
-        }else if(this.OutIn=="In"){
-          this.http.post("api/ProcessApply/StockInDataBack", this.form, "").then((x) => {
-          if (!x.status) {
-            this.$message.error(x.message);
-          } else {
-            this.$Message.success("鎴愬姛");
-            this.show = false;
-            $vue.refresh();
-          }
-        });
-        }
-        
-      });
-    },
-  },
-
-};
-</script>
\ No newline at end of file
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSClient/src/views/widesea_wms/stock/Dt_BillGroupStock.vue" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSClient/src/views/widesea_wms/stock/Dt_BillGroupStock.vue"
index 61b7749..08e82ba 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSClient/src/views/widesea_wms/stock/Dt_BillGroupStock.vue"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSClient/src/views/widesea_wms/stock/Dt_BillGroupStock.vue"
@@ -25,9 +25,9 @@
             sortName: "createDate"
         });
         const editFormFields = ref({
-            palletCode:"",
-            locationCode:"",
-            stockStatus:"",
+            palletCode: "",
+            locationCode: "",
+            stockStatus: "",
         });
         const editFormOptions = ref([
 
@@ -41,7 +41,7 @@
             ], [
                 { "title": "搴撲綅鍙�", "field": "locationCode", type: "text" },
                 { "title": "璐т綅鐘舵��", "field": "locationStatus", type: "select", dataKey: "LocationState", data: [] },
-                { "title": "鍖哄煙", "field": "areaId", type: "select", dataKey: "AreaType", data: []},
+                { "title": "鍖哄煙", "field": "areaId", type: "select", dataKey: "AreaType", data: [] },
             ]
             , [
                 { "title": "鐗╂枡缂栫爜", "field": "materielCode", type: "text" },
@@ -58,7 +58,7 @@
             { field: 'remark', title: '澶囨敞', type: 'string', width: 60, align: 'left', },
             { field: 'creater', title: '鍒涘缓浜�', type: 'string', sort: true, width: 110, align: 'left', hidden: true },
             { field: 'createDate', title: '鍒涘缓鏃堕棿', type: 'datetime', sort: true, width: 150, align: 'left', },
-            { field: 'modifier', title: '鏈�鍚庝慨鏀逛汉', type: 'string', sort: true, width: 100,  align: 'left' },
+            { field: 'modifier', title: '鏈�鍚庝慨鏀逛汉', type: 'string', sort: true, width: 100, align: 'left' },
             ]
         );
         const detail = ref({
@@ -128,14 +128,21 @@
                     required: true,
                 },
                 {
-                    field: "remark",
+                    field: "allocateWarehouse",
                     title: "璋冩嫧浠撳簱",
                     type: "string",
-                    width: 100,
+                    width: 150,
                     align: "left",
                     edit: { type: "select" },
                     required: true,
-                    bind: { key: "AreaType", data: [] }
+                    bind: { key: "WareAreaType", data: [] }
+                },
+                {
+                    field: "remark",
+                    title: "澶囨敞",
+                    type: "string",
+                    width: 100,
+                    align: "left",
                 },
                 {
                     field: "unit",
@@ -178,7 +185,7 @@
                     type: "string",
                     width: 120,
                     align: "left",
-                    hidden:true,
+                    hidden: true,
                 },
                 {
                     field: "creater",
@@ -200,7 +207,7 @@
                     type: "string",
                     width: 100,
                     align: "left",
-                    hidden:true,
+                    hidden: true,
                 },
                 {
                     field: "modifyDate",
@@ -208,7 +215,7 @@
                     type: "datetime",
                     width: 160,
                     align: "left",
-                    hidden:true,
+                    hidden: true,
                 }
             ],
             sortName: "id",
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/CopilotIndices/17.14.1231.31060/CodeChunks.db" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/CopilotIndices/17.14.1231.31060/CodeChunks.db"
index 75780d9..f25a2de 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/CopilotIndices/17.14.1231.31060/CodeChunks.db"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/CopilotIndices/17.14.1231.31060/CodeChunks.db"
Binary files differ
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/CopilotIndices/17.14.1231.31060/CodeChunks.db-shm" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/CopilotIndices/17.14.1231.31060/CodeChunks.db-shm"
index 1dfa32b..cb30fc6 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/CopilotIndices/17.14.1231.31060/CodeChunks.db-shm"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/CopilotIndices/17.14.1231.31060/CodeChunks.db-shm"
Binary files differ
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/CopilotIndices/17.14.1231.31060/CodeChunks.db-wal" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/CopilotIndices/17.14.1231.31060/CodeChunks.db-wal"
index b184081..b1f35bd 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/CopilotIndices/17.14.1231.31060/CodeChunks.db-wal"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/CopilotIndices/17.14.1231.31060/CodeChunks.db-wal"
Binary files differ
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/CopilotIndices/17.14.1231.31060/SemanticSymbols.db" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/CopilotIndices/17.14.1231.31060/SemanticSymbols.db"
index c9de240..a77e596 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/CopilotIndices/17.14.1231.31060/SemanticSymbols.db"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/CopilotIndices/17.14.1231.31060/SemanticSymbols.db"
Binary files differ
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/CopilotIndices/17.14.1231.31060/SemanticSymbols.db-shm" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/CopilotIndices/17.14.1231.31060/SemanticSymbols.db-shm"
index f15a5ee..6fa3a20 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/CopilotIndices/17.14.1231.31060/SemanticSymbols.db-shm"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/CopilotIndices/17.14.1231.31060/SemanticSymbols.db-shm"
Binary files differ
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/CopilotIndices/17.14.1231.31060/SemanticSymbols.db-wal" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/CopilotIndices/17.14.1231.31060/SemanticSymbols.db-wal"
index af2ef84..1ce660a 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/CopilotIndices/17.14.1231.31060/SemanticSymbols.db-wal"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/CopilotIndices/17.14.1231.31060/SemanticSymbols.db-wal"
Binary files differ
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/v17/DocumentLayout.backup.json" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/v17/DocumentLayout.backup.json"
index 0449dc7..f3cc134 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/v17/DocumentLayout.backup.json"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/v17/DocumentLayout.backup.json"
@@ -3,40 +3,32 @@
   "WorkspaceRootPath": "E:\\GET\\DuiDuoJiLiKu\\\u9879\u76EE\u4EE3\u7801\\WMS\\WIDESEA_WMSServer\\",
   "Documents": [
     {
-      "AbsoluteMoniker": "D:0:0:{20D16B32-8186-420C-B3B7-58B183FC09CF}|WIDESEA_OrderServices\\WIDESEA_OrderServices.csproj|e:\\get\\duiduojiliku\\\u9879\u76EE\u4EE3\u7801\\wms\\widesea_wmsserver\\widesea_orderservices\\dt_allocateoutboundorderdetailservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
-      "RelativeMoniker": "D:0:0:{20D16B32-8186-420C-B3B7-58B183FC09CF}|WIDESEA_OrderServices\\WIDESEA_OrderServices.csproj|solutionrelative:widesea_orderservices\\dt_allocateoutboundorderdetailservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
-    },
-    {
-      "AbsoluteMoniker": "D:0:0:{20D16B32-8186-420C-B3B7-58B183FC09CF}|WIDESEA_OrderServices\\WIDESEA_OrderServices.csproj|e:\\get\\duiduojiliku\\\u9879\u76EE\u4EE3\u7801\\wms\\widesea_wmsserver\\widesea_orderservices\\dt_productionoutboundorderdetailservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
-      "RelativeMoniker": "D:0:0:{20D16B32-8186-420C-B3B7-58B183FC09CF}|WIDESEA_OrderServices\\WIDESEA_OrderServices.csproj|solutionrelative:widesea_orderservices\\dt_productionoutboundorderdetailservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
-    },
-    {
-      "AbsoluteMoniker": "D:0:0:{20D16B32-8186-420C-B3B7-58B183FC09CF}|WIDESEA_OrderServices\\WIDESEA_OrderServices.csproj|e:\\get\\duiduojiliku\\\u9879\u76EE\u4EE3\u7801\\wms\\widesea_wmsserver\\widesea_orderservices\\dt_allocateoutboundorderservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
-      "RelativeMoniker": "D:0:0:{20D16B32-8186-420C-B3B7-58B183FC09CF}|WIDESEA_OrderServices\\WIDESEA_OrderServices.csproj|solutionrelative:widesea_orderservices\\dt_allocateoutboundorderservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
-    },
-    {
       "AbsoluteMoniker": "D:0:0:{9912BD12-4CF7-4A91-8203-47C9C125004C}|WIDESEA_StorageTaskServices\\WIDESEA_StorageTaskServices.csproj|e:\\get\\duiduojiliku\\\u9879\u76EE\u4EE3\u7801\\wms\\widesea_wmsserver\\widesea_storagetaskservices\\task\\dt_taskservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
       "RelativeMoniker": "D:0:0:{9912BD12-4CF7-4A91-8203-47C9C125004C}|WIDESEA_StorageTaskServices\\WIDESEA_StorageTaskServices.csproj|solutionrelative:widesea_storagetaskservices\\task\\dt_taskservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
-    },
-    {
-      "AbsoluteMoniker": "D:0:0:{4BDE58B2-5B2E-480B-932F-D63C2A7D557C}|WIDESEA_StorageBasicServices\\WIDESEA_StorageBasicServices.csproj|e:\\get\\duiduojiliku\\\u9879\u76EE\u4EE3\u7801\\wms\\widesea_wmsserver\\widesea_storagebasicservices\\boxing\\boxinginfoservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
-      "RelativeMoniker": "D:0:0:{4BDE58B2-5B2E-480B-932F-D63C2A7D557C}|WIDESEA_StorageBasicServices\\WIDESEA_StorageBasicServices.csproj|solutionrelative:widesea_storagebasicservices\\boxing\\boxinginfoservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
-    },
-    {
-      "AbsoluteMoniker": "D:0:0:{929DF936-042C-4EEC-8722-A831FC2F0AEA}|WIDESEA_DTO\\WIDESEA_DTO.csproj|e:\\get\\duiduojiliku\\\u9879\u76EE\u4EE3\u7801\\wms\\widesea_wmsserver\\widesea_dto\\basic\\taskdata.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
-      "RelativeMoniker": "D:0:0:{929DF936-042C-4EEC-8722-A831FC2F0AEA}|WIDESEA_DTO\\WIDESEA_DTO.csproj|solutionrelative:widesea_dto\\basic\\taskdata.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
-    },
-    {
-      "AbsoluteMoniker": "D:0:0:{986CA639-B3B4-4D4F-B12B-3D8FBA48B2B1}|WIDESEA_IStorageTaskService\\WIDESEA_IStorageTaskServices.csproj|e:\\get\\duiduojiliku\\\u9879\u76EE\u4EE3\u7801\\wms\\widesea_wmsserver\\widesea_istoragetaskservice\\task\\idt_taskservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
-      "RelativeMoniker": "D:0:0:{986CA639-B3B4-4D4F-B12B-3D8FBA48B2B1}|WIDESEA_IStorageTaskService\\WIDESEA_IStorageTaskServices.csproj|solutionrelative:widesea_istoragetaskservice\\task\\idt_taskservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
     },
     {
       "AbsoluteMoniker": "D:0:0:{D81A65B5-47D1-40C1-8FDE-7D24FF003F51}|WIDESEA_WMSServer\\WIDESEA_WMSServer.csproj|e:\\get\\duiduojiliku\\\u9879\u76EE\u4EE3\u7801\\wms\\widesea_wmsserver\\widesea_wmsserver\\controllers\\task\\taskcontroller.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
       "RelativeMoniker": "D:0:0:{D81A65B5-47D1-40C1-8FDE-7D24FF003F51}|WIDESEA_WMSServer\\WIDESEA_WMSServer.csproj|solutionrelative:widesea_wmsserver\\controllers\\task\\taskcontroller.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
     },
     {
-      "AbsoluteMoniker": "D:0:0:{20D16B32-8186-420C-B3B7-58B183FC09CF}|WIDESEA_OrderServices\\WIDESEA_OrderServices.csproj|e:\\get\\duiduojiliku\\\u9879\u76EE\u4EE3\u7801\\wms\\widesea_wmsserver\\widesea_orderservices\\dt_productionoutboundorderservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
-      "RelativeMoniker": "D:0:0:{20D16B32-8186-420C-B3B7-58B183FC09CF}|WIDESEA_OrderServices\\WIDESEA_OrderServices.csproj|solutionrelative:widesea_orderservices\\dt_productionoutboundorderservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+      "AbsoluteMoniker": "D:0:0:{986CA639-B3B4-4D4F-B12B-3D8FBA48B2B1}|WIDESEA_IStorageTaskService\\WIDESEA_IStorageTaskServices.csproj|e:\\get\\duiduojiliku\\\u9879\u76EE\u4EE3\u7801\\wms\\widesea_wmsserver\\widesea_istoragetaskservice\\task\\idt_taskservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+      "RelativeMoniker": "D:0:0:{986CA639-B3B4-4D4F-B12B-3D8FBA48B2B1}|WIDESEA_IStorageTaskService\\WIDESEA_IStorageTaskServices.csproj|solutionrelative:widesea_istoragetaskservice\\task\\idt_taskservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+    },
+    {
+      "AbsoluteMoniker": "D:0:0:{4BDE58B2-5B2E-480B-932F-D63C2A7D557C}|WIDESEA_StorageBasicServices\\WIDESEA_StorageBasicServices.csproj|e:\\get\\duiduojiliku\\\u9879\u76EE\u4EE3\u7801\\wms\\widesea_wmsserver\\widesea_storagebasicservices\\stock\\stockinfoservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+      "RelativeMoniker": "D:0:0:{4BDE58B2-5B2E-480B-932F-D63C2A7D557C}|WIDESEA_StorageBasicServices\\WIDESEA_StorageBasicServices.csproj|solutionrelative:widesea_storagebasicservices\\stock\\stockinfoservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+    },
+    {
+      "AbsoluteMoniker": "D:0:0:{20D16B32-8186-420C-B3B7-58B183FC09CF}|WIDESEA_OrderServices\\WIDESEA_OrderServices.csproj|e:\\get\\duiduojiliku\\\u9879\u76EE\u4EE3\u7801\\wms\\widesea_wmsserver\\widesea_orderservices\\dt_allocateoutboundorderservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+      "RelativeMoniker": "D:0:0:{20D16B32-8186-420C-B3B7-58B183FC09CF}|WIDESEA_OrderServices\\WIDESEA_OrderServices.csproj|solutionrelative:widesea_orderservices\\dt_allocateoutboundorderservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+    },
+    {
+      "AbsoluteMoniker": "D:0:0:{4BDE58B2-5B2E-480B-932F-D63C2A7D557C}|WIDESEA_StorageBasicServices\\WIDESEA_StorageBasicServices.csproj|e:\\get\\duiduojiliku\\\u9879\u76EE\u4EE3\u7801\\wms\\widesea_wmsserver\\widesea_storagebasicservices\\boxing\\boxinginfoservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+      "RelativeMoniker": "D:0:0:{4BDE58B2-5B2E-480B-932F-D63C2A7D557C}|WIDESEA_StorageBasicServices\\WIDESEA_StorageBasicServices.csproj|solutionrelative:widesea_storagebasicservices\\boxing\\boxinginfoservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+    },
+    {
+      "AbsoluteMoniker": "D:0:0:{20D16B32-8186-420C-B3B7-58B183FC09CF}|WIDESEA_OrderServices\\WIDESEA_OrderServices.csproj|e:\\get\\duiduojiliku\\\u9879\u76EE\u4EE3\u7801\\wms\\widesea_wmsserver\\widesea_orderservices\\dt_inboundorderservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+      "RelativeMoniker": "D:0:0:{20D16B32-8186-420C-B3B7-58B183FC09CF}|WIDESEA_OrderServices\\WIDESEA_OrderServices.csproj|solutionrelative:widesea_orderservices\\dt_inboundorderservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
     },
     {
       "AbsoluteMoniker": "D:0:0:{9912BD12-4CF7-4A91-8203-47C9C125004C}|WIDESEA_StorageTaskServices\\WIDESEA_StorageTaskServices.csproj|e:\\get\\duiduojiliku\\\u9879\u76EE\u4EE3\u7801\\wms\\widesea_wmsserver\\widesea_storagetaskservices\\aspnetcoreschedule.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
@@ -45,10 +37,6 @@
     {
       "AbsoluteMoniker": "D:0:0:{4BDE58B2-5B2E-480B-932F-D63C2A7D557C}|WIDESEA_StorageBasicServices\\WIDESEA_StorageBasicServices.csproj|e:\\get\\duiduojiliku\\\u9879\u76EE\u4EE3\u7801\\wms\\widesea_wmsserver\\widesea_storagebasicservices\\location\\locationinfoservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
       "RelativeMoniker": "D:0:0:{4BDE58B2-5B2E-480B-932F-D63C2A7D557C}|WIDESEA_StorageBasicServices\\WIDESEA_StorageBasicServices.csproj|solutionrelative:widesea_storagebasicservices\\location\\locationinfoservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
-    },
-    {
-      "AbsoluteMoniker": "D:0:0:{929DF936-042C-4EEC-8722-A831FC2F0AEA}|WIDESEA_DTO\\WIDESEA_DTO.csproj|e:\\get\\duiduojiliku\\\u9879\u76EE\u4EE3\u7801\\wms\\widesea_wmsserver\\widesea_dto\\erp\\basic.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
-      "RelativeMoniker": "D:0:0:{929DF936-042C-4EEC-8722-A831FC2F0AEA}|WIDESEA_DTO\\WIDESEA_DTO.csproj|solutionrelative:widesea_dto\\erp\\basic.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
     }
   ],
   "DocumentGroupContainers": [
@@ -58,99 +46,76 @@
       "DocumentGroups": [
         {
           "DockedWidth": 200,
-          "SelectedChildIndex": 1,
+          "SelectedChildIndex": 4,
           "Children": [
             {
               "$type": "Document",
-              "DocumentIndex": 1,
-              "Title": "Dt_ProductionOutboundOrderDetailService.cs",
-              "DocumentMoniker": "E:\\GET\\DuiDuoJiLiKu\\\u9879\u76EE\u4EE3\u7801\\WMS\\WIDESEA_WMSServer\\WIDESEA_OrderServices\\Dt_ProductionOutboundOrderDetailService.cs",
-              "RelativeDocumentMoniker": "WIDESEA_OrderServices\\Dt_ProductionOutboundOrderDetailService.cs",
-              "ToolTip": "E:\\GET\\DuiDuoJiLiKu\\\u9879\u76EE\u4EE3\u7801\\WMS\\WIDESEA_WMSServer\\WIDESEA_OrderServices\\Dt_ProductionOutboundOrderDetailService.cs",
-              "RelativeToolTip": "WIDESEA_OrderServices\\Dt_ProductionOutboundOrderDetailService.cs",
-              "ViewState": "AgIAADAAAAAAAAAAAAAIwEIAAAARAAAAAAAAAA==",
-              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
-              "WhenOpened": "2025-11-06T07:16:00.471Z",
-              "EditorCaption": ""
-            },
-            {
-              "$type": "Document",
-              "DocumentIndex": 0,
-              "Title": "Dt_AllocateOutboundOrderDetailService.cs",
-              "DocumentMoniker": "E:\\GET\\DuiDuoJiLiKu\\\u9879\u76EE\u4EE3\u7801\\WMS\\WIDESEA_WMSServer\\WIDESEA_OrderServices\\Dt_AllocateOutboundOrderDetailService.cs",
-              "RelativeDocumentMoniker": "WIDESEA_OrderServices\\Dt_AllocateOutboundOrderDetailService.cs",
-              "ToolTip": "E:\\GET\\DuiDuoJiLiKu\\\u9879\u76EE\u4EE3\u7801\\WMS\\WIDESEA_WMSServer\\WIDESEA_OrderServices\\Dt_AllocateOutboundOrderDetailService.cs",
-              "RelativeToolTip": "WIDESEA_OrderServices\\Dt_AllocateOutboundOrderDetailService.cs",
-              "ViewState": "AgIAADgAAAAAAAAAAAAIwEEAAAAiAAAAAAAAAA==",
-              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
-              "WhenOpened": "2025-11-06T03:57:25.899Z",
-              "EditorCaption": ""
-            },
-            {
-              "$type": "Document",
-              "DocumentIndex": 5,
-              "Title": "TaskData.cs",
-              "DocumentMoniker": "E:\\GET\\DuiDuoJiLiKu\\\u9879\u76EE\u4EE3\u7801\\WMS\\WIDESEA_WMSServer\\WIDESEA_DTO\\Basic\\TaskData.cs",
-              "RelativeDocumentMoniker": "WIDESEA_DTO\\Basic\\TaskData.cs",
-              "ToolTip": "E:\\GET\\DuiDuoJiLiKu\\\u9879\u76EE\u4EE3\u7801\\WMS\\WIDESEA_WMSServer\\WIDESEA_DTO\\Basic\\TaskData.cs",
-              "RelativeToolTip": "WIDESEA_DTO\\Basic\\TaskData.cs",
-              "ViewState": "AgIAAAAAAAAAAAAAAADwvwgAAAAKAAAAAAAAAA==",
-              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
-              "WhenOpened": "2025-11-06T00:33:05.048Z",
-              "EditorCaption": ""
-            },
-            {
-              "$type": "Document",
-              "DocumentIndex": 6,
+              "DocumentIndex": 2,
               "Title": "IDt_TaskService.cs",
               "DocumentMoniker": "E:\\GET\\DuiDuoJiLiKu\\\u9879\u76EE\u4EE3\u7801\\WMS\\WIDESEA_WMSServer\\WIDESEA_IStorageTaskService\\Task\\IDt_TaskService.cs",
               "RelativeDocumentMoniker": "WIDESEA_IStorageTaskService\\Task\\IDt_TaskService.cs",
               "ToolTip": "E:\\GET\\DuiDuoJiLiKu\\\u9879\u76EE\u4EE3\u7801\\WMS\\WIDESEA_WMSServer\\WIDESEA_IStorageTaskService\\Task\\IDt_TaskService.cs",
               "RelativeToolTip": "WIDESEA_IStorageTaskService\\Task\\IDt_TaskService.cs",
-              "ViewState": "AgIAAB4AAAAAAAAAAADgvzIAAAAoAAAAAAAAAA==",
+              "ViewState": "AgIAAEsAAAAAAAAAAIAzwGMAAAAGAAAAAAAAAA==",
               "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
-              "WhenOpened": "2025-11-05T09:10:16.226Z"
+              "WhenOpened": "2025-11-07T07:52:35.699Z",
+              "EditorCaption": ""
             },
             {
               "$type": "Document",
-              "DocumentIndex": 7,
+              "DocumentIndex": 3,
+              "Title": "StockInfoService.cs",
+              "DocumentMoniker": "E:\\GET\\DuiDuoJiLiKu\\\u9879\u76EE\u4EE3\u7801\\WMS\\WIDESEA_WMSServer\\WIDESEA_StorageBasicServices\\Stock\\StockInfoService.cs",
+              "RelativeDocumentMoniker": "WIDESEA_StorageBasicServices\\Stock\\StockInfoService.cs",
+              "ToolTip": "E:\\GET\\DuiDuoJiLiKu\\\u9879\u76EE\u4EE3\u7801\\WMS\\WIDESEA_WMSServer\\WIDESEA_StorageBasicServices\\Stock\\StockInfoService.cs",
+              "RelativeToolTip": "WIDESEA_StorageBasicServices\\Stock\\StockInfoService.cs",
+              "ViewState": "AgIAABEAAAAAAAAAAAAAAB0AAABhAAAAAAAAAA==",
+              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+              "WhenOpened": "2025-11-07T06:34:40.25Z",
+              "EditorCaption": ""
+            },
+            {
+              "$type": "Document",
+              "DocumentIndex": 6,
+              "Title": "Dt_InboundOrderService.cs",
+              "DocumentMoniker": "E:\\GET\\DuiDuoJiLiKu\\\u9879\u76EE\u4EE3\u7801\\WMS\\WIDESEA_WMSServer\\WIDESEA_OrderServices\\Dt_InboundOrderService.cs",
+              "RelativeDocumentMoniker": "WIDESEA_OrderServices\\Dt_InboundOrderService.cs",
+              "ToolTip": "E:\\GET\\DuiDuoJiLiKu\\\u9879\u76EE\u4EE3\u7801\\WMS\\WIDESEA_WMSServer\\WIDESEA_OrderServices\\Dt_InboundOrderService.cs",
+              "RelativeToolTip": "WIDESEA_OrderServices\\Dt_InboundOrderService.cs",
+              "ViewState": "AgIAADkAAAAAAAAAAAAWwEYAAAAxAAAAAAAAAA==",
+              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+              "WhenOpened": "2025-11-07T02:43:04.546Z",
+              "EditorCaption": ""
+            },
+            {
+              "$type": "Document",
+              "DocumentIndex": 1,
               "Title": "TaskController.cs",
               "DocumentMoniker": "E:\\GET\\DuiDuoJiLiKu\\\u9879\u76EE\u4EE3\u7801\\WMS\\WIDESEA_WMSServer\\WIDESEA_WMSServer\\Controllers\\Task\\TaskController.cs",
               "RelativeDocumentMoniker": "WIDESEA_WMSServer\\Controllers\\Task\\TaskController.cs",
               "ToolTip": "E:\\GET\\DuiDuoJiLiKu\\\u9879\u76EE\u4EE3\u7801\\WMS\\WIDESEA_WMSServer\\WIDESEA_WMSServer\\Controllers\\Task\\TaskController.cs",
               "RelativeToolTip": "WIDESEA_WMSServer\\Controllers\\Task\\TaskController.cs",
-              "ViewState": "AgIAAI0AAAAAAAAAAAAswJ8AAAAxAAAAAAAAAA==",
+              "ViewState": "AgIAAEgAAAAAAAAAAAAEwG8AAAAiAAAAAAAAAA==",
               "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
-              "WhenOpened": "2025-11-05T09:03:37.443Z"
+              "WhenOpened": "2025-11-05T09:03:37.443Z",
+              "EditorCaption": ""
             },
             {
               "$type": "Document",
-              "DocumentIndex": 3,
+              "DocumentIndex": 0,
               "Title": "Dt_TaskService.cs",
               "DocumentMoniker": "E:\\GET\\DuiDuoJiLiKu\\\u9879\u76EE\u4EE3\u7801\\WMS\\WIDESEA_WMSServer\\WIDESEA_StorageTaskServices\\Task\\Dt_TaskService.cs",
               "RelativeDocumentMoniker": "WIDESEA_StorageTaskServices\\Task\\Dt_TaskService.cs",
               "ToolTip": "E:\\GET\\DuiDuoJiLiKu\\\u9879\u76EE\u4EE3\u7801\\WMS\\WIDESEA_WMSServer\\WIDESEA_StorageTaskServices\\Task\\Dt_TaskService.cs",
               "RelativeToolTip": "WIDESEA_StorageTaskServices\\Task\\Dt_TaskService.cs",
-              "ViewState": "AgIAABgCAAAAAAAAAAAjwCkCAAAMAAAAAAAAAA==",
+              "ViewState": "AgIAAM0AAAAAAAAAAAAjwNACAAAEAAAAAAAAAA==",
               "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
               "WhenOpened": "2025-10-31T07:18:07.612Z",
               "EditorCaption": ""
             },
             {
               "$type": "Document",
-              "DocumentIndex": 8,
-              "Title": "Dt_ProductionOutboundOrderService.cs",
-              "DocumentMoniker": "E:\\GET\\DuiDuoJiLiKu\\\u9879\u76EE\u4EE3\u7801\\WMS\\WIDESEA_WMSServer\\WIDESEA_OrderServices\\Dt_ProductionOutboundOrderService.cs",
-              "RelativeDocumentMoniker": "WIDESEA_OrderServices\\Dt_ProductionOutboundOrderService.cs",
-              "ToolTip": "E:\\GET\\DuiDuoJiLiKu\\\u9879\u76EE\u4EE3\u7801\\WMS\\WIDESEA_WMSServer\\WIDESEA_OrderServices\\Dt_ProductionOutboundOrderService.cs",
-              "RelativeToolTip": "WIDESEA_OrderServices\\Dt_ProductionOutboundOrderService.cs",
-              "ViewState": "AgIAADQBAAAAAAAAAAAjwD8BAAAMAAAAAAAAAA==",
-              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
-              "WhenOpened": "2025-11-03T02:13:51.105Z"
-            },
-            {
-              "$type": "Document",
-              "DocumentIndex": 9,
+              "DocumentIndex": 7,
               "Title": "AspNetCoreSchedule.cs",
               "DocumentMoniker": "E:\\GET\\DuiDuoJiLiKu\\\u9879\u76EE\u4EE3\u7801\\WMS\\WIDESEA_WMSServer\\WIDESEA_StorageTaskServices\\AspNetCoreSchedule.cs",
               "RelativeDocumentMoniker": "WIDESEA_StorageTaskServices\\AspNetCoreSchedule.cs",
@@ -162,33 +127,33 @@
             },
             {
               "$type": "Document",
-              "DocumentIndex": 2,
+              "DocumentIndex": 4,
               "Title": "Dt_AllocateOutboundOrderService.cs",
               "DocumentMoniker": "E:\\GET\\DuiDuoJiLiKu\\\u9879\u76EE\u4EE3\u7801\\WMS\\WIDESEA_WMSServer\\WIDESEA_OrderServices\\Dt_AllocateOutboundOrderService.cs",
               "RelativeDocumentMoniker": "WIDESEA_OrderServices\\Dt_AllocateOutboundOrderService.cs",
               "ToolTip": "E:\\GET\\DuiDuoJiLiKu\\\u9879\u76EE\u4EE3\u7801\\WMS\\WIDESEA_WMSServer\\WIDESEA_OrderServices\\Dt_AllocateOutboundOrderService.cs",
               "RelativeToolTip": "WIDESEA_OrderServices\\Dt_AllocateOutboundOrderService.cs",
-              "ViewState": "AgIAABgAAAAAAAAAAAAAACEAAABPAAAAAAAAAA==",
+              "ViewState": "AgIAAMMAAAAAAAAAAAAYwM8AAABRAAAAAAAAAA==",
               "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
               "WhenOpened": "2025-11-03T02:04:06.044Z",
               "EditorCaption": ""
             },
             {
               "$type": "Document",
-              "DocumentIndex": 4,
+              "DocumentIndex": 5,
               "Title": "BoxingInfoService.cs",
               "DocumentMoniker": "E:\\GET\\DuiDuoJiLiKu\\\u9879\u76EE\u4EE3\u7801\\WMS\\WIDESEA_WMSServer\\WIDESEA_StorageBasicServices\\Boxing\\BoxingInfoService.cs",
               "RelativeDocumentMoniker": "WIDESEA_StorageBasicServices\\Boxing\\BoxingInfoService.cs",
               "ToolTip": "E:\\GET\\DuiDuoJiLiKu\\\u9879\u76EE\u4EE3\u7801\\WMS\\WIDESEA_WMSServer\\WIDESEA_StorageBasicServices\\Boxing\\BoxingInfoService.cs",
               "RelativeToolTip": "WIDESEA_StorageBasicServices\\Boxing\\BoxingInfoService.cs",
-              "ViewState": "AgIAAMkAAAAAAAAAAAD4v9YAAAAQAAAAAAAAAA==",
+              "ViewState": "AgIAAGwAAAAAAAAAAAAjwG4AAAAMAAAAAAAAAA==",
               "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
               "WhenOpened": "2025-11-03T02:02:13.16Z",
               "EditorCaption": ""
             },
             {
               "$type": "Document",
-              "DocumentIndex": 10,
+              "DocumentIndex": 8,
               "Title": "LocationInfoService.cs",
               "DocumentMoniker": "E:\\GET\\DuiDuoJiLiKu\\\u9879\u76EE\u4EE3\u7801\\WMS\\WIDESEA_WMSServer\\WIDESEA_StorageBasicServices\\Location\\LocationInfoService.cs",
               "RelativeDocumentMoniker": "WIDESEA_StorageBasicServices\\Location\\LocationInfoService.cs",
@@ -198,18 +163,6 @@
               "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
               "WhenOpened": "2025-11-03T00:41:54.983Z",
               "EditorCaption": ""
-            },
-            {
-              "$type": "Document",
-              "DocumentIndex": 11,
-              "Title": "Basic.cs",
-              "DocumentMoniker": "E:\\GET\\DuiDuoJiLiKu\\\u9879\u76EE\u4EE3\u7801\\WMS\\WIDESEA_WMSServer\\WIDESEA_DTO\\ERP\\Basic.cs",
-              "RelativeDocumentMoniker": "WIDESEA_DTO\\ERP\\Basic.cs",
-              "ToolTip": "E:\\GET\\DuiDuoJiLiKu\\\u9879\u76EE\u4EE3\u7801\\WMS\\WIDESEA_WMSServer\\WIDESEA_DTO\\ERP\\Basic.cs",
-              "RelativeToolTip": "WIDESEA_DTO\\ERP\\Basic.cs",
-              "ViewState": "AgIAAB4AAAAAAAAAAAAQwDMAAAAcAAAAAAAAAA==",
-              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
-              "WhenOpened": "2025-10-31T07:34:59.883Z"
             }
           ]
         }
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/v17/DocumentLayout.json" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/v17/DocumentLayout.json"
index c45794a..5528473 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/v17/DocumentLayout.json"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/v17/DocumentLayout.json"
@@ -7,20 +7,16 @@
       "RelativeMoniker": "D:0:0:{D81A65B5-47D1-40C1-8FDE-7D24FF003F51}|WIDESEA_WMSServer\\WIDESEA_WMSServer.csproj|solutionrelative:widesea_wmsserver\\controllers\\task\\taskcontroller.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
     },
     {
-      "AbsoluteMoniker": "D:0:0:{986CA639-B3B4-4D4F-B12B-3D8FBA48B2B1}|WIDESEA_IStorageTaskService\\WIDESEA_IStorageTaskServices.csproj|e:\\get\\duiduojiliku\\\u9879\u76EE\u4EE3\u7801\\wms\\widesea_wmsserver\\widesea_istoragetaskservice\\task\\idt_taskservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
-      "RelativeMoniker": "D:0:0:{986CA639-B3B4-4D4F-B12B-3D8FBA48B2B1}|WIDESEA_IStorageTaskService\\WIDESEA_IStorageTaskServices.csproj|solutionrelative:widesea_istoragetaskservice\\task\\idt_taskservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
-    },
-    {
       "AbsoluteMoniker": "D:0:0:{9912BD12-4CF7-4A91-8203-47C9C125004C}|WIDESEA_StorageTaskServices\\WIDESEA_StorageTaskServices.csproj|e:\\get\\duiduojiliku\\\u9879\u76EE\u4EE3\u7801\\wms\\widesea_wmsserver\\widesea_storagetaskservices\\task\\dt_taskservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
       "RelativeMoniker": "D:0:0:{9912BD12-4CF7-4A91-8203-47C9C125004C}|WIDESEA_StorageTaskServices\\WIDESEA_StorageTaskServices.csproj|solutionrelative:widesea_storagetaskservices\\task\\dt_taskservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
     },
     {
-      "AbsoluteMoniker": "D:0:0:{20D16B32-8186-420C-B3B7-58B183FC09CF}|WIDESEA_OrderServices\\WIDESEA_OrderServices.csproj|e:\\get\\duiduojiliku\\\u9879\u76EE\u4EE3\u7801\\wms\\widesea_wmsserver\\widesea_orderservices\\dt_allocateoutboundorderdetailservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
-      "RelativeMoniker": "D:0:0:{20D16B32-8186-420C-B3B7-58B183FC09CF}|WIDESEA_OrderServices\\WIDESEA_OrderServices.csproj|solutionrelative:widesea_orderservices\\dt_allocateoutboundorderdetailservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+      "AbsoluteMoniker": "D:0:0:{986CA639-B3B4-4D4F-B12B-3D8FBA48B2B1}|WIDESEA_IStorageTaskService\\WIDESEA_IStorageTaskServices.csproj|e:\\get\\duiduojiliku\\\u9879\u76EE\u4EE3\u7801\\wms\\widesea_wmsserver\\widesea_istoragetaskservice\\task\\idt_taskservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+      "RelativeMoniker": "D:0:0:{986CA639-B3B4-4D4F-B12B-3D8FBA48B2B1}|WIDESEA_IStorageTaskService\\WIDESEA_IStorageTaskServices.csproj|solutionrelative:widesea_istoragetaskservice\\task\\idt_taskservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
     },
     {
-      "AbsoluteMoniker": "D:0:0:{20D16B32-8186-420C-B3B7-58B183FC09CF}|WIDESEA_OrderServices\\WIDESEA_OrderServices.csproj|e:\\get\\duiduojiliku\\\u9879\u76EE\u4EE3\u7801\\wms\\widesea_wmsserver\\widesea_orderservices\\dt_productionoutboundorderdetailservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
-      "RelativeMoniker": "D:0:0:{20D16B32-8186-420C-B3B7-58B183FC09CF}|WIDESEA_OrderServices\\WIDESEA_OrderServices.csproj|solutionrelative:widesea_orderservices\\dt_productionoutboundorderdetailservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+      "AbsoluteMoniker": "D:0:0:{4BDE58B2-5B2E-480B-932F-D63C2A7D557C}|WIDESEA_StorageBasicServices\\WIDESEA_StorageBasicServices.csproj|e:\\get\\duiduojiliku\\\u9879\u76EE\u4EE3\u7801\\wms\\widesea_wmsserver\\widesea_storagebasicservices\\stock\\stockinfoservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+      "RelativeMoniker": "D:0:0:{4BDE58B2-5B2E-480B-932F-D63C2A7D557C}|WIDESEA_StorageBasicServices\\WIDESEA_StorageBasicServices.csproj|solutionrelative:widesea_storagebasicservices\\stock\\stockinfoservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
     },
     {
       "AbsoluteMoniker": "D:0:0:{20D16B32-8186-420C-B3B7-58B183FC09CF}|WIDESEA_OrderServices\\WIDESEA_OrderServices.csproj|e:\\get\\duiduojiliku\\\u9879\u76EE\u4EE3\u7801\\wms\\widesea_wmsserver\\widesea_orderservices\\dt_allocateoutboundorderservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
@@ -31,12 +27,8 @@
       "RelativeMoniker": "D:0:0:{4BDE58B2-5B2E-480B-932F-D63C2A7D557C}|WIDESEA_StorageBasicServices\\WIDESEA_StorageBasicServices.csproj|solutionrelative:widesea_storagebasicservices\\boxing\\boxinginfoservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
     },
     {
-      "AbsoluteMoniker": "D:0:0:{929DF936-042C-4EEC-8722-A831FC2F0AEA}|WIDESEA_DTO\\WIDESEA_DTO.csproj|e:\\get\\duiduojiliku\\\u9879\u76EE\u4EE3\u7801\\wms\\widesea_wmsserver\\widesea_dto\\basic\\taskdata.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
-      "RelativeMoniker": "D:0:0:{929DF936-042C-4EEC-8722-A831FC2F0AEA}|WIDESEA_DTO\\WIDESEA_DTO.csproj|solutionrelative:widesea_dto\\basic\\taskdata.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
-    },
-    {
-      "AbsoluteMoniker": "D:0:0:{20D16B32-8186-420C-B3B7-58B183FC09CF}|WIDESEA_OrderServices\\WIDESEA_OrderServices.csproj|e:\\get\\duiduojiliku\\\u9879\u76EE\u4EE3\u7801\\wms\\widesea_wmsserver\\widesea_orderservices\\dt_productionoutboundorderservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
-      "RelativeMoniker": "D:0:0:{20D16B32-8186-420C-B3B7-58B183FC09CF}|WIDESEA_OrderServices\\WIDESEA_OrderServices.csproj|solutionrelative:widesea_orderservices\\dt_productionoutboundorderservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+      "AbsoluteMoniker": "D:0:0:{20D16B32-8186-420C-B3B7-58B183FC09CF}|WIDESEA_OrderServices\\WIDESEA_OrderServices.csproj|e:\\get\\duiduojiliku\\\u9879\u76EE\u4EE3\u7801\\wms\\widesea_wmsserver\\widesea_orderservices\\dt_inboundorderservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+      "RelativeMoniker": "D:0:0:{20D16B32-8186-420C-B3B7-58B183FC09CF}|WIDESEA_OrderServices\\WIDESEA_OrderServices.csproj|solutionrelative:widesea_orderservices\\dt_inboundorderservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
     },
     {
       "AbsoluteMoniker": "D:0:0:{9912BD12-4CF7-4A91-8203-47C9C125004C}|WIDESEA_StorageTaskServices\\WIDESEA_StorageTaskServices.csproj|e:\\get\\duiduojiliku\\\u9879\u76EE\u4EE3\u7801\\wms\\widesea_wmsserver\\widesea_storagetaskservices\\aspnetcoreschedule.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
@@ -45,10 +37,6 @@
     {
       "AbsoluteMoniker": "D:0:0:{4BDE58B2-5B2E-480B-932F-D63C2A7D557C}|WIDESEA_StorageBasicServices\\WIDESEA_StorageBasicServices.csproj|e:\\get\\duiduojiliku\\\u9879\u76EE\u4EE3\u7801\\wms\\widesea_wmsserver\\widesea_storagebasicservices\\location\\locationinfoservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
       "RelativeMoniker": "D:0:0:{4BDE58B2-5B2E-480B-932F-D63C2A7D557C}|WIDESEA_StorageBasicServices\\WIDESEA_StorageBasicServices.csproj|solutionrelative:widesea_storagebasicservices\\location\\locationinfoservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
-    },
-    {
-      "AbsoluteMoniker": "D:0:0:{929DF936-042C-4EEC-8722-A831FC2F0AEA}|WIDESEA_DTO\\WIDESEA_DTO.csproj|e:\\get\\duiduojiliku\\\u9879\u76EE\u4EE3\u7801\\wms\\widesea_wmsserver\\widesea_dto\\erp\\basic.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
-      "RelativeMoniker": "D:0:0:{929DF936-042C-4EEC-8722-A831FC2F0AEA}|WIDESEA_DTO\\WIDESEA_DTO.csproj|solutionrelative:widesea_dto\\erp\\basic.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
     }
   ],
   "DocumentGroupContainers": [
@@ -58,58 +46,45 @@
       "DocumentGroups": [
         {
           "DockedWidth": 200,
-          "SelectedChildIndex": 4,
+          "SelectedChildIndex": 3,
           "Children": [
             {
               "$type": "Document",
-              "DocumentIndex": 4,
-              "Title": "Dt_ProductionOutboundOrderDetailService.cs",
-              "DocumentMoniker": "E:\\GET\\DuiDuoJiLiKu\\\u9879\u76EE\u4EE3\u7801\\WMS\\WIDESEA_WMSServer\\WIDESEA_OrderServices\\Dt_ProductionOutboundOrderDetailService.cs",
-              "RelativeDocumentMoniker": "WIDESEA_OrderServices\\Dt_ProductionOutboundOrderDetailService.cs",
-              "ToolTip": "E:\\GET\\DuiDuoJiLiKu\\\u9879\u76EE\u4EE3\u7801\\WMS\\WIDESEA_WMSServer\\WIDESEA_OrderServices\\Dt_ProductionOutboundOrderDetailService.cs",
-              "RelativeToolTip": "WIDESEA_OrderServices\\Dt_ProductionOutboundOrderDetailService.cs",
-              "ViewState": "AgIAADAAAAAAAAAAAAAIwEIAAAARAAAAAAAAAA==",
+              "DocumentIndex": 2,
+              "Title": "IDt_TaskService.cs",
+              "DocumentMoniker": "E:\\GET\\DuiDuoJiLiKu\\\u9879\u76EE\u4EE3\u7801\\WMS\\WIDESEA_WMSServer\\WIDESEA_IStorageTaskService\\Task\\IDt_TaskService.cs",
+              "RelativeDocumentMoniker": "WIDESEA_IStorageTaskService\\Task\\IDt_TaskService.cs",
+              "ToolTip": "E:\\GET\\DuiDuoJiLiKu\\\u9879\u76EE\u4EE3\u7801\\WMS\\WIDESEA_WMSServer\\WIDESEA_IStorageTaskService\\Task\\IDt_TaskService.cs",
+              "RelativeToolTip": "WIDESEA_IStorageTaskService\\Task\\IDt_TaskService.cs",
+              "ViewState": "AgIAAEsAAAAAAAAAAIAzwGMAAAAGAAAAAAAAAA==",
               "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
-              "WhenOpened": "2025-11-06T07:16:00.471Z",
+              "WhenOpened": "2025-11-07T07:52:35.699Z",
               "EditorCaption": ""
             },
             {
               "$type": "Document",
               "DocumentIndex": 3,
-              "Title": "Dt_AllocateOutboundOrderDetailService.cs",
-              "DocumentMoniker": "E:\\GET\\DuiDuoJiLiKu\\\u9879\u76EE\u4EE3\u7801\\WMS\\WIDESEA_WMSServer\\WIDESEA_OrderServices\\Dt_AllocateOutboundOrderDetailService.cs",
-              "RelativeDocumentMoniker": "WIDESEA_OrderServices\\Dt_AllocateOutboundOrderDetailService.cs",
-              "ToolTip": "E:\\GET\\DuiDuoJiLiKu\\\u9879\u76EE\u4EE3\u7801\\WMS\\WIDESEA_WMSServer\\WIDESEA_OrderServices\\Dt_AllocateOutboundOrderDetailService.cs",
-              "RelativeToolTip": "WIDESEA_OrderServices\\Dt_AllocateOutboundOrderDetailService.cs",
-              "ViewState": "AgIAADgAAAAAAAAAAAAIwEEAAAAiAAAAAAAAAA==",
+              "Title": "StockInfoService.cs",
+              "DocumentMoniker": "E:\\GET\\DuiDuoJiLiKu\\\u9879\u76EE\u4EE3\u7801\\WMS\\WIDESEA_WMSServer\\WIDESEA_StorageBasicServices\\Stock\\StockInfoService.cs",
+              "RelativeDocumentMoniker": "WIDESEA_StorageBasicServices\\Stock\\StockInfoService.cs",
+              "ToolTip": "E:\\GET\\DuiDuoJiLiKu\\\u9879\u76EE\u4EE3\u7801\\WMS\\WIDESEA_WMSServer\\WIDESEA_StorageBasicServices\\Stock\\StockInfoService.cs",
+              "RelativeToolTip": "WIDESEA_StorageBasicServices\\Stock\\StockInfoService.cs",
+              "ViewState": "AgIAABEAAAAAAAAAAAAAAB0AAABhAAAAAAAAAA==",
               "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
-              "WhenOpened": "2025-11-06T03:57:25.899Z",
+              "WhenOpened": "2025-11-07T06:34:40.25Z",
               "EditorCaption": ""
             },
             {
               "$type": "Document",
-              "DocumentIndex": 7,
-              "Title": "TaskData.cs",
-              "DocumentMoniker": "E:\\GET\\DuiDuoJiLiKu\\\u9879\u76EE\u4EE3\u7801\\WMS\\WIDESEA_WMSServer\\WIDESEA_DTO\\Basic\\TaskData.cs",
-              "RelativeDocumentMoniker": "WIDESEA_DTO\\Basic\\TaskData.cs",
-              "ToolTip": "E:\\GET\\DuiDuoJiLiKu\\\u9879\u76EE\u4EE3\u7801\\WMS\\WIDESEA_WMSServer\\WIDESEA_DTO\\Basic\\TaskData.cs",
-              "RelativeToolTip": "WIDESEA_DTO\\Basic\\TaskData.cs",
-              "ViewState": "AgIAAAAAAAAAAAAAAADwvwgAAAAKAAAAAAAAAA==",
+              "DocumentIndex": 6,
+              "Title": "Dt_InboundOrderService.cs",
+              "DocumentMoniker": "E:\\GET\\DuiDuoJiLiKu\\\u9879\u76EE\u4EE3\u7801\\WMS\\WIDESEA_WMSServer\\WIDESEA_OrderServices\\Dt_InboundOrderService.cs",
+              "RelativeDocumentMoniker": "WIDESEA_OrderServices\\Dt_InboundOrderService.cs",
+              "ToolTip": "E:\\GET\\DuiDuoJiLiKu\\\u9879\u76EE\u4EE3\u7801\\WMS\\WIDESEA_WMSServer\\WIDESEA_OrderServices\\Dt_InboundOrderService.cs",
+              "RelativeToolTip": "WIDESEA_OrderServices\\Dt_InboundOrderService.cs",
+              "ViewState": "AgIAADkAAAAAAAAAAAAWwEYAAAAxAAAAAAAAAA==",
               "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
-              "WhenOpened": "2025-11-06T00:33:05.048Z",
-              "EditorCaption": ""
-            },
-            {
-              "$type": "Document",
-              "DocumentIndex": 1,
-              "Title": "IDt_TaskService.cs",
-              "DocumentMoniker": "E:\\GET\\DuiDuoJiLiKu\\\u9879\u76EE\u4EE3\u7801\\WMS\\WIDESEA_WMSServer\\WIDESEA_IStorageTaskService\\Task\\IDt_TaskService.cs",
-              "RelativeDocumentMoniker": "WIDESEA_IStorageTaskService\\Task\\IDt_TaskService.cs",
-              "ToolTip": "E:\\GET\\DuiDuoJiLiKu\\\u9879\u76EE\u4EE3\u7801\\WMS\\WIDESEA_WMSServer\\WIDESEA_IStorageTaskService\\Task\\IDt_TaskService.cs*",
-              "RelativeToolTip": "WIDESEA_IStorageTaskService\\Task\\IDt_TaskService.cs*",
-              "ViewState": "AgIAAFUAAAAAAAAAAAD4v2gAAABcAAAAAAAAAA==",
-              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
-              "WhenOpened": "2025-11-05T09:10:16.226Z",
+              "WhenOpened": "2025-11-07T02:43:04.546Z",
               "EditorCaption": ""
             },
             {
@@ -120,39 +95,27 @@
               "RelativeDocumentMoniker": "WIDESEA_WMSServer\\Controllers\\Task\\TaskController.cs",
               "ToolTip": "E:\\GET\\DuiDuoJiLiKu\\\u9879\u76EE\u4EE3\u7801\\WMS\\WIDESEA_WMSServer\\WIDESEA_WMSServer\\Controllers\\Task\\TaskController.cs",
               "RelativeToolTip": "WIDESEA_WMSServer\\Controllers\\Task\\TaskController.cs",
-              "ViewState": "AgIAAFcAAAAAAAAAAAD4v2sAAABMAAAAAAAAAA==",
+              "ViewState": "AgIAAEgAAAAAAAAAAAAEwGEAAAAhAAAAAAAAAA==",
               "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
               "WhenOpened": "2025-11-05T09:03:37.443Z",
               "EditorCaption": ""
             },
             {
               "$type": "Document",
-              "DocumentIndex": 2,
+              "DocumentIndex": 1,
               "Title": "Dt_TaskService.cs",
               "DocumentMoniker": "E:\\GET\\DuiDuoJiLiKu\\\u9879\u76EE\u4EE3\u7801\\WMS\\WIDESEA_WMSServer\\WIDESEA_StorageTaskServices\\Task\\Dt_TaskService.cs",
               "RelativeDocumentMoniker": "WIDESEA_StorageTaskServices\\Task\\Dt_TaskService.cs",
-              "ToolTip": "E:\\GET\\DuiDuoJiLiKu\\\u9879\u76EE\u4EE3\u7801\\WMS\\WIDESEA_WMSServer\\WIDESEA_StorageTaskServices\\Task\\Dt_TaskService.cs",
-              "RelativeToolTip": "WIDESEA_StorageTaskServices\\Task\\Dt_TaskService.cs",
-              "ViewState": "AgIAAK8CAAAAAAAAAAAhwC0DAABoAAAAAAAAAA==",
+              "ToolTip": "E:\\GET\\DuiDuoJiLiKu\\\u9879\u76EE\u4EE3\u7801\\WMS\\WIDESEA_WMSServer\\WIDESEA_StorageTaskServices\\Task\\Dt_TaskService.cs*",
+              "RelativeToolTip": "WIDESEA_StorageTaskServices\\Task\\Dt_TaskService.cs*",
+              "ViewState": "AgIAAMkAAAAAAAAAAAAnwNECAAAIAAAAAAAAAA==",
               "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
               "WhenOpened": "2025-10-31T07:18:07.612Z",
               "EditorCaption": ""
             },
             {
               "$type": "Document",
-              "DocumentIndex": 8,
-              "Title": "Dt_ProductionOutboundOrderService.cs",
-              "DocumentMoniker": "E:\\GET\\DuiDuoJiLiKu\\\u9879\u76EE\u4EE3\u7801\\WMS\\WIDESEA_WMSServer\\WIDESEA_OrderServices\\Dt_ProductionOutboundOrderService.cs",
-              "RelativeDocumentMoniker": "WIDESEA_OrderServices\\Dt_ProductionOutboundOrderService.cs",
-              "ToolTip": "E:\\GET\\DuiDuoJiLiKu\\\u9879\u76EE\u4EE3\u7801\\WMS\\WIDESEA_WMSServer\\WIDESEA_OrderServices\\Dt_ProductionOutboundOrderService.cs",
-              "RelativeToolTip": "WIDESEA_OrderServices\\Dt_ProductionOutboundOrderService.cs",
-              "ViewState": "AgIAADQBAAAAAAAAAAAjwD8BAAAMAAAAAAAAAA==",
-              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
-              "WhenOpened": "2025-11-03T02:13:51.105Z"
-            },
-            {
-              "$type": "Document",
-              "DocumentIndex": 9,
+              "DocumentIndex": 7,
               "Title": "AspNetCoreSchedule.cs",
               "DocumentMoniker": "E:\\GET\\DuiDuoJiLiKu\\\u9879\u76EE\u4EE3\u7801\\WMS\\WIDESEA_WMSServer\\WIDESEA_StorageTaskServices\\AspNetCoreSchedule.cs",
               "RelativeDocumentMoniker": "WIDESEA_StorageTaskServices\\AspNetCoreSchedule.cs",
@@ -164,33 +127,33 @@
             },
             {
               "$type": "Document",
-              "DocumentIndex": 5,
+              "DocumentIndex": 4,
               "Title": "Dt_AllocateOutboundOrderService.cs",
               "DocumentMoniker": "E:\\GET\\DuiDuoJiLiKu\\\u9879\u76EE\u4EE3\u7801\\WMS\\WIDESEA_WMSServer\\WIDESEA_OrderServices\\Dt_AllocateOutboundOrderService.cs",
               "RelativeDocumentMoniker": "WIDESEA_OrderServices\\Dt_AllocateOutboundOrderService.cs",
               "ToolTip": "E:\\GET\\DuiDuoJiLiKu\\\u9879\u76EE\u4EE3\u7801\\WMS\\WIDESEA_WMSServer\\WIDESEA_OrderServices\\Dt_AllocateOutboundOrderService.cs",
               "RelativeToolTip": "WIDESEA_OrderServices\\Dt_AllocateOutboundOrderService.cs",
-              "ViewState": "AgIAABgAAAAAAAAAAAAAACEAAABPAAAAAAAAAA==",
+              "ViewState": "AgIAAMMAAAAAAAAAAAAYwM8AAABRAAAAAAAAAA==",
               "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
               "WhenOpened": "2025-11-03T02:04:06.044Z",
               "EditorCaption": ""
             },
             {
               "$type": "Document",
-              "DocumentIndex": 6,
+              "DocumentIndex": 5,
               "Title": "BoxingInfoService.cs",
               "DocumentMoniker": "E:\\GET\\DuiDuoJiLiKu\\\u9879\u76EE\u4EE3\u7801\\WMS\\WIDESEA_WMSServer\\WIDESEA_StorageBasicServices\\Boxing\\BoxingInfoService.cs",
               "RelativeDocumentMoniker": "WIDESEA_StorageBasicServices\\Boxing\\BoxingInfoService.cs",
               "ToolTip": "E:\\GET\\DuiDuoJiLiKu\\\u9879\u76EE\u4EE3\u7801\\WMS\\WIDESEA_WMSServer\\WIDESEA_StorageBasicServices\\Boxing\\BoxingInfoService.cs",
               "RelativeToolTip": "WIDESEA_StorageBasicServices\\Boxing\\BoxingInfoService.cs",
-              "ViewState": "AgIAAMkAAAAAAAAAAAD4v9YAAAAQAAAAAAAAAA==",
+              "ViewState": "AgIAAGwAAAAAAAAAAAAjwG4AAAAMAAAAAAAAAA==",
               "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
               "WhenOpened": "2025-11-03T02:02:13.16Z",
               "EditorCaption": ""
             },
             {
               "$type": "Document",
-              "DocumentIndex": 10,
+              "DocumentIndex": 8,
               "Title": "LocationInfoService.cs",
               "DocumentMoniker": "E:\\GET\\DuiDuoJiLiKu\\\u9879\u76EE\u4EE3\u7801\\WMS\\WIDESEA_WMSServer\\WIDESEA_StorageBasicServices\\Location\\LocationInfoService.cs",
               "RelativeDocumentMoniker": "WIDESEA_StorageBasicServices\\Location\\LocationInfoService.cs",
@@ -200,18 +163,6 @@
               "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
               "WhenOpened": "2025-11-03T00:41:54.983Z",
               "EditorCaption": ""
-            },
-            {
-              "$type": "Document",
-              "DocumentIndex": 11,
-              "Title": "Basic.cs",
-              "DocumentMoniker": "E:\\GET\\DuiDuoJiLiKu\\\u9879\u76EE\u4EE3\u7801\\WMS\\WIDESEA_WMSServer\\WIDESEA_DTO\\ERP\\Basic.cs",
-              "RelativeDocumentMoniker": "WIDESEA_DTO\\ERP\\Basic.cs",
-              "ToolTip": "E:\\GET\\DuiDuoJiLiKu\\\u9879\u76EE\u4EE3\u7801\\WMS\\WIDESEA_WMSServer\\WIDESEA_DTO\\ERP\\Basic.cs",
-              "RelativeToolTip": "WIDESEA_DTO\\ERP\\Basic.cs",
-              "ViewState": "AgIAAB4AAAAAAAAAAAAQwDMAAAAcAAAAAAAAAA==",
-              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
-              "WhenOpened": "2025-10-31T07:34:59.883Z"
             }
           ]
         }
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_IStorageBasicService/Stock/IStockInfoService.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_IStorageBasicService/Stock/IStockInfoService.cs"
index 0f2ab58..c3c7feb 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_IStorageBasicService/Stock/IStockInfoService.cs"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_IStorageBasicService/Stock/IStockInfoService.cs"
@@ -15,20 +15,6 @@
 
     List<DtLocationInfo> GetStockLocations(List<DtLocationInfo>? locations);
 
-    /// <summary>
-    /// 缁勭洏
-    /// </summary>
-    /// <param name="groupPlate"></param>
-    /// <returns></returns>
-    Task<WebResponseContent> AddGroupPlateAsync(GroupPlate groupPlate);
-
-    /// <summary>
-    /// 瑙g洏
-    /// </summary>
-    /// <param name="groupPlate"></param>
-    /// <returns></returns>
-    Task<WebResponseContent> DeleteGroupPlateAsync(GroupPlate groupPlate);
-
 
     WebResponseContent GetStockView(GetStockSelectViewDto viewDto);
 
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_IStorageTaskService/Task/IDt_TaskService.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_IStorageTaskService/Task/IDt_TaskService.cs"
index ee2da21..0fb8461 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_IStorageTaskService/Task/IDt_TaskService.cs"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_IStorageTaskService/Task/IDt_TaskService.cs"
@@ -98,7 +98,7 @@
     /// </summary>
     /// <param name="palletCode"></param>
     /// <returns></returns>
-    Task<WebResponseContent> OutBoundTaskAsync(string palletCode);
+    Task<WebResponseContent> OutBoundTaskAsync(string palletCode, string remark);
 
     Task<WebResponseContent> OtherOutBoundTaskAsync(List<DtStockInfoDetail> details);
 
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_Model/Models/Basic/Dt_AreaInfo.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_Model/Models/Basic/Dt_AreaInfo.cs"
index 1251671..cf308d4 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_Model/Models/Basic/Dt_AreaInfo.cs"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_Model/Models/Basic/Dt_AreaInfo.cs"
@@ -91,13 +91,6 @@
         ///</summary>
         [SugarColumn(ColumnName="Spare5" ) ]
         public string? Spare5  { get; set;  }
-
-        /// <summary>
-        /// 搴撳尯鏄庣粏
-        /// </summary>
-        [SugarColumn(ColumnName = "搴撳尯鏄庣粏")]
-        [Navigate(NavigateType.OneToMany, nameof(Dt_WareAreaInfo.AreaID))]
-        public List<Dt_WareAreaInfo> Dt_WareAreaInfoDetailList { get; set; }
     }
     
 }
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_Model/Models/Basic/Dt_WareAreaInfo.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_Model/Models/Basic/Dt_WareAreaInfo.cs"
index 66358ca..eb779b3 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_Model/Models/Basic/Dt_WareAreaInfo.cs"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_Model/Models/Basic/Dt_WareAreaInfo.cs"
@@ -13,22 +13,16 @@
     /// 澶�  娉�: 涓婚敭
     /// 榛樿鍊�:
     ///</summary>
-    [SugarColumn(ColumnName = "WareAreaID", IsPrimaryKey = true, IsIdentity = true)]
-    public int WareAreaID { get; set; }
+    [SugarColumn(ColumnName = "Id", IsPrimaryKey = true, IsIdentity = true)]
+    public int Id { get; set; }
 
-    /// <summary>
-    /// 澶�  娉�: 鍖哄煙ID
-    /// 榛樿鍊�:
-    ///</summary>
-    [SugarColumn(ColumnName = "AreaID")]
-    public int AreaID { get; set; }
 
     /// <summary>
     /// 澶�  娉�:搴撳尯浠g爜
     /// 榛樿鍊�:
     ///</summary>
     [SugarColumn(ColumnName = "WareAreaCode")]
-    public string WareAreaCode { get; set; } = null!;
+    public string WareAreaCode { get; set; } 
 
     /// <summary>
     /// 澶�  娉�:搴撳尯鍚嶇О
@@ -41,20 +35,6 @@
     /// 澶�  娉�:搴撳尯绫诲瀷
     /// 榛樿鍊�:
     ///</summary>
-    [SugarColumn(ColumnName = "WareAreaType")]
-    public string? WareAreaType { get; set; }
-
-    /// <summary>
-    /// 澶�  娉�:搴撳尯鎻忚堪
-    /// 榛樿鍊�:
-    ///</summary>
-    [SugarColumn(ColumnName = "WareAreaDesc")]
-    public string? WareAreaDesc { get; set; }
-
-    /// <summary>
-    /// 澶�  娉�:鐘舵��
-    /// 榛樿鍊�:
-    ///</summary>
-    [SugarColumn(ColumnName = "Status")]
-    public int? Status { get; set; }
+    [SugarColumn(ColumnName = "WareAreaId")]
+    public string? WareAreaId { get; set; }
 }
\ No newline at end of file
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_Model/Models/BasicModel/DtStockInfoDetail.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_Model/Models/BasicModel/DtStockInfoDetail.cs"
index 09ff0d3..053fd52 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_Model/Models/BasicModel/DtStockInfoDetail.cs"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_Model/Models/BasicModel/DtStockInfoDetail.cs"
@@ -117,5 +117,12 @@
     /// 璋冩嫧浠撳簱
     /// </summary>
     [SugarColumn(IsNullable = true, ColumnDescription = "璋冩嫧浠撳簱")]
+    public string AllocateWarehouse { get; set; }
+
+    /// <summary>
+    /// 澶囨敞
+    /// </summary>
+    [SugarColumn(IsNullable = true, ColumnDescription = "澶囨敞")]
     public string Remark { get; set; }
+    
 }
\ No newline at end of file
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_Model/Models/BasicModel/Dt_InventoryRecord.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_Model/Models/BasicModel/Dt_InventoryRecord.cs"
new file mode 100644
index 0000000..eed5f37
--- /dev/null
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_Model/Models/BasicModel/Dt_InventoryRecord.cs"
@@ -0,0 +1,54 @@
+锘縰sing Masuit.Tools.Core.Validator;
+using SqlSugar;
+using System.ComponentModel.DataAnnotations;
+using WIDESEA_Core.DB.Models;
+
+namespace WIDESEA_Model.Models
+{
+    [SugarTable(nameof(Dt_InventoryRecord), "鐩樼偣璁板綍")]
+    public class Dt_InventoryRecord : BaseEntity
+    {
+        /// <summary>
+        /// 涓婚敭
+        /// </summary>
+        [SugarColumn(IsPrimaryKey = true, IsIdentity = true, ColumnDescription = "涓婚敭")]
+        public int Id { get; set; }
+
+        /// <summary>
+        /// 鎵樼洏缂栫爜
+        /// </summary>
+        [Required]
+        [SugarColumn(IsNullable = false, Length = 50, ColumnDescription = "鎵樼洏缂栧彿")]
+        public string PalletCode { get; set; }
+
+        /// <summary>
+        /// 鐗╂枡缂栫爜
+        /// </summary>
+        [SugarColumn(IsNullable = true, Length = 255, ColumnDescription = "鐗╂枡缂栫爜")]
+        public string MaterielCode { get; set; }
+
+        /// <summary>
+        /// 鐗╂枡鍚嶇О
+        /// </summary>
+        [SugarColumn(IsNullable = true, Length = 255, ColumnDescription = "鐗╂枡鍚嶇О")]
+        public string MaterielName { get; set; }
+
+        /// <summary>
+        /// 鏁伴噺
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDescription = "鏁伴噺")]
+        public decimal Quantity { get; set; }
+
+        /// <summary>
+        /// 鐘舵��
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDescription = "鐘舵��")]
+        public int Status { get; set; }
+
+        /// <summary>
+        /// 澶囨敞
+        /// </summary>
+        [SugarColumn(IsNullable = true,Length =255, ColumnDescription = "澶囨敞")]
+        public string Remark { get; set; }
+    }
+}
\ No newline at end of file
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_Model/Models/ERP/WMS_\351\207\207\350\264\255\345\217\212\346\210\220\345\223\201\345\205\245\345\272\223\346\270\205\345\215\225_ST.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_Model/Models/ERP/WMS_\351\207\207\350\264\255\345\217\212\346\210\220\345\223\201\345\205\245\345\272\223\346\270\205\345\215\225_ST.cs"
index 42e9c80..c1d967e 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_Model/Models/ERP/WMS_\351\207\207\350\264\255\345\217\212\346\210\220\345\223\201\345\205\245\345\272\223\346\270\205\345\215\225_ST.cs"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_Model/Models/ERP/WMS_\351\207\207\350\264\255\345\217\212\346\210\220\345\223\201\345\205\245\345\272\223\346\270\205\345\215\225_ST.cs"
@@ -1,4 +1,5 @@
-锘縰sing System;
+锘縰sing SqlSugar;
+using System;
 using System.Collections.Generic;
 using System.Linq;
 using System.Text;
@@ -8,25 +9,44 @@
 {
     public class WMS_閲囪喘鍙婃垚鍝佸叆搴撴竻鍗昣ST
     {
+        [SugarColumn(ColumnName = "鍗曞彿", Length = 255)]
         public string 鍗曞彿 { get; set; }
+        [SugarColumn(ColumnName = "闇�姹傚垎绫�", Length = 255)]
         public string 闇�姹傚垎绫� { get; set; }
+        [SugarColumn(ColumnName = "鍗曟嵁绫诲瀷", Length = 255)]
         public string 鍗曟嵁绫诲瀷 { get; set; }
+        [SugarColumn(ColumnName = "鍏ュ簱浠撳簱缂栫爜", Length = 255)]
         public string 鍏ュ簱浠撳簱缂栫爜 { get; set; }
+        [SugarColumn(ColumnName = "鍏ュ簱浠撳簱鍚嶇О", Length = 255)]
         public string 鍏ュ簱浠撳簱鍚嶇О { get; set; }
+        [SugarColumn(ColumnName = "鏃ユ湡", Length = 255)]
         public string 鏃ユ湡 { get; set; }
+        [SugarColumn(ColumnName = "琛屽彿", Length = 255)]
         public int 琛屽彿 { get; set; }
+        [SugarColumn(ColumnName = "浜у搧鍥惧彿", Length = 255)]
         public string 浜у搧鍥惧彿 { get; set; }
+        [SugarColumn(ColumnName = "鏂欏彿", Length = 255)]
         public string 鏂欏彿 { get; set; }
+        [SugarColumn(ColumnName = "鍝佸悕", Length = 255)]
         public string 鍝佸悕 { get; set; }
         public decimal 鍗曢噸 { get; set; }
+        [SugarColumn(ColumnName = "瑙勬牸", Length = 255)]
         public string 瑙勬牸 { get; set; }
+        [SugarColumn(ColumnName = "鍗曚綅", Length = 255)]
         public string 鍗曚綅 { get; set; }
+        [SugarColumn(ColumnName = "鐢ㄥ弸鏉愯川", Length = 255)]
         public string 鐢ㄥ弸鏉愯川 { get; set; }
+        [SugarColumn(ColumnName = "鍏ュ簱鏁伴噺", Length = 255)]
         public decimal 鍏ュ簱鏁伴噺 { get; set; }
+        [SugarColumn(ColumnName = "鍗曟嵁鐘舵��", Length = 255)]
         public string 鍗曟嵁鐘舵�� { get; set; }
+        [SugarColumn(ColumnName = "鎵ц鏍囧噯鍙�", Length = 255)]
         public string 鎵ц鏍囧噯鍙� { get; set; }
+        [SugarColumn(ColumnName = "鍝佺墝", Length = 255)]
         public string 鍝佺墝 { get; set; }
+        [SugarColumn(ColumnName = "鍞竴ID", Length = 255)]
         public string 鍞竴ID { get; set; }
+        [SugarColumn(ColumnName = "鏂欏彿ID", Length = 255)]
         public string 鏂欏彿ID { get; set; }
     }
 }
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_OrderServices/Dt_AllocateOutboundOrderService.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_OrderServices/Dt_AllocateOutboundOrderService.cs"
index 26f63aa..f6b0229 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_OrderServices/Dt_AllocateOutboundOrderService.cs"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_OrderServices/Dt_AllocateOutboundOrderService.cs"
@@ -40,6 +40,7 @@
         private readonly ILocationStatusChangeRecordRepository _locationStatusChangeRecordRepository;
         private readonly IDt_OrderOutDetailsRepository _outDetailsRepository;
         private readonly IDt_AreaInfoRepository _areaInfoRepository;
+        private readonly IDt_WareAreaInfoRepository _wareAreaInfoRepository;
 
         public Dt_AllocateOutboundOrderService(IDt_AllocateOutboundOrderRepository BaseDal,
                                         IUnitOfWorkManage unitOfWorkManage,
@@ -52,7 +53,8 @@
                                         IDt_TaskRepository taskRepository,
                                         ILocationStatusChangeRecordRepository locationStatusChangeRecordRepository,
                                         IDt_OrderOutDetailsRepository outDetailsRepository,
-                                        IDt_AreaInfoRepository areaInfoRepository) : base(BaseDal)
+                                        IDt_AreaInfoRepository areaInfoRepository,
+                                        IDt_WareAreaInfoRepository wareAreaInfoRepository) : base(BaseDal)
         {
             _unitOfWorkManage = unitOfWorkManage;
             _allocateoutboundOrderDetailRepository = allocateoutboundOrderDetailRepository;
@@ -65,6 +67,7 @@
             _locationStatusChangeRecordRepository = locationStatusChangeRecordRepository;
             _outDetailsRepository = outDetailsRepository;
             _areaInfoRepository = areaInfoRepository;
+            _wareAreaInfoRepository = wareAreaInfoRepository;
         }
         public WebResponseContent GetAllocateOutboundOrder(OutboundOrderGetDTO outboundOrderGetDTO)
         {
@@ -153,12 +156,14 @@
             {
                 foreach (var orderId in requestOut.orderIds)
                 {
-                    Dt_AreaInfo areaInfo = null;
+                    Dt_WareAreaInfo? wareAreaInfo = null;
                     if (requestOut.Warehouse != "")
-                        areaInfo = _areaInfoRepository.QueryFirst(x => x.AreaCode == requestOut.Warehouse);
+                        wareAreaInfo = _wareAreaInfoRepository.QueryFirst(x => x.WareAreaCode == requestOut.Warehouse);
+                    else
+                        return content.Error("璇烽�夋嫨璋冩嫧浠撳簱");
 
 
-                    List<RequestTaskDto> taskDtos = new List<RequestTaskDto>();
+                        List<RequestTaskDto> taskDtos = new List<RequestTaskDto>();
                     Dt_AllocateOutboundOrderDetail allocateoutboundOrderdetail = _allocateoutboundOrderDetailRepository.QueryFirst(x => x.Id == orderId);
                     Dt_AllocateOutboundOrder outboundOrder = BaseDal.QueryFirst(x => x.Id == allocateoutboundOrderdetail.OrderId);
 
@@ -187,7 +192,6 @@
                                 AreaId = Convert.ToInt32(2),
                             };
                             taskDtos.Add(task);
-                            item.StockInfoDetails.Where(x => x.MaterielCode == allocateoutboundOrderdetail.MaterielCode).FirstOrDefault().Status = (int)StockStateEmun.鍑哄簱閿佸畾;
                             item.StockStatus = (int)StockStateEmun.鍑哄簱閿佸畾;
                             item.OrderNo = outboundOrder.UpperOrderNo;
 
@@ -201,8 +205,8 @@
                                     ERPOrderId = allocateoutboundOrderdetail.ERPOrderId,
                                     MaterielCode = allocateoutboundOrderdetail.MaterielCode,
                                     MaterielName = allocateoutboundOrderdetail.MaterielName,
-                                    AllocateWarehouse = areaInfo == null ? item.StockInfoDetails.Where(x => x.MaterielCode == allocateoutboundOrderdetail.MaterielCode).FirstOrDefault().Warehouse : areaInfo.AreaName,
-                                    AllocateWarehouseId = areaInfo == null ? item.StockInfoDetails.Where(x => x.MaterielCode == allocateoutboundOrderdetail.MaterielCode).FirstOrDefault().WareHouseId : areaInfo.AreaCode,
+                                    AllocateWarehouse = wareAreaInfo.WareAreaName,
+                                    AllocateWarehouseId = wareAreaInfo.WareAreaCode,
                                     Warehouse = "鏅鸿兘绔嬪簱",
                                     WareHouseId = "107",
                                     OutboundQuantity = x.OutboundQuantity,
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_OrderServices/Dt_InboundOrderService.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_OrderServices/Dt_InboundOrderService.cs"
index 73a7a9b..13e300e 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_OrderServices/Dt_InboundOrderService.cs"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_OrderServices/Dt_InboundOrderService.cs"
@@ -1,5 +1,6 @@
 锘縰sing MailKit.Search;
 using Masuit.Tools;
+using Newtonsoft.Json;
 using WIDESEA_Common;
 using WIDESEA_Core;
 using WIDESEA_Core.BaseRepository;
@@ -62,12 +63,12 @@
                         inboundOrders.Add(InboundOrder);
                     }
                 }
-                PrintInbound(inboundOrders);
-                return content.OK("鎴愬姛");
+                content=PrintInbound(inboundOrders);
+                return content;
             }
             catch (Exception ex)
             {
-                return content.Error(ex.Message);
+                return content.Error("鏈煡閿欒锛岃鑱旂郴绠$悊鍛�");
             }
         }
 
@@ -81,12 +82,12 @@
                 {
                     PalletCodes.Add(GetOrderPintCode("PalletCodes"));
                 }
-                PrintPallet(PalletCodes);
+                 content= PrintPallet(PalletCodes);
                 return content.OK();
             }
             catch (Exception ex)
             {
-                return content.Error(ex.Message);
+                return content.Error("鏈煡閿欒锛岃鑱旂郴绠$悊鍛�");
             }
         }
         public string GetOrderPintCode(string printCode)
@@ -108,7 +109,7 @@
             SqlSugarHelper.DbWMS.Updateable(PrintSetting).ExecuteCommand();
             return PrintCode;
         }
-        public void PrintPallet(List<string> palletCodes)
+        public WebResponseContent PrintPallet(List<string> palletCodes)
         {
             var configs = _configService.GetConfigsByCategory(CateGoryConst.CONFIG_SYS_IPAddress);
             var Base = configs.FirstOrDefault(x => x.ConfigKey == SysConfigConst.PrintIPAddress)?.ConfigValue;
@@ -119,10 +120,12 @@
             }
             var IpAddress = Base + ipAddress;
             var result = HttpsClient.PostAsync(IpAddress, palletCodes.ToJsonString()).Result;
+            return JsonConvert.DeserializeObject<WebResponseContent>(result);
         }
 
-        public void PrintInbound(List<Dt_InboundOrder> orders)
+        public WebResponseContent PrintInbound(List<Dt_InboundOrder> orders)
         {
+            WebResponseContent content = new WebResponseContent();
             var configs = _configService.GetConfigsByCategory(CateGoryConst.CONFIG_SYS_IPAddress);
             var Base = configs.FirstOrDefault(x => x.ConfigKey == SysConfigConst.PrintIPAddress)?.ConfigValue;
             var ipAddress = configs.FirstOrDefault(x => x.ConfigKey == SysConfigConst.PrintInboundOrder)?.ConfigValue;
@@ -132,6 +135,7 @@
             }
             var IpAddress = Base + ipAddress;
             var result = HttpsClient.PostAsync(IpAddress, orders.ToJsonString()).Result;
+            return JsonConvert.DeserializeObject<WebResponseContent>(result);
         }
     }
 }
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_StorageBasicServices/Boxing/BoxingInfoService.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_StorageBasicServices/Boxing/BoxingInfoService.cs"
index 737dc85..ba26209 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_StorageBasicServices/Boxing/BoxingInfoService.cs"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_StorageBasicServices/Boxing/BoxingInfoService.cs"
@@ -1,5 +1,6 @@
 锘縰sing Mapster;
 using Masuit.Tools;
+using Masuit.Tools.Models;
 using SqlSugar;
 using System.ComponentModel.DataAnnotations;
 using System.Linq.Expressions;
@@ -18,11 +19,13 @@
     private readonly IUnitOfWorkManage _unitOfWorkManage;
     private readonly ILocationStatusChangeRecordRepository _locationStatusChangeRecordRepository;
     private readonly IDt_InboundOrderRepository _inboundOrderRepository;
-    public BoxingInfoService(IBoxingInfoRepository BaseDal,IUnitOfWorkManage unitOfWorkManage, ILocationStatusChangeRecordRepository locationStatusChangeRecordRepository, IDt_InboundOrderRepository inboundOrderRepository) : base(BaseDal)
+    private readonly IBoxingInfoDetailRepository _boxingInfoDetailRepository;
+    public BoxingInfoService(IBoxingInfoRepository BaseDal,IUnitOfWorkManage unitOfWorkManage, ILocationStatusChangeRecordRepository locationStatusChangeRecordRepository, IDt_InboundOrderRepository inboundOrderRepository,IBoxingInfoDetailRepository boxingInfoDetailRepository) : base(BaseDal)
     {
         _unitOfWorkManage = unitOfWorkManage;
         _locationStatusChangeRecordRepository = locationStatusChangeRecordRepository;
         _inboundOrderRepository = inboundOrderRepository;
+        _boxingInfoDetailRepository = boxingInfoDetailRepository;
     }
     public override PageGridData<DtBoxingInfo> GetPageData(PageDataOptions options)
     {
@@ -92,7 +95,7 @@
             return content.Error(ex.Message);
         }
     }
-    
+
 
     public async Task<WebResponseContent> AddGroupPlateAsync(GroupPlate groupPlate)
     {
@@ -104,108 +107,46 @@
                 return content.Error("鍙傛暟閿欒");
             }
             var infos = await BaseDal.QueryFirstNavAsync(x => x.PalletCode == groupPlate.palletCode);
-            if (!infos.IsNullOrEmpty())
+            List<DtBoxingInfoDetail> details = new List<DtBoxingInfoDetail>();
+            if (infos != null)
             {
-                infos.StockStatus = (int)StockStateEmun.缁勭洏鎾ら攢;
-                DtBoxingInfo_Hty stockhty = infos.Adapt<DtBoxingInfo_Hty>();
-                stockhty.ModifyDate = DateTime.Now;
-
-                List<DtBoxingInfoDetail> details = new List<DtBoxingInfoDetail>();
                 foreach (var item in groupPlate.groups)
                 {
-                    foreach (var info in infos.BoxingInfoDetails)
+                    if (infos.BoxingInfoDetails.Count > 0)
                     {
-                        if (item.orderNo == info.OrderNo)
+                        var detail = _boxingInfoDetailRepository.QueryFirst(x => x.OrderNo == item.orderNo);
+                        if (detail != null)
                         {
-                            var x = details.Where(x => x.MaterielCode == info.MaterielCode && x.Warehouse == info.Warehouse && x.DrawingNumber == info.DrawingNumber && x.DemandClassification == info.DemandClassification && x.Quantity != info.Quantity).FirstOrDefault();
-                            if(x != null)
+                            DtBoxingInfoDetail boxdetail = new DtBoxingInfoDetail()
                             {
-                                details.Remove(x);
-                                x.MaterielCode = info.MaterielCode;
-                                x.MaterielName = info.MaterielName;
-                                x.DemandClassification = info.DemandClassification;
-                                x.Warehouse = info.Warehouse;
-                                x.OrderNo = info.OrderNo;
-                                x.Unit = info.Unit;
-                                x.WareHouseId = info.WareHouseId;
-                                x.Specs = info.Specs;
-                                x.Weight = info.Weight;
-                                x.Quantity = x.Quantity + item.quantity;
-                                x.DrawingNumber = info.DrawingNumber;
-                                x.Date = info.Date;
-                                details.Add(x);
-                            }
-                            else
-                            {
-                                DtBoxingInfoDetail detail = new DtBoxingInfoDetail()
-                                {
-                                    MaterielCode = info.MaterielCode,
-                                    MaterielName = info.MaterielName,
-                                    DemandClassification = info.DemandClassification,
-                                    Warehouse = info.Warehouse,
-                                    OrderNo = info.OrderNo,
-                                    Unit = info.Unit,
-                                    Specs = info.Specs,
-                                    Weight = info.Weight,
-                                    WareHouseId = info.WareHouseId,
-                                    Quantity = item.quantity,
-                                    DrawingNumber = info.DrawingNumber,
-                                    Date = info.Date,
-                                };
-                                details.Add(detail);
-                            }  
+                                MaterielCode = detail.MaterielCode,
+                                MaterielName = detail.MaterielName,
+                                DemandClassification = detail.DemandClassification,
+                                Warehouse = detail.Warehouse,
+                                OrderNo = detail.OrderNo,
+                                Unit = detail.Unit,
+                                Specs = detail.Specs,
+                                Weight = detail.Weight,
+                                WareHouseId = detail.WareHouseId,
+                                Quantity = item.quantity,
+                                DrawingNumber = detail.DrawingNumber,
+                                Date = detail.Date,
+                            };
+                            details.Add(boxdetail);
                         }
                         else
                         {
-                            var InboundOrder = _inboundOrderRepository.QueryFirst(x => x.OrderNo == item.orderNo);
-
-                            if (InboundOrder != null)
-                            {
-                                var x = details.Where(x => x.MaterielCode == InboundOrder.MaterialNo && x.Warehouse == InboundOrder.WarehouseName && x.DrawingNumber == InboundOrder.ProductDrawingNumber && x.DemandClassification == InboundOrder.DemandClassification).FirstOrDefault();
-                                if (x != null)
-                                {
-                                    details.Remove(x);
-                                    x.MaterielCode = InboundOrder.MaterialNo;
-                                    x.MaterielName = InboundOrder.MaterialName;
-                                    x.DemandClassification = InboundOrder.DemandClassification;
-                                    x.Warehouse = InboundOrder.WarehouseName;
-                                    x.OrderNo = InboundOrder.UpperOrderNo;
-                                    x.Unit = InboundOrder.Unit;
-                                    x.WareHouseId = InboundOrder.WareHouseId;
-                                    x.Specs = InboundOrder.Specs;
-                                    x.Weight = InboundOrder.Weight;
-                                    x.Quantity = x.Quantity + item.quantity;
-                                    x.DrawingNumber = InboundOrder.ProductDrawingNumber;
-                                    x.Date = InboundOrder.Datetime;
-                                    details.Add(x);
-                                }
-                                else
-                                {
-                                    DtBoxingInfoDetail detail = new DtBoxingInfoDetail()
-                                    {
-                                        MaterielCode = InboundOrder.MaterialNo,
-                                        MaterielName = InboundOrder.MaterialName,
-                                        DemandClassification = InboundOrder.DemandClassification,
-                                        Warehouse = InboundOrder.WarehouseName,
-                                        OrderNo = InboundOrder.UpperOrderNo,
-                                        Unit = InboundOrder.Unit,
-                                        Specs = InboundOrder.Specs,
-                                        Weight = InboundOrder.Weight,
-                                        WareHouseId = InboundOrder.WareHouseId,
-                                        Quantity = item.quantity,
-                                        DrawingNumber = InboundOrder.ProductDrawingNumber,
-                                        Date = InboundOrder.Datetime,
-                                    };
-                                    details.Add(detail);
-                                }
-                            }
-                            else
-                            {
-                                return content.Error("鏈壘鍒板叆搴撳崟鎹俊鎭�");
-                            }
+                            details = GetDtBoxingInfoDetails(item, details);
                         }
                     }
+                    else
+                    {
+                        details = GetDtBoxingInfoDetails(item, details);
+                    }
                 }
+                infos.StockStatus = (int)StockStateEmun.缁勭洏鎾ら攢;
+                DtBoxingInfo_Hty stockhty = infos.Adapt<DtBoxingInfo_Hty>();
+                stockhty.ModifyDate = DateTime.Now;
                 DtBoxingInfo boxing = new DtBoxingInfo()
                 {
                     PalletCode = groupPlate.palletCode,
@@ -215,65 +156,67 @@
                 await _unitOfWorkManage.UseTranAsync(async () =>
                 {
                     await BaseDal.Db.DeleteNav<DtBoxingInfo>(x => x.Id == infos.Id)
-                                            .Include(x => x.BoxingInfoDetails)
-                                            .ExecuteCommandAsync();
+                                        .Include(x => x.BoxingInfoDetails)
+                                        .ExecuteCommandAsync();
                     await AddStockHtyAsync(stockhty);
+
                     await BaseDal.AddDataNavAsync(boxing);
                 });
-                content.OK("缁勭洏鎴愬姛");
-
+                return content.OK("缁勭洏鎴愬姛");
             }
             else
             {
-                List<DtBoxingInfoDetail> details = new List<DtBoxingInfoDetail>();
                 foreach (var item in groupPlate.groups)
                 {
-                    var InboundOrder = _inboundOrderRepository.QueryFirst(x => x.OrderNo == item.orderNo);
+                    #region  
+                    //var InboundOrder = _inboundOrderRepository.QueryFirst(x => x.OrderNo == item.orderNo);
 
-                    if (InboundOrder != null)
-                    {
-                        var x = details.Where(x => x.MaterielCode == InboundOrder.MaterialNo && x.Warehouse == InboundOrder.WarehouseName && x.DrawingNumber == InboundOrder.ProductDrawingNumber && x.DemandClassification == InboundOrder.DemandClassification).FirstOrDefault();
-                        if (x != null)
-                        {
-                            details.Remove(x);
-                            x.MaterielCode = InboundOrder.MaterialNo;
-                            x.MaterielName = InboundOrder.MaterialName;
-                            x.DemandClassification = InboundOrder.DemandClassification;
-                            x.Warehouse = InboundOrder.WarehouseName;
-                            x.OrderNo = InboundOrder.UpperOrderNo;
-                            x.Unit = InboundOrder.Unit;
-                            x.WareHouseId = InboundOrder.WareHouseId;
-                            x.Specs = InboundOrder.Specs;
-                            x.Weight = InboundOrder.Weight;
-                            x.Quantity = x.Quantity + item.quantity;
-                            x.DrawingNumber = InboundOrder.ProductDrawingNumber;
-                            x.Date = InboundOrder.Datetime;
-                            details.Add(x);
-                        }
-                        else
-                        {
-                            DtBoxingInfoDetail detail = new DtBoxingInfoDetail()
-                            {
-                                MaterielCode = InboundOrder.MaterialNo,
-                                MaterielName = InboundOrder.MaterialName,
-                                DemandClassification = InboundOrder.DemandClassification,
-                                Warehouse = InboundOrder.WarehouseName,
-                                OrderNo = InboundOrder.UpperOrderNo,
-                                Unit = InboundOrder.Unit,
-                                Specs = InboundOrder.Specs,
-                                Weight = InboundOrder.Weight,
-                                WareHouseId = InboundOrder.WareHouseId,
-                                Quantity = item.quantity,
-                                DrawingNumber = InboundOrder.ProductDrawingNumber,
-                                Date = InboundOrder.Datetime,
-                            };
-                            details.Add(detail);
-                        }
-                    }
-                    else
-                    {
-                        return content.Error("鏈壘鍒板叆搴撳崟鎹俊鎭�");
-                    }
+                    //if (InboundOrder != null)
+                    //{
+                    //    var x = details.Where(x => x.MaterielCode == InboundOrder.MaterialNo && x.Warehouse == InboundOrder.WarehouseName && x.DrawingNumber == InboundOrder.ProductDrawingNumber && x.DemandClassification == InboundOrder.DemandClassification).FirstOrDefault();
+                    //    if (x != null)
+                    //    {
+                    //        details.Remove(x);
+                    //        x.MaterielCode = InboundOrder.MaterialNo;
+                    //        x.MaterielName = InboundOrder.MaterialName;
+                    //        x.DemandClassification = InboundOrder.DemandClassification;
+                    //        x.Warehouse = InboundOrder.WarehouseName;
+                    //        x.OrderNo = InboundOrder.OrderNo;
+                    //        x.Unit = InboundOrder.Unit;
+                    //        x.WareHouseId = InboundOrder.WareHouseId;
+                    //        x.Specs = InboundOrder.Specs;
+                    //        x.Weight = InboundOrder.Weight;
+                    //        x.Quantity = x.Quantity + item.quantity;
+                    //        x.DrawingNumber = InboundOrder.ProductDrawingNumber;
+                    //        x.Date = InboundOrder.Datetime;
+                    //        details.Add(x);
+                    //    }
+                    //    else
+                    //    {
+                    //        DtBoxingInfoDetail detail = new DtBoxingInfoDetail()
+                    //        {
+                    //            MaterielCode = InboundOrder.MaterialNo,
+                    //            MaterielName = InboundOrder.MaterialName,
+                    //            DemandClassification = InboundOrder.DemandClassification,
+                    //            Warehouse = InboundOrder.WarehouseName,
+                    //            OrderNo = InboundOrder.OrderNo,
+                    //            Unit = InboundOrder.Unit,
+                    //            Specs = InboundOrder.Specs,
+                    //            Weight = InboundOrder.Weight,
+                    //            WareHouseId = InboundOrder.WareHouseId,
+                    //            Quantity = item.quantity,
+                    //            DrawingNumber = InboundOrder.ProductDrawingNumber,
+                    //            Date = InboundOrder.Datetime,
+                    //        };
+                    //        details.Add(detail);
+                    //    }
+                    //}
+                    //else
+                    //{
+                    //    return content.Error("鏈壘鍒板叆搴撳崟鎹俊鎭�");
+                    //}
+                    #endregion
+                    details = GetDtBoxingInfoDetails(item,details);
                 }
                 DtBoxingInfo boxing = new DtBoxingInfo()
                 {
@@ -282,15 +225,66 @@
                     BoxingInfoDetails = details
                 };
                 await BaseDal.AddDataNavAsync(boxing);
-                content.OK("缁勭洏鎴愬姛");
+                return content.OK("缁勭洏鎴愬姛");
             }
-            return content;
         }
         catch (Exception ex)
         {
             return content.Error(ex.Message);
         }
     }
+
+
+    public List<DtBoxingInfoDetail> GetDtBoxingInfoDetails(GroupPlateInfo info, List<DtBoxingInfoDetail> details)
+    {
+        var InboundOrder = _inboundOrderRepository.QueryFirst(x => x.OrderNo == info.orderNo);
+        if (InboundOrder != null)
+        {
+            var x = details.Where(x => x.MaterielCode == InboundOrder.MaterialNo && x.Warehouse == InboundOrder.WarehouseName && x.DrawingNumber == InboundOrder.ProductDrawingNumber && x.DemandClassification == InboundOrder.DemandClassification).FirstOrDefault();
+            if (x != null)
+            {
+                details.Remove(x);
+                x.MaterielCode = InboundOrder.MaterialNo;
+                x.MaterielName = InboundOrder.MaterialName;
+                x.DemandClassification = InboundOrder.DemandClassification;
+                x.Warehouse = InboundOrder.WarehouseName;
+                x.OrderNo = InboundOrder.OrderNo;
+                x.Unit = InboundOrder.Unit;
+                x.WareHouseId = InboundOrder.WareHouseId;
+                x.Specs = InboundOrder.Specs;
+                x.Weight = InboundOrder.Weight;
+                x.Quantity = x.Quantity + info.quantity;
+                x.DrawingNumber = InboundOrder.ProductDrawingNumber;
+                x.Date = InboundOrder.Datetime;
+                details.Add(x);
+            }
+            else
+            {
+                DtBoxingInfoDetail boxdetail = new DtBoxingInfoDetail()
+                {
+                    MaterielCode = InboundOrder.MaterialNo,
+                    MaterielName = InboundOrder.MaterialName,
+                    DemandClassification = InboundOrder.DemandClassification,
+                    Warehouse = InboundOrder.WarehouseName,
+                    OrderNo = InboundOrder.OrderNo,
+                    Unit = InboundOrder.Unit,
+                    Specs = InboundOrder.Specs,
+                    Weight = InboundOrder.Weight,
+                    WareHouseId = InboundOrder.WareHouseId,
+                    Quantity = info.quantity,
+                    DrawingNumber = InboundOrder.ProductDrawingNumber,
+                    Date = InboundOrder.Datetime,
+                };
+                details.Add(boxdetail);
+            }
+            return details;
+        }
+        else
+        {
+            throw new Exception($"鏈壘鍒板叆搴撳崟鎹畕info.orderNo}");
+        }
+    }
+
     #endregion
 
     #region 瑙g洏
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_StorageBasicServices/Stock/StockInfoService.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_StorageBasicServices/Stock/StockInfoService.cs"
index 5a9e697..2a555ff 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_StorageBasicServices/Stock/StockInfoService.cs"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_StorageBasicServices/Stock/StockInfoService.cs"
@@ -29,7 +29,7 @@
 
 public class StockInfoService : ServiceBase<DtStockInfo, IStockInfoRepository>, IStockInfoService
 {
-    private readonly ILocationStatusChangeRecordRepository _locationStatusChangeRecordRepository; 
+    private readonly ILocationStatusChangeRecordRepository _locationStatusChangeRecordRepository;
     private readonly IDt_InboundOrderRepository _inboundOrderRepository;
     private readonly IUnitOfWorkManage _unitOfWorkManage;
     private readonly IStockInfoDetailRepository _stockInfoDetailRepository;
@@ -38,7 +38,7 @@
     private readonly IDt_TaskRepository _taskRepository;
     private readonly IDt_OrderOutDetailsRepository _outDetailsRepository;
 
-    public StockInfoService(IStockInfoRepository BaseDal, 
+    public StockInfoService(IStockInfoRepository BaseDal,
                                 ILocationStatusChangeRecordRepository locationStatusChangeRecordRepository,
                                 IDt_InboundOrderRepository inboundOrderRepository,
                                 IUnitOfWorkManage unitOfWorkManage,
@@ -108,7 +108,7 @@
             }
             else if (item.Name.Contains("areaId"))
             {
-                areaId = x => x.LocationInfo.AreaId== Convert.ToInt32(item.Value);
+                areaId = x => x.LocationInfo.AreaId == Convert.ToInt32(item.Value);
             }
             else if (item.Name.Contains("materielCode"))
             {
@@ -248,7 +248,7 @@
                                     .WhereIF(!viewDto.materielCode.IsNullOrEmpty(),
                                         x => x.StockInfoDetails.Any(d => d.MaterielCode == viewDto.materielCode && d.Quantity > 0))
                                     .Select(x => new DtStockInfo
-                                    { 
+                                    {
                                         Id = x.Id,
                                         PalletCode = x.PalletCode,
                                         LocationCode = x.LocationCode,
@@ -270,9 +270,9 @@
                     stockNew = stocks.Where(s => s.LocationInfo != null && locationInfos.Contains(s.LocationInfo)).ToList();
                 }
 
-                var result = stockNew.Skip((maxPage-1) * 10).Take(10).Select(s => new StockSelectViewDTO
+                var result = stockNew.Skip((maxPage - 1) * 10).Take(10).Select(s => new StockSelectViewDTO
                 {
-                    Id =s.Id,
+                    Id = s.Id,
 
                     MaterielCode = s.StockInfoDetails
                     .FirstOrDefault()?.MaterielCode ?? string.Empty,
@@ -387,172 +387,5 @@
         return result;
     }
 
-    #endregion
-
-    #region 缁勭洏
-    public async Task<WebResponseContent> AddGroupPlateAsync(GroupPlate groupPlate)
-    {
-        WebResponseContent content = new WebResponseContent();
-        try
-        {
-            if (groupPlate == null || groupPlate.OrderNos.IsNullOrEmpty() || groupPlate.palletCode.IsNullOrEmpty())
-            {
-                return content.Error("鍙傛暟閿欒");
-            }
-            var info = await BaseDal.QueryFirstAsync(x => x.PalletCode == groupPlate.palletCode);
-            if (!info.IsNullOrEmpty())
-            {
-                content.Error("璇ユ墭鐩樺凡瀛樺湪缁勭洏");
-            }
-            else
-            {
-                List<DtStockInfoDetail> details = new List<DtStockInfoDetail>();
-                foreach (var item in groupPlate.OrderNos)
-                {
-                    var InboundOrder = _inboundOrderRepository.QueryFirst(x => x.OrderNo == item);
-
-                    if (InboundOrder != null)
-                    {
-                        var x = details.Where(x => x.MaterielCode == InboundOrder.MaterialNo && x.Warehouse == InboundOrder.WarehouseName && x.DrawingNumber == InboundOrder.ProductDrawingNumber && x.DemandClassification == InboundOrder.DemandClassification).FirstOrDefault();
-                        if (x != null)
-                        {
-                            details.Remove(x);
-                            x.MaterielCode = InboundOrder.MaterialNo;
-                            x.MaterielName = InboundOrder.MaterialName;
-                            x.DemandClassification = InboundOrder.DemandClassification;
-                            x.Warehouse = InboundOrder.WarehouseName;
-                            x.OrderNo = InboundOrder.UpperOrderNo;
-                            x.Unit = InboundOrder.Unit;
-                            x.Specs = InboundOrder.Specs;
-                            x.Weight = InboundOrder.Weight;
-                            x.Quantity = x.Quantity + InboundOrder.Quantity;
-                            x.DrawingNumber = InboundOrder.ProductDrawingNumber;
-                            x.Date = InboundOrder.Datetime;
-                            details.Add(x);
-                        }
-                        else
-                        {
-                            DtStockInfoDetail detail = new DtStockInfoDetail()
-                            {
-                                MaterielCode = InboundOrder.MaterialNo,
-                                MaterielName = InboundOrder.MaterialName,
-                                DemandClassification = InboundOrder.DemandClassification,
-                                Warehouse = InboundOrder.WarehouseName,
-                                OrderNo = InboundOrder.UpperOrderNo,
-                                Unit = InboundOrder.Unit,
-                                Specs = InboundOrder.Specs,
-                                Weight = InboundOrder.Weight,
-                                Quantity = InboundOrder.Quantity,
-                                DrawingNumber = InboundOrder.ProductDrawingNumber,
-                                Date = InboundOrder.Datetime,
-                            };
-                            details.Add(detail);
-                        }
-                    }
-                    else
-                    {
-                        return content.Error("鏈壘鍒板叆搴撳崟鎹俊鎭�");
-                    }
-                }
-                DtStockInfo boxing = new DtStockInfo()
-                {
-                    PalletCode = groupPlate.palletCode,
-                    StockStatus = (int)StockStateEmun.缁勭洏鏆傚瓨,
-                    StockInfoDetails = details
-                };
-                await BaseDal.AddDataNavAsync(boxing);
-                content.OK("缁勭洏鎴愬姛");
-            }
-            return content;
-        }
-        catch (Exception ex)
-        {
-            return content.Error(ex.Message);
-        }
-    }
-    #endregion
-
-    #region 瑙g洏
-    public async Task<WebResponseContent> DeleteGroupPlateAsync(GroupPlate groupPlate)
-    {
-        WebResponseContent content = new WebResponseContent();
-        try
-        {
-            if (groupPlate == null || groupPlate.palletCode.IsNullOrEmpty())
-            {
-                return content.Error("鍙傛暟閿欒");
-            }
-            var stock = await BaseDal.QueryFirstNavAsync(x => x.PalletCode == groupPlate.palletCode && x.StockStatus == (int)StockStateEmun.缁勭洏鏆傚瓨);
-            if (!stock.IsNullOrEmpty())
-            {
-                stock.StockStatus = (int)StockStateEmun.缁勭洏鎾ら攢;
-                DtStockInfo_Hty stockhty = stock.Adapt<DtStockInfo_Hty>();
-                stockhty.ModifyDate = DateTime.Now;
-                await _unitOfWorkManage.UseTranAsync(async () =>
-                {
-                    await BaseDal.Db.DeleteNav<DtStockInfo>(x => x.Id == stock.Id)
-                                            .Include(x => x.StockInfoDetails)
-                                            .ExecuteCommandAsync();
-                    await AddStockHtyAsync(stockhty);
-                });
-                content.OK("瑙g洏鎴愬姛");
-            }
-            else
-            {
-                content.Error("鏈壘鍒扮粍鐩樻暟鎹�");
-            }
-            return content;
-        }
-        catch (Exception ex)
-        {
-            return content.Error(ex.Message);
-        }
-    }
-    private async Task AddStockHtyAsync(DtStockInfo_Hty stockhty)
-    {
-        var isStockAdd = await SqlSugarHelper.DbWMS.InsertNav(stockhty).IncludesAllFirstLayer().ExecuteCommandAsync();
-        if (!isStockAdd)
-        {
-            throw new Exception("搴撳瓨鍘嗗彶淇℃伅娣诲姞澶辫触");
-        }
-    }
-
-    /// <summary>
-    /// 鎵归噺鍒犻櫎
-    /// </summary>
-    /// <param name="keys"></param>
-    /// <returns></returns>
-    public override WebResponseContent DeleteData(object[] keys)
-    {
-        try
-        {
-            List<DtStockInfo_Hty> stockInfos = new List<DtStockInfo_Hty>();
-            List<DtLocationInfo> locationInfos = new List<DtLocationInfo>();
-
-            foreach (var item in keys)
-            {
-                var stock = BaseDal.QueryFirstNavAsync(x => x.Id == item.ObjToInt()).Result;
-                var stockHty = stock.Adapt<DtStockInfo_Hty>();
-                stockInfos.Add(stockHty);
-
-                var location = SqlSugarHelper.DbWMS.Queryable<DtLocationInfo>().FirstAsync(x => x.LocationCode == stock.LocationCode).Result;
-                var lastStatus = location.LocationStatus;
-                location.LocationStatus = (int)LocationEnum.Free;
-                locationInfos.Add(location);
-                _locationStatusChangeRecordRepository.AddLocationStatusChangeRecord(location, lastStatus, (int)StatusChangeTypeEnum.ManualOperation, 0);
-            }
-            //var hty = BaseDal.Db.InsertNav(stockInfos)
-            //    .Include(x => x.StockInfoDetails)
-            //    .ExecuteCommand();
-            var isStockAdd = SqlSugarHelper.DbWMS.InsertNav(stockInfos).IncludesAllFirstLayer().ExecuteCommandAsync();
-
-            var locationd = SqlSugarHelper.DbWMS.Updateable(locationInfos).ExecuteCommandHasChange();
-            return base.DeleteData(keys);
-        }
-        catch (Exception ex)
-        {
-            return WebResponseContent.Instance.Error(ex.Message);
-        }
-    }
     #endregion
 }
\ No newline at end of file
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_StorageTaskServices/Task/Dt_TaskService.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_StorageTaskServices/Task/Dt_TaskService.cs"
index 6e9b06b..6bf4fec 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_StorageTaskServices/Task/Dt_TaskService.cs"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_StorageTaskServices/Task/Dt_TaskService.cs"
@@ -59,6 +59,7 @@
     private readonly IDt_StationManagerRepository _stationManagerRepository;
     private readonly ISys_ConfigService _configService;
     private readonly IDt_OrderOutDetailsRepository _orderOutDetailsRepository;
+    private readonly IDt_WareAreaInfoRepository _wareAreaInfoRepository;
 
     public Dt_TaskService(IDt_TaskRepository BaseDal,
                                 IUnitOfWorkManage unitOfWorkManage,
@@ -73,7 +74,8 @@
                                 IStockInfoDetailRepository stockInfoDetailRepository,
                                 IDt_StationManagerRepository stationManagerRepository,
                                 ISys_ConfigService configService,
-                                IDt_OrderOutDetailsRepository orderOutDetailsRepository) : base(BaseDal)
+                                IDt_OrderOutDetailsRepository orderOutDetailsRepository,
+                                IDt_WareAreaInfoRepository wareAreaInfoRepository) : base(BaseDal)
     {
         _unitOfWorkManage = unitOfWorkManage;
         _stockInfoRepository = stockInfoRepository;
@@ -88,6 +90,7 @@
         _stationManagerRepository = stationManagerRepository;
         _configService = configService;
         _orderOutDetailsRepository = orderOutDetailsRepository;
+        _wareAreaInfoRepository = wareAreaInfoRepository;
     }
 
     #region 澶栭儴鎺ュ彛鏂规硶
@@ -120,9 +123,7 @@
                 orderdetailshtys.Add(item.Adapt<Dt_OrderOutDetails_Hty>());
             });
 
-            var allocateOrderdetail = orderDetails.Where(x => true).ToList();
-
-            //await ERPAllocateOut(stock);
+            await ERPAllocateOut(stock);
 
             //璋冩嫧鍑哄簱
             if (task.TaskType == (int)TaskOutboundTypeEnum.OutAllocate)
@@ -144,36 +145,38 @@
                 if (orderDetails.Count > 0)
                 {
                     content = await ERPProduction(orderDetails.Where(x => x.OrderType == (int)OrderTypeEmun.鐢熶骇棰嗘枡鍗�).ToList());
-                } 
+                }
             }
-            List<DtBoxingInfo> boxingInfos = new List<DtBoxingInfo>();
-            foreach (var item in allocateOrderdetail)
+
+            var boxingInfo = await _boxingInfoRepository.QueryFirstNavAsync(x => x.PalletCode == stock.PalletCode);
+            if (boxingInfo != null)
             {
-                var boxingInfo = await _boxingInfoRepository.QueryFirstNavAsync(x => x.PalletCode == item.PalletCode);
-                if (boxingInfo == null)
-                {
-                    continue;
-                }
-                var boxingdetail = boxingInfo.BoxingInfoDetails.Where(x => x.MaterielCode == item.MaterielCode).ToList();
-                if (boxingdetail.Count() > 0)
-                {
-                    foreach (var detail in boxingdetail)
-                    {
-                        //detail.Quantity = detail.Quantity - item.OutboundQuantity;
-                        detail.Warehouse = "WMS鍑哄簱缂撳瓨鍖�";
-                        detail.WareHouseId = "205";
-                        //if (detail.Quantity <= 0)
-                        //{
-                        //    boxingInfo.BoxingInfoDetails.Remove(detail);
-                        //}
-                    }
-                }
-                boxingInfos.Add(boxingInfo);
+                var mergedDetails = boxingInfo.BoxingInfoDetails
+                        .GroupBy(x => new { x.MaterielCode, x.MaterielName })
+                        .Select(g => new DtBoxingInfoDetail
+                        {
+                            MaterielCode = g.Key.MaterielCode,
+                            MaterielName = g.Key.MaterielName,
+                            DemandClassification = g.FirstOrDefault().DemandClassification,
+                            Warehouse = "WMS鍑哄簱缂撳瓨鍖�",
+                            WareHouseId = "205",
+                            OrderNo = g.FirstOrDefault().OrderNo,
+                            Unit = g.FirstOrDefault().Unit,
+                            Specs = g.FirstOrDefault().Specs,
+                            Weight = g.FirstOrDefault().Weight,
+                            DrawingNumber = g.FirstOrDefault().DrawingNumber,
+                            Date = g.FirstOrDefault().Date,
+                            Remark = g.FirstOrDefault().Remark,
+                            Quantity = g.Sum(item => item.Quantity),
+                        })
+                        .ToList();
+                boxingInfo.BoxingInfoDetails = mergedDetails;
             }
+
             await _unitOfWorkManage.UseTranAsync(async () =>
             {
                 await DeleteStockInfoAsync(stock.Id);
-                _boxingInfoRepository.UpdateDataNav(boxingInfos);
+                _boxingInfoRepository.UpdateDataNav(boxingInfo);
                 await DeleteStockInfoDetailsAsync(stock.StockInfoDetails);
                 await AddStockInfoHtyAsync(stockInfo_Hty);
                 await _locationStatusChangeRecordRepository.AddDataAsync(result1.Item1);
@@ -263,6 +266,7 @@
             {
                 return content.Error("鏈壘鍒扮粍鐩樻暟鎹�");
             }
+            await ERPAllocate(boxinfo);
 
             var stock = CreateStock(boxinfo, task);
 
@@ -274,8 +278,6 @@
 
             var result1 = UpdateLocationStatus(task.SourceAddress, LocationEnum.Free, task.TaskNum.Value, (int)StatusChangeTypeEnum.AutomaticInbound);
             var result2 = UpdateLocationStatus(task.TargetAddress, LocationEnum.InStock, task.TaskNum.Value, (int)StatusChangeTypeEnum.AutomaticInbound);
-
-            await ERPAllocate(stock);
 
             await _unitOfWorkManage.UseTranAsync(async () =>
             {
@@ -301,7 +303,31 @@
     public DtStockInfo CreateStock(DtBoxingInfo boxingInfo,Dt_Task task)
     {
         var boxDetail = boxingInfo.BoxingInfoDetails.Adapt<List<DtStockInfoDetail>>();
-        boxDetail.ForEach(x => { x.Status = (int)StockStateEmun.宸插叆搴�; });
+        boxDetail.ForEach(x =>
+        {
+            x.Status = (int)StockStateEmun.宸插叆搴�;
+        });
+        var mergedDetails = boxDetail
+                        .GroupBy(x => new { x.MaterielCode, x.MaterielName })
+                        .Select(g => new DtStockInfoDetail
+                        {
+                            MaterielCode = g.Key.MaterielCode,
+                            MaterielName = g.Key.MaterielName,
+                            DemandClassification = g.FirstOrDefault().DemandClassification,
+                            Warehouse = "鏅鸿兘绔嬪簱",
+                            WareHouseId = "107",
+                            OrderNo = g.FirstOrDefault().OrderNo,
+                            Unit = g.FirstOrDefault().Unit,
+                            Specs = g.FirstOrDefault().Specs,
+                            Weight = g.FirstOrDefault().Weight,
+                            OutboundQuantity = g.FirstOrDefault().OutboundQuantity,
+                            DrawingNumber = g.FirstOrDefault().DrawingNumber,
+                            Date = g.FirstOrDefault().Date,
+                            AllocateWarehouse = g.FirstOrDefault().AllocateWarehouse,
+                            Remark = g.FirstOrDefault().Remark,
+                            Quantity = g.Sum(item => item.Quantity),
+                        })
+                        .ToList();
         return new DtStockInfo()
         {
             PalletCode = task.PalletCode,
@@ -309,7 +335,7 @@
             CreateDate = DateTime.Now,
             Creater = "system",
             IsFullExit = boxingInfo.IsFullExit,
-            StockInfoDetails = boxDetail,
+            StockInfoDetails = mergedDetails,
             StockStatus = (int)StockStateEmun.宸插叆搴�
         };
     }
@@ -691,7 +717,7 @@
     /// </summary>
     /// <param name="palletCode"></param>
     /// <returns></returns>
-    public async Task<WebResponseContent> OutBoundTaskAsync(string palletCode)
+    public async Task<WebResponseContent> OutBoundTaskAsync(string palletCode,string remark)
     {
         WebResponseContent content = new WebResponseContent();
         try
@@ -838,16 +864,20 @@
             Dt_Task taskNew = await RequestOutboundTaskAsync(new RequestTaskDto { PalletCode = stock.PalletCode, AreaId = 2, Position = stock.LocationCode, TaskType = (int)TaskOutboundTypeEnum.OutAllocate });
 
             List<Dt_OrderOutDetails> outDetails = new List<Dt_OrderOutDetails>();
-            details.Where(x => x.OutboundQuantity > 0).ForEach(x =>
+            details.Where(x=>x.OutboundQuantity>0).ForEach(x =>
             {
-                var areaName = _areaInfoRepository.QueryFirst(y => y.AreaID == Convert.ToInt32(x.Remark));
-                if (areaName == null)
-                {
-                    throw new Exception($"鏈壘鍒拌皟鎷ㄤ粨搴搟x.Remark}鏁版嵁");
-                }
                 if (x.Quantity < x.OutboundQuantity)
                 {
                     throw new Exception($"{x.MaterielName}{x.MaterielCode}鍑哄簱鏁伴噺涓嶅彲澶т簬搴撳瓨鏁伴噺");
+                }
+                var wareinfo = _wareAreaInfoRepository.QueryFirst(y => y.WareAreaCode ==x.AllocateWarehouse);
+                if (wareinfo == null)
+                {
+                    throw new Exception($"鏈壘鍒拌皟鎷ㄤ粨搴搟x.AllocateWarehouse}鏁版嵁");
+                }
+                if (wareinfo.WareAreaCode == "205")
+                {
+                    throw new Exception($"涓嶅彲璋冩嫧鑷砏MS鍑哄簱缂撳瓨鍖簕x.AllocateWarehouse}鏁版嵁");
                 }
                 outDetails.Add(new Dt_OrderOutDetails()
                 {
@@ -857,10 +887,10 @@
                     ERPOrderId = "",
                     MaterielCode = x.MaterielCode,
                     MaterielName = x.MaterielName,
-                    AllocateWarehouse = areaName.AreaName,
+                    AllocateWarehouse = wareinfo.WareAreaName,
                     Warehouse = "鏅鸿兘绔嬪簱",
                     WareHouseId = "107",
-                    AllocateWarehouseId = areaName.AreaCode ,
+                    AllocateWarehouseId = wareinfo.WareAreaCode ,
                     OutboundQuantity = x.OutboundQuantity,
                 });
             });
@@ -881,7 +911,7 @@
         }
         catch (Exception ex)
         {
-            return content.Error();
+            return content.Error(ex.Message);
         }
     }
 
@@ -1514,13 +1544,13 @@
     /// <param name="palletCode"></param>
     /// <returns></returns>
     /// 
-    public async Task ERPAllocate(DtStockInfo stock)
+    public async Task ERPAllocate(DtBoxingInfo boxing)
     {
         try
         {
-            if (stock == null)
+            if (boxing == null)
             {
-                throw new Exception("鏈壘鍒板簱瀛樹俊鎭�");
+                throw new Exception("鏈壘鍒扮粍鐩樹俊鎭�");
             }
             Allocate allocate = new Allocate
             {
@@ -1535,7 +1565,7 @@
                 businessDate = DateTime.Now.ToString("yyyy-MM-dd"),
                 isApproved = true,
 
-                transferInList = stock.StockInfoDetails.Select(item => new transferInList
+                transferInList = boxing.BoxingInfoDetails.Select(item => new transferInList
                 {
                     //鐗╂枡缂栫爜
                     ItemCode = item.MaterielCode,
@@ -1624,20 +1654,28 @@
                 throw new Exception($"鏈壘鍒拌皟鎷ㄥ嚭搴撴暟鎹�");
             }
             List<transferInList> transferInList=new List<transferInList>();
-            orderOutDetails.ForEach(x =>
+            foreach (var item in orderOutDetails)
             {
+                if (item.AllocateWarehouseId == "205")
+                {
+                    continue;
+                }
                 transferInList.Add(new transferInList
                 {
                     //鐗╂枡缂栫爜
-                    ItemCode = x.MaterielCode,
+                    ItemCode = item.MaterielCode,
                     //璋冨叆浠撳簱鍦板潃
-                    TransInWHCode = x.AllocateWarehouseId,
+                    TransInWHCode = item.AllocateWarehouseId,
                     //璋冨叆鏁伴噺
-                    TransInQty = x.OutboundQuantity,
+                    TransInQty = item.OutboundQuantity,
                     // 璋冨嚭浠撳簱缂栫爜
                     TransOutWHCode = "205",
                 });
-            });
+            }
+            if (transferInList.Count <= 0)
+            {
+                return;
+            }
             Allocate allocate = new Allocate
             {
                 context = new Context
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/Basic/StockInfoController.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/Basic/StockInfoController.cs"
index fcd0c9c..18b3cf9 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/Basic/StockInfoController.cs"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/Basic/StockInfoController.cs"
@@ -24,27 +24,6 @@
         return Service.GetStockSelectViews(viewDto);
     }
 
-    /// <summary>
-    /// 缁勭洏
-    /// </summary>
-    /// <param name="groupPlate"></param>
-    /// <returns></returns>
-    [HttpPost, HttpGet, Route("AddGroupPlateAsync"), AllowAnonymous]
-    public Task<WebResponseContent> AddGroupPlateAsync([FromBody] GroupPlate groupPlate)
-    {
-        return Service.AddGroupPlateAsync(groupPlate);
-    }
-
-    /// <summary>
-    /// 瑙g洏
-    /// </summary>
-    /// <param name="groupPlate"></param>
-    /// <returns></returns>
-    [HttpPost, HttpGet, Route("DeleteGroupPlateAsync"), AllowAnonymous]
-    public async Task<WebResponseContent> DeleteGroupPlateAsync([FromBody] GroupPlate groupPlate)
-    {
-        return await Service.DeleteGroupPlateAsync(groupPlate);
-    }
 
     /// <summary>
     /// PDA鑾峰彇搴撳瓨瑙嗗浘
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/Task/TaskController.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/Task/TaskController.cs"
index d126566..c32af28 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/Task/TaskController.cs"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/Task/TaskController.cs"
@@ -93,9 +93,9 @@
     /// <returns></returns>
     [HttpPost, HttpGet, AllowAnonymous, Route("OutBoundTaskAsync")]
     [TypeFilter(typeof(ThrottleFilter), Arguments = new object[] { 2 })]
-    public Task<WebResponseContent> OutBoundTaskAsync(string palletCode)
+    public Task<WebResponseContent> OutBoundTaskAsync(string palletCode, string remark)
     {
-        return Service.OutBoundTaskAsync(palletCode);
+        return Service.OutBoundTaskAsync(palletCode, remark);
     }
 
     [HttpPost, HttpGet, AllowAnonymous, Route("OtherOutBoundTaskAsync")]

--
Gitblit v1.9.3