Browse Source

客户退拆中止申请完成任务

dev_DY_CC
lvzb 1 year ago
parent
commit
6e9f907b4f
  1. 2
      be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Jobs/ProductRecycleJobs/IProductRecycleJobAppService.cs
  2. 2
      be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Bases/SfsStoreRequestAppServiceBase.cs
  3. 29
      be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Jobs/ProductRecycleJobs/ProductRecycleJobAppService.cs
  4. 18
      be/Modules/Store/src/Win_in.Sfs.Wms.Store.Event/Requests/ProductRecycleRequestEventHandler.cs

2
be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Jobs/ProductRecycleJobs/IProductRecycleJobAppService.cs

@ -7,5 +7,5 @@ public interface IProductRecycleJobAppService
: ISfsJobAppServiceBase<ProductRecycleJobDTO, SfsJobRequestInputBase, ProductRecycleJobCheckInput, ProductRecycleJobEditInput> : ISfsJobAppServiceBase<ProductRecycleJobDTO, SfsJobRequestInputBase, ProductRecycleJobCheckInput, ProductRecycleJobEditInput>
{ {
Task<ProductRecycleJobDTO> CompleteByRequestNumberAsync(string number);
} }

2
be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Bases/SfsStoreRequestAppServiceBase.cs

@ -129,7 +129,7 @@ public abstract class SfsStoreRequestAppServiceBase<TEntity, TEntityDto, TReques
/// <returns></returns> /// <returns></returns>
[HttpPost("abort/{id}")] [HttpPost("abort/{id}")]
public virtual async Task<TEntityDto> AbortAsync(Guid id) public virtual async Task<TEntityDto> AbortAsync(Guid id)
{ {
var entity = await _repository.FindAsync(id).ConfigureAwait(false); var entity = await _repository.FindAsync(id).ConfigureAwait(false);
Check.NotNull(entity, typeof(TEntity).Name); Check.NotNull(entity, typeof(TEntity).Name);
var result = await _requestManager.AbortAsync(entity).ConfigureAwait(false); var result = await _requestManager.AbortAsync(entity).ConfigureAwait(false);

29
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.Application.Contracts;
using Win_in.Sfs.Wms.Store.Domain; using Win_in.Sfs.Wms.Store.Domain;
using Win_in.Sfs.Wms.Store.Domain.Shared; 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; namespace Win_in.Sfs.Wms.Store.Application;
@ -19,13 +23,14 @@ public class ProductRecycleJobAppService
, IProductRecycleJobAppService , IProductRecycleJobAppService
{ {
private readonly IProductRecycleJobManager _productRecycleJobManager; private readonly IProductRecycleJobManager _productRecycleJobManager;
private readonly IProductRecycleJobRepository _repository;
private readonly IProductRecycleRequestAppService _productRecycleRequestAppService; private readonly IProductRecycleRequestAppService _productRecycleRequestAppService;
public ProductRecycleJobAppService( public ProductRecycleJobAppService(
IProductRecycleJobRepository repository, IProductRecycleJobManager productRecycleJobManager, IProductRecycleJobRepository repository, IProductRecycleJobManager productRecycleJobManager,
IProductRecycleRequestAppService productRecycleRequestAppService) IProductRecycleRequestAppService productRecycleRequestAppService)
: base(repository, productRecycleJobManager) : base(repository, productRecycleJobManager)
{ {
_repository = repository;
_productRecycleJobManager = productRecycleJobManager; _productRecycleJobManager = productRecycleJobManager;
_productRecycleRequestAppService = productRecycleRequestAppService; _productRecycleRequestAppService = productRecycleRequestAppService;
} }
@ -37,7 +42,7 @@ public class ProductRecycleJobAppService
/// <returns></returns> /// <returns></returns>
[HttpPost("handle/{id}")] [HttpPost("handle/{id}")]
[UnitOfWork] [UnitOfWork]
public override async Task<ProductRecycleJobDTO> CompleteAsync(Guid id, ProductRecycleJobDTO dto) public override async Task<ProductRecycleJobDTO> CompleteAsync(Guid id, ProductRecycleJobDTO dto)
{ {
var handleEntity = ObjectMapper.Map<ProductRecycleJobDTO, ProductRecycleJob>(dto); var handleEntity = ObjectMapper.Map<ProductRecycleJobDTO, ProductRecycleJob>(dto);
var job = await _repository.GetAsync(id).ConfigureAwait(false); 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); 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<ProductRecycleJob, ProductRecycleJobDTO>(handleResult); var handleDto = ObjectMapper.Map<ProductRecycleJob, ProductRecycleJobDTO>(handleResult);
return handleDto; return handleDto;
} }
/// <summary>
/// 根据请求号完成任务
/// </summary>
/// <param name="number"></param>
/// <returns></returns>
[HttpPost("complete-by-request-number")]
public async Task<ProductRecycleJobDTO> 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<ProductRecycleJob, ProductRecycleJobDTO>(updatejob);
return dto;
}
} }

18
be/Modules/Store/src/Win_in.Sfs.Wms.Store.Event/Requests/ProductRecycleRequestEventHandler.cs

@ -21,6 +21,7 @@ public class ProductRecycleRequestEventHandler
, ILocalEventHandler<SfsHandledEntityEventData<ProductRecycleRequest>> , ILocalEventHandler<SfsHandledEntityEventData<ProductRecycleRequest>>
, ILocalEventHandler<SfsCreatedEntityEventData<ProductRecycleRequest>> , ILocalEventHandler<SfsCreatedEntityEventData<ProductRecycleRequest>>
, ILocalEventHandler<SfsCreatedEntityEventData<List<ProductRecycleRequest>>> , ILocalEventHandler<SfsCreatedEntityEventData<List<ProductRecycleRequest>>>
, ILocalEventHandler<SfsAbortedEntityEventData<ProductRecycleRequest>>
{ {
private readonly IProductRecycleJobAppService _productRecycleJobAppService; private readonly IProductRecycleJobAppService _productRecycleJobAppService;
private readonly IProductRecycleNoteAppService _productRecycleNoteApp; private readonly IProductRecycleNoteAppService _productRecycleNoteApp;
@ -50,6 +51,21 @@ public class ProductRecycleRequestEventHandler
} }
/// <summary>
/// 中止
/// </summary>
/// <param name="eventData"></param>
/// <returns></returns>
/// <exception cref="System.NotImplementedException"></exception>
[UnitOfWork]
public async Task HandleEventAsync(SfsAbortedEntityEventData<ProductRecycleRequest> eventData)
{
var number = eventData.Entity?.Number;
if (!string.IsNullOrEmpty(number))
{
await _productRecycleJobAppService.CompleteByRequestNumberAsync(number).ConfigureAwait(false);
}
}
/// <summary> /// <summary>
/// 创建后 /// 创建后
/// </summary> /// </summary>
@ -278,6 +294,8 @@ public class ProductRecycleRequestEventHandler
return detailInput; return detailInput;
} }
#endregion #endregion

Loading…
Cancel
Save