Browse Source

Merge branch 'Agv分支2024-11-19' of http://dev.ccwin-in.com:3000/BoXu.Zheng/WZC2 into Agv分支2024-11-19

Agv分支2024-11-19
郑勃旭 5 months ago
parent
commit
aaf97fc2dc
  1. 2
      be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Jobs/IssueJobs/AssembleIssueJobs/AssembleIssueJobAppService.cs
  2. 193
      be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Jobs/IssueJobs/CoatingIssueJobs/CoatingIssueJobAppService.cs
  3. 197
      be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Jobs/IssueJobs/InjectionIssueJobs/InjectionIssueJobAppService.cs
  4. 194
      be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Jobs/IssueJobs/KittingIssueJobs/KittingIssueJobAppService.cs
  5. 193
      be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Jobs/IssueJobs/SparePartIssueJobs/SparePartIssueJobAppService.cs
  6. 4
      build/src/docker/publish/conf/settings/appsettings.Development.json

2
be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Jobs/IssueJobs/AssembleIssueJobs/AssembleIssueJobAppService.cs

@ -1064,7 +1064,7 @@ public class AssembleIssueJobAppService
private async Task<AgvResultObject> SendInterFaceAsync(AssembleIssueJobDTO job)
{
#if DEBUG
return new AgvResultObject();
#endif
var ret = new AgvResultObject
{

193
be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Jobs/IssueJobs/CoatingIssueJobs/CoatingIssueJobAppService.cs

@ -53,6 +53,7 @@ public class CoatingIssueJobAppService
private readonly UnitOfWorkManager _unitOfWorkManager;
private readonly IOptions<AgvOptions> _agvOptions;
private readonly IPostionLocationAppService _postionLocationAppService;
private readonly IItemBasicAppService _itemBasicAppService;
protected ICoatingIssueRequestAppService CoatingIssueRequestAppService =>
@ -67,7 +68,7 @@ public class CoatingIssueJobAppService
, IHttpClientFactory httpClientFactory
, IOptions<RestoOptions> options, ITransferLibRequestAppService transferLibRequestAppService, ICurrentUser currentUser, IOptions<AgvOptions> agvOptions
, UnitOfWorkManager unitOfWorkManager
, IPostionLocationAppService postionLocationAppService
, IPostionLocationAppService postionLocationAppService, IItemBasicAppService _itemBasicAppService
) : base(
repository, coatingIssueJobManager)
{
@ -736,71 +737,47 @@ public class CoatingIssueJobAppService
coatingIssueJobDetailDto.Status, coatingIssueJobDetailDto.HandledToLot,
handledToQty).ConfigureAwait(false);
}
[HttpPost("PushOutTask")]
public async Task<AgvResultObject> PushOutTaskAsync(CoatingIssueJobDTO job)
/// <summary>
/// 调用 Agv 接口
/// </summary>
/// <param name="input"></param>
/// <param name="pLoc"></param>
/// <param name="uid"></param>
/// <returns></returns>
[HttpPost("call-agv")]
public async Task<ReusltObject> CallAgvAsync(CoatingIssueJobDTO input)
{
var ret = new AgvResultObject
var res = new ReusltObject();
List<string> errors = new List<string>();
List<string> successList = new List<string>();
var jobres = await SendInterFaceAsync(input).ConfigureAwait(false);
if (jobres.Code != "0")
{
Code = "0",
ReqCode = job.CoatingRequestNumber,
Message = "OK"
};
using var unitOfWork = _unitOfWorkManager.Begin();
try
_logger.LogInformation(jobres.Message);
errors.Add(jobres.Message);
}
else
{
var first = job.Details.FirstOrDefault();
var request = new AgvRequest();
request.MatCode = first.ItemCode;
request.MatQty = first.HandledToQty;
request.OrderNum = job.Number;
request.OrderType = EnumJobType.CoatingIssueJob.ToString();
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");
// _logger.LogInformation($"标志{flag}开始调用高通WMS:传递值{JsonSerializer.Serialize(main)}");
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.PushOutTask4FWAsync(request).ConfigureAwait(false);
successList.Add(jobres.Message);
}
catch (Exception e)
if (errors.Count > 0)
{
ret = new AgvResultObject();
ret.Code = "1";
ret.Message = e.Message;
ret.ReqCode = job.CoatingRequestNumber;
await unitOfWork.RollbackAsync().ConfigureAwait(false);
res.Code = -1;
res.Message = string.Join(",", errors);
res.Data = "";
return res;
}
return ret;
return res;
}
[HttpPost("accountOutOrder")]
/// <summary>
/// Agv 回调 接口
/// </summary>
/// <param name="request"></param>
/// <returns></returns>
[HttpPost("call-back-agv")]
public async Task<AgvResultObject> CallBackAgvAsync(AgvRequestDto request)
{
var json = JsonSerializer.Serialize(request);
@ -811,13 +788,11 @@ public class CoatingIssueJobAppService
var errors = new List<string>();
var first = request.Data.FirstOrDefault();
var job = await _repository.GetAsync(p => p.Number == first.OrderNum).ConfigureAwait(false);
var ret = new AgvResultObject
{
Code = "0",
Message = "OK",
ReqCode = job.CoatingRequestNumber,
};
using var unitOfWork = _unitOfWorkManager.Begin();
try
@ -833,8 +808,8 @@ public class CoatingIssueJobAppService
{
errors.Add($"任务号{string.Join(",", numbers)}不存在!");
}
var dtos = ObjectMapper.Map<List<CoatingIssueJob>, List<CoatingIssueJobDTO>>(entities);
foreach (var itm in dtos)
{
var arys = jobs.Where(p => p.OrderNum == itm.Number);
@ -842,7 +817,6 @@ public class CoatingIssueJobAppService
var details = new List<CoatingIssueJobDetailDTO>();
foreach (var detail in arys)
{
var fromloc = await _postionLocationAppService.GetByCodeAsync(detail.BeginPosition).ConfigureAwait(false);
if (fromloc == null)
{
@ -878,15 +852,20 @@ public class CoatingIssueJobAppService
errors.Add($"结束点{detail.EndPosition}库位没查到");
}
var item = await _itemBasicAppService.GetByCodeAsync(detail.MatCode).ConfigureAwait(false);
if (item == null)
{
errors.Add($"零件号{detail.MatCode}不存在!");
}
var entity = itmDetails.FirstOrDefault(p => p.ItemCode == detail.MatCode);
if (entity == null)
{
errors.Add($"物料号{detail.MatCode}不在任务明细内!");
errors.Add($"零件号{detail.MatCode}不在任务明细内!");
}
if (errors.Count > 0)
{
await unitOfWork.RollbackAsync().ConfigureAwait(false);
return ret = new AgvResultObject()
{
Code = "-1",
@ -894,10 +873,9 @@ public class CoatingIssueJobAppService
Message = string.Join(",", errors.ToArray())
};
}
var dto = new CoatingIssueJobDetailDTO();
dto.InjectFrom(entity);
dto.HandledToLocationCode = toloc.Code;
dto.HandledToLocationCode = tolocation.Code;
dto.HandledToLocationGroup = tolocation.LocationGroupCode;
dto.HandledToLocationArea = tolocation.AreaCode;
dto.HandledToLocationErpCode = tolocation.ErpLocationCode;
@ -913,19 +891,17 @@ public class CoatingIssueJobAppService
dto.HandledFromLocationArea = fromlocation.AreaCode;
dto.HandledFromLocationErpCode = fromlocation.ErpLocationCode;
dto.HandledFromQty = detail.MatQty;
dto.HandledFromLot = string.Empty;
dto.HandledFromLot = !string.IsNullOrEmpty(detail.BatchAttr07) ? detail.BatchAttr07 : string.Empty;
dto.HandledFromPackingCode = string.Empty;
details.Add(dto);
//await ExecuteDetailExtAsync(itm.Id, entity.Id, dto).ConfigureAwait(false);
}
if (errors.Count > 0)
{
await unitOfWork.RollbackAsync().ConfigureAwait(false);
ret = new AgvResultObject()
{
Code = "-1",
@ -950,9 +926,9 @@ public class CoatingIssueJobAppService
{
Code = "-1",
ReqCode = job.CoatingRequestNumber,
Message = ex.Message,
Message = ex.Message
};
await unitOfWork.RollbackAsync();
await unitOfWork.RollbackAsync().ConfigureAwait(false);
return ret;
}
@ -968,6 +944,77 @@ public class CoatingIssueJobAppService
return ret;
}
/// <summary>
/// 调用Agv接口实现
/// </summary>
/// <param name="job"></param>
/// <returns></returns>
private async Task<AgvResultObject> SendInterFaceAsync(CoatingIssueJobDTO job)
{
#if DEBUG
#endif
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 AgvRequest();
request.MatCode = first.ItemCode;
request.MatQty = first.HandledToQty;
request.OrderNum = job.Number;
request.OrderType = EnumJobType.CoatingIssueJob.ToString();
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.PushOutTask4FWAsync(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;
}

197
be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Jobs/IssueJobs/InjectionIssueJobs/InjectionIssueJobAppService.cs

@ -17,6 +17,7 @@ using Volo.Abp;
using Volo.Abp.ObjectMapping;
using Volo.Abp.Uow;
using Volo.Abp.Users;
using Win_in.Sfs.Basedata.Application;
using Win_in.Sfs.Basedata.Application.Contracts;
using Win_in.Sfs.Shared.Domain.Shared;
using Win_in.Sfs.Shared.Domain.Shared.Enums.Store;
@ -50,6 +51,7 @@ public class InjectionIssueJobAppService
private readonly IOptions<AgvOptions> _agvOptions;
private readonly IPostionLocationAppService _postionLocationAppService;
private readonly ILogger<InjectionIssueJobAppService> _logger;
private readonly IItemBasicAppService _itemBasicAppService;
protected IInjectionIssueRequestAppService InjectionIssueRequestAppService =>
@ -64,6 +66,7 @@ public class InjectionIssueJobAppService
, IOptions<RestoOptions> options, ITransferLibRequestAppService transferLibRequestAppService, ICurrentUser currentUser
, IOptions<AgvOptions> agvOptions
, UnitOfWorkManager unitOfWorkManager
, IItemBasicAppService itemBasicAppService
) : base(
repository, injectionIssueJobManager)
{
@ -79,6 +82,7 @@ public class InjectionIssueJobAppService
_unitOfWorkManager = unitOfWorkManager;
_agvOptions = agvOptions;
_logger = logger;
_itemBasicAppService = itemBasicAppService;
}
[HttpPost("get-by-number-2")]
public async Task<InjectionIssueJobDTO> GetByNumber2Async(string number)
@ -686,70 +690,48 @@ public class InjectionIssueJobAppService
injectionIssueJobDetailDto.Status, injectionIssueJobDetailDto.HandledToLot,
handledToQty).ConfigureAwait(false);
}
[HttpPost("PushOutTask")]
public async Task<AgvResultObject> PushOutTaskAsync(InjectionIssueJobDTO job)
/// <summary>
/// 调用 Agv 接口
/// </summary>
/// <param name="input"></param>
/// <param name="pLoc"></param>
/// <param name="uid"></param>
/// <returns></returns>
[HttpPost("call-agv")]
public async Task<ReusltObject> CallAgvAsync(InjectionIssueJobDTO input)
{
var ret = new AgvResultObject
var res = new ReusltObject();
List<string> errors = new List<string>();
List<string> successList = new List<string>();
var jobres = await SendInterFaceAsync(input).ConfigureAwait(false);
if (jobres.Code != "0")
{
Code = "0",
ReqCode = job.InjectionRequestNumber,
Message = "OK"
};
using var unitOfWork = _unitOfWorkManager.Begin();
try
_logger.LogInformation(jobres.Message);
errors.Add(jobres.Message);
}
else
{
var first = job.Details.FirstOrDefault();
var request = new AgvRequest();
request.MatCode = first.ItemCode;
request.MatQty = first.HandledToQty;
request.OrderNum = job.Number;
request.OrderType =EnumJobType.InjectionIssueJob.ToString();
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");
// _logger.LogInformation($"标志{flag}开始调用高通WMS:传递值{JsonSerializer.Serialize(main)}");
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.PushOutTask4FWAsync(request).ConfigureAwait(false);
successList.Add(jobres.Message);
}
catch (Exception e)
if (errors.Count > 0)
{
ret = new AgvResultObject();
ret.Code = "1";
ret.Message = e.Message;
ret.ReqCode = job.InjectionRequestNumber;
await unitOfWork.RollbackAsync().ConfigureAwait(false);
res.Code = -1;
res.Message = string.Join(",", errors);
res.Data = "";
return res;
}
return ret;
return res;
}
[HttpPost("accountOutOrder")]
/// <summary>
/// Agv 回调 接口
/// </summary>
/// <param name="request"></param>
/// <returns></returns>
[HttpPost("call-back-agv")]
public async Task<AgvResultObject> CallBackAgvAsync(AgvRequestDto request)
{
var json = JsonSerializer.Serialize(request);
@ -760,13 +742,11 @@ public class InjectionIssueJobAppService
var errors = new List<string>();
var first = request.Data.FirstOrDefault();
var job = await _repository.GetAsync(p => p.Number == first.OrderNum).ConfigureAwait(false);
var ret = new AgvResultObject
{
Code = "0",
Message = "OK",
ReqCode = job.InjectionRequestNumber,
};
using var unitOfWork = _unitOfWorkManager.Begin();
try
@ -782,8 +762,8 @@ public class InjectionIssueJobAppService
{
errors.Add($"任务号{string.Join(",", numbers)}不存在!");
}
var dtos = ObjectMapper.Map<List<InjectionIssueJob>, List<InjectionIssueJobDTO>>(entities);
foreach (var itm in dtos)
{
var arys = jobs.Where(p => p.OrderNum == itm.Number);
@ -791,7 +771,6 @@ public class InjectionIssueJobAppService
var details = new List<InjectionIssueJobDetailDTO>();
foreach (var detail in arys)
{
var fromloc = await _postionLocationAppService.GetByCodeAsync(detail.BeginPosition).ConfigureAwait(false);
if (fromloc == null)
{
@ -827,14 +806,20 @@ public class InjectionIssueJobAppService
errors.Add($"结束点{detail.EndPosition}库位没查到");
}
var item = await _itemBasicAppService.GetByCodeAsync(detail.MatCode).ConfigureAwait(false);
if (item == null)
{
errors.Add($"零件号{detail.MatCode}不存在!");
}
var entity = itmDetails.FirstOrDefault(p => p.ItemCode == detail.MatCode);
if (entity == null)
{
errors.Add($"物料号{detail.MatCode}不在任务明细内!");
errors.Add($"零件号{detail.MatCode}不在任务明细内!");
}
if (errors.Count > 0)
{
await unitOfWork.RollbackAsync().ConfigureAwait(false);
return ret = new AgvResultObject()
{
Code = "-1",
@ -844,7 +829,7 @@ public class InjectionIssueJobAppService
}
var dto = new InjectionIssueJobDetailDTO();
dto.InjectFrom(entity);
dto.HandledToLocationCode = toloc.Code;
dto.HandledToLocationCode = tolocation.Code;
dto.HandledToLocationGroup = tolocation.LocationGroupCode;
dto.HandledToLocationArea = tolocation.AreaCode;
dto.HandledToLocationErpCode = tolocation.ErpLocationCode;
@ -860,19 +845,17 @@ public class InjectionIssueJobAppService
dto.HandledFromLocationArea = fromlocation.AreaCode;
dto.HandledFromLocationErpCode = fromlocation.ErpLocationCode;
dto.HandledFromQty = detail.MatQty;
dto.HandledFromLot = string.Empty;
dto.HandledFromLot = !string.IsNullOrEmpty(detail.BatchAttr07) ? detail.BatchAttr07 : string.Empty;
dto.HandledFromPackingCode = string.Empty;
details.Add(dto);
//await ExecuteDetailExtAsync(itm.Id, entity.Id, dto).ConfigureAwait(false);
}
if (errors.Count > 0)
{
await unitOfWork.RollbackAsync().ConfigureAwait(false);
ret = new AgvResultObject()
{
Code = "-1",
@ -897,9 +880,9 @@ public class InjectionIssueJobAppService
{
Code = "-1",
ReqCode = job.InjectionRequestNumber,
Message = ex.Message,
Message = ex.Message
};
await unitOfWork.RollbackAsync();
await unitOfWork.RollbackAsync().ConfigureAwait(false);
return ret;
}
@ -915,6 +898,82 @@ public class InjectionIssueJobAppService
return ret;
}
/// <summary>
/// 调用Agv接口实现
/// </summary>
/// <param name="job"></param>
/// <returns></returns>
private async Task<AgvResultObject> SendInterFaceAsync(InjectionIssueJobDTO job)
{
#if DEBUG
#endif
var ret = new AgvResultObject
{
Code = "0",
ReqCode = job.InjectionRequestNumber,
Message = "OK"
};
using var unitOfWork = _unitOfWorkManager.Begin();
try
{
var first = job.Details.FirstOrDefault();
var request = new AgvRequest();
request.MatCode = first.ItemCode;
request.MatQty = first.HandledToQty;
request.OrderNum = job.Number;
request.OrderType = EnumJobType.InjectionIssueJob.ToString();
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.PushOutTask4FWAsync(request).ConfigureAwait(false);
}
catch (Exception e)
{
ret = new AgvResultObject();
ret.Code = "1";
ret.Message = e.Message;
ret.ReqCode = job.InjectionRequestNumber;
await unitOfWork.RollbackAsync().ConfigureAwait(false);
throw new UserFriendlyException($"接口报错 错误信息{e.Message}");
}
return ret;
}
#endregion
}

194
be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Jobs/IssueJobs/KittingIssueJobs/KittingIssueJobAppService.cs

@ -17,6 +17,7 @@ using Volo.Abp;
using Volo.Abp.ObjectMapping;
using Volo.Abp.Uow;
using Volo.Abp.Users;
using Win_in.Sfs.Basedata.Application;
using Win_in.Sfs.Basedata.Application.Contracts;
using Win_in.Sfs.Shared.Domain.Shared;
using Win_in.Sfs.Shared.Domain.Shared.Enums.Store;
@ -51,6 +52,7 @@ public class KittingIssueJobAppService
private readonly IOptions<AgvOptions> _agvOptions;
private readonly IPostionLocationAppService _postionLocationAppService;
private readonly ILogger<KittingIssueJobAppService> _logger;
private readonly IItemBasicAppService _itemBasicAppService;
protected IKittingIssueRequestAppService KittingIssueRequestAppService =>
LazyServiceProvider.LazyGetRequiredService<IKittingIssueRequestAppService>();
@ -61,7 +63,7 @@ public class KittingIssueJobAppService
ILocationAppService locationAppService,
IKittingIssueNoteAppService kittingIssueNoteAppService, IExpectOutAppService expectOutAppService, ILogger<KittingIssueJobAppService> logger
, IHttpClientFactory httpClientFactory
, IOptions<RestoOptions> options, ITransferLibRequestAppService transferLibRequestAppService, ICurrentUser currentUser
, IOptions<RestoOptions> options, ITransferLibRequestAppService transferLibRequestAppService, ICurrentUser currentUser, IItemBasicAppService itemBasicAppService
,IOptions<AgvOptions> agvOptions,
@ -81,6 +83,7 @@ public class KittingIssueJobAppService
_agvOutJob = agvOutJob;
_unitOfWorkManager = unitOfWorkManager;
_agvOptions = agvOptions;
_itemBasicAppService = itemBasicAppService;
}
[HttpPost("get-by-number-2")]
@ -698,70 +701,46 @@ public class KittingIssueJobAppService
kittingIssueJobDetailDto.Status, kittingIssueJobDetailDto.HandledToLot,
handledToQty).ConfigureAwait(false);
}
[HttpPost("PushOutTask")]
public async Task<AgvResultObject> PushOutTaskAsync(KittingIssueJobDTO job)
/// <summary>
/// 调用 Agv 接口
/// </summary>
/// <param name="input"></param>
/// <param name="pLoc"></param>
/// <param name="uid"></param>
/// <returns></returns>
[HttpPost("call-agv")]
public async Task<ReusltObject> CallAgvAsync(KittingIssueJobDTO input)
{
var ret = new AgvResultObject
var res = new ReusltObject();
List<string> errors = new List<string>();
List<string> successList = new List<string>();
var jobres = await SendInterFaceAsync(input).ConfigureAwait(false);
if (jobres.Code != "0")
{
Code = "0",
ReqCode = job.KittingRequestNumber,
Message = "OK"
};
using var unitOfWork = _unitOfWorkManager.Begin();
try
_logger.LogInformation(jobres.Message);
errors.Add(jobres.Message);
}
else
{
var first = job.Details.FirstOrDefault();
var request = new AgvRequest();
request.MatCode = first.ItemCode;
request.MatQty = first.HandledToQty;
request.OrderNum = job.Number;
request.OrderType = EnumJobType.KittingIssueJob.ToString();
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");
// _logger.LogInformation($"标志{flag}开始调用高通WMS:传递值{JsonSerializer.Serialize(main)}");
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.PushOutTask4FWAsync(request).ConfigureAwait(false);
successList.Add(jobres.Message);
}
catch (Exception e)
if (errors.Count > 0)
{
ret = new AgvResultObject();
ret.Code = "1";
ret.Message = e.Message;
ret.ReqCode = job.KittingRequestNumber;
await unitOfWork.RollbackAsync().ConfigureAwait(false);
res.Code = -1;
res.Message = string.Join(",", errors);
res.Data = "";
return res;
}
return ret;
return res;
}
[HttpPost("accountOutOrder")]
/// <summary>
/// Agv 回调 接口
/// </summary>
/// <param name="request"></param>
/// <returns></returns>
[HttpPost("call-back-agv")]
public async Task<AgvResultObject> CallBackAgvAsync(AgvRequestDto request)
{
var json = JsonSerializer.Serialize(request);
@ -772,13 +751,11 @@ public class KittingIssueJobAppService
var errors = new List<string>();
var first = request.Data.FirstOrDefault();
var job = await _repository.GetAsync(p => p.Number == first.OrderNum).ConfigureAwait(false);
var ret = new AgvResultObject
{
Code = "0",
Message = "OK",
ReqCode = job.KittingRequestNumber,
};
using var unitOfWork = _unitOfWorkManager.Begin();
try
@ -794,8 +771,8 @@ public class KittingIssueJobAppService
{
errors.Add($"任务号{string.Join(",", numbers)}不存在!");
}
var dtos = ObjectMapper.Map<List<KittingIssueJob>, List<KittingIssueJobDTO>>(entities);
foreach (var itm in dtos)
{
var arys = jobs.Where(p => p.OrderNum == itm.Number);
@ -803,7 +780,6 @@ public class KittingIssueJobAppService
var details = new List<KittingIssueJobDetailDTO>();
foreach (var detail in arys)
{
var fromloc = await _postionLocationAppService.GetByCodeAsync(detail.BeginPosition).ConfigureAwait(false);
if (fromloc == null)
{
@ -839,15 +815,20 @@ public class KittingIssueJobAppService
errors.Add($"结束点{detail.EndPosition}库位没查到");
}
var item = await _itemBasicAppService.GetByCodeAsync(detail.MatCode).ConfigureAwait(false);
if (item == null)
{
errors.Add($"零件号{detail.MatCode}不存在!");
}
var entity = itmDetails.FirstOrDefault(p => p.ItemCode == detail.MatCode);
if (entity == null)
{
errors.Add($"物料号{detail.MatCode}不在任务明细内!");
errors.Add($"零件号{detail.MatCode}不在任务明细内!");
}
if (errors.Count > 0)
{
await unitOfWork.RollbackAsync().ConfigureAwait(false);
return ret = new AgvResultObject()
{
Code = "-1",
@ -855,11 +836,9 @@ public class KittingIssueJobAppService
Message = string.Join(",", errors.ToArray())
};
}
var dto = new KittingIssueJobDetailDTO();
dto.InjectFrom(entity);
dto.HandledToLocationCode = toloc.Code;
dto.HandledToLocationCode = tolocation.Code;
dto.HandledToLocationGroup = tolocation.LocationGroupCode;
dto.HandledToLocationArea = tolocation.AreaCode;
dto.HandledToLocationErpCode = tolocation.ErpLocationCode;
@ -875,19 +854,17 @@ public class KittingIssueJobAppService
dto.HandledFromLocationArea = fromlocation.AreaCode;
dto.HandledFromLocationErpCode = fromlocation.ErpLocationCode;
dto.HandledFromQty = detail.MatQty;
dto.HandledFromLot = string.Empty;
dto.HandledFromLot = !string.IsNullOrEmpty(detail.BatchAttr07) ? detail.BatchAttr07 : string.Empty;
dto.HandledFromPackingCode = string.Empty;
details.Add(dto);
//await ExecuteDetailExtAsync(itm.Id, entity.Id, dto).ConfigureAwait(false);
}
if (errors.Count > 0)
{
await unitOfWork.RollbackAsync().ConfigureAwait(false);
ret = new AgvResultObject()
{
Code = "-1",
@ -912,9 +889,9 @@ public class KittingIssueJobAppService
{
Code = "-1",
ReqCode = job.KittingRequestNumber,
Message = ex.Message,
Message = ex.Message
};
await unitOfWork.RollbackAsync();
await unitOfWork.RollbackAsync().ConfigureAwait(false);
return ret;
}
@ -930,6 +907,77 @@ public class KittingIssueJobAppService
return ret;
}
/// <summary>
/// 调用Agv接口实现
/// </summary>
/// <param name="job"></param>
/// <returns></returns>
private async Task<AgvResultObject> SendInterFaceAsync(KittingIssueJobDTO job)
{
#if DEBUG
#endif
var ret = new AgvResultObject
{
Code = "0",
ReqCode = job.KittingRequestNumber,
Message = "OK"
};
using var unitOfWork = _unitOfWorkManager.Begin();
try
{
var first = job.Details.FirstOrDefault();
var request = new AgvRequest();
request.MatCode = first.ItemCode;
request.MatQty = first.HandledToQty;
request.OrderNum = job.Number;
request.OrderType = EnumJobType.KittingIssueJob.ToString();
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.PushOutTask4FWAsync(request).ConfigureAwait(false);
}
catch (Exception e)
{
ret = new AgvResultObject();
ret.Code = "1";
ret.Message = e.Message;
ret.ReqCode = job.KittingRequestNumber;
await unitOfWork.RollbackAsync().ConfigureAwait(false);
throw new UserFriendlyException($"接口报错 错误信息{e.Message}");
}
return ret;
}
#endregion
}

193
be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Jobs/IssueJobs/SparePartIssueJobs/SparePartIssueJobAppService.cs

@ -17,6 +17,7 @@ using Volo.Abp;
using Volo.Abp.ObjectMapping;
using Volo.Abp.Uow;
using Volo.Abp.Users;
using Win_in.Sfs.Basedata.Application;
using Win_in.Sfs.Basedata.Application.Contracts;
using Win_in.Sfs.Shared.Domain.Shared;
using Win_in.Sfs.Shared.Domain.Shared.Enums.Store;
@ -50,6 +51,7 @@ public class SparePartIssueJobAppService
private readonly IOptions<AgvOptions> _agvOptions;
private readonly IPostionLocationAppService _postionLocationAppService;
private readonly ILogger<SparePartIssueJobAppService> _logger;
private readonly IItemBasicAppService _itemBasicAppService;
protected ISparePartIssueRequestAppService SparePartIssueRequestAppService =>
LazyServiceProvider.LazyGetRequiredService<ISparePartIssueRequestAppService>();
@ -61,7 +63,7 @@ public class SparePartIssueJobAppService
ISparePartIssueNoteAppService sparePartIssueNoteAppService, IExpectOutAppService expectOutAppService
, IHttpClientFactory httpClientFactory
, IOptions<RestoOptions> options, ITransferLibRequestAppService transferLibRequestAppService, ICurrentUser currentUser, ILogger<SparePartIssueJobAppService> logger
, UnitOfWorkManager unitOfWorkManager, IOptions<AgvOptions> agvOptions
, UnitOfWorkManager unitOfWorkManager, IOptions<AgvOptions> agvOptions, IItemBasicAppService itemBasicAppService
) : base(
repository, sparePartIssueJobManager)
{
@ -77,6 +79,7 @@ public class SparePartIssueJobAppService
_unitOfWorkManager = unitOfWorkManager;
_agvOptions = agvOptions;
_logger = logger;
_itemBasicAppService = itemBasicAppService;
}
[HttpPost("get-by-number-2")]
@ -676,69 +679,46 @@ public class SparePartIssueJobAppService
handledToQty).ConfigureAwait(false);
}
[HttpPost("PushOutTask")]
public async Task<AgvResultObject> PushOutTaskAsync(SparePartIssueJobDTO job)
/// <summary>
/// 调用 Agv 接口
/// </summary>
/// <param name="input"></param>
/// <param name="pLoc"></param>
/// <param name="uid"></param>
/// <returns></returns>
[HttpPost("call-agv")]
public async Task<ReusltObject> CallAgvAsync(SparePartIssueJobDTO input)
{
var ret = new AgvResultObject
var res = new ReusltObject();
List<string> errors = new List<string>();
List<string> successList = new List<string>();
var jobres = await SendInterFaceAsync(input).ConfigureAwait(false);
if (jobres.Code != "0")
{
Code = "0",
ReqCode = job.SparePartRequestNumber,
Message = "OK"
};
using var unitOfWork = _unitOfWorkManager.Begin();
try
_logger.LogInformation(jobres.Message);
errors.Add(jobres.Message);
}
else
{
var first = job.Details.FirstOrDefault();
var request = new AgvRequest();
request.MatCode = first.ItemCode;
request.MatQty = first.HandledToQty;
request.OrderNum = job.Number;
request.OrderType = EnumJobType.SparePartIssueJob.ToString();
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");
// _logger.LogInformation($"标志{flag}开始调用高通WMS:传递值{JsonSerializer.Serialize(main)}");
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.PushOutTask4FWAsync(request).ConfigureAwait(false);
successList.Add(jobres.Message);
}
catch (Exception e)
if (errors.Count > 0)
{
ret = new AgvResultObject();
ret.Code = "1";
ret.Message = e.Message;
ret.ReqCode = job.SparePartRequestNumber;
await unitOfWork.RollbackAsync().ConfigureAwait(false);
res.Code = -1;
res.Message = string.Join(",", errors);
res.Data = "";
return res;
}
return ret;
return res;
}
[HttpPost("accountOutOrder")]
/// <summary>
/// Agv 回调 接口
/// </summary>
/// <param name="request"></param>
/// <returns></returns>
[HttpPost("call-back-agv")]
public async Task<AgvResultObject> CallBackAgvAsync(AgvRequestDto request)
{
var json = JsonSerializer.Serialize(request);
@ -749,13 +729,11 @@ public class SparePartIssueJobAppService
var errors = new List<string>();
var first = request.Data.FirstOrDefault();
var job = await _repository.GetAsync(p => p.Number == first.OrderNum).ConfigureAwait(false);
var ret = new AgvResultObject
{
Code = "0",
Message = "OK",
ReqCode = job.SparePartRequestNumber,
};
using var unitOfWork = _unitOfWorkManager.Begin();
try
@ -771,8 +749,8 @@ public class SparePartIssueJobAppService
{
errors.Add($"任务号{string.Join(",", numbers)}不存在!");
}
var dtos = ObjectMapper.Map<List<SparePartIssueJob>, List<SparePartIssueJobDTO>>(entities);
foreach (var itm in dtos)
{
var arys = jobs.Where(p => p.OrderNum == itm.Number);
@ -780,7 +758,6 @@ public class SparePartIssueJobAppService
var details = new List<SparePartIssueJobDetailDTO>();
foreach (var detail in arys)
{
var fromloc = await _postionLocationAppService.GetByCodeAsync(detail.BeginPosition).ConfigureAwait(false);
if (fromloc == null)
{
@ -816,14 +793,20 @@ public class SparePartIssueJobAppService
errors.Add($"结束点{detail.EndPosition}库位没查到");
}
var item = await _itemBasicAppService.GetByCodeAsync(detail.MatCode).ConfigureAwait(false);
if (item == null)
{
errors.Add($"零件号{detail.MatCode}不存在!");
}
var entity = itmDetails.FirstOrDefault(p => p.ItemCode == detail.MatCode);
if (entity == null)
{
errors.Add($"物料号{detail.MatCode}不在任务明细内!");
errors.Add($"零件号{detail.MatCode}不在任务明细内!");
}
if (errors.Count > 0)
{
await unitOfWork.RollbackAsync().ConfigureAwait(false);
return ret = new AgvResultObject()
{
Code = "-1",
@ -831,12 +814,9 @@ public class SparePartIssueJobAppService
Message = string.Join(",", errors.ToArray())
};
}
var dto = new SparePartIssueJobDetailDTO();
dto.InjectFrom(entity);
dto.HandledToLocationCode = toloc.Code;
dto.HandledToLocationCode = tolocation.Code;
dto.HandledToLocationGroup = tolocation.LocationGroupCode;
dto.HandledToLocationArea = tolocation.AreaCode;
dto.HandledToLocationErpCode = tolocation.ErpLocationCode;
@ -852,19 +832,17 @@ public class SparePartIssueJobAppService
dto.HandledFromLocationArea = fromlocation.AreaCode;
dto.HandledFromLocationErpCode = fromlocation.ErpLocationCode;
dto.HandledFromQty = detail.MatQty;
dto.HandledFromLot = string.Empty;
dto.HandledFromLot = !string.IsNullOrEmpty(detail.BatchAttr07) ? detail.BatchAttr07 : string.Empty;
dto.HandledFromPackingCode = string.Empty;
details.Add(dto);
//await ExecuteDetailExtAsync(itm.Id, entity.Id, dto).ConfigureAwait(false);
}
if (errors.Count > 0)
{
await unitOfWork.RollbackAsync().ConfigureAwait(false);
ret = new AgvResultObject()
{
Code = "-1",
@ -889,9 +867,9 @@ public class SparePartIssueJobAppService
{
Code = "-1",
ReqCode = job.SparePartRequestNumber,
Message = ex.Message,
Message = ex.Message
};
await unitOfWork.RollbackAsync();
await unitOfWork.RollbackAsync().ConfigureAwait(false);
return ret;
}
@ -907,6 +885,77 @@ public class SparePartIssueJobAppService
return ret;
}
/// <summary>
/// 调用Agv接口实现
/// </summary>
/// <param name="job"></param>
/// <returns></returns>
private async Task<AgvResultObject> SendInterFaceAsync(SparePartIssueJobDTO job)
{
#if DEBUG
#endif
var ret = new AgvResultObject
{
Code = "0",
ReqCode = job.SparePartRequestNumber,
Message = "OK"
};
using var unitOfWork = _unitOfWorkManager.Begin();
try
{
var first = job.Details.FirstOrDefault();
var request = new AgvRequest();
request.MatCode = first.ItemCode;
request.MatQty = first.HandledToQty;
request.OrderNum = job.Number;
request.OrderType = EnumJobType.SparePartIssueJob.ToString();
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.PushOutTask4FWAsync(request).ConfigureAwait(false);
}
catch (Exception e)
{
ret = new AgvResultObject();
ret.Code = "1";
ret.Message = e.Message;
ret.ReqCode = job.SparePartRequestNumber;
await unitOfWork.RollbackAsync().ConfigureAwait(false);
throw new UserFriendlyException($"接口报错 错误信息{e.Message}");
}
return ret;
}
#endregion
}

4
build/src/docker/publish/conf/settings/appsettings.Development.json

@ -15,14 +15,14 @@
"AgvOptions": {
"Address": "http://dev.ccwin-in.com:60084/",
"Address": "http://localhost:59094/",
//
"UserName": "",
//
"Password": "",
//
"Token": "",
"Path": "Cargostate/pushOutTask4FW"
"Path": "Test/pushOutTask4FW"
},

Loading…
Cancel
Save