|
|
@ -239,7 +239,7 @@ public class CoatingIssueJobAppService |
|
|
|
|
|
|
|
var coatingIssueJobDto = ObjectMapper.Map<CoatingIssueJob, CoatingIssueJobDTO>(coatingIssueJob); |
|
|
|
|
|
|
|
var fromLocationDto=await _locationAppService.GetByCodeAsync(issueJobDetailDto.HandledFromLocationCode).ConfigureAwait(false); |
|
|
|
var fromLocationDto = await _locationAppService.GetByCodeAsync(issueJobDetailDto.HandledFromLocationCode).ConfigureAwait(false); |
|
|
|
var toLocationDto = await _locationAppService.GetByCodeAsync(issueJobDetailDto.HandledToLocationCode).ConfigureAwait(false); |
|
|
|
|
|
|
|
issueJobDetailDto.HandledFromLocationArea = fromLocationDto.AreaCode; |
|
|
@ -463,13 +463,13 @@ public class CoatingIssueJobAppService |
|
|
|
Convert.ToBase64String(Encoding.ASCII.GetBytes($"{username}:{password}"))); |
|
|
|
} |
|
|
|
|
|
|
|
var client = new IssueJobToRestoClient(_options.Value.Address, httpclient,_options.Value.Path); |
|
|
|
var client = new IssueJobToRestoClient(_options.Value.Address, httpclient, _options.Value.Path); |
|
|
|
|
|
|
|
var flag=DateTime.Now.ToString("yyyyMMddHHmmss"); |
|
|
|
var flag = DateTime.Now.ToString("yyyyMMddHHmmss"); |
|
|
|
_logger.LogInformation($"标志{flag}开始调用高通WMS:传递值{System.Text.Json.JsonSerializer.Serialize(main)}"); |
|
|
|
|
|
|
|
//_logger.LogInformation(MakeGrid($"标志{flag}开始调用高通WMS明细", main.Details.ToList()));
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ret = await client.SyncIssueJobStereoAsync(main).ConfigureAwait(false); |
|
|
|
|
|
|
@ -481,7 +481,7 @@ public class CoatingIssueJobAppService |
|
|
|
ret = new ReusltObject(); |
|
|
|
ret.Code = int.Parse(GaoTongResultStatus.Failure); |
|
|
|
ret.Message = ex.Message; |
|
|
|
ret.OperateTime = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"); |
|
|
|
ret.OperateTime = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"); |
|
|
|
} |
|
|
|
|
|
|
|
return ret; |
|
|
@ -507,7 +507,7 @@ public class CoatingIssueJobAppService |
|
|
|
var dtos = ObjectMapper.Map<List<CoatingIssueJob>, List<CoatingIssueJobDTO>>(entities); |
|
|
|
if (entities.Count == 0) |
|
|
|
{ |
|
|
|
errors.Add($"任务号{string.Join(",", numbers)}不存在!") ; |
|
|
|
errors.Add($"任务号{string.Join(",", numbers)}不存在!"); |
|
|
|
} |
|
|
|
if (input.Jobs.Count == entities.Count) |
|
|
|
{ |
|
|
@ -547,7 +547,9 @@ public class CoatingIssueJobAppService |
|
|
|
{ |
|
|
|
ret = new ReusltObject |
|
|
|
{ |
|
|
|
Code = int.Parse(GaoTongResultStatus.Failure), OperateTime = DateTime.Now.ToString("yyyy-MM-dd"), Message = ex.Message |
|
|
|
Code = int.Parse(GaoTongResultStatus.Failure), |
|
|
|
OperateTime = DateTime.Now.ToString("yyyy-MM-dd"), |
|
|
|
Message = ex.Message |
|
|
|
}; |
|
|
|
return ret; |
|
|
|
} |
|
|
@ -666,7 +668,7 @@ public class CoatingIssueJobAppService |
|
|
|
_logger.LogInformation($"立体库任务检查开始{flag}"); |
|
|
|
if (loctionDto.Type == EnumLocationType.DimensionalStorehouse) |
|
|
|
{ |
|
|
|
|
|
|
|
|
|
|
|
_logger.LogInformation($"立体库任务开始标记{flag}"); |
|
|
|
//TODO 立体库
|
|
|
|
var ret = await SyncIssueJobStereoAsync(new List<CoatingIssueJobDTO> { coatingIssueJobDto }, |
|
|
@ -1014,9 +1016,73 @@ public class CoatingIssueJobAppService |
|
|
|
} |
|
|
|
return ret; |
|
|
|
} |
|
|
|
/// <summary>
|
|
|
|
/// 回库调用
|
|
|
|
/// </summary>
|
|
|
|
/// <param name="job"></param>
|
|
|
|
/// <returns></returns>
|
|
|
|
/// <exception cref="UserFriendlyException"></exception>
|
|
|
|
private async Task<AgvResultObject> ReturnBackAsync(CoatingIssueJobDTO job) |
|
|
|
{ |
|
|
|
var ret = new AgvResultObject |
|
|
|
{ |
|
|
|
Code = "0", |
|
|
|
ReqCode = job.CoatingRequestNumber, |
|
|
|
Message = "OK" |
|
|
|
}; |
|
|
|
using var unitOfWork = _unitOfWorkManager.Begin(); |
|
|
|
try |
|
|
|
{ |
|
|
|
var first = job.Details.FirstOrDefault(); |
|
|
|
var request = new AgvRequestBack(); |
|
|
|
request.MatCode = first.ItemCode; |
|
|
|
request.ReturnQty = first.HandledToQty; |
|
|
|
request.EndPosition = job.Number; |
|
|
|
|
|
|
|
|
|
|
|
var httpclient = _httpClientFactory.CreateClient(); |
|
|
|
_agvOptions.Value.Address = string.IsNullOrEmpty(_agvOptions.Value.Address) |
|
|
|
? "http://7e42682n64.goho.co:21171/" |
|
|
|
: _agvOptions.Value.Address; //测试地址
|
|
|
|
_agvOptions.Value.Token = |
|
|
|
string.IsNullOrEmpty(_agvOptions.Value.Token) ? string.Empty : _agvOptions.Value.Token; //测试token
|
|
|
|
_agvOptions.Value.UserName = |
|
|
|
string.IsNullOrEmpty(_agvOptions.Value.UserName) ? "" : _agvOptions.Value.UserName; //测试用户名
|
|
|
|
_agvOptions.Value.Password = |
|
|
|
string.IsNullOrEmpty(_agvOptions.Value.Password) ? "" : _agvOptions.Value.Password; //测试密码
|
|
|
|
_agvOptions.Value.Path = string.IsNullOrEmpty(_agvOptions.Value.Path) |
|
|
|
? "zozocnApi/custom/receiveProductionPlan" |
|
|
|
: _agvOptions.Value.Path; //测试密码
|
|
|
|
var flag = DateTime.Now.ToString("yyyyMMddHHmmss"); |
|
|
|
|
|
|
|
if (!string.IsNullOrEmpty(_agvOptions.Value.Token)) |
|
|
|
{ |
|
|
|
var token = _agvOptions.Value.Token; |
|
|
|
httpclient.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", token); |
|
|
|
} |
|
|
|
|
|
|
|
if (!string.IsNullOrEmpty(_agvOptions.Value.UserName) && !string.IsNullOrEmpty(_agvOptions.Value.Password)) |
|
|
|
{ |
|
|
|
var username = _agvOptions.Value.UserName; |
|
|
|
var password = _agvOptions.Value.Password; |
|
|
|
httpclient.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Basic", |
|
|
|
Convert.ToBase64String(Encoding.ASCII.GetBytes($"{username}:{password}"))); |
|
|
|
} |
|
|
|
|
|
|
|
var client = new AgvJobClient(_agvOptions.Value.Address, httpclient, _agvOptions.Value.Path); |
|
|
|
ret = await client.NotifyOutTaskBack4FWAsync(request).ConfigureAwait(false); |
|
|
|
|
|
|
|
} |
|
|
|
catch (Exception e) |
|
|
|
{ |
|
|
|
ret = new AgvResultObject(); |
|
|
|
ret.Code = "1"; |
|
|
|
ret.Message = e.Message; |
|
|
|
ret.ReqCode = job.CoatingRequestNumber; |
|
|
|
await unitOfWork.RollbackAsync().ConfigureAwait(false); |
|
|
|
throw new UserFriendlyException($"接口报错 错误信息{e.Message}"); |
|
|
|
} |
|
|
|
return ret; |
|
|
|
} |
|
|
|
#endregion
|
|
|
|
} |
|
|
|