From 28121cec2320ae230e6b97390f4f9064ad6eee9e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=AD=A6=20=E8=B5=B5?= <89237069@qq.com> Date: Tue, 12 Nov 2024 14:37:21 +0800 Subject: [PATCH] =?UTF-8?q?=E7=AB=8B=E4=BD=93=E5=BA=93=E4=BF=AE=E6=94=B9?= =?UTF-8?q?=E6=93=8D=E4=BD=9C=E4=BA=BA=EF=BC=8C=E9=80=80=E8=B4=A7BUG?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../GaoTongs/Inputs/ZuPanEditInput.cs | 4 + .../IPurchaseReturnJobAppService.cs | 1 + .../IPurchaseReturnRequestAppService.cs | 2 + .../GaoTongs/GaoTongAppService.cs | 7 +- .../AssembleIssueJobAppService.cs | 10 ++- .../PurchaseReturnJobAppService.cs | 88 +++++++++++++++++++ .../PurchaseReturnRequestAppService.cs | 34 ++++++- .../PurchaseReturnRequestEventHandler.cs | 2 +- .../PurchaseReturnNoteEventHandler.cs | 13 ++- 9 files changed, 151 insertions(+), 10 deletions(-) diff --git a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/GaoTongs/Inputs/ZuPanEditInput.cs b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/GaoTongs/Inputs/ZuPanEditInput.cs index cfe5711bc..9bffa67cf 100644 --- a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/GaoTongs/Inputs/ZuPanEditInput.cs +++ b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/GaoTongs/Inputs/ZuPanEditInput.cs @@ -25,6 +25,10 @@ public class ZuPanEditInput : EntityDto [Display(Name = "由1.2接口中获取富维东阳MES提供的来源位置")] public string FromLocationCode { get; set; } + + + + } /* { diff --git a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Jobs/PurchaseReturnJobs/IPurchaseReturnJobAppService.cs b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Jobs/PurchaseReturnJobs/IPurchaseReturnJobAppService.cs index de45585cb..d56f0dd17 100644 --- a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Jobs/PurchaseReturnJobs/IPurchaseReturnJobAppService.cs +++ b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Jobs/PurchaseReturnJobs/IPurchaseReturnJobAppService.cs @@ -6,4 +6,5 @@ public interface IPurchaseReturnJobAppService : ISfsJobAppServiceBase { Task CancelByPurchaseReturnRequestAsync(string purchaseReturnRequestNumber); + Task IsAllJobOverByRequestNumberAsync(string requestNumber); } diff --git a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Requests/PurchaseReturnRequests/IPurchaseReturnRequestAppService.cs b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Requests/PurchaseReturnRequests/IPurchaseReturnRequestAppService.cs index 76ad6e798..73c28de6b 100644 --- a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Requests/PurchaseReturnRequests/IPurchaseReturnRequestAppService.cs +++ b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Requests/PurchaseReturnRequests/IPurchaseReturnRequestAppService.cs @@ -10,4 +10,6 @@ public interface IPurchaseReturnRequestAppService { Task> CreateManyAsync(List inputs); + Task UpdateStatusByJobAsync(string requestNumber); + } diff --git a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/GaoTongs/GaoTongAppService.cs b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/GaoTongs/GaoTongAppService.cs index 825bc484a..2310fe27b 100644 --- a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/GaoTongs/GaoTongAppService.cs +++ b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/GaoTongs/GaoTongAppService.cs @@ -36,7 +36,7 @@ public class GaoTongAppService : ApplicationService, IGaoTongAppService private readonly UnitOfWorkManager _unitOfWorkManager; public GaoTongAppService( - IBalanceAppService balanceAppService + IBalanceAppService balanceAppService , ITransferNoteAppService transferNoteAppService , CurrentUser currentUser , IItemBasicAppService itemBasicAppService @@ -72,7 +72,7 @@ public class GaoTongAppService : ApplicationService, IGaoTongAppService TransferNoteEditInput transferNoteEditInput = new TransferNoteEditInput(); transferNoteEditInput.TenantId = null; transferNoteEditInput.Remark = String.Empty; - transferNoteEditInput.Worker = _currentUser.UserName; + transferNoteEditInput.Worker = "LITIKU"; transferNoteEditInput.ActiveDate = CommonHelper.CurTime; transferNoteEditInput.Type = EnumTransSubType.Transfer_Coating.ToString(); //喷涂完工转储 transferNoteEditInput.UseOnTheWayLocation = false; @@ -188,9 +188,10 @@ public class GaoTongAppService : ApplicationService, IGaoTongAppService } TransferNoteEditInput transferNoteEditInput = new TransferNoteEditInput(); + transferNoteEditInput.TenantId = null; transferNoteEditInput.Remark = String.Empty; - transferNoteEditInput.Worker = _currentUser.UserName; + transferNoteEditInput.Worker ="LITIKU"; transferNoteEditInput.ActiveDate = CommonHelper.CurTime; //transferNoteEditInput.Type = EnumTransSubType.Depot_Out.ToString(); //喷涂完工转储 transferNoteEditInput.UseOnTheWayLocation = false; diff --git a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Jobs/IssueJobs/AssembleIssueJobs/AssembleIssueJobAppService.cs b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Jobs/IssueJobs/AssembleIssueJobs/AssembleIssueJobAppService.cs index 96548150d..49d997ee3 100644 --- a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Jobs/IssueJobs/AssembleIssueJobs/AssembleIssueJobAppService.cs +++ b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Jobs/IssueJobs/AssembleIssueJobs/AssembleIssueJobAppService.cs @@ -578,6 +578,13 @@ public class AssembleIssueJobAppService } var dtos = ObjectMapper.Map, List>(entities); + + + + + + + if (input.Jobs.Count != entities.Count) { errors.Add("立体库提交出库任务和WMS任务不符,请核对! \n"); @@ -585,6 +592,7 @@ public class AssembleIssueJobAppService foreach (var itm in dtos) { + var first = jobs.FirstOrDefault(p => p.JobNumber == itm.Number); var itmDetails = itm.Details.ToList(); var details = new List(); @@ -662,7 +670,7 @@ public class AssembleIssueJobAppService Data = json }; } - + itm.Worker = "LITIKU"; itm.Details = details; // await CompleteAsync(itm.Id, itm).ConfigureAwait(false); _logger.LogInformation($"{flag}接收到立体库确认单据内容:" + json + "立体库任务完成"); diff --git a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Jobs/PurchaseReturnJobs/PurchaseReturnJobAppService.cs b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Jobs/PurchaseReturnJobs/PurchaseReturnJobAppService.cs index 659123c22..cc90426c4 100644 --- a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Jobs/PurchaseReturnJobs/PurchaseReturnJobAppService.cs +++ b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Jobs/PurchaseReturnJobs/PurchaseReturnJobAppService.cs @@ -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 } } + /// + /// 根据申请单号判断下面的任务是否都是完成或取消 + /// + /// + [HttpPost("is-all-job-over-by-request-number")] + public async Task 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 CompleteAsync(Guid id, PurchaseReturnJobDTO dto) + { + var job = await _repository.GetAsync(id).ConfigureAwait(false); + var handleDto = new PurchaseReturnJobDTO(); + + var handleEntity = ObjectMapper.Map(dto); + + var handleResult = + await _purchaseReturnJobManager.CompleteAsync(handleEntity, CurrentUser).ConfigureAwait(false); + handleDto = ObjectMapper.Map(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(dto); + + //var handleResult = await _jobManager.CompleteAsync(handleEntity, CurrentUser).ConfigureAwait(false); + //var handleDto = ObjectMapper.Map(handleResult); + //return handleDto; + } + /* [HttpPost("accept")] public override async Task AcceptAsync(string jobNumber) diff --git a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Requests/PurchaseReturnRequests/PurchaseReturnRequestAppService.cs b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Requests/PurchaseReturnRequests/PurchaseReturnRequestAppService.cs index 100e9ef92..a7f097839 100644 --- a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Requests/PurchaseReturnRequests/PurchaseReturnRequestAppService.cs +++ b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Requests/PurchaseReturnRequests/PurchaseReturnRequestAppService.cs @@ -40,6 +40,7 @@ public class PurchaseReturnRequestAppService : private readonly IPurchaseReturnRequestManager _purchaseReturnRequestManager; private readonly IPurchaseOrderAppService _purchaseOrderAppService; private readonly IBalanceAppService _balanceAppService; + private readonly IPurchaseReturnJobAppService _purchaseReturnJobAppService; public PurchaseReturnRequestAppService( IPurchaseReturnRequestRepository repository, IPurchaseReturnRequestManager purchaseReturnRequestManager, @@ -47,6 +48,10 @@ public class PurchaseReturnRequestAppService : ILocationAppService locationAppService, ITransactionTypeAppService transactionTypeAppService, IPurchaseOrderAppService purchaseOrderAppService, + + IPurchaseReturnJobAppService purchaseReturnJobAppService, + + IBalanceAppService balanceAppService) : base(repository, purchaseReturnRequestManager) { _purchaseReturnRequestManager = purchaseReturnRequestManager; @@ -55,7 +60,7 @@ public class PurchaseReturnRequestAppService : _transactionTypeAppService = transactionTypeAppService; _purchaseOrderAppService = purchaseOrderAppService; _balanceAppService = balanceAppService; - + _purchaseReturnJobAppService = purchaseReturnJobAppService; base.CreatePolicyName = PurchaseReturnRequestPermissions.Create; base.UpdatePolicyName = PurchaseReturnRequestPermissions.Update; base.DeletePolicyName = PurchaseReturnRequestPermissions.Delete; @@ -127,6 +132,11 @@ public class PurchaseReturnRequestAppService : var locationDto= await _locationAppService.GetByCodeAsync(balanceDto.LocationCode).ConfigureAwait(false); CheckLocation(locationDto, balanceDto); + + + + + var purchaseOrderDto = await _purchaseOrderAppService.GetByNumberAsync(labelDto.PoNumber).ConfigureAwait(false); purchaseOrderDto = await _purchaseOrderAppService.GetAsync(purchaseOrderDto.Id).ConfigureAwait(false); CheckPurchaseOrder(purchaseOrderDto, labelDto); @@ -279,8 +289,30 @@ public class PurchaseReturnRequestAppService : { throw new UserFriendlyException($"标签为【{detail.PackingCode}】不存在"); } + else + { + if (string.IsNullOrEmpty(labelDto.PoNumber)) + { + throw new UserFriendlyException("标签无订单号!"); + } + } + } + + [HttpPost("update-status-by-job")] + public virtual async Task UpdateStatusByJobAsync(string requestNumber) + { + var flag = await _purchaseReturnJobAppService.IsAllJobOverByRequestNumberAsync(requestNumber).ConfigureAwait(false); + if (flag) + { + var request = await _repository.FindAsync(p => p.Number == requestNumber).ConfigureAwait(false); + request.RequestStatus = EnumRequestStatus.Completed; + await _repository.UpdateAsync(request).ConfigureAwait(false); + } } + + + #endregion #endregion diff --git a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Event/Requests/PurchaseReturnRequestEventHandler.cs b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Event/Requests/PurchaseReturnRequestEventHandler.cs index 59d9a65cd..745132de9 100644 --- a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Event/Requests/PurchaseReturnRequestEventHandler.cs +++ b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Event/Requests/PurchaseReturnRequestEventHandler.cs @@ -105,7 +105,7 @@ public class PurchaseReturnRequestEventHandler job.JobType = EnumJobType.PurchaseReturnJob; job.JobStatus = EnumJobStatus.Open; job.IsAutoComplete = request.AutoCompleteJob; - + job.WorkGroupCode = location.WorkGroupCode; job.Details = new List(); diff --git a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Event/Transactions/PurchaseReturnNoteEventHandler.cs b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Event/Transactions/PurchaseReturnNoteEventHandler.cs index d4df90b31..01b6e8213 100644 --- a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Event/Transactions/PurchaseReturnNoteEventHandler.cs +++ b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Event/Transactions/PurchaseReturnNoteEventHandler.cs @@ -29,8 +29,10 @@ public class PurchaseReturnNoteEventHandler private readonly IPurchaseOrderAppService _purchaseOrderAppService; private readonly IInventoryLabelAppService _inventoryLabelAppService; private readonly IItemBasicAppService _itemBasicAppService; + private readonly IPurchaseReturnJobAppService _purchaseReturnJobApp; public PurchaseReturnNoteEventHandler( + IPurchaseReturnJobAppService purchaseReturnJobApp, IPurchaseReturnRequestAppService purchaseReturnRequestApp , IPurchaseOrderAppService purchaseOrderAppService, IInventoryLabelAppService inventoryLabelAppService, @@ -49,10 +51,13 @@ public class PurchaseReturnNoteEventHandler await AddTransactionsAsync(entity).ConfigureAwait(false); //更新采购退货请求状态 - if (!string.IsNullOrEmpty(entity.PurchaseReturnRequestNumber)) - { - await _purchaseReturnRequestApp.CompleteByNumberAsync(entity.PurchaseReturnRequestNumber).ConfigureAwait(false); - } + //if (!string.IsNullOrEmpty(entity.PurchaseReturnRequestNumber)) + //{ + + + + // await _purchaseReturnRequestApp.CompleteByNumberAsync(entity.PurchaseReturnRequestNumber).ConfigureAwait(false); + //} //更新订单已收货数量 await UpdatePurchaseOrderAsync(entity).ConfigureAwait(false);