From edba4ede85a3d82a7f0a0a7dccddbc8281862888 Mon Sep 17 00:00:00 2001
From: zs <zhousong@weben-smart.com>
Date: 周四, 15 5月 2025 13:12:10 +0800
Subject: [PATCH] 添加物料类型

---
 HIAWms/hiawms_web/src/widgets/HIAWms/Controllers/WmsMaterialTypeQueryDrawer.tsx                                           |  298 ++
 HIAWms/hiawms_web/src/widgets/HIAWms/Views/Pages/Dialog/WmsMaterialTypeQueryDrawer/WmsMaterialTypeQueryDrawer.tsx         |   71 
 HIAWms/hiawms_web/src/widgets/HIAWms/Views/Pages/WmsMaterialType/WmsMaterialType.module.scss                              |  113 +
 HIAWms/server/src/CMS.Plugin.HIAWms.Application/Implements/WmsTaskAppService.cs                                           |   27 
 HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsTask/QueryTaskTypeInput.cs                              |   17 
 HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsMaterial/WmsMaterialDto.cs                              |   11 
 HIAWms/hiawms_web/src/widgets/HIAWms/Controllers/WmsMaterialTypeDrawer.tsx                                                |  212 ++
 HIAWms/server/src/CMS.Plugin.HIAWms/Controller/WmsTaskController.cs                                                       |   12 
 HIAWms/hiawms_web/src/widgets/HIAWms/Views/config/WmsMaterialType.json                                                    |    3 
 HIAWms/server/src/CMS.Plugin.HIAWms.MySQL/Migrations/20250515034921_InitialCreate17.Designer.cs                           | 1909 +++++++++++++++++++
 HIAWms/hiawms_web/src/widgets/HIAWms/Views/Pages/WmsMaterialType/WmsMaterialType.tsx                                      |  376 +++
 HIAWms/server/src/CMS.Plugin.HIAWms.MySQL/CMSPluginDbContext.cs                                                           |    1 
 HIAWms/hiawms_web/src/widgets/HIAWms/Views/Pages/Dialog/WmsMaterialTypeQueryDrawer/WmsMaterialTypeQueryDrawer.module.scss |    3 
 HIAWms/hiawms_web/src/widgets/HIAWms/Models/Service/WmsMaterialType.ts                                                    |   30 
 HIAWms/server/src/CMS.Plugin.HIAWms/Controller/WmsMaterialTypeController.cs                                               |  216 ++
 HIAWms/server/src/CMS.Plugin.HIAWms.MySQL/Scripts/UpdateMigrations.bat                                                    |    2 
 HIAWms/server/src/CMS.Plugin.HIAWms.Domain/WmsTask/IWmsTaskRepository.cs                                                  |   10 
 HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsMaterialType/WmsMaterialTypeUpdateDto.cs                |   18 
 HIAWms/server/src/CMS.Plugin.HIAWms.Domain/WmsMaterialType/IWmsMaterialTypeRepository.cs                                  |   88 
 HIAWms/hiawms_web/src/widgets/HIAWms/Models/Service/WmsMaterialTypeQueryDrawer.ts                                         |   35 
 HIAWms/server/src/CMS.Plugin.HIAWms.Domain/MaterialType/WmsMaterialType.cs                                                |   22 
 HIAWms/hiawms_web/src/widgets/HIAWms/Views/HIAWms.tsx                                                                     |    5 
 HIAWms/hiawms_web/src/widgets/HIAWms/Views/Pages/Dialog/WmsMaterialTypeDrawer/WmsMaterialTypeDrawer.tsx                   |   61 
 HIAWms/hiawms_web/src/widgets/HIAWms/Controllers/WmsMaterialType.ts                                                       |  275 ++
 HIAWms/hiawms_web/src/widgets/HIAWms/Views/Pages/WmsMaterialType/Config.ts                                                |   42 
 HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsMaterial/GetWmsMaterialInput.cs                         |   22 
 HIAWms/server/src/CMS.Plugin.HIAWms.Application/Implements/WmsMaterialAppService.cs                                       |    6 
 HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsMaterialType/WmsMaterialTypeDto.cs                      |  136 +
 HIAWms/server/src/CMS.Plugin.HIAWms.Application/Implements/WmsMaterialTypeAppService.cs                                   |  455 ++++
 Weben_CMS专用代码生成器/Code/File/GenerateCodeConfigParamFiles/物料类型配置.txt                                                        |   14 
 HIAWms/server/src/CMS.Plugin.HIAWms.Application/Implements/WmsEnumAppService.cs                                           |    2 
 HIAWms/server/src/CMS.Plugin.HIAWms.MySQL/Migrations/20250515034921_InitialCreate17.cs                                    |  132 +
 HIAWms/hiawms_web/src/widgets/HIAWms/Models/Service/WmsMaterialTypeDrawer.ts                                              |   34 
 HIAWms/hiawms_web/src/widgets/HIAWms/Models/WmsMaterialType.ts                                                            |   41 
 HIAWms/hiawms_web/src/widgets/HIAWms/Views/Pages/Dialog/WmsMaterialTypeDrawer/WmsMaterialTypeDrawer.module.scss           |    3 
 HIAWms/server/src/CMS.Plugin.HIAWms.MySQL/Migrations/CMSPluginDbContextModelSnapshot.cs                                   |  123 +
 HIAWms/server/src/CMS.Plugin.HIAWms.EntityFrameworkCore/Repositories/EfCoreWmsMaterialRepository.cs                       |    2 
 HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsMaterial/WmsMaterialCreateOrUpdateDtoBase.cs            |    2 
 HIAWms/server/src/CMS.Plugin.HIAWms.EntityFrameworkCore/Extensions/CMSPluginEfCoreExtensions.WmsMaterial.cs               |   11 
 HIAWms/server/src/CMS.Plugin.HIAWms.EntityFrameworkCore/Repositories/EfCoreWmsMaterialTypeRepository.cs                   |  218 ++
 HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsMaterialType/WmsMaterialTypeCreateDto.cs                |   22 
 HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsMaterialType/WmsMaterialTypeCreateOrUpdateDtoBase.cs    |   85 
 HIAWms/server/src/CMS.Plugin.HIAWms.EntityFrameworkCore/Extensions/CMSPluginEfCoreExtensions.WmsMaterialType.cs           |  100 +
 HIAWms/hiawms_web/src/widgets/HIAWms/Models/WmsMaterialTypeQueryDrawer.ts                                                 |   44 
 HIAWms/server/src/CMS.Plugin.HIAWms.PostgreSql/CMSPluginDbContext.cs                                                      |    1 
 HIAWms/server/src/CMS.Plugin.HIAWms/Resources/Templates/WmsMaterialType导出模板.xlsx                                          |    0 
 HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsMaterialType/GetWmsMaterialTypeInput.cs                 |  232 ++
 HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsMaterial/WmsMaterialExportModel.cs                      |   10 
 HIAWms/server/src/CMS.Plugin.HIAWms.Domain/WmsMaterials/WmsMaterial.cs                                                    |    7 
 HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsMaterialType/WmsMaterialTypeExportModel.cs              |   67 
 HIAWms/server/src/CMS.Plugin.HIAWms.Application/MapperProfiles/WmsMaterialTypeAutoMapperProfile.cs                        |   26 
 HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsMaterialType/WmsMaterialTypesImportModel.cs             |   33 
 HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Services/IWmsTaskAppService.cs                                  |    7 
 /dev/null                                                                                                                 |  100 -
 HIAWms/server/src/CMS.Plugin.HIAWms.SqlServer/CMSPluginDbContext.cs                                                       |    1 
 HIAWms/server/src/CMS.Plugin.HIAWms.EntityFrameworkCore/Repositories/EfCoreWmsTaskRepository.cs                           |   19 
 HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Services/IWmsMaterialTypeAppService.cs                          |   85 
 HIAWms/hiawms_web/src/widgets/HIAWms/Models/WmsMaterialTypeDrawer.ts                                                      |   44 
 HIAWms/hiawms_web/src/widgets/HIAWms/enum.ts                                                                              |    5 
 59 files changed, 5,814 insertions(+), 132 deletions(-)

diff --git a/HIAWms/hiawms_web/src/widgets/HIAWms/Controllers/WmsMaterialType.ts b/HIAWms/hiawms_web/src/widgets/HIAWms/Controllers/WmsMaterialType.ts
new file mode 100644
index 0000000..ede6c3f
--- /dev/null
+++ b/HIAWms/hiawms_web/src/widgets/HIAWms/Controllers/WmsMaterialType.ts
@@ -0,0 +1,275 @@
+import { ref, onMounted, reactive, Ref, nextTick, computed } from 'vue' 
+import { injectModel } from '@/libs/Provider/Provider' 
+import { WmsMaterialType } from '../Models/WmsMaterialType' 
+import { ElMessage } from 'element-plus' 
+import { ConfirmBox } from '@/components/ConfirmBox/ConfirmBox' 
+import { useFile } from './File' 
+ 
+interface CurrentType { 
+  row: any 
+  index: number 
+} 
+export const useWmsMaterialType = (props: any, ctx?: any) => { 
+  const wmsMaterialType = injectModel<WmsMaterialType>('wmsMaterialType') 
+  const { exportFile } = useFile() 
+  /** 
+   * 澶撮儴閰嶇疆 
+   */ 
+  const headers = ref({}) 
+  /** 
+   * 鍔ㄦ�佸垪閰嶇疆 
+   */ 
+  const wmsMaterialTypeColumns = 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 wmsMaterialType.cloneData([row.id]) 
+    //     ElMessage.success('鍒涘缓鍓湰鎴愬姛') 
+    //     tableRef.value?.getList() 
+    //   }, 
+    //   divided: true, 
+    //   icon: 'copy', 
+    // }, 
+    { 
+      label: '鍒犻櫎', 
+      fn: async (c: CurrentType) => { 
+        const names = selection.value.map((item: { materialTypeCode: string }) => item.materialTypeCode) 
+        ConfirmBox( 
+          `鏄惁鍒犻櫎${names.length ? names.join(',') : c.row.materialTypeCode}` 
+        ).then(async () => { 
+          const ids = selection.value.map((item: { id: string }) => item.id) 
+          await wmsMaterialType.deleteWmsMaterialTypes(ids.length ? ids : [c.row.id]) 
+          ElMessage.success('鍒犻櫎鎴愬姛') 
+          tableRef.value.getList() 
+        }) 
+      }, 
+      icon: 'close', 
+    }, 
+  ] 
+ 
+  const onCheck = (records: any) => { 
+    selection.value = records 
+  } 
+ 
+  const onAddWmsMaterialType = () => { 
+    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 onConfirmWmsMaterialType = 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/wmsMaterialType/export', data, '鐗╂枡绫诲瀷') 
+  } 
+ 
+  /** 
+   * 鍏抽敭瀛楁悳绱� 
+   */ 
+  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, 
+    wmsMaterialTypeColumns, 
+    paginationParams, 
+    headers, 
+    onBeforeUpload, 
+    onError, 
+    onSuccess, 
+    openDetail, 
+    onSearch, 
+    onExport, 
+    onRowClick, 
+    onConfirmWmsMaterialType, 
+    onCheck, 
+    onAddWmsMaterialType, 
+    onAdvancedQuery 
+  } 
+} 
diff --git a/HIAWms/hiawms_web/src/widgets/HIAWms/Controllers/WmsMaterialTypeDrawer.tsx b/HIAWms/hiawms_web/src/widgets/HIAWms/Controllers/WmsMaterialTypeDrawer.tsx
new file mode 100644
index 0000000..c9b0831
--- /dev/null
+++ b/HIAWms/hiawms_web/src/widgets/HIAWms/Controllers/WmsMaterialTypeDrawer.tsx
@@ -0,0 +1,212 @@
+import { 
+  ref, 
+  onMounted, 
+  reactive, 
+  computed, 
+  Ref, 
+  watch, 
+  SetupContext, 
+  h, 
+} from 'vue' 
+import { injectModel } from '@/libs/Provider/Provider' 
+import { WmsMaterialTypeDrawer } from '../Models/WmsMaterialTypeDrawer' 
+import { ElMessage } from 'element-plus' 
+import isEqual from 'lodash/isEqual' 
+import { ConfirmBox } from '@/components/ConfirmBox/ConfirmBox' 
+import { cloneDeep } from 'lodash' 
+// 寮曞叆鍏叡閫夐」閰嶇疆  
+import {   
+  BOOLEAN_OPTIONS_AddEdit  
+} from '@/utils/commonOptionConstants';  
+ 
+export const useWmsMaterialTypeDrawer = (props: any, ctx?: any) => { 
+  const wmsMaterialTypeDrawer = injectModel<WmsMaterialTypeDrawer>('wmsMaterialTypeDrawer') 
+  /** 
+   * 鐢ㄦ潵瀵规瘮鐨勫垵濮嬪寲鏁版嵁 
+   */ 
+  const initiateData: Ref<Record<string, any>> = ref({}) 
+  const formData = ref<Record<string, any>>({}) 
+  // ref 
+  const formRef = ref() 
+ 
+  const disabled = ref(false) 
+ 
+  const current = computed(() => { 
+    return props.row || null 
+  }) 
+ 
+   
+  const datePicker = (attrs) => { 
+    return ( 
+      <el-date-picker 
+        type="date" 
+        format="YYYY-MM-DD HH:mm:ss" 
+        formatValue="YYYY-MM-DD HH:mm:ss" 
+        {...attrs} 
+      ></el-date-picker> 
+    ) 
+  } 
+  const inputNumber = (attrs) => { 
+    return ( 
+      <el-input-number 
+        min="1" 
+        step="1" 
+        precision="0" 
+        {...attrs} 
+      ></el-input-number> 
+    ) 
+  } 
+ 
+  const dateTimePicker = (attrs) => { 
+    return ( 
+      <el-date-picker 
+        type="datetime" 
+        format="YYYY-MM-DD HH:mm:ss" 
+        formatValue="YYYY-MM-DD HH:mm:ss" 
+        {...attrs} 
+      ></el-date-picker> 
+    ) 
+  } 
+ 
+  const visible = computed({ 
+    get() { 
+      return props.modelValue 
+    }, 
+    set(val) { 
+      ctx.emit('update:modelValue', val) 
+    }, 
+  }) 
+  /** 
+   * 娣诲姞鐨刦orm瀛楁 
+   */ 
+  const formItems = reactive([ 
+                    { 
+                   label: '绫诲瀷鎻忚堪', 
+                   prop: 'materialTypeDesc', 
+                   el: 'input', 
+                   //disabled: disabled, 
+                   placeholder: '璇疯緭鍏ョ被鍨嬫弿杩�', 
+              rules: [{required: true, message: '绫诲瀷鎻忚堪涓嶈兘涓虹┖', trigger: 'blur' }], 
+                }, 
+                { 
+                   label: '绫诲瀷缂栫爜', 
+                   prop: 'materialTypeCode', 
+                   el: 'input', 
+                   //disabled: disabled, 
+                   placeholder: '璇疯緭鍏ョ被鍨嬬紪鐮�', 
+              rules: [{required: true, message: '绫诲瀷缂栫爜涓嶈兘涓虹┖', trigger: 'blur' }], 
+                }, 
+                { 
+                   label: '澶囨敞', 
+                   prop: 'remark', 
+                   el: 'input', 
+                   //disabled: disabled, 
+                   placeholder: '璇疯緭鍏ュ娉�', 
+                },  
+  ]) 
+  /** 
+   * 鏍¢獙鏄惁鏈夋暟鎹彉鍖� 
+   */ 
+  const checkIsEqualObject = () => { 
+    const data = { 
+      formData: formData.value, 
+    } 
+    const check = isEqual(initiateData.value, data) 
+    return check 
+  } 
+ 
+  const onClose = (done: () => void) => { 
+    if (visible.value) { 
+      if (checkIsEqualObject()) { 
+        visible.value = false 
+        done && done() 
+      } else { 
+        ConfirmBox('鏄惁淇濆瓨璁剧疆锛�') 
+          .then(() => { 
+            onConfirm() 
+          }) 
+          .catch(() => { 
+            visible.value = false 
+            done && done() 
+          }) 
+      } 
+    } 
+  } 
+  /** 
+   * 淇濆瓨 
+   */ 
+  const onConfirm = async () => { 
+    await formRef.value?.validate() 
+    const data = { 
+      materialTypeDesc: formData.value.materialTypeDesc, 
+materialTypeCode: formData.value.materialTypeCode, 
+remark: formData.value.remark,  
+    } 
+    if (!current.value) { 
+      await wmsMaterialTypeDrawer.addWmsMaterialType(data) 
+    } else { 
+      const id = current.value.id 
+      await wmsMaterialTypeDrawer.updateWmsMaterialType(id, data) 
+    } 
+    ElMessage.success('淇濆瓨鎴愬姛') 
+    ctx.emit('confirm') 
+  } 
+ 
+  const updateCheckData = () => { 
+    initiateData.value = { 
+      formData: { 
+        ...formData.value, 
+      }, 
+    } 
+  } 
+  const updateFormItemOptions = (propName: string, enumData: any[]) => { 
+    const item = formItems.find((item) => item.prop === propName) 
+    if (item && enumData) { 
+      item.options = enumData.map((item) => ({ 
+        label: item.description, 
+        value: item.value, 
+      })) 
+    } 
+  } 
+  /** 
+   * 閫氱敤鏌ヨ鏋氫妇 
+   */ 
+  const commonQueryEnumForFrom = async () => { 
+     
+  } 
+  commonQueryEnumForFrom() 
+  /** 
+   * 寮圭獥鎵撳紑鑾峰彇璇︽儏 
+   */ 
+  const onOpen = async () => { 
+    if (current.value) { 
+      const res = await wmsMaterialTypeDrawer.getWmsMaterialTypeDetail(current.value) 
+ 
+      formData.value = { 
+        materialTypeDesc: res.materialTypeDesc, 
+materialTypeCode: res.materialTypeCode, 
+remark: res.remark,  
+        id: res.id, 
+      } 
+      disabled.value = true 
+      updateCheckData() 
+    } else { 
+      formData.value = {} 
+ 
+      disabled.value = false 
+      updateCheckData() 
+    } 
+  } 
+ 
+  watch(() => current.value, onOpen) 
+ 
+  return { 
+    formItems, 
+    formData, 
+    visible, 
+    formRef, 
+    onOpen, 
+    onClose, 
+    onConfirm, 
+  } 
+} 
diff --git a/HIAWms/hiawms_web/src/widgets/HIAWms/Controllers/WmsMaterialTypeQueryDrawer.tsx b/HIAWms/hiawms_web/src/widgets/HIAWms/Controllers/WmsMaterialTypeQueryDrawer.tsx
new file mode 100644
index 0000000..fb5bc71
--- /dev/null
+++ b/HIAWms/hiawms_web/src/widgets/HIAWms/Controllers/WmsMaterialTypeQueryDrawer.tsx
@@ -0,0 +1,298 @@
+import { 
+  ref, 
+  onMounted, 
+  reactive, 
+  computed, 
+  Ref, 
+  watch, 
+  SetupContext, 
+  h, 
+} from 'vue' 
+import { injectModel } from '@/libs/Provider/Provider' 
+import { WmsMaterialTypeDrawer } from '../Models/WmsMaterialTypeDrawer' 
+import { ElMessage } from 'element-plus' 
+import isEqual from 'lodash/isEqual' 
+import { ConfirmBox } from '@/components/ConfirmBox/ConfirmBox' 
+import { cloneDeep } from 'lodash' 
+// 寮曞叆鍏叡閫夐」閰嶇疆 
+import {  
+  FILTER_MODE_OPTIONS_STRING,  
+  FILTER_MODE_OPTIONS_NUM, 
+  FILTER_MODE_OPTIONS_BOOL 
+} from '@/components/DyFormForHighQuery/DyFormForHighQueryOptions'; 
+import {  
+  BOOLEAN_OPTIONS 
+} from '@/utils/commonOptionConstants'; 
+ 
+export const useWmsMaterialTypeQueryDrawer = (props: any, ctx?: any) => { 
+  const wmsMaterialTypeDrawer = injectModel<WmsMaterialTypeDrawer>('WmsMaterialTypeDrawer') 
+  /** 
+   * 鐢ㄦ潵瀵规瘮鐨勫垵濮嬪寲鏁版嵁 
+   */ 
+  const initiateData: Ref<Record<string, any>> = ref({}) 
+  const formData = ref<Record<string, any>>({}) 
+  // ref 
+  const formRef = ref() 
+ 
+  const disabled = ref(false) 
+ 
+  const current = computed(() => { 
+    return props.row || null 
+  }) 
+ 
+  const inputNumber = (attrs) => { 
+    return ( 
+      <el-input-number 
+        min="1" 
+        step="1" 
+        precision="0" 
+        {...attrs} 
+      ></el-input-number> 
+    ) 
+  } 
+ 
+    const datePickerRange = (attrs) => { 
+    return ( 
+      <el-date-picker 
+        type="daterange" 
+        value-format="YYYY-MM-DD HH:mm:ss" 
+        start-placeholder="寮�濮嬫棩鏈�" 
+        end-placeholder="缁撴潫鏃ユ湡" 
+        {...attrs} 
+      ></el-date-picker> 
+    ) 
+  } 
+ 
+  const dateTimePickerRange = (attrs) => { 
+    return ( 
+      <el-date-picker 
+        type="datetimerange" 
+        value-format="YYYY-MM-DD HH:mm:ss" 
+        start-placeholder="寮�濮嬫棩鏈�" 
+        end-placeholder="缁撴潫鏃ユ湡" 
+        {...attrs} 
+      ></el-date-picker> 
+    ) 
+  } 
+ 
+  const visible = computed({ 
+    get() { 
+      return props.modelValue 
+    }, 
+    set(val) { 
+      ctx.emit('update:modelValue', val) 
+    }, 
+  }) 
+  /** 
+   * 楂樼骇鏌ヨ鐨刦orm瀛楁 
+   */ 
+  const formItems = reactive([ 
+                    { 
+                   label: '绫诲瀷鎻忚堪', 
+                   prop: 'materialTypeDesc', 
+                   el: 'input', 
+                   //disabled: disabled, 
+                   placeholder: '璇疯緭鍏ョ被鍨嬫弿杩�', 
+                   highSelectAttrs:{ 
+                     prop: 'materialTypeDesc_FilterMode', 
+                     el: 'select',  
+                     placeholder: '璇烽�夋嫨',  
+                     options:FILTER_MODE_OPTIONS_STRING 
+                   } 
+                }, 
+                { 
+                   label: '绫诲瀷缂栫爜', 
+                   prop: 'materialTypeCode', 
+                   el: 'input', 
+                   //disabled: disabled, 
+                   placeholder: '璇疯緭鍏ョ被鍨嬬紪鐮�', 
+                   highSelectAttrs:{ 
+                     prop: 'materialTypeCode_FilterMode', 
+                     el: 'select',  
+                     placeholder: '璇烽�夋嫨',  
+                     options:FILTER_MODE_OPTIONS_STRING 
+                   } 
+                }, 
+                { 
+                   label: '鍒涘缓鏃堕棿', 
+                   prop: 'creationTime', 
+                   el: (props: any, { attrs }: SetupContext) => { 
+                     return h(dateTimePickerRange, {  
+                       ...props,
+                       clearable: true, 
+                       ...attrs,  
+                     })  
+                   },
+                   width: '100%',
+                   //disabled: disabled, 
+                   placeholder: '璇疯緭鍏ュ垱寤烘椂闂�', 
+                   isDateControl: true, // 鏄惧紡鏍囪涓烘棩鏈熸帶浠� 
+                }, 
+                { 
+                   label: '鏈�鍚庝慨鏀规椂闂�', 
+                   prop: 'lastModificationTime', 
+                   el: (props: any, { attrs }: SetupContext) => { 
+                     return h(dateTimePickerRange, {  
+                       ...props,
+                       clearable: true, 
+                       ...attrs,  
+                     })  
+                   },
+                   width: '100%',
+                   //disabled: disabled, 
+                   placeholder: '璇疯緭鍏ユ渶鍚庝慨鏀规椂闂�', 
+                   isDateControl: true, // 鏄惧紡鏍囪涓烘棩鏈熸帶浠� 
+                }, 
+                { 
+                   label: '', 
+                   prop: 'creatorName', 
+                   el: 'input', 
+                   //disabled: disabled, 
+                   placeholder: '璇疯緭鍏�', 
+                   highSelectAttrs:{ 
+                     prop: 'creatorName_FilterMode', 
+                     el: 'select',  
+                     placeholder: '璇烽�夋嫨',  
+                     options:FILTER_MODE_OPTIONS_STRING 
+                   } 
+                }, 
+                { 
+                   label: '', 
+                   prop: 'lastModifierName', 
+                   el: 'input', 
+                   //disabled: disabled, 
+                   placeholder: '璇疯緭鍏�', 
+                   highSelectAttrs:{ 
+                     prop: 'lastModifierName_FilterMode', 
+                     el: 'select',  
+                     placeholder: '璇烽�夋嫨',  
+                     options:FILTER_MODE_OPTIONS_STRING 
+                   } 
+                }, 
+                { 
+                   label: '澶囨敞', 
+                   prop: 'remark', 
+                   el: 'input', 
+                   //disabled: disabled, 
+                   placeholder: '璇疯緭鍏ュ娉�', 
+                   highSelectAttrs:{ 
+                     prop: 'remark_FilterMode', 
+                     el: 'select',  
+                     placeholder: '璇烽�夋嫨',  
+                     options:FILTER_MODE_OPTIONS_STRING 
+                   } 
+                },  
+  ]) 
+  /** 
+   * 鏍¢獙鏄惁鏈夋暟鎹彉鍖� 
+   */ 
+  const checkIsEqualObject = () => { 
+    const data = { 
+      formData: formData.value, 
+    } 
+    const check = isEqual(initiateData.value, data) 
+    return check 
+  } 
+  const commonGetFormData=()=>{ 
+    const data = { 
+      materialTypeDesc: formData.value.materialTypeDesc || '', 
+materialTypeDesc_FilterMode: formData.value.materialTypeDesc_FilterMode || '', 
+materialTypeCode: formData.value.materialTypeCode || '', 
+materialTypeCode_FilterMode: formData.value.materialTypeCode_FilterMode || '', 
+creationTime: formData.value.creationTime || '', 
+lastModificationTime: formData.value.lastModificationTime || '', 
+creatorName: formData.value.creatorName || '', 
+creatorName_FilterMode: formData.value.creatorName_FilterMode || '', 
+lastModifierName: formData.value.lastModifierName || '', 
+lastModifierName_FilterMode: formData.value.lastModifierName_FilterMode || '', 
+remark: formData.value.remark || '', 
+remark_FilterMode: formData.value.remark_FilterMode || '',  
+    } 
+    return data; 
+  } 
+  const onClose = (done: () => void) => { 
+    if (visible.value) { 
+      visible.value = false 
+      const data =commonGetFormData(); 
+      ctx.emit('close', data) 
+    } 
+  } 
+  /** 
+   * 纭鏌ヨ 
+   */ 
+  const onConfirmQuery = async () => { 
+    const data =commonGetFormData(); 
+    ctx.emit('confirmQuery', data) 
+  } 
+  /**  
+   * 閲嶇疆鍏叡select鏌ヨ  
+   */  
+  const onResetForHighSelect = async () => {  
+    formData.value.materialTypeDesc_FilterMode = 1 
+formData.value.materialTypeCode_FilterMode = 1 
+formData.value.creatorName_FilterMode = 1 
+formData.value.lastModifierName_FilterMode = 1 
+formData.value.remark_FilterMode = 1  
+  }  
+  /** 
+   * 閲嶇疆鏌ヨ 
+   */ 
+  const onReset = async () => { 
+    formData.value = {} 
+    onResetForHighSelect();//閲嶇疆鍏叡select鏌ヨ  
+    formData.value.materialTypeDesc = '' 
+formData.value.materialTypeCode = '' 
+formData.value.creationTime = '' 
+formData.value.lastModificationTime = '' 
+formData.value.creatorName = '' 
+formData.value.lastModifierName = '' 
+formData.value.remark = ''  
+    //鍚戠埗缁勪欢鍙戦�佽嚜瀹氫箟浜嬩欢 
+    ctx.emit('restQuery'); 
+  } 
+ 
+  const updateCheckData = () => { 
+    initiateData.value = { 
+      formData: { 
+        ...formData.value, 
+      }, 
+    } 
+  } 
+  const updateFormItemOptions = (propName: string, enumData: any[]) => { 
+    const item = formItems.find((item) => item.prop === propName) 
+    if (item && enumData) { 
+      item.options = enumData.map((item) => ({ 
+        label: item.description, 
+        value: item.value, 
+      })) 
+    } 
+  } 
+  /** 
+   * 閫氱敤鏌ヨ鏋氫妇 
+   */ 
+  const commonQueryEnumForFrom = async () => { 
+     
+  } 
+  commonQueryEnumForFrom() 
+  onResetForHighSelect();//閲嶇疆鍏叡select鏌ヨ  
+  /** 
+   * 寮圭獥鎵撳紑鑾峰彇璇︽儏 
+   */ 
+  const onOpen = async () => { 
+    disabled.value = false 
+    updateCheckData() 
+  } 
+ 
+  watch(() => current.value, onOpen) 
+ 
+  return { 
+    formItems, 
+    formData, 
+    visible, 
+    formRef, 
+    onOpen, 
+    onClose, 
+    onConfirmQuery, 
+    onReset, 
+  } 
+} 
diff --git a/HIAWms/hiawms_web/src/widgets/HIAWms/Models/Service/WmsMaterialType.ts b/HIAWms/hiawms_web/src/widgets/HIAWms/Models/Service/WmsMaterialType.ts
new file mode 100644
index 0000000..027d7b4
--- /dev/null
+++ b/HIAWms/hiawms_web/src/widgets/HIAWms/Models/Service/WmsMaterialType.ts
@@ -0,0 +1,30 @@
+import { Base } from '@/libs/Base/Base' 
+const request = Base.request 
+ 
+/** 
+ * 娣诲姞 
+ * @returns 
+ */ 
+export const addWmsMaterialType = (data: any) => { 
+  return request.post('/api/v1/HIAWms/wmsMaterialType', data) 
+} 
+ 
+/** 
+ * 鎵归噺鍒犻櫎 
+ * @returns 
+ */ 
+export const deleteWmsMaterialTypes = (ids: string[]) => { 
+  return request({ 
+    data: ids, 
+    url: '/api/v1/HIAWms/wmsMaterialType', 
+    method: 'delete', 
+  }) 
+} 
+ 
+/** 
+ * 鍏嬮殕 
+ * @returns 
+ */ 
+export const cloneData = (data: any) => { 
+  return request.post('/api/v1/HIAWms/wmsMaterialType/clone', data) 
+} 
diff --git a/HIAWms/hiawms_web/src/widgets/HIAWms/Models/Service/WmsMaterialTypeDrawer.ts b/HIAWms/hiawms_web/src/widgets/HIAWms/Models/Service/WmsMaterialTypeDrawer.ts
new file mode 100644
index 0000000..216f591
--- /dev/null
+++ b/HIAWms/hiawms_web/src/widgets/HIAWms/Models/Service/WmsMaterialTypeDrawer.ts
@@ -0,0 +1,34 @@
+import { Base } from '@/libs/Base/Base' 
+const request = Base.request 
+ 
+/** 
+ * 娣诲姞 
+ * @returns 
+ */ 
+export const addWmsMaterialType = (data: any) => { 
+  return request.post('/api/v1/HIAWms/wmsMaterialType', data) 
+} 
+ 
+/** 
+ * 鑾峰彇璇︽儏 
+ * @returns 
+ */ 
+export const getWmsMaterialType = (id: string) => { 
+  return request.get(`/api/v1/HIAWms/wmsMaterialType/${id}`) 
+} 
+ 
+/** 
+ * 鏇存柊 
+ * @returns 
+ */ 
+export const updateWmsMaterialType = (id: string, data: Record<string, any>) => { 
+  return request.put(`/api/v1/HIAWms/wmsMaterialType/${id}`, data) 
+} 
+ 
+/** 
+ * 鑾峰彇鏋氫妇 
+ * @returns 
+ */ 
+export const getWmsEnumData = (data: any) => { 
+  return request.post('/api/v1/WareCmsUtilityApi/WmsEnum', data) 
+} 
diff --git a/HIAWms/hiawms_web/src/widgets/HIAWms/Models/Service/WmsMaterialTypeQueryDrawer.ts b/HIAWms/hiawms_web/src/widgets/HIAWms/Models/Service/WmsMaterialTypeQueryDrawer.ts
new file mode 100644
index 0000000..55fb96f
--- /dev/null
+++ b/HIAWms/hiawms_web/src/widgets/HIAWms/Models/Service/WmsMaterialTypeQueryDrawer.ts
@@ -0,0 +1,35 @@
+import { Base } from '@/libs/Base/Base' 
+const request = Base.request 
+ 
+/** 
+ * 娣诲姞 
+ * @returns 
+ */ 
+export const addWmsMaterialType = (data: any) => { 
+  return request.post('/api/v1/HIAWms/wmsMaterialType', data) 
+} 
+ 
+/** 
+ * 鑾峰彇璇︽儏 
+ * @returns 
+ */ 
+export const getWmsMaterialType = (id: string) => { 
+  return request.get(`/api/v1/HIAWms/wmsMaterialType/${id}`) 
+} 
+ 
+/** 
+ * 鏇存柊 
+ * @returns 
+ */ 
+export const updateWmsMaterialType = (id: string, data: Record<string, any>) => { 
+  return request.put(`/api/v1/HIAWms/wmsMaterialType/${id}`, data) 
+} 
+ 
+/** 
+ * 鑾峰彇鏋氫妇 
+ * @returns 
+ */ 
+export const getWmsEnumData = (data: any) => { 
+  return request.post('/api/v1/WareCmsUtilityApi/WmsEnum', data) 
+} 
+ 
diff --git a/HIAWms/hiawms_web/src/widgets/HIAWms/Models/WmsMaterialType.ts b/HIAWms/hiawms_web/src/widgets/HIAWms/Models/WmsMaterialType.ts
new file mode 100644
index 0000000..15a430a
--- /dev/null
+++ b/HIAWms/hiawms_web/src/widgets/HIAWms/Models/WmsMaterialType.ts
@@ -0,0 +1,41 @@
+import { Base } from '@/libs/Base/Base' 
+import { 
+  deleteWmsMaterialTypes, 
+  addWmsMaterialType, 
+  cloneData, 
+} from './Service/WmsMaterialType' 
+ 
+export class WmsMaterialType extends Base<{ [key: string]: any }> { 
+  constructor() { 
+    super({ 
+      data: [], 
+    }) 
+  } 
+  onMounted() {} 
+  /** 
+   * 鍒犻櫎 
+   * @param id 
+   * @returns 
+   */ 
+  async deleteWmsMaterialTypes(ids: string[]) { 
+    return deleteWmsMaterialTypes(ids) 
+  } 
+ 
+  /** 
+   * 娣诲姞鏁版嵁 
+   * @param data 
+   * @returns 
+   */ 
+  addWmsMaterialType(data: Record<string, any>) { 
+    return addWmsMaterialType(data) 
+  } 
+ 
+  /** 
+   * 鍏嬮殕 
+   * @param ids 
+   * @returns 
+   */ 
+  cloneData(ids: string[]) { 
+    return cloneData(ids) 
+  } 
+} 
diff --git a/HIAWms/hiawms_web/src/widgets/HIAWms/Models/WmsMaterialTypeDrawer.ts b/HIAWms/hiawms_web/src/widgets/HIAWms/Models/WmsMaterialTypeDrawer.ts
new file mode 100644
index 0000000..17cbf68
--- /dev/null
+++ b/HIAWms/hiawms_web/src/widgets/HIAWms/Models/WmsMaterialTypeDrawer.ts
@@ -0,0 +1,44 @@
+import { Base } from '@/libs/Base/Base' 
+import { 
+  addWmsMaterialType, 
+  getWmsMaterialType, 
+  updateWmsMaterialType, 
+  getWmsEnumData, 
+} from './Service/WmsMaterialTypeDrawer' 
+import { useGlobalState } from '@/libs/Store/Store' 
+ 
+export class WmsMaterialTypeDrawer extends Base<{ [key: string]: any }> { 
+  constructor() { 
+    super({ 
+      data: [], 
+      wmsMaterialType: {}, 
+    }) 
+  } 
+ 
+  /** 
+   * 娣诲姞 
+   * @param data 
+   */ 
+  async addWmsMaterialType(data: Record<string, any>) { 
+    return addWmsMaterialType(data) 
+  } 
+  /** 
+   * 鏇存柊 
+   * @param data 
+   */ 
+  async updateWmsMaterialType(id: string, data: Record<string, any>) { 
+    return updateWmsMaterialType(id, data) 
+  } 
+ 
+  /** 
+   * 鑾峰彇璇︽儏 
+   */ 
+  async getWmsMaterialTypeDetail(current: any, id?: string) { 
+    return getWmsMaterialType(id || current?.id) 
+  } 
+ 
+  //  鑾峰彇鏋氫妇鍊� 
+  async getWmsEnumData(data: Record<string, any>) { 
+    return getWmsEnumData(data) 
+  } 
+} 
diff --git a/HIAWms/hiawms_web/src/widgets/HIAWms/Models/WmsMaterialTypeQueryDrawer.ts b/HIAWms/hiawms_web/src/widgets/HIAWms/Models/WmsMaterialTypeQueryDrawer.ts
new file mode 100644
index 0000000..41a2bb8
--- /dev/null
+++ b/HIAWms/hiawms_web/src/widgets/HIAWms/Models/WmsMaterialTypeQueryDrawer.ts
@@ -0,0 +1,44 @@
+import { Base } from '@/libs/Base/Base' 
+import { 
+  addWmsMaterialType, 
+  getWmsMaterialType, 
+  updateWmsMaterialType, 
+  getWmsEnumData, 
+} from './Service/WmsMaterialTypeQueryDrawer' 
+import { useGlobalState } from '@/libs/Store/Store' 
+ 
+export class WmsMaterialTypeQueryDrawer extends Base<{ [key: string]: any }> { 
+  constructor() { 
+    super({ 
+      data: [], 
+      wmsMaterialType: {}, 
+    }) 
+  } 
+ 
+  /** 
+   * 娣诲姞 
+   * @param data 
+   */ 
+  async addWmsMaterialType(data: Record<string, any>) { 
+    return addWmsMaterialType(data) 
+  } 
+  /** 
+   * 鏇存柊 
+   * @param data 
+   */ 
+  async updateWmsMaterialType(id: string, data: Record<string, any>) { 
+    return updateWmsMaterialType(id, data) 
+  } 
+ 
+  /** 
+   * 鑾峰彇璇︽儏 
+   */ 
+  async getWmsMaterialTypeDetail(current: any, id?: string) { 
+    return getWmsMaterialType(id || current?.id) 
+  } 
+ 
+  //  鑾峰彇鏋氫妇鍊� 
+  async getWmsEnumData(data: Record<string, any>) { 
+    return getWmsEnumData(data) 
+  } 
+} 
diff --git a/HIAWms/hiawms_web/src/widgets/HIAWms/Views/HIAWms.tsx b/HIAWms/hiawms_web/src/widgets/HIAWms/Views/HIAWms.tsx
index 7e8b462..3997a50 100644
--- a/HIAWms/hiawms_web/src/widgets/HIAWms/Views/HIAWms.tsx
+++ b/HIAWms/hiawms_web/src/widgets/HIAWms/Views/HIAWms.tsx
@@ -23,7 +23,10 @@
 
 const entityNames = getEntityNames(Models)
 
-const nameToLabelMap = [{ name: 'WmsMaterial', label: '鐗╂枡鍩虹' }]
+const nameToLabelMap = [
+  { name: 'WmsMaterial', label: '鐗╂枡鍩虹' },
+    { name: 'WmsMaterialType', label: '鐗╂枡绫诲瀷' },
+]
 
 export default defineComponent({
   name: 'HIAWms',
diff --git a/HIAWms/hiawms_web/src/widgets/HIAWms/Views/Pages/Dialog/WmsMaterialTypeDrawer/WmsMaterialTypeDrawer.module.scss b/HIAWms/hiawms_web/src/widgets/HIAWms/Views/Pages/Dialog/WmsMaterialTypeDrawer/WmsMaterialTypeDrawer.module.scss
new file mode 100644
index 0000000..177adca
--- /dev/null
+++ b/HIAWms/hiawms_web/src/widgets/HIAWms/Views/Pages/Dialog/WmsMaterialTypeDrawer/WmsMaterialTypeDrawer.module.scss
@@ -0,0 +1,3 @@
+.drawer { 
+  width: 800px; 
+} 
diff --git a/HIAWms/hiawms_web/src/widgets/HIAWms/Views/Pages/Dialog/WmsMaterialTypeDrawer/WmsMaterialTypeDrawer.tsx b/HIAWms/hiawms_web/src/widgets/HIAWms/Views/Pages/Dialog/WmsMaterialTypeDrawer/WmsMaterialTypeDrawer.tsx
new file mode 100644
index 0000000..4fdd173
--- /dev/null
+++ b/HIAWms/hiawms_web/src/widgets/HIAWms/Views/Pages/Dialog/WmsMaterialTypeDrawer/WmsMaterialTypeDrawer.tsx
@@ -0,0 +1,61 @@
+import { SetupContext, defineComponent } from 'vue' 
+import BaseDrawer from '@/components/BaseDrawer/BaseDrawer' 
+import styles from './WmsMaterialTypeDrawer.module.scss' 
+import { useWmsMaterialTypeDrawer } from '../../../../Controllers/WmsMaterialTypeDrawer.tsx' 
+import DyForm from '@/components/DyForm/DyForm' 
+ 
+// @ts-ignore 
+export default defineComponent<{ 
+  [key: string]: any 
+}>({ 
+  name: '寮圭獥', 
+  props: { 
+    modelValue: { 
+      type: Boolean, 
+      default: false, 
+    }, 
+    title: { 
+      type: String, 
+      default: '', 
+    }, 
+    row: { 
+      type: Object, 
+    }, 
+    sort: { 
+      type: Number, 
+      default: 0, 
+    }, 
+  }, 
+  emits: ['update:modelValue', 'close', 'submit', 'confirm'], 
+  setup(props: Record<string, any>, ctx: SetupContext) { 
+    const { 
+      onClose, 
+      onConfirm, 
+      onOpen, 
+      formRef, 
+      visible, 
+      formItems, 
+      formData, 
+    } = useWmsMaterialTypeDrawer(props, ctx) 
+    return () => ( 
+      <BaseDrawer 
+        class={styles.drawer} 
+        size="800px" 
+        title={props.title || '娣诲姞'} 
+        v-model={visible.value} 
+        close-on-click-modal={true} 
+        onConfirm={onConfirm} 
+        onOpen={onOpen} 
+        before-close={onClose} 
+        onClose={onClose} 
+      > 
+        <DyForm 
+          ref={formRef} 
+          formData={formData.value} 
+          labelWidth="106px" 
+          formItemProps={formItems} 
+        ></DyForm> 
+      </BaseDrawer> 
+    ) 
+  }, 
+}) 
diff --git a/HIAWms/hiawms_web/src/widgets/HIAWms/Views/Pages/Dialog/WmsMaterialTypeQueryDrawer/WmsMaterialTypeQueryDrawer.module.scss b/HIAWms/hiawms_web/src/widgets/HIAWms/Views/Pages/Dialog/WmsMaterialTypeQueryDrawer/WmsMaterialTypeQueryDrawer.module.scss
new file mode 100644
index 0000000..177adca
--- /dev/null
+++ b/HIAWms/hiawms_web/src/widgets/HIAWms/Views/Pages/Dialog/WmsMaterialTypeQueryDrawer/WmsMaterialTypeQueryDrawer.module.scss
@@ -0,0 +1,3 @@
+.drawer { 
+  width: 800px; 
+} 
diff --git a/HIAWms/hiawms_web/src/widgets/HIAWms/Views/Pages/Dialog/WmsMaterialTypeQueryDrawer/WmsMaterialTypeQueryDrawer.tsx b/HIAWms/hiawms_web/src/widgets/HIAWms/Views/Pages/Dialog/WmsMaterialTypeQueryDrawer/WmsMaterialTypeQueryDrawer.tsx
new file mode 100644
index 0000000..837c8df
--- /dev/null
+++ b/HIAWms/hiawms_web/src/widgets/HIAWms/Views/Pages/Dialog/WmsMaterialTypeQueryDrawer/WmsMaterialTypeQueryDrawer.tsx
@@ -0,0 +1,71 @@
+/* 
+ * 鐗╂枡鍩虹淇℃伅鏌ヨ寮瑰嚭妗� 
+*/ 
+import { SetupContext, defineComponent } from 'vue' 
+import BaseQueryDrawer from '@/components/BaseQueryDrawer/BaseQueryDrawer' 
+import styles from './WmsMaterialTypeQueryDrawer.module.scss' 
+import { useWmsMaterialTypeQueryDrawer } from '../../../../Controllers/WmsMaterialTypeQueryDrawer.tsx' 
+import DyFormForHighQuery from '@/components/DyFormForHighQuery/DyFormForHighQuery'  
+ 
+// @ts-ignore 
+export default defineComponent<{ 
+  [key: string]: any 
+}>({ 
+  name: '寮圭獥', 
+  props: { 
+    //鏋氫妇绫诲瀷瀛楀吀 
+    enumListDict:{ 
+      type: Array as () => Array<{ key: string; value: object }>, // 瀹氫箟鏁扮粍鍏冪礌绫诲瀷 
+      default: () => [] // 榛樿鍊� 
+    }, 
+    modelValue: { 
+      type: Boolean, 
+      default: false, 
+    }, 
+    title: { 
+      type: String, 
+      default: '', 
+    }, 
+    row: { 
+      type: Object, 
+    }, 
+    sort: { 
+      type: Number, 
+      default: 0, 
+    }, 
+  }, 
+  emits: ['update:modelValue', 'close', 'submit', 'confirmquery1'], 
+  setup(props: Record<string, any>, ctx: SetupContext) { 
+    const { 
+      onClose, 
+      onConfirmQuery, 
+      onOpen, 
+      onReset, 
+      formRef, 
+      visible, 
+      formItems, 
+      formData, 
+    } = useWmsMaterialTypeQueryDrawer(props, ctx) 
+    return () => ( 
+      <BaseQueryDrawer 
+        class={styles.drawer} 
+        size="800px" 
+        title={props.title || '楂樼骇鏌ヨ'} 
+        v-model={visible.value} 
+        close-on-click-modal={true} 
+        onReset={onReset} 
+        onConfirmQueryForBase={onConfirmQuery} 
+        onOpen={onOpen} 
+        before-close={onClose} 
+        onClose={onClose} 
+      > 
+        <DyFormForHighQuery 
+          ref={formRef} 
+          formData={formData.value} 
+          labelWidth="106px" 
+          formItemProps={formItems} 
+        ></DyFormForHighQuery> 
+      </BaseQueryDrawer> 
+    ) 
+  }, 
+}) 
diff --git a/HIAWms/hiawms_web/src/widgets/HIAWms/Views/Pages/WmsMaterialType/Config.ts b/HIAWms/hiawms_web/src/widgets/HIAWms/Views/Pages/WmsMaterialType/Config.ts
new file mode 100644
index 0000000..ae4f82a
--- /dev/null
+++ b/HIAWms/hiawms_web/src/widgets/HIAWms/Views/Pages/WmsMaterialType/Config.ts
@@ -0,0 +1,42 @@
+export const columns = [ 
+  { 
+    type: 'seq', 
+    width: 60, 
+    title: '搴忓彿', 
+  }, 
+  { 
+  field: 'materialTypeDesc', 
+  title: '绫诲瀷鎻忚堪', 
+  width:160, 
+}, 
+{ 
+  field: 'materialTypeCode', 
+  title: '绫诲瀷缂栫爜', 
+  width:160, 
+}, 
+{ 
+  field: 'creationTime', 
+  title: '鍒涘缓鏃堕棿', 
+  width:180, 
+}, 
+{ 
+  field: 'lastModificationTime', 
+  title: '鏈�鍚庝慨鏀规椂闂�', 
+  width:180, 
+}, 
+{ 
+  field: 'creatorName', 
+  title: '', 
+  width:160, 
+}, 
+{ 
+  field: 'lastModifierName', 
+  title: '', 
+  width:160, 
+}, 
+{ 
+  field: 'remark', 
+  title: '澶囨敞', 
+  width:160, 
+},  
+] 
diff --git a/HIAWms/hiawms_web/src/widgets/HIAWms/Views/Pages/WmsMaterialType/WmsMaterialType.module.scss b/HIAWms/hiawms_web/src/widgets/HIAWms/Views/Pages/WmsMaterialType/WmsMaterialType.module.scss
new file mode 100644
index 0000000..09721b0
--- /dev/null
+++ b/HIAWms/hiawms_web/src/widgets/HIAWms/Views/Pages/WmsMaterialType/WmsMaterialType.module.scss
@@ -0,0 +1,113 @@
+.wmsMaterialTypeContent { 
+  width: 100%; 
+  height: 100%; 
+ 
+  .wmsMaterialTypeList { 
+    width: 100%; 
+    height: calc(100% - 70px); 
+  } 
+  .headerContent { 
+    display: flex; 
+    justify-content: space-between; 
+    align-items: center; 
+    height: 43px; 
+  } 
+  .header { 
+    margin-bottom: 12px; 
+    display: flex; 
+    justify-content: flex-end; 
+    align-items: center; 
+  } 
+} 
+ 
+.tagBox { 
+  width: auto; 
+  min-width: 80px; 
+  height: 24px; 
+  background: #ffffff; 
+  border-radius: 19px 19px 19px 19px; 
+  opacity: 1; 
+  border: 1px dashed #bcc4cc; 
+  width: 50px; 
+  height: 20px; 
+  font-size: 14px; 
+  font-family: PingFang SC, PingFang SC; 
+  font-weight: 400; 
+  color: #5a84ff; 
+  display: flex; 
+  justify-content: center; 
+  align-items: center; 
+  // cursor: pointer; 
+} 
+ 
+.group { 
+  display: flex; 
+  justify-content: space-between; 
+  align-items: center; 
+} 
+ 
+.groupTable { 
+  width: 100%; 
+} 
+ 
+.overBox { 
+  width: 100%; 
+  height: calc(100% - 20px); 
+  overflow: auto; 
+  :global(.cs-collapse-item__header) { 
+    background-color: #f1f1f1; 
+    padding: 0 20px; 
+    height: 35px; 
+    font-size: 16px; 
+    font-family: PingFang SC, PingFang SC; 
+    font-weight: 500; 
+  } 
+  :global(.cs-collapse-item__content) { 
+    padding-bottom: 0px; 
+  } 
+} 
+.groupHeader { 
+  width: 100%; 
+  height: 30px; 
+  background: #ccc; 
+} 
+ 
+.hideBlock { 
+  display: none; 
+} 
+.queryForm { 
+  padding: 10px; 
+  background: #f5f7fa; 
+  margin-bottom: 0px; 
+  border-radius: 4px; 
+   
+  .el-form-item { 
+    margin-right: 20px; 
+    margin-bottom: 0; 
+     
+    // 缁熶竴杈撳叆妗嗗拰閫夋嫨妗嗙殑瀹藉害 
+    .el-input, .el-select { 
+      width: 200px; // 璁剧疆缁熶竴鐨勫搴� 
+    } 
+     
+    // 閫夋嫨妗嗗唴閮ㄨ緭鍏ユ鏍峰紡 
+    .el-select .el-input__wrapper { 
+      height: 32px; // 涓庤緭鍏ユ楂樺害涓�鑷� 
+      padding: 1px 11px; // 涓庤緭鍏ユ鍐呰竟璺濅竴鑷� 
+    } 
+     
+    // 鏃ユ湡閫夋嫨鍣ㄥ搴� 
+    .el-date-editor { 
+      width: 220px; 
+    } 
+  } 
+} 
+ 
+// 濡傛灉闇�瑕佹洿绮剧‘鐨勬帶鍒讹紝鍙互鍗曠嫭璁剧疆 
+.formItem { 
+  width: 200px; 
+   
+  &.el-input, &.el-select { 
+    width: 100%; 
+  } 
+} 
diff --git a/HIAWms/hiawms_web/src/widgets/HIAWms/Views/Pages/WmsMaterialType/WmsMaterialType.tsx b/HIAWms/hiawms_web/src/widgets/HIAWms/Views/Pages/WmsMaterialType/WmsMaterialType.tsx
new file mode 100644
index 0000000..900bc2e
--- /dev/null
+++ b/HIAWms/hiawms_web/src/widgets/HIAWms/Views/Pages/WmsMaterialType/WmsMaterialType.tsx
@@ -0,0 +1,376 @@
+import { computed, defineComponent, onMounted, reactive, ref } from 'vue' 
+import type { Ref } from 'vue' 
+import BaseTable from '@/components/Table/Table' 
+import styles from './WmsMaterialType.module.scss' 
+import { useWmsMaterialType } from '../../../Controllers/WmsMaterialType' 
+import IconButton from '@/components/IconButton/IconButton' 
+import WmsMaterialTypeDrawer from '../Dialog/WmsMaterialTypeDrawer/WmsMaterialTypeDrawer' 
+import WmsMaterialTypeQueryDrawer from '../Dialog/WmsMaterialTypeQueryDrawer/WmsMaterialTypeQueryDrawer' 
+import Search from '@/components/Search/Search' 
+import { columns } from './Config' 
+import TdButton from '@/components/TdButton/TdButton' 
+import { vPermission } from '@/libs/Permission/Permission' 
+import dayjs from 'dayjs' 
+import { 
+  getWmsEnumData 
+} from '@/widgets/WmsMaterialType/Models/Service/WmsMaterialTypeDrawer' 
+import { 
+  ElInput, 
+  ElSelect, 
+  ElOption, 
+  ElDatePicker, 
+  ElForm, 
+  ElFormItem, 
+} from 'element-plus' 
+import { injectModel } from '@/libs/Provider/Provider' 
+// 寮曞叆鍏叡閫夐」閰嶇疆  
+import {   
+  FILTER_MODE_OPTIONS_STRING 
+} from '@/components/DyFormForHighQuery/DyFormForHighQueryOptions';  
+ 
+interface RenderTableType { 
+  url?: string 
+  dataSource: Ref<any[]> 
+  isDrag?: boolean 
+  isChecked?: boolean 
+  isHidePagination?: boolean 
+  params?: Record<string, any> 
+  autoHeight?: boolean 
+} 
+ 
+export default defineComponent({ 
+  name: 'WmsMaterialType', 
+  directives: { 
+    permission: vPermission, 
+  }, 
+  setup(props, ctx) { 
+    const { 
+      dataSource, 
+      contextMenu, 
+      dialogConfig, 
+      dialogConfigForQuery, 
+      tableRef, 
+      current, 
+      search, 
+      sort, 
+      headers, 
+      onError, 
+      onSearch, 
+      onRowClick, 
+      onConfirmWmsMaterialType, 
+      onCheck, 
+      onAddWmsMaterialType, 
+      onAdvancedQuery, 
+      onExport, 
+      openDetail, 
+      onSuccess, 
+      onBeforeUpload, 
+    } = useWmsMaterialType(props, ctx) 
+ 
+    //瀹氫箟楂樼骇鏌ヨ寮曠敤 
+   const wmsMaterialTypeQueryDrawerRef=ref(null); 
+    // 鏂板鐨勬煡璇㈡潯浠� 
+    const queryForm = ref({ 
+      searchVal: '', 
+      str_searchFormInputAttrs:[], 
+      searchVal_FilterMode:'' 
+    }) 
+    //瀹氫箟鏁翠綋妯$硦鏌ヨ鐨勫垪鏁扮粍(娉ㄦ剰锛氬繀椤诲ぇ灏忓啓璺熷悗绔殑瀹炰綋绫诲睘鎬у悕涓�鑷达紝鍚﹀垯浼氬鑷村尮閰嶄笉瀵圭殑闂) 
+    const _searchFormInputAttrs = ref([ 
+     'MaterialTypeCode', 'MaterialTypeDesc', 
+    ]); 
+    const searchFormInputAttrs_Placeholder = ref('璇疯緭鍏ョ墿鏂欑被鍨嬬紪鍙�/鐗╂枡绫诲瀷鍚嶇О'); 
+     
+ 
+    // 鍔ㄦ�佹灇涓鹃�夐」 
+    const enumOptions = reactive({ 
+       
+    }) 
+ 
+    // 鑾峰彇鏋氫妇鏁版嵁 
+    const fetchEnumData = async () => { 
+      try { 
+         
+      } catch (error) { 
+        console.error('鑾峰彇鏋氫妇鏁版嵁澶辫触:', error) 
+      } 
+    } 
+ 
+    // 瀹氫箟鍝嶅簲寮忔煡璇㈡暟鎹�  
+    const _curHighQueryData = ref({ searchVal: '',str_searchFormInputAttrs:[],searchVal_FilterMode:'' });   
+    // 缁勪欢鎸傝浇鏃惰幏鍙栨灇涓炬暟鎹�  
+    onMounted(() => {  
+      fetchEnumData()  
+      queryForm.value.searchVal_FilterMode = FILTER_MODE_OPTIONS_STRING[0]?.value || '';  
+      _curHighQueryData.value.searchVal_FilterMode = queryForm.value.searchVal_FilterMode;   
+      _curHighQueryData.value.str_searchFormInputAttrs = _searchFormInputAttrs.value;  
+    })  
+ 
+    // 鏂扮増鐨勬煡璇㈡柟娉曪紙涓婚〉闈腑鐨勬寜閽�愭煡璇€�戯級 
+    const handleQueryForMain = async () => { 
+      _curHighQueryData.value.searchVal = queryForm.value.searchVal; 
+      _curHighQueryData.value.searchVal_FilterMode = queryForm.value.searchVal_FilterMode;  
+      _curHighQueryData.value.str_searchFormInputAttrs = _searchFormInputAttrs.value; 
+      tableRef.value.getList(_curHighQueryData.value) 
+    } 
+    // 鏂扮増鐨勬煡璇㈡柟娉曪紙楂樼骇鏌ヨ涓殑鎸夐挳銆愭煡璇€�戯級 
+    const handleQuery = async (extraParams = {}) => { 
+      let filteredData = commonGetHighQueryForm(extraParams); 
+      commonSaveCurHighQueryData(filteredData); 
+      tableRef.value.getList(filteredData) 
+    } 
+    // 鏂扮増鐨勬煡璇㈤噸缃� 
+    const resetQuery = () => { 
+      queryForm.value.searchVal = '' 
+      queryForm.value.searchVal_FilterMode = FILTER_MODE_OPTIONS_STRING[0]?.value || ''; 
+      queryForm.value.str_searchFormInputAttrs=_searchFormInputAttrs.value; 
+    } 
+     //鏂扮増鐨勫鍑烘柟娉� 
+     const handleExport=()=>{ 
+      onExport(_curHighQueryData.value); 
+    } 
+    // 鏂扮増鐨勬煡璇㈠脊鍑烘鍏抽棴鏂规硶 
+    const closeQuery = (extraParams={}) => { 
+      let filteredData = commonGetHighQueryForm(extraParams); 
+      console.log("closeQuery鏂规硶"); 
+      console.log(filteredData); 
+      commonSaveCurHighQueryData(filteredData); 
+    } 
+    //淇濆瓨鏌ヨ鍊� 
+    const commonSaveCurHighQueryData=(filteredData={})=>{ 
+      _curHighQueryData.value = { ..._curHighQueryData.value, ...filteredData }; 
+      _curHighQueryData.value.searchVal = queryForm.value.searchVal 
+      _curHighQueryData.value.searchVal_FilterMode = queryForm.value.searchVal_FilterMode  
+      _curHighQueryData.value.str_searchFormInputAttrs =_searchFormInputAttrs.value; 
+    } 
+     //鑾峰彇楂樼骇鏌ヨ寮瑰嚭妗嗙殑鏌ヨ鍊� 
+     const commonGetHighQueryForm=(extraParams={})=>{ 
+      // 杩囨护鎺� undefined 鐨勫�� 
+      let filteredData = Object.assign( 
+        {}, 
+        ...Object.entries(extraParams).map(([key, value]) => 
+          value !== undefined ? { [key]: value } : {} 
+        ) 
+      ) 
+      //缁勫悎妯$硦鏌ヨ 
+      filteredData.searchVal = queryForm.value.searchVal 
+      filteredData.searchVal_FilterMode = queryForm.value.searchVal_FilterMode  
+      filteredData.str_searchFormInputAttrs =_searchFormInputAttrs.value; 
+      return filteredData; 
+    } 
+    
+ 
+    /** 
+     * @returns 琛ㄦ牸 
+     */ 
+    const RenderBaseTable = (props: RenderTableType) => { 
+      const { 
+        url, 
+        dataSource, 
+        isDrag, 
+        isChecked, 
+        isHidePagination, 
+        params, 
+        autoHeight, 
+      } = props 
+ 
+      return ( 
+        <div 
+          class={{ 
+            [styles.wmsMaterialTypeList]: true, 
+          }} 
+        > 
+          <BaseTable 
+            ref={tableRef} 
+            url={url} 
+            sortUrlTpl="/api/v1/HIAWms/wmsMaterialType/{id}/adjustsort/{sort}" 
+            v-model:dataSource={dataSource.value} 
+            columns={columns} 
+            contextMenu={contextMenu} 
+            params={params} 
+            isDrag={isDrag} 
+            isChecked={isChecked} 
+            autoHeight={autoHeight} 
+            onCheck={onCheck} 
+            onRowClick={onRowClick} 
+            isHidePagination={isHidePagination} 
+            pageSize={20} 
+            v-slots={{ 
+              creationTime: ({ row }: any) => { 
+ return ( 
+   <div>  
+     {row.creationTime != null 
+     ? dayjs(row.creationTime).format('YYYY-MM-DD HH:mm:ss') 
+      : '-'} 
+   </div>  
+  ) 
+},
+lastModificationTime: ({ row }: any) => { 
+ return ( 
+   <div>  
+     {row.lastModificationTime != null 
+     ? dayjs(row.lastModificationTime).format('YYYY-MM-DD HH:mm:ss') 
+      : '-'} 
+   </div>  
+  ) 
+},
+isDeleted: ({ row }: any) => { 
+ return ( 
+   <div>  
+     {row.isDeleted != null ? (row.isDeleted ? '鏄�' : '鍚�') : '-'} 
+   </div>  
+  ) 
+},
+deletionTime: ({ row }: any) => { 
+ return ( 
+   <div>  
+     {row.deletionTime != null 
+     ? dayjs(row.deletionTime).format('YYYY-MM-DD HH:mm:ss') 
+      : '-'} 
+   </div>  
+  ) 
+},
+isDisabled: ({ row }: any) => { 
+ return ( 
+   <div>  
+     {row.isDisabled != null ? (row.isDisabled ? '鏄�' : '鍚�') : '-'} 
+   </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.wmsMaterialTypeContent}> 
+          {/* 娣诲姞/缂栬緫 */} 
+          <WmsMaterialTypeDrawer 
+            v-model={dialogConfig.visible} 
+            title={dialogConfig.title} 
+            row={current.value} 
+            sort={sort.value} 
+            onConfirm={onConfirmWmsMaterialType} 
+          /> 
+          {/* 楂樼骇鏌ヨ */} 
+          <WmsMaterialTypeQueryDrawer 
+            ref="wmsMaterialTypeQueryDrawerRef" 
+            v-model={dialogConfigForQuery.visible} 
+            title={dialogConfigForQuery.title} 
+            row={current.value} 
+            sort={sort.value} 
+            onConfirmQuery={handleQuery} 
+            onRestQuery={resetQuery} 
+            onClose={closeQuery} 
+          /> 
+ 
+          <div class={styles.headerContent}> 
+            <div class={styles.header}> 
+              <IconButton 
+                v-permission="wmsMaterialType-add" 
+                icon="add-p" 
+                onClick={onAddWmsMaterialType} 
+                type="primary" 
+              > 
+                娣诲姞 
+              </IconButton> 
+              <el-divider direction="vertical" /> 
+ 
+              <el-upload 
+                v-permission="wmsMaterialType-import" 
+                name="file" 
+                accept=".xlsx,.xls,.csv" 
+                show-file-list={false} 
+                onError={onError} 
+                onSuccess={onSuccess} 
+                before-upload={onBeforeUpload} 
+                headers={headers.value} 
+                action="/api/v1/HIAWms/wmsMaterialType/import" 
+              > 
+                <IconButton icon="in">瀵煎叆</IconButton> 
+              </el-upload> 
+ 
+              <IconButton 
+                v-permission="wmsMaterialType-output" 
+                icon="out" 
+                onClick={handleExport} 
+              > 
+                瀵煎嚭 
+              </IconButton> 
+            </div> 
+            <ElFormItem style={{ marginTop: '15px' }}> 
+              <ElFormItem label="鍏抽敭瀛�"> 
+                 <el-tooltip 
+                  class="box-item" 
+                  effect="dark" 
+                  content={searchFormInputAttrs_Placeholder.value} 
+                  placement="top-start" 
+                > 
+                <ElInput 
+                  v-model={queryForm.value.searchVal} 
+                  placeholder={searchFormInputAttrs_Placeholder.value} 
+                  clearable 
+                  class={styles.formItem} 
+                /> 
+                </el-tooltip> 
+              </ElFormItem> 
+              <ElFormItem label="" style="width:100px;">  
+                   <ElSelect 
+                                v-model={queryForm.value.searchVal_FilterMode} 
+                                placeholder="璇烽�夋嫨" 
+                                class={styles.formItem} 
+                              > 
+                                {FILTER_MODE_OPTIONS_STRING.map((option) => ( 
+                                  <ElOption 
+                                    key={option.value} 
+                                    label={option.label} 
+                                    value={option.value} 
+                                  /> 
+                                ))} 
+                              </ElSelect> 
+              </ElFormItem>  
+              <IconButton type="primary" icon="search" onClick={handleQueryForMain}> 
+                鏌ヨ 
+              </IconButton> 
+              {/* <IconButton style="" icon="refresh" onClick={resetQuery}> 
+                閲嶇疆 
+              </IconButton> */} 
+              <IconButton 
+                v-permission="wmsMaterialType-add" 
+                icon="search" 
+                onClick={onAdvancedQuery} 
+                type="primary" 
+              > 
+                楂樼骇鏌ヨ 
+              </IconButton> 
+            </ElFormItem> 
+          </div> 
+ 
+          <RenderBaseTable 
+            url="/api/v1/HIAWms/wmsMaterialType/page" 
+            dataSource={dataSource} 
+            isChecked={true} 
+            isDrag={true} 
+          /> 
+        </div> 
+      ) 
+    } 
+  }, 
+}) 
diff --git a/HIAWms/hiawms_web/src/widgets/HIAWms/Views/config/WmsMaterialType.json b/HIAWms/hiawms_web/src/widgets/HIAWms/Views/config/WmsMaterialType.json
new file mode 100644
index 0000000..56d6092
--- /dev/null
+++ b/HIAWms/hiawms_web/src/widgets/HIAWms/Views/config/WmsMaterialType.json
@@ -0,0 +1,3 @@
+{ 
+  "name": "WmsMaterialType" 
+} 
diff --git a/HIAWms/hiawms_web/src/widgets/HIAWms/enum.ts b/HIAWms/hiawms_web/src/widgets/HIAWms/enum.ts
index c268a5b..3b6a2da 100644
--- a/HIAWms/hiawms_web/src/widgets/HIAWms/enum.ts
+++ b/HIAWms/hiawms_web/src/widgets/HIAWms/enum.ts
@@ -12,4 +12,9 @@
   'wmsMaterial-add': '鍒楄〃-娣诲姞',
   'wmsMaterial-import': '鍒楄〃-瀵煎叆',
   'wmsMaterial-output': '鍒楄〃-杈撳嚭',
+
+  'wmsMaterialType-list': '鍒楄〃-鍒楄〃',
+  'wmsMaterialType-add': '鍒楄〃-娣诲姞',
+  'wmsMaterialType-import': '鍒楄〃-瀵煎叆',
+  'wmsMaterialType-output': '鍒楄〃-杈撳嚭',
 }
diff --git a/HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsMaterial/ExportWmsMaterialModel.cs b/HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsMaterial/ExportWmsMaterialModel.cs
deleted file mode 100644
index b551de7..0000000
--- a/HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsMaterial/ExportWmsMaterialModel.cs
+++ /dev/null
@@ -1,100 +0,0 @@
-锘縰sing CMS.Plugin.HIAWms.Domain.Shared.Enums;
-using System;
-using System.Collections.Generic;
-using System.ComponentModel;
-using System.Linq;
-using System.Text;
-using System.Threading.Tasks;
-
-namespace CMS.Plugin.HIAWms.Application.Contracts.Dtos.WmsMaterial
-{
-    /// <summary>
-    /// 瀵煎嚭瀹炰綋绫�
-    /// </summary>
-    public class ExportWmsMaterialModel
-    {
-        /// <summary>
-        /// 鐗╂枡缂栫爜锛堝敮涓�鏍囪瘑锛�
-        /// </summary>
-        [Description("鐗╂枡缂栫爜锛堝敮涓�鏍囪瘑锛�")]
-        public string MaterialNo { get; set; }
-
-        /// <summary>
-        /// 鐗╂枡鍚嶇О
-        /// </summary>
-        [Description("鐗╂枡鍚嶇О")]
-        public string MaterialName { get; set; }
-
-        /// <summary>
-        /// 閲囪喘绫诲瀷锛堟灇涓惧�硷級
-        /// </summary>
-        [Description("閲囪喘绫诲瀷锛堟灇涓惧�硷級")]
-        public string PurchaseType { get; set; }
-
-        /// <summary>
-        /// 鐗╂枡绫诲瀷锛堟灇涓惧�硷級
-        /// </summary>
-        [Description("鐗╂枡绫诲瀷锛堟灇涓惧�硷級")]
-        public string MaterialType { get; set; }
-
-        /// <summary>
-        /// 涓诲崟浣嶏紙濡傦細kg銆乵銆佷釜锛�
-        /// </summary>
-        [Description("涓诲崟浣嶏紙濡傦細kg銆乵銆佷釜锛�")]
-        public string PrimaryUnit { get; set; }
-
-        /// <summary>
-        /// 瑙勬牸/鏍囧噯锛堝锛欸B/T 8163-2018锛�
-        /// </summary>
-        [Description("瑙勬牸/鏍囧噯锛堝锛欸B/T 8163-2018锛�")]
-        public string Standard { get; set; }
-
-        /// <summary>
-        /// 澶栧緞锛堝崟浣嶏細mm锛�
-        /// </summary>
-        [Description("澶栧緞锛堝崟浣嶏細mm锛�")]
-        public decimal OuterDiameter { get; set; }
-
-        /// <summary>
-        /// 澹佸帤锛堝崟浣嶏細mm锛�
-        /// </summary>
-        [Description("澹佸帤锛堝崟浣嶏細mm锛�")]
-        public decimal WallThickness { get; set; }
-
-        /// <summary>
-        /// 鏉愯川锛堝锛�304涓嶉攬閽級
-        /// </summary>
-        [Description("鏉愯川锛堝锛�304涓嶉攬閽級")]
-        public string MaterialQuality { get; set; }
-
-        /// <summary>
-        /// 闀垮害锛堝崟浣嶏細m锛�
-        /// </summary>
-        [Description("闀垮害锛堝崟浣嶏細m锛�")]
-        public decimal Length { get; set; }
-
-        /// <summary>
-        /// 鏄惁涓轰富鏀锛坱rue: 涓绘敮绠�, false: 闈炰富鏀锛�
-        /// </summary>
-        [Description("鏄惁涓轰富鏀锛坱rue: 涓绘敮绠�, false: 闈炰富鏀锛�")]
-        public string IsMainBranch { get; set; }
-
-        /// <summary>
-        /// 鐢熶骇宸ュ巶
-        /// </summary>
-        [Description("鐢熶骇宸ュ巶")]
-        public string Factory { get; set; }
-
-        /// <summary>
-        /// 璇佷功缂栧彿锛堝锛氬帇鍔涘鍣ㄨ璇侊級
-        /// </summary>
-        [Description("璇佷功缂栧彿锛堝锛氬帇鍔涘鍣ㄨ璇侊級")]
-        public string Certification { get; set; }
-
-        /// <summary>
-        /// 澶囨敞
-        /// </summary>
-        [Description("澶囨敞")]
-        public virtual string Remark { get; set; }
-    }
-}
diff --git a/HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsMaterial/GetWmsMaterialInput.cs b/HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsMaterial/GetWmsMaterialInput.cs
index 9b58a79..24b4a4a 100644
--- a/HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsMaterial/GetWmsMaterialInput.cs
+++ b/HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsMaterial/GetWmsMaterialInput.cs
@@ -87,17 +87,27 @@
         /// <summary>
         /// 鐗╂枡绫诲瀷锛堟灇涓惧�硷級
         /// </summary>
-        public MaterialTypeEnum?  MaterialType { get; set; }
+        public string?  MaterialTypeCode { get; set; }
 
         /// <summary>
         /// 鐗╂枡绫诲瀷锛堟灇涓惧�硷級-鏌ヨ鍏崇郴杩愮畻绗� 
         /// </summary>
-        public SearchFilterModeEnum MaterialType_FilterMode { get; set; }= SearchFilterModeEnum.绮惧噯鏌ヨ;
+        public SearchFilterModeEnum MaterialType_FilterMode { get; set; }= SearchFilterModeEnum.妯$硦鏌ヨ;
 
-        /// <summary>
-        /// 涓诲崟浣嶏紙濡傦細kg銆乵銆佷釜锛�
-        /// </summary>
-        public string PrimaryUnit { get; set; }
+    /// <summary>
+    /// 鐗╂枡绫诲瀷锛堟灇涓惧�硷級
+    /// </summary>
+    public string? MaterialTypeDesc { get; set; }
+
+    /// <summary>
+    /// 鐗╂枡绫诲瀷锛堟灇涓惧�硷級-鏌ヨ鍏崇郴杩愮畻绗� 
+    /// </summary>
+    public SearchFilterModeEnum MaterialTypeDesc_FilterMode { get; set; } = SearchFilterModeEnum.妯$硦鏌ヨ;
+
+    /// <summary>
+    /// 涓诲崟浣嶏紙濡傦細kg銆乵銆佷釜锛�
+    /// </summary>
+    public string PrimaryUnit { get; set; }
 
         /// <summary>
         /// 涓诲崟浣嶏紙濡傦細kg銆乵銆佷釜锛�-鏌ヨ鍏崇郴杩愮畻绗� 
diff --git a/HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsMaterial/WmsMaterialCreateOrUpdateDtoBase.cs b/HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsMaterial/WmsMaterialCreateOrUpdateDtoBase.cs
index 407c538..69982a3 100644
--- a/HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsMaterial/WmsMaterialCreateOrUpdateDtoBase.cs
+++ b/HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsMaterial/WmsMaterialCreateOrUpdateDtoBase.cs
@@ -32,7 +32,7 @@
         /// <summary>
         /// 鐗╂枡绫诲瀷锛堟灇涓惧�硷級
         /// </summary>
-        public MaterialTypeEnum MaterialType { get; set; }
+        public string MaterialTypeCode { get; set; }
 
         /// <summary>
         /// 涓诲崟浣嶏紙濡傦細kg銆乵銆佷釜锛�
diff --git a/HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsMaterial/WmsMaterialDto.cs b/HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsMaterial/WmsMaterialDto.cs
index 46a5588..f6dab7c 100644
--- a/HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsMaterial/WmsMaterialDto.cs
+++ b/HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsMaterial/WmsMaterialDto.cs
@@ -45,18 +45,13 @@
         /// <summary>
         /// 鐗╂枡绫诲瀷锛堟灇涓惧�硷級
         /// </summary>
-        public MaterialTypeEnum MaterialType { get; set; }
+        public string MaterialTypeCode { get; set; }
 
         /// <summary>
         /// 鐗╂枡绫诲瀷锛堟灇涓惧�硷級
         /// </summary>
-        public string MaterialTypeDesc
-        { 
-            get 
-            { 
-                return GetEnumDescriptionUtil.GetEnumDescription(MaterialType); 
-            } 
-        } 
+        public string MaterialTypeDesc { get; set; }
+        
         /// <summary>
         /// 涓诲崟浣嶏紙濡傦細kg銆乵銆佷釜锛�
         /// </summary>
diff --git a/HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsMaterial/WmsMaterialExportModel.cs b/HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsMaterial/WmsMaterialExportModel.cs
index 8e75976..1d56406 100644
--- a/HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsMaterial/WmsMaterialExportModel.cs
+++ b/HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsMaterial/WmsMaterialExportModel.cs
@@ -37,8 +37,14 @@
     /// <summary>
     /// 鐗╂枡绫诲瀷锛堟灇涓惧�硷級
     /// </summary>
-    [ExcelColumn(Name = "鐗╂枡绫诲瀷锛堟灇涓惧�硷級", Width = 25)]
-    public MaterialTypeEnum MaterialType { get; set; }
+    [ExcelColumn(Name = "鐗╂枡绫诲瀷", Width = 25)]
+    public string MaterialTypeCode { get; set; }
+
+    /// <summary>
+    /// 鐗╂枡绫诲瀷锛堟灇涓惧�硷級
+    /// </summary>
+    [ExcelColumn(Name = "鐗╂枡绫诲瀷", Width = 25)]
+    public string MaterialTypeDesc { get; set; }
 
     /// <summary>
     /// 涓诲崟浣嶏紙濡傦細kg銆乵銆佷釜锛�
diff --git a/HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsMaterialType/GetWmsMaterialTypeInput.cs b/HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsMaterialType/GetWmsMaterialTypeInput.cs
new file mode 100644
index 0000000..006adca
--- /dev/null
+++ b/HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsMaterialType/GetWmsMaterialTypeInput.cs
@@ -0,0 +1,232 @@
+using CMS.Plugin.HIAWms.Domain.Shared.Enums; 
+using CmsQueryExtensions.Extension; 
+using Volo.Abp.Application.Dtos; 
+ 
+namespace CMS.Plugin.HIAWms.Application.Contracts.Dtos.WmsMaterialType; 
+ 
+/// <summary> 
+/// 鐗╂枡l绫诲瀷淇℃伅鏌ヨ鍙傛暟 
+/// </summary> 
+public class GetWmsMaterialTypeInput : ExtensiblePagedAndSortedResultRequestDto 
+{ 
+ 
+    #region 鍏抽敭瀛楁煡璇� 
+ 
+    /// <summary> 
+    /// 鍏抽敭瀛楁ā绯婃煡璇紙娉ㄦ剰鏄皬鍐欙紒锛� 
+    /// </summary> 
+    public string searchVal { get; set; } 
+ 
+    /// <summary> 
+    /// 閫氱敤鏌ヨ閰嶇疆 (1:妯$硦鏌ヨ , 2:绮惧噯鏌ヨ)锛堟敞鎰忔槸灏忓啓锛侊級 
+    /// </summary> 
+    public SearchFilterModeEnum searchVal_FilterMode { get; set; } = SearchFilterModeEnum.妯$硦鏌ヨ; 
+ 
+    /// <summary> 
+    /// 瀛愭悳绱㈢粍浠朵紶閫掔殑閫氱敤鏌ヨ閰嶇疆鐨勫睘鎬у悕锛堟敞鎰忔槸灏忓啓锛侊級 
+    /// </summary> 
+    [NoAutoQuery] 
+    public string str_searchFormInputAttrs { get; set; } 
+    /// <summary> 
+    /// 瀛愭悳绱㈢粍浠朵紶閫掔殑閫氱敤鏌ヨ閰嶇疆鐨勫睘鎬у悕锛堟敞鎰忔槸灏忓啓锛侊級 
+    /// </summary> 
+    public List<string> searchFormInputAttrs 
+    { 
+        get 
+        { 
+            if (!string.IsNullOrEmpty(str_searchFormInputAttrs)) 
+            { 
+                return str_searchFormInputAttrs.Split(',').ToList(); 
+            } 
+            return new List<string>(); 
+        } 
+    } 
+ 
+    #endregion 
+ 
+            /// <summary>
+        /// 绫诲瀷鎻忚堪
+        /// </summary>
+        public string MaterialTypeDesc { get; set; }
+
+        /// <summary>
+        /// 绫诲瀷鎻忚堪-鏌ヨ鍏崇郴杩愮畻绗� 
+        /// </summary>
+        public SearchFilterModeEnum MaterialTypeDesc_FilterMode { get; set; }= SearchFilterModeEnum.妯$硦鏌ヨ;
+
+        /// <summary>
+        /// 绫诲瀷缂栫爜
+        /// </summary>
+        public string MaterialTypeCode { get; set; }
+
+        /// <summary>
+        /// 绫诲瀷缂栫爜-鏌ヨ鍏崇郴杩愮畻绗� 
+        /// </summary>
+        public SearchFilterModeEnum MaterialTypeCode_FilterMode { get; set; }= SearchFilterModeEnum.妯$硦鏌ヨ;
+
+        /// <summary>
+        /// 鍒涘缓鏃堕棿
+        /// </summary>
+        //琛ㄧず鏄� 楂樼骇鏌ヨ鑼冨洿鏌ヨ鐗规��
+        [HighSearchRangeAttribute]
+        public string CreationTime { get; set; }
+
+
+        /// <summary>
+        /// 鍒涘缓浜篒D
+        /// </summary>
+        public string CreatorId { get; set; }
+
+        /// <summary>
+        /// 鍒涘缓浜篒D-鏌ヨ鍏崇郴杩愮畻绗� 
+        /// </summary>
+        public SearchFilterModeEnum CreatorId_FilterMode { get; set; }= SearchFilterModeEnum.妯$硦鏌ヨ;
+
+        /// <summary>
+        /// 鏈�鍚庝慨鏀规椂闂�
+        /// </summary>
+        //琛ㄧず鏄� 楂樼骇鏌ヨ鑼冨洿鏌ヨ鐗规��
+        [HighSearchRangeAttribute]
+        public string LastModificationTime { get; set; }
+
+
+        /// <summary>
+        /// 鏈�鍚庝慨鏀逛汉ID
+        /// </summary>
+        public string LastModifierId { get; set; }
+
+        /// <summary>
+        /// 鏈�鍚庝慨鏀逛汉ID-鏌ヨ鍏崇郴杩愮畻绗� 
+        /// </summary>
+        public SearchFilterModeEnum LastModifierId_FilterMode { get; set; }= SearchFilterModeEnum.妯$硦鏌ヨ;
+
+        /// <summary>
+        /// 鏄惁宸插垹闄�
+        /// </summary>
+        public bool?  IsDeleted { get; set; }
+
+        /// <summary>
+        /// 鏄惁宸插垹闄�-鏌ヨ鍏崇郴杩愮畻绗� 
+        /// </summary>
+        public SearchFilterModeEnum IsDeleted_FilterMode { get; set; }= SearchFilterModeEnum.绮惧噯鏌ヨ;
+
+        /// <summary>
+        /// 鍒犻櫎浜篒D
+        /// </summary>
+        public string DeleterId { get; set; }
+
+        /// <summary>
+        /// 鍒犻櫎浜篒D-鏌ヨ鍏崇郴杩愮畻绗� 
+        /// </summary>
+        public SearchFilterModeEnum DeleterId_FilterMode { get; set; }= SearchFilterModeEnum.妯$硦鏌ヨ;
+
+        /// <summary>
+        /// 鍒犻櫎鏃堕棿
+        /// </summary>
+        //琛ㄧず鏄� 楂樼骇鏌ヨ鑼冨洿鏌ヨ鐗规��
+        [HighSearchRangeAttribute]
+        public string DeletionTime { get; set; }
+
+
+        /// <summary>
+        /// 
+        /// </summary>
+        public string CreatorName { get; set; }
+
+        /// <summary>
+        /// -鏌ヨ鍏崇郴杩愮畻绗� 
+        /// </summary>
+        public SearchFilterModeEnum CreatorName_FilterMode { get; set; }= SearchFilterModeEnum.妯$硦鏌ヨ;
+
+        /// <summary>
+        /// 
+        /// </summary>
+        public string LastModifierName { get; set; }
+
+        /// <summary>
+        /// -鏌ヨ鍏崇郴杩愮畻绗� 
+        /// </summary>
+        public SearchFilterModeEnum LastModifierName_FilterMode { get; set; }= SearchFilterModeEnum.妯$硦鏌ヨ;
+
+        /// <summary>
+        /// 
+        /// </summary>
+        public string OperationRemark { get; set; }
+
+        /// <summary>
+        /// -鏌ヨ鍏崇郴杩愮畻绗� 
+        /// </summary>
+        public SearchFilterModeEnum OperationRemark_FilterMode { get; set; }= SearchFilterModeEnum.妯$硦鏌ヨ;
+
+        /// <summary>
+        /// 
+        /// </summary>
+        public string DeleteRemark { get; set; }
+
+        /// <summary>
+        /// -鏌ヨ鍏崇郴杩愮畻绗� 
+        /// </summary>
+        public SearchFilterModeEnum DeleteRemark_FilterMode { get; set; }= SearchFilterModeEnum.妯$硦鏌ヨ;
+
+        /// <summary>
+        /// 
+        /// </summary>
+        public int?  Sort { get; set; }
+
+        /// <summary>
+        /// -鏌ヨ鍏崇郴杩愮畻绗� 
+        /// </summary>
+        public SearchFilterModeEnum Sort_FilterMode { get; set; }= SearchFilterModeEnum.绮惧噯鏌ヨ;
+
+        /// <summary>
+        /// 澶囨敞
+        /// </summary>
+        public string Remark { get; set; }
+
+        /// <summary>
+        /// 澶囨敞-鏌ヨ鍏崇郴杩愮畻绗� 
+        /// </summary>
+        public SearchFilterModeEnum Remark_FilterMode { get; set; }= SearchFilterModeEnum.妯$硦鏌ヨ;
+
+        /// <summary>
+        /// 
+        /// </summary>
+        public bool?  IsDisabled { get; set; }
+
+        /// <summary>
+        /// -鏌ヨ鍏崇郴杩愮畻绗� 
+        /// </summary>
+        public SearchFilterModeEnum IsDisabled_FilterMode { get; set; }= SearchFilterModeEnum.绮惧噯鏌ヨ;
+
+        /// <summary>
+        /// 
+        /// </summary>
+        public string ExtraField1 { get; set; }
+
+        /// <summary>
+        /// -鏌ヨ鍏崇郴杩愮畻绗� 
+        /// </summary>
+        public SearchFilterModeEnum ExtraField1_FilterMode { get; set; }= SearchFilterModeEnum.妯$硦鏌ヨ;
+
+        /// <summary>
+        /// 
+        /// </summary>
+        public string ExtraField2 { get; set; }
+
+        /// <summary>
+        /// -鏌ヨ鍏崇郴杩愮畻绗� 
+        /// </summary>
+        public SearchFilterModeEnum ExtraField2_FilterMode { get; set; }= SearchFilterModeEnum.妯$硦鏌ヨ;
+
+        /// <summary>
+        /// 
+        /// </summary>
+        public string ExtraField3 { get; set; }
+
+        /// <summary>
+        /// -鏌ヨ鍏崇郴杩愮畻绗� 
+        /// </summary>
+        public SearchFilterModeEnum ExtraField3_FilterMode { get; set; }= SearchFilterModeEnum.妯$硦鏌ヨ;
+
+ 
+} 
diff --git a/HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsMaterialType/WmsMaterialTypeCreateDto.cs b/HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsMaterialType/WmsMaterialTypeCreateDto.cs
new file mode 100644
index 0000000..42875f4
--- /dev/null
+++ b/HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsMaterialType/WmsMaterialTypeCreateDto.cs
@@ -0,0 +1,22 @@
+namespace CMS.Plugin.HIAWms.Application.Contracts.Dtos.WmsMaterialType; 
+ 
+/// <summary> 
+/// 鐗╂枡l绫诲瀷淇℃伅鍒涘缓鍙傛暟瀵硅薄 
+/// </summary> 
+public class WmsMaterialTypeCreateDto : WmsMaterialTypeCreateOrUpdateDtoBase 
+{ 
+    /// <summary> 
+    /// 鎺掑簭 
+    /// </summary> 
+    public virtual int? Sort { get; set; } 
+ 
+    /// <summary> 
+    /// 鏄惁绂佺敤 
+    /// </summary> 
+    public bool? IsDisabled { get; set; } = false; 
+ 
+    /// <summary> 
+    /// 鍒涘缓浜� 
+    /// </summary> 
+    public string CreatorName { get; set; } 
+} 
diff --git a/HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsMaterialType/WmsMaterialTypeCreateOrUpdateDtoBase.cs b/HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsMaterialType/WmsMaterialTypeCreateOrUpdateDtoBase.cs
new file mode 100644
index 0000000..47afc60
--- /dev/null
+++ b/HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsMaterialType/WmsMaterialTypeCreateOrUpdateDtoBase.cs
@@ -0,0 +1,85 @@
+using CMS.Plugin.HIAWms.Domain.Shared.Enums; 
+using System; 
+using Volo.Abp.Application.Dtos; 
+ 
+namespace CMS.Plugin.HIAWms.Application.Contracts.Dtos.WmsMaterialType; 
+ 
+/// <summary> 
+/// 鐗╂枡l绫诲瀷淇℃伅鍒涘缓鎴栨洿鏂板熀绫� 
+/// </summary> 
+public abstract class WmsMaterialTypeCreateOrUpdateDtoBase : ExtensibleEntityDto 
+{ 
+            /// <summary>
+        /// 绫诲瀷鎻忚堪
+        /// </summary>
+        public string MaterialTypeDesc { get; set; }
+
+        /// <summary>
+        /// 绫诲瀷缂栫爜
+        /// </summary>
+        public string MaterialTypeCode { get; set; }
+
+        /// <summary>
+        /// 鍒涘缓浜篒D
+        /// </summary>
+        public string? CreatorId { get; set; }
+
+        /// <summary>
+        /// 鏈�鍚庝慨鏀逛汉ID
+        /// </summary>
+        public string? LastModifierId { get; set; }
+
+        /// <summary>
+        /// 鍒犻櫎鏃堕棿
+        /// </summary>
+        public DateTime? DeletionTime { get; set; }
+
+        /// <summary>
+        /// 
+        /// </summary>
+        public string? OperationRemark { get; set; }
+
+        /// <summary>
+        /// 
+        /// </summary>
+        public string? DeleteRemark { get; set; }
+
+        /// <summary>
+        /// 
+        /// </summary>
+        public int Sort { get; set; }
+
+        /// <summary>
+        /// 澶囨敞
+        /// </summary>
+        public string? Remark { get; set; }
+
+        /// <summary>
+        /// 
+        /// </summary>
+        public bool? IsDisabled { get; set; }
+
+        /// <summary>
+        /// 
+        /// </summary>
+        public string? ExtraField1 { get; set; }
+
+        /// <summary>
+        /// 
+        /// </summary>
+        public string? ExtraField2 { get; set; }
+
+        /// <summary>
+        /// 
+        /// </summary>
+        public string? ExtraField3 { get; set; }
+
+ 
+ 
+    /// <summary> 
+    /// Initializes a new instance of the <see cref="WmsMaterialTypeCreateOrUpdateDtoBase"/> class. 
+    /// </summary> 
+    public WmsMaterialTypeCreateOrUpdateDtoBase() : base(false) 
+    { 
+    } 
+} 
diff --git a/HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsMaterialType/WmsMaterialTypeDto.cs b/HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsMaterialType/WmsMaterialTypeDto.cs
new file mode 100644
index 0000000..19c9b85
--- /dev/null
+++ b/HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsMaterialType/WmsMaterialTypeDto.cs
@@ -0,0 +1,136 @@
+using CMS.Plugin.HIAWms.Domain.Shared.Enums; 
+using CmsQueryExtensions; 
+using Volo.Abp.Application.Dtos; 
+using Volo.Abp.Data; 
+using Volo.Abp.Domain.Entities; 
+ 
+ 
+namespace CMS.Plugin.HIAWms.Application.Contracts.Dtos.WmsMaterialType; 
+ 
+/// <summary> 
+/// 鐗╂枡l绫诲瀷淇℃伅鏁版嵁鍙傛暟瀵硅薄 
+/// </summary> 
+public  class WmsMaterialTypeDto:  ExtensibleEntityDto<Guid>, IHasConcurrencyStamp 
+{ 
+            /// <summary>
+        /// 绫诲瀷鎻忚堪
+        /// </summary>
+        public string MaterialTypeDesc { get; set; }
+
+        /// <summary>
+        /// 绫诲瀷缂栫爜
+        /// </summary>
+        public string MaterialTypeCode { get; set; }
+
+        /// <summary>
+        /// 
+        /// </summary>
+        public ExtraPropertyDictionary? ExtraProperties { get; set; }
+
+        /// <summary>
+        /// 
+        /// </summary>
+        public string? ConcurrencyStamp { get; set; }
+
+        /// <summary>
+        /// 鍒涘缓鏃堕棿
+        /// </summary>
+        public DateTime CreationTime { get; set; }
+
+        /// <summary>
+        /// 鍒涘缓浜篒D
+        /// </summary>
+        public string? CreatorId { get; set; }
+
+        /// <summary>
+        /// 鏈�鍚庝慨鏀规椂闂�
+        /// </summary>
+        public DateTime? LastModificationTime { get; set; }
+
+        /// <summary>
+        /// 鏈�鍚庝慨鏀逛汉ID
+        /// </summary>
+        public string? LastModifierId { get; set; }
+
+        /// <summary>
+        /// 鏄惁宸插垹闄�
+        /// </summary>
+        public bool IsDeleted { get; set; }
+
+        /// <summary>
+        /// 鍒犻櫎浜篒D
+        /// </summary>
+        public string? DeleterId { get; set; }
+
+        /// <summary>
+        /// 鍒犻櫎鏃堕棿
+        /// </summary>
+        public DateTime? DeletionTime { get; set; }
+
+        /// <summary>
+        /// 
+        /// </summary>
+        public string? CreatorName { get; set; }
+
+        /// <summary>
+        /// 
+        /// </summary>
+        public string? LastModifierName { get; set; }
+
+        /// <summary>
+        /// 
+        /// </summary>
+        public string? OperationRemark { get; set; }
+
+        /// <summary>
+        /// 
+        /// </summary>
+        public string? DeleteRemark { get; set; }
+
+        /// <summary>
+        /// 
+        /// </summary>
+        public int Sort { get; set; }
+
+        /// <summary>
+        /// 澶囨敞
+        /// </summary>
+        public string? Remark { get; set; }
+
+        /// <summary>
+        /// 
+        /// </summary>
+        public bool? IsDisabled { get; set; }
+
+        /// <summary>
+        /// 
+        /// </summary>
+        public string? ExtraField1 { get; set; }
+
+        /// <summary>
+        /// 
+        /// </summary>
+        public string? ExtraField2 { get; set; }
+
+        /// <summary>
+        /// 
+        /// </summary>
+        public string? ExtraField3 { get; set; }
+
+ 
+ 
+    /// <summary> 
+    /// Gets the export data. 
+    /// </summary> 
+    /// <returns></returns> 
+    public Dictionary<string, object> GetExportData() 
+    { 
+        var exportData = new Dictionary<string, object>(); 
+        foreach (var property in this.GetType().GetProperties()) 
+        { 
+            exportData.Add(property.Name, property.GetValue(this)); 
+        } 
+ 
+        return exportData; 
+    } 
+} 
diff --git a/HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsMaterialType/WmsMaterialTypeExportModel.cs b/HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsMaterialType/WmsMaterialTypeExportModel.cs
new file mode 100644
index 0000000..70c9b5f
--- /dev/null
+++ b/HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsMaterialType/WmsMaterialTypeExportModel.cs
@@ -0,0 +1,67 @@
+using MiniExcelLibs.Attributes; 
+using System.ComponentModel.DataAnnotations; 
+using System; 
+using System.ComponentModel; 
+using CMS.Plugin.HIAWms.Domain.Shared.Enums; 
+namespace CMS.Plugin.HIAWms.Application.Contracts.Dtos.WmsMaterialType; 
+ 
+/// <summary> 
+/// 鐗╂枡l绫诲瀷淇℃伅瀵煎嚭妯″瀷 
+/// </summary> 
+public  class WmsMaterialTypeExportModel 
+{ 
+            /// <summary>
+        /// 绫诲瀷鎻忚堪
+        /// </summary>
+        [ExcelColumn(Name = "绫诲瀷鎻忚堪", Width = 25)]
+        public string MaterialTypeDesc { get; set; }
+
+        /// <summary>
+        /// 绫诲瀷缂栫爜
+        /// </summary>
+        [ExcelColumn(Name = "绫诲瀷缂栫爜", Width = 25)]
+        public string MaterialTypeCode { get; set; }
+
+        /// <summary>
+        /// 鍒涘缓鏃堕棿
+        /// </summary>
+        [ExcelColumn(Name = "鍒涘缓鏃堕棿", Width = 25)]
+        public DateTime CreationTime { get; set; }
+
+        /// <summary>
+        /// 鏈�鍚庝慨鏀规椂闂�
+        /// </summary>
+        [ExcelColumn(Name = "鏈�鍚庝慨鏀规椂闂�", Width = 25)]
+        public DateTime LastModificationTime { get; set; }
+
+        /// <summary>
+        /// 
+        /// </summary>
+        [ExcelColumn(Name = "", Width = 25)]
+        public string CreatorName { get; set; }
+
+        /// <summary>
+        /// 
+        /// </summary>
+        [ExcelColumn(Name = "", Width = 25)]
+        public string LastModifierName { get; set; }
+
+        /// <summary>
+        /// 澶囨敞
+        /// </summary>
+        [ExcelColumn(Name = "澶囨敞", Width = 25)]
+        public string Remark { get; set; }
+
+ 
+ 
+    public Dictionary<string, object> GetExportData() 
+        { 
+            var exportData = new Dictionary<string, object>(); 
+            foreach (var property in this.GetType().GetProperties()) 
+            { 
+                exportData.Add(property.Name, property.GetValue(this)); 
+            } 
+ 
+            return exportData; 
+        } 
+} 
diff --git a/HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsMaterialType/WmsMaterialTypeUpdateDto.cs b/HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsMaterialType/WmsMaterialTypeUpdateDto.cs
new file mode 100644
index 0000000..b2a763c
--- /dev/null
+++ b/HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsMaterialType/WmsMaterialTypeUpdateDto.cs
@@ -0,0 +1,18 @@
+using Volo.Abp.Domain.Entities; 
+namespace CMS.Plugin.HIAWms.Application.Contracts.Dtos.WmsMaterialType; 
+ 
+/// <summary> 
+/// 鐗╂枡l绫诲瀷淇℃伅鏇存柊鍙傛暟瀵硅薄 
+/// </summary> 
+public class WmsMaterialTypeUpdateDto : WmsMaterialTypeCreateOrUpdateDtoBase, IHasConcurrencyStamp 
+{ 
+   /// <summary> 
+    /// 骞跺彂鎴� 
+    /// </summary> 
+    public string ConcurrencyStamp { get; set; } 
+ 
+    /// <summary> 
+    /// 淇敼浜� 
+    /// </summary> 
+    public string LastModifierName { get; set; } 
+} 
diff --git a/HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsMaterialType/WmsMaterialTypesImportModel.cs b/HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsMaterialType/WmsMaterialTypesImportModel.cs
new file mode 100644
index 0000000..89471c1
--- /dev/null
+++ b/HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsMaterialType/WmsMaterialTypesImportModel.cs
@@ -0,0 +1,33 @@
+ 
+namespace CMS.Plugin.HIAWms.Application.Contracts.Dtos.WmsMaterialType 
+{ 
+    /// <summary> 
+    /// 鐗╂枡l绫诲瀷淇℃伅瀵煎叆妯″瀷 
+    /// </summary> 
+    public class WmsMaterialTypesImportModel 
+    { 
+        private List<WmsMaterialTypeImportModel> _WmsMaterialTypes = new(); 
+ 
+        public List<WmsMaterialTypeImportModel> WmsMaterialTypes 
+        { 
+            get => _WmsMaterialTypes; 
+            set 
+            { 
+                _WmsMaterialTypes = value; 
+                var rowIndex = 2; 
+                _WmsMaterialTypes?.ForEach(x => x.RowIndex = rowIndex++); 
+            } 
+        } 
+ 
+        /// <summary> 
+        /// 鐗╂枡l绫诲瀷淇℃伅瀵煎叆妯″瀷 
+        /// </summary> 
+        public class WmsMaterialTypeImportModel : WmsMaterialTypeExportModel 
+        { 
+            /// <summary> 
+            /// 琛屽彿 
+            /// </summary> 
+            public int RowIndex { get; set; } 
+        } 
+    } 
+} 
diff --git a/HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsTask/QueryTaskTypeInput.cs b/HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsTask/QueryTaskTypeInput.cs
new file mode 100644
index 0000000..15b99a7
--- /dev/null
+++ b/HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsTask/QueryTaskTypeInput.cs
@@ -0,0 +1,17 @@
+锘縰sing CMS.Plugin.HIAWms.Domain.Shared.Enums;
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace CMS.Plugin.HIAWms.Application.Contracts.Dtos.WmsTask
+{
+    /// <summary>
+    /// 鏌ヨ浠诲姟鍏ュ弬
+    /// </summary>
+    public class QueryTaskTypeInput
+    {
+        public TaskTypeEnum TaskType { get; set; }
+    }
+}
diff --git a/HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Services/IWmsMaterialTypeAppService.cs b/HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Services/IWmsMaterialTypeAppService.cs
new file mode 100644
index 0000000..7e40c10
--- /dev/null
+++ b/HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Services/IWmsMaterialTypeAppService.cs
@@ -0,0 +1,85 @@
+using CMS.Plugin.HIAWms.Application.Contracts.Dtos.WmsMaterialType; 
+using Volo.Abp.Application.Services; 
+using CmsQueryExtensions.Entitys; 
+using System.Linq.Expressions; 
+using CMS.Plugin.HIAWms.Domain.WmsMaterialType; 
+ 
+namespace CMS.Plugin.HIAWms.Application.Contracts.Services; 
+ 
+/// <summary> 
+/// 鐗╂枡l绫诲瀷淇℃伅搴旂敤鏈嶅姟鎺ュ彛 
+/// </summary> 
+public interface IWmsMaterialTypeAppService : ICrudAppService<WmsMaterialTypeDto, Guid, GetWmsMaterialTypeInput, WmsMaterialTypeCreateDto, WmsMaterialTypeUpdateDto> 
+{ 
+    /// <summary> 
+    /// 鍏嬮殕鐗╂枡l绫诲瀷淇℃伅 
+    /// </summary> 
+    /// <param name="ids"></param> 
+    /// <returns></returns> 
+    Task<List<WmsMaterialTypeDto>> CloneAsync(IEnumerable<Guid> ids, MyCurrentUser myCurrentUser); 
+ 
+    /// <summary> 
+    /// 鍒犻櫎鐗╂枡l绫诲瀷淇℃伅 
+    /// </summary> 
+    /// <param name="ids"></param> 
+    /// <returns></returns> 
+    Task DeleteManyAsync(IEnumerable<Guid> ids, MyCurrentUser myCurrentUser); 
+ 
+    /// <summary> 
+    /// 鐗╃悊鍒犻櫎鐗╂枡l绫诲瀷淇℃伅 
+    /// </summary> 
+    /// <param name="id">涓婚敭ID</param> 
+    /// <param name="cancellationToken"></param> 
+    /// <returns></returns> 
+    Task DeletePermanentlyAsync(Guid id, MyCurrentUser myCurrentUser, CancellationToken cancellationToken = default); 
+ 
+ 
+    /// <summary> 
+    /// 鎵归噺鐗╃悊鍒犻櫎鐗╂枡l绫诲瀷淇℃伅锛堢洿鎺ュ垹闄わ紝涓嶈蒋鍒犻櫎锛� 
+    /// </summary> 
+    /// <param name="ids">瑕佸垹闄ょ殑涓婚敭ID鍒楄〃</param> 
+    /// <param name="cancellationToken"></param> 
+    /// <returns></returns> 
+    Task BatchDeletePermanentlyAsync(IEnumerable<Guid> ids, MyCurrentUser myCurrentUser, CancellationToken cancellationToken = default); 
+ 
+    /// <summary> 
+    /// 璋冩暣鎺掑簭鐗╂枡l绫诲瀷淇℃伅 
+    /// </summary> 
+    /// <param name="id"></param> 
+    /// <param name="sort"></param> 
+    /// <returns></returns> 
+    Task AdjustSortAsync(Guid id, int sort); 
+ 
+    /// <summary> 
+    /// 瀵煎叆鐗╂枡l绫诲瀷淇℃伅 
+    /// </summary> 
+    /// <param name="input"></param> 
+    /// <returns></returns> 
+    Task ImportAsync(WmsMaterialTypesImportModel input, MyCurrentUser myCurrentUser); 
+ 
+    /// <summary> 
+    /// 瀵煎嚭鐗╂枡l绫诲瀷淇℃伅 
+    /// </summary> 
+    /// <param name="input"></param> 
+    /// <returns></returns> 
+    Task<(Dictionary<string, object> Sheets, string FileName)> ExportAsync(GetWmsMaterialTypeInput input); 
+ 
+    /// <summary> 
+    /// 鏍规嵁鏉′欢鑾峰彇鐗╂枡l绫诲瀷淇℃伅鍒楄〃 
+    /// </summary> 
+    /// <param name="whereConditions"></param> 
+    /// <param name="cancellationToken"></param> 
+    /// <returns></returns> 
+    Task<List<WmsMaterialType>> GetListByFilterAsync(Expression<Func<WmsMaterialType, bool>> whereConditions, CancellationToken cancellationToken = default); 
+ 
+ 
+    /// <summary> 
+    ///  鏍规嵁鏉′欢鑾峰彇鍗曚釜鐗╂枡l绫诲瀷淇℃伅 
+    /// </summary> 
+    /// <param name="whereConditions"></param> 
+    /// <param name="isMultipleThrowException">鏄惁鏌ヨ鍑哄鏉″氨鎶ラ敊</param> 
+    /// <param name="cancellationToken"></param> 
+    /// <returns></returns> 
+    /// <exception cref="UserFriendlyException"></exception> 
+    Task<WmsMaterialType> GetSingleByFilterAsync(Expression<Func<WmsMaterialType, bool>> whereConditions, bool is鈥婱ultipleThrowException = false, CancellationToken cancellationToken = default); 
+} 
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 425e4c7..7f6670c 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
@@ -64,4 +64,11 @@
     /// <param name="input"></param>
     /// <returns></returns>
     Task ChangeTaskToPlaceAsync(ChangeTaskToPlaceInput input);
+
+    /// <summary>
+    /// 鑾峰彇闇�瑕佹墽琛岀殑鍫嗗灈鏈轰换鍔�
+    /// </summary>
+    /// <param name="input"></param>
+    /// <returns></returns>
+    Task<WmsTaskDto> GetToExecuteTaskAsync(QueryTaskTypeInput input);
 } 
diff --git a/HIAWms/server/src/CMS.Plugin.HIAWms.Application/Implements/WmsEnumAppService.cs b/HIAWms/server/src/CMS.Plugin.HIAWms.Application/Implements/WmsEnumAppService.cs
index 6b9e8d9..2e8431a 100644
--- a/HIAWms/server/src/CMS.Plugin.HIAWms.Application/Implements/WmsEnumAppService.cs
+++ b/HIAWms/server/src/CMS.Plugin.HIAWms.Application/Implements/WmsEnumAppService.cs
@@ -100,7 +100,7 @@
         public async Task<List<MaterialModelOutput>> GetMaterialModeListAsync()
         {
             var materialList = await _wmsMaterialRepository.GetMaterialListAsync(new WmsMaterial());
-            if (materialList == null || materialList.Count <= 0) return new List<MaterialModelOutput>(); ;
+            if (materialList == null || materialList.Count <= 0) return new List<MaterialModelOutput>();
 
             return materialList.Select(material => new MaterialModelOutput
             {
diff --git a/HIAWms/server/src/CMS.Plugin.HIAWms.Application/Implements/WmsMaterialAppService.cs b/HIAWms/server/src/CMS.Plugin.HIAWms.Application/Implements/WmsMaterialAppService.cs
index 012a139..ada2978 100644
--- a/HIAWms/server/src/CMS.Plugin.HIAWms.Application/Implements/WmsMaterialAppService.cs
+++ b/HIAWms/server/src/CMS.Plugin.HIAWms.Application/Implements/WmsMaterialAppService.cs
@@ -125,7 +125,7 @@
 
         wmsmaterial.MaterialName = input.MaterialName;
         wmsmaterial.PurchaseType = input.PurchaseType;
-        wmsmaterial.MaterialType = input.MaterialType;
+        wmsmaterial.MaterialTypeCode = input.MaterialTypeCode;
         wmsmaterial.PrimaryUnit = input.PrimaryUnit;
         wmsmaterial.Standard = input.Standard;
         wmsmaterial.OuterDiameter = input.OuterDiameter;
@@ -271,7 +271,7 @@
                         MaterialNo = wmsmaterial.MaterialNo,
                         MaterialName = wmsmaterial.MaterialName,
                         PurchaseType = wmsmaterial.PurchaseType,
-                        MaterialType = wmsmaterial.MaterialType,
+                        MaterialTypeCode = wmsmaterial.MaterialTypeCode,
                         PrimaryUnit = wmsmaterial.PrimaryUnit,
                         Standard = wmsmaterial.Standard,
                         OuterDiameter = wmsmaterial.OuterDiameter,
@@ -293,7 +293,7 @@
                         MaterialNo = wmsmaterial.MaterialNo,
                         MaterialName = wmsmaterial.MaterialName,
                         PurchaseType = wmsmaterial.PurchaseType,
-                        MaterialType = wmsmaterial.MaterialType,
+                        MaterialTypeCode = wmsmaterial.MaterialTypeCode,
                         PrimaryUnit = wmsmaterial.PrimaryUnit,
                         Standard = wmsmaterial.Standard,
                         OuterDiameter = wmsmaterial.OuterDiameter,
diff --git a/HIAWms/server/src/CMS.Plugin.HIAWms.Application/Implements/WmsMaterialTypeAppService.cs b/HIAWms/server/src/CMS.Plugin.HIAWms.Application/Implements/WmsMaterialTypeAppService.cs
new file mode 100644
index 0000000..9813bf7
--- /dev/null
+++ b/HIAWms/server/src/CMS.Plugin.HIAWms.Application/Implements/WmsMaterialTypeAppService.cs
@@ -0,0 +1,455 @@
+using CMS.Plugin.HIAWms.Application.Contracts.Dtos.WmsMaterialType; 
+using CMS.Plugin.HIAWms.Application.Contracts.Services; 
+using CMS.Plugin.HIAWms.Domain.Shared; 
+using CmsQueryExtensions; 
+using CMS.Plugin.HIAWms.Domain.WmsMaterialType; 
+using CmsQueryExtensions.Extension; 
+using System.Linq.Expressions; 
+using Volo.Abp; 
+using Volo.Abp.Application.Dtos; 
+using Volo.Abp.Data; 
+using Volo.Abp.ObjectExtending; 
+using Volo.Abp.ObjectMapping; 
+using CmsQueryExtensions.Entitys; 
+ 
+namespace CMS.Plugin.HIAWms.Application.Implements; 
+ 
+/// <summary> 
+/// 鐗╂枡l绫诲瀷淇℃伅搴旂敤鏈嶅姟 
+/// </summary> 
+public class WmsMaterialTypeAppService : CMSPluginAppService, IWmsMaterialTypeAppService 
+{ 
+    private readonly IWmsMaterialTypeRepository _WmsMaterialTypeRepository; 
+ 
+    /// <summary> 
+    /// Initializes a new instance of the <see cref="WmsMaterialTypeAppService"/> class. 
+    /// </summary> 
+    /// <param name="WmsMaterialTypeRepository">The task job repository.</param> 
+    public WmsMaterialTypeAppService(IWmsMaterialTypeRepository WmsMaterialTypeRepository) 
+    { 
+        _WmsMaterialTypeRepository = WmsMaterialTypeRepository; 
+    } 
+ 
+    /// <summary> 
+    /// 鑾峰彇鎸囧畾鐗╂枡l绫诲瀷淇℃伅 
+    /// </summary> 
+    /// <param name="id"></param> 
+    /// <returns></returns> 
+    public virtual async Task<WmsMaterialTypeDto> GetAsync(Guid id) 
+    { 
+        return ObjectMapper.Map<WmsMaterialType, WmsMaterialTypeDto>(await _WmsMaterialTypeRepository.GetAsync(id)); 
+    } 
+ 
+    /// <summary> 
+    /// 鍒嗛〉鑾峰彇鐗╂枡l绫诲瀷淇℃伅 
+    /// </summary> 
+    /// <param name="input"></param> 
+    /// <returns></returns> 
+    public virtual async Task<PagedResultDto<WmsMaterialTypeDto>> GetListAsync(GetWmsMaterialTypeInput input) 
+    { 
+        Check.NotNull(input, nameof(input)); 
+ 
+        if (input.Sorting.IsNullOrWhiteSpace()) 
+        { 
+            input.Sorting = nameof(WmsMaterialType.Sort); 
+        } 
+ 
+        #region 鍔ㄦ�佹瀯閫犳煡璇㈡潯浠�  
+ 
+        //鍔ㄦ�佹瀯閫犳煡璇㈡潯浠�  
+        var whereConditions = DynamicGetQueryParams(input); 
+ 
+        #endregion 
+ 
+        var count = await _WmsMaterialTypeRepository.GetCountAsync(whereConditions); 
+        var list = await _WmsMaterialTypeRepository.GetListAsync(whereConditions, input.Sorting, input.MaxResultCount, input.SkipCount); 
+ 
+        return new PagedResultDto<WmsMaterialTypeDto>(count, ObjectMapper.Map<List<WmsMaterialType>, List<WmsMaterialTypeDto>>(list)); 
+    } 
+ 
+    /// <summary>  
+    /// 鍔ㄦ�佹瀯閫犳煡璇㈡潯浠�  
+    /// </summary>  
+    /// <param name="input">杈撳叆鍙傛暟</param>  
+    /// <returns></returns>  
+    private FunReturnResultModel<Expression<Func<WmsMaterialType, bool>>> DynamicGetQueryParams(GetWmsMaterialTypeInput input) 
+    { 
+        //鍔ㄦ�佹瀯閫犳煡璇㈡潯浠�  
+        var whereConditions = WhereConditionsExtensions.GetWhereConditions<WmsMaterialType, GetWmsMaterialTypeInput>(input); 
+        if (!whereConditions.IsSuccess) 
+        { 
+            throw new Exception("鍔ㄦ�佹瀯閫犳煡璇㈡潯浠跺け璐�:" + whereConditions.ErrMsg); 
+        } 
+ 
+        //涔熷彲鍐嶆鑷畾涔夋瀯寤烘煡璇㈡潯浠�  
+        Expression<Func<WmsMaterialType, bool>> extendExpression = a => a.IsDeleted == false; 
+        // 浣跨敤 System.Linq.PredicateBuilder 鐨� And 
+        var pres = (System.Linq.Expressions.Expression<Func<WmsMaterialType, bool>>)(whereConditions.data); 
+        whereConditions.data = System.Linq.PredicateBuilder.And(pres, extendExpression); 
+ 
+        return whereConditions; 
+    } 
+ 
+    /// <summary> 
+    /// 鏂板缓鐗╂枡l绫诲瀷淇℃伅 
+    /// </summary> 
+    /// <param name="input"></param> 
+    /// <returns></returns> 
+    /// <exception cref="UserFriendlyException"></exception> 
+    public virtual async Task<WmsMaterialTypeDto> CreateAsync(WmsMaterialTypeCreateDto input) 
+    { 
+        await CheckCreateOrUpdateDtoAsync(input); 
+ 
+        var exist = await _WmsMaterialTypeRepository.NameExistAsync(input.MaterialTypeCode); 
+        if (exist) 
+        { 
+            throw new UserFriendlyException(L[CMSPluginDomainErrorCodes.NameAlreadyExists, input.MaterialTypeCode]); 
+        } 
+ 
+        var maxSort = await _WmsMaterialTypeRepository.GetMaxSortAsync(); 
+        var sort = input.Sort ?? maxSort; 
+ 
+        var insertObj = ObjectMapper.Map<WmsMaterialTypeCreateDto, WmsMaterialType>(input); 
+        insertObj.Sort = sort; 
+        input.MapExtraPropertiesTo(insertObj, MappingPropertyDefinitionChecks.None); 
+ 
+        insertObj.CreatorName = input.CreatorName;//鍒涘缓浜� 
+        await _WmsMaterialTypeRepository.InsertAsync(insertObj); 
+ 
+        //if (input.Sort.HasValue && insertObj.Sort != maxSort) 
+        //{ 
+        //    await AdjustSortAsync(insertObj.Id, insertObj.Sort); 
+        //} 
+ 
+        return ObjectMapper.Map<WmsMaterialType, WmsMaterialTypeDto>(insertObj); 
+    } 
+ 
+    /// <summary> 
+    /// 鏇存柊鐗╂枡l绫诲瀷淇℃伅 
+    /// </summary> 
+    /// <param name="id"></param> 
+    /// <param name="input"></param> 
+    /// <returns></returns> 
+    /// <exception cref="UserFriendlyException"></exception> 
+    public virtual async Task<WmsMaterialTypeDto> UpdateAsync(Guid id, WmsMaterialTypeUpdateDto input) 
+    { 
+        await CheckCreateOrUpdateDtoAsync(input); 
+ 
+        var updateObj = await _WmsMaterialTypeRepository.GetAsync(id); 
+        var exist = await _WmsMaterialTypeRepository.NameExistAsync(input.MaterialTypeCode, updateObj.Id); 
+        if (exist) 
+        { 
+            throw new UserFriendlyException(L[CMSPluginDomainErrorCodes.NameAlreadyExists, input.MaterialTypeCode]); 
+        } 
+ 
+        updateObj.SetConcurrencyStampIfNotNull(input.ConcurrencyStamp); 
+        input.MapExtraPropertiesTo(updateObj, MappingPropertyDefinitionChecks.None); 
+ 
+                updateObj.MaterialTypeDesc = input.MaterialTypeDesc;
+        updateObj.MaterialTypeCode = input.MaterialTypeCode;
+        updateObj.Remark = input.Remark;
+ 
+ 
+        updateObj.LastModifierName = input.LastModifierName;//淇敼浜� 
+ 
+        await _WmsMaterialTypeRepository.UpdateAsync(updateObj); 
+ 
+        return ObjectMapper.Map<WmsMaterialType, WmsMaterialTypeDto>(updateObj); 
+    } 
+ 
+    /// <summary> 
+    /// 鍏嬮殕鐗╂枡l绫诲瀷淇℃伅 
+    /// </summary> 
+    /// <param name="ids"></param> 
+    /// <returns></returns> 
+    public async Task<List<WmsMaterialTypeDto>> CloneAsync(IEnumerable<Guid> ids, MyCurrentUser myCurrentUser) 
+    { 
+        //var WmsMaterialTypes = new List<WmsMaterialType>(); 
+        //if (ids != null) 
+        //{ 
+        //    var sort = await _WmsMaterialTypeRepository.GetMaxSortAsync(); 
+        //    foreach (var id in ids) 
+        //    { 
+        //        var WmsMaterialType = await _WmsMaterialTypeRepository.FindAsync(id); 
+        //        if (WmsMaterialType != null) 
+        //        { 
+        //            var name = WmsMaterialType.Name + WmsMaterialTypeConsts.CloneTag; 
+        //            var notExist = false; 
+        //            while (!notExist) 
+        //            { 
+        //                var exist = await _WmsMaterialTypeRepository.NameExistAsync(name); 
+        //                if (exist || WmsMaterialTypes.Any(x => x.Name == name)) 
+        //                { 
+        //                    name += WmsMaterialTypeConsts.CloneTag; 
+        //                    continue; 
+        //                } 
+ 
+        //                notExist = true; 
+        //            } 
+ 
+        //            //WmsMaterialType = await _WmsMaterialTypeRepository.InsertAsync(WmsMaterialType.Clone(GuidGenerator.Create(), name, sort++)); 
+        //            WmsMaterialTypes.Add(WmsMaterialType); 
+        //        } 
+        //    } 
+        //} 
+ 
+        //return ObjectMapper.Map<List<WmsMaterialType>, List<WmsMaterialTypeDto>>(WmsMaterialTypes); 
+        return new List<WmsMaterialTypeDto>(); 
+    } 
+ 
+    /// <summary> 
+    /// 鍒犻櫎鍗曚釜鐗╂枡l绫诲瀷淇℃伅 
+    /// </summary> 
+    /// <param name="id"></param> 
+    /// <returns></returns> 
+    public virtual Task DeleteAsync(Guid id) 
+    { 
+        return _WmsMaterialTypeRepository.DeleteAsync(id); 
+    } 
+ 
+    /// <summary> 
+    /// 鍒犻櫎澶氫釜鐗╂枡l绫诲瀷淇℃伅 
+    /// </summary> 
+    /// <param name="ids"></param> 
+    /// <returns></returns> 
+    public async Task DeleteManyAsync(IEnumerable<Guid> ids, MyCurrentUser myCurrentUser) 
+    { 
+        foreach (var id in ids) 
+        { 
+            await DeleteAsync(id); 
+        } 
+    } 
+ 
+     /// <summary> 
+    /// 鐗╃悊鍒犻櫎鐗╂枡l绫诲瀷淇℃伅 
+    /// </summary> 
+    /// <param name="id">涓婚敭ID</param> 
+    /// <param name="cancellationToken"></param> 
+    /// <returns></returns> 
+    public virtual async Task DeletePermanentlyAsync(Guid id, MyCurrentUser myCurrentUser, CancellationToken cancellationToken = default) 
+    { 
+        _WmsMaterialTypeRepository.DeletePermanentlyAsync(id); 
+    } 
+ 
+    /// <summary> 
+    /// 鎵归噺鐗╃悊鍒犻櫎鐗╂枡l绫诲瀷淇℃伅锛堢洿鎺ュ垹闄わ紝涓嶈蒋鍒犻櫎锛� 
+    /// </summary> 
+    /// <param name="ids">瑕佸垹闄ょ殑涓婚敭ID鍒楄〃</param> 
+    /// <param name="cancellationToken"></param> 
+    /// <returns></returns> 
+    public virtual async Task BatchDeletePermanentlyAsync(IEnumerable<Guid> ids, MyCurrentUser myCurrentUser, CancellationToken cancellationToken = default) 
+    { 
+        _WmsMaterialTypeRepository.BatchDeletePermanentlyAsync(ids); 
+    } 
+ 
+    /// <summary> 
+    /// 璋冩暣鎺掑簭鐗╂枡l绫诲瀷淇℃伅 
+    /// </summary> 
+    /// <param name="id"></param> 
+    /// <param name="sort"></param> 
+    /// <returns></returns> 
+    public virtual async Task AdjustSortAsync(Guid id, int sort) 
+    { 
+        var list = await _WmsMaterialTypeRepository.GetListAsync(null, nameof(WmsMaterialType.Sort)); 
+        if (list != null && list.Any()) 
+        { 
+            var initSort = 1; 
+            list.ForEach(x => x.AdjustSort(initSort++)); 
+            var entity = list.FirstOrDefault(x => x.Id == id); 
+            if (entity != null) 
+            { 
+                if (sort == 1) 
+                { 
+                    list.Where(x => x.Id != id).ToList()?.ForEach(x => x.AdjustSort(x.Sort + 1)); 
+                } 
+                else if (entity.Sort > sort) 
+                { 
+                    list.Where(x => x.Id != id && x.Sort >= sort).ToList()?.ForEach(x => x.AdjustSort(x.Sort + 1)); 
+                    list.Where(x => x.Id != id && x.Sort < sort).ToList()?.ForEach(x => x.AdjustSort(x.Sort - 1)); 
+                } 
+                else if (entity.Sort < sort) 
+                { 
+                    list.Where(x => x.Id != id && x.Sort > sort).ToList()?.ForEach(x => x.AdjustSort(x.Sort + 1)); 
+                    list.Where(x => x.Id != id && x.Sort <= sort).ToList()?.ForEach(x => x.AdjustSort(x.Sort - 1)); 
+                } 
+ 
+                entity.AdjustSort(sort); 
+            } 
+        } 
+ 
+        await _WmsMaterialTypeRepository.UpdateManyAsync(list); 
+    } 
+ 
+    /// <summary> 
+    /// 瀵煎叆鐗╂枡l绫诲瀷淇℃伅 
+    /// </summary> 
+    /// <param name="input"></param> 
+    /// <returns></returns> 
+    /// <exception cref="UserFriendlyException"></exception> 
+    public async Task ImportAsync(WmsMaterialTypesImportModel input, MyCurrentUser myCurrentUser) 
+    { 
+        Check.NotNull(input, nameof(input)); 
+ 
+        var WmsMaterialTypeCreateDtos = new List<(int RowIndex, WmsMaterialTypeCreateDto Item)>(); 
+        var WmsMaterialTypeUpdateDtos = new List<(int RowIndex, Guid Id, WmsMaterialTypeUpdateDto Item)>(); 
+        var importItems = input.WmsMaterialTypes; 
+ 
+        if (importItems != null && importItems.Any()) 
+        { 
+            #region 瀵煎叆鏍¢獙 
+ 
+            // 鍒ゆ柇鍚嶇О鏄惁閲嶅锛屽苟杈撳嚭绗嚑琛岄噸澶� 
+            var duplicateWmsMaterialTypes = importItems.GroupBy(x => x.MaterialTypeCode).Where(x => x.Count() > 1).ToList(); 
+            if (duplicateWmsMaterialTypes?.Any() == true) 
+            { 
+                var duplicateWmsMaterialTypeMsgs = duplicateWmsMaterialTypes.Select(x => $"绗� {string.Join(",", x.Select(x => x.RowIndex))} 琛岋細{x.Key}  鍚嶇О閲嶅"); 
+                var errorMsg = $"瀵煎叆澶辫触锛侀厤缃紝 {string.Join(",", duplicateWmsMaterialTypeMsgs)}锛岀粓姝㈠鍏�"; 
+                throw new UserFriendlyException(errorMsg); 
+            } 
+ 
+            #endregion 
+ 
+            foreach (var impItem in importItems) 
+            { 
+                if (impItem.MaterialTypeCode.IsNullOrWhiteSpace()) 
+                { 
+                    continue; 
+                } 
+ 
+                if (impItem.MaterialTypeCode.IsNullOrWhiteSpace()) 
+                { 
+                    var errorMsg = $"瀵煎叆澶辫触锛侀厤缃紝绗瑊impItem.RowIndex}琛岋細WmsMaterialType鍚嶇О涓嶈兘涓虹┖"; 
+                    throw new UserFriendlyException(errorMsg); 
+                } 
+ 
+                var oldWmsMaterialType = await _WmsMaterialTypeRepository.FindByNameAsync(impItem.MaterialTypeCode); 
+                if (oldWmsMaterialType != null) 
+                { 
+                    var WmsMaterialTypeUpdateDto = new WmsMaterialTypeUpdateDto 
+                    { 
+                        MaterialTypeDesc = impItem.MaterialTypeDesc,
+MaterialTypeCode = impItem.MaterialTypeCode,
+Remark = impItem.Remark,
+ 
+                    }; 
+ 
+                    WmsMaterialTypeUpdateDtos.Add((impItem.RowIndex, oldWmsMaterialType.Id, WmsMaterialTypeUpdateDto)); 
+                } 
+                else 
+                { 
+                    var WmsMaterialTypeCreateDto = new WmsMaterialTypeCreateDto 
+                    { 
+                        MaterialTypeDesc = impItem.MaterialTypeDesc,
+MaterialTypeCode = impItem.MaterialTypeCode,
+Remark = impItem.Remark,
+ 
+                    }; 
+ 
+                    WmsMaterialTypeCreateDtos.Add((impItem.RowIndex, WmsMaterialTypeCreateDto)); 
+                } 
+            } 
+        } 
+ 
+        // 鏂板 
+        foreach (var WmsMaterialTypeDto in WmsMaterialTypeCreateDtos) 
+        { 
+            try 
+            { 
+                WmsMaterialTypeDto.Item.CreatorName = myCurrentUser.UserAccount;//鍒涘缓浜� 
+                await CreateAsync(WmsMaterialTypeDto.Item); 
+            } 
+            catch (Exception e) 
+            { 
+                var errorMsg = $"瀵煎叆澶辫触锛侀厤缃紝绗瑊WmsMaterialTypeDto.RowIndex}琛岋細{e.Message}锛岀粓姝㈠鍏�"; 
+                throw new UserFriendlyException(errorMsg); 
+            } 
+        } 
+ 
+        // 鏇存柊 
+        foreach (var WmsMaterialTypeDto in WmsMaterialTypeUpdateDtos) 
+        { 
+            try 
+            { 
+                WmsMaterialTypeDto.Item.LastModifierName = myCurrentUser.UserAccount;//淇敼浜� 
+                await UpdateAsync(WmsMaterialTypeDto.Id, WmsMaterialTypeDto.Item); 
+            } 
+            catch (Exception e) 
+            { 
+                var errorMsg = $"瀵煎叆澶辫触锛侀厤缃紝绗瑊WmsMaterialTypeDto.RowIndex}琛岋細{e.Message}锛岀粓姝㈠鍏�"; 
+                throw new UserFriendlyException(errorMsg); 
+            } 
+        } 
+    } 
+ 
+    /// <summary> 
+    /// 瀵煎嚭鐗╂枡l绫诲瀷淇℃伅 
+    /// </summary> 
+    /// <param name="input"></param> 
+    /// <returns></returns> 
+    public async Task<(Dictionary<string, object> Sheets, string FileName)> ExportAsync(GetWmsMaterialTypeInput input) 
+    { 
+        Check.NotNull(input, nameof(input)); 
+ 
+        if (input.Sorting.IsNullOrWhiteSpace()) 
+        { 
+            input.Sorting = nameof(WmsMaterialType.Sort); 
+        } 
+ 
+        #region 鍔ㄦ�佹瀯閫犳煡璇㈡潯浠�  
+ 
+        //鍔ㄦ�佹瀯閫犳煡璇㈡潯浠�  
+        var whereConditions = DynamicGetQueryParams(input); 
+ 
+        #endregion 
+ 
+ 
+        var list = await _WmsMaterialTypeRepository.GetListAsync(whereConditions, input.Sorting, input.MaxResultCount, input.SkipCount, includeDetails: true); 
+        var result = ObjectMapper.Map<List<WmsMaterialType>, List<WmsMaterialTypeDto>>(list); 
+ 
+        var sheets = new Dictionary<string, object> 
+        { 
+            ["閰嶇疆"] = ExportHelper.ConvertListToExportData(result), 
+        }; 
+ 
+        var fileName = "鐗╂枡绫诲瀷"; 
+        return (sheets, fileName); 
+    } 
+ 
+    /// <summary> 
+    /// 鏍¢獙鐗╂枡l绫诲瀷淇℃伅锛屽綋鏂板缓鎴栨洿鏂版椂 
+    /// </summary> 
+    /// <param name="input"></param> 
+    /// <returns></returns> 
+    protected Task CheckCreateOrUpdateDtoAsync(WmsMaterialTypeCreateOrUpdateDtoBase input) 
+    { 
+        Check.NotNull(input, nameof(input)); 
+                Check.NotNullOrWhiteSpace(input.MaterialTypeDesc, "绫诲瀷鎻忚堪", 128);
+        Check.NotNullOrWhiteSpace(input.MaterialTypeCode, "绫诲瀷缂栫爜", 64);
+ 
+        return Task.CompletedTask; 
+    } 
+ 
+     /// <summary> 
+    /// 鏍规嵁鏉′欢鑾峰彇鐗╂枡l绫诲瀷淇℃伅鍒楄〃 
+    /// </summary> 
+    /// <param name="whereConditions"></param> 
+    /// <param name="cancellationToken"></param> 
+    /// <returns></returns> 
+    public async Task<List<WmsMaterialType>> GetListByFilterAsync(Expression<Func<WmsMaterialType, bool>> whereConditions, CancellationToken cancellationToken = default) 
+    { 
+        return await _WmsMaterialTypeRepository.GetListByFilterAsync(whereConditions); 
+    } 
+ 
+    /// <summary> 
+    ///  鏍规嵁鏉′欢鑾峰彇鍗曚釜鐗╂枡l绫诲瀷淇℃伅 
+    /// </summary> 
+    /// <param name="whereConditions"></param> 
+    /// <param name="isMultipleThrowException">鏄惁鏌ヨ鍑哄鏉″氨鎶ラ敊</param> 
+    /// <param name="cancellationToken"></param> 
+    /// <returns></returns> 
+    /// <exception cref="UserFriendlyException"></exception> 
+    public async Task<WmsMaterialType> GetSingleByFilterAsync(Expression<Func<WmsMaterialType, bool>> whereConditions, bool is鈥婱ultipleThrowException = false, CancellationToken cancellationToken = default) 
+    { 
+        return await _WmsMaterialTypeRepository.GetSingleByFilterAsync(whereConditions, is鈥婱ultipleThrowException); 
+    } 
+} 
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 d09721c..7ede721 100644
--- a/HIAWms/server/src/CMS.Plugin.HIAWms.Application/Implements/WmsTaskAppService.cs
+++ b/HIAWms/server/src/CMS.Plugin.HIAWms.Application/Implements/WmsTaskAppService.cs
@@ -20,6 +20,8 @@
 using CMS.Plugin.HIAWms.Application.Contracts.Dtos.WmsInOutStockRecord;
 using Volo.Abp.Uow;
 using Microsoft.Extensions.DependencyInjection;
+using NPOI.SS.Formula.Functions;
+using System.Collections.Generic;
 
 namespace CMS.Plugin.HIAWms.Application.Implements;
 
@@ -738,4 +740,29 @@
 
         await wmsTaskRepository.UpdateAsync(task);
     }
+
+    /// <summary>
+    /// 鑾峰彇闇�瑕佹墽琛岀殑浠诲姟
+    /// </summary>
+    /// <param name="input"></param>
+    /// <returns></returns>
+    public async Task<WmsTaskDto> GetToExecuteTaskAsync(QueryTaskTypeInput input)
+    {
+        var queryInput = new GetWmsTaskInput
+        {
+            TaskStatus = WmsTaskStatus.WEIZHIXING,
+        };
+        var whereConditions = DynamicGetQueryParams(queryInput);
+
+        var NoStartTaskList = await wmsTaskRepository.GetTaskListAsync(whereConditions);
+        if(NoStartTaskList.Count<=0) return null;
+
+        var executeTask = NoStartTaskList.FirstOrDefault(x=>x.TaskType == input.TaskType);
+        if(executeTask == null)
+        {
+            return ObjectMapper.Map<WmsTask, WmsTaskDto>(NoStartTaskList.FirstOrDefault());
+        }
+
+        return ObjectMapper.Map<WmsTask, WmsTaskDto>(executeTask);
+    }
 }
diff --git a/HIAWms/server/src/CMS.Plugin.HIAWms.Application/MapperProfiles/WmsMaterialTypeAutoMapperProfile.cs b/HIAWms/server/src/CMS.Plugin.HIAWms.Application/MapperProfiles/WmsMaterialTypeAutoMapperProfile.cs
new file mode 100644
index 0000000..21a9ea9
--- /dev/null
+++ b/HIAWms/server/src/CMS.Plugin.HIAWms.Application/MapperProfiles/WmsMaterialTypeAutoMapperProfile.cs
@@ -0,0 +1,26 @@
+using AutoMapper; 
+using CMS.Plugin.HIAWms.Application.Contracts.Dtos.WmsMaterialType; 
+using CMS.Plugin.HIAWms.Domain.WmsMaterialType; 
+using Volo.Abp.ObjectExtending; 
+ 
+namespace CMS.Plugin.HIAWms.Application.MapperProfiles; 
+ 
+/// <summary> 
+/// 鐗╂枡l绫诲瀷淇℃伅AutoMapper閰嶇疆 
+/// </summary> 
+/// <seealso cref="AutoMapper.Profile" /> 
+public class WmsMaterialTypeAutoMapperProfile : Profile 
+{ 
+    /// <summary> 
+    /// Initializes a new instance of the <see cref="WmsMaterialTypeAutoMapperProfile"/> class. 
+    /// </summary> 
+    public WmsMaterialTypeAutoMapperProfile() 
+    { 
+        /* You can configure your AutoMapper mapping configuration here. 
+         * Alternatively, you can split your mapping configurations 
+         * into multiple profile classes for a better organization. */ 
+        CreateMap<WmsMaterialType, WmsMaterialTypeDto>(MemberList.None).MapExtraProperties(MappingPropertyDefinitionChecks.None); 
+        CreateMap<WmsMaterialTypeCreateDto, WmsMaterialType>(MemberList.None).MapExtraProperties(MappingPropertyDefinitionChecks.None); 
+        CreateMap<GetWmsMaterialTypeInput, WmsMaterialType>(MemberList.None).MapExtraProperties(MappingPropertyDefinitionChecks.None); 
+    } 
+} 
diff --git a/HIAWms/server/src/CMS.Plugin.HIAWms.Domain/MaterialType/WmsMaterialType.cs b/HIAWms/server/src/CMS.Plugin.HIAWms.Domain/MaterialType/WmsMaterialType.cs
new file mode 100644
index 0000000..50f49c3
--- /dev/null
+++ b/HIAWms/server/src/CMS.Plugin.HIAWms.Domain/MaterialType/WmsMaterialType.cs
@@ -0,0 +1,22 @@
+锘縰sing CMS.Plugin.MyExtension.Domain;
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace CMS.Plugin.HIAWms.Domain.MaterialType
+{
+    public class WmsMaterialType : MyFullAuditedAggregateRoot<Guid>
+    {
+        /// <summary>
+        /// 绫诲瀷鎻忚堪
+        /// </summary>
+        public string MaterialTypeDesc { get; set; }
+
+        /// <summary>
+        /// 绫诲瀷缂栫爜
+        /// </summary>
+        public string MaterialTypeCode { get; set; }
+    }
+}
diff --git a/HIAWms/server/src/CMS.Plugin.HIAWms.Domain/WmsMaterialType/IWmsMaterialTypeRepository.cs b/HIAWms/server/src/CMS.Plugin.HIAWms.Domain/WmsMaterialType/IWmsMaterialTypeRepository.cs
new file mode 100644
index 0000000..808eb8e
--- /dev/null
+++ b/HIAWms/server/src/CMS.Plugin.HIAWms.Domain/WmsMaterialType/IWmsMaterialTypeRepository.cs
@@ -0,0 +1,88 @@
+using CmsQueryExtensions.Extension; 
+using System.Linq.Expressions; 
+using Volo.Abp.Domain.Repositories; 
+ 
+namespace CMS.Plugin.HIAWms.Domain.WmsMaterialType; 
+ 
+/// <summary> 
+/// 鐗╂枡l绫诲瀷淇℃伅浠撳偍 
+/// </summary> 
+public interface IWmsMaterialTypeRepository : IBasicRepository<WmsMaterialType, Guid> 
+{ 
+    /// <summary> 
+    /// 鎸夌収鍚嶇О鏌ユ壘鐗╂枡l绫诲瀷淇℃伅 
+    /// </summary> 
+    /// <param name="name"></param> 
+    /// <param name="cancellationToken"></param> 
+    /// <returns></returns> 
+    Task<WmsMaterialType> FindByNameAsync(string name, CancellationToken cancellationToken = default); 
+ 
+    /// <summary> 
+    /// 楠岃瘉鍚嶇О鏄惁瀛樺湪鐗╂枡l绫诲瀷淇℃伅 
+    /// </summary> 
+    /// <param name="name"></param> 
+    /// <param name="id"></param> 
+    /// <returns></returns> 
+    Task<bool> NameExistAsync(string name, Guid? id = null); 
+ 
+    /// <summary> 
+    /// 鑾峰彇鏈�澶ф帓搴忕墿鏂檒绫诲瀷淇℃伅 
+    /// </summary> 
+    /// <returns></returns> 
+    Task<int> GetMaxSortAsync(); 
+ 
+    /// <summary> 
+    /// 鑾峰彇鍒嗛〉鍒楄〃鐗╂枡l绫诲瀷淇℃伅 
+    /// </summary> 
+    /// <param name="whereConditions"></param> 
+    /// <param name="sorting"></param> 
+    /// <param name="maxResultCount"></param> 
+    /// <param name="skipCount"></param> 
+    /// <param name="includeDetails"></param> 
+    /// <param name="cancellationToken"></param> 
+    /// <returns></returns> 
+    Task<List<WmsMaterialType>> GetListAsync(FunReturnResultModel<Expression<Func<WmsMaterialType, bool>>> whereConditions, string sorting = null, int maxResultCount = int.MaxValue, int skipCount = 0, bool includeDetails = false, CancellationToken cancellationToken = default); 
+ 
+    /// <summary> 
+    /// 鑾峰彇鎬绘暟鐗╂枡l绫诲瀷淇℃伅 
+    /// </summary> 
+    /// <param name="whereConditions"></param> 
+    /// <param name="cancellationToken"></param> 
+    /// <returns></returns> 
+    Task<long> GetCountAsync(FunReturnResultModel<Expression<Func<WmsMaterialType, bool>>> whereConditions, CancellationToken cancellationToken = default); 
+ 
+    /// <summary> 
+    /// 鐗╃悊鍒犻櫎鐗╂枡l绫诲瀷淇℃伅 
+    /// </summary> 
+    /// <param name="id">涓婚敭ID</param> 
+    /// <param name="cancellationToken"></param> 
+    /// <returns></returns> 
+    Task DeletePermanentlyAsync(Guid id, CancellationToken cancellationToken = default); 
+ 
+ 
+    /// <summary> 
+    /// 鎵归噺鐗╃悊鍒犻櫎鐗╂枡l绫诲瀷淇℃伅锛堢洿鎺ュ垹闄わ紝涓嶈蒋鍒犻櫎锛� 
+    /// </summary> 
+    /// <param name="ids">瑕佸垹闄ょ殑涓婚敭ID鍒楄〃</param> 
+    /// <param name="cancellationToken"></param> 
+    /// <returns></returns> 
+    Task BatchDeletePermanentlyAsync(IEnumerable<Guid> ids, CancellationToken cancellationToken = default); 
+ 
+    /// <summary> 
+    /// 鏍规嵁鏉′欢鑾峰彇鐗╂枡l绫诲瀷淇℃伅鍒楄〃 
+    /// </summary> 
+    /// <param name="whereConditions"></param> 
+    /// <param name="cancellationToken"></param> 
+    /// <returns></returns> 
+    Task<List<WmsMaterialType>> GetListByFilterAsync(Expression<Func<WmsMaterialType, bool>> whereConditions, CancellationToken cancellationToken = default); 
+ 
+    /// <summary> 
+    ///  鏍规嵁鏉′欢鑾峰彇鍗曚釜鐗╂枡l绫诲瀷淇℃伅 
+    /// </summary> 
+    /// <param name="whereConditions"></param> 
+    /// <param name="isMultipleThrowException">鏄惁鏌ヨ鍑哄鏉″氨鎶ラ敊</param> 
+    /// <param name="cancellationToken"></param> 
+    /// <returns></returns> 
+    /// <exception cref="UserFriendlyException"></exception> 
+    Task<WmsMaterialType> GetSingleByFilterAsync(Expression<Func<WmsMaterialType, bool>> whereConditions, bool is鈥婱ultipleThrowException = false, CancellationToken cancellationToken = default); 
+} 
diff --git a/HIAWms/server/src/CMS.Plugin.HIAWms.Domain/WmsMaterials/WmsMaterial.cs b/HIAWms/server/src/CMS.Plugin.HIAWms.Domain/WmsMaterials/WmsMaterial.cs
index e23824b..9cb7320 100644
--- a/HIAWms/server/src/CMS.Plugin.HIAWms.Domain/WmsMaterials/WmsMaterial.cs
+++ b/HIAWms/server/src/CMS.Plugin.HIAWms.Domain/WmsMaterials/WmsMaterial.cs
@@ -35,7 +35,12 @@
         /// <summary>
         /// 鐗╂枡绫诲瀷锛堟灇涓惧�硷級
         /// </summary>
-        public MaterialTypeEnum MaterialType { get; set; }
+        public string  MaterialTypeCode { get; set; }
+
+        /// <summary>
+        /// 鐗╂枡绫诲瀷
+        /// </summary>
+        public string MaterialTypeDesc { get; set; }
 
         /// <summary>
         /// 涓诲崟浣嶏紙濡傦細kg銆乵銆佷釜锛�
diff --git a/HIAWms/server/src/CMS.Plugin.HIAWms.Domain/WmsTask/IWmsTaskRepository.cs b/HIAWms/server/src/CMS.Plugin.HIAWms.Domain/WmsTask/IWmsTaskRepository.cs
index f9e79e7..e508541 100644
--- a/HIAWms/server/src/CMS.Plugin.HIAWms.Domain/WmsTask/IWmsTaskRepository.cs
+++ b/HIAWms/server/src/CMS.Plugin.HIAWms.Domain/WmsTask/IWmsTaskRepository.cs
@@ -58,4 +58,14 @@
     /// <param name="cancellationToken"></param>
     /// <returns></returns>
     Task<WmsTask> QueryWmsTaskByDataIdentifierAasync(string dataIdentifier, CancellationToken cancellationToken = default);
+
+    /// <summary>
+    /// 鑾峰彇浠诲姟鍒楄〃
+    /// </summary>
+    /// <param name="whereConditions"></param>
+    /// <param name="sorting"></param>
+    /// <param name="includeDetails"></param>
+    /// <param name="cancellationToken"></param>
+    /// <returns></returns>
+    Task<List<WmsTask>> GetTaskListAsync(FunReturnResultModel<Expression<Func<WmsTask, bool>>> whereConditions, string sorting = null, bool includeDetails = false, CancellationToken cancellationToken = default);
 } 
diff --git a/HIAWms/server/src/CMS.Plugin.HIAWms.EntityFrameworkCore/Extensions/CMSPluginEfCoreExtensions.WmsMaterial.cs b/HIAWms/server/src/CMS.Plugin.HIAWms.EntityFrameworkCore/Extensions/CMSPluginEfCoreExtensions.WmsMaterial.cs
index 9c0d47b..08631c1 100644
--- a/HIAWms/server/src/CMS.Plugin.HIAWms.EntityFrameworkCore/Extensions/CMSPluginEfCoreExtensions.WmsMaterial.cs
+++ b/HIAWms/server/src/CMS.Plugin.HIAWms.EntityFrameworkCore/Extensions/CMSPluginEfCoreExtensions.WmsMaterial.cs
@@ -63,8 +63,13 @@
             b.Property(x => x.PurchaseType)
                 .HasComment("閲囪喘绫诲瀷锛堟灇涓惧�硷級");
 
-            b.Property(x => x.MaterialType)
-                .HasComment("鐗╂枡绫诲瀷锛堟灇涓惧�硷級");
+            b.Property(x => x.MaterialTypeCode)
+                .HasMaxLength(20)
+                .HasComment("鐗╂枡绫诲瀷缂栫爜");
+
+            b.Property(x => x.MaterialTypeDesc)
+                .HasMaxLength(20)
+                .HasComment("鐗╂枡绫诲瀷");
 
             b.Property(x => x.PrimaryUnit)
                 .HasMaxLength(20)
@@ -140,7 +145,7 @@
             b.HasIndex(x => x.MaterialNo).IsUnique(); // 鐗╂枡缂栫爜鍞竴绱㈠紩
             b.HasIndex(x => x.MaterialName);           // 鐗╂枡鍚嶇О鏅�氱储寮�
             b.HasIndex(x => x.PurchaseType);           // 閲囪喘绫诲瀷绱㈠紩锛堝闇�鏌ヨ杩囨护锛�
-            b.HasIndex(x => x.MaterialType);           // 鐗╂枡绫诲瀷绱㈠紩锛堝闇�鏌ヨ杩囨护锛�
+            b.HasIndex(x => x.MaterialTypeCode);           // 鐗╂枡绫诲瀷绱㈠紩锛堝闇�鏌ヨ杩囨护锛�
 
             b.ApplyObjectExtensionMappings();
         });
diff --git a/HIAWms/server/src/CMS.Plugin.HIAWms.EntityFrameworkCore/Extensions/CMSPluginEfCoreExtensions.WmsMaterialType.cs b/HIAWms/server/src/CMS.Plugin.HIAWms.EntityFrameworkCore/Extensions/CMSPluginEfCoreExtensions.WmsMaterialType.cs
new file mode 100644
index 0000000..8c7f612
--- /dev/null
+++ b/HIAWms/server/src/CMS.Plugin.HIAWms.EntityFrameworkCore/Extensions/CMSPluginEfCoreExtensions.WmsMaterialType.cs
@@ -0,0 +1,100 @@
+锘縰sing CMS.Plugin.HIAWms.Domain;
+using CMS.Plugin.HIAWms.Domain.MaterialType;
+using CMS.Plugin.HIAWms.Domain.WmsMaterials;
+using Microsoft.EntityFrameworkCore;
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using Volo.Abp;
+using Volo.Abp.EntityFrameworkCore.Modeling;
+
+namespace CMS.Plugin.HIAWms.EntityFrameworkCore.Extensions
+{
+    public static partial class CMSPluginEfCoreExtensions
+    {
+        /// <summary>
+        /// Includes the details.
+        /// </summary>
+        /// <param name="queryable">The queryable.</param>
+        /// <param name="include">if set to <c>true</c> [include].</param>
+        /// <returns></returns>
+        public static IQueryable<WmsMaterialType> IncludeDetails(this IQueryable<WmsMaterialType> queryable, bool include = true)
+        {
+            if (!include)
+            {
+                return queryable;
+            }
+
+            return queryable;
+        }
+
+        /// <summary>
+        /// ConfigureWmsMaterialType
+        /// </summary>
+        /// <param name="builder"></param>
+        public static void ConfigureWmsMaterialType(this ModelBuilder builder)
+        {
+            Check.NotNull(builder, nameof(builder));
+
+            builder.Entity<WmsMaterialType>(b =>
+            {
+                // 閰嶇疆琛ㄥ悕鍜屾敞閲�
+                b.ToTable((CMSPluginDbProperties.DbTablePrefix + "_WmsMaterialType").ToLower(),
+                         CMSPluginDbProperties.DbSchema)
+                 .HasComment("鐗╂枡绫诲瀷琛�");
+
+                b.ConfigureByConvention();
+
+                // 涓婚敭閰嶇疆锛圡yFullAuditedAggregateRoot<Guid> 宸查粯璁ゅ寘鍚� Id锛�
+                b.HasKey(x => x.Id);
+
+                // 瀛楁閰嶇疆
+                b.Property(x => x.MaterialTypeCode)
+                    .HasMaxLength(64)
+                    .IsRequired()
+                    .HasComment("绫诲瀷缂栫爜");
+
+                b.Property(x => x.MaterialTypeDesc)
+                    .HasMaxLength(128)
+                    .IsRequired()
+                    .HasComment("绫诲瀷鎻忚堪");
+
+                // 鍏朵粬閫氱敤瀛楁锛堢户鎵胯嚜MyFullAuditedAggregateRoot<Guid>锛�
+
+                b.Property(x => x.Remark)
+                   .HasMaxLength(50)
+                   .HasComment("澶囨敞");
+
+                b.Property(x => x.CreationTime)
+                    .HasComment("鍒涘缓鏃堕棿");
+
+                b.Property(x => x.CreatorId)
+                    .HasComment("鍒涘缓浜篒D");
+
+                b.Property(x => x.LastModificationTime)
+                    .HasComment("鏈�鍚庝慨鏀规椂闂�");
+
+                b.Property(x => x.LastModifierId)
+                    .HasComment("鏈�鍚庝慨鏀逛汉ID");
+
+                b.Property(x => x.IsDeleted)
+                    .HasDefaultValue(false)
+                    .HasComment("鏄惁宸插垹闄�");
+
+                b.Property(x => x.DeleterId)
+                    .HasComment("鍒犻櫎浜篒D");
+
+                b.Property(x => x.DeletionTime)
+                    .HasComment("鍒犻櫎鏃堕棿");
+
+                // 绱㈠紩閰嶇疆
+                b.HasIndex(x => x.MaterialTypeCode).IsUnique(); // 绫诲瀷缂栫爜鍞竴绱㈠紩
+                b.HasIndex(x => x.MaterialTypeDesc);           // 绫诲瀷鎻忚堪鏅�氱储寮�
+
+                b.ApplyObjectExtensionMappings();
+            });
+        }
+    }
+}
diff --git a/HIAWms/server/src/CMS.Plugin.HIAWms.EntityFrameworkCore/Repositories/EfCoreWmsMaterialRepository.cs b/HIAWms/server/src/CMS.Plugin.HIAWms.EntityFrameworkCore/Repositories/EfCoreWmsMaterialRepository.cs
index 50fc33d..5ccf656 100644
--- a/HIAWms/server/src/CMS.Plugin.HIAWms.EntityFrameworkCore/Repositories/EfCoreWmsMaterialRepository.cs
+++ b/HIAWms/server/src/CMS.Plugin.HIAWms.EntityFrameworkCore/Repositories/EfCoreWmsMaterialRepository.cs
@@ -104,7 +104,7 @@
         return await (await GetDbSetAsync())
             .WhereIf(!string.IsNullOrEmpty(material.MaterialName), u => u.MaterialName.Contains(material.MaterialName))
             .WhereIf(!string.IsNullOrEmpty(material.MaterialNo), u => u.MaterialNo.Contains(material.MaterialNo))
-            .WhereIf(material.MaterialType > 0, u => u.MaterialType == material.MaterialType)
+            .WhereIf(!string.IsNullOrEmpty(material.MaterialTypeCode), u => u.MaterialTypeCode == material.MaterialTypeCode)
             .WhereIf(material.PurchaseType > 0, u => u.PurchaseType == material.PurchaseType)
             .Where(x => !x.IsDeleted)
             .ToListAsync(GetCancellationToken(cancellationToken));
diff --git a/HIAWms/server/src/CMS.Plugin.HIAWms.EntityFrameworkCore/Repositories/EfCoreWmsMaterialTypeRepository.cs b/HIAWms/server/src/CMS.Plugin.HIAWms.EntityFrameworkCore/Repositories/EfCoreWmsMaterialTypeRepository.cs
new file mode 100644
index 0000000..f3c1fef
--- /dev/null
+++ b/HIAWms/server/src/CMS.Plugin.HIAWms.EntityFrameworkCore/Repositories/EfCoreWmsMaterialTypeRepository.cs
@@ -0,0 +1,218 @@
+using CMS.Plugin.HIAWms.Domain.WmsMaterialType; 
+using CMS.Plugin.HIAWms.EntityFrameworkCore.Extensions; 
+using CmsQueryExtensions.Extension; 
+using Microsoft.EntityFrameworkCore; 
+using System.Linq.Dynamic.Core; 
+using System.Linq.Expressions; 
+using Volo.Abp; 
+using Volo.Abp.Domain.Repositories.EntityFrameworkCore; 
+using Volo.Abp.EntityFrameworkCore; 
+ 
+ 
+namespace CMS.Plugin.HIAWms.EntityFrameworkCore.Repositories; 
+ 
+/// <summary> 
+/// 鐗╂枡l绫诲瀷淇℃伅浠撳偍瀹炵幇 
+/// </summary> 
+public class EfCoreWmsMaterialTypeRepository : EfCoreRepository<ICMSPluginDbContext, WmsMaterialType, Guid>, IWmsMaterialTypeRepository 
+{ 
+    /// <summary> 
+    /// Initializes a new instance of the <see cref="EfCoreWmsMaterialTypeRepository"/> class. 
+    /// </summary> 
+    /// <param name="dbContextProvider">The database context provider.</param> 
+    public EfCoreWmsMaterialTypeRepository(IDbContextProvider<ICMSPluginDbContext> dbContextProvider) 
+        : base(dbContextProvider) 
+    { 
+    } 
+ 
+    /// <summary> 
+    /// 鎸夌収鍚嶇О鏌ユ壘鐗╂枡l绫诲瀷淇℃伅 
+    /// </summary> 
+    /// <param name="name"></param> 
+    /// <param name="cancellationToken"></param> 
+    /// <returns></returns> 
+    public virtual async Task<WmsMaterialType> FindByNameAsync(string name, CancellationToken cancellationToken = default) 
+    { 
+        return await (await GetDbSetAsync()) 
+            .IncludeDetails() 
+            .Where(x => !x.IsDeleted) 
+            .OrderByDescending(x=>x.CreationTime)  
+            .FirstOrDefaultAsync(t => t.MaterialTypeCode == name, GetCancellationToken(cancellationToken)); 
+    } 
+ 
+    /// <summary> 
+    /// 楠岃瘉鍚嶇О鏄惁瀛樺湪鐗╂枡l绫诲瀷淇℃伅 
+    /// </summary> 
+    /// <param name="name">鏍¢獙鍊�</param> 
+    /// <param name="id"></param> 
+    /// <returns></returns> 
+    public async Task<bool> NameExistAsync(string name, Guid? id = null) 
+    { 
+        return await (await GetDbSetAsync()).WhereIf(id.HasValue, p => p.Id != id).Where(x => !x.IsDeleted).AnyAsync(x => x.MaterialTypeCode == name); 
+    } 
+ 
+    /// <summary> 
+    /// 鑾峰彇鏈�澶ф帓搴忕墿鏂檒绫诲瀷淇℃伅 
+    /// </summary> 
+    /// <returns></returns> 
+    public async Task<int> GetMaxSortAsync() 
+    { 
+        var hasAny = await (await GetQueryableAsync()) 
+            .Where(x => !x.IsDeleted).AnyAsync(); 
+        if (!hasAny) 
+        { 
+            return 1; 
+        } 
+ 
+        var sort = await (await GetQueryableAsync()) 
+            .Where(x => !x.IsDeleted).MaxAsync(x => x.Sort); 
+        return sort + 1; 
+    } 
+ 
+    /// <summary> 
+    /// 鑾峰彇鍒嗛〉鍒楄〃鐗╂枡l绫诲瀷淇℃伅 
+    /// </summary> 
+    /// <param name="whereConditions"></param> 
+    /// <param name="sorting"></param> 
+    /// <param name="maxResultCount"></param> 
+    /// <param name="skipCount"></param> 
+    /// <param name="includeDetails"></param> 
+    /// <param name="cancellationToken"></param> 
+    /// <returns></returns> 
+    public async Task<List<WmsMaterialType>> GetListAsync(FunReturnResultModel<Expression<Func<WmsMaterialType, bool>>> whereConditions, string sorting = null, int maxResultCount = int.MaxValue, int skipCount = 0, bool includeDetails = false, CancellationToken cancellationToken = default) 
+    { 
+        return await (await GetDbSetAsync()) 
+            .IncludeDetails(includeDetails) 
+            .WhereIf(whereConditions != null, whereConditions.data) 
+            .Where(x => !x.IsDeleted) 
+            .OrderByDescending(x=>x.CreationTime) 
+            .PageBy(skipCount, maxResultCount) 
+            .ToListAsync(GetCancellationToken(cancellationToken)); 
+    } 
+ 
+    /// <summary> 
+    /// 鑾峰彇鎬绘暟鐗╂枡l绫诲瀷淇℃伅 
+    /// </summary> 
+    /// <param name="whereConditions"></param> 
+    /// <param name="cancellationToken"></param> 
+    /// <returns></returns> 
+    public async Task<long> GetCountAsync(FunReturnResultModel<Expression<Func<WmsMaterialType, bool>>> whereConditions, CancellationToken cancellationToken = default) 
+    { 
+        return await (await GetQueryableAsync()) 
+            .WhereIf(whereConditions != null, whereConditions.data) 
+            .Where(x => !x.IsDeleted) 
+            .CountAsync(cancellationToken: GetCancellationToken(cancellationToken)); 
+    } 
+ 
+ 
+    /// <inheritdoc /> 
+    public override async Task<IQueryable<WmsMaterialType>> WithDetailsAsync() 
+    { 
+        return (await GetQueryableAsync()) 
+            .Where(x => !x.IsDeleted).IncludeDetails(); 
+    } 
+ 
+    /// <summary> 
+    /// 鐗╃悊鍒犻櫎鐗╂枡l绫诲瀷淇℃伅 
+    /// </summary> 
+    /// <param name="id">涓婚敭ID</param> 
+    /// <param name="cancellationToken"></param> 
+    /// <returns></returns> 
+    public virtual async Task DeletePermanentlyAsync(Guid id, CancellationToken cancellationToken = default) 
+    { 
+        var entity = await (await GetDbSetAsync()) 
+            .FirstOrDefaultAsync(x => x.Id == id && !x.IsDeleted, GetCancellationToken(cancellationToken)); 
+ 
+        if (entity == null) 
+        { 
+            throw new Volo.Abp.Domain.Entities.EntityNotFoundException(typeof(WmsMaterialType), id); 
+        } 
+ 
+        // 2. 鑾峰彇 DbContext 骞舵墽琛屽垹闄� 
+        var dbContext = await GetDbContextAsync(); 
+ 
+        // 鐩存帴鎵ц SQL 鍒犻櫎 
+        var sql = $"DELETE FROM scms_wmsmaterialtype WHERE Id ='{entity.Id.ToString()}'"; 
+        await dbContext.Database.ExecuteSqlRawAsync(sql, cancellationToken); 
+    } 
+ 
+    /// <summary> 
+    /// 鎵归噺鐗╃悊鍒犻櫎鐗╂枡l绫诲瀷淇℃伅锛堢洿鎺ュ垹闄わ紝涓嶈蒋鍒犻櫎锛� 
+    /// </summary> 
+    /// <param name="ids">瑕佸垹闄ょ殑涓婚敭ID鍒楄〃</param> 
+    /// <param name="cancellationToken"></param> 
+    /// <returns></returns> 
+    public virtual async Task BatchDeletePermanentlyAsync(IEnumerable<Guid> ids, CancellationToken cancellationToken = default) 
+    { 
+        // 1. 鏌ヨ绗﹀悎鏉′欢鐨勫疄浣擄紙鏈蒋鍒犻櫎鐨勮褰曪級 
+        var entities = await (await GetDbSetAsync()) 
+            .Where(x => ids.Contains(x.Id) && !x.IsDeleted) 
+            .ToListAsync(GetCancellationToken(cancellationToken)); 
+ 
+        if (!entities.Any()) 
+        { 
+            // 濡傛灉娌℃湁闇�瑕佸垹闄ょ殑璁板綍锛岀洿鎺ヨ繑鍥烇紙閬垮厤涓嶅繀瑕佺殑鏁版嵁搴撴搷浣滐級 
+            return; 
+        } 
+ 
+        // 2. 鑾峰彇 DbContext 骞舵墽琛屾壒閲忓垹闄� 
+        var dbContext = await GetDbContextAsync(); 
+ 
+        var idsToDelete = entities.Select(e => e.Id).ToList(); 
+ 
+        // 鐩存帴鎵ц SQL 鍒犻櫎 
+        var sql = $"DELETE FROM scms_wmsmaterialtype WHERE Id IN ({string.Join(",", idsToDelete.Select(id => $"'{id}'"))})"; 
+        await dbContext.Database.ExecuteSqlRawAsync(sql, cancellationToken); 
+    } 
+ 
+    /// <summary> 
+    /// 鏍规嵁鏉′欢鑾峰彇鐗╂枡l绫诲瀷淇℃伅鍒楄〃 
+    /// </summary> 
+    /// <param name="whereConditions"></param> 
+    /// <param name="cancellationToken"></param> 
+    /// <returns></returns> 
+    public async Task<List<WmsMaterialType>> GetListByFilterAsync(Expression<Func<WmsMaterialType, bool>> whereConditions, CancellationToken cancellationToken = default) 
+    { 
+        return await (await GetDbSetAsync()) 
+            .IncludeDetails() 
+            .WhereIf(whereConditions != null, whereConditions) 
+            .Where(x => !x.IsDeleted) 
+            .OrderByDescending(x => x.CreationTime) 
+            .ToListAsync(GetCancellationToken(cancellationToken)); 
+    } 
+ 
+    /// <summary> 
+    ///  鏍规嵁鏉′欢鑾峰彇鍗曚釜鐗╂枡l绫诲瀷淇℃伅 
+    /// </summary> 
+    /// <param name="whereConditions"></param> 
+    /// <param name="isMultipleThrowException">鏄惁鏌ヨ鍑哄鏉″氨鎶ラ敊</param> 
+    /// <param name="cancellationToken"></param> 
+    /// <returns></returns> 
+    /// <exception cref="UserFriendlyException"></exception> 
+    public async Task<WmsMaterialType> GetSingleByFilterAsync(Expression<Func<WmsMaterialType, bool>> whereConditions, bool is鈥婱ultipleThrowException = false, CancellationToken cancellationToken = default) 
+    { 
+        if (is鈥婱ultipleThrowException) 
+        { 
+            var entitys = await (await GetDbSetAsync()) 
+                .IncludeDetails() 
+                .WhereIf(whereConditions != null, whereConditions) 
+                .Where(x => !x.IsDeleted) 
+                .OrderByDescending(x => x.CreationTime) 
+                .ToListAsync(GetCancellationToken(cancellationToken)); 
+            if (entitys?.Count > 1) 
+            { 
+                throw new UserFriendlyException("鏌ヨ鍒板鏉¤褰�"); 
+            } 
+            return entitys?.FirstOrDefault(); 
+        } 
+        else 
+        { 
+            return await (await GetDbSetAsync()) 
+                .IncludeDetails() 
+                .WhereIf(whereConditions != null, whereConditions) 
+                .Where(x => !x.IsDeleted) 
+                .OrderByDescending(x => x.CreationTime) 
+                .FirstOrDefaultAsync(GetCancellationToken(cancellationToken)); 
+        } 
+    } 
+} 
diff --git a/HIAWms/server/src/CMS.Plugin.HIAWms.EntityFrameworkCore/Repositories/EfCoreWmsTaskRepository.cs b/HIAWms/server/src/CMS.Plugin.HIAWms.EntityFrameworkCore/Repositories/EfCoreWmsTaskRepository.cs
index 5635ff8..a0ebc7b 100644
--- a/HIAWms/server/src/CMS.Plugin.HIAWms.EntityFrameworkCore/Repositories/EfCoreWmsTaskRepository.cs
+++ b/HIAWms/server/src/CMS.Plugin.HIAWms.EntityFrameworkCore/Repositories/EfCoreWmsTaskRepository.cs
@@ -125,4 +125,23 @@
            .OrderByDescending(x=>x.CreationTime)
            .FirstOrDefaultAsync(t => t.MutableParam2 == dataIdentifier, GetCancellationToken(cancellationToken));
     }
+
+    /// <summary>
+    /// 鑾峰彇浠诲姟鍒楄〃
+    /// </summary>
+    /// <param name="whereConditions"></param>
+    /// <param name="sorting"></param>
+    /// <param name="includeDetails"></param>
+    /// <param name="cancellationToken"></param>
+    /// <returns></returns>
+    public async Task<List<WmsTask>> GetTaskListAsync(FunReturnResultModel<Expression<Func<WmsTask, bool>>> whereConditions, string sorting = null, bool includeDetails = false, CancellationToken cancellationToken = default)
+    {
+        return await (await GetDbSetAsync())
+            .IncludeDetails(includeDetails)
+            .WhereIf(whereConditions != null, whereConditions.data)
+            .Where(x => !x.IsDeleted)
+            .OrderBy(x => x.TaskType)
+            .ThenBy(x=>x.TaskLevel)
+            .ToListAsync(GetCancellationToken(cancellationToken));
+    }
 } 
diff --git a/HIAWms/server/src/CMS.Plugin.HIAWms.MySQL/CMSPluginDbContext.cs b/HIAWms/server/src/CMS.Plugin.HIAWms.MySQL/CMSPluginDbContext.cs
index dc25e9f..f794242 100644
--- a/HIAWms/server/src/CMS.Plugin.HIAWms.MySQL/CMSPluginDbContext.cs
+++ b/HIAWms/server/src/CMS.Plugin.HIAWms.MySQL/CMSPluginDbContext.cs
@@ -45,6 +45,7 @@
         builder.ConfigureWmsMaterialContainer();
         builder.ConfigureWmsInOutStockOrder();
         builder.ConfigureWmsInOutStockOrderDetail();
+        builder.ConfigureWmsMaterialType();
 
         /* Configure your own tables/entities inside here */
 
diff --git a/HIAWms/server/src/CMS.Plugin.HIAWms.MySQL/Migrations/20250515034921_InitialCreate17.Designer.cs b/HIAWms/server/src/CMS.Plugin.HIAWms.MySQL/Migrations/20250515034921_InitialCreate17.Designer.cs
new file mode 100644
index 0000000..de5eb9f
--- /dev/null
+++ b/HIAWms/server/src/CMS.Plugin.HIAWms.MySQL/Migrations/20250515034921_InitialCreate17.Designer.cs
@@ -0,0 +1,1909 @@
+锘�// <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("20250515034921_InitialCreate17")]
+    partial class InitialCreate17
+    {
+        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.MaterialType.WmsMaterialType", 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")
+                        .HasComment("鍒涘缓鏃堕棿");
+
+                    b.Property<Guid?>("CreatorId")
+                        .HasColumnType("char(36)")
+                        .HasColumnName("CreatorId")
+                        .HasComment("鍒涘缓浜篒D");
+
+                    b.Property<string>("CreatorName")
+                        .HasColumnType("longtext");
+
+                    b.Property<string>("DeleteRemark")
+                        .HasColumnType("longtext");
+
+                    b.Property<Guid?>("DeleterId")
+                        .HasColumnType("char(36)")
+                        .HasColumnName("DeleterId")
+                        .HasComment("鍒犻櫎浜篒D");
+
+                    b.Property<DateTime?>("DeletionTime")
+                        .HasColumnType("datetime(6)")
+                        .HasColumnName("DeletionTime")
+                        .HasComment("鍒犻櫎鏃堕棿");
+
+                    b.Property<string>("ExtraField1")
+                        .HasColumnType("longtext");
+
+                    b.Property<string>("ExtraField2")
+                        .HasColumnType("longtext");
+
+                    b.Property<string>("ExtraField3")
+                        .HasColumnType("longtext");
+
+                    b.Property<string>("ExtraProperties")
+                        .HasColumnType("longtext")
+                        .HasColumnName("ExtraProperties");
+
+                    b.Property<bool>("IsDeleted")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("tinyint(1)")
+                        .HasDefaultValue(false)
+                        .HasColumnName("IsDeleted")
+                        .HasComment("鏄惁宸插垹闄�");
+
+                    b.Property<bool?>("IsDisabled")
+                        .HasColumnType("tinyint(1)");
+
+                    b.Property<DateTime?>("LastModificationTime")
+                        .HasColumnType("datetime(6)")
+                        .HasColumnName("LastModificationTime")
+                        .HasComment("鏈�鍚庝慨鏀规椂闂�");
+
+                    b.Property<Guid?>("LastModifierId")
+                        .HasColumnType("char(36)")
+                        .HasColumnName("LastModifierId")
+                        .HasComment("鏈�鍚庝慨鏀逛汉ID");
+
+                    b.Property<string>("LastModifierName")
+                        .HasColumnType("longtext");
+
+                    b.Property<string>("MaterialTypeCode")
+                        .IsRequired()
+                        .HasMaxLength(64)
+                        .HasColumnType("varchar(64)")
+                        .HasComment("绫诲瀷缂栫爜");
+
+                    b.Property<string>("MaterialTypeDesc")
+                        .IsRequired()
+                        .HasMaxLength(128)
+                        .HasColumnType("varchar(128)")
+                        .HasComment("绫诲瀷鎻忚堪");
+
+                    b.Property<string>("OperationRemark")
+                        .HasColumnType("longtext");
+
+                    b.Property<string>("Remark")
+                        .HasMaxLength(50)
+                        .HasColumnType("varchar(50)")
+                        .HasComment("澶囨敞");
+
+                    b.Property<int>("Sort")
+                        .HasColumnType("int");
+
+                    b.HasKey("Id");
+
+                    b.HasIndex("MaterialTypeCode")
+                        .IsUnique();
+
+                    b.HasIndex("MaterialTypeDesc");
+
+                    b.ToTable("scms_wmsmaterialtype", (string)null);
+
+                    b.HasComment("鐗╂枡绫诲瀷琛�");
+                });
+
+            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<string>("MaterialTypeCode")
+                        .HasMaxLength(20)
+                        .HasColumnType("varchar(20)")
+                        .HasComment("鐗╂枡绫诲瀷缂栫爜");
+
+                    b.Property<string>("MaterialTypeDesc")
+                        .HasMaxLength(20)
+                        .HasColumnType("varchar(20)")
+                        .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("MaterialTypeCode");
+
+                    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")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("tinyint(1)")
+                        .HasDefaultValue(false)
+                        .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>("PlcTaskId")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("int")
+                        .HasDefaultValue(0)
+                        .HasComment("浠诲姟鐘舵��");
+
+                    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/20250515034921_InitialCreate17.cs b/HIAWms/server/src/CMS.Plugin.HIAWms.MySQL/Migrations/20250515034921_InitialCreate17.cs
new file mode 100644
index 0000000..744c64e
--- /dev/null
+++ b/HIAWms/server/src/CMS.Plugin.HIAWms.MySQL/Migrations/20250515034921_InitialCreate17.cs
@@ -0,0 +1,132 @@
+锘縰sing System;
+using Microsoft.EntityFrameworkCore.Migrations;
+
+#nullable disable
+
+namespace CMS.Plugin.HIAWms.MySQL.Migrations
+{
+    public partial class InitialCreate17 : Migration
+    {
+        protected override void Up(MigrationBuilder migrationBuilder)
+        {
+            migrationBuilder.DropIndex(
+                name: "IX_scms_wmsmaterials_MaterialType",
+                table: "scms_wmsmaterials");
+
+            migrationBuilder.DropColumn(
+                name: "MaterialType",
+                table: "scms_wmsmaterials");
+
+            migrationBuilder.AddColumn<string>(
+                name: "MaterialTypeCode",
+                table: "scms_wmsmaterials",
+                type: "varchar(20)",
+                maxLength: 20,
+                nullable: true,
+                comment: "鐗╂枡绫诲瀷缂栫爜")
+                .Annotation("MySql:CharSet", "utf8mb4");
+
+            migrationBuilder.AddColumn<string>(
+                name: "MaterialTypeDesc",
+                table: "scms_wmsmaterials",
+                type: "varchar(20)",
+                maxLength: 20,
+                nullable: true,
+                comment: "鐗╂枡绫诲瀷")
+                .Annotation("MySql:CharSet", "utf8mb4");
+
+            migrationBuilder.CreateTable(
+                name: "scms_wmsmaterialtype",
+                columns: table => new
+                {
+                    Id = table.Column<Guid>(type: "char(36)", nullable: false, collation: "ascii_general_ci"),
+                    MaterialTypeDesc = table.Column<string>(type: "varchar(128)", maxLength: 128, nullable: false, comment: "绫诲瀷鎻忚堪")
+                        .Annotation("MySql:CharSet", "utf8mb4"),
+                    MaterialTypeCode = table.Column<string>(type: "varchar(64)", maxLength: 64, nullable: false, comment: "绫诲瀷缂栫爜")
+                        .Annotation("MySql:CharSet", "utf8mb4"),
+                    ExtraProperties = table.Column<string>(type: "longtext", nullable: true)
+                        .Annotation("MySql:CharSet", "utf8mb4"),
+                    ConcurrencyStamp = table.Column<string>(type: "varchar(40)", maxLength: 40, nullable: true)
+                        .Annotation("MySql:CharSet", "utf8mb4"),
+                    CreationTime = table.Column<DateTime>(type: "datetime(6)", nullable: false, comment: "鍒涘缓鏃堕棿"),
+                    CreatorId = table.Column<Guid>(type: "char(36)", nullable: true, comment: "鍒涘缓浜篒D", collation: "ascii_general_ci"),
+                    LastModificationTime = table.Column<DateTime>(type: "datetime(6)", nullable: true, comment: "鏈�鍚庝慨鏀规椂闂�"),
+                    LastModifierId = table.Column<Guid>(type: "char(36)", nullable: true, comment: "鏈�鍚庝慨鏀逛汉ID", collation: "ascii_general_ci"),
+                    IsDeleted = table.Column<bool>(type: "tinyint(1)", nullable: false, defaultValue: false, comment: "鏄惁宸插垹闄�"),
+                    DeleterId = table.Column<Guid>(type: "char(36)", nullable: true, comment: "鍒犻櫎浜篒D", collation: "ascii_general_ci"),
+                    DeletionTime = table.Column<DateTime>(type: "datetime(6)", nullable: true, comment: "鍒犻櫎鏃堕棿"),
+                    CreatorName = table.Column<string>(type: "longtext", nullable: true)
+                        .Annotation("MySql:CharSet", "utf8mb4"),
+                    LastModifierName = table.Column<string>(type: "longtext", nullable: true)
+                        .Annotation("MySql:CharSet", "utf8mb4"),
+                    OperationRemark = table.Column<string>(type: "longtext", nullable: true)
+                        .Annotation("MySql:CharSet", "utf8mb4"),
+                    DeleteRemark = table.Column<string>(type: "longtext", nullable: true)
+                        .Annotation("MySql:CharSet", "utf8mb4"),
+                    Sort = table.Column<int>(type: "int", nullable: false),
+                    Remark = table.Column<string>(type: "varchar(50)", maxLength: 50, nullable: true, comment: "澶囨敞")
+                        .Annotation("MySql:CharSet", "utf8mb4"),
+                    IsDisabled = table.Column<bool>(type: "tinyint(1)", nullable: true),
+                    ExtraField1 = table.Column<string>(type: "longtext", nullable: true)
+                        .Annotation("MySql:CharSet", "utf8mb4"),
+                    ExtraField2 = table.Column<string>(type: "longtext", nullable: true)
+                        .Annotation("MySql:CharSet", "utf8mb4"),
+                    ExtraField3 = table.Column<string>(type: "longtext", nullable: true)
+                        .Annotation("MySql:CharSet", "utf8mb4")
+                },
+                constraints: table =>
+                {
+                    table.PrimaryKey("PK_scms_wmsmaterialtype", x => x.Id);
+                },
+                comment: "鐗╂枡绫诲瀷琛�")
+                .Annotation("MySql:CharSet", "utf8mb4");
+
+            migrationBuilder.CreateIndex(
+                name: "IX_scms_wmsmaterials_MaterialTypeCode",
+                table: "scms_wmsmaterials",
+                column: "MaterialTypeCode");
+
+            migrationBuilder.CreateIndex(
+                name: "IX_scms_wmsmaterialtype_MaterialTypeCode",
+                table: "scms_wmsmaterialtype",
+                column: "MaterialTypeCode",
+                unique: true);
+
+            migrationBuilder.CreateIndex(
+                name: "IX_scms_wmsmaterialtype_MaterialTypeDesc",
+                table: "scms_wmsmaterialtype",
+                column: "MaterialTypeDesc");
+        }
+
+        protected override void Down(MigrationBuilder migrationBuilder)
+        {
+            migrationBuilder.DropTable(
+                name: "scms_wmsmaterialtype");
+
+            migrationBuilder.DropIndex(
+                name: "IX_scms_wmsmaterials_MaterialTypeCode",
+                table: "scms_wmsmaterials");
+
+            migrationBuilder.DropColumn(
+                name: "MaterialTypeCode",
+                table: "scms_wmsmaterials");
+
+            migrationBuilder.DropColumn(
+                name: "MaterialTypeDesc",
+                table: "scms_wmsmaterials");
+
+            migrationBuilder.AddColumn<int>(
+                name: "MaterialType",
+                table: "scms_wmsmaterials",
+                type: "int",
+                nullable: false,
+                defaultValue: 0,
+                comment: "鐗╂枡绫诲瀷锛堟灇涓惧�硷級");
+
+            migrationBuilder.CreateIndex(
+                name: "IX_scms_wmsmaterials_MaterialType",
+                table: "scms_wmsmaterials",
+                column: "MaterialType");
+        }
+    }
+}
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 16a5127..429a8bc 100644
--- a/HIAWms/server/src/CMS.Plugin.HIAWms.MySQL/Migrations/CMSPluginDbContextModelSnapshot.cs
+++ b/HIAWms/server/src/CMS.Plugin.HIAWms.MySQL/Migrations/CMSPluginDbContextModelSnapshot.cs
@@ -21,6 +21,115 @@
                 .HasAnnotation("ProductVersion", "6.0.16")
                 .HasAnnotation("Relational:MaxIdentifierLength", 64);
 
+            modelBuilder.Entity("CMS.Plugin.HIAWms.Domain.MaterialType.WmsMaterialType", 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")
+                        .HasComment("鍒涘缓鏃堕棿");
+
+                    b.Property<Guid?>("CreatorId")
+                        .HasColumnType("char(36)")
+                        .HasColumnName("CreatorId")
+                        .HasComment("鍒涘缓浜篒D");
+
+                    b.Property<string>("CreatorName")
+                        .HasColumnType("longtext");
+
+                    b.Property<string>("DeleteRemark")
+                        .HasColumnType("longtext");
+
+                    b.Property<Guid?>("DeleterId")
+                        .HasColumnType("char(36)")
+                        .HasColumnName("DeleterId")
+                        .HasComment("鍒犻櫎浜篒D");
+
+                    b.Property<DateTime?>("DeletionTime")
+                        .HasColumnType("datetime(6)")
+                        .HasColumnName("DeletionTime")
+                        .HasComment("鍒犻櫎鏃堕棿");
+
+                    b.Property<string>("ExtraField1")
+                        .HasColumnType("longtext");
+
+                    b.Property<string>("ExtraField2")
+                        .HasColumnType("longtext");
+
+                    b.Property<string>("ExtraField3")
+                        .HasColumnType("longtext");
+
+                    b.Property<string>("ExtraProperties")
+                        .HasColumnType("longtext")
+                        .HasColumnName("ExtraProperties");
+
+                    b.Property<bool>("IsDeleted")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("tinyint(1)")
+                        .HasDefaultValue(false)
+                        .HasColumnName("IsDeleted")
+                        .HasComment("鏄惁宸插垹闄�");
+
+                    b.Property<bool?>("IsDisabled")
+                        .HasColumnType("tinyint(1)");
+
+                    b.Property<DateTime?>("LastModificationTime")
+                        .HasColumnType("datetime(6)")
+                        .HasColumnName("LastModificationTime")
+                        .HasComment("鏈�鍚庝慨鏀规椂闂�");
+
+                    b.Property<Guid?>("LastModifierId")
+                        .HasColumnType("char(36)")
+                        .HasColumnName("LastModifierId")
+                        .HasComment("鏈�鍚庝慨鏀逛汉ID");
+
+                    b.Property<string>("LastModifierName")
+                        .HasColumnType("longtext");
+
+                    b.Property<string>("MaterialTypeCode")
+                        .IsRequired()
+                        .HasMaxLength(64)
+                        .HasColumnType("varchar(64)")
+                        .HasComment("绫诲瀷缂栫爜");
+
+                    b.Property<string>("MaterialTypeDesc")
+                        .IsRequired()
+                        .HasMaxLength(128)
+                        .HasColumnType("varchar(128)")
+                        .HasComment("绫诲瀷鎻忚堪");
+
+                    b.Property<string>("OperationRemark")
+                        .HasColumnType("longtext");
+
+                    b.Property<string>("Remark")
+                        .HasMaxLength(50)
+                        .HasColumnType("varchar(50)")
+                        .HasComment("澶囨敞");
+
+                    b.Property<int>("Sort")
+                        .HasColumnType("int");
+
+                    b.HasKey("Id");
+
+                    b.HasIndex("MaterialTypeCode")
+                        .IsUnique();
+
+                    b.HasIndex("MaterialTypeDesc");
+
+                    b.ToTable("scms_wmsmaterialtype", (string)null);
+
+                    b.HasComment("鐗╂枡绫诲瀷琛�");
+                });
+
             modelBuilder.Entity("CMS.Plugin.HIAWms.Domain.WmsAreas.WmsArea", b =>
                 {
                     b.Property<Guid>("Id")
@@ -1133,9 +1242,15 @@
                         .HasColumnType("varchar(64)")
                         .HasComment("鏉愯川锛堝锛�304涓嶉攬閽級");
 
-                    b.Property<int>("MaterialType")
-                        .HasColumnType("int")
-                        .HasComment("鐗╂枡绫诲瀷锛堟灇涓惧�硷級");
+                    b.Property<string>("MaterialTypeCode")
+                        .HasMaxLength(20)
+                        .HasColumnType("varchar(20)")
+                        .HasComment("鐗╂枡绫诲瀷缂栫爜");
+
+                    b.Property<string>("MaterialTypeDesc")
+                        .HasMaxLength(20)
+                        .HasColumnType("varchar(20)")
+                        .HasComment("鐗╂枡绫诲瀷");
 
                     b.Property<decimal>("OuterDiameter")
                         .HasColumnType("decimal(18,2)")
@@ -1192,7 +1307,7 @@
                     b.HasIndex("MaterialNo")
                         .IsUnique();
 
-                    b.HasIndex("MaterialType");
+                    b.HasIndex("MaterialTypeCode");
 
                     b.HasIndex("PurchaseType");
 
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 900fa85..6c897a6 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 InitialCreate16 -c CMSPluginDbContext -o Migrations
+dotnet ef migrations add InitialCreate17 -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.PostgreSql/CMSPluginDbContext.cs b/HIAWms/server/src/CMS.Plugin.HIAWms.PostgreSql/CMSPluginDbContext.cs
index 2e2bf4a..625a718 100644
--- a/HIAWms/server/src/CMS.Plugin.HIAWms.PostgreSql/CMSPluginDbContext.cs
+++ b/HIAWms/server/src/CMS.Plugin.HIAWms.PostgreSql/CMSPluginDbContext.cs
@@ -45,6 +45,7 @@
         builder.ConfigureWmsMaterialContainer();
         builder.ConfigureWmsInOutStockOrder();
         builder.ConfigureWmsInOutStockOrderDetail();
+        builder.ConfigureWmsMaterialType();
 
         /* Configure your own tables/entities inside here */
 
diff --git a/HIAWms/server/src/CMS.Plugin.HIAWms.SqlServer/CMSPluginDbContext.cs b/HIAWms/server/src/CMS.Plugin.HIAWms.SqlServer/CMSPluginDbContext.cs
index 68c2582..71910fc 100644
--- a/HIAWms/server/src/CMS.Plugin.HIAWms.SqlServer/CMSPluginDbContext.cs
+++ b/HIAWms/server/src/CMS.Plugin.HIAWms.SqlServer/CMSPluginDbContext.cs
@@ -45,6 +45,7 @@
         builder.ConfigureWmsMaterialContainer();
         builder.ConfigureWmsInOutStockOrder();
         builder.ConfigureWmsInOutStockOrderDetail();
+        builder.ConfigureWmsMaterialType();
 
         /* Configure your own tables/entities inside here */
 
diff --git a/HIAWms/server/src/CMS.Plugin.HIAWms/Controller/WmsMaterialTypeController.cs b/HIAWms/server/src/CMS.Plugin.HIAWms/Controller/WmsMaterialTypeController.cs
new file mode 100644
index 0000000..2ade70b
--- /dev/null
+++ b/HIAWms/server/src/CMS.Plugin.HIAWms/Controller/WmsMaterialTypeController.cs
@@ -0,0 +1,216 @@
+using Ao.Lang; 
+using CMS.Extensions.Abp.AspNetCore.Mvc.Filters; 
+using CMS.Framework.AspNetCore.Users; 
+using CMS.Plugin.HIAWms.Application.Contracts.Dtos.WmsMaterialType; 
+using CMS.Plugin.HIAWms.Application.Contracts.Services; 
+using Microsoft.AspNetCore.Authorization; 
+using Microsoft.AspNetCore.Http; 
+using Microsoft.AspNetCore.Mvc; 
+using MiniExcelLibs; 
+using System.Reflection; 
+using Volo.Abp; 
+using Volo.Abp.Application.Dtos; 
+using CmsQueryExtensions.Entitys; 
+ 
+namespace CMS.Plugin.HIAWms.Controller 
+{ 
+    /// <summary> 
+    /// 鐗╂枡l绫诲瀷淇℃伅鏈嶅姟 
+    /// </summary> 
+    [ApiController] 
+    [TypeFilter(typeof(CMSLanguageFilter))] 
+    [TypeFilter(typeof(CMSUowActionFilter))] 
+    [TypeFilter(typeof(CMSAuditActionFilter))] 
+    [TypeFilter(typeof(CMSExceptionFilter))] 
+    [Route("api/v{version:apiVersion}/HIAWms/[controller]")] 
+    public class WmsMaterialTypeController : ControllerBase 
+    { 
+        private readonly IWmsMaterialTypeAppService _WmsMaterialTypeAppService; 
+        private readonly ICurrentUser _currentUser; 
+ 
+        /// <summary> 
+        /// Initializes a new instance of the <see cref="WmsMaterialTypeController"/> class. 
+        /// </summary> 
+        /// <param name="WmsMaterialTypeAppService">The WmsMaterialType application service.</param> 
+        public WmsMaterialTypeController(IWmsMaterialTypeAppService WmsMaterialTypeAppService, ICurrentUser currentUser) 
+        { 
+            _WmsMaterialTypeAppService = WmsMaterialTypeAppService; 
+            _currentUser = currentUser; 
+        } 
+ 
+        /// <summary> 
+        /// 鑾峰彇鐗╂枡l绫诲瀷淇℃伅 
+        /// </summary> 
+        /// <param name="id">涓婚敭ID</param> 
+        /// <returns></returns> 
+        [HttpGet] 
+        [Route("{id}")] 
+        public virtual Task<WmsMaterialTypeDto> GetAsync(Guid id) 
+        { 
+            return _WmsMaterialTypeAppService.GetAsync(id); 
+        } 
+ 
+        /// <summary> 
+        /// 鍒嗛〉鑾峰彇鐗╂枡l绫诲瀷淇℃伅鐨勫垪琛�. 
+        /// </summary> 
+        /// <param name="input">鏌ヨ鍙傛暟</param> 
+        /// <returns></returns> 
+        [HttpGet] 
+        [Route("Page")] 
+        public virtual Task<PagedResultDto<WmsMaterialTypeDto>> GetListAsync([FromQuery] GetWmsMaterialTypeInput input) 
+        { 
+            return _WmsMaterialTypeAppService.GetListAsync(input); 
+        } 
+ 
+        /// <summary> 
+        /// 鍒涘缓鐗╂枡l绫诲瀷淇℃伅 
+        /// </summary> 
+        /// <param name="input">鍒涘缓鍙傛暟</param> 
+        /// <returns></returns> 
+        //[Authorize] 
+        [HttpPost] 
+        public virtual Task<WmsMaterialTypeDto> CreateAsync(WmsMaterialTypeCreateDto input) 
+        { 
+            input.CreatorName = _currentUser.UserAccount;//鍒涘缓浜� 
+            return _WmsMaterialTypeAppService.CreateAsync(input); 
+        } 
+ 
+        /// <summary> 
+        /// 鏇存柊鐗╂枡l绫诲瀷淇℃伅 
+        /// </summary> 
+        /// <param name="id">涓婚敭ID</param> 
+        /// <param name="input">鏇存柊鍙傛暟</param> 
+        /// <returns></returns> 
+        //[Authorize] 
+        [HttpPut] 
+        [Route("{id}")] 
+        public virtual Task<WmsMaterialTypeDto> UpdateAsync(Guid id, WmsMaterialTypeUpdateDto input) 
+        { 
+            input.LastModifierName = _currentUser.UserAccount;//淇敼浜� 
+            return _WmsMaterialTypeAppService.UpdateAsync(id, input); 
+        } 
+ 
+        /// <summary> 
+        /// 鍏嬮殕鐗╂枡l绫诲瀷淇℃伅 
+        /// </summary> 
+        /// <param name="ids">Id闆嗗悎</param> 
+        /// <returns></returns> 
+        //[Authorize] 
+        [HttpPost] 
+        [Route("Clone")] 
+        public virtual Task<List<WmsMaterialTypeDto>> CloneAsync([FromBody] IEnumerable<Guid> ids) 
+        { 
+            MyCurrentUser myCurrentUser = new MyCurrentUser() 
+            { 
+                UserAccount = _currentUser.UserAccount, 
+                UserId = _currentUser.UserId 
+            }; 
+            return _WmsMaterialTypeAppService.CloneAsync(ids, myCurrentUser); 
+        } 
+ 
+        /// <summary> 
+        /// 鍒犻櫎鐗╂枡l绫诲瀷淇℃伅 
+        /// </summary> 
+        /// <param name="id">涓婚敭ID</param> 
+        /// <returns></returns> 
+        //[Authorize] 
+        [HttpDelete] 
+        [Route("{id}")] 
+        public virtual Task DeleteAsync(Guid id) 
+        { 
+            MyCurrentUser myCurrentUser = new MyCurrentUser() 
+            { 
+                UserAccount = _currentUser.UserAccount, 
+                UserId = _currentUser.UserId 
+            }; 
+            //return _wmsMaterialAppService.DeleteAsync(id,myCurrentUser);//閫昏緫鍒犻櫎 
+            return _wmsMaterialAppService.DeletePermanentlyAsync(id, myCurrentUser);//鐗╃悊鍒犻櫎 
+        } 
+ 
+        /// <summary> 
+        /// 鎵归噺鍒犻櫎鐗╂枡l绫诲瀷淇℃伅 
+        /// </summary> 
+        /// <param name="ids">涓婚敭ID闆嗗悎</param> 
+        /// <returns></returns> 
+        //[Authorize] 
+        [HttpDelete] 
+        public virtual Task DeleteAsync([FromBody] IEnumerable<Guid> ids) 
+        { 
+            MyCurrentUser myCurrentUser = new MyCurrentUser() 
+            { 
+                UserAccount = _currentUser.UserAccount, 
+                UserId = _currentUser.UserId 
+            }; 
+            // return _wmsMaterialAppService.DeleteManyAsync(ids,myCurrentUser);//閫昏緫鍒犻櫎 
+            return _wmsMaterialAppService.BatchDeletePermanentlyAsync(ids, myCurrentUser);//鐗╃悊鍒犻櫎 
+        } 
+ 
+        /// <summary> 
+        /// 璋冩暣鎺掑簭鐗╂枡l绫诲瀷淇℃伅 
+        /// </summary> 
+        /// <param name="id">涓婚敭ID</param> 
+        /// <returns></returns> 
+        [HttpPut] 
+        [Route("{id}/AdjustSort/{sort}")] 
+        public virtual Task AdjustSortAsync(Guid id, int sort) 
+        { 
+            return _WmsMaterialTypeAppService.AdjustSortAsync(id, sort); 
+        } 
+ 
+        /// <summary> 
+        /// 瀵煎叆鐗╂枡l绫诲瀷淇℃伅 
+        /// </summary> 
+        /// <returns></returns> 
+        [Authorize] 
+        [HttpPost] 
+        [Route("Import")] 
+        public virtual async Task<IActionResult> ImportAsync(IFormFile file) 
+        { 
+            using var stream = new MemoryStream(); 
+            await file.CopyToAsync(stream); 
+            stream.Seek(0L, SeekOrigin.Begin); 
+ 
+            var sheetNames = stream.GetSheetNames(); 
+            var WmsMaterialTypeRows = sheetNames.Contains("閰嶇疆") ? MiniExcel.Query<WmsMaterialTypesImportModel.WmsMaterialTypeImportModel>(stream, sheetName: "閰嶇疆").ToList() : new(); 
+ 
+            if (!WmsMaterialTypeRows.Any()) 
+            { 
+                throw new UserFriendlyException("璇锋鏌ュ鍏ョ殑琛ㄦ牸"); 
+            } 
+ 
+            MyCurrentUser myCurrentUser = new MyCurrentUser() 
+            { 
+                UserAccount = _currentUser.UserAccount, 
+                UserId = _currentUser.UserId 
+            }; 
+            await _WmsMaterialTypeAppService.ImportAsync(new WmsMaterialTypesImportModel 
+            { 
+                WmsMaterialTypes = WmsMaterialTypeRows, 
+           },myCurrentUser);  
+ 
+            return Ok(); 
+        } 
+ 
+        /// <summary> 
+        /// 瀵煎嚭鐗╂枡l绫诲瀷淇℃伅 
+        /// </summary> 
+        /// <returns></returns> 
+        [HttpGet] 
+        [Route("Export")] 
+        public virtual async Task<IActionResult> ExportAsync([FromQuery] GetWmsMaterialTypeInput input) 
+        { 
+            input.MaxResultCount = int.MaxValue; 
+            var exportData = await _WmsMaterialTypeAppService.ExportAsync(input); 
+            var templatePath = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, $"Resources/Templates/WmsMaterialType瀵煎嚭妯℃澘.xlsx"); 
+            if (!System.IO.File.Exists(templatePath)) 
+            { 
+                templatePath = Path.Combine(Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location) ?? string.Empty, $"Resources/Templates/WmsMaterialType瀵煎嚭妯℃澘.xlsx"); 
+            } 
+ 
+            var memoryStream = new MemoryStream(); 
+            await memoryStream.SaveAsByTemplateAsync(templatePath, exportData.Sheets); 
+            memoryStream.Seek(0L, SeekOrigin.Begin); 
+            return new FileStreamResult(memoryStream, "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet") { FileDownloadName = $"{exportData.FileName}_{DateTime.Now:yyyyMMddhhmmss}.xlsx" }; 
+        } 
+    } 
+} 
diff --git a/HIAWms/server/src/CMS.Plugin.HIAWms/Controller/WmsTaskController.cs b/HIAWms/server/src/CMS.Plugin.HIAWms/Controller/WmsTaskController.cs
index 5704659..916168f 100644
--- a/HIAWms/server/src/CMS.Plugin.HIAWms/Controller/WmsTaskController.cs
+++ b/HIAWms/server/src/CMS.Plugin.HIAWms/Controller/WmsTaskController.cs
@@ -220,5 +220,17 @@
         {
             await _wmsTaskAppService.ChangeTaskToPlaceAsync(input);
         }
+
+        /// <summary>
+        /// 鑾峰彇闇�瑕佹墽琛岀殑鍫嗗灈鏈轰换鍔�
+        /// </summary>
+        /// <param name="input"></param>
+        /// <returns></returns>
+        [HttpPost]
+        [Route("ToExecuteTask")]
+        public async Task<WmsTaskDto> GetToExecuteTaskAsync(QueryTaskTypeInput input)
+        {
+            return await _wmsTaskAppService.GetToExecuteTaskAsync(input);
+        }
     } 
 } 
diff --git "a/HIAWms/server/src/CMS.Plugin.HIAWms/Resources/Templates/WmsMaterialType\345\257\274\345\207\272\346\250\241\346\235\277.xlsx" "b/HIAWms/server/src/CMS.Plugin.HIAWms/Resources/Templates/WmsMaterialType\345\257\274\345\207\272\346\250\241\346\235\277.xlsx"
new file mode 100644
index 0000000..26c169b
--- /dev/null
+++ "b/HIAWms/server/src/CMS.Plugin.HIAWms/Resources/Templates/WmsMaterialType\345\257\274\345\207\272\346\250\241\346\235\277.xlsx"
Binary files differ
diff --git "a/Weben_CMS\344\270\223\347\224\250\344\273\243\347\240\201\347\224\237\346\210\220\345\231\250/Code/File/GenerateCodeConfigParamFiles/\347\211\251\346\226\231\347\261\273\345\236\213\351\205\215\347\275\256.txt" "b/Weben_CMS\344\270\223\347\224\250\344\273\243\347\240\201\347\224\237\346\210\220\345\231\250/Code/File/GenerateCodeConfigParamFiles/\347\211\251\346\226\231\347\261\273\345\236\213\351\205\215\347\275\256.txt"
new file mode 100644
index 0000000..bf47419
--- /dev/null
+++ "b/Weben_CMS\344\270\223\347\224\250\344\273\243\347\240\201\347\224\237\346\210\220\345\231\250/Code/File/GenerateCodeConfigParamFiles/\347\211\251\346\226\231\347\261\273\345\236\213\351\205\215\347\275\256.txt"
@@ -0,0 +1,14 @@
+[琛ㄥ悕]:scms_wmsmaterialtype
+[瀹炰綋绫诲悕]:WmsMaterialType
+[瀹炰綋绫诲璞″悕]:WmsMaterialType
+[椤甸潰鑿滃崟鍚峕:鐗╂枡绫诲瀷
+[椤甸潰鑿滃崟瀵硅薄缂╁啓]:wmsMaterialType
+[琛ㄧ殑涓枃娉ㄨВ]:鐗╂枡l绫诲瀷淇℃伅
+[閲嶅鎬ф牎楠屽瓧娈礭:MaterialTypeCode
+[鍒犻櫎鎻愮ず瀛楁]:MaterialTypeCode
+[妯$硦鏌ヨ瀛楁]:'MaterialTypeCode', 'MaterialTypeDesc',
+[妯$硦鏌ヨ瀛楁鍚峕:璇疯緭鍏ョ墿鏂欑被鍨嬬紪鍙�/鐗╂枡绫诲瀷鍚嶇О
+[椤圭洰鍛藉悕绌洪棿]:HIAWms
+[鏋氫妇绫诲瀷瀛楁闆嗗悎]:
+[鍓嶇鏍规枃浠跺す鍚嶇О]:web
+[鎺掑簭]:CreationTime
\ No newline at end of file

--
Gitblit v1.9.3