From eec109948cb1911bf3310ef873b256ba6ee0d77c Mon Sep 17 00:00:00 2001
From: zs <zhousong@weben-smart.com>
Date: 周四, 08 5月 2025 10:31:33 +0800
Subject: [PATCH] 出入库单据及详情

---
 HIAWms/hiawms_web/src/widgets/WmsMaterialContainer/Views/WmsMaterialContainer.tsx                                                                             |  160 
 HIAWms/server/src/CMS.Plugin.HIAWms.Domain/WmsInOutStockOrderDetail/WmsInOutStockOrderDetail.cs                                                               |    2 
 HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsInOutStockOrder/WmsInOutStockOrderDto.cs                                                    |  191 +
 HIAWms/server/src/CMS.Plugin.HIAWms/Resources/Templates/WmsInOutStockOrder导出模板.xlsx                                                                           |    0 
 HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsInOutStockOrderDetail/WmsInOutStockOrderDetailCreateOrUpdateDtoBase.cs                      |   85 
 HIAWms/hiawms_web/src/widgets/WmsInOutStockOrder/Views/WmsInOutStockOrder.module.scss                                                                         |    7 
 HIAWms/hiawms_web/src/widgets/WmsMaterialContainer/Views/Pages/WmsMaterialContainer/WmsMaterialContainer.tsx                                                  |    4 
 HIAWms/hiawms_web/src/widgets/WmsInOutStockOrder/Controllers/WmsInOutStockOrderQueryDrawer.tsx                                                                |  381 +++
 HIAWms/hiawms_web/src/widgets/WmsInOutStockOrderDetail/Models/Service/WmsInOutStockOrderDetailDrawer.ts                                                       |   34 
 HIAWms/hiawms_web/src/widgets/WmsInOutStockOrderDetail/enum.ts                                                                                                |   15 
 HIAWms/hiawms_web/src/widgets/WmsInOutStockOrderDetail/Controllers/WmsInOutStockOrderDetail.ts                                                                |  275 ++
 HIAWms/hiawms_web/src/widgets/WmsInOutStockOrder/Views/Pages/WmsInOutStockOrder/Config.ts                                                                     |   81 
 HIAWms/server/src/CMS.Plugin.HIAWms/Controller/WmsInOutStockOrderDetailController.cs                                                                          |  188 +
 HIAWms/hiawms_web/src/widgets/WmsInOutStockOrderDetail/Controllers/WmsInOutStockOrderDetailQueryDrawer.tsx                                                    |  279 ++
 HIAWms/hiawms_web/src/widgets/WmsInOutStockRecord/Controllers/WmsInOutStockRecordDrawer.tsx                                                                   |    4 
 HIAWms/hiawms_web/src/widgets/WmsInOutStockOrderDetail/Controllers/File.ts                                                                                    |   31 
 HIAWms/server/src/CMS.Plugin.HIAWms.Application/Implements/WmsInOutStockOrderAppService.cs                                                                    |  450 +++
 HIAWms/hiawms_web/src/widgets/WmsInOutStockOrder/Controllers/WmsInOutStockOrder.ts                                                                            |  275 ++
 HIAWms/hiawms_web/src/widgets/WmsInOutStockOrder/Models/WmsInOutStockOrderQueryDrawer.ts                                                                      |   44 
 HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsInOutStockOrderDetail/WmsInOutStockOrderDetailExportModel.cs                                |   91 
 HIAWms/hiawms_web/src/config/menu.ts                                                                                                                          |   28 
 HIAWms/hiawms_web/src/widgets/WmsInOutStockOrderDetail/Models/WmsInOutStockOrderDetailDrawer.ts                                                               |   44 
 HIAWms/hiawms_web/src/widgets/WmsInOutStockOrderDetail/Views/config/WmsInOutStockOrderDetail.json                                                             |    3 
 Weben_CMS专用代码生成器/Code/File/GenerateCodeConfigParamFiles/出入库单据.txt                                                                                             |   12 
 HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsInOutStockOrder/WmsInOutStockOrdersImportModel.cs                                           |   33 
 HIAWms/hiawms_web/src/widgets/WmsInOutStockOrderDetail/Views/Pages/WmsInOutStockOrderDetail/WmsInOutStockOrderDetail.module.scss                              |  113 
 HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsInOutStockOrder/WmsInOutStockOrderCreateOrUpdateDtoBase.cs                                  |  115 
 HIAWms/server/src/CMS.Plugin.HIAWms.Domain/WmsInOutStockOrder/IWmsInOutStockOrderRepository.cs                                                                |   53 
 HIAWms/server/src/CMS.Plugin.HIAWms.Domain/WmsInOutStockOrderDetail/IWmsInOutStockOrderDetailRepository.cs                                                    |   53 
 HIAWms/hiawms_web/src/widgets/WmsInOutStockOrder/Models/Service/WmsInOutStockOrderQueryDrawer.ts                                                              |   35 
 HIAWms/hiawms_web/src/widgets/WmsInOutStockOrderDetail/Models/Service/WmsInOutStockOrderDetail.ts                                                             |   30 
 HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsInOutStockOrderDetail/WmsInOutStockOrderDetailsImportModel.cs                               |   33 
 HIAWms/hiawms_web/src/widgets/WmsInOutStockOrder/Models/WmsInOutStockOrderDrawer.ts                                                                           |   44 
 HIAWms/hiawms_web/src/widgets/WmsInOutStockOrder/Views/config/WmsInOutStockOrder.json                                                                         |    3 
 HIAWms/server/src/CMS.Plugin.HIAWms.EntityFrameworkCore/Repositories/EfCoreWmsInOutStockOrderRepository.cs                                                    |  113 
 HIAWms/hiawms_web/src/widgets/WmsInOutStockOrderDetail/index.ts                                                                                               |   14 
 HIAWms/hiawms_web/src/widgets/WmsInOutStockOrderDetail/Models/WmsInOutStockOrderDetail.ts                                                                     |   41 
 HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsInOutStockOrderDetail/GetWmsInOutStockOrderDetailInput.cs                                   |  221 +
 HIAWms/hiawms_web/src/widgets/WmsInOutStockOrder/Controllers/File.ts                                                                                          |   31 
 HIAWms/server/src/CMS.Plugin.HIAWms.Application/Implements/WmsInOutStockOrderDetailAppService.cs                                                              |  426 +++
 HIAWms/hiawms_web/src/widgets/WmsInOutStockOrderDetail/Views/Pages/WmsInOutStockOrderDetail/Config.ts                                                         |   55 
 HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsInOutStockOrder/GetWmsInOutStockOrderInput.cs                                               |  279 ++
 HIAWms/hiawms_web/src/widgets/WmsInOutStockOrderDetail/Controllers/WmsInOutStockOrderDetailDrawer.tsx                                                         |  293 ++
 HIAWms/hiawms_web/src/widgets/WmsInOutStockOrder/Views/Pages/Dialog/WmsInOutStockOrderQueryDrawer/WmsInOutStockOrderQueryDrawer.tsx                           |   71 
 HIAWms/hiawms_web/src/widgets/WmsInOutStockOrderDetail/Models/WmsInOutStockOrderDetailQueryDrawer.ts                                                          |   44 
 HIAWms/hiawms_web/src/widgets/WmsInOutStockOrderDetail/Views/WmsInOutStockOrderDetail.tsx                                                                     |   80 
 HIAWms/hiawms_web/src/widgets/WmsInOutStockOrder/Models/Service/WmsInOutStockOrder.ts                                                                         |   30 
 HIAWms/hiawms_web/src/widgets/WmsInOutStockOrder/Views/Pages/Dialog/WmsInOutStockOrderDrawer/WmsInOutStockOrderDrawer.tsx                                     |   61 
 HIAWms/hiawms_web/src/widgets/WmsInOutStockOrder/index.ts                                                                                                     |   14 
 HIAWms/hiawms_web/src/widgets/WmsInOutStockOrderDetail/Views/Pages/Dialog/WmsInOutStockOrderDetailQueryDrawer/WmsInOutStockOrderDetailQueryDrawer.tsx         |   71 
 HIAWms/hiawms_web/src/widgets/WmsInOutStockOrderDetail/Views/Pages/Dialog/WmsInOutStockOrderDetailQueryDrawer/WmsInOutStockOrderDetailQueryDrawer.module.scss |    3 
 HIAWms/hiawms_web/src/widgets/WmsInOutStockOrder/Views/Pages/WmsInOutStockOrder/WmsInOutStockOrder.module.scss                                                |  113 
 HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Services/IWmsInOutStockOrderDetailAppService.cs                                                     |   46 
 HIAWms/hiawms_web/src/widgets/WmsInOutStockOrderDetail/Views/WmsInOutStockOrderDetail.module.scss                                                             |    7 
 HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsInOutStockOrderDetail/WmsInOutStockOrderDetailDto.cs                                        |  141 +
 HIAWms/hiawms_web/src/widgets/WmsInOutStockOrder/enum.ts                                                                                                      |   15 
 HIAWms/hiawms_web/src/widgets/WmsInOutStockOrder/Controllers/WmsInOutStockOrderDrawer.tsx                                                                     |  387 +++
 HIAWms/hiawms_web/src/widgets/WmsInOutStockRecord/Controllers/WmsInOutStockRecordQueryDrawer.tsx                                                              |    4 
 HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Services/IWmsInOutStockOrderAppService.cs                                                           |   46 
 HIAWms/hiawms_web/src/widgets/WmsInOutStockRecord/Views/Pages/WmsInOutStockRecord/Config.ts                                                                   |    2 
 HIAWms/server/src/CMS.Plugin.HIAWms/Controller/WmsInOutStockOrderController.cs                                                                                |  188 +
 HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsInOutStockOrder/WmsInOutStockOrderExportModel.cs                                            |  127 +
 HIAWms/hiawms_web/src/widgets/WmsInOutStockOrder/Views/Pages/Dialog/WmsInOutStockOrderDrawer/WmsInOutStockOrderDrawer.module.scss                             |    3 
 HIAWms/hiawms_web/src/widgets/WmsInOutStockOrder/Views/Pages/WmsInOutStockOrder/WmsInOutStockOrder.tsx                                                        |  349 ++
 HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsInOutStockOrder/WmsInOutStockOrderUpdateDto.cs                                              |   13 
 HIAWms/hiawms_web/src/widgets/WmsInOutStockOrderDetail/Models/Service/WmsInOutStockOrderDetailQueryDrawer.ts                                                  |   35 
 HIAWms/hiawms_web/src/widgets/WmsInOutStockOrderDetail/Views/Pages/WmsInOutStockOrderDetail/WmsInOutStockOrderDetail.tsx                                      |  362 ++
 HIAWms/server/src/CMS.Plugin.HIAWms.EntityFrameworkCore/Repositories/EfCoreWmsInOutStockOrderDetailRepository.cs                                              |  113 
 Weben_CMS专用代码生成器/Code/File/GenerateCodeConfigParamFiles/出入库单据详情.txt                                                                                           |   12 
 HIAWms/hiawms_web/src/widgets/WmsInOutStockOrder/Views/WmsInOutStockOrder.tsx                                                                                 |   80 
 HIAWms/server/src/CMS.Plugin.HIAWms.Application/MapperProfiles/WmsInOutStockOrderAutoMapperProfile.cs                                                         |   26 
 HIAWms/hiawms_web/src/widgets/WmsInOutStockOrderDetail/Views/Pages/Dialog/WmsInOutStockOrderDetailDrawer/WmsInOutStockOrderDetailDrawer.tsx                   |   61 
 HIAWms/hiawms_web/src/widgets/WmsInOutStockOrderDetail/type/type.d.ts                                                                                         |   45 
 HIAWms/hiawms_web/src/widgets/WmsInOutStockOrderDetail/Views/Pages/Dialog/WmsInOutStockOrderDetailDrawer/WmsInOutStockOrderDetailDrawer.module.scss           |    3 
 HIAWms/server/src/CMS.Plugin.HIAWms.Application/MapperProfiles/WmsInOutStockOrderDetailAutoMapperProfile.cs                                                   |   26 
 HIAWms/hiawms_web/src/widgets/WmsInOutStockOrder/Models/WmsInOutStockOrder.ts                                                                                 |   41 
 HIAWms/server/src/CMS.Plugin.HIAWms.Domain/WmsInOutStockOrder/WmsInOutStockOrder.cs                                                                           |    2 
 HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsInOutStockOrderDetail/WmsInOutStockOrderDetailCreateDto.cs                                  |   17 
 HIAWms/server/src/CMS.Plugin.HIAWms/Resources/Templates/WmsInOutStockOrderDetail导出模板.xlsx                                                                     |    0 
 HIAWms/hiawms_web/src/widgets/WmsInOutStockOrder/type/type.d.ts                                                                                               |   45 
 HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsInOutStockOrder/WmsInOutStockOrderCreateDto.cs                                              |   17 
 HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsInOutStockOrderDetail/WmsInOutStockOrderDetailUpdateDto.cs                                  |   13 
 Weben_CMS专用代码生成器/Code/Templete/Web/Controllers/EntityModeDrawer模板.txt                                                                                         |   22 
 HIAWms/hiawms_web/src/widgets/WmsInOutStockOrder/Models/Service/WmsInOutStockOrderDrawer.ts                                                                   |   34 
 HIAWms/hiawms_web/src/widgets/WmsInOutStockOrder/Views/Pages/Dialog/WmsInOutStockOrderQueryDrawer/WmsInOutStockOrderQueryDrawer.module.scss                   |    3 
 85 files changed, 7,341 insertions(+), 100 deletions(-)

diff --git a/HIAWms/hiawms_web/src/config/menu.ts b/HIAWms/hiawms_web/src/config/menu.ts
index 7b4d571..d37ebda 100644
--- a/HIAWms/hiawms_web/src/config/menu.ts
+++ b/HIAWms/hiawms_web/src/config/menu.ts
@@ -35,6 +35,20 @@
     "notPage": false
   },
   {
+    "name": "鍑哄叆搴撳崟鎹鎯�",
+    "path": "/information-base/WmsInOutStockOrderDetail",
+    "patchName": "WmsInOutStockOrderDetail",
+    "icon": "p",
+    "notPage": false
+  },
+  {
+    "name": "鍑哄叆搴撳崟鎹�",
+    "path": "/information-base/WmsInOutStockOrder",
+    "patchName": "WmsInOutStockOrder",
+    "icon": "p",
+    "notPage": false
+  },
+  {
     "name": "Wms鎵樼洏绠$悊",
     "path": "/information-base/WmsContainer",
     "patchName": "WmsContainer",
@@ -92,6 +106,20 @@
     "icon": "p",
     "notPage": false
   },
+  "WmsInOutStockOrderDetail": {
+    "name": "鍑哄叆搴撳崟鎹鎯�",
+    "path": "/information-base/WmsInOutStockOrderDetail",
+    "patchName": "WmsInOutStockOrderDetail",
+    "icon": "p",
+    "notPage": false
+  },
+  "WmsInOutStockOrder": {
+    "name": "鍑哄叆搴撳崟鎹�",
+    "path": "/information-base/WmsInOutStockOrder",
+    "patchName": "WmsInOutStockOrder",
+    "icon": "p",
+    "notPage": false
+  },
   "WmsContainer": {
     "name": "Wms鎵樼洏绠$悊",
     "path": "/information-base/WmsContainer",
diff --git a/HIAWms/hiawms_web/src/widgets/WmsInOutStockOrder/Controllers/File.ts b/HIAWms/hiawms_web/src/widgets/WmsInOutStockOrder/Controllers/File.ts
new file mode 100644
index 0000000..9162fef
--- /dev/null
+++ b/HIAWms/hiawms_web/src/widgets/WmsInOutStockOrder/Controllers/File.ts
@@ -0,0 +1,31 @@
+import { importFileToService, exportFileToClient } from '@/api/file' 
+import { ElMessage } from 'element-plus' 
+import { downloadFile } from '@/utils' 
+import dayjs from 'dayjs' 
+ 
+export const useFile = () => { 
+  /** 
+   * 瀵煎叆鏂囦欢 
+   * @param url 
+   */ 
+  const importFile = async (url: string, file: File) => { 
+    const formData = new FormData() 
+    formData.append('file', file) 
+    await importFileToService(url, formData) 
+    ElMessage('瀵煎叆鎴愬姛') 
+  } 
+  /** 
+   * 瀵煎嚭鏂囦欢 
+   * @param url 
+   */ 
+  const exportFile = async (url: string, params: any, name: string) => { 
+    const res = await exportFileToClient(url, params) 
+    downloadFile(res, `${name}_${dayjs().format('YYYYMMDDHHMMss')}.xlsx`) 
+    ElMessage.success('瀵煎嚭鎴愬姛') 
+  } 
+ 
+  return { 
+    importFile, 
+    exportFile, 
+  } 
+} 
diff --git a/HIAWms/hiawms_web/src/widgets/WmsInOutStockOrder/Controllers/WmsInOutStockOrder.ts b/HIAWms/hiawms_web/src/widgets/WmsInOutStockOrder/Controllers/WmsInOutStockOrder.ts
new file mode 100644
index 0000000..17cd8a6
--- /dev/null
+++ b/HIAWms/hiawms_web/src/widgets/WmsInOutStockOrder/Controllers/WmsInOutStockOrder.ts
@@ -0,0 +1,275 @@
+import { ref, onMounted, reactive, Ref, nextTick, computed } from 'vue' 
+import { injectModel } from '@/libs/Provider/Provider' 
+import { WmsInOutStockOrder } from '../Models/WmsInOutStockOrder' 
+import { ElMessage } from 'element-plus' 
+import { ConfirmBox } from '@/components/ConfirmBox/ConfirmBox' 
+import { useFile } from './File' 
+ 
+interface CurrentType { 
+  row: any 
+  index: number 
+} 
+export const useWmsInOutStockOrder = (props: any, ctx?: any) => { 
+  const wmsInOutStockOrder = injectModel<WmsInOutStockOrder>('wmsInOutStockOrder') 
+  const { exportFile } = useFile() 
+  /** 
+   * 澶撮儴閰嶇疆 
+   */ 
+  const headers = ref({}) 
+  /** 
+   * 鍔ㄦ�佸垪閰嶇疆 
+   */ 
+  const wmsInOutStockOrderColumns = ref<Record<string, any>>([]) 
+  /** 
+   * 鎼滅储鍊� 
+   */ 
+  const search = ref('') 
+ 
+  /** 
+   * 鎺掑簭 
+   */ 
+  const sort = ref(0) 
+  /** 
+   * 閫夋嫨椤� 
+   */ 
+  const selection = ref([]) 
+  /** 
+   * 褰撳墠閫変腑鐨勮 
+   */ 
+  const current = ref<any>(null) 
+  /** 
+   * 鏁版嵁婧� 
+   */ 
+  const dataSource: Ref<any[]> = ref([]) 
+ 
+  /** 
+   * 琛ㄦ牸 
+   */ 
+  const tableRef = ref() 
+  const dialogConfig = reactive({ 
+    visible: false, 
+    title: '', 
+    isAdd: false, 
+  }) 
+  const dialogConfigForQuery = reactive({ 
+    visible: false, 
+    title: '', 
+    isAdd: false, 
+  }) 
+ 
+ 
+  const dialogSettingConfig = reactive({ 
+    visible: false, 
+    title: '', 
+  }) 
+ 
+  /** 
+   * 鍒嗛〉鏁版嵁 
+   */ 
+  const paginationParams = ref({}) 
+ 
+  /** 
+   * 鎵撳紑璇︽儏 
+   * @param row 
+   */ 
+  const openDetail = (row: any) => { 
+    current.value = row 
+    dialogConfig.visible = true 
+    dialogConfig.title = row.name 
+    dialogConfig.isAdd = false 
+    sort.value = row.sort 
+  } 
+ 
+  const contextMenu = [ 
+    { 
+      label: '灞曞紑璇︽儏', 
+      fn: (c: CurrentType) => { 
+        current.value = null 
+        sort.value = c.row.sort 
+        nextTick(() => openDetail(c.row)) 
+      }, 
+      divided: true, 
+      icon: 'o', 
+    }, 
+    // { 
+    //   label: '鍚戜笂娣诲姞', 
+    //   fn: (c: CurrentType, pageNum: number) => { 
+    //     current.value = null 
+    //     sort.value = c.index + 1 + (pageNum - 1) * 50 
+    //     dialogConfig.visible = true 
+    //     dialogConfig.title = '娣诲姞' 
+    //     dialogConfig.isAdd = false 
+    //   }, 
+    //   divided: true, 
+    //   icon: 'up', 
+    // }, 
+    // { 
+    //   label: '鍚戜笅娣诲姞', 
+    //   fn: (c: CurrentType, pageNum: number) => { 
+    //     current.value = null 
+    //     sort.value = c.index + 2 + (pageNum - 1) * 50 
+    //     dialogConfig.visible = true 
+    //     dialogConfig.title = '娣诲姞' 
+    //     dialogConfig.isAdd = false 
+    //   }, 
+    //   divided: true, 
+    //   icon: 'down', 
+    // }, 
+    // { 
+    //   label: '鍒涘缓鍓湰', 
+    //   fn: async ({ row }: CurrentType) => { 
+    //     await wmsInOutStockOrder.cloneData([row.id]) 
+    //     ElMessage.success('鍒涘缓鍓湰鎴愬姛') 
+    //     tableRef.value?.getList() 
+    //   }, 
+    //   divided: true, 
+    //   icon: 'copy', 
+    // }, 
+    { 
+      label: '鍒犻櫎', 
+      fn: async (c: CurrentType) => { 
+        const names = selection.value.map((item: { orderNo: string }) => item.orderNo) 
+        ConfirmBox( 
+          `鏄惁鍒犻櫎${names.length ? names.join(',') : c.row.orderNo}` 
+        ).then(async () => { 
+          const ids = selection.value.map((item: { id: string }) => item.id) 
+          await wmsInOutStockOrder.deleteWmsInOutStockOrders(ids.length ? ids : [c.row.id]) 
+          ElMessage.success('鍒犻櫎鎴愬姛') 
+          tableRef.value.getList() 
+        }) 
+      }, 
+      icon: 'close', 
+    }, 
+  ] 
+ 
+  const onCheck = (records: any) => { 
+    selection.value = records 
+  } 
+ 
+  const onAddWmsInOutStockOrder = () => { 
+    const params = tableRef.value?.getPaginationParams() 
+    current.value = null 
+    dialogConfig.visible = true 
+    dialogConfig.isAdd = true 
+    dialogConfig.title = '娣诲姞' 
+    sort.value = params.totalCount + 1 
+  } 
+ 
+  //鐐瑰嚮鎸夐挳銆愰珮绾ф煡璇€�� 
+  const onAdvancedQuery = () => { 
+    const params = tableRef.value?.getPaginationParams() 
+    current.value = null 
+    dialogConfigForQuery.visible = true 
+    dialogConfigForQuery.isAdd = true 
+    dialogConfigForQuery.title = '楂樼骇鏌ヨ' 
+  } 
+  
+  const onConfirmWmsInOutStockOrder = async () => { 
+    dialogConfig.visible = false 
+    if (dialogConfig.isAdd) { 
+      tableRef.value?.scrollToRow({ 
+        skip: true, 
+      }) 
+    } else { 
+      await tableRef.value?.getList() 
+    } 
+  } 
+  /** 
+   * 琛岀偣鍑绘椂鏇存柊current 
+   */ 
+  const onRowClick = ({ row }: any) => { 
+    if (dialogConfig.visible && current.value) { 
+      current.value = row 
+    } 
+  } 
+  /** 
+   * 瀵煎嚭 
+   */ 
+  const onExport = (data={}) => { 
+    //const params = tableRef.value?.getParams() 
+    exportFile('/api/v1/HIAWms/wmsInOutStockOrder/export', data, 'wmsInOutStockOrder') 
+  } 
+ 
+  /** 
+   * 鍏抽敭瀛楁悳绱� 
+   */ 
+  const onSearch = () => { 
+    tableRef.value?.getList({ 
+      Filter: search.value, 
+    }) 
+  } 
+ 
+  /** 
+   * 閲嶇疆琛ㄦ牸鏁版嵁 
+   */ 
+  const reloadList = () => { 
+    tableRef.value?.getList() 
+  } 
+  /** 
+   * 涓婁紶鎴愬姛 
+   */ 
+  const onSuccess = () => { 
+    tableRef.value?.getList() 
+    ElMessage.success('瀵煎叆鎴愬姛') 
+  } 
+  /** 
+   * 澶辫触 
+   * @param err 
+   */ 
+  const onError = (err: any) => { 
+    try { 
+      const message = JSON.parse(err.message) 
+      ElMessage.error(message.msg) 
+    } catch (error) { 
+      ElMessage.error('瀵煎叆澶辫触') 
+    } 
+  } 
+  /** 
+   * 涓婁紶閽╁瓙 
+   */ 
+  const onBeforeUpload = (file: File) => { 
+    const format = ['xlsx', 'xls', 'csv'] 
+    if (!format.includes(file.name.split('.')[1])) { 
+      ElMessage.error('瀵煎叆鏂囦欢鏍煎紡涓嶆纭紝璇峰鍏�.xlsx/.xls涓�.csv鏍煎紡鐨勬枃浠�') 
+      return false 
+    } 
+    return true 
+  } 
+ 
+  onMounted(() => { 
+    headers.value = { 
+      Authorization: `Bearer ${sessionStorage.getItem('Token')}`, 
+      'X-Project': sessionStorage.getItem('X-Project'), 
+    } 
+  }) 
+ 
+  ctx.expose({ 
+    reloadList, 
+  }) 
+ 
+  return { 
+    dataSource, 
+    contextMenu, 
+    dialogConfig, 
+    dialogConfigForQuery, 
+    dialogSettingConfig, 
+    tableRef, 
+    current, 
+    search, 
+    sort, 
+    wmsInOutStockOrderColumns, 
+    paginationParams, 
+    headers, 
+    onBeforeUpload, 
+    onError, 
+    onSuccess, 
+    openDetail, 
+    onSearch, 
+    onExport, 
+    onRowClick, 
+    onConfirmWmsInOutStockOrder, 
+    onCheck, 
+    onAddWmsInOutStockOrder, 
+    onAdvancedQuery 
+  } 
+} 
diff --git a/HIAWms/hiawms_web/src/widgets/WmsInOutStockOrder/Controllers/WmsInOutStockOrderDrawer.tsx b/HIAWms/hiawms_web/src/widgets/WmsInOutStockOrder/Controllers/WmsInOutStockOrderDrawer.tsx
new file mode 100644
index 0000000..10e4804
--- /dev/null
+++ b/HIAWms/hiawms_web/src/widgets/WmsInOutStockOrder/Controllers/WmsInOutStockOrderDrawer.tsx
@@ -0,0 +1,387 @@
+import {
+  ref,
+  onMounted,
+  reactive,
+  computed,
+  Ref,
+  watch,
+  SetupContext,
+  h,
+} from 'vue'
+import { injectModel } from '@/libs/Provider/Provider'
+import { WmsInOutStockOrderDrawer } from '../Models/WmsInOutStockOrderDrawer'
+import { ElMessage } from 'element-plus'
+import isEqual from 'lodash/isEqual'
+import { ConfirmBox } from '@/components/ConfirmBox/ConfirmBox'
+import { cloneDeep } from 'lodash'
+
+export const useWmsInOutStockOrderDrawer = (props: any, ctx?: any) => {
+  const wmsInOutStockOrderDrawer = injectModel<WmsInOutStockOrderDrawer>(
+    'wmsInOutStockOrderDrawer'
+  )
+  /**
+   * 鐢ㄦ潵瀵规瘮鐨勫垵濮嬪寲鏁版嵁
+   */
+  const initiateData: Ref<Record<string, any>> = ref({})
+  const formData = ref<Record<string, any>>({})
+  // ref
+  const formRef = ref()
+
+  const disabled = ref(false)
+
+  const current = computed(() => {
+    return props.row || null
+  })
+
+  const datePicker = (attrs) => {
+    return (
+      <el-date-picker
+        type="date"
+        format="YYYY-MM-DD HH:mm:ss"
+        formatValue="YYYY-MM-DD HH:mm:ss"
+        {...attrs}
+      ></el-date-picker>
+    )
+  }
+  const inputNumber = (attrs) => {
+    return (
+      <el-input-number
+        min=""
+        step="1"
+        precision="0"
+        {...attrs}
+      ></el-input-number>
+    )
+  }
+
+  const dateTimePicker = (attrs) => {
+    return (
+      <el-date-picker
+        type="datetime"
+        format="YYYY-MM-DD HH:mm:ss"
+        formatValue="YYYY-MM-DD HH:mm:ss"
+        {...attrs}
+      ></el-date-picker>
+    )
+  }
+
+  const visible = computed({
+    get() {
+      return props.modelValue
+    },
+    set(val) {
+      ctx.emit('update:modelValue', val)
+    },
+  })
+  /**
+   * 娣诲姞鐨刦orm瀛楁
+   */
+  const formItems = reactive([
+    {
+      label: '鍗曟嵁缂栧彿',
+      prop: 'orderNo',
+      el: 'input',
+      //disabled: disabled,
+      placeholder: '璇疯緭鍏ュ崟鎹紪鍙�',
+      rules: [{ required: true, message: '鍗曟嵁缂栧彿涓嶈兘涓虹┖', trigger: 'blur' }],
+    },
+    {
+      label: '鍗曟嵁鐘舵��',
+      prop: 'orderStatus',
+      el: 'select',
+      //disabled: disabled,
+      placeholder: '璇疯緭鍏ュ崟鎹姸鎬�',
+      rules: [{ required: true, message: '鍗曟嵁鐘舵�佷笉鑳戒负绌�', trigger: 'blur' }],
+    },
+    {
+      label: '鐗╂枡鍚嶇О',
+      prop: 'materialName',
+      el: 'input',
+      //disabled: disabled,
+      placeholder: '璇疯緭鍏ョ墿鏂欏悕绉�',
+    },
+    {
+      label: '鐗╂枡浠跺彿',
+      prop: 'materialNo',
+      el: 'input',
+      //disabled: disabled,
+      placeholder: '璇疯緭鍏ョ墿鏂欎欢鍙�',
+      rules: [{ required: true, message: '鐗╂枡浠跺彿涓嶈兘涓虹┖', trigger: 'blur' }],
+    },
+    {
+      label: '鍨嬪彿',
+      prop: 'materialModel',
+      el: 'input',
+      //disabled: disabled,
+      placeholder: '璇疯緭鍏ュ瀷鍙�',
+    },
+    {
+      label: '鎵规鍙�',
+      prop: 'materialBatch',
+      el: 'input',
+      //disabled: disabled,
+      placeholder: '璇疯緭鍏ユ壒娆″彿',
+      rules: [{ required: true, message: '鎵规鍙蜂笉鑳戒负绌�', trigger: 'blur' }],
+    },
+    {
+      label: '鍗曟嵁绫诲瀷',
+      prop: 'orderType',
+      el: 'select',
+      //disabled: disabled,
+      placeholder: '璇疯緭鍏ュ崟鎹被鍨�',
+      rules: [{ required: true, message: '鍗曟嵁绫诲瀷涓嶈兘涓虹┖', trigger: 'blur' }],
+    },
+    {
+      label: '鎿嶄綔绫诲瀷锛堟灇涓惧�硷級',
+      prop: 'stockType',
+      el: 'select',
+      //disabled: disabled,
+      placeholder: '璇疯緭鍏ユ搷浣滅被鍨嬶紙鏋氫妇鍊硷級',
+      rules: [
+        {
+          required: true,
+          message: '鎿嶄綔绫诲瀷锛堟灇涓惧�硷級涓嶈兘涓虹┖',
+          trigger: 'blur',
+        },
+      ],
+    },
+    {
+      label: '鍗曟嵁鏁伴噺',
+      prop: 'materialNumber',
+      el: (props: any, { attrs }: SetupContext) => {
+        return h(inputNumber, {
+          ...props,
+          clearable: true,
+          ...attrs,
+        })
+      },
+      width: '100%',
+      step: 1,
+      precision: 0,
+      //disabled: disabled,
+      placeholder: '璇疯緭鍏ュ崟鎹暟閲�',
+      rules: [{ required: true, message: '鍗曟嵁鏁伴噺涓嶈兘涓虹┖', trigger: 'blur' }],
+    },
+    {
+      label: '涓嬪彂鏁伴噺',
+      prop: 'distributeNumber',
+      el: (props: any, { attrs }: SetupContext) => {
+        return h(inputNumber, {
+          ...props,
+          clearable: true,
+          ...attrs,
+        })
+      },
+      width: '100%',
+      step: 1,
+      precision: 0,
+      //disabled: disabled,
+      placeholder: '璇疯緭鍏ヤ笅鍙戞暟閲�',
+      rules: [{ required: true, message: '涓嬪彂鏁伴噺涓嶈兘涓虹┖', trigger: 'blur' }],
+    },
+    {
+      label: '瀹屾垚鏁伴噺',
+      prop: 'completeNumber',
+      el: (props: any, { attrs }: SetupContext) => {
+        return h(inputNumber, {
+          ...props,
+          clearable: true,
+          ...attrs,
+        })
+      },
+      width: '100%',
+      step: 1,
+      precision: 0,
+      //disabled: disabled,
+      placeholder: '璇疯緭鍏ュ畬鎴愭暟閲�',
+      rules: [{ required: true, message: '瀹屾垚鏁伴噺涓嶈兘涓虹┖', trigger: 'blur' }],
+    },
+    {
+      label: '浼樺厛绾�',
+      prop: 'priority',
+      el: (props: any, { attrs }: SetupContext) => {
+        return h(inputNumber, {
+          ...props,
+          clearable: true,
+          ...attrs,
+        })
+      },
+      width: '100%',
+      step: 1,
+      precision: 0,
+      //disabled: disabled,
+      placeholder: '璇疯緭鍏ヤ紭鍏堢骇',
+      rules: [{ required: true, message: '浼樺厛绾т笉鑳戒负绌�', trigger: 'blur' }],
+    },
+    {
+      label: '鍏宠仈璁″垝缂栧彿',
+      prop: 'planNo',
+      el: 'input',
+      //disabled: disabled,
+      placeholder: '璇疯緭鍏ュ叧鑱旇鍒掔紪鍙�',
+    },
+    {
+      label: '鎿嶄綔鏃堕棿',
+      prop: 'operateTime',
+      el: (props: any, { attrs }: SetupContext) => {
+        return h(dateTimePicker, {
+          ...props,
+          clearable: true,
+          ...attrs,
+        })
+      },
+      width: '100%',
+      //disabled: disabled,
+      placeholder: '璇疯緭鍏ユ搷浣滄椂闂�',
+    },
+    {
+      label: '澶囨敞',
+      prop: 'remark',
+      el: 'input',
+      //disabled: disabled,
+      placeholder: '璇疯緭鍏ュ娉�',
+    },
+  ])
+  /**
+   * 鏍¢獙鏄惁鏈夋暟鎹彉鍖�
+   */
+  const checkIsEqualObject = () => {
+    const data = {
+      formData: formData.value,
+    }
+    const check = isEqual(initiateData.value, data)
+    return check
+  }
+
+  const onClose = (done: () => void) => {
+    if (visible.value) {
+      if (checkIsEqualObject()) {
+        visible.value = false
+        done && done()
+      } else {
+        ConfirmBox('鏄惁淇濆瓨璁剧疆锛�')
+          .then(() => {
+            onConfirm()
+          })
+          .catch(() => {
+            visible.value = false
+            done && done()
+          })
+      }
+    }
+  }
+  /**
+   * 淇濆瓨
+   */
+  const onConfirm = async () => {
+    await formRef.value?.validate()
+    const data = {
+      orderNo: formData.value.orderNo,
+      orderStatus: formData.value.orderStatus,
+      materialName: formData.value.materialName,
+      materialNo: formData.value.materialNo,
+      materialModel: formData.value.materialModel,
+      materialBatch: formData.value.materialBatch,
+      orderType: formData.value.orderType,
+      stockType: formData.value.stockType,
+      materialNumber: formData.value.materialNumber,
+      distributeNumber: formData.value.distributeNumber,
+      completeNumber: formData.value.completeNumber,
+      priority: formData.value.priority,
+      planNo: formData.value.planNo,
+      operateTime: formData.value.operateTime,
+      remark: formData.value.remark,
+    }
+    if (!current.value) {
+      await wmsInOutStockOrderDrawer.addWmsInOutStockOrder(data)
+    } else {
+      const id = current.value.id
+      await wmsInOutStockOrderDrawer.updateWmsInOutStockOrder(id, data)
+    }
+    ElMessage.success('淇濆瓨鎴愬姛')
+    ctx.emit('confirm')
+  }
+
+  const updateCheckData = () => {
+    initiateData.value = {
+      formData: {
+        ...formData.value,
+      },
+    }
+  }
+  const updateFormItemOptions = (propName: string, enumData: any[]) => {
+    const item = formItems.find((item) => item.prop === propName)
+    if (item && enumData) {
+      item.options = enumData.map((item) => ({
+        label: item.description,
+        value: item.value,
+      }))
+    }
+  }
+  /**
+   * 閫氱敤鏌ヨ鏋氫妇
+   */
+  const commonQueryEnumForFrom = async () => {
+    const orderStatusEnumEnum = await wmsInOutStockOrderDrawer.getWmsEnumData({
+      EnumName: 'OrderStatusEnum',
+    })
+    updateFormItemOptions('orderStatus', orderStatusEnumEnum)
+    const orderTypeEnumEnum = await wmsInOutStockOrderDrawer.getWmsEnumData({
+      EnumName: 'OrderTypeEnum',
+    })
+    updateFormItemOptions('orderType', orderTypeEnumEnum)
+    const stockTypeEnumEnum = await wmsInOutStockOrderDrawer.getWmsEnumData({
+      EnumName: 'StockTypeEnum',
+    })
+    updateFormItemOptions('stockType', stockTypeEnumEnum)
+  }
+  commonQueryEnumForFrom()
+  /**
+   * 寮圭獥鎵撳紑鑾峰彇璇︽儏
+   */
+  const onOpen = async () => {
+    if (current.value) {
+      const res = await wmsInOutStockOrderDrawer.getWmsInOutStockOrderDetail(
+        current.value
+      )
+
+      formData.value = {
+        orderNo: res.orderNo,
+        orderStatus: res.orderStatus,
+        materialName: res.materialName,
+        materialNo: res.materialNo,
+        materialModel: res.materialModel,
+        materialBatch: res.materialBatch,
+        orderType: res.orderType,
+        stockType: res.stockType,
+        materialNumber: res.materialNumber,
+        distributeNumber: res.distributeNumber,
+        completeNumber: res.completeNumber,
+        priority: res.priority,
+        planNo: res.planNo,
+        operateTime: res.operateTime,
+        remark: res.remark,
+        id: res.id,
+      }
+      disabled.value = true
+      updateCheckData()
+    } else {
+      formData.value = {}
+
+      disabled.value = false
+      updateCheckData()
+    }
+  }
+
+  watch(() => current.value, onOpen)
+
+  return {
+    formItems,
+    formData,
+    visible,
+    formRef,
+    onOpen,
+    onClose,
+    onConfirm,
+  }
+}
diff --git a/HIAWms/hiawms_web/src/widgets/WmsInOutStockOrder/Controllers/WmsInOutStockOrderQueryDrawer.tsx b/HIAWms/hiawms_web/src/widgets/WmsInOutStockOrder/Controllers/WmsInOutStockOrderQueryDrawer.tsx
new file mode 100644
index 0000000..8ffb0d0
--- /dev/null
+++ b/HIAWms/hiawms_web/src/widgets/WmsInOutStockOrder/Controllers/WmsInOutStockOrderQueryDrawer.tsx
@@ -0,0 +1,381 @@
+import {
+  ref,
+  onMounted,
+  reactive,
+  computed,
+  Ref,
+  watch,
+  SetupContext,
+  h,
+} from 'vue'
+import { injectModel } from '@/libs/Provider/Provider'
+import { WmsInOutStockOrderDrawer } from '../Models/WmsInOutStockOrderDrawer'
+import { ElMessage } from 'element-plus'
+import isEqual from 'lodash/isEqual'
+import { ConfirmBox } from '@/components/ConfirmBox/ConfirmBox'
+import { cloneDeep } from 'lodash'
+
+export const useWmsInOutStockOrderQueryDrawer = (props: any, ctx?: any) => {
+  const wmsInOutStockOrderDrawer = injectModel<WmsInOutStockOrderDrawer>(
+    'WmsInOutStockOrderDrawer'
+  )
+  /**
+   * 鐢ㄦ潵瀵规瘮鐨勫垵濮嬪寲鏁版嵁
+   */
+  const initiateData: Ref<Record<string, any>> = ref({})
+  const formData = ref<Record<string, any>>({})
+  // ref
+  const formRef = ref()
+
+  const disabled = ref(false)
+
+  const current = computed(() => {
+    return props.row || null
+  })
+
+  const inputNumber = (attrs) => {
+    return (
+      <el-input-number
+        min="1"
+        step="1"
+        precision="0"
+        {...attrs}
+      ></el-input-number>
+    )
+  }
+
+  const datePickerRange = (attrs) => {
+    return (
+      <el-date-picker
+        type="daterange"
+        value-format="YYYY-MM-DD HH:mm:ss"
+        start-placeholder="寮�濮嬫棩鏈�"
+        end-placeholder="缁撴潫鏃ユ湡"
+        {...attrs}
+      ></el-date-picker>
+    )
+  }
+
+  const dateTimePickerRange = (attrs) => {
+    return (
+      <el-date-picker
+        type="datetimerange"
+        value-format="YYYY-MM-DD HH:mm:ss"
+        start-placeholder="寮�濮嬫棩鏈�"
+        end-placeholder="缁撴潫鏃ユ湡"
+        {...attrs}
+      ></el-date-picker>
+    )
+  }
+
+  const visible = computed({
+    get() {
+      return props.modelValue
+    },
+    set(val) {
+      ctx.emit('update:modelValue', val)
+    },
+  })
+  /**
+   * 娣诲姞鐨刦orm瀛楁
+   */
+  const formItems = reactive([
+    {
+      label: '鍗曟嵁缂栧彿',
+      prop: 'orderNo',
+      el: 'input',
+      //disabled: disabled,
+      placeholder: '璇疯緭鍏ュ崟鎹紪鍙�',
+    },
+    {
+      label: '鍗曟嵁鐘舵��',
+      prop: 'orderStatus',
+      el: 'select',
+      //disabled: disabled,
+      placeholder: '璇疯緭鍏ュ崟鎹姸鎬�',
+    },
+    {
+      label: '鐗╂枡鍚嶇О',
+      prop: 'materialName',
+      el: 'input',
+      //disabled: disabled,
+      placeholder: '璇疯緭鍏ョ墿鏂欏悕绉�',
+    },
+    {
+      label: '鐗╂枡浠跺彿',
+      prop: 'materialNo',
+      el: 'input',
+      //disabled: disabled,
+      placeholder: '璇疯緭鍏ョ墿鏂欎欢鍙�',
+    },
+    {
+      label: '鍨嬪彿',
+      prop: 'materialModel',
+      el: 'input',
+      //disabled: disabled,
+      placeholder: '璇疯緭鍏ュ瀷鍙�',
+    },
+    {
+      label: '鎵规鍙�',
+      prop: 'materialBatch',
+      el: 'input',
+      //disabled: disabled,
+      placeholder: '璇疯緭鍏ユ壒娆″彿',
+    },
+    {
+      label: '鍗曟嵁绫诲瀷',
+      prop: 'orderType',
+      el: 'select',
+      //disabled: disabled,
+      placeholder: '璇疯緭鍏ュ崟鎹被鍨�',
+    },
+    {
+      label: '鎿嶄綔绫诲瀷',
+      prop: 'stockType',
+      el: 'select',
+      //disabled: disabled,
+      placeholder: '璇疯緭鍏ユ搷浣滅被鍨�',
+    },
+    {
+      label: '鍗曟嵁鏁伴噺',
+      prop: 'materialNumber',
+      el: (props: any, { attrs }: SetupContext) => {
+        return h(inputNumber, {
+          ...props,
+          clearable: true,
+          ...attrs,
+        })
+      },
+      width: '100%',
+      step: 1,
+      precision: 0,
+      //disabled: disabled,
+      placeholder: '璇疯緭鍏ュ崟鎹暟閲�',
+    },
+    {
+      label: '涓嬪彂鏁伴噺',
+      prop: 'distributeNumber',
+      el: (props: any, { attrs }: SetupContext) => {
+        return h(inputNumber, {
+          ...props,
+          clearable: true,
+          ...attrs,
+        })
+      },
+      width: '100%',
+      step: 1,
+      precision: 0,
+      //disabled: disabled,
+      placeholder: '璇疯緭鍏ヤ笅鍙戞暟閲�',
+    },
+    {
+      label: '瀹屾垚鏁伴噺',
+      prop: 'completeNumber',
+      el: (props: any, { attrs }: SetupContext) => {
+        return h(inputNumber, {
+          ...props,
+          clearable: true,
+          ...attrs,
+        })
+      },
+      width: '100%',
+      step: 1,
+      precision: 0,
+      //disabled: disabled,
+      placeholder: '璇疯緭鍏ュ畬鎴愭暟閲�',
+    },
+    {
+      label: '浼樺厛绾�',
+      prop: 'priority',
+      el: (props: any, { attrs }: SetupContext) => {
+        return h(inputNumber, {
+          ...props,
+          clearable: true,
+          ...attrs,
+        })
+      },
+      width: '100%',
+      step: 1,
+      precision: 0,
+      //disabled: disabled,
+      placeholder: '璇疯緭鍏ヤ紭鍏堢骇',
+    },
+    {
+      label: '鍏宠仈璁″垝缂栧彿',
+      prop: 'planNo',
+      el: 'input',
+      //disabled: disabled,
+      placeholder: '璇疯緭鍏ュ叧鑱旇鍒掔紪鍙�',
+    },
+    {
+      label: '鎿嶄綔鏃堕棿',
+      prop: 'operateTime',
+      el: (props: any, { attrs }: SetupContext) => {
+        return h(dateTimePickerRange, {
+          ...props,
+          clearable: true,
+          ...attrs,
+        })
+      },
+      width: '100%',
+      //disabled: disabled,
+      placeholder: '璇疯緭鍏ユ搷浣滄椂闂�',
+    },
+    {
+      label: '澶囨敞',
+      prop: 'remark',
+      el: 'input',
+      //disabled: disabled,
+      placeholder: '璇疯緭鍏ュ娉�',
+    },
+    {
+      label: '鏄惁绂佺敤',
+      prop: 'isDisabled',
+      el: 'select',
+      //disabled: disabled,
+      placeholder: '璇疯緭鍏ユ槸鍚︾鐢�',
+      options: [
+        { label: '鏄�', value: true },
+        { label: '鍚�', value: false },
+      ],
+    },
+    {
+      label: '鍒涘缓鏃堕棿',
+      prop: 'creationTime',
+      el: (props: any, { attrs }: SetupContext) => {
+        return h(dateTimePickerRange, {
+          ...props,
+          clearable: true,
+          ...attrs,
+        })
+      },
+      width: '100%',
+      //disabled: disabled,
+      placeholder: '璇疯緭鍏ュ垱寤烘椂闂�',
+    },
+  ])
+  /**
+   * 鏍¢獙鏄惁鏈夋暟鎹彉鍖�
+   */
+  const checkIsEqualObject = () => {
+    const data = {
+      formData: formData.value,
+    }
+    const check = isEqual(initiateData.value, data)
+    return check
+  }
+  const commonGetFormData = () => {
+    const data = {
+      orderNo: formData.value.orderNo || '',
+      orderStatus: formData.value.orderStatus || '',
+      materialName: formData.value.materialName || '',
+      materialNo: formData.value.materialNo || '',
+      materialModel: formData.value.materialModel || '',
+      materialBatch: formData.value.materialBatch || '',
+      orderType: formData.value.orderType || '',
+      stockType: formData.value.stockType || '',
+      materialNumber: formData.value.materialNumber || '',
+      distributeNumber: formData.value.distributeNumber || '',
+      completeNumber: formData.value.completeNumber || '',
+      priority: formData.value.priority || '',
+      planNo: formData.value.planNo || '',
+      operateTime: formData.value.operateTime || '',
+      remark: formData.value.remark || '',
+      isDisabled: formData.value.isDisabled || '',
+      creationTime: formData.value.creationTime || '',
+    }
+    return data
+  }
+  const onClose = (done: () => void) => {
+    if (visible.value) {
+      visible.value = false
+      const data = commonGetFormData()
+      ctx.emit('close', data)
+    }
+  }
+  /**
+   * 纭鏌ヨ
+   */
+  const onConfirmQuery = async () => {
+    const data = commonGetFormData()
+    ctx.emit('confirmQuery', data)
+  }
+  /**
+   * 閲嶇疆鏌ヨ
+   */
+  const onReset = async () => {
+    formData.value = {}
+    formData.value.OrderNo = ''
+    formData.value.OrderStatus = ''
+    formData.value.MaterialName = ''
+    formData.value.MaterialNo = ''
+    formData.value.MaterialModel = ''
+    formData.value.MaterialBatch = ''
+    formData.value.OrderType = ''
+    formData.value.StockType = ''
+    formData.value.MaterialNumber = ''
+    formData.value.DistributeNumber = ''
+    formData.value.CompleteNumber = ''
+    formData.value.Priority = ''
+    formData.value.PlanNo = ''
+    formData.value.OperateTime = ''
+    formData.value.Remark = ''
+    //鍚戠埗缁勪欢鍙戦�佽嚜瀹氫箟浜嬩欢
+    ctx.emit('restQuery')
+  }
+
+  const updateCheckData = () => {
+    initiateData.value = {
+      formData: {
+        ...formData.value,
+      },
+    }
+  }
+  const updateFormItemOptions = (propName: string, enumData: any[]) => {
+    const item = formItems.find((item) => item.prop === propName)
+    if (item && enumData) {
+      item.options = enumData.map((item) => ({
+        label: item.description,
+        value: item.value,
+      }))
+    }
+  }
+  /**
+   * 閫氱敤鏌ヨ鏋氫妇
+   */
+  const commonQueryEnumForFrom = async () => {
+    const orderStatusEnumEnum = await wmsInOutStockOrderDrawer.getWmsEnumData({
+      EnumName: 'OrderStatusEnum',
+    })
+    updateFormItemOptions('orderStatus', orderStatusEnumEnum)
+    const orderTypeEnumEnum = await wmsInOutStockOrderDrawer.getWmsEnumData({
+      EnumName: 'OrderTypeEnum',
+    })
+    updateFormItemOptions('orderType', orderTypeEnumEnum)
+    const stockTypeEnumEnum = await wmsInOutStockOrderDrawer.getWmsEnumData({
+      EnumName: 'StockTypeEnum',
+    })
+    updateFormItemOptions('stockType', stockTypeEnumEnum)
+  }
+  commonQueryEnumForFrom()
+  /**
+   * 寮圭獥鎵撳紑鑾峰彇璇︽儏
+   */
+  const onOpen = async () => {
+    disabled.value = false
+    updateCheckData()
+  }
+
+  watch(() => current.value, onOpen)
+
+  return {
+    formItems,
+    formData,
+    visible,
+    formRef,
+    onOpen,
+    onClose,
+    onConfirmQuery,
+    onReset,
+  }
+}
diff --git a/HIAWms/hiawms_web/src/widgets/WmsInOutStockOrder/Models/Service/WmsInOutStockOrder.ts b/HIAWms/hiawms_web/src/widgets/WmsInOutStockOrder/Models/Service/WmsInOutStockOrder.ts
new file mode 100644
index 0000000..b8d8a45
--- /dev/null
+++ b/HIAWms/hiawms_web/src/widgets/WmsInOutStockOrder/Models/Service/WmsInOutStockOrder.ts
@@ -0,0 +1,30 @@
+import { Base } from '@/libs/Base/Base' 
+const request = Base.request 
+ 
+/** 
+ * 娣诲姞 
+ * @returns 
+ */ 
+export const addWmsInOutStockOrder = (data: any) => { 
+  return request.post('/api/v1/HIAWms/wmsInOutStockOrder', data) 
+} 
+ 
+/** 
+ * 鎵归噺鍒犻櫎 
+ * @returns 
+ */ 
+export const deleteWmsInOutStockOrders = (ids: string[]) => { 
+  return request({ 
+    data: ids, 
+    url: '/api/v1/HIAWms/wmsInOutStockOrder', 
+    method: 'delete', 
+  }) 
+} 
+ 
+/** 
+ * 鍏嬮殕 
+ * @returns 
+ */ 
+export const cloneData = (data: any) => { 
+  return request.post('/api/v1/HIAWms/wmsInOutStockOrder/clone', data) 
+} 
diff --git a/HIAWms/hiawms_web/src/widgets/WmsInOutStockOrder/Models/Service/WmsInOutStockOrderDrawer.ts b/HIAWms/hiawms_web/src/widgets/WmsInOutStockOrder/Models/Service/WmsInOutStockOrderDrawer.ts
new file mode 100644
index 0000000..1045f7f
--- /dev/null
+++ b/HIAWms/hiawms_web/src/widgets/WmsInOutStockOrder/Models/Service/WmsInOutStockOrderDrawer.ts
@@ -0,0 +1,34 @@
+import { Base } from '@/libs/Base/Base' 
+const request = Base.request 
+ 
+/** 
+ * 娣诲姞 
+ * @returns 
+ */ 
+export const addWmsInOutStockOrder = (data: any) => { 
+  return request.post('/api/v1/HIAWms/wmsInOutStockOrder', data) 
+} 
+ 
+/** 
+ * 鑾峰彇璇︽儏 
+ * @returns 
+ */ 
+export const getWmsInOutStockOrder = (id: string) => { 
+  return request.get(`/api/v1/HIAWms/wmsInOutStockOrder/${id}`) 
+} 
+ 
+/** 
+ * 鏇存柊 
+ * @returns 
+ */ 
+export const updateWmsInOutStockOrder = (id: string, data: Record<string, any>) => { 
+  return request.put(`/api/v1/HIAWms/wmsInOutStockOrder/${id}`, data) 
+} 
+ 
+/** 
+ * 鑾峰彇鏋氫妇 
+ * @returns 
+ */ 
+export const getWmsEnumData = (data: any) => { 
+  return request.post('/api/v1/HIAWms/WmsEnum', data) 
+} 
diff --git a/HIAWms/hiawms_web/src/widgets/WmsInOutStockOrder/Models/Service/WmsInOutStockOrderQueryDrawer.ts b/HIAWms/hiawms_web/src/widgets/WmsInOutStockOrder/Models/Service/WmsInOutStockOrderQueryDrawer.ts
new file mode 100644
index 0000000..b6702db
--- /dev/null
+++ b/HIAWms/hiawms_web/src/widgets/WmsInOutStockOrder/Models/Service/WmsInOutStockOrderQueryDrawer.ts
@@ -0,0 +1,35 @@
+import { Base } from '@/libs/Base/Base' 
+const request = Base.request 
+ 
+/** 
+ * 娣诲姞 
+ * @returns 
+ */ 
+export const addWmsInOutStockOrder = (data: any) => { 
+  return request.post('/api/v1/HIAWms/wmsInOutStockOrder', data) 
+} 
+ 
+/** 
+ * 鑾峰彇璇︽儏 
+ * @returns 
+ */ 
+export const getWmsInOutStockOrder = (id: string) => { 
+  return request.get(`/api/v1/HIAWms/wmsInOutStockOrder/${id}`) 
+} 
+ 
+/** 
+ * 鏇存柊 
+ * @returns 
+ */ 
+export const updateWmsInOutStockOrder = (id: string, data: Record<string, any>) => { 
+  return request.put(`/api/v1/HIAWms/wmsInOutStockOrder/${id}`, data) 
+} 
+ 
+/** 
+ * 鑾峰彇鏋氫妇 
+ * @returns 
+ */ 
+export const getWmsEnumData = (data: any) => { 
+  return request.post('/api/v1/HIAWms/WmsEnum', data) 
+} 
+ 
diff --git a/HIAWms/hiawms_web/src/widgets/WmsInOutStockOrder/Models/WmsInOutStockOrder.ts b/HIAWms/hiawms_web/src/widgets/WmsInOutStockOrder/Models/WmsInOutStockOrder.ts
new file mode 100644
index 0000000..d262b6a
--- /dev/null
+++ b/HIAWms/hiawms_web/src/widgets/WmsInOutStockOrder/Models/WmsInOutStockOrder.ts
@@ -0,0 +1,41 @@
+import { Base } from '@/libs/Base/Base' 
+import { 
+  deleteWmsInOutStockOrders, 
+  addWmsInOutStockOrder, 
+  cloneData, 
+} from './Service/WmsInOutStockOrder' 
+ 
+export class WmsInOutStockOrder extends Base<{ [key: string]: any }> { 
+  constructor() { 
+    super({ 
+      data: [], 
+    }) 
+  } 
+  onMounted() {} 
+  /** 
+   * 鍒犻櫎 
+   * @param id 
+   * @returns 
+   */ 
+  async deleteWmsInOutStockOrders(ids: string[]) { 
+    return deleteWmsInOutStockOrders(ids) 
+  } 
+ 
+  /** 
+   * 娣诲姞鏁版嵁 
+   * @param data 
+   * @returns 
+   */ 
+  addWmsInOutStockOrder(data: Record<string, any>) { 
+    return addWmsInOutStockOrder(data) 
+  } 
+ 
+  /** 
+   * 鍏嬮殕 
+   * @param ids 
+   * @returns 
+   */ 
+  cloneData(ids: string[]) { 
+    return cloneData(ids) 
+  } 
+} 
diff --git a/HIAWms/hiawms_web/src/widgets/WmsInOutStockOrder/Models/WmsInOutStockOrderDrawer.ts b/HIAWms/hiawms_web/src/widgets/WmsInOutStockOrder/Models/WmsInOutStockOrderDrawer.ts
new file mode 100644
index 0000000..959ebf0
--- /dev/null
+++ b/HIAWms/hiawms_web/src/widgets/WmsInOutStockOrder/Models/WmsInOutStockOrderDrawer.ts
@@ -0,0 +1,44 @@
+import { Base } from '@/libs/Base/Base' 
+import { 
+  addWmsInOutStockOrder, 
+  getWmsInOutStockOrder, 
+  updateWmsInOutStockOrder, 
+  getWmsEnumData, 
+} from './Service/WmsInOutStockOrderDrawer' 
+import { useGlobalState } from '@/libs/Store/Store' 
+ 
+export class WmsInOutStockOrderDrawer extends Base<{ [key: string]: any }> { 
+  constructor() { 
+    super({ 
+      data: [], 
+      wmsInOutStockOrder: {}, 
+    }) 
+  } 
+ 
+  /** 
+   * 娣诲姞 
+   * @param data 
+   */ 
+  async addWmsInOutStockOrder(data: Record<string, any>) { 
+    return addWmsInOutStockOrder(data) 
+  } 
+  /** 
+   * 鏇存柊 
+   * @param data 
+   */ 
+  async updateWmsInOutStockOrder(id: string, data: Record<string, any>) { 
+    return updateWmsInOutStockOrder(id, data) 
+  } 
+ 
+  /** 
+   * 鑾峰彇璇︽儏 
+   */ 
+  async getWmsInOutStockOrderDetail(current: any, id?: string) { 
+    return getWmsInOutStockOrder(id || current?.id) 
+  } 
+ 
+  //  鑾峰彇鏋氫妇鍊� 
+  async getWmsEnumData(data: Record<string, any>) { 
+    return getWmsEnumData(data) 
+  } 
+} 
diff --git a/HIAWms/hiawms_web/src/widgets/WmsInOutStockOrder/Models/WmsInOutStockOrderQueryDrawer.ts b/HIAWms/hiawms_web/src/widgets/WmsInOutStockOrder/Models/WmsInOutStockOrderQueryDrawer.ts
new file mode 100644
index 0000000..da5ac0b
--- /dev/null
+++ b/HIAWms/hiawms_web/src/widgets/WmsInOutStockOrder/Models/WmsInOutStockOrderQueryDrawer.ts
@@ -0,0 +1,44 @@
+import { Base } from '@/libs/Base/Base' 
+import { 
+  addWmsInOutStockOrder, 
+  getWmsInOutStockOrder, 
+  updateWmsInOutStockOrder, 
+  getWmsEnumData, 
+} from './Service/WmsInOutStockOrderQueryDrawer' 
+import { useGlobalState } from '@/libs/Store/Store' 
+ 
+export class WmsInOutStockOrderQueryDrawer extends Base<{ [key: string]: any }> { 
+  constructor() { 
+    super({ 
+      data: [], 
+      wmsInOutStockOrder: {}, 
+    }) 
+  } 
+ 
+  /** 
+   * 娣诲姞 
+   * @param data 
+   */ 
+  async addWmsInOutStockOrder(data: Record<string, any>) { 
+    return addWmsInOutStockOrder(data) 
+  } 
+  /** 
+   * 鏇存柊 
+   * @param data 
+   */ 
+  async updateWmsInOutStockOrder(id: string, data: Record<string, any>) { 
+    return updateWmsInOutStockOrder(id, data) 
+  } 
+ 
+  /** 
+   * 鑾峰彇璇︽儏 
+   */ 
+  async getWmsInOutStockOrderDetail(current: any, id?: string) { 
+    return getWmsInOutStockOrder(id || current?.id) 
+  } 
+ 
+  //  鑾峰彇鏋氫妇鍊� 
+  async getWmsEnumData(data: Record<string, any>) { 
+    return getWmsEnumData(data) 
+  } 
+} 
diff --git a/HIAWms/hiawms_web/src/widgets/WmsInOutStockOrder/Views/Pages/Dialog/WmsInOutStockOrderDrawer/WmsInOutStockOrderDrawer.module.scss b/HIAWms/hiawms_web/src/widgets/WmsInOutStockOrder/Views/Pages/Dialog/WmsInOutStockOrderDrawer/WmsInOutStockOrderDrawer.module.scss
new file mode 100644
index 0000000..177adca
--- /dev/null
+++ b/HIAWms/hiawms_web/src/widgets/WmsInOutStockOrder/Views/Pages/Dialog/WmsInOutStockOrderDrawer/WmsInOutStockOrderDrawer.module.scss
@@ -0,0 +1,3 @@
+.drawer { 
+  width: 800px; 
+} 
diff --git a/HIAWms/hiawms_web/src/widgets/WmsInOutStockOrder/Views/Pages/Dialog/WmsInOutStockOrderDrawer/WmsInOutStockOrderDrawer.tsx b/HIAWms/hiawms_web/src/widgets/WmsInOutStockOrder/Views/Pages/Dialog/WmsInOutStockOrderDrawer/WmsInOutStockOrderDrawer.tsx
new file mode 100644
index 0000000..c1f8c4e
--- /dev/null
+++ b/HIAWms/hiawms_web/src/widgets/WmsInOutStockOrder/Views/Pages/Dialog/WmsInOutStockOrderDrawer/WmsInOutStockOrderDrawer.tsx
@@ -0,0 +1,61 @@
+import { SetupContext, defineComponent } from 'vue' 
+import BaseDrawer from '@/components/BaseDrawer/BaseDrawer' 
+import styles from './WmsInOutStockOrderDrawer.module.scss' 
+import { useWmsInOutStockOrderDrawer } from '../../../../Controllers/WmsInOutStockOrderDrawer.tsx' 
+import DyForm from '@/components/DyForm/DyForm' 
+ 
+// @ts-ignore 
+export default defineComponent<{ 
+  [key: string]: any 
+}>({ 
+  name: '寮圭獥', 
+  props: { 
+    modelValue: { 
+      type: Boolean, 
+      default: false, 
+    }, 
+    title: { 
+      type: String, 
+      default: '', 
+    }, 
+    row: { 
+      type: Object, 
+    }, 
+    sort: { 
+      type: Number, 
+      default: 0, 
+    }, 
+  }, 
+  emits: ['update:modelValue', 'close', 'submit', 'confirm'], 
+  setup(props: Record<string, any>, ctx: SetupContext) { 
+    const { 
+      onClose, 
+      onConfirm, 
+      onOpen, 
+      formRef, 
+      visible, 
+      formItems, 
+      formData, 
+    } = useWmsInOutStockOrderDrawer(props, ctx) 
+    return () => ( 
+      <BaseDrawer 
+        class={styles.drawer} 
+        size="800px" 
+        title={props.title || '娣诲姞'} 
+        v-model={visible.value} 
+        close-on-click-modal={true} 
+        onConfirm={onConfirm} 
+        onOpen={onOpen} 
+        before-close={onClose} 
+        onClose={onClose} 
+      > 
+        <DyForm 
+          ref={formRef} 
+          formData={formData.value} 
+          labelWidth="106px" 
+          formItemProps={formItems} 
+        ></DyForm> 
+      </BaseDrawer> 
+    ) 
+  }, 
+}) 
diff --git a/HIAWms/hiawms_web/src/widgets/WmsInOutStockOrder/Views/Pages/Dialog/WmsInOutStockOrderQueryDrawer/WmsInOutStockOrderQueryDrawer.module.scss b/HIAWms/hiawms_web/src/widgets/WmsInOutStockOrder/Views/Pages/Dialog/WmsInOutStockOrderQueryDrawer/WmsInOutStockOrderQueryDrawer.module.scss
new file mode 100644
index 0000000..177adca
--- /dev/null
+++ b/HIAWms/hiawms_web/src/widgets/WmsInOutStockOrder/Views/Pages/Dialog/WmsInOutStockOrderQueryDrawer/WmsInOutStockOrderQueryDrawer.module.scss
@@ -0,0 +1,3 @@
+.drawer { 
+  width: 800px; 
+} 
diff --git a/HIAWms/hiawms_web/src/widgets/WmsInOutStockOrder/Views/Pages/Dialog/WmsInOutStockOrderQueryDrawer/WmsInOutStockOrderQueryDrawer.tsx b/HIAWms/hiawms_web/src/widgets/WmsInOutStockOrder/Views/Pages/Dialog/WmsInOutStockOrderQueryDrawer/WmsInOutStockOrderQueryDrawer.tsx
new file mode 100644
index 0000000..ef5ff4a
--- /dev/null
+++ b/HIAWms/hiawms_web/src/widgets/WmsInOutStockOrder/Views/Pages/Dialog/WmsInOutStockOrderQueryDrawer/WmsInOutStockOrderQueryDrawer.tsx
@@ -0,0 +1,71 @@
+/* 
+ * 鐗╂枡鍩虹淇℃伅鏌ヨ寮瑰嚭妗� 
+*/ 
+import { SetupContext, defineComponent } from 'vue' 
+import BaseQueryDrawer from '@/components/BaseQueryDrawer/BaseQueryDrawer' 
+import styles from './WmsInOutStockOrderQueryDrawer.module.scss' 
+import { useWmsInOutStockOrderQueryDrawer } from '../../../../Controllers/WmsInOutStockOrderQueryDrawer.tsx' 
+import DyForm from '@/components/DyForm/DyForm' 
+ 
+// @ts-ignore 
+export default defineComponent<{ 
+  [key: string]: any 
+}>({ 
+  name: '寮圭獥', 
+  props: { 
+    //鏋氫妇绫诲瀷瀛楀吀 
+    enumListDict:{ 
+      type: Array as () => Array<{ key: string; value: object }>, // 瀹氫箟鏁扮粍鍏冪礌绫诲瀷 
+      default: () => [] // 榛樿鍊� 
+    }, 
+    modelValue: { 
+      type: Boolean, 
+      default: false, 
+    }, 
+    title: { 
+      type: String, 
+      default: '', 
+    }, 
+    row: { 
+      type: Object, 
+    }, 
+    sort: { 
+      type: Number, 
+      default: 0, 
+    }, 
+  }, 
+  emits: ['update:modelValue', 'close', 'submit', 'confirmquery1'], 
+  setup(props: Record<string, any>, ctx: SetupContext) { 
+    const { 
+      onClose, 
+      onConfirmQuery, 
+      onOpen, 
+      onReset, 
+      formRef, 
+      visible, 
+      formItems, 
+      formData, 
+    } = useWmsInOutStockOrderQueryDrawer(props, ctx) 
+    return () => ( 
+      <BaseQueryDrawer 
+        class={styles.drawer} 
+        size="800px" 
+        title={props.title || '楂樼骇鏌ヨ'} 
+        v-model={visible.value} 
+        close-on-click-modal={true} 
+        onReset={onReset} 
+        onConfirmQueryForBase={onConfirmQuery} 
+        onOpen={onOpen} 
+        before-close={onClose} 
+        onClose={onClose} 
+      > 
+        <DyForm 
+          ref={formRef} 
+          formData={formData.value} 
+          labelWidth="106px" 
+          formItemProps={formItems} 
+        ></DyForm> 
+      </BaseQueryDrawer> 
+    ) 
+  }, 
+}) 
diff --git a/HIAWms/hiawms_web/src/widgets/WmsInOutStockOrder/Views/Pages/WmsInOutStockOrder/Config.ts b/HIAWms/hiawms_web/src/widgets/WmsInOutStockOrder/Views/Pages/WmsInOutStockOrder/Config.ts
new file mode 100644
index 0000000..2b24077
--- /dev/null
+++ b/HIAWms/hiawms_web/src/widgets/WmsInOutStockOrder/Views/Pages/WmsInOutStockOrder/Config.ts
@@ -0,0 +1,81 @@
+export const columns = [
+  {
+    type: 'seq',
+    width: 60,
+    title: '搴忓彿',
+  },
+  {
+    field: 'orderNo',
+    title: '鍗曟嵁缂栧彿',
+  },
+  {
+    field: 'orderStatusDesc',
+    title: '鍗曟嵁鐘舵��',
+  },
+  {
+    field: 'materialName',
+    title: '鐗╂枡鍚嶇О',
+  },
+  {
+    field: 'materialNo',
+    title: '鐗╂枡浠跺彿',
+  },
+  {
+    field: 'materialModel',
+    title: '鍨嬪彿',
+  },
+  {
+    field: 'materialBatch',
+    title: '鎵规鍙�',
+  },
+  {
+    field: 'orderTypeDesc',
+    title: '鍗曟嵁绫诲瀷',
+  },
+  {
+    field: 'stockTypeDesc',
+    title: '鎿嶄綔绫诲瀷',
+  },
+  {
+    field: 'materialNumber',
+    title: '鍗曟嵁鏁伴噺',
+  },
+  {
+    field: 'distributeNumber',
+    title: '涓嬪彂鏁伴噺',
+  },
+  {
+    field: 'completeNumber',
+    title: '瀹屾垚鏁伴噺',
+  },
+  {
+    field: 'priority',
+    title: '浼樺厛绾�',
+  },
+  {
+    field: 'planNo',
+    title: '鍏宠仈璁″垝',
+  },
+  {
+    field: 'operateTime',
+    title: '鎿嶄綔鏃堕棿',
+    width: 180,
+  },
+  {
+    field: 'remark',
+    title: '澶囨敞',
+  },
+  // {
+  //   field: 'sort',
+  //   title: '鎺掑簭',
+  // },
+  {
+    field: 'creationTime',
+    title: '鍒涘缓鏃堕棿',
+    width: 180,
+  },
+  // {
+  //   field: 'deletionTime',
+  //   title: '',
+  // },
+]
diff --git a/HIAWms/hiawms_web/src/widgets/WmsInOutStockOrder/Views/Pages/WmsInOutStockOrder/WmsInOutStockOrder.module.scss b/HIAWms/hiawms_web/src/widgets/WmsInOutStockOrder/Views/Pages/WmsInOutStockOrder/WmsInOutStockOrder.module.scss
new file mode 100644
index 0000000..9de386f
--- /dev/null
+++ b/HIAWms/hiawms_web/src/widgets/WmsInOutStockOrder/Views/Pages/WmsInOutStockOrder/WmsInOutStockOrder.module.scss
@@ -0,0 +1,113 @@
+.wmsInOutStockOrderContent { 
+  width: 100%; 
+  height: 100%; 
+ 
+  .wmsInOutStockOrderList { 
+    width: 100%; 
+    height: calc(100% - 70px); 
+  } 
+  .headerContent { 
+    display: flex; 
+    justify-content: space-between; 
+    align-items: center; 
+    height: 43px; 
+  } 
+  .header { 
+    margin-bottom: 12px; 
+    display: flex; 
+    justify-content: flex-end; 
+    align-items: center; 
+  } 
+} 
+ 
+.tagBox { 
+  width: auto; 
+  min-width: 80px; 
+  height: 24px; 
+  background: #ffffff; 
+  border-radius: 19px 19px 19px 19px; 
+  opacity: 1; 
+  border: 1px dashed #bcc4cc; 
+  width: 50px; 
+  height: 20px; 
+  font-size: 14px; 
+  font-family: PingFang SC, PingFang SC; 
+  font-weight: 400; 
+  color: #5a84ff; 
+  display: flex; 
+  justify-content: center; 
+  align-items: center; 
+  // cursor: pointer; 
+} 
+ 
+.group { 
+  display: flex; 
+  justify-content: space-between; 
+  align-items: center; 
+} 
+ 
+.groupTable { 
+  width: 100%; 
+} 
+ 
+.overBox { 
+  width: 100%; 
+  height: calc(100% - 20px); 
+  overflow: auto; 
+  :global(.cs-collapse-item__header) { 
+    background-color: #f1f1f1; 
+    padding: 0 20px; 
+    height: 35px; 
+    font-size: 16px; 
+    font-family: PingFang SC, PingFang SC; 
+    font-weight: 500; 
+  } 
+  :global(.cs-collapse-item__content) { 
+    padding-bottom: 0px; 
+  } 
+} 
+.groupHeader { 
+  width: 100%; 
+  height: 30px; 
+  background: #ccc; 
+} 
+ 
+.hideBlock { 
+  display: none; 
+} 
+.queryForm { 
+  padding: 10px; 
+  background: #f5f7fa; 
+  margin-bottom: 0px; 
+  border-radius: 4px; 
+   
+  .el-form-item { 
+    margin-right: 20px; 
+    margin-bottom: 0; 
+     
+    // 缁熶竴杈撳叆妗嗗拰閫夋嫨妗嗙殑瀹藉害 
+    .el-input, .el-select { 
+      width: 200px; // 璁剧疆缁熶竴鐨勫搴� 
+    } 
+     
+    // 閫夋嫨妗嗗唴閮ㄨ緭鍏ユ鏍峰紡 
+    .el-select .el-input__wrapper { 
+      height: 32px; // 涓庤緭鍏ユ楂樺害涓�鑷� 
+      padding: 1px 11px; // 涓庤緭鍏ユ鍐呰竟璺濅竴鑷� 
+    } 
+     
+    // 鏃ユ湡閫夋嫨鍣ㄥ搴� 
+    .el-date-editor { 
+      width: 220px; 
+    } 
+  } 
+} 
+ 
+// 濡傛灉闇�瑕佹洿绮剧‘鐨勬帶鍒讹紝鍙互鍗曠嫭璁剧疆 
+.formItem { 
+  width: 200px; 
+   
+  &.el-input, &.el-select { 
+    width: 100%; 
+  } 
+} 
diff --git a/HIAWms/hiawms_web/src/widgets/WmsInOutStockOrder/Views/Pages/WmsInOutStockOrder/WmsInOutStockOrder.tsx b/HIAWms/hiawms_web/src/widgets/WmsInOutStockOrder/Views/Pages/WmsInOutStockOrder/WmsInOutStockOrder.tsx
new file mode 100644
index 0000000..c606d18
--- /dev/null
+++ b/HIAWms/hiawms_web/src/widgets/WmsInOutStockOrder/Views/Pages/WmsInOutStockOrder/WmsInOutStockOrder.tsx
@@ -0,0 +1,349 @@
+import { computed, defineComponent, onMounted, reactive, ref } from 'vue'
+import type { Ref } from 'vue'
+import BaseTable from '@/components/Table/Table'
+import styles from './WmsInOutStockOrder.module.scss'
+import { useWmsInOutStockOrder } from '../../../Controllers/WmsInOutStockOrder'
+import IconButton from '@/components/IconButton/IconButton'
+import WmsInOutStockOrderDrawer from '../Dialog/WmsInOutStockOrderDrawer/WmsInOutStockOrderDrawer'
+import WmsInOutStockOrderQueryDrawer from '../Dialog/WmsInOutStockOrderQueryDrawer/WmsInOutStockOrderQueryDrawer'
+import Search from '@/components/Search/Search'
+import { columns } from './Config'
+import TdButton from '@/components/TdButton/TdButton'
+import { vPermission } from '@/libs/Permission/Permission'
+import { getWmsEnumData } from '@/widgets/WmsInOutStockOrder/Models/Service/WmsInOutStockOrderDrawer'
+import dayjs from 'dayjs'
+import {
+  ElInput,
+  ElSelect,
+  ElOption,
+  ElDatePicker,
+  ElForm,
+  ElFormItem,
+} from 'element-plus'
+import { injectModel } from '@/libs/Provider/Provider'
+
+interface RenderTableType {
+  url?: string
+  dataSource: Ref<any[]>
+  isDrag?: boolean
+  isChecked?: boolean
+  isHidePagination?: boolean
+  params?: Record<string, any>
+  autoHeight?: boolean
+}
+
+export default defineComponent({
+  name: 'WmsInOutStockOrder',
+  directives: {
+    permission: vPermission,
+  },
+  setup(props, ctx) {
+    const {
+      dataSource,
+      contextMenu,
+      dialogConfig,
+      dialogConfigForQuery,
+      tableRef,
+      current,
+      search,
+      sort,
+      headers,
+      onError,
+      onSearch,
+      onRowClick,
+      onConfirmWmsInOutStockOrder,
+      onCheck,
+      onAddWmsInOutStockOrder,
+      onAdvancedQuery,
+      onExport,
+      openDetail,
+      onSuccess,
+      onBeforeUpload,
+    } = useWmsInOutStockOrder(props, ctx)
+
+    //瀹氫箟楂樼骇鏌ヨ寮曠敤
+    const wmsInOutStockOrderQueryDrawerRef = ref(null)
+    // 鏂板鐨勬煡璇㈡潯浠�
+    const queryForm = ref({
+      searchVal: '',
+      str_searchFormInputAttrs: [],
+    })
+    //瀹氫箟鏁翠綋妯$硦鏌ヨ鐨勫垪鏁扮粍(娉ㄦ剰锛氬繀椤诲ぇ灏忓啓璺熷悗绔殑瀹炰綋绫诲睘鎬у悕涓�鑷达紝鍚﹀垯浼氬鑷村尮閰嶄笉瀵圭殑闂)
+    const _searchFormInputAttrs = ref([
+      'OrderNo',
+      'MaterialNo',
+      'MaterialBatch',
+    ])
+    const searchFormInputAttrs_Placeholder = ref('璇疯緭鍏ュ崟鎹彿/鐗╂枡缂栧彿/鎵规')
+
+    // 鍔ㄦ�佹灇涓鹃�夐」
+    const enumOptions = reactive({
+      orderStatus: [] as Array<{ label: string; value: any }>,
+      orderType: [] as Array<{ label: string; value: any }>,
+      stockType: [] as Array<{ label: string; value: any }>,
+    })
+
+    // 鑾峰彇鏋氫妇鏁版嵁
+    const fetchEnumData = async () => {
+      try {
+        const orderStatusEnumData = await getWmsEnumData({
+          EnumName: 'OrderStatusEnum',
+        })
+        enumOptions.orderStatus = orderStatusEnumData.map((item) => ({
+          label: item.description,
+          value: item.value,
+        }))
+        const orderTypeEnumData = await getWmsEnumData({
+          EnumName: 'OrderTypeEnum',
+        })
+        enumOptions.orderType = orderTypeEnumData.map((item) => ({
+          label: item.description,
+          value: item.value,
+        }))
+        const stockTypeEnumData = await getWmsEnumData({
+          EnumName: 'StockTypeEnum',
+        })
+        enumOptions.stockType = stockTypeEnumData.map((item) => ({
+          label: item.description,
+          value: item.value,
+        }))
+      } catch (error) {
+        console.error('鑾峰彇鏋氫妇鏁版嵁澶辫触:', error)
+      }
+    }
+
+    // 缁勪欢鎸傝浇鏃惰幏鍙栨灇涓炬暟鎹�
+    onMounted(() => {
+      fetchEnumData()
+    })
+
+    // 瀹氫箟鍝嶅簲寮忔煡璇㈡暟鎹�
+    const _curHighQueryData = ref({
+      searchVal: '',
+      str_searchFormInputAttrs: [],
+    })
+    // 鏂扮増鐨勬煡璇㈡柟娉曪紙涓婚〉闈腑鐨勬寜閽�愭煡璇€�戯級
+    const handleQueryForMain = async () => {
+      _curHighQueryData.value.searchVal = queryForm.value.searchVal
+      _curHighQueryData.value.str_searchFormInputAttrs =
+        _searchFormInputAttrs.value
+      tableRef.value.getList(_curHighQueryData.value)
+    }
+    // 鏂扮増鐨勬煡璇㈡柟娉曪紙楂樼骇鏌ヨ涓殑鎸夐挳銆愭煡璇€�戯級
+    const handleQuery = async (extraParams = {}) => {
+      let filteredData = commonGetHighQueryForm(extraParams)
+      commonSaveCurHighQueryData(filteredData)
+      tableRef.value.getList(filteredData)
+    }
+    // 鏂扮増鐨勬煡璇㈤噸缃�
+    const resetQuery = () => {
+      queryForm.value.searchVal = ''
+      queryForm.value.str_searchFormInputAttrs = _searchFormInputAttrs.value
+    }
+    //鏂扮増鐨勫鍑烘柟娉�
+    const handleExport = () => {
+      onExport(_curHighQueryData.value)
+    }
+    // 鏂扮増鐨勬煡璇㈠脊鍑烘鍏抽棴鏂规硶
+    const closeQuery = (extraParams = {}) => {
+      let filteredData = commonGetHighQueryForm(extraParams)
+      console.log('closeQuery鏂规硶')
+      console.log(filteredData)
+      commonSaveCurHighQueryData(filteredData)
+    }
+    //淇濆瓨鏌ヨ鍊�
+    const commonSaveCurHighQueryData = (filteredData = {}) => {
+      _curHighQueryData.value = { ..._curHighQueryData.value, ...filteredData }
+      _curHighQueryData.value.searchVal = queryForm.value.searchVal
+      _curHighQueryData.value.str_searchFormInputAttrs =
+        _searchFormInputAttrs.value
+    }
+    //鑾峰彇楂樼骇鏌ヨ寮瑰嚭妗嗙殑鏌ヨ鍊�
+    const commonGetHighQueryForm = (extraParams = {}) => {
+      // 杩囨护鎺� undefined 鐨勫��
+      let filteredData = Object.assign(
+        {},
+        ...Object.entries(extraParams).map(([key, value]) =>
+          value !== undefined ? { [key]: value } : {}
+        )
+      )
+      //缁勫悎妯$硦鏌ヨ
+      filteredData.searchVal = queryForm.value.searchVal
+      filteredData.str_searchFormInputAttrs = _searchFormInputAttrs.value
+      return filteredData
+    }
+
+    /**
+     * @returns 琛ㄦ牸
+     */
+    const RenderBaseTable = (props: RenderTableType) => {
+      const {
+        url,
+        dataSource,
+        isDrag,
+        isChecked,
+        isHidePagination,
+        params,
+        autoHeight,
+      } = props
+
+      return (
+        <div
+          class={{
+            [styles.wmsInOutStockOrderList]: true,
+          }}
+        >
+          <BaseTable
+            ref={tableRef}
+            url={url}
+            sortUrlTpl="/api/v1/HIAWms/wmsInOutStockOrder/{id}/adjustsort/{sort}"
+            v-model:dataSource={dataSource.value}
+            columns={columns}
+            contextMenu={contextMenu}
+            params={params}
+            isDrag={isDrag}
+            isChecked={isChecked}
+            autoHeight={autoHeight}
+            onCheck={onCheck}
+            onRowClick={onRowClick}
+            isHidePagination={isHidePagination}
+            pageSize={20}
+            v-slots={{
+              operateTime: ({ row }: any) => {
+                return (
+                  <div>
+                    {row.operateTime != null
+                      ? dayjs(row.operateTime).format('YYYY-MM-DD HH:mm:ss')
+                      : '-'}
+                  </div>
+                )
+              },
+              creationTime: ({ row }: any) => {
+                return (
+                  <div>
+                    {row.creationTime != null
+                      ? dayjs(row.creationTime).format('YYYY-MM-DD HH:mm:ss')
+                      : '-'}
+                  </div>
+                )
+              },
+              name: ({ row }: any) => {
+                return row?.name ? (
+                  <TdButton
+                    onClick={() => openDetail(row)}
+                    text={<span style="color:#5a84ff">璇︽儏</span>}
+                    icon="scale"
+                    tip={row?.name}
+                    hover
+                  >
+                    {row?.name}
+                  </TdButton>
+                ) : (
+                  '-'
+                )
+              },
+            }}
+          ></BaseTable>
+        </div>
+      )
+    }
+
+    return () => {
+      return (
+        <div class={styles.wmsInOutStockOrderContent}>
+          {/* 娣诲姞/缂栬緫 */}
+          <WmsInOutStockOrderDrawer
+            v-model={dialogConfig.visible}
+            title={dialogConfig.title}
+            row={current.value}
+            sort={sort.value}
+            onConfirm={onConfirmWmsInOutStockOrder}
+          />
+          {/* 楂樼骇鏌ヨ */}
+          <WmsInOutStockOrderQueryDrawer
+            ref="wmsInOutStockOrderQueryDrawerRef"
+            v-model={dialogConfigForQuery.visible}
+            title={dialogConfigForQuery.title}
+            row={current.value}
+            sort={sort.value}
+            onConfirmQuery={handleQuery}
+            onRestQuery={resetQuery}
+            onClose={closeQuery}
+          />
+
+          <div class={styles.headerContent}>
+            <div class={styles.header}>
+              <IconButton
+                v-permission="wmsInOutStockOrder-add"
+                icon="add-p"
+                onClick={onAddWmsInOutStockOrder}
+                type="primary"
+              >
+                娣诲姞
+              </IconButton>
+              <el-divider direction="vertical" />
+
+              <el-divider direction="vertical" />
+              <el-upload
+                v-permission="wmsInOutStockOrder-import"
+                name="file"
+                accept=".xlsx,.xls,.csv"
+                show-file-list={false}
+                onError={onError}
+                onSuccess={onSuccess}
+                before-upload={onBeforeUpload}
+                headers={headers.value}
+                action="/api/v1/HIAWms/wmsInOutStockOrder/import"
+              >
+                <IconButton icon="in">瀵煎叆</IconButton>
+              </el-upload>
+
+              <IconButton
+                v-permission="wmsInOutStockOrder-output"
+                icon="out"
+                onClick={handleExport}
+              >
+                瀵煎嚭
+              </IconButton>
+            </div>
+            <ElFormItem style={{ marginTop: '15px' }}>
+              <ElFormItem label="鍏抽敭瀛�">
+                <ElInput
+                  v-model={queryForm.value.searchVal}
+                  placeholder={searchFormInputAttrs_Placeholder.value}
+                  clearable
+                  class={styles.formItem}
+                />
+              </ElFormItem>
+              <IconButton
+                type="primary"
+                icon="search"
+                onClick={handleQueryForMain}
+              >
+                鏌ヨ
+              </IconButton>
+              {/* <IconButton style="" icon="refresh" onClick={resetQuery}> 
+                閲嶇疆 
+              </IconButton> */}
+              <IconButton
+                v-permission="wmsInOutStockOrder-add"
+                icon="search"
+                onClick={onAdvancedQuery}
+                type="primary"
+              >
+                楂樼骇鏌ヨ
+              </IconButton>
+            </ElFormItem>
+          </div>
+
+          <RenderBaseTable
+            url="/api/v1/HIAWms/wmsInOutStockOrder/page"
+            dataSource={dataSource}
+            isChecked={true}
+            isDrag={true}
+          />
+        </div>
+      )
+    }
+  },
+})
diff --git a/HIAWms/hiawms_web/src/widgets/WmsInOutStockOrder/Views/WmsInOutStockOrder.module.scss b/HIAWms/hiawms_web/src/widgets/WmsInOutStockOrder/Views/WmsInOutStockOrder.module.scss
new file mode 100644
index 0000000..c315e51
--- /dev/null
+++ b/HIAWms/hiawms_web/src/widgets/WmsInOutStockOrder/Views/WmsInOutStockOrder.module.scss
@@ -0,0 +1,7 @@
+.WmsInOutStockOrder { 
+  background-color: #fff; 
+  border-radius: 5px 5px 0 0; 
+  width: 100%; 
+  height: 100%; 
+  border: 1px solid #dbdbdb; 
+} 
diff --git a/HIAWms/hiawms_web/src/widgets/WmsInOutStockOrder/Views/WmsInOutStockOrder.tsx b/HIAWms/hiawms_web/src/widgets/WmsInOutStockOrder/Views/WmsInOutStockOrder.tsx
new file mode 100644
index 0000000..3e7f297
--- /dev/null
+++ b/HIAWms/hiawms_web/src/widgets/WmsInOutStockOrder/Views/WmsInOutStockOrder.tsx
@@ -0,0 +1,80 @@
+import { 
+  Component, 
+  DefineComponent, 
+  defineComponent, 
+  markRaw, 
+  ref, 
+  SetupContext, 
+  onMounted, 
+} from 'vue' 
+import styles from './WmsInOutStockOrder.module.scss' 
+import Tab from '@/components/Tab/Tab' 
+import { useProvideModels } from '@/libs/Provider/app' 
+import { usePermission } from '@/libs/Permission/Permission' 
+import { permissionCodes } from '../enum' 
+import { ModuleType, TabItem } from '../type/Type' 
+import { getEntityNames } from '@/hooks/hook' 
+import TabPane from '@/components/Tab/TabPane' 
+ 
+const Models: ModuleType = import.meta.glob('./config/*.json', { 
+  eager: true, 
+}) 
+ 
+const entityNames = getEntityNames(Models) 
+ 
+const nameToLabelMap = [{ name: 'WmsInOutStockOrder', label: '鍑哄叆搴撳崟鎹�' }] 
+ 
+export default defineComponent({ 
+  name: 'WmsInOutStockOrder', 
+ 
+  setup(props, ctx: SetupContext) { 
+    useProvideModels() 
+    usePermission(props, permissionCodes) 
+ 
+    const rf = ref<{ 
+      [key: string]: any 
+    }>({}) 
+ 
+    const tabData = ref<TabItem[]>([]) 
+ 
+    const onTabChange = (v: string) => { 
+      rf.value?.[v]?.reloadList() 
+    } 
+ 
+    const initTableData = async () => { 
+      for (const i in entityNames) { 
+        const name = entityNames[i] 
+        const module = await import(`./Pages/${name}/${name}.tsx`) 
+        const WmsInOutStockOrder = markRaw(module.default) 
+        const foundLabel = 
+          nameToLabelMap.find((item) => item.name === name)?.label || name 
+        tabData.value.push({ 
+          label: foundLabel, 
+          name, 
+          component: WmsInOutStockOrder, 
+        }) 
+      } 
+    } 
+ 
+    initTableData() 
+ 
+    return () => { 
+      return ( 
+        <div class={styles.WmsInOutStockOrder}> 
+          <Tab data={tabData.value} type="list" onTab={onTabChange}> 
+            {tabData.value.map((widgetInfo) => { 
+              const Widget: any = widgetInfo.component 
+              return ( 
+                <TabPane label={widgetInfo.label} name={widgetInfo.name}> 
+                  <Widget 
+                    ref={(r: any) => (rf.value['WmsInOutStockOrder'] = r)} 
+                  ></Widget> 
+                </TabPane> 
+              ) 
+            })} 
+          </Tab> 
+        </div> 
+      ) 
+    } 
+  }, 
+}) 
diff --git a/HIAWms/hiawms_web/src/widgets/WmsInOutStockOrder/Views/config/WmsInOutStockOrder.json b/HIAWms/hiawms_web/src/widgets/WmsInOutStockOrder/Views/config/WmsInOutStockOrder.json
new file mode 100644
index 0000000..288b8fb
--- /dev/null
+++ b/HIAWms/hiawms_web/src/widgets/WmsInOutStockOrder/Views/config/WmsInOutStockOrder.json
@@ -0,0 +1,3 @@
+{ 
+  "name": "WmsInOutStockOrder" 
+} 
diff --git a/HIAWms/hiawms_web/src/widgets/WmsInOutStockOrder/enum.ts b/HIAWms/hiawms_web/src/widgets/WmsInOutStockOrder/enum.ts
new file mode 100644
index 0000000..f270da6
--- /dev/null
+++ b/HIAWms/hiawms_web/src/widgets/WmsInOutStockOrder/enum.ts
@@ -0,0 +1,15 @@
+export interface TabType { 
+  label: string 
+  name: string 
+  columns?: any[] 
+  data?: any[] 
+  isFooter: boolean 
+  [key: string]: any 
+} 
+ 
+export const permissionCodes = { 
+  'wmsInOutStockOrder-list': '鍒楄〃-鍒楄〃', 
+  'wmsInOutStockOrder-add': '鍒楄〃-娣诲姞', 
+  'wmsInOutStockOrder-import': '鍒楄〃-瀵煎叆', 
+  'wmsInOutStockOrder-output': '鍒楄〃-杈撳嚭', 
+} 
diff --git a/HIAWms/hiawms_web/src/widgets/WmsInOutStockOrder/index.ts b/HIAWms/hiawms_web/src/widgets/WmsInOutStockOrder/index.ts
new file mode 100644
index 0000000..d565363
--- /dev/null
+++ b/HIAWms/hiawms_web/src/widgets/WmsInOutStockOrder/index.ts
@@ -0,0 +1,14 @@
+import WmsInOutStockOrder from './Views/WmsInOutStockOrder' 
+import Setting from '@/components/Setting/Setting' 
+import { provider } from '@/provider/index' 
+import p from '../../assets/svg/p.svg' 
+ 
+export default { 
+  is: 'WmsInOutStockOrder', 
+  name: '鍑哄叆搴撳崟鎹�', 
+  category: 'run', 
+  icon: p, 
+  authorizationRequired: false, 
+  canvasView: provider(WmsInOutStockOrder), 
+  settingsView: Setting, 
+} 
diff --git a/HIAWms/hiawms_web/src/widgets/WmsInOutStockOrder/type/type.d.ts b/HIAWms/hiawms_web/src/widgets/WmsInOutStockOrder/type/type.d.ts
new file mode 100644
index 0000000..c5f3197
--- /dev/null
+++ b/HIAWms/hiawms_web/src/widgets/WmsInOutStockOrder/type/type.d.ts
@@ -0,0 +1,45 @@
+import { Component } from 'vue' 
+ 
+export interface DataItemType { 
+  id?: string 
+  name?: string 
+  code?: string 
+  description?: string 
+  label?: string 
+  value?: string | number 
+} 
+ 
+export interface WmsInOutStockOrderBaseType { 
+  id?: string 
+  name?: string 
+  code?: string 
+  value?: number 
+  description?: string 
+  options?: Array<DataItemType> 
+  abilityValue?: number | string 
+  data?: DataItemType 
+  defaultValue?: string | number 
+  flow: string 
+} 
+ 
+export interface FlowDefinitionType { 
+  id?: string 
+  name?: string 
+  code?: string 
+  description?: string 
+} 
+ 
+export type ModuleType = Record< 
+  string, 
+  { 
+    default: Record<string, string> 
+    name: string 
+  } 
+> 
+ 
+export interface TabItem { 
+  name: string 
+  label: string 
+  component: Component 
+  hidden?: boolean 
+} 
diff --git a/HIAWms/hiawms_web/src/widgets/WmsInOutStockOrderDetail/Controllers/File.ts b/HIAWms/hiawms_web/src/widgets/WmsInOutStockOrderDetail/Controllers/File.ts
new file mode 100644
index 0000000..9162fef
--- /dev/null
+++ b/HIAWms/hiawms_web/src/widgets/WmsInOutStockOrderDetail/Controllers/File.ts
@@ -0,0 +1,31 @@
+import { importFileToService, exportFileToClient } from '@/api/file' 
+import { ElMessage } from 'element-plus' 
+import { downloadFile } from '@/utils' 
+import dayjs from 'dayjs' 
+ 
+export const useFile = () => { 
+  /** 
+   * 瀵煎叆鏂囦欢 
+   * @param url 
+   */ 
+  const importFile = async (url: string, file: File) => { 
+    const formData = new FormData() 
+    formData.append('file', file) 
+    await importFileToService(url, formData) 
+    ElMessage('瀵煎叆鎴愬姛') 
+  } 
+  /** 
+   * 瀵煎嚭鏂囦欢 
+   * @param url 
+   */ 
+  const exportFile = async (url: string, params: any, name: string) => { 
+    const res = await exportFileToClient(url, params) 
+    downloadFile(res, `${name}_${dayjs().format('YYYYMMDDHHMMss')}.xlsx`) 
+    ElMessage.success('瀵煎嚭鎴愬姛') 
+  } 
+ 
+  return { 
+    importFile, 
+    exportFile, 
+  } 
+} 
diff --git a/HIAWms/hiawms_web/src/widgets/WmsInOutStockOrderDetail/Controllers/WmsInOutStockOrderDetail.ts b/HIAWms/hiawms_web/src/widgets/WmsInOutStockOrderDetail/Controllers/WmsInOutStockOrderDetail.ts
new file mode 100644
index 0000000..e2787c4
--- /dev/null
+++ b/HIAWms/hiawms_web/src/widgets/WmsInOutStockOrderDetail/Controllers/WmsInOutStockOrderDetail.ts
@@ -0,0 +1,275 @@
+import { ref, onMounted, reactive, Ref, nextTick, computed } from 'vue' 
+import { injectModel } from '@/libs/Provider/Provider' 
+import { WmsInOutStockOrderDetail } from '../Models/WmsInOutStockOrderDetail' 
+import { ElMessage } from 'element-plus' 
+import { ConfirmBox } from '@/components/ConfirmBox/ConfirmBox' 
+import { useFile } from './File' 
+ 
+interface CurrentType { 
+  row: any 
+  index: number 
+} 
+export const useWmsInOutStockOrderDetail = (props: any, ctx?: any) => { 
+  const wmsInOutStockOrderDetail = injectModel<WmsInOutStockOrderDetail>('wmsInOutStockOrderDetail') 
+  const { exportFile } = useFile() 
+  /** 
+   * 澶撮儴閰嶇疆 
+   */ 
+  const headers = ref({}) 
+  /** 
+   * 鍔ㄦ�佸垪閰嶇疆 
+   */ 
+  const wmsInOutStockOrderDetailColumns = ref<Record<string, any>>([]) 
+  /** 
+   * 鎼滅储鍊� 
+   */ 
+  const search = ref('') 
+ 
+  /** 
+   * 鎺掑簭 
+   */ 
+  const sort = ref(0) 
+  /** 
+   * 閫夋嫨椤� 
+   */ 
+  const selection = ref([]) 
+  /** 
+   * 褰撳墠閫変腑鐨勮 
+   */ 
+  const current = ref<any>(null) 
+  /** 
+   * 鏁版嵁婧� 
+   */ 
+  const dataSource: Ref<any[]> = ref([]) 
+ 
+  /** 
+   * 琛ㄦ牸 
+   */ 
+  const tableRef = ref() 
+  const dialogConfig = reactive({ 
+    visible: false, 
+    title: '', 
+    isAdd: false, 
+  }) 
+  const dialogConfigForQuery = reactive({ 
+    visible: false, 
+    title: '', 
+    isAdd: false, 
+  }) 
+ 
+ 
+  const dialogSettingConfig = reactive({ 
+    visible: false, 
+    title: '', 
+  }) 
+ 
+  /** 
+   * 鍒嗛〉鏁版嵁 
+   */ 
+  const paginationParams = ref({}) 
+ 
+  /** 
+   * 鎵撳紑璇︽儏 
+   * @param row 
+   */ 
+  const openDetail = (row: any) => { 
+    current.value = row 
+    dialogConfig.visible = true 
+    dialogConfig.title = row.name 
+    dialogConfig.isAdd = false 
+    sort.value = row.sort 
+  } 
+ 
+  const contextMenu = [ 
+    { 
+      label: '灞曞紑璇︽儏', 
+      fn: (c: CurrentType) => { 
+        current.value = null 
+        sort.value = c.row.sort 
+        nextTick(() => openDetail(c.row)) 
+      }, 
+      divided: true, 
+      icon: 'o', 
+    }, 
+    // { 
+    //   label: '鍚戜笂娣诲姞', 
+    //   fn: (c: CurrentType, pageNum: number) => { 
+    //     current.value = null 
+    //     sort.value = c.index + 1 + (pageNum - 1) * 50 
+    //     dialogConfig.visible = true 
+    //     dialogConfig.title = '娣诲姞' 
+    //     dialogConfig.isAdd = false 
+    //   }, 
+    //   divided: true, 
+    //   icon: 'up', 
+    // }, 
+    // { 
+    //   label: '鍚戜笅娣诲姞', 
+    //   fn: (c: CurrentType, pageNum: number) => { 
+    //     current.value = null 
+    //     sort.value = c.index + 2 + (pageNum - 1) * 50 
+    //     dialogConfig.visible = true 
+    //     dialogConfig.title = '娣诲姞' 
+    //     dialogConfig.isAdd = false 
+    //   }, 
+    //   divided: true, 
+    //   icon: 'down', 
+    // }, 
+    // { 
+    //   label: '鍒涘缓鍓湰', 
+    //   fn: async ({ row }: CurrentType) => { 
+    //     await wmsInOutStockOrderDetail.cloneData([row.id]) 
+    //     ElMessage.success('鍒涘缓鍓湰鎴愬姛') 
+    //     tableRef.value?.getList() 
+    //   }, 
+    //   divided: true, 
+    //   icon: 'copy', 
+    // }, 
+    { 
+      label: '鍒犻櫎', 
+      fn: async (c: CurrentType) => { 
+        const names = selection.value.map((item: { materialId: string }) => item.materialId) 
+        ConfirmBox( 
+          `鏄惁鍒犻櫎${names.length ? names.join(',') : c.row.materialId}` 
+        ).then(async () => { 
+          const ids = selection.value.map((item: { id: string }) => item.id) 
+          await wmsInOutStockOrderDetail.deleteWmsInOutStockOrderDetails(ids.length ? ids : [c.row.id]) 
+          ElMessage.success('鍒犻櫎鎴愬姛') 
+          tableRef.value.getList() 
+        }) 
+      }, 
+      icon: 'close', 
+    }, 
+  ] 
+ 
+  const onCheck = (records: any) => { 
+    selection.value = records 
+  } 
+ 
+  const onAddWmsInOutStockOrderDetail = () => { 
+    const params = tableRef.value?.getPaginationParams() 
+    current.value = null 
+    dialogConfig.visible = true 
+    dialogConfig.isAdd = true 
+    dialogConfig.title = '娣诲姞' 
+    sort.value = params.totalCount + 1 
+  } 
+ 
+  //鐐瑰嚮鎸夐挳銆愰珮绾ф煡璇€�� 
+  const onAdvancedQuery = () => { 
+    const params = tableRef.value?.getPaginationParams() 
+    current.value = null 
+    dialogConfigForQuery.visible = true 
+    dialogConfigForQuery.isAdd = true 
+    dialogConfigForQuery.title = '楂樼骇鏌ヨ' 
+  } 
+  
+  const onConfirmWmsInOutStockOrderDetail = async () => { 
+    dialogConfig.visible = false 
+    if (dialogConfig.isAdd) { 
+      tableRef.value?.scrollToRow({ 
+        skip: true, 
+      }) 
+    } else { 
+      await tableRef.value?.getList() 
+    } 
+  } 
+  /** 
+   * 琛岀偣鍑绘椂鏇存柊current 
+   */ 
+  const onRowClick = ({ row }: any) => { 
+    if (dialogConfig.visible && current.value) { 
+      current.value = row 
+    } 
+  } 
+  /** 
+   * 瀵煎嚭 
+   */ 
+  const onExport = (data={}) => { 
+    //const params = tableRef.value?.getParams() 
+    exportFile('/api/v1/HIAWms/wmsInOutStockOrderDetail/export', data, 'wmsInOutStockOrderDetail') 
+  } 
+ 
+  /** 
+   * 鍏抽敭瀛楁悳绱� 
+   */ 
+  const onSearch = () => { 
+    tableRef.value?.getList({ 
+      Filter: search.value, 
+    }) 
+  } 
+ 
+  /** 
+   * 閲嶇疆琛ㄦ牸鏁版嵁 
+   */ 
+  const reloadList = () => { 
+    tableRef.value?.getList() 
+  } 
+  /** 
+   * 涓婁紶鎴愬姛 
+   */ 
+  const onSuccess = () => { 
+    tableRef.value?.getList() 
+    ElMessage.success('瀵煎叆鎴愬姛') 
+  } 
+  /** 
+   * 澶辫触 
+   * @param err 
+   */ 
+  const onError = (err: any) => { 
+    try { 
+      const message = JSON.parse(err.message) 
+      ElMessage.error(message.msg) 
+    } catch (error) { 
+      ElMessage.error('瀵煎叆澶辫触') 
+    } 
+  } 
+  /** 
+   * 涓婁紶閽╁瓙 
+   */ 
+  const onBeforeUpload = (file: File) => { 
+    const format = ['xlsx', 'xls', 'csv'] 
+    if (!format.includes(file.name.split('.')[1])) { 
+      ElMessage.error('瀵煎叆鏂囦欢鏍煎紡涓嶆纭紝璇峰鍏�.xlsx/.xls涓�.csv鏍煎紡鐨勬枃浠�') 
+      return false 
+    } 
+    return true 
+  } 
+ 
+  onMounted(() => { 
+    headers.value = { 
+      Authorization: `Bearer ${sessionStorage.getItem('Token')}`, 
+      'X-Project': sessionStorage.getItem('X-Project'), 
+    } 
+  }) 
+ 
+  ctx.expose({ 
+    reloadList, 
+  }) 
+ 
+  return { 
+    dataSource, 
+    contextMenu, 
+    dialogConfig, 
+    dialogConfigForQuery, 
+    dialogSettingConfig, 
+    tableRef, 
+    current, 
+    search, 
+    sort, 
+    wmsInOutStockOrderDetailColumns, 
+    paginationParams, 
+    headers, 
+    onBeforeUpload, 
+    onError, 
+    onSuccess, 
+    openDetail, 
+    onSearch, 
+    onExport, 
+    onRowClick, 
+    onConfirmWmsInOutStockOrderDetail, 
+    onCheck, 
+    onAddWmsInOutStockOrderDetail, 
+    onAdvancedQuery 
+  } 
+} 
diff --git a/HIAWms/hiawms_web/src/widgets/WmsInOutStockOrderDetail/Controllers/WmsInOutStockOrderDetailDrawer.tsx b/HIAWms/hiawms_web/src/widgets/WmsInOutStockOrderDetail/Controllers/WmsInOutStockOrderDetailDrawer.tsx
new file mode 100644
index 0000000..e92cb95
--- /dev/null
+++ b/HIAWms/hiawms_web/src/widgets/WmsInOutStockOrderDetail/Controllers/WmsInOutStockOrderDetailDrawer.tsx
@@ -0,0 +1,293 @@
+import {
+  ref,
+  onMounted,
+  reactive,
+  computed,
+  Ref,
+  watch,
+  SetupContext,
+  h,
+} from 'vue'
+import { injectModel } from '@/libs/Provider/Provider'
+import { WmsInOutStockOrderDetailDrawer } from '../Models/WmsInOutStockOrderDetailDrawer'
+import { ElMessage } from 'element-plus'
+import isEqual from 'lodash/isEqual'
+import { ConfirmBox } from '@/components/ConfirmBox/ConfirmBox'
+import { cloneDeep } from 'lodash'
+
+export const useWmsInOutStockOrderDetailDrawer = (props: any, ctx?: any) => {
+  const wmsInOutStockOrderDetailDrawer =
+    injectModel<WmsInOutStockOrderDetailDrawer>(
+      'wmsInOutStockOrderDetailDrawer'
+    )
+  /**
+   * 鐢ㄦ潵瀵规瘮鐨勫垵濮嬪寲鏁版嵁
+   */
+  const initiateData: Ref<Record<string, any>> = ref({})
+  const formData = ref<Record<string, any>>({})
+  // ref
+  const formRef = ref()
+
+  const disabled = ref(false)
+
+  const current = computed(() => {
+    return props.row || null
+  })
+
+  const datePicker = (attrs) => {
+    return (
+      <el-date-picker
+        type="date"
+        format="YYYY-MM-DD HH:mm:ss"
+        formatValue="YYYY-MM-DD HH:mm:ss"
+        {...attrs}
+      ></el-date-picker>
+    )
+  }
+  const inputNumber = (attrs) => {
+    return (
+      <el-input-number
+        min="1"
+        step="1"
+        precision="0"
+        {...attrs}
+      ></el-input-number>
+    )
+  }
+
+  const dateTimePicker = (attrs) => {
+    return (
+      <el-date-picker
+        type="datetime"
+        format="YYYY-MM-DD HH:mm:ss"
+        formatValue="YYYY-MM-DD HH:mm:ss"
+        {...attrs}
+      ></el-date-picker>
+    )
+  }
+
+  const visible = computed({
+    get() {
+      return props.modelValue
+    },
+    set(val) {
+      ctx.emit('update:modelValue', val)
+    },
+  })
+  /**
+   * 娣诲姞鐨刦orm瀛楁
+   */
+  const formItems = reactive([
+    {
+      label: '鍗曟嵁缂栧彿',
+      prop: 'orderNo',
+      el: 'input',
+      //disabled: disabled,
+      placeholder: '璇疯緭鍏ュ崟鎹紪鍙�',
+      rules: [{ required: true, message: '鍗曟嵁缂栧彿涓嶈兘涓虹┖', trigger: 'blur' }],
+    },
+    {
+      label: '鐗╂枡鍞竴鐮�',
+      prop: 'materialId',
+      el: 'input',
+      //disabled: disabled,
+      placeholder: '璇疯緭鍏ョ墿鏂欏敮涓�鐮�',
+      rules: [
+        { required: true, message: '鐗╂枡鍞竴鐮佷笉鑳戒负绌�', trigger: 'blur' },
+      ],
+    },
+    {
+      label: '鍗曟嵁绫诲瀷',
+      prop: 'orderType',
+      el: 'select',
+      //disabled: disabled,
+      placeholder: '璇疯緭鍏ュ崟鎹被鍨�',
+      rules: [
+        {
+          required: true,
+          message: '鍗曟嵁绫诲瀷涓嶈兘涓虹┖',
+          trigger: 'blur',
+        },
+      ],
+    },
+    {
+      label: '鐗╂枡浠跺彿',
+      prop: 'materialNo',
+      el: 'input',
+      //disabled: disabled,
+      placeholder: '璇疯緭鍏ョ墿鏂欎欢鍙�',
+      rules: [{ required: true, message: '鐗╂枡浠跺彿涓嶈兘涓虹┖', trigger: 'blur' }],
+    },
+    {
+      label: '鐗╂枡鍚嶇О',
+      prop: 'materialName',
+      el: 'input',
+      //disabled: disabled,
+      placeholder: '璇疯緭鍏ョ墿鏂欏悕绉�',
+    },
+    {
+      label: '瀹瑰櫒缂栧彿',
+      prop: 'containerNo',
+      el: 'input',
+      //disabled: disabled,
+      placeholder: '璇疯緭鍏ュ鍣ㄧ紪鍙�',
+    },
+    {
+      label: '鍨嬪彿',
+      prop: 'materialModel',
+      el: 'input',
+      //disabled: disabled,
+      placeholder: '璇疯緭鍏ュ瀷鍙�',
+    },
+    {
+      label: '鐗╂枡鎵规',
+      prop: 'materialBatch',
+      el: (props: any, { attrs }: SetupContext) => {
+        return h(inputNumber, {
+          ...props,
+          clearable: true,
+          ...attrs,
+        })
+      },
+      width: '100%',
+      step: 1,
+      precision: 0,
+      //disabled: disabled,
+      placeholder: '璇疯緭鍏ョ墿鏂欐壒娆�',
+    },
+    {
+      label: '澶囨敞',
+      prop: 'remark',
+      el: 'input',
+      //disabled: disabled,
+      placeholder: '璇疯緭鍏ュ娉�',
+    },
+  ])
+  /**
+   * 鏍¢獙鏄惁鏈夋暟鎹彉鍖�
+   */
+  const checkIsEqualObject = () => {
+    const data = {
+      formData: formData.value,
+    }
+    const check = isEqual(initiateData.value, data)
+    return check
+  }
+
+  const onClose = (done: () => void) => {
+    if (visible.value) {
+      if (checkIsEqualObject()) {
+        visible.value = false
+        done && done()
+      } else {
+        ConfirmBox('鏄惁淇濆瓨璁剧疆锛�')
+          .then(() => {
+            onConfirm()
+          })
+          .catch(() => {
+            visible.value = false
+            done && done()
+          })
+      }
+    }
+  }
+  /**
+   * 淇濆瓨
+   */
+  const onConfirm = async () => {
+    await formRef.value?.validate()
+    const data = {
+      orderNo: formData.value.orderNo,
+      materialId: formData.value.materialId,
+      orderType: formData.value.orderType,
+      materialNo: formData.value.materialNo,
+      materialName: formData.value.materialName,
+      containerNo: formData.value.containerNo,
+      materialModel: formData.value.materialModel,
+      materialBatch: formData.value.materialBatch,
+      remark: formData.value.remark,
+    }
+    if (!current.value) {
+      await wmsInOutStockOrderDetailDrawer.addWmsInOutStockOrderDetail(data)
+    } else {
+      const id = current.value.id
+      await wmsInOutStockOrderDetailDrawer.updateWmsInOutStockOrderDetail(
+        id,
+        data
+      )
+    }
+    ElMessage.success('淇濆瓨鎴愬姛')
+    ctx.emit('confirm')
+  }
+
+  const updateCheckData = () => {
+    initiateData.value = {
+      formData: {
+        ...formData.value,
+      },
+    }
+  }
+  const updateFormItemOptions = (propName: string, enumData: any[]) => {
+    const item = formItems.find((item) => item.prop === propName)
+    if (item && enumData) {
+      item.options = enumData.map((item) => ({
+        label: item.description,
+        value: item.value,
+      }))
+    }
+  }
+  /**
+   * 閫氱敤鏌ヨ鏋氫妇
+   */
+  const commonQueryEnumForFrom = async () => {
+    const orderTypeEnumEnum =
+      await wmsInOutStockOrderDetailDrawer.getWmsEnumData({
+        EnumName: 'OrderTypeEnum',
+      })
+    updateFormItemOptions('orderType', orderTypeEnumEnum)
+  }
+  commonQueryEnumForFrom()
+  /**
+   * 寮圭獥鎵撳紑鑾峰彇璇︽儏
+   */
+  const onOpen = async () => {
+    if (current.value) {
+      const res =
+        await wmsInOutStockOrderDetailDrawer.getWmsInOutStockOrderDetailDetail(
+          current.value
+        )
+
+      formData.value = {
+        orderNo: res.orderNo,
+        materialId: res.materialId,
+        orderType: res.orderType,
+        materialNo: res.materialNo,
+        materialName: res.materialName,
+        containerNo: res.containerNo,
+        materialModel: res.materialModel,
+        materialBatch: res.materialBatch,
+        remark: res.remark,
+        id: res.id,
+      }
+      disabled.value = true
+      updateCheckData()
+    } else {
+      formData.value = {}
+
+      disabled.value = false
+      updateCheckData()
+    }
+  }
+
+  watch(() => current.value, onOpen)
+
+  return {
+    formItems,
+    formData,
+    visible,
+    formRef,
+    onOpen,
+    onClose,
+    onConfirm,
+  }
+}
diff --git a/HIAWms/hiawms_web/src/widgets/WmsInOutStockOrderDetail/Controllers/WmsInOutStockOrderDetailQueryDrawer.tsx b/HIAWms/hiawms_web/src/widgets/WmsInOutStockOrderDetail/Controllers/WmsInOutStockOrderDetailQueryDrawer.tsx
new file mode 100644
index 0000000..5031cdd
--- /dev/null
+++ b/HIAWms/hiawms_web/src/widgets/WmsInOutStockOrderDetail/Controllers/WmsInOutStockOrderDetailQueryDrawer.tsx
@@ -0,0 +1,279 @@
+import {
+  ref,
+  onMounted,
+  reactive,
+  computed,
+  Ref,
+  watch,
+  SetupContext,
+  h,
+} from 'vue'
+import { injectModel } from '@/libs/Provider/Provider'
+import { WmsInOutStockOrderDetailDrawer } from '../Models/WmsInOutStockOrderDetailDrawer'
+import { ElMessage } from 'element-plus'
+import isEqual from 'lodash/isEqual'
+import { ConfirmBox } from '@/components/ConfirmBox/ConfirmBox'
+import { cloneDeep } from 'lodash'
+
+export const useWmsInOutStockOrderDetailQueryDrawer = (
+  props: any,
+  ctx?: any
+) => {
+  const wmsInOutStockOrderDetailDrawer =
+    injectModel<WmsInOutStockOrderDetailDrawer>(
+      'WmsInOutStockOrderDetailDrawer'
+    )
+  /**
+   * 鐢ㄦ潵瀵规瘮鐨勫垵濮嬪寲鏁版嵁
+   */
+  const initiateData: Ref<Record<string, any>> = ref({})
+  const formData = ref<Record<string, any>>({})
+  // ref
+  const formRef = ref()
+
+  const disabled = ref(false)
+
+  const current = computed(() => {
+    return props.row || null
+  })
+
+  const inputNumber = (attrs) => {
+    return (
+      <el-input-number
+        min="1"
+        step="1"
+        precision="0"
+        {...attrs}
+      ></el-input-number>
+    )
+  }
+
+  const datePickerRange = (attrs) => {
+    return (
+      <el-date-picker
+        type="daterange"
+        value-format="YYYY-MM-DD HH:mm:ss"
+        start-placeholder="寮�濮嬫棩鏈�"
+        end-placeholder="缁撴潫鏃ユ湡"
+        {...attrs}
+      ></el-date-picker>
+    )
+  }
+
+  const dateTimePickerRange = (attrs) => {
+    return (
+      <el-date-picker
+        type="datetimerange"
+        value-format="YYYY-MM-DD HH:mm:ss"
+        start-placeholder="寮�濮嬫棩鏈�"
+        end-placeholder="缁撴潫鏃ユ湡"
+        {...attrs}
+      ></el-date-picker>
+    )
+  }
+
+  const visible = computed({
+    get() {
+      return props.modelValue
+    },
+    set(val) {
+      ctx.emit('update:modelValue', val)
+    },
+  })
+  /**
+   * 娣诲姞鐨刦orm瀛楁
+   */
+  const formItems = reactive([
+    {
+      label: '鍗曟嵁缂栧彿',
+      prop: 'orderNo',
+      el: 'input',
+      //disabled: disabled,
+      placeholder: '璇疯緭鍏ュ崟鎹紪鍙�',
+    },
+    {
+      label: '鐗╂枡鍞竴鐮�',
+      prop: 'materialId',
+      el: 'input',
+      //disabled: disabled,
+      placeholder: '璇疯緭鍏ョ墿鏂欏敮涓�鐮�',
+    },
+    {
+      label: '鍗曟嵁绫诲瀷',
+      prop: 'orderType',
+      el: 'select',
+      //disabled: disabled,
+      placeholder: '璇疯緭鍏ュ崟鎹被鍨�',
+    },
+    {
+      label: '鐗╂枡浠跺彿',
+      prop: 'materialNo',
+      el: 'input',
+      //disabled: disabled,
+      placeholder: '璇疯緭鍏ョ墿鏂欎欢鍙�',
+    },
+    {
+      label: '鐗╂枡鍚嶇О',
+      prop: 'materialName',
+      el: 'input',
+      //disabled: disabled,
+      placeholder: '璇疯緭鍏ョ墿鏂欏悕绉�',
+    },
+    {
+      label: '瀹瑰櫒缂栧彿',
+      prop: 'containerNo',
+      el: 'input',
+      //disabled: disabled,
+      placeholder: '璇疯緭鍏ュ鍣ㄧ紪鍙�',
+    },
+    {
+      label: '鍨嬪彿',
+      prop: 'materialModel',
+      el: 'input',
+      //disabled: disabled,
+      placeholder: '璇疯緭鍏ュ瀷鍙�',
+    },
+    {
+      label: '鐗╂枡鎵规',
+      prop: 'materialBatch',
+      el: (props: any, { attrs }: SetupContext) => {
+        return h(inputNumber, {
+          ...props,
+          clearable: true,
+          ...attrs,
+        })
+      },
+      width: '100%',
+      step: 1,
+      precision: 0,
+      //disabled: disabled,
+      placeholder: '璇疯緭鍏ョ墿鏂欐壒娆�',
+    },
+    {
+      label: '鍒涘缓鏃堕棿',
+      prop: 'creationTime',
+      el: (props: any, { attrs }: SetupContext) => {
+        return h(dateTimePickerRange, {
+          ...props,
+          clearable: true,
+          ...attrs,
+        })
+      },
+      width: '100%',
+      //disabled: disabled,
+      placeholder: '璇疯緭鍏ユ槸鍚︾鐢�',
+    },
+    {
+      label: '澶囨敞',
+      prop: 'remark',
+      el: 'input',
+      //disabled: disabled,
+      placeholder: '璇疯緭鍏ュ娉�',
+    },
+  ])
+  /**
+   * 鏍¢獙鏄惁鏈夋暟鎹彉鍖�
+   */
+  const checkIsEqualObject = () => {
+    const data = {
+      formData: formData.value,
+    }
+    const check = isEqual(initiateData.value, data)
+    return check
+  }
+  const commonGetFormData = () => {
+    const data = {
+      orderNo: formData.value.orderNo || '',
+      materialId: formData.value.materialId || '',
+      orderType: formData.value.orderType || '',
+      materialNo: formData.value.materialNo || '',
+      materialName: formData.value.materialName || '',
+      containerNo: formData.value.containerNo || '',
+      materialModel: formData.value.materialModel || '',
+      materialBatch: formData.value.materialBatch || '',
+      creationTime: formData.value.creationTime || '',
+      isDisabled: formData.value.isDisabled || '',
+      remark: formData.value.remark || '',
+    }
+    return data
+  }
+  const onClose = (done: () => void) => {
+    if (visible.value) {
+      visible.value = false
+      const data = commonGetFormData()
+      ctx.emit('close', data)
+    }
+  }
+  /**
+   * 纭鏌ヨ
+   */
+  const onConfirmQuery = async () => {
+    const data = commonGetFormData()
+    ctx.emit('confirmQuery', data)
+  }
+  /**
+   * 閲嶇疆鏌ヨ
+   */
+  const onReset = async () => {
+    formData.value = {}
+    formData.value.OrderNo = ''
+    formData.value.MaterialId = ''
+    formData.value.OrderType = ''
+    formData.value.MaterialNo = ''
+    formData.value.MaterialName = ''
+    formData.value.ContainerNo = ''
+    formData.value.MaterialModel = ''
+    formData.value.MaterialBatch = ''
+    formData.value.Remark = ''
+    //鍚戠埗缁勪欢鍙戦�佽嚜瀹氫箟浜嬩欢
+    ctx.emit('restQuery')
+  }
+
+  const updateCheckData = () => {
+    initiateData.value = {
+      formData: {
+        ...formData.value,
+      },
+    }
+  }
+  const updateFormItemOptions = (propName: string, enumData: any[]) => {
+    const item = formItems.find((item) => item.prop === propName)
+    if (item && enumData) {
+      item.options = enumData.map((item) => ({
+        label: item.description,
+        value: item.value,
+      }))
+    }
+  }
+  /**
+   * 閫氱敤鏌ヨ鏋氫妇
+   */
+  const commonQueryEnumForFrom = async () => {
+    const orderTypeEnumEnum =
+      await wmsInOutStockOrderDetailDrawer.getWmsEnumData({
+        EnumName: 'OrderTypeEnum',
+      })
+    updateFormItemOptions('orderType', orderTypeEnumEnum)
+  }
+  commonQueryEnumForFrom()
+  /**
+   * 寮圭獥鎵撳紑鑾峰彇璇︽儏
+   */
+  const onOpen = async () => {
+    disabled.value = false
+    updateCheckData()
+  }
+
+  watch(() => current.value, onOpen)
+
+  return {
+    formItems,
+    formData,
+    visible,
+    formRef,
+    onOpen,
+    onClose,
+    onConfirmQuery,
+    onReset,
+  }
+}
diff --git a/HIAWms/hiawms_web/src/widgets/WmsInOutStockOrderDetail/Models/Service/WmsInOutStockOrderDetail.ts b/HIAWms/hiawms_web/src/widgets/WmsInOutStockOrderDetail/Models/Service/WmsInOutStockOrderDetail.ts
new file mode 100644
index 0000000..65c433b
--- /dev/null
+++ b/HIAWms/hiawms_web/src/widgets/WmsInOutStockOrderDetail/Models/Service/WmsInOutStockOrderDetail.ts
@@ -0,0 +1,30 @@
+import { Base } from '@/libs/Base/Base' 
+const request = Base.request 
+ 
+/** 
+ * 娣诲姞 
+ * @returns 
+ */ 
+export const addWmsInOutStockOrderDetail = (data: any) => { 
+  return request.post('/api/v1/HIAWms/wmsInOutStockOrderDetail', data) 
+} 
+ 
+/** 
+ * 鎵归噺鍒犻櫎 
+ * @returns 
+ */ 
+export const deleteWmsInOutStockOrderDetails = (ids: string[]) => { 
+  return request({ 
+    data: ids, 
+    url: '/api/v1/HIAWms/wmsInOutStockOrderDetail', 
+    method: 'delete', 
+  }) 
+} 
+ 
+/** 
+ * 鍏嬮殕 
+ * @returns 
+ */ 
+export const cloneData = (data: any) => { 
+  return request.post('/api/v1/HIAWms/wmsInOutStockOrderDetail/clone', data) 
+} 
diff --git a/HIAWms/hiawms_web/src/widgets/WmsInOutStockOrderDetail/Models/Service/WmsInOutStockOrderDetailDrawer.ts b/HIAWms/hiawms_web/src/widgets/WmsInOutStockOrderDetail/Models/Service/WmsInOutStockOrderDetailDrawer.ts
new file mode 100644
index 0000000..fd5f155
--- /dev/null
+++ b/HIAWms/hiawms_web/src/widgets/WmsInOutStockOrderDetail/Models/Service/WmsInOutStockOrderDetailDrawer.ts
@@ -0,0 +1,34 @@
+import { Base } from '@/libs/Base/Base' 
+const request = Base.request 
+ 
+/** 
+ * 娣诲姞 
+ * @returns 
+ */ 
+export const addWmsInOutStockOrderDetail = (data: any) => { 
+  return request.post('/api/v1/HIAWms/wmsInOutStockOrderDetail', data) 
+} 
+ 
+/** 
+ * 鑾峰彇璇︽儏 
+ * @returns 
+ */ 
+export const getWmsInOutStockOrderDetail = (id: string) => { 
+  return request.get(`/api/v1/HIAWms/wmsInOutStockOrderDetail/${id}`) 
+} 
+ 
+/** 
+ * 鏇存柊 
+ * @returns 
+ */ 
+export const updateWmsInOutStockOrderDetail = (id: string, data: Record<string, any>) => { 
+  return request.put(`/api/v1/HIAWms/wmsInOutStockOrderDetail/${id}`, data) 
+} 
+ 
+/** 
+ * 鑾峰彇鏋氫妇 
+ * @returns 
+ */ 
+export const getWmsEnumData = (data: any) => { 
+  return request.post('/api/v1/HIAWms/WmsEnum', data) 
+} 
diff --git a/HIAWms/hiawms_web/src/widgets/WmsInOutStockOrderDetail/Models/Service/WmsInOutStockOrderDetailQueryDrawer.ts b/HIAWms/hiawms_web/src/widgets/WmsInOutStockOrderDetail/Models/Service/WmsInOutStockOrderDetailQueryDrawer.ts
new file mode 100644
index 0000000..9a6aee3
--- /dev/null
+++ b/HIAWms/hiawms_web/src/widgets/WmsInOutStockOrderDetail/Models/Service/WmsInOutStockOrderDetailQueryDrawer.ts
@@ -0,0 +1,35 @@
+import { Base } from '@/libs/Base/Base' 
+const request = Base.request 
+ 
+/** 
+ * 娣诲姞 
+ * @returns 
+ */ 
+export const addWmsInOutStockOrderDetail = (data: any) => { 
+  return request.post('/api/v1/HIAWms/wmsInOutStockOrderDetail', data) 
+} 
+ 
+/** 
+ * 鑾峰彇璇︽儏 
+ * @returns 
+ */ 
+export const getWmsInOutStockOrderDetail = (id: string) => { 
+  return request.get(`/api/v1/HIAWms/wmsInOutStockOrderDetail/${id}`) 
+} 
+ 
+/** 
+ * 鏇存柊 
+ * @returns 
+ */ 
+export const updateWmsInOutStockOrderDetail = (id: string, data: Record<string, any>) => { 
+  return request.put(`/api/v1/HIAWms/wmsInOutStockOrderDetail/${id}`, data) 
+} 
+ 
+/** 
+ * 鑾峰彇鏋氫妇 
+ * @returns 
+ */ 
+export const getWmsEnumData = (data: any) => { 
+  return request.post('/api/v1/HIAWms/WmsEnum', data) 
+} 
+ 
diff --git a/HIAWms/hiawms_web/src/widgets/WmsInOutStockOrderDetail/Models/WmsInOutStockOrderDetail.ts b/HIAWms/hiawms_web/src/widgets/WmsInOutStockOrderDetail/Models/WmsInOutStockOrderDetail.ts
new file mode 100644
index 0000000..f1c2f53
--- /dev/null
+++ b/HIAWms/hiawms_web/src/widgets/WmsInOutStockOrderDetail/Models/WmsInOutStockOrderDetail.ts
@@ -0,0 +1,41 @@
+import { Base } from '@/libs/Base/Base' 
+import { 
+  deleteWmsInOutStockOrderDetails, 
+  addWmsInOutStockOrderDetail, 
+  cloneData, 
+} from './Service/WmsInOutStockOrderDetail' 
+ 
+export class WmsInOutStockOrderDetail extends Base<{ [key: string]: any }> { 
+  constructor() { 
+    super({ 
+      data: [], 
+    }) 
+  } 
+  onMounted() {} 
+  /** 
+   * 鍒犻櫎 
+   * @param id 
+   * @returns 
+   */ 
+  async deleteWmsInOutStockOrderDetails(ids: string[]) { 
+    return deleteWmsInOutStockOrderDetails(ids) 
+  } 
+ 
+  /** 
+   * 娣诲姞鏁版嵁 
+   * @param data 
+   * @returns 
+   */ 
+  addWmsInOutStockOrderDetail(data: Record<string, any>) { 
+    return addWmsInOutStockOrderDetail(data) 
+  } 
+ 
+  /** 
+   * 鍏嬮殕 
+   * @param ids 
+   * @returns 
+   */ 
+  cloneData(ids: string[]) { 
+    return cloneData(ids) 
+  } 
+} 
diff --git a/HIAWms/hiawms_web/src/widgets/WmsInOutStockOrderDetail/Models/WmsInOutStockOrderDetailDrawer.ts b/HIAWms/hiawms_web/src/widgets/WmsInOutStockOrderDetail/Models/WmsInOutStockOrderDetailDrawer.ts
new file mode 100644
index 0000000..10cff66
--- /dev/null
+++ b/HIAWms/hiawms_web/src/widgets/WmsInOutStockOrderDetail/Models/WmsInOutStockOrderDetailDrawer.ts
@@ -0,0 +1,44 @@
+import { Base } from '@/libs/Base/Base' 
+import { 
+  addWmsInOutStockOrderDetail, 
+  getWmsInOutStockOrderDetail, 
+  updateWmsInOutStockOrderDetail, 
+  getWmsEnumData, 
+} from './Service/WmsInOutStockOrderDetailDrawer' 
+import { useGlobalState } from '@/libs/Store/Store' 
+ 
+export class WmsInOutStockOrderDetailDrawer extends Base<{ [key: string]: any }> { 
+  constructor() { 
+    super({ 
+      data: [], 
+      wmsInOutStockOrderDetail: {}, 
+    }) 
+  } 
+ 
+  /** 
+   * 娣诲姞 
+   * @param data 
+   */ 
+  async addWmsInOutStockOrderDetail(data: Record<string, any>) { 
+    return addWmsInOutStockOrderDetail(data) 
+  } 
+  /** 
+   * 鏇存柊 
+   * @param data 
+   */ 
+  async updateWmsInOutStockOrderDetail(id: string, data: Record<string, any>) { 
+    return updateWmsInOutStockOrderDetail(id, data) 
+  } 
+ 
+  /** 
+   * 鑾峰彇璇︽儏 
+   */ 
+  async getWmsInOutStockOrderDetailDetail(current: any, id?: string) { 
+    return getWmsInOutStockOrderDetail(id || current?.id) 
+  } 
+ 
+  //  鑾峰彇鏋氫妇鍊� 
+  async getWmsEnumData(data: Record<string, any>) { 
+    return getWmsEnumData(data) 
+  } 
+} 
diff --git a/HIAWms/hiawms_web/src/widgets/WmsInOutStockOrderDetail/Models/WmsInOutStockOrderDetailQueryDrawer.ts b/HIAWms/hiawms_web/src/widgets/WmsInOutStockOrderDetail/Models/WmsInOutStockOrderDetailQueryDrawer.ts
new file mode 100644
index 0000000..14646cd
--- /dev/null
+++ b/HIAWms/hiawms_web/src/widgets/WmsInOutStockOrderDetail/Models/WmsInOutStockOrderDetailQueryDrawer.ts
@@ -0,0 +1,44 @@
+import { Base } from '@/libs/Base/Base' 
+import { 
+  addWmsInOutStockOrderDetail, 
+  getWmsInOutStockOrderDetail, 
+  updateWmsInOutStockOrderDetail, 
+  getWmsEnumData, 
+} from './Service/WmsInOutStockOrderDetailQueryDrawer' 
+import { useGlobalState } from '@/libs/Store/Store' 
+ 
+export class WmsInOutStockOrderDetailQueryDrawer extends Base<{ [key: string]: any }> { 
+  constructor() { 
+    super({ 
+      data: [], 
+      wmsInOutStockOrderDetail: {}, 
+    }) 
+  } 
+ 
+  /** 
+   * 娣诲姞 
+   * @param data 
+   */ 
+  async addWmsInOutStockOrderDetail(data: Record<string, any>) { 
+    return addWmsInOutStockOrderDetail(data) 
+  } 
+  /** 
+   * 鏇存柊 
+   * @param data 
+   */ 
+  async updateWmsInOutStockOrderDetail(id: string, data: Record<string, any>) { 
+    return updateWmsInOutStockOrderDetail(id, data) 
+  } 
+ 
+  /** 
+   * 鑾峰彇璇︽儏 
+   */ 
+  async getWmsInOutStockOrderDetailDetail(current: any, id?: string) { 
+    return getWmsInOutStockOrderDetail(id || current?.id) 
+  } 
+ 
+  //  鑾峰彇鏋氫妇鍊� 
+  async getWmsEnumData(data: Record<string, any>) { 
+    return getWmsEnumData(data) 
+  } 
+} 
diff --git a/HIAWms/hiawms_web/src/widgets/WmsInOutStockOrderDetail/Views/Pages/Dialog/WmsInOutStockOrderDetailDrawer/WmsInOutStockOrderDetailDrawer.module.scss b/HIAWms/hiawms_web/src/widgets/WmsInOutStockOrderDetail/Views/Pages/Dialog/WmsInOutStockOrderDetailDrawer/WmsInOutStockOrderDetailDrawer.module.scss
new file mode 100644
index 0000000..177adca
--- /dev/null
+++ b/HIAWms/hiawms_web/src/widgets/WmsInOutStockOrderDetail/Views/Pages/Dialog/WmsInOutStockOrderDetailDrawer/WmsInOutStockOrderDetailDrawer.module.scss
@@ -0,0 +1,3 @@
+.drawer { 
+  width: 800px; 
+} 
diff --git a/HIAWms/hiawms_web/src/widgets/WmsInOutStockOrderDetail/Views/Pages/Dialog/WmsInOutStockOrderDetailDrawer/WmsInOutStockOrderDetailDrawer.tsx b/HIAWms/hiawms_web/src/widgets/WmsInOutStockOrderDetail/Views/Pages/Dialog/WmsInOutStockOrderDetailDrawer/WmsInOutStockOrderDetailDrawer.tsx
new file mode 100644
index 0000000..ffbc3d5
--- /dev/null
+++ b/HIAWms/hiawms_web/src/widgets/WmsInOutStockOrderDetail/Views/Pages/Dialog/WmsInOutStockOrderDetailDrawer/WmsInOutStockOrderDetailDrawer.tsx
@@ -0,0 +1,61 @@
+import { SetupContext, defineComponent } from 'vue' 
+import BaseDrawer from '@/components/BaseDrawer/BaseDrawer' 
+import styles from './WmsInOutStockOrderDetailDrawer.module.scss' 
+import { useWmsInOutStockOrderDetailDrawer } from '../../../../Controllers/WmsInOutStockOrderDetailDrawer.tsx' 
+import DyForm from '@/components/DyForm/DyForm' 
+ 
+// @ts-ignore 
+export default defineComponent<{ 
+  [key: string]: any 
+}>({ 
+  name: '寮圭獥', 
+  props: { 
+    modelValue: { 
+      type: Boolean, 
+      default: false, 
+    }, 
+    title: { 
+      type: String, 
+      default: '', 
+    }, 
+    row: { 
+      type: Object, 
+    }, 
+    sort: { 
+      type: Number, 
+      default: 0, 
+    }, 
+  }, 
+  emits: ['update:modelValue', 'close', 'submit', 'confirm'], 
+  setup(props: Record<string, any>, ctx: SetupContext) { 
+    const { 
+      onClose, 
+      onConfirm, 
+      onOpen, 
+      formRef, 
+      visible, 
+      formItems, 
+      formData, 
+    } = useWmsInOutStockOrderDetailDrawer(props, ctx) 
+    return () => ( 
+      <BaseDrawer 
+        class={styles.drawer} 
+        size="800px" 
+        title={props.title || '娣诲姞'} 
+        v-model={visible.value} 
+        close-on-click-modal={true} 
+        onConfirm={onConfirm} 
+        onOpen={onOpen} 
+        before-close={onClose} 
+        onClose={onClose} 
+      > 
+        <DyForm 
+          ref={formRef} 
+          formData={formData.value} 
+          labelWidth="106px" 
+          formItemProps={formItems} 
+        ></DyForm> 
+      </BaseDrawer> 
+    ) 
+  }, 
+}) 
diff --git a/HIAWms/hiawms_web/src/widgets/WmsInOutStockOrderDetail/Views/Pages/Dialog/WmsInOutStockOrderDetailQueryDrawer/WmsInOutStockOrderDetailQueryDrawer.module.scss b/HIAWms/hiawms_web/src/widgets/WmsInOutStockOrderDetail/Views/Pages/Dialog/WmsInOutStockOrderDetailQueryDrawer/WmsInOutStockOrderDetailQueryDrawer.module.scss
new file mode 100644
index 0000000..177adca
--- /dev/null
+++ b/HIAWms/hiawms_web/src/widgets/WmsInOutStockOrderDetail/Views/Pages/Dialog/WmsInOutStockOrderDetailQueryDrawer/WmsInOutStockOrderDetailQueryDrawer.module.scss
@@ -0,0 +1,3 @@
+.drawer { 
+  width: 800px; 
+} 
diff --git a/HIAWms/hiawms_web/src/widgets/WmsInOutStockOrderDetail/Views/Pages/Dialog/WmsInOutStockOrderDetailQueryDrawer/WmsInOutStockOrderDetailQueryDrawer.tsx b/HIAWms/hiawms_web/src/widgets/WmsInOutStockOrderDetail/Views/Pages/Dialog/WmsInOutStockOrderDetailQueryDrawer/WmsInOutStockOrderDetailQueryDrawer.tsx
new file mode 100644
index 0000000..7c2386b
--- /dev/null
+++ b/HIAWms/hiawms_web/src/widgets/WmsInOutStockOrderDetail/Views/Pages/Dialog/WmsInOutStockOrderDetailQueryDrawer/WmsInOutStockOrderDetailQueryDrawer.tsx
@@ -0,0 +1,71 @@
+/* 
+ * 鐗╂枡鍩虹淇℃伅鏌ヨ寮瑰嚭妗� 
+*/ 
+import { SetupContext, defineComponent } from 'vue' 
+import BaseQueryDrawer from '@/components/BaseQueryDrawer/BaseQueryDrawer' 
+import styles from './WmsInOutStockOrderDetailQueryDrawer.module.scss' 
+import { useWmsInOutStockOrderDetailQueryDrawer } from '../../../../Controllers/WmsInOutStockOrderDetailQueryDrawer.tsx' 
+import DyForm from '@/components/DyForm/DyForm' 
+ 
+// @ts-ignore 
+export default defineComponent<{ 
+  [key: string]: any 
+}>({ 
+  name: '寮圭獥', 
+  props: { 
+    //鏋氫妇绫诲瀷瀛楀吀 
+    enumListDict:{ 
+      type: Array as () => Array<{ key: string; value: object }>, // 瀹氫箟鏁扮粍鍏冪礌绫诲瀷 
+      default: () => [] // 榛樿鍊� 
+    }, 
+    modelValue: { 
+      type: Boolean, 
+      default: false, 
+    }, 
+    title: { 
+      type: String, 
+      default: '', 
+    }, 
+    row: { 
+      type: Object, 
+    }, 
+    sort: { 
+      type: Number, 
+      default: 0, 
+    }, 
+  }, 
+  emits: ['update:modelValue', 'close', 'submit', 'confirmquery1'], 
+  setup(props: Record<string, any>, ctx: SetupContext) { 
+    const { 
+      onClose, 
+      onConfirmQuery, 
+      onOpen, 
+      onReset, 
+      formRef, 
+      visible, 
+      formItems, 
+      formData, 
+    } = useWmsInOutStockOrderDetailQueryDrawer(props, ctx) 
+    return () => ( 
+      <BaseQueryDrawer 
+        class={styles.drawer} 
+        size="800px" 
+        title={props.title || '楂樼骇鏌ヨ'} 
+        v-model={visible.value} 
+        close-on-click-modal={true} 
+        onReset={onReset} 
+        onConfirmQueryForBase={onConfirmQuery} 
+        onOpen={onOpen} 
+        before-close={onClose} 
+        onClose={onClose} 
+      > 
+        <DyForm 
+          ref={formRef} 
+          formData={formData.value} 
+          labelWidth="106px" 
+          formItemProps={formItems} 
+        ></DyForm> 
+      </BaseQueryDrawer> 
+    ) 
+  }, 
+}) 
diff --git a/HIAWms/hiawms_web/src/widgets/WmsInOutStockOrderDetail/Views/Pages/WmsInOutStockOrderDetail/Config.ts b/HIAWms/hiawms_web/src/widgets/WmsInOutStockOrderDetail/Views/Pages/WmsInOutStockOrderDetail/Config.ts
new file mode 100644
index 0000000..86f43fa
--- /dev/null
+++ b/HIAWms/hiawms_web/src/widgets/WmsInOutStockOrderDetail/Views/Pages/WmsInOutStockOrderDetail/Config.ts
@@ -0,0 +1,55 @@
+export const columns = [
+  {
+    type: 'seq',
+    width: 60,
+    title: '搴忓彿',
+  },
+  {
+    field: 'orderNo',
+    title: '鍗曟嵁缂栧彿',
+  },
+  {
+    field: 'materialId',
+    title: '鐗╂枡鍞竴鐮�',
+  },
+  {
+    field: 'orderTypeDesc',
+    title: '鍗曟嵁绫诲瀷',
+  },
+  {
+    field: 'materialNo',
+    title: '鐗╂枡浠跺彿',
+  },
+  {
+    field: 'materialName',
+    title: '鐗╂枡鍚嶇О',
+  },
+  {
+    field: 'containerNo',
+    title: '瀹瑰櫒缂栧彿',
+  },
+  {
+    field: 'materialModel',
+    title: '鍨嬪彿',
+  },
+  {
+    field: 'materialBatch',
+    title: '鐗╂枡鎵规',
+  },
+  // {
+  //   field: 'creationTime',
+  //   title: '鏄惁绂佺敤',
+  // },
+  // {
+  //   field: 'deletionTime',
+  //   title: '',
+  // },
+  {
+    field: 'remark',
+    title: '澶囨敞',
+  },
+  // {
+  //   field: 'sort',
+  //   title: '鎺掑簭',
+  // },
+]
diff --git a/HIAWms/hiawms_web/src/widgets/WmsInOutStockOrderDetail/Views/Pages/WmsInOutStockOrderDetail/WmsInOutStockOrderDetail.module.scss b/HIAWms/hiawms_web/src/widgets/WmsInOutStockOrderDetail/Views/Pages/WmsInOutStockOrderDetail/WmsInOutStockOrderDetail.module.scss
new file mode 100644
index 0000000..38a41bd
--- /dev/null
+++ b/HIAWms/hiawms_web/src/widgets/WmsInOutStockOrderDetail/Views/Pages/WmsInOutStockOrderDetail/WmsInOutStockOrderDetail.module.scss
@@ -0,0 +1,113 @@
+.wmsInOutStockOrderDetailContent { 
+  width: 100%; 
+  height: 100%; 
+ 
+  .wmsInOutStockOrderDetailList { 
+    width: 100%; 
+    height: calc(100% - 70px); 
+  } 
+  .headerContent { 
+    display: flex; 
+    justify-content: space-between; 
+    align-items: center; 
+    height: 43px; 
+  } 
+  .header { 
+    margin-bottom: 12px; 
+    display: flex; 
+    justify-content: flex-end; 
+    align-items: center; 
+  } 
+} 
+ 
+.tagBox { 
+  width: auto; 
+  min-width: 80px; 
+  height: 24px; 
+  background: #ffffff; 
+  border-radius: 19px 19px 19px 19px; 
+  opacity: 1; 
+  border: 1px dashed #bcc4cc; 
+  width: 50px; 
+  height: 20px; 
+  font-size: 14px; 
+  font-family: PingFang SC, PingFang SC; 
+  font-weight: 400; 
+  color: #5a84ff; 
+  display: flex; 
+  justify-content: center; 
+  align-items: center; 
+  // cursor: pointer; 
+} 
+ 
+.group { 
+  display: flex; 
+  justify-content: space-between; 
+  align-items: center; 
+} 
+ 
+.groupTable { 
+  width: 100%; 
+} 
+ 
+.overBox { 
+  width: 100%; 
+  height: calc(100% - 20px); 
+  overflow: auto; 
+  :global(.cs-collapse-item__header) { 
+    background-color: #f1f1f1; 
+    padding: 0 20px; 
+    height: 35px; 
+    font-size: 16px; 
+    font-family: PingFang SC, PingFang SC; 
+    font-weight: 500; 
+  } 
+  :global(.cs-collapse-item__content) { 
+    padding-bottom: 0px; 
+  } 
+} 
+.groupHeader { 
+  width: 100%; 
+  height: 30px; 
+  background: #ccc; 
+} 
+ 
+.hideBlock { 
+  display: none; 
+} 
+.queryForm { 
+  padding: 10px; 
+  background: #f5f7fa; 
+  margin-bottom: 0px; 
+  border-radius: 4px; 
+   
+  .el-form-item { 
+    margin-right: 20px; 
+    margin-bottom: 0; 
+     
+    // 缁熶竴杈撳叆妗嗗拰閫夋嫨妗嗙殑瀹藉害 
+    .el-input, .el-select { 
+      width: 200px; // 璁剧疆缁熶竴鐨勫搴� 
+    } 
+     
+    // 閫夋嫨妗嗗唴閮ㄨ緭鍏ユ鏍峰紡 
+    .el-select .el-input__wrapper { 
+      height: 32px; // 涓庤緭鍏ユ楂樺害涓�鑷� 
+      padding: 1px 11px; // 涓庤緭鍏ユ鍐呰竟璺濅竴鑷� 
+    } 
+     
+    // 鏃ユ湡閫夋嫨鍣ㄥ搴� 
+    .el-date-editor { 
+      width: 220px; 
+    } 
+  } 
+} 
+ 
+// 濡傛灉闇�瑕佹洿绮剧‘鐨勬帶鍒讹紝鍙互鍗曠嫭璁剧疆 
+.formItem { 
+  width: 200px; 
+   
+  &.el-input, &.el-select { 
+    width: 100%; 
+  } 
+} 
diff --git a/HIAWms/hiawms_web/src/widgets/WmsInOutStockOrderDetail/Views/Pages/WmsInOutStockOrderDetail/WmsInOutStockOrderDetail.tsx b/HIAWms/hiawms_web/src/widgets/WmsInOutStockOrderDetail/Views/Pages/WmsInOutStockOrderDetail/WmsInOutStockOrderDetail.tsx
new file mode 100644
index 0000000..c464fc7
--- /dev/null
+++ b/HIAWms/hiawms_web/src/widgets/WmsInOutStockOrderDetail/Views/Pages/WmsInOutStockOrderDetail/WmsInOutStockOrderDetail.tsx
@@ -0,0 +1,362 @@
+import { computed, defineComponent, onMounted, reactive, ref } from 'vue'
+import type { Ref } from 'vue'
+import BaseTable from '@/components/Table/Table'
+import styles from './WmsInOutStockOrderDetail.module.scss'
+import { useWmsInOutStockOrderDetail } from '../../../Controllers/WmsInOutStockOrderDetail'
+import IconButton from '@/components/IconButton/IconButton'
+import WmsInOutStockOrderDetailDrawer from '../Dialog/WmsInOutStockOrderDetailDrawer/WmsInOutStockOrderDetailDrawer'
+import WmsInOutStockOrderDetailQueryDrawer from '../Dialog/WmsInOutStockOrderDetailQueryDrawer/WmsInOutStockOrderDetailQueryDrawer'
+import Search from '@/components/Search/Search'
+import { columns } from './Config'
+import TdButton from '@/components/TdButton/TdButton'
+import { vPermission } from '@/libs/Permission/Permission'
+import { getWmsEnumData } from '@/widgets/WmsInOutStockOrderDetail/Models/Service/WmsInOutStockOrderDetailDrawer'
+import dayjs from 'dayjs'
+import {
+  ElInput,
+  ElSelect,
+  ElOption,
+  ElDatePicker,
+  ElForm,
+  ElFormItem,
+} from 'element-plus'
+import { injectModel } from '@/libs/Provider/Provider'
+
+interface RenderTableType {
+  url?: string
+  dataSource: Ref<any[]>
+  isDrag?: boolean
+  isChecked?: boolean
+  isHidePagination?: boolean
+  params?: Record<string, any>
+  autoHeight?: boolean
+}
+
+export default defineComponent({
+  name: 'WmsInOutStockOrderDetail',
+  directives: {
+    permission: vPermission,
+  },
+  setup(props, ctx) {
+    const {
+      dataSource,
+      contextMenu,
+      dialogConfig,
+      dialogConfigForQuery,
+      tableRef,
+      current,
+      search,
+      sort,
+      headers,
+      onError,
+      onSearch,
+      onRowClick,
+      onConfirmWmsInOutStockOrderDetail,
+      onCheck,
+      onAddWmsInOutStockOrderDetail,
+      onAdvancedQuery,
+      onExport,
+      openDetail,
+      onSuccess,
+      onBeforeUpload,
+    } = useWmsInOutStockOrderDetail(props, ctx)
+
+    //瀹氫箟楂樼骇鏌ヨ寮曠敤
+    const wmsInOutStockOrderDetailQueryDrawerRef = ref(null)
+    // 鏂板鐨勬煡璇㈡潯浠�
+    const queryForm = ref({
+      searchVal: '',
+      str_searchFormInputAttrs: [],
+    })
+    //瀹氫箟鏁翠綋妯$硦鏌ヨ鐨勫垪鏁扮粍(娉ㄦ剰锛氬繀椤诲ぇ灏忓啓璺熷悗绔殑瀹炰綋绫诲睘鎬у悕涓�鑷达紝鍚﹀垯浼氬鑷村尮閰嶄笉瀵圭殑闂)
+    const _searchFormInputAttrs = ref(['OrderNo', 'MaterialNo', 'MaterialId'])
+    const searchFormInputAttrs_Placeholder = ref('璇疯緭鍏ュ崟鎹彿/鐗╂枡缂栧彿/鐗╂枡ID')
+
+    // 鍔ㄦ�佹灇涓鹃�夐」
+    const enumOptions = reactive({
+      orderType: [] as Array<{ label: string; value: any }>,
+    })
+
+    // 鑾峰彇鏋氫妇鏁版嵁
+    const fetchEnumData = async () => {
+      try {
+        const orderTypeEnumData = await getWmsEnumData({
+          EnumName: 'OrderTypeEnum',
+        })
+        enumOptions.orderType = orderTypeEnumData.map((item) => ({
+          label: item.description,
+          value: item.value,
+        }))
+      } catch (error) {
+        console.error('鑾峰彇鏋氫妇鏁版嵁澶辫触:', error)
+      }
+    }
+
+    // 缁勪欢鎸傝浇鏃惰幏鍙栨灇涓炬暟鎹�
+    onMounted(() => {
+      fetchEnumData()
+    })
+
+    // 瀹氫箟鍝嶅簲寮忔煡璇㈡暟鎹�
+    const _curHighQueryData = ref({
+      searchVal: '',
+      str_searchFormInputAttrs: [],
+    })
+    // 鏂扮増鐨勬煡璇㈡柟娉曪紙涓婚〉闈腑鐨勬寜閽�愭煡璇€�戯級
+    const handleQueryForMain = async () => {
+      _curHighQueryData.value.searchVal = queryForm.value.searchVal
+      _curHighQueryData.value.str_searchFormInputAttrs =
+        _searchFormInputAttrs.value
+      tableRef.value.getList(_curHighQueryData.value)
+    }
+    // 鏂扮増鐨勬煡璇㈡柟娉曪紙楂樼骇鏌ヨ涓殑鎸夐挳銆愭煡璇€�戯級
+    const handleQuery = async (extraParams = {}) => {
+      let filteredData = commonGetHighQueryForm(extraParams)
+      commonSaveCurHighQueryData(filteredData)
+      tableRef.value.getList(filteredData)
+    }
+    // 鏂扮増鐨勬煡璇㈤噸缃�
+    const resetQuery = () => {
+      queryForm.value.searchVal = ''
+      queryForm.value.str_searchFormInputAttrs = _searchFormInputAttrs.value
+    }
+    //鏂扮増鐨勫鍑烘柟娉�
+    const handleExport = () => {
+      onExport(_curHighQueryData.value)
+    }
+    // 鏂扮増鐨勬煡璇㈠脊鍑烘鍏抽棴鏂规硶
+    const closeQuery = (extraParams = {}) => {
+      let filteredData = commonGetHighQueryForm(extraParams)
+      console.log('closeQuery鏂规硶')
+      console.log(filteredData)
+      commonSaveCurHighQueryData(filteredData)
+    }
+    //淇濆瓨鏌ヨ鍊�
+    const commonSaveCurHighQueryData = (filteredData = {}) => {
+      _curHighQueryData.value = { ..._curHighQueryData.value, ...filteredData }
+      _curHighQueryData.value.searchVal = queryForm.value.searchVal
+      _curHighQueryData.value.str_searchFormInputAttrs =
+        _searchFormInputAttrs.value
+    }
+    //鑾峰彇楂樼骇鏌ヨ寮瑰嚭妗嗙殑鏌ヨ鍊�
+    const commonGetHighQueryForm = (extraParams = {}) => {
+      // 杩囨护鎺� undefined 鐨勫��
+      let filteredData = Object.assign(
+        {},
+        ...Object.entries(extraParams).map(([key, value]) =>
+          value !== undefined ? { [key]: value } : {}
+        )
+      )
+      //缁勫悎妯$硦鏌ヨ
+      filteredData.searchVal = queryForm.value.searchVal
+      filteredData.str_searchFormInputAttrs = _searchFormInputAttrs.value
+      return filteredData
+    }
+
+    /**
+     * @returns 琛ㄦ牸
+     */
+    const RenderBaseTable = (props: RenderTableType) => {
+      const {
+        url,
+        dataSource,
+        isDrag,
+        isChecked,
+        isHidePagination,
+        params,
+        autoHeight,
+      } = props
+
+      return (
+        <div
+          class={{
+            [styles.wmsInOutStockOrderDetailList]: true,
+          }}
+        >
+          <BaseTable
+            ref={tableRef}
+            url={url}
+            sortUrlTpl="/api/v1/HIAWms/wmsInOutStockOrderDetail/{id}/adjustsort/{sort}"
+            v-model:dataSource={dataSource.value}
+            columns={columns}
+            contextMenu={contextMenu}
+            params={params}
+            isDrag={isDrag}
+            isChecked={isChecked}
+            autoHeight={autoHeight}
+            onCheck={onCheck}
+            onRowClick={onRowClick}
+            isHidePagination={isHidePagination}
+            pageSize={20}
+            v-slots={{
+              creationTime: ({ row }: any) => {
+                return (
+                  <div>
+                    {row.creationTime != null
+                      ? dayjs(row.creationTime).format('YYYY-MM-DD HH:mm:ss')
+                      : '-'}
+                  </div>
+                )
+              },
+              deletionTime: ({ row }: any) => {
+                return (
+                  <div>
+                    {row.deletionTime != null
+                      ? dayjs(row.deletionTime).format('YYYY-MM-DD HH:mm:ss')
+                      : '-'}
+                  </div>
+                )
+              },
+              isDeleted: ({ row }: any) => {
+                return (
+                  <div>
+                    {row.isDeleted != null
+                      ? row.isDeleted
+                        ? '鏄�'
+                        : '鍚�'
+                      : '-'}
+                  </div>
+                )
+              },
+              isDisabled: ({ row }: any) => {
+                return (
+                  <div>
+                    {row.isDisabled != null
+                      ? row.isDisabled
+                        ? '鏄�'
+                        : '鍚�'
+                      : '-'}
+                  </div>
+                )
+              },
+              lastModificationTime: ({ row }: any) => {
+                return (
+                  <div>
+                    {row.lastModificationTime != null
+                      ? dayjs(row.lastModificationTime).format(
+                          'YYYY-MM-DD HH:mm:ss'
+                        )
+                      : '-'}
+                  </div>
+                )
+              },
+              name: ({ row }: any) => {
+                return row?.name ? (
+                  <TdButton
+                    onClick={() => openDetail(row)}
+                    text={<span style="color:#5a84ff">璇︽儏</span>}
+                    icon="scale"
+                    tip={row?.name}
+                    hover
+                  >
+                    {row?.name}
+                  </TdButton>
+                ) : (
+                  '-'
+                )
+              },
+            }}
+          ></BaseTable>
+        </div>
+      )
+    }
+
+    return () => {
+      return (
+        <div class={styles.wmsInOutStockOrderDetailContent}>
+          {/* 娣诲姞/缂栬緫 */}
+          <WmsInOutStockOrderDetailDrawer
+            v-model={dialogConfig.visible}
+            title={dialogConfig.title}
+            row={current.value}
+            sort={sort.value}
+            onConfirm={onConfirmWmsInOutStockOrderDetail}
+          />
+          {/* 楂樼骇鏌ヨ */}
+          <WmsInOutStockOrderDetailQueryDrawer
+            ref="wmsInOutStockOrderDetailQueryDrawerRef"
+            v-model={dialogConfigForQuery.visible}
+            title={dialogConfigForQuery.title}
+            row={current.value}
+            sort={sort.value}
+            onConfirmQuery={handleQuery}
+            onRestQuery={resetQuery}
+            onClose={closeQuery}
+          />
+
+          <div class={styles.headerContent}>
+            <div class={styles.header}>
+              <IconButton
+                v-permission="wmsInOutStockOrderDetail-add"
+                icon="add-p"
+                onClick={onAddWmsInOutStockOrderDetail}
+                type="primary"
+              >
+                娣诲姞
+              </IconButton>
+              <el-divider direction="vertical" />
+
+              <el-divider direction="vertical" />
+              <el-upload
+                v-permission="wmsInOutStockOrderDetail-import"
+                name="file"
+                accept=".xlsx,.xls,.csv"
+                show-file-list={false}
+                onError={onError}
+                onSuccess={onSuccess}
+                before-upload={onBeforeUpload}
+                headers={headers.value}
+                action="/api/v1/HIAWms/wmsInOutStockOrderDetail/import"
+              >
+                <IconButton icon="in">瀵煎叆</IconButton>
+              </el-upload>
+
+              <IconButton
+                v-permission="wmsInOutStockOrderDetail-output"
+                icon="out"
+                onClick={handleExport}
+              >
+                瀵煎嚭
+              </IconButton>
+            </div>
+            <ElFormItem style={{ marginTop: '15px' }}>
+              <ElFormItem label="鍏抽敭瀛�">
+                <ElInput
+                  v-model={queryForm.value.searchVal}
+                  placeholder={searchFormInputAttrs_Placeholder.value}
+                  clearable
+                  class={styles.formItem}
+                />
+              </ElFormItem>
+              <IconButton
+                type="primary"
+                icon="search"
+                onClick={handleQueryForMain}
+              >
+                鏌ヨ
+              </IconButton>
+              {/* <IconButton style="" icon="refresh" onClick={resetQuery}> 
+                閲嶇疆 
+              </IconButton> */}
+              <IconButton
+                v-permission="wmsInOutStockOrderDetail-add"
+                icon="search"
+                onClick={onAdvancedQuery}
+                type="primary"
+              >
+                楂樼骇鏌ヨ
+              </IconButton>
+            </ElFormItem>
+          </div>
+
+          <RenderBaseTable
+            url="/api/v1/HIAWms/wmsInOutStockOrderDetail/page"
+            dataSource={dataSource}
+            isChecked={true}
+            isDrag={true}
+          />
+        </div>
+      )
+    }
+  },
+})
diff --git a/HIAWms/hiawms_web/src/widgets/WmsInOutStockOrderDetail/Views/WmsInOutStockOrderDetail.module.scss b/HIAWms/hiawms_web/src/widgets/WmsInOutStockOrderDetail/Views/WmsInOutStockOrderDetail.module.scss
new file mode 100644
index 0000000..3464bec
--- /dev/null
+++ b/HIAWms/hiawms_web/src/widgets/WmsInOutStockOrderDetail/Views/WmsInOutStockOrderDetail.module.scss
@@ -0,0 +1,7 @@
+.WmsInOutStockOrderDetail { 
+  background-color: #fff; 
+  border-radius: 5px 5px 0 0; 
+  width: 100%; 
+  height: 100%; 
+  border: 1px solid #dbdbdb; 
+} 
diff --git a/HIAWms/hiawms_web/src/widgets/WmsInOutStockOrderDetail/Views/WmsInOutStockOrderDetail.tsx b/HIAWms/hiawms_web/src/widgets/WmsInOutStockOrderDetail/Views/WmsInOutStockOrderDetail.tsx
new file mode 100644
index 0000000..7695430
--- /dev/null
+++ b/HIAWms/hiawms_web/src/widgets/WmsInOutStockOrderDetail/Views/WmsInOutStockOrderDetail.tsx
@@ -0,0 +1,80 @@
+import { 
+  Component, 
+  DefineComponent, 
+  defineComponent, 
+  markRaw, 
+  ref, 
+  SetupContext, 
+  onMounted, 
+} from 'vue' 
+import styles from './WmsInOutStockOrderDetail.module.scss' 
+import Tab from '@/components/Tab/Tab' 
+import { useProvideModels } from '@/libs/Provider/app' 
+import { usePermission } from '@/libs/Permission/Permission' 
+import { permissionCodes } from '../enum' 
+import { ModuleType, TabItem } from '../type/Type' 
+import { getEntityNames } from '@/hooks/hook' 
+import TabPane from '@/components/Tab/TabPane' 
+ 
+const Models: ModuleType = import.meta.glob('./config/*.json', { 
+  eager: true, 
+}) 
+ 
+const entityNames = getEntityNames(Models) 
+ 
+const nameToLabelMap = [{ name: 'WmsInOutStockOrderDetail', label: '鍑哄叆搴撳崟鎹鎯�' }] 
+ 
+export default defineComponent({ 
+  name: 'WmsInOutStockOrderDetail', 
+ 
+  setup(props, ctx: SetupContext) { 
+    useProvideModels() 
+    usePermission(props, permissionCodes) 
+ 
+    const rf = ref<{ 
+      [key: string]: any 
+    }>({}) 
+ 
+    const tabData = ref<TabItem[]>([]) 
+ 
+    const onTabChange = (v: string) => { 
+      rf.value?.[v]?.reloadList() 
+    } 
+ 
+    const initTableData = async () => { 
+      for (const i in entityNames) { 
+        const name = entityNames[i] 
+        const module = await import(`./Pages/${name}/${name}.tsx`) 
+        const WmsInOutStockOrderDetail = markRaw(module.default) 
+        const foundLabel = 
+          nameToLabelMap.find((item) => item.name === name)?.label || name 
+        tabData.value.push({ 
+          label: foundLabel, 
+          name, 
+          component: WmsInOutStockOrderDetail, 
+        }) 
+      } 
+    } 
+ 
+    initTableData() 
+ 
+    return () => { 
+      return ( 
+        <div class={styles.WmsInOutStockOrderDetail}> 
+          <Tab data={tabData.value} type="list" onTab={onTabChange}> 
+            {tabData.value.map((widgetInfo) => { 
+              const Widget: any = widgetInfo.component 
+              return ( 
+                <TabPane label={widgetInfo.label} name={widgetInfo.name}> 
+                  <Widget 
+                    ref={(r: any) => (rf.value['WmsInOutStockOrderDetail'] = r)} 
+                  ></Widget> 
+                </TabPane> 
+              ) 
+            })} 
+          </Tab> 
+        </div> 
+      ) 
+    } 
+  }, 
+}) 
diff --git a/HIAWms/hiawms_web/src/widgets/WmsInOutStockOrderDetail/Views/config/WmsInOutStockOrderDetail.json b/HIAWms/hiawms_web/src/widgets/WmsInOutStockOrderDetail/Views/config/WmsInOutStockOrderDetail.json
new file mode 100644
index 0000000..81b0735
--- /dev/null
+++ b/HIAWms/hiawms_web/src/widgets/WmsInOutStockOrderDetail/Views/config/WmsInOutStockOrderDetail.json
@@ -0,0 +1,3 @@
+{ 
+  "name": "WmsInOutStockOrderDetail" 
+} 
diff --git a/HIAWms/hiawms_web/src/widgets/WmsInOutStockOrderDetail/enum.ts b/HIAWms/hiawms_web/src/widgets/WmsInOutStockOrderDetail/enum.ts
new file mode 100644
index 0000000..8983ab2
--- /dev/null
+++ b/HIAWms/hiawms_web/src/widgets/WmsInOutStockOrderDetail/enum.ts
@@ -0,0 +1,15 @@
+export interface TabType { 
+  label: string 
+  name: string 
+  columns?: any[] 
+  data?: any[] 
+  isFooter: boolean 
+  [key: string]: any 
+} 
+ 
+export const permissionCodes = { 
+  'wmsInOutStockOrderDetail-list': '鍒楄〃-鍒楄〃', 
+  'wmsInOutStockOrderDetail-add': '鍒楄〃-娣诲姞', 
+  'wmsInOutStockOrderDetail-import': '鍒楄〃-瀵煎叆', 
+  'wmsInOutStockOrderDetail-output': '鍒楄〃-杈撳嚭', 
+} 
diff --git a/HIAWms/hiawms_web/src/widgets/WmsInOutStockOrderDetail/index.ts b/HIAWms/hiawms_web/src/widgets/WmsInOutStockOrderDetail/index.ts
new file mode 100644
index 0000000..215bc5c
--- /dev/null
+++ b/HIAWms/hiawms_web/src/widgets/WmsInOutStockOrderDetail/index.ts
@@ -0,0 +1,14 @@
+import WmsInOutStockOrderDetail from './Views/WmsInOutStockOrderDetail' 
+import Setting from '@/components/Setting/Setting' 
+import { provider } from '@/provider/index' 
+import p from '../../assets/svg/p.svg' 
+ 
+export default { 
+  is: 'WmsInOutStockOrderDetail', 
+  name: '鍑哄叆搴撳崟鎹鎯�', 
+  category: 'run', 
+  icon: p, 
+  authorizationRequired: false, 
+  canvasView: provider(WmsInOutStockOrderDetail), 
+  settingsView: Setting, 
+} 
diff --git a/HIAWms/hiawms_web/src/widgets/WmsInOutStockOrderDetail/type/type.d.ts b/HIAWms/hiawms_web/src/widgets/WmsInOutStockOrderDetail/type/type.d.ts
new file mode 100644
index 0000000..002a2e7
--- /dev/null
+++ b/HIAWms/hiawms_web/src/widgets/WmsInOutStockOrderDetail/type/type.d.ts
@@ -0,0 +1,45 @@
+import { Component } from 'vue' 
+ 
+export interface DataItemType { 
+  id?: string 
+  name?: string 
+  code?: string 
+  description?: string 
+  label?: string 
+  value?: string | number 
+} 
+ 
+export interface WmsInOutStockOrderDetailBaseType { 
+  id?: string 
+  name?: string 
+  code?: string 
+  value?: number 
+  description?: string 
+  options?: Array<DataItemType> 
+  abilityValue?: number | string 
+  data?: DataItemType 
+  defaultValue?: string | number 
+  flow: string 
+} 
+ 
+export interface FlowDefinitionType { 
+  id?: string 
+  name?: string 
+  code?: string 
+  description?: string 
+} 
+ 
+export type ModuleType = Record< 
+  string, 
+  { 
+    default: Record<string, string> 
+    name: string 
+  } 
+> 
+ 
+export interface TabItem { 
+  name: string 
+  label: string 
+  component: Component 
+  hidden?: boolean 
+} 
diff --git a/HIAWms/hiawms_web/src/widgets/WmsInOutStockRecord/Controllers/WmsInOutStockRecordDrawer.tsx b/HIAWms/hiawms_web/src/widgets/WmsInOutStockRecord/Controllers/WmsInOutStockRecordDrawer.tsx
index c25a205..5f684e3 100644
--- a/HIAWms/hiawms_web/src/widgets/WmsInOutStockRecord/Controllers/WmsInOutStockRecordDrawer.tsx
+++ b/HIAWms/hiawms_web/src/widgets/WmsInOutStockRecord/Controllers/WmsInOutStockRecordDrawer.tsx
@@ -140,11 +140,11 @@
       placeholder: '璇疯緭鍏ョ洰鏍囧簱浣�',
     },
     {
-      label: '鏈哄瀷',
+      label: '鍨嬪彿',
       prop: 'materialModel',
       el: 'input',
       //disabled: disabled,
-      placeholder: '璇疯緭鍏ユ満鍨�',
+      placeholder: '璇疯緭鍏ュ瀷鍙�',
     },
     {
       label: '鎿嶄綔鏃堕棿',
diff --git a/HIAWms/hiawms_web/src/widgets/WmsInOutStockRecord/Controllers/WmsInOutStockRecordQueryDrawer.tsx b/HIAWms/hiawms_web/src/widgets/WmsInOutStockRecord/Controllers/WmsInOutStockRecordQueryDrawer.tsx
index 55bb4ef..a7c29a5 100644
--- a/HIAWms/hiawms_web/src/widgets/WmsInOutStockRecord/Controllers/WmsInOutStockRecordQueryDrawer.tsx
+++ b/HIAWms/hiawms_web/src/widgets/WmsInOutStockRecord/Controllers/WmsInOutStockRecordQueryDrawer.tsx
@@ -116,11 +116,11 @@
       placeholder: '璇疯緭鍏ュ鍣ㄧ紪鍙�',
     },
     {
-      label: '鏈哄瀷',
+      label: '鍨嬪彿',
       prop: 'materialModel',
       el: 'input',
       //disabled: disabled,
-      placeholder: '璇疯緭鍏ユ満鍨�',
+      placeholder: '璇疯緭鍏ュ瀷鍙�',
     },
     {
       label: '鎿嶄綔鏃堕棿',
diff --git a/HIAWms/hiawms_web/src/widgets/WmsInOutStockRecord/Views/Pages/WmsInOutStockRecord/Config.ts b/HIAWms/hiawms_web/src/widgets/WmsInOutStockRecord/Views/Pages/WmsInOutStockRecord/Config.ts
index 98c79fe..3e45265 100644
--- a/HIAWms/hiawms_web/src/widgets/WmsInOutStockRecord/Views/Pages/WmsInOutStockRecord/Config.ts
+++ b/HIAWms/hiawms_web/src/widgets/WmsInOutStockRecord/Views/Pages/WmsInOutStockRecord/Config.ts
@@ -42,7 +42,7 @@
   },
   {
     field: 'materialModel',
-    title: '鏈哄瀷',
+    title: '鍨嬪彿',
   },
   {
     field: 'remark',
diff --git a/HIAWms/hiawms_web/src/widgets/WmsMaterialContainer/Views/Pages/WmsMaterialContainer/WmsMaterialContainer.tsx b/HIAWms/hiawms_web/src/widgets/WmsMaterialContainer/Views/Pages/WmsMaterialContainer/WmsMaterialContainer.tsx
index e75418d..46b3313 100644
--- a/HIAWms/hiawms_web/src/widgets/WmsMaterialContainer/Views/Pages/WmsMaterialContainer/WmsMaterialContainer.tsx
+++ b/HIAWms/hiawms_web/src/widgets/WmsMaterialContainer/Views/Pages/WmsMaterialContainer/WmsMaterialContainer.tsx
@@ -236,7 +236,7 @@
               <el-divider direction="vertical" />
 
               <el-divider direction="vertical" />
-              <el-upload
+              {/* <el-upload
                 v-permission="wmsMaterialContainer-import"
                 name="file"
                 accept=".xlsx,.xls,.csv"
@@ -256,7 +256,7 @@
                 onClick={handleExport}
               >
                 瀵煎嚭
-              </IconButton>
+              </IconButton> */}
             </div>
             <ElFormItem style={{ marginTop: '15px' }}>
               <ElFormItem label="鍏抽敭瀛�">
diff --git a/HIAWms/hiawms_web/src/widgets/WmsMaterialContainer/Views/WmsMaterialContainer.tsx b/HIAWms/hiawms_web/src/widgets/WmsMaterialContainer/Views/WmsMaterialContainer.tsx
index 661855a..a8fbaff 100644
--- a/HIAWms/hiawms_web/src/widgets/WmsMaterialContainer/Views/WmsMaterialContainer.tsx
+++ b/HIAWms/hiawms_web/src/widgets/WmsMaterialContainer/Views/WmsMaterialContainer.tsx
@@ -1,80 +1,80 @@
-import { 
-  Component, 
-  DefineComponent, 
-  defineComponent, 
-  markRaw, 
-  ref, 
-  SetupContext, 
-  onMounted, 
-} from 'vue' 
-import styles from './WmsMaterialContainer.module.scss' 
-import Tab from '@/components/Tab/Tab' 
-import { useProvideModels } from '@/libs/Provider/app' 
-import { usePermission } from '@/libs/Permission/Permission' 
-import { permissionCodes } from '../enum' 
-import { ModuleType, TabItem } from '../type/Type' 
-import { getEntityNames } from '@/hooks/hook' 
-import TabPane from '@/components/Tab/TabPane' 
- 
-const Models: ModuleType = import.meta.glob('./config/*.json', { 
-  eager: true, 
-}) 
- 
-const entityNames = getEntityNames(Models) 
- 
-const nameToLabelMap = [{ name: 'WmsMaterialContainer', label: '鐗╂枡瀹瑰櫒鍏崇郴' }] 
- 
-export default defineComponent({ 
-  name: 'WmsMaterialContainer', 
- 
-  setup(props, ctx: SetupContext) { 
-    useProvideModels() 
-    usePermission(props, permissionCodes) 
- 
-    const rf = ref<{ 
-      [key: string]: any 
-    }>({}) 
- 
-    const tabData = ref<TabItem[]>([]) 
- 
-    const onTabChange = (v: string) => { 
-      rf.value?.[v]?.reloadList() 
-    } 
- 
-    const initTableData = async () => { 
-      for (const i in entityNames) { 
-        const name = entityNames[i] 
-        const module = await import(`./Pages/${name}/${name}.tsx`) 
-        const WmsMaterialContainer = markRaw(module.default) 
-        const foundLabel = 
-          nameToLabelMap.find((item) => item.name === name)?.label || name 
-        tabData.value.push({ 
-          label: foundLabel, 
-          name, 
-          component: WmsMaterialContainer, 
-        }) 
-      } 
-    } 
- 
-    initTableData() 
- 
-    return () => { 
-      return ( 
-        <div class={styles.WmsMaterialContainer}> 
-          <Tab data={tabData.value} type="list" onTab={onTabChange}> 
-            {tabData.value.map((widgetInfo) => { 
-              const Widget: any = widgetInfo.component 
-              return ( 
-                <TabPane label={widgetInfo.label} name={widgetInfo.name}> 
-                  <Widget 
-                    ref={(r: any) => (rf.value['WmsMaterialContainer'] = r)} 
-                  ></Widget> 
-                </TabPane> 
-              ) 
-            })} 
-          </Tab> 
-        </div> 
-      ) 
-    } 
-  }, 
-}) 
+import {
+  Component,
+  DefineComponent,
+  defineComponent,
+  markRaw,
+  ref,
+  SetupContext,
+  onMounted,
+} from 'vue'
+import styles from './WmsMaterialContainer.module.scss'
+import Tab from '@/components/Tab/Tab'
+import { useProvideModels } from '@/libs/Provider/app'
+import { usePermission } from '@/libs/Permission/Permission'
+import { permissionCodes } from '../enum'
+import { ModuleType, TabItem } from '../type/Type'
+import { getEntityNames } from '@/hooks/hook'
+import TabPane from '@/components/Tab/TabPane'
+
+const Models: ModuleType = import.meta.glob('./config/*.json', {
+  eager: true,
+})
+
+const entityNames = getEntityNames(Models)
+
+const nameToLabelMap = [{ name: 'WmsMaterialContainer', label: '鐗╂枡瀹瑰櫒鍏崇郴' }]
+
+export default defineComponent({
+  name: 'WmsMaterialContainer',
+
+  setup(props, ctx: SetupContext) {
+    useProvideModels()
+    usePermission(props, permissionCodes)
+
+    const rf = ref<{
+      [key: string]: any
+    }>({})
+
+    const tabData = ref<TabItem[]>([])
+
+    const onTabChange = (v: string) => {
+      rf.value?.[v]?.reloadList()
+    }
+
+    const initTableData = async () => {
+      for (const i in entityNames) {
+        const name = entityNames[i]
+        const module = await import(`./Pages/${name}/${name}.tsx`)
+        const WmsMaterialContainer = markRaw(module.default)
+        const foundLabel =
+          nameToLabelMap.find((item) => item.name === name)?.label || name
+        tabData.value.push({
+          label: foundLabel,
+          name,
+          component: WmsMaterialContainer,
+        })
+      }
+    }
+
+    initTableData()
+
+    return () => {
+      return (
+        <div class={styles.WmsMaterialContainer}>
+          <Tab data={tabData.value} type="list" onTab={onTabChange}>
+            {tabData.value.map((widgetInfo) => {
+              const Widget: any = widgetInfo.component
+              return (
+                <TabPane label={widgetInfo.label} name={widgetInfo.name}>
+                  <Widget
+                    ref={(r: any) => (rf.value['WmsMaterialContainer'] = r)}
+                  ></Widget>
+                </TabPane>
+              )
+            })}
+          </Tab>
+        </div>
+      )
+    }
+  },
+})
diff --git a/HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsInOutStockOrder/GetWmsInOutStockOrderInput.cs b/HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsInOutStockOrder/GetWmsInOutStockOrderInput.cs
new file mode 100644
index 0000000..7b56035
--- /dev/null
+++ b/HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsInOutStockOrder/GetWmsInOutStockOrderInput.cs
@@ -0,0 +1,279 @@
+using CmsQueryExtensions.Extension; 
+using Volo.Abp.Application.Dtos; 
+ 
+namespace CMS.Plugin.HIAWms.Application.Contracts.Dtos.WmsInOutStockOrder; 
+ 
+/// <summary> 
+/// 鍑哄叆搴撳崟鎹煡璇㈠弬鏁� 
+/// </summary> 
+public class GetWmsInOutStockOrderInput : ExtensiblePagedAndSortedResultRequestDto 
+{ 
+ 
+    #region 鍏抽敭瀛楁煡璇� 
+ 
+    /// <summary> 
+    /// 鍏抽敭瀛楁ā绯婃煡璇紙娉ㄦ剰鏄皬鍐欙紒锛� 
+    /// </summary> 
+    public string searchVal { get; set; } 
+ 
+    /// <summary> 
+    /// 閫氱敤鏌ヨ閰嶇疆 (1:妯$硦鏌ヨ , 2:绮惧噯鏌ヨ)锛堟敞鎰忔槸灏忓啓锛侊級 
+    /// </summary> 
+    public SearchFilterModeEnum searchVal_FilterMode { get; set; } = SearchFilterModeEnum.妯$硦鏌ヨ; 
+ 
+    /// <summary> 
+    /// 瀛愭悳绱㈢粍浠朵紶閫掔殑閫氱敤鏌ヨ閰嶇疆鐨勫睘鎬у悕锛堟敞鎰忔槸灏忓啓锛侊級 
+    /// </summary> 
+    [NoAutoQuery] 
+    public string str_searchFormInputAttrs { get; set; } 
+    /// <summary> 
+    /// 瀛愭悳绱㈢粍浠朵紶閫掔殑閫氱敤鏌ヨ閰嶇疆鐨勫睘鎬у悕锛堟敞鎰忔槸灏忓啓锛侊級 
+    /// </summary> 
+    public List<string> searchFormInputAttrs 
+    { 
+        get 
+        { 
+            if (!string.IsNullOrEmpty(str_searchFormInputAttrs)) 
+            { 
+                return str_searchFormInputAttrs.Split(',').ToList(); 
+            } 
+            return new List<string>(); 
+        } 
+    } 
+ 
+    #endregion 
+ 
+            /// <summary>
+        /// 鍗曟嵁缂栧彿
+        /// </summary>
+        public string OrderNo { get; set; }
+
+        /// <summary>
+        /// 鍗曟嵁缂栧彿-鏌ヨ鍏崇郴杩愮畻绗� 
+        /// </summary>
+        public SearchFilterModeEnum OrderNo_FilterMode { get; set; }= SearchFilterModeEnum.妯$硦鏌ヨ;
+
+        /// <summary>
+        /// 鍗曟嵁鐘舵��
+        /// </summary>
+        public int?  OrderStatus { get; set; }
+
+        /// <summary>
+        /// 鍗曟嵁鐘舵��-鏌ヨ鍏崇郴杩愮畻绗� 
+        /// </summary>
+        public SearchFilterModeEnum OrderStatus_FilterMode { get; set; }= SearchFilterModeEnum.绮惧噯鏌ヨ;
+
+        /// <summary>
+        /// 鐗╂枡鍚嶇О
+        /// </summary>
+        public string MaterialName { get; set; }
+
+        /// <summary>
+        /// 鐗╂枡鍚嶇О-鏌ヨ鍏崇郴杩愮畻绗� 
+        /// </summary>
+        public SearchFilterModeEnum MaterialName_FilterMode { get; set; }= SearchFilterModeEnum.妯$硦鏌ヨ;
+
+        /// <summary>
+        /// 鐗╂枡浠跺彿
+        /// </summary>
+        public string MaterialNo { get; set; }
+
+        /// <summary>
+        /// 鐗╂枡浠跺彿-鏌ヨ鍏崇郴杩愮畻绗� 
+        /// </summary>
+        public SearchFilterModeEnum MaterialNo_FilterMode { get; set; }= SearchFilterModeEnum.妯$硦鏌ヨ;
+
+        /// <summary>
+        /// 鍨嬪彿
+        /// </summary>
+        public string MaterialModel { get; set; }
+
+        /// <summary>
+        /// 鍨嬪彿-鏌ヨ鍏崇郴杩愮畻绗� 
+        /// </summary>
+        public SearchFilterModeEnum MaterialModel_FilterMode { get; set; }= SearchFilterModeEnum.妯$硦鏌ヨ;
+
+        /// <summary>
+        /// 鎵规鍙�
+        /// </summary>
+        public string MaterialBatch { get; set; }
+
+        /// <summary>
+        /// 鎵规鍙�-鏌ヨ鍏崇郴杩愮畻绗� 
+        /// </summary>
+        public SearchFilterModeEnum MaterialBatch_FilterMode { get; set; }= SearchFilterModeEnum.妯$硦鏌ヨ;
+
+        /// <summary>
+        /// 鍗曟嵁绫诲瀷
+        /// </summary>
+        public int?  OrderType { get; set; }
+
+        /// <summary>
+        /// 鍗曟嵁绫诲瀷-鏌ヨ鍏崇郴杩愮畻绗� 
+        /// </summary>
+        public SearchFilterModeEnum OrderType_FilterMode { get; set; }= SearchFilterModeEnum.绮惧噯鏌ヨ;
+
+        /// <summary>
+        /// 鎿嶄綔绫诲瀷锛堟灇涓惧�硷級
+        /// </summary>
+        public int?  StockType { get; set; }
+
+        /// <summary>
+        /// 鎿嶄綔绫诲瀷锛堟灇涓惧�硷級-鏌ヨ鍏崇郴杩愮畻绗� 
+        /// </summary>
+        public SearchFilterModeEnum StockType_FilterMode { get; set; }= SearchFilterModeEnum.绮惧噯鏌ヨ;
+
+        /// <summary>
+        /// 鍗曟嵁鏁伴噺
+        /// </summary>
+        public int?  MaterialNumber { get; set; }
+
+        /// <summary>
+        /// 鍗曟嵁鏁伴噺-鏌ヨ鍏崇郴杩愮畻绗� 
+        /// </summary>
+        public SearchFilterModeEnum MaterialNumber_FilterMode { get; set; }= SearchFilterModeEnum.绮惧噯鏌ヨ;
+
+        /// <summary>
+        /// 涓嬪彂鏁伴噺
+        /// </summary>
+        public int?  DistributeNumber { get; set; }
+
+        /// <summary>
+        /// 涓嬪彂鏁伴噺-鏌ヨ鍏崇郴杩愮畻绗� 
+        /// </summary>
+        public SearchFilterModeEnum DistributeNumber_FilterMode { get; set; }= SearchFilterModeEnum.绮惧噯鏌ヨ;
+
+        /// <summary>
+        /// 瀹屾垚鏁伴噺
+        /// </summary>
+        public int?  CompleteNumber { get; set; }
+
+        /// <summary>
+        /// 瀹屾垚鏁伴噺-鏌ヨ鍏崇郴杩愮畻绗� 
+        /// </summary>
+        public SearchFilterModeEnum CompleteNumber_FilterMode { get; set; }= SearchFilterModeEnum.绮惧噯鏌ヨ;
+
+        /// <summary>
+        /// 浼樺厛绾�
+        /// </summary>
+        public int?  Priority { get; set; }
+
+        /// <summary>
+        /// 浼樺厛绾�-鏌ヨ鍏崇郴杩愮畻绗� 
+        /// </summary>
+        public SearchFilterModeEnum Priority_FilterMode { get; set; }= SearchFilterModeEnum.绮惧噯鏌ヨ;
+
+        /// <summary>
+        /// 鍏宠仈璁″垝缂栧彿
+        /// </summary>
+        public string PlanNo { get; set; }
+
+        /// <summary>
+        /// 鍏宠仈璁″垝缂栧彿-鏌ヨ鍏崇郴杩愮畻绗� 
+        /// </summary>
+        public SearchFilterModeEnum PlanNo_FilterMode { get; set; }= SearchFilterModeEnum.妯$硦鏌ヨ;
+
+        /// <summary>
+        /// 鎿嶄綔鏃堕棿
+        /// </summary>
+        //琛ㄧず鏄� 楂樼骇鏌ヨ鑼冨洿鏌ヨ鐗规��
+        [HighSearchRangeAttribute]
+        public List<string> OperateTime { get; set; }
+
+
+        /// <summary>
+        /// 澶囨敞
+        /// </summary>
+        public string Remark { get; set; }
+
+        /// <summary>
+        /// 澶囨敞-鏌ヨ鍏崇郴杩愮畻绗� 
+        /// </summary>
+        public SearchFilterModeEnum Remark_FilterMode { get; set; }= SearchFilterModeEnum.妯$硦鏌ヨ;
+
+        /// <summary>
+        /// 鎺掑簭
+        /// </summary>
+        public int?  Sort { get; set; }
+
+        /// <summary>
+        /// 鎺掑簭-鏌ヨ鍏崇郴杩愮畻绗� 
+        /// </summary>
+        public SearchFilterModeEnum Sort_FilterMode { get; set; }= SearchFilterModeEnum.绮惧噯鏌ヨ;
+
+        /// <summary>
+        /// 鏄惁绂佺敤
+        /// </summary>
+        public bool?  IsDisabled { get; set; }
+
+        /// <summary>
+        /// 鏄惁绂佺敤-鏌ヨ鍏崇郴杩愮畻绗� 
+        /// </summary>
+        public SearchFilterModeEnum IsDisabled_FilterMode { get; set; }= SearchFilterModeEnum.绮惧噯鏌ヨ;
+
+        /// <summary>
+        /// 鍒涘缓鏃堕棿
+        /// </summary>
+        //琛ㄧず鏄� 楂樼骇鏌ヨ鑼冨洿鏌ヨ鐗规��
+        [HighSearchRangeAttribute]
+        public List<string> CreationTime { get; set; }
+
+
+        /// <summary>
+        /// 
+        /// </summary>
+        public string CreatorId { get; set; }
+
+        /// <summary>
+        /// -鏌ヨ鍏崇郴杩愮畻绗� 
+        /// </summary>
+        public SearchFilterModeEnum CreatorId_FilterMode { get; set; }= SearchFilterModeEnum.妯$硦鏌ヨ;
+
+        /// <summary>
+        /// 
+        /// </summary>
+        //琛ㄧず鏄� 楂樼骇鏌ヨ鑼冨洿鏌ヨ鐗规��
+        [HighSearchRangeAttribute]
+        public List<string> LastModificationTime { get; set; }
+
+
+        /// <summary>
+        /// 
+        /// </summary>
+        public string LastModifierId { get; set; }
+
+        /// <summary>
+        /// -鏌ヨ鍏崇郴杩愮畻绗� 
+        /// </summary>
+        public SearchFilterModeEnum LastModifierId_FilterMode { get; set; }= SearchFilterModeEnum.妯$硦鏌ヨ;
+
+        /// <summary>
+        /// 
+        /// </summary>
+        public bool?  IsDeleted { get; set; }
+
+        /// <summary>
+        /// -鏌ヨ鍏崇郴杩愮畻绗� 
+        /// </summary>
+        public SearchFilterModeEnum IsDeleted_FilterMode { get; set; }= SearchFilterModeEnum.绮惧噯鏌ヨ;
+
+        /// <summary>
+        /// 
+        /// </summary>
+        public string DeleterId { get; set; }
+
+        /// <summary>
+        /// -鏌ヨ鍏崇郴杩愮畻绗� 
+        /// </summary>
+        public SearchFilterModeEnum DeleterId_FilterMode { get; set; }= SearchFilterModeEnum.妯$硦鏌ヨ;
+
+        /// <summary>
+        /// 
+        /// </summary>
+        //琛ㄧず鏄� 楂樼骇鏌ヨ鑼冨洿鏌ヨ鐗规��
+        [HighSearchRangeAttribute]
+        public List<string> DeletionTime { get; set; }
+
+
+ 
+} 
diff --git a/HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsInOutStockOrder/WmsInOutStockOrderCreateDto.cs b/HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsInOutStockOrder/WmsInOutStockOrderCreateDto.cs
new file mode 100644
index 0000000..067d083
--- /dev/null
+++ b/HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsInOutStockOrder/WmsInOutStockOrderCreateDto.cs
@@ -0,0 +1,17 @@
+namespace CMS.Plugin.HIAWms.Application.Contracts.Dtos.WmsInOutStockOrder; 
+ 
+/// <summary> 
+/// 鍑哄叆搴撳崟鎹垱寤哄弬鏁板璞� 
+/// </summary> 
+public class WmsInOutStockOrderCreateDto : WmsInOutStockOrderCreateOrUpdateDtoBase 
+{ 
+    /// <summary> 
+    /// 鎺掑簭 
+    /// </summary> 
+    public virtual int? Sort { get; set; } 
+ 
+    /// <summary> 
+    /// 鏄惁绂佺敤 
+    /// </summary> 
+    public bool? IsDisabled { get; set; } = false; 
+} 
diff --git a/HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsInOutStockOrder/WmsInOutStockOrderCreateOrUpdateDtoBase.cs b/HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsInOutStockOrder/WmsInOutStockOrderCreateOrUpdateDtoBase.cs
new file mode 100644
index 0000000..de0c11c
--- /dev/null
+++ b/HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsInOutStockOrder/WmsInOutStockOrderCreateOrUpdateDtoBase.cs
@@ -0,0 +1,115 @@
+using CMS.Plugin.HIAWms.Domain.Shared.Enums; 
+using System; 
+using Volo.Abp.Application.Dtos; 
+ 
+namespace CMS.Plugin.HIAWms.Application.Contracts.Dtos.WmsInOutStockOrder; 
+ 
+/// <summary> 
+/// 鍑哄叆搴撳崟鎹垱寤烘垨鏇存柊鍩虹被 
+/// </summary> 
+public abstract class WmsInOutStockOrderCreateOrUpdateDtoBase : ExtensibleEntityDto 
+{ 
+            /// <summary>
+        /// 鍗曟嵁缂栧彿
+        /// </summary>
+        public string OrderNo { get; set; }
+
+        /// <summary>
+        /// 鍗曟嵁鐘舵��
+        /// </summary>
+        public OrderStatusEnum OrderStatus { get; set; }
+
+        /// <summary>
+        /// 鐗╂枡鍚嶇О
+        /// </summary>
+        public string? MaterialName { get; set; }
+
+        /// <summary>
+        /// 鐗╂枡浠跺彿
+        /// </summary>
+        public string MaterialNo { get; set; }
+
+        /// <summary>
+        /// 鍨嬪彿
+        /// </summary>
+        public string? MaterialModel { get; set; }
+
+        /// <summary>
+        /// 鎵规鍙�
+        /// </summary>
+        public string MaterialBatch { get; set; }
+
+        /// <summary>
+        /// 鍗曟嵁绫诲瀷
+        /// </summary>
+        public OrderTypeEnum OrderType { get; set; }
+
+        /// <summary>
+        /// 鎿嶄綔绫诲瀷锛堟灇涓惧�硷級
+        /// </summary>
+        public StockTypeEnum StockType { get; set; }
+
+        /// <summary>
+        /// 鍗曟嵁鏁伴噺
+        /// </summary>
+        public int MaterialNumber { get; set; }
+
+        /// <summary>
+        /// 涓嬪彂鏁伴噺
+        /// </summary>
+        public int DistributeNumber { get; set; }
+
+        /// <summary>
+        /// 瀹屾垚鏁伴噺
+        /// </summary>
+        public int CompleteNumber { get; set; }
+
+        /// <summary>
+        /// 浼樺厛绾�
+        /// </summary>
+        public int Priority { get; set; }
+
+        /// <summary>
+        /// 鍏宠仈璁″垝缂栧彿
+        /// </summary>
+        public string? PlanNo { get; set; }
+
+        /// <summary>
+        /// 鎿嶄綔鏃堕棿
+        /// </summary>
+        public DateTime? OperateTime { get; set; }
+
+        /// <summary>
+        /// 澶囨敞
+        /// </summary>
+        public string? Remark { get; set; }
+
+        /// <summary>
+        /// 鎺掑簭
+        /// </summary>
+        public int Sort { get; set; }
+
+        /// <summary>
+        /// 鏄惁绂佺敤
+        /// </summary>
+        public bool? IsDisabled { get; set; }
+
+        /// <summary>
+        /// 
+        /// </summary>
+        public string? CreatorId { get; set; }
+
+        /// <summary>
+        /// 
+        /// </summary>
+        public string? LastModifierId { get; set; }
+
+ 
+ 
+    /// <summary> 
+    /// Initializes a new instance of the <see cref="WmsInOutStockOrderCreateOrUpdateDtoBase"/> class. 
+    /// </summary> 
+    public WmsInOutStockOrderCreateOrUpdateDtoBase() : base(false) 
+    { 
+    } 
+} 
diff --git a/HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsInOutStockOrder/WmsInOutStockOrderDto.cs b/HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsInOutStockOrder/WmsInOutStockOrderDto.cs
new file mode 100644
index 0000000..01e07b4
--- /dev/null
+++ b/HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsInOutStockOrder/WmsInOutStockOrderDto.cs
@@ -0,0 +1,191 @@
+using CMS.Plugin.HIAWms.Domain.Shared.Enums; 
+using CmsQueryExtensions; 
+using Volo.Abp.Application.Dtos; 
+using Volo.Abp.Data; 
+using Volo.Abp.Domain.Entities; 
+ 
+ 
+namespace CMS.Plugin.HIAWms.Application.Contracts.Dtos.WmsInOutStockOrder; 
+ 
+/// <summary> 
+/// 鍑哄叆搴撳崟鎹暟鎹弬鏁板璞� 
+/// </summary> 
+public  class WmsInOutStockOrderDto:  ExtensibleEntityDto<Guid>, IHasConcurrencyStamp 
+{ 
+            /// <summary>
+        /// 鍗曟嵁缂栧彿
+        /// </summary>
+        public string OrderNo { get; set; }
+
+        /// <summary>
+        /// 鍗曟嵁鐘舵��
+        /// </summary>
+        public OrderStatusEnum OrderStatus { get; set; }
+
+        /// <summary>
+        /// 鍗曟嵁鐘舵��
+        /// </summary>
+        public string OrderStatusDesc
+        { 
+            get 
+            { 
+                return GetEnumDescriptionUtil.GetEnumDescription(OrderStatus); 
+            } 
+        } 
+        /// <summary>
+        /// 鐗╂枡鍚嶇О
+        /// </summary>
+        public string? MaterialName { get; set; }
+
+        /// <summary>
+        /// 鐗╂枡浠跺彿
+        /// </summary>
+        public string MaterialNo { get; set; }
+
+        /// <summary>
+        /// 鍨嬪彿
+        /// </summary>
+        public string? MaterialModel { get; set; }
+
+        /// <summary>
+        /// 鎵规鍙�
+        /// </summary>
+        public string MaterialBatch { get; set; }
+
+        /// <summary>
+        /// 鍗曟嵁绫诲瀷
+        /// </summary>
+        public OrderTypeEnum OrderType { get; set; }
+
+        /// <summary>
+        /// 鍗曟嵁绫诲瀷
+        /// </summary>
+        public string OrderTypeDesc
+        { 
+            get 
+            { 
+                return GetEnumDescriptionUtil.GetEnumDescription(OrderType); 
+            } 
+        } 
+        /// <summary>
+        /// 鎿嶄綔绫诲瀷锛堟灇涓惧�硷級
+        /// </summary>
+        public StockTypeEnum StockType { get; set; }
+
+        /// <summary>
+        /// 鎿嶄綔绫诲瀷锛堟灇涓惧�硷級
+        /// </summary>
+        public string StockTypeDesc
+        { 
+            get 
+            { 
+                return GetEnumDescriptionUtil.GetEnumDescription(StockType); 
+            } 
+        } 
+        /// <summary>
+        /// 鍗曟嵁鏁伴噺
+        /// </summary>
+        public int MaterialNumber { get; set; }
+
+        /// <summary>
+        /// 涓嬪彂鏁伴噺
+        /// </summary>
+        public int DistributeNumber { get; set; }
+
+        /// <summary>
+        /// 瀹屾垚鏁伴噺
+        /// </summary>
+        public int CompleteNumber { get; set; }
+
+        /// <summary>
+        /// 浼樺厛绾�
+        /// </summary>
+        public int Priority { get; set; }
+
+        /// <summary>
+        /// 鍏宠仈璁″垝缂栧彿
+        /// </summary>
+        public string? PlanNo { get; set; }
+
+        /// <summary>
+        /// 鎿嶄綔鏃堕棿
+        /// </summary>
+        public DateTime? OperateTime { get; set; }
+
+        /// <summary>
+        /// 澶囨敞
+        /// </summary>
+        public string? Remark { get; set; }
+
+        /// <summary>
+        /// 鎺掑簭
+        /// </summary>
+        public int Sort { get; set; }
+
+        /// <summary>
+        /// 鏄惁绂佺敤
+        /// </summary>
+        public bool? IsDisabled { get; set; }
+
+        /// <summary>
+        /// 
+        /// </summary>
+        public ExtraPropertyDictionary? ExtraProperties { get; set; }
+
+        /// <summary>
+        /// 
+        /// </summary>
+        public string? ConcurrencyStamp { get; set; }
+
+        /// <summary>
+        /// 鍒涘缓鏃堕棿
+        /// </summary>
+        public DateTime CreationTime { get; set; }
+
+        /// <summary>
+        /// 
+        /// </summary>
+        public string? CreatorId { get; set; }
+
+        /// <summary>
+        /// 
+        /// </summary>
+        public DateTime? LastModificationTime { get; set; }
+
+        /// <summary>
+        /// 
+        /// </summary>
+        public string? LastModifierId { get; set; }
+
+        /// <summary>
+        /// 
+        /// </summary>
+        public bool IsDeleted { get; set; }
+
+        /// <summary>
+        /// 
+        /// </summary>
+        public string? DeleterId { get; set; }
+
+        /// <summary>
+        /// 
+        /// </summary>
+        public DateTime? DeletionTime { get; set; }
+
+ 
+ 
+    /// <summary> 
+    /// Gets the export data. 
+    /// </summary> 
+    /// <returns></returns> 
+    public Dictionary<string, object> GetExportData() 
+    { 
+        var exportData = new Dictionary<string, object>(); 
+        foreach (var property in this.GetType().GetProperties()) 
+        { 
+            exportData.Add(property.Name, property.GetValue(this)); 
+        } 
+ 
+        return exportData; 
+    } 
+} 
diff --git a/HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsInOutStockOrder/WmsInOutStockOrderExportModel.cs b/HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsInOutStockOrder/WmsInOutStockOrderExportModel.cs
new file mode 100644
index 0000000..f4dcc3d
--- /dev/null
+++ b/HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsInOutStockOrder/WmsInOutStockOrderExportModel.cs
@@ -0,0 +1,127 @@
+using MiniExcelLibs.Attributes; 
+using System.ComponentModel.DataAnnotations; 
+using System; 
+using System.ComponentModel; 
+using CMS.Plugin.HIAWms.Domain.Shared.Enums; 
+namespace CMS.Plugin.HIAWms.Application.Contracts.Dtos.WmsInOutStockOrder; 
+ 
+/// <summary> 
+/// 鍑哄叆搴撳崟鎹鍑烘ā鍨� 
+/// </summary> 
+public  class WmsInOutStockOrderExportModel 
+{ 
+            /// <summary>
+        /// 鍗曟嵁缂栧彿
+        /// </summary>
+        [ExcelColumn(Name = "鍗曟嵁缂栧彿", Width = 25)]
+        public string OrderNo { get; set; }
+
+        /// <summary>
+        /// 鍗曟嵁鐘舵��
+        /// </summary>
+        [ExcelColumn(Name = "鍗曟嵁鐘舵��", Width = 25)]
+        public OrderStatusEnum OrderStatus { get; set; }
+
+        /// <summary>
+        /// 鐗╂枡鍚嶇О
+        /// </summary>
+        [ExcelColumn(Name = "鐗╂枡鍚嶇О", Width = 25)]
+        public string MaterialName { get; set; }
+
+        /// <summary>
+        /// 鐗╂枡浠跺彿
+        /// </summary>
+        [ExcelColumn(Name = "鐗╂枡浠跺彿", Width = 25)]
+        public string MaterialNo { get; set; }
+
+        /// <summary>
+        /// 鍨嬪彿
+        /// </summary>
+        [ExcelColumn(Name = "鍨嬪彿", Width = 25)]
+        public string MaterialModel { get; set; }
+
+        /// <summary>
+        /// 鎵规鍙�
+        /// </summary>
+        [ExcelColumn(Name = "鎵规鍙�", Width = 25)]
+        public string MaterialBatch { get; set; }
+
+        /// <summary>
+        /// 鍗曟嵁绫诲瀷
+        /// </summary>
+        [ExcelColumn(Name = "鍗曟嵁绫诲瀷", Width = 25)]
+        public OrderTypeEnum OrderType { get; set; }
+
+        /// <summary>
+        /// 鎿嶄綔绫诲瀷锛堟灇涓惧�硷級
+        /// </summary>
+        [ExcelColumn(Name = "鎿嶄綔绫诲瀷锛堟灇涓惧�硷級", Width = 25)]
+        public StockTypeEnum StockType { get; set; }
+
+        /// <summary>
+        /// 鍗曟嵁鏁伴噺
+        /// </summary>
+        [ExcelColumn(Name = "鍗曟嵁鏁伴噺", Width = 25)]
+        public int MaterialNumber { get; set; }
+
+        /// <summary>
+        /// 涓嬪彂鏁伴噺
+        /// </summary>
+        [ExcelColumn(Name = "涓嬪彂鏁伴噺", Width = 25)]
+        public int DistributeNumber { get; set; }
+
+        /// <summary>
+        /// 瀹屾垚鏁伴噺
+        /// </summary>
+        [ExcelColumn(Name = "瀹屾垚鏁伴噺", Width = 25)]
+        public int CompleteNumber { get; set; }
+
+        /// <summary>
+        /// 浼樺厛绾�
+        /// </summary>
+        [ExcelColumn(Name = "浼樺厛绾�", Width = 25)]
+        public int Priority { get; set; }
+
+        /// <summary>
+        /// 鍏宠仈璁″垝缂栧彿
+        /// </summary>
+        [ExcelColumn(Name = "鍏宠仈璁″垝缂栧彿", Width = 25)]
+        public string PlanNo { get; set; }
+
+        /// <summary>
+        /// 鎿嶄綔鏃堕棿
+        /// </summary>
+        [ExcelColumn(Name = "鎿嶄綔鏃堕棿", Width = 25)]
+        public DateTime OperateTime { get; set; }
+
+        /// <summary>
+        /// 澶囨敞
+        /// </summary>
+        [ExcelColumn(Name = "澶囨敞", Width = 25)]
+        public string Remark { get; set; }
+
+        /// <summary>
+        /// 鎺掑簭
+        /// </summary>
+        [ExcelColumn(Name = "鎺掑簭", Width = 25)]
+        public int Sort { get; set; }
+
+        /// <summary>
+        /// 鏄惁绂佺敤
+        /// </summary>
+        [ExcelColumn(Name = "鏄惁绂佺敤", Width = 25)]
+        public bool? IsDisabled { get; set; }
+
+ 
+ 
+    public Dictionary<string, object> GetExportData() 
+        { 
+            var exportData = new Dictionary<string, object>(); 
+            foreach (var property in this.GetType().GetProperties()) 
+            { 
+                exportData.Add(property.Name, property.GetValue(this)); 
+            } 
+ 
+            return exportData; 
+        } 
+} 
diff --git a/HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsInOutStockOrder/WmsInOutStockOrderUpdateDto.cs b/HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsInOutStockOrder/WmsInOutStockOrderUpdateDto.cs
new file mode 100644
index 0000000..b5dc3cf
--- /dev/null
+++ b/HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsInOutStockOrder/WmsInOutStockOrderUpdateDto.cs
@@ -0,0 +1,13 @@
+using Volo.Abp.Domain.Entities; 
+namespace CMS.Plugin.HIAWms.Application.Contracts.Dtos.WmsInOutStockOrder; 
+ 
+/// <summary> 
+/// 鍑哄叆搴撳崟鎹洿鏂板弬鏁板璞� 
+/// </summary> 
+public class WmsInOutStockOrderUpdateDto : WmsInOutStockOrderCreateOrUpdateDtoBase, IHasConcurrencyStamp 
+{ 
+   /// <summary> 
+    /// 骞跺彂鎴� 
+    /// </summary> 
+    public string ConcurrencyStamp { get; set; } 
+} 
diff --git a/HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsInOutStockOrder/WmsInOutStockOrdersImportModel.cs b/HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsInOutStockOrder/WmsInOutStockOrdersImportModel.cs
new file mode 100644
index 0000000..bae4c72
--- /dev/null
+++ b/HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsInOutStockOrder/WmsInOutStockOrdersImportModel.cs
@@ -0,0 +1,33 @@
+ 
+namespace CMS.Plugin.HIAWms.Application.Contracts.Dtos.WmsInOutStockOrder 
+{ 
+    /// <summary> 
+    /// 鍑哄叆搴撳崟鎹鍏ユā鍨� 
+    /// </summary> 
+    public class WmsInOutStockOrdersImportModel 
+    { 
+        private List<WmsInOutStockOrderImportModel> _WmsInOutStockOrders = new(); 
+ 
+        public List<WmsInOutStockOrderImportModel> WmsInOutStockOrders 
+        { 
+            get => _WmsInOutStockOrders; 
+            set 
+            { 
+                _WmsInOutStockOrders = value; 
+                var rowIndex = 2; 
+                _WmsInOutStockOrders?.ForEach(x => x.RowIndex = rowIndex++); 
+            } 
+        } 
+ 
+        /// <summary> 
+        /// 鍑哄叆搴撳崟鎹鍏ユā鍨� 
+        /// </summary> 
+        public class WmsInOutStockOrderImportModel : WmsInOutStockOrderExportModel 
+        { 
+            /// <summary> 
+            /// 琛屽彿 
+            /// </summary> 
+            public int RowIndex { get; set; } 
+        } 
+    } 
+} 
diff --git a/HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsInOutStockOrderDetail/GetWmsInOutStockOrderDetailInput.cs b/HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsInOutStockOrderDetail/GetWmsInOutStockOrderDetailInput.cs
new file mode 100644
index 0000000..8053222
--- /dev/null
+++ b/HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsInOutStockOrderDetail/GetWmsInOutStockOrderDetailInput.cs
@@ -0,0 +1,221 @@
+using CmsQueryExtensions.Extension; 
+using Volo.Abp.Application.Dtos; 
+ 
+namespace CMS.Plugin.HIAWms.Application.Contracts.Dtos.WmsInOutStockOrderDetail; 
+ 
+/// <summary> 
+/// 鍑哄叆搴撳崟鎹鎯呮煡璇㈠弬鏁� 
+/// </summary> 
+public class GetWmsInOutStockOrderDetailInput : ExtensiblePagedAndSortedResultRequestDto 
+{ 
+ 
+    #region 鍏抽敭瀛楁煡璇� 
+ 
+    /// <summary> 
+    /// 鍏抽敭瀛楁ā绯婃煡璇紙娉ㄦ剰鏄皬鍐欙紒锛� 
+    /// </summary> 
+    public string searchVal { get; set; } 
+ 
+    /// <summary> 
+    /// 閫氱敤鏌ヨ閰嶇疆 (1:妯$硦鏌ヨ , 2:绮惧噯鏌ヨ)锛堟敞鎰忔槸灏忓啓锛侊級 
+    /// </summary> 
+    public SearchFilterModeEnum searchVal_FilterMode { get; set; } = SearchFilterModeEnum.妯$硦鏌ヨ; 
+ 
+    /// <summary> 
+    /// 瀛愭悳绱㈢粍浠朵紶閫掔殑閫氱敤鏌ヨ閰嶇疆鐨勫睘鎬у悕锛堟敞鎰忔槸灏忓啓锛侊級 
+    /// </summary> 
+    [NoAutoQuery] 
+    public string str_searchFormInputAttrs { get; set; } 
+    /// <summary> 
+    /// 瀛愭悳绱㈢粍浠朵紶閫掔殑閫氱敤鏌ヨ閰嶇疆鐨勫睘鎬у悕锛堟敞鎰忔槸灏忓啓锛侊級 
+    /// </summary> 
+    public List<string> searchFormInputAttrs 
+    { 
+        get 
+        { 
+            if (!string.IsNullOrEmpty(str_searchFormInputAttrs)) 
+            { 
+                return str_searchFormInputAttrs.Split(',').ToList(); 
+            } 
+            return new List<string>(); 
+        } 
+    } 
+ 
+    #endregion 
+ 
+            /// <summary>
+        /// 鍗曟嵁缂栧彿
+        /// </summary>
+        public string OrderNo { get; set; }
+
+        /// <summary>
+        /// 鍗曟嵁缂栧彿-鏌ヨ鍏崇郴杩愮畻绗� 
+        /// </summary>
+        public SearchFilterModeEnum OrderNo_FilterMode { get; set; }= SearchFilterModeEnum.妯$硦鏌ヨ;
+
+        /// <summary>
+        /// 鐗╂枡鍞竴鐮�
+        /// </summary>
+        public string MaterialId { get; set; }
+
+        /// <summary>
+        /// 鐗╂枡鍞竴鐮�-鏌ヨ鍏崇郴杩愮畻绗� 
+        /// </summary>
+        public SearchFilterModeEnum MaterialId_FilterMode { get; set; }= SearchFilterModeEnum.妯$硦鏌ヨ;
+
+        /// <summary>
+        /// 鍗曟嵁绫诲瀷锛堟灇涓惧�硷級
+        /// </summary>
+        public int?  OrderType { get; set; }
+
+        /// <summary>
+        /// 鍗曟嵁绫诲瀷锛堟灇涓惧�硷級-鏌ヨ鍏崇郴杩愮畻绗� 
+        /// </summary>
+        public SearchFilterModeEnum OrderType_FilterMode { get; set; }= SearchFilterModeEnum.绮惧噯鏌ヨ;
+
+        /// <summary>
+        /// 鐗╂枡浠跺彿
+        /// </summary>
+        public string MaterialNo { get; set; }
+
+        /// <summary>
+        /// 鐗╂枡浠跺彿-鏌ヨ鍏崇郴杩愮畻绗� 
+        /// </summary>
+        public SearchFilterModeEnum MaterialNo_FilterMode { get; set; }= SearchFilterModeEnum.妯$硦鏌ヨ;
+
+        /// <summary>
+        /// 鐗╂枡鍚嶇О
+        /// </summary>
+        public string MaterialName { get; set; }
+
+        /// <summary>
+        /// 鐗╂枡鍚嶇О-鏌ヨ鍏崇郴杩愮畻绗� 
+        /// </summary>
+        public SearchFilterModeEnum MaterialName_FilterMode { get; set; }= SearchFilterModeEnum.妯$硦鏌ヨ;
+
+        /// <summary>
+        /// 瀹瑰櫒缂栧彿
+        /// </summary>
+        public string ContainerNo { get; set; }
+
+        /// <summary>
+        /// 瀹瑰櫒缂栧彿-鏌ヨ鍏崇郴杩愮畻绗� 
+        /// </summary>
+        public SearchFilterModeEnum ContainerNo_FilterMode { get; set; }= SearchFilterModeEnum.妯$硦鏌ヨ;
+
+        /// <summary>
+        /// 鏈哄瀷
+        /// </summary>
+        public string MaterialModel { get; set; }
+
+        /// <summary>
+        /// 鏈哄瀷-鏌ヨ鍏崇郴杩愮畻绗� 
+        /// </summary>
+        public SearchFilterModeEnum MaterialModel_FilterMode { get; set; }= SearchFilterModeEnum.妯$硦鏌ヨ;
+
+        /// <summary>
+        /// 鐗╂枡鎵规
+        /// </summary>
+        public int?  MaterialBatch { get; set; }
+
+        /// <summary>
+        /// 鐗╂枡鎵规-鏌ヨ鍏崇郴杩愮畻绗� 
+        /// </summary>
+        public SearchFilterModeEnum MaterialBatch_FilterMode { get; set; }= SearchFilterModeEnum.绮惧噯鏌ヨ;
+
+        /// <summary>
+        /// 鏄惁绂佺敤
+        /// </summary>
+        //琛ㄧず鏄� 楂樼骇鏌ヨ鑼冨洿鏌ヨ鐗规��
+        [HighSearchRangeAttribute]
+        public List<string> CreationTime { get; set; }
+
+
+        /// <summary>
+        /// 
+        /// </summary>
+        public string CreatorId { get; set; }
+
+        /// <summary>
+        /// -鏌ヨ鍏崇郴杩愮畻绗� 
+        /// </summary>
+        public SearchFilterModeEnum CreatorId_FilterMode { get; set; }= SearchFilterModeEnum.妯$硦鏌ヨ;
+
+        /// <summary>
+        /// 
+        /// </summary>
+        public string DeleterId { get; set; }
+
+        /// <summary>
+        /// -鏌ヨ鍏崇郴杩愮畻绗� 
+        /// </summary>
+        public SearchFilterModeEnum DeleterId_FilterMode { get; set; }= SearchFilterModeEnum.妯$硦鏌ヨ;
+
+        /// <summary>
+        /// 
+        /// </summary>
+        //琛ㄧず鏄� 楂樼骇鏌ヨ鑼冨洿鏌ヨ鐗规��
+        [HighSearchRangeAttribute]
+        public List<string> DeletionTime { get; set; }
+
+
+        /// <summary>
+        /// 
+        /// </summary>
+        public bool?  IsDeleted { get; set; }
+
+        /// <summary>
+        /// -鏌ヨ鍏崇郴杩愮畻绗� 
+        /// </summary>
+        public SearchFilterModeEnum IsDeleted_FilterMode { get; set; }= SearchFilterModeEnum.绮惧噯鏌ヨ;
+
+        /// <summary>
+        /// 鏄惁绂佺敤
+        /// </summary>
+        public bool?  IsDisabled { get; set; }
+
+        /// <summary>
+        /// 鏄惁绂佺敤-鏌ヨ鍏崇郴杩愮畻绗� 
+        /// </summary>
+        public SearchFilterModeEnum IsDisabled_FilterMode { get; set; }= SearchFilterModeEnum.绮惧噯鏌ヨ;
+
+        /// <summary>
+        /// 
+        /// </summary>
+        //琛ㄧず鏄� 楂樼骇鏌ヨ鑼冨洿鏌ヨ鐗规��
+        [HighSearchRangeAttribute]
+        public List<string> LastModificationTime { get; set; }
+
+
+        /// <summary>
+        /// 
+        /// </summary>
+        public string LastModifierId { get; set; }
+
+        /// <summary>
+        /// -鏌ヨ鍏崇郴杩愮畻绗� 
+        /// </summary>
+        public SearchFilterModeEnum LastModifierId_FilterMode { get; set; }= SearchFilterModeEnum.妯$硦鏌ヨ;
+
+        /// <summary>
+        /// 澶囨敞
+        /// </summary>
+        public string Remark { get; set; }
+
+        /// <summary>
+        /// 澶囨敞-鏌ヨ鍏崇郴杩愮畻绗� 
+        /// </summary>
+        public SearchFilterModeEnum Remark_FilterMode { get; set; }= SearchFilterModeEnum.妯$硦鏌ヨ;
+
+        /// <summary>
+        /// 鎺掑簭
+        /// </summary>
+        public int?  Sort { get; set; }
+
+        /// <summary>
+        /// 鎺掑簭-鏌ヨ鍏崇郴杩愮畻绗� 
+        /// </summary>
+        public SearchFilterModeEnum Sort_FilterMode { get; set; }= SearchFilterModeEnum.绮惧噯鏌ヨ;
+
+ 
+} 
diff --git a/HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsInOutStockOrderDetail/WmsInOutStockOrderDetailCreateDto.cs b/HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsInOutStockOrderDetail/WmsInOutStockOrderDetailCreateDto.cs
new file mode 100644
index 0000000..1233b14
--- /dev/null
+++ b/HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsInOutStockOrderDetail/WmsInOutStockOrderDetailCreateDto.cs
@@ -0,0 +1,17 @@
+namespace CMS.Plugin.HIAWms.Application.Contracts.Dtos.WmsInOutStockOrderDetail; 
+ 
+/// <summary> 
+/// 鍑哄叆搴撳崟鎹鎯呭垱寤哄弬鏁板璞� 
+/// </summary> 
+public class WmsInOutStockOrderDetailCreateDto : WmsInOutStockOrderDetailCreateOrUpdateDtoBase 
+{ 
+    /// <summary> 
+    /// 鎺掑簭 
+    /// </summary> 
+    public virtual int? Sort { get; set; } 
+ 
+    /// <summary> 
+    /// 鏄惁绂佺敤 
+    /// </summary> 
+    public bool? IsDisabled { get; set; } = false; 
+} 
diff --git a/HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsInOutStockOrderDetail/WmsInOutStockOrderDetailCreateOrUpdateDtoBase.cs b/HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsInOutStockOrderDetail/WmsInOutStockOrderDetailCreateOrUpdateDtoBase.cs
new file mode 100644
index 0000000..fe136c9
--- /dev/null
+++ b/HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsInOutStockOrderDetail/WmsInOutStockOrderDetailCreateOrUpdateDtoBase.cs
@@ -0,0 +1,85 @@
+using CMS.Plugin.HIAWms.Domain.Shared.Enums; 
+using System; 
+using Volo.Abp.Application.Dtos; 
+ 
+namespace CMS.Plugin.HIAWms.Application.Contracts.Dtos.WmsInOutStockOrderDetail; 
+ 
+/// <summary> 
+/// 鍑哄叆搴撳崟鎹鎯呭垱寤烘垨鏇存柊鍩虹被 
+/// </summary> 
+public abstract class WmsInOutStockOrderDetailCreateOrUpdateDtoBase : ExtensibleEntityDto 
+{ 
+            /// <summary>
+        /// 鍗曟嵁缂栧彿
+        /// </summary>
+        public string OrderNo { get; set; }
+
+        /// <summary>
+        /// 鐗╂枡鍞竴鐮�
+        /// </summary>
+        public string MaterialId { get; set; }
+
+        /// <summary>
+        /// 鍗曟嵁绫诲瀷锛堟灇涓惧�硷級
+        /// </summary>
+        public OrderTypeEnum OrderType { get; set; }
+
+        /// <summary>
+        /// 鐗╂枡浠跺彿
+        /// </summary>
+        public string MaterialNo { get; set; }
+
+        /// <summary>
+        /// 鐗╂枡鍚嶇О
+        /// </summary>
+        public string? MaterialName { get; set; }
+
+        /// <summary>
+        /// 瀹瑰櫒缂栧彿
+        /// </summary>
+        public string? ContainerNo { get; set; }
+
+        /// <summary>
+        /// 鏈哄瀷
+        /// </summary>
+        public string? MaterialModel { get; set; }
+
+        /// <summary>
+        /// 鐗╂枡鎵规
+        /// </summary>
+        public int? MaterialBatch { get; set; }
+
+        /// <summary>
+        /// 
+        /// </summary>
+        public string? CreatorId { get; set; }
+
+        /// <summary>
+        /// 鏄惁绂佺敤
+        /// </summary>
+        public bool? IsDisabled { get; set; }
+
+        /// <summary>
+        /// 
+        /// </summary>
+        public string? LastModifierId { get; set; }
+
+        /// <summary>
+        /// 澶囨敞
+        /// </summary>
+        public string? Remark { get; set; }
+
+        /// <summary>
+        /// 鎺掑簭
+        /// </summary>
+        public int Sort { get; set; }
+
+ 
+ 
+    /// <summary> 
+    /// Initializes a new instance of the <see cref="WmsInOutStockOrderDetailCreateOrUpdateDtoBase"/> class. 
+    /// </summary> 
+    public WmsInOutStockOrderDetailCreateOrUpdateDtoBase() : base(false) 
+    { 
+    } 
+} 
diff --git a/HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsInOutStockOrderDetail/WmsInOutStockOrderDetailDto.cs b/HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsInOutStockOrderDetail/WmsInOutStockOrderDetailDto.cs
new file mode 100644
index 0000000..0036c12
--- /dev/null
+++ b/HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsInOutStockOrderDetail/WmsInOutStockOrderDetailDto.cs
@@ -0,0 +1,141 @@
+using CMS.Plugin.HIAWms.Domain.Shared.Enums; 
+using CmsQueryExtensions; 
+using Volo.Abp.Application.Dtos; 
+using Volo.Abp.Data; 
+using Volo.Abp.Domain.Entities; 
+ 
+ 
+namespace CMS.Plugin.HIAWms.Application.Contracts.Dtos.WmsInOutStockOrderDetail; 
+ 
+/// <summary> 
+/// 鍑哄叆搴撳崟鎹鎯呮暟鎹弬鏁板璞� 
+/// </summary> 
+public  class WmsInOutStockOrderDetailDto:  ExtensibleEntityDto<Guid>, IHasConcurrencyStamp 
+{ 
+            /// <summary>
+        /// 鍗曟嵁缂栧彿
+        /// </summary>
+        public string OrderNo { get; set; }
+
+        /// <summary>
+        /// 鐗╂枡鍞竴鐮�
+        /// </summary>
+        public string MaterialId { get; set; }
+
+        /// <summary>
+        /// 鍗曟嵁绫诲瀷锛堟灇涓惧�硷級
+        /// </summary>
+        public OrderTypeEnum OrderType { get; set; }
+
+        /// <summary>
+        /// 鍗曟嵁绫诲瀷锛堟灇涓惧�硷級
+        /// </summary>
+        public string OrderTypeDesc
+        { 
+            get 
+            { 
+                return GetEnumDescriptionUtil.GetEnumDescription(OrderType); 
+            } 
+        } 
+        /// <summary>
+        /// 鐗╂枡浠跺彿
+        /// </summary>
+        public string MaterialNo { get; set; }
+
+        /// <summary>
+        /// 鐗╂枡鍚嶇О
+        /// </summary>
+        public string? MaterialName { get; set; }
+
+        /// <summary>
+        /// 瀹瑰櫒缂栧彿
+        /// </summary>
+        public string? ContainerNo { get; set; }
+
+        /// <summary>
+        /// 鏈哄瀷
+        /// </summary>
+        public string? MaterialModel { get; set; }
+
+        /// <summary>
+        /// 鐗╂枡鎵规
+        /// </summary>
+        public int? MaterialBatch { get; set; }
+
+        /// <summary>
+        /// 
+        /// </summary>
+        public string? ConcurrencyStamp { get; set; }
+
+        /// <summary>
+        /// 鏄惁绂佺敤
+        /// </summary>
+        public DateTime CreationTime { get; set; }
+
+        /// <summary>
+        /// 
+        /// </summary>
+        public string? CreatorId { get; set; }
+
+        /// <summary>
+        /// 
+        /// </summary>
+        public string? DeleterId { get; set; }
+
+        /// <summary>
+        /// 
+        /// </summary>
+        public DateTime? DeletionTime { get; set; }
+
+        /// <summary>
+        /// 
+        /// </summary>
+        public ExtraPropertyDictionary? ExtraProperties { get; set; }
+
+        /// <summary>
+        /// 
+        /// </summary>
+        public bool IsDeleted { get; set; }
+
+        /// <summary>
+        /// 鏄惁绂佺敤
+        /// </summary>
+        public bool? IsDisabled { get; set; }
+
+        /// <summary>
+        /// 
+        /// </summary>
+        public DateTime? LastModificationTime { get; set; }
+
+        /// <summary>
+        /// 
+        /// </summary>
+        public string? LastModifierId { get; set; }
+
+        /// <summary>
+        /// 澶囨敞
+        /// </summary>
+        public string? Remark { get; set; }
+
+        /// <summary>
+        /// 鎺掑簭
+        /// </summary>
+        public int Sort { get; set; }
+
+ 
+ 
+    /// <summary> 
+    /// Gets the export data. 
+    /// </summary> 
+    /// <returns></returns> 
+    public Dictionary<string, object> GetExportData() 
+    { 
+        var exportData = new Dictionary<string, object>(); 
+        foreach (var property in this.GetType().GetProperties()) 
+        { 
+            exportData.Add(property.Name, property.GetValue(this)); 
+        } 
+ 
+        return exportData; 
+    } 
+} 
diff --git a/HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsInOutStockOrderDetail/WmsInOutStockOrderDetailExportModel.cs b/HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsInOutStockOrderDetail/WmsInOutStockOrderDetailExportModel.cs
new file mode 100644
index 0000000..9f5fc91
--- /dev/null
+++ b/HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsInOutStockOrderDetail/WmsInOutStockOrderDetailExportModel.cs
@@ -0,0 +1,91 @@
+using MiniExcelLibs.Attributes; 
+using System.ComponentModel.DataAnnotations; 
+using System; 
+using System.ComponentModel; 
+using CMS.Plugin.HIAWms.Domain.Shared.Enums; 
+namespace CMS.Plugin.HIAWms.Application.Contracts.Dtos.WmsInOutStockOrderDetail; 
+ 
+/// <summary> 
+/// 鍑哄叆搴撳崟鎹鎯呭鍑烘ā鍨� 
+/// </summary> 
+public  class WmsInOutStockOrderDetailExportModel 
+{ 
+            /// <summary>
+        /// 鍗曟嵁缂栧彿
+        /// </summary>
+        [ExcelColumn(Name = "鍗曟嵁缂栧彿", Width = 25)]
+        public string OrderNo { get; set; }
+
+        /// <summary>
+        /// 鐗╂枡鍞竴鐮�
+        /// </summary>
+        [ExcelColumn(Name = "鐗╂枡鍞竴鐮�", Width = 25)]
+        public string MaterialId { get; set; }
+
+        /// <summary>
+        /// 鍗曟嵁绫诲瀷锛堟灇涓惧�硷級
+        /// </summary>
+        [ExcelColumn(Name = "鍗曟嵁绫诲瀷锛堟灇涓惧�硷級", Width = 25)]
+        public OrderTypeEnum OrderType { get; set; }
+
+        /// <summary>
+        /// 鐗╂枡浠跺彿
+        /// </summary>
+        [ExcelColumn(Name = "鐗╂枡浠跺彿", Width = 25)]
+        public string MaterialNo { get; set; }
+
+        /// <summary>
+        /// 鐗╂枡鍚嶇О
+        /// </summary>
+        [ExcelColumn(Name = "鐗╂枡鍚嶇О", Width = 25)]
+        public string MaterialName { get; set; }
+
+        /// <summary>
+        /// 瀹瑰櫒缂栧彿
+        /// </summary>
+        [ExcelColumn(Name = "瀹瑰櫒缂栧彿", Width = 25)]
+        public string ContainerNo { get; set; }
+
+        /// <summary>
+        /// 鏈哄瀷
+        /// </summary>
+        [ExcelColumn(Name = "鏈哄瀷", Width = 25)]
+        public string MaterialModel { get; set; }
+
+        /// <summary>
+        /// 鐗╂枡鎵规
+        /// </summary>
+        [ExcelColumn(Name = "鐗╂枡鎵规", Width = 25)]
+        public int? MaterialBatch { get; set; }
+
+        /// <summary>
+        /// 鏄惁绂佺敤
+        /// </summary>
+        [ExcelColumn(Name = "鏄惁绂佺敤", Width = 25)]
+        public bool? IsDisabled { get; set; }
+
+        /// <summary>
+        /// 澶囨敞
+        /// </summary>
+        [ExcelColumn(Name = "澶囨敞", Width = 25)]
+        public string Remark { get; set; }
+
+        /// <summary>
+        /// 鎺掑簭
+        /// </summary>
+        [ExcelColumn(Name = "鎺掑簭", Width = 25)]
+        public int Sort { get; set; }
+
+ 
+ 
+    public Dictionary<string, object> GetExportData() 
+        { 
+            var exportData = new Dictionary<string, object>(); 
+            foreach (var property in this.GetType().GetProperties()) 
+            { 
+                exportData.Add(property.Name, property.GetValue(this)); 
+            } 
+ 
+            return exportData; 
+        } 
+} 
diff --git a/HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsInOutStockOrderDetail/WmsInOutStockOrderDetailUpdateDto.cs b/HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsInOutStockOrderDetail/WmsInOutStockOrderDetailUpdateDto.cs
new file mode 100644
index 0000000..871e3cd
--- /dev/null
+++ b/HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsInOutStockOrderDetail/WmsInOutStockOrderDetailUpdateDto.cs
@@ -0,0 +1,13 @@
+using Volo.Abp.Domain.Entities; 
+namespace CMS.Plugin.HIAWms.Application.Contracts.Dtos.WmsInOutStockOrderDetail; 
+ 
+/// <summary> 
+/// 鍑哄叆搴撳崟鎹鎯呮洿鏂板弬鏁板璞� 
+/// </summary> 
+public class WmsInOutStockOrderDetailUpdateDto : WmsInOutStockOrderDetailCreateOrUpdateDtoBase, IHasConcurrencyStamp 
+{ 
+   /// <summary> 
+    /// 骞跺彂鎴� 
+    /// </summary> 
+    public string ConcurrencyStamp { get; set; } 
+} 
diff --git a/HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsInOutStockOrderDetail/WmsInOutStockOrderDetailsImportModel.cs b/HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsInOutStockOrderDetail/WmsInOutStockOrderDetailsImportModel.cs
new file mode 100644
index 0000000..1bdd9ef
--- /dev/null
+++ b/HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsInOutStockOrderDetail/WmsInOutStockOrderDetailsImportModel.cs
@@ -0,0 +1,33 @@
+ 
+namespace CMS.Plugin.HIAWms.Application.Contracts.Dtos.WmsInOutStockOrderDetail 
+{ 
+    /// <summary> 
+    /// 鍑哄叆搴撳崟鎹鎯呭鍏ユā鍨� 
+    /// </summary> 
+    public class WmsInOutStockOrderDetailsImportModel 
+    { 
+        private List<WmsInOutStockOrderDetailImportModel> _WmsInOutStockOrderDetails = new(); 
+ 
+        public List<WmsInOutStockOrderDetailImportModel> WmsInOutStockOrderDetails 
+        { 
+            get => _WmsInOutStockOrderDetails; 
+            set 
+            { 
+                _WmsInOutStockOrderDetails = value; 
+                var rowIndex = 2; 
+                _WmsInOutStockOrderDetails?.ForEach(x => x.RowIndex = rowIndex++); 
+            } 
+        } 
+ 
+        /// <summary> 
+        /// 鍑哄叆搴撳崟鎹鎯呭鍏ユā鍨� 
+        /// </summary> 
+        public class WmsInOutStockOrderDetailImportModel : WmsInOutStockOrderDetailExportModel 
+        { 
+            /// <summary> 
+            /// 琛屽彿 
+            /// </summary> 
+            public int RowIndex { get; set; } 
+        } 
+    } 
+} 
diff --git a/HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Services/IWmsInOutStockOrderAppService.cs b/HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Services/IWmsInOutStockOrderAppService.cs
new file mode 100644
index 0000000..30b056b
--- /dev/null
+++ b/HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Services/IWmsInOutStockOrderAppService.cs
@@ -0,0 +1,46 @@
+using CMS.Plugin.HIAWms.Application.Contracts.Dtos.WmsInOutStockOrder; 
+using Volo.Abp.Application.Services; 
+ 
+namespace CMS.Plugin.HIAWms.Application.Contracts.Services; 
+ 
+/// <summary> 
+/// 鍑哄叆搴撳崟鎹簲鐢ㄦ湇鍔℃帴鍙� 
+/// </summary> 
+public interface IWmsInOutStockOrderAppService : ICrudAppService<WmsInOutStockOrderDto, Guid, GetWmsInOutStockOrderInput, WmsInOutStockOrderCreateDto, WmsInOutStockOrderUpdateDto> 
+{ 
+    /// <summary> 
+    /// 鍏嬮殕鍑哄叆搴撳崟鎹� 
+    /// </summary> 
+    /// <param name="ids"></param> 
+    /// <returns></returns> 
+    Task<List<WmsInOutStockOrderDto>> CloneAsync(IEnumerable<Guid> ids); 
+ 
+    /// <summary> 
+    /// 鍒犻櫎鍑哄叆搴撳崟鎹� 
+    /// </summary> 
+    /// <param name="ids"></param> 
+    /// <returns></returns> 
+    Task DeleteManyAsync(IEnumerable<Guid> ids); 
+ 
+    /// <summary> 
+    /// 璋冩暣鎺掑簭鍑哄叆搴撳崟鎹� 
+    /// </summary> 
+    /// <param name="id"></param> 
+    /// <param name="sort"></param> 
+    /// <returns></returns> 
+    Task AdjustSortAsync(Guid id, int sort); 
+ 
+    /// <summary> 
+    /// 瀵煎叆鍑哄叆搴撳崟鎹� 
+    /// </summary> 
+    /// <param name="input"></param> 
+    /// <returns></returns> 
+    Task ImportAsync(WmsInOutStockOrdersImportModel input); 
+ 
+    /// <summary> 
+    /// 瀵煎嚭鍑哄叆搴撳崟鎹� 
+    /// </summary> 
+    /// <param name="input"></param> 
+    /// <returns></returns> 
+    Task<(Dictionary<string, object> Sheets, string FileName)> ExportAsync(GetWmsInOutStockOrderInput input); 
+} 
diff --git a/HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Services/IWmsInOutStockOrderDetailAppService.cs b/HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Services/IWmsInOutStockOrderDetailAppService.cs
new file mode 100644
index 0000000..af51c62
--- /dev/null
+++ b/HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Services/IWmsInOutStockOrderDetailAppService.cs
@@ -0,0 +1,46 @@
+using CMS.Plugin.HIAWms.Application.Contracts.Dtos.WmsInOutStockOrderDetail; 
+using Volo.Abp.Application.Services; 
+ 
+namespace CMS.Plugin.HIAWms.Application.Contracts.Services; 
+ 
+/// <summary> 
+/// 鍑哄叆搴撳崟鎹鎯呭簲鐢ㄦ湇鍔℃帴鍙� 
+/// </summary> 
+public interface IWmsInOutStockOrderDetailAppService : ICrudAppService<WmsInOutStockOrderDetailDto, Guid, GetWmsInOutStockOrderDetailInput, WmsInOutStockOrderDetailCreateDto, WmsInOutStockOrderDetailUpdateDto> 
+{ 
+    /// <summary> 
+    /// 鍏嬮殕鍑哄叆搴撳崟鎹鎯� 
+    /// </summary> 
+    /// <param name="ids"></param> 
+    /// <returns></returns> 
+    Task<List<WmsInOutStockOrderDetailDto>> CloneAsync(IEnumerable<Guid> ids); 
+ 
+    /// <summary> 
+    /// 鍒犻櫎鍑哄叆搴撳崟鎹鎯� 
+    /// </summary> 
+    /// <param name="ids"></param> 
+    /// <returns></returns> 
+    Task DeleteManyAsync(IEnumerable<Guid> ids); 
+ 
+    /// <summary> 
+    /// 璋冩暣鎺掑簭鍑哄叆搴撳崟鎹鎯� 
+    /// </summary> 
+    /// <param name="id"></param> 
+    /// <param name="sort"></param> 
+    /// <returns></returns> 
+    Task AdjustSortAsync(Guid id, int sort); 
+ 
+    /// <summary> 
+    /// 瀵煎叆鍑哄叆搴撳崟鎹鎯� 
+    /// </summary> 
+    /// <param name="input"></param> 
+    /// <returns></returns> 
+    Task ImportAsync(WmsInOutStockOrderDetailsImportModel input); 
+ 
+    /// <summary> 
+    /// 瀵煎嚭鍑哄叆搴撳崟鎹鎯� 
+    /// </summary> 
+    /// <param name="input"></param> 
+    /// <returns></returns> 
+    Task<(Dictionary<string, object> Sheets, string FileName)> ExportAsync(GetWmsInOutStockOrderDetailInput input); 
+} 
diff --git a/HIAWms/server/src/CMS.Plugin.HIAWms.Application/Implements/WmsInOutStockOrderAppService.cs b/HIAWms/server/src/CMS.Plugin.HIAWms.Application/Implements/WmsInOutStockOrderAppService.cs
new file mode 100644
index 0000000..73ae65e
--- /dev/null
+++ b/HIAWms/server/src/CMS.Plugin.HIAWms.Application/Implements/WmsInOutStockOrderAppService.cs
@@ -0,0 +1,450 @@
+using CMS.Plugin.HIAWms.Application.Contracts.Dtos.WmsInOutStockOrder; 
+using CMS.Plugin.HIAWms.Application.Contracts.Services; 
+using CMS.Plugin.HIAWms.Domain.Shared; 
+using CmsQueryExtensions; 
+using CMS.Plugin.HIAWms.Domain.WmsInOutStockOrder; 
+using CmsQueryExtensions.Extension; 
+using System.Linq.Expressions; 
+using Volo.Abp; 
+using Volo.Abp.Application.Dtos; 
+using Volo.Abp.Data; 
+using Volo.Abp.ObjectExtending; 
+using Volo.Abp.ObjectMapping; 
+ 
+namespace CMS.Plugin.HIAWms.Application.Implements; 
+ 
+/// <summary> 
+/// 鍑哄叆搴撳崟鎹簲鐢ㄦ湇鍔� 
+/// </summary> 
+public class WmsInOutStockOrderAppService : CMSPluginAppService, IWmsInOutStockOrderAppService 
+{ 
+    private readonly IWmsInOutStockOrderRepository wmsInOutStockOrderRepository; 
+ 
+    /// <summary> 
+    /// Initializes a new instance of the <see cref="WmsInOutStockOrderAppService"/> class. 
+    /// </summary> 
+    /// <param name="WmsInOutStockOrderRepository">The task job repository.</param> 
+    public WmsInOutStockOrderAppService(IWmsInOutStockOrderRepository _WmsInOutStockOrderRepository) 
+    { 
+        wmsInOutStockOrderRepository = _WmsInOutStockOrderRepository; 
+    } 
+ 
+    /// <summary> 
+    /// 鑾峰彇鎸囧畾鍑哄叆搴撳崟鎹� 
+    /// </summary> 
+    /// <param name="id"></param> 
+    /// <returns></returns> 
+    public virtual async Task<WmsInOutStockOrderDto> GetAsync(Guid id) 
+    { 
+        return ObjectMapper.Map<WmsInOutStockOrder, WmsInOutStockOrderDto>(await wmsInOutStockOrderRepository.GetAsync(id)); 
+    } 
+ 
+    /// <summary> 
+    /// 鍒嗛〉鑾峰彇鍑哄叆搴撳崟鎹� 
+    /// </summary> 
+    /// <param name="input"></param> 
+    /// <returns></returns> 
+    public virtual async Task<PagedResultDto<WmsInOutStockOrderDto>> GetListAsync(GetWmsInOutStockOrderInput input) 
+    { 
+        Check.NotNull(input, nameof(input)); 
+ 
+        if (input.Sorting.IsNullOrWhiteSpace()) 
+        { 
+            input.Sorting = nameof(WmsInOutStockOrder.Sort); 
+        } 
+ 
+        #region 鍔ㄦ�佹瀯閫犳煡璇㈡潯浠�  
+ 
+        //鍔ㄦ�佹瀯閫犳煡璇㈡潯浠�  
+        var whereConditions = DynamicGetQueryParams(input); 
+ 
+        #endregion 
+ 
+        var count = await wmsInOutStockOrderRepository.GetCountAsync(whereConditions); 
+        var list = await wmsInOutStockOrderRepository.GetListAsync(whereConditions, input.Sorting, input.MaxResultCount, input.SkipCount); 
+ 
+        return new PagedResultDto<WmsInOutStockOrderDto>(count, ObjectMapper.Map<List<WmsInOutStockOrder>, List<WmsInOutStockOrderDto>>(list)); 
+    } 
+ 
+    /// <summary>  
+    /// 鍔ㄦ�佹瀯閫犳煡璇㈡潯浠�  
+    /// </summary>  
+    /// <param name="input">杈撳叆鍙傛暟</param>  
+    /// <returns></returns>  
+    private FunReturnResultModel<Expression<Func<WmsInOutStockOrder, bool>>> DynamicGetQueryParams(GetWmsInOutStockOrderInput input) 
+    { 
+        //鍔ㄦ�佹瀯閫犳煡璇㈡潯浠�  
+        var whereConditions = WhereConditionsExtensions.GetWhereConditions<WmsInOutStockOrder, GetWmsInOutStockOrderInput>(input); 
+        if (!whereConditions.IsSuccess) 
+        { 
+            throw new Exception("鍔ㄦ�佹瀯閫犳煡璇㈡潯浠跺け璐�:" + whereConditions.ErrMsg); 
+        } 
+ 
+        //涔熷彲鍐嶆鑷畾涔夋瀯寤烘煡璇㈡潯浠�  
+        Expression<Func<WmsInOutStockOrder, bool>> extendExpression = a => a.IsDeleted == false; 
+        // 浣跨敤 System.Linq.PredicateBuilder 鐨� And 
+        var pres = (System.Linq.Expressions.Expression<Func<WmsInOutStockOrder, bool>>)(whereConditions.data); 
+        whereConditions.data = System.Linq.PredicateBuilder.And(pres, extendExpression); 
+ 
+        return whereConditions; 
+    } 
+ 
+    /// <summary> 
+    /// 鏂板缓鍑哄叆搴撳崟鎹� 
+    /// </summary> 
+    /// <param name="input"></param> 
+    /// <returns></returns> 
+    /// <exception cref="UserFriendlyException"></exception> 
+    public virtual async Task<WmsInOutStockOrderDto> CreateAsync(WmsInOutStockOrderCreateDto input) 
+    { 
+        await CheckCreateOrUpdateDtoAsync(input); 
+ 
+        var exist = await wmsInOutStockOrderRepository.NameExistAsync(input.OrderNo); 
+        if (exist) 
+        { 
+            throw new UserFriendlyException(L[CMSPluginDomainErrorCodes.NameAlreadyExists, input.OrderNo]); 
+        } 
+ 
+        var maxSort = await wmsInOutStockOrderRepository.GetMaxSortAsync(); 
+        var sort = input.Sort ?? maxSort; 
+ 
+        var insertObj = ObjectMapper.Map<WmsInOutStockOrderCreateDto, WmsInOutStockOrder>(input); 
+        insertObj.Sort = sort; 
+        input.MapExtraPropertiesTo(insertObj, MappingPropertyDefinitionChecks.None); 
+ 
+        await wmsInOutStockOrderRepository.InsertAsync(insertObj); 
+ 
+        //if (input.Sort.HasValue && insertObj.Sort != maxSort) 
+        //{ 
+        //    await AdjustSortAsync(insertObj.Id, insertObj.Sort); 
+        //} 
+ 
+        return ObjectMapper.Map<WmsInOutStockOrder, WmsInOutStockOrderDto>(insertObj); 
+    } 
+ 
+    /// <summary> 
+    /// 鏇存柊鍑哄叆搴撳崟鎹� 
+    /// </summary> 
+    /// <param name="id"></param> 
+    /// <param name="input"></param> 
+    /// <returns></returns> 
+    /// <exception cref="UserFriendlyException"></exception> 
+    public virtual async Task<WmsInOutStockOrderDto> UpdateAsync(Guid id, WmsInOutStockOrderUpdateDto input) 
+    { 
+        await CheckCreateOrUpdateDtoAsync(input); 
+ 
+        var updateObj = await wmsInOutStockOrderRepository.GetAsync(id); 
+        var exist = await wmsInOutStockOrderRepository.NameExistAsync(input.OrderNo, updateObj.Id); 
+        if (exist) 
+        { 
+            throw new UserFriendlyException(L[CMSPluginDomainErrorCodes.NameAlreadyExists, input.OrderNo]); 
+        } 
+ 
+        updateObj.SetConcurrencyStampIfNotNull(input.ConcurrencyStamp); 
+        input.MapExtraPropertiesTo(updateObj, MappingPropertyDefinitionChecks.None); 
+ 
+                updateObj.OrderNo = input.OrderNo;
+        updateObj.OrderStatus = input.OrderStatus;
+        updateObj.MaterialName = input.MaterialName;
+        updateObj.MaterialNo = input.MaterialNo;
+        updateObj.MaterialModel = input.MaterialModel;
+        updateObj.MaterialBatch = input.MaterialBatch;
+        updateObj.OrderType = input.OrderType;
+        updateObj.StockType = input.StockType;
+        updateObj.MaterialNumber = input.MaterialNumber;
+        updateObj.DistributeNumber = input.DistributeNumber;
+        updateObj.CompleteNumber = input.CompleteNumber;
+        updateObj.Priority = input.Priority;
+        updateObj.PlanNo = input.PlanNo;
+        updateObj.OperateTime = input.OperateTime;
+        updateObj.Remark = input.Remark;
+        updateObj.IsDisabled = input.IsDisabled;
+ 
+ 
+        await wmsInOutStockOrderRepository.UpdateAsync(updateObj); 
+ 
+        return ObjectMapper.Map<WmsInOutStockOrder, WmsInOutStockOrderDto>(updateObj); 
+    } 
+ 
+    /// <summary> 
+    /// 鍏嬮殕鍑哄叆搴撳崟鎹� 
+    /// </summary> 
+    /// <param name="ids"></param> 
+    /// <returns></returns> 
+    public async Task<List<WmsInOutStockOrderDto>> CloneAsync(IEnumerable<Guid> ids) 
+    { 
+        //var wmsInOutStockOrders = new List<WmsInOutStockOrder>(); 
+        //if (ids != null) 
+        //{ 
+        //    var sort = await wmsInOutStockOrderRepository.GetMaxSortAsync(); 
+        //    foreach (var id in ids) 
+        //    { 
+        //        var WmsInOutStockOrder = await wmsInOutStockOrderRepository.FindAsync(id); 
+        //        if (WmsInOutStockOrder != null) 
+        //        { 
+        //            var name = WmsInOutStockOrder.Name + WmsInOutStockOrderConsts.CloneTag; 
+        //            var notExist = false; 
+        //            while (!notExist) 
+        //            { 
+        //                var exist = await wmsInOutStockOrderRepository.NameExistAsync(name); 
+        //                if (exist || wmsInOutStockOrders.Any(x => x.Name == name)) 
+        //                { 
+        //                    name += WmsInOutStockOrderConsts.CloneTag; 
+        //                    continue; 
+        //                } 
+ 
+        //                notExist = true; 
+        //            } 
+ 
+        //            //WmsInOutStockOrder = await wmsInOutStockOrderRepository.InsertAsync(WmsInOutStockOrder.Clone(GuidGenerator.Create(), name, sort++)); 
+        //            wmsInOutStockOrders.Add(WmsInOutStockOrder); 
+        //        } 
+        //    } 
+        //} 
+ 
+        //return ObjectMapper.Map<List<WmsInOutStockOrder>, List<WmsInOutStockOrderDto>>(wmsInOutStockOrders); 
+        return new List<WmsInOutStockOrderDto>(); 
+    } 
+ 
+    /// <summary> 
+    /// 鍒犻櫎鍗曚釜鍑哄叆搴撳崟鎹� 
+    /// </summary> 
+    /// <param name="id"></param> 
+    /// <returns></returns> 
+    public virtual Task DeleteAsync(Guid id) 
+    { 
+        return wmsInOutStockOrderRepository.DeleteAsync(id); 
+    } 
+ 
+    /// <summary> 
+    /// 鍒犻櫎澶氫釜鍑哄叆搴撳崟鎹� 
+    /// </summary> 
+    /// <param name="ids"></param> 
+    /// <returns></returns> 
+    public async Task DeleteManyAsync(IEnumerable<Guid> ids) 
+    { 
+        foreach (var id in ids) 
+        { 
+            await DeleteAsync(id); 
+        } 
+    } 
+ 
+    /// <summary> 
+    /// 璋冩暣鎺掑簭鍑哄叆搴撳崟鎹� 
+    /// </summary> 
+    /// <param name="id"></param> 
+    /// <param name="sort"></param> 
+    /// <returns></returns> 
+    public virtual async Task AdjustSortAsync(Guid id, int sort) 
+    { 
+        var list = await wmsInOutStockOrderRepository.GetListAsync(null, nameof(WmsInOutStockOrder.Sort)); 
+        if (list != null && list.Any()) 
+        { 
+            var initSort = 1; 
+            list.ForEach(x => x.AdjustSort(initSort++)); 
+            var entity = list.FirstOrDefault(x => x.Id == id); 
+            if (entity != null) 
+            { 
+                if (sort == 1) 
+                { 
+                    list.Where(x => x.Id != id).ToList()?.ForEach(x => x.AdjustSort(x.Sort + 1)); 
+                } 
+                else if (entity.Sort > sort) 
+                { 
+                    list.Where(x => x.Id != id && x.Sort >= sort).ToList()?.ForEach(x => x.AdjustSort(x.Sort + 1)); 
+                    list.Where(x => x.Id != id && x.Sort < sort).ToList()?.ForEach(x => x.AdjustSort(x.Sort - 1)); 
+                } 
+                else if (entity.Sort < sort) 
+                { 
+                    list.Where(x => x.Id != id && x.Sort > sort).ToList()?.ForEach(x => x.AdjustSort(x.Sort + 1)); 
+                    list.Where(x => x.Id != id && x.Sort <= sort).ToList()?.ForEach(x => x.AdjustSort(x.Sort - 1)); 
+                } 
+ 
+                entity.AdjustSort(sort); 
+            } 
+        } 
+ 
+        await wmsInOutStockOrderRepository.UpdateManyAsync(list); 
+    } 
+ 
+    /// <summary> 
+    /// 瀵煎叆鍑哄叆搴撳崟鎹� 
+    /// </summary> 
+    /// <param name="input"></param> 
+    /// <returns></returns> 
+    /// <exception cref="UserFriendlyException"></exception> 
+    public async Task ImportAsync(WmsInOutStockOrdersImportModel input) 
+    { 
+        Check.NotNull(input, nameof(input)); 
+ 
+        var wmsInOutStockOrderCreateDtos = new List<(int RowIndex, WmsInOutStockOrderCreateDto Item)>(); 
+        var wmsInOutStockOrderUpdateDtos = new List<(int RowIndex, Guid Id, WmsInOutStockOrderUpdateDto Item)>(); 
+        var importItems = input.WmsInOutStockOrders; 
+ 
+        if (importItems != null && importItems.Any()) 
+        { 
+            #region 瀵煎叆鏍¢獙 
+ 
+            // 鍒ゆ柇鍚嶇О鏄惁閲嶅锛屽苟杈撳嚭绗嚑琛岄噸澶� 
+            var duplicateWmsInOutStockOrders = importItems.GroupBy(x => x.OrderNo).Where(x => x.Count() > 1).ToList(); 
+            if (duplicateWmsInOutStockOrders?.Any() == true) 
+            { 
+                var duplicateWmsInOutStockOrderMsgs = duplicateWmsInOutStockOrders.Select(x => $"绗� {string.Join(",", x.Select(x => x.RowIndex))} 琛岋細{x.Key}  鍚嶇О閲嶅"); 
+                var errorMsg = $"瀵煎叆澶辫触锛侀厤缃紝 {string.Join(",", duplicateWmsInOutStockOrderMsgs)}锛岀粓姝㈠鍏�"; 
+                throw new UserFriendlyException(errorMsg); 
+            } 
+ 
+            #endregion 
+ 
+            foreach (var impItem in importItems) 
+            { 
+                if (impItem.OrderNo.IsNullOrWhiteSpace()) 
+                { 
+                    continue; 
+                } 
+ 
+                if (impItem.OrderNo.IsNullOrWhiteSpace()) 
+                { 
+                    var errorMsg = $"瀵煎叆澶辫触锛侀厤缃紝绗瑊impItem.RowIndex}琛岋細WmsInOutStockOrder鍚嶇О涓嶈兘涓虹┖"; 
+                    throw new UserFriendlyException(errorMsg); 
+                } 
+ 
+                var oldWmsInOutStockOrder = await wmsInOutStockOrderRepository.FindByNameAsync(impItem.OrderNo); 
+                if (oldWmsInOutStockOrder != null) 
+                { 
+                    var wmsInOutStockOrderUpdateDto = new WmsInOutStockOrderUpdateDto 
+                    { 
+                        OrderNo = impItem.OrderNo,
+OrderStatus = impItem.OrderStatus,
+MaterialName = impItem.MaterialName,
+MaterialNo = impItem.MaterialNo,
+MaterialModel = impItem.MaterialModel,
+MaterialBatch = impItem.MaterialBatch,
+OrderType = impItem.OrderType,
+StockType = impItem.StockType,
+MaterialNumber = impItem.MaterialNumber,
+DistributeNumber = impItem.DistributeNumber,
+CompleteNumber = impItem.CompleteNumber,
+Priority = impItem.Priority,
+PlanNo = impItem.PlanNo,
+OperateTime = impItem.OperateTime,
+Remark = impItem.Remark,
+IsDisabled = impItem.IsDisabled,
+ 
+                    }; 
+ 
+                    wmsInOutStockOrderUpdateDtos.Add((impItem.RowIndex, oldWmsInOutStockOrder.Id, wmsInOutStockOrderUpdateDto)); 
+                } 
+                else 
+                { 
+                    var wmsInOutStockOrderCreateDto = new WmsInOutStockOrderCreateDto 
+                    { 
+                        OrderNo = impItem.OrderNo,
+OrderStatus = impItem.OrderStatus,
+MaterialName = impItem.MaterialName,
+MaterialNo = impItem.MaterialNo,
+MaterialModel = impItem.MaterialModel,
+MaterialBatch = impItem.MaterialBatch,
+OrderType = impItem.OrderType,
+StockType = impItem.StockType,
+MaterialNumber = impItem.MaterialNumber,
+DistributeNumber = impItem.DistributeNumber,
+CompleteNumber = impItem.CompleteNumber,
+Priority = impItem.Priority,
+PlanNo = impItem.PlanNo,
+OperateTime = impItem.OperateTime,
+Remark = impItem.Remark,
+IsDisabled = impItem.IsDisabled,
+ 
+                    }; 
+ 
+                    wmsInOutStockOrderCreateDtos.Add((impItem.RowIndex, wmsInOutStockOrderCreateDto)); 
+                } 
+            } 
+        } 
+ 
+        // 鏂板 
+        foreach (var wmsInOutStockOrderDto in wmsInOutStockOrderCreateDtos) 
+        { 
+            try 
+            { 
+                await CreateAsync(wmsInOutStockOrderDto.Item); 
+            } 
+            catch (Exception e) 
+            { 
+                var errorMsg = $"瀵煎叆澶辫触锛侀厤缃紝绗瑊wmsInOutStockOrderDto.RowIndex}琛岋細{e.Message}锛岀粓姝㈠鍏�"; 
+                throw new UserFriendlyException(errorMsg); 
+            } 
+        } 
+ 
+        // 鏇存柊 
+        foreach (var wmsInOutStockOrderDto in wmsInOutStockOrderUpdateDtos) 
+        { 
+            try 
+            { 
+                await UpdateAsync(wmsInOutStockOrderDto.Id, wmsInOutStockOrderDto.Item); 
+            } 
+            catch (Exception e) 
+            { 
+                var errorMsg = $"瀵煎叆澶辫触锛侀厤缃紝绗瑊wmsInOutStockOrderDto.RowIndex}琛岋細{e.Message}锛岀粓姝㈠鍏�"; 
+                throw new UserFriendlyException(errorMsg); 
+            } 
+        } 
+    } 
+ 
+    /// <summary> 
+    /// 瀵煎嚭鍑哄叆搴撳崟鎹� 
+    /// </summary> 
+    /// <param name="input"></param> 
+    /// <returns></returns> 
+    public async Task<(Dictionary<string, object> Sheets, string FileName)> ExportAsync(GetWmsInOutStockOrderInput input) 
+    { 
+        Check.NotNull(input, nameof(input)); 
+ 
+        if (input.Sorting.IsNullOrWhiteSpace()) 
+        { 
+            input.Sorting = nameof(WmsInOutStockOrder.Sort); 
+        } 
+ 
+        #region 鍔ㄦ�佹瀯閫犳煡璇㈡潯浠�  
+ 
+        //鍔ㄦ�佹瀯閫犳煡璇㈡潯浠�  
+        var whereConditions = DynamicGetQueryParams(input); 
+ 
+        #endregion 
+ 
+ 
+        var list = await wmsInOutStockOrderRepository.GetListAsync(whereConditions, input.Sorting, input.MaxResultCount, input.SkipCount, includeDetails: true); 
+        var result = ObjectMapper.Map<List<WmsInOutStockOrder>, List<WmsInOutStockOrderDto>>(list); 
+ 
+        var sheets = new Dictionary<string, object> 
+        { 
+            ["閰嶇疆"] = ExportHelper.ConvertListToExportData(result), 
+        }; 
+ 
+        var fileName = result.Count > 1 ? "鍑哄叆搴撳崟鎹垪琛�" : result.Count == 1 ? result[0]?.OrderNo : "WmsInOutStockOrder妯$増"; 
+        return (sheets, fileName); 
+    } 
+ 
+    /// <summary> 
+    /// 鏍¢獙鍑哄叆搴撳崟鎹紝褰撴柊寤烘垨鏇存柊鏃� 
+    /// </summary> 
+    /// <param name="input"></param> 
+    /// <returns></returns> 
+    protected Task CheckCreateOrUpdateDtoAsync(WmsInOutStockOrderCreateOrUpdateDtoBase input) 
+    { 
+        Check.NotNull(input, nameof(input)); 
+                Check.NotNullOrWhiteSpace(input.OrderNo, "鍗曟嵁缂栧彿", 50);
+        Check.NotNull(input.OrderStatus, "鍗曟嵁鐘舵��");
+        Check.NotNullOrWhiteSpace(input.MaterialNo, "鐗╂枡浠跺彿", 50);
+        Check.NotNullOrWhiteSpace(input.MaterialBatch, "鎵规鍙�", 50);
+        Check.NotNull(input.OrderType, "鍗曟嵁绫诲瀷");
+        Check.NotNull(input.StockType, "鎿嶄綔绫诲瀷锛堟灇涓惧�硷級");
+        Check.NotNull(input.MaterialNumber, "鍗曟嵁鏁伴噺");
+        Check.NotNull(input.DistributeNumber, "涓嬪彂鏁伴噺");
+        Check.NotNull(input.CompleteNumber, "瀹屾垚鏁伴噺");
+        Check.NotNull(input.Priority, "浼樺厛绾�");
+ 
+        return Task.CompletedTask; 
+    } 
+} 
diff --git a/HIAWms/server/src/CMS.Plugin.HIAWms.Application/Implements/WmsInOutStockOrderDetailAppService.cs b/HIAWms/server/src/CMS.Plugin.HIAWms.Application/Implements/WmsInOutStockOrderDetailAppService.cs
new file mode 100644
index 0000000..4ec146d
--- /dev/null
+++ b/HIAWms/server/src/CMS.Plugin.HIAWms.Application/Implements/WmsInOutStockOrderDetailAppService.cs
@@ -0,0 +1,426 @@
+using CMS.Plugin.HIAWms.Application.Contracts.Dtos.WmsInOutStockOrderDetail; 
+using CMS.Plugin.HIAWms.Application.Contracts.Services; 
+using CMS.Plugin.HIAWms.Domain.Shared; 
+using CmsQueryExtensions; 
+using CMS.Plugin.HIAWms.Domain.WmsInOutStockOrderDetail; 
+using CmsQueryExtensions.Extension; 
+using System.Linq.Expressions; 
+using Volo.Abp; 
+using Volo.Abp.Application.Dtos; 
+using Volo.Abp.Data; 
+using Volo.Abp.ObjectExtending; 
+using Volo.Abp.ObjectMapping; 
+ 
+namespace CMS.Plugin.HIAWms.Application.Implements; 
+ 
+/// <summary> 
+/// 鍑哄叆搴撳崟鎹鎯呭簲鐢ㄦ湇鍔� 
+/// </summary> 
+public class WmsInOutStockOrderDetailAppService : CMSPluginAppService, IWmsInOutStockOrderDetailAppService 
+{ 
+    private readonly IWmsInOutStockOrderDetailRepository wmsInOutStockOrderDetailRepository; 
+ 
+    /// <summary> 
+    /// Initializes a new instance of the <see cref="WmsInOutStockOrderDetailAppService"/> class. 
+    /// </summary> 
+    /// <param name="WmsInOutStockOrderDetailRepository">The task job repository.</param> 
+    public WmsInOutStockOrderDetailAppService(IWmsInOutStockOrderDetailRepository _WmsInOutStockOrderDetailRepository) 
+    { 
+        wmsInOutStockOrderDetailRepository = _WmsInOutStockOrderDetailRepository; 
+    } 
+ 
+    /// <summary> 
+    /// 鑾峰彇鎸囧畾鍑哄叆搴撳崟鎹鎯� 
+    /// </summary> 
+    /// <param name="id"></param> 
+    /// <returns></returns> 
+    public virtual async Task<WmsInOutStockOrderDetailDto> GetAsync(Guid id) 
+    { 
+        return ObjectMapper.Map<WmsInOutStockOrderDetail, WmsInOutStockOrderDetailDto>(await wmsInOutStockOrderDetailRepository.GetAsync(id)); 
+    } 
+ 
+    /// <summary> 
+    /// 鍒嗛〉鑾峰彇鍑哄叆搴撳崟鎹鎯� 
+    /// </summary> 
+    /// <param name="input"></param> 
+    /// <returns></returns> 
+    public virtual async Task<PagedResultDto<WmsInOutStockOrderDetailDto>> GetListAsync(GetWmsInOutStockOrderDetailInput input) 
+    { 
+        Check.NotNull(input, nameof(input)); 
+ 
+        if (input.Sorting.IsNullOrWhiteSpace()) 
+        { 
+            input.Sorting = nameof(WmsInOutStockOrderDetail.Sort); 
+        } 
+ 
+        #region 鍔ㄦ�佹瀯閫犳煡璇㈡潯浠�  
+ 
+        //鍔ㄦ�佹瀯閫犳煡璇㈡潯浠�  
+        var whereConditions = DynamicGetQueryParams(input); 
+ 
+        #endregion 
+ 
+        var count = await wmsInOutStockOrderDetailRepository.GetCountAsync(whereConditions); 
+        var list = await wmsInOutStockOrderDetailRepository.GetListAsync(whereConditions, input.Sorting, input.MaxResultCount, input.SkipCount); 
+ 
+        return new PagedResultDto<WmsInOutStockOrderDetailDto>(count, ObjectMapper.Map<List<WmsInOutStockOrderDetail>, List<WmsInOutStockOrderDetailDto>>(list)); 
+    } 
+ 
+    /// <summary>  
+    /// 鍔ㄦ�佹瀯閫犳煡璇㈡潯浠�  
+    /// </summary>  
+    /// <param name="input">杈撳叆鍙傛暟</param>  
+    /// <returns></returns>  
+    private FunReturnResultModel<Expression<Func<WmsInOutStockOrderDetail, bool>>> DynamicGetQueryParams(GetWmsInOutStockOrderDetailInput input) 
+    { 
+        //鍔ㄦ�佹瀯閫犳煡璇㈡潯浠�  
+        var whereConditions = WhereConditionsExtensions.GetWhereConditions<WmsInOutStockOrderDetail, GetWmsInOutStockOrderDetailInput>(input); 
+        if (!whereConditions.IsSuccess) 
+        { 
+            throw new Exception("鍔ㄦ�佹瀯閫犳煡璇㈡潯浠跺け璐�:" + whereConditions.ErrMsg); 
+        } 
+ 
+        //涔熷彲鍐嶆鑷畾涔夋瀯寤烘煡璇㈡潯浠�  
+        Expression<Func<WmsInOutStockOrderDetail, bool>> extendExpression = a => a.IsDeleted == false; 
+        // 浣跨敤 System.Linq.PredicateBuilder 鐨� And 
+        var pres = (System.Linq.Expressions.Expression<Func<WmsInOutStockOrderDetail, bool>>)(whereConditions.data); 
+        whereConditions.data = System.Linq.PredicateBuilder.And(pres, extendExpression); 
+ 
+        return whereConditions; 
+    } 
+ 
+    /// <summary> 
+    /// 鏂板缓鍑哄叆搴撳崟鎹鎯� 
+    /// </summary> 
+    /// <param name="input"></param> 
+    /// <returns></returns> 
+    /// <exception cref="UserFriendlyException"></exception> 
+    public virtual async Task<WmsInOutStockOrderDetailDto> CreateAsync(WmsInOutStockOrderDetailCreateDto input) 
+    { 
+        await CheckCreateOrUpdateDtoAsync(input); 
+ 
+        var exist = await wmsInOutStockOrderDetailRepository.NameExistAsync(input.MaterialId); 
+        if (exist) 
+        { 
+            throw new UserFriendlyException(L[CMSPluginDomainErrorCodes.NameAlreadyExists, input.MaterialId]); 
+        } 
+ 
+        var maxSort = await wmsInOutStockOrderDetailRepository.GetMaxSortAsync(); 
+        var sort = input.Sort ?? maxSort; 
+ 
+        var insertObj = ObjectMapper.Map<WmsInOutStockOrderDetailCreateDto, WmsInOutStockOrderDetail>(input); 
+        insertObj.Sort = sort; 
+        input.MapExtraPropertiesTo(insertObj, MappingPropertyDefinitionChecks.None); 
+ 
+        await wmsInOutStockOrderDetailRepository.InsertAsync(insertObj); 
+ 
+        //if (input.Sort.HasValue && insertObj.Sort != maxSort) 
+        //{ 
+        //    await AdjustSortAsync(insertObj.Id, insertObj.Sort); 
+        //} 
+ 
+        return ObjectMapper.Map<WmsInOutStockOrderDetail, WmsInOutStockOrderDetailDto>(insertObj); 
+    } 
+ 
+    /// <summary> 
+    /// 鏇存柊鍑哄叆搴撳崟鎹鎯� 
+    /// </summary> 
+    /// <param name="id"></param> 
+    /// <param name="input"></param> 
+    /// <returns></returns> 
+    /// <exception cref="UserFriendlyException"></exception> 
+    public virtual async Task<WmsInOutStockOrderDetailDto> UpdateAsync(Guid id, WmsInOutStockOrderDetailUpdateDto input) 
+    { 
+        await CheckCreateOrUpdateDtoAsync(input); 
+ 
+        var updateObj = await wmsInOutStockOrderDetailRepository.GetAsync(id); 
+        var exist = await wmsInOutStockOrderDetailRepository.NameExistAsync(input.MaterialId, updateObj.Id); 
+        if (exist) 
+        { 
+            throw new UserFriendlyException(L[CMSPluginDomainErrorCodes.NameAlreadyExists, input.MaterialId]); 
+        } 
+ 
+        updateObj.SetConcurrencyStampIfNotNull(input.ConcurrencyStamp); 
+        input.MapExtraPropertiesTo(updateObj, MappingPropertyDefinitionChecks.None); 
+ 
+                updateObj.OrderNo = input.OrderNo;
+        updateObj.MaterialId = input.MaterialId;
+        updateObj.OrderType = input.OrderType;
+        updateObj.MaterialNo = input.MaterialNo;
+        updateObj.MaterialName = input.MaterialName;
+        updateObj.ContainerNo = input.ContainerNo;
+        updateObj.MaterialModel = input.MaterialModel;
+        updateObj.MaterialBatch = input.MaterialBatch;
+        updateObj.IsDisabled = input.IsDisabled;
+        updateObj.Remark = input.Remark;
+ 
+ 
+        await wmsInOutStockOrderDetailRepository.UpdateAsync(updateObj); 
+ 
+        return ObjectMapper.Map<WmsInOutStockOrderDetail, WmsInOutStockOrderDetailDto>(updateObj); 
+    } 
+ 
+    /// <summary> 
+    /// 鍏嬮殕鍑哄叆搴撳崟鎹鎯� 
+    /// </summary> 
+    /// <param name="ids"></param> 
+    /// <returns></returns> 
+    public async Task<List<WmsInOutStockOrderDetailDto>> CloneAsync(IEnumerable<Guid> ids) 
+    { 
+        //var wmsInOutStockOrderDetails = new List<WmsInOutStockOrderDetail>(); 
+        //if (ids != null) 
+        //{ 
+        //    var sort = await wmsInOutStockOrderDetailRepository.GetMaxSortAsync(); 
+        //    foreach (var id in ids) 
+        //    { 
+        //        var WmsInOutStockOrderDetail = await wmsInOutStockOrderDetailRepository.FindAsync(id); 
+        //        if (WmsInOutStockOrderDetail != null) 
+        //        { 
+        //            var name = WmsInOutStockOrderDetail.Name + WmsInOutStockOrderDetailConsts.CloneTag; 
+        //            var notExist = false; 
+        //            while (!notExist) 
+        //            { 
+        //                var exist = await wmsInOutStockOrderDetailRepository.NameExistAsync(name); 
+        //                if (exist || wmsInOutStockOrderDetails.Any(x => x.Name == name)) 
+        //                { 
+        //                    name += WmsInOutStockOrderDetailConsts.CloneTag; 
+        //                    continue; 
+        //                } 
+ 
+        //                notExist = true; 
+        //            } 
+ 
+        //            //WmsInOutStockOrderDetail = await wmsInOutStockOrderDetailRepository.InsertAsync(WmsInOutStockOrderDetail.Clone(GuidGenerator.Create(), name, sort++)); 
+        //            wmsInOutStockOrderDetails.Add(WmsInOutStockOrderDetail); 
+        //        } 
+        //    } 
+        //} 
+ 
+        //return ObjectMapper.Map<List<WmsInOutStockOrderDetail>, List<WmsInOutStockOrderDetailDto>>(wmsInOutStockOrderDetails); 
+        return new List<WmsInOutStockOrderDetailDto>(); 
+    } 
+ 
+    /// <summary> 
+    /// 鍒犻櫎鍗曚釜鍑哄叆搴撳崟鎹鎯� 
+    /// </summary> 
+    /// <param name="id"></param> 
+    /// <returns></returns> 
+    public virtual Task DeleteAsync(Guid id) 
+    { 
+        return wmsInOutStockOrderDetailRepository.DeleteAsync(id); 
+    } 
+ 
+    /// <summary> 
+    /// 鍒犻櫎澶氫釜鍑哄叆搴撳崟鎹鎯� 
+    /// </summary> 
+    /// <param name="ids"></param> 
+    /// <returns></returns> 
+    public async Task DeleteManyAsync(IEnumerable<Guid> ids) 
+    { 
+        foreach (var id in ids) 
+        { 
+            await DeleteAsync(id); 
+        } 
+    } 
+ 
+    /// <summary> 
+    /// 璋冩暣鎺掑簭鍑哄叆搴撳崟鎹鎯� 
+    /// </summary> 
+    /// <param name="id"></param> 
+    /// <param name="sort"></param> 
+    /// <returns></returns> 
+    public virtual async Task AdjustSortAsync(Guid id, int sort) 
+    { 
+        var list = await wmsInOutStockOrderDetailRepository.GetListAsync(null, nameof(WmsInOutStockOrderDetail.Sort)); 
+        if (list != null && list.Any()) 
+        { 
+            var initSort = 1; 
+            list.ForEach(x => x.AdjustSort(initSort++)); 
+            var entity = list.FirstOrDefault(x => x.Id == id); 
+            if (entity != null) 
+            { 
+                if (sort == 1) 
+                { 
+                    list.Where(x => x.Id != id).ToList()?.ForEach(x => x.AdjustSort(x.Sort + 1)); 
+                } 
+                else if (entity.Sort > sort) 
+                { 
+                    list.Where(x => x.Id != id && x.Sort >= sort).ToList()?.ForEach(x => x.AdjustSort(x.Sort + 1)); 
+                    list.Where(x => x.Id != id && x.Sort < sort).ToList()?.ForEach(x => x.AdjustSort(x.Sort - 1)); 
+                } 
+                else if (entity.Sort < sort) 
+                { 
+                    list.Where(x => x.Id != id && x.Sort > sort).ToList()?.ForEach(x => x.AdjustSort(x.Sort + 1)); 
+                    list.Where(x => x.Id != id && x.Sort <= sort).ToList()?.ForEach(x => x.AdjustSort(x.Sort - 1)); 
+                } 
+ 
+                entity.AdjustSort(sort); 
+            } 
+        } 
+ 
+        await wmsInOutStockOrderDetailRepository.UpdateManyAsync(list); 
+    } 
+ 
+    /// <summary> 
+    /// 瀵煎叆鍑哄叆搴撳崟鎹鎯� 
+    /// </summary> 
+    /// <param name="input"></param> 
+    /// <returns></returns> 
+    /// <exception cref="UserFriendlyException"></exception> 
+    public async Task ImportAsync(WmsInOutStockOrderDetailsImportModel input) 
+    { 
+        Check.NotNull(input, nameof(input)); 
+ 
+        var wmsInOutStockOrderDetailCreateDtos = new List<(int RowIndex, WmsInOutStockOrderDetailCreateDto Item)>(); 
+        var wmsInOutStockOrderDetailUpdateDtos = new List<(int RowIndex, Guid Id, WmsInOutStockOrderDetailUpdateDto Item)>(); 
+        var importItems = input.WmsInOutStockOrderDetails; 
+ 
+        if (importItems != null && importItems.Any()) 
+        { 
+            #region 瀵煎叆鏍¢獙 
+ 
+            // 鍒ゆ柇鍚嶇О鏄惁閲嶅锛屽苟杈撳嚭绗嚑琛岄噸澶� 
+            var duplicateWmsInOutStockOrderDetails = importItems.GroupBy(x => x.MaterialId).Where(x => x.Count() > 1).ToList(); 
+            if (duplicateWmsInOutStockOrderDetails?.Any() == true) 
+            { 
+                var duplicateWmsInOutStockOrderDetailMsgs = duplicateWmsInOutStockOrderDetails.Select(x => $"绗� {string.Join(",", x.Select(x => x.RowIndex))} 琛岋細{x.Key}  鍚嶇О閲嶅"); 
+                var errorMsg = $"瀵煎叆澶辫触锛侀厤缃紝 {string.Join(",", duplicateWmsInOutStockOrderDetailMsgs)}锛岀粓姝㈠鍏�"; 
+                throw new UserFriendlyException(errorMsg); 
+            } 
+ 
+            #endregion 
+ 
+            foreach (var impItem in importItems) 
+            { 
+                if (impItem.MaterialId.IsNullOrWhiteSpace()) 
+                { 
+                    continue; 
+                } 
+ 
+                if (impItem.MaterialId.IsNullOrWhiteSpace()) 
+                { 
+                    var errorMsg = $"瀵煎叆澶辫触锛侀厤缃紝绗瑊impItem.RowIndex}琛岋細WmsInOutStockOrderDetail鍚嶇О涓嶈兘涓虹┖"; 
+                    throw new UserFriendlyException(errorMsg); 
+                } 
+ 
+                var oldWmsInOutStockOrderDetail = await wmsInOutStockOrderDetailRepository.FindByNameAsync(impItem.MaterialId); 
+                if (oldWmsInOutStockOrderDetail != null) 
+                { 
+                    var wmsInOutStockOrderDetailUpdateDto = new WmsInOutStockOrderDetailUpdateDto 
+                    { 
+                        OrderNo = impItem.OrderNo,
+MaterialId = impItem.MaterialId,
+OrderType = impItem.OrderType,
+MaterialNo = impItem.MaterialNo,
+MaterialName = impItem.MaterialName,
+ContainerNo = impItem.ContainerNo,
+MaterialModel = impItem.MaterialModel,
+MaterialBatch = impItem.MaterialBatch,
+IsDisabled = impItem.IsDisabled,
+Remark = impItem.Remark,
+ 
+                    }; 
+ 
+                    wmsInOutStockOrderDetailUpdateDtos.Add((impItem.RowIndex, oldWmsInOutStockOrderDetail.Id, wmsInOutStockOrderDetailUpdateDto)); 
+                } 
+                else 
+                { 
+                    var wmsInOutStockOrderDetailCreateDto = new WmsInOutStockOrderDetailCreateDto 
+                    { 
+                        OrderNo = impItem.OrderNo,
+MaterialId = impItem.MaterialId,
+OrderType = impItem.OrderType,
+MaterialNo = impItem.MaterialNo,
+MaterialName = impItem.MaterialName,
+ContainerNo = impItem.ContainerNo,
+MaterialModel = impItem.MaterialModel,
+MaterialBatch = impItem.MaterialBatch,
+IsDisabled = impItem.IsDisabled,
+Remark = impItem.Remark,
+ 
+                    }; 
+ 
+                    wmsInOutStockOrderDetailCreateDtos.Add((impItem.RowIndex, wmsInOutStockOrderDetailCreateDto)); 
+                } 
+            } 
+        } 
+ 
+        // 鏂板 
+        foreach (var wmsInOutStockOrderDetailDto in wmsInOutStockOrderDetailCreateDtos) 
+        { 
+            try 
+            { 
+                await CreateAsync(wmsInOutStockOrderDetailDto.Item); 
+            } 
+            catch (Exception e) 
+            { 
+                var errorMsg = $"瀵煎叆澶辫触锛侀厤缃紝绗瑊wmsInOutStockOrderDetailDto.RowIndex}琛岋細{e.Message}锛岀粓姝㈠鍏�"; 
+                throw new UserFriendlyException(errorMsg); 
+            } 
+        } 
+ 
+        // 鏇存柊 
+        foreach (var wmsInOutStockOrderDetailDto in wmsInOutStockOrderDetailUpdateDtos) 
+        { 
+            try 
+            { 
+                await UpdateAsync(wmsInOutStockOrderDetailDto.Id, wmsInOutStockOrderDetailDto.Item); 
+            } 
+            catch (Exception e) 
+            { 
+                var errorMsg = $"瀵煎叆澶辫触锛侀厤缃紝绗瑊wmsInOutStockOrderDetailDto.RowIndex}琛岋細{e.Message}锛岀粓姝㈠鍏�"; 
+                throw new UserFriendlyException(errorMsg); 
+            } 
+        } 
+    } 
+ 
+    /// <summary> 
+    /// 瀵煎嚭鍑哄叆搴撳崟鎹鎯� 
+    /// </summary> 
+    /// <param name="input"></param> 
+    /// <returns></returns> 
+    public async Task<(Dictionary<string, object> Sheets, string FileName)> ExportAsync(GetWmsInOutStockOrderDetailInput input) 
+    { 
+        Check.NotNull(input, nameof(input)); 
+ 
+        if (input.Sorting.IsNullOrWhiteSpace()) 
+        { 
+            input.Sorting = nameof(WmsInOutStockOrderDetail.Sort); 
+        } 
+ 
+        #region 鍔ㄦ�佹瀯閫犳煡璇㈡潯浠�  
+ 
+        //鍔ㄦ�佹瀯閫犳煡璇㈡潯浠�  
+        var whereConditions = DynamicGetQueryParams(input); 
+ 
+        #endregion 
+ 
+ 
+        var list = await wmsInOutStockOrderDetailRepository.GetListAsync(whereConditions, input.Sorting, input.MaxResultCount, input.SkipCount, includeDetails: true); 
+        var result = ObjectMapper.Map<List<WmsInOutStockOrderDetail>, List<WmsInOutStockOrderDetailDto>>(list); 
+ 
+        var sheets = new Dictionary<string, object> 
+        { 
+            ["閰嶇疆"] = ExportHelper.ConvertListToExportData(result), 
+        }; 
+ 
+        var fileName = result.Count > 1 ? "鍑哄叆搴撳崟鎹鎯呭垪琛�" : result.Count == 1 ? result[0]?.MaterialId : "WmsInOutStockOrderDetail妯$増"; 
+        return (sheets, fileName); 
+    } 
+ 
+    /// <summary> 
+    /// 鏍¢獙鍑哄叆搴撳崟鎹鎯咃紝褰撴柊寤烘垨鏇存柊鏃� 
+    /// </summary> 
+    /// <param name="input"></param> 
+    /// <returns></returns> 
+    protected Task CheckCreateOrUpdateDtoAsync(WmsInOutStockOrderDetailCreateOrUpdateDtoBase input) 
+    { 
+        Check.NotNull(input, nameof(input)); 
+                Check.NotNullOrWhiteSpace(input.OrderNo, "鍗曟嵁缂栧彿", 50);
+        Check.NotNullOrWhiteSpace(input.MaterialId, "鐗╂枡鍞竴鐮�", 64);
+        Check.NotNull(input.OrderType, "鍗曟嵁绫诲瀷锛堟灇涓惧�硷級");
+        Check.NotNullOrWhiteSpace(input.MaterialNo, "鐗╂枡浠跺彿", 50);
+ 
+        return Task.CompletedTask; 
+    } 
+} 
diff --git a/HIAWms/server/src/CMS.Plugin.HIAWms.Application/MapperProfiles/WmsInOutStockOrderAutoMapperProfile.cs b/HIAWms/server/src/CMS.Plugin.HIAWms.Application/MapperProfiles/WmsInOutStockOrderAutoMapperProfile.cs
new file mode 100644
index 0000000..b403449
--- /dev/null
+++ b/HIAWms/server/src/CMS.Plugin.HIAWms.Application/MapperProfiles/WmsInOutStockOrderAutoMapperProfile.cs
@@ -0,0 +1,26 @@
+using AutoMapper; 
+using CMS.Plugin.HIAWms.Application.Contracts.Dtos.WmsInOutStockOrder; 
+using CMS.Plugin.HIAWms.Domain.WmsInOutStockOrder; 
+using Volo.Abp.ObjectExtending; 
+ 
+namespace CMS.Plugin.HIAWms.Application.MapperProfiles; 
+ 
+/// <summary> 
+/// 鍑哄叆搴撳崟鎹瓵utoMapper閰嶇疆 
+/// </summary> 
+/// <seealso cref="AutoMapper.Profile" /> 
+public class WmsInOutStockOrderAutoMapperProfile : Profile 
+{ 
+    /// <summary> 
+    /// Initializes a new instance of the <see cref="WmsInOutStockOrderAutoMapperProfile"/> class. 
+    /// </summary> 
+    public WmsInOutStockOrderAutoMapperProfile() 
+    { 
+        /* You can configure your AutoMapper mapping configuration here. 
+         * Alternatively, you can split your mapping configurations 
+         * into multiple profile classes for a better organization. */ 
+        CreateMap<WmsInOutStockOrder, WmsInOutStockOrderDto>(MemberList.None).MapExtraProperties(MappingPropertyDefinitionChecks.None); 
+        CreateMap<WmsInOutStockOrderCreateDto, WmsInOutStockOrder>(MemberList.None).MapExtraProperties(MappingPropertyDefinitionChecks.None); 
+        CreateMap<GetWmsInOutStockOrderInput, WmsInOutStockOrder>(MemberList.None).MapExtraProperties(MappingPropertyDefinitionChecks.None); 
+    } 
+} 
diff --git a/HIAWms/server/src/CMS.Plugin.HIAWms.Application/MapperProfiles/WmsInOutStockOrderDetailAutoMapperProfile.cs b/HIAWms/server/src/CMS.Plugin.HIAWms.Application/MapperProfiles/WmsInOutStockOrderDetailAutoMapperProfile.cs
new file mode 100644
index 0000000..034c7fa
--- /dev/null
+++ b/HIAWms/server/src/CMS.Plugin.HIAWms.Application/MapperProfiles/WmsInOutStockOrderDetailAutoMapperProfile.cs
@@ -0,0 +1,26 @@
+using AutoMapper; 
+using CMS.Plugin.HIAWms.Application.Contracts.Dtos.WmsInOutStockOrderDetail; 
+using CMS.Plugin.HIAWms.Domain.WmsInOutStockOrderDetail; 
+using Volo.Abp.ObjectExtending; 
+ 
+namespace CMS.Plugin.HIAWms.Application.MapperProfiles; 
+ 
+/// <summary> 
+/// 鍑哄叆搴撳崟鎹鎯匒utoMapper閰嶇疆 
+/// </summary> 
+/// <seealso cref="AutoMapper.Profile" /> 
+public class WmsInOutStockOrderDetailAutoMapperProfile : Profile 
+{ 
+    /// <summary> 
+    /// Initializes a new instance of the <see cref="WmsInOutStockOrderDetailAutoMapperProfile"/> class. 
+    /// </summary> 
+    public WmsInOutStockOrderDetailAutoMapperProfile() 
+    { 
+        /* You can configure your AutoMapper mapping configuration here. 
+         * Alternatively, you can split your mapping configurations 
+         * into multiple profile classes for a better organization. */ 
+        CreateMap<WmsInOutStockOrderDetail, WmsInOutStockOrderDetailDto>(MemberList.None).MapExtraProperties(MappingPropertyDefinitionChecks.None); 
+        CreateMap<WmsInOutStockOrderDetailCreateDto, WmsInOutStockOrderDetail>(MemberList.None).MapExtraProperties(MappingPropertyDefinitionChecks.None); 
+        CreateMap<GetWmsInOutStockOrderDetailInput, WmsInOutStockOrderDetail>(MemberList.None).MapExtraProperties(MappingPropertyDefinitionChecks.None); 
+    } 
+} 
diff --git a/HIAWms/server/src/CMS.Plugin.HIAWms.Domain/WmsInOutStockOrder/IWmsInOutStockOrderRepository.cs b/HIAWms/server/src/CMS.Plugin.HIAWms.Domain/WmsInOutStockOrder/IWmsInOutStockOrderRepository.cs
new file mode 100644
index 0000000..22f5cc3
--- /dev/null
+++ b/HIAWms/server/src/CMS.Plugin.HIAWms.Domain/WmsInOutStockOrder/IWmsInOutStockOrderRepository.cs
@@ -0,0 +1,53 @@
+using CmsQueryExtensions.Extension; 
+using System.Linq.Expressions; 
+using Volo.Abp.Domain.Repositories; 
+ 
+namespace CMS.Plugin.HIAWms.Domain.WmsInOutStockOrder; 
+ 
+/// <summary> 
+/// 鍑哄叆搴撳崟鎹粨鍌� 
+/// </summary> 
+public interface IWmsInOutStockOrderRepository : IBasicRepository<WmsInOutStockOrder, Guid> 
+{ 
+    /// <summary> 
+    /// 鎸夌収鍚嶇О鏌ユ壘鍑哄叆搴撳崟鎹� 
+    /// </summary> 
+    /// <param name="name"></param> 
+    /// <param name="cancellationToken"></param> 
+    /// <returns></returns> 
+    Task<WmsInOutStockOrder> FindByNameAsync(string name, CancellationToken cancellationToken = default); 
+ 
+    /// <summary> 
+    /// 楠岃瘉鍚嶇О鏄惁瀛樺湪鍑哄叆搴撳崟鎹� 
+    /// </summary> 
+    /// <param name="name"></param> 
+    /// <param name="id"></param> 
+    /// <returns></returns> 
+    Task<bool> NameExistAsync(string name, Guid? id = null); 
+ 
+    /// <summary> 
+    /// 鑾峰彇鏈�澶ф帓搴忓嚭鍏ュ簱鍗曟嵁 
+    /// </summary> 
+    /// <returns></returns> 
+    Task<int> GetMaxSortAsync(); 
+ 
+    /// <summary> 
+    /// 鑾峰彇鍒嗛〉鍒楄〃鍑哄叆搴撳崟鎹� 
+    /// </summary> 
+    /// <param name="whereConditions"></param> 
+    /// <param name="sorting"></param> 
+    /// <param name="maxResultCount"></param> 
+    /// <param name="skipCount"></param> 
+    /// <param name="includeDetails"></param> 
+    /// <param name="cancellationToken"></param> 
+    /// <returns></returns> 
+    Task<List<WmsInOutStockOrder>> GetListAsync(FunReturnResultModel<Expression<Func<WmsInOutStockOrder, bool>>> whereConditions, string sorting = null, int maxResultCount = int.MaxValue, int skipCount = 0, bool includeDetails = false, CancellationToken cancellationToken = default); 
+ 
+    /// <summary> 
+    /// 鑾峰彇鎬绘暟鍑哄叆搴撳崟鎹� 
+    /// </summary> 
+    /// <param name="whereConditions"></param> 
+    /// <param name="cancellationToken"></param> 
+    /// <returns></returns> 
+    Task<long> GetCountAsync(FunReturnResultModel<Expression<Func<WmsInOutStockOrder, bool>>> whereConditions, CancellationToken cancellationToken = default); 
+} 
diff --git a/HIAWms/server/src/CMS.Plugin.HIAWms.Domain/WmsInOutStockOrder/WmsInOutStockOrder.cs b/HIAWms/server/src/CMS.Plugin.HIAWms.Domain/WmsInOutStockOrder/WmsInOutStockOrder.cs
index 9dc46f9..d6f9e37 100644
--- a/HIAWms/server/src/CMS.Plugin.HIAWms.Domain/WmsInOutStockOrder/WmsInOutStockOrder.cs
+++ b/HIAWms/server/src/CMS.Plugin.HIAWms.Domain/WmsInOutStockOrder/WmsInOutStockOrder.cs
@@ -99,7 +99,7 @@
         /// <summary>
         /// 鏄惁绂佺敤
         /// </summary>
-        public virtual bool? IsDisabled { get; protected set; }
+        public virtual bool? IsDisabled { get; set; }
 
         /// <summary>
         /// Adjusts the sort.
diff --git a/HIAWms/server/src/CMS.Plugin.HIAWms.Domain/WmsInOutStockOrderDetail/IWmsInOutStockOrderDetailRepository.cs b/HIAWms/server/src/CMS.Plugin.HIAWms.Domain/WmsInOutStockOrderDetail/IWmsInOutStockOrderDetailRepository.cs
new file mode 100644
index 0000000..f064081
--- /dev/null
+++ b/HIAWms/server/src/CMS.Plugin.HIAWms.Domain/WmsInOutStockOrderDetail/IWmsInOutStockOrderDetailRepository.cs
@@ -0,0 +1,53 @@
+using CmsQueryExtensions.Extension; 
+using System.Linq.Expressions; 
+using Volo.Abp.Domain.Repositories; 
+ 
+namespace CMS.Plugin.HIAWms.Domain.WmsInOutStockOrderDetail; 
+ 
+/// <summary> 
+/// 鍑哄叆搴撳崟鎹鎯呬粨鍌� 
+/// </summary> 
+public interface IWmsInOutStockOrderDetailRepository : IBasicRepository<WmsInOutStockOrderDetail, Guid> 
+{ 
+    /// <summary> 
+    /// 鎸夌収鍚嶇О鏌ユ壘鍑哄叆搴撳崟鎹鎯� 
+    /// </summary> 
+    /// <param name="name"></param> 
+    /// <param name="cancellationToken"></param> 
+    /// <returns></returns> 
+    Task<WmsInOutStockOrderDetail> FindByNameAsync(string name, CancellationToken cancellationToken = default); 
+ 
+    /// <summary> 
+    /// 楠岃瘉鍚嶇О鏄惁瀛樺湪鍑哄叆搴撳崟鎹鎯� 
+    /// </summary> 
+    /// <param name="name"></param> 
+    /// <param name="id"></param> 
+    /// <returns></returns> 
+    Task<bool> NameExistAsync(string name, Guid? id = null); 
+ 
+    /// <summary> 
+    /// 鑾峰彇鏈�澶ф帓搴忓嚭鍏ュ簱鍗曟嵁璇︽儏 
+    /// </summary> 
+    /// <returns></returns> 
+    Task<int> GetMaxSortAsync(); 
+ 
+    /// <summary> 
+    /// 鑾峰彇鍒嗛〉鍒楄〃鍑哄叆搴撳崟鎹鎯� 
+    /// </summary> 
+    /// <param name="whereConditions"></param> 
+    /// <param name="sorting"></param> 
+    /// <param name="maxResultCount"></param> 
+    /// <param name="skipCount"></param> 
+    /// <param name="includeDetails"></param> 
+    /// <param name="cancellationToken"></param> 
+    /// <returns></returns> 
+    Task<List<WmsInOutStockOrderDetail>> GetListAsync(FunReturnResultModel<Expression<Func<WmsInOutStockOrderDetail, bool>>> whereConditions, string sorting = null, int maxResultCount = int.MaxValue, int skipCount = 0, bool includeDetails = false, CancellationToken cancellationToken = default); 
+ 
+    /// <summary> 
+    /// 鑾峰彇鎬绘暟鍑哄叆搴撳崟鎹鎯� 
+    /// </summary> 
+    /// <param name="whereConditions"></param> 
+    /// <param name="cancellationToken"></param> 
+    /// <returns></returns> 
+    Task<long> GetCountAsync(FunReturnResultModel<Expression<Func<WmsInOutStockOrderDetail, bool>>> whereConditions, CancellationToken cancellationToken = default); 
+} 
diff --git a/HIAWms/server/src/CMS.Plugin.HIAWms.Domain/WmsInOutStockOrderDetail/WmsInOutStockOrderDetail.cs b/HIAWms/server/src/CMS.Plugin.HIAWms.Domain/WmsInOutStockOrderDetail/WmsInOutStockOrderDetail.cs
index e27314c..5b0dbda 100644
--- a/HIAWms/server/src/CMS.Plugin.HIAWms.Domain/WmsInOutStockOrderDetail/WmsInOutStockOrderDetail.cs
+++ b/HIAWms/server/src/CMS.Plugin.HIAWms.Domain/WmsInOutStockOrderDetail/WmsInOutStockOrderDetail.cs
@@ -68,7 +68,7 @@
         /// <summary>
         /// 鏄惁绂佺敤
         /// </summary>
-        public virtual bool? IsDisabled { get; protected set; }
+        public virtual bool? IsDisabled { get; set; }
 
         /// <summary>
         /// Adjusts the sort.
diff --git a/HIAWms/server/src/CMS.Plugin.HIAWms.EntityFrameworkCore/Repositories/EfCoreWmsInOutStockOrderDetailRepository.cs b/HIAWms/server/src/CMS.Plugin.HIAWms.EntityFrameworkCore/Repositories/EfCoreWmsInOutStockOrderDetailRepository.cs
new file mode 100644
index 0000000..c997b24
--- /dev/null
+++ b/HIAWms/server/src/CMS.Plugin.HIAWms.EntityFrameworkCore/Repositories/EfCoreWmsInOutStockOrderDetailRepository.cs
@@ -0,0 +1,113 @@
+using CMS.Plugin.HIAWms.Domain.WmsInOutStockOrderDetail; 
+using CMS.Plugin.HIAWms.EntityFrameworkCore.Extensions; 
+using CmsQueryExtensions.Extension; 
+using Microsoft.EntityFrameworkCore; 
+using System.Linq.Dynamic.Core; 
+using System.Linq.Expressions; 
+using Volo.Abp.Domain.Repositories.EntityFrameworkCore; 
+using Volo.Abp.EntityFrameworkCore; 
+ 
+ 
+namespace CMS.Plugin.HIAWms.EntityFrameworkCore.Repositories; 
+ 
+/// <summary> 
+/// 鍑哄叆搴撳崟鎹鎯呬粨鍌ㄥ疄鐜� 
+/// </summary> 
+public class EfCoreWmsInOutStockOrderDetailRepository : EfCoreRepository<ICMSPluginDbContext, WmsInOutStockOrderDetail, Guid>, IWmsInOutStockOrderDetailRepository 
+{ 
+    /// <summary> 
+    /// Initializes a new instance of the <see cref="EfCoreWmsInOutStockOrderDetailRepository"/> class. 
+    /// </summary> 
+    /// <param name="dbContextProvider">The database context provider.</param> 
+    public EfCoreWmsInOutStockOrderDetailRepository(IDbContextProvider<ICMSPluginDbContext> dbContextProvider) 
+        : base(dbContextProvider) 
+    { 
+    } 
+ 
+    /// <summary> 
+    /// 鎸夌収鍚嶇О鏌ユ壘鍑哄叆搴撳崟鎹鎯� 
+    /// </summary> 
+    /// <param name="name"></param> 
+    /// <param name="cancellationToken"></param> 
+    /// <returns></returns> 
+    public virtual async Task<WmsInOutStockOrderDetail> FindByNameAsync(string name, CancellationToken cancellationToken = default) 
+    { 
+        return await (await GetDbSetAsync()) 
+            .IncludeDetails() 
+            .Where(x => !x.IsDeleted) 
+            .OrderByDescending(x=>x.CreationTime)  
+            .FirstOrDefaultAsync(t => t.MaterialId == name, GetCancellationToken(cancellationToken)); 
+    } 
+ 
+    /// <summary> 
+    /// 楠岃瘉鍚嶇О鏄惁瀛樺湪鍑哄叆搴撳崟鎹鎯� 
+    /// </summary> 
+    /// <param name="name">鏍¢獙鍊�</param> 
+    /// <param name="id"></param> 
+    /// <returns></returns> 
+    public async Task<bool> NameExistAsync(string name, Guid? id = null) 
+    { 
+        return await (await GetDbSetAsync()).WhereIf(id.HasValue, p => p.Id != id).Where(x => !x.IsDeleted).AnyAsync(x => x.MaterialId == name); 
+    } 
+ 
+    /// <summary> 
+    /// 鑾峰彇鏈�澶ф帓搴忓嚭鍏ュ簱鍗曟嵁璇︽儏 
+    /// </summary> 
+    /// <returns></returns> 
+    public async Task<int> GetMaxSortAsync() 
+    { 
+        var hasAny = await (await GetQueryableAsync()) 
+            .Where(x => !x.IsDeleted).AnyAsync(); 
+        if (!hasAny) 
+        { 
+            return 1; 
+        } 
+ 
+        var sort = await (await GetQueryableAsync()) 
+            .Where(x => !x.IsDeleted).MaxAsync(x => x.Sort); 
+        return sort + 1; 
+    } 
+ 
+    /// <summary> 
+    /// 鑾峰彇鍒嗛〉鍒楄〃鍑哄叆搴撳崟鎹鎯� 
+    /// </summary> 
+    /// <param name="whereConditions"></param> 
+    /// <param name="sorting"></param> 
+    /// <param name="maxResultCount"></param> 
+    /// <param name="skipCount"></param> 
+    /// <param name="includeDetails"></param> 
+    /// <param name="cancellationToken"></param> 
+    /// <returns></returns> 
+    public async Task<List<WmsInOutStockOrderDetail>> GetListAsync(FunReturnResultModel<Expression<Func<WmsInOutStockOrderDetail, bool>>> whereConditions, string sorting = null, int maxResultCount = int.MaxValue, int skipCount = 0, bool includeDetails = false, CancellationToken cancellationToken = default) 
+    { 
+        return await (await GetDbSetAsync()) 
+            .IncludeDetails(includeDetails) 
+            .WhereIf(whereConditions != null, whereConditions.data) 
+            .Where(x => !x.IsDeleted) 
+            .OrderByDescending(x=>x.CreationTime) 
+            .PageBy(skipCount, maxResultCount) 
+            .ToListAsync(GetCancellationToken(cancellationToken)); 
+    } 
+ 
+    /// <summary> 
+    /// 鑾峰彇鎬绘暟鍑哄叆搴撳崟鎹鎯� 
+    /// </summary> 
+    /// <param name="whereConditions"></param> 
+    /// <param name="cancellationToken"></param> 
+    /// <returns></returns> 
+    public async Task<long> GetCountAsync(FunReturnResultModel<Expression<Func<WmsInOutStockOrderDetail, bool>>> whereConditions, CancellationToken cancellationToken = default) 
+    { 
+        return await (await GetQueryableAsync()) 
+            .WhereIf(whereConditions != null, whereConditions.data) 
+            .Where(x => !x.IsDeleted) 
+            .CountAsync(cancellationToken: GetCancellationToken(cancellationToken)); 
+    } 
+ 
+ 
+    /// <inheritdoc /> 
+    public override async Task<IQueryable<WmsInOutStockOrderDetail>> WithDetailsAsync() 
+    { 
+        return (await GetQueryableAsync()) 
+            .Where(x => !x.IsDeleted).IncludeDetails(); 
+    } 
+} 
diff --git a/HIAWms/server/src/CMS.Plugin.HIAWms.EntityFrameworkCore/Repositories/EfCoreWmsInOutStockOrderRepository.cs b/HIAWms/server/src/CMS.Plugin.HIAWms.EntityFrameworkCore/Repositories/EfCoreWmsInOutStockOrderRepository.cs
new file mode 100644
index 0000000..30f58f9
--- /dev/null
+++ b/HIAWms/server/src/CMS.Plugin.HIAWms.EntityFrameworkCore/Repositories/EfCoreWmsInOutStockOrderRepository.cs
@@ -0,0 +1,113 @@
+using CMS.Plugin.HIAWms.Domain.WmsInOutStockOrder; 
+using CMS.Plugin.HIAWms.EntityFrameworkCore.Extensions; 
+using CmsQueryExtensions.Extension; 
+using Microsoft.EntityFrameworkCore; 
+using System.Linq.Dynamic.Core; 
+using System.Linq.Expressions; 
+using Volo.Abp.Domain.Repositories.EntityFrameworkCore; 
+using Volo.Abp.EntityFrameworkCore; 
+ 
+ 
+namespace CMS.Plugin.HIAWms.EntityFrameworkCore.Repositories; 
+ 
+/// <summary> 
+/// 鍑哄叆搴撳崟鎹粨鍌ㄥ疄鐜� 
+/// </summary> 
+public class EfCoreWmsInOutStockOrderRepository : EfCoreRepository<ICMSPluginDbContext, WmsInOutStockOrder, Guid>, IWmsInOutStockOrderRepository 
+{ 
+    /// <summary> 
+    /// Initializes a new instance of the <see cref="EfCoreWmsInOutStockOrderRepository"/> class. 
+    /// </summary> 
+    /// <param name="dbContextProvider">The database context provider.</param> 
+    public EfCoreWmsInOutStockOrderRepository(IDbContextProvider<ICMSPluginDbContext> dbContextProvider) 
+        : base(dbContextProvider) 
+    { 
+    } 
+ 
+    /// <summary> 
+    /// 鎸夌収鍚嶇О鏌ユ壘鍑哄叆搴撳崟鎹� 
+    /// </summary> 
+    /// <param name="name"></param> 
+    /// <param name="cancellationToken"></param> 
+    /// <returns></returns> 
+    public virtual async Task<WmsInOutStockOrder> FindByNameAsync(string name, CancellationToken cancellationToken = default) 
+    { 
+        return await (await GetDbSetAsync()) 
+            .IncludeDetails() 
+            .Where(x => !x.IsDeleted) 
+            .OrderByDescending(x=>x.CreationTime)  
+            .FirstOrDefaultAsync(t => t.OrderNo == name, GetCancellationToken(cancellationToken)); 
+    } 
+ 
+    /// <summary> 
+    /// 楠岃瘉鍚嶇О鏄惁瀛樺湪鍑哄叆搴撳崟鎹� 
+    /// </summary> 
+    /// <param name="name">鏍¢獙鍊�</param> 
+    /// <param name="id"></param> 
+    /// <returns></returns> 
+    public async Task<bool> NameExistAsync(string name, Guid? id = null) 
+    { 
+        return await (await GetDbSetAsync()).WhereIf(id.HasValue, p => p.Id != id).Where(x => !x.IsDeleted).AnyAsync(x => x.OrderNo == name); 
+    } 
+ 
+    /// <summary> 
+    /// 鑾峰彇鏈�澶ф帓搴忓嚭鍏ュ簱鍗曟嵁 
+    /// </summary> 
+    /// <returns></returns> 
+    public async Task<int> GetMaxSortAsync() 
+    { 
+        var hasAny = await (await GetQueryableAsync()) 
+            .Where(x => !x.IsDeleted).AnyAsync(); 
+        if (!hasAny) 
+        { 
+            return 1; 
+        } 
+ 
+        var sort = await (await GetQueryableAsync()) 
+            .Where(x => !x.IsDeleted).MaxAsync(x => x.Sort); 
+        return sort + 1; 
+    } 
+ 
+    /// <summary> 
+    /// 鑾峰彇鍒嗛〉鍒楄〃鍑哄叆搴撳崟鎹� 
+    /// </summary> 
+    /// <param name="whereConditions"></param> 
+    /// <param name="sorting"></param> 
+    /// <param name="maxResultCount"></param> 
+    /// <param name="skipCount"></param> 
+    /// <param name="includeDetails"></param> 
+    /// <param name="cancellationToken"></param> 
+    /// <returns></returns> 
+    public async Task<List<WmsInOutStockOrder>> GetListAsync(FunReturnResultModel<Expression<Func<WmsInOutStockOrder, bool>>> whereConditions, string sorting = null, int maxResultCount = int.MaxValue, int skipCount = 0, bool includeDetails = false, CancellationToken cancellationToken = default) 
+    { 
+        return await (await GetDbSetAsync()) 
+            .IncludeDetails(includeDetails) 
+            .WhereIf(whereConditions != null, whereConditions.data) 
+            .Where(x => !x.IsDeleted) 
+            .OrderByDescending(x=>x.CreationTime) 
+            .PageBy(skipCount, maxResultCount) 
+            .ToListAsync(GetCancellationToken(cancellationToken)); 
+    } 
+ 
+    /// <summary> 
+    /// 鑾峰彇鎬绘暟鍑哄叆搴撳崟鎹� 
+    /// </summary> 
+    /// <param name="whereConditions"></param> 
+    /// <param name="cancellationToken"></param> 
+    /// <returns></returns> 
+    public async Task<long> GetCountAsync(FunReturnResultModel<Expression<Func<WmsInOutStockOrder, bool>>> whereConditions, CancellationToken cancellationToken = default) 
+    { 
+        return await (await GetQueryableAsync()) 
+            .WhereIf(whereConditions != null, whereConditions.data) 
+            .Where(x => !x.IsDeleted) 
+            .CountAsync(cancellationToken: GetCancellationToken(cancellationToken)); 
+    } 
+ 
+ 
+    /// <inheritdoc /> 
+    public override async Task<IQueryable<WmsInOutStockOrder>> WithDetailsAsync() 
+    { 
+        return (await GetQueryableAsync()) 
+            .Where(x => !x.IsDeleted).IncludeDetails(); 
+    } 
+} 
diff --git a/HIAWms/server/src/CMS.Plugin.HIAWms/Controller/WmsInOutStockOrderController.cs b/HIAWms/server/src/CMS.Plugin.HIAWms/Controller/WmsInOutStockOrderController.cs
new file mode 100644
index 0000000..97d4d8b
--- /dev/null
+++ b/HIAWms/server/src/CMS.Plugin.HIAWms/Controller/WmsInOutStockOrderController.cs
@@ -0,0 +1,188 @@
+using Ao.Lang; 
+using CMS.Extensions.Abp.AspNetCore.Mvc.Filters; 
+using CMS.Plugin.HIAWms.Application.Contracts.Dtos.WmsInOutStockOrder; 
+using CMS.Plugin.HIAWms.Application.Contracts.Services; 
+using Microsoft.AspNetCore.Authorization; 
+using Microsoft.AspNetCore.Http; 
+using Microsoft.AspNetCore.Mvc; 
+using MiniExcelLibs; 
+using System.Reflection; 
+using Volo.Abp; 
+using Volo.Abp.Application.Dtos; 
+ 
+namespace CMS.Plugin.HIAWms.Controller 
+{ 
+    /// <summary> 
+    /// 鍑哄叆搴撳崟鎹湇鍔� 
+    /// </summary> 
+    [ApiController] 
+    [TypeFilter(typeof(CMSLanguageFilter))] 
+    [TypeFilter(typeof(CMSUowActionFilter))] 
+    [TypeFilter(typeof(CMSAuditActionFilter))] 
+    [TypeFilter(typeof(CMSExceptionFilter))] 
+    [Route("api/v{version:apiVersion}/HIAWms/[controller]")] 
+    public class WmsInOutStockOrderController : ControllerBase 
+    { 
+        private readonly IWmsInOutStockOrderAppService _wmsInOutStockOrderAppService; 
+ 
+        /// <summary> 
+        /// Initializes a new instance of the <see cref="WmsInOutStockOrderController"/> class. 
+        /// </summary> 
+        /// <param name="wmsInOutStockOrderAppService">The wmsInOutStockOrder application service.</param> 
+        public WmsInOutStockOrderController(IWmsInOutStockOrderAppService wmsInOutStockOrderAppService) 
+        { 
+            _wmsInOutStockOrderAppService = wmsInOutStockOrderAppService; 
+        } 
+ 
+        /// <summary> 
+        /// 鑾峰彇鍑哄叆搴撳崟鎹� 
+        /// </summary> 
+        /// <param name="id">鏍囪瘑绗�.</param> 
+        /// <returns></returns> 
+        [HttpGet] 
+        [Route("{id}")] 
+        public virtual Task<WmsInOutStockOrderDto> GetAsync(Guid id) 
+        { 
+            return _wmsInOutStockOrderAppService.GetAsync(id); 
+        } 
+ 
+        /// <summary> 
+        /// 鍒嗛〉鑾峰彇鍑哄叆搴撳崟鎹殑鍒楄〃. 
+        /// </summary> 
+        /// <param name="input">杈撳叆.</param> 
+        /// <returns></returns> 
+        [HttpGet] 
+        [Route("Page")] 
+        public virtual Task<PagedResultDto<WmsInOutStockOrderDto>> GetListAsync([FromQuery] GetWmsInOutStockOrderInput input) 
+        { 
+            return _wmsInOutStockOrderAppService.GetListAsync(input); 
+        } 
+ 
+        /// <summary> 
+        /// 鍒涘缓鍑哄叆搴撳崟鎹� 
+        /// </summary> 
+        /// <param name="input">杈撳叆.</param> 
+        /// <returns></returns> 
+        //[Authorize] 
+        [HttpPost] 
+        public virtual Task<WmsInOutStockOrderDto> CreateAsync(WmsInOutStockOrderCreateDto input) 
+        { 
+            return _wmsInOutStockOrderAppService.CreateAsync(input); 
+        } 
+ 
+        /// <summary> 
+        /// 鏇存柊鍑哄叆搴撳崟鎹� 
+        /// </summary> 
+        /// <param name="id">鏍囪瘑绗�.</param> 
+        /// <param name="input">杈撳叆.</param> 
+        /// <returns></returns> 
+        //[Authorize] 
+        [HttpPut] 
+        [Route("{id}")] 
+        public virtual Task<WmsInOutStockOrderDto> UpdateAsync(Guid id, WmsInOutStockOrderUpdateDto input) 
+        { 
+            return _wmsInOutStockOrderAppService.UpdateAsync(id, input); 
+        } 
+ 
+        /// <summary> 
+        /// 鍏嬮殕鍑哄叆搴撳崟鎹� 
+        /// </summary> 
+        /// <param name="ids">Id闆嗗悎.</param> 
+        /// <returns></returns> 
+        //[Authorize] 
+        [HttpPost] 
+        [Route("Clone")] 
+        public virtual Task<List<WmsInOutStockOrderDto>> CloneAsync([FromBody] IEnumerable<Guid> ids) 
+        { 
+            return _wmsInOutStockOrderAppService.CloneAsync(ids); 
+        } 
+ 
+        /// <summary> 
+        /// 鍒犻櫎鍑哄叆搴撳崟鎹� 
+        /// </summary> 
+        /// <param name="id">鏍囪瘑绗�.</param> 
+        /// <returns></returns> 
+        //[Authorize] 
+        [HttpDelete] 
+        [Route("{id}")] 
+        public virtual Task DeleteAsync(Guid id) 
+        { 
+            return _wmsInOutStockOrderAppService.DeleteAsync(id); 
+        } 
+ 
+        /// <summary> 
+        /// 鎵归噺鍒犻櫎鍑哄叆搴撳崟鎹� 
+        /// </summary> 
+        /// <param name="ids">The ids.</param> 
+        /// <returns></returns> 
+        //[Authorize] 
+        [HttpDelete] 
+        public virtual Task DeleteAsync([FromBody] IEnumerable<Guid> ids) 
+        { 
+            return _wmsInOutStockOrderAppService.DeleteManyAsync(ids); 
+        } 
+ 
+        /// <summary> 
+        /// 璋冩暣鎺掑簭鍑哄叆搴撳崟鎹� 
+        /// </summary> 
+        /// <param name="id">鏍囪瘑绗�.</param> 
+        /// <returns></returns> 
+        [HttpPut] 
+        [Route("{id}/AdjustSort/{sort}")] 
+        public virtual Task AdjustSortAsync(Guid id, int sort) 
+        { 
+            return _wmsInOutStockOrderAppService.AdjustSortAsync(id, sort); 
+        } 
+ 
+        /// <summary> 
+        /// 瀵煎叆鍑哄叆搴撳崟鎹� 
+        /// </summary> 
+        /// <returns></returns> 
+        [Authorize] 
+        [HttpPost] 
+        [Route("Import")] 
+        public virtual async Task<IActionResult> ImportAsync(IFormFile file) 
+        { 
+            using var stream = new MemoryStream(); 
+            await file.CopyToAsync(stream); 
+            stream.Seek(0L, SeekOrigin.Begin); 
+ 
+            var sheetNames = stream.GetSheetNames(); 
+            var wmsInOutStockOrderRows = sheetNames.Contains("閰嶇疆") ? MiniExcel.Query<WmsInOutStockOrdersImportModel.WmsInOutStockOrderImportModel>(stream, sheetName: "閰嶇疆").ToList() : new(); 
+ 
+            if (!wmsInOutStockOrderRows.Any()) 
+            { 
+                throw new UserFriendlyException("璇锋鏌ュ鍏ョ殑琛ㄦ牸"); 
+            } 
+ 
+            await _wmsInOutStockOrderAppService.ImportAsync(new WmsInOutStockOrdersImportModel 
+            { 
+                WmsInOutStockOrders = wmsInOutStockOrderRows, 
+            }); 
+ 
+            return Ok(); 
+        } 
+ 
+        /// <summary> 
+        /// 瀵煎嚭鍑哄叆搴撳崟鎹� 
+        /// </summary> 
+        /// <returns></returns> 
+        [HttpGet] 
+        [Route("Export")] 
+        public virtual async Task<IActionResult> ExportAsync([FromQuery] GetWmsInOutStockOrderInput input) 
+        { 
+            input.MaxResultCount = int.MaxValue; 
+            var exportData = await _wmsInOutStockOrderAppService.ExportAsync(input); 
+            var templatePath = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, $"Resources/Templates/WmsInOutStockOrder瀵煎嚭妯℃澘.xlsx"); 
+            if (!System.IO.File.Exists(templatePath)) 
+            { 
+                templatePath = Path.Combine(Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location) ?? string.Empty, $"Resources/Templates/WmsInOutStockOrder瀵煎嚭妯℃澘.xlsx"); 
+            } 
+ 
+            var memoryStream = new MemoryStream(); 
+            await memoryStream.SaveAsByTemplateAsync(templatePath, exportData.Sheets); 
+            memoryStream.Seek(0L, SeekOrigin.Begin); 
+            return new FileStreamResult(memoryStream, "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet") { FileDownloadName = $"{exportData.FileName}_{DateTime.Now:yyyyMMddhhmmss}.xlsx" }; 
+        } 
+    } 
+} 
diff --git a/HIAWms/server/src/CMS.Plugin.HIAWms/Controller/WmsInOutStockOrderDetailController.cs b/HIAWms/server/src/CMS.Plugin.HIAWms/Controller/WmsInOutStockOrderDetailController.cs
new file mode 100644
index 0000000..b6ca845
--- /dev/null
+++ b/HIAWms/server/src/CMS.Plugin.HIAWms/Controller/WmsInOutStockOrderDetailController.cs
@@ -0,0 +1,188 @@
+using Ao.Lang; 
+using CMS.Extensions.Abp.AspNetCore.Mvc.Filters; 
+using CMS.Plugin.HIAWms.Application.Contracts.Dtos.WmsInOutStockOrderDetail; 
+using CMS.Plugin.HIAWms.Application.Contracts.Services; 
+using Microsoft.AspNetCore.Authorization; 
+using Microsoft.AspNetCore.Http; 
+using Microsoft.AspNetCore.Mvc; 
+using MiniExcelLibs; 
+using System.Reflection; 
+using Volo.Abp; 
+using Volo.Abp.Application.Dtos; 
+ 
+namespace CMS.Plugin.HIAWms.Controller 
+{ 
+    /// <summary> 
+    /// 鍑哄叆搴撳崟鎹鎯呮湇鍔� 
+    /// </summary> 
+    [ApiController] 
+    [TypeFilter(typeof(CMSLanguageFilter))] 
+    [TypeFilter(typeof(CMSUowActionFilter))] 
+    [TypeFilter(typeof(CMSAuditActionFilter))] 
+    [TypeFilter(typeof(CMSExceptionFilter))] 
+    [Route("api/v{version:apiVersion}/HIAWms/[controller]")] 
+    public class WmsInOutStockOrderDetailController : ControllerBase 
+    { 
+        private readonly IWmsInOutStockOrderDetailAppService _wmsInOutStockOrderDetailAppService; 
+ 
+        /// <summary> 
+        /// Initializes a new instance of the <see cref="WmsInOutStockOrderDetailController"/> class. 
+        /// </summary> 
+        /// <param name="wmsInOutStockOrderDetailAppService">The wmsInOutStockOrderDetail application service.</param> 
+        public WmsInOutStockOrderDetailController(IWmsInOutStockOrderDetailAppService wmsInOutStockOrderDetailAppService) 
+        { 
+            _wmsInOutStockOrderDetailAppService = wmsInOutStockOrderDetailAppService; 
+        } 
+ 
+        /// <summary> 
+        /// 鑾峰彇鍑哄叆搴撳崟鎹鎯� 
+        /// </summary> 
+        /// <param name="id">鏍囪瘑绗�.</param> 
+        /// <returns></returns> 
+        [HttpGet] 
+        [Route("{id}")] 
+        public virtual Task<WmsInOutStockOrderDetailDto> GetAsync(Guid id) 
+        { 
+            return _wmsInOutStockOrderDetailAppService.GetAsync(id); 
+        } 
+ 
+        /// <summary> 
+        /// 鍒嗛〉鑾峰彇鍑哄叆搴撳崟鎹鎯呯殑鍒楄〃. 
+        /// </summary> 
+        /// <param name="input">杈撳叆.</param> 
+        /// <returns></returns> 
+        [HttpGet] 
+        [Route("Page")] 
+        public virtual Task<PagedResultDto<WmsInOutStockOrderDetailDto>> GetListAsync([FromQuery] GetWmsInOutStockOrderDetailInput input) 
+        { 
+            return _wmsInOutStockOrderDetailAppService.GetListAsync(input); 
+        } 
+ 
+        /// <summary> 
+        /// 鍒涘缓鍑哄叆搴撳崟鎹鎯� 
+        /// </summary> 
+        /// <param name="input">杈撳叆.</param> 
+        /// <returns></returns> 
+        //[Authorize] 
+        [HttpPost] 
+        public virtual Task<WmsInOutStockOrderDetailDto> CreateAsync(WmsInOutStockOrderDetailCreateDto input) 
+        { 
+            return _wmsInOutStockOrderDetailAppService.CreateAsync(input); 
+        } 
+ 
+        /// <summary> 
+        /// 鏇存柊鍑哄叆搴撳崟鎹鎯� 
+        /// </summary> 
+        /// <param name="id">鏍囪瘑绗�.</param> 
+        /// <param name="input">杈撳叆.</param> 
+        /// <returns></returns> 
+        //[Authorize] 
+        [HttpPut] 
+        [Route("{id}")] 
+        public virtual Task<WmsInOutStockOrderDetailDto> UpdateAsync(Guid id, WmsInOutStockOrderDetailUpdateDto input) 
+        { 
+            return _wmsInOutStockOrderDetailAppService.UpdateAsync(id, input); 
+        } 
+ 
+        /// <summary> 
+        /// 鍏嬮殕鍑哄叆搴撳崟鎹鎯� 
+        /// </summary> 
+        /// <param name="ids">Id闆嗗悎.</param> 
+        /// <returns></returns> 
+        //[Authorize] 
+        [HttpPost] 
+        [Route("Clone")] 
+        public virtual Task<List<WmsInOutStockOrderDetailDto>> CloneAsync([FromBody] IEnumerable<Guid> ids) 
+        { 
+            return _wmsInOutStockOrderDetailAppService.CloneAsync(ids); 
+        } 
+ 
+        /// <summary> 
+        /// 鍒犻櫎鍑哄叆搴撳崟鎹鎯� 
+        /// </summary> 
+        /// <param name="id">鏍囪瘑绗�.</param> 
+        /// <returns></returns> 
+        //[Authorize] 
+        [HttpDelete] 
+        [Route("{id}")] 
+        public virtual Task DeleteAsync(Guid id) 
+        { 
+            return _wmsInOutStockOrderDetailAppService.DeleteAsync(id); 
+        } 
+ 
+        /// <summary> 
+        /// 鎵归噺鍒犻櫎鍑哄叆搴撳崟鎹鎯� 
+        /// </summary> 
+        /// <param name="ids">The ids.</param> 
+        /// <returns></returns> 
+        //[Authorize] 
+        [HttpDelete] 
+        public virtual Task DeleteAsync([FromBody] IEnumerable<Guid> ids) 
+        { 
+            return _wmsInOutStockOrderDetailAppService.DeleteManyAsync(ids); 
+        } 
+ 
+        /// <summary> 
+        /// 璋冩暣鎺掑簭鍑哄叆搴撳崟鎹鎯� 
+        /// </summary> 
+        /// <param name="id">鏍囪瘑绗�.</param> 
+        /// <returns></returns> 
+        [HttpPut] 
+        [Route("{id}/AdjustSort/{sort}")] 
+        public virtual Task AdjustSortAsync(Guid id, int sort) 
+        { 
+            return _wmsInOutStockOrderDetailAppService.AdjustSortAsync(id, sort); 
+        } 
+ 
+        /// <summary> 
+        /// 瀵煎叆鍑哄叆搴撳崟鎹鎯� 
+        /// </summary> 
+        /// <returns></returns> 
+        [Authorize] 
+        [HttpPost] 
+        [Route("Import")] 
+        public virtual async Task<IActionResult> ImportAsync(IFormFile file) 
+        { 
+            using var stream = new MemoryStream(); 
+            await file.CopyToAsync(stream); 
+            stream.Seek(0L, SeekOrigin.Begin); 
+ 
+            var sheetNames = stream.GetSheetNames(); 
+            var wmsInOutStockOrderDetailRows = sheetNames.Contains("閰嶇疆") ? MiniExcel.Query<WmsInOutStockOrderDetailsImportModel.WmsInOutStockOrderDetailImportModel>(stream, sheetName: "閰嶇疆").ToList() : new(); 
+ 
+            if (!wmsInOutStockOrderDetailRows.Any()) 
+            { 
+                throw new UserFriendlyException("璇锋鏌ュ鍏ョ殑琛ㄦ牸"); 
+            } 
+ 
+            await _wmsInOutStockOrderDetailAppService.ImportAsync(new WmsInOutStockOrderDetailsImportModel 
+            { 
+                WmsInOutStockOrderDetails = wmsInOutStockOrderDetailRows, 
+            }); 
+ 
+            return Ok(); 
+        } 
+ 
+        /// <summary> 
+        /// 瀵煎嚭鍑哄叆搴撳崟鎹鎯� 
+        /// </summary> 
+        /// <returns></returns> 
+        [HttpGet] 
+        [Route("Export")] 
+        public virtual async Task<IActionResult> ExportAsync([FromQuery] GetWmsInOutStockOrderDetailInput input) 
+        { 
+            input.MaxResultCount = int.MaxValue; 
+            var exportData = await _wmsInOutStockOrderDetailAppService.ExportAsync(input); 
+            var templatePath = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, $"Resources/Templates/WmsInOutStockOrderDetail瀵煎嚭妯℃澘.xlsx"); 
+            if (!System.IO.File.Exists(templatePath)) 
+            { 
+                templatePath = Path.Combine(Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location) ?? string.Empty, $"Resources/Templates/WmsInOutStockOrderDetail瀵煎嚭妯℃澘.xlsx"); 
+            } 
+ 
+            var memoryStream = new MemoryStream(); 
+            await memoryStream.SaveAsByTemplateAsync(templatePath, exportData.Sheets); 
+            memoryStream.Seek(0L, SeekOrigin.Begin); 
+            return new FileStreamResult(memoryStream, "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet") { FileDownloadName = $"{exportData.FileName}_{DateTime.Now:yyyyMMddhhmmss}.xlsx" }; 
+        } 
+    } 
+} 
diff --git "a/HIAWms/server/src/CMS.Plugin.HIAWms/Resources/Templates/WmsInOutStockOrderDetail\345\257\274\345\207\272\346\250\241\346\235\277.xlsx" "b/HIAWms/server/src/CMS.Plugin.HIAWms/Resources/Templates/WmsInOutStockOrderDetail\345\257\274\345\207\272\346\250\241\346\235\277.xlsx"
new file mode 100644
index 0000000..375c4a8
--- /dev/null
+++ "b/HIAWms/server/src/CMS.Plugin.HIAWms/Resources/Templates/WmsInOutStockOrderDetail\345\257\274\345\207\272\346\250\241\346\235\277.xlsx"
Binary files differ
diff --git "a/HIAWms/server/src/CMS.Plugin.HIAWms/Resources/Templates/WmsInOutStockOrder\345\257\274\345\207\272\346\250\241\346\235\277.xlsx" "b/HIAWms/server/src/CMS.Plugin.HIAWms/Resources/Templates/WmsInOutStockOrder\345\257\274\345\207\272\346\250\241\346\235\277.xlsx"
new file mode 100644
index 0000000..7177355
--- /dev/null
+++ "b/HIAWms/server/src/CMS.Plugin.HIAWms/Resources/Templates/WmsInOutStockOrder\345\257\274\345\207\272\346\250\241\346\235\277.xlsx"
Binary files differ
diff --git "a/Weben_CMS\344\270\223\347\224\250\344\273\243\347\240\201\347\224\237\346\210\220\345\231\250/Code/File/GenerateCodeConfigParamFiles/\345\207\272\345\205\245\345\272\223\345\215\225\346\215\256.txt" "b/Weben_CMS\344\270\223\347\224\250\344\273\243\347\240\201\347\224\237\346\210\220\345\231\250/Code/File/GenerateCodeConfigParamFiles/\345\207\272\345\205\245\345\272\223\345\215\225\346\215\256.txt"
new file mode 100644
index 0000000..daec1d0
--- /dev/null
+++ "b/Weben_CMS\344\270\223\347\224\250\344\273\243\347\240\201\347\224\237\346\210\220\345\231\250/Code/File/GenerateCodeConfigParamFiles/\345\207\272\345\205\245\345\272\223\345\215\225\346\215\256.txt"
@@ -0,0 +1,12 @@
+[琛ㄥ悕]:scms_wmsinoutstockorder
+[瀹炰綋绫诲悕]:WmsInOutStockOrder
+[瀹炰綋绫诲璞″悕]:wmsInOutStockOrder
+[椤甸潰鑿滃崟鍚峕:鍑哄叆搴撳崟鎹�
+[椤甸潰鑿滃崟瀵硅薄缂╁啓]:wmsInOutStockOrder
+[琛ㄧ殑涓枃娉ㄨВ]:鍑哄叆搴撳崟鎹�
+[閲嶅鎬ф牎楠屽瓧娈礭:OrderNo
+[鍒犻櫎鎻愮ず瀛楁]:OrderNo
+[妯$硦鏌ヨ瀛楁]:'OrderNo', 'MaterialNo', 'MaterialBatch'
+[妯$硦鏌ヨ瀛楁鍚峕:璇疯緭鍏ュ崟鎹彿/鐗╂枡缂栧彿/鎵规
+[椤圭洰鍛藉悕绌洪棿]:HIAWms
+[鏋氫妇绫诲瀷瀛楁闆嗗悎]:OrderStatus|OrderStatusEnum|OrderStatusDesc,OrderType|OrderTypeEnum|OrderTypeDesc,StockType|StockTypeEnum|StockTypeDesc
\ No newline at end of file
diff --git "a/Weben_CMS\344\270\223\347\224\250\344\273\243\347\240\201\347\224\237\346\210\220\345\231\250/Code/File/GenerateCodeConfigParamFiles/\345\207\272\345\205\245\345\272\223\345\215\225\346\215\256\350\257\246\346\203\205.txt" "b/Weben_CMS\344\270\223\347\224\250\344\273\243\347\240\201\347\224\237\346\210\220\345\231\250/Code/File/GenerateCodeConfigParamFiles/\345\207\272\345\205\245\345\272\223\345\215\225\346\215\256\350\257\246\346\203\205.txt"
new file mode 100644
index 0000000..86c02c3
--- /dev/null
+++ "b/Weben_CMS\344\270\223\347\224\250\344\273\243\347\240\201\347\224\237\346\210\220\345\231\250/Code/File/GenerateCodeConfigParamFiles/\345\207\272\345\205\245\345\272\223\345\215\225\346\215\256\350\257\246\346\203\205.txt"
@@ -0,0 +1,12 @@
+[琛ㄥ悕]:scms_wmsinoutstockorderdetail
+[瀹炰綋绫诲悕]:WmsInOutStockOrderDetail
+[瀹炰綋绫诲璞″悕]:wmsInOutStockOrderDetail
+[椤甸潰鑿滃崟鍚峕:鍑哄叆搴撳崟鎹鎯�
+[椤甸潰鑿滃崟瀵硅薄缂╁啓]:wmsInOutStockOrderDetail
+[琛ㄧ殑涓枃娉ㄨВ]:鍑哄叆搴撳崟鎹鎯�
+[閲嶅鎬ф牎楠屽瓧娈礭:MaterialId
+[鍒犻櫎鎻愮ず瀛楁]:MaterialId
+[妯$硦鏌ヨ瀛楁]:'OrderNo', 'MaterialNo', 'MaterialId'
+[妯$硦鏌ヨ瀛楁鍚峕:璇疯緭鍏ュ崟鎹彿/鐗╂枡缂栧彿/鐗╂枡ID
+[椤圭洰鍛藉悕绌洪棿]:HIAWms
+[鏋氫妇绫诲瀷瀛楁闆嗗悎]:OrderType|OrderTypeEnum|OrderTypeDesc
\ No newline at end of file
diff --git "a/Weben_CMS\344\270\223\347\224\250\344\273\243\347\240\201\347\224\237\346\210\220\345\231\250/Code/Templete/Web/Controllers/EntityModeDrawer\346\250\241\346\235\277.txt" "b/Weben_CMS\344\270\223\347\224\250\344\273\243\347\240\201\347\224\237\346\210\220\345\231\250/Code/Templete/Web/Controllers/EntityModeDrawer\346\250\241\346\235\277.txt"
index 0b25103..3ba8a5b 100644
--- "a/Weben_CMS\344\270\223\347\224\250\344\273\243\347\240\201\347\224\237\346\210\220\345\231\250/Code/Templete/Web/Controllers/EntityModeDrawer\346\250\241\346\235\277.txt"
+++ "b/Weben_CMS\344\270\223\347\224\250\344\273\243\347\240\201\347\224\237\346\210\220\345\231\250/Code/Templete/Web/Controllers/EntityModeDrawer\346\250\241\346\235\277.txt"
@@ -31,7 +31,7 @@
     return props.row || null
   })
 
-
+  
   const datePicker = (attrs) => {
     return (
       <el-date-picker
@@ -42,6 +42,16 @@
       ></el-date-picker>
     )
   }
+  const inputNumber = (attrs) => {
+    return (
+      <el-input-number
+        min="1"
+        step="1"
+        precision="0"
+        {...attrs}
+      ></el-input-number>
+    )
+  }
 
   const dateTimePicker = (attrs) => {
     return (
@@ -49,16 +59,6 @@
         type="datetime"
         format="YYYY-MM-DD HH:mm:ss"
         formatValue="YYYY-MM-DD HH:mm:ss"
-        {...attrs}
-      ></el-date-picker>
-    )
-  }
-
-   const dateTimePicker = (attrs) => {
-    return (
-      <el-date-picker
-        type="datetime"
-        format="YYYY-MM-DD HH:mm:ss"
         {...attrs}
       ></el-date-picker>
     )

--
Gitblit v1.9.3