|
|
@ -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<ReusltObject> 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<string>(); |
|
|
|
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<AssembleIssueJob>, List<AssembleIssueJobDTO>>(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<AssembleIssueJobDetailDTO>(); |
|
|
|
|
|
|
|
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); |
|
|
|
|
|
|
|
|
|
|
|