From 252edd99e9094bc8cd1c08be71e6f93e49dfce94 Mon Sep 17 00:00:00 2001 From: schangxiang@126.com <schangxiang@126.com> Date: 周五, 16 5月 2025 11:05:05 +0800 Subject: [PATCH] 2222 --- PipeLineLems/server/src/CMS.Plugin.PipeLineLems.Application.Contracts/Services/ICallMaterialOrderAppService.cs | 21 +++++++ PipeLineLems/server/src/CMS.Plugin.PipeLineLems.Domain/CallMaterialOrder/ICallMaterialOrderRepository.cs | 20 ++++++ PipeLineLems/server/src/CMS.Plugin.PipeLineLems.EntityFrameworkCore/Repositories/EfCoreCallMaterialOrderRepository.cs | 56 ++++++++++++++++++ PipeLineLems/server/src/CMS.Plugin.PipeLineLems.Application/Implements/CallMaterialOrderAppService.cs | 60 ++++++++++++++------ PipeLineLems/server/src/CMS.Plugin.PipeLineLems/ProjectService/PipeLineLemsProjectService.cs | 8 +- 5 files changed, 140 insertions(+), 25 deletions(-) diff --git a/PipeLineLems/server/src/CMS.Plugin.PipeLineLems.Application.Contracts/Services/ICallMaterialOrderAppService.cs b/PipeLineLems/server/src/CMS.Plugin.PipeLineLems.Application.Contracts/Services/ICallMaterialOrderAppService.cs index 706f0ba..c1be461 100644 --- a/PipeLineLems/server/src/CMS.Plugin.PipeLineLems.Application.Contracts/Services/ICallMaterialOrderAppService.cs +++ b/PipeLineLems/server/src/CMS.Plugin.PipeLineLems.Application.Contracts/Services/ICallMaterialOrderAppService.cs @@ -1,5 +1,7 @@ using CMS.Plugin.PipeLineLems.Application.Contracts.Dtos.CallMaterialOrder; using CMS.Plugin.PipeLineLems.Domain.CallMaterialOrder; +using System.Linq.Expressions; +using Volo.Abp; using Volo.Abp.Application.Services; namespace CMS.Plugin.PipeLineLems.Application.Contracts.Services; @@ -49,4 +51,23 @@ /// <param name="input"></param> /// <returns></returns> Task<(Dictionary<string, object> Sheets, string FileName)> ExportAsync(GetCallMaterialOrderInput input); + + /// <summary> + /// 鏍规嵁鏉′欢鑾峰彇鍙枡鍗曡〃鍒楄〃 + /// </summary> + /// <param name="whereConditions"></param> + /// <param name="cancellationToken"></param> + /// <returns></returns> + Task<List<CallMaterialOrder>> GetListByFilterAsync(Expression<Func<CallMaterialOrder, 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<CallMaterialOrder> GetSingleByFilterAsync(Expression<Func<CallMaterialOrder, bool>> whereConditions, bool is鈥婱ultipleThrowException = false, CancellationToken cancellationToken = default); } diff --git a/PipeLineLems/server/src/CMS.Plugin.PipeLineLems.Application/Implements/CallMaterialOrderAppService.cs b/PipeLineLems/server/src/CMS.Plugin.PipeLineLems.Application/Implements/CallMaterialOrderAppService.cs index 0ca282e..440d4f5 100644 --- a/PipeLineLems/server/src/CMS.Plugin.PipeLineLems.Application/Implements/CallMaterialOrderAppService.cs +++ b/PipeLineLems/server/src/CMS.Plugin.PipeLineLems.Application/Implements/CallMaterialOrderAppService.cs @@ -18,16 +18,16 @@ /// </summary> public class CallMaterialOrderAppService : CMSPluginAppService, ICallMaterialOrderAppService { - private readonly ICallMaterialOrderRepository callMaterialOrderRepository; + private readonly ICallMaterialOrderRepository _callMaterialOrderRepository; private readonly SharedService _sharedService; private readonly IServiceProvider _serviceProvider; /// <summary> /// Initializes a new instance of the <see cref="CallMaterialOrderAppService"/> class. /// </summary> /// <param name="CallMaterialOrderRepository">The task job repository.</param> - public CallMaterialOrderAppService(ICallMaterialOrderRepository _CallMaterialOrderRepository, SharedService sharedService, IServiceProvider serviceProvider) + public CallMaterialOrderAppService(ICallMaterialOrderRepository callMaterialOrderRepository, SharedService sharedService, IServiceProvider serviceProvider) { - callMaterialOrderRepository = _CallMaterialOrderRepository; + _callMaterialOrderRepository = callMaterialOrderRepository; _sharedService = sharedService; _serviceProvider = serviceProvider; } @@ -39,7 +39,7 @@ /// <returns></returns> public virtual async Task<CallMaterialOrderDto> GetAsync(Guid id) { - return ObjectMapper.Map<CallMaterialOrder, CallMaterialOrderDto>(await callMaterialOrderRepository.GetAsync(id)); + return ObjectMapper.Map<CallMaterialOrder, CallMaterialOrderDto>(await _callMaterialOrderRepository.GetAsync(id)); } public virtual async Task CallMaterialByDataIdentifier(Guid id) @@ -49,7 +49,7 @@ public virtual async Task<CallMaterialOrder> FindByWmsTaskNoAsync(string wmsTaskNo) { - return await callMaterialOrderRepository.FindByWmsTaskNoAsync(wmsTaskNo); + return await _callMaterialOrderRepository.FindByWmsTaskNoAsync(wmsTaskNo); } /// <summary> @@ -73,8 +73,8 @@ #endregion - var count = await callMaterialOrderRepository.GetCountAsync(whereConditions); - var list = await callMaterialOrderRepository.GetListAsync(whereConditions, input.Sorting, input.MaxResultCount, input.SkipCount); + var count = await _callMaterialOrderRepository.GetCountAsync(whereConditions); + var list = await _callMaterialOrderRepository.GetListAsync(whereConditions, input.Sorting, input.MaxResultCount, input.SkipCount); return new PagedResultDto<CallMaterialOrderDto>(count, ObjectMapper.Map<List<CallMaterialOrder>, List<CallMaterialOrderDto>>(list)); } @@ -112,20 +112,20 @@ { await CheckCreateOrUpdateDtoAsync(input); - var exist = await callMaterialOrderRepository.NameExistAsync(input.DataIdentifier); + var exist = await _callMaterialOrderRepository.NameExistAsync(input.DataIdentifier); if (exist) { throw new UserFriendlyException(L[CMSPluginDomainErrorCodes.NameAlreadyExists, input.DataIdentifier]); } - var maxSort = await callMaterialOrderRepository.GetMaxSortAsync(); + var maxSort = await _callMaterialOrderRepository.GetMaxSortAsync(); var sort = input.Sort ?? maxSort; var insertObj = ObjectMapper.Map<CallMaterialOrderCreateDto, CallMaterialOrder>(input); insertObj.Sort = sort; input.MapExtraPropertiesTo(insertObj, MappingPropertyDefinitionChecks.None); - await callMaterialOrderRepository.InsertAsync(insertObj); + await _callMaterialOrderRepository.InsertAsync(insertObj); //if (input.Sort.HasValue && insertObj.Sort != maxSort) //{ @@ -146,8 +146,8 @@ { await CheckCreateOrUpdateDtoAsync(input); - var updateObj = await callMaterialOrderRepository.GetAsync(id); - var exist = await callMaterialOrderRepository.NameExistAsync(input.DataIdentifier, updateObj.Id); + var updateObj = await _callMaterialOrderRepository.GetAsync(id); + var exist = await _callMaterialOrderRepository.NameExistAsync(input.DataIdentifier, updateObj.Id); if (exist) { throw new UserFriendlyException(L[CMSPluginDomainErrorCodes.NameAlreadyExists, input.DataIdentifier]); @@ -165,7 +165,7 @@ updateObj.Remark = input.Remark; - await callMaterialOrderRepository.UpdateAsync(updateObj); + await _callMaterialOrderRepository.UpdateAsync(updateObj); return ObjectMapper.Map<CallMaterialOrder, CallMaterialOrderDto>(updateObj); } @@ -217,7 +217,7 @@ /// <returns></returns> public virtual Task DeleteAsync(Guid id) { - return callMaterialOrderRepository.DeleteAsync(id); + return _callMaterialOrderRepository.DeleteAsync(id); } /// <summary> @@ -241,7 +241,7 @@ /// <returns></returns> public virtual async Task AdjustSortAsync(Guid id, int sort) { - var list = await callMaterialOrderRepository.GetListAsync(null, nameof(CallMaterialOrder.Sort)); + var list = await _callMaterialOrderRepository.GetListAsync(null, nameof(CallMaterialOrder.Sort)); if (list != null && list.Any()) { var initSort = 1; @@ -268,7 +268,7 @@ } } - await callMaterialOrderRepository.UpdateManyAsync(list); + await _callMaterialOrderRepository.UpdateManyAsync(list); } /// <summary> @@ -313,7 +313,7 @@ throw new UserFriendlyException(errorMsg); } - var oldCallMaterialOrder = await callMaterialOrderRepository.FindByNameAsync(impItem.DataIdentifier); + var oldCallMaterialOrder = await _callMaterialOrderRepository.FindByNameAsync(impItem.DataIdentifier); if (oldCallMaterialOrder != null) { var callMaterialOrderUpdateDto = new CallMaterialOrderUpdateDto @@ -400,7 +400,7 @@ #endregion - var list = await callMaterialOrderRepository.GetListAsync(whereConditions, input.Sorting, input.MaxResultCount, input.SkipCount, includeDetails: true); + var list = await _callMaterialOrderRepository.GetListAsync(whereConditions, input.Sorting, input.MaxResultCount, input.SkipCount, includeDetails: true); var result = ObjectMapper.Map<List<CallMaterialOrder>, List<CallMaterialOrderDto>>(list); var sheets = new Dictionary<string, object> @@ -426,4 +426,28 @@ return Task.CompletedTask; } + + /// <summary> + /// 鏍规嵁鏉′欢鑾峰彇鍙枡鍗曡〃鍒楄〃 + /// </summary> + /// <param name="whereConditions"></param> + /// <param name="cancellationToken"></param> + /// <returns></returns> + public async Task<List<CallMaterialOrder>> GetListByFilterAsync(Expression<Func<CallMaterialOrder, bool>> whereConditions, CancellationToken cancellationToken = default) + { + return await _callMaterialOrderRepository.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<CallMaterialOrder> GetSingleByFilterAsync(Expression<Func<CallMaterialOrder, bool>> whereConditions, bool is鈥婱ultipleThrowException = false, CancellationToken cancellationToken = default) + { + return await _callMaterialOrderRepository.GetSingleByFilterAsync(whereConditions, is鈥婱ultipleThrowException); + } } diff --git a/PipeLineLems/server/src/CMS.Plugin.PipeLineLems.Domain/CallMaterialOrder/ICallMaterialOrderRepository.cs b/PipeLineLems/server/src/CMS.Plugin.PipeLineLems.Domain/CallMaterialOrder/ICallMaterialOrderRepository.cs index 5fa6208..4cc38c4 100644 --- a/PipeLineLems/server/src/CMS.Plugin.PipeLineLems.Domain/CallMaterialOrder/ICallMaterialOrderRepository.cs +++ b/PipeLineLems/server/src/CMS.Plugin.PipeLineLems.Domain/CallMaterialOrder/ICallMaterialOrderRepository.cs @@ -54,5 +54,23 @@ /// <param name="whereConditions"></param> /// <param name="cancellationToken"></param> /// <returns></returns> - Task<long> GetCountAsync(FunReturnResultModel<Expression<Func<CallMaterialOrder, bool>>> whereConditions, CancellationToken cancellationToken = default); + Task<long> GetCountAsync(FunReturnResultModel<Expression<Func<CallMaterialOrder, bool>>> whereConditions, CancellationToken cancellationToken = default); + + /// <summary> + /// 鏍规嵁鏉′欢鑾峰彇鍙枡鍗曡〃鍒楄〃 + /// </summary> + /// <param name="whereConditions"></param> + /// <param name="cancellationToken"></param> + /// <returns></returns> + Task<List<CallMaterialOrder>> GetListByFilterAsync(Expression<Func<CallMaterialOrder, 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<CallMaterialOrder> GetSingleByFilterAsync(Expression<Func<CallMaterialOrder, bool>> whereConditions, bool is鈥婱ultipleThrowException = false, CancellationToken cancellationToken = default); } diff --git a/PipeLineLems/server/src/CMS.Plugin.PipeLineLems.EntityFrameworkCore/Repositories/EfCoreCallMaterialOrderRepository.cs b/PipeLineLems/server/src/CMS.Plugin.PipeLineLems.EntityFrameworkCore/Repositories/EfCoreCallMaterialOrderRepository.cs index 0a78686..da7e88a 100644 --- a/PipeLineLems/server/src/CMS.Plugin.PipeLineLems.EntityFrameworkCore/Repositories/EfCoreCallMaterialOrderRepository.cs +++ b/PipeLineLems/server/src/CMS.Plugin.PipeLineLems.EntityFrameworkCore/Repositories/EfCoreCallMaterialOrderRepository.cs @@ -3,7 +3,8 @@ using CmsQueryExtensions.Extension; using Microsoft.EntityFrameworkCore; using System.Linq.Dynamic.Core; -using System.Linq.Expressions; +using System.Linq.Expressions; +using Volo.Abp; using Volo.Abp.Domain.Repositories.EntityFrameworkCore; using Volo.Abp.EntityFrameworkCore; @@ -118,5 +119,56 @@ { return (await GetQueryableAsync()) .Where(x => !x.IsDeleted).IncludeDetails(); - } + } + + /// <summary> + /// 鏍规嵁鏉′欢鑾峰彇鍙枡鍗曡〃鍒楄〃 + /// </summary> + /// <param name="whereConditions"></param> + /// <param name="cancellationToken"></param> + /// <returns></returns> + public async Task<List<CallMaterialOrder>> GetListByFilterAsync(Expression<Func<CallMaterialOrder, 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<CallMaterialOrder> GetSingleByFilterAsync(Expression<Func<CallMaterialOrder, 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)); + } + } } diff --git a/PipeLineLems/server/src/CMS.Plugin.PipeLineLems/ProjectService/PipeLineLemsProjectService.cs b/PipeLineLems/server/src/CMS.Plugin.PipeLineLems/ProjectService/PipeLineLemsProjectService.cs index d3e1b4e..81e821c 100644 --- a/PipeLineLems/server/src/CMS.Plugin.PipeLineLems/ProjectService/PipeLineLemsProjectService.cs +++ b/PipeLineLems/server/src/CMS.Plugin.PipeLineLems/ProjectService/PipeLineLemsProjectService.cs @@ -377,8 +377,7 @@ pipeSpecCode3 = new_workPlanList[i].PipeSpecCode; } } - //鑾峰彇 鎵规 - await callMaterialOrderAppService.wh + Dictionary<string, object?> keyValuePairs = new Dictionary<string, object?> { { "鎵撶爜宸ヤ欢1",code1}, @@ -391,7 +390,7 @@ { "鎵撶爜绠℃鍚嶇О", new_workPlanList.First().PipeSectionName }, { "鎵撶爜鍘熸枡绠″瀷鍙�", new_workPlanList.First().MaterialMode }, { "鎵撶爜鍘熸枡鏍囪瘑", new_workPlanList.First().DataIdentifier }, - { "鎵撶爜鍘熸枡绠℃壒娆�", new_workPlanList.First() }, + { "鎵撶爜鍘熸枡绠℃壒娆�", callMaterialOrder.MaterialBatch },//鎵规 }; _variableService.WriteValueAsync(keyValuePairs); @@ -662,7 +661,8 @@ { "鍒囧壊绠℃缂栫爜", new_workPlanList.First().PipeSpecCode }, { "鍒囧壊绠℃鍚嶇О", new_workPlanList.First().PipeSectionName }, { "鍒囧壊鍘熸枡绠″瀷鍙�", new_workPlanList.First().MaterialMode }, - { "鍒囧壊鍘熸枡鏍囪瘑", new_workPlanList.First().DataIdentifier } + { "鍒囧壊鍘熸枡鏍囪瘑", new_workPlanList.First().DataIdentifier }, + { "鍒囧壊鍘熸枡绠℃壒娆�", callMaterialOrder.MaterialBatch },//鎵规 }; _variableService.WriteValueAsync(keyValuePairs); -- Gitblit v1.9.3