From 248274b1d55078b815e590e53acb1776cc994dd9 Mon Sep 17 00:00:00 2001 From: schangxiang@126.com <schangxiang@126.com> Date: 周二, 13 5月 2025 16:59:15 +0800 Subject: [PATCH] 2222 --- Weben_CMS专用代码生成器/Weben_CMS_TemplateDemo/server/src/CMS.Plugin.HIAWms.Application/Implements/WmsMaterialAppService.cs | 25 ++++++++ Weben_CMS专用代码生成器/Weben_CMS_TemplateDemo/server/src/CMS.Plugin.HIAWms.Domain/WmsMaterial/IWmsMaterialRepository.cs | 20 ++++++ Weben_CMS专用代码生成器/Weben_CMS_TemplateDemo/server/src/CMS.Plugin.HIAWms.Application.Contracts/CMS.Plugin.HIAWms.Application.Contracts.csproj | 1 Weben_CMS专用代码生成器/Weben_CMS_TemplateDemo/server/src/CMS.Plugin.HIAWms.Application.Contracts/Services/IWmsMaterialAppService.cs | 40 ++++++++++--- Weben_CMS专用代码生成器/Weben_CMS_TemplateDemo/server/src/CMS.Plugin.HIAWms.EntityFrameworkCore/Repositories/EfCoreWmsMaterialRepository.cs | 49 ++++++++++++++++ 5 files changed, 126 insertions(+), 9 deletions(-) diff --git "a/Weben_CMS\344\270\223\347\224\250\344\273\243\347\240\201\347\224\237\346\210\220\345\231\250/Weben_CMS_TemplateDemo/server/src/CMS.Plugin.HIAWms.Application.Contracts/CMS.Plugin.HIAWms.Application.Contracts.csproj" "b/Weben_CMS\344\270\223\347\224\250\344\273\243\347\240\201\347\224\237\346\210\220\345\231\250/Weben_CMS_TemplateDemo/server/src/CMS.Plugin.HIAWms.Application.Contracts/CMS.Plugin.HIAWms.Application.Contracts.csproj" index 7fcf052..765c082 100644 --- "a/Weben_CMS\344\270\223\347\224\250\344\273\243\347\240\201\347\224\237\346\210\220\345\231\250/Weben_CMS_TemplateDemo/server/src/CMS.Plugin.HIAWms.Application.Contracts/CMS.Plugin.HIAWms.Application.Contracts.csproj" +++ "b/Weben_CMS\344\270\223\347\224\250\344\273\243\347\240\201\347\224\237\346\210\220\345\231\250/Weben_CMS_TemplateDemo/server/src/CMS.Plugin.HIAWms.Application.Contracts/CMS.Plugin.HIAWms.Application.Contracts.csproj" @@ -16,6 +16,7 @@ <ItemGroup> <ProjectReference Include="..\CMS.Plugin.HIAWms.Domain.Shared\CMS.Plugin.HIAWms.Domain.Shared.csproj" /> + <ProjectReference Include="..\CMS.Plugin.HIAWms.Domain\CMS.Plugin.HIAWms.Domain.csproj" /> </ItemGroup> <ItemGroup> diff --git "a/Weben_CMS\344\270\223\347\224\250\344\273\243\347\240\201\347\224\237\346\210\220\345\231\250/Weben_CMS_TemplateDemo/server/src/CMS.Plugin.HIAWms.Application.Contracts/Services/IWmsMaterialAppService.cs" "b/Weben_CMS\344\270\223\347\224\250\344\273\243\347\240\201\347\224\237\346\210\220\345\231\250/Weben_CMS_TemplateDemo/server/src/CMS.Plugin.HIAWms.Application.Contracts/Services/IWmsMaterialAppService.cs" index 503255b..060ef08 100644 --- "a/Weben_CMS\344\270\223\347\224\250\344\273\243\347\240\201\347\224\237\346\210\220\345\231\250/Weben_CMS_TemplateDemo/server/src/CMS.Plugin.HIAWms.Application.Contracts/Services/IWmsMaterialAppService.cs" +++ "b/Weben_CMS\344\270\223\347\224\250\344\273\243\347\240\201\347\224\237\346\210\220\345\231\250/Weben_CMS_TemplateDemo/server/src/CMS.Plugin.HIAWms.Application.Contracts/Services/IWmsMaterialAppService.cs" @@ -1,22 +1,24 @@ -using CMS.Plugin.HIAWms.Application.Contracts.Dtos.WmsMaterial; +using CMS.Plugin.HIAWms.Application.Contracts.Dtos.WmsMaterial; using Volo.Abp.Application.Services; using CmsQueryExtensions.Entitys; +using System.Linq.Expressions; +using CMS.Plugin.HIAWms.Domain.WmsMaterial; -namespace CMS.Plugin.HIAWms.Application.Contracts.Services; - +namespace CMS.Plugin.HIAWms.Application.Contracts.Services; + /// <summary> /// 鐗╂枡鍩虹淇℃伅琛ㄥ簲鐢ㄦ湇鍔℃帴鍙� /// </summary> -public interface IWmsMaterialAppService : ICrudAppService<WmsMaterialDto, Guid, GetWmsMaterialInput, WmsMaterialCreateDto, WmsMaterialUpdateDto> -{ +public interface IWmsMaterialAppService : ICrudAppService<WmsMaterialDto, Guid, GetWmsMaterialInput, WmsMaterialCreateDto, WmsMaterialUpdateDto> +{ /// <summary> /// 鍏嬮殕鐗╂枡鍩虹淇℃伅琛� /// </summary> /// <param name="ids"></param> /// <returns></returns> - Task<List<WmsMaterialDto>> CloneAsync(IEnumerable<Guid> ids); - + Task<List<WmsMaterialDto>> CloneAsync(IEnumerable<Guid> ids); + /// <summary> /// 鍒犻櫎鐗╂枡鍩虹淇℃伅琛� /// </summary> @@ -61,5 +63,25 @@ /// </summary> /// <param name="input"></param> /// <returns></returns> - Task<(Dictionary<string, object> Sheets, string FileName)> ExportAsync(GetWmsMaterialInput input); -} + Task<(Dictionary<string, object> Sheets, string FileName)> ExportAsync(GetWmsMaterialInput input); + + /// <summary> + /// 鏍规嵁鏉′欢鑾峰彇鐗╂枡鍩虹淇℃伅琛ㄥ垪琛� + /// </summary> + /// <param name="whereConditions"></param> + /// <param name="cancellationToken"></param> + /// <returns></returns> + Task<List<WmsMaterial>> GetListByFilterAsync(Expression<Func<WmsMaterial, bool>> whereConditions, CancellationToken cancellationToken = default); + + + /// <summary> + /// 鏍规嵁鏉′欢鑾峰彇鍗曚釜鐗╂枡鍩虹淇℃伅琛� + /// </summary> + /// <param name="whereConditions"></param> + /// <param name="isMultipleThrowException">鏄惁鏌ヨ鍑哄鏉″氨鎶ラ敊</param> + /// <param name="cancellationToken"></param> + /// <returns></returns> + /// <exception cref="UserFriendlyException"></exception> + Task<WmsMaterial> GetSingleByFilterAsync(Expression<Func<WmsMaterial, bool>> whereConditions, bool is鈥婱ultipleThrowException = false, CancellationToken cancellationToken = default); + +} diff --git "a/Weben_CMS\344\270\223\347\224\250\344\273\243\347\240\201\347\224\237\346\210\220\345\231\250/Weben_CMS_TemplateDemo/server/src/CMS.Plugin.HIAWms.Application/Implements/WmsMaterialAppService.cs" "b/Weben_CMS\344\270\223\347\224\250\344\273\243\347\240\201\347\224\237\346\210\220\345\231\250/Weben_CMS_TemplateDemo/server/src/CMS.Plugin.HIAWms.Application/Implements/WmsMaterialAppService.cs" index 3d9ab58..9b7d2b2 100644 --- "a/Weben_CMS\344\270\223\347\224\250\344\273\243\347\240\201\347\224\237\346\210\220\345\231\250/Weben_CMS_TemplateDemo/server/src/CMS.Plugin.HIAWms.Application/Implements/WmsMaterialAppService.cs" +++ "b/Weben_CMS\344\270\223\347\224\250\344\273\243\347\240\201\347\224\237\346\210\220\345\231\250/Weben_CMS_TemplateDemo/server/src/CMS.Plugin.HIAWms.Application/Implements/WmsMaterialAppService.cs" @@ -309,6 +309,7 @@ /// <exception cref="UserFriendlyException"></exception> public async Task ImportAsync(WmsMaterialsImportModel input, MyCurrentUser myCurrentUser) { + Check.NotNull(input, nameof(input)); var wmsMaterialCreateDtos = new List<(int RowIndex, WmsMaterialCreateDto Item)>(); @@ -495,4 +496,28 @@ return Task.CompletedTask; } + + /// <summary> + /// 鏍规嵁鏉′欢鑾峰彇鐗╂枡鍩虹淇℃伅琛ㄥ垪琛� + /// </summary> + /// <param name="whereConditions"></param> + /// <param name="cancellationToken"></param> + /// <returns></returns> + public async Task<List<WmsMaterial>> GetListByFilterAsync(Expression<Func<WmsMaterial, bool>> whereConditions, CancellationToken cancellationToken = default) + { + return await wmsMaterialRepository.GetListByFilterAsync(whereConditions); + } + + /// <summary> + /// 鏍规嵁鏉′欢鑾峰彇鍗曚釜鐗╂枡鍩虹淇℃伅琛� + /// </summary> + /// <param name="whereConditions"></param> + /// <param name="isMultipleThrowException">鏄惁鏌ヨ鍑哄鏉″氨鎶ラ敊</param> + /// <param name="cancellationToken"></param> + /// <returns></returns> + /// <exception cref="UserFriendlyException"></exception> + public async Task<WmsMaterial> GetSingleByFilterAsync(Expression<Func<WmsMaterial, bool>> whereConditions, bool is鈥婱ultipleThrowException = false, CancellationToken cancellationToken = default) + { + return await wmsMaterialRepository.GetSingleByFilterAsync(whereConditions, is鈥婱ultipleThrowException); + } } diff --git "a/Weben_CMS\344\270\223\347\224\250\344\273\243\347\240\201\347\224\237\346\210\220\345\231\250/Weben_CMS_TemplateDemo/server/src/CMS.Plugin.HIAWms.Domain/WmsMaterial/IWmsMaterialRepository.cs" "b/Weben_CMS\344\270\223\347\224\250\344\273\243\347\240\201\347\224\237\346\210\220\345\231\250/Weben_CMS_TemplateDemo/server/src/CMS.Plugin.HIAWms.Domain/WmsMaterial/IWmsMaterialRepository.cs" index ea93ca6..179c018 100644 --- "a/Weben_CMS\344\270\223\347\224\250\344\273\243\347\240\201\347\224\237\346\210\220\345\231\250/Weben_CMS_TemplateDemo/server/src/CMS.Plugin.HIAWms.Domain/WmsMaterial/IWmsMaterialRepository.cs" +++ "b/Weben_CMS\344\270\223\347\224\250\344\273\243\347\240\201\347\224\237\346\210\220\345\231\250/Weben_CMS_TemplateDemo/server/src/CMS.Plugin.HIAWms.Domain/WmsMaterial/IWmsMaterialRepository.cs" @@ -1,5 +1,6 @@ using CmsQueryExtensions.Extension; using System.Linq.Expressions; +using Volo.Abp; using Volo.Abp.Domain.Repositories; namespace CMS.Plugin.HIAWms.Domain.WmsMaterial; @@ -68,4 +69,23 @@ /// <returns></returns> Task BatchDeletePermanentlyAsync(IEnumerable<Guid> ids, CancellationToken cancellationToken = default); + /// <summary> + /// 鏍规嵁鏉′欢鑾峰彇鐗╂枡鍩虹淇℃伅琛ㄥ垪琛� + /// </summary> + /// <param name="whereConditions"></param> + /// <param name="cancellationToken"></param> + /// <returns></returns> + Task<List<WmsMaterial>> GetListByFilterAsync(Expression<Func<WmsMaterial, bool>> whereConditions, CancellationToken cancellationToken = default); + + /// <summary> + /// 鏍规嵁鏉′欢鑾峰彇鍗曚釜鐗╂枡鍩虹淇℃伅琛� + /// </summary> + /// <param name="whereConditions"></param> + /// <param name="isMultipleThrowException">鏄惁鏌ヨ鍑哄鏉″氨鎶ラ敊</param> + /// <param name="cancellationToken"></param> + /// <returns></returns> + /// <exception cref="UserFriendlyException"></exception> + Task<WmsMaterial> GetSingleByFilterAsync(Expression<Func<WmsMaterial, bool>> whereConditions, bool is鈥婱ultipleThrowException = false, CancellationToken cancellationToken = default); + + } diff --git "a/Weben_CMS\344\270\223\347\224\250\344\273\243\347\240\201\347\224\237\346\210\220\345\231\250/Weben_CMS_TemplateDemo/server/src/CMS.Plugin.HIAWms.EntityFrameworkCore/Repositories/EfCoreWmsMaterialRepository.cs" "b/Weben_CMS\344\270\223\347\224\250\344\273\243\347\240\201\347\224\237\346\210\220\345\231\250/Weben_CMS_TemplateDemo/server/src/CMS.Plugin.HIAWms.EntityFrameworkCore/Repositories/EfCoreWmsMaterialRepository.cs" index 8824075..55d4f80 100644 --- "a/Weben_CMS\344\270\223\347\224\250\344\273\243\347\240\201\347\224\237\346\210\220\345\231\250/Weben_CMS_TemplateDemo/server/src/CMS.Plugin.HIAWms.EntityFrameworkCore/Repositories/EfCoreWmsMaterialRepository.cs" +++ "b/Weben_CMS\344\270\223\347\224\250\344\273\243\347\240\201\347\224\237\346\210\220\345\231\250/Weben_CMS_TemplateDemo/server/src/CMS.Plugin.HIAWms.EntityFrameworkCore/Repositories/EfCoreWmsMaterialRepository.cs" @@ -5,6 +5,7 @@ using RestSharp; using System.Linq.Dynamic.Core; using System.Linq.Expressions; +using Volo.Abp; using Volo.Abp.Domain.Repositories.EntityFrameworkCore; using Volo.Abp.EntityFrameworkCore; @@ -165,4 +166,52 @@ var sql = $"DELETE FROM scms_wmsmaterials WHERE Id IN ({string.Join(",", idsToDelete.Select(id => $"'{id}'"))})"; await dbContext.Database.ExecuteSqlRawAsync(sql, cancellationToken); } + + /// <summary> + /// 鏍规嵁鏉′欢鑾峰彇鐗╂枡鍩虹淇℃伅琛ㄥ垪琛� + /// </summary> + /// <param name="whereConditions"></param> + /// <param name="cancellationToken"></param> + /// <returns></returns> + public async Task<List<WmsMaterial>> GetListByFilterAsync(Expression<Func<WmsMaterial, bool>> whereConditions, CancellationToken cancellationToken = default) + { + return await (await GetDbSetAsync()) + .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<WmsMaterial> GetSingleByFilterAsync(Expression<Func<WmsMaterial, bool>> whereConditions, bool is鈥婱ultipleThrowException = false, CancellationToken cancellationToken = default) + { + if (is鈥婱ultipleThrowException) + { + var entitys = await (await GetDbSetAsync()) + .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()) + .WhereIf(whereConditions != null, whereConditions) + .Where(x => !x.IsDeleted) + .OrderByDescending(x => x.CreationTime) + .FirstOrDefaultAsync(GetCancellationToken(cancellationToken)); + } + } } -- Gitblit v1.9.3