From 14f9c8378bde7d9a8d8f1fcc393e0e8d49eced82 Mon Sep 17 00:00:00 2001
From: zs <zhousong@weben-smart.com>
Date: 周五, 09 5月 2025 17:44:29 +0800
Subject: [PATCH] 查找空库位,查找库存

---
 HIAWms/server/src/CMS.Plugin.HIAWms/Resources/Templates/WmsContainerPlace导出模板.xlsx                                         |    0 
 HIAWms/hiawms_web/src/widgets/HIAWms/Controllers/WmsMaterialDrawer.tsx                                                     |    6 
 HIAWms/server/src/CMS.Plugin.HIAWms.MySQL/Migrations/20250506070902_InitialCreate6.Designer.cs                             |    4 
 HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsMaterials/WmsMaterialDto.cs                              |    2 
 HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Services/IWmsContainerPlaceAppService.cs                         |   46 +
 HIAWms/server/src/CMS.Plugin.HIAWms.MySQL/Migrations/20250430035549_InitialCreate1.Designer.cs                             |    4 
 HIAWms/server/src/CMS.Plugin.HIAWms.MySQL/Migrations/20250505121050_InitialCreate3.Designer.cs                             |    4 
 HIAWms/server/src/CMS.Plugin.HIAWms.Application/Implements/WmsBindInStockAssService.cs                                     |  161 ++++
 HIAWms/server/src/CMS.Plugin.HIAWms.EntityFrameworkCore/Extensions/CMSPluginEfCoreExtensions.WmsTask.cs                    |    2 
 HIAWms/server/src/CMS.Plugin.HIAWms.MySQL/Migrations/20250508005509_InitialCreate9.Designer.cs                             |    4 
 HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsMaterials/ExportWmsMaterialModel.cs                      |    2 
 HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsMaterials/WmsMaterialCreateOrUpdateDtoBase.cs            |    2 
 HIAWms/server/src/CMS.Plugin.HIAWms.EntityFrameworkCore/Extensions/CMSPluginEfCoreExtensions.WmsContainerPlace.cs          |    2 
 HIAWms/server/src/CMS.Plugin.HIAWms/Controller/WmsEnumController.cs                                                        |   26 
 HIAWms/server/src/CMS.Plugin.HIAWms.MySQL/Migrations/20250509065902_InitialCreate11.Designer.cs                            |    4 
 HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsContainerPlace/GetWmsContainerPlaceInput.cs              |  239 ++++++
 HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Services/IWmsEnumAppService.cs                                   |   18 
 HIAWms/server/src/CMS.Plugin.HIAWms.MySQL/Migrations/20250506074429_InitialCreate7.Designer.cs                             |    4 
 HIAWms/server/src/CMS.Plugin.HIAWms.EntityFrameworkCore/Repositories/EfCoreWmsAreaRepository.cs                            |    1 
 HIAWms/server/src/CMS.Plugin.HIAWms.MySQL/Migrations/20250505105851_InitialCreate2.Designer.cs                             |    4 
 HIAWms/hiawms_web/src/widgets/HIAWms/Views/Pages/WmsMaterial/Config.ts                                                     |    2 
 HIAWms/server/src/CMS.Plugin.HIAWms.EntityFrameworkCore/Repositories/EfCoreWmsStoreRepository.cs                           |    1 
 HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsMaterials/GetWmsMaterialsInput.cs                        |    2 
 HIAWms/server/src/CMS.Plugin.HIAWms.EntityFrameworkCore/Repositories/EfCoreWmsContainerPlaceRepository.cs                  |  113 +++
 HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsContainerPlace/WmsContainerPlaceCreateOrUpdateDtoBase.cs |   95 ++
 HIAWms/server/src/CMS.Plugin.HIAWms.MySQL/Migrations/20250505140345_InitialCreate5.Designer.cs                             |    4 
 HIAWms/hiawms_web/src/widgets/HIAWms/Views/Pages/WmsMaterial/WmsMaterial.tsx                                               |    6 
 HIAWms/server/src/CMS.Plugin.HIAWms.Domain/WmsContainerPlace/IWmsContainerPlaceRepository.cs                               |   53 +
 HIAWms/server/src/CMS.Plugin.HIAWms.Domain/WmsMaterials/IWmsMaterialRepository.cs                                          |   15 
 HIAWms/server/src/CMS.Plugin.HIAWms.Application/Implements/WmsMaterialAppService.cs                                        |   24 
 HIAWms/server/src/CMS.Plugin.HIAWms.MySQL/Migrations/20250507093411_InitialCreate8.Designer.cs                             |    4 
 HIAWms/server/src/CMS.Plugin.HIAWms.Application/Implements/WmsEnumAppService.cs                                            |   43 +
 HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsContainerPlace/WmsContainerPlacesImportModel.cs          |   33 
 HIAWms/server/src/CMS.Plugin.HIAWms.MySQL/Migrations/CMSPluginDbContextModelSnapshot.cs                                    |    4 
 HIAWms/server/src/CMS.Plugin.HIAWms.EntityFrameworkCore/Repositories/EfCoreWmsMaterialRepository.cs                        |   44 +
 HIAWms/server/src/CMS.Plugin.HIAWms.EntityFrameworkCore/Extensions/CMSPluginEfCoreExtensions.WmsMaterialContainer.cs       |    2 
 HIAWms/server/src/CMS.Plugin.HIAWms.MySQL/Migrations/20250509054804_InitialCreate10.Designer.cs                            |    4 
 HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Services/IWmsCommonAppService.cs                                 |   21 
 HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsContainerPlace/WmsContainerPlaceDto.cs                   |  141 +++
 HIAWms/server/src/CMS.Plugin.HIAWms.EntityFrameworkCore/Extensions/CMSPluginEfCoreExtensions.WmsMaterial.cs                |    4 
 HIAWms/server/src/CMS.Plugin.HIAWms.Application/Implements/WmsContainerPlaceAppService.cs                                  |  430 +++++++++++
 HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsContainerPlace/WmsContainerPlaceUpdateDto.cs             |   13 
 HIAWms/server/src/CMS.Plugin.HIAWms.Domain/WmsMaterials/WmsMaterialSpecification.cs                                        |   12 
 HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsContainerPlace/WmsContainerPlaceCreateDto.cs             |   17 
 HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsContainerPlace/WmsContainerPlaceExportModel.cs           |  103 ++
 HIAWms/server/src/CMS.Plugin.HIAWms.EntityFrameworkCore/Repositories/EfCoreWmsPlaceRepository.cs                           |   16 
 HIAWms/server/src/CMS.Plugin.HIAWms/Controller/WmsContainerPlaceController.cs                                              |  188 +++++
 HIAWms/server/src/CMS.Plugin.HIAWms.Domain/WmsContainerPlace/WmsContainerPlace.cs                                          |    2 
 HIAWms/server/src/CMS.Plugin.HIAWms.Domain/WmsMaterials/WmsMaterial.cs                                                     |    2 
 HIAWms/server/src/CMS.Plugin.HIAWms.MySQL/Migrations/20250429025531_InitialCreate.Designer.cs                              |    4 
 HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/BindInstockDto/BindInstockInput.cs                          |    2 
 HIAWms/server/src/CMS.Plugin.HIAWms.MySQL/Migrations/20250429025531_InitialCreate.cs                                       |    6 
 HIAWms/server/src/CMS.Plugin.HIAWms.Application/Implements/WmsMaterialStockAppService.cs                                   |   66 +
 HIAWms/hiawms_web/src/widgets/WmsMaterialStock/Views/Pages/WmsMaterialStock/WmsMaterialStock.tsx                           |   13 
 HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsMaterials/WmsMaterialsExportModel.cs                     |    2 
 HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsMaterialStocks/WmsMaterialStockCreateOrUpdateDtoBase.cs  |    2 
 HIAWms/server/src/CMS.Plugin.HIAWms.MySQL/Migrations/20250505135455_InitialCreate4.Designer.cs                             |    4 
 HIAWms/server/src/CMS.Plugin.HIAWms.Application/MapperProfiles/WmsContainerPlaceAutoMapperProfile.cs                       |   26 
 HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/CommonDto/MaterialModelOutput.cs                            |   16 
 HIAWms/server/src/CMS.Plugin.HIAWms.Domain/WmsPlaces/IWmsPlaceRepository.cs                                                |    9 
 HIAWms/server/src/CMS.Plugin.HIAWms.Application/Implements/WmsCommonAppService.cs                                          |   67 +
 61 files changed, 2,016 insertions(+), 134 deletions(-)

diff --git a/HIAWms/hiawms_web/src/widgets/HIAWms/Controllers/WmsMaterialDrawer.tsx b/HIAWms/hiawms_web/src/widgets/HIAWms/Controllers/WmsMaterialDrawer.tsx
index 7e1295f..1c0af31 100644
--- a/HIAWms/hiawms_web/src/widgets/HIAWms/Controllers/WmsMaterialDrawer.tsx
+++ b/HIAWms/hiawms_web/src/widgets/HIAWms/Controllers/WmsMaterialDrawer.tsx
@@ -56,7 +56,7 @@
   const formItems = reactive([
     {
       label: '鐗╂枡缂栫爜',
-      prop: 'materialCode',
+      prop: 'materialNo',
       el: 'input',
       disabled: disabled,
       placeholder: '璇疯緭鍏ョ墿鏂欑紪鐮�',
@@ -214,7 +214,7 @@
   const onConfirm = async () => {
     await formRef.value?.validate()
     const data = {
-      materialCode: formData.value.materialCode,
+      materialNo: formData.value.materialNo,
       materialName: formData.value.materialName,
       purchaseType: formData.value.purchaseType,
       materialType: formData.value.materialType,
@@ -279,7 +279,7 @@
       const res = await wmsMaterialDrawer.getWmsMaterialDetail(current.value)
 
       formData.value = {
-        materialCode: res.materialCode,
+        materialNo: res.materialNo,
         materialName: res.materialName,
         purchaseType: res.purchaseType,
         materialType: res.materialType,
diff --git a/HIAWms/hiawms_web/src/widgets/HIAWms/Views/Pages/WmsMaterial/Config.ts b/HIAWms/hiawms_web/src/widgets/HIAWms/Views/Pages/WmsMaterial/Config.ts
index a6762bf..084b68f 100644
--- a/HIAWms/hiawms_web/src/widgets/HIAWms/Views/Pages/WmsMaterial/Config.ts
+++ b/HIAWms/hiawms_web/src/widgets/HIAWms/Views/Pages/WmsMaterial/Config.ts
@@ -5,7 +5,7 @@
     title: '搴忓彿',
   },
   {
-    field: 'materialCode',
+    field: 'materialNo',
     title: '鐗╂枡缂栫爜',
   },
   {
diff --git a/HIAWms/hiawms_web/src/widgets/HIAWms/Views/Pages/WmsMaterial/WmsMaterial.tsx b/HIAWms/hiawms_web/src/widgets/HIAWms/Views/Pages/WmsMaterial/WmsMaterial.tsx
index a2e2c16..7acaa1b 100644
--- a/HIAWms/hiawms_web/src/widgets/HIAWms/Views/Pages/WmsMaterial/WmsMaterial.tsx
+++ b/HIAWms/hiawms_web/src/widgets/HIAWms/Views/Pages/WmsMaterial/WmsMaterial.tsx
@@ -62,7 +62,7 @@
 
     // 鏂板鐨勬煡璇㈡潯浠�
     const queryForm = ref({
-      materialCode: '',
+      materialNo: '',
       materialName: '',
       materialType: '',
       purchaseType: '',
@@ -122,7 +122,7 @@
     // 閲嶇疆鏌ヨ鏉′欢
     const resetQuery = () => {
       queryForm.value = {
-        materialCode: '',
+        materialNo: '',
         materialName: '',
         materialType: '',
         purchaseType: '',
@@ -216,7 +216,7 @@
             </ElFormItem>
             <ElFormItem label="鐗╂枡缂栫爜">
               <ElInput
-                v-model={queryForm.value.materialCode}
+                v-model={queryForm.value.materialNo}
                 placeholder="璇疯緭鍏ョ墿鏂欑紪鐮�"
                 clearable
                 class={styles.formItem}
diff --git a/HIAWms/hiawms_web/src/widgets/WmsMaterialStock/Views/Pages/WmsMaterialStock/WmsMaterialStock.tsx b/HIAWms/hiawms_web/src/widgets/WmsMaterialStock/Views/Pages/WmsMaterialStock/WmsMaterialStock.tsx
index 0aef04f..ca0e0ed 100644
--- a/HIAWms/hiawms_web/src/widgets/WmsMaterialStock/Views/Pages/WmsMaterialStock/WmsMaterialStock.tsx
+++ b/HIAWms/hiawms_web/src/widgets/WmsMaterialStock/Views/Pages/WmsMaterialStock/WmsMaterialStock.tsx
@@ -64,7 +64,7 @@
       materialName: '',
       containerType: '',
       containerStatus: '',
-      storageTypeNo: '',
+      storageTypeNo: 1,
       placeStatus: '',
       placeNo: '',
       isLock: '',
@@ -77,7 +77,7 @@
       ...queryForm.value,
       containerType: queryForm.value.containerType || '', // 澶勭悊涓嬫媺
       containerStatus: queryForm.value.containerStatus || '',
-      storageTypeNo: queryForm.value.storageTypeNo || '', // 澶勭悊涓嬫媺
+      storageTypeNo: queryForm.value.storageTypeNo || 1, // 澶勭悊涓嬫媺
       placeStatus: queryForm.value.placeStatus || '',
       islock: queryForm.value.isLock || '',
       emptyContainer: queryForm.value.emptyContainer || '',
@@ -147,6 +147,7 @@
     // 缁勪欢鎸傝浇鏃惰幏鍙栨灇涓炬暟鎹�
     onMounted(() => {
       fetchEnumData()
+      handleQuery()
     })
 
     // 鏂板鐨勬煡璇㈡柟娉�
@@ -164,7 +165,7 @@
         materialName: '',
         containerType: '',
         containerStatus: '',
-        storageTypeNo: '',
+        storageTypeNo: 1,
         placeStatus: '',
         placeNo: '',
         isLock: '',
@@ -186,7 +187,10 @@
         params,
         autoHeight,
       } = props
-
+      props.params = {
+        ...queryParams.value,
+        ...params,
+      }
       return (
         <div
           class={{
@@ -334,7 +338,6 @@
               <ElSelect
                 v-model={queryForm.value.storageTypeNo}
                 placeholder="璇烽�夋嫨鎵樼洏绫诲瀷"
-                clearable
                 loading={enumOptions.storageTypeNo.length === 0}
                 class={styles.formItem}
               >
diff --git a/HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/BindInstockDto/BindInstockInput.cs b/HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/BindInstockDto/BindInstockInput.cs
index 2efb842..bf177fb 100644
--- a/HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/BindInstockDto/BindInstockInput.cs
+++ b/HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/BindInstockDto/BindInstockInput.cs
@@ -45,6 +45,6 @@
         /// <summary>
         /// 缁戝畾鏁伴噺
         /// </summary>
-        public int MaterialStockNumber { get; set; }
+        public int StockNumber { get; set; }
     }
 }
diff --git a/HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/CommonDto/MaterialModelOutput.cs b/HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/CommonDto/MaterialModelOutput.cs
index d4711ac..4c702b1 100644
--- a/HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/CommonDto/MaterialModelOutput.cs
+++ b/HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/CommonDto/MaterialModelOutput.cs
@@ -21,4 +21,20 @@
         /// </summary>
         public string MaterialModelDesc { get; set; }
     }
+
+    /// <summary>
+    /// 搴撲綅鍒楄〃杈撳嚭
+    /// </summary>
+    public class PlaceListOutput
+    {
+        /// <summary>
+        /// 搴撲綅鍙�
+        /// </summary>
+        public string PlaceNo { get; set; }
+
+        /// <summary>
+        /// 搴撲綅鍙�
+        /// </summary>
+        public string PlaceNoDesc { get; set; }
+    }
 }
diff --git a/HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsContainerPlace/GetWmsContainerPlaceInput.cs b/HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsContainerPlace/GetWmsContainerPlaceInput.cs
new file mode 100644
index 0000000..3e91603
--- /dev/null
+++ b/HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsContainerPlace/GetWmsContainerPlaceInput.cs
@@ -0,0 +1,239 @@
+using CmsQueryExtensions.Extension; 
+using Volo.Abp.Application.Dtos; 
+ 
+namespace CMS.Plugin.HIAWms.Application.Contracts.Dtos.WmsContainerPlace; 
+ 
+/// <summary> 
+/// 搴撲綅瀹瑰櫒鍏崇郴鏌ヨ鍙傛暟 
+/// </summary> 
+public class GetWmsContainerPlaceInput : 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 PlaceNo { get; set; }
+
+        /// <summary>
+        /// 搴撲綅缂栫爜-鏌ヨ鍏崇郴杩愮畻绗� 
+        /// </summary>
+        public SearchFilterModeEnum PlaceNo_FilterMode { get; set; }= SearchFilterModeEnum.妯$硦鏌ヨ;
+
+        /// <summary>
+        /// 缂栫爜
+        /// </summary>
+        public string ContainerNo { get; set; }
+
+        /// <summary>
+        /// 缂栫爜-鏌ヨ鍏崇郴杩愮畻绗� 
+        /// </summary>
+        public SearchFilterModeEnum ContainerNo_FilterMode { get; set; }= SearchFilterModeEnum.妯$硦鏌ヨ;
+
+        /// <summary>
+        /// 鎺掑簭
+        /// </summary>
+        public int?  Sort { get; set; }
+
+        /// <summary>
+        /// 鎺掑簭-鏌ヨ鍏崇郴杩愮畻绗� 
+        /// </summary>
+        public SearchFilterModeEnum Sort_FilterMode { get; set; }= SearchFilterModeEnum.绮惧噯鏌ヨ;
+
+        /// <summary>
+        /// 鍚嶇О
+        /// </summary>
+        //琛ㄧず鏄� 楂樼骇鏌ヨ鑼冨洿鏌ヨ鐗规��
+        [HighSearchRangeAttribute]
+        public List<string> BindTime { get; set; }
+
+
+        /// <summary>
+        /// 鏄惁绂佺敤
+        /// </summary>
+        public bool?  IsDisabled { get; set; }
+
+        /// <summary>
+        /// 鏄惁绂佺敤-鏌ヨ鍏崇郴杩愮畻绗� 
+        /// </summary>
+        public SearchFilterModeEnum IsDisabled_FilterMode { get; set; }= SearchFilterModeEnum.绮惧噯鏌ヨ;
+
+        /// <summary>
+        /// 澶囨敞
+        /// </summary>
+        public string Remark { get; set; }
+
+        /// <summary>
+        /// 澶囨敞-鏌ヨ鍏崇郴杩愮畻绗� 
+        /// </summary>
+        public SearchFilterModeEnum Remark_FilterMode { get; set; }= SearchFilterModeEnum.妯$硦鏌ヨ;
+
+        /// <summary>
+        /// 鍒涘缓鏃堕棿
+        /// </summary>
+        //琛ㄧず鏄� 楂樼骇鏌ヨ鑼冨洿鏌ヨ鐗规��
+        [HighSearchRangeAttribute]
+        public List<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 List<string> LastModificationTime { get; set; }
+
+
+        /// <summary>
+        /// 淇敼浜篒D
+        /// </summary>
+        public string LastModifierId { get; set; }
+
+        /// <summary>
+        /// 淇敼浜篒D-鏌ヨ鍏崇郴杩愮畻绗� 
+        /// </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 List<string> DeletionTime { get; set; }
+
+
+        /// <summary>
+        /// 鍒涘缓浜�
+        /// </summary>
+        public string CreatorName { get; set; }
+
+        /// <summary>
+        /// 鍒涘缓浜�-鏌ヨ鍏崇郴杩愮畻绗� 
+        /// </summary>
+        public SearchFilterModeEnum CreatorName_FilterMode { get; set; }= SearchFilterModeEnum.妯$硦鏌ヨ;
+
+        /// <summary>
+        /// 鍒犻櫎澶囨敞
+        /// </summary>
+        public string DeleteRemark { get; set; }
+
+        /// <summary>
+        /// 鍒犻櫎澶囨敞-鏌ヨ鍏崇郴杩愮畻绗� 
+        /// </summary>
+        public SearchFilterModeEnum DeleteRemark_FilterMode { get; set; }= SearchFilterModeEnum.妯$硦鏌ヨ;
+
+        /// <summary>
+        /// 鎵╁睍瀛楁1
+        /// </summary>
+        public string ExtraField1 { get; set; }
+
+        /// <summary>
+        /// 鎵╁睍瀛楁1-鏌ヨ鍏崇郴杩愮畻绗� 
+        /// </summary>
+        public SearchFilterModeEnum ExtraField1_FilterMode { get; set; }= SearchFilterModeEnum.妯$硦鏌ヨ;
+
+        /// <summary>
+        /// 鎵╁睍瀛楁2
+        /// </summary>
+        public string ExtraField2 { get; set; }
+
+        /// <summary>
+        /// 鎵╁睍瀛楁2-鏌ヨ鍏崇郴杩愮畻绗� 
+        /// </summary>
+        public SearchFilterModeEnum ExtraField2_FilterMode { get; set; }= SearchFilterModeEnum.妯$硦鏌ヨ;
+
+        /// <summary>
+        /// 鎵╁睍瀛楁3
+        /// </summary>
+        public string ExtraField3 { get; set; }
+
+        /// <summary>
+        /// 鎵╁睍瀛楁3-鏌ヨ鍏崇郴杩愮畻绗� 
+        /// </summary>
+        public SearchFilterModeEnum ExtraField3_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.妯$硦鏌ヨ;
+
+ 
+} 
diff --git a/HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsContainerPlace/WmsContainerPlaceCreateDto.cs b/HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsContainerPlace/WmsContainerPlaceCreateDto.cs
new file mode 100644
index 0000000..537023d
--- /dev/null
+++ b/HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsContainerPlace/WmsContainerPlaceCreateDto.cs
@@ -0,0 +1,17 @@
+namespace CMS.Plugin.HIAWms.Application.Contracts.Dtos.WmsContainerPlace; 
+ 
+/// <summary> 
+/// 搴撲綅瀹瑰櫒鍏崇郴鍒涘缓鍙傛暟瀵硅薄 
+/// </summary> 
+public class WmsContainerPlaceCreateDto : WmsContainerPlaceCreateOrUpdateDtoBase 
+{ 
+    /// <summary> 
+    /// 鎺掑簭 
+    /// </summary> 
+    public virtual int? Sort { get; set; } 
+ 
+    /// <summary> 
+    /// 鏄惁绂佺敤 
+    /// </summary> 
+    public bool? IsDisabled { get; set; } = false; 
+} 
diff --git a/HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsContainerPlace/WmsContainerPlaceCreateOrUpdateDtoBase.cs b/HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsContainerPlace/WmsContainerPlaceCreateOrUpdateDtoBase.cs
new file mode 100644
index 0000000..4676901
--- /dev/null
+++ b/HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsContainerPlace/WmsContainerPlaceCreateOrUpdateDtoBase.cs
@@ -0,0 +1,95 @@
+using CMS.Plugin.HIAWms.Domain.Shared.Enums; 
+using System; 
+using Volo.Abp.Application.Dtos; 
+ 
+namespace CMS.Plugin.HIAWms.Application.Contracts.Dtos.WmsContainerPlace; 
+ 
+/// <summary> 
+/// 搴撲綅瀹瑰櫒鍏崇郴鍒涘缓鎴栨洿鏂板熀绫� 
+/// </summary> 
+public abstract class WmsContainerPlaceCreateOrUpdateDtoBase : ExtensibleEntityDto 
+{ 
+            /// <summary>
+        /// 搴撲綅缂栫爜
+        /// </summary>
+        public string PlaceNo { get; set; }
+
+        /// <summary>
+        /// 缂栫爜
+        /// </summary>
+        public string ContainerNo { get; set; }
+
+        /// <summary>
+        /// 鎺掑簭
+        /// </summary>
+        public int Sort { get; set; }
+
+        /// <summary>
+        /// 鍚嶇О
+        /// </summary>
+        public DateTime BindTime { get; set; }
+
+        /// <summary>
+        /// 鏄惁绂佺敤
+        /// </summary>
+        public bool? IsDisabled { get; set; }
+
+        /// <summary>
+        /// 澶囨敞
+        /// </summary>
+        public string? Remark { get; set; }
+
+        /// <summary>
+        /// 鍒涘缓浜篒D
+        /// </summary>
+        public string? CreatorId { get; set; }
+
+        /// <summary>
+        /// 淇敼浜篒D
+        /// </summary>
+        public string? LastModifierId { get; set; }
+
+        /// <summary>
+        /// 鍒涘缓浜�
+        /// </summary>
+        public string? CreatorName { get; set; }
+
+        /// <summary>
+        /// 鍒犻櫎澶囨敞
+        /// </summary>
+        public string? DeleteRemark { get; set; }
+
+        /// <summary>
+        /// 鎵╁睍瀛楁1
+        /// </summary>
+        public string? ExtraField1 { get; set; }
+
+        /// <summary>
+        /// 鎵╁睍瀛楁2
+        /// </summary>
+        public string? ExtraField2 { get; set; }
+
+        /// <summary>
+        /// 鎵╁睍瀛楁3
+        /// </summary>
+        public string? ExtraField3 { get; set; }
+
+        /// <summary>
+        /// 淇敼浜�
+        /// </summary>
+        public string? LastModifierName { get; set; }
+
+        /// <summary>
+        /// 鎿嶄綔澶囨敞
+        /// </summary>
+        public string? OperationRemark { get; set; }
+
+ 
+ 
+    /// <summary> 
+    /// Initializes a new instance of the <see cref="WmsContainerPlaceCreateOrUpdateDtoBase"/> class. 
+    /// </summary> 
+    public WmsContainerPlaceCreateOrUpdateDtoBase() : base(false) 
+    { 
+    } 
+} 
diff --git a/HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsContainerPlace/WmsContainerPlaceDto.cs b/HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsContainerPlace/WmsContainerPlaceDto.cs
new file mode 100644
index 0000000..1a3aae3
--- /dev/null
+++ b/HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsContainerPlace/WmsContainerPlaceDto.cs
@@ -0,0 +1,141 @@
+using CMS.Plugin.HIAWms.Domain.Shared.Enums; 
+using CmsQueryExtensions; 
+using Volo.Abp.Application.Dtos; 
+using Volo.Abp.Data; 
+using Volo.Abp.Domain.Entities; 
+ 
+ 
+namespace CMS.Plugin.HIAWms.Application.Contracts.Dtos.WmsContainerPlace; 
+ 
+/// <summary> 
+/// 搴撲綅瀹瑰櫒鍏崇郴鏁版嵁鍙傛暟瀵硅薄 
+/// </summary> 
+public  class WmsContainerPlaceDto:  ExtensibleEntityDto<Guid>, IHasConcurrencyStamp 
+{ 
+            /// <summary>
+        /// 搴撲綅缂栫爜
+        /// </summary>
+        public string PlaceNo { get; set; }
+
+        /// <summary>
+        /// 缂栫爜
+        /// </summary>
+        public string ContainerNo { get; set; }
+
+        /// <summary>
+        /// 鎺掑簭
+        /// </summary>
+        public int Sort { get; set; }
+
+        /// <summary>
+        /// 鍚嶇О
+        /// </summary>
+        public DateTime BindTime { get; set; }
+
+        /// <summary>
+        /// 鏄惁绂佺敤
+        /// </summary>
+        public bool? IsDisabled { get; set; }
+
+        /// <summary>
+        /// 澶囨敞
+        /// </summary>
+        public string? Remark { 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>
+        /// 淇敼浜篒D
+        /// </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? DeleteRemark { get; set; }
+
+        /// <summary>
+        /// 鎵╁睍瀛楁1
+        /// </summary>
+        public string? ExtraField1 { get; set; }
+
+        /// <summary>
+        /// 鎵╁睍瀛楁2
+        /// </summary>
+        public string? ExtraField2 { get; set; }
+
+        /// <summary>
+        /// 鎵╁睍瀛楁3
+        /// </summary>
+        public string? ExtraField3 { get; set; }
+
+        /// <summary>
+        /// 淇敼浜�
+        /// </summary>
+        public string? LastModifierName { get; set; }
+
+        /// <summary>
+        /// 鎿嶄綔澶囨敞
+        /// </summary>
+        public string? OperationRemark { 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/WmsContainerPlace/WmsContainerPlaceExportModel.cs b/HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsContainerPlace/WmsContainerPlaceExportModel.cs
new file mode 100644
index 0000000..3da5605
--- /dev/null
+++ b/HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsContainerPlace/WmsContainerPlaceExportModel.cs
@@ -0,0 +1,103 @@
+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.WmsContainerPlace; 
+ 
+/// <summary> 
+/// 搴撲綅瀹瑰櫒鍏崇郴瀵煎嚭妯″瀷 
+/// </summary> 
+public  class WmsContainerPlaceExportModel 
+{ 
+            /// <summary>
+        /// 搴撲綅缂栫爜
+        /// </summary>
+        [ExcelColumn(Name = "搴撲綅缂栫爜", Width = 25)]
+        public string PlaceNo { get; set; }
+
+        /// <summary>
+        /// 缂栫爜
+        /// </summary>
+        [ExcelColumn(Name = "缂栫爜", Width = 25)]
+        public string ContainerNo { get; set; }
+
+        /// <summary>
+        /// 鎺掑簭
+        /// </summary>
+        [ExcelColumn(Name = "鎺掑簭", Width = 25)]
+        public int Sort { get; set; }
+
+        /// <summary>
+        /// 鍚嶇О
+        /// </summary>
+        [ExcelColumn(Name = "鍚嶇О", Width = 25)]
+        public DateTime BindTime { get; set; }
+
+        /// <summary>
+        /// 鏄惁绂佺敤
+        /// </summary>
+        [ExcelColumn(Name = "鏄惁绂佺敤", Width = 25)]
+        public bool? IsDisabled { get; set; }
+
+        /// <summary>
+        /// 澶囨敞
+        /// </summary>
+        [ExcelColumn(Name = "澶囨敞", Width = 25)]
+        public string Remark { get; set; }
+
+        /// <summary>
+        /// 鍒涘缓浜�
+        /// </summary>
+        [ExcelColumn(Name = "鍒涘缓浜�", Width = 25)]
+        public string CreatorName { get; set; }
+
+        /// <summary>
+        /// 鍒犻櫎澶囨敞
+        /// </summary>
+        [ExcelColumn(Name = "鍒犻櫎澶囨敞", Width = 25)]
+        public string DeleteRemark { get; set; }
+
+        /// <summary>
+        /// 鎵╁睍瀛楁1
+        /// </summary>
+        [ExcelColumn(Name = "鎵╁睍瀛楁1", Width = 25)]
+        public string ExtraField1 { get; set; }
+
+        /// <summary>
+        /// 鎵╁睍瀛楁2
+        /// </summary>
+        [ExcelColumn(Name = "鎵╁睍瀛楁2", Width = 25)]
+        public string ExtraField2 { get; set; }
+
+        /// <summary>
+        /// 鎵╁睍瀛楁3
+        /// </summary>
+        [ExcelColumn(Name = "鎵╁睍瀛楁3", Width = 25)]
+        public string ExtraField3 { get; set; }
+
+        /// <summary>
+        /// 淇敼浜�
+        /// </summary>
+        [ExcelColumn(Name = "淇敼浜�", Width = 25)]
+        public string LastModifierName { get; set; }
+
+        /// <summary>
+        /// 鎿嶄綔澶囨敞
+        /// </summary>
+        [ExcelColumn(Name = "鎿嶄綔澶囨敞", Width = 25)]
+        public string OperationRemark { 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/WmsContainerPlace/WmsContainerPlaceUpdateDto.cs b/HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsContainerPlace/WmsContainerPlaceUpdateDto.cs
new file mode 100644
index 0000000..a2c2bd9
--- /dev/null
+++ b/HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsContainerPlace/WmsContainerPlaceUpdateDto.cs
@@ -0,0 +1,13 @@
+using Volo.Abp.Domain.Entities; 
+namespace CMS.Plugin.HIAWms.Application.Contracts.Dtos.WmsContainerPlace; 
+ 
+/// <summary> 
+/// 搴撲綅瀹瑰櫒鍏崇郴鏇存柊鍙傛暟瀵硅薄 
+/// </summary> 
+public class WmsContainerPlaceUpdateDto : WmsContainerPlaceCreateOrUpdateDtoBase, IHasConcurrencyStamp 
+{ 
+   /// <summary> 
+    /// 骞跺彂鎴� 
+    /// </summary> 
+    public string ConcurrencyStamp { get; set; } 
+} 
diff --git a/HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsContainerPlace/WmsContainerPlacesImportModel.cs b/HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsContainerPlace/WmsContainerPlacesImportModel.cs
new file mode 100644
index 0000000..33e108b
--- /dev/null
+++ b/HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsContainerPlace/WmsContainerPlacesImportModel.cs
@@ -0,0 +1,33 @@
+ 
+namespace CMS.Plugin.HIAWms.Application.Contracts.Dtos.WmsContainerPlace 
+{ 
+    /// <summary> 
+    /// 搴撲綅瀹瑰櫒鍏崇郴瀵煎叆妯″瀷 
+    /// </summary> 
+    public class WmsContainerPlacesImportModel 
+    { 
+        private List<WmsContainerPlaceImportModel> _WmsContainerPlaces = new(); 
+ 
+        public List<WmsContainerPlaceImportModel> WmsContainerPlaces 
+        { 
+            get => _WmsContainerPlaces; 
+            set 
+            { 
+                _WmsContainerPlaces = value; 
+                var rowIndex = 2; 
+                _WmsContainerPlaces?.ForEach(x => x.RowIndex = rowIndex++); 
+            } 
+        } 
+ 
+        /// <summary> 
+        /// 搴撲綅瀹瑰櫒鍏崇郴瀵煎叆妯″瀷 
+        /// </summary> 
+        public class WmsContainerPlaceImportModel : WmsContainerPlaceExportModel 
+        { 
+            /// <summary> 
+            /// 琛屽彿 
+            /// </summary> 
+            public int RowIndex { get; set; } 
+        } 
+    } 
+} 
diff --git a/HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsMaterialStocks/WmsMaterialStockCreateOrUpdateDtoBase.cs b/HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsMaterialStocks/WmsMaterialStockCreateOrUpdateDtoBase.cs
index c6da695..fd3e1ed 100644
--- a/HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsMaterialStocks/WmsMaterialStockCreateOrUpdateDtoBase.cs
+++ b/HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsMaterialStocks/WmsMaterialStockCreateOrUpdateDtoBase.cs
@@ -96,7 +96,7 @@
     /// <summary>
     /// 鏄惁绌烘墭
     /// </summary>
-    public YesNoEnum EmptyContainer { get; protected set; }
+    public YesNoEnum EmptyContainer { get; set; }
 
     /// <summary>
     /// 鍏ュ簱鏃堕棿
diff --git a/HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsMaterials/ExportWmsMaterialModel.cs b/HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsMaterials/ExportWmsMaterialModel.cs
index 5c5e666..b6c268d 100644
--- a/HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsMaterials/ExportWmsMaterialModel.cs
+++ b/HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsMaterials/ExportWmsMaterialModel.cs
@@ -17,7 +17,7 @@
         /// 鐗╂枡缂栫爜锛堝敮涓�鏍囪瘑锛�
         /// </summary>
         [Description("鐗╂枡缂栫爜锛堝敮涓�鏍囪瘑锛�")]
-        public string MaterialCode { get; set; }
+        public string MaterialNo { get; set; }
 
         /// <summary>
         /// 鐗╂枡鍚嶇О
diff --git a/HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsMaterials/GetWmsMaterialsInput.cs b/HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsMaterials/GetWmsMaterialsInput.cs
index 5427e01..714696f 100644
--- a/HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsMaterials/GetWmsMaterialsInput.cs
+++ b/HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsMaterials/GetWmsMaterialsInput.cs
@@ -21,7 +21,7 @@
     /// <summary>
     /// 鐗╂枡缂栫爜锛堝敮涓�鏍囪瘑锛�
     /// </summary>
-    public string MaterialCode { get; set; }
+    public string MaterialNo { get; set; }
 
     /// <summary>
     /// 鐗╂枡鍚嶇О
diff --git a/HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsMaterials/WmsMaterialCreateOrUpdateDtoBase.cs b/HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsMaterials/WmsMaterialCreateOrUpdateDtoBase.cs
index cfe0a7d..934c870 100644
--- a/HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsMaterials/WmsMaterialCreateOrUpdateDtoBase.cs
+++ b/HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsMaterials/WmsMaterialCreateOrUpdateDtoBase.cs
@@ -11,7 +11,7 @@
     /// <summary>
     /// 鐗╂枡缂栫爜锛堝敮涓�鏍囪瘑锛�
     /// </summary>
-    public string MaterialCode { get; set; }
+    public string MaterialNo { get; set; }
 
     /// <summary>
     /// 鐗╂枡鍚嶇О
diff --git a/HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsMaterials/WmsMaterialDto.cs b/HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsMaterials/WmsMaterialDto.cs
index c6044db..e7512b7 100644
--- a/HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsMaterials/WmsMaterialDto.cs
+++ b/HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsMaterials/WmsMaterialDto.cs
@@ -13,7 +13,7 @@
     /// <summary>
     /// 鐗╂枡缂栫爜锛堝敮涓�鏍囪瘑锛�
     /// </summary>
-    public string MaterialCode { get; set; }
+    public string MaterialNo { get; set; }
 
     /// <summary>
     /// 鐗╂枡鍚嶇О
diff --git a/HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsMaterials/WmsMaterialsExportModel.cs b/HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsMaterials/WmsMaterialsExportModel.cs
index e34c158..fe081f9 100644
--- a/HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsMaterials/WmsMaterialsExportModel.cs
+++ b/HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsMaterials/WmsMaterialsExportModel.cs
@@ -16,7 +16,7 @@
         /// </summary>
         /// <example>MAT-2023-001</example>
         [ExcelColumn(Name = "鐗╂枡缂栫爜", Width = 25)]
-        public string MaterialCode { get; set; }
+        public string MaterialNo { get; set; }
 
         /// <summary>
         /// 鐗╂枡鍚嶇О
diff --git a/HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Services/IWmsCommonAppService.cs b/HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Services/IWmsCommonAppService.cs
new file mode 100644
index 0000000..83eba00
--- /dev/null
+++ b/HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Services/IWmsCommonAppService.cs
@@ -0,0 +1,21 @@
+锘縰sing CMS.Plugin.HIAWms.Application.Contracts.Dtos.WmsPlaces;
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace CMS.Plugin.HIAWms.Application.Contracts.Services
+{
+    public interface IWmsCommonAppService
+    {
+        /// <summary>
+        /// 鏌ユ壘鍙敤搴撲綅
+        /// </summary>
+        /// <param name="materialModel"></param>
+        /// <param name="requiredNum"></param>
+        /// <param name="materialNo"></param>
+        /// <returns></returns>
+        Task<Dictionary<WmsPlaceDto, int>> FindAvailablePlacesAsync(string materialModel, int requiredNum, string materialNo = "");
+    }
+}
diff --git a/HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Services/IWmsContainerPlaceAppService.cs b/HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Services/IWmsContainerPlaceAppService.cs
new file mode 100644
index 0000000..685f595
--- /dev/null
+++ b/HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Services/IWmsContainerPlaceAppService.cs
@@ -0,0 +1,46 @@
+using CMS.Plugin.HIAWms.Application.Contracts.Dtos.WmsContainerPlace; 
+using Volo.Abp.Application.Services; 
+ 
+namespace CMS.Plugin.HIAWms.Application.Contracts.Services; 
+ 
+/// <summary> 
+/// 搴撲綅瀹瑰櫒鍏崇郴搴旂敤鏈嶅姟鎺ュ彛 
+/// </summary> 
+public interface IWmsContainerPlaceAppService : ICrudAppService<WmsContainerPlaceDto, Guid, GetWmsContainerPlaceInput, WmsContainerPlaceCreateDto, WmsContainerPlaceUpdateDto> 
+{ 
+    /// <summary> 
+    /// 鍏嬮殕搴撲綅瀹瑰櫒鍏崇郴 
+    /// </summary> 
+    /// <param name="ids"></param> 
+    /// <returns></returns> 
+    Task<List<WmsContainerPlaceDto>> CloneAsync(IEnumerable<Guid> ids); 
+ 
+    /// <summary> 
+    /// 鍒犻櫎搴撲綅瀹瑰櫒鍏崇郴 
+    /// </summary> 
+    /// <param name="ids"></param> 
+    /// <returns></returns> 
+    Task DeleteManyAsync(IEnumerable<Guid> ids); 
+ 
+    /// <summary> 
+    /// 璋冩暣鎺掑簭搴撲綅瀹瑰櫒鍏崇郴 
+    /// </summary> 
+    /// <param name="id"></param> 
+    /// <param name="sort"></param> 
+    /// <returns></returns> 
+    Task AdjustSortAsync(Guid id, int sort); 
+ 
+    /// <summary> 
+    /// 瀵煎叆搴撲綅瀹瑰櫒鍏崇郴 
+    /// </summary> 
+    /// <param name="input"></param> 
+    /// <returns></returns> 
+    Task ImportAsync(WmsContainerPlacesImportModel input); 
+ 
+    /// <summary> 
+    /// 瀵煎嚭搴撲綅瀹瑰櫒鍏崇郴 
+    /// </summary> 
+    /// <param name="input"></param> 
+    /// <returns></returns> 
+    Task<(Dictionary<string, object> Sheets, string FileName)> ExportAsync(GetWmsContainerPlaceInput input); 
+} 
diff --git a/HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Services/IWmsEnumAppService.cs b/HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Services/IWmsEnumAppService.cs
index 00bb43d..06ef88c 100644
--- a/HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Services/IWmsEnumAppService.cs
+++ b/HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Services/IWmsEnumAppService.cs
@@ -1,5 +1,7 @@
-锘縰sing CMS.Plugin.HIAWms.Application.Contracts.Dtos.WmsEnumDto;
+锘縰sing CMS.Plugin.HIAWms.Application.Contracts.Dtos.CommonDto;
+using CMS.Plugin.HIAWms.Application.Contracts.Dtos.WmsEnumDto;
 using CMS.Plugin.HIAWms.Application.Contracts.Dtos.WmsStores;
+using CMS.Plugin.HIAWms.Domain.Shared.Enums;
 using CmsQueryExtensions;
 using static CMS.Plugin.HIAWms.Application.Contracts.Dtos.WmsAreas.WmsAreaCreateOrUpdateDtoBase;
 using static CMS.Plugin.HIAWms.Application.Contracts.Dtos.WmsPlaces.WmsPlaceCreateOrUpdateDtoBase;
@@ -34,5 +36,19 @@
         /// </summary>
         /// <returns></returns>
         Task<List<PlaceAisleForListOuptut>> GetAisleListAsync();
+
+
+        /// <summary>
+        /// 鑾峰彇鏈哄瀷
+        /// </summary>
+        /// <returns></returns>
+        Task<List<MaterialModelOutput>> GetMaterialModeListAsync();
+
+        /// <summary>
+        /// 鑾峰彇搴撲綅鍒楄〃
+        /// </summary>
+        /// <param name="placeType"></param>
+        /// <returns></returns>
+        Task<List<PlaceListOutput>> GetPlaceListForSelectAsync(PlaceTypeEnum placeType);
     }
 }
diff --git a/HIAWms/server/src/CMS.Plugin.HIAWms.Application/Implements/WmsBindInStockAssService.cs b/HIAWms/server/src/CMS.Plugin.HIAWms.Application/Implements/WmsBindInStockAssService.cs
index 5be0b4f..097119d 100644
--- a/HIAWms/server/src/CMS.Plugin.HIAWms.Application/Implements/WmsBindInStockAssService.cs
+++ b/HIAWms/server/src/CMS.Plugin.HIAWms.Application/Implements/WmsBindInStockAssService.cs
@@ -1,4 +1,15 @@
 锘縰sing CMS.Plugin.HIAWms.Application.Contracts.Dtos.BindInstockDto;
+using CMS.Plugin.HIAWms.Application.Contracts.Dtos.WmsMaterialStocks;
+using CMS.Plugin.HIAWms.Application.Contracts.Dtos.WmsTask;
+using CMS.Plugin.HIAWms.Application.Contracts.Services;
+using CMS.Plugin.HIAWms.Domain.Shared.Enums;
+using CMS.Plugin.HIAWms.Domain.WmsContainerPlace;
+using CMS.Plugin.HIAWms.Domain.WmsContainers;
+using CMS.Plugin.HIAWms.Domain.WmsMaterialContainer;
+using CMS.Plugin.HIAWms.Domain.WmsMaterialInfos;
+using CMS.Plugin.HIAWms.Domain.WmsMaterials;
+using CMS.Plugin.HIAWms.Domain.WmsPlaces;
+using CMS.Plugin.HIAWms.Domain.WmsTask;
 using System;
 using System.Collections.Generic;
 using System.Linq;
@@ -13,21 +24,161 @@
     /// </summary>
     public class WmsBindInStockAssService : CMSPluginAppService
     {
-        public async Task BindMaterialContaienrAsync(BindMaterialInput input)
+        private readonly IWmsMaterialRepository _wmsMaterialRepository;
+        private readonly IWmsContainerRepository _wmsContainerRepository;
+        private readonly IWmsPlaceRepository _wmsPlaceRepository;
+        private readonly IWmsMaterialContainerRepository _wmsMaterialContainerRepository;
+        private readonly IWmsContainerPlaceRepository _wmsContainerPlaceRepository;
+        private readonly IWmsMaterialInfoRepository _wmsMaterialInfoRepository;
+        private readonly IWmsMaterialStockAppService _wmsMaterialStockAppService;
+        private readonly IWmsCommonAppService _wmsCommonAppService;
+        private readonly IWmsTaskRepository _wmsTaskRepository;
+        private readonly IWmsTaskAppService _wmsTaskAppService;
+
+        public WmsBindInStockAssService(IWmsMaterialRepository wmsMaterialRepository,
+            IWmsContainerRepository wmsContainerRepository,
+            IWmsPlaceRepository wmsPlaceRepository
+,
+            IWmsMaterialContainerRepository wmsMaterialContainerRepository,
+            IWmsContainerPlaceRepository wmsContainerPlaceRepository,
+            IWmsMaterialInfoRepository wmsMaterialInfoRepository,
+            IWmsMaterialStockAppService wmsMaterialStockAppService,
+            IWmsCommonAppService wmsCommonAppService,
+            IWmsTaskRepository wmsTaskRepository,
+            IWmsTaskAppService wmsTaskAppService)
+        {
+            _wmsMaterialRepository = wmsMaterialRepository;
+            _wmsContainerRepository = wmsContainerRepository;
+            _wmsPlaceRepository = wmsPlaceRepository;
+            _wmsMaterialContainerRepository = wmsMaterialContainerRepository;
+            _wmsContainerPlaceRepository = wmsContainerPlaceRepository;
+            _wmsMaterialInfoRepository = wmsMaterialInfoRepository;
+            _wmsMaterialStockAppService = wmsMaterialStockAppService;
+            _wmsCommonAppService = wmsCommonAppService;
+            _wmsTaskRepository = wmsTaskRepository;
+            _wmsTaskAppService = wmsTaskAppService;
+        }
+
+        public async Task BindMaterialContaienrAsync(BindInstockInput input)
         {
             if (string.IsNullOrEmpty(input.MaterialModel)) { throw new UserFriendlyException("璇烽�夋嫨搴撲綅缂栧彿"); }
             if (string.IsNullOrEmpty(input.MaterialBatch)) { throw new UserFriendlyException("璇疯緭鍏ユ壒娆″彿"); }
-            if (input.MaterialStockNumber<=0) { throw new UserFriendlyException("鍏ュ簱鏁伴噺蹇呴』澶т簬0"); }
+            if (input.StockNumber <= 0) { throw new UserFriendlyException("鍏ュ簱鏁伴噺蹇呴』澶т簬0"); }
+            #region 搴熷純
+            //string containerNo = DateTime.Now.ToString("yyMMddHHmmss") + new Random(Guid.NewGuid().GetHashCode()).Next(100, 9999).ToString();
 
+            //// 5. 鍒涘缓鎵樼洏
+            //var container = new WmsContainer
+            //{
+            //    ContainerNo = containerNo,
+            //    ContainerType = Domain.Shared.Enums.ContainerTypeEnum.XUNI,
+            //    ContainerStatus = Domain.Shared.Enums.ContainerStatusEnum.ZUPANG,
+            //};
+            //await _wmsContainerRepository.InsertAsync(container);
 
+            //var materialContainerList = new List<WmsMaterialContainer>();
+            //var materialInfoList = new List<WmsMaterialInfo>();
+            //for (int i = 0; i < input.MaterialStockNumber; i++)
+            //{
+            //    string materialId = Guid.NewGuid().ToString("N");
+            //    var materialContainer = new WmsMaterialContainer
+            //    {
+            //        MaterialId = materialId,
+            //        ContainerNo = containerNo,
+            //    };
+            //    materialContainerList.Add(materialContainer);
+
+            //    var materialInfo = new WmsMaterialInfo
+            //    {
+
+            //    };
+            //    materialInfoList.Add(materialInfo);
+            //}
+
+            //await _wmsMaterialContainerRepository.InsertManyAsync(materialContainerList);
+            //await _wmsMaterialInfoRepository.InsertManyAsync(materialInfoList);
+            #endregion
+
+            var material = await _wmsMaterialRepository.FindByModelAsync(input.MaterialModel);
+            if (material == null)
+            {
+                throw new UserFriendlyException($"鐗╂枡鍨嬪彿 {input.MaterialModel} 涓嶅瓨鍦紒");
+            }
+
+            // 5. 鍒涘缓鎵樼洏
+            var containerNo = input.ContainerNo;
+            if (string.IsNullOrEmpty(containerNo))
+            {
+                containerNo = DateTime.Now.ToString("yyMMddHHmmss") + new Random(Guid.NewGuid().GetHashCode()).Next(100, 9999).ToString();
+            }
+            var container = new WmsContainer
+            {
+                ContainerNo = containerNo,
+                ContainerType = Domain.Shared.Enums.ContainerTypeEnum.XUNI,
+                ContainerStatus = Domain.Shared.Enums.ContainerStatusEnum.ZUPANG,
+            };
+            await _wmsContainerRepository.InsertAsync(container);
+
+            var materialStock = new WmsMaterialStockCreateDto
+            {
+                MaterialNo = material.MaterialNo,
+                MaterialName = material.MaterialName,
+                MaterialBatch = input.MaterialBatch,
+                StockNumber = input.StockNumber,
+                CheckStatus = Domain.Shared.Enums.MaterialCheckStatusEnum.HEGE,
+                IsLock = Domain.Shared.Enums.YesNoEnum.N,
+                PlaceNo = input.PlaceNo,
+                ContainerNo = containerNo,
+                EmptyContainer = Domain.Shared.Enums.YesNoEnum.N,
+            };
+            await _wmsMaterialStockAppService.CreateAsync(materialStock);
         }
 
+
+        /// <summary>
+        /// 缁勭洏鍏ュ簱
+        /// </summary>
+        /// <param name="input"></param>
+        /// <returns></returns>
+        /// <exception cref="UserFriendlyException"></exception>
         public async Task BindInStockAsync(BindInstockInput input)
         {
-            if(string.IsNullOrEmpty(input.PlaceNo)) { throw new UserFriendlyException("璇烽�夋嫨搴撲綅缂栧彿"); }
+            if (string.IsNullOrEmpty(input.PlaceNo)) { throw new UserFriendlyException("璇烽�夋嫨搴撲綅缂栧彿"); }
 
-            var bindInput = ObjectMapper.Map<BindInstockInput, BindMaterialInput>(input);
-            await BindMaterialContaienrAsync(bindInput);
+            input.ContainerNo = DateTime.Now.ToString("yyMMddHHmmss") + new Random(Guid.NewGuid().GetHashCode()).Next(100, 9999).ToString();
+            await BindMaterialContaienrAsync(input);
+
+            // 鐢熸垚浠诲姟
+            var plactDict = await _wmsCommonAppService.FindAvailablePlacesAsync(input.MaterialNo, input.StockNumber);
+            var taskList = new List<WmsTask>();
+            foreach (var kvp in plactDict)
+            {
+                var place = kvp.Key;    // WmsPlace瀵硅薄
+                var quantity = kvp.Value; // 鍒嗛厤鏁伴噺
+
+                for (int i = 0; i < quantity; i++)
+                {
+                    var task = new WmsTask
+                    {
+                        TaskNo = $"RK_{DateTime.Now:yyyyMMddHHmmss}_{Guid.NewGuid().ToString("N").Substring(0, 6)}",
+                        ContainerNo = input.ContainerNo,
+                        SourcePlace = input.PlaceNo,
+                        ToPlace = place.PlaceNo,
+                        TaskType = TaskTypeEnum.RUKU,
+                        SonTaskType = SonTaskTypeEnum.RGRUKU,
+                        TaskStatus = WmsTaskStatus.WEIZHIXING,
+                        TaskLevel = 999,
+                        Aisle = 1,
+                        DodeviceId = 0,
+                        TaskDodeviceStatus = TaskDodeviceStatus.SrmNoStart,
+                        IsNextTask = (int)YesNoEnum.Y,
+                        IsRead = true,
+                        MutableParam1 = input.MaterialModel,
+                    };
+                    taskList.Add(task);
+                }
+            }
+            await _wmsTaskRepository.InsertManyAsync(taskList);
         }
     }
 }
diff --git a/HIAWms/server/src/CMS.Plugin.HIAWms.Application/Implements/WmsCommonAppService.cs b/HIAWms/server/src/CMS.Plugin.HIAWms.Application/Implements/WmsCommonAppService.cs
index e8ef141..63d57b9 100644
--- a/HIAWms/server/src/CMS.Plugin.HIAWms.Application/Implements/WmsCommonAppService.cs
+++ b/HIAWms/server/src/CMS.Plugin.HIAWms.Application/Implements/WmsCommonAppService.cs
@@ -1,4 +1,6 @@
 锘縰sing CMS.Plugin.HIAWms.Application.Contracts.Dtos.CommonDto;
+using CMS.Plugin.HIAWms.Application.Contracts.Dtos.WmsPlaces;
+using CMS.Plugin.HIAWms.Application.Contracts.Services;
 using CMS.Plugin.HIAWms.Domain.WmsMaterials;
 using CMS.Plugin.HIAWms.Domain.WmsMaterialStocks;
 using CMS.Plugin.HIAWms.Domain.WmsPlaces;
@@ -14,7 +16,7 @@
     /// <summary>
     /// 鍏叡鎿嶄綔鏈嶅姟
     /// </summary>
-    public class WmsCommonAppService : CMSPluginAppService
+    public class WmsCommonAppService : CMSPluginAppService,IWmsCommonAppService
     {
         private readonly IWmsMaterialRepository _wmsMaterialRepository;
         private readonly IWmsPlaceRepository _wmsPlaceRepository;
@@ -30,17 +32,6 @@
             _wmsMaterialStockRepository = wmsMaterialStockRepository;
         }
 
-        public async Task<List<MaterialModelOutput>> GetMaterialModeListAsync()
-        {
-            var materialList = await _wmsMaterialRepository.GetMaterialListAsync(new WmsMaterial());
-            if (materialList == null || materialList.Count <= 0) return new List<MaterialModelOutput>(); ;
-
-            return materialList.Select(material => new MaterialModelOutput
-            {
-                MaterialModel = material.MaterialModel,
-                MaterialModelDesc = material.MaterialModel
-            }).ToList();
-        }
 
         /// <summary>
         /// 鏌ユ壘绌哄簱浣�
@@ -50,11 +41,12 @@
         /// <param name="requiredNum"></param>
         /// <returns></returns>
         /// <exception cref="UserFriendlyException"></exception>
-        public async Task<Dictionary<WmsPlace, int>> FindAvailablePlacesAsync(string materialModel, string materialNo, int requiredNum)
+        public async Task<Dictionary<WmsPlaceDto, int>> FindAvailablePlacesAsync(string materialModel,int requiredNum, string materialNo="" )
         {
             // 1. 鑾峰彇鎵�鏈夊簱瀛樺拰搴撲綅淇℃伅
             var stockList = await _wmsMaterialStockRepository.GetListAsync(new WmsMaterialStock());
-            var allPlaceList = await _wmsPlaceRepository.GetListAsync(new WmsPlace());
+
+            var allPlaceList = ObjectMapper.Map<List<WmsPlace>, List<WmsPlaceDto>>(await _wmsPlaceRepository.GetListAsync(new WmsPlace()));
 
             // 2. 鏌ユ壘鐩稿悓鐗╂枡鍨嬪彿鍜岀紪鍙风殑搴撳瓨锛堟寜搴撳瓨閲忛檷搴忥級
             var sameModelStocks = stockList
@@ -63,7 +55,7 @@
                 .OrderByDescending(x => x.StockNumber)
                 .ToList();
 
-            var availablePlaces = new Dictionary<WmsPlace, int>();
+            var availablePlaces = new Dictionary<WmsPlaceDto, int>();
             int remainingNum = requiredNum;
 
             // 3. 浼樺厛妫�鏌ュ凡鏈夊簱瀛樼殑搴撲綅鏄惁鑳藉瓨鏀撅紙鐩稿悓 MaterialNo锛�
@@ -108,5 +100,50 @@
 
             return availablePlaces;
         }
+
+        /// <summary>
+        /// 鏌ユ壘搴撳瓨
+        /// </summary>
+        /// <param name="materialModel"></param>
+        /// <param name="requiredNum"></param>
+        /// <param name="materialNo"></param>
+        /// <returns></returns>
+        public async Task<Dictionary<string, int>> FindStockAsync(string materialModel, int requiredNum, string materialNo = "")
+        {
+            // 1. 鑾峰彇鎵�鏈夊簱瀛橈紙鎺掗櫎閿佸畾搴撳瓨锛�
+            var stockList = (await _wmsMaterialStockRepository.GetListAsync(new WmsMaterialStock()))
+                .Where(x => x.IsLock == Domain.Shared.Enums.YesNoEnum.N)
+                .ToList();
+
+            // 2. 绛涢�夊尮閰嶇墿鏂�
+            var availableStocks = stockList
+                .Where(x => x.MaterialModel == materialModel)
+                .WhereIf(!string.IsNullOrEmpty(materialNo), x => x.MaterialNo == materialNo)
+                .OrderBy(x => x.StockNumber) // 浼樺厛浠庡簱瀛樺皯鐨勫簱浣嶅嚭
+                .ToList();
+
+            // 3. 妫�鏌ユ�诲簱瀛樻槸鍚﹁冻澶�
+            int totalAvailable = availableStocks.Sum(x => x.StockNumber);
+            if (totalAvailable < requiredNum)
+            {
+                throw new UserFriendlyException(
+                    $"搴撳瓨涓嶈冻锛侀渶姹�: {requiredNum}, 鍙敤: {totalAvailable}, 缂�: {requiredNum - totalAvailable}");
+            }
+
+            // 4. 璁$畻鍚勫簱浣嶅嚭搴撴暟閲�
+            var allocation = new Dictionary<string, int>(); // <搴撲綅鍙�, 鍑哄簱鏁�>
+            int remaining = requiredNum;
+
+            foreach (var stock in availableStocks)
+            {
+                if (remaining <= 0) break;
+
+                int deductAmount = Math.Min(stock.StockNumber, remaining);
+                allocation.Add(stock.PlaceNo, deductAmount);
+                remaining -= deductAmount;
+            }
+
+            return allocation;
+        }
     }
 }
diff --git a/HIAWms/server/src/CMS.Plugin.HIAWms.Application/Implements/WmsContainerPlaceAppService.cs b/HIAWms/server/src/CMS.Plugin.HIAWms.Application/Implements/WmsContainerPlaceAppService.cs
new file mode 100644
index 0000000..5f50a02
--- /dev/null
+++ b/HIAWms/server/src/CMS.Plugin.HIAWms.Application/Implements/WmsContainerPlaceAppService.cs
@@ -0,0 +1,430 @@
+using CMS.Plugin.HIAWms.Application.Contracts.Dtos.WmsContainerPlace;
+using CMS.Plugin.HIAWms.Application.Contracts.Services;
+using CMS.Plugin.HIAWms.Domain.Shared;
+using CmsQueryExtensions;
+using CMS.Plugin.HIAWms.Domain.WmsContainerPlace;
+using CmsQueryExtensions.Extension;
+using System.Linq.Expressions;
+using Volo.Abp;
+using Volo.Abp.Application.Dtos;
+using Volo.Abp.Data;
+using Volo.Abp.ObjectExtending;
+using Volo.Abp.ObjectMapping;
+
+namespace CMS.Plugin.HIAWms.Application.Implements;
+
+/// <summary> 
+/// 搴撲綅瀹瑰櫒鍏崇郴搴旂敤鏈嶅姟 
+/// </summary> 
+public class WmsContainerPlaceAppService : CMSPluginAppService, IWmsContainerPlaceAppService
+{
+    private readonly IWmsContainerPlaceRepository wmsContainerPlaceRepository;
+
+    /// <summary> 
+    /// Initializes a new instance of the <see cref="WmsContainerPlaceAppService"/> class. 
+    /// </summary> 
+    /// <param name="WmsContainerPlaceRepository">The task job repository.</param> 
+    public WmsContainerPlaceAppService(IWmsContainerPlaceRepository _WmsContainerPlaceRepository)
+    {
+        wmsContainerPlaceRepository = _WmsContainerPlaceRepository;
+    }
+
+    /// <summary> 
+    /// 鑾峰彇鎸囧畾搴撲綅瀹瑰櫒鍏崇郴 
+    /// </summary> 
+    /// <param name="id"></param> 
+    /// <returns></returns> 
+    public virtual async Task<WmsContainerPlaceDto> GetAsync(Guid id)
+    {
+        return ObjectMapper.Map<WmsContainerPlace, WmsContainerPlaceDto>(await wmsContainerPlaceRepository.GetAsync(id));
+    }
+
+    /// <summary> 
+    /// 鍒嗛〉鑾峰彇搴撲綅瀹瑰櫒鍏崇郴 
+    /// </summary> 
+    /// <param name="input"></param> 
+    /// <returns></returns> 
+    public virtual async Task<PagedResultDto<WmsContainerPlaceDto>> GetListAsync(GetWmsContainerPlaceInput input)
+    {
+        Check.NotNull(input, nameof(input));
+
+        if (input.Sorting.IsNullOrWhiteSpace())
+        {
+            input.Sorting = nameof(WmsContainerPlace.Sort);
+        }
+
+        #region 鍔ㄦ�佹瀯閫犳煡璇㈡潯浠�  
+
+        //鍔ㄦ�佹瀯閫犳煡璇㈡潯浠�  
+        var whereConditions = DynamicGetQueryParams(input);
+
+        #endregion
+
+        var count = await wmsContainerPlaceRepository.GetCountAsync(whereConditions);
+        var list = await wmsContainerPlaceRepository.GetListAsync(whereConditions, input.Sorting, input.MaxResultCount, input.SkipCount);
+
+        return new PagedResultDto<WmsContainerPlaceDto>(count, ObjectMapper.Map<List<WmsContainerPlace>, List<WmsContainerPlaceDto>>(list));
+    }
+
+    /// <summary>  
+    /// 鍔ㄦ�佹瀯閫犳煡璇㈡潯浠�  
+    /// </summary>  
+    /// <param name="input">杈撳叆鍙傛暟</param>  
+    /// <returns></returns>  
+    private FunReturnResultModel<Expression<Func<WmsContainerPlace, bool>>> DynamicGetQueryParams(GetWmsContainerPlaceInput input)
+    {
+        //鍔ㄦ�佹瀯閫犳煡璇㈡潯浠�  
+        var whereConditions = WhereConditionsExtensions.GetWhereConditions<WmsContainerPlace, GetWmsContainerPlaceInput>(input);
+        if (!whereConditions.IsSuccess)
+        {
+            throw new Exception("鍔ㄦ�佹瀯閫犳煡璇㈡潯浠跺け璐�:" + whereConditions.ErrMsg);
+        }
+
+        //涔熷彲鍐嶆鑷畾涔夋瀯寤烘煡璇㈡潯浠�  
+        Expression<Func<WmsContainerPlace, bool>> extendExpression = a => a.IsDeleted == false;
+        // 浣跨敤 System.Linq.PredicateBuilder 鐨� And 
+        var pres = (System.Linq.Expressions.Expression<Func<WmsContainerPlace, bool>>)(whereConditions.data);
+        whereConditions.data = System.Linq.PredicateBuilder.And(pres, extendExpression);
+
+        return whereConditions;
+    }
+
+    /// <summary> 
+    /// 鏂板缓搴撲綅瀹瑰櫒鍏崇郴 
+    /// </summary> 
+    /// <param name="input"></param> 
+    /// <returns></returns> 
+    /// <exception cref="UserFriendlyException"></exception> 
+    public virtual async Task<WmsContainerPlaceDto> CreateAsync(WmsContainerPlaceCreateDto input)
+    {
+        await CheckCreateOrUpdateDtoAsync(input);
+
+        var exist = await wmsContainerPlaceRepository.NameExistAsync(input.PlaceNo);
+        if (exist)
+        {
+            throw new UserFriendlyException(L[CMSPluginDomainErrorCodes.NameAlreadyExists, input.PlaceNo]);
+        }
+
+        var maxSort = await wmsContainerPlaceRepository.GetMaxSortAsync();
+        var sort = input.Sort ?? maxSort;
+
+        var insertObj = ObjectMapper.Map<WmsContainerPlaceCreateDto, WmsContainerPlace>(input);
+        insertObj.Sort = sort;
+        input.MapExtraPropertiesTo(insertObj, MappingPropertyDefinitionChecks.None);
+
+        await wmsContainerPlaceRepository.InsertAsync(insertObj);
+
+        //if (input.Sort.HasValue && insertObj.Sort != maxSort) 
+        //{ 
+        //    await AdjustSortAsync(insertObj.Id, insertObj.Sort); 
+        //} 
+
+        return ObjectMapper.Map<WmsContainerPlace, WmsContainerPlaceDto>(insertObj);
+    }
+
+    /// <summary> 
+    /// 鏇存柊搴撲綅瀹瑰櫒鍏崇郴 
+    /// </summary> 
+    /// <param name="id"></param> 
+    /// <param name="input"></param> 
+    /// <returns></returns> 
+    /// <exception cref="UserFriendlyException"></exception> 
+    public virtual async Task<WmsContainerPlaceDto> UpdateAsync(Guid id, WmsContainerPlaceUpdateDto input)
+    {
+        await CheckCreateOrUpdateDtoAsync(input);
+
+        var updateObj = await wmsContainerPlaceRepository.GetAsync(id);
+        var exist = await wmsContainerPlaceRepository.NameExistAsync(input.PlaceNo, updateObj.Id);
+        if (exist)
+        {
+            throw new UserFriendlyException(L[CMSPluginDomainErrorCodes.NameAlreadyExists, input.PlaceNo]);
+        }
+
+        updateObj.SetConcurrencyStampIfNotNull(input.ConcurrencyStamp);
+        input.MapExtraPropertiesTo(updateObj, MappingPropertyDefinitionChecks.None);
+
+        updateObj.PlaceNo = input.PlaceNo;
+        updateObj.ContainerNo = input.ContainerNo;
+        updateObj.IsDisabled = input.IsDisabled;
+        updateObj.Remark = input.Remark;
+        updateObj.CreatorName = input.CreatorName;
+        updateObj.DeleteRemark = input.DeleteRemark;
+        updateObj.ExtraField1 = input.ExtraField1;
+        updateObj.ExtraField2 = input.ExtraField2;
+        updateObj.ExtraField3 = input.ExtraField3;
+        updateObj.LastModifierName = input.LastModifierName;
+        updateObj.OperationRemark = input.OperationRemark;
+
+
+        await wmsContainerPlaceRepository.UpdateAsync(updateObj);
+
+        return ObjectMapper.Map<WmsContainerPlace, WmsContainerPlaceDto>(updateObj);
+    }
+
+    /// <summary> 
+    /// 鍏嬮殕搴撲綅瀹瑰櫒鍏崇郴 
+    /// </summary> 
+    /// <param name="ids"></param> 
+    /// <returns></returns> 
+    public async Task<List<WmsContainerPlaceDto>> CloneAsync(IEnumerable<Guid> ids)
+    {
+        //var wmsContainerPlaces = new List<WmsContainerPlace>(); 
+        //if (ids != null) 
+        //{ 
+        //    var sort = await wmsContainerPlaceRepository.GetMaxSortAsync(); 
+        //    foreach (var id in ids) 
+        //    { 
+        //        var WmsContainerPlace = await wmsContainerPlaceRepository.FindAsync(id); 
+        //        if (WmsContainerPlace != null) 
+        //        { 
+        //            var name = WmsContainerPlace.Name + WmsContainerPlaceConsts.CloneTag; 
+        //            var notExist = false; 
+        //            while (!notExist) 
+        //            { 
+        //                var exist = await wmsContainerPlaceRepository.NameExistAsync(name); 
+        //                if (exist || wmsContainerPlaces.Any(x => x.Name == name)) 
+        //                { 
+        //                    name += WmsContainerPlaceConsts.CloneTag; 
+        //                    continue; 
+        //                } 
+
+        //                notExist = true; 
+        //            } 
+
+        //            //WmsContainerPlace = await wmsContainerPlaceRepository.InsertAsync(WmsContainerPlace.Clone(GuidGenerator.Create(), name, sort++)); 
+        //            wmsContainerPlaces.Add(WmsContainerPlace); 
+        //        } 
+        //    } 
+        //} 
+
+        //return ObjectMapper.Map<List<WmsContainerPlace>, List<WmsContainerPlaceDto>>(wmsContainerPlaces); 
+        return new List<WmsContainerPlaceDto>();
+    }
+
+    /// <summary> 
+    /// 鍒犻櫎鍗曚釜搴撲綅瀹瑰櫒鍏崇郴 
+    /// </summary> 
+    /// <param name="id"></param> 
+    /// <returns></returns> 
+    public virtual Task DeleteAsync(Guid id)
+    {
+        return wmsContainerPlaceRepository.DeleteAsync(id);
+    }
+
+    /// <summary> 
+    /// 鍒犻櫎澶氫釜搴撲綅瀹瑰櫒鍏崇郴 
+    /// </summary> 
+    /// <param name="ids"></param> 
+    /// <returns></returns> 
+    public async Task DeleteManyAsync(IEnumerable<Guid> ids)
+    {
+        foreach (var id in ids)
+        {
+            await DeleteAsync(id);
+        }
+    }
+
+    /// <summary> 
+    /// 璋冩暣鎺掑簭搴撲綅瀹瑰櫒鍏崇郴 
+    /// </summary> 
+    /// <param name="id"></param> 
+    /// <param name="sort"></param> 
+    /// <returns></returns> 
+    public virtual async Task AdjustSortAsync(Guid id, int sort)
+    {
+        var list = await wmsContainerPlaceRepository.GetListAsync(null, nameof(WmsContainerPlace.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 wmsContainerPlaceRepository.UpdateManyAsync(list);
+    }
+
+    /// <summary> 
+    /// 瀵煎叆搴撲綅瀹瑰櫒鍏崇郴 
+    /// </summary> 
+    /// <param name="input"></param> 
+    /// <returns></returns> 
+    /// <exception cref="UserFriendlyException"></exception> 
+    public async Task ImportAsync(WmsContainerPlacesImportModel input)
+    {
+        Check.NotNull(input, nameof(input));
+
+        var wmsContainerPlaceCreateDtos = new List<(int RowIndex, WmsContainerPlaceCreateDto Item)>();
+        var wmsContainerPlaceUpdateDtos = new List<(int RowIndex, Guid Id, WmsContainerPlaceUpdateDto Item)>();
+        var importItems = input.WmsContainerPlaces;
+
+        if (importItems != null && importItems.Any())
+        {
+            #region 瀵煎叆鏍¢獙 
+
+            // 鍒ゆ柇鍚嶇О鏄惁閲嶅锛屽苟杈撳嚭绗嚑琛岄噸澶� 
+            var duplicateWmsContainerPlaces = importItems.GroupBy(x => x.PlaceNo).Where(x => x.Count() > 1).ToList();
+            if (duplicateWmsContainerPlaces?.Any() == true)
+            {
+                var duplicateWmsContainerPlaceMsgs = duplicateWmsContainerPlaces.Select(x => $"绗� {string.Join(",", x.Select(x => x.RowIndex))} 琛岋細{x.Key}  鍚嶇О閲嶅");
+                var errorMsg = $"瀵煎叆澶辫触锛侀厤缃紝 {string.Join(",", duplicateWmsContainerPlaceMsgs)}锛岀粓姝㈠鍏�";
+                throw new UserFriendlyException(errorMsg);
+            }
+
+            #endregion
+
+            foreach (var impItem in importItems)
+            {
+                if (impItem.PlaceNo.IsNullOrWhiteSpace())
+                {
+                    continue;
+                }
+
+                if (impItem.PlaceNo.IsNullOrWhiteSpace())
+                {
+                    var errorMsg = $"瀵煎叆澶辫触锛侀厤缃紝绗瑊impItem.RowIndex}琛岋細WmsContainerPlace鍚嶇О涓嶈兘涓虹┖";
+                    throw new UserFriendlyException(errorMsg);
+                }
+
+                var oldWmsContainerPlace = await wmsContainerPlaceRepository.FindByNameAsync(impItem.PlaceNo);
+                if (oldWmsContainerPlace != null)
+                {
+                    var wmsContainerPlaceUpdateDto = new WmsContainerPlaceUpdateDto
+                    {
+                        PlaceNo = impItem.PlaceNo,
+                        ContainerNo = impItem.ContainerNo,
+                        BindTime = impItem.BindTime,
+                        IsDisabled = impItem.IsDisabled,
+                        Remark = impItem.Remark,
+                        CreatorName = impItem.CreatorName,
+                        DeleteRemark = impItem.DeleteRemark,
+                        ExtraField1 = impItem.ExtraField1,
+                        ExtraField2 = impItem.ExtraField2,
+                        ExtraField3 = impItem.ExtraField3,
+                        LastModifierName = impItem.LastModifierName,
+                        OperationRemark = impItem.OperationRemark,
+
+                    };
+
+                    wmsContainerPlaceUpdateDtos.Add((impItem.RowIndex, oldWmsContainerPlace.Id, wmsContainerPlaceUpdateDto));
+                }
+                else
+                {
+                    var wmsContainerPlaceCreateDto = new WmsContainerPlaceCreateDto
+                    {
+                        PlaceNo = impItem.PlaceNo,
+                        ContainerNo = impItem.ContainerNo,
+                        BindTime = impItem.BindTime,
+                        IsDisabled = impItem.IsDisabled,
+                        Remark = impItem.Remark,
+                        CreatorName = impItem.CreatorName,
+                        DeleteRemark = impItem.DeleteRemark,
+                        ExtraField1 = impItem.ExtraField1,
+                        ExtraField2 = impItem.ExtraField2,
+                        ExtraField3 = impItem.ExtraField3,
+                        LastModifierName = impItem.LastModifierName,
+                        OperationRemark = impItem.OperationRemark,
+
+                    };
+
+                    wmsContainerPlaceCreateDtos.Add((impItem.RowIndex, wmsContainerPlaceCreateDto));
+                }
+            }
+        }
+
+        // 鏂板 
+        foreach (var wmsContainerPlaceDto in wmsContainerPlaceCreateDtos)
+        {
+            try
+            {
+                await CreateAsync(wmsContainerPlaceDto.Item);
+            }
+            catch (Exception e)
+            {
+                var errorMsg = $"瀵煎叆澶辫触锛侀厤缃紝绗瑊wmsContainerPlaceDto.RowIndex}琛岋細{e.Message}锛岀粓姝㈠鍏�";
+                throw new UserFriendlyException(errorMsg);
+            }
+        }
+
+        // 鏇存柊 
+        foreach (var wmsContainerPlaceDto in wmsContainerPlaceUpdateDtos)
+        {
+            try
+            {
+                await UpdateAsync(wmsContainerPlaceDto.Id, wmsContainerPlaceDto.Item);
+            }
+            catch (Exception e)
+            {
+                var errorMsg = $"瀵煎叆澶辫触锛侀厤缃紝绗瑊wmsContainerPlaceDto.RowIndex}琛岋細{e.Message}锛岀粓姝㈠鍏�";
+                throw new UserFriendlyException(errorMsg);
+            }
+        }
+    }
+
+    /// <summary> 
+    /// 瀵煎嚭搴撲綅瀹瑰櫒鍏崇郴 
+    /// </summary> 
+    /// <param name="input"></param> 
+    /// <returns></returns> 
+    public async Task<(Dictionary<string, object> Sheets, string FileName)> ExportAsync(GetWmsContainerPlaceInput input)
+    {
+        Check.NotNull(input, nameof(input));
+
+        if (input.Sorting.IsNullOrWhiteSpace())
+        {
+            input.Sorting = nameof(WmsContainerPlace.Sort);
+        }
+
+        #region 鍔ㄦ�佹瀯閫犳煡璇㈡潯浠�  
+
+        //鍔ㄦ�佹瀯閫犳煡璇㈡潯浠�  
+        var whereConditions = DynamicGetQueryParams(input);
+
+        #endregion
+
+
+        var list = await wmsContainerPlaceRepository.GetListAsync(whereConditions, input.Sorting, input.MaxResultCount, input.SkipCount, includeDetails: true);
+        var result = ObjectMapper.Map<List<WmsContainerPlace>, List<WmsContainerPlaceDto>>(list);
+
+        var sheets = new Dictionary<string, object>
+        {
+            ["閰嶇疆"] = ExportHelper.ConvertListToExportData(result),
+        };
+
+        var fileName = result.Count > 1 ? "搴撲綅瀹瑰櫒鍏崇郴鍒楄〃" : result.Count == 1 ? result[0]?.PlaceNo : "WmsContainerPlace妯$増";
+        return (sheets, fileName);
+    }
+
+    /// <summary> 
+    /// 鏍¢獙搴撲綅瀹瑰櫒鍏崇郴锛屽綋鏂板缓鎴栨洿鏂版椂 
+    /// </summary> 
+    /// <param name="input"></param> 
+    /// <returns></returns> 
+    protected Task CheckCreateOrUpdateDtoAsync(WmsContainerPlaceCreateOrUpdateDtoBase input)
+    {
+        Check.NotNull(input, nameof(input));
+        Check.NotNullOrWhiteSpace(input.PlaceNo, "搴撲綅缂栫爜", 50);
+        Check.NotNullOrWhiteSpace(input.ContainerNo, "缂栫爜", 64);
+        Check.NotNull(input.BindTime, "鍚嶇О");
+
+        return Task.CompletedTask;
+    }
+}
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 8fdf80d..92399d4 100644
--- a/HIAWms/server/src/CMS.Plugin.HIAWms.Application/Implements/WmsEnumAppService.cs
+++ b/HIAWms/server/src/CMS.Plugin.HIAWms.Application/Implements/WmsEnumAppService.cs
@@ -1,7 +1,10 @@
-锘縰sing CMS.Plugin.HIAWms.Application.Contracts.Dtos.WmsEnumDto;
+锘縰sing CMS.Plugin.HIAWms.Application.Contracts.Dtos.CommonDto;
+using CMS.Plugin.HIAWms.Application.Contracts.Dtos.WmsEnumDto;
 using CMS.Plugin.HIAWms.Application.Contracts.Dtos.WmsStores;
 using CMS.Plugin.HIAWms.Application.Contracts.Services;
+using CMS.Plugin.HIAWms.Domain.Shared.Enums;
 using CMS.Plugin.HIAWms.Domain.WmsAreas;
+using CMS.Plugin.HIAWms.Domain.WmsMaterials;
 using CMS.Plugin.HIAWms.Domain.WmsPlaces;
 using CMS.Plugin.HIAWms.Domain.WmsStores;
 using CmsQueryExtensions;
@@ -23,12 +26,14 @@
         private readonly IWmsStoreRepository _storeRepository;
         private readonly IWmsAreaRepository _wmsAreaRepository;
         private readonly IWmsPlaceRepository _wmsPlaceRepository;
+        private readonly IWmsMaterialRepository _wmsMaterialRepository;
 
-        public WmsEnumAppService(IWmsStoreRepository storeRepository, IWmsAreaRepository wmsAreaRepository, IWmsPlaceRepository wmsPlaceRepository)
+        public WmsEnumAppService(IWmsStoreRepository storeRepository, IWmsAreaRepository wmsAreaRepository, IWmsPlaceRepository wmsPlaceRepository, IWmsMaterialRepository wmsMaterialRepository)
         {
             _storeRepository = storeRepository;
             _wmsAreaRepository = wmsAreaRepository;
             _wmsPlaceRepository = wmsPlaceRepository;
+            _wmsMaterialRepository = wmsMaterialRepository;
         }
 
         public List<EnumItem> GetEnumDataList(WmsEnumInput enumInput)
@@ -87,5 +92,39 @@
 
             return result;
         }
+
+        /// <summary>
+        /// 鑾峰彇鏈哄瀷
+        /// </summary>
+        /// <returns></returns>
+        public async Task<List<MaterialModelOutput>> GetMaterialModeListAsync()
+        {
+            var materialList = await _wmsMaterialRepository.GetMaterialListAsync(new WmsMaterial());
+            if (materialList == null || materialList.Count <= 0) return new List<MaterialModelOutput>(); ;
+
+            return materialList.Select(material => new MaterialModelOutput
+            {
+                MaterialModel = material.MaterialModel,
+                MaterialModelDesc = material.MaterialModel
+            }).ToList();
+        }
+
+
+        /// <summary>
+        /// 鑾峰彇搴撳尯鍒楄〃
+        /// </summary>
+        /// <param name="cancellationToken"></param>
+        /// <returns></returns>
+        public async Task<List<PlaceListOutput>> GetPlaceListForSelectAsync(PlaceTypeEnum placeType)
+        {
+            var placeList = await _wmsPlaceRepository.GetPlaceListForSelectAsync(placeType);
+            if (placeList == null || placeList.Count <= 0) return new List<PlaceListOutput>(); ;
+
+            return placeList.Select(place => new PlaceListOutput
+            {
+                PlaceNo = place.PlaceNo,
+                PlaceNoDesc = place.PlaceNo
+            }).ToList();
+        }
     }
 }
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 c44b1ae..6341792 100644
--- a/HIAWms/server/src/CMS.Plugin.HIAWms.Application/Implements/WmsMaterialAppService.cs
+++ b/HIAWms/server/src/CMS.Plugin.HIAWms.Application/Implements/WmsMaterialAppService.cs
@@ -56,10 +56,10 @@
     {
         await CheckCreateOrUpdateDtoAsync(input);
 
-        var exist = await _wmsmaterialRepository.NameExistAsync(input.MaterialCode);
+        var exist = await _wmsmaterialRepository.NameExistAsync(input.MaterialNo);
         if (exist)
         {
-            throw new UserFriendlyException(L[CMSPluginDomainErrorCodes.NameAlreadyExists, input.MaterialCode]);
+            throw new UserFriendlyException(L[CMSPluginDomainErrorCodes.NameAlreadyExists, input.MaterialNo]);
         }
 
         var maxSort = await _wmsmaterialRepository.GetMaxSortAsync();
@@ -85,10 +85,10 @@
         await CheckCreateOrUpdateDtoAsync(input);
 
         var wmsmaterial = await _wmsmaterialRepository.GetAsync(id);
-        var exist = await _wmsmaterialRepository.NameExistAsync(input.MaterialCode, wmsmaterial.Id);
+        var exist = await _wmsmaterialRepository.NameExistAsync(input.MaterialNo, wmsmaterial.Id);
         if (exist)
         {
-            throw new UserFriendlyException(L[CMSPluginDomainErrorCodes.NameAlreadyExists, input.MaterialCode]);
+            throw new UserFriendlyException(L[CMSPluginDomainErrorCodes.NameAlreadyExists, input.MaterialNo]);
         }
 
         wmsmaterial.SetConcurrencyStampIfNotNull(input.ConcurrencyStamp);
@@ -211,7 +211,7 @@
             #region 瀵煎叆鏍¢獙
 
             // 鍒ゆ柇鍚嶇О鏄惁閲嶅锛屽苟杈撳嚭绗嚑琛岄噸澶�
-            var duplicateWmsMaterials = wmsmaterials.GroupBy(x => x.MaterialCode).Where(x => x.Count() > 1).ToList();
+            var duplicateWmsMaterials = wmsmaterials.GroupBy(x => x.MaterialNo).Where(x => x.Count() > 1).ToList();
             if (duplicateWmsMaterials?.Any() == true)
             {
                 var duplicateWmsMaterialMsgs = duplicateWmsMaterials.Select(x => $"绗� {string.Join(",", x.Select(x => x.RowIndex))} 琛岋細{x.Key}  鍚嶇О閲嶅");
@@ -223,23 +223,23 @@
 
             foreach (var wmsmaterial in wmsmaterials)
             {
-                if (wmsmaterial.MaterialCode.IsNullOrWhiteSpace() && wmsmaterial.MaterialName.IsNullOrWhiteSpace())
+                if (wmsmaterial.MaterialNo.IsNullOrWhiteSpace() && wmsmaterial.MaterialName.IsNullOrWhiteSpace())
                 {
                     continue;
                 }
 
-                if (wmsmaterial.MaterialCode.IsNullOrWhiteSpace())
+                if (wmsmaterial.MaterialNo.IsNullOrWhiteSpace())
                 {
                     var errorMsg = $"瀵煎叆澶辫触锛侀厤缃紝绗瑊wmsmaterial.RowIndex}琛岋細WmsMaterial鍚嶇О涓嶈兘涓虹┖";
                     throw new UserFriendlyException(errorMsg);
                 }
 
-                var oldWmsMaterial = await _wmsmaterialRepository.FindByNameAsync(wmsmaterial.MaterialCode);
+                var oldWmsMaterial = await _wmsmaterialRepository.FindByNameAsync(wmsmaterial.MaterialNo);
                 if (oldWmsMaterial != null)
                 {
                     var wmsmaterialUpdateDto = new WmsMaterialUpdateDto
                     {
-                        MaterialCode = wmsmaterial.MaterialCode,
+                        MaterialNo = wmsmaterial.MaterialNo,
                         MaterialName = wmsmaterial.MaterialName,
                         PurchaseType = wmsmaterial.PurchaseType,
                         MaterialType = wmsmaterial.MaterialType,
@@ -261,7 +261,7 @@
                 {
                     var wmsmaterialCreateDto = new WmsMaterialCreateDto
                     {
-                        MaterialCode = wmsmaterial.MaterialCode,
+                        MaterialNo = wmsmaterial.MaterialNo,
                         MaterialName = wmsmaterial.MaterialName,
                         PurchaseType = wmsmaterial.PurchaseType,
                         MaterialType = wmsmaterial.MaterialType,
@@ -332,7 +332,7 @@
             ["閰嶇疆"] = ExportHelper.ConvertListToExportData(result),
         };
 
-        var fileName = result.Count > 1 ? "WmsMaterial鍒楄〃" : result.Count == 1 ? result[0]?.MaterialCode : "WmsMaterial妯$増";
+        var fileName = result.Count > 1 ? "WmsMaterial鍒楄〃" : result.Count == 1 ? result[0]?.MaterialNo : "WmsMaterial妯$増";
         return (sheets, fileName);
     }
 
@@ -343,7 +343,7 @@
     protected Task CheckCreateOrUpdateDtoAsync(WmsMaterialCreateOrUpdateDtoBase input)
     {
         Check.NotNull(input, nameof(input));
-        Check.NotNullOrWhiteSpace(input.MaterialCode, "缂栧彿", WmsMaterialConsts.MaxCodeLength);
+        Check.NotNullOrWhiteSpace(input.MaterialNo, "缂栧彿", WmsMaterialConsts.MaxCodeLength);
         Check.NotNullOrWhiteSpace(input.MaterialName, "鍚嶇О", WmsMaterialConsts.MaxNameLength);
         Check.Length(input.Remark, "澶囨敞", WmsMaterialConsts.MaxRemarkLength);
         return Task.CompletedTask;
diff --git a/HIAWms/server/src/CMS.Plugin.HIAWms.Application/Implements/WmsMaterialStockAppService.cs b/HIAWms/server/src/CMS.Plugin.HIAWms.Application/Implements/WmsMaterialStockAppService.cs
index a03b0b0..87b4765 100644
--- a/HIAWms/server/src/CMS.Plugin.HIAWms.Application/Implements/WmsMaterialStockAppService.cs
+++ b/HIAWms/server/src/CMS.Plugin.HIAWms.Application/Implements/WmsMaterialStockAppService.cs
@@ -85,24 +85,47 @@
         //    throw new UserFriendlyException(L[CMSPluginDomainErrorCodes.NameAlreadyExists, input.MaterialNo]);
         //}
         var material = await _wmsMaterialRepository.FindByNameAsync(input.MaterialNo);
-        if(material == null)
+        if (material == null)
         {
             throw new UserFriendlyException("鐗╂枡淇℃伅涓嶅瓨鍦�");
         }
-        var container = await _wmscontainerRepository.FindByNameAsync(input.ContainerNo); 
+        var container = await _wmscontainerRepository.FindByNameAsync(input.ContainerNo);
         if (container == null)
         {
             throw new UserFriendlyException("鎵樼洏淇℃伅涓嶅瓨鍦�");
         }
-        var place = await _wmsplaceRepository.FindByNameAsync(input.PlaceNo);
-        if(place == null)
+
+        var wmsmaterialstock = ObjectMapper.Map<WmsMaterialStockCreateDto, WmsMaterialStock>(input);
+        input.MapExtraPropertiesTo(wmsmaterialstock, MappingPropertyDefinitionChecks.None);
+        wmsmaterialstock.MaterialId = Guid.NewGuid().ToString("N");
+        wmsmaterialstock.MaterialName = material.MaterialName;
+
+        wmsmaterialstock.ContainerStatus = Domain.Shared.Enums.ContainerStatusEnum.KUWEI;
+        wmsmaterialstock.ContainerType = container.ContainerType;
+        wmsmaterialstock.StorageTypeNo = Domain.Shared.Enums.PlaceTypeEnum.XUNIKUWEI;
+        wmsmaterialstock.PlaceStatus = Domain.Shared.Enums.PlaceStatusEnum.DAIRU;
+        if (!string.IsNullOrEmpty(input.PlaceNo))
         {
-            throw new UserFriendlyException("搴撲綅淇℃伅涓嶅瓨鍦�");
-        }
-        var area = await _wmsareaRepository.FindByNameAsync(place.AreaCode);
-        if(area == null)
-        {
-            throw new UserFriendlyException("搴撲綅搴撳尯淇℃伅涓嶅瓨鍦�");
+            var place = await _wmsplaceRepository.FindByNameAsync(input.PlaceNo);
+            if (place == null)
+            {
+                throw new UserFriendlyException("搴撲綅淇℃伅涓嶅瓨鍦�");
+            }
+            var area = await _wmsareaRepository.FindByNameAsync(place.AreaCode);
+            if (area == null)
+            {
+                throw new UserFriendlyException("搴撲綅搴撳尯淇℃伅涓嶅瓨鍦�");
+            }
+
+            wmsmaterialstock.PlaceStatus = Domain.Shared.Enums.PlaceStatusEnum.CUNHUO;
+            wmsmaterialstock.StorageTypeNo = place.StorageTypeNo;
+            wmsmaterialstock.AreaCode = place.AreaCode;
+            wmsmaterialstock.AreaName = area.AreaName;
+
+            place.PlaceStatus = Domain.Shared.Enums.PlaceStatusEnum.CUNHUO;
+            place.Islock = input.IsLock;
+
+            await _wmsplaceRepository.UpdateAsync(place);
         }
         var wmsmaterialstockList = await _wmsmaterialstockRepository.GetStockListAsync(new WmsMaterialStock { PlaceNo = input.PlaceNo });
         if (wmsmaterialstockList.Count > 0)
@@ -115,18 +138,6 @@
 
         var maxSort = await _wmsmaterialstockRepository.GetMaxSortAsync();
         var sort = input.Sort ?? maxSort;
-        var wmsmaterialstock = ObjectMapper.Map<WmsMaterialStockCreateDto, WmsMaterialStock>(input);
-        input.MapExtraPropertiesTo(wmsmaterialstock, MappingPropertyDefinitionChecks.None);
-        wmsmaterialstock.MaterialId = Guid.NewGuid().ToString("N");
-        wmsmaterialstock.MaterialName = material.MaterialName;
-
-        wmsmaterialstock.ContainerStatus = Domain.Shared.Enums.ContainerStatusEnum.KUWEI;
-        wmsmaterialstock.ContainerType = container.ContainerType;
-
-        wmsmaterialstock.PlaceStatus = Domain.Shared.Enums.PlaceStatusEnum.CUNHUO;
-        wmsmaterialstock.StorageTypeNo = place.StorageTypeNo;
-        wmsmaterialstock.AreaCode = place.AreaCode;
-        wmsmaterialstock.AreaName = area.AreaName;
 
         wmsmaterialstock.MaterialModel = material.MaterialModel;
         wmsmaterialstock.MaterialBatch = input.MaterialBatch;
@@ -135,7 +146,7 @@
         wmsmaterialstock.InStockTime = DateTime.Now;
 
         var stockList = new List<WmsMaterialStock>();
-        for (int i = 0; i< input.StockNumber; i++)
+        for (int i = 0; i < input.StockNumber; i++)
         {
             var stock = new WmsMaterialStock();
             var json = JsonSerializer.Serialize(wmsmaterialstock);
@@ -149,11 +160,8 @@
 
 
         container.ContainerStatus = Domain.Shared.Enums.ContainerStatusEnum.KUWEI;
-        place.PlaceStatus = Domain.Shared.Enums.PlaceStatusEnum.CUNHUO;
-        place.Islock = input.IsLock;
 
         await _wmscontainerRepository.UpdateAsync(container);
-        await _wmsplaceRepository.UpdateAsync(place);
 
         //if (input.Sort.HasValue && wmsmaterialstock.Sort != maxSort)
         //{
@@ -199,9 +207,9 @@
             throw new UserFriendlyException("搴撲綅搴撳尯淇℃伅涓嶅瓨鍦�");
         }
 
-        foreach(var wmsmaterialstock in wmsmaterialstockList)
+        foreach (var wmsmaterialstock in wmsmaterialstockList)
         {
-            if(input.StockNumber< wmsmaterialstockList.Count)
+            if (input.StockNumber < wmsmaterialstockList.Count)
             {
                 wmsmaterialstock.IsDeleted = true;
                 input.StockNumber += 1;
@@ -229,7 +237,7 @@
             wmsmaterialstock.MaterialModel = material.MaterialModel;
             wmsmaterialstock.MaterialBatch = input.MaterialBatch;
         }
-        if(input.StockNumber > wmsmaterialstockList.Count)
+        if (input.StockNumber > wmsmaterialstockList.Count)
         {
             var stockList = new List<WmsMaterialStock>();
             for (int i = 0; i < input.StockNumber - wmsmaterialstockList.Count; i++)
diff --git a/HIAWms/server/src/CMS.Plugin.HIAWms.Application/MapperProfiles/WmsContainerPlaceAutoMapperProfile.cs b/HIAWms/server/src/CMS.Plugin.HIAWms.Application/MapperProfiles/WmsContainerPlaceAutoMapperProfile.cs
new file mode 100644
index 0000000..b9ea863
--- /dev/null
+++ b/HIAWms/server/src/CMS.Plugin.HIAWms.Application/MapperProfiles/WmsContainerPlaceAutoMapperProfile.cs
@@ -0,0 +1,26 @@
+using AutoMapper; 
+using CMS.Plugin.HIAWms.Application.Contracts.Dtos.WmsContainerPlace; 
+using CMS.Plugin.HIAWms.Domain.WmsContainerPlace; 
+using Volo.Abp.ObjectExtending; 
+ 
+namespace CMS.Plugin.HIAWms.Application.MapperProfiles; 
+ 
+/// <summary> 
+/// 搴撲綅瀹瑰櫒鍏崇郴AutoMapper閰嶇疆 
+/// </summary> 
+/// <seealso cref="AutoMapper.Profile" /> 
+public class WmsContainerPlaceAutoMapperProfile : Profile 
+{ 
+    /// <summary> 
+    /// Initializes a new instance of the <see cref="WmsContainerPlaceAutoMapperProfile"/> class. 
+    /// </summary> 
+    public WmsContainerPlaceAutoMapperProfile() 
+    { 
+        /* You can configure your AutoMapper mapping configuration here. 
+         * Alternatively, you can split your mapping configurations 
+         * into multiple profile classes for a better organization. */ 
+        CreateMap<WmsContainerPlace, WmsContainerPlaceDto>(MemberList.None).MapExtraProperties(MappingPropertyDefinitionChecks.None); 
+        CreateMap<WmsContainerPlaceCreateDto, WmsContainerPlace>(MemberList.None).MapExtraProperties(MappingPropertyDefinitionChecks.None); 
+        CreateMap<GetWmsContainerPlaceInput, WmsContainerPlace>(MemberList.None).MapExtraProperties(MappingPropertyDefinitionChecks.None); 
+    } 
+} 
diff --git a/HIAWms/server/src/CMS.Plugin.HIAWms.Domain/WmsContainerPlace/IWmsContainerPlaceRepository.cs b/HIAWms/server/src/CMS.Plugin.HIAWms.Domain/WmsContainerPlace/IWmsContainerPlaceRepository.cs
new file mode 100644
index 0000000..2705196
--- /dev/null
+++ b/HIAWms/server/src/CMS.Plugin.HIAWms.Domain/WmsContainerPlace/IWmsContainerPlaceRepository.cs
@@ -0,0 +1,53 @@
+using CmsQueryExtensions.Extension; 
+using System.Linq.Expressions; 
+using Volo.Abp.Domain.Repositories; 
+ 
+namespace CMS.Plugin.HIAWms.Domain.WmsContainerPlace; 
+ 
+/// <summary> 
+/// 搴撲綅瀹瑰櫒鍏崇郴浠撳偍 
+/// </summary> 
+public interface IWmsContainerPlaceRepository : IBasicRepository<WmsContainerPlace, Guid> 
+{ 
+    /// <summary> 
+    /// 鎸夌収鍚嶇О鏌ユ壘搴撲綅瀹瑰櫒鍏崇郴 
+    /// </summary> 
+    /// <param name="name"></param> 
+    /// <param name="cancellationToken"></param> 
+    /// <returns></returns> 
+    Task<WmsContainerPlace> FindByNameAsync(string name, CancellationToken cancellationToken = default); 
+ 
+    /// <summary> 
+    /// 楠岃瘉鍚嶇О鏄惁瀛樺湪搴撲綅瀹瑰櫒鍏崇郴 
+    /// </summary> 
+    /// <param name="name"></param> 
+    /// <param name="id"></param> 
+    /// <returns></returns> 
+    Task<bool> NameExistAsync(string name, Guid? id = null); 
+ 
+    /// <summary> 
+    /// 鑾峰彇鏈�澶ф帓搴忓簱浣嶅鍣ㄥ叧绯� 
+    /// </summary> 
+    /// <returns></returns> 
+    Task<int> GetMaxSortAsync(); 
+ 
+    /// <summary> 
+    /// 鑾峰彇鍒嗛〉鍒楄〃搴撲綅瀹瑰櫒鍏崇郴 
+    /// </summary> 
+    /// <param name="whereConditions"></param> 
+    /// <param name="sorting"></param> 
+    /// <param name="maxResultCount"></param> 
+    /// <param name="skipCount"></param> 
+    /// <param name="includeDetails"></param> 
+    /// <param name="cancellationToken"></param> 
+    /// <returns></returns> 
+    Task<List<WmsContainerPlace>> GetListAsync(FunReturnResultModel<Expression<Func<WmsContainerPlace, bool>>> whereConditions, string sorting = null, int maxResultCount = int.MaxValue, int skipCount = 0, bool includeDetails = false, CancellationToken cancellationToken = default); 
+ 
+    /// <summary> 
+    /// 鑾峰彇鎬绘暟搴撲綅瀹瑰櫒鍏崇郴 
+    /// </summary> 
+    /// <param name="whereConditions"></param> 
+    /// <param name="cancellationToken"></param> 
+    /// <returns></returns> 
+    Task<long> GetCountAsync(FunReturnResultModel<Expression<Func<WmsContainerPlace, bool>>> whereConditions, CancellationToken cancellationToken = default); 
+} 
diff --git a/HIAWms/server/src/CMS.Plugin.HIAWms.Domain/WmsContainerPlaces/WmsContainerPlace.cs b/HIAWms/server/src/CMS.Plugin.HIAWms.Domain/WmsContainerPlace/WmsContainerPlace.cs
similarity index 94%
rename from HIAWms/server/src/CMS.Plugin.HIAWms.Domain/WmsContainerPlaces/WmsContainerPlace.cs
rename to HIAWms/server/src/CMS.Plugin.HIAWms.Domain/WmsContainerPlace/WmsContainerPlace.cs
index 65472bf..a05a106 100644
--- a/HIAWms/server/src/CMS.Plugin.HIAWms.Domain/WmsContainerPlaces/WmsContainerPlace.cs
+++ b/HIAWms/server/src/CMS.Plugin.HIAWms.Domain/WmsContainerPlace/WmsContainerPlace.cs
@@ -8,7 +8,7 @@
 using System.Threading.Tasks;
 using Volo.Abp.Domain.Entities.Auditing;
 
-namespace CMS.Plugin.HIAWms.Domain.WmsContainerPlaces
+namespace CMS.Plugin.HIAWms.Domain.WmsContainerPlace
 {
     /// <summary>
     /// 搴撲綅瀹瑰櫒鍏崇郴
diff --git a/HIAWms/server/src/CMS.Plugin.HIAWms.Domain/WmsMaterials/IWmsMaterialRepository.cs b/HIAWms/server/src/CMS.Plugin.HIAWms.Domain/WmsMaterials/IWmsMaterialRepository.cs
index c6b09c9..468e6bb 100644
--- a/HIAWms/server/src/CMS.Plugin.HIAWms.Domain/WmsMaterials/IWmsMaterialRepository.cs
+++ b/HIAWms/server/src/CMS.Plugin.HIAWms.Domain/WmsMaterials/IWmsMaterialRepository.cs
@@ -17,6 +17,14 @@
     Task<WmsMaterial> FindByNameAsync(string name, CancellationToken cancellationToken = default);
 
     /// <summary>
+    /// 鏍规嵁鍨嬪彿浼犵墿鏂�
+    /// </summary>
+    /// <param name="model"></param>
+    /// <param name="cancellationToken"></param>
+    /// <returns></returns>
+    Task<WmsMaterial> FindByModelAsync(string model, CancellationToken cancellationToken = default);
+
+    /// <summary>
     /// Names the exist asynchronous.
     /// </summary>
     /// <param name="name">The name.</param>
@@ -58,4 +66,11 @@
     /// <param name="cancellationToken">The cancellation token.</param>
     /// <returns></returns>
     Task<long> GetCountAsync(WmsMaterial material, string filter = null, Specification<WmsMaterial> specification = null, CancellationToken cancellationToken = default);
+
+    /// <summary>
+    /// 鑾峰彇鐗╂枡鍒楄〃
+    /// </summary>
+    /// <param name="cancellationToken"></param>
+    /// <returns></returns>
+    Task<List<WmsMaterial>> GetListForSelectAsync(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 2ffc4ca..e23824b 100644
--- a/HIAWms/server/src/CMS.Plugin.HIAWms.Domain/WmsMaterials/WmsMaterial.cs
+++ b/HIAWms/server/src/CMS.Plugin.HIAWms.Domain/WmsMaterials/WmsMaterial.cs
@@ -14,7 +14,7 @@
         /// <summary>
         /// 鐗╂枡缂栫爜锛堝敮涓�鏍囪瘑锛�
         /// </summary>
-        public string MaterialCode { get; set; }
+        public string MaterialNo { get; set; }
 
         /// <summary>
         /// 鐗╂枡鍚嶇О
diff --git a/HIAWms/server/src/CMS.Plugin.HIAWms.Domain/WmsMaterials/WmsMaterialSpecification.cs b/HIAWms/server/src/CMS.Plugin.HIAWms.Domain/WmsMaterials/WmsMaterialSpecification.cs
index 1af79b7..ae1f7b6 100644
--- a/HIAWms/server/src/CMS.Plugin.HIAWms.Domain/WmsMaterials/WmsMaterialSpecification.cs
+++ b/HIAWms/server/src/CMS.Plugin.HIAWms.Domain/WmsMaterials/WmsMaterialSpecification.cs
@@ -7,7 +7,7 @@
     /// </summary>
     public class WmsMaterialSpecification : Volo.Abp.Specifications.Specification<WmsMaterial>
     {
-        private readonly string _materialCode;
+        private readonly string _MaterialNo;
 
         /// <summary>
         /// Initializes a new instance of the <see cref="WmsMaterialSpecification"/> class.
@@ -19,10 +19,10 @@
         /// <summary>
         /// Initializes a new instance of the <see cref="WmsMaterialSpecification"/> class.
         /// </summary>
-        /// <param name="materialCode">The name.</param>
-        public WmsMaterialSpecification(string materialCode = null)
+        /// <param name="MaterialNo">The name.</param>
+        public WmsMaterialSpecification(string MaterialNo = null)
         {
-            _materialCode = materialCode;
+            _MaterialNo = MaterialNo;
         }
 
         /// <inheritdoc />
@@ -30,9 +30,9 @@
         {
             Expression<Func<WmsMaterial, bool>> expression = c => 1 == 1;
 
-            if (_materialCode != null)
+            if (_MaterialNo != null)
             {
-                expression = expression.And(c => c.MaterialCode == _materialCode);
+                expression = expression.And(c => c.MaterialNo == _MaterialNo);
             }
 
             return expression;
diff --git a/HIAWms/server/src/CMS.Plugin.HIAWms.Domain/WmsPlaces/IWmsPlaceRepository.cs b/HIAWms/server/src/CMS.Plugin.HIAWms.Domain/WmsPlaces/IWmsPlaceRepository.cs
index 15c6f97..68cbefe 100644
--- a/HIAWms/server/src/CMS.Plugin.HIAWms.Domain/WmsPlaces/IWmsPlaceRepository.cs
+++ b/HIAWms/server/src/CMS.Plugin.HIAWms.Domain/WmsPlaces/IWmsPlaceRepository.cs
@@ -1,3 +1,4 @@
+using CMS.Plugin.HIAWms.Domain.Shared.Enums;
 using CMS.Plugin.HIAWms.Domain.WmsAreas;
 using Volo.Abp.Domain.Repositories;
 using Volo.Abp.Specifications;
@@ -59,4 +60,12 @@
     /// <param name="cancellationToken">The cancellation token.</param>
     /// <returns></returns>
     Task<long> GetCountAsync(WmsPlace? place, string filter = null, Specification<WmsPlace> specification = null, CancellationToken cancellationToken = default);
+
+    /// <summary>
+    /// 鏍规嵁绫诲瀷鑾峰彇搴撲綅鍒楄〃
+    /// </summary>
+    /// <param name="placeType"></param>
+    /// <param name="cancellationToken"></param>
+    /// <returns></returns>
+    Task<List<WmsPlace>> GetPlaceListForSelectAsync(PlaceTypeEnum placeType, CancellationToken cancellationToken = default);
 }
diff --git a/HIAWms/server/src/CMS.Plugin.HIAWms.EntityFrameworkCore/Extensions/CMSPluginEfCoreExtensions.WmsContainerPlace.cs b/HIAWms/server/src/CMS.Plugin.HIAWms.EntityFrameworkCore/Extensions/CMSPluginEfCoreExtensions.WmsContainerPlace.cs
index fcd6a2c..d84c02e 100644
--- a/HIAWms/server/src/CMS.Plugin.HIAWms.EntityFrameworkCore/Extensions/CMSPluginEfCoreExtensions.WmsContainerPlace.cs
+++ b/HIAWms/server/src/CMS.Plugin.HIAWms.EntityFrameworkCore/Extensions/CMSPluginEfCoreExtensions.WmsContainerPlace.cs
@@ -1,5 +1,4 @@
 锘縰sing CMS.Plugin.HIAWms.Domain;
-using CMS.Plugin.HIAWms.Domain.WmsContainerPlaces;
 using CMS.Plugin.HIAWms.Domain.WmsContainers;
 using Microsoft.EntityFrameworkCore;
 using System;
@@ -11,6 +10,7 @@
 using CMS.Plugin.MyExtension;
 using Volo.Abp.EntityFrameworkCore.Modeling;
 using CMS.Plugin.MyExtension.Domain;
+using CMS.Plugin.HIAWms.Domain.WmsContainerPlace;
 
 namespace CMS.Plugin.HIAWms.EntityFrameworkCore.Extensions
 {
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 7bce03b..9c0d47b 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
@@ -50,7 +50,7 @@
             b.HasKey(x => x.Id);
 
             // 瀛楁閰嶇疆
-            b.Property(x => x.MaterialCode)
+            b.Property(x => x.MaterialNo)
                 .HasMaxLength(64)
                 .IsRequired()
                 .HasComment("鐗╂枡缂栫爜锛堝敮涓�鏍囪瘑锛�");
@@ -137,7 +137,7 @@
                 .HasComment("鏄惁绂佺敤");
 
             // 绱㈠紩閰嶇疆
-            b.HasIndex(x => x.MaterialCode).IsUnique(); // 鐗╂枡缂栫爜鍞竴绱㈠紩
+            b.HasIndex(x => x.MaterialNo).IsUnique(); // 鐗╂枡缂栫爜鍞竴绱㈠紩
             b.HasIndex(x => x.MaterialName);           // 鐗╂枡鍚嶇О鏅�氱储寮�
             b.HasIndex(x => x.PurchaseType);           // 閲囪喘绫诲瀷绱㈠紩锛堝闇�鏌ヨ杩囨护锛�
             b.HasIndex(x => x.MaterialType);           // 鐗╂枡绫诲瀷绱㈠紩锛堝闇�鏌ヨ杩囨护锛�
diff --git a/HIAWms/server/src/CMS.Plugin.HIAWms.EntityFrameworkCore/Extensions/CMSPluginEfCoreExtensions.WmsMaterialContainer.cs b/HIAWms/server/src/CMS.Plugin.HIAWms.EntityFrameworkCore/Extensions/CMSPluginEfCoreExtensions.WmsMaterialContainer.cs
index 5b12a5a..e971207 100644
--- a/HIAWms/server/src/CMS.Plugin.HIAWms.EntityFrameworkCore/Extensions/CMSPluginEfCoreExtensions.WmsMaterialContainer.cs
+++ b/HIAWms/server/src/CMS.Plugin.HIAWms.EntityFrameworkCore/Extensions/CMSPluginEfCoreExtensions.WmsMaterialContainer.cs
@@ -1,5 +1,5 @@
 锘縰sing CMS.Plugin.HIAWms.Domain;
-using CMS.Plugin.HIAWms.Domain.WmsContainerPlaces;
+using CMS.Plugin.HIAWms.Domain.WmsContainerPlace;
 using CMS.Plugin.HIAWms.Domain.WmsMaterialContainer;
 using Microsoft.EntityFrameworkCore;
 using System;
diff --git a/HIAWms/server/src/CMS.Plugin.HIAWms.EntityFrameworkCore/Extensions/CMSPluginEfCoreExtensions.WmsTask.cs b/HIAWms/server/src/CMS.Plugin.HIAWms.EntityFrameworkCore/Extensions/CMSPluginEfCoreExtensions.WmsTask.cs
index b00e992..7eae430 100644
--- a/HIAWms/server/src/CMS.Plugin.HIAWms.EntityFrameworkCore/Extensions/CMSPluginEfCoreExtensions.WmsTask.cs
+++ b/HIAWms/server/src/CMS.Plugin.HIAWms.EntityFrameworkCore/Extensions/CMSPluginEfCoreExtensions.WmsTask.cs
@@ -1,5 +1,5 @@
 锘縰sing CMS.Plugin.HIAWms.Domain;
-using CMS.Plugin.HIAWms.Domain.WmsContainerPlaces;
+using CMS.Plugin.HIAWms.Domain.WmsContainerPlace;
 using CMS.Plugin.HIAWms.Domain.WmsTask;
 using Microsoft.EntityFrameworkCore;
 using System;
diff --git a/HIAWms/server/src/CMS.Plugin.HIAWms.EntityFrameworkCore/Repositories/EfCoreWmsAreaRepository.cs b/HIAWms/server/src/CMS.Plugin.HIAWms.EntityFrameworkCore/Repositories/EfCoreWmsAreaRepository.cs
index 3f3a094..5fc6614 100644
--- a/HIAWms/server/src/CMS.Plugin.HIAWms.EntityFrameworkCore/Repositories/EfCoreWmsAreaRepository.cs
+++ b/HIAWms/server/src/CMS.Plugin.HIAWms.EntityFrameworkCore/Repositories/EfCoreWmsAreaRepository.cs
@@ -87,6 +87,7 @@
     public async Task<List<WmsArea>> GetListForSelectAsync(CancellationToken cancellationToken = default)
     {
         return await (await GetDbSetAsync())
+            .Where(x => !x.IsDeleted)
            .ToListAsync(GetCancellationToken(cancellationToken));
     }
 
diff --git a/HIAWms/server/src/CMS.Plugin.HIAWms.EntityFrameworkCore/Repositories/EfCoreWmsContainerPlaceRepository.cs b/HIAWms/server/src/CMS.Plugin.HIAWms.EntityFrameworkCore/Repositories/EfCoreWmsContainerPlaceRepository.cs
new file mode 100644
index 0000000..eb5795d
--- /dev/null
+++ b/HIAWms/server/src/CMS.Plugin.HIAWms.EntityFrameworkCore/Repositories/EfCoreWmsContainerPlaceRepository.cs
@@ -0,0 +1,113 @@
+using CMS.Plugin.HIAWms.Domain.WmsContainerPlace; 
+using CMS.Plugin.HIAWms.EntityFrameworkCore.Extensions; 
+using CmsQueryExtensions.Extension; 
+using Microsoft.EntityFrameworkCore; 
+using System.Linq.Dynamic.Core; 
+using System.Linq.Expressions; 
+using Volo.Abp.Domain.Repositories.EntityFrameworkCore; 
+using Volo.Abp.EntityFrameworkCore; 
+ 
+ 
+namespace CMS.Plugin.HIAWms.EntityFrameworkCore.Repositories; 
+ 
+/// <summary> 
+/// 搴撲綅瀹瑰櫒鍏崇郴浠撳偍瀹炵幇 
+/// </summary> 
+public class EfCoreWmsContainerPlaceRepository : EfCoreRepository<ICMSPluginDbContext, WmsContainerPlace, Guid>, IWmsContainerPlaceRepository 
+{ 
+    /// <summary> 
+    /// Initializes a new instance of the <see cref="EfCoreWmsContainerPlaceRepository"/> class. 
+    /// </summary> 
+    /// <param name="dbContextProvider">The database context provider.</param> 
+    public EfCoreWmsContainerPlaceRepository(IDbContextProvider<ICMSPluginDbContext> dbContextProvider) 
+        : base(dbContextProvider) 
+    { 
+    } 
+ 
+    /// <summary> 
+    /// 鎸夌収鍚嶇О鏌ユ壘搴撲綅瀹瑰櫒鍏崇郴 
+    /// </summary> 
+    /// <param name="name"></param> 
+    /// <param name="cancellationToken"></param> 
+    /// <returns></returns> 
+    public virtual async Task<WmsContainerPlace> FindByNameAsync(string name, CancellationToken cancellationToken = default) 
+    { 
+        return await (await GetDbSetAsync()) 
+            .IncludeDetails() 
+            .Where(x => !x.IsDeleted) 
+            .OrderByDescending(x=>x.CreationTime)  
+            .FirstOrDefaultAsync(t => t.PlaceNo == name, GetCancellationToken(cancellationToken)); 
+    } 
+ 
+    /// <summary> 
+    /// 楠岃瘉鍚嶇О鏄惁瀛樺湪搴撲綅瀹瑰櫒鍏崇郴 
+    /// </summary> 
+    /// <param name="name">鏍¢獙鍊�</param> 
+    /// <param name="id"></param> 
+    /// <returns></returns> 
+    public async Task<bool> NameExistAsync(string name, Guid? id = null) 
+    { 
+        return await (await GetDbSetAsync()).WhereIf(id.HasValue, p => p.Id != id).Where(x => !x.IsDeleted).AnyAsync(x => x.PlaceNo == name); 
+    } 
+ 
+    /// <summary> 
+    /// 鑾峰彇鏈�澶ф帓搴忓簱浣嶅鍣ㄥ叧绯� 
+    /// </summary> 
+    /// <returns></returns> 
+    public async Task<int> GetMaxSortAsync() 
+    { 
+        var hasAny = await (await GetQueryableAsync()) 
+            .Where(x => !x.IsDeleted).AnyAsync(); 
+        if (!hasAny) 
+        { 
+            return 1; 
+        } 
+ 
+        var sort = await (await GetQueryableAsync()) 
+            .Where(x => !x.IsDeleted).MaxAsync(x => x.Sort); 
+        return sort + 1; 
+    } 
+ 
+    /// <summary> 
+    /// 鑾峰彇鍒嗛〉鍒楄〃搴撲綅瀹瑰櫒鍏崇郴 
+    /// </summary> 
+    /// <param name="whereConditions"></param> 
+    /// <param name="sorting"></param> 
+    /// <param name="maxResultCount"></param> 
+    /// <param name="skipCount"></param> 
+    /// <param name="includeDetails"></param> 
+    /// <param name="cancellationToken"></param> 
+    /// <returns></returns> 
+    public async Task<List<WmsContainerPlace>> GetListAsync(FunReturnResultModel<Expression<Func<WmsContainerPlace, bool>>> whereConditions, string sorting = null, int maxResultCount = int.MaxValue, int skipCount = 0, bool includeDetails = false, CancellationToken cancellationToken = default) 
+    { 
+        return await (await GetDbSetAsync()) 
+            .IncludeDetails(includeDetails) 
+            .WhereIf(whereConditions != null, whereConditions.data) 
+            .Where(x => !x.IsDeleted) 
+            .OrderByDescending(x=>x.CreationTime) 
+            .PageBy(skipCount, maxResultCount) 
+            .ToListAsync(GetCancellationToken(cancellationToken)); 
+    } 
+ 
+    /// <summary> 
+    /// 鑾峰彇鎬绘暟搴撲綅瀹瑰櫒鍏崇郴 
+    /// </summary> 
+    /// <param name="whereConditions"></param> 
+    /// <param name="cancellationToken"></param> 
+    /// <returns></returns> 
+    public async Task<long> GetCountAsync(FunReturnResultModel<Expression<Func<WmsContainerPlace, 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<WmsContainerPlace>> WithDetailsAsync() 
+    { 
+        return (await GetQueryableAsync()) 
+            .Where(x => !x.IsDeleted).IncludeDetails(); 
+    } 
+} 
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 f0a1d1a..38fa6c2 100644
--- a/HIAWms/server/src/CMS.Plugin.HIAWms.EntityFrameworkCore/Repositories/EfCoreWmsMaterialRepository.cs
+++ b/HIAWms/server/src/CMS.Plugin.HIAWms.EntityFrameworkCore/Repositories/EfCoreWmsMaterialRepository.cs
@@ -2,6 +2,7 @@
 using System.Linq;
 using System.Linq.Dynamic.Core;
 using System.Linq.Expressions;
+using CMS.Plugin.HIAWms.Domain.WmsAreas;
 using CMS.Plugin.HIAWms.Domain.WmsMaterials;
 using CMS.Plugin.HIAWms.EntityFrameworkCore.Extensions;
 using Microsoft.EntityFrameworkCore;
@@ -30,13 +31,28 @@
             .IncludeDetails()
             .Where(x => !x.IsDeleted)
             .OrderBy(t => t.Sort)
-            .FirstOrDefaultAsync(t => t.MaterialCode == name, GetCancellationToken(cancellationToken));
+            .FirstOrDefaultAsync(t => t.MaterialNo == name, GetCancellationToken(cancellationToken));
+    }
+
+    /// <summary>
+    /// 查找型号
+    /// </summary>
+    /// <param name="model"></param>
+    /// <param name="cancellationToken"></param>
+    /// <returns></returns>
+    public virtual async Task<WmsMaterial> FindByModelAsync(string model, CancellationToken cancellationToken = default)
+    {
+        return await (await GetDbSetAsync())
+            .IncludeDetails()
+            .Where(x => !x.IsDeleted)
+            .OrderBy(t => t.Sort)
+            .FirstOrDefaultAsync(t => t.MaterialModel == model, GetCancellationToken(cancellationToken));
     }
 
     /// <inheritdoc />
-    public async Task<bool> NameExistAsync(string materialCode, Guid? id = null)
+    public async Task<bool> NameExistAsync(string MaterialNo, Guid? id = null)
     {
-        return await (await GetDbSetAsync()).WhereIf(id.HasValue, p => p.Id != id).Where(x => !x.IsDeleted).AnyAsync(x => x.MaterialCode == materialCode);
+        return await (await GetDbSetAsync()).WhereIf(id.HasValue, p => p.Id != id).Where(x => !x.IsDeleted).AnyAsync(x => x.MaterialNo == MaterialNo);
     }
 
     /// <inheritdoc />
@@ -61,9 +77,9 @@
         return await (await GetDbSetAsync())
             .IncludeDetails(includeDetails)
             .Where(specification.ToExpression())
-            .WhereIf(!filter.IsNullOrWhiteSpace(), u => u.MaterialCode.Contains(filter))
+            .WhereIf(!filter.IsNullOrWhiteSpace(), u => u.MaterialNo.Contains(filter))
             .WhereIf(!string.IsNullOrEmpty(material.MaterialName), u => u.MaterialName.Contains(material.MaterialName))
-            .WhereIf(!string.IsNullOrEmpty(material.MaterialCode), u => u.MaterialName.Contains(material.MaterialCode))
+            .WhereIf(!string.IsNullOrEmpty(material.MaterialNo), u => u.MaterialName.Contains(material.MaterialNo))
             .WhereIf(material.MaterialType > 0, u => u.MaterialType == material.MaterialType)
             .WhereIf(material.PurchaseType > 0, u => u.PurchaseType == material.PurchaseType)
             .Where(x => !x.IsDeleted)
@@ -82,7 +98,7 @@
     {
         return await (await GetDbSetAsync())
             .WhereIf(!string.IsNullOrEmpty(material.MaterialName), u => u.MaterialName.Contains(material.MaterialName))
-            .WhereIf(!string.IsNullOrEmpty(material.MaterialCode), u => u.MaterialName.Contains(material.MaterialCode))
+            .WhereIf(!string.IsNullOrEmpty(material.MaterialNo), u => u.MaterialName.Contains(material.MaterialNo))
             .WhereIf(material.MaterialType > 0, u => u.MaterialType == material.MaterialType)
             .WhereIf(material.PurchaseType > 0, u => u.PurchaseType == material.PurchaseType)
             .Where(x => !x.IsDeleted)
@@ -103,11 +119,11 @@
         return await (await GetQueryableAsync())
             .Where(specification.ToExpression())
             .WhereIf(!string.IsNullOrEmpty(material.MaterialName), u => u.MaterialName.Contains(material.MaterialName))
-            .WhereIf(!string.IsNullOrEmpty(material.MaterialCode), u => u.MaterialName.Contains(material.MaterialCode))
+            .WhereIf(!string.IsNullOrEmpty(material.MaterialNo), u => u.MaterialName.Contains(material.MaterialNo))
             .WhereIf(material.MaterialType > 0, u => u.MaterialType == material.MaterialType)
             .WhereIf(material.PurchaseType > 0, u => u.PurchaseType == material.PurchaseType)
             .Where(x => !x.IsDeleted)
-            .WhereIf(!filter.IsNullOrWhiteSpace(), u => u.MaterialCode.Contains(filter))
+            .WhereIf(!filter.IsNullOrWhiteSpace(), u => u.MaterialNo.Contains(filter))
             .CountAsync(cancellationToken: GetCancellationToken(cancellationToken));
     }
 
@@ -117,4 +133,16 @@
         return (await GetQueryableAsync())
             .Where(x => !x.IsDeleted).IncludeDetails();
     }
+
+    /// <summary>
+    /// 获取物料表
+    /// </summary>
+    /// <param name="cancellationToken"></param>
+    /// <returns></returns>
+    public async Task<List<WmsMaterial>> GetListForSelectAsync(CancellationToken cancellationToken = default)
+    {
+        return await (await GetDbSetAsync())
+            .Where(x => !x.IsDeleted)
+           .ToListAsync(GetCancellationToken(cancellationToken));
+    }
 }
diff --git a/HIAWms/server/src/CMS.Plugin.HIAWms.EntityFrameworkCore/Repositories/EfCoreWmsPlaceRepository.cs b/HIAWms/server/src/CMS.Plugin.HIAWms.EntityFrameworkCore/Repositories/EfCoreWmsPlaceRepository.cs
index 3d655e4..dc5cf40 100644
--- a/HIAWms/server/src/CMS.Plugin.HIAWms.EntityFrameworkCore/Repositories/EfCoreWmsPlaceRepository.cs
+++ b/HIAWms/server/src/CMS.Plugin.HIAWms.EntityFrameworkCore/Repositories/EfCoreWmsPlaceRepository.cs
@@ -1,4 +1,5 @@
 using System.Linq.Dynamic.Core;
+using CMS.Plugin.HIAWms.Domain.Shared.Enums;
 using CMS.Plugin.HIAWms.Domain.WmsAreas;
 using CMS.Plugin.HIAWms.Domain.WmsPlaces;
 using CMS.Plugin.HIAWms.EntityFrameworkCore.Extensions;
@@ -84,7 +85,7 @@
     /// <returns></returns>
     public async Task<List<WmsPlace>> GetAisleListForSelectAsync(CancellationToken cancellationToken = default)
     {
-        return await (await GetDbSetAsync())
+        return await (await GetDbSetAsync()).Where(x => !x.IsDeleted)
             .ToListAsync(GetCancellationToken(cancellationToken));
     }
 
@@ -115,4 +116,17 @@
         return (await GetQueryableAsync())
             .Where(x => !x.IsDeleted).IncludeDetails();
     }
+
+    /// <summary>
+    /// 获取库区列表
+    /// </summary>
+    /// <param name="cancellationToken"></param>
+    /// <returns></returns>
+    public async Task<List<WmsPlace>> GetPlaceListForSelectAsync(PlaceTypeEnum placeType,CancellationToken cancellationToken = default)
+    {
+        return await (await GetDbSetAsync())
+            .Where(x => !x.IsDeleted)
+            .Where(x=>x.StorageTypeNo == placeType)
+           .ToListAsync(GetCancellationToken(cancellationToken));
+    }
 }
diff --git a/HIAWms/server/src/CMS.Plugin.HIAWms.EntityFrameworkCore/Repositories/EfCoreWmsStoreRepository.cs b/HIAWms/server/src/CMS.Plugin.HIAWms.EntityFrameworkCore/Repositories/EfCoreWmsStoreRepository.cs
index 54a9be0..04c47b5 100644
--- a/HIAWms/server/src/CMS.Plugin.HIAWms.EntityFrameworkCore/Repositories/EfCoreWmsStoreRepository.cs
+++ b/HIAWms/server/src/CMS.Plugin.HIAWms.EntityFrameworkCore/Repositories/EfCoreWmsStoreRepository.cs
@@ -75,6 +75,7 @@
     public async Task<List<WmsStore>> GetListForSelectAsync( CancellationToken cancellationToken = default)
     {
         return await (await GetDbSetAsync())
+            .Where(x=>!x.IsDeleted)
             .ToListAsync(GetCancellationToken(cancellationToken));
     }
 
diff --git a/HIAWms/server/src/CMS.Plugin.HIAWms.MySQL/Migrations/20250429025531_InitialCreate.Designer.cs b/HIAWms/server/src/CMS.Plugin.HIAWms.MySQL/Migrations/20250429025531_InitialCreate.Designer.cs
index 67fed0b..c184d48 100644
--- a/HIAWms/server/src/CMS.Plugin.HIAWms.MySQL/Migrations/20250429025531_InitialCreate.Designer.cs
+++ b/HIAWms/server/src/CMS.Plugin.HIAWms.MySQL/Migrations/20250429025531_InitialCreate.Designer.cs
@@ -358,7 +358,7 @@
                         .HasColumnType("decimal(18,2)")
                         .HasComment("闀垮害锛堝崟浣嶏細m锛�");
 
-                    b.Property<string>("MaterialCode")
+                    b.Property<string>("MaterialNo")
                         .IsRequired()
                         .HasMaxLength(64)
                         .HasColumnType("varchar(64)")
@@ -429,7 +429,7 @@
 
                     b.HasKey("Id");
 
-                    b.HasIndex("MaterialCode")
+                    b.HasIndex("MaterialNo")
                         .IsUnique();
 
                     b.HasIndex("MaterialName");
diff --git a/HIAWms/server/src/CMS.Plugin.HIAWms.MySQL/Migrations/20250429025531_InitialCreate.cs b/HIAWms/server/src/CMS.Plugin.HIAWms.MySQL/Migrations/20250429025531_InitialCreate.cs
index 60b9400..ef50f40 100644
--- a/HIAWms/server/src/CMS.Plugin.HIAWms.MySQL/Migrations/20250429025531_InitialCreate.cs
+++ b/HIAWms/server/src/CMS.Plugin.HIAWms.MySQL/Migrations/20250429025531_InitialCreate.cs
@@ -110,7 +110,7 @@
                 columns: table => new
                 {
                     Id = table.Column<Guid>(type: "char(36)", nullable: false, collation: "ascii_general_ci"),
-                    MaterialCode = table.Column<string>(type: "varchar(64)", maxLength: 64, nullable: false, comment: "鐗╂枡缂栫爜锛堝敮涓�鏍囪瘑锛�")
+                    MaterialNo = table.Column<string>(type: "varchar(64)", maxLength: 64, nullable: false, comment: "鐗╂枡缂栫爜锛堝敮涓�鏍囪瘑锛�")
                         .Annotation("MySql:CharSet", "utf8mb4"),
                     MaterialName = table.Column<string>(type: "varchar(128)", maxLength: 128, nullable: false, comment: "鐗╂枡鍚嶇О")
                         .Annotation("MySql:CharSet", "utf8mb4"),
@@ -265,9 +265,9 @@
                 column: "ContainerType");
 
             migrationBuilder.CreateIndex(
-                name: "IX_scms_wmsmaterials_MaterialCode",
+                name: "IX_scms_wmsmaterials_MaterialNo",
                 table: "scms_wmsmaterials",
-                column: "MaterialCode",
+                column: "MaterialNo",
                 unique: true);
 
             migrationBuilder.CreateIndex(
diff --git a/HIAWms/server/src/CMS.Plugin.HIAWms.MySQL/Migrations/20250430035549_InitialCreate1.Designer.cs b/HIAWms/server/src/CMS.Plugin.HIAWms.MySQL/Migrations/20250430035549_InitialCreate1.Designer.cs
index bb6700e..4576d76 100644
--- a/HIAWms/server/src/CMS.Plugin.HIAWms.MySQL/Migrations/20250430035549_InitialCreate1.Designer.cs
+++ b/HIAWms/server/src/CMS.Plugin.HIAWms.MySQL/Migrations/20250430035549_InitialCreate1.Designer.cs
@@ -358,7 +358,7 @@
                         .HasColumnType("decimal(18,2)")
                         .HasComment("闀垮害锛堝崟浣嶏細m锛�");
 
-                    b.Property<string>("MaterialCode")
+                    b.Property<string>("MaterialNo")
                         .IsRequired()
                         .HasMaxLength(64)
                         .HasColumnType("varchar(64)")
@@ -429,7 +429,7 @@
 
                     b.HasKey("Id");
 
-                    b.HasIndex("MaterialCode")
+                    b.HasIndex("MaterialNo")
                         .IsUnique();
 
                     b.HasIndex("MaterialName");
diff --git a/HIAWms/server/src/CMS.Plugin.HIAWms.MySQL/Migrations/20250505105851_InitialCreate2.Designer.cs b/HIAWms/server/src/CMS.Plugin.HIAWms.MySQL/Migrations/20250505105851_InitialCreate2.Designer.cs
index d34dfb9..8b426e6 100644
--- a/HIAWms/server/src/CMS.Plugin.HIAWms.MySQL/Migrations/20250505105851_InitialCreate2.Designer.cs
+++ b/HIAWms/server/src/CMS.Plugin.HIAWms.MySQL/Migrations/20250505105851_InitialCreate2.Designer.cs
@@ -496,7 +496,7 @@
                         .HasColumnType("decimal(18,2)")
                         .HasComment("闀垮害锛堝崟浣嶏細m锛�");
 
-                    b.Property<string>("MaterialCode")
+                    b.Property<string>("MaterialNo")
                         .IsRequired()
                         .HasMaxLength(64)
                         .HasColumnType("varchar(64)")
@@ -567,7 +567,7 @@
 
                     b.HasKey("Id");
 
-                    b.HasIndex("MaterialCode")
+                    b.HasIndex("MaterialNo")
                         .IsUnique();
 
                     b.HasIndex("MaterialName");
diff --git a/HIAWms/server/src/CMS.Plugin.HIAWms.MySQL/Migrations/20250505121050_InitialCreate3.Designer.cs b/HIAWms/server/src/CMS.Plugin.HIAWms.MySQL/Migrations/20250505121050_InitialCreate3.Designer.cs
index a1f1d07..3cc0e34 100644
--- a/HIAWms/server/src/CMS.Plugin.HIAWms.MySQL/Migrations/20250505121050_InitialCreate3.Designer.cs
+++ b/HIAWms/server/src/CMS.Plugin.HIAWms.MySQL/Migrations/20250505121050_InitialCreate3.Designer.cs
@@ -496,7 +496,7 @@
                         .HasColumnType("decimal(18,2)")
                         .HasComment("闀垮害锛堝崟浣嶏細m锛�");
 
-                    b.Property<string>("MaterialCode")
+                    b.Property<string>("MaterialNo")
                         .IsRequired()
                         .HasMaxLength(64)
                         .HasColumnType("varchar(64)")
@@ -572,7 +572,7 @@
 
                     b.HasKey("Id");
 
-                    b.HasIndex("MaterialCode")
+                    b.HasIndex("MaterialNo")
                         .IsUnique();
 
                     b.HasIndex("MaterialName");
diff --git a/HIAWms/server/src/CMS.Plugin.HIAWms.MySQL/Migrations/20250505135455_InitialCreate4.Designer.cs b/HIAWms/server/src/CMS.Plugin.HIAWms.MySQL/Migrations/20250505135455_InitialCreate4.Designer.cs
index 88e803b..44c09f2 100644
--- a/HIAWms/server/src/CMS.Plugin.HIAWms.MySQL/Migrations/20250505135455_InitialCreate4.Designer.cs
+++ b/HIAWms/server/src/CMS.Plugin.HIAWms.MySQL/Migrations/20250505135455_InitialCreate4.Designer.cs
@@ -496,7 +496,7 @@
                         .HasColumnType("decimal(18,2)")
                         .HasComment("闀垮害锛堝崟浣嶏細m锛�");
 
-                    b.Property<string>("MaterialCode")
+                    b.Property<string>("MaterialNo")
                         .IsRequired()
                         .HasMaxLength(64)
                         .HasColumnType("varchar(64)")
@@ -572,7 +572,7 @@
 
                     b.HasKey("Id");
 
-                    b.HasIndex("MaterialCode")
+                    b.HasIndex("MaterialNo")
                         .IsUnique();
 
                     b.HasIndex("MaterialName");
diff --git a/HIAWms/server/src/CMS.Plugin.HIAWms.MySQL/Migrations/20250505140345_InitialCreate5.Designer.cs b/HIAWms/server/src/CMS.Plugin.HIAWms.MySQL/Migrations/20250505140345_InitialCreate5.Designer.cs
index cde4473..4d9151e 100644
--- a/HIAWms/server/src/CMS.Plugin.HIAWms.MySQL/Migrations/20250505140345_InitialCreate5.Designer.cs
+++ b/HIAWms/server/src/CMS.Plugin.HIAWms.MySQL/Migrations/20250505140345_InitialCreate5.Designer.cs
@@ -496,7 +496,7 @@
                         .HasColumnType("decimal(18,2)")
                         .HasComment("闀垮害锛堝崟浣嶏細m锛�");
 
-                    b.Property<string>("MaterialCode")
+                    b.Property<string>("MaterialNo")
                         .IsRequired()
                         .HasMaxLength(64)
                         .HasColumnType("varchar(64)")
@@ -572,7 +572,7 @@
 
                     b.HasKey("Id");
 
-                    b.HasIndex("MaterialCode")
+                    b.HasIndex("MaterialNo")
                         .IsUnique();
 
                     b.HasIndex("MaterialName");
diff --git a/HIAWms/server/src/CMS.Plugin.HIAWms.MySQL/Migrations/20250506070902_InitialCreate6.Designer.cs b/HIAWms/server/src/CMS.Plugin.HIAWms.MySQL/Migrations/20250506070902_InitialCreate6.Designer.cs
index 70693d5..ed96a08 100644
--- a/HIAWms/server/src/CMS.Plugin.HIAWms.MySQL/Migrations/20250506070902_InitialCreate6.Designer.cs
+++ b/HIAWms/server/src/CMS.Plugin.HIAWms.MySQL/Migrations/20250506070902_InitialCreate6.Designer.cs
@@ -705,7 +705,7 @@
                         .HasColumnType("decimal(18,2)")
                         .HasComment("闀垮害锛堝崟浣嶏細m锛�");
 
-                    b.Property<string>("MaterialCode")
+                    b.Property<string>("MaterialNo")
                         .IsRequired()
                         .HasMaxLength(64)
                         .HasColumnType("varchar(64)")
@@ -781,7 +781,7 @@
 
                     b.HasKey("Id");
 
-                    b.HasIndex("MaterialCode")
+                    b.HasIndex("MaterialNo")
                         .IsUnique();
 
                     b.HasIndex("MaterialName");
diff --git a/HIAWms/server/src/CMS.Plugin.HIAWms.MySQL/Migrations/20250506074429_InitialCreate7.Designer.cs b/HIAWms/server/src/CMS.Plugin.HIAWms.MySQL/Migrations/20250506074429_InitialCreate7.Designer.cs
index 5f92462..d4f872f 100644
--- a/HIAWms/server/src/CMS.Plugin.HIAWms.MySQL/Migrations/20250506074429_InitialCreate7.Designer.cs
+++ b/HIAWms/server/src/CMS.Plugin.HIAWms.MySQL/Migrations/20250506074429_InitialCreate7.Designer.cs
@@ -705,7 +705,7 @@
                         .HasColumnType("decimal(18,2)")
                         .HasComment("闀垮害锛堝崟浣嶏細m锛�");
 
-                    b.Property<string>("MaterialCode")
+                    b.Property<string>("MaterialNo")
                         .IsRequired()
                         .HasMaxLength(64)
                         .HasColumnType("varchar(64)")
@@ -781,7 +781,7 @@
 
                     b.HasKey("Id");
 
-                    b.HasIndex("MaterialCode")
+                    b.HasIndex("MaterialNo")
                         .IsUnique();
 
                     b.HasIndex("MaterialName");
diff --git a/HIAWms/server/src/CMS.Plugin.HIAWms.MySQL/Migrations/20250507093411_InitialCreate8.Designer.cs b/HIAWms/server/src/CMS.Plugin.HIAWms.MySQL/Migrations/20250507093411_InitialCreate8.Designer.cs
index b4de3d2..8d6a0b1 100644
--- a/HIAWms/server/src/CMS.Plugin.HIAWms.MySQL/Migrations/20250507093411_InitialCreate8.Designer.cs
+++ b/HIAWms/server/src/CMS.Plugin.HIAWms.MySQL/Migrations/20250507093411_InitialCreate8.Designer.cs
@@ -987,7 +987,7 @@
                         .HasColumnType("decimal(18,2)")
                         .HasComment("闀垮害锛堝崟浣嶏細m锛�");
 
-                    b.Property<string>("MaterialCode")
+                    b.Property<string>("MaterialNo")
                         .IsRequired()
                         .HasMaxLength(64)
                         .HasColumnType("varchar(64)")
@@ -1063,7 +1063,7 @@
 
                     b.HasKey("Id");
 
-                    b.HasIndex("MaterialCode")
+                    b.HasIndex("MaterialNo")
                         .IsUnique();
 
                     b.HasIndex("MaterialName");
diff --git a/HIAWms/server/src/CMS.Plugin.HIAWms.MySQL/Migrations/20250508005509_InitialCreate9.Designer.cs b/HIAWms/server/src/CMS.Plugin.HIAWms.MySQL/Migrations/20250508005509_InitialCreate9.Designer.cs
index ba33416..251188c 100644
--- a/HIAWms/server/src/CMS.Plugin.HIAWms.MySQL/Migrations/20250508005509_InitialCreate9.Designer.cs
+++ b/HIAWms/server/src/CMS.Plugin.HIAWms.MySQL/Migrations/20250508005509_InitialCreate9.Designer.cs
@@ -1050,7 +1050,7 @@
                         .HasColumnType("decimal(18,2)")
                         .HasComment("闀垮害锛堝崟浣嶏細m锛�");
 
-                    b.Property<string>("MaterialCode")
+                    b.Property<string>("MaterialNo")
                         .IsRequired()
                         .HasMaxLength(64)
                         .HasColumnType("varchar(64)")
@@ -1126,7 +1126,7 @@
 
                     b.HasKey("Id");
 
-                    b.HasIndex("MaterialCode")
+                    b.HasIndex("MaterialNo")
                         .IsUnique();
 
                     b.HasIndex("MaterialName");
diff --git a/HIAWms/server/src/CMS.Plugin.HIAWms.MySQL/Migrations/20250509054804_InitialCreate10.Designer.cs b/HIAWms/server/src/CMS.Plugin.HIAWms.MySQL/Migrations/20250509054804_InitialCreate10.Designer.cs
index 5153c13..317b4fb 100644
--- a/HIAWms/server/src/CMS.Plugin.HIAWms.MySQL/Migrations/20250509054804_InitialCreate10.Designer.cs
+++ b/HIAWms/server/src/CMS.Plugin.HIAWms.MySQL/Migrations/20250509054804_InitialCreate10.Designer.cs
@@ -1050,7 +1050,7 @@
                         .HasColumnType("decimal(18,2)")
                         .HasComment("闀垮害锛堝崟浣嶏細m锛�");
 
-                    b.Property<string>("MaterialCode")
+                    b.Property<string>("MaterialNo")
                         .IsRequired()
                         .HasMaxLength(64)
                         .HasColumnType("varchar(64)")
@@ -1126,7 +1126,7 @@
 
                     b.HasKey("Id");
 
-                    b.HasIndex("MaterialCode")
+                    b.HasIndex("MaterialNo")
                         .IsUnique();
 
                     b.HasIndex("MaterialName");
diff --git a/HIAWms/server/src/CMS.Plugin.HIAWms.MySQL/Migrations/20250509065902_InitialCreate11.Designer.cs b/HIAWms/server/src/CMS.Plugin.HIAWms.MySQL/Migrations/20250509065902_InitialCreate11.Designer.cs
index 359204b..91fd826 100644
--- a/HIAWms/server/src/CMS.Plugin.HIAWms.MySQL/Migrations/20250509065902_InitialCreate11.Designer.cs
+++ b/HIAWms/server/src/CMS.Plugin.HIAWms.MySQL/Migrations/20250509065902_InitialCreate11.Designer.cs
@@ -1108,7 +1108,7 @@
                         .HasColumnType("decimal(18,2)")
                         .HasComment("闀垮害锛堝崟浣嶏細m锛�");
 
-                    b.Property<string>("MaterialCode")
+                    b.Property<string>("MaterialNo")
                         .IsRequired()
                         .HasMaxLength(64)
                         .HasColumnType("varchar(64)")
@@ -1184,7 +1184,7 @@
 
                     b.HasKey("Id");
 
-                    b.HasIndex("MaterialCode")
+                    b.HasIndex("MaterialNo")
                         .IsUnique();
 
                     b.HasIndex("MaterialName");
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 4def327..52830b8 100644
--- a/HIAWms/server/src/CMS.Plugin.HIAWms.MySQL/Migrations/CMSPluginDbContextModelSnapshot.cs
+++ b/HIAWms/server/src/CMS.Plugin.HIAWms.MySQL/Migrations/CMSPluginDbContextModelSnapshot.cs
@@ -1106,7 +1106,7 @@
                         .HasColumnType("decimal(18,2)")
                         .HasComment("闀垮害锛堝崟浣嶏細m锛�");
 
-                    b.Property<string>("MaterialCode")
+                    b.Property<string>("MaterialNo")
                         .IsRequired()
                         .HasMaxLength(64)
                         .HasColumnType("varchar(64)")
@@ -1182,7 +1182,7 @@
 
                     b.HasKey("Id");
 
-                    b.HasIndex("MaterialCode")
+                    b.HasIndex("MaterialNo")
                         .IsUnique();
 
                     b.HasIndex("MaterialName");
diff --git a/HIAWms/server/src/CMS.Plugin.HIAWms/Controller/WmsContainerPlaceController.cs b/HIAWms/server/src/CMS.Plugin.HIAWms/Controller/WmsContainerPlaceController.cs
new file mode 100644
index 0000000..ae58998
--- /dev/null
+++ b/HIAWms/server/src/CMS.Plugin.HIAWms/Controller/WmsContainerPlaceController.cs
@@ -0,0 +1,188 @@
+using Ao.Lang; 
+using CMS.Extensions.Abp.AspNetCore.Mvc.Filters; 
+using CMS.Plugin.HIAWms.Application.Contracts.Dtos.WmsContainerPlace; 
+using CMS.Plugin.HIAWms.Application.Contracts.Services; 
+using Microsoft.AspNetCore.Authorization; 
+using Microsoft.AspNetCore.Http; 
+using Microsoft.AspNetCore.Mvc; 
+using MiniExcelLibs; 
+using System.Reflection; 
+using Volo.Abp; 
+using Volo.Abp.Application.Dtos; 
+ 
+namespace CMS.Plugin.HIAWms.Controller 
+{ 
+    /// <summary> 
+    /// 搴撲綅瀹瑰櫒鍏崇郴鏈嶅姟 
+    /// </summary> 
+    [ApiController] 
+    [TypeFilter(typeof(CMSLanguageFilter))] 
+    [TypeFilter(typeof(CMSUowActionFilter))] 
+    [TypeFilter(typeof(CMSAuditActionFilter))] 
+    [TypeFilter(typeof(CMSExceptionFilter))] 
+    [Route("api/v{version:apiVersion}/HIAWms/[controller]")] 
+    public class WmsContainerPlaceController : ControllerBase 
+    { 
+        private readonly IWmsContainerPlaceAppService _wmsContainerPlaceAppService; 
+ 
+        /// <summary> 
+        /// Initializes a new instance of the <see cref="WmsContainerPlaceController"/> class. 
+        /// </summary> 
+        /// <param name="wmsContainerPlaceAppService">The wmsContainerPlace application service.</param> 
+        public WmsContainerPlaceController(IWmsContainerPlaceAppService wmsContainerPlaceAppService) 
+        { 
+            _wmsContainerPlaceAppService = wmsContainerPlaceAppService; 
+        } 
+ 
+        /// <summary> 
+        /// 鑾峰彇搴撲綅瀹瑰櫒鍏崇郴 
+        /// </summary> 
+        /// <param name="id">鏍囪瘑绗�.</param> 
+        /// <returns></returns> 
+        [HttpGet] 
+        [Route("{id}")] 
+        public virtual Task<WmsContainerPlaceDto> GetAsync(Guid id) 
+        { 
+            return _wmsContainerPlaceAppService.GetAsync(id); 
+        } 
+ 
+        /// <summary> 
+        /// 鍒嗛〉鑾峰彇搴撲綅瀹瑰櫒鍏崇郴鐨勫垪琛�. 
+        /// </summary> 
+        /// <param name="input">杈撳叆.</param> 
+        /// <returns></returns> 
+        [HttpGet] 
+        [Route("Page")] 
+        public virtual Task<PagedResultDto<WmsContainerPlaceDto>> GetListAsync([FromQuery] GetWmsContainerPlaceInput input) 
+        { 
+            return _wmsContainerPlaceAppService.GetListAsync(input); 
+        } 
+ 
+        /// <summary> 
+        /// 鍒涘缓搴撲綅瀹瑰櫒鍏崇郴 
+        /// </summary> 
+        /// <param name="input">杈撳叆.</param> 
+        /// <returns></returns> 
+        //[Authorize] 
+        [HttpPost] 
+        public virtual Task<WmsContainerPlaceDto> CreateAsync(WmsContainerPlaceCreateDto input) 
+        { 
+            return _wmsContainerPlaceAppService.CreateAsync(input); 
+        } 
+ 
+        /// <summary> 
+        /// 鏇存柊搴撲綅瀹瑰櫒鍏崇郴 
+        /// </summary> 
+        /// <param name="id">鏍囪瘑绗�.</param> 
+        /// <param name="input">杈撳叆.</param> 
+        /// <returns></returns> 
+        //[Authorize] 
+        [HttpPut] 
+        [Route("{id}")] 
+        public virtual Task<WmsContainerPlaceDto> UpdateAsync(Guid id, WmsContainerPlaceUpdateDto input) 
+        { 
+            return _wmsContainerPlaceAppService.UpdateAsync(id, input); 
+        } 
+ 
+        /// <summary> 
+        /// 鍏嬮殕搴撲綅瀹瑰櫒鍏崇郴 
+        /// </summary> 
+        /// <param name="ids">Id闆嗗悎.</param> 
+        /// <returns></returns> 
+        //[Authorize] 
+        [HttpPost] 
+        [Route("Clone")] 
+        public virtual Task<List<WmsContainerPlaceDto>> CloneAsync([FromBody] IEnumerable<Guid> ids) 
+        { 
+            return _wmsContainerPlaceAppService.CloneAsync(ids); 
+        } 
+ 
+        /// <summary> 
+        /// 鍒犻櫎搴撲綅瀹瑰櫒鍏崇郴 
+        /// </summary> 
+        /// <param name="id">鏍囪瘑绗�.</param> 
+        /// <returns></returns> 
+        //[Authorize] 
+        [HttpDelete] 
+        [Route("{id}")] 
+        public virtual Task DeleteAsync(Guid id) 
+        { 
+            return _wmsContainerPlaceAppService.DeleteAsync(id); 
+        } 
+ 
+        /// <summary> 
+        /// 鎵归噺鍒犻櫎搴撲綅瀹瑰櫒鍏崇郴 
+        /// </summary> 
+        /// <param name="ids">The ids.</param> 
+        /// <returns></returns> 
+        //[Authorize] 
+        [HttpDelete] 
+        public virtual Task DeleteAsync([FromBody] IEnumerable<Guid> ids) 
+        { 
+            return _wmsContainerPlaceAppService.DeleteManyAsync(ids); 
+        } 
+ 
+        /// <summary> 
+        /// 璋冩暣鎺掑簭搴撲綅瀹瑰櫒鍏崇郴 
+        /// </summary> 
+        /// <param name="id">鏍囪瘑绗�.</param> 
+        /// <returns></returns> 
+        [HttpPut] 
+        [Route("{id}/AdjustSort/{sort}")] 
+        public virtual Task AdjustSortAsync(Guid id, int sort) 
+        { 
+            return _wmsContainerPlaceAppService.AdjustSortAsync(id, sort); 
+        } 
+ 
+        /// <summary> 
+        /// 瀵煎叆搴撲綅瀹瑰櫒鍏崇郴 
+        /// </summary> 
+        /// <returns></returns> 
+        [Authorize] 
+        [HttpPost] 
+        [Route("Import")] 
+        public virtual async Task<IActionResult> ImportAsync(IFormFile file) 
+        { 
+            using var stream = new MemoryStream(); 
+            await file.CopyToAsync(stream); 
+            stream.Seek(0L, SeekOrigin.Begin); 
+ 
+            var sheetNames = stream.GetSheetNames(); 
+            var wmsContainerPlaceRows = sheetNames.Contains("閰嶇疆") ? MiniExcel.Query<WmsContainerPlacesImportModel.WmsContainerPlaceImportModel>(stream, sheetName: "閰嶇疆").ToList() : new(); 
+ 
+            if (!wmsContainerPlaceRows.Any()) 
+            { 
+                throw new UserFriendlyException("璇锋鏌ュ鍏ョ殑琛ㄦ牸"); 
+            } 
+ 
+            await _wmsContainerPlaceAppService.ImportAsync(new WmsContainerPlacesImportModel 
+            { 
+                WmsContainerPlaces = wmsContainerPlaceRows, 
+            }); 
+ 
+            return Ok(); 
+        } 
+ 
+        /// <summary> 
+        /// 瀵煎嚭搴撲綅瀹瑰櫒鍏崇郴 
+        /// </summary> 
+        /// <returns></returns> 
+        [HttpGet] 
+        [Route("Export")] 
+        public virtual async Task<IActionResult> ExportAsync([FromQuery] GetWmsContainerPlaceInput input) 
+        { 
+            input.MaxResultCount = int.MaxValue; 
+            var exportData = await _wmsContainerPlaceAppService.ExportAsync(input); 
+            var templatePath = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, $"Resources/Templates/WmsContainerPlace瀵煎嚭妯℃澘.xlsx"); 
+            if (!System.IO.File.Exists(templatePath)) 
+            { 
+                templatePath = Path.Combine(Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location) ?? string.Empty, $"Resources/Templates/WmsContainerPlace瀵煎嚭妯℃澘.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/WmsEnumController.cs b/HIAWms/server/src/CMS.Plugin.HIAWms/Controller/WmsEnumController.cs
index 33bfab3..41c7f75 100644
--- a/HIAWms/server/src/CMS.Plugin.HIAWms/Controller/WmsEnumController.cs
+++ b/HIAWms/server/src/CMS.Plugin.HIAWms/Controller/WmsEnumController.cs
@@ -1,7 +1,10 @@
 锘縰sing CMS.Extensions.Abp.AspNetCore.Mvc.Filters;
+using CMS.Plugin.HIAWms.Application.Contracts.Dtos.CommonDto;
 using CMS.Plugin.HIAWms.Application.Contracts.Dtos.WmsEnumDto;
 using CMS.Plugin.HIAWms.Application.Contracts.Dtos.WmsStores;
 using CMS.Plugin.HIAWms.Application.Contracts.Services;
+using CMS.Plugin.HIAWms.Domain.Shared.Enums;
+using CMS.Plugin.HIAWms.Domain.WmsMaterials;
 using CmsQueryExtensions;
 using Microsoft.AspNetCore.Mvc;
 using System;
@@ -77,5 +80,28 @@
         {
             return await _wmsEnumAppService.GetAisleListAsync();
         }
+
+        /// <summary>
+        /// 鑾峰彇鏈哄瀷
+        /// </summary>
+        /// <returns></returns>
+        [HttpGet]
+        [Route("ModelList")]
+        public async Task<List<MaterialModelOutput>> GetMaterialModeListAsync()
+        {
+           return await  _wmsEnumAppService.GetMaterialModeListAsync();
+        }
+
+        /// <summary>
+        /// 鑾峰彇搴撲綅鍒楄〃
+        /// </summary>
+        /// <param name="placeType"></param>
+        /// <returns></returns>
+        [HttpGet]
+        [Route("PlaceList")]
+        public async Task<List<PlaceListOutput>> GetPlaceListForSelectAsync(PlaceTypeEnum placeType)
+        {
+            return await _wmsEnumAppService.GetPlaceListForSelectAsync(placeType);
+        }
     }
 }
diff --git "a/HIAWms/server/src/CMS.Plugin.HIAWms/Resources/Templates/WmsContainerPlace\345\257\274\345\207\272\346\250\241\346\235\277.xlsx" "b/HIAWms/server/src/CMS.Plugin.HIAWms/Resources/Templates/WmsContainerPlace\345\257\274\345\207\272\346\250\241\346\235\277.xlsx"
new file mode 100644
index 0000000..8b54fda
--- /dev/null
+++ "b/HIAWms/server/src/CMS.Plugin.HIAWms/Resources/Templates/WmsContainerPlace\345\257\274\345\207\272\346\250\241\346\235\277.xlsx"
Binary files differ

--
Gitblit v1.9.3