From 1c7d84d153f22148c7c8dbf80aa646edb0c53648 Mon Sep 17 00:00:00 2001
From: 刘磊 <1161824510@qq.com>
Date: 星期四, 18 十二月 2025 09:24:57 +0800
Subject: [PATCH] 同步

---
 项目代码/WMS/WMSServer/.vs/WIDESEA_WMSServer/v17/HierarchyCache.v1.txt                                     |    0 
 项目代码/WMS/WMSClient/src/router/tables.js                                                                |   25 
 项目代码/WMS/WMSServer/WIDESEA_WMSServer/Controllers/MES/MESController.cs                                  |    1 
 项目代码/WMS/WMSServer/WIDESEA_IStorageOutOrderRepository/OutboundOrder/IDt_AssemblyOrderInfoRepository.cs |   15 
 项目代码/WMS/WMSServer/WIDESEA_IStorageOutOrderService/OutboundOrder/IDt_AssemblyOrderInfoService.cs       |   39 +
 项目代码/WMS/WMSServer/WIDESEA_Model/Models/BasicInfo/Dt_BDCConfiguration.cs                               |    2 
 项目代码/WMS/WMSServer/WIDESEA_StorageOutOrderRepository/OutboundOrder/Dt_PaintingOrderInfoRepository.cs   |   10 
 项目代码/WMS/WMSServer/WIDESEA_Model/Models/Inbound/Dt_AssemblyOrderInfo.cs                                |    6 
 项目代码/WMS/WMSServer/WIDESEA_IStorageTaskService/BDCManager/IBDCManager.cs                               |   11 
 项目代码/WMS/WMSServer/WIDESEA_StorageTaskServices/BDCManager/BDCManager.cs                                |   49 
 项目代码/WMS/WMSServer/WIDESEA_StorageOutOrderServices/OutboundOrder/Dt_PaintingOrderInfoService.cs        |  473 ++++++++++++++
 项目代码/WMS/WMSServer/WIDESEA_StoragIntegrationServices/MES/Partial/pushOrderInfo.cs                      |   73 +-
 项目代码/WMS/WMSServer/WIDESEA_BusinessServices/Dt_AreaInfoService.cs                                      |    1 
 项目代码/WMS/WMSServer/WIDESEA_WMSServer/Controllers/BasicInfo/Dt_BDCConfigurationController.cs            |   21 
 项目代码/WMS/WMSClient/src/extension/widesea_wms/OrderInfo/Dt_PaintingOrderInfo.js                         |   75 ++
 项目代码/WMS/WMSServer/WIDESEA_IStorageOutOrderRepository/OutboundOrder/IDt_PaintingOrderInfoRepository.cs |   15 
 项目代码/WMS/WMSServer/WIDESEA_Common/BDC/BDCEnum.cs                                                       |   28 
 项目代码/WMS/WMSServer/WIDESEA_StorageBasicServices/BasicInfo/Dt_BDCConfigurationService.cs                |   40 
 项目代码/WMS/WMSServer/WIDESEA_StorageTaskServices/Task/Dt_TaskService.cs                                  |   47 
 项目代码/WMS/WMSServer/WIDESEA_WMSServer/Controllers/OutboundOrder/Dt_AssemblyOrderInfoController.cs       |   16 
 项目代码/WMS/WMSServer/WIDESEA_StoragIntegrationServices/MES/MESService.cs                                 |    4 
 项目代码/WMS/WMSClient/src/views/widesea_wms/taskinfo/Dt_Task.vue                                          |    4 
 项目代码/WMS/WMSClient/src/views/widesea_wms/OrderInfo/Dt_PaintingOrderInfo.vue                            |   93 ++
 项目代码/WMS/WMSServer/WIDESEA_StorageOutOrderServices/OutboundOrder/Dt_AssemblyOrderInfoService.cs        |  473 ++++++++++++++
 项目代码/WMS/WMSServer/WIDESEA_IStorageBasicService/BasicInfo/IDt_BDCConfigurationService.cs               |    2 
 项目代码/WMS/WMSServer/WIDESEA_StorageTaskServices/BDCManager/Partial/BDCManager.cs                        |   61 +
 项目代码/WMS/WMSServer/WIDESEA_StorageTaskServices/Task/Partial/Dt_TaskService.cs                          |   24 
 项目代码/WMS/WMSServer/WIDESEA_IStorageOutOrderService/OutboundOrder/IDt_PaintingOrderInfoService.cs       |    6 
 项目代码/WMS/WMSServer/WIDESEA_WMSServer/Controllers/OutboundOrder/Dt_PaintingOrderInfoController.cs       |   16 
 项目代码/WMS/WMSClient/src/extension/widesea_wms/OrderInfo/Dt_AssemblyOrderInfo.js                         |   75 ++
 项目代码/WMS/WMSServer/WIDESEA_Model/Models/Inbound/Dt_PaintingOrderInfo.cs                                |  148 ++--
 项目代码/WMS/WMSServer/WIDESEA_StorageOutOrderRepository/OutboundOrder/Dt_AssemblyOrderInfoRepository.cs   |   10 
 项目代码/WMS/WMSClient/src/views/widesea_wms/OrderInfo/Dt_AssemblyOrderInfo.vue                            |   87 ++
 33 files changed, 1,742 insertions(+), 208 deletions(-)

diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSClient/src/extension/widesea_wms/OrderInfo/Dt_AssemblyOrderInfo.js" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSClient/src/extension/widesea_wms/OrderInfo/Dt_AssemblyOrderInfo.js"
new file mode 100644
index 0000000..79fcdc6
--- /dev/null
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSClient/src/extension/widesea_wms/OrderInfo/Dt_AssemblyOrderInfo.js"
@@ -0,0 +1,75 @@
+/*****************************************************************************************
+**  Author:jxx 2022
+**  QQ:283591387
+**瀹屾暣鏂囨。瑙侊細http://v2.volcore.xyz/document/api 銆愪唬鐮佺敓鎴愰〉闈iewGrid銆�
+**甯哥敤绀轰緥瑙侊細http://v2.volcore.xyz/document/vueDev
+**鍚庡彴鎿嶄綔瑙侊細http://v2.volcore.xyz/document/netCoreDev
+*****************************************************************************************/
+//姝s鏂囦欢鏄敤鏉ヨ嚜瀹氫箟鎵╁睍涓氬姟浠g爜锛屽彲浠ユ墿灞曚竴浜涜嚜瀹氫箟椤甸潰鎴栬�呴噸鏂伴厤缃敓鎴愮殑浠g爜
+
+let extension = {
+  components: {
+    //鏌ヨ鐣岄潰鎵╁睍缁勪欢
+    gridHeader: '',
+    gridBody: '',
+    gridFooter: '',
+    //鏂板缓銆佺紪杈戝脊鍑烘鎵╁睍缁勪欢
+    modelHeader: '',
+    modelBody: '',
+    modelFooter: ''
+  },
+  tableAction: '', //鎸囧畾鏌愬紶琛ㄧ殑鏉冮檺(杩欓噷濉啓琛ㄥ悕,榛樿涓嶇敤濉啓)
+  buttons: { view: [], box: [], detail: [] }, //鎵╁睍鐨勬寜閽�
+  methods: {
+     //涓嬮潰杩欎簺鏂规硶鍙互淇濈暀涔熷彲浠ュ垹闄�
+    onInit() {  //妗嗘灦鍒濆鍖栭厤缃墠锛�
+        //绀轰緥锛氬湪鎸夐挳鐨勬渶鍓嶉潰娣诲姞涓�涓寜閽�
+        //   this.buttons.unshift({  //涔熷彲浠ョ敤push鎴栬�卻plice鏂规硶鏉ヤ慨鏀筨uttons鏁扮粍
+        //     name: '鎸夐挳', //鎸夐挳鍚嶇О
+        //     icon: 'el-icon-document', //鎸夐挳鍥炬爣vue2鐗堟湰瑙乮view鏂囨。icon锛寁ue3鐗堟湰瑙乪lement ui鏂囨。icon(娉ㄦ剰涓嶆槸element puls鏂囨。)
+        //     type: 'primary', //鎸夐挳鏍峰紡vue2鐗堟湰瑙乮view鏂囨。button锛寁ue3鐗堟湰瑙乪lement ui鏂囨。button
+        //     onClick: function () {
+        //       this.$Message.success('鐐瑰嚮浜嗘寜閽�');
+        //     }
+        //   });
+
+        //绀轰緥锛氳缃慨鏀规柊寤恒�佺紪杈戝脊鍑烘瀛楁鏍囩鐨勯暱搴�
+        this.boxOptions.labelWidth = 150;
+    },
+    onInited() {
+      //妗嗘灦鍒濆鍖栭厤缃悗
+      //濡傛灉瑕侀厤缃槑缁嗚〃,鍦ㄦ鏂规硶鎿嶄綔
+      //this.detailOptions.columns.forEach(column=>{ });
+    },
+    searchBefore(param) {
+      //鐣岄潰鏌ヨ鍓�,鍙互缁檖aram.wheres娣诲姞鏌ヨ鍙傛暟
+      //杩斿洖false锛屽垯涓嶄細鎵ц鏌ヨ
+      return true;
+    },
+    searchAfter(result) {
+      //鏌ヨ鍚庯紝result杩斿洖鐨勬煡璇㈡暟鎹�,鍙互鍦ㄦ樉绀哄埌琛ㄦ牸鍓嶅鐞嗚〃鏍肩殑鍊�
+      return true;
+    },
+    addBefore(formData) {
+      //鏂板缓淇濆瓨鍓峟ormData涓哄璞★紝鍖呮嫭鏄庣粏琛紝鍙互缁欑粰琛ㄥ崟璁剧疆鍊硷紝鑷繁杈撳嚭鐪媐ormData鐨勫��
+      return true;
+    },
+    updateBefore(formData) {
+      //缂栬緫淇濆瓨鍓峟ormData涓哄璞★紝鍖呮嫭鏄庣粏琛ㄣ�佸垹闄よ鐨処d
+      return true;
+    },
+    rowClick({ row, column, event }) {
+      //鏌ヨ鐣岄潰鐐瑰嚮琛屼簨浠�
+      // this.$refs.table.$refs.table.toggleRowSelection(row); //鍗曞嚮琛屾椂閫変腑褰撳墠琛�;
+    },
+    modelOpenAfter(row) {
+      //鐐瑰嚮缂栬緫銆佹柊寤烘寜閽脊鍑烘鍚庯紝鍙互鍦ㄦ澶勫啓閫昏緫锛屽锛屼粠鍚庡彴鑾峰彇鏁版嵁
+      //(1)鍒ゆ柇鏄紪杈戣繕鏄柊寤烘搷浣滐細 this.currentAction=='Add';
+      //(2)缁欏脊鍑烘璁剧疆榛樿鍊�
+      //(3)this.editFormFields.瀛楁='xxx';
+      //濡傛灉闇�瑕佺粰涓嬫媺妗嗚缃粯璁ゅ�硷紝璇烽亶鍘唗his.editFormOptions鎵惧埌瀛楁閰嶇疆瀵瑰簲data灞炴�х殑key鍊�
+      //鐪嬩笉鎳傚氨鎶婅緭鍑虹湅锛歝onsole.log(this.editFormOptions)
+    }
+  }
+};
+export default extension;
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSClient/src/extension/widesea_wms/OrderInfo/Dt_PaintingOrderInfo.js" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSClient/src/extension/widesea_wms/OrderInfo/Dt_PaintingOrderInfo.js"
new file mode 100644
index 0000000..79fcdc6
--- /dev/null
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSClient/src/extension/widesea_wms/OrderInfo/Dt_PaintingOrderInfo.js"
@@ -0,0 +1,75 @@
+/*****************************************************************************************
+**  Author:jxx 2022
+**  QQ:283591387
+**瀹屾暣鏂囨。瑙侊細http://v2.volcore.xyz/document/api 銆愪唬鐮佺敓鎴愰〉闈iewGrid銆�
+**甯哥敤绀轰緥瑙侊細http://v2.volcore.xyz/document/vueDev
+**鍚庡彴鎿嶄綔瑙侊細http://v2.volcore.xyz/document/netCoreDev
+*****************************************************************************************/
+//姝s鏂囦欢鏄敤鏉ヨ嚜瀹氫箟鎵╁睍涓氬姟浠g爜锛屽彲浠ユ墿灞曚竴浜涜嚜瀹氫箟椤甸潰鎴栬�呴噸鏂伴厤缃敓鎴愮殑浠g爜
+
+let extension = {
+  components: {
+    //鏌ヨ鐣岄潰鎵╁睍缁勪欢
+    gridHeader: '',
+    gridBody: '',
+    gridFooter: '',
+    //鏂板缓銆佺紪杈戝脊鍑烘鎵╁睍缁勪欢
+    modelHeader: '',
+    modelBody: '',
+    modelFooter: ''
+  },
+  tableAction: '', //鎸囧畾鏌愬紶琛ㄧ殑鏉冮檺(杩欓噷濉啓琛ㄥ悕,榛樿涓嶇敤濉啓)
+  buttons: { view: [], box: [], detail: [] }, //鎵╁睍鐨勬寜閽�
+  methods: {
+     //涓嬮潰杩欎簺鏂规硶鍙互淇濈暀涔熷彲浠ュ垹闄�
+    onInit() {  //妗嗘灦鍒濆鍖栭厤缃墠锛�
+        //绀轰緥锛氬湪鎸夐挳鐨勬渶鍓嶉潰娣诲姞涓�涓寜閽�
+        //   this.buttons.unshift({  //涔熷彲浠ョ敤push鎴栬�卻plice鏂规硶鏉ヤ慨鏀筨uttons鏁扮粍
+        //     name: '鎸夐挳', //鎸夐挳鍚嶇О
+        //     icon: 'el-icon-document', //鎸夐挳鍥炬爣vue2鐗堟湰瑙乮view鏂囨。icon锛寁ue3鐗堟湰瑙乪lement ui鏂囨。icon(娉ㄦ剰涓嶆槸element puls鏂囨。)
+        //     type: 'primary', //鎸夐挳鏍峰紡vue2鐗堟湰瑙乮view鏂囨。button锛寁ue3鐗堟湰瑙乪lement ui鏂囨。button
+        //     onClick: function () {
+        //       this.$Message.success('鐐瑰嚮浜嗘寜閽�');
+        //     }
+        //   });
+
+        //绀轰緥锛氳缃慨鏀规柊寤恒�佺紪杈戝脊鍑烘瀛楁鏍囩鐨勯暱搴�
+        this.boxOptions.labelWidth = 150;
+    },
+    onInited() {
+      //妗嗘灦鍒濆鍖栭厤缃悗
+      //濡傛灉瑕侀厤缃槑缁嗚〃,鍦ㄦ鏂规硶鎿嶄綔
+      //this.detailOptions.columns.forEach(column=>{ });
+    },
+    searchBefore(param) {
+      //鐣岄潰鏌ヨ鍓�,鍙互缁檖aram.wheres娣诲姞鏌ヨ鍙傛暟
+      //杩斿洖false锛屽垯涓嶄細鎵ц鏌ヨ
+      return true;
+    },
+    searchAfter(result) {
+      //鏌ヨ鍚庯紝result杩斿洖鐨勬煡璇㈡暟鎹�,鍙互鍦ㄦ樉绀哄埌琛ㄦ牸鍓嶅鐞嗚〃鏍肩殑鍊�
+      return true;
+    },
+    addBefore(formData) {
+      //鏂板缓淇濆瓨鍓峟ormData涓哄璞★紝鍖呮嫭鏄庣粏琛紝鍙互缁欑粰琛ㄥ崟璁剧疆鍊硷紝鑷繁杈撳嚭鐪媐ormData鐨勫��
+      return true;
+    },
+    updateBefore(formData) {
+      //缂栬緫淇濆瓨鍓峟ormData涓哄璞★紝鍖呮嫭鏄庣粏琛ㄣ�佸垹闄よ鐨処d
+      return true;
+    },
+    rowClick({ row, column, event }) {
+      //鏌ヨ鐣岄潰鐐瑰嚮琛屼簨浠�
+      // this.$refs.table.$refs.table.toggleRowSelection(row); //鍗曞嚮琛屾椂閫変腑褰撳墠琛�;
+    },
+    modelOpenAfter(row) {
+      //鐐瑰嚮缂栬緫銆佹柊寤烘寜閽脊鍑烘鍚庯紝鍙互鍦ㄦ澶勫啓閫昏緫锛屽锛屼粠鍚庡彴鑾峰彇鏁版嵁
+      //(1)鍒ゆ柇鏄紪杈戣繕鏄柊寤烘搷浣滐細 this.currentAction=='Add';
+      //(2)缁欏脊鍑烘璁剧疆榛樿鍊�
+      //(3)this.editFormFields.瀛楁='xxx';
+      //濡傛灉闇�瑕佺粰涓嬫媺妗嗚缃粯璁ゅ�硷紝璇烽亶鍘唗his.editFormOptions鎵惧埌瀛楁閰嶇疆瀵瑰簲data灞炴�х殑key鍊�
+      //鐪嬩笉鎳傚氨鎶婅緭鍑虹湅锛歝onsole.log(this.editFormOptions)
+    }
+  }
+};
+export default extension;
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSClient/src/router/tables.js" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSClient/src/router/tables.js"
index 1bd7628..65c029c 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSClient/src/router/tables.js"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSClient/src/router/tables.js"
@@ -284,21 +284,28 @@
     // }
   },
   {
-    path: '/VV_PalletStockInfo',
-    name: 'VV_PalletStockInfo',
-    component: () => import('@/views/widesea_wms/stock/VV_PalletStockInfo.vue'),
-    // meta: {
-    //   keepAlive: true
-    // }
-  },
-
-  {
     path: '/locationInfoRow',
     name: 'locationInfoRow',
     component: () => import('@/views/widesea_wms/stock/locationInfoRow.vue'),
     meta: {
       keepAlive: false
     }
+  },
+  {
+    path: '/Dt_PaintingOrderInfo',
+    name: 'Dt_PaintingOrderInfo',
+    component: () => import('@/views/widesea_wms/OrderInfo/Dt_PaintingOrderInfo.vue'),
+    // meta: {
+    //   keepAlive: true
+    // }
+  },
+  {
+    path: '/Dt_AssemblyOrderInfo',
+    name: 'Dt_AssemblyOrderInfo',
+    component: () => import('@/views/widesea_wms/OrderInfo/Dt_AssemblyOrderInfo.vue'),
+    // meta: {
+    //   keepAlive: true
+    // }
   }
 ]
 export default tables
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSClient/src/views/widesea_wms/OrderInfo/Dt_AssemblyOrderInfo.vue" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSClient/src/views/widesea_wms/OrderInfo/Dt_AssemblyOrderInfo.vue"
new file mode 100644
index 0000000..1584219
--- /dev/null
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSClient/src/views/widesea_wms/OrderInfo/Dt_AssemblyOrderInfo.vue"
@@ -0,0 +1,87 @@
+<!--
+*Author锛歫xx
+ *Contact锛�283591387@qq.com
+ *浠g爜鐢辨鏋剁敓鎴�,浠讳綍鏇存敼閮藉彲鑳藉鑷磋浠g爜鐢熸垚鍣ㄨ鐩�
+ *涓氬姟璇峰湪@/extension/widesea_wms/invoices/Dt_OutOrder.js姝ゅ缂栧啓
+ -->
+<template>
+    <view-grid ref="grid" :columns="columns" :detail="detail" :editFormFields="editFormFields"
+        :editFormOptions="editFormOptions" :searchFormFields="searchFormFields" :searchFormOptions="searchFormOptions"
+        :table="table" :extend="extend">
+    </view-grid>
+</template>
+<script>
+import extend from "@/extension/widesea_wms/OrderInfo/Dt_AssemblyOrderInfo.js";
+import { ref, defineComponent } from "vue";
+export default defineComponent({
+    setup() {
+        const table = ref({
+            key: 'id',
+            footer: "Foots",
+            cnName: '娑傝宸ュ崟',
+            name: 'Orderinfo/Dt_AssemblyOrderInfo',
+            url: "/Dt_AssemblyOrderInfo/",
+            sortName: "Id"
+        });
+        const editFormFields = ref({
+            "orderNumber": "",
+            "status": "",
+            "orderDate": "",
+            "warehouseId": "",
+            "upperOutOrderId": "",
+            "remarks": "",
+
+        });
+        const editFormOptions = ref([
+        ]);
+        const searchFormFields = ref({});
+        const searchFormOptions = ref([
+            [
+                { "title": "宸ュ崟鍙�", "field": "workOrderNo", "type": "text" },
+                { "title": "璁㈠崟鍙�", "field": "vehicleOrderNo", "type": "text" },
+                { "title": "pvi", "field": "pvi", "type": "text" },
+            ],
+        ]);
+        const columns = ref([{ field: 'Id', title: '涓婚敭', type: 'int', width: 110, hidden: true, readonly: true, require: true, align: 'left' },
+        { field: 'plantCode', title: '宸ュ巶', type: 'string', width: 220, require: true, align: 'left', sort: true },
+        { field: 'splitStrategy', title: '鐢熶骇妯″紡', type: 'string', width: 110, require: true, align: 'left' },
+        { field: 'vehicleOrderNo', title: '璁㈠崟鍙�', type: 'string', width: 220, require: true, align: 'left' },
+        { field: 'orderType', title: '璁㈠崟绫诲瀷', type: 'string', width: 110, require: true, align: 'left', bind: { key: "OutOrderType", data: [] } },
+        { field: 'workOrderNo', title: '宸ュ崟鍙�', type: 'string', width: 220, require: true, align: 'left' },
+        { field: 'pvi', title: 'pvi', type: 'string', width: 220, require: true, align: 'left' },
+        { field: 'sequenceNo', title: '宸ュ崟椤哄簭鍙�', type: 'string', width: 220, require: true, align: 'left' },
+        { field: 'vehicleCharacteristic', title: '杞﹀瀷鐗瑰緛鍊�', type: 'string', width: 150, require: true, align: 'left', sort: true },
+        { field: 'vehicleCode', title: '鏁磋溅鐗╂枡鍙�', type: 'string', width: 110, require: true, align: 'left' },
+        { field: 'biwMaterial', title: '鐧借溅韬墿鏂欏彿', type: 'string', width: 220, require: true, align: 'left', sort: true },
+        { field: 'pbMaterial', title: '褰╄溅韬墿鏂欏彿', type: 'string', width: 220, require: true, align: 'left' },
+        { field: 'workOrderSendStatus', title: '宸ュ崟涓嬪彂鐘舵��', type: 'string', width: 220, require: true, align: 'left' },
+        { field: 'spare1', title: '澶囩敤1', type: 'string', width: 110, require: true, align: 'left' },
+        { field: 'spare2', title: '澶囩敤2', type: 'string', width: 110, require: true, align: 'left' },
+        { field: 'spare3', title: '澶囩敤3', type: 'string', width: 110, require: true, align: 'left' },
+
+        { field: 'creater', title: '鍒涘缓浜�', type: 'string', sort: true, width: 110, align: 'left' },
+        { field: 'createDate', title: '鍒涘缓鏃堕棿', type: 'datetime', sort: true, width: 150, align: 'left', sort: true },
+        { field: 'modifier', title: '淇敼浜�', type: 'string', sort: true, width: 100, align: 'left' },
+        { field: 'modifyDate', title: '淇敼鏃堕棿', type: 'datetime', sort: true, width: 150, align: 'left', sort: true },
+        ]);
+        const detail = ref({
+            cnName: "鍑哄簱鏄庣粏璁㈠崟",
+            table: "#detailTable",
+            columns: [
+            ],
+            sortName: "id",
+            key: "iD"
+        });
+        return {
+            table,
+            extend,
+            editFormFields,
+            editFormOptions,
+            searchFormFields,
+            searchFormOptions,
+            columns,
+            detail,
+        };
+    },
+});
+</script>
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSClient/src/views/widesea_wms/OrderInfo/Dt_PaintingOrderInfo.vue" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSClient/src/views/widesea_wms/OrderInfo/Dt_PaintingOrderInfo.vue"
new file mode 100644
index 0000000..1e70bfa
--- /dev/null
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSClient/src/views/widesea_wms/OrderInfo/Dt_PaintingOrderInfo.vue"
@@ -0,0 +1,93 @@
+<!--
+*Author锛歫xx
+ *Contact锛�283591387@qq.com
+ *浠g爜鐢辨鏋剁敓鎴�,浠讳綍鏇存敼閮藉彲鑳藉鑷磋浠g爜鐢熸垚鍣ㄨ鐩�
+ *涓氬姟璇峰湪@/extension/widesea_wms/invoices/Dt_OutOrder.js姝ゅ缂栧啓
+ -->
+<template>
+    <view-grid ref="grid"
+               :columns="columns"
+               :detail="detail"
+               :editFormFields="editFormFields"
+               :editFormOptions="editFormOptions"
+               :searchFormFields="searchFormFields"
+               :searchFormOptions="searchFormOptions"
+               :table="table"
+               :extend="extend">
+    </view-grid>
+</template>
+<script>
+    import extend from "@/extension/widesea_wms/OrderInfo/Dt_PaintingOrderInfo.js";
+    import { ref, defineComponent } from "vue";
+    export default defineComponent({
+        setup() {
+            const table = ref({
+                key: 'id',
+                footer: "Foots",
+                cnName: '娑傝宸ュ崟',
+                name: 'Orderinfo/Dt_PaintingOrderInfo',
+                url: "/Dt_PaintingOrderInfo/",
+                sortName: "Id"
+            });
+            const editFormFields = ref({
+                "orderNumber":"",
+                "status":"",
+                "orderDate":"",
+                "warehouseId":"",
+                "upperOutOrderId":"",
+                "remarks":"",
+
+            });
+            const editFormOptions = ref([
+            ]);
+            const searchFormFields = ref({});
+            const searchFormOptions = ref([
+            [
+                { "title": "宸ュ崟鍙�", "field": "workOrderNo", "type": "text" },
+                { "title": "pvi", "field": "pvi", "type": "text" },
+                { "title": "鍑哄簱鏃ユ湡", "field": "orderDate", "type": "datetime" },
+            ],
+            ]);
+            const columns = ref([{field:'Id',title:'涓婚敭',type:'int',width:110,hidden:true,readonly:true,require:true,align:'left'},
+                       {field:'plantCode',title:'宸ュ巶',type:'string',width:220,require:true,align:'left',sort:true},
+                       {field:'workshopCode',title:'杞﹂棿',type:'string',width:150,require:true,align:'left',sort:true},
+                       {field:'splitStrategy',title:'鐢熶骇妯″紡',type:'string',width:110,require:true,align:'left'},
+                       {field:'workOrderNo',title:'宸ュ崟鍙�',type:'string',width:220,require:true,align:'left'},
+                       {field:'workOrderType',title:'宸ュ崟绫诲瀷',type:'string',width:110,require:true,align:'left',bind: { key: "OutOrderType", data: []}},
+                       {field:'pvi',title:'pvi',type:'string',width:220,require:true,align:'left'},
+                       {field:'biwMaterial',title:'鐧借溅韬墿鏂欏彿',type:'string',width:220,require:true,align:'left',sort:true},
+                       {field:'vehicleCharacteristic',title:'杞﹀瀷鐗瑰緛鍊�',type:'string',width:150,require:true,align:'left',sort:true},
+                       {field:'skylightCharacteristic',title:'澶╃獥鐗瑰緛鍊�',type:'string',width:110,require:true,align:'left'},
+                       {field:'carBodyCharacteristic',title:'杞﹁韩棰滆壊',type:'string',width:220,require:true,align:'left'},
+                       {field:'twoToneCharacteristic',title:'鍙岃壊杞﹁韩',type:'string',width:110,require:true,align:'left'},
+                       {field:'sequenceNo',title:'宸ュ崟椤哄簭鍙�',type:'string',width:220,require:true,align:'left'},
+                       {field:'config1',title:'CTC閰嶇疆',type:'string',width:110,require:true,align:'left'},
+                       {field:'pbMaterial',title:'褰╄溅韬墿鏂欏彿',type:'string',width:220,require:true,align:'left'},
+                       {field:'config3',title:'澶囩敤3',type:'string',width:110,require:true,align:'left'},
+                       {field:'workOrderSendStatus',title:'宸ュ崟涓嬪彂鐘舵��',type:'string',width:220,require:true,align:'left'},
+                       {field:'creater',title:'鍒涘缓浜�',type:'string',sort:true,width:110,align:'left'},
+                       {field:'createDate',title:'鍒涘缓鏃堕棿',type:'datetime',sort:true,width:150,align:'left',sort:true},
+                       {field:'modifier',title:'淇敼浜�',type:'string',sort:true,width:100,align:'left'},
+                       {field:'modifyDate',title:'淇敼鏃堕棿',type:'datetime',sort:true,width:150,align:'left',sort:true},
+                       ]);
+            const detail = ref({
+                cnName: "鍑哄簱鏄庣粏璁㈠崟",
+                table: "#detailTable",
+                columns: [
+                ],
+                sortName: "id",
+                key: "iD"
+            });
+            return {
+                table,
+                extend,
+                editFormFields,
+                editFormOptions,
+                searchFormFields,
+                searchFormOptions,
+                columns,
+                detail,
+            };
+        },
+    });
+</script>
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSClient/src/views/widesea_wms/taskinfo/Dt_Task.vue" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSClient/src/views/widesea_wms/taskinfo/Dt_Task.vue"
index 4cd8bb3..41c8778 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSClient/src/views/widesea_wms/taskinfo/Dt_Task.vue"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSClient/src/views/widesea_wms/taskinfo/Dt_Task.vue"
@@ -31,7 +31,7 @@
         const searchFormOptions = ref([
             [
                 { "title": "浠诲姟鍙�", "field": "taskNum", "type": "text" },
-                { "title": "鎵樼洏/鏂欑鍙�", "field": "palletCode", "type": "text" },
+                { "title": "婊戞﹪鍙�", "field": "palletCode", "type": "text" },
                 { "title": "浠诲姟绫诲瀷", "field": "taskType", "type": "select", dataKey: "TaskType", data: [] },
                 { "title": "浠诲姟鐘舵��", "field": "taskState", "type": "select", dataKey: "TaskStatus", data: [] },
 
@@ -51,7 +51,7 @@
         const columns = ref([{ field: 'TaskId', title: '涓婚敭', type: 'string', width: 110, hidden: true, readonly: true, require: true, align: 'left' },
         { field: 'taskNum', title: '浠诲姟鍙�', type: 'int', width: 110, align: 'left', sort: true },
         { field: 'pvi', title: 'pvi', type: 'int', width: 110, align: 'left',},
-        { field: 'palletCode', title: '鎵樼洏/鏂欑鍙�', type: 'string', width: 180, align: 'left' },
+        { field: 'palletCode', title: '婊戞﹪鍙�', type: 'string', width: 180, align: 'left' },
         { field: 'pnboundNo', title: '鍗曟嵁鍙�', type: 'string', width: 110, align: 'left',hidden:true },
         { field: 'groupID', title: '搴撳瓨ID', type: 'int', width: 110, hidden: true, align: 'left' },
         { field: 'groupDetailId', title: '缁勭洏鏄庣粏ID', type: 'int', width: 110, hidden: true, align: 'left' },
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServer/.vs/WIDESEA_WMSServer/v17/HierarchyCache.v1.txt" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServer/.vs/WIDESEA_WMSServer/v17/HierarchyCache.v1.txt"
index c6cc93b..7b4292e 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServer/.vs/WIDESEA_WMSServer/v17/HierarchyCache.v1.txt"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServer/.vs/WIDESEA_WMSServer/v17/HierarchyCache.v1.txt"
Binary files differ
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServer/WIDESEA_BusinessServices/Dt_AreaInfoService.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServer/WIDESEA_BusinessServices/Dt_AreaInfoService.cs"
index d0baa26..24bb20d 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServer/WIDESEA_BusinessServices/Dt_AreaInfoService.cs"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServer/WIDESEA_BusinessServices/Dt_AreaInfoService.cs"
@@ -20,7 +20,6 @@
         /// 鑾峰彇鍖哄煙鍒楄〃
         /// </summary>
         /// <returns></returns>
-        [HttpGet, Route("GetArea"), AllowAnonymous]
         public object GetArea()
         {
             var data = BaseDal.QueryData();
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServer/WIDESEA_Common/BDC/BDCEnum.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServer/WIDESEA_Common/BDC/BDCEnum.cs"
index 382b929..ab12ffa 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServer/WIDESEA_Common/BDC/BDCEnum.cs"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServer/WIDESEA_Common/BDC/BDCEnum.cs"
@@ -8,17 +8,43 @@
 {
     public enum BodyType
     {
-        WhiteBody = 1,
+        /// <summary>
+        /// 鐧借溅韬�
+        /// </summary>
+        WhiteBody = 1,  
+
+        /// <summary>
+        /// 褰╄溅韬�
+        /// </summary>
         PaintedBody,
 
     }
 
     public enum BodyStatus
     {
+        /// <summary>
+        /// 鐒婅
+        /// </summary>
         InWeldingShop = 1,
+
+        /// <summary>
+        /// BDC
+        /// </summary>
         InBDC,
+
+        /// <summary>
+        /// 娑傝
+        /// </summary>
         InPaintingShop,
+
+        /// <summary>
+        /// 鎬昏
+        /// </summary>
         InAssemblyShop,
+
+        /// <summary>
+        /// 瀹屾垚
+        /// </summary>
         Completed
     }
 }
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServer/WIDESEA_IStorageBasicService/BasicInfo/IDt_BDCConfigurationService.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServer/WIDESEA_IStorageBasicService/BasicInfo/IDt_BDCConfigurationService.cs"
index 461e05c..fbed759 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServer/WIDESEA_IStorageBasicService/BasicInfo/IDt_BDCConfigurationService.cs"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServer/WIDESEA_IStorageBasicService/BasicInfo/IDt_BDCConfigurationService.cs"
@@ -32,7 +32,7 @@
         /// 鏇存柊缂撳瓨閰嶇疆
         /// </summary>
         Task<Dt_BDCConfiguration> UpdateConfiguration(int maxWhiteBody, int maxPaintedBody,
-            int maxBatteryCase, int maxEmptySled, string updatedBy);
+            int maxBatteryCase, int maxEmptySled);
 
         /// <summary>
         /// 妫�鏌ョ櫧杞﹁韩鏄惁鍙互鍏ュ簱锛堟湭瓒呰繃鏈�澶х紦瀛樻暟锛�
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServer/WIDESEA_IStorageOutOrderRepository/OutboundOrder/IDt_AssemblyOrderInfoRepository.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServer/WIDESEA_IStorageOutOrderRepository/OutboundOrder/IDt_AssemblyOrderInfoRepository.cs"
new file mode 100644
index 0000000..8353da0
--- /dev/null
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServer/WIDESEA_IStorageOutOrderRepository/OutboundOrder/IDt_AssemblyOrderInfoRepository.cs"
@@ -0,0 +1,15 @@
+锘縰sing WIDESEA_Core;
+
+namespace WIDESEA_IStorageOutOrderRepository;
+
+public interface IDt_AssemblyOrderInfoRepository : IRepository<Dt_AssemblyOrderInfo>
+{
+    /// <summary>
+    /// 淇敼鍑哄簱璁㈠崟锛堝鑸慨鏀癸級
+    /// </summary>
+    /// <param name="outOrder"></param>
+    /// <returns>鏄惁鎴愬姛</returns>
+    //Task<bool> OutOrderUpdatedAsync(Dt_OutOrder outOrder);
+
+    //Task<Dt_OutOrder> GetOutOrderByNumberAsync(string orderNumber);
+}
\ No newline at end of file
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServer/WIDESEA_IStorageOutOrderRepository/OutboundOrder/IDt_PaintingOrderInfoRepository.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServer/WIDESEA_IStorageOutOrderRepository/OutboundOrder/IDt_PaintingOrderInfoRepository.cs"
new file mode 100644
index 0000000..e92d657
--- /dev/null
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServer/WIDESEA_IStorageOutOrderRepository/OutboundOrder/IDt_PaintingOrderInfoRepository.cs"
@@ -0,0 +1,15 @@
+锘縰sing WIDESEA_Core;
+
+namespace WIDESEA_IStorageOutOrderRepository;
+
+public interface IDt_PaintingOrderInfoRepository : IRepository<Dt_PaintingOrderInfo>
+{
+    /// <summary>
+    /// 淇敼鍑哄簱璁㈠崟锛堝鑸慨鏀癸級
+    /// </summary>
+    /// <param name="outOrder"></param>
+    /// <returns>鏄惁鎴愬姛</returns>
+    //Task<bool> OutOrderUpdatedAsync(Dt_OutOrder outOrder);
+
+    //Task<Dt_OutOrder> GetOutOrderByNumberAsync(string orderNumber);
+}
\ No newline at end of file
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServer/WIDESEA_IStorageOutOrderService/OutboundOrder/IDt_AssemblyOrderInfoService.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServer/WIDESEA_IStorageOutOrderService/OutboundOrder/IDt_AssemblyOrderInfoService.cs"
new file mode 100644
index 0000000..a4773d4
--- /dev/null
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServer/WIDESEA_IStorageOutOrderService/OutboundOrder/IDt_AssemblyOrderInfoService.cs"
@@ -0,0 +1,39 @@
+锘縩amespace WIDESEA_IStorageOutOrderServices;
+
+public interface IDt_AssemblyOrderInfoService : IService<Dt_AssemblyOrderInfo>
+{
+    ///// <summary>
+    ///// 娣诲姞鐢熶骇鍑哄簱鍗�
+    ///// </summary>
+    ///// <param name="model">鍑哄簱鏁版嵁</param>
+    ///// <returns>鎴愬姛鎴栧け璐�</returns>
+    //WebResponseContent AddOutOrderProduction(SaveModel model);
+
+    ///// <summary>
+    ///// 娣诲姞璋冩嫧鍑哄簱鍗�
+    ///// </summary>
+    ///// <param name="model">鍑哄簱鏁版嵁</param>
+    ///// <returns>鎴愬姛鎴栧け璐�</returns>
+    //WebResponseContent AddOutOrderTransfer(SaveModel model);
+
+    ///// <summary>
+    ///// 鏍规嵁鍑哄簱鍗曞彿鏌ヨ鍑哄簱璁㈠崟
+    ///// </summary>
+    ///// <param name="orderNumber">鍑哄簱鍗曞彿</param>
+    ///// <returns>鍑哄簱璁㈠崟</returns>
+    //WebResponseContent GetOutOrderByNumber(string orderNumber);
+
+    ///// <summary>
+    ///// 淇敼鍑哄簱璁㈠崟锛堝鑸慨鏀癸級
+    ///// </summary>
+    ///// <param name="outOrder"></param>
+    ///// <returns>鏄惁鎴愬姛</returns>
+    //Task<bool> OutOrderUpdatedAsync(Dt_OutOrder outOrder);
+
+    ///// <summary>
+    ///// 鏍规嵁璁㈠崟鍒嗛厤鍑哄簱搴撳瓨
+    ///// </summary>
+    ///// <param name="orderNo">璁㈠崟缂栧彿</param>
+    ///// <returns></returns>
+    //Task<WebResponseContent> GetOutboundStockAsync(string orderNo);
+}
\ No newline at end of file
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServer/WIDESEA_IStorageOutOrderService/OutboundOrder/IDt_PaintingOrderInfoService.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServer/WIDESEA_IStorageOutOrderService/OutboundOrder/IDt_PaintingOrderInfoService.cs"
new file mode 100644
index 0000000..1f33ed7
--- /dev/null
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServer/WIDESEA_IStorageOutOrderService/OutboundOrder/IDt_PaintingOrderInfoService.cs"
@@ -0,0 +1,6 @@
+锘縩amespace WIDESEA_IStorageOutOrderServices;
+
+public interface IDt_PaintingOrderInfoService : IService<Dt_PaintingOrderInfo>
+{
+   
+}
\ No newline at end of file
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServer/WIDESEA_IStorageTaskService/BDCManager/IBDCManager.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServer/WIDESEA_IStorageTaskService/BDCManager/IBDCManager.cs"
index 7dea932..9215aeb 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServer/WIDESEA_IStorageTaskService/BDCManager/IBDCManager.cs"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServer/WIDESEA_IStorageTaskService/BDCManager/IBDCManager.cs"
@@ -8,13 +8,20 @@
 {
     public interface IBDCManager
     {
-        int TotalCapacity { get; }
+        List<DtLocationInfo> TotalCapacity { get; }
+
         int CurrentOccupancy { get; }
+
         List<Dt_CarBody> GetInventory();
-        bool AddToBDC(Dt_CarBody body);
+
+        Task<bool> AddToBDC(Dt_CarBody body);
+
         Dt_CarBody RetrieveFromBDC(string bodyId);
+
         List<Dt_CarBody> RetrieveByModel(string model);
+
         List<Dt_CarBody> RetrieveByColor(int color);
+
         void GenerateReport();
     }
 }
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServer/WIDESEA_Model/Models/BasicInfo/Dt_BDCConfiguration.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServer/WIDESEA_Model/Models/BasicInfo/Dt_BDCConfiguration.cs"
index 5c5188d..0d1e8e1 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServer/WIDESEA_Model/Models/BasicInfo/Dt_BDCConfiguration.cs"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServer/WIDESEA_Model/Models/BasicInfo/Dt_BDCConfiguration.cs"
@@ -62,6 +62,6 @@
         /// <summary>
         /// 鏄惁鍚敤
         /// </summary>
-        public int IsActive { get; set; }
+        public int IsActive { get; set; } = 1;
     }
 }
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServer/WIDESEA_Model/Models/Inbound/dt_OrderInfo.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServer/WIDESEA_Model/Models/Inbound/Dt_AssemblyOrderInfo.cs"
similarity index 96%
rename from "\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServer/WIDESEA_Model/Models/Inbound/dt_OrderInfo.cs"
rename to "\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServer/WIDESEA_Model/Models/Inbound/Dt_AssemblyOrderInfo.cs"
index 966ef7a..d35cf39 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServer/WIDESEA_Model/Models/Inbound/dt_OrderInfo.cs"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServer/WIDESEA_Model/Models/Inbound/Dt_AssemblyOrderInfo.cs"
@@ -9,8 +9,8 @@
 
 namespace WIDESEA_Model.Models
 {
-    [SugarTable(nameof(dt_OrderInfo), "鎬昏宸ュ崟淇℃伅")]
-    public class dt_OrderInfo: BaseEntity
+    [SugarTable(nameof(Dt_AssemblyOrderInfo), "鎬昏宸ュ崟淇℃伅")]
+    public class Dt_AssemblyOrderInfo : BaseEntity
     {
         /// <summary>
         /// 涓婚敭
@@ -36,7 +36,7 @@
         [SugarColumn(IsNullable = true, ColumnDescription = "鐢熶骇妯″紡")]
         public string splitStrategy { get; set; }
 
-        public string data { get; set; }
+        //public string data { get; set; }
 
         /// <summary>
         /// 璁㈠崟鍙�
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServer/WIDESEA_Model/Models/Inbound/dt_OrderInfo.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServer/WIDESEA_Model/Models/Inbound/Dt_PaintingOrderInfo.cs"
similarity index 68%
copy from "\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServer/WIDESEA_Model/Models/Inbound/dt_OrderInfo.cs"
copy to "\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServer/WIDESEA_Model/Models/Inbound/Dt_PaintingOrderInfo.cs"
index 966ef7a..d7c3527 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServer/WIDESEA_Model/Models/Inbound/dt_OrderInfo.cs"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServer/WIDESEA_Model/Models/Inbound/Dt_PaintingOrderInfo.cs"
@@ -9,8 +9,8 @@
 
 namespace WIDESEA_Model.Models
 {
-    [SugarTable(nameof(dt_OrderInfo), "鎬昏宸ュ崟淇℃伅")]
-    public class dt_OrderInfo: BaseEntity
+    [SugarTable(nameof(Dt_PaintingOrderInfo), "娑傝宸ュ崟淇℃伅")]
+    public class Dt_PaintingOrderInfo : BaseEntity
     {
         /// <summary>
         /// 涓婚敭
@@ -29,6 +29,14 @@
         public string plantCode { get; set; }
 
         /// <summary>
+        /// 杞﹂棿
+        /// </summary>
+        [ImporterHeader(Name = "杞﹂棿")]
+        [ExporterHeader(DisplayName = "杞﹂棿")]
+        [SugarColumn(IsNullable = true, ColumnDescription = "杞﹂棿")]
+        public string workshopCode { get; set; }
+
+        /// <summary>
         /// 鐢熶骇妯″紡
         /// </summary>
         [ImporterHeader(Name = "鐢熶骇妯″紡")]
@@ -36,26 +44,8 @@
         [SugarColumn(IsNullable = true, ColumnDescription = "鐢熶骇妯″紡")]
         public string splitStrategy { get; set; }
 
-        public string data { get; set; }
-
         /// <summary>
-        /// 璁㈠崟鍙�
-        /// </summary>
-        [ImporterHeader(Name = "璁㈠崟鍙�")]
-        [ExporterHeader(DisplayName = "璁㈠崟鍙�")]
-        [SugarColumn(IsNullable = true, ColumnDescription = "璁㈠崟鍙�")]
-        public string vehicleOrderNo { get; set; }
-
-        /// <summary>
-        /// 璁㈠崟绫诲瀷
-        /// </summary>
-        [ImporterHeader(Name = "璁㈠崟绫诲瀷")]
-        [ExporterHeader(DisplayName = "璁㈠崟绫诲瀷")]
-        [SugarColumn(IsNullable = true, ColumnDescription = "璁㈠崟绫诲瀷")]
-        public string orderType { get; set; }
-
-        /// <summary>
-        /// 宸ュ崟鍙�  鎬昏锛堜竴鍗曞埌搴曟槸鐢熶骇宸ュ崟鍙蜂笁杞﹂棿鍏辩敤锛�
+        /// 宸ュ崟鍙�  娑傝
         /// </summary>
         [ImporterHeader(Name = "宸ュ崟鍙�")]
         [ExporterHeader(DisplayName = "宸ュ崟鍙�")]
@@ -63,36 +53,20 @@
         public string workOrderNo { get; set; }
 
         /// <summary>
-        /// pvi鍙�  锛堟帓浜ч『搴忓彿2锛�
+        /// 宸ュ崟绫诲瀷
+        /// </summary>
+        [ImporterHeader(Name = "宸ュ崟绫诲瀷")]
+        [ExporterHeader(DisplayName = "宸ュ崟绫诲瀷")]
+        [SugarColumn(IsNullable = true, ColumnDescription = "宸ュ崟绫诲瀷")]
+        public string workOrderType { get; set; }
+
+        /// <summary>
+        /// pvi鍙�  
         /// </summary>
         [ImporterHeader(Name = "pvi鍙�")]
         [ExporterHeader(DisplayName = "pvi鍙�")]
         [SugarColumn(IsNullable = true, ColumnDescription = "pvi鍙�")]
         public string pvi { get; set; }
-
-        /// <summary>
-        /// 宸ュ崟椤哄簭鍙� 鎺掍骇椤哄簭鍙�1锛堝簭鍒楀彿锛�
-        /// </summary>
-        [ImporterHeader(Name = "宸ュ崟椤哄簭鍙�")]
-        [ExporterHeader(DisplayName = "宸ュ崟椤哄簭鍙�")]
-        [SugarColumn(IsNullable = true, ColumnDescription = "宸ュ崟椤哄簭鍙�")]
-        public string sequenceNo { get; set; }
-
-        /// <summary>
-        /// 杞﹀瀷鐗瑰緛鍊�
-        /// </summary>
-        [ImporterHeader(Name = "杞﹀瀷鐗瑰緛鍊�")]
-        [ExporterHeader(DisplayName = "杞﹀瀷鐗瑰緛鍊�")]
-        [SugarColumn(IsNullable = true, ColumnDescription = "杞﹀瀷鐗瑰緛鍊�")]
-        public string vehicleCharacteristic { get; set; }
-
-        /// <summary>
-        /// 鏁磋溅鐗╂枡鍙�
-        /// </summary>
-        [ImporterHeader(Name = "鏁磋溅鐗╂枡鍙�")]
-        [ExporterHeader(DisplayName = "鏁磋溅鐗╂枡鍙�")]
-        [SugarColumn(IsNullable = true, ColumnDescription = "鏁磋溅鐗╂枡鍙�")]
-        public string vehicleCode { get; set; }
 
         /// <summary>
         /// 鐧借溅韬墿鏂欏彿
@@ -103,12 +77,68 @@
         public string biwMaterial { get; set; }
 
         /// <summary>
+        /// 杞﹀瀷鐗瑰緛鍊�
+        /// </summary>
+        [ImporterHeader(Name = "杞﹀瀷鐗瑰緛鍊�")]
+        [ExporterHeader(DisplayName = "杞﹀瀷鐗瑰緛鍊�")]
+        [SugarColumn(IsNullable = true, ColumnDescription = "杞﹀瀷鐗瑰緛鍊�")]
+        public string vehicleCharacteristic { get; set; }
+
+        /// <summary>
+        /// 澶╃獥鐗瑰緛鍊�
+        /// </summary>
+        [ImporterHeader(Name = "澶╃獥鐗瑰緛鍊�")]
+        [ExporterHeader(DisplayName = "澶╃獥鐗瑰緛鍊�")]
+        [SugarColumn(IsNullable = true, ColumnDescription = "澶╃獥鐗瑰緛鍊�")]
+        public string skylightCharacteristic { get; set; }
+
+        /// <summary>
+        /// 杞﹁韩棰滆壊
+        /// </summary>
+        [ImporterHeader(Name = "杞﹁韩棰滆壊")]
+        [ExporterHeader(DisplayName = "杞﹁韩棰滆壊")]
+        [SugarColumn(IsNullable = true, ColumnDescription = "杞﹁韩棰滆壊")]
+        public string carBodyCharacteristic { get; set; }
+
+        /// <summary>
+        /// 鍙岃壊杞﹁韩
+        /// </summary>
+        [ImporterHeader(Name = "鍙岃壊杞﹁韩")]
+        [ExporterHeader(DisplayName = "鍙岃壊杞﹁韩")]
+        [SugarColumn(IsNullable = true, ColumnDescription = "鍙岃壊杞﹁韩")]
+        public string twoToneCharacteristic { get; set; }
+
+        /// <summary>
+        /// 宸ュ崟椤哄簭鍙� 鎺掍骇椤哄簭鍙�1锛堝簭鍒楀彿锛�
+        /// </summary>
+        [ImporterHeader(Name = "宸ュ崟椤哄簭鍙�")]
+        [ExporterHeader(DisplayName = "宸ュ崟椤哄簭鍙�")]
+        [SugarColumn(IsNullable = true, ColumnDescription = "宸ュ崟椤哄簭鍙�")]
+        public string sequenceNo { get; set; }
+
+        /// <summary>
+        /// CTC閰嶇疆
+        /// </summary>
+        [ImporterHeader(Name = "CTC閰嶇疆")]
+        [ExporterHeader(DisplayName = "CTC閰嶇疆")]
+        [SugarColumn(IsNullable = true, ColumnDescription = "CTC閰嶇疆")]
+        public string config1 { get; set; }
+
+        /// <summary>
         /// 褰╄溅韬墿鏂欏彿
         /// </summary>
         [ImporterHeader(Name = "褰╄溅韬墿鏂欏彿")]
         [ExporterHeader(DisplayName = "褰╄溅韬墿鏂欏彿")]
         [SugarColumn(IsNullable = true, ColumnDescription = "褰╄溅韬墿鏂欏彿")]
         public string pbMaterial { get; set; }
+
+        /// <summary>
+        /// 澶囩敤3
+        /// </summary>
+        [ImporterHeader(Name = "澶囩敤3")]
+        [ExporterHeader(DisplayName = "澶囩敤3")]
+        [SugarColumn(IsNullable = true, ColumnDescription = "澶囩敤3")]
+        public string config3 { get; set; }
 
         /// <summary>
         /// 宸ュ崟涓嬪彂鐘舵��  1-鎺掍骇涓嬪彂锛�2-鎾ゅ洖
@@ -119,34 +149,8 @@
         public string workOrderSendStatus { get; set; }
 
         /// <summary>
-        /// 澶囩敤1
-        /// </summary>
-        [ImporterHeader(Name = "澶囩敤1")]
-        [ExporterHeader(DisplayName = "澶囩敤1")]
-        [SugarColumn(IsNullable = true, ColumnDescription = "澶囩敤1")]
-        public string spare1 { get; set; }
-
-        /// <summary>
-        /// 澶囩敤2
-        /// </summary>
-        [ImporterHeader(Name = "澶囩敤2")]
-        [ExporterHeader(DisplayName = "澶囩敤2")]
-        [SugarColumn(IsNullable = true, ColumnDescription = "澶囩敤2")]
-        public string spare2 { get; set; }
-
-        /// <summary>
-        /// 澶囩敤3
-        /// </summary>
-        [ImporterHeader(Name = "澶囩敤3")]
-        [ExporterHeader(DisplayName = "澶囩敤3")]
-        [SugarColumn(IsNullable = true, ColumnDescription = "澶囩敤3")]
-        public string spare3 { get; set; }
-
-        /// <summary>
         /// 鍙戦�佹椂闂�
         /// </summary>
         //public string sendTime { get; set; }
-
-
     }
 }
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServer/WIDESEA_StoragIntegrationServices/MES/MESService.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServer/WIDESEA_StoragIntegrationServices/MES/MESService.cs"
index d85ae1c..66a5dbb 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServer/WIDESEA_StoragIntegrationServices/MES/MESService.cs"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServer/WIDESEA_StoragIntegrationServices/MES/MESService.cs"
@@ -30,8 +30,9 @@
         private readonly LogFactory LogFactory = new LogFactory();
         private readonly IUnitOfWorkManage _unitOfWorkManage;
         private readonly IDt_CarBodyRepository _carBodyRepository;
+        private readonly IDt_AssemblyOrderInfoRepository _assemblyOrderInfoRepository;
 
-        public MESService(ILocationInfoRepository locationRepository, IDt_TaskRepository taskRepository, ISys_ConfigService configService, IDt_StationManagerRepository stationManagerRepository, IDt_AreaInfoRepository dt_AreaInfoRepository, IDt_PalletInfoRepository palletInfoRepository, IDt_PalletStockInfoRepository palletStockInfoRepository, IDt_OutOrderRepository OutOrderRepository, IUnitOfWorkManage unitOfWorkManage, IDt_CarBodyRepository carBodyRepository)
+        public MESService(ILocationInfoRepository locationRepository, IDt_TaskRepository taskRepository, ISys_ConfigService configService, IDt_StationManagerRepository stationManagerRepository, IDt_AreaInfoRepository dt_AreaInfoRepository, IDt_PalletInfoRepository palletInfoRepository, IDt_PalletStockInfoRepository palletStockInfoRepository, IDt_OutOrderRepository OutOrderRepository, IUnitOfWorkManage unitOfWorkManage, IDt_CarBodyRepository carBodyRepository, IDt_AssemblyOrderInfoRepository assemblyOrderInfoRepository)
         {
             _locationRepository = locationRepository;
             _taskRepository = taskRepository;
@@ -43,6 +44,7 @@
             _OutOrderRepository = OutOrderRepository;
             _unitOfWorkManage = unitOfWorkManage;
             _carBodyRepository = carBodyRepository;
+            _assemblyOrderInfoRepository = assemblyOrderInfoRepository;
         }
     }
 }
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServer/WIDESEA_StoragIntegrationServices/MES/Partial/pushOrderInfo.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServer/WIDESEA_StoragIntegrationServices/MES/Partial/pushOrderInfo.cs"
index e7e9b59..0c06a9d 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServer/WIDESEA_StoragIntegrationServices/MES/Partial/pushOrderInfo.cs"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServer/WIDESEA_StoragIntegrationServices/MES/Partial/pushOrderInfo.cs"
@@ -35,6 +35,7 @@
 
                 var ListTaskDto = new List<WMSTaskDTO>();
                 var ListTask = new List<Dt_Task>();
+                var ListAssemblyOrderInfo = new List<Dt_AssemblyOrderInfo>();
                 foreach (var item in result.data)
                 {
                     var palletStockInfos = _palletStockInfoRepository.QueryData(x => x.OrderID == item.workOrderNo);
@@ -87,45 +88,47 @@
 
                     }
 
-
+                    Dt_AssemblyOrderInfo assemblyOrderInfo = new Dt_AssemblyOrderInfo
+                    {
+                        biwMaterial = item.biwMaterial,
+                        CreateDate = DateTime.Now,
+                        Creater = "System",
+                        orderType = item.orderType,
+                        pbMaterial = item.pbMaterial,
+                        plantCode = result.plantCode,
+                        pvi = item.pvi,
+                        sequenceNo = item.sequenceNo,
+                        spare1 = item.spare1,
+                        spare2 = item.spare2,
+                        spare3 = item.spare3,
+                        splitStrategy = result.splitStrategy,
+                        vehicleCharacteristic = item.vehicleCharacteristic,
+                        vehicleCode = item.vehicleCode,
+                        vehicleOrderNo = item.vehicleOrderNo,
+                        workOrderNo = item.workOrderNo,
+                        workOrderSendStatus = item.workOrderSendStatus,  //1-鎺掍骇 2-鎾ゅ洖
+                    };
+                    ListAssemblyOrderInfo.Add(assemblyOrderInfo);
                 }
-
-                pushOrderInfo orderInfo = new pushOrderInfo
-                {
-
-                };
-
-                Dt_OutOrder outOrder = new()
-                {
-                    CreateDate = DateTime.Now,
-                    Creater = "System",
-                    Status = 1,
-                    //UpperOutOrderId = result.workOrderNo,
-                    OrderNumber = result.data[0].workOrderNo,
-                    WarehouseId = 1,
-                    OrderDate = DateTime.Now,
-                    UpperOutOrderId = 1,
-                    Remarks = "娴嬭瘯璁㈠崟"
-
-                };
-
-
-                var configs = _configService.GetConfigsByCategory(CateGoryConst.CONFIG_SYS_IPAddress);
-                var wmsBase = configs.FirstOrDefault(x => x.ConfigKey == SysConfigConst.WCSIPAddress)?.ConfigValue;
-                var ipAddress = configs.FirstOrDefault(x => x.ConfigKey == SysConfigConst.ReceiveTask)?.ConfigValue;
-                if (wmsBase == null || ipAddress == null)
-                {
-                    throw new InvalidOperationException("WMS IP 鏈厤缃�");
-                }
-                var wmsIpAddress = wmsBase + ipAddress;
-
-                var WCSresult = HttpHelper.PostAsync(wmsIpAddress, ListTaskDto.ToJsonString()).Result;
-                var content = JsonConvert.DeserializeObject<WebResponseContent>(WCSresult);
 
                 _unitOfWorkManage.BeginTran();
-                _OutOrderRepository.AddData(outOrder);
-                _taskRepository.AddData(ListTask);
+                if (ListTaskDto.Count > 0)
+                {
+                    var configs = _configService.GetConfigsByCategory(CateGoryConst.CONFIG_SYS_IPAddress);
+                    var wmsBase = configs.FirstOrDefault(x => x.ConfigKey == SysConfigConst.WCSIPAddress)?.ConfigValue;
+                    var ipAddress = configs.FirstOrDefault(x => x.ConfigKey == SysConfigConst.ReceiveTask)?.ConfigValue;
+                    if (wmsBase == null || ipAddress == null)
+                    {
+                        throw new InvalidOperationException("WMS IP 鏈厤缃�");
+                    }
+                    var wmsIpAddress = wmsBase + ipAddress;
 
+                    var WCSresult = HttpHelper.PostAsync(wmsIpAddress, ListTaskDto.ToJsonString()).Result;
+                    var content = JsonConvert.DeserializeObject<WebResponseContent>(WCSresult);
+
+                    _taskRepository.AddData(ListTask);
+                }
+                _assemblyOrderInfoRepository.AddData(ListAssemblyOrderInfo);
                 _unitOfWorkManage.CommitTran();
 
                 responseContent.OK();
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServer/WIDESEA_StorageBasicServices/BasicInfo/Dt_BDCConfigurationService.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServer/WIDESEA_StorageBasicServices/BasicInfo/Dt_BDCConfigurationService.cs"
index 210c6e1..dd3f952 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServer/WIDESEA_StorageBasicServices/BasicInfo/Dt_BDCConfigurationService.cs"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServer/WIDESEA_StorageBasicServices/BasicInfo/Dt_BDCConfigurationService.cs"
@@ -30,12 +30,17 @@
             return currentConfig;
         }
 
+        public override WebResponseContent UpdateData(SaveModel saveModel)
+        {
+
+            return base.UpdateData(saveModel);
+        }
+
         public async Task<Dt_BDCConfiguration> UpdateConfiguration(int maxWhiteBody, int maxPaintedBody,
-           int maxBatteryCase, int maxEmptySled, string updatedBy)
+       int maxBatteryCase, int maxEmptySled)
         {
             // 绂佺敤褰撳墠閰嶇疆
             var currentConfigs = await BaseDal.QueryDataAsync(c => c.IsActive == 1);
-
             currentConfigs.ForEach(c => c.IsActive = 2);
 
             // 鍒涘缓鏂伴厤缃�
@@ -46,7 +51,7 @@
                 MaxBatteryCaseCache = maxBatteryCase,
                 MaxEmptySledCache = maxEmptySled,
                 LastUpdatedTime = DateTime.Now,
-                UpdatedBy = updatedBy,
+                UpdatedBy = App.User.UserName,
                 IsActive = 1
             };
 
@@ -55,10 +60,14 @@
             return newConfig;
         }
 
+        /// <summary>
+        /// 鐧借溅韬槸鍚﹀彲鍏ュ簱
+        /// </summary>
+        /// <returns></returns>
         public async Task<bool> CanAddWhiteBody()
         {
             var config = await GetCurrentConfiguration();
-            var currentCount =  GetWhiteBodyCount();
+            var currentCount = GetWhiteBodyCount();
 
             // 棰勭暀5%鐨勭紦鍐茬┖闂�
             var threshold = (int)(config.MaxWhiteBodyCache * 0.95);
@@ -68,39 +77,54 @@
         public async Task<bool> CanAddPaintedBody()
         {
             var config = await GetCurrentConfiguration();
-            var currentCount =  GetPaintedBodyCount();
+            var currentCount = GetPaintedBodyCount();
 
             // 棰勭暀5%鐨勭紦鍐茬┖闂�
             var threshold = (int)(config.MaxPaintedBodyCache * 0.95);
             return currentCount < threshold;
         }
 
-
         public async Task<bool> CanAddEmptySled()
         {
             var config = await GetCurrentConfiguration();
-            var currentCount =  GetEmptySledCount();
+            var currentCount = GetEmptySledCount();
 
             // 棰勭暀5%鐨勭紦鍐茬┖闂�
             var threshold = (int)(config.MaxEmptySledCache * 0.95);
             return currentCount < threshold;
         }
 
+        /// <summary>
+        /// 鐧借溅韬簱瀛樻暟閲�
+        /// </summary>
+        /// <returns></returns>
         public int GetWhiteBodyCount()
         {
             return _palletStockInfoRepository.QueryData(b => b.CarType == (int)BodyType.WhiteBody && b.StockStatus == (int)BodyStatus.InBDC).Count;
         }
 
+        /// <summary>
+        /// 褰╄溅韬簱瀛樻暟閲�
+        /// </summary>
+        /// <returns></returns>
         public int GetPaintedBodyCount()
         {
-            return  _palletStockInfoRepository.QueryData(b => b.CarType == (int)BodyType.PaintedBody && b.StockStatus == (int)BodyStatus.InBDC).Count;
+            return _palletStockInfoRepository.QueryData(b => b.CarType == (int)BodyType.PaintedBody && b.StockStatus == (int)BodyStatus.InBDC).Count;
         }
 
+        /// <summary>
+        /// 鐢垫睜澹冲簱瀛樻暟閲�
+        /// </summary>
+        /// <returns></returns>
         public int GetBatteryCaseCount()
         {
             return _palletStockInfoRepository.QueryData(b => b.StockStatus == (int)BodyStatus.InBDC).Count;
         }
 
+        /// <summary>
+        /// 绌烘粦姗囧簱瀛樻暟閲�
+        /// </summary>
+        /// <returns></returns>
         public int GetEmptySledCount()
         {
             return _palletStockInfoRepository.QueryData(s => s.StockStatus == (int)BodyStatus.InBDC).Count;
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServer/WIDESEA_StorageOutOrderRepository/OutboundOrder/Dt_AssemblyOrderInfoRepository.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServer/WIDESEA_StorageOutOrderRepository/OutboundOrder/Dt_AssemblyOrderInfoRepository.cs"
new file mode 100644
index 0000000..ba1ecfb
--- /dev/null
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServer/WIDESEA_StorageOutOrderRepository/OutboundOrder/Dt_AssemblyOrderInfoRepository.cs"
@@ -0,0 +1,10 @@
+锘縰sing WIDESEA_Core;
+
+namespace WIDESEA_StorageOutOrderRepository;
+
+public class Dt_AssemblyOrderInfoRepository : RepositoryBase<Dt_AssemblyOrderInfo>, IDt_AssemblyOrderInfoRepository
+{
+    public Dt_AssemblyOrderInfoRepository(IUnitOfWorkManage unitOfWorkManage) : base(unitOfWorkManage)
+    {
+    }
+}
\ No newline at end of file
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServer/WIDESEA_StorageOutOrderRepository/OutboundOrder/Dt_PaintingOrderInfoRepository.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServer/WIDESEA_StorageOutOrderRepository/OutboundOrder/Dt_PaintingOrderInfoRepository.cs"
new file mode 100644
index 0000000..734439a
--- /dev/null
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServer/WIDESEA_StorageOutOrderRepository/OutboundOrder/Dt_PaintingOrderInfoRepository.cs"
@@ -0,0 +1,10 @@
+锘縰sing WIDESEA_Core;
+
+namespace WIDESEA_StorageOutOrderRepository;
+
+public class Dt_PaintingOrderInfoRepository : RepositoryBase<Dt_PaintingOrderInfo>, IDt_PaintingOrderInfoRepository
+{
+    public Dt_PaintingOrderInfoRepository(IUnitOfWorkManage unitOfWorkManage) : base(unitOfWorkManage)
+    {
+    }
+}
\ No newline at end of file
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServer/WIDESEA_StorageOutOrderServices/OutboundOrder/Dt_AssemblyOrderInfoService.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServer/WIDESEA_StorageOutOrderServices/OutboundOrder/Dt_AssemblyOrderInfoService.cs"
new file mode 100644
index 0000000..3e5ef1d
--- /dev/null
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServer/WIDESEA_StorageOutOrderServices/OutboundOrder/Dt_AssemblyOrderInfoService.cs"
@@ -0,0 +1,473 @@
+锘縩amespace WIDESEA_StorageOutOrderServices;
+
+public class Dt_AssemblyOrderInfoService : ServiceBase<Dt_AssemblyOrderInfo, IDt_AssemblyOrderInfoRepository>, IDt_AssemblyOrderInfoService
+{
+    private readonly LogFactory LogFactory = new LogFactory();
+    private readonly IUnitOfWorkManage _unitOfWorkManage;
+    private readonly IDt_OutOrderProductionService _outOrderProductionService;
+    private readonly IDt_OutOrderProductionDetailService _outOrderProductionDetailService;
+    private readonly IDt_OutOrderDtailService _outOrderDtailService;
+    private readonly IDt_OutOrderTransferRepository _OutOrderTransferRepository;
+    private readonly IDt_OutOrderTransferDetailRepository _OutOrderTransferDetailRepository;
+    private readonly IDt_MaterielInfoRepository _materielInfoRepository;
+    private readonly IStockInfoRepository _stockInfoRepository;
+    private readonly IDt_OutOrderAndStockRepository _outOrderAndStockRepository;
+    private readonly IDt_TaskRepository _taskRepository;
+
+    public Dt_AssemblyOrderInfoService(IDt_AssemblyOrderInfoRepository BaseDal,
+                              IUnitOfWorkManage unitOfWorkManage,
+                              IDt_OutOrderProductionService outOrderProductionService,
+                              IDt_OutOrderProductionDetailService outOrderProductionDetailService,
+                              IDt_OutOrderDtailService outOrderDtailService,
+                              IDt_OutOrderTransferDetailRepository outOrderTransferDetailRepository,
+                              IDt_OutOrderTransferRepository outOrderTransferRepository,
+                              IDt_MaterielInfoRepository materielInfoRepository,
+                              IStockInfoRepository stockInfoRepository,
+                              IDt_OutOrderAndStockRepository outOrderAndStockRepository,
+                              IDt_TaskRepository taskRepository) : base(BaseDal)
+    {
+        _unitOfWorkManage = unitOfWorkManage;
+        _outOrderProductionService = outOrderProductionService;
+        _outOrderProductionDetailService = outOrderProductionDetailService;
+        _outOrderDtailService = outOrderDtailService;
+        _OutOrderTransferDetailRepository = outOrderTransferDetailRepository;
+        _OutOrderTransferRepository = outOrderTransferRepository;
+        _materielInfoRepository = materielInfoRepository;
+        _stockInfoRepository = stockInfoRepository;
+        _outOrderAndStockRepository = outOrderAndStockRepository;
+        _taskRepository = taskRepository;
+    }
+
+
+
+    /// <summary>
+    /// 鏍规嵁璁㈠崟鍒嗛厤鍑哄簱搴撳瓨
+    /// </summary>
+    /// <param name="orderNo">璁㈠崟缂栧彿</param>
+    /// <returns></returns>
+    public async Task<WebResponseContent> GetOutboundStockAsync(string orderNo)
+    {
+        WebResponseContent content = new WebResponseContent();
+        try
+        {
+            // 鑾峰彇璁㈠崟
+            //var order = await BaseDal.GetOutOrderByNumberAsync(orderNo);
+            //LogFactory.GetLog("鍑哄簱鍒嗛厤骞跺垱寤轰换鍔�").InfoFormat(true, "鏍规嵁璁㈠崟缂栧彿鑾峰彇璁㈠崟鏁版嵁", JsonConvert.SerializeObject(order));
+
+            //// 妫�鏌ヨ鍗曟槸鍚﹁幏鍙栨垚鍔�
+            //if (order == null)
+            //{
+            //    return content.Error("鑾峰彇璁㈠崟澶辫触");
+            //}
+
+            //// 鑾峰彇璁㈠崟涓殑绗竴涓墿鏂欑紪鍙�
+            //var materielInfo = await _materielInfoRepository.QueryFirstAsync(x => x.MaterielID == order.OrderDetailList.MaterialId);
+            //LogFactory.GetLog("鍑哄簱鍒嗛厤骞跺垱寤轰换鍔�").InfoFormat(true, "鑾峰彇璁㈠崟鐗╂枡缂栧彿", JsonConvert.SerializeObject(materielInfo));
+
+            //#region 鍏堝叆鍏堝嚭
+
+            //// 鑾峰彇璇ョ墿鏂欐墍鏈夊彲鍑哄簱搴撳瓨
+            //var filteredStocks = await _stockInfoRepository.QueryDataAsync(x => true);
+            //filteredStocks.OrderBy(x => x.CreateDate).ToList();
+            //LogFactory.GetLog("鍑哄簱鍒嗛厤骞跺垱寤轰换鍔�").InfoFormat(true, "鑾峰彇璇ョ墿鏂欐墍鏈夊彲鍑哄簱搴撳瓨", JsonConvert.SerializeObject(filteredStocks));
+
+            //#endregion 鍏堝叆鍏堝嚭
+
+            //#region 鏌ユ壘闈犺繎鍑哄簱鍙e簱瀛�
+
+            //// 榛樿鍒楄秺澶ц秺闈犺繎鍑哄簱鍙�
+            //filteredStocks = filteredStocks.OrderByDescending(x => x.LocationInfo.Column).OrderBy(x => x.CreateDate).ToList();
+
+            //#endregion 鏌ユ壘闈犺繎鍑哄簱鍙e簱瀛�
+
+            //#region 涓�娣变綅浼樺厛鏌ユ壘锛屽啀鏌ユ壘鍚屽垪浜屾繁浣�
+
+            //filteredStocks = PickStocks(filteredStocks);
+
+            //#endregion 涓�娣变綅浼樺厛鏌ユ壘锛屽啀鏌ユ壘鍚屽垪浜屾繁浣�
+
+            //// 鍒涘缓浠诲姟鍒楄〃
+            //var (tasks, updateOrder, stock) = CreateTasks(order, filteredStocks);
+            //LogFactory.GetLog("鍑哄簱鍒嗛厤骞跺垱寤轰换鍔�").InfoFormat(true, "鍒涘缓浠诲姟鍒楄〃锛屼慨鏀硅鍗曞垎閰嶆暟閲忥紝鑾峰彇鍑哄簱鍒嗛厤搴撳瓨",
+            //    $"浠诲姟鍒楄〃:{JsonConvert.SerializeObject(tasks)},璁㈠崟鍒楄〃锛歿JsonConvert.SerializeObject(updateOrder)},宸插垎閰嶅簱瀛橈細{JsonConvert.SerializeObject(stock)}");
+
+            //// 鏇存柊搴撳瓨鐘舵��
+            //var stockList = UpdateStocks(stock);
+            //LogFactory.GetLog("鍑哄簱鍒嗛厤骞跺垱寤轰换鍔�").InfoFormat(true, "鏇存柊搴撳瓨鐘舵��", JsonConvert.SerializeObject(stockList));
+
+            //// 鍒涘缓璁㈠崟搴撳瓨鍒楄〃
+            //List<Dt_OutOrderAndStock>? orderStocks = CreateOrderStock(stock, updateOrder);
+            //LogFactory.GetLog("鍑哄簱鍒嗛厤骞跺垱寤轰换鍔�").InfoFormat(true, "鍒涘缓璁㈠崟搴撳瓨鍒楄〃", JsonConvert.SerializeObject(orderStocks));
+
+            //// 寮�濮嬩簨鍔�
+            //_unitOfWorkManage.BeginTran();
+
+            //// 鏇存柊搴撳瓨
+            //var isStockUpdated = _stockInfoRepository.UpdateData(stockList);
+            //LogFactory.GetLog("鍑哄簱鍒嗛厤骞跺垱寤轰换鍔�").InfoFormat(true, "浜嬪姟鏇存柊搴撳瓨", isStockUpdated);
+
+            //// 鏇存柊璁㈠崟
+            //var isOrderUpdated = await BaseDal.OutOrderUpdatedAsync(updateOrder);
+            //LogFactory.GetLog("鍑哄簱鍒嗛厤骞跺垱寤轰换鍔�").InfoFormat(true, "浜嬪姟鏇存柊璁㈠崟", isOrderUpdated);
+
+            ////娣诲姞璁㈠崟搴撳瓨
+            //var isOrderStockCread = await _outOrderAndStockRepository.AddDataAsync(orderStocks) > 0;
+            //LogFactory.GetLog("鍑哄簱鍒嗛厤骞跺垱寤轰换鍔�").InfoFormat(true, "浜嬪姟娣诲姞璁㈠崟搴撳瓨", isOrderStockCread);
+
+            //// 鍒涘缓浠诲姟
+            //var isTaskCreated = await _taskRepository.Create(tasks);
+            //LogFactory.GetLog("鍑哄簱鍒嗛厤骞跺垱寤轰换鍔�").InfoFormat(true, "浜嬪姟鍒涘缓浠诲姟", isTaskCreated);
+
+            //// 鎻愪氦鎴栧洖婊氫簨鍔�
+            //if (isStockUpdated && isTaskCreated && isOrderUpdated && isOrderStockCread)
+            //{
+            //    LogFactory.GetLog("鍑哄簱鍒嗛厤骞跺垱寤轰换鍔�").InfoFormat(true, "鏁版嵁澶勭悊瀹屾垚锛屾彁浜や簨鍔�", "鏃犲弬鏁�");
+            //    _unitOfWorkManage.CommitTran();
+            //}
+            //else
+            //{
+            //    LogFactory.GetLog("鍑哄簱鍒嗛厤骞跺垱寤轰换鍔�").InfoFormat(true, "娣诲姞鏁版嵁搴撳け璐�,璇锋鏌ユ暟鎹槸鍚︽纭�,鏁版嵁鍥炴粴", $"鏇存柊搴撳瓨:{isStockUpdated},鏇存柊璁㈠崟:{isOrderUpdated},娣诲姞璁㈠崟搴撳瓨:{isOrderStockCread},鍒涘缓浠诲姟:{isTaskCreated}");
+            //    _unitOfWorkManage.RollbackTran();
+            //    throw new Exception("娣诲姞鏁版嵁搴撳け璐�,璇锋鏌ユ暟鎹槸鍚︽纭�,鏁版嵁鍥炴粴");
+            //}
+
+            return content.OK(); //data: orderStocks
+        }
+        catch (Exception ex)
+        {
+            _unitOfWorkManage.RollbackTran();
+            LogFactory.GetLog("鍑哄簱鍒嗛厤骞跺垱寤轰换鍔�").InfoFormat(true, $"绯荤粺寮傚父锛屽紓甯镐俊鎭細{ex.Message}", "鏃犲弬鏁�");
+            return content.Error(ex.Message);
+        }
+    }
+
+    #region 鍐呴儴璋冪敤
+
+    /// <summary>
+    /// 涓�娣变綅浼樺厛鏌ユ壘
+    /// </summary>
+    /// <param name="filteredStocks">鍙嚭搴撳簱瀛�</param>
+    /// <returns>鎺掑簭濂界殑鍑哄簱搴撳瓨</returns>
+    public List<DtStockInfo> PickStocks(List<DtStockInfo> filteredStocks)
+    {
+        var oneDepthList = filteredStocks.Where(x => x.LocationInfo.Depth == 1).ToList();
+        var twoDepthList = filteredStocks.Where(x => x.LocationInfo.Depth == 2).ToList();
+
+        var results = new List<DtStockInfo>();
+        foreach (var oneDepth in oneDepthList)
+        {
+            // 灏� Line 瀛楃涓茶浆鎹负鏁存暟
+            int oneDepthLine = oneDepth.LocationInfo.Row;
+
+            // 璁$畻鐩稿琛�
+            int relativeLine = oneDepthLine % 2 == 1 ? oneDepthLine + 1 : oneDepthLine - 1;
+
+            // 鏌ユ壘鏈�鎺ヨ繎鐨勪簩娣变綅璁板綍
+            var closestTwoDepth = twoDepthList
+                .Where(t => t.LocationInfo.Row == relativeLine)
+                .Where(x => x.LocationInfo.Column == oneDepth.LocationInfo.Column)
+                .Where(x => x.LocationInfo.Layer == oneDepth.LocationInfo.Layer)
+                .FirstOrDefault();
+
+            // 濡傛灉鎵惧埌浜嗘渶鎺ヨ繎鐨勪簩娣变綅璁板綍锛屽皢鍏朵笌涓�娣变綅涓�璧锋坊鍔犲埌缁撴灉鍒楄〃
+            if (closestTwoDepth != null)
+            {
+                results.Add(oneDepth);
+                results.Add(closestTwoDepth);
+            }
+            else
+            {
+                // 濡傛灉娌℃湁鎵惧埌鏈�鎺ヨ繎鐨勪簩娣变綅璁板綍锛屽皢涓�娣变綅娣诲姞鍒扮粨鏋滃垪琛�
+                results.Add(oneDepth);
+            }
+        }
+        return results;
+    }
+
+    #endregion 鍐呴儴璋冪敤
+
+    #region 绉佹湁鏂规硶
+
+    #region 鐢熶骇鍑哄簱鍗�
+
+    /// <summary>
+    /// 鏍规嵁涓绘暟鎹瀯寤虹敓浜у嚭搴撳崟瀵硅薄銆�
+    /// </summary>
+    private Dt_OutOrderProduction CreateProductionOrder(Dictionary<string, object> mainData)
+    {
+        return new Dt_OutOrderProduction
+        {
+            OrderNumber = mainData.GetValueOrDefault("OrderNumber")?.ToString(),
+            WarehouseId = mainData.GetValueOrDefault("WarehouseId")?.ObjToInt() ?? 0,
+            Status = (int)OutOrderTypeEnum.Issue,
+            Remarks = mainData.GetValueOrDefault("Remarks")?.ToString(),
+            Creater = mainData.GetValueOrDefault("Creater")?.ToString(),
+            CreateDate = mainData.GetValueOrDefault("CreateDate")?.ObjToDate() ?? DateTime.Now,
+            OrderDate = mainData.GetValueOrDefault("OrderDate")?.ObjToDate() ?? DateTime.Now,
+        };
+    }
+
+    /// <summary>
+    /// 鏍规嵁鏄庣粏鏁版嵁鍜岀敓浜у嚭搴撳崟ID鏋勫缓鐢熶骇鍑哄簱鍗曟槑缁嗗垪琛ㄣ��
+    /// </summary>
+    private List<Dt_OutOrderProductionDetail> CreateProductionDetails(List<Dictionary<string, object>> detailData)
+    {
+        var details = new List<Dt_OutOrderProductionDetail>();
+        foreach (var item in detailData)
+        {
+            var detail = new Dt_OutOrderProductionDetail
+            {
+                MaterialId = item.GetValueOrDefault("MaterialId")?.ObjToInt() ?? 0,
+                Quantity = item.GetValueOrDefault("Quantity")?.ObjToInt() ?? 0,
+                Remarks = item.GetValueOrDefault("Remarks")?.ToString(),
+                CreateDate = item.GetValueOrDefault("CreateDate")?.ObjToDate() ?? DateTime.Now,
+                Creater = item.GetValueOrDefault("Creater")?.ToString(),
+                BatchNumber = item.GetValueOrDefault("BatchNumber")?.ToString(),
+            };
+            details.Add(detail);
+        }
+        return details;
+    }
+
+    /// <summary>
+    /// 鏍规嵁鐢熶骇鍑哄簱鍗曞璞″拰鐢熶骇鍑哄簱鍗旾D鏋勫缓绯荤粺鍑哄簱鍗曞璞°��
+    /// </summary>
+    private Dt_OutOrder CreateSystemOrder(Dt_OutOrderProduction production)
+    {
+        return new Dt_OutOrder
+        {
+            Status = production.Status,
+            CreateDate = DateTime.Now,
+            Creater = production.Creater,
+            OrderDate = DateTime.Now,
+            OrderNumber = production.OrderNumber,
+            Remarks = production.Remarks,
+            WarehouseId = production.WarehouseId,
+        };
+    }
+
+    /// <summary>
+    /// 鏍规嵁鐢熶骇鍑哄簱鍗曟槑缁嗗垪琛ㄥ拰绯荤粺鍑哄簱鍗旾D鏋勫缓绯荤粺鍑哄簱鍗曟槑缁嗗垪琛ㄣ��
+    /// </summary>
+    private List<Dt_OutOrderDetail> CreateSystemOrderDetails(List<Dt_OutOrderProductionDetail> productionDetails)
+    {
+        var orderDetails = new List<Dt_OutOrderDetail>();
+        foreach (var item in productionDetails)
+        {
+            var detail = new Dt_OutOrderDetail
+            {
+                AllocatedQuantity = 0,
+                BatchNumber = item.BatchNumber,
+                CompletedQuantity = 0,
+                CreateDate = item.CreateDate,
+                Creater = item.Creater,
+                MaterialId = item.MaterialId,
+                OutboundQuantity = item.Quantity,
+                Remarks = item.Remarks,
+                MaterialName = item.Remarks // 鐗╂枡鍚嶇О
+            };
+            orderDetails.Add(detail);
+        }
+        return orderDetails;
+    }
+
+    #endregion 鐢熶骇鍑哄簱鍗�
+
+    #region 璋冩嫧鍑哄簱鍗�
+
+    /// <summary>
+    /// 鏍规嵁涓绘暟鎹瀯寤鸿皟鎷ㄥ嚭搴撳崟瀵硅薄銆�
+    /// </summary>
+    private Dt_OutOrderTransfer CreateTransferOrder(Dictionary<string, object> mainData)
+    {
+        return new Dt_OutOrderTransfer
+        {
+            OrderNumber = mainData.GetValueOrDefault("OrderNumber")?.ToString(),
+            SourceWarehouseId = mainData.GetValueOrDefault("SourceWarehouseId")?.ObjToInt() ?? 0,
+            DestinationWarehouseId = mainData.GetValueOrDefault("WarehouseId")?.ObjToInt() ?? 0,
+            Status = (int)OutOrderTypeEnum.Allocate,
+            Remarks = mainData.GetValueOrDefault("Remarks")?.ToString(),
+            Creater = mainData.GetValueOrDefault("Creater")?.ToString(),
+            CreateDate = mainData.GetValueOrDefault("CreateDate")?.ObjToDate() ?? DateTime.Now,
+            OrderDate = mainData.GetValueOrDefault("OrderDate")?.ObjToDate() ?? DateTime.Now,
+        };
+    }
+
+    /// <summary>
+    /// 鏍规嵁鏄庣粏鏁版嵁鍜岃皟鎷ㄥ嚭搴撳崟ID鏋勫缓璋冩嫧鍑哄簱鍗曟槑缁嗗垪琛ㄣ��
+    /// </summary>
+    private List<Dt_OutOrderTransferDetail> CreateTransferDetails(List<Dictionary<string, object>> detailData)
+    {
+        var details = new List<Dt_OutOrderTransferDetail>();
+        foreach (var item in detailData)
+        {
+            var detail = new Dt_OutOrderTransferDetail
+            {
+                MaterialId = item.GetValueOrDefault("MaterialId")?.ObjToInt() ?? 0,
+                Quantity = item.GetValueOrDefault("Quantity")?.ObjToInt() ?? 0,
+                Remarks = item.GetValueOrDefault("Remarks")?.ToString(),
+                CreateDate = item.GetValueOrDefault("CreateDate")?.ObjToDate() ?? DateTime.Now,
+                Creater = item.GetValueOrDefault("Creater")?.ToString(),
+                BatchNumber = item.GetValueOrDefault("BatchNumber")?.ToString(),
+            };
+            details.Add(detail);
+        }
+        return details;
+    }
+
+    /// <summary>
+    /// 鏍规嵁鐢熶骇鍑哄簱鍗曞璞″拰鐢熶骇鍑哄簱鍗旾D鏋勫缓绯荤粺鍑哄簱鍗曞璞°��
+    /// </summary>
+    private Dt_OutOrder CreateSystemOrder(Dt_OutOrderTransfer transfer)
+    {
+        return new Dt_OutOrder
+        {
+            Status = transfer.Status,
+            CreateDate = DateTime.Now,
+            Creater = transfer.Creater,
+            OrderDate = DateTime.Now,
+            OrderNumber = transfer.OrderNumber,
+            Remarks = transfer.Remarks,
+            WarehouseId = transfer.SourceWarehouseId,
+        };
+    }
+
+    /// <summary>
+    /// 鏍规嵁鐢熶骇鍑哄簱鍗曟槑缁嗗垪琛ㄥ拰绯荤粺鍑哄簱鍗旾D鏋勫缓绯荤粺鍑哄簱鍗曟槑缁嗗垪琛ㄣ��
+    /// </summary>
+    private List<Dt_OutOrderDetail> CreateSystemOrderDetails(List<Dt_OutOrderTransferDetail> transferDetails)
+    {
+        var orderDetails = new List<Dt_OutOrderDetail>();
+        foreach (var item in transferDetails)
+        {
+            var detail = new Dt_OutOrderDetail
+            {
+                AllocatedQuantity = 0,
+                BatchNumber = item.BatchNumber,
+                CompletedQuantity = 0,
+                CreateDate = item.CreateDate,
+                Creater = item.Creater,
+                MaterialId = item.MaterialId,
+                OutboundQuantity = item.Quantity,
+                Remarks = item.Remarks,
+                MaterialName = item.Remarks // 鐗╂枡鍚嶇О
+            };
+            orderDetails.Add(detail);
+        }
+        return orderDetails;
+    }
+
+    #endregion 璋冩嫧鍑哄簱鍗�
+
+    #region 鍑哄簱鍒嗛厤
+
+    /// <summary>
+    /// 鍒涘缓浠诲姟鍒楄〃
+    /// </summary>
+    /// <param name="order">璁㈠崟瀵硅薄</param>
+    /// <param name="filteredStocks">绛涢�夊悗鐨勫簱瀛樺垪琛�</param>
+    /// <returns>銆愪换鍔″垪琛�,鏇存柊鍒嗛厤鏁伴噺璁㈠崟,鍒涘缓浠诲姟鐨勫簱瀛樸��</returns>
+    private (List<Dt_Task>, Dt_OutOrder, List<DtStockInfo>) CreateTasks(Dt_OutOrder order, List<DtStockInfo> filteredStocks)
+    {
+        var tasks = new List<Dt_Task>();
+        var stocks = new List<DtStockInfo>();
+
+        foreach (var stock in filteredStocks)
+        {
+            // 濡傛灉宸插垎閰嶆暟閲忚揪鍒板嚭搴撴暟閲忥紝鍋滄鍒嗛厤
+            if (order.OrderDetailList.AllocatedQuantity >= order.OrderDetailList.OutboundQuantity)
+                break;
+
+            // 濡傛灉鎵樼洏浠诲姟宸插瓨鍦紝璺宠繃
+            if (_taskRepository.QueryFirst(x => x.PalletCode == stock.PalletCode) != null)
+                continue;
+
+            // 鍒涘缓浠诲姟
+            tasks.Add(new Dt_Task
+            {
+                CreateDate = DateTime.Now, // 鍒涘缓鏃堕棿
+                Creater = App.User.UserName, // 鍒涘缓浜�
+                CurrentAddress = stock.LocationCode, //褰撳墠浣嶇疆
+                Dispatchertime = DateTime.Now, //璋冨害鏃堕棿锛堜换鍔′笅鍙戞椂闂达級
+                Grade = 1, // 绛夌骇
+                //PVI = stock.StockInfoDetails[0].MaterielCode, // 鐗╂枡鍙�
+                NextAddress = stock.LocationCode, // 涓嬩竴浣嶇疆
+                PalletCode = stock.PalletCode, //鎵樼洏鍙�
+                Remark = stock.Remark, //澶囨敞
+                Roadway = stock.LocationInfo.RoadwayNo, //宸烽亾
+                SourceAddress = stock.LocationCode, //鏉ユ簮浣嶇疆
+                TargetAddress = order.OrderDetailList.Remarks, //鐩爣鍦板潃
+                TaskNum = _taskRepository.GetTaskNo().Result, //浠诲姟鍙�
+                TaskState = (int)TaskOutStatusEnum.OutNew, //浠诲姟鐘舵��
+                TaskType = (int)TaskTypeEnum.Outbound, //浠诲姟绫诲瀷
+            });
+
+            // 鏇存柊宸插垎閰嶆暟閲�
+            order.OrderDetailList.AllocatedQuantity += stock.StockInfoDetails.Sum(x => x.StockQuantity);
+            stocks.Add(stock);
+        }
+
+        return (tasks, order, stocks);
+    }
+
+    /// <summary>
+    /// 鏇存柊搴撳瓨鐘舵��
+    /// </summary>
+    /// <param name="filteredStocks">绛涢�夊悗鐨勫簱瀛樺垪琛�</param>
+    /// <returns>鏇存柊鍚庣殑搴撳瓨鍒楄〃</returns>
+    private List<DtStockInfo> UpdateStocks(List<DtStockInfo> filteredStocks)
+    {
+        var updatedStocks = new List<DtStockInfo>();
+
+        foreach (var stock in filteredStocks)
+        {
+            // 鏇存柊搴撳瓨鐘舵��
+            stock.LocationInfo.LocationStatus = (int)LocationEnum.Lock;
+            stock.StockInfoDetails.ForEach(x =>
+            {
+                x.Status = (int)StockStateEmun.鍑哄簱閿佸畾;
+            });
+            updatedStocks.Add(stock);
+        }
+
+        return updatedStocks;
+    }
+
+    /// <summary>
+    /// 鍒涘缓璁㈠崟搴撳瓨鍒楄〃
+    /// </summary>
+    /// <param name="stock">绛涢�夊悗鐨勫簱瀛樺垪琛�</param>
+    /// <param name="order">璁㈠崟瀵硅薄</param>
+    /// <returns>璁㈠崟搴撳瓨鍒楄〃</returns>
+    private List<Dt_OutOrderAndStock> CreateOrderStock(List<DtStockInfo> stock, Dt_OutOrder order)
+    {
+        var orderStocks = new List<Dt_OutOrderAndStock>();
+        foreach (var item in stock)
+        {
+            orderStocks.Add(new Dt_OutOrderAndStock()
+            {
+                AllocatedQuantity = order.OrderDetailList.AllocatedQuantity,
+                MaterialNo = item.StockInfoDetails[0].MaterielCode,
+                MaterialName = order.OrderDetailList.MaterialName,
+                OrderNumber = order.OrderNumber,
+                OutboundQuantity = order.OrderDetailList.OutboundQuantity,
+                PalletCode = item.PalletCode,
+                PalletQuantity = item.StockInfoDetails.Sum(x => x.StockQuantity),
+                State = item.StockInfoDetails[0].Status,
+                BatchNumber = order.OrderDetailList.BatchNumber,
+                CompletedQuantity = order.OrderDetailList.CompletedQuantity,
+                Creater = App.User.UserName,
+                CreateDate = DateTime.Now,
+                GroupId = item.Id,
+                LocationCode = item.LocationInfo.LocationCode,
+                OutOrderId = order.Id,
+            });
+        }
+
+        return orderStocks;
+    }
+
+    #endregion 鍑哄簱鍒嗛厤
+
+    #endregion 绉佹湁鏂规硶
+}
\ No newline at end of file
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServer/WIDESEA_StorageOutOrderServices/OutboundOrder/Dt_PaintingOrderInfoService.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServer/WIDESEA_StorageOutOrderServices/OutboundOrder/Dt_PaintingOrderInfoService.cs"
new file mode 100644
index 0000000..218b22e
--- /dev/null
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServer/WIDESEA_StorageOutOrderServices/OutboundOrder/Dt_PaintingOrderInfoService.cs"
@@ -0,0 +1,473 @@
+锘縩amespace WIDESEA_StorageOutOrderServices;
+
+public class Dt_PaintingOrderInfoService : ServiceBase<Dt_PaintingOrderInfo, IDt_PaintingOrderInfoRepository>, IDt_PaintingOrderInfoService
+{
+    private readonly LogFactory LogFactory = new LogFactory();
+    private readonly IUnitOfWorkManage _unitOfWorkManage;
+    private readonly IDt_OutOrderProductionService _outOrderProductionService;
+    private readonly IDt_OutOrderProductionDetailService _outOrderProductionDetailService;
+    private readonly IDt_OutOrderDtailService _outOrderDtailService;
+    private readonly IDt_OutOrderTransferRepository _OutOrderTransferRepository;
+    private readonly IDt_OutOrderTransferDetailRepository _OutOrderTransferDetailRepository;
+    private readonly IDt_MaterielInfoRepository _materielInfoRepository;
+    private readonly IStockInfoRepository _stockInfoRepository;
+    private readonly IDt_OutOrderAndStockRepository _outOrderAndStockRepository;
+    private readonly IDt_TaskRepository _taskRepository;
+
+    public Dt_PaintingOrderInfoService(IDt_PaintingOrderInfoRepository BaseDal,
+                              IUnitOfWorkManage unitOfWorkManage,
+                              IDt_OutOrderProductionService outOrderProductionService,
+                              IDt_OutOrderProductionDetailService outOrderProductionDetailService,
+                              IDt_OutOrderDtailService outOrderDtailService,
+                              IDt_OutOrderTransferDetailRepository outOrderTransferDetailRepository,
+                              IDt_OutOrderTransferRepository outOrderTransferRepository,
+                              IDt_MaterielInfoRepository materielInfoRepository,
+                              IStockInfoRepository stockInfoRepository,
+                              IDt_OutOrderAndStockRepository outOrderAndStockRepository,
+                              IDt_TaskRepository taskRepository) : base(BaseDal)
+    {
+        _unitOfWorkManage = unitOfWorkManage;
+        _outOrderProductionService = outOrderProductionService;
+        _outOrderProductionDetailService = outOrderProductionDetailService;
+        _outOrderDtailService = outOrderDtailService;
+        _OutOrderTransferDetailRepository = outOrderTransferDetailRepository;
+        _OutOrderTransferRepository = outOrderTransferRepository;
+        _materielInfoRepository = materielInfoRepository;
+        _stockInfoRepository = stockInfoRepository;
+        _outOrderAndStockRepository = outOrderAndStockRepository;
+        _taskRepository = taskRepository;
+    }
+
+
+
+    /// <summary>
+    /// 鏍规嵁璁㈠崟鍒嗛厤鍑哄簱搴撳瓨
+    /// </summary>
+    /// <param name="orderNo">璁㈠崟缂栧彿</param>
+    /// <returns></returns>
+    public async Task<WebResponseContent> GetOutboundStockAsync(string orderNo)
+    {
+        WebResponseContent content = new WebResponseContent();
+        try
+        {
+            // 鑾峰彇璁㈠崟
+            //var order = await BaseDal.GetOutOrderByNumberAsync(orderNo);
+            //LogFactory.GetLog("鍑哄簱鍒嗛厤骞跺垱寤轰换鍔�").InfoFormat(true, "鏍规嵁璁㈠崟缂栧彿鑾峰彇璁㈠崟鏁版嵁", JsonConvert.SerializeObject(order));
+
+            //// 妫�鏌ヨ鍗曟槸鍚﹁幏鍙栨垚鍔�
+            //if (order == null)
+            //{
+            //    return content.Error("鑾峰彇璁㈠崟澶辫触");
+            //}
+
+            //// 鑾峰彇璁㈠崟涓殑绗竴涓墿鏂欑紪鍙�
+            //var materielInfo = await _materielInfoRepository.QueryFirstAsync(x => x.MaterielID == order.OrderDetailList.MaterialId);
+            //LogFactory.GetLog("鍑哄簱鍒嗛厤骞跺垱寤轰换鍔�").InfoFormat(true, "鑾峰彇璁㈠崟鐗╂枡缂栧彿", JsonConvert.SerializeObject(materielInfo));
+
+            //#region 鍏堝叆鍏堝嚭
+
+            //// 鑾峰彇璇ョ墿鏂欐墍鏈夊彲鍑哄簱搴撳瓨
+            //var filteredStocks = await _stockInfoRepository.QueryDataAsync(x => true);
+            //filteredStocks.OrderBy(x => x.CreateDate).ToList();
+            //LogFactory.GetLog("鍑哄簱鍒嗛厤骞跺垱寤轰换鍔�").InfoFormat(true, "鑾峰彇璇ョ墿鏂欐墍鏈夊彲鍑哄簱搴撳瓨", JsonConvert.SerializeObject(filteredStocks));
+
+            //#endregion 鍏堝叆鍏堝嚭
+
+            //#region 鏌ユ壘闈犺繎鍑哄簱鍙e簱瀛�
+
+            //// 榛樿鍒楄秺澶ц秺闈犺繎鍑哄簱鍙�
+            //filteredStocks = filteredStocks.OrderByDescending(x => x.LocationInfo.Column).OrderBy(x => x.CreateDate).ToList();
+
+            //#endregion 鏌ユ壘闈犺繎鍑哄簱鍙e簱瀛�
+
+            //#region 涓�娣变綅浼樺厛鏌ユ壘锛屽啀鏌ユ壘鍚屽垪浜屾繁浣�
+
+            //filteredStocks = PickStocks(filteredStocks);
+
+            //#endregion 涓�娣变綅浼樺厛鏌ユ壘锛屽啀鏌ユ壘鍚屽垪浜屾繁浣�
+
+            //// 鍒涘缓浠诲姟鍒楄〃
+            //var (tasks, updateOrder, stock) = CreateTasks(order, filteredStocks);
+            //LogFactory.GetLog("鍑哄簱鍒嗛厤骞跺垱寤轰换鍔�").InfoFormat(true, "鍒涘缓浠诲姟鍒楄〃锛屼慨鏀硅鍗曞垎閰嶆暟閲忥紝鑾峰彇鍑哄簱鍒嗛厤搴撳瓨",
+            //    $"浠诲姟鍒楄〃:{JsonConvert.SerializeObject(tasks)},璁㈠崟鍒楄〃锛歿JsonConvert.SerializeObject(updateOrder)},宸插垎閰嶅簱瀛橈細{JsonConvert.SerializeObject(stock)}");
+
+            //// 鏇存柊搴撳瓨鐘舵��
+            //var stockList = UpdateStocks(stock);
+            //LogFactory.GetLog("鍑哄簱鍒嗛厤骞跺垱寤轰换鍔�").InfoFormat(true, "鏇存柊搴撳瓨鐘舵��", JsonConvert.SerializeObject(stockList));
+
+            //// 鍒涘缓璁㈠崟搴撳瓨鍒楄〃
+            //List<Dt_OutOrderAndStock>? orderStocks = CreateOrderStock(stock, updateOrder);
+            //LogFactory.GetLog("鍑哄簱鍒嗛厤骞跺垱寤轰换鍔�").InfoFormat(true, "鍒涘缓璁㈠崟搴撳瓨鍒楄〃", JsonConvert.SerializeObject(orderStocks));
+
+            //// 寮�濮嬩簨鍔�
+            //_unitOfWorkManage.BeginTran();
+
+            //// 鏇存柊搴撳瓨
+            //var isStockUpdated = _stockInfoRepository.UpdateData(stockList);
+            //LogFactory.GetLog("鍑哄簱鍒嗛厤骞跺垱寤轰换鍔�").InfoFormat(true, "浜嬪姟鏇存柊搴撳瓨", isStockUpdated);
+
+            //// 鏇存柊璁㈠崟
+            //var isOrderUpdated = await BaseDal.OutOrderUpdatedAsync(updateOrder);
+            //LogFactory.GetLog("鍑哄簱鍒嗛厤骞跺垱寤轰换鍔�").InfoFormat(true, "浜嬪姟鏇存柊璁㈠崟", isOrderUpdated);
+
+            ////娣诲姞璁㈠崟搴撳瓨
+            //var isOrderStockCread = await _outOrderAndStockRepository.AddDataAsync(orderStocks) > 0;
+            //LogFactory.GetLog("鍑哄簱鍒嗛厤骞跺垱寤轰换鍔�").InfoFormat(true, "浜嬪姟娣诲姞璁㈠崟搴撳瓨", isOrderStockCread);
+
+            //// 鍒涘缓浠诲姟
+            //var isTaskCreated = await _taskRepository.Create(tasks);
+            //LogFactory.GetLog("鍑哄簱鍒嗛厤骞跺垱寤轰换鍔�").InfoFormat(true, "浜嬪姟鍒涘缓浠诲姟", isTaskCreated);
+
+            //// 鎻愪氦鎴栧洖婊氫簨鍔�
+            //if (isStockUpdated && isTaskCreated && isOrderUpdated && isOrderStockCread)
+            //{
+            //    LogFactory.GetLog("鍑哄簱鍒嗛厤骞跺垱寤轰换鍔�").InfoFormat(true, "鏁版嵁澶勭悊瀹屾垚锛屾彁浜や簨鍔�", "鏃犲弬鏁�");
+            //    _unitOfWorkManage.CommitTran();
+            //}
+            //else
+            //{
+            //    LogFactory.GetLog("鍑哄簱鍒嗛厤骞跺垱寤轰换鍔�").InfoFormat(true, "娣诲姞鏁版嵁搴撳け璐�,璇锋鏌ユ暟鎹槸鍚︽纭�,鏁版嵁鍥炴粴", $"鏇存柊搴撳瓨:{isStockUpdated},鏇存柊璁㈠崟:{isOrderUpdated},娣诲姞璁㈠崟搴撳瓨:{isOrderStockCread},鍒涘缓浠诲姟:{isTaskCreated}");
+            //    _unitOfWorkManage.RollbackTran();
+            //    throw new Exception("娣诲姞鏁版嵁搴撳け璐�,璇锋鏌ユ暟鎹槸鍚︽纭�,鏁版嵁鍥炴粴");
+            //}
+
+            return content.OK(); //data: orderStocks
+        }
+        catch (Exception ex)
+        {
+            _unitOfWorkManage.RollbackTran();
+            LogFactory.GetLog("鍑哄簱鍒嗛厤骞跺垱寤轰换鍔�").InfoFormat(true, $"绯荤粺寮傚父锛屽紓甯镐俊鎭細{ex.Message}", "鏃犲弬鏁�");
+            return content.Error(ex.Message);
+        }
+    }
+
+    #region 鍐呴儴璋冪敤
+
+    /// <summary>
+    /// 涓�娣变綅浼樺厛鏌ユ壘
+    /// </summary>
+    /// <param name="filteredStocks">鍙嚭搴撳簱瀛�</param>
+    /// <returns>鎺掑簭濂界殑鍑哄簱搴撳瓨</returns>
+    public List<DtStockInfo> PickStocks(List<DtStockInfo> filteredStocks)
+    {
+        var oneDepthList = filteredStocks.Where(x => x.LocationInfo.Depth == 1).ToList();
+        var twoDepthList = filteredStocks.Where(x => x.LocationInfo.Depth == 2).ToList();
+
+        var results = new List<DtStockInfo>();
+        foreach (var oneDepth in oneDepthList)
+        {
+            // 灏� Line 瀛楃涓茶浆鎹负鏁存暟
+            int oneDepthLine = oneDepth.LocationInfo.Row;
+
+            // 璁$畻鐩稿琛�
+            int relativeLine = oneDepthLine % 2 == 1 ? oneDepthLine + 1 : oneDepthLine - 1;
+
+            // 鏌ユ壘鏈�鎺ヨ繎鐨勪簩娣变綅璁板綍
+            var closestTwoDepth = twoDepthList
+                .Where(t => t.LocationInfo.Row == relativeLine)
+                .Where(x => x.LocationInfo.Column == oneDepth.LocationInfo.Column)
+                .Where(x => x.LocationInfo.Layer == oneDepth.LocationInfo.Layer)
+                .FirstOrDefault();
+
+            // 濡傛灉鎵惧埌浜嗘渶鎺ヨ繎鐨勪簩娣变綅璁板綍锛屽皢鍏朵笌涓�娣变綅涓�璧锋坊鍔犲埌缁撴灉鍒楄〃
+            if (closestTwoDepth != null)
+            {
+                results.Add(oneDepth);
+                results.Add(closestTwoDepth);
+            }
+            else
+            {
+                // 濡傛灉娌℃湁鎵惧埌鏈�鎺ヨ繎鐨勪簩娣变綅璁板綍锛屽皢涓�娣变綅娣诲姞鍒扮粨鏋滃垪琛�
+                results.Add(oneDepth);
+            }
+        }
+        return results;
+    }
+
+    #endregion 鍐呴儴璋冪敤
+
+    #region 绉佹湁鏂规硶
+
+    #region 鐢熶骇鍑哄簱鍗�
+
+    /// <summary>
+    /// 鏍规嵁涓绘暟鎹瀯寤虹敓浜у嚭搴撳崟瀵硅薄銆�
+    /// </summary>
+    private Dt_OutOrderProduction CreateProductionOrder(Dictionary<string, object> mainData)
+    {
+        return new Dt_OutOrderProduction
+        {
+            OrderNumber = mainData.GetValueOrDefault("OrderNumber")?.ToString(),
+            WarehouseId = mainData.GetValueOrDefault("WarehouseId")?.ObjToInt() ?? 0,
+            Status = (int)OutOrderTypeEnum.Issue,
+            Remarks = mainData.GetValueOrDefault("Remarks")?.ToString(),
+            Creater = mainData.GetValueOrDefault("Creater")?.ToString(),
+            CreateDate = mainData.GetValueOrDefault("CreateDate")?.ObjToDate() ?? DateTime.Now,
+            OrderDate = mainData.GetValueOrDefault("OrderDate")?.ObjToDate() ?? DateTime.Now,
+        };
+    }
+
+    /// <summary>
+    /// 鏍规嵁鏄庣粏鏁版嵁鍜岀敓浜у嚭搴撳崟ID鏋勫缓鐢熶骇鍑哄簱鍗曟槑缁嗗垪琛ㄣ��
+    /// </summary>
+    private List<Dt_OutOrderProductionDetail> CreateProductionDetails(List<Dictionary<string, object>> detailData)
+    {
+        var details = new List<Dt_OutOrderProductionDetail>();
+        foreach (var item in detailData)
+        {
+            var detail = new Dt_OutOrderProductionDetail
+            {
+                MaterialId = item.GetValueOrDefault("MaterialId")?.ObjToInt() ?? 0,
+                Quantity = item.GetValueOrDefault("Quantity")?.ObjToInt() ?? 0,
+                Remarks = item.GetValueOrDefault("Remarks")?.ToString(),
+                CreateDate = item.GetValueOrDefault("CreateDate")?.ObjToDate() ?? DateTime.Now,
+                Creater = item.GetValueOrDefault("Creater")?.ToString(),
+                BatchNumber = item.GetValueOrDefault("BatchNumber")?.ToString(),
+            };
+            details.Add(detail);
+        }
+        return details;
+    }
+
+    /// <summary>
+    /// 鏍规嵁鐢熶骇鍑哄簱鍗曞璞″拰鐢熶骇鍑哄簱鍗旾D鏋勫缓绯荤粺鍑哄簱鍗曞璞°��
+    /// </summary>
+    private Dt_OutOrder CreateSystemOrder(Dt_OutOrderProduction production)
+    {
+        return new Dt_OutOrder
+        {
+            Status = production.Status,
+            CreateDate = DateTime.Now,
+            Creater = production.Creater,
+            OrderDate = DateTime.Now,
+            OrderNumber = production.OrderNumber,
+            Remarks = production.Remarks,
+            WarehouseId = production.WarehouseId,
+        };
+    }
+
+    /// <summary>
+    /// 鏍规嵁鐢熶骇鍑哄簱鍗曟槑缁嗗垪琛ㄥ拰绯荤粺鍑哄簱鍗旾D鏋勫缓绯荤粺鍑哄簱鍗曟槑缁嗗垪琛ㄣ��
+    /// </summary>
+    private List<Dt_OutOrderDetail> CreateSystemOrderDetails(List<Dt_OutOrderProductionDetail> productionDetails)
+    {
+        var orderDetails = new List<Dt_OutOrderDetail>();
+        foreach (var item in productionDetails)
+        {
+            var detail = new Dt_OutOrderDetail
+            {
+                AllocatedQuantity = 0,
+                BatchNumber = item.BatchNumber,
+                CompletedQuantity = 0,
+                CreateDate = item.CreateDate,
+                Creater = item.Creater,
+                MaterialId = item.MaterialId,
+                OutboundQuantity = item.Quantity,
+                Remarks = item.Remarks,
+                MaterialName = item.Remarks // 鐗╂枡鍚嶇О
+            };
+            orderDetails.Add(detail);
+        }
+        return orderDetails;
+    }
+
+    #endregion 鐢熶骇鍑哄簱鍗�
+
+    #region 璋冩嫧鍑哄簱鍗�
+
+    /// <summary>
+    /// 鏍规嵁涓绘暟鎹瀯寤鸿皟鎷ㄥ嚭搴撳崟瀵硅薄銆�
+    /// </summary>
+    private Dt_OutOrderTransfer CreateTransferOrder(Dictionary<string, object> mainData)
+    {
+        return new Dt_OutOrderTransfer
+        {
+            OrderNumber = mainData.GetValueOrDefault("OrderNumber")?.ToString(),
+            SourceWarehouseId = mainData.GetValueOrDefault("SourceWarehouseId")?.ObjToInt() ?? 0,
+            DestinationWarehouseId = mainData.GetValueOrDefault("WarehouseId")?.ObjToInt() ?? 0,
+            Status = (int)OutOrderTypeEnum.Allocate,
+            Remarks = mainData.GetValueOrDefault("Remarks")?.ToString(),
+            Creater = mainData.GetValueOrDefault("Creater")?.ToString(),
+            CreateDate = mainData.GetValueOrDefault("CreateDate")?.ObjToDate() ?? DateTime.Now,
+            OrderDate = mainData.GetValueOrDefault("OrderDate")?.ObjToDate() ?? DateTime.Now,
+        };
+    }
+
+    /// <summary>
+    /// 鏍规嵁鏄庣粏鏁版嵁鍜岃皟鎷ㄥ嚭搴撳崟ID鏋勫缓璋冩嫧鍑哄簱鍗曟槑缁嗗垪琛ㄣ��
+    /// </summary>
+    private List<Dt_OutOrderTransferDetail> CreateTransferDetails(List<Dictionary<string, object>> detailData)
+    {
+        var details = new List<Dt_OutOrderTransferDetail>();
+        foreach (var item in detailData)
+        {
+            var detail = new Dt_OutOrderTransferDetail
+            {
+                MaterialId = item.GetValueOrDefault("MaterialId")?.ObjToInt() ?? 0,
+                Quantity = item.GetValueOrDefault("Quantity")?.ObjToInt() ?? 0,
+                Remarks = item.GetValueOrDefault("Remarks")?.ToString(),
+                CreateDate = item.GetValueOrDefault("CreateDate")?.ObjToDate() ?? DateTime.Now,
+                Creater = item.GetValueOrDefault("Creater")?.ToString(),
+                BatchNumber = item.GetValueOrDefault("BatchNumber")?.ToString(),
+            };
+            details.Add(detail);
+        }
+        return details;
+    }
+
+    /// <summary>
+    /// 鏍规嵁鐢熶骇鍑哄簱鍗曞璞″拰鐢熶骇鍑哄簱鍗旾D鏋勫缓绯荤粺鍑哄簱鍗曞璞°��
+    /// </summary>
+    private Dt_OutOrder CreateSystemOrder(Dt_OutOrderTransfer transfer)
+    {
+        return new Dt_OutOrder
+        {
+            Status = transfer.Status,
+            CreateDate = DateTime.Now,
+            Creater = transfer.Creater,
+            OrderDate = DateTime.Now,
+            OrderNumber = transfer.OrderNumber,
+            Remarks = transfer.Remarks,
+            WarehouseId = transfer.SourceWarehouseId,
+        };
+    }
+
+    /// <summary>
+    /// 鏍规嵁鐢熶骇鍑哄簱鍗曟槑缁嗗垪琛ㄥ拰绯荤粺鍑哄簱鍗旾D鏋勫缓绯荤粺鍑哄簱鍗曟槑缁嗗垪琛ㄣ��
+    /// </summary>
+    private List<Dt_OutOrderDetail> CreateSystemOrderDetails(List<Dt_OutOrderTransferDetail> transferDetails)
+    {
+        var orderDetails = new List<Dt_OutOrderDetail>();
+        foreach (var item in transferDetails)
+        {
+            var detail = new Dt_OutOrderDetail
+            {
+                AllocatedQuantity = 0,
+                BatchNumber = item.BatchNumber,
+                CompletedQuantity = 0,
+                CreateDate = item.CreateDate,
+                Creater = item.Creater,
+                MaterialId = item.MaterialId,
+                OutboundQuantity = item.Quantity,
+                Remarks = item.Remarks,
+                MaterialName = item.Remarks // 鐗╂枡鍚嶇О
+            };
+            orderDetails.Add(detail);
+        }
+        return orderDetails;
+    }
+
+    #endregion 璋冩嫧鍑哄簱鍗�
+
+    #region 鍑哄簱鍒嗛厤
+
+    /// <summary>
+    /// 鍒涘缓浠诲姟鍒楄〃
+    /// </summary>
+    /// <param name="order">璁㈠崟瀵硅薄</param>
+    /// <param name="filteredStocks">绛涢�夊悗鐨勫簱瀛樺垪琛�</param>
+    /// <returns>銆愪换鍔″垪琛�,鏇存柊鍒嗛厤鏁伴噺璁㈠崟,鍒涘缓浠诲姟鐨勫簱瀛樸��</returns>
+    private (List<Dt_Task>, Dt_OutOrder, List<DtStockInfo>) CreateTasks(Dt_OutOrder order, List<DtStockInfo> filteredStocks)
+    {
+        var tasks = new List<Dt_Task>();
+        var stocks = new List<DtStockInfo>();
+
+        foreach (var stock in filteredStocks)
+        {
+            // 濡傛灉宸插垎閰嶆暟閲忚揪鍒板嚭搴撴暟閲忥紝鍋滄鍒嗛厤
+            if (order.OrderDetailList.AllocatedQuantity >= order.OrderDetailList.OutboundQuantity)
+                break;
+
+            // 濡傛灉鎵樼洏浠诲姟宸插瓨鍦紝璺宠繃
+            if (_taskRepository.QueryFirst(x => x.PalletCode == stock.PalletCode) != null)
+                continue;
+
+            // 鍒涘缓浠诲姟
+            tasks.Add(new Dt_Task
+            {
+                CreateDate = DateTime.Now, // 鍒涘缓鏃堕棿
+                Creater = App.User.UserName, // 鍒涘缓浜�
+                CurrentAddress = stock.LocationCode, //褰撳墠浣嶇疆
+                Dispatchertime = DateTime.Now, //璋冨害鏃堕棿锛堜换鍔′笅鍙戞椂闂达級
+                Grade = 1, // 绛夌骇
+                //PVI = stock.StockInfoDetails[0].MaterielCode, // 鐗╂枡鍙�
+                NextAddress = stock.LocationCode, // 涓嬩竴浣嶇疆
+                PalletCode = stock.PalletCode, //鎵樼洏鍙�
+                Remark = stock.Remark, //澶囨敞
+                Roadway = stock.LocationInfo.RoadwayNo, //宸烽亾
+                SourceAddress = stock.LocationCode, //鏉ユ簮浣嶇疆
+                TargetAddress = order.OrderDetailList.Remarks, //鐩爣鍦板潃
+                TaskNum = _taskRepository.GetTaskNo().Result, //浠诲姟鍙�
+                TaskState = (int)TaskOutStatusEnum.OutNew, //浠诲姟鐘舵��
+                TaskType = (int)TaskTypeEnum.Outbound, //浠诲姟绫诲瀷
+            });
+
+            // 鏇存柊宸插垎閰嶆暟閲�
+            order.OrderDetailList.AllocatedQuantity += stock.StockInfoDetails.Sum(x => x.StockQuantity);
+            stocks.Add(stock);
+        }
+
+        return (tasks, order, stocks);
+    }
+
+    /// <summary>
+    /// 鏇存柊搴撳瓨鐘舵��
+    /// </summary>
+    /// <param name="filteredStocks">绛涢�夊悗鐨勫簱瀛樺垪琛�</param>
+    /// <returns>鏇存柊鍚庣殑搴撳瓨鍒楄〃</returns>
+    private List<DtStockInfo> UpdateStocks(List<DtStockInfo> filteredStocks)
+    {
+        var updatedStocks = new List<DtStockInfo>();
+
+        foreach (var stock in filteredStocks)
+        {
+            // 鏇存柊搴撳瓨鐘舵��
+            stock.LocationInfo.LocationStatus = (int)LocationEnum.Lock;
+            stock.StockInfoDetails.ForEach(x =>
+            {
+                x.Status = (int)StockStateEmun.鍑哄簱閿佸畾;
+            });
+            updatedStocks.Add(stock);
+        }
+
+        return updatedStocks;
+    }
+
+    /// <summary>
+    /// 鍒涘缓璁㈠崟搴撳瓨鍒楄〃
+    /// </summary>
+    /// <param name="stock">绛涢�夊悗鐨勫簱瀛樺垪琛�</param>
+    /// <param name="order">璁㈠崟瀵硅薄</param>
+    /// <returns>璁㈠崟搴撳瓨鍒楄〃</returns>
+    private List<Dt_OutOrderAndStock> CreateOrderStock(List<DtStockInfo> stock, Dt_OutOrder order)
+    {
+        var orderStocks = new List<Dt_OutOrderAndStock>();
+        foreach (var item in stock)
+        {
+            orderStocks.Add(new Dt_OutOrderAndStock()
+            {
+                AllocatedQuantity = order.OrderDetailList.AllocatedQuantity,
+                MaterialNo = item.StockInfoDetails[0].MaterielCode,
+                MaterialName = order.OrderDetailList.MaterialName,
+                OrderNumber = order.OrderNumber,
+                OutboundQuantity = order.OrderDetailList.OutboundQuantity,
+                PalletCode = item.PalletCode,
+                PalletQuantity = item.StockInfoDetails.Sum(x => x.StockQuantity),
+                State = item.StockInfoDetails[0].Status,
+                BatchNumber = order.OrderDetailList.BatchNumber,
+                CompletedQuantity = order.OrderDetailList.CompletedQuantity,
+                Creater = App.User.UserName,
+                CreateDate = DateTime.Now,
+                GroupId = item.Id,
+                LocationCode = item.LocationInfo.LocationCode,
+                OutOrderId = order.Id,
+            });
+        }
+
+        return orderStocks;
+    }
+
+    #endregion 鍑哄簱鍒嗛厤
+
+    #endregion 绉佹湁鏂规硶
+}
\ No newline at end of file
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServer/WIDESEA_StorageTaskServices/BDCManager/BDCManager.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServer/WIDESEA_StorageTaskServices/BDCManager/BDCManager.cs"
index 8b0a749..21003a2 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServer/WIDESEA_StorageTaskServices/BDCManager/BDCManager.cs"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServer/WIDESEA_StorageTaskServices/BDCManager/BDCManager.cs"
@@ -4,48 +4,33 @@
 using System.Security.Cryptography.X509Certificates;
 using System.Text;
 using System.Threading.Tasks;
+using WIDESEAWCS_BasicInfoRepository;
+using WIDESEAWCS_BasicInfoService;
 
 namespace WIDESEA_StorageTaskServices
 {
-    public class BDCManager : IBDCManager
+    public partial class BDCManager : IBDCManager
     {
         private readonly List<Dt_PalletStockInfo> _storageLocations;
-        private readonly List<DtLocationInfo> _locationInfos;
         private readonly object _lock = new object();
+        private readonly IDt_BDCConfigurationService _BDCConfigurationService;
+        private readonly ILocationInfoRepository _locationRepository;
+        private readonly IDt_RoadWayInfoRepository _roadWayInfoRepository;
+        private readonly IDt_RoadWayRepository _roadWayRepository;
 
 
-        public int TotalCapacity => _locationInfos.Count;
+        // 鏇存柊鏋勯�犲嚱鏁�
+        public BDCManager(IDt_BDCConfigurationService BDCConfigurationService, ILocationInfoRepository locationInfoRepository, IDt_RoadWayInfoRepository roadWayInfoRepository )
+        {
+            _BDCConfigurationService = BDCConfigurationService;
+            _locationRepository = locationInfoRepository;
+            _roadWayInfoRepository = roadWayInfoRepository;
+        }
+
+
+        public List<DtLocationInfo> TotalCapacity => _locationRepository.QueryData();
 
         public int CurrentOccupancy => _storageLocations.Count;
 
-        public bool AddToBDC(Dt_CarBody body)
-        {
-            throw new NotImplementedException();
-        }
-
-        public void GenerateReport()
-        {
-            throw new NotImplementedException();
-        }
-
-        public List<Dt_CarBody> GetInventory()
-        {
-            throw new NotImplementedException();
-        }
-
-        public List<Dt_CarBody> RetrieveByColor(int color)
-        {
-            throw new NotImplementedException();
-        }
-
-        public List<Dt_CarBody> RetrieveByModel(string model)
-        {
-            throw new NotImplementedException();
-        }
-
-        public Dt_CarBody RetrieveFromBDC(string bodyId)
-        {
-            throw new NotImplementedException();
-        }
     }
 }
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServer/WIDESEA_StorageTaskServices/BDCManager/Partial/BDCManager.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServer/WIDESEA_StorageTaskServices/BDCManager/Partial/BDCManager.cs"
new file mode 100644
index 0000000..452444c
--- /dev/null
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServer/WIDESEA_StorageTaskServices/BDCManager/Partial/BDCManager.cs"
@@ -0,0 +1,61 @@
+锘縰sing System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace WIDESEA_StorageTaskServices
+{
+    public partial class BDCManager
+    {
+
+        public async Task<bool> AddToBDC(Dt_CarBody body)
+        {
+            // 鏍规嵁杞﹁韩绫诲瀷妫�鏌ユ槸鍚﹀彲浠ュ叆搴�
+            if (body.CarType == (int)BodyType.WhiteBody)
+            {
+                if (!await _BDCConfigurationService.CanAddWhiteBody())
+                {
+                    Console.WriteLine($"鏃犳硶鍏ュ簱锛氱櫧杞﹁韩宸茶揪鍒版渶澶х紦瀛橀檺鍒�");
+                    return false;
+                }
+            }
+            else // 褰╄溅韬�
+            {
+                if (!await _BDCConfigurationService.CanAddPaintedBody())
+                {
+                    Console.WriteLine($"鏃犳硶鍏ュ簱锛氬僵杞﹁韩宸茶揪鍒版渶澶х紦瀛橀檺鍒�");
+                    return false;
+                }
+            }
+            //TotalCapacity.Where(x=>x.EnalbeStatus == (int)EnableEnum.Enable && x.LocationStatus == (int)LocationEnum.Free).OrderByDescending.FirstOrDefault();
+
+            return true;
+        }
+
+        public void GenerateReport()
+        {
+            throw new NotImplementedException();
+        }
+
+        public List<Dt_CarBody> GetInventory()
+        {
+            throw new NotImplementedException();
+        }
+
+        public List<Dt_CarBody> RetrieveByColor(int color)
+        {
+            throw new NotImplementedException();
+        }
+
+        public List<Dt_CarBody> RetrieveByModel(string model)
+        {
+            throw new NotImplementedException();
+        }
+
+        public Dt_CarBody RetrieveFromBDC(string bodyId)
+        {
+            throw new NotImplementedException();
+        }
+    }
+}
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServer/WIDESEA_StorageTaskServices/Task/Dt_TaskService.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServer/WIDESEA_StorageTaskServices/Task/Dt_TaskService.cs"
index 7aad3d7..28e5306 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServer/WIDESEA_StorageTaskServices/Task/Dt_TaskService.cs"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServer/WIDESEA_StorageTaskServices/Task/Dt_TaskService.cs"
@@ -12,6 +12,7 @@
 using WIDESEA_IStoragIntegrationServices;
 using WIDESEA_StoragIntegrationServices;
 using WIDESEAWCS_BasicInfoRepository;
+using WIDESEAWCS_BasicInfoService;
 using WIDESEAWCS_Model.Models;
 using WIDESEAWCS_QuartzJob.Models;
 
@@ -21,6 +22,7 @@
 public partial class Dt_TaskService : ServiceBase<Dt_Task, IDt_TaskRepository>, IDt_TaskService
 {
     private readonly LogFactory LogFactory = new LogFactory();
+    //private readonly BDCManager bDCManager = new BDCManager();
     private readonly IUnitOfWorkManage _unitOfWorkManage;
     private readonly IDt_Task_HtyRepository _task_HtyRepository;
     private readonly IMapper _mapper;
@@ -30,9 +32,12 @@
     private readonly IDt_StationManagerRepository _stationManagerRepository;
     private readonly ISys_ConfigService _configService;
     private readonly IDt_PalletStockInfoRepository _palletStockInfoRepository;
-    private readonly IDt_PalletStockInfoDetailRepository _palletStockInfoDetailRepository;
     private readonly IDt_PalletStockInfo_htyRepository _palletStockInfo_HtyRepository;
-    private readonly IBoxingInfoRepository _boxingInfoRepository;
+    private readonly IDt_CarBodyRepository _carBodyRepository;
+    private readonly IDt_BDCConfigurationRepository _bdcConfigurationRepository;
+    private readonly IDt_BDCConfigurationService _bdcConfigurationService;
+    private readonly IDt_RoadWayRepository _roadWayRepository;
+    private readonly IDt_RoadWayInfoRepository _roadWayInfoRepository;
 
     public Dt_TaskService(IDt_TaskRepository BaseDal,
                                 IUnitOfWorkManage unitOfWorkManage,
@@ -42,7 +47,7 @@
                                 ITaskExecuteDetailRepository taskExecuteDetailRepository,
                                 ILocationStatusChangeRecordRepository locationStatusChangeRecordRepository,
                                 IDt_StationManagerRepository stationManagerRepository,
-                                ISys_ConfigService configService, IDt_PalletStockInfoRepository palletStockInfoRepository, IDt_PalletStockInfo_htyRepository palletStockInfo_HtyRepository, IBoxingInfoRepository boxingInfoRepository, IDt_PalletStockInfoDetailRepository palletStockInfoDetailRepository) : base(BaseDal)
+                                ISys_ConfigService configService, IDt_PalletStockInfoRepository palletStockInfoRepository, IDt_PalletStockInfo_htyRepository palletStockInfo_HtyRepository, IDt_CarBodyRepository carBodyRepository, IDt_BDCConfigurationRepository bdcConfigurationRepository, IDt_BDCConfigurationService bDCConfigurationService, IDt_RoadWayRepository roadWayRepository, IDt_RoadWayInfoRepository roadWayInfoRepository) : base(BaseDal)
 
     {
         _unitOfWorkManage = unitOfWorkManage;
@@ -55,8 +60,11 @@
         _configService = configService;
         _palletStockInfoRepository = palletStockInfoRepository;
         _palletStockInfo_HtyRepository = palletStockInfo_HtyRepository;
-        _boxingInfoRepository = boxingInfoRepository;
-        _palletStockInfoDetailRepository = palletStockInfoDetailRepository;
+        _carBodyRepository = carBodyRepository;
+        _bdcConfigurationRepository = bdcConfigurationRepository;
+        _bdcConfigurationService = bDCConfigurationService;
+        _roadWayRepository = roadWayRepository;
+        _roadWayInfoRepository = roadWayInfoRepository;
     }
 
     #region 澶栭儴鎺ュ彛鏂规硶
@@ -85,14 +93,14 @@
             var taskHty = CreateHistoricalTask(task);
 
             //鑾峰彇缁勭洏淇℃伅
-            var boxinginfo = await _boxingInfoRepository.QueryFirstNavAsync(x => x.PalletCode == task.PalletCode);
+            var carBody = await _carBodyRepository.QueryFirstAsync(x => x.PalletCode == task.PalletCode);
 
             // 鏍规嵁鍒涘缓搴撳瓨瀹炰緥妯″瀷
             //var boxDetail = boxinginfo.BoxingInfoDetails.Adapt<List<Dt_PalletStockInfoDetail>>();
             Dt_PalletStockInfo palletStockInfo = new Dt_PalletStockInfo
             {
                 CreateDate = DateTime.Now,
-                
+
                 Creater = task.Creater,
                 LocationCode = task.TargetAddress,
                 StockStatus = 2,
@@ -100,7 +108,7 @@
             };
 
             // 鎵ц鏁版嵁搴撲簨鍔�
-            bool isResult = await ExecuteTransaction(palletStockInfo, taskHty, locationInf, task.TaskId, boxinginfo);
+            bool isResult = await ExecuteTransaction(palletStockInfo, taskHty, locationInf, task.TaskId, carBody);
             if (isResult)
             {
                 _locationStatusChangeRecordRepository.AddLocationStatusChangeRecord(locationInf, lastStatus, (int)StatusChangeTypeEnum.AutomaticStorage, task.TaskNum);
@@ -141,7 +149,7 @@
             stockInfo_Hty.FinishTime = DateTime.Now;
             stockInfo_Hty.OperateType = (int)OperateTypeEnum.鑷姩瀹屾垚;
 
-            var boxinfo = _boxingInfoRepository.QueryFirst(x => x.PalletCode == task.PalletCode);
+            var boxinfo = _carBodyRepository.QueryFirst(x => x.PalletCode == task.PalletCode);
 
             // 浜嬪姟澶勭悊
             await _unitOfWorkManage.UseTranAsync(async () =>
@@ -404,7 +412,7 @@
 
                 _unitOfWorkManage.CommitTran();
             }
-            
+
             content.OK();
         }
         catch (Exception ex)
@@ -617,21 +625,6 @@
     #endregion 鍐呴儴璋冪敤鏂规硶
 
     #region private 鍐呴儴鏂规硶
-
-
-    private async Task DeleteStockInfoDetailsAsync(IEnumerable<Dt_PalletStockInfoDetail> details)
-    {
-        if (details != null)
-        {
-            var ids = details.Select(x => (object)x.Id).ToArray();
-            var isStockDetailUpdated = await _palletStockInfoDetailRepository.DeleteDataByIdsAsync(ids);
-            if (!isStockDetailUpdated)
-            {
-                throw new Exception("搴撳瓨璇︽儏淇℃伅鏇存柊澶辫触");
-            }
-        }
-    }
-
     /// <summary>
     /// 鍒涘缓鍘嗗彶浠诲姟璁板綍
     /// </summary>
@@ -665,7 +658,7 @@
     /// <param name="taskHty">鍘嗗彶浠诲姟瀵硅薄</param>
     /// <param name="taskId">浠诲姟ID</param>
     /// <returns></returns>
-    private async Task<bool> ExecuteTransaction(Dt_PalletStockInfo stock, Dt_Task_Hty taskHty, DtLocationInfo locationInfo, int taskId, DtBoxingInfo boxingInfo)
+    private async Task<bool> ExecuteTransaction(Dt_PalletStockInfo stock, Dt_Task_Hty taskHty, DtLocationInfo locationInfo, int taskId, Dt_CarBody boxingInfo)
     {
         _unitOfWorkManage.BeginTran();
         try
@@ -678,7 +671,7 @@
             //鍒犻櫎缁勭洏鏁版嵁
             if (boxingInfo != null)
             {
-                var box = _boxingInfoRepository.DeleteData(boxingInfo);
+                var box = _carBodyRepository.DeleteData(boxingInfo);
                 //boxingInfo.CurrentStatue = 5;
                 //isDeleteBoxing = await _boxingInfoRepository.Db.DeleteNav<DtBoxingInfo>(x => x.Id == boxingInfo.Id)
                 //                        .Include(x => x.BoxingInfoDetails)
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServer/WIDESEA_StorageTaskServices/Task/Partial/Dt_TaskService.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServer/WIDESEA_StorageTaskServices/Task/Partial/Dt_TaskService.cs"
index 15a0dbd..9cc2883 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServer/WIDESEA_StorageTaskServices/Task/Partial/Dt_TaskService.cs"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServer/WIDESEA_StorageTaskServices/Task/Partial/Dt_TaskService.cs"
@@ -31,10 +31,6 @@
         WebResponseContent content = new WebResponseContent();
         try
         {
-            //string palletCode = saveModel.MainData["palletCode"].ToString();
-            //string station = saveModel.MainData["station"].ToString();
-
-            // 璋冪敤BaseDal.QueryFirstAsync鏂规硶锛屾煡璇换鍔�
             var task = await BaseDal.QueryFirstAsync(x => x.PalletCode == input.PalletCode);
             if (task != null)
             {
@@ -46,14 +42,20 @@
             {
                 throw new Exception($"绔欏彴{input.Position}涓嶅瓨鍦�");
             }
-           
+
+            var carBody = _carBodyRepository.QueryFirst(x => x.PalletCode == input.PalletCode);
+
+            BDCManager bDCManager = new BDCManager(_bdcConfigurationService, _locationRepository, _roadWayInfoRepository);
+
+            await bDCManager.AddToBDC(carBody);
+
             // 鑾峰彇搴撲綅
             var location = RequestLocation(stationInfo.Roadway);
             if (location == null)
             {
                 return content.Error("鏃犳硶鑾峰彇璐т綅淇℃伅鎴栧簱浣嶅凡婊�");
             }
-           
+
             var newtask = new Dt_Task
             {
                 CurrentAddress = input.Position,
@@ -61,7 +63,6 @@
                 Roadway = stationInfo.Roadway,
                 TargetAddress = location.LocationCode,
                 Dispatchertime = DateTime.Now,
-               
                 NextAddress = stationInfo.Roadway,
                 OrderNo = null,
                 PalletCode = input.PalletCode,
@@ -70,10 +71,9 @@
                 TaskType = (int)TaskInboundTypeEnum.Inbound,
                 TaskNum = await BaseDal.GetTaskNo(),
                 Creater = "Systeam",
-                
             };
 
-          
+
             _unitOfWorkManage.BeginTran();
 
             BaseDal.AddData(newtask);
@@ -81,7 +81,7 @@
             _locationRepository.UpdateData(location);
             _unitOfWorkManage.CommitTran();
 
-            content.OK("鐢宠鍏ュ簱鎴愬姛",data: newtask);
+            content.OK("鐢宠鍏ュ簱鎴愬姛", data: newtask);
         }
         catch (Exception er)
         {
@@ -121,7 +121,7 @@
                 return location;
             }
             catch (Exception err)
-            {          
+            {
                 Console.WriteLine(err.Message.ToString());
                 return null;
             }
@@ -132,10 +132,10 @@
     private DtLocationInfo GetEmptyLocation(List<DtLocationInfo> dtLocationInfos)
     {
         var locationinfo = dtLocationInfos.Where(x => x.LocationStatus == (int)LocationEnum.Free && x.EnalbeStatus == 1).OrderBy(x => x.Column).ThenBy(x => x.Row).ThenBy(x => x.Layer).FirstOrDefault();   //.ThenByDescending(x => x.Depth)
-
         return locationinfo;
     }
 
+
     #endregion 鑾峰彇璐т綅
     #endregion 搴撲綅鍒嗛厤
 
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServer/WIDESEA_WMSServer/Controllers/BasicInfo/Dt_BDCConfigurationController.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServer/WIDESEA_WMSServer/Controllers/BasicInfo/Dt_BDCConfigurationController.cs"
new file mode 100644
index 0000000..caeba6d
--- /dev/null
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServer/WIDESEA_WMSServer/Controllers/BasicInfo/Dt_BDCConfigurationController.cs"
@@ -0,0 +1,21 @@
+锘縰sing Microsoft.AspNetCore.Mvc;
+using WIDESEA_BusinessServices;
+using WIDESEA_Core.BaseController;
+using WIDESEA_IBusinessServices;
+using WIDESEA_Model.Models;
+using WIDESEAWCS_BasicInfoService;
+
+namespace WIDESEA_WMSServer.Controllers
+{
+    [Route("api/Dt_BDCConfiguration")]
+    [ApiController]
+    public class Dt_BDCConfigurationController : ApiBaseController<IDt_BDCConfigurationService, Dt_BDCConfiguration>
+    {
+        private readonly IHttpContextAccessor _httpContextAccessor;
+        public Dt_BDCConfigurationController(IDt_BDCConfigurationService service, IHttpContextAccessor httpContextAccessor) : base(service)
+        {
+            _httpContextAccessor = httpContextAccessor;
+        }
+
+    }
+}
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServer/WIDESEA_WMSServer/Controllers/MES/MESController.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServer/WIDESEA_WMSServer/Controllers/MES/MESController.cs"
index adc1050..079f645 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServer/WIDESEA_WMSServer/Controllers/MES/MESController.cs"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServer/WIDESEA_WMSServer/Controllers/MES/MESController.cs"
@@ -42,7 +42,6 @@
         return _MESService.prebind(json);
     }
 
-
     /// <summary>
     /// 鎬昏宸ュ崟
     /// </summary>
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServer/WIDESEA_WMSServer/Controllers/OutboundOrder/Dt_AssemblyOrderInfoController.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServer/WIDESEA_WMSServer/Controllers/OutboundOrder/Dt_AssemblyOrderInfoController.cs"
new file mode 100644
index 0000000..f72341f
--- /dev/null
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServer/WIDESEA_WMSServer/Controllers/OutboundOrder/Dt_AssemblyOrderInfoController.cs"
@@ -0,0 +1,16 @@
+锘縩amespace WIDESEA_WMSServer.Controllers;
+
+/// <summary>
+/// 绯荤粺璁㈠崟鎺ュ彛
+/// </summary>
+[Route("api/[controller]")]
+[ApiController]
+public class Dt_AssemblyOrderInfoController : ApiBaseController<IDt_AssemblyOrderInfoService, Dt_AssemblyOrderInfo>
+{
+    private readonly IHttpContextAccessor _httpContextAccessor;
+
+    public Dt_AssemblyOrderInfoController(IDt_AssemblyOrderInfoService service, IHttpContextAccessor httpContextAccessor) : base(service)
+    {
+        _httpContextAccessor = httpContextAccessor;
+    }
+}
\ No newline at end of file
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServer/WIDESEA_WMSServer/Controllers/OutboundOrder/Dt_PaintingOrderInfoController.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServer/WIDESEA_WMSServer/Controllers/OutboundOrder/Dt_PaintingOrderInfoController.cs"
new file mode 100644
index 0000000..6a39f6c
--- /dev/null
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServer/WIDESEA_WMSServer/Controllers/OutboundOrder/Dt_PaintingOrderInfoController.cs"
@@ -0,0 +1,16 @@
+锘縩amespace WIDESEA_WMSServer.Controllers;
+
+/// <summary>
+/// 绯荤粺璁㈠崟鎺ュ彛
+/// </summary>
+[Route("api/[controller]")]
+[ApiController]
+public class Dt_PaintingOrderInfoController : ApiBaseController<IDt_PaintingOrderInfoService, Dt_PaintingOrderInfo>
+{
+    private readonly IHttpContextAccessor _httpContextAccessor;
+
+    public Dt_PaintingOrderInfoController(IDt_PaintingOrderInfoService service, IHttpContextAccessor httpContextAccessor) : base(service)
+    {
+        _httpContextAccessor = httpContextAccessor;
+    }
+}
\ No newline at end of file

--
Gitblit v1.9.3