From 7baa0d978e41f395891753b208d805bc02edee38 Mon Sep 17 00:00:00 2001
From: zs <zhousong@weben-smart.com>
Date: 周一, 12 5月 2025 08:43:59 +0800
Subject: [PATCH] 叫料

---
 HIAWms/server/src/CMS.Plugin.HIAWms.MySQL/Migrations/CMSPluginDbContextModelSnapshot.cs                                  |    1 
 HIAWms/server/src/CMS.Plugin.HIAWms.Application/Implements/WmsTaskAppService.cs                                          |   46 
 HIAWms/server/src/CMS.Plugin.HIAWms.Application/Implements/WmsOutStockAppService.cs                                      |  108 
 HIAWms/hiawms_web/src/widgets/WmsInOutStockOrder/Models/Service/WmsInOutStockOrder.ts                                    |   68 
 HIAWms/hiawms_web/src/widgets/WmsMaterialContainer/Views/Pages/WmsMaterialContainer/WmsMaterialContainer.tsx             |   15 
 HIAWms/hiawms_web/src/widgets/WmsTask/Views/Pages/WmsTask/WmsTask.tsx                                                    |    4 
 HIAWms/server/src/CMS.Plugin.HIAWms/Controller/WmsTaskController.cs                                                      |    4 
 HIAWms/server/src/CMS.Plugin.HIAWms.MySQL/Migrations/20250511134948_InitialCreate14.cs                                   |   51 
 HIAWms/hiawms_web/src/widgets/WmsInOutStockOrder/Controllers/WmsInOutStockOrder.ts                                       |  554 ++++----
 HIAWms/hiawms_web/src/widgets/WmsMaterialContainer/Models/Service/WmsMaterialContainer.ts                                |    2 
 HIAWms/hiawms_web/src/widgets/WmsInOutStockRecord/Views/Pages/WmsInOutStockRecord/Config.ts                              |    4 
 HIAWms/server/src/CMS.Plugin.HIAWms.MySQL/Scripts/UpdateMigrations.bat                                                   |    2 
 HIAWms/server/src/CMS.Plugin.HIAWms.EntityFrameworkCore/Repositories/EfCoreWmsMaterialStockRepository.cs                 |    2 
 HIAWms/hiawms_web/src/widgets/WmsInOutStockOrder/Views/Pages/WmsInOutStockOrder/WmsInOutStockOrder.tsx                   |   72 +
 HIAWms/hiawms_web/src/widgets/WmsInOutStockOrderDetail/Views/Pages/WmsInOutStockOrderDetail/WmsInOutStockOrderDetail.tsx |    4 
 HIAWms/project/Wms.cmsproj                                                                                               |    0 
 HIAWms/server/src/CMS.Plugin.HIAWms.EntityFrameworkCore/Extensions/CMSPluginEfCoreExtensions.WmsInOutStockRecord.cs      |    2 
 HIAWms/server/src/CMS.Plugin.HIAWms/Controller/WmsOutStockController.cs                                                  |   43 
 HIAWms/hiawms_web/src/widgets/WmsInOutStockOrder/Models/WmsInOutStockOrder.ts                                            |   92 
 HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Services/IWmsTaskAppService.cs                                 |    4 
 HIAWms/hiawms_web/src/widgets/WmsTask/Controllers/WmsTask.ts                                                             |  575 ++++----
 HIAWms/server/src/CMS.Plugin.HIAWms.MySQL/Migrations/20250511134948_InitialCreate14.Designer.cs                          | 1786 +++++++++++++++++++++++++++
 HIAWms/hiawms_web/src/widgets/WmsTask/Models/Service/WmsTask.ts                                                          |   76 
 HIAWms/hiawms_web/src/widgets/WmsInOutStockOrder/Controllers/WmsOutOrderCallMaterialDialog.tsx                           |  215 +++
 HIAWms/hiawms_web/components.d.ts                                                                                        |    2 
 HIAWms/hiawms_web/src/widgets/WmsTask/Models/WmsTask.ts                                                                  |  102 
 HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsTask/WmsTaskUpdateDto.cs                               |   12 
 HIAWms/server/src/CMS.Plugin.HIAWms.Application/Implements/WmsInOutStockRecordAppService.cs                              |    2 
 HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Services/IWmsOutStockAppService.cs                             |    9 
 29 files changed, 3,085 insertions(+), 772 deletions(-)

diff --git a/HIAWms/hiawms_web/components.d.ts b/HIAWms/hiawms_web/components.d.ts
index 135cdd6..2dc2f1f 100644
--- a/HIAWms/hiawms_web/components.d.ts
+++ b/HIAWms/hiawms_web/components.d.ts
@@ -42,6 +42,8 @@
     ElPopover: typeof import('element-plus/es')['ElPopover']
     ElRadio: typeof import('element-plus/es')['ElRadio']
     ElSelect: typeof import('element-plus/es')['ElSelect']
+    ElTable: typeof import('element-plus/es')['ElTable']
+    ElTableColumn: typeof import('element-plus/es')['ElTableColumn']
     ElTabPane: typeof import('element-plus/es')['ElTabPane']
     ElTabs: typeof import('element-plus/es')['ElTabs']
     ElTag: typeof import('element-plus/es')['ElTag']
diff --git a/HIAWms/hiawms_web/src/widgets/WmsInOutStockOrder/Controllers/WmsInOutStockOrder.ts b/HIAWms/hiawms_web/src/widgets/WmsInOutStockOrder/Controllers/WmsInOutStockOrder.ts
index 17cd8a6..1274c90 100644
--- a/HIAWms/hiawms_web/src/widgets/WmsInOutStockOrder/Controllers/WmsInOutStockOrder.ts
+++ b/HIAWms/hiawms_web/src/widgets/WmsInOutStockOrder/Controllers/WmsInOutStockOrder.ts
@@ -1,275 +1,279 @@
-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 
-  } 
-} 
+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: async (c: CurrentType) => {
+        const names = selection.value.map(
+          (item: { orderNo: string }) => item.orderNo
+        )
+        ConfirmBox(
+          `纭畾鍙枡${names.length ? names.join(',') : c.row.orderNo}`
+        ).then(async () => {
+          const data = selection.value.length > 0 ? selection.value : [c.row]
+          console.log('鍙枡鏁版嵁:', data)
+          await wmsInOutStockOrder.wmsInOutStockOrderCall(data)
+          ElMessage.success('鍙枡鎴愬姛')
+          tableRef.value.getList()
+        })
+      },
+      icon: 'close',
+    },
+    {
+      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/WmsOutOrderCallMaterialDialog.tsx b/HIAWms/hiawms_web/src/widgets/WmsInOutStockOrder/Controllers/WmsOutOrderCallMaterialDialog.tsx
new file mode 100644
index 0000000..97f03d7
--- /dev/null
+++ b/HIAWms/hiawms_web/src/widgets/WmsInOutStockOrder/Controllers/WmsOutOrderCallMaterialDialog.tsx
@@ -0,0 +1,215 @@
+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 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,
+  ElDialog,
+  ElTable,
+  ElTableColumn,
+  ElButton,
+  ElMessage,
+} 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,
+      tableRef,
+      selection,
+      onRowClick,
+      onCheck,
+      openDetail,
+    } = useWmsInOutStockOrder(props, ctx)
+
+    // 鍙枡寮圭獥鐩稿叧鐘舵��
+    const callMaterialDialog = reactive({
+      visible: false,
+      title: '鍙枡',
+      selectedItems: [] as any[],
+    })
+
+    // 鎵撳紑鍙枡寮圭獥
+    const openCallMaterialDialog = () => {
+      if (selection.value.length === 0) {
+        ElMessage.warning('璇疯嚦灏戦�夋嫨涓�鏉¤褰�')
+        return
+      }
+      callMaterialDialog.selectedItems = [...selection.value]
+      console.log('閫変腑鐨勬暟鎹�:', callMaterialDialog.selectedItems)
+      callMaterialDialog.visible = true
+    }
+
+    // 纭鍙枡
+    const confirmCallMaterial = () => {
+      // 杩欓噷娣诲姞鍙枡閫昏緫
+      console.log('鍙枡鏁版嵁:', callMaterialDialog.selectedItems)
+      ElMessage.success('鍙枡鎴愬姛')
+      callMaterialDialog.visible = false
+    }
+
+    /**
+     * @returns 鍙枡寮圭獥
+     */
+    const RenderCallMaterialDialog = () => {
+      return (
+        <ElDialog
+          v-model={callMaterialDialog.visible}
+          title={callMaterialDialog.title}
+          width="70%"
+          v-slots={{
+            footer: () => (
+              <div class={styles.dialogFooter}>
+                <ElButton onClick={() => (callMaterialDialog.visible = false)}>
+                  鍙栨秷
+                </ElButton>
+                <ElButton type="primary" onClick={confirmCallMaterial}>
+                  纭鍙枡
+                </ElButton>
+              </div>
+            ),
+          }}
+        >
+          <ElTable data={callMaterialDialog.selectedItems} border>
+            <ElTableColumn prop="orderNo" label="鍗曟嵁鍙�" width="180" />
+            <ElTableColumn prop="materialNo" label="鐗╂枡缂栧彿" width="180" />
+            <ElTableColumn prop="materialName" label="鐗╂枡鍚嶇О" />
+            <ElTableColumn prop="materialModel" label="鍨嬪彿" />
+            <ElTableColumn prop="placeNo" label="搴撲綅缂栧彿" />
+            <ElTableColumn prop="quantity" label="鏁伴噺" />
+          </ElTable>
+        </ElDialog>
+      )
+    }
+
+    /**
+     * @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}
+            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}>
+          {/* 鍙枡寮圭獥 */}
+          <RenderCallMaterialDialog />
+
+          {/* 鎿嶄綔鎸夐挳鍖哄煙 */}
+          <div class={styles.headerContent}>
+            <div class={styles.header}>
+              <ElButton
+                v-permission="wmsInOutStockOrder-call"
+                type="primary"
+                onClick={openCallMaterialDialog}
+              >
+                鍙枡
+              </ElButton>
+            </div>
+          </div>
+
+          <RenderBaseTable
+            dataSource={dataSource}
+            isChecked={true}
+            isDrag={true}
+          />
+        </div>
+      )
+    }
+  },
+})
diff --git a/HIAWms/hiawms_web/src/widgets/WmsInOutStockOrder/Models/Service/WmsInOutStockOrder.ts b/HIAWms/hiawms_web/src/widgets/WmsInOutStockOrder/Models/Service/WmsInOutStockOrder.ts
index b8d8a45..bf6247a 100644
--- a/HIAWms/hiawms_web/src/widgets/WmsInOutStockOrder/Models/Service/WmsInOutStockOrder.ts
+++ b/HIAWms/hiawms_web/src/widgets/WmsInOutStockOrder/Models/Service/WmsInOutStockOrder.ts
@@ -1,30 +1,38 @@
-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) 
-} 
+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)
+}
+
+/**
+ * 鍙枡
+ * @returns
+ */
+export const wmsInOutStockOrderCall = (data: Record<string, any>) => {
+  return request.post('/api/v1/HIAWms/WmsOutStock/CallMaterial', data)
+}
diff --git a/HIAWms/hiawms_web/src/widgets/WmsInOutStockOrder/Models/WmsInOutStockOrder.ts b/HIAWms/hiawms_web/src/widgets/WmsInOutStockOrder/Models/WmsInOutStockOrder.ts
index d262b6a..988e83b 100644
--- a/HIAWms/hiawms_web/src/widgets/WmsInOutStockOrder/Models/WmsInOutStockOrder.ts
+++ b/HIAWms/hiawms_web/src/widgets/WmsInOutStockOrder/Models/WmsInOutStockOrder.ts
@@ -1,41 +1,51 @@
-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) 
-  } 
-} 
+import { Base } from '@/libs/Base/Base'
+import {
+  deleteWmsInOutStockOrders,
+  addWmsInOutStockOrder,
+  cloneData,
+  wmsInOutStockOrderCall,
+} 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)
+  }
+
+  /**
+   * 鍙枡
+   * @param data
+   * @returns
+   */
+  wmsInOutStockOrderCall(data: Record<string, any>) {
+    return wmsInOutStockOrderCall(data)
+  }
+}
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
index 957d251..7fec7c0 100644
--- a/HIAWms/hiawms_web/src/widgets/WmsInOutStockOrder/Views/Pages/WmsInOutStockOrder/WmsInOutStockOrder.tsx
+++ b/HIAWms/hiawms_web/src/widgets/WmsInOutStockOrder/Views/Pages/WmsInOutStockOrder/WmsInOutStockOrder.tsx
@@ -19,6 +19,11 @@
   ElDatePicker,
   ElForm,
   ElFormItem,
+  ElDialog,
+  ElButton,
+  ElTable,
+  ElTableColumn,
+  ElMessage,
 } from 'element-plus'
 import { injectModel } from '@/libs/Provider/Provider'
 
@@ -37,6 +42,7 @@
   directives: {
     permission: vPermission,
   },
+
   setup(props, ctx) {
     const {
       dataSource,
@@ -46,6 +52,7 @@
       tableRef,
       current,
       search,
+      selection,
       sort,
       headers,
       onError,
@@ -173,6 +180,66 @@
       return filteredData
     }
 
+    // 鍙枡寮圭獥鐩稿叧鐘舵��
+    const callMaterialDialog = reactive({
+      visible: false,
+      title: '鍙枡',
+      selectedItems: [] as any[],
+    })
+
+    // 鎵撳紑鍙枡寮圭獥
+    const openCallMaterialDialog = () => {
+      console.log('閫変腑鐨勬暟鎹�:', callMaterialDialog.selectedItems)
+      if (selection.value.length === 0) {
+        ElMessage.warning('璇疯嚦灏戦�夋嫨涓�鏉¤褰�')
+        return
+      }
+      callMaterialDialog.selectedItems = [...selection.value]
+      callMaterialDialog.visible = true
+    }
+
+    // 纭鍙枡
+    const confirmCallMaterial = () => {
+      // 杩欓噷娣诲姞鍙枡閫昏緫
+      console.log('鍙枡鏁版嵁:', callMaterialDialog.selectedItems)
+      ElMessage.success('鍙枡鎴愬姛')
+      callMaterialDialog.visible = false
+    }
+
+    /**
+     * @returns 鍙枡寮圭獥
+     */
+    const RenderCallMaterialDialog = () => {
+      return (
+        <ElDialog
+          v-model={callMaterialDialog.visible}
+          title={callMaterialDialog.title}
+          width="70%"
+          v-slots={{
+            footer: () => (
+              <div class={styles.dialogFooter}>
+                <ElButton onClick={() => (callMaterialDialog.visible = false)}>
+                  鍙栨秷
+                </ElButton>
+                <ElButton type="primary" onClick={confirmCallMaterial}>
+                  纭鍙枡
+                </ElButton>
+              </div>
+            ),
+          }}
+        >
+          <ElTable data={callMaterialDialog.selectedItems} border>
+            <ElTableColumn prop="orderNo" label="鍗曟嵁鍙�" width="180" />
+            <ElTableColumn prop="materialNo" label="鐗╂枡缂栧彿" width="180" />
+            <ElTableColumn prop="materialName" label="鐗╂枡鍚嶇О" />
+            <ElTableColumn prop="materialModel" label="鍨嬪彿" />
+            <ElTableColumn prop="placeNo" label="搴撲綅缂栧彿" />
+            <ElTableColumn prop="quantity" label="鏁伴噺" />
+          </ElTable>
+        </ElDialog>
+      )
+    }
+
     /**
      * @returns 琛ㄦ牸
      */
@@ -273,6 +340,9 @@
 
           <div class={styles.headerContent}>
             <div class={styles.header}>
+              {/* 鍙枡寮圭獥 */}
+              <RenderCallMaterialDialog />
+
               <IconButton
                 v-permission="wmsInOutStockOrder-add"
                 icon="add-p"
@@ -285,7 +355,7 @@
               <IconButton
                 v-permission="wmsInOutStockOrder-add"
                 icon="add-p"
-                onClick={onAddWmsInOutStockOrder}
+                onClick={openCallMaterialDialog}
                 type="primary"
               >
                 鍙枡
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
index c464fc7..90f8d95 100644
--- a/HIAWms/hiawms_web/src/widgets/WmsInOutStockOrderDetail/Views/Pages/WmsInOutStockOrderDetail/WmsInOutStockOrderDetail.tsx
+++ b/HIAWms/hiawms_web/src/widgets/WmsInOutStockOrderDetail/Views/Pages/WmsInOutStockOrderDetail/WmsInOutStockOrderDetail.tsx
@@ -297,7 +297,7 @@
               <el-divider direction="vertical" />
 
               <el-divider direction="vertical" />
-              <el-upload
+              {/* <el-upload
                 v-permission="wmsInOutStockOrderDetail-import"
                 name="file"
                 accept=".xlsx,.xls,.csv"
@@ -317,7 +317,7 @@
                 onClick={handleExport}
               >
                 瀵煎嚭
-              </IconButton>
+              </IconButton> */}
             </div>
             <ElFormItem style={{ marginTop: '15px' }}>
               <ElFormItem 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 3e45265..b48cc5a 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
@@ -45,6 +45,10 @@
     title: '鍨嬪彿',
   },
   {
+    field: 'materialBatch',
+    title: '鎵规',
+  },
+  {
     field: 'remark',
     title: '澶囨敞',
   },
diff --git a/HIAWms/hiawms_web/src/widgets/WmsMaterialContainer/Models/Service/WmsMaterialContainer.ts b/HIAWms/hiawms_web/src/widgets/WmsMaterialContainer/Models/Service/WmsMaterialContainer.ts
index c717bf9..9684a90 100644
--- a/HIAWms/hiawms_web/src/widgets/WmsMaterialContainer/Models/Service/WmsMaterialContainer.ts
+++ b/HIAWms/hiawms_web/src/widgets/WmsMaterialContainer/Models/Service/WmsMaterialContainer.ts
@@ -33,7 +33,7 @@
  * 鐗╂枡鍨嬪彿鍒楄〃
  * @returns
  */
-export const getMaterialModelList = (data: any) => {
+export const getMaterialModelList = () => {
   return request.get(`/api/v1/hiawms/wmsenum/ModelList`)
 }
 
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 1f7ca80..63d362d 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
@@ -8,12 +8,14 @@
   ElButton,
   ElSelect,
   ElOption,
+  ElMessage,
 } from 'element-plus'
 import {
   getPlaceNoForStockList,
   getMaterialModelList,
   instock,
 } from '@/widgets/WmsMaterialContainer/Models/Service/WmsMaterialContainer'
+import { Message } from '@element-plus/icons-vue/dist/types'
 
 export default defineComponent({
   name: 'WmsMaterialContainer',
@@ -45,10 +47,21 @@
     // 缁勭洏鍏ュ簱鎿嶄綔
     const handlePalletizeStorage = () => {
       console.log('缁勭洏鍏ュ簱鎿嶄綔', queryForm.value)
-      instock(queryForm.value)
+      instock(queryForm.value), resetQueryForm()
+      ElMessage.success({
+        message: '缁勭洏鍏ュ簱鎴愬姛',
+        type: 'success',
+      })
       // 杩欓噷娣诲姞缁勭洏鍏ュ簱閫昏緫
     }
 
+    const resetQueryForm = () => {
+      queryForm.value.materialModel = ''
+      queryForm.value.placeNo = ''
+      queryForm.value.materialBatch = ''
+      queryForm.value.stockNumber = ''
+    }
+
     const getModelList = async () => {
       const models = await getMaterialModelList()
       modelOptions.value = models.map((item: string) => ({
diff --git a/HIAWms/hiawms_web/src/widgets/WmsTask/Controllers/WmsTask.ts b/HIAWms/hiawms_web/src/widgets/WmsTask/Controllers/WmsTask.ts
index 731d5d2..5233f95 100644
--- a/HIAWms/hiawms_web/src/widgets/WmsTask/Controllers/WmsTask.ts
+++ b/HIAWms/hiawms_web/src/widgets/WmsTask/Controllers/WmsTask.ts
@@ -1,275 +1,300 @@
-import { ref, onMounted, reactive, Ref, nextTick, computed } from 'vue' 
-import { injectModel } from '@/libs/Provider/Provider' 
-import { WmsTask } from '../Models/WmsTask' 
-import { ElMessage } from 'element-plus' 
-import { ConfirmBox } from '@/components/ConfirmBox/ConfirmBox' 
-import { useFile } from './File' 
- 
-interface CurrentType { 
-  row: any 
-  index: number 
-} 
-export const useWmsTask = (props: any, ctx?: any) => { 
-  const wmsTask = injectModel<WmsTask>('wmsTask') 
-  const { exportFile } = useFile() 
-  /** 
-   * 澶撮儴閰嶇疆 
-   */ 
-  const headers = ref({}) 
-  /** 
-   * 鍔ㄦ�佸垪閰嶇疆 
-   */ 
-  const wmsTaskColumns = 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 wmsTask.cloneData([row.id]) 
-    //     ElMessage.success('鍒涘缓鍓湰鎴愬姛') 
-    //     tableRef.value?.getList() 
-    //   }, 
-    //   divided: true, 
-    //   icon: 'copy', 
-    // }, 
-    { 
-      label: '鍒犻櫎', 
-      fn: async (c: CurrentType) => { 
-        const names = selection.value.map((item: { taskNo: string }) => item.taskNo) 
-        ConfirmBox( 
-          `鏄惁鍒犻櫎${names.length ? names.join(',') : c.row.taskNo}` 
-        ).then(async () => { 
-          const ids = selection.value.map((item: { id: string }) => item.id) 
-          await wmsTask.deleteWmsTasks(ids.length ? ids : [c.row.id]) 
-          ElMessage.success('鍒犻櫎鎴愬姛') 
-          tableRef.value.getList() 
-        }) 
-      }, 
-      icon: 'close', 
-    }, 
-  ] 
- 
-  const onCheck = (records: any) => { 
-    selection.value = records 
-  } 
- 
-  const onAddWmsTask = () => { 
-    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 onConfirmWmsTask = 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/wmsTask/export', data, 'HIAWms') 
-  } 
- 
-  /** 
-   * 鍏抽敭瀛楁悳绱� 
-   */ 
-  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, 
-    wmsTaskColumns, 
-    paginationParams, 
-    headers, 
-    onBeforeUpload, 
-    onError, 
-    onSuccess, 
-    openDetail, 
-    onSearch, 
-    onExport, 
-    onRowClick, 
-    onConfirmWmsTask, 
-    onCheck, 
-    onAddWmsTask, 
-    onAdvancedQuery 
-  } 
-} 
+import { ref, onMounted, reactive, Ref, nextTick, computed } from 'vue'
+import { injectModel } from '@/libs/Provider/Provider'
+import { WmsTask } from '../Models/WmsTask'
+import { ElMessage } from 'element-plus'
+import { ConfirmBox } from '@/components/ConfirmBox/ConfirmBox'
+import { useFile } from './File'
+
+interface CurrentType {
+  row: any
+  index: number
+}
+interface WmsTaskItem {
+  id: string
+  taskNo: string
+  // 鍏朵粬瀛楁...
+}
+export const useWmsTask = (props: any, ctx?: any) => {
+  const wmsTask = injectModel<WmsTask>('wmsTask')
+  const { exportFile } = useFile()
+  /**
+   * 澶撮儴閰嶇疆
+   */
+  const headers = ref({})
+  /**
+   * 鍔ㄦ�佸垪閰嶇疆
+   */
+  const wmsTaskColumns = ref<Record<string, any>>({})
+  /**
+   * 鎼滅储鍊�
+   */
+  const search = ref('')
+
+  /**
+   * 鎺掑簭
+   */
+  const sort = ref(0)
+  /**
+   * 閫夋嫨椤�
+   */
+  const selection = ref<WmsTaskItem[]>([])
+  /**
+   * 褰撳墠閫変腑鐨勮
+   */
+  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: async (c: CurrentType) => {
+        // 鑾峰彇瑕佹搷浣滅殑浠诲姟锛堝閫夋垨褰撳墠琛岋級
+        const tasks = selection.value.length > 0 ? selection.value : [c.row]
+        const data = {
+          taskNo: tasks[0].taskNo,
+        }
+
+        ConfirmBox(`鏄惁寮哄埗瀹屾垚 ${tasks.map((t) => t.taskNo).join(',')}`)
+          .then(async () => {
+            await wmsTask.finishTask(data) // 浼犻�掑崟涓璞℃垨鏁扮粍
+            ElMessage.success('寮哄埗瀹屾垚鎴愬姛')
+            tableRef.value.getList()
+          })
+          .catch(() => {})
+      },
+      divided: true,
+      icon: 'down',
+    },
+    {
+      label: '鍙栨秷',
+      fn: async (c: CurrentType) => {
+        // 鑾峰彇瑕佹搷浣滅殑浠诲姟锛堝閫夋垨褰撳墠琛岋級
+        const tasks = selection.value.length > 0 ? selection.value : [c.row]
+
+        const data = {
+          taskNo: tasks[0].taskNo,
+        }
+
+        ConfirmBox(`鏄惁鍙栨秷 ${tasks.map((t) => t.taskNo).join(',')}`)
+          .then(async () => {
+            await wmsTask.cancelTask(data) // 浼犻�掑崟涓璞℃垨鏁扮粍
+            ElMessage.success('鍙栨秷鎴愬姛')
+            tableRef.value.getList()
+          })
+          .catch(() => {})
+      },
+      divided: true,
+      icon: 'copy',
+    },
+    {
+      label: '鍒犻櫎',
+      fn: async (c: CurrentType) => {
+        const names = selection.value.map(
+          (item: { taskNo: string }) => item.taskNo
+        )
+        ConfirmBox(
+          `鏄惁鍒犻櫎${names.length ? names.join(',') : c.row.taskNo}`
+        ).then(async () => {
+          const ids = selection.value.map((item: { id: string }) => item.id)
+          await wmsTask.deleteWmsTasks(ids.length ? ids : [c.row.id])
+          ElMessage.success('鍒犻櫎鎴愬姛')
+          tableRef.value.getList()
+        })
+      },
+      icon: 'close',
+    },
+  ]
+
+  const onCheck = (records: any) => {
+    selection.value = records
+  }
+
+  const onAddWmsTask = () => {
+    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 onConfirmWmsTask = 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/wmsTask/export', data, 'HIAWms')
+  }
+
+  /**
+   * 鍏抽敭瀛楁悳绱�
+   */
+  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,
+    wmsTaskColumns,
+    paginationParams,
+    headers,
+    onBeforeUpload,
+    onError,
+    onSuccess,
+    openDetail,
+    onSearch,
+    onExport,
+    onRowClick,
+    onConfirmWmsTask,
+    onCheck,
+    onAddWmsTask,
+    onAdvancedQuery,
+  }
+}
diff --git a/HIAWms/hiawms_web/src/widgets/WmsTask/Models/Service/WmsTask.ts b/HIAWms/hiawms_web/src/widgets/WmsTask/Models/Service/WmsTask.ts
index c2093dc..6d0feff 100644
--- a/HIAWms/hiawms_web/src/widgets/WmsTask/Models/Service/WmsTask.ts
+++ b/HIAWms/hiawms_web/src/widgets/WmsTask/Models/Service/WmsTask.ts
@@ -1,30 +1,46 @@
-import { Base } from '@/libs/Base/Base' 
-const request = Base.request 
- 
-/** 
- * 娣诲姞 
- * @returns 
- */ 
-export const addWmsTask = (data: any) => { 
-  return request.post('/api/v1/HIAWms/wmsTask', data) 
-} 
- 
-/** 
- * 鎵归噺鍒犻櫎 
- * @returns 
- */ 
-export const deleteWmsTasks = (ids: string[]) => { 
-  return request({ 
-    data: ids, 
-    url: '/api/v1/HIAWms/wmsTask', 
-    method: 'delete', 
-  }) 
-} 
- 
-/** 
- * 鍏嬮殕 
- * @returns 
- */ 
-export const cloneData = (data: any) => { 
-  return request.post('/api/v1/HIAWms/wmsTask/clone', data) 
-} 
+import { Base } from '@/libs/Base/Base'
+const request = Base.request
+
+/**
+ * 娣诲姞
+ * @returns
+ */
+export const addWmsTask = (data: any) => {
+  return request.post('/api/v1/HIAWms/wmsTask', data)
+}
+
+/**
+ * 鎵归噺鍒犻櫎
+ * @returns
+ */
+export const deleteWmsTasks = (ids: string[]) => {
+  return request({
+    data: ids,
+    url: '/api/v1/HIAWms/wmsTask',
+    method: 'delete',
+  })
+}
+
+/**
+ * 鍏嬮殕
+ * @returns
+ */
+export const cloneData = (data: any) => {
+  return request.post('/api/v1/HIAWms/wmsTask/clone', data)
+}
+
+/**
+ * 瀹屾垚
+ * @returns
+ */
+export const finishTask = (data: any) => {
+  return request.post('/api/v1/HIAWms/wmsTask/FinishTask', data)
+}
+
+/**
+ * 鍒犻櫎
+ * @returns
+ */
+export const cancelTask = (data: any) => {
+  return request.post('/api/v1/HIAWms/wmsTask/CancelTask', data)
+}
diff --git a/HIAWms/hiawms_web/src/widgets/WmsTask/Models/WmsTask.ts b/HIAWms/hiawms_web/src/widgets/WmsTask/Models/WmsTask.ts
index 8122adf..7fe15d9 100644
--- a/HIAWms/hiawms_web/src/widgets/WmsTask/Models/WmsTask.ts
+++ b/HIAWms/hiawms_web/src/widgets/WmsTask/Models/WmsTask.ts
@@ -1,41 +1,61 @@
-import { Base } from '@/libs/Base/Base' 
-import { 
-  deleteWmsTasks, 
-  addWmsTask, 
-  cloneData, 
-} from './Service/WmsTask' 
- 
-export class WmsTask extends Base<{ [key: string]: any }> { 
-  constructor() { 
-    super({ 
-      data: [], 
-    }) 
-  } 
-  onMounted() {} 
-  /** 
-   * 鍒犻櫎 
-   * @param id 
-   * @returns 
-   */ 
-  async deleteWmsTasks(ids: string[]) { 
-    return deleteWmsTasks(ids) 
-  } 
- 
-  /** 
-   * 娣诲姞鏁版嵁 
-   * @param data 
-   * @returns 
-   */ 
-  addWmsTask(data: Record<string, any>) { 
-    return addWmsTask(data) 
-  } 
- 
-  /** 
-   * 鍏嬮殕 
-   * @param ids 
-   * @returns 
-   */ 
-  cloneData(ids: string[]) { 
-    return cloneData(ids) 
-  } 
-} 
+import { Base } from '@/libs/Base/Base'
+import {
+  deleteWmsTasks,
+  addWmsTask,
+  cloneData,
+  finishTask,
+  cancelTask,
+} from './Service/WmsTask'
+
+export class WmsTask extends Base<{ [key: string]: any }> {
+  constructor() {
+    super({
+      data: [],
+    })
+  }
+  onMounted() {}
+  /**
+   * 鍒犻櫎
+   * @param id
+   * @returns
+   */
+  async deleteWmsTasks(ids: string[]) {
+    return deleteWmsTasks(ids)
+  }
+
+  /**
+   * 娣诲姞鏁版嵁
+   * @param data
+   * @returns
+   */
+  addWmsTask(data: Record<string, any>) {
+    return addWmsTask(data)
+  }
+
+  /**
+   * 鍏嬮殕
+   * @param ids
+   * @returns
+   */
+  cloneData(ids: string[]) {
+    return cloneData(ids)
+  }
+
+  /**
+   * 瀹屾垚浠诲姟
+   * @param id
+   * @returns
+   */
+  finishTask(data: Record<string, any>) {
+    return finishTask(data)
+  }
+
+  /**
+   * 鍙栨秷浠诲姟
+   * @param id
+   * @returns
+   */
+  cancelTask(data: Record<string, any>) {
+    return cancelTask(data)
+  }
+}
diff --git a/HIAWms/hiawms_web/src/widgets/WmsTask/Views/Pages/WmsTask/WmsTask.tsx b/HIAWms/hiawms_web/src/widgets/WmsTask/Views/Pages/WmsTask/WmsTask.tsx
index f4cf6aa..5cca268 100644
--- a/HIAWms/hiawms_web/src/widgets/WmsTask/Views/Pages/WmsTask/WmsTask.tsx
+++ b/HIAWms/hiawms_web/src/widgets/WmsTask/Views/Pages/WmsTask/WmsTask.tsx
@@ -292,7 +292,7 @@
                 <IconButton icon="in">瀵煎叆</IconButton>
               </el-upload> */}
 
-              <IconButton
+              {/* <IconButton
                 v-permission="wmsTask-output"
                 icon="out"
                 onClick={handleExport}
@@ -305,7 +305,7 @@
                 onClick={handleExport}
               >
                 鍙栨秷
-              </IconButton>
+              </IconButton> */}
             </div>
             <ElFormItem style={{ marginTop: '15px' }}>
               <ElFormItem label="鍏抽敭瀛�">
diff --git a/HIAWms/project/Wms.cmsproj b/HIAWms/project/Wms.cmsproj
index 3c7c244..8309144 100644
--- a/HIAWms/project/Wms.cmsproj
+++ b/HIAWms/project/Wms.cmsproj
Binary files differ
diff --git a/HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsTask/WmsTaskUpdateDto.cs b/HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsTask/WmsTaskUpdateDto.cs
index bf34a43..df3611d 100644
--- a/HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsTask/WmsTaskUpdateDto.cs
+++ b/HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsTask/WmsTaskUpdateDto.cs
@@ -11,3 +11,15 @@
     /// </summary> 
     public string ConcurrencyStamp { get; set; } 
 } 
+
+
+/// <summary>
+/// 鍙栨秷/瀹屾垚鍙傛暟
+/// </summary>
+public class WmsTaskStatusDto
+{
+    /// <summary>
+    /// 浠诲姟鍙�
+    /// </summary>
+    public string TaskNo { get;set; }
+}
\ No newline at end of file
diff --git a/HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Services/IWmsOutStockAppService.cs b/HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Services/IWmsOutStockAppService.cs
index 9e57659..66a94bc 100644
--- a/HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Services/IWmsOutStockAppService.cs
+++ b/HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Services/IWmsOutStockAppService.cs
@@ -1,4 +1,5 @@
-锘縰sing System;
+锘縰sing CMS.Plugin.HIAWms.Application.Contracts.Dtos.OutStockDto;
+using System;
 using System.Collections.Generic;
 using System.Linq;
 using System.Text;
@@ -8,5 +9,11 @@
 {
     public interface IWmsOutStockAppService
     {
+        /// <summary>
+        /// 鍙枡
+        /// </summary>
+        /// <param name="input"></param>
+        /// <returns></returns>
+        Task CallMaterialAsync(List<CallMaterialInput> input);
     }
 }
diff --git a/HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Services/IWmsTaskAppService.cs b/HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Services/IWmsTaskAppService.cs
index fd15a11..b01823b 100644
--- a/HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Services/IWmsTaskAppService.cs
+++ b/HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Services/IWmsTaskAppService.cs
@@ -49,12 +49,12 @@
     /// </summary>
     /// <param name="input"></param>
     /// <returns></returns>
-    Task FinishTaskAsync(WmsTaskUpdateDto input);
+    Task FinishTaskAsync(WmsTaskStatusDto input);
 
     /// <summary>
     /// 鍙栨秷浠诲姟
     /// </summary>
     /// <param name="input"></param>
     /// <returns></returns>
-    Task CancelTaskAysnc(WmsTaskUpdateDto input);
+    Task CancelTaskAysnc(WmsTaskStatusDto input);
 } 
diff --git a/HIAWms/server/src/CMS.Plugin.HIAWms.Application/Implements/WmsInOutStockRecordAppService.cs b/HIAWms/server/src/CMS.Plugin.HIAWms.Application/Implements/WmsInOutStockRecordAppService.cs
index b1c7ce2..3bc6ff6 100644
--- a/HIAWms/server/src/CMS.Plugin.HIAWms.Application/Implements/WmsInOutStockRecordAppService.cs
+++ b/HIAWms/server/src/CMS.Plugin.HIAWms.Application/Implements/WmsInOutStockRecordAppService.cs
@@ -429,7 +429,7 @@
     protected Task CheckCreateOrUpdateDtoAsync(WmsInOutStockRecordCreateOrUpdateDtoBase input)
     {
         Check.NotNull(input, nameof(input));
-        Check.NotNullOrWhiteSpace(input.OrderNo, "鍗曟嵁缂栧彿", 50);
+        //Check.NotNullOrWhiteSpace(input.OrderNo, "鍗曟嵁缂栧彿", 50);
         Check.NotNullOrWhiteSpace(input.MaterialNo, "鐗╂枡浠跺彿", 50);
         Check.NotNull(input.ContainerNo, "鎵樼洏鍙�");
         Check.NotNull(input.SourcePlace, "璧峰搴撲綅");
diff --git a/HIAWms/server/src/CMS.Plugin.HIAWms.Application/Implements/WmsOutStockAppService.cs b/HIAWms/server/src/CMS.Plugin.HIAWms.Application/Implements/WmsOutStockAppService.cs
index 1c95d67..0bb41f5 100644
--- a/HIAWms/server/src/CMS.Plugin.HIAWms.Application/Implements/WmsOutStockAppService.cs
+++ b/HIAWms/server/src/CMS.Plugin.HIAWms.Application/Implements/WmsOutStockAppService.cs
@@ -25,8 +25,8 @@
         private readonly IWmsTaskRepository _wmsTaskRepository;
         private readonly IWmsInOutStockOrderRepository _wmsInOutStockOrderRepository;
         private readonly IServiceProvider _serviceProvider;
-        public WmsOutStockAppService(IWmsMaterialStockRepository wmsMaterialStockRepository, 
-            IWmsCommonAppService wmsCommonAppService, IWmsTaskRepository wmsTaskRepository, 
+        public WmsOutStockAppService(IWmsMaterialStockRepository wmsMaterialStockRepository,
+            IWmsCommonAppService wmsCommonAppService, IWmsTaskRepository wmsTaskRepository,
             IWmsInOutStockOrderRepository wmsInOutStockOrderRepository, IServiceProvider serviceProvider
             )
         {
@@ -37,65 +37,73 @@
             _serviceProvider = serviceProvider;
         }
 
-        public async Task CallMaterial(CallMaterialInput input)
+        public async Task CallMaterialAsync(List<CallMaterialInput> input)
         {
             using var scope = _serviceProvider.CreateScope();
             var unitOfWorkManager = scope.ServiceProvider.GetRequiredService<IUnitOfWorkManager>();
             using var uow = unitOfWorkManager.Begin(requiresNew: true);
 
-            var order = await _wmsInOutStockOrderRepository.FindByNameAsync(input.OrderNo);
-            if(order == null)
+            var distinctModels = input.Select(x => x.MaterialModel).Distinct().ToList();
+            if (distinctModels.Count > 1)
             {
-                throw new UserFriendlyException("鍑哄簱鍗曟嵁涓嶅瓨鍦�");
+                throw new UserFriendlyException("涓�娆″彨鏂欏彧鑳介拡瀵瑰悓涓�鍨嬪彿鐨勭墿鏂欙紒");
             }
-            if(input.MaterialNumber <=0)
+            foreach (var inputItem in input)
             {
-                throw new UserFriendlyException("鍙枡鏁伴噺蹇呴』澶т簬0");
-            }
-            if(order.MaterialNumber< input.MaterialNumber)
-            {
-                throw new UserFriendlyException("鍙枡鏁伴噺涓嶈兘澶т簬鍗曟嵁鏁伴噺");
-            }
-            order.OrderStatus = OrderStatusEnum.Executing;
-            order.DistributeNumber = input.MaterialNumber;
-
-            await _wmsInOutStockOrderRepository.UpdateAsync(order);
-
-            var stockresult = await _wmsCommonAppService.FindStockAsync(input.MaterialModel, input.MaterialNumber);
-            if(stockresult == null)
-            {
-                throw new UserFriendlyException("褰撳墠鏃犲簱瀛�");
-            }
-            var taskList = new List<WmsTask>();
-            foreach (var kvp in stockresult)
-            {
-                var stock = kvp.Key;    // WmsPlace瀵硅薄
-                var quantity = kvp.Value; // 鍒嗛厤鏁伴噺
-
-                for (int i = 0; i < quantity; i++)
+                var order = await _wmsInOutStockOrderRepository.FindByNameAsync(inputItem.OrderNo);
+                if (order == null)
                 {
-                    var task = new WmsTask
-                    {
-                        TaskNo = $"CK_{DateTime.Now:yyyyMMddHHmmss}_{Guid.NewGuid().ToString("N").Substring(0, 6)}",
-                        ContainerNo = stock.ContainerNo,
-                        SourcePlace = stock.PlaceNo,
-                        ToPlace = "201",// place.PlaceNo,
-                        TaskType = TaskTypeEnum.CHUKU,
-                        SonTaskType = input.OrderType == OrderTypeEnum.PRODUCTCALL ? SonTaskTypeEnum.ZDCHUKU : SonTaskTypeEnum.RGRUKU,
-                        TaskStatus = WmsTaskStatus.WEIZHIXING,
-                        TaskLevel = 999,
-                        Aisle = 1,
-                        DodeviceId = 0,
-                        TaskDodeviceStatus = TaskDodeviceStatus.SrmNoStart,
-                        IsNextTask = (int)YesNoEnum.Y,
-                        IsRead = true,
-                        SourceOrderNo = input.OrderNo,
-                        MutableParam1 = input.MaterialModel,
-                    };
-                    taskList.Add(task);
+                    throw new UserFriendlyException("鍑哄簱鍗曟嵁涓嶅瓨鍦�");
                 }
+                if (inputItem.MaterialNumber <= 0)
+                {
+                    throw new UserFriendlyException("鍙枡鏁伴噺蹇呴』澶т簬0");
+                }
+                if (order.MaterialNumber < inputItem.MaterialNumber)
+                {
+                    throw new UserFriendlyException("鍙枡鏁伴噺涓嶈兘澶т簬鍗曟嵁鏁伴噺");
+                }
+                order.OrderStatus = OrderStatusEnum.Executing;
+                order.DistributeNumber = inputItem.MaterialNumber;
+
+                await _wmsInOutStockOrderRepository.UpdateAsync(order);
+
+                var stockresult = await _wmsCommonAppService.FindStockAsync(inputItem.MaterialModel, inputItem.MaterialNumber);
+                if (stockresult == null)
+                {
+                    throw new UserFriendlyException("褰撳墠鏃犲簱瀛�");
+                }
+                var taskList = new List<WmsTask>();
+                foreach (var kvp in stockresult)
+                {
+                    var stock = kvp.Key;    // WmsPlace瀵硅薄
+                    var quantity = kvp.Value; // 鍒嗛厤鏁伴噺
+
+                    for (int i = 0; i < quantity; i++)
+                    {
+                        var task = new WmsTask
+                        {
+                            TaskNo = $"CK_{DateTime.Now:yyyyMMddHHmmss}_{Guid.NewGuid().ToString("N").Substring(0, 6)}",
+                            ContainerNo = stock.ContainerNo,
+                            SourcePlace = stock.PlaceNo,
+                            ToPlace = "201",// place.PlaceNo,
+                            TaskType = TaskTypeEnum.CHUKU,
+                            SonTaskType = inputItem.OrderType == OrderTypeEnum.PRODUCTCALL ? SonTaskTypeEnum.ZDCHUKU : SonTaskTypeEnum.RGRUKU,
+                            TaskStatus = WmsTaskStatus.WEIZHIXING,
+                            TaskLevel = order.Priority,
+                            Aisle = 1,
+                            DodeviceId = 0,
+                            TaskDodeviceStatus = TaskDodeviceStatus.SrmNoStart,
+                            IsNextTask = (int)YesNoEnum.Y,
+                            IsRead = true,
+                            SourceOrderNo = inputItem.OrderNo,
+                            MutableParam1 = inputItem.MaterialModel,
+                        };
+                        taskList.Add(task);
+                    }
+                }
+                await _wmsTaskRepository.InsertManyAsync(taskList);
             }
-            await _wmsTaskRepository.InsertManyAsync(taskList);
 
             await uow.SaveChangesAsync();
             await uow.CompleteAsync();
diff --git a/HIAWms/server/src/CMS.Plugin.HIAWms.Application/Implements/WmsTaskAppService.cs b/HIAWms/server/src/CMS.Plugin.HIAWms.Application/Implements/WmsTaskAppService.cs
index 245278e..2fbdaac 100644
--- a/HIAWms/server/src/CMS.Plugin.HIAWms.Application/Implements/WmsTaskAppService.cs
+++ b/HIAWms/server/src/CMS.Plugin.HIAWms.Application/Implements/WmsTaskAppService.cs
@@ -197,7 +197,7 @@
         }
 
         updateObj.SetConcurrencyStampIfNotNull(input.ConcurrencyStamp);
-        if(input.TaskStatus == Domain.Shared.Enums.WmsTaskStatus.WANCHENG || input.TaskStatus == Domain.Shared.Enums.WmsTaskStatus.QUXIAO)
+        if (input.TaskStatus == Domain.Shared.Enums.WmsTaskStatus.WANCHENG || input.TaskStatus == Domain.Shared.Enums.WmsTaskStatus.QUXIAO)
         {
             throw new UserFriendlyException("瀹屾垚鎴栬�呭彇娑堢殑浠诲姟涓嶅厑璁告洿鏀�");
         }
@@ -523,9 +523,8 @@
     /// <param name="input"></param>
     /// <returns></returns>
     /// <exception cref="UserFriendlyException"></exception>
-    public async Task FinishTaskAsync(WmsTaskUpdateDto input)
+    public async Task FinishTaskAsync(WmsTaskStatusDto input)
     {
-
         using var scope = _serviceProvider.CreateScope();
         var unitOfWorkManager = scope.ServiceProvider.GetRequiredService<IUnitOfWorkManager>();
         using var uow = unitOfWorkManager.Begin(requiresNew: true);
@@ -540,19 +539,35 @@
             throw new UserFriendlyException("鍙栨秷鎴栬�呭畬鎴愮殑浠诲姟涓嶅厑璁告搷浣�");
         }
         task.TaskStatus = WmsTaskStatus.WANCHENG;
+        task.TaskDodeviceStatus = TaskDodeviceStatus.SrmFinish;
+        await wmsTaskRepository.UpdateAsync(task);
+
+        var place = await _wmsPlaceRepository.FindByNameAsync(task.ToPlace);
+        if (place == null)
+        {
+            throw new UserFriendlyException("鐩爣搴撲綅涓嶅瓨鍦�");
+        }
 
         // 鏇存柊搴撳瓨
-        var stockList = await _wmsMaterialStockRepository.GetStockListAsync(new WmsMaterialStock { MaterialModel = task.MutableParam1,PlaceNo = task.SourcePlace});
-        if(stockList == null || stockList.Count<=0)
+        var stockList = await _wmsMaterialStockRepository.GetStockListAsync(new WmsMaterialStock { MaterialModel = task.MutableParam1, PlaceNo = task.SourcePlace });
+        if (stockList == null || stockList.Count <= 0)
         {
             throw new UserFriendlyException("鍘熷簱浣嶄俊鎭笉瀛樺湪");
         }
         var stock = stockList.FirstOrDefault();
         stock.PlaceNo = task.ToPlace;
+        stock.StorageTypeNo = place.StorageTypeNo;
+        stock.InStockTime = DateTime.Now;
         stock.ContainerNo = "TP" + task.ToPlace;
 
+        await _wmsMaterialStockRepository.UpdateAsync(stock);
+
+        place.PlaceStatus = PlaceStatusEnum.CUNHUO;
+        await _wmsPlaceRepository.UpdateAsync(place);
+
+
         var container = await _wmsContainerRepository.FindByNameAsync(stock.ContainerNo);
-        if(container == null)
+        if (container == null)
         {
             await _wmsContainerRepository.InsertAsync(new WmsContainer
             {
@@ -561,9 +576,14 @@
                 ContainerType = ContainerTypeEnum.XUNI,
             });
         }
+        else
+        {
+            container.ContainerStatus = ContainerStatusEnum.KUWEI;
+            await _wmsContainerRepository.UpdateAsync(container);
+        }
 
         var oldContainer = await _wmsContainerRepository.FindByNameAsync(task.ContainerNo);
-        if(oldContainer != null)
+        if (oldContainer != null)
         {
             await _wmsContainerRepository.DeleteAsync(oldContainer);
         }
@@ -572,7 +592,7 @@
         {
             // 璺熸柊鍗曟嵁瀹屾垚鏁伴噺
             var orderNo = await _wmsInOutStockOrderRepository.FindByNameAsync(task.SourceOrderNo);
-            if(orderNo != null)
+            if (orderNo != null)
             {
                 orderNo.CompleteNumber += 1;
                 orderNo.OrderStatus = OrderStatusEnum.Executing;
@@ -605,7 +625,7 @@
             StockType = task.TaskType == TaskTypeEnum.CHUKU ? StockTypeEnum.OutBound : StockTypeEnum.InBound,
             ContainerNo = task.ContainerNo,
             MaterialId = stock.MaterialId,
-            MaterialModel= stock.MaterialModel,
+            MaterialModel = stock.MaterialModel,
             MaterialName = stock.MaterialName,
             MaterialNo = stock.MaterialNo,
             MaterialBatch = stock.MaterialBatch,
@@ -625,7 +645,7 @@
     /// <param name="input"></param>
     /// <returns></returns>
     /// <exception cref="UserFriendlyException"></exception>
-    public async Task CancelTaskAysnc(WmsTaskUpdateDto input)
+    public async Task CancelTaskAysnc(WmsTaskStatusDto input)
     {
 
         using var scope = _serviceProvider.CreateScope();
@@ -656,18 +676,18 @@
         {
             // 璺熸柊鍗曟嵁瀹屾垚鏁伴噺
             var orderNo = await _wmsInOutStockOrderRepository.FindByNameAsync(task.SourceOrderNo);
-            if(orderNo != null)
+            if (orderNo != null)
             {
                 orderNo.CompleteNumber -= 1;
                 orderNo.OrderStatus = OrderStatusEnum.NoStart;
             }
-            if (orderNo.CompleteNumber>0)
+            if (orderNo.CompleteNumber > 0)
             {
                 orderNo.OrderStatus = OrderStatusEnum.Executing;
             }
 
             await _wmsInOutStockOrderRepository.UpdateAsync(orderNo);
-            
+
         }
 
         await uow.SaveChangesAsync();
diff --git a/HIAWms/server/src/CMS.Plugin.HIAWms.EntityFrameworkCore/Extensions/CMSPluginEfCoreExtensions.WmsInOutStockRecord.cs b/HIAWms/server/src/CMS.Plugin.HIAWms.EntityFrameworkCore/Extensions/CMSPluginEfCoreExtensions.WmsInOutStockRecord.cs
index 769d0f8..63f1eea 100644
--- a/HIAWms/server/src/CMS.Plugin.HIAWms.EntityFrameworkCore/Extensions/CMSPluginEfCoreExtensions.WmsInOutStockRecord.cs
+++ b/HIAWms/server/src/CMS.Plugin.HIAWms.EntityFrameworkCore/Extensions/CMSPluginEfCoreExtensions.WmsInOutStockRecord.cs
@@ -46,7 +46,7 @@
                 // Properties
                 b.Property(x => x.OrderNo)
                     .HasMaxLength(50)
-                    .IsRequired()
+                    .IsRequired(false)
                     .HasComment("鍗曟嵁缂栧彿");
 
                 b.Property(x => x.MaterialName)
diff --git a/HIAWms/server/src/CMS.Plugin.HIAWms.EntityFrameworkCore/Repositories/EfCoreWmsMaterialStockRepository.cs b/HIAWms/server/src/CMS.Plugin.HIAWms.EntityFrameworkCore/Repositories/EfCoreWmsMaterialStockRepository.cs
index 2aaf459..8c6d4dd 100644
--- a/HIAWms/server/src/CMS.Plugin.HIAWms.EntityFrameworkCore/Repositories/EfCoreWmsMaterialStockRepository.cs
+++ b/HIAWms/server/src/CMS.Plugin.HIAWms.EntityFrameworkCore/Repositories/EfCoreWmsMaterialStockRepository.cs
@@ -146,7 +146,7 @@
        .AsQueryable(); // 转换回IQueryable以支持后续操作
 
         var result = groupedData
-        .OrderBy(sorting.IsNullOrEmpty() ? nameof(WmsMaterialStock.Sort) : sorting)
+        .OrderBy(x=>x.StockNumber)
         .PageBy(skipCount, maxResultCount)
         .ToList();
 
diff --git a/HIAWms/server/src/CMS.Plugin.HIAWms.MySQL/Migrations/20250511134948_InitialCreate14.Designer.cs b/HIAWms/server/src/CMS.Plugin.HIAWms.MySQL/Migrations/20250511134948_InitialCreate14.Designer.cs
new file mode 100644
index 0000000..5caa8e9
--- /dev/null
+++ b/HIAWms/server/src/CMS.Plugin.HIAWms.MySQL/Migrations/20250511134948_InitialCreate14.Designer.cs
@@ -0,0 +1,1786 @@
+锘�// <auto-generated />
+using System;
+using CMS.Plugin.HIAWms.MySQL;
+using Microsoft.EntityFrameworkCore;
+using Microsoft.EntityFrameworkCore.Infrastructure;
+using Microsoft.EntityFrameworkCore.Migrations;
+using Microsoft.EntityFrameworkCore.Storage.ValueConversion;
+using Volo.Abp.EntityFrameworkCore;
+
+#nullable disable
+
+namespace CMS.Plugin.HIAWms.MySQL.Migrations
+{
+    [DbContext(typeof(CMSPluginDbContext))]
+    [Migration("20250511134948_InitialCreate14")]
+    partial class InitialCreate14
+    {
+        protected override void BuildTargetModel(ModelBuilder modelBuilder)
+        {
+#pragma warning disable 612, 618
+            modelBuilder
+                .HasAnnotation("_Abp_DatabaseProvider", EfCoreDatabaseProvider.MySql)
+                .HasAnnotation("ProductVersion", "6.0.16")
+                .HasAnnotation("Relational:MaxIdentifierLength", 64);
+
+            modelBuilder.Entity("CMS.Plugin.HIAWms.Domain.WmsAreas.WmsArea", b =>
+                {
+                    b.Property<Guid>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("char(36)");
+
+                    b.Property<string>("AreaDesc")
+                        .HasMaxLength(200)
+                        .HasColumnType("varchar(200)")
+                        .HasComment("鎻忚堪");
+
+                    b.Property<string>("AreaName")
+                        .IsRequired()
+                        .HasMaxLength(100)
+                        .HasColumnType("varchar(100)")
+                        .HasComment("搴撳尯鍚嶇О");
+
+                    b.Property<string>("AreaNo")
+                        .IsRequired()
+                        .HasMaxLength(64)
+                        .HasColumnType("varchar(64)")
+                        .HasComment("搴撳尯缂栧彿");
+
+                    b.Property<int>("AreaStatus")
+                        .HasColumnType("int")
+                        .HasComment("搴撳尯鐘舵��");
+
+                    b.Property<int>("AreaType")
+                        .HasColumnType("int")
+                        .HasComment("搴撳尯绫诲瀷");
+
+                    b.Property<string>("ConcurrencyStamp")
+                        .IsConcurrencyToken()
+                        .HasMaxLength(40)
+                        .HasColumnType("varchar(40)")
+                        .HasColumnName("ConcurrencyStamp");
+
+                    b.Property<DateTime>("CreationTime")
+                        .HasColumnType("datetime(6)")
+                        .HasColumnName("CreationTime");
+
+                    b.Property<Guid?>("CreatorId")
+                        .HasColumnType("char(36)")
+                        .HasColumnName("CreatorId");
+
+                    b.Property<Guid?>("DeleterId")
+                        .HasColumnType("char(36)")
+                        .HasColumnName("DeleterId");
+
+                    b.Property<DateTime?>("DeletionTime")
+                        .HasColumnType("datetime(6)")
+                        .HasColumnName("DeletionTime");
+
+                    b.Property<string>("ExtraProperties")
+                        .HasColumnType("longtext")
+                        .HasColumnName("ExtraProperties");
+
+                    b.Property<bool>("IsDeleted")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("tinyint(1)")
+                        .HasDefaultValue(false)
+                        .HasColumnName("IsDeleted");
+
+                    b.Property<bool?>("IsDisabled")
+                        .HasColumnType("tinyint(1)")
+                        .HasComment("鏄惁绂佺敤");
+
+                    b.Property<DateTime?>("LastModificationTime")
+                        .HasColumnType("datetime(6)")
+                        .HasColumnName("LastModificationTime");
+
+                    b.Property<Guid?>("LastModifierId")
+                        .HasColumnType("char(36)")
+                        .HasColumnName("LastModifierId");
+
+                    b.Property<string>("RedundantField1")
+                        .HasMaxLength(100)
+                        .HasColumnType("varchar(100)")
+                        .HasComment("鍐椾綑瀛楁1 - 棰勭暀鎵╁睍鐢ㄩ��");
+
+                    b.Property<string>("RedundantField2")
+                        .HasMaxLength(100)
+                        .HasColumnType("varchar(100)")
+                        .HasComment("鍐椾綑瀛楁2 - 棰勭暀鎵╁睍鐢ㄩ��");
+
+                    b.Property<string>("RedundantField3")
+                        .HasMaxLength(100)
+                        .HasColumnType("varchar(100)")
+                        .HasComment("鍐椾綑瀛楁3 - 棰勭暀鎵╁睍鐢ㄩ��");
+
+                    b.Property<string>("Remark")
+                        .HasMaxLength(256)
+                        .HasColumnType("varchar(256)")
+                        .HasComment("澶囨敞");
+
+                    b.Property<int>("Sort")
+                        .HasColumnType("int")
+                        .HasComment("鎺掑簭");
+
+                    b.Property<string>("StoreCode")
+                        .HasMaxLength(50)
+                        .HasColumnType("varchar(50)")
+                        .HasComment("浠撳簱浠g爜");
+
+                    b.Property<string>("StoreName")
+                        .HasMaxLength(100)
+                        .HasColumnType("varchar(100)")
+                        .HasComment("浠撳簱鍚嶇О");
+
+                    b.HasKey("Id");
+
+                    b.HasIndex("AreaName");
+
+                    b.ToTable("scms_wmsareas", (string)null);
+
+                    b.HasComment("搴撳尯琛�");
+                });
+
+            modelBuilder.Entity("CMS.Plugin.HIAWms.Domain.WmsContainerPlace.WmsContainerPlace", b =>
+                {
+                    b.Property<string>("PlaceNo")
+                        .HasMaxLength(50)
+                        .HasColumnType("varchar(50)")
+                        .HasComment("搴撲綅缂栫爜");
+
+                    b.Property<string>("ContainerNo")
+                        .HasMaxLength(50)
+                        .HasColumnType("varchar(50)")
+                        .HasComment("鎵樼洏缂栧彿");
+
+                    b.Property<string>("ConcurrencyStamp")
+                        .IsConcurrencyToken()
+                        .HasMaxLength(40)
+                        .HasColumnType("varchar(40)")
+                        .HasColumnName("ConcurrencyStamp")
+                        .HasComment("骞跺彂鎴�");
+
+                    b.Property<DateTime>("CreationTime")
+                        .HasColumnType("datetime(6)")
+                        .HasColumnName("CreationTime")
+                        .HasComment("鍒涘缓鏃堕棿");
+
+                    b.Property<Guid?>("CreatorId")
+                        .HasMaxLength(36)
+                        .HasColumnType("char(36)")
+                        .HasColumnName("CreatorId")
+                        .HasComment("鍒涘缓浜篒D");
+
+                    b.Property<string>("CreatorName")
+                        .HasMaxLength(64)
+                        .HasColumnType("varchar(64)")
+                        .HasComment("鍒涘缓浜�");
+
+                    b.Property<string>("DeleteRemark")
+                        .HasMaxLength(256)
+                        .HasColumnType("varchar(256)")
+                        .HasComment("鍒犻櫎澶囨敞");
+
+                    b.Property<Guid?>("DeleterId")
+                        .HasMaxLength(36)
+                        .HasColumnType("char(36)")
+                        .HasColumnName("DeleterId")
+                        .HasComment("鍒犻櫎浜篒D");
+
+                    b.Property<DateTime?>("DeletionTime")
+                        .HasColumnType("datetime(6)")
+                        .HasColumnName("DeletionTime")
+                        .HasComment("鍒犻櫎鏃堕棿");
+
+                    b.Property<string>("ExtraField1")
+                        .HasMaxLength(256)
+                        .HasColumnType("varchar(256)")
+                        .HasComment("鎵╁睍瀛楁1");
+
+                    b.Property<string>("ExtraField2")
+                        .HasMaxLength(256)
+                        .HasColumnType("varchar(256)")
+                        .HasComment("鎵╁睍瀛楁2");
+
+                    b.Property<string>("ExtraField3")
+                        .HasMaxLength(256)
+                        .HasColumnType("varchar(256)")
+                        .HasComment("鎵╁睍瀛楁3");
+
+                    b.Property<string>("ExtraProperties")
+                        .HasColumnType("longtext")
+                        .HasColumnName("ExtraProperties")
+                        .HasComment("鎵╁睍灞炴��");
+
+                    b.Property<Guid>("Id")
+                        .HasColumnType("char(36)");
+
+                    b.Property<bool>("IsDeleted")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("tinyint(1)")
+                        .HasDefaultValue(false)
+                        .HasColumnName("IsDeleted")
+                        .HasComment("鏄惁鍒犻櫎");
+
+                    b.Property<bool?>("IsDisabled")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("tinyint(1)")
+                        .HasDefaultValue(false)
+                        .HasComment("鏄惁绂佺敤");
+
+                    b.Property<DateTime?>("LastModificationTime")
+                        .HasColumnType("datetime(6)")
+                        .HasColumnName("LastModificationTime")
+                        .HasComment("淇敼鏃堕棿");
+
+                    b.Property<Guid?>("LastModifierId")
+                        .HasMaxLength(36)
+                        .HasColumnType("char(36)")
+                        .HasColumnName("LastModifierId")
+                        .HasComment("淇敼浜篒D");
+
+                    b.Property<string>("LastModifierName")
+                        .HasMaxLength(64)
+                        .HasColumnType("varchar(64)")
+                        .HasComment("淇敼浜�");
+
+                    b.Property<string>("OperationRemark")
+                        .HasMaxLength(256)
+                        .HasColumnType("varchar(256)")
+                        .HasComment("鎿嶄綔澶囨敞");
+
+                    b.Property<string>("Remark")
+                        .HasMaxLength(256)
+                        .HasColumnType("varchar(256)")
+                        .HasComment("澶囨敞");
+
+                    b.Property<int>("Sort")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("int")
+                        .HasDefaultValue(0)
+                        .HasComment("鎺掑簭");
+
+                    b.HasKey("PlaceNo", "ContainerNo");
+
+                    b.HasIndex("ContainerNo");
+
+                    b.HasIndex("PlaceNo");
+
+                    b.ToTable("scms_wmscontainerplaces", (string)null);
+
+                    b.HasComment("瀹瑰櫒搴撲綅鍏崇郴琛�");
+                });
+
+            modelBuilder.Entity("CMS.Plugin.HIAWms.Domain.WmsContainers.WmsContainer", b =>
+                {
+                    b.Property<Guid>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("char(36)");
+
+                    b.Property<string>("ConcurrencyStamp")
+                        .IsConcurrencyToken()
+                        .HasMaxLength(40)
+                        .HasColumnType("varchar(40)")
+                        .HasColumnName("ConcurrencyStamp");
+
+                    b.Property<string>("ContainerNo")
+                        .IsRequired()
+                        .HasMaxLength(50)
+                        .HasColumnType("varchar(50)")
+                        .HasComment("鎵樼洏缂栧彿");
+
+                    b.Property<int>("ContainerStatus")
+                        .HasColumnType("int")
+                        .HasComment("鎵樼洏鐘舵��");
+
+                    b.Property<int>("ContainerType")
+                        .HasColumnType("int")
+                        .HasComment("鎵樼洏绫诲瀷");
+
+                    b.Property<DateTime>("CreationTime")
+                        .HasColumnType("datetime(6)")
+                        .HasColumnName("CreationTime");
+
+                    b.Property<Guid?>("CreatorId")
+                        .HasColumnType("char(36)")
+                        .HasColumnName("CreatorId");
+
+                    b.Property<Guid?>("DeleterId")
+                        .HasColumnType("char(36)")
+                        .HasColumnName("DeleterId");
+
+                    b.Property<DateTime?>("DeletionTime")
+                        .HasColumnType("datetime(6)")
+                        .HasColumnName("DeletionTime");
+
+                    b.Property<int?>("ExceptionNumber")
+                        .HasColumnType("int")
+                        .HasComment("寮傚父鏁伴噺");
+
+                    b.Property<string>("ExtraProperties")
+                        .HasColumnType("longtext")
+                        .HasColumnName("ExtraProperties");
+
+                    b.Property<bool>("IsDeleted")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("tinyint(1)")
+                        .HasDefaultValue(false)
+                        .HasColumnName("IsDeleted");
+
+                    b.Property<bool?>("IsDisabled")
+                        .HasColumnType("tinyint(1)")
+                        .HasComment("鏄惁绂佺敤");
+
+                    b.Property<DateTime?>("LastModificationTime")
+                        .HasColumnType("datetime(6)")
+                        .HasColumnName("LastModificationTime");
+
+                    b.Property<Guid?>("LastModifierId")
+                        .HasColumnType("char(36)")
+                        .HasColumnName("LastModifierId");
+
+                    b.Property<decimal?>("LimitHeight")
+                        .HasPrecision(18, 2)
+                        .HasColumnType("decimal(18,2)")
+                        .HasComment("闄愰珮");
+
+                    b.Property<decimal?>("LimitLength")
+                        .HasPrecision(18, 2)
+                        .HasColumnType("decimal(18,2)")
+                        .HasComment("闄愰暱");
+
+                    b.Property<decimal?>("LimitWidth")
+                        .HasPrecision(18, 2)
+                        .HasColumnType("decimal(18,2)")
+                        .HasComment("闄愬");
+
+                    b.Property<int?>("MaterialNumber")
+                        .HasColumnType("int")
+                        .HasComment("鐗╂枡鏁伴噺");
+
+                    b.Property<decimal?>("MaxWeight")
+                        .HasPrecision(18, 2)
+                        .HasColumnType("decimal(18,2)")
+                        .HasComment("杞介噸涓婇檺");
+
+                    b.Property<string>("RedundantField1")
+                        .HasMaxLength(200)
+                        .HasColumnType("varchar(200)")
+                        .HasComment("鍐椾綑瀛楁1 - 棰勭暀鎵╁睍鐢ㄩ��");
+
+                    b.Property<string>("RedundantField2")
+                        .HasMaxLength(200)
+                        .HasColumnType("varchar(200)")
+                        .HasComment("鍐椾綑瀛楁2 - 棰勭暀鎵╁睍鐢ㄩ��");
+
+                    b.Property<string>("RedundantField3")
+                        .HasMaxLength(200)
+                        .HasColumnType("varchar(200)")
+                        .HasComment("鍐椾綑瀛楁3 - 棰勭暀鎵╁睍鐢ㄩ��");
+
+                    b.Property<string>("Remark")
+                        .HasMaxLength(256)
+                        .HasColumnType("varchar(256)")
+                        .HasComment("澶囨敞");
+
+                    b.Property<int>("Sort")
+                        .HasColumnType("int")
+                        .HasComment("鎺掑簭");
+
+                    b.Property<decimal?>("SpecHeight")
+                        .HasPrecision(18, 2)
+                        .HasColumnType("decimal(18,2)")
+                        .HasComment("楂樺害");
+
+                    b.Property<decimal?>("SpecLength")
+                        .HasPrecision(18, 2)
+                        .HasColumnType("decimal(18,2)")
+                        .HasComment("闀垮害");
+
+                    b.Property<decimal?>("SpecWidth")
+                        .HasPrecision(18, 2)
+                        .HasColumnType("decimal(18,2)")
+                        .HasComment("瀹藉害");
+
+                    b.HasKey("Id");
+
+                    b.HasIndex("ContainerNo")
+                        .IsUnique();
+
+                    b.HasIndex("ContainerStatus");
+
+                    b.HasIndex("ContainerType");
+
+                    b.ToTable("scms_wmscontainers", (string)null);
+
+                    b.HasComment("鎵樼洏淇℃伅琛�");
+                });
+
+            modelBuilder.Entity("CMS.Plugin.HIAWms.Domain.WmsInOutStockOrder.WmsInOutStockOrder", b =>
+                {
+                    b.Property<Guid>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("char(36)");
+
+                    b.Property<int>("CompleteNumber")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("int")
+                        .HasDefaultValue(0)
+                        .HasComment("瀹屾垚鏁伴噺");
+
+                    b.Property<string>("ConcurrencyStamp")
+                        .IsConcurrencyToken()
+                        .HasMaxLength(40)
+                        .HasColumnType("varchar(40)")
+                        .HasColumnName("ConcurrencyStamp");
+
+                    b.Property<DateTime>("CreationTime")
+                        .HasColumnType("datetime(6)")
+                        .HasColumnName("CreationTime");
+
+                    b.Property<Guid?>("CreatorId")
+                        .HasColumnType("char(36)")
+                        .HasColumnName("CreatorId");
+
+                    b.Property<Guid?>("DeleterId")
+                        .HasColumnType("char(36)")
+                        .HasColumnName("DeleterId");
+
+                    b.Property<DateTime?>("DeletionTime")
+                        .HasColumnType("datetime(6)")
+                        .HasColumnName("DeletionTime");
+
+                    b.Property<int>("DistributeNumber")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("int")
+                        .HasDefaultValue(0)
+                        .HasComment("涓嬪彂鏁伴噺");
+
+                    b.Property<string>("ExtraProperties")
+                        .HasColumnType("longtext")
+                        .HasColumnName("ExtraProperties");
+
+                    b.Property<bool>("IsDeleted")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("tinyint(1)")
+                        .HasDefaultValue(false)
+                        .HasColumnName("IsDeleted");
+
+                    b.Property<bool?>("IsDisabled")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("tinyint(1)")
+                        .HasDefaultValue(false)
+                        .HasComment("鏄惁绂佺敤");
+
+                    b.Property<DateTime?>("LastModificationTime")
+                        .HasColumnType("datetime(6)")
+                        .HasColumnName("LastModificationTime");
+
+                    b.Property<Guid?>("LastModifierId")
+                        .HasColumnType("char(36)")
+                        .HasColumnName("LastModifierId");
+
+                    b.Property<string>("MaterialBatch")
+                        .IsRequired()
+                        .HasMaxLength(50)
+                        .HasColumnType("varchar(50)")
+                        .HasComment("鎵规鍙�");
+
+                    b.Property<string>("MaterialModel")
+                        .HasMaxLength(50)
+                        .HasColumnType("varchar(50)")
+                        .HasComment("鍨嬪彿");
+
+                    b.Property<string>("MaterialName")
+                        .HasMaxLength(100)
+                        .HasColumnType("varchar(100)")
+                        .HasComment("鐗╂枡鍚嶇О");
+
+                    b.Property<string>("MaterialNo")
+                        .IsRequired()
+                        .HasMaxLength(50)
+                        .HasColumnType("varchar(50)")
+                        .HasComment("鐗╂枡浠跺彿");
+
+                    b.Property<int>("MaterialNumber")
+                        .HasColumnType("int")
+                        .HasComment("鍗曟嵁鏁伴噺");
+
+                    b.Property<DateTime?>("OperateTime")
+                        .HasColumnType("datetime(6)")
+                        .HasComment("鎿嶄綔鏃堕棿");
+
+                    b.Property<string>("OrderNo")
+                        .IsRequired()
+                        .HasMaxLength(50)
+                        .HasColumnType("varchar(50)")
+                        .HasComment("鍗曟嵁缂栧彿");
+
+                    b.Property<int>("OrderStatus")
+                        .HasColumnType("int")
+                        .HasComment("鍗曟嵁鐘舵��");
+
+                    b.Property<int>("OrderType")
+                        .HasColumnType("int")
+                        .HasComment("鍗曟嵁绫诲瀷");
+
+                    b.Property<string>("PlanNo")
+                        .HasMaxLength(50)
+                        .HasColumnType("varchar(50)")
+                        .HasComment("鍏宠仈璁″垝缂栧彿");
+
+                    b.Property<int>("Priority")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("int")
+                        .HasDefaultValue(1)
+                        .HasComment("浼樺厛绾�");
+
+                    b.Property<string>("Remark")
+                        .HasMaxLength(500)
+                        .HasColumnType("varchar(500)")
+                        .HasComment("澶囨敞");
+
+                    b.Property<int>("Sort")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("int")
+                        .HasDefaultValue(0)
+                        .HasComment("鎺掑簭");
+
+                    b.Property<int>("StockType")
+                        .HasColumnType("int")
+                        .HasComment("鎿嶄綔绫诲瀷锛堟灇涓惧�硷級");
+
+                    b.HasKey("Id");
+
+                    b.HasIndex("MaterialBatch");
+
+                    b.HasIndex("MaterialNo");
+
+                    b.HasIndex("OperateTime");
+
+                    b.HasIndex("OrderNo")
+                        .IsUnique();
+
+                    b.HasIndex("PlanNo");
+
+                    b.ToTable("scms_wmsinoutstockorder", (string)null);
+
+                    b.HasComment("鍑哄叆搴撳崟鎹〃");
+                });
+
+            modelBuilder.Entity("CMS.Plugin.HIAWms.Domain.WmsInOutStockOrderDetail.WmsInOutStockOrderDetail", b =>
+                {
+                    b.Property<Guid>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("char(36)");
+
+                    b.Property<string>("ConcurrencyStamp")
+                        .IsConcurrencyToken()
+                        .HasMaxLength(40)
+                        .HasColumnType("varchar(40)")
+                        .HasColumnName("ConcurrencyStamp");
+
+                    b.Property<string>("ContainerNo")
+                        .HasMaxLength(50)
+                        .HasColumnType("varchar(50)")
+                        .HasComment("瀹瑰櫒缂栧彿");
+
+                    b.Property<DateTime>("CreationTime")
+                        .HasColumnType("datetime(6)")
+                        .HasColumnName("CreationTime");
+
+                    b.Property<Guid?>("CreatorId")
+                        .HasColumnType("char(36)")
+                        .HasColumnName("CreatorId");
+
+                    b.Property<Guid?>("DeleterId")
+                        .HasColumnType("char(36)")
+                        .HasColumnName("DeleterId");
+
+                    b.Property<DateTime?>("DeletionTime")
+                        .HasColumnType("datetime(6)")
+                        .HasColumnName("DeletionTime");
+
+                    b.Property<string>("ExtraProperties")
+                        .HasColumnType("longtext")
+                        .HasColumnName("ExtraProperties");
+
+                    b.Property<bool>("IsDeleted")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("tinyint(1)")
+                        .HasDefaultValue(false)
+                        .HasColumnName("IsDeleted");
+
+                    b.Property<bool?>("IsDisabled")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("tinyint(1)")
+                        .HasDefaultValue(false)
+                        .HasComment("鏄惁绂佺敤");
+
+                    b.Property<DateTime?>("LastModificationTime")
+                        .HasColumnType("datetime(6)")
+                        .HasColumnName("LastModificationTime");
+
+                    b.Property<Guid?>("LastModifierId")
+                        .HasColumnType("char(36)")
+                        .HasColumnName("LastModifierId");
+
+                    b.Property<string>("MaterialBatch")
+                        .HasMaxLength(50)
+                        .HasColumnType("varchar(50)")
+                        .HasComment("鐗╂枡鎵规");
+
+                    b.Property<string>("MaterialId")
+                        .IsRequired()
+                        .HasMaxLength(64)
+                        .HasColumnType("varchar(64)")
+                        .HasComment("鐗╂枡鍞竴鐮�");
+
+                    b.Property<string>("MaterialModel")
+                        .HasMaxLength(50)
+                        .HasColumnType("varchar(50)")
+                        .HasComment("鏈哄瀷");
+
+                    b.Property<string>("MaterialName")
+                        .HasMaxLength(100)
+                        .HasColumnType("varchar(100)")
+                        .HasComment("鐗╂枡鍚嶇О");
+
+                    b.Property<string>("MaterialNo")
+                        .IsRequired()
+                        .HasMaxLength(50)
+                        .HasColumnType("varchar(50)")
+                        .HasComment("鐗╂枡浠跺彿");
+
+                    b.Property<string>("OrderNo")
+                        .IsRequired()
+                        .HasMaxLength(50)
+                        .HasColumnType("varchar(50)")
+                        .HasComment("鍗曟嵁缂栧彿");
+
+                    b.Property<int>("OrderType")
+                        .HasColumnType("int")
+                        .HasComment("鍗曟嵁绫诲瀷锛堟灇涓惧�硷級");
+
+                    b.Property<string>("Remark")
+                        .HasMaxLength(500)
+                        .HasColumnType("varchar(500)")
+                        .HasComment("澶囨敞");
+
+                    b.Property<int>("Sort")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("int")
+                        .HasDefaultValue(0)
+                        .HasComment("鎺掑簭");
+
+                    b.HasKey("Id");
+
+                    b.HasIndex("ContainerNo");
+
+                    b.HasIndex("MaterialId");
+
+                    b.HasIndex("MaterialNo");
+
+                    b.HasIndex("OrderNo");
+
+                    b.HasIndex("OrderNo", "OrderType");
+
+                    b.ToTable("scms_wmsinoutstockorderdetail", (string)null);
+
+                    b.HasComment("鍑哄叆搴撳崟鎹槑缁嗚〃");
+                });
+
+            modelBuilder.Entity("CMS.Plugin.HIAWms.Domain.WmsInOutStockRecord.WmsInOutStockRecord", b =>
+                {
+                    b.Property<Guid>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("char(36)");
+
+                    b.Property<string>("ConcurrencyStamp")
+                        .IsConcurrencyToken()
+                        .HasMaxLength(40)
+                        .HasColumnType("varchar(40)")
+                        .HasColumnName("ConcurrencyStamp");
+
+                    b.Property<string>("ContainerNo")
+                        .HasMaxLength(50)
+                        .HasColumnType("varchar(50)")
+                        .HasComment("瀹瑰櫒缂栧彿");
+
+                    b.Property<DateTime>("CreationTime")
+                        .HasColumnType("datetime(6)")
+                        .HasColumnName("CreationTime");
+
+                    b.Property<Guid?>("CreatorId")
+                        .HasColumnType("char(36)")
+                        .HasColumnName("CreatorId");
+
+                    b.Property<Guid?>("DeleterId")
+                        .HasColumnType("char(36)")
+                        .HasColumnName("DeleterId");
+
+                    b.Property<DateTime?>("DeletionTime")
+                        .HasColumnType("datetime(6)")
+                        .HasColumnName("DeletionTime");
+
+                    b.Property<string>("ExtraProperties")
+                        .HasColumnType("longtext")
+                        .HasColumnName("ExtraProperties");
+
+                    b.Property<bool>("IsDeleted")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("tinyint(1)")
+                        .HasDefaultValue(false)
+                        .HasColumnName("IsDeleted");
+
+                    b.Property<bool?>("IsDisabled")
+                        .HasColumnType("tinyint(1)")
+                        .HasComment("鏄惁绂佺敤");
+
+                    b.Property<DateTime?>("LastModificationTime")
+                        .HasColumnType("datetime(6)")
+                        .HasColumnName("LastModificationTime");
+
+                    b.Property<Guid?>("LastModifierId")
+                        .HasColumnType("char(36)")
+                        .HasColumnName("LastModifierId");
+
+                    b.Property<string>("MaterialBatch")
+                        .HasMaxLength(64)
+                        .HasColumnType("varchar(64)")
+                        .HasComment("鐗╂枡鎵规");
+
+                    b.Property<string>("MaterialId")
+                        .IsRequired()
+                        .HasMaxLength(50)
+                        .HasColumnType("varchar(50)")
+                        .HasComment("鐗╂枡ID");
+
+                    b.Property<string>("MaterialModel")
+                        .HasMaxLength(50)
+                        .HasColumnType("varchar(50)")
+                        .HasComment("鏈哄瀷");
+
+                    b.Property<string>("MaterialName")
+                        .HasMaxLength(100)
+                        .HasColumnType("varchar(100)")
+                        .HasComment("鐗╂枡鍚嶇О");
+
+                    b.Property<string>("MaterialNo")
+                        .IsRequired()
+                        .HasMaxLength(50)
+                        .HasColumnType("varchar(50)")
+                        .HasComment("鐗╂枡浠跺彿");
+
+                    b.Property<DateTime?>("OperateTime")
+                        .HasColumnType("datetime(6)")
+                        .HasComment("鎿嶄綔鏃堕棿");
+
+                    b.Property<string>("OrderNo")
+                        .HasMaxLength(50)
+                        .HasColumnType("varchar(50)")
+                        .HasComment("鍗曟嵁缂栧彿");
+
+                    b.Property<string>("Remark")
+                        .HasMaxLength(500)
+                        .HasColumnType("varchar(500)")
+                        .HasComment("澶囨敞");
+
+                    b.Property<int>("Sort")
+                        .HasColumnType("int")
+                        .HasComment("鎺掑簭");
+
+                    b.Property<string>("SourcePlace")
+                        .HasMaxLength(50)
+                        .HasColumnType("varchar(50)")
+                        .HasComment("璧峰搴撲綅");
+
+                    b.Property<int>("StockType")
+                        .HasColumnType("int")
+                        .HasComment("鎿嶄綔绫诲瀷");
+
+                    b.Property<string>("TaskNo")
+                        .IsRequired()
+                        .HasMaxLength(50)
+                        .HasColumnType("varchar(50)")
+                        .HasComment("浠诲姟鍙�");
+
+                    b.Property<string>("ToPlace")
+                        .HasMaxLength(50)
+                        .HasColumnType("varchar(50)")
+                        .HasComment("鐩爣搴撲綅");
+
+                    b.HasKey("Id");
+
+                    b.HasIndex("ContainerNo");
+
+                    b.HasIndex("MaterialId");
+
+                    b.HasIndex("MaterialNo");
+
+                    b.HasIndex("OperateTime");
+
+                    b.HasIndex("OrderNo");
+
+                    b.HasIndex("StockType");
+
+                    b.HasIndex("TaskNo");
+
+                    b.ToTable("scms_wmsinoutstockrecords", (string)null);
+
+                    b.HasComment("鍑哄叆搴撹褰曡〃");
+                });
+
+            modelBuilder.Entity("CMS.Plugin.HIAWms.Domain.WmsMaterialContainer.WmsMaterialContainer", b =>
+                {
+                    b.Property<string>("MaterialId")
+                        .HasMaxLength(64)
+                        .HasColumnType("varchar(64)")
+                        .HasComment("鐗╂枡ID");
+
+                    b.Property<string>("ContainerNo")
+                        .HasMaxLength(50)
+                        .HasColumnType("varchar(50)")
+                        .HasComment("鎵樼洏缂栧彿");
+
+                    b.Property<string>("ConcurrencyStamp")
+                        .IsConcurrencyToken()
+                        .HasMaxLength(40)
+                        .HasColumnType("varchar(40)")
+                        .HasColumnName("ConcurrencyStamp");
+
+                    b.Property<DateTime>("CreationTime")
+                        .HasColumnType("datetime(6)")
+                        .HasColumnName("CreationTime");
+
+                    b.Property<Guid?>("CreatorId")
+                        .HasColumnType("char(36)")
+                        .HasColumnName("CreatorId");
+
+                    b.Property<Guid?>("DeleterId")
+                        .HasColumnType("char(36)")
+                        .HasColumnName("DeleterId");
+
+                    b.Property<DateTime?>("DeletionTime")
+                        .HasColumnType("datetime(6)")
+                        .HasColumnName("DeletionTime");
+
+                    b.Property<string>("ExtraProperties")
+                        .HasColumnType("longtext")
+                        .HasColumnName("ExtraProperties");
+
+                    b.Property<Guid>("Id")
+                        .HasColumnType("char(36)");
+
+                    b.Property<bool>("IsDeleted")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("tinyint(1)")
+                        .HasDefaultValue(false)
+                        .HasColumnName("IsDeleted");
+
+                    b.Property<bool?>("IsDisabled")
+                        .HasColumnType("tinyint(1)");
+
+                    b.Property<DateTime?>("LastModificationTime")
+                        .HasColumnType("datetime(6)")
+                        .HasColumnName("LastModificationTime");
+
+                    b.Property<Guid?>("LastModifierId")
+                        .HasColumnType("char(36)")
+                        .HasColumnName("LastModifierId");
+
+                    b.Property<int>("Sort")
+                        .HasColumnType("int");
+
+                    b.HasKey("MaterialId", "ContainerNo");
+
+                    b.HasIndex("ContainerNo");
+
+                    b.HasIndex("MaterialId");
+
+                    b.ToTable("scms_wmsmaterialcontainer", (string)null);
+
+                    b.HasComment("鐗╂枡瀹瑰櫒鍏崇郴琛�");
+                });
+
+            modelBuilder.Entity("CMS.Plugin.HIAWms.Domain.WmsMaterialInfos.WmsMaterialInfo", b =>
+                {
+                    b.Property<Guid>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("char(36)");
+
+                    b.Property<int?>("CheckStatus")
+                        .HasColumnType("int")
+                        .HasComment("妫�楠岀姸鎬�(0:鏈楠�,1:妫�楠岄�氳繃,2:妫�楠屼笉閫氳繃)");
+
+                    b.Property<string>("ConcurrencyStamp")
+                        .IsConcurrencyToken()
+                        .HasMaxLength(40)
+                        .HasColumnType("varchar(40)")
+                        .HasColumnName("ConcurrencyStamp");
+
+                    b.Property<DateTime>("CreationTime")
+                        .HasColumnType("datetime(6)")
+                        .HasColumnName("CreationTime");
+
+                    b.Property<Guid?>("CreatorId")
+                        .HasColumnType("char(36)")
+                        .HasColumnName("CreatorId");
+
+                    b.Property<Guid?>("DeleterId")
+                        .HasColumnType("char(36)")
+                        .HasColumnName("DeleterId");
+
+                    b.Property<DateTime?>("DeletionTime")
+                        .HasColumnType("datetime(6)")
+                        .HasColumnName("DeletionTime");
+
+                    b.Property<string>("ExtraProperties")
+                        .HasColumnType("longtext")
+                        .HasColumnName("ExtraProperties");
+
+                    b.Property<bool>("IsDeleted")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("tinyint(1)")
+                        .HasDefaultValue(false)
+                        .HasColumnName("IsDeleted");
+
+                    b.Property<bool?>("IsDisabled")
+                        .HasColumnType("tinyint(1)")
+                        .HasComment("鏄惁绂佺敤");
+
+                    b.Property<DateTime?>("LastModificationTime")
+                        .HasColumnType("datetime(6)")
+                        .HasColumnName("LastModificationTime");
+
+                    b.Property<Guid?>("LastModifierId")
+                        .HasColumnType("char(36)")
+                        .HasColumnName("LastModifierId");
+
+                    b.Property<string>("MaterialBatch")
+                        .HasMaxLength(50)
+                        .HasColumnType("varchar(50)")
+                        .HasComment("鐗╂枡鎵瑰彿");
+
+                    b.Property<string>("MaterialId")
+                        .IsRequired()
+                        .HasMaxLength(64)
+                        .HasColumnType("varchar(64)")
+                        .HasComment("鐗╂枡鍞竴鐮�");
+
+                    b.Property<string>("MaterialModel")
+                        .HasMaxLength(50)
+                        .HasColumnType("varchar(50)")
+                        .HasComment("鏈哄瀷/瑙勬牸");
+
+                    b.Property<string>("MaterialName")
+                        .IsRequired()
+                        .HasMaxLength(100)
+                        .HasColumnType("varchar(100)")
+                        .HasComment("鐗╂枡鍚嶇О");
+
+                    b.Property<string>("MaterialNo")
+                        .IsRequired()
+                        .HasMaxLength(50)
+                        .HasColumnType("varchar(50)")
+                        .HasComment("鐗╂枡浠e彿");
+
+                    b.Property<string>("RedundantField1")
+                        .HasMaxLength(255)
+                        .HasColumnType("varchar(255)")
+                        .HasComment("鍐椾綑瀛楁1");
+
+                    b.Property<string>("RedundantField2")
+                        .HasMaxLength(255)
+                        .HasColumnType("varchar(255)")
+                        .HasComment("鍐椾綑瀛楁2");
+
+                    b.Property<string>("RedundantField3")
+                        .HasMaxLength(255)
+                        .HasColumnType("varchar(255)")
+                        .HasComment("鍐椾綑瀛楁3");
+
+                    b.Property<string>("Remark")
+                        .HasMaxLength(500)
+                        .HasColumnType("varchar(500)")
+                        .HasComment("澶囨敞");
+
+                    b.Property<int>("Sort")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("int")
+                        .HasDefaultValue(0)
+                        .HasComment("鎺掑簭");
+
+                    b.Property<int?>("StockNumber")
+                        .HasColumnType("int")
+                        .HasComment("搴撳瓨鏁伴噺");
+
+                    b.Property<string>("SupplierCode")
+                        .HasMaxLength(50)
+                        .HasColumnType("varchar(50)")
+                        .HasComment("渚涘簲鍟嗙紪鍙�");
+
+                    b.HasKey("Id");
+
+                    b.HasIndex("CheckStatus");
+
+                    b.HasIndex("MaterialBatch");
+
+                    b.HasIndex("MaterialId")
+                        .IsUnique();
+
+                    b.HasIndex("MaterialName");
+
+                    b.HasIndex("MaterialNo")
+                        .IsUnique();
+
+                    b.HasIndex("SupplierCode");
+
+                    b.ToTable("scms_wmsmaterialinfos", (string)null);
+
+                    b.HasComment("WMS鐗╂枡淇℃伅琛�");
+                });
+
+            modelBuilder.Entity("CMS.Plugin.HIAWms.Domain.WmsMaterials.WmsMaterial", b =>
+                {
+                    b.Property<Guid>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("char(36)");
+
+                    b.Property<string>("Certification")
+                        .HasMaxLength(128)
+                        .HasColumnType("varchar(128)")
+                        .HasComment("璇佷功缂栧彿");
+
+                    b.Property<string>("ConcurrencyStamp")
+                        .IsConcurrencyToken()
+                        .HasMaxLength(40)
+                        .HasColumnType("varchar(40)")
+                        .HasColumnName("ConcurrencyStamp");
+
+                    b.Property<DateTime>("CreationTime")
+                        .HasColumnType("datetime(6)")
+                        .HasColumnName("CreationTime");
+
+                    b.Property<Guid?>("CreatorId")
+                        .HasColumnType("char(36)")
+                        .HasColumnName("CreatorId");
+
+                    b.Property<Guid?>("DeleterId")
+                        .HasColumnType("char(36)")
+                        .HasColumnName("DeleterId");
+
+                    b.Property<DateTime?>("DeletionTime")
+                        .HasColumnType("datetime(6)")
+                        .HasColumnName("DeletionTime");
+
+                    b.Property<string>("ExtraProperties")
+                        .HasColumnType("longtext")
+                        .HasColumnName("ExtraProperties");
+
+                    b.Property<string>("Factory")
+                        .HasMaxLength(64)
+                        .HasColumnType("varchar(64)")
+                        .HasComment("鐢熶骇宸ュ巶");
+
+                    b.Property<bool>("IsDeleted")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("tinyint(1)")
+                        .HasDefaultValue(false)
+                        .HasColumnName("IsDeleted");
+
+                    b.Property<bool?>("IsDisabled")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("tinyint(1)")
+                        .HasDefaultValue(false)
+                        .HasComment("鏄惁绂佺敤");
+
+                    b.Property<int>("IsMainBranch")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("int")
+                        .HasDefaultValue(0)
+                        .HasComment("鏄惁涓轰富鏀");
+
+                    b.Property<DateTime?>("LastModificationTime")
+                        .HasColumnType("datetime(6)")
+                        .HasColumnName("LastModificationTime");
+
+                    b.Property<Guid?>("LastModifierId")
+                        .HasColumnType("char(36)")
+                        .HasColumnName("LastModifierId");
+
+                    b.Property<decimal>("Length")
+                        .HasColumnType("decimal(18,2)")
+                        .HasComment("闀垮害锛堝崟浣嶏細m锛�");
+
+                    b.Property<string>("MaterialModel")
+                        .HasMaxLength(128)
+                        .HasColumnType("varchar(128)")
+                        .HasComment("鍨嬪彿");
+
+                    b.Property<string>("MaterialName")
+                        .IsRequired()
+                        .HasMaxLength(128)
+                        .HasColumnType("varchar(128)")
+                        .HasComment("鐗╂枡鍚嶇О");
+
+                    b.Property<string>("MaterialNo")
+                        .IsRequired()
+                        .HasMaxLength(64)
+                        .HasColumnType("varchar(64)")
+                        .HasComment("鐗╂枡缂栫爜锛堝敮涓�鏍囪瘑锛�");
+
+                    b.Property<string>("MaterialQuality")
+                        .HasMaxLength(64)
+                        .HasColumnType("varchar(64)")
+                        .HasComment("鏉愯川锛堝锛�304涓嶉攬閽級");
+
+                    b.Property<int>("MaterialType")
+                        .HasColumnType("int")
+                        .HasComment("鐗╂枡绫诲瀷锛堟灇涓惧�硷級");
+
+                    b.Property<decimal>("OuterDiameter")
+                        .HasColumnType("decimal(18,2)")
+                        .HasComment("澶栧緞锛堝崟浣嶏細mm锛�");
+
+                    b.Property<string>("PrimaryUnit")
+                        .HasMaxLength(20)
+                        .HasColumnType("varchar(20)")
+                        .HasComment("涓诲崟浣嶏紙濡傦細kg銆乵銆佷釜锛�");
+
+                    b.Property<int>("PurchaseType")
+                        .HasColumnType("int")
+                        .HasComment("閲囪喘绫诲瀷锛堟灇涓惧�硷級");
+
+                    b.Property<string>("RedundantField1")
+                        .HasMaxLength(256)
+                        .HasColumnType("varchar(256)")
+                        .HasComment("鍐椾綑瀛楁1 - 棰勭暀鎵╁睍鐢ㄩ��");
+
+                    b.Property<string>("RedundantField2")
+                        .HasMaxLength(256)
+                        .HasColumnType("varchar(256)")
+                        .HasComment("鍐椾綑瀛楁2 - 棰勭暀鎵╁睍鐢ㄩ��");
+
+                    b.Property<string>("RedundantField3")
+                        .HasMaxLength(256)
+                        .HasColumnType("varchar(256)")
+                        .HasComment("鍐椾綑瀛楁3 - 棰勭暀鎵╁睍鐢ㄩ��");
+
+                    b.Property<string>("Remark")
+                        .HasMaxLength(500)
+                        .HasColumnType("varchar(500)")
+                        .HasComment("澶囨敞");
+
+                    b.Property<int>("Sort")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("int")
+                        .HasDefaultValue(0)
+                        .HasComment("鎺掑簭");
+
+                    b.Property<string>("Standard")
+                        .HasMaxLength(128)
+                        .HasColumnType("varchar(128)")
+                        .HasComment("瑙勬牸/鏍囧噯锛堝锛欸B/T 8163-2018锛�");
+
+                    b.Property<decimal>("WallThickness")
+                        .HasColumnType("decimal(18,2)")
+                        .HasComment("澹佸帤锛堝崟浣嶏細mm锛�");
+
+                    b.HasKey("Id");
+
+                    b.HasIndex("MaterialName");
+
+                    b.HasIndex("MaterialNo")
+                        .IsUnique();
+
+                    b.HasIndex("MaterialType");
+
+                    b.HasIndex("PurchaseType");
+
+                    b.ToTable("scms_wmsmaterials", (string)null);
+
+                    b.HasComment("鐗╂枡鍩虹淇℃伅琛�");
+                });
+
+            modelBuilder.Entity("CMS.Plugin.HIAWms.Domain.WmsMaterialStocks.WmsMaterialStock", b =>
+                {
+                    b.Property<Guid>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("char(36)");
+
+                    b.Property<string>("AreaCode")
+                        .HasMaxLength(64)
+                        .HasColumnType("varchar(64)")
+                        .HasComment("鍖哄煙缂栧彿");
+
+                    b.Property<string>("AreaName")
+                        .HasMaxLength(128)
+                        .HasColumnType("varchar(128)")
+                        .HasComment("搴撳尯鍚嶇О");
+
+                    b.Property<int?>("CheckStatus")
+                        .HasColumnType("int")
+                        .HasComment("妫�楠岀姸鎬�(1:鏈楠�,2:妫�楠岄�氳繃,3:妫�楠屼笉閫氳繃)");
+
+                    b.Property<string>("ConcurrencyStamp")
+                        .IsConcurrencyToken()
+                        .HasMaxLength(40)
+                        .HasColumnType("varchar(40)")
+                        .HasColumnName("ConcurrencyStamp");
+
+                    b.Property<string>("ContainerNo")
+                        .HasMaxLength(64)
+                        .HasColumnType("varchar(64)")
+                        .HasComment("瀹瑰櫒缂栧彿");
+
+                    b.Property<int>("ContainerStatus")
+                        .HasColumnType("int")
+                        .HasComment("瀹瑰櫒鐘舵��");
+
+                    b.Property<int>("ContainerType")
+                        .HasColumnType("int")
+                        .HasComment("瀹瑰櫒绫诲瀷");
+
+                    b.Property<DateTime>("CreationTime")
+                        .HasColumnType("datetime(6)")
+                        .HasColumnName("CreationTime");
+
+                    b.Property<Guid?>("CreatorId")
+                        .HasColumnType("char(36)")
+                        .HasColumnName("CreatorId");
+
+                    b.Property<Guid?>("DeleterId")
+                        .HasColumnType("char(36)")
+                        .HasColumnName("DeleterId");
+
+                    b.Property<DateTime?>("DeletionTime")
+                        .HasColumnType("datetime(6)")
+                        .HasColumnName("DeletionTime");
+
+                    b.Property<int>("EmptyContainer")
+                        .HasColumnType("int")
+                        .HasComment("鏄惁绌烘墭(2:鍚�,1:鏄�)");
+
+                    b.Property<string>("ExtraProperties")
+                        .HasColumnType("longtext")
+                        .HasColumnName("ExtraProperties");
+
+                    b.Property<DateTime?>("InStockTime")
+                        .HasColumnType("datetime(6)")
+                        .HasComment("鍏ュ簱鏃堕棿");
+
+                    b.Property<bool>("IsDeleted")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("tinyint(1)")
+                        .HasDefaultValue(false)
+                        .HasColumnName("IsDeleted");
+
+                    b.Property<bool?>("IsDisabled")
+                        .HasColumnType("tinyint(1)")
+                        .HasComment("鏄惁绂佺敤");
+
+                    b.Property<int>("IsLock")
+                        .HasColumnType("int")
+                        .HasComment("鏄惁閿佸畾(2:鏈攣瀹�,1:宸查攣瀹�)");
+
+                    b.Property<DateTime?>("LastModificationTime")
+                        .HasColumnType("datetime(6)")
+                        .HasColumnName("LastModificationTime");
+
+                    b.Property<Guid?>("LastModifierId")
+                        .HasColumnType("char(36)")
+                        .HasColumnName("LastModifierId");
+
+                    b.Property<string>("MaterialBatch")
+                        .HasMaxLength(64)
+                        .HasColumnType("varchar(64)")
+                        .HasComment("鐗╂枡鎵规");
+
+                    b.Property<string>("MaterialId")
+                        .IsRequired()
+                        .HasMaxLength(64)
+                        .HasColumnType("varchar(64)")
+                        .HasComment("鐗╂枡ID");
+
+                    b.Property<string>("MaterialModel")
+                        .HasMaxLength(128)
+                        .HasColumnType("varchar(128)")
+                        .HasComment("鏈哄瀷/瑙勬牸");
+
+                    b.Property<string>("MaterialName")
+                        .IsRequired()
+                        .HasMaxLength(128)
+                        .HasColumnType("varchar(128)")
+                        .HasComment("鐗╂枡鍚嶇О");
+
+                    b.Property<string>("MaterialNo")
+                        .IsRequired()
+                        .HasMaxLength(64)
+                        .HasColumnType("varchar(64)")
+                        .HasComment("鐗╂枡缂栧彿");
+
+                    b.Property<string>("PlaceNo")
+                        .HasMaxLength(64)
+                        .HasColumnType("varchar(64)")
+                        .HasComment("搴撲綅缂栧彿");
+
+                    b.Property<int>("PlaceStatus")
+                        .HasColumnType("int")
+                        .HasComment("搴撲綅鐘舵��;");
+
+                    b.Property<string>("RedundantField1")
+                        .HasMaxLength(256)
+                        .HasColumnType("varchar(256)")
+                        .HasComment("鍐椾綑瀛楁1 - 棰勭暀鎵╁睍鐢ㄩ��");
+
+                    b.Property<string>("RedundantField2")
+                        .HasMaxLength(256)
+                        .HasColumnType("varchar(256)")
+                        .HasComment("鍐椾綑瀛楁2 - 棰勭暀鎵╁睍鐢ㄩ��");
+
+                    b.Property<string>("RedundantField3")
+                        .HasMaxLength(256)
+                        .HasColumnType("varchar(256)")
+                        .HasComment("鍐椾綑瀛楁3 - 棰勭暀鎵╁睍鐢ㄩ��");
+
+                    b.Property<string>("Remark")
+                        .HasMaxLength(500)
+                        .HasColumnType("varchar(500)")
+                        .HasComment("澶囨敞");
+
+                    b.Property<int>("Sort")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("int")
+                        .HasDefaultValue(0)
+                        .HasComment("鎺掑簭");
+
+                    b.Property<int>("StockNumber")
+                        .HasColumnType("int")
+                        .HasComment("搴撳瓨鏁伴噺");
+
+                    b.Property<int>("StorageTypeNo")
+                        .HasColumnType("int")
+                        .HasComment("搴撲綅绫诲瀷");
+
+                    b.Property<string>("SupplierCode")
+                        .HasMaxLength(64)
+                        .HasColumnType("varchar(64)")
+                        .HasComment("渚涘簲鍟嗙紪鍙�");
+
+                    b.HasKey("Id");
+
+                    b.HasIndex("AreaCode");
+
+                    b.HasIndex("ContainerNo");
+
+                    b.HasIndex("MaterialName");
+
+                    b.HasIndex("MaterialNo");
+
+                    b.HasIndex("PlaceNo");
+
+                    b.HasIndex("MaterialBatch", "SupplierCode");
+
+                    b.ToTable("scms_wmsmaterialstocks", (string)null);
+
+                    b.HasComment("WMS鐗╂枡搴撳瓨琛�");
+                });
+
+            modelBuilder.Entity("CMS.Plugin.HIAWms.Domain.WmsPlaces.WmsPlace", b =>
+                {
+                    b.Property<Guid>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("char(36)");
+
+                    b.Property<int>("Aisle")
+                        .HasColumnType("int")
+                        .HasComment("宸烽亾");
+
+                    b.Property<string>("AreaCode")
+                        .IsRequired()
+                        .HasMaxLength(50)
+                        .HasColumnType("varchar(50)")
+                        .HasComment("鎵�鍦ㄥ簱鍖�");
+
+                    b.Property<int>("ColumnNo")
+                        .HasColumnType("int")
+                        .HasComment("鍒�");
+
+                    b.Property<string>("ConcurrencyStamp")
+                        .IsConcurrencyToken()
+                        .HasMaxLength(40)
+                        .HasColumnType("varchar(40)")
+                        .HasColumnName("ConcurrencyStamp");
+
+                    b.Property<DateTime>("CreationTime")
+                        .HasColumnType("datetime(6)")
+                        .HasColumnName("CreationTime");
+
+                    b.Property<Guid?>("CreatorId")
+                        .HasColumnType("char(36)")
+                        .HasColumnName("CreatorId");
+
+                    b.Property<Guid?>("DeleterId")
+                        .HasColumnType("char(36)")
+                        .HasColumnName("DeleterId");
+
+                    b.Property<DateTime?>("DeletionTime")
+                        .HasColumnType("datetime(6)")
+                        .HasColumnName("DeletionTime");
+
+                    b.Property<int>("EmptyContainer")
+                        .HasColumnType("int")
+                        .HasComment("鏄惁绌烘墭");
+
+                    b.Property<string>("ExtraProperties")
+                        .HasColumnType("longtext")
+                        .HasColumnName("ExtraProperties");
+
+                    b.Property<bool>("IsDeleted")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("tinyint(1)")
+                        .HasDefaultValue(false)
+                        .HasColumnName("IsDeleted");
+
+                    b.Property<bool?>("IsDisabled")
+                        .HasColumnType("tinyint(1)")
+                        .HasComment("鏄惁绂佺敤");
+
+                    b.Property<int>("Islock")
+                        .HasColumnType("int")
+                        .HasComment("鏄惁閿佸畾");
+
+                    b.Property<DateTime?>("LastModificationTime")
+                        .HasColumnType("datetime(6)")
+                        .HasColumnName("LastModificationTime");
+
+                    b.Property<Guid?>("LastModifierId")
+                        .HasColumnType("char(36)")
+                        .HasColumnName("LastModifierId");
+
+                    b.Property<int>("LayerNo")
+                        .HasColumnType("int")
+                        .HasComment("灞�");
+
+                    b.Property<int>("MaxStockNumber")
+                        .HasColumnType("int")
+                        .HasComment("鏈�澶у簱瀛橀噺");
+
+                    b.Property<string>("PlaceNo")
+                        .IsRequired()
+                        .HasMaxLength(50)
+                        .HasColumnType("varchar(50)")
+                        .HasComment("缂栧彿");
+
+                    b.Property<int>("PlaceStatus")
+                        .HasColumnType("int")
+                        .HasComment("璐т綅鐘舵��");
+
+                    b.Property<string>("RedundantField1")
+                        .HasMaxLength(100)
+                        .HasColumnType("varchar(100)")
+                        .HasComment("鍐椾綑瀛楁1 - 棰勭暀鎵╁睍鐢ㄩ��");
+
+                    b.Property<string>("RedundantField2")
+                        .HasMaxLength(100)
+                        .HasColumnType("varchar(100)")
+                        .HasComment("鍐椾綑瀛楁2 - 棰勭暀鎵╁睍鐢ㄩ��");
+
+                    b.Property<string>("RedundantField3")
+                        .HasMaxLength(100)
+                        .HasColumnType("varchar(100)")
+                        .HasComment("鍐椾綑瀛楁3 - 棰勭暀鎵╁睍鐢ㄩ��");
+
+                    b.Property<string>("Remark")
+                        .HasMaxLength(256)
+                        .HasColumnType("varchar(256)")
+                        .HasComment("澶囨敞");
+
+                    b.Property<int>("RowNo")
+                        .HasColumnType("int")
+                        .HasComment("鎺�");
+
+                    b.Property<int>("Sort")
+                        .HasColumnType("int")
+                        .HasComment("鎺掑簭");
+
+                    b.Property<int>("StorageTypeNo")
+                        .HasColumnType("int")
+                        .HasComment("璐т綅绫诲瀷");
+
+                    b.HasKey("Id");
+
+                    b.HasIndex("AreaCode");
+
+                    b.HasIndex("PlaceNo")
+                        .IsUnique();
+
+                    b.HasIndex("PlaceStatus");
+
+                    b.HasIndex("StorageTypeNo");
+
+                    b.ToTable("scms_wmsplaces", (string)null);
+
+                    b.HasComment("搴撲綅琛�");
+                });
+
+            modelBuilder.Entity("CMS.Plugin.HIAWms.Domain.WmsStores.WmsStore", b =>
+                {
+                    b.Property<Guid>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("char(36)");
+
+                    b.Property<string>("ConcurrencyStamp")
+                        .IsConcurrencyToken()
+                        .HasMaxLength(40)
+                        .HasColumnType("varchar(40)")
+                        .HasColumnName("ConcurrencyStamp");
+
+                    b.Property<DateTime>("CreationTime")
+                        .HasColumnType("datetime(6)")
+                        .HasColumnName("CreationTime");
+
+                    b.Property<Guid?>("CreatorId")
+                        .HasColumnType("char(36)")
+                        .HasColumnName("CreatorId");
+
+                    b.Property<Guid?>("DeleterId")
+                        .HasColumnType("char(36)")
+                        .HasColumnName("DeleterId");
+
+                    b.Property<DateTime?>("DeletionTime")
+                        .HasColumnType("datetime(6)")
+                        .HasColumnName("DeletionTime");
+
+                    b.Property<string>("ExtraProperties")
+                        .HasColumnType("longtext")
+                        .HasColumnName("ExtraProperties");
+
+                    b.Property<bool>("IsDeleted")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("tinyint(1)")
+                        .HasDefaultValue(false)
+                        .HasColumnName("IsDeleted");
+
+                    b.Property<bool?>("IsDisabled")
+                        .HasColumnType("tinyint(1)")
+                        .HasComment("鏄惁绂佺敤");
+
+                    b.Property<DateTime?>("LastModificationTime")
+                        .HasColumnType("datetime(6)")
+                        .HasColumnName("LastModificationTime");
+
+                    b.Property<Guid?>("LastModifierId")
+                        .HasColumnType("char(36)")
+                        .HasColumnName("LastModifierId");
+
+                    b.Property<string>("RedundantField1")
+                        .HasMaxLength(100)
+                        .HasColumnType("varchar(100)")
+                        .HasComment("鍐椾綑瀛楁1 - 棰勭暀鎵╁睍鐢ㄩ��");
+
+                    b.Property<string>("RedundantField2")
+                        .HasMaxLength(100)
+                        .HasColumnType("varchar(100)")
+                        .HasComment("鍐椾綑瀛楁2 - 棰勭暀鎵╁睍鐢ㄩ��");
+
+                    b.Property<string>("RedundantField3")
+                        .HasMaxLength(100)
+                        .HasColumnType("varchar(100)")
+                        .HasComment("鍐椾綑瀛楁3 - 棰勭暀鎵╁睍鐢ㄩ��");
+
+                    b.Property<string>("Remark")
+                        .HasMaxLength(256)
+                        .HasColumnType("varchar(256)")
+                        .HasComment("澶囨敞");
+
+                    b.Property<int>("Sort")
+                        .HasColumnType("int")
+                        .HasComment("鎺掑簭");
+
+                    b.Property<string>("StoreCode")
+                        .HasMaxLength(50)
+                        .HasColumnType("varchar(50)")
+                        .HasComment("浠撳簱浠g爜");
+
+                    b.Property<string>("StoreName")
+                        .HasMaxLength(100)
+                        .HasColumnType("varchar(100)")
+                        .HasComment("浠撳簱鍚嶇О");
+
+                    b.HasKey("Id");
+
+                    b.HasIndex("StoreName");
+
+                    b.ToTable("scms_wmsstores", (string)null);
+
+                    b.HasComment("浠撳簱淇℃伅琛�");
+                });
+
+            modelBuilder.Entity("CMS.Plugin.HIAWms.Domain.WmsTask.WmsTask", b =>
+                {
+                    b.Property<Guid>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("char(36)");
+
+                    b.Property<int?>("Aisle")
+                        .HasColumnType("int")
+                        .HasComment("宸烽亾");
+
+                    b.Property<string>("ConcurrencyStamp")
+                        .IsConcurrencyToken()
+                        .HasMaxLength(40)
+                        .HasColumnType("varchar(40)")
+                        .HasColumnName("ConcurrencyStamp");
+
+                    b.Property<string>("ContainerNo")
+                        .HasMaxLength(50)
+                        .HasColumnType("varchar(50)")
+                        .HasComment("鎵樼洏缂栧彿");
+
+                    b.Property<DateTime>("CreationTime")
+                        .HasColumnType("datetime(6)")
+                        .HasColumnName("CreationTime");
+
+                    b.Property<Guid?>("CreatorId")
+                        .HasColumnType("char(36)")
+                        .HasColumnName("CreatorId");
+
+                    b.Property<Guid?>("DeleterId")
+                        .HasColumnType("char(36)")
+                        .HasColumnName("DeleterId");
+
+                    b.Property<DateTime?>("DeletionTime")
+                        .HasColumnType("datetime(6)")
+                        .HasColumnName("DeletionTime");
+
+                    b.Property<int?>("DodeviceId")
+                        .HasColumnType("int")
+                        .HasComment("鍫嗗灈鏈篒D");
+
+                    b.Property<int>("Dodevicetype")
+                        .HasColumnType("int")
+                        .HasComment("璁惧绫诲瀷");
+
+                    b.Property<string>("ExtraProperties")
+                        .HasColumnType("longtext")
+                        .HasColumnName("ExtraProperties");
+
+                    b.Property<bool>("IsDeleted")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("tinyint(1)")
+                        .HasDefaultValue(false)
+                        .HasColumnName("IsDeleted");
+
+                    b.Property<bool?>("IsDisabled")
+                        .HasColumnType("tinyint(1)")
+                        .HasComment("鏄惁绂佺敤");
+
+                    b.Property<int?>("IsNextTask")
+                        .HasColumnType("int")
+                        .HasComment("涓嬩釜浠诲姟鏄惁鐢熸垚鎴愬姛");
+
+                    b.Property<bool>("IsRead")
+                        .HasColumnType("tinyint(1)")
+                        .HasComment("WCS鏄惁鍙互璇诲彇");
+
+                    b.Property<DateTime?>("LastModificationTime")
+                        .HasColumnType("datetime(6)")
+                        .HasColumnName("LastModificationTime");
+
+                    b.Property<Guid?>("LastModifierId")
+                        .HasColumnType("char(36)")
+                        .HasColumnName("LastModifierId");
+
+                    b.Property<string>("MutableParam1")
+                        .HasMaxLength(200)
+                        .HasColumnType("varchar(200)")
+                        .HasComment("鍙彉鍙橀噺1");
+
+                    b.Property<string>("MutableParam2")
+                        .HasMaxLength(200)
+                        .HasColumnType("varchar(200)")
+                        .HasComment("鍙彉鍙橀噺2");
+
+                    b.Property<string>("MutableParam3")
+                        .HasMaxLength(200)
+                        .HasColumnType("varchar(200)")
+                        .HasComment("鍙彉鍙橀噺3");
+
+                    b.Property<int?>("SonTaskType")
+                        .HasColumnType("int")
+                        .HasComment("瀛愪换鍔$被鍨�");
+
+                    b.Property<int>("Sort")
+                        .HasColumnType("int")
+                        .HasComment("鎺掑簭");
+
+                    b.Property<string>("SourceOrderNo")
+                        .HasMaxLength(50)
+                        .HasColumnType("varchar(50)")
+                        .HasComment("鏉ユ簮鍗曟嵁鍙�");
+
+                    b.Property<string>("SourcePlace")
+                        .HasMaxLength(50)
+                        .HasColumnType("varchar(50)")
+                        .HasComment("璧峰搴撲綅");
+
+                    b.Property<int>("TaskDodeviceStatus")
+                        .HasColumnType("int")
+                        .HasComment("璁惧浠诲姟鐘舵��");
+
+                    b.Property<int>("TaskLevel")
+                        .HasColumnType("int")
+                        .HasComment("浠诲姟绛夌骇");
+
+                    b.Property<string>("TaskNo")
+                        .IsRequired()
+                        .HasMaxLength(50)
+                        .HasColumnType("varchar(50)")
+                        .HasComment("浠诲姟鍙�");
+
+                    b.Property<int>("TaskStatus")
+                        .HasColumnType("int")
+                        .HasComment("浠诲姟鐘舵��");
+
+                    b.Property<int>("TaskType")
+                        .HasColumnType("int")
+                        .HasComment("浠诲姟绫诲瀷");
+
+                    b.Property<string>("ToPlace")
+                        .HasMaxLength(50)
+                        .HasColumnType("varchar(50)")
+                        .HasComment("鐩爣搴撲綅");
+
+                    b.HasKey("Id");
+
+                    b.HasIndex("ContainerNo");
+
+                    b.HasIndex("DodeviceId");
+
+                    b.HasIndex("IsRead");
+
+                    b.HasIndex("Sort");
+
+                    b.HasIndex("SourceOrderNo");
+
+                    b.HasIndex("SourcePlace");
+
+                    b.HasIndex("TaskNo")
+                        .IsUnique();
+
+                    b.HasIndex("TaskStatus");
+
+                    b.HasIndex("TaskType");
+
+                    b.HasIndex("ToPlace");
+
+                    b.ToTable("scms_wmstasks", (string)null);
+
+                    b.HasComment("浠诲姟琛�");
+                });
+#pragma warning restore 612, 618
+        }
+    }
+}
diff --git a/HIAWms/server/src/CMS.Plugin.HIAWms.MySQL/Migrations/20250511134948_InitialCreate14.cs b/HIAWms/server/src/CMS.Plugin.HIAWms.MySQL/Migrations/20250511134948_InitialCreate14.cs
new file mode 100644
index 0000000..34d26ec
--- /dev/null
+++ b/HIAWms/server/src/CMS.Plugin.HIAWms.MySQL/Migrations/20250511134948_InitialCreate14.cs
@@ -0,0 +1,51 @@
+锘縰sing Microsoft.EntityFrameworkCore.Migrations;
+
+#nullable disable
+
+namespace CMS.Plugin.HIAWms.MySQL.Migrations
+{
+    public partial class InitialCreate14 : Migration
+    {
+        protected override void Up(MigrationBuilder migrationBuilder)
+        {
+            migrationBuilder.AlterColumn<string>(
+                name: "OrderNo",
+                table: "scms_wmsinoutstockrecords",
+                type: "varchar(50)",
+                maxLength: 50,
+                nullable: true,
+                comment: "鍗曟嵁缂栧彿",
+                oldClrType: typeof(string),
+                oldType: "varchar(50)",
+                oldMaxLength: 50,
+                oldComment: "鍗曟嵁缂栧彿")
+                .Annotation("MySql:CharSet", "utf8mb4")
+                .OldAnnotation("MySql:CharSet", "utf8mb4");
+        }
+
+        protected override void Down(MigrationBuilder migrationBuilder)
+        {
+            migrationBuilder.UpdateData(
+                table: "scms_wmsinoutstockrecords",
+                keyColumn: "OrderNo",
+                keyValue: null,
+                column: "OrderNo",
+                value: "");
+
+            migrationBuilder.AlterColumn<string>(
+                name: "OrderNo",
+                table: "scms_wmsinoutstockrecords",
+                type: "varchar(50)",
+                maxLength: 50,
+                nullable: false,
+                comment: "鍗曟嵁缂栧彿",
+                oldClrType: typeof(string),
+                oldType: "varchar(50)",
+                oldMaxLength: 50,
+                oldNullable: true,
+                oldComment: "鍗曟嵁缂栧彿")
+                .Annotation("MySql:CharSet", "utf8mb4")
+                .OldAnnotation("MySql:CharSet", "utf8mb4");
+        }
+    }
+}
diff --git a/HIAWms/server/src/CMS.Plugin.HIAWms.MySQL/Migrations/CMSPluginDbContextModelSnapshot.cs b/HIAWms/server/src/CMS.Plugin.HIAWms.MySQL/Migrations/CMSPluginDbContextModelSnapshot.cs
index f501771..e0122d6 100644
--- a/HIAWms/server/src/CMS.Plugin.HIAWms.MySQL/Migrations/CMSPluginDbContextModelSnapshot.cs
+++ b/HIAWms/server/src/CMS.Plugin.HIAWms.MySQL/Migrations/CMSPluginDbContextModelSnapshot.cs
@@ -775,7 +775,6 @@
                         .HasComment("鎿嶄綔鏃堕棿");
 
                     b.Property<string>("OrderNo")
-                        .IsRequired()
                         .HasMaxLength(50)
                         .HasColumnType("varchar(50)")
                         .HasComment("鍗曟嵁缂栧彿");
diff --git a/HIAWms/server/src/CMS.Plugin.HIAWms.MySQL/Scripts/UpdateMigrations.bat b/HIAWms/server/src/CMS.Plugin.HIAWms.MySQL/Scripts/UpdateMigrations.bat
index 575273d..ec382d1 100644
--- a/HIAWms/server/src/CMS.Plugin.HIAWms.MySQL/Scripts/UpdateMigrations.bat
+++ b/HIAWms/server/src/CMS.Plugin.HIAWms.MySQL/Scripts/UpdateMigrations.bat
@@ -1,5 +1,5 @@
 cd ../
-dotnet ef migrations add InitialCreate13 -c CMSPluginDbContext -o Migrations
+dotnet ef migrations add InitialCreate14 -c CMSPluginDbContext -o Migrations
 ::dotnet ef migrations add Update1 -c CMSPluginDbContext -o Migrations
 ::dotnet ef migrations add Update2 -c CMSPluginDbContext -o Migrations
 ::dotnet ef migrations add Update3 -c CMSPluginDbContext -o Migrations
diff --git a/HIAWms/server/src/CMS.Plugin.HIAWms/Controller/WmsOutStockController.cs b/HIAWms/server/src/CMS.Plugin.HIAWms/Controller/WmsOutStockController.cs
new file mode 100644
index 0000000..cf1ed60
--- /dev/null
+++ b/HIAWms/server/src/CMS.Plugin.HIAWms/Controller/WmsOutStockController.cs
@@ -0,0 +1,43 @@
+锘縰sing CMS.Extensions.Abp.AspNetCore.Mvc.Filters;
+using CMS.Plugin.HIAWms.Application.Contracts.Dtos.OutStockDto;
+using CMS.Plugin.HIAWms.Application.Contracts.Services;
+using Microsoft.AspNetCore.Mvc;
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+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 WmsOutStockController : ControllerBase
+    {
+        private readonly IWmsOutStockAppService _wmsOutStockAppService;
+
+        public WmsOutStockController(IWmsOutStockAppService wmsOutStockAppService)
+        {
+            _wmsOutStockAppService = wmsOutStockAppService;
+        }
+
+        /// <summary>
+        /// 鍙枡
+        /// </summary>
+        /// <param name="input"></param>
+        /// <returns></returns>
+        [HttpPost]
+        [Route("CallMaterial")]
+        public async Task CallMaterialAsync(List<CallMaterialInput> input)
+        {
+            await _wmsOutStockAppService.CallMaterialAsync(input);
+        }
+    }
+}
diff --git a/HIAWms/server/src/CMS.Plugin.HIAWms/Controller/WmsTaskController.cs b/HIAWms/server/src/CMS.Plugin.HIAWms/Controller/WmsTaskController.cs
index e67e658..dc8ece5 100644
--- a/HIAWms/server/src/CMS.Plugin.HIAWms/Controller/WmsTaskController.cs
+++ b/HIAWms/server/src/CMS.Plugin.HIAWms/Controller/WmsTaskController.cs
@@ -192,7 +192,7 @@
         /// <returns></returns>
         [HttpPost]
         [Route("FinishTask")]
-        public async Task FinishTaskAsync(WmsTaskUpdateDto input)
+        public async Task FinishTaskAsync(WmsTaskStatusDto input)
         {
             await _wmsTaskAppService.FinishTaskAsync(input);
         }
@@ -204,7 +204,7 @@
         /// <returns></returns>
         [HttpPost]
         [Route("CancelTask")]
-        public async Task CancelTaskAsync(WmsTaskUpdateDto input)
+        public async Task CancelTaskAsync(WmsTaskStatusDto input)
         {
             await _wmsTaskAppService.CancelTaskAysnc(input);
         }

--
Gitblit v1.9.3