From 2f3617a5147d025ac13a70938859974f4b369b4b Mon Sep 17 00:00:00 2001
From: zs <zhousong@weben-smart.com>
Date: 周三, 30 4月 2025 20:53:06 +0800
Subject: [PATCH] 仓库前端修改

---
 HIAWms/server/src/CMS.Plugin.HIAWms.Application/Implements/WmsPlaceAppService.cs                 |   13 ++-
 HIAWms/web/src/widgets/HIAWms/Models/Service/WmsMaterialDrawer.ts                                |   16 +++++
 HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsPlaces/WmsPlaceDto.cs          |   44 ++++++++++++++
 HIAWms/server/src/CMS.Plugin.HIAWms.Application/MapperProfiles/WmsPlaceAutoMapperProfile.cs      |    1 
 HIAWms/web/src/widgets/WmsContainer/Controllers/WmsContainerDrawer.tsx                           |    1 
 HIAWms/web/src/widgets/WmsStoreInfo/Controllers/WmsAreaDrawer.ts                                 |   53 ++++++++++++++---
 HIAWms/server/src/CMS.Plugin.HIAWms.EntityFrameworkCore/Repositories/EfCoreWmsPlaceRepository.cs |   23 +++++++
 HIAWms/server/src/CMS.Plugin.HIAWms.Domain/WmsPlaces/IWmsPlaceRepository.cs                      |    4 
 HIAWms/web/src/widgets/WmsStoreInfo/Controllers/WmsStoreDrawer.ts                                |   14 +++-
 9 files changed, 144 insertions(+), 25 deletions(-)

diff --git a/HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsPlaces/WmsPlaceDto.cs b/HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsPlaces/WmsPlaceDto.cs
index b5f3b70..c4e2357 100644
--- a/HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsPlaces/WmsPlaceDto.cs
+++ b/HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsPlaces/WmsPlaceDto.cs
@@ -20,9 +20,31 @@
     public PlaceTypeEnum StorageTypeNo { get; protected set; }
 
     /// <summary>
+    /// 璐т綅绫诲瀷
+    /// </summary>
+    public string StorageTypeNoDesc
+    {
+        get
+        {
+            return GetEnumDescriptionUtil.GetEnumDescription(StorageTypeNo);
+        }
+    }
+
+    /// <summary>
     /// 璐т綅鐘舵��
     /// </summary>
     public PlaceStatusEnum PlaceStatus { get; protected set; }
+
+    /// <summary>
+    /// 璐т綅鐘舵��
+    /// </summary>
+    public string PlaceStatusDesc
+    {
+        get
+        {
+            return GetEnumDescriptionUtil.GetEnumDescription(PlaceStatus);
+        }
+    }
 
     /// <summary>
     /// 鎵�鍦ㄥ簱鍖�
@@ -55,11 +77,33 @@
     public YesNoEnum Islock { get; protected set; }
 
     /// <summary>
+    /// 鏄惁閿佸畾
+    /// </summary>
+    public string IslockDesc
+    {
+        get
+        {
+            return GetEnumDescriptionUtil.GetEnumDescription(Islock);
+        }
+    }
+
+    /// <summary>
     /// 鏄惁绌烘墭
     /// </summary>
     public YesNoEnum EmptyContainer { get; protected set; }
 
     /// <summary>
+    /// 鏄惁绌烘墭
+    /// </summary>
+    public string EmptyContainerDesc
+    {
+        get
+        {
+            return GetEnumDescriptionUtil.GetEnumDescription(EmptyContainer);
+        }
+    }
+
+    /// <summary>
     /// 鍐椾綑瀛楁1 - 棰勭暀鎵╁睍鐢ㄩ��
     /// </summary>
     public string RedundantField1 { get; set; }
diff --git a/HIAWms/server/src/CMS.Plugin.HIAWms.Application/Implements/WmsPlaceAppService.cs b/HIAWms/server/src/CMS.Plugin.HIAWms.Application/Implements/WmsPlaceAppService.cs
index 6a3bd8d..8d3b362 100644
--- a/HIAWms/server/src/CMS.Plugin.HIAWms.Application/Implements/WmsPlaceAppService.cs
+++ b/HIAWms/server/src/CMS.Plugin.HIAWms.Application/Implements/WmsPlaceAppService.cs
@@ -7,6 +7,7 @@
 using Volo.Abp.Application.Dtos;
 using Volo.Abp.Data;
 using Volo.Abp.ObjectExtending;
+using CMS.Plugin.HIAWms.Domain.Shared.Util;
 
 namespace CMS.Plugin.HIAWms.Application.Implements;
 
@@ -41,8 +42,9 @@
         }
 
         var specification = new WmsPlaceSpecification(input.Name);
-        var count = await _wmsplaceRepository.GetCountAsync(input.Filter, specification);
-        var list = await _wmsplaceRepository.GetListAsync(input.Sorting, input.MaxResultCount,  input.SkipCount, input.Filter, specification);
+        var place = ObjectMapper.Map<GetWmsPlacesInput, WmsPlace>(input);
+        var count = await _wmsplaceRepository.GetCountAsync(place,input.Filter, specification);
+        var list = await _wmsplaceRepository.GetListAsync(place, input.Sorting, input.MaxResultCount,  input.SkipCount, input.Filter, specification);
 
         return new PagedResultDto<WmsPlaceDto>(count, ObjectMapper.Map<List<WmsPlace>, List<WmsPlaceDto>>(list));
     }
@@ -160,7 +162,7 @@
     /// <inheritdoc />
     public virtual async Task AdjustSortAsync(Guid id, int sort)
     {
-        var list = await _wmsplaceRepository.GetListAsync(nameof(WmsPlace.Sort));
+        var list = await _wmsplaceRepository.GetListAsync(null,nameof(WmsPlace.Sort));
         if (list != null && list.Any())
         {
             var initSort = 1;
@@ -293,12 +295,13 @@
         }
 
         var specification = new WmsPlaceSpecification(input.Name);
-        var list = await _wmsplaceRepository.GetListAsync(input.Sorting, input.MaxResultCount, input.SkipCount, input.Filter, specification, includeDetails: true);
+        var place = ObjectMapper.Map<GetWmsPlacesInput, WmsPlace>(input);
+        var list = await _wmsplaceRepository.GetListAsync(place, input.Sorting, input.MaxResultCount, input.SkipCount, input.Filter, specification, includeDetails: true);
         var result = ObjectMapper.Map<List<WmsPlace>, List<WmsPlaceDto>>(list);
 
         var sheets = new Dictionary<string, object>
         {
-            ["閰嶇疆"] = result.Select(x => x.GetExportData()).ToList(),
+            ["閰嶇疆"] = ExportHelper.ConvertListToExportData(result),
         };
 
         var fileName = result.Count > 1 ? "WmsPlace鍒楄〃" : result.Count == 1 ? result.First()?.PlaceNo : "WmsPlace妯$増";
diff --git a/HIAWms/server/src/CMS.Plugin.HIAWms.Application/MapperProfiles/WmsPlaceAutoMapperProfile.cs b/HIAWms/server/src/CMS.Plugin.HIAWms.Application/MapperProfiles/WmsPlaceAutoMapperProfile.cs
index e53aaa0..f58553d 100644
--- a/HIAWms/server/src/CMS.Plugin.HIAWms.Application/MapperProfiles/WmsPlaceAutoMapperProfile.cs
+++ b/HIAWms/server/src/CMS.Plugin.HIAWms.Application/MapperProfiles/WmsPlaceAutoMapperProfile.cs
@@ -21,5 +21,6 @@
          * into multiple profile classes for a better organization. */
         CreateMap<WmsPlace, WmsPlaceDto>(MemberList.None).MapExtraProperties(MappingPropertyDefinitionChecks.None);
         CreateMap<WmsPlaceCreateDto, WmsPlace>(MemberList.None).MapExtraProperties(MappingPropertyDefinitionChecks.None);
+        CreateMap<GetWmsPlacesInput, WmsPlace>(MemberList.None).MapExtraProperties(MappingPropertyDefinitionChecks.None);
     }
 }
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 6691a2a..b18102b 100644
--- a/HIAWms/server/src/CMS.Plugin.HIAWms.Domain/WmsPlaces/IWmsPlaceRepository.cs
+++ b/HIAWms/server/src/CMS.Plugin.HIAWms.Domain/WmsPlaces/IWmsPlaceRepository.cs
@@ -41,7 +41,7 @@
     /// <param name="includeDetails">if set to <c>true</c> [include details].</param>
     /// <param name="cancellationToken">The cancellation token.</param>
     /// <returns></returns>
-    Task<List<WmsPlace>> GetListAsync(string sorting = null, int maxResultCount = int.MaxValue,  int skipCount = 0, string filter = null, Specification<WmsPlace> specification = null, bool includeDetails = false, CancellationToken cancellationToken = default);
+    Task<List<WmsPlace>> GetListAsync(WmsPlace? place, string sorting = null, int maxResultCount = int.MaxValue,  int skipCount = 0, string filter = null, Specification<WmsPlace> specification = null, bool includeDetails = false, CancellationToken cancellationToken = default);
 
     /// <summary>
     /// Gets the count asynchronous.
@@ -50,5 +50,5 @@
     /// <param name="specification">The specification.</param>
     /// <param name="cancellationToken">The cancellation token.</param>
     /// <returns></returns>
-    Task<long> GetCountAsync(string filter = null, Specification<WmsPlace> specification = null, CancellationToken cancellationToken = default);
+    Task<long> GetCountAsync(WmsPlace? place, string filter = null, Specification<WmsPlace> specification = null, CancellationToken cancellationToken = default);
 }
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 31452c7..cc36680 100644
--- a/HIAWms/server/src/CMS.Plugin.HIAWms.EntityFrameworkCore/Repositories/EfCoreWmsPlaceRepository.cs
+++ b/HIAWms/server/src/CMS.Plugin.HIAWms.EntityFrameworkCore/Repositories/EfCoreWmsPlaceRepository.cs
@@ -1,6 +1,7 @@
 using System.Linq.Dynamic.Core;
 using CMS.Plugin.HIAWms.Domain.WmsPlaces;
 using CMS.Plugin.HIAWms.EntityFrameworkCore.Extensions;
+using Microsoft.AspNetCore.Components.Forms;
 using Microsoft.EntityFrameworkCore;
 using Volo.Abp.Domain.Repositories.EntityFrameworkCore;
 using Volo.Abp.EntityFrameworkCore;
@@ -52,13 +53,22 @@
     }
 
     /// <inheritdoc />
-    public async Task<List<WmsPlace>> GetListAsync(string sorting = null, int maxResultCount = int.MaxValue, int skipCount = 0, string filter = null, Specification<WmsPlace> specification = null, bool includeDetails = false, CancellationToken cancellationToken = default)
+    public async Task<List<WmsPlace>> GetListAsync(WmsPlace? place, string sorting = null, int maxResultCount = int.MaxValue, int skipCount = 0, string filter = null, Specification<WmsPlace> specification = null, bool includeDetails = false, CancellationToken cancellationToken = default)
     {
         specification ??= new WmsPlaceSpecification();
         return await (await GetDbSetAsync())
             .IncludeDetails(includeDetails)
             .Where(specification.ToExpression())
             .WhereIf(!filter.IsNullOrWhiteSpace(), u => u.PlaceNo.Contains(filter))
+            .WhereIf(!string.IsNullOrEmpty(place.PlaceNo), u => u.PlaceNo == place.PlaceNo)
+            .WhereIf(place.PlaceStatus > 0, u => u.PlaceStatus == place.PlaceStatus)
+            .WhereIf(place.StorageTypeNo > 0, u => u.StorageTypeNo == place.StorageTypeNo)
+            .WhereIf(place.Aisle > 0, u => u.Aisle == place.Aisle)
+            .WhereIf(place.RowNo > 0, u => u.RowNo == place.RowNo)
+            .WhereIf(place.ColumnNo > 0, u => u.ColumnNo == place.ColumnNo)
+            .WhereIf(place.LayerNo > 0, u => u.LayerNo == place.LayerNo)
+            .WhereIf(place.Islock > 0, u => u.Islock == place.Islock)
+            .WhereIf(place.EmptyContainer > 0, u => u.EmptyContainer == place.EmptyContainer)
             .Where(x => !x.IsDeleted)
             .OrderBy(sorting.IsNullOrEmpty() ? nameof(WmsPlace.Sort) : sorting)
             .PageBy(skipCount, maxResultCount)
@@ -66,11 +76,20 @@
     }
 
     /// <inheritdoc />
-    public async Task<long> GetCountAsync(string filter = null, Specification<WmsPlace> specification = null, CancellationToken cancellationToken = default)
+    public async Task<long> GetCountAsync(WmsPlace? place, string filter = null, Specification<WmsPlace> specification = null, CancellationToken cancellationToken = default)
     {
         specification ??= new WmsPlaceSpecification();
         return await (await GetQueryableAsync())
             .Where(specification.ToExpression())
+            .WhereIf(!string.IsNullOrEmpty(place.PlaceNo), u => u.PlaceNo == place.PlaceNo)
+            .WhereIf(place.PlaceStatus > 0, u => u.PlaceStatus == place.PlaceStatus)
+            .WhereIf(place.StorageTypeNo > 0, u => u.StorageTypeNo == place.StorageTypeNo)
+            .WhereIf(place.Aisle > 0, u => u.Aisle == place.Aisle)
+            .WhereIf(place.RowNo > 0, u => u.RowNo == place.RowNo)
+            .WhereIf(place.ColumnNo > 0, u => u.ColumnNo == place.ColumnNo)
+            .WhereIf(place.LayerNo > 0, u => u.LayerNo == place.LayerNo)
+            .WhereIf(place.Islock > 0, u => u.Islock == place.Islock)
+            .WhereIf(place.EmptyContainer > 0, u => u.EmptyContainer == place.EmptyContainer)
             .Where(x => !x.IsDeleted)
             .WhereIf(!filter.IsNullOrWhiteSpace(), u => u.PlaceNo.Contains(filter))
             .CountAsync(cancellationToken: GetCancellationToken(cancellationToken));
diff --git a/HIAWms/web/src/widgets/HIAWms/Models/Service/WmsMaterialDrawer.ts b/HIAWms/web/src/widgets/HIAWms/Models/Service/WmsMaterialDrawer.ts
index f092a7e..a31f0fa 100644
--- a/HIAWms/web/src/widgets/HIAWms/Models/Service/WmsMaterialDrawer.ts
+++ b/HIAWms/web/src/widgets/HIAWms/Models/Service/WmsMaterialDrawer.ts
@@ -40,3 +40,19 @@
 export const getWmsDataList = (data: any) => {
   return request.post('/api/v1/hIAWms/wmsmaterial/page', data)
 }
+
+/**
+ * 鑾峰彇浠撳簱鍒楄〃
+ * @returns
+ */
+export const getStoreDataList = () => {
+  return request.get('/api/v1/hIAWms/WmsEnum/StoreList')
+}
+
+/**
+ * 鑾峰彇搴撳尯鍒楄〃
+ * @returns
+ */
+export const getAreaAreaDataList = () => {
+  return request.get('/api/v1/hIAWms/WmsEnum/AreaList')
+}
diff --git a/HIAWms/web/src/widgets/WmsContainer/Controllers/WmsContainerDrawer.tsx b/HIAWms/web/src/widgets/WmsContainer/Controllers/WmsContainerDrawer.tsx
index f7f5228..816c927 100644
--- a/HIAWms/web/src/widgets/WmsContainer/Controllers/WmsContainerDrawer.tsx
+++ b/HIAWms/web/src/widgets/WmsContainer/Controllers/WmsContainerDrawer.tsx
@@ -58,6 +58,7 @@
       label: '鎵樼洏缂栧彿',
       prop: 'containerNo',
       el: 'input',
+      disabled: disabled,
       placeholder: '璇疯緭鍏ユ墭鐩樼紪鍙�',
       rules: [{ required: true, message: '鎵樼洏缂栧彿涓嶈兘涓虹┖', trigger: 'blur' }],
     },
diff --git a/HIAWms/web/src/widgets/WmsStoreInfo/Controllers/WmsAreaDrawer.ts b/HIAWms/web/src/widgets/WmsStoreInfo/Controllers/WmsAreaDrawer.ts
index 335aeb0..4dec2af 100644
--- a/HIAWms/web/src/widgets/WmsStoreInfo/Controllers/WmsAreaDrawer.ts
+++ b/HIAWms/web/src/widgets/WmsStoreInfo/Controllers/WmsAreaDrawer.ts
@@ -5,6 +5,10 @@
 import isEqual from 'lodash/isEqual'
 import { ConfirmBox } from '@/components/ConfirmBox/ConfirmBox'
 import { cloneDeep } from 'lodash'
+import {
+  getWmsEnumData,
+  getStoreDataList,
+} from '@/widgets/HIAWms/Models/Service/WmsMaterialDrawer'
 
 export const useWmsAreaDrawer = (props: any, ctx?: any) => {
   const wmsAreaDrawer = injectModel<WmsAreaDrawer>('wmsAreaDrawer')
@@ -15,6 +19,7 @@
   const formData = ref<Record<string, any>>({})
   // ref
   const formRef = ref()
+  const disabled = ref(false)
 
   const current = computed(() => {
     return props.row || null
@@ -35,6 +40,7 @@
       label: '搴撳尯缂栧彿',
       prop: 'areaNo',
       el: 'input',
+      disabled: disabled,
       placeholder: '璇疯緭鍏ュ簱鍖虹紪鍙�',
       rules: [{ required: true, message: '搴撳尯缂栧彿涓嶈兘涓虹┖', trigger: 'blur' }],
     },
@@ -55,11 +61,7 @@
       label: '搴撳尯鐘舵��',
       prop: 'areaStatus',
       el: 'select',
-      options: [
-        { label: '鍚敤', value: 'Active' },
-        { label: '绂佺敤', value: 'Inactive' },
-        // 鏍规嵁瀹為檯鐨� AreaStatusEnum 娣诲姞鏇村閫夐」
-      ],
+      options: [],
       placeholder: '璇烽�夋嫨搴撳尯鐘舵��',
       rules: [
         { required: true, message: '搴撳尯鐘舵�佷笉鑳戒负绌�', trigger: 'change' },
@@ -69,11 +71,7 @@
       label: '搴撳尯绫诲瀷',
       prop: 'areaType',
       el: 'select',
-      options: [
-        { label: '瀛樺偍鍖�', value: 'Storage' },
-        { label: '瑁呭嵏鍖�', value: 'Loading' },
-        // 鏍规嵁瀹為檯鐨� AreaTypeEnum 娣诲姞鏇村閫夐」
-      ],
+      options: [],
       placeholder: '璇烽�夋嫨搴撳尯绫诲瀷',
       rules: [
         { required: true, message: '搴撳尯绫诲瀷涓嶈兘涓虹┖', trigger: 'change' },
@@ -82,7 +80,8 @@
     {
       label: '浠撳簱浠g爜',
       prop: 'storeCode',
-      el: 'input',
+      el: 'select',
+      options: [],
       placeholder: '璇疯緭鍏ヤ粨搴撲唬鐮�',
     },
     {
@@ -173,10 +172,40 @@
       },
     }
   }
+  const updateFormItemOptions = (propName: string, enumData: any[]) => {
+    const item = formItems.find((item) => item.prop === propName)
+    if (item && enumData) {
+      item.options = enumData.map((item) => ({
+        label: item.description,
+        value: item.value,
+      }))
+    }
+  }
+  const updateFormStoreOptions = (propName: string, enumData: any[]) => {
+    const item = formItems.find((item) => item.prop === propName)
+    if (item && enumData) {
+      item.options = enumData.map((item) => ({
+        label: item.StoreCode,
+        value: item.StoreName,
+      }))
+    }
+  }
   /**
    * 寮圭獥鎵撳紑鑾峰彇璇︽儏
    */
   const onOpen = async () => {
+    const areaStatusEnum = await getWmsEnumData({
+      EnumName: 'AreaStatusEnum',
+    })
+    updateFormItemOptions('areaStatus', areaStatusEnum)
+
+    const areaTypeEnum = await getWmsEnumData({
+      EnumName: 'AreaTypeEnum',
+    })
+    updateFormItemOptions('areaType', areaTypeEnum)
+
+    const storeList = await getStoreDataList()
+    updateFormItemOptions('storeCode', storeList)
     if (current.value) {
       const res = await wmsAreaDrawer.getWmsAreaDetail(current.value)
 
@@ -191,8 +220,10 @@
         remark: res.remark, // 澶囨敞
         id: res.id,
       }
+      disabled.value = true
       updateCheckData()
     } else {
+      disabled.value = false
       formData.value = {}
       updateCheckData()
     }
diff --git a/HIAWms/web/src/widgets/WmsStoreInfo/Controllers/WmsStoreDrawer.ts b/HIAWms/web/src/widgets/WmsStoreInfo/Controllers/WmsStoreDrawer.ts
index 721dc84..4a4e453 100644
--- a/HIAWms/web/src/widgets/WmsStoreInfo/Controllers/WmsStoreDrawer.ts
+++ b/HIAWms/web/src/widgets/WmsStoreInfo/Controllers/WmsStoreDrawer.ts
@@ -15,6 +15,7 @@
   const formData = ref<Record<string, any>>({})
   // ref
   const formRef = ref()
+  const disabled = ref(false)
 
   const current = computed(() => {
     return props.row || null
@@ -35,12 +36,13 @@
       label: '浠撳簱浠g爜',
       prop: 'storeCode',
       el: 'input',
+      disabled: disabled,
       placeholder: '璇疯緭鍏ヤ粨搴撲唬鐮�',
       rules: [{ required: true, message: '浠撳簱浠g爜', trigger: 'blur' }],
     },
     {
       label: '浠撳簱鍚嶇О',
-      prop: 'storeCode',
+      prop: 'storeName',
       el: 'input',
       placeholder: '璇疯緭鍏ヤ粨搴撳悕绉�',
       rules: [{ required: true, message: '浠撳簱鍚嶇О', trigger: 'blur' }],
@@ -86,8 +88,8 @@
   const onConfirm = async () => {
     await formRef.value?.validate()
     const data = {
-      name: formData.value.name,
-      code: formData.value.code,
+      storeName: formData.value.storeName,
+      storeCode: formData.value.storeCode,
       remark: formData.value.remark,
       sort: props.sort,
     }
@@ -116,13 +118,15 @@
       const res = await wmsStoreDrawer.getWmsStoreDetail(current.value)
 
       formData.value = {
-        name: res.name,
-        code: res.code,
+        storeName: res.storeName,
+        storeCode: res.storeCode,
         remark: res.remark,
         id: res.id,
       }
+      disabled.value = true
       updateCheckData()
     } else {
+      disabled.value = false
       formData.value = {}
       updateCheckData()
     }

--
Gitblit v1.9.3