|
|
@ -12,6 +12,7 @@ using Omu.ValueInjecter; |
|
|
|
using Volo.Abp; |
|
|
|
using Volo.Abp.Data; |
|
|
|
using Volo.Abp.ObjectMapping; |
|
|
|
using Volo.Abp.Uow; |
|
|
|
using Win_in.Sfs.Basedata.Application.Contracts; |
|
|
|
using Win_in.Sfs.Shared.Domain.Entities; |
|
|
|
using Win_in.Sfs.Shared.Domain.Shared; |
|
|
@ -30,7 +31,8 @@ public class UnplannedIssueJobAppService |
|
|
|
: SfsJobAppServiceBase<UnplannedIssueJob, UnplannedIssueJobDetail, UnplannedIssueJobDTO, SfsJobRequestInputBase, UnplannedIssueJobCheckInput, UnplannedIssueJobEditInput>, |
|
|
|
IUnplannedIssueJobAppService |
|
|
|
{ |
|
|
|
|
|
|
|
protected IUnplannedIssueRequestAppService UnplannedReceiptRequestAppService => |
|
|
|
LazyServiceProvider.LazyGetRequiredService<IUnplannedIssueRequestAppService>(); |
|
|
|
private readonly IUnplannedIssueJobManager _unplannedIssueJobManager; |
|
|
|
private readonly ILocationAppService _locationAppService; |
|
|
|
private readonly IBalanceAppService _balanceAppService; |
|
|
@ -62,6 +64,15 @@ public class UnplannedIssueJobAppService |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
private async Task UpdateRequestStatusAsync(string requestNumber) |
|
|
|
{ |
|
|
|
await UnplannedReceiptRequestAppService.UpdateStatusByJobAsync(requestNumber).ConfigureAwait(false); |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
/// 根据储位推荐
|
|
|
@ -243,6 +254,10 @@ public class UnplannedIssueJobAppService |
|
|
|
job.JobType = EnumJobType.UnplannedIssueJob; |
|
|
|
job.JobStatus = EnumJobStatus.Open; |
|
|
|
job.IsAutoComplete = false; |
|
|
|
job.DeptCode = requestDto.DeptCode; |
|
|
|
job.DeptName = requestDto.DeptName; |
|
|
|
job.Worker = requestDto.Worker; |
|
|
|
|
|
|
|
job.OANumber = requestDto.OANumber; |
|
|
|
job.Number =await _unplannedIssueJobManager.GetNumber().ConfigureAwait(true); |
|
|
|
job.Details = new List<UnplannedIssueJobDetail>(); |
|
|
@ -348,7 +363,6 @@ public class UnplannedIssueJobAppService |
|
|
|
await SendDimensionalStorehouseAsync().ConfigureAwait(false); |
|
|
|
job.JobStatus = EnumJobStatus.Wait; |
|
|
|
} |
|
|
|
|
|
|
|
jobs.Add(job); |
|
|
|
} |
|
|
|
} |
|
|
@ -399,6 +413,47 @@ public class UnplannedIssueJobAppService |
|
|
|
return issuenote; |
|
|
|
} |
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
/// 根据申请单号判断下面的任务是否都是完成或取消
|
|
|
|
/// </summary>
|
|
|
|
/// <returns></returns>
|
|
|
|
[HttpPost("is-all-job-over-by-request-number")] |
|
|
|
public async Task<bool> IsAllJobOverByRequestNumberAsync(string requestNumber) |
|
|
|
{ |
|
|
|
var unplannedRequestJobs = await _repository.GetListAsync(p => p.UnplannedIssueRequestNumber == requestNumber).ConfigureAwait(false); |
|
|
|
if (unplannedRequestJobs.Any(p => |
|
|
|
p.JobStatus == EnumJobStatus.Open || p.JobStatus == EnumJobStatus.Partial || |
|
|
|
p.JobStatus == EnumJobStatus.Doing || p.JobStatus == EnumJobStatus.Wait)) |
|
|
|
{ |
|
|
|
return false; |
|
|
|
} |
|
|
|
return true; |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
[HttpPost("handle/{id}")] |
|
|
|
[UnitOfWork] |
|
|
|
public override async Task<UnplannedIssueJobDTO> CompleteAsync(Guid id, UnplannedIssueJobDTO dto) |
|
|
|
{ |
|
|
|
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<UnplannedIssueJobDTO, UnplannedIssueJob>(dto); |
|
|
|
|
|
|
|
var handleResult = await _unplannedIssueJobManager.CompleteAsync(handleEntity, CurrentUser).ConfigureAwait(false); |
|
|
|
var handleDto = ObjectMapper.Map<UnplannedIssueJob, UnplannedIssueJobDTO>(handleResult); |
|
|
|
|
|
|
|
|
|
|
|
await UpdateRequestStatusAsync(job.UnplannedIssueRequestNumber).ConfigureAwait(false); |
|
|
|
|
|
|
|
|
|
|
|
return handleDto; |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|