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 48fd4fb56..dfd7aa8a2 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 @@ -12,6 +12,7 @@ using Microsoft.AspNetCore.Mvc; using Microsoft.Extensions.Logging; using Microsoft.Extensions.Options; using MyNamespace; +using Omu.ValueInjecter; using Volo.Abp; using Volo.Abp.ObjectMapping; using Win_in.Sfs.Basedata.Application.Contracts; @@ -321,7 +322,7 @@ public class AssembleIssueJobAppService Count = jobitem.RecommendFromQty, ProductNo = jobitem.ItemCode, NeedSite = pLoc, - WorkNo = job.Number, + WorkNo = job.AssembleRequestNumber, TaskNo = job.Number }); } @@ -369,7 +370,7 @@ public class AssembleIssueJobAppService var client = new IssueJobToRestoClient(_options.Value.Address, httpclient, _options.Value.Path); ret = await client.SyncIssueJobStereoAsync(main).ConfigureAwait(false); - _logger.LogInformation($"标志{flag}调用高通WMS:返回值{ret}"); + _logger.LogInformation($"标志{flag}调用高通WMS:返回值{System.Text.Json.JsonSerializer.Serialize(ret)}"); } catch (Exception ex) { @@ -385,8 +386,14 @@ public class AssembleIssueJobAppService [HttpPost("receive-issue-job-stereo")] public virtual async Task SyncReciveIssueJobStereoAsync(IssueRequestFromRestoDTO input) { -#if DEBUG var json = JsonSerializer.Serialize(input); + var flag = DateTime.Now.ToString("yyyyMMddHHmmss"); + _logger.LogInformation($"{flag}接收到立体库确认单据内容:" + json); +#if DEBUG + + + + #endif var errors = new List(); var ret = new ReusltObject { Code = int.Parse(GaoTongResultStatus.Success), OperateTime = DateTime.Now.ToString("yyyy-MM-dd"), Message = "操作成功" }; @@ -403,41 +410,85 @@ public class AssembleIssueJobAppService { errors.Add($"任务号{string.Join(",", numbers)}不存在!"); } - + var dtos = ObjectMapper.Map, List>(entities); - if (input.Jobs.Count == entities.Count) + if (input.Jobs.Count != entities.Count) { errors.Add("立体库提交出库任务和WMS任务不符,请核对! \n"); } + if (errors.Count > 0) + { + ret = new ReusltObject + { + Code = int.Parse(GaoTongResultStatus.Failure), + OperateTime = DateTime.Now.ToString("yyyy-MM-dd"), + Message = string.Join(",", errors.ToArray()), + Data = json + + }; + } foreach (var itm in dtos) { + + var first = jobs.FirstOrDefault(p => p.JobNumber == itm.Number); var itmDetails = itm.Details.ToList(); var details = new List(); + foreach (var detail in first.Details) { + var loc=await _locationAppService.GetByCodeAsync(detail.FromLocationCode).ConfigureAwait(false); + + if (loc == null) + { + errors.Add($"目标库位{detail.FromLocationCode}没查到"); + } + + var entity = itmDetails.FirstOrDefault(p => p.ItemCode == detail.ItemCode); var dto = new AssembleIssueJobDetailDTO(); - dto.HandledFromLocationCode = entity.HandledFromLocationCode; - dto.HandledToLocationCode = entity.HandledToLocationCode; - dto.ItemCode = detail.ItemCode; + //dto.HandledFromLocationCode = entity.HandledFromLocationCode; + //dto.HandledToLocationCode = entity.HandledToLocationCode; + // dto.ItemCode = detail.ItemCode; + dto.InjectFrom(entity); dto.RecommendFromQty = detail.Qty; dto.RecommendToQty = detail.Qty; dto.HandledFromQty = detail.Qty; dto.HandledToQty = detail.Qty; - dto.Status = entity.Status; + + //dto.HandledToLocationCode = loc.Code; + //dto.HandledToLocationGroup = loc.LocationGroupCode; + //dto.HandledToLocationArea = loc.AreaCode; + //dto.HandledToLocationErpCode = loc.ErpLocationCode; + //dto.HandledToPackingCode = ""; + + dto.HandledFromLocationCode = loc.Code; + dto.HandledFromLocationGroup = loc.LocationGroupCode; + dto.HandledFromLocationArea = loc.AreaCode; + dto.HandledFromLocationErpCode = loc.ErpLocationCode; + dto.HandledFromPackingCode = ""; + + + + //dto.Status = entity.Status; + + details.Add(dto); } itm.Details = details; await CompleteAsync(itm.Id, itm).ConfigureAwait(false); + _logger.LogInformation($"{flag}接收到立体库确认单据内容:" + json+"立体库任务完成"); + + } } else { errors.Add("立体库确认单据里无数据! \n"); + } } catch (Exception ex) @@ -445,6 +496,7 @@ public class AssembleIssueJobAppService ret = new ReusltObject { Code = int.Parse(GaoTongResultStatus.Failure), OperateTime = DateTime.Now.ToString("yyyy-MM-dd"), Message = ex.Message + , Data = json }; return ret; } @@ -455,7 +507,9 @@ public class AssembleIssueJobAppService { Code = int.Parse(GaoTongResultStatus.Failure), OperateTime = DateTime.Now.ToString("yyyy-MM-dd"), - Message = string.Join(",", errors.ToArray()) + Message = string.Join(",", errors.ToArray()), + Data = json + }; } @@ -560,7 +614,7 @@ public class AssembleIssueJobAppService var jobDetailInputdetail = assembleIssueJobDto.Details.FirstOrDefault(); - var loctionDto = await _locationAppService.GetByCodeAsync(jobDetailInputdetail.RecommendFromLocationCode) + var loctionDto = await _locationAppService.GetByCodeAsync(jobDetailInputdetail.RecommendToLocationCode) .ConfigureAwait(false);