From a3a2b238a2626ef8744e7a135f9ca2e2fbb5184c Mon Sep 17 00:00:00 2001 From: schangxiang@126.com <schangxiang@126.com> Date: 周三, 21 5月 2025 10:17:36 +0800 Subject: [PATCH] 优化 --- HIAWms/server/src/CMS.Plugin.HIAWms.Application/Implements/WmsEnumAppService.cs | 158 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 156 insertions(+), 2 deletions(-) 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 a3f4057..2d20ac3 100644 --- a/HIAWms/server/src/CMS.Plugin.HIAWms.Application/Implements/WmsEnumAppService.cs +++ b/HIAWms/server/src/CMS.Plugin.HIAWms.Application/Implements/WmsEnumAppService.cs @@ -1,11 +1,25 @@ -锘縰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.WmsMaterialType; +using CMS.Plugin.HIAWms.Application.Contracts.Dtos.WmsStore; using CMS.Plugin.HIAWms.Application.Contracts.Services; -using CMS.Plugin.HIAWms.Domain.Shared.Util; +using CMS.Plugin.HIAWms.Domain.Shared.Enums; +using CMS.Plugin.HIAWms.Domain.WmsAreas; +using CMS.Plugin.HIAWms.Domain.WmsMaterials; +using CMS.Plugin.HIAWms.Domain.WmsMaterialTypes; +using CMS.Plugin.HIAWms.Domain.WmsPlaces; +using CMS.Plugin.HIAWms.Domain.WmsStores; +using CmsQueryExtensions; +using CmsQueryExtensions.Extension; using System; using System.Collections.Generic; using System.Linq; +using System.Linq.Expressions; using System.Text; using System.Threading.Tasks; +using CMS.Plugin.HIAWms.Domain.WmsMaterialTypes; +using static CMS.Plugin.HIAWms.Application.Contracts.Dtos.WmsArea.WmsAreaCreateOrUpdateDtoBase; +using static CMS.Plugin.HIAWms.Application.Contracts.Dtos.WmsPlace.WmsPlaceCreateOrUpdateDtoBase; namespace CMS.Plugin.HIAWms.Application.Implements { @@ -14,9 +28,149 @@ /// </summary> public class WmsEnumAppService : CMSPluginAppService, IWmsEnumAppService { + private readonly IWmsStoreRepository _storeRepository; + private readonly IWmsAreaRepository _wmsAreaRepository; + private readonly IWmsPlaceRepository _wmsPlaceRepository; + private readonly IWmsMaterialRepository _wmsMaterialRepository; + private readonly IWmsMaterialTypeRepository _WmsMaterialTypeRepository; + + public WmsEnumAppService(IWmsStoreRepository storeRepository, IWmsAreaRepository wmsAreaRepository, IWmsPlaceRepository wmsPlaceRepository, IWmsMaterialRepository wmsMaterialRepository, IWmsMaterialTypeRepository wmsMaterialTypeRepository) + { + _storeRepository = storeRepository; + _wmsAreaRepository = wmsAreaRepository; + _wmsPlaceRepository = wmsPlaceRepository; + _wmsMaterialRepository = wmsMaterialRepository; + _WmsMaterialTypeRepository = wmsMaterialTypeRepository; + } + public List<EnumItem> GetEnumDataList(WmsEnumInput enumInput) { return EnumHelper.GetEnumItems(enumInput.EnumName); } + + /// <summary> + /// 鑾峰彇浠撳簱鍒楄〃 + /// </summary> + /// <returns></returns> + public async Task<List<WmsStoreForAreaOutpur>> GetStreList() + { + var list = await _storeRepository.GetListForSelectAsync(); + if (list == null || list.Count <= 0) { return new List<WmsStoreForAreaOutpur>(); } + + var result = list.Select(x => new WmsStoreForAreaOutpur + { + StoreCode = x.StoreCode, + StoreName = x.StoreName, + }).ToList(); + return result; + } + + /// <summary> + /// 搴撳尯鍒楄〃 + /// </summary> + /// <returns></returns> + public async Task<List<AreaForListOuptut>> GetAreaListAsync() + { + var list = await _wmsAreaRepository.GetListForSelectAsync(); + if (list == null || list.Count <= 0) { return new List<AreaForListOuptut>(); } + var result = list.Select(x => new AreaForListOuptut + { + AreaName = x.AreaName, + AreaNo = x.AreaNo, + }).ToList(); + + return result; + } + + /// <summary> + /// 宸烽亾鍒楄〃 + /// </summary> + /// <returns></returns> + public async Task<List<PlaceAisleForListOuptut>> GetAisleListAsync() + { + var list = await _wmsPlaceRepository.GetAisleListForSelectAsync(); + if (list == null || list.Count <= 0) { return new List<PlaceAisleForListOuptut>(); } + + var result = list.Select(x => new PlaceAisleForListOuptut + { + Aisle = x.Aisle, + AisleName = $"绗瑊x.Aisle}宸烽亾", + }).ToList(); + + 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(); + } + + /// <summary> + /// 鑾峰彇绫诲瀷鍒楄〃 + /// </summary> + /// <returns></returns> + public async Task<List<MaterialTypeOutput>> GetMaterialTypeListAsync() + { + var queryInput = new GetWmsMaterialTypeInput(); + var whereConditions = DynamicGetQueryParams(queryInput); + var list = await _WmsMaterialTypeRepository.GetListAsync(whereConditions); + + var result = new List<MaterialTypeOutput>(); + if (list == null || list.Count <= 0) return result; + + result = list.Select(x => new MaterialTypeOutput + { + MaterialTypeCode = x.MaterialTypeCode, + MaterialTypeDesc = x.MaterialTypeDesc, + }).ToList(); + return result; + } + + private FunReturnResultModel<Expression<Func<WmsMaterialType, bool>>> DynamicGetQueryParams(GetWmsMaterialTypeInput input) + { + //鍔ㄦ�佹瀯閫犳煡璇㈡潯浠� + var whereConditions = WhereConditionsExtensions.GetWhereConditions<WmsMaterialType, GetWmsMaterialTypeInput>(input); + if (!whereConditions.IsSuccess) + { + throw new Exception("鍔ㄦ�佹瀯閫犳煡璇㈡潯浠跺け璐�:" + whereConditions.ErrMsg); + } + + //涔熷彲鍐嶆鑷畾涔夋瀯寤烘煡璇㈡潯浠� + Expression<Func<WmsMaterialType, bool>> extendExpression = a => a.IsDeleted == false; + // 浣跨敤 System.Linq.PredicateBuilder 鐨� And + var pres = (System.Linq.Expressions.Expression<Func<WmsMaterialType, bool>>)(whereConditions.data); + whereConditions.data = System.Linq.PredicateBuilder.And(pres, extendExpression); + + return whereConditions; + } } } -- Gitblit v1.9.3