From 6e9f907b4fc2a338afb126644394fee2785401af Mon Sep 17 00:00:00 2001 From: lvzb <35200379@qq.com> Date: Thu, 11 Apr 2024 15:14:25 +0800 Subject: [PATCH] =?UTF-8?q?=E5=AE=A2=E6=88=B7=E9=80=80=E6=8B=86=E4=B8=AD?= =?UTF-8?q?=E6=AD=A2=E7=94=B3=E8=AF=B7=E5=AE=8C=E6=88=90=E4=BB=BB=E5=8A=A1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../IProductRecycleJobAppService.cs | 2 +- .../Bases/SfsStoreRequestAppServiceBase.cs | 2 +- .../ProductRecycleJobAppService.cs | 29 ++++++++++++++++--- .../ProductRecycleRequestEventHandler.cs | 18 ++++++++++++ 4 files changed, 45 insertions(+), 6 deletions(-) diff --git a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Jobs/ProductRecycleJobs/IProductRecycleJobAppService.cs b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Jobs/ProductRecycleJobs/IProductRecycleJobAppService.cs index 3af319f51..f41ed94ed 100644 --- a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Jobs/ProductRecycleJobs/IProductRecycleJobAppService.cs +++ b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Jobs/ProductRecycleJobs/IProductRecycleJobAppService.cs @@ -7,5 +7,5 @@ public interface IProductRecycleJobAppService : ISfsJobAppServiceBase { - + Task CompleteByRequestNumberAsync(string number); } diff --git a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Bases/SfsStoreRequestAppServiceBase.cs b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Bases/SfsStoreRequestAppServiceBase.cs index 36465700c..e7b150b70 100644 --- a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Bases/SfsStoreRequestAppServiceBase.cs +++ b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Bases/SfsStoreRequestAppServiceBase.cs @@ -129,7 +129,7 @@ public abstract class SfsStoreRequestAppServiceBase [HttpPost("abort/{id}")] public virtual async Task AbortAsync(Guid id) - { + { var entity = await _repository.FindAsync(id).ConfigureAwait(false); Check.NotNull(entity, typeof(TEntity).Name); var result = await _requestManager.AbortAsync(entity).ConfigureAwait(false); diff --git a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Jobs/ProductRecycleJobs/ProductRecycleJobAppService.cs b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Jobs/ProductRecycleJobs/ProductRecycleJobAppService.cs index 241b1b062..76d29157b 100644 --- a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Jobs/ProductRecycleJobs/ProductRecycleJobAppService.cs +++ b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Jobs/ProductRecycleJobs/ProductRecycleJobAppService.cs @@ -8,6 +8,10 @@ using Win_in.Sfs.Shared.Domain.Shared; using Win_in.Sfs.Wms.Store.Application.Contracts; using Win_in.Sfs.Wms.Store.Domain; using Win_in.Sfs.Wms.Store.Domain.Shared; +using Volo.Abp.Domain.Entities; +using static Volo.Abp.Identity.Settings.IdentitySettingNames; +using Volo.Abp.Users; +using Volo.Abp.Domain.Repositories; namespace Win_in.Sfs.Wms.Store.Application; @@ -19,13 +23,14 @@ public class ProductRecycleJobAppService , IProductRecycleJobAppService { private readonly IProductRecycleJobManager _productRecycleJobManager; - + private readonly IProductRecycleJobRepository _repository; private readonly IProductRecycleRequestAppService _productRecycleRequestAppService; public ProductRecycleJobAppService( IProductRecycleJobRepository repository, IProductRecycleJobManager productRecycleJobManager, IProductRecycleRequestAppService productRecycleRequestAppService) : base(repository, productRecycleJobManager) { + _repository = repository; _productRecycleJobManager = productRecycleJobManager; _productRecycleRequestAppService = productRecycleRequestAppService; } @@ -37,7 +42,7 @@ public class ProductRecycleJobAppService /// [HttpPost("handle/{id}")] [UnitOfWork] - public override async Task CompleteAsync(Guid id, ProductRecycleJobDTO dto) + public override async Task CompleteAsync(Guid id, ProductRecycleJobDTO dto) { var handleEntity = ObjectMapper.Map(dto); var job = await _repository.GetAsync(id).ConfigureAwait(false); @@ -48,11 +53,27 @@ public class ProductRecycleJobAppService var handleResult = await _productRecycleJobManager.CompleteAsync(handleEntity, job, CurrentUser).ConfigureAwait(false); //判断申请是否执行完成 - if(job.JobStatus== EnumJobStatus.Done) + if (job.JobStatus == EnumJobStatus.Done) { - await _productRecycleRequestAppService.UpdateStatusByNumberAsync(job.RequestNumber).ConfigureAwait(false); + await _productRecycleRequestAppService.UpdateStatusByNumberAsync(job.RequestNumber).ConfigureAwait(false); } var handleDto = ObjectMapper.Map(handleResult); return handleDto; } + /// + /// 根据请求号完成任务 + /// + /// + /// + [HttpPost("complete-by-request-number")] + public async Task CompleteByRequestNumberAsync(string number) + { + var entity = await _repository.FirstOrDefaultAsync(r => r.RequestNumber == number).ConfigureAwait(false); + await entity.CompleteAsync(CurrentUser.Id, CurrentUser.Name, Clock.Now).ConfigureAwait(false); + + var updatejob = await _repository.UpdateAsync(entity).ConfigureAwait(false); + var dto = ObjectMapper.Map(updatejob); + + return dto; + } } diff --git a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Event/Requests/ProductRecycleRequestEventHandler.cs b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Event/Requests/ProductRecycleRequestEventHandler.cs index 9b82cb14f..8631f3045 100644 --- a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Event/Requests/ProductRecycleRequestEventHandler.cs +++ b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Event/Requests/ProductRecycleRequestEventHandler.cs @@ -21,6 +21,7 @@ public class ProductRecycleRequestEventHandler , ILocalEventHandler> , ILocalEventHandler> , ILocalEventHandler>> + , ILocalEventHandler> { private readonly IProductRecycleJobAppService _productRecycleJobAppService; private readonly IProductRecycleNoteAppService _productRecycleNoteApp; @@ -50,6 +51,21 @@ public class ProductRecycleRequestEventHandler } + /// + /// 中止 + /// + /// + /// + /// + [UnitOfWork] + public async Task HandleEventAsync(SfsAbortedEntityEventData eventData) + { + var number = eventData.Entity?.Number; + if (!string.IsNullOrEmpty(number)) + { + await _productRecycleJobAppService.CompleteByRequestNumberAsync(number).ConfigureAwait(false); + } + } /// /// 创建后 /// @@ -278,6 +294,8 @@ public class ProductRecycleRequestEventHandler return detailInput; } + + #endregion