Browse Source

更新版本

dev_DY_CC
赵新宇 7 months ago
parent
commit
06022b6c6f
  1. 4
      be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Jobs/UnplannedIssueJobs/IUnplannedIssueJobAppService.cs
  2. 3
      be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Requests/UnplannedIssueRequests/IUnplannedIssueRequestAppService.cs
  3. 59
      be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Jobs/UnplannedIssueJobs/UnplannedIssueJobAppService.cs
  4. 9
      be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Requests/UnplannedIssueRequests/UnplannedIssueRequestAppService.cs
  5. 25
      be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Requests/UnplannedIssueRequests/UnplannedIssueRequestForDongyangAppService.cs
  6. 15
      be/Modules/Store/src/Win_in.Sfs.Wms.Store.Event/Jobs/UnplannedIssueJobEventHandler.cs
  7. 9
      be/Modules/Store/src/Win_in.Sfs.Wms.Store.Event/Transactions/UnplannedIssueNoteEventHandler.cs

4
be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Jobs/UnplannedIssueJobs/IUnplannedIssueJobAppService.cs

@ -10,4 +10,8 @@ public interface IUnplannedIssueJobAppService
Task CreateByRecommendAsync(UnplannedIssueRequest requestDto);
Task<bool> IsAllJobOverByRequestNumberAsync(string requestNumber);
}

3
be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Requests/UnplannedIssueRequests/IUnplannedIssueRequestAppService.cs

@ -6,4 +6,7 @@ public interface IUnplannedIssueRequestAppService
: ISfsStoreRequestMasterAppServiceBase<UnplannedIssueRequestDTO, SfsStoreRequestInputBase, UnplannedIssueRequestEditInput, UnplannedIssueRequestDetailDTO, SfsStoreRequestInputBase>
{
Task<UnplannedIssueRequestDTO> CreateByOAAsync(UnplannedIssueRequestEditInput input);
Task UpdateStatusByJobAsync(string requestNumber);
}

59
be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Jobs/UnplannedIssueJobs/UnplannedIssueJobAppService.cs

@ -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;
}

9
be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Requests/UnplannedIssueRequests/UnplannedIssueRequestAppService.cs

@ -77,8 +77,9 @@ public abstract class UnplannedIssueRequestAppService :
return dto;
}
[HttpPost("update-status-by-job")]
public virtual async Task UpdateStatusByJobAsync(string requestNumber)
{
throw new System.NotImplementedException();
}
}

25
be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Requests/UnplannedIssueRequests/UnplannedIssueRequestForDongyangAppService.cs

@ -36,13 +36,14 @@ public class UnplannedIssueRequestForDongyangAppService : UnplannedIssueRequestA
private readonly IBalanceAppService _balanceAppService;
private readonly ILocationAppService _locationAppService;
private readonly ITransactionTypeAclService _transactionTypeAclService;
private readonly IUnplannedIssueJobAppService _unplannedIssueJobAppService;
//private readonly IExportImportService _excelService;
public UnplannedIssueRequestForDongyangAppService(IUnplannedIssueRequestRepository repository,
IUnplannedIssueRequestManager unplannedIssueRequestManager,
IDepartmentAppService departmentApp, IBalanceAppService balanceAppService, ILocationAppService locationAppService, IExportImportService excelService,
ITransactionTypeAclService transactionTypeAclService
ITransactionTypeAclService transactionTypeAclService, IUnplannedIssueJobAppService unplannedIssueJobAppService
) : base( repository, unplannedIssueRequestManager, excelService)
{
_unplannedIssueRequestManager = unplannedIssueRequestManager;
@ -50,6 +51,7 @@ public class UnplannedIssueRequestForDongyangAppService : UnplannedIssueRequestA
_balanceAppService = balanceAppService;
_locationAppService = locationAppService;
_transactionTypeAclService = transactionTypeAclService;
_unplannedIssueJobAppService = unplannedIssueJobAppService;
}
/// <summary>
/// OA创建计划外出库申请
@ -186,6 +188,21 @@ public class UnplannedIssueRequestForDongyangAppService : UnplannedIssueRequestA
return dto;
}
[HttpPost("update-status-by-job")]
public override async Task UpdateStatusByJobAsync(string requestNumber)
{
var flag = await _unplannedIssueJobAppService.IsAllJobOverByRequestNumberAsync(requestNumber).ConfigureAwait(false);
if (flag)
{
var unplannedReceiptRequest = await _repository.FindAsync(p => p.Number == requestNumber).ConfigureAwait(false);
await _repository.UpdateAsync(unplannedReceiptRequest).ConfigureAwait(false);
}
}
private async Task SetDetailPropertiesAsync(UnplannedIssueRequestDetail detail)
{
var itemBasic = await ItemBasicAclService.GetByCodeAsync(detail.ItemCode).ConfigureAwait(false);
@ -469,6 +486,12 @@ public class UnplannedIssueRequestForDongyangAppService : UnplannedIssueRequestA
entity.DirectCreateNote = tranType.DirectCreateNote;
}
#endregion
#region 校验

15
be/Modules/Store/src/Win_in.Sfs.Wms.Store.Event/Jobs/UnplannedIssueJobEventHandler.cs

@ -3,12 +3,15 @@ using System.Collections.Generic;
using System.Linq;
using System.Reflection;
using System.Threading.Tasks;
using Volo.Abp.Domain.Repositories;
using Volo.Abp.EventBus;
using Volo.Abp.EventBus.Local;
using Volo.Abp.Uow;
using Win_in.Sfs.Shared.Domain.Shared;
using Win_in.Sfs.Shared.Event;
using Win_in.Sfs.Wms.Store.Application.Contracts;
using Win_in.Sfs.Wms.Store.Domain;
using static Quartz.Logging.OperationName;
namespace Win_in.Sfs.Wms.Store.Event.BusinessJob;
@ -47,6 +50,18 @@ public class UnplannedIssueJobEventHandler :
var note = BuildUnplannedIssueNoteCreateInput(entity);
await _noteApp.CreateAsync(note).ConfigureAwait(false);
entity.JobStatus=EnumJobStatus.Done;
//job.CompleteUserName = worker;
//job.JobStatus = EnumJobStatus.Done;
//job = await _repository.UpdateAsync(job).ConfigureAwait(false);
//await LocalEventBus.PublishAsync(new SfsCompletedEntityEventData<UnplannedReceiptJob>(job), false).ConfigureAwait(false);
//await UpdateRequestStatusAsync(job.UnplannedReceiptRequestNumber).ConfigureAwait(false);
}
[UnitOfWork]

9
be/Modules/Store/src/Win_in.Sfs.Wms.Store.Event/Transactions/UnplannedIssueNoteEventHandler.cs

@ -1,4 +1,5 @@
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using Volo.Abp.Domain.Entities;
using Volo.Abp.EventBus;
@ -23,8 +24,9 @@ public class UnplannedIssueNoteEventHandler
private const EnumTransType TransType = EnumTransType.UnplannedIssue;
private readonly IUnplannedIssueRequestAppService _unplannedIssueRequestApp;
private readonly IUnplannedIssueJobAppService _unplannedIssueJobApp;
public UnplannedIssueNoteEventHandler(IUnplannedIssueRequestAppService unplannedIssueRequestApp)
public UnplannedIssueNoteEventHandler(IUnplannedIssueRequestAppService unplannedIssueRequestApp,IUnplannedIssueJobAppService _unplannedIssueJobApp)
{
this._unplannedIssueRequestApp = unplannedIssueRequestApp;
}
@ -37,10 +39,11 @@ public class UnplannedIssueNoteEventHandler
if (!string.IsNullOrEmpty(entity.UnplannedIssueRequestNumber))
{
await _unplannedIssueRequestApp.CompleteByNumberAsync(entity.UnplannedIssueRequestNumber).ConfigureAwait(false);
//await _unplannedIssueRequestApp.CompleteByNumberAsync(entity.UnplannedIssueRequestNumber).ConfigureAwait(false);
if (entity.UnplannedIssueType == EnumUnplannedIssueType.Raw)
{
await ExpectOutAppService.RemoveAsync(entity.UnplannedIssueRequestNumber).ConfigureAwait(false);
await ExpectOutAppService.RemoveAsync(entity.JobNumber).ConfigureAwait(false);
}
}
}

Loading…
Cancel
Save