|
|
@ -1,6 +1,11 @@ |
|
|
|
using System; |
|
|
|
using System.Linq; |
|
|
|
using System.Threading.Tasks; |
|
|
|
using Microsoft.AspNetCore.Authorization; |
|
|
|
using Microsoft.AspNetCore.Mvc; |
|
|
|
using Volo.Abp.ObjectMapping; |
|
|
|
using Volo.Abp; |
|
|
|
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; |
|
|
@ -16,11 +21,16 @@ public class PurchaseReturnJobAppService |
|
|
|
{ |
|
|
|
private readonly IPurchaseReturnJobManager _purchaseReturnJobManager; |
|
|
|
|
|
|
|
|
|
|
|
private readonly IPurchaseReturnRequestAppService _purchaseReturnRequestAppService; |
|
|
|
|
|
|
|
public PurchaseReturnJobAppService( |
|
|
|
IPurchaseReturnRequestAppService purchaseReturnRequestAppService, |
|
|
|
IPurchaseReturnJobRepository repository, IPurchaseReturnJobManager purchaseReturnJobManager) |
|
|
|
: base(repository, purchaseReturnJobManager) |
|
|
|
{ |
|
|
|
_purchaseReturnJobManager = purchaseReturnJobManager; |
|
|
|
_purchaseReturnRequestAppService= purchaseReturnRequestAppService; |
|
|
|
} |
|
|
|
|
|
|
|
[HttpPost("cancel-by-request-number/{purchaseReturnRequestNumber}")] |
|
|
@ -34,6 +44,84 @@ public class PurchaseReturnJobAppService |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
/// 根据申请单号判断下面的任务是否都是完成或取消
|
|
|
|
/// </summary>
|
|
|
|
/// <returns></returns>
|
|
|
|
[HttpPost("is-all-job-over-by-request-number")] |
|
|
|
public async Task<bool> IsAllJobOverByRequestNumberAsync(string requestNumber) |
|
|
|
{ |
|
|
|
var jobs = await _repository.GetListAsync(p => p.PurchaseReturnRequestNumber == requestNumber) |
|
|
|
.ConfigureAwait(false); |
|
|
|
if (jobs.Any(p => |
|
|
|
p.JobStatus == EnumJobStatus.Open || p.JobStatus == EnumJobStatus.Partial || |
|
|
|
p.JobStatus == EnumJobStatus.Doing || p.JobStatus == EnumJobStatus.Wait)) |
|
|
|
{ |
|
|
|
return false; |
|
|
|
} |
|
|
|
|
|
|
|
return true; |
|
|
|
} |
|
|
|
|
|
|
|
private async Task UpdateRequestStatusAsync(string requestNumber) |
|
|
|
{ |
|
|
|
await _purchaseReturnRequestAppService.UpdateStatusByJobAsync(requestNumber).ConfigureAwait(false); |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
[HttpPost("handle/{id}")] |
|
|
|
public override async Task<PurchaseReturnJobDTO> CompleteAsync(Guid id, PurchaseReturnJobDTO dto) |
|
|
|
{ |
|
|
|
var job = await _repository.GetAsync(id).ConfigureAwait(false); |
|
|
|
var handleDto = new PurchaseReturnJobDTO(); |
|
|
|
|
|
|
|
var handleEntity = ObjectMapper.Map<PurchaseReturnJobDTO, PurchaseReturnJob>(dto); |
|
|
|
|
|
|
|
var handleResult = |
|
|
|
await _purchaseReturnJobManager.CompleteAsync(handleEntity, CurrentUser).ConfigureAwait(false); |
|
|
|
handleDto = ObjectMapper.Map<PurchaseReturnJob, PurchaseReturnJobDTO>(handleResult); |
|
|
|
|
|
|
|
|
|
|
|
if (job.JobStatus is EnumJobStatus.Closed or EnumJobStatus.Cancelled or EnumJobStatus.None |
|
|
|
or EnumJobStatus.Done) //需要考虑下 多次提交的问题 所以不判断 进行中
|
|
|
|
{ |
|
|
|
throw new UserFriendlyException($"任务状态错误:编号为【{job.Number}】的任务已经【{job.JobStatus.GetDisplayName()}】"); |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
handleResult.CompleteUserName = dto.Worker; |
|
|
|
handleResult.JobStatus = EnumJobStatus.Done; |
|
|
|
job = await _repository.UpdateAsync(handleResult).ConfigureAwait(false); |
|
|
|
await UpdateRequestStatusAsync(job.PurchaseReturnRequestNumber).ConfigureAwait(false); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
return handleDto; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
//var job = await _repository.GetAsync(id).ConfigureAwait(false);
|
|
|
|
//if (job.JobStatus is EnumJobStatus.Closed or EnumJobStatus.Cancelled or EnumJobStatus.None or EnumJobStatus.Done)//需要考虑下 多次提交的问题 所以不判断 进行中
|
|
|
|
//{
|
|
|
|
// throw new UserFriendlyException($"任务状态错误:编号为【{job.Number}】的任务已经【{job.JobStatus.GetDisplayName()}】");
|
|
|
|
//}
|
|
|
|
//var handleEntity = ObjectMapper.Map<TEntityDto, TEntity>(dto);
|
|
|
|
|
|
|
|
//var handleResult = await _jobManager.CompleteAsync(handleEntity, CurrentUser).ConfigureAwait(false);
|
|
|
|
//var handleDto = ObjectMapper.Map<TEntity, TEntityDto>(handleResult);
|
|
|
|
//return handleDto;
|
|
|
|
} |
|
|
|
|
|
|
|
/* |
|
|
|
[HttpPost("accept")] |
|
|
|
public override async Task AcceptAsync(string jobNumber) |
|
|
|