From 85dc0d8279de71456ed9033b6d5c01b30554105b Mon Sep 17 00:00:00 2001 From: "boxu.zheng" Date: Mon, 16 Dec 2024 16:25:46 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9agv=E5=88=9B=E5=BB=BA?= =?UTF-8?q?=E5=8F=91=E6=96=99?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../IAssembleIssueJobAppService.cs | 4 +-- .../Jobs/AgvJobs/AgvJobOutputService.cs | 4 +-- .../AssembleIssueJobAppService.cs | 34 +++++++++++++------ .../AssembleIssueRequestEventHandler.cs | 6 ++++ 4 files changed, 32 insertions(+), 16 deletions(-) diff --git a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Jobs/IssueJobs/AssembleIssueJobs/IAssembleIssueJobAppService.cs b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Jobs/IssueJobs/AssembleIssueJobs/IAssembleIssueJobAppService.cs index c76db88e3..271b0c17b 100644 --- a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Jobs/IssueJobs/AssembleIssueJobs/IAssembleIssueJobAppService.cs +++ b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Jobs/IssueJobs/AssembleIssueJobs/IAssembleIssueJobAppService.cs @@ -28,7 +28,5 @@ public interface IAssembleIssueJobAppService Task GetByNumber2Async(string number); Task GetJobByPackingCodeAsync(string packingCode); - Task CallBackAgvAsync(AgvRequestDto request); - - Task CallAgvAsync(AssembleIssueJobDTO input); + } diff --git a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Jobs/AgvJobs/AgvJobOutputService.cs b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Jobs/AgvJobs/AgvJobOutputService.cs index ba3e440e6..ce95c679c 100644 --- a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Jobs/AgvJobs/AgvJobOutputService.cs +++ b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Jobs/AgvJobs/AgvJobOutputService.cs @@ -86,7 +86,7 @@ public class AgvJobOutputService : ApplicationService public async Task Assemble_CallAgvAsync(Guid id) { var jobdto= await _assembleIssueJobAppService.GetAsync(id).ConfigureAwait(false); - var ret= await _assembleIssueJobAppService.CallAgvAsync(jobdto).ConfigureAwait(false); + var ret= await _assembleIssueJobAppService.CallAgvAsync(jobdto,"123","321").ConfigureAwait(false); return ret; } @@ -98,7 +98,7 @@ public class AgvJobOutputService : ApplicationService [HttpPost("assemble-test-callagv1")] public async Task Assemble_CallAgvAsync1(AssembleIssueJobDTO jobdto) { - var ret = await _assembleIssueJobAppService.CallAgvAsync(jobdto).ConfigureAwait(false); + var ret = await _assembleIssueJobAppService.CallAgvAsync(jobdto, "123", "321").ConfigureAwait(false); return ret; } /// 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 fcfdc7c7f..397427a0c 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 @@ -145,7 +145,8 @@ public class AssembleIssueJobAppService foreach (var assembleIssueJobDto in assembleIssueJobDtos) { await DoingDimensionalStorehouseAsync(assembleIssueJobDto).ConfigureAwait(false); - await DoingAgvAsync(assembleIssueJobDto).ConfigureAwait(false); + var firstDetail = assembleIssueJobDto.Details.First(); + await DoingAgvAsync(assembleIssueJobDto, firstDetail.RecommendFromLocationCode, firstDetail.RecommendToLocationCode).ConfigureAwait(false); } return assembleIssueJobDtos; @@ -165,7 +166,8 @@ public class AssembleIssueJobAppService await DoingDimensionalStorehouseAsync(assembleIssueJobDto).ConfigureAwait(false); if (flagDimensionalStorehouse == false) { - await DoingAgvAsync(assembleIssueJobDto).ConfigureAwait(false); + var firstDetail = assembleIssueJobDto.Details.First(); + await DoingAgvAsync(assembleIssueJobDto, firstDetail.RecommendFromLocationCode, firstDetail.RecommendToLocationCode).ConfigureAwait(false); } return assembleIssueJobDto; @@ -495,7 +497,10 @@ public class AssembleIssueJobAppService jobDetail.TransferLibToSupplierBatch = transferLibNoteDetail.HandledToSupplierBatch; jobDetail.TransferLibToWarehouseCode = transferLibNoteDetail.HandledToWarehouseCode; - await _repository.UpdateAsync(job).ConfigureAwait(false); + job=await _repository.UpdateAsync(job).ConfigureAwait(false); + var jobDto=ObjectMapper.Map(job); + + await DoingAgvAsync(jobDto, jobDetail.TransferLibToLocationCode,jobDetail.RecommendToLocationCode).ConfigureAwait(false); } #endregion @@ -805,17 +810,20 @@ public class AssembleIssueJobAppService /// 调用AGV /// /// + /// + /// /// - private async Task DoingAgvAsync(AssembleIssueJobDTO assembleIssueJobDto) + private async Task DoingAgvAsync(AssembleIssueJobDTO assembleIssueJobDto,string fromLocationCode,string toLocationCode) { var jobDetailInputdetail = assembleIssueJobDto.Details.FirstOrDefault(); var locationDeliveryDto = await _locationDeliveryAppService.GetByFromLocationCodeAndToLocationCodeAsync( - jobDetailInputdetail.RecommendFromLocationCode, jobDetailInputdetail.RecommendToLocationCode).ConfigureAwait(false); + fromLocationCode, toLocationCode).ConfigureAwait(false); if (locationDeliveryDto != null && locationDeliveryDto.EnumLocationDeliveryType == EnumLocationDeliveryType.Agv) { //TODO AGV - var ret = await CallAgvAsync(assembleIssueJobDto).ConfigureAwait(false); + //来源永远是库位 目标永远是工位 + var ret = await CallAgvAsync(assembleIssueJobDto, fromLocationCode, jobDetailInputdetail.Remark).ConfigureAwait(false); #if DEBUG @@ -855,17 +863,17 @@ public class AssembleIssueJobAppService /// 调用 Agv 接口 /// /// - /// - /// + /// + /// /// [HttpPost("call-agv")] - public async Task CallAgvAsync(AssembleIssueJobDTO input) + public async Task CallAgvAsync(AssembleIssueJobDTO input, string beginPosition, string endPosition) { var res = new ReusltObject(); List errors = new List(); List successList = new List(); - var jobres = await SendInterFaceAsync(input).ConfigureAwait(false); + var jobres = await SendInterFaceAsync(input, beginPosition, endPosition).ConfigureAwait(false); if (jobres.Code != "0") { _logger.LogInformation(jobres.Message); @@ -1076,8 +1084,10 @@ public class AssembleIssueJobAppService /// 调用Agv接口实现 /// /// + /// + /// /// - private async Task SendInterFaceAsync(AssembleIssueJobDTO job) + private async Task SendInterFaceAsync(AssembleIssueJobDTO job,string beginPosition, string endPosition) { #if DEBUG @@ -1107,6 +1117,8 @@ public class AssembleIssueJobAppService request.MatQty = first.HandledToQty; request.OrderNum = job.Number; request.OrderType = EnumJobType.AssembleIssueJob.ToString(); + request.BeginPosition = beginPosition; + request.EndPosition = endPosition; var httpclient = _httpClientFactory.CreateClient(); _agvOptions.Value.Address = string.IsNullOrEmpty(_agvOptions.Value.Address) diff --git a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Event/Requests/IssueRequest/AssembleIssueRequestEventHandler.cs b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Event/Requests/IssueRequest/AssembleIssueRequestEventHandler.cs index 26de079f0..04b423758 100644 --- a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Event/Requests/IssueRequest/AssembleIssueRequestEventHandler.cs +++ b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Event/Requests/IssueRequest/AssembleIssueRequestEventHandler.cs @@ -605,6 +605,12 @@ public class AssembleIssueRequestEventHandler if (assembleIssueJobEditInputs.Count > 0) //有库存 可以创建任务 { + assembleIssueJobEditInputs.ForEach(p => + { + p.Details.ForEach(x => x.Remark = assembleIssueRequest.Remark); + p.Remark = assembleIssueRequest.Remark; + }); + //新增任务 var addAssembleIssueJobDtos = await _assembleIssueJobAppService .CreateManyAsync(assembleIssueJobEditInputs)