From b586f4883139022280ac994d7ed02906c0f6c89e Mon Sep 17 00:00:00 2001 From: schangxiang@126.com <schangxiang@126.com> Date: 周一, 19 5月 2025 16:59:09 +0800 Subject: [PATCH] Merge branch 'master' of http://222.71.245.114:9086/r/HIA24016N_PipeLineDemo --- HIAWms/server/src/CMS.Plugin.HIAWms.EntityFrameworkCore/Repositories/EfCoreWmsPlaceRepository.cs | 141 ++++++++++++++++++++++++++++++++++------------ 1 files changed, 104 insertions(+), 37 deletions(-) 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 dc5cf40..dac4c26 100644 --- a/HIAWms/server/src/CMS.Plugin.HIAWms.EntityFrameworkCore/Repositories/EfCoreWmsPlaceRepository.cs +++ b/HIAWms/server/src/CMS.Plugin.HIAWms.EntityFrameworkCore/Repositories/EfCoreWmsPlaceRepository.cs @@ -1,10 +1,13 @@ -using System.Linq.Dynamic.Core; +锘縰sing System.Linq.Dynamic.Core; +using System.Linq.Expressions; 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; +using CmsQueryExtensions.Extension; using Microsoft.AspNetCore.Components.Forms; using Microsoft.EntityFrameworkCore; +using Volo.Abp; using Volo.Abp.Domain.Repositories.EntityFrameworkCore; using Volo.Abp.EntityFrameworkCore; using Volo.Abp.Specifications; @@ -54,32 +57,44 @@ return sort + 1; } - /// <inheritdoc /> - 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) + /// <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<WmsPlace>> GetListAsync(FunReturnResultModel<Expression<Func<WmsPlace, bool>>> whereConditions, string sorting = null, int maxResultCount = int.MaxValue, int skipCount = 0, 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.Contains(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) + .WhereIf(whereConditions != null, whereConditions.data) .Where(x => !x.IsDeleted) - .OrderBy(sorting.IsNullOrEmpty() ? nameof(WmsPlace.Sort) : sorting) + .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<WmsPlace, bool>>> whereConditions, CancellationToken cancellationToken = default) + { + return await (await GetQueryableAsync()) + .WhereIf(whereConditions != null, whereConditions.data) + .Where(x => !x.IsDeleted) + .CountAsync(cancellationToken: GetCancellationToken(cancellationToken)); + } + /// <summary> - /// 获取巷道列表 + /// 鑾峰彇宸烽亾鍒楄〃 /// </summary> /// <param name="cancellationToken"></param> /// <returns></returns> @@ -90,25 +105,25 @@ } - /// <inheritdoc /> - 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)); - } + ///// <inheritdoc /> + //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)); + //} /// <inheritdoc /> public override async Task<IQueryable<WmsPlace>> WithDetailsAsync() @@ -118,7 +133,7 @@ } /// <summary> - /// 获取库区列表 + /// 鑾峰彇搴撳尯鍒楄〃 /// </summary> /// <param name="cancellationToken"></param> /// <returns></returns> @@ -129,4 +144,56 @@ .Where(x=>x.StorageTypeNo == placeType) .ToListAsync(GetCancellationToken(cancellationToken)); } + + /// <summary> + /// 鏍规嵁鏉′欢鑾峰彇搴撲綅淇℃伅鍒楄〃 + /// </summary> + /// <param name="whereConditions"></param> + /// <param name="cancellationToken"></param> + /// <returns></returns> + public async Task<List<WmsPlace>> GetListByFilterAsync(Expression<Func<WmsPlace, bool>> whereConditions, CancellationToken cancellationToken = default) + { + return await (await GetDbSetAsync()) + .IncludeDetails() + .WhereIf(whereConditions != null, whereConditions) + .Where(x => !x.IsDeleted) + .OrderByDescending(x => x.CreationTime) + .ToListAsync(GetCancellationToken(cancellationToken)); + } + + /// <summary> + /// 鏍规嵁鏉′欢鑾峰彇鍗曚釜搴撲綅淇℃伅 + /// </summary> + /// <param name="whereConditions"></param> + /// <param name="isMultipleThrowException">鏄惁鏌ヨ鍑哄鏉″氨鎶ラ敊</param> + /// <param name="cancellationToken"></param> + /// <returns></returns> + /// <exception cref="UserFriendlyException"></exception> + public async Task<WmsPlace> GetSingleByFilterAsync(Expression<Func<WmsPlace, bool>> whereConditions, bool is鈥婱ultipleThrowException = false, CancellationToken cancellationToken = default) + { + if (is鈥婱ultipleThrowException) + { + var entitys = await (await GetDbSetAsync()) + .IncludeDetails() + .WhereIf(whereConditions != null, whereConditions) + .Where(x => !x.IsDeleted) + .OrderByDescending(x => x.CreationTime) + .ToListAsync(GetCancellationToken(cancellationToken)); + if (entitys?.Count > 1) + { + throw new UserFriendlyException("鏌ヨ鍒板鏉¤褰�"); + } + return entitys?.FirstOrDefault(); + } + else + { + return await (await GetDbSetAsync()) + .IncludeDetails() + .WhereIf(whereConditions != null, whereConditions) + .Where(x => !x.IsDeleted) + .OrderByDescending(x => x.CreationTime) + .FirstOrDefaultAsync(GetCancellationToken(cancellationToken)); + } + } + } -- Gitblit v1.9.3