Browse Source

添加AGV发货接口和DTO

Agv分支2024-11-19
赵新宇 5 months ago
parent
commit
6838a011e8
  1. 16
      be/Modules/BaseData/src/Win_in.Sfs.Basedata.Application/test/TestAppService.cs
  2. 63
      be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Jobs/IssueJobs/AgvJobs/DTOS/AgvDto.cs
  3. 6
      be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Jobs/IssueJobs/AgvJobs/IAgvJobInputService.cs
  4. 4
      be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Jobs/IssueJobs/AgvJobs/IAgvJobOutputService.cs
  5. 1
      be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Win_in.Sfs.Wms.Store.Application.Contracts.csproj
  6. 2
      be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Jobs/IssueJobs/AgvJobs/AgvJobInputService.cs
  7. 130
      be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Jobs/IssueJobs/AgvJobs/AgvJobOutputService.cs
  8. 37
      be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Jobs/IssueJobs/AssembleIssueJobs/AssembleIssueJobAppService.cs
  9. 25
      be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Jobs/IssueJobs/CoatingIssueJobs/CoatingIssueJobAppService.cs
  10. 21
      be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Jobs/IssueJobs/InjectionIssueJobs/InjectionIssueJobAppService.cs
  11. 25
      be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Jobs/IssueJobs/KittingIssueJobs/KittingIssueJobAppService.cs
  12. 22
      be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Jobs/IssueJobs/SparePartIssueJobs/SparePartIssueJobAppService.cs
  13. 64
      be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Jobs/IssueJobs/proxy/AgvJobClient.cs
  14. 1
      be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/StoreApplicationModule.cs
  15. 25
      be/Modules/Store/src/Win_in.Sfs.Wms.Store.Domain/Options/RestoOptions.cs

16
be/Modules/BaseData/src/Win_in.Sfs.Basedata.Application/test/TestAppService.cs

@ -183,6 +183,7 @@ public class AgvResultObject
public string Message { set; get; }
public string ReqCode { set; get; }
}
#region AGV
public class AgvRequestHK
{
[Display(Name ="请求编号")]
@ -191,6 +192,19 @@ public class AgvRequestHK
public List<AgvRequestHKDetail> Data { set; get; }
}
public class AgvRequestInputHK
{
//[Display(Name = "请求编号")]
//public string ReqCode { set; get; }
[Display(Name = "明细")]
public List<AgvRequestHKDetail> Data { set; get; }
}
public class AgvRequestHKDetail
{
[Display(Name = "任务类型")]
@ -244,7 +258,7 @@ public class AgvRequest
public string EndPosition { set; get; }
}
#endregion

63
be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Jobs/IssueJobs/AgvJobs/AgvDto.cs → be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Jobs/IssueJobs/AgvJobs/DTOS/AgvDto.cs

@ -5,7 +5,7 @@ using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Win_in.Sfs.Wms.Store.Jobs.IssueJobs.AgvServices;
namespace Win_in.Sfs.Wms.Store.Application.Contracts;
/// <summary>
/// 海康调闻荫入参数
/// </summary>
@ -57,20 +57,59 @@ public class AgvRequestHKDetail
/// <summary>
/// 闻荫调海康入参
/// </summary>
public class AgvRequest
[System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "14.2.0.0 (NJsonSchema v11.1.0.0 (Newtonsoft.Json v13.0.0.0))")]
public partial class AgvRequest
{
[Display(Name = "任务类型")]
public string OrderType { set; get; }
[Display(Name = "任务编号")]
public string OrderNum { set; get; }
[Display(Name = "物料编号")]
public string MatCode { set; get; }
[Display(Name = "物料数量")]
public string MatQty { set; get; }
[Display(Name = "目标工位")]
public string EndPosition { set; get; }
/// <summary>
/// 任务类型
/// </summary>
[System.Text.Json.Serialization.JsonPropertyName("orderType")]
public string OrderType { get; set; }
/// <summary>
/// 任务编号
/// </summary>
[System.Text.Json.Serialization.JsonPropertyName("orderNum")]
public string OrderNum { get; set; }
/// <summary>
/// 物料编号
/// </summary>
[System.Text.Json.Serialization.JsonPropertyName("matCode")]
public string MatCode { get; set; }
/// <summary>
/// 物料数量
/// </summary>
[System.Text.Json.Serialization.JsonPropertyName("matQty")]
public decimal MatQty { get; set; }
/// <summary>
/// 目标工位
/// </summary>
[System.Text.Json.Serialization.JsonPropertyName("endPosition")]
public string EndPosition { get; set; }
}
[System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "14.2.0.0 (NJsonSchema v11.1.0.0 (Newtonsoft.Json v13.0.0.0))")]
public partial class AgvResultObject
{
[System.Text.Json.Serialization.JsonPropertyName("code")]
public string Code { get; set; }
[System.Text.Json.Serialization.JsonPropertyName("message")]
public string Message { get; set; }
[System.Text.Json.Serialization.JsonPropertyName("reqCode")]
public string ReqCode { get; set; }
}

6
be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Jobs/IssueJobs/AgvJobs/IAgvJobInputService.cs

@ -6,7 +6,11 @@ using System.Threading.Tasks;
using Volo.Abp;
using Volo.Abp.Application.Services;
namespace Win_in.Sfs.Wms.Store.Jobs.IssueJobs.AgvServices;
namespace Win_in.Sfs.Wms.Store.Application.Contracts;
public interface AgvJobOutputService: IApplicationService
{
Task<AgvResultObject> OutTaskAsync(AgvRequest request);
}

4
be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Jobs/IssueJobs/AgvJobs/IAgvJobOutputService.cs

@ -5,8 +5,8 @@ using System.Text;
using System.Threading.Tasks;
using Volo.Abp.Application.Services;
namespace Win_in.Sfs.Wms.Store.Jobs.IssueJobs.AgvServices;
namespace Win_in.Sfs.Wms.Store.Application.Contracts;
public interface IAgvJobOutputService:IApplicationService
{
Task<AgvResultObject> OutPutTaskAsync(AgvRequest request);
}

1
be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Win_in.Sfs.Wms.Store.Application.Contracts.csproj

@ -45,7 +45,6 @@
</ItemGroup>
<ItemGroup>
<Folder Include="Jobs\IssueJobs\AgvJobs\DTOS\" />
<Folder Include="Orders" />
<Folder Include="Requests\MaterialRequests\" />
</ItemGroup>

2
be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Jobs/IssueJobs/AgvJobs/AgvJobInputService.cs

@ -22,7 +22,7 @@ namespace Win_in.Sfs.Wms.Store.Jobs.IssueJobs.AgvServices;
[AllowAnonymous]
[Route($"{StoreConsts.RootPath}agv-job-out")]
public class AgvJobOutput:ApplicationService
public class AgvJobInputService:ApplicationService
{

130
be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Jobs/IssueJobs/AgvJobs/AgvJobOutputService.cs

@ -1,10 +1,13 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Net.Http.Headers;
using System.Net.Http;
using System.Text;
using System.Threading.Tasks;
using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Mvc;
using MyNamespace;
using Volo.Abp;
using Volo.Abp.Application.Services;
using Volo.Abp.Uow;
@ -16,12 +19,137 @@ using Win_in.Sfs.Shared.Domain.Shared;
using Win_in.Sfs.Wms.Inventory.Application.Contracts;
using Win_in.Sfs.Wms.Store.Application.Contracts;
using Win_in.Sfs.Wms.Store.Domain.Shared;
using Win_in.Sfs.Wms.Store.Jobs.IssueJobs.proxy;
using Microsoft.Extensions.Options;
using Win_in.Sfs.Wms.Store.Options;
using Microsoft.Extensions.Logging;
using Win_in.Sfs.Shared.Application.Contracts;
namespace Win_in.Sfs.Wms.Store.Jobs.IssueJobs.AgvServices;
[AllowAnonymous]
[Route($"{StoreConsts.RootPath}agv-job-in")]
public class AgvJobInputService : ApplicationService
public class AgvJobOutputService : ApplicationService, IAgvJobOutputService
{
private readonly UnitOfWorkManager _unitOfWorkManager;
private readonly IHttpClientFactory _httpClientFactory;
private readonly IOptions<AgvOptions> _options;
private readonly ILogger<AgvJobOutputService> _logger;
public AgvJobOutputService(
UnitOfWorkManager unitOfWorkManager,
IHttpClientFactory httpClientFactory,
IOptions<AgvOptions> options,
ILogger<AgvJobOutputService> logger
)
{
_logger = logger;
_unitOfWorkManager = unitOfWorkManager;
_httpClientFactory = httpClientFactory;
_options = options;
}
public async Task<AgvResultObject> OutPutTaskAsync<T, TDetail>(T entity) where T : SfsJobDTOBase<TDetail>
where TDetail : SfsDetailDTOBase
{
if (entity is CoatingIssueJobDTO)
{
var coating = entity as CoatingIssueJobDTO;
var first = coating.Details.FirstOrDefault();
var requst = new AgvRequest();
requst.MatCode = first.ItemCode;
requst.MatQty = first.HandledToQty;
requst.OrderNum = entity.Number;
requst.OrderType = "1";
await OutPutTaskAsync(requst).ConfigureAwait(false);
}
else if (entity is AssembleIssueJobDTO)
{
var assemble = entity as AssembleIssueJobDTO;
var first = assemble.Details.FirstOrDefault();
var requst = new AgvRequest();
requst.MatCode = first.ItemCode;
requst.MatQty = first.HandledToQty;
requst.OrderNum = entity.Number;
requst.OrderType = "2";
return await OutPutTaskAsync(requst).ConfigureAwait(false);
}
else if (entity is InjectionIssueJobDTO)
{
var injection = entity as InjectionIssueJobDTO;
var first = injection.Details.FirstOrDefault();
var requst = new AgvRequest();
requst.MatCode = first.ItemCode;
requst.MatQty = first.HandledToQty;
requst.OrderNum = entity.Number;
requst.OrderType = "3";
return await OutPutTaskAsync(requst).ConfigureAwait(false);
}
else if (entity is KittingIssueJobDTO)
{
var kitting = entity as KittingIssueJobDTO;
var first = kitting.Details.FirstOrDefault();
var requst = new AgvRequest();
requst.MatCode = first.ItemCode;
requst.MatQty = first.HandledToQty;
requst.OrderNum = entity.Number;
requst.OrderType = "4";
return await OutPutTaskAsync(requst).ConfigureAwait(false);
}
else if (entity is SparePartIssueJobDTO)
{
var sparePart = entity as SparePartIssueJobDTO;
var first = sparePart.Details.FirstOrDefault();
var requst = new AgvRequest();
requst.MatCode = first.ItemCode;
requst.MatQty = first.HandledToQty;
requst.OrderNum = entity.Number;
requst.OrderType = "1";
await OutPutTaskAsync(requst).ConfigureAwait(false);
}
}
[HttpPost("out-put-task")]
public async Task<AgvResultObject> OutPutTaskAsync(AgvRequest request)
{
var httpclient = _httpClientFactory.CreateClient();
_options.Value.Address = string.IsNullOrEmpty(_options.Value.Address)
? "http://7e42682n64.goho.co:21171/"
: _options.Value.Address; //测试地址
_options.Value.Token =
string.IsNullOrEmpty(_options.Value.Token) ? string.Empty : _options.Value.Token; //测试token
_options.Value.UserName =
string.IsNullOrEmpty(_options.Value.UserName) ? "" : _options.Value.UserName; //测试用户名
_options.Value.Password =
string.IsNullOrEmpty(_options.Value.Password) ? "" : _options.Value.Password; //测试密码
_options.Value.Path = string.IsNullOrEmpty(_options.Value.Path)
? "zozocnApi/custom/receiveProductionPlan"
: _options.Value.Path; //测试密码
var flag = DateTime.Now.ToString("yyyyMMddHHmmss");
// _logger.LogInformation($"标志{flag}开始调用高通WMS:传递值{JsonSerializer.Serialize(main)}");
if (!string.IsNullOrEmpty(_options.Value.Token))
{
var token = _options.Value.Token;
httpclient.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", token);
}
if (!string.IsNullOrEmpty(_options.Value.UserName) && !string.IsNullOrEmpty(_options.Value.Password))
{
var username = _options.Value.UserName;
var password = _options.Value.Password;
httpclient.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Basic",
Convert.ToBase64String(Encoding.ASCII.GetBytes($"{username}:{password}")));
}
var client = new AgvJobClient(_options.Value.Address, httpclient, _options.Value.Path);
var ret = await client.PushOutTask4FWAsync(request).ConfigureAwait(false);
return ret;
}
}

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

@ -14,6 +14,7 @@ using Microsoft.Extensions.Options;
using MyNamespace;
using Omu.ValueInjecter;
using Volo.Abp;
using Volo.Abp.Domain.Entities;
using Volo.Abp.Uow;
using Volo.Abp.Users;
using Win_in.Sfs.Basedata.Application.Contracts;
@ -50,15 +51,22 @@ public class AssembleIssueJobAppService
private readonly ICurrentUser _currentUser;
private readonly UnitOfWorkManager _unitOfWorkManager;
private readonly IAgvJobOutputService _agvOutJob;
public AssembleIssueJobAppService(
ILogger<AssembleIssueJobAppService> logger,
IAgvJobOutputService agvOutJob,
IAssembleIssueJobRepository repository, IAssembleIssueJobManager assembleIssueJobManager,
ILocationAppService locationAppService,
IAssembleIssueNoteAppService assembleIssueNoteAppService, IExpectOutAppService expectOutAppService
, IHttpClientFactory httpClientFactory
, IOptions<RestoOptions> options, ITransferLibRequestAppService transferLibRequestAppService,
,IHttpClientFactory httpClientFactory
,IOptions<RestoOptions> options, ITransferLibRequestAppService transferLibRequestAppService,
ICurrentUser currentUser, UnitOfWorkManager unitOfWorkManager) : base(
repository, assembleIssueJobManager)
repository, assembleIssueJobManager
)
{
_assembleIssueJobManager = assembleIssueJobManager;
_locationAppService = locationAppService;
@ -70,6 +78,8 @@ public class AssembleIssueJobAppService
_currentUser = currentUser;
_unitOfWorkManager = unitOfWorkManager;
_logger = logger;
_agvOutJob = agvOutJob;
}
[HttpPost("get-by-number-2")]
@ -120,6 +130,10 @@ public class AssembleIssueJobAppService
return assembleIssueJobDto;
}
[HttpPost("invalid")]
public override async Task CancelAsync(Guid id)
@ -897,6 +911,23 @@ public class AssembleIssueJobAppService
assembleIssueJobDetailDto.Status, assembleIssueJobDetailDto.HandledToLot,
handledToQty).ConfigureAwait(false);
}
/// <summary>
/// 调用AGV
/// </summary>
/// <param name="job"></param>
/// <returns></returns>
private async Task<AgvResultObject> Completed(AssembleIssueJobDTO job)
{
var assemble = job;
var first = assemble.Details.FirstOrDefault();
var requst = new AgvRequest();
requst.MatCode = first.ItemCode;
requst.MatQty = first.HandledToQty;
requst.OrderNum = assemble.Number;
requst.OrderType = "2";
return await _agvOutJob.OutPutTaskAsync(requst).ConfigureAwait(false);
}
#endregion
}

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

@ -47,13 +47,14 @@ public class CoatingIssueJobAppService
private readonly IOptions<RestoOptions> _options;
private readonly ILogger<CoatingIssueJobAppService> _logger;
private readonly ICurrentUser _currentUser;
private readonly IAgvJobOutputService _agvOutJob;
protected ICoatingIssueRequestAppService CoatingIssueRequestAppService =>
LazyServiceProvider.LazyGetRequiredService<ICoatingIssueRequestAppService>();
public CoatingIssueJobAppService(
ILogger<CoatingIssueJobAppService> logger,
IAgvJobOutputService agvOutJob,
ILogger<CoatingIssueJobAppService> logger,
ICoatingIssueJobRepository repository, ICoatingIssueJobManager coatingIssueJobManager,
ILocationAppService locationAppService,
ICoatingIssueNoteAppService coatingIssueNoteAppService, IExpectOutAppService expectOutAppService
@ -70,6 +71,7 @@ public class CoatingIssueJobAppService
_transferLibRequestAppService = transferLibRequestAppService;
_currentUser = currentUser;
_logger = logger;
_agvOutJob = agvOutJob;
}
[HttpPost("get-by-number-2")]
@ -722,6 +724,25 @@ public class CoatingIssueJobAppService
coatingIssueJobDetailDto.Status, coatingIssueJobDetailDto.HandledToLot,
handledToQty).ConfigureAwait(false);
}
/// <summary>
/// 调用AgvOutPut出库
/// </summary>
/// <param name="job"></param>
/// <returns></returns>
private async Task<AgvResultObject> InvokeAgvOutput(CoatingIssueJob job)
{
var first = job.Details.FirstOrDefault();
var requst = new AgvRequest();
requst.MatCode = first.ItemCode;
requst.MatQty = first.HandledToQty;
requst.OrderNum = job.Number;
requst.OrderType = "2";
return await _agvOutJob.OutPutTaskAsync(requst).ConfigureAwait(false);
}
#endregion
}

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

@ -43,12 +43,14 @@ public class InjectionIssueJobAppService
private readonly ITransferLibRequestAppService _transferLibRequestAppService;
private readonly IOptions<RestoOptions> _options;
private readonly ICurrentUser _currentUser;
private readonly IAgvJobOutputService _agvOutJob;
protected IInjectionIssueRequestAppService InjectionIssueRequestAppService =>
LazyServiceProvider.LazyGetRequiredService<IInjectionIssueRequestAppService>();
public InjectionIssueJobAppService(
IInjectionIssueJobRepository repository, IInjectionIssueJobManager injectionIssueJobManager,
IAgvJobOutputService agvOutJob,
IInjectionIssueJobRepository repository, IInjectionIssueJobManager injectionIssueJobManager,
ILocationAppService locationAppService,
IInjectionIssueNoteAppService injectionIssueNoteAppService, IExpectOutAppService expectOutAppService
, IHttpClientFactory httpClientFactory
@ -63,6 +65,7 @@ public class InjectionIssueJobAppService
_options = options;
_transferLibRequestAppService = transferLibRequestAppService;
_currentUser = currentUser;
_agvOutJob = agvOutJob;
}
[HttpPost("get-by-number-2")]
public async Task<InjectionIssueJobDTO> GetByNumber2Async(string number)
@ -670,6 +673,22 @@ public class InjectionIssueJobAppService
injectionIssueJobDetailDto.Status, injectionIssueJobDetailDto.HandledToLot,
handledToQty).ConfigureAwait(false);
}
/// <summary>
/// 调用AgvOutPut出库
/// </summary>
/// <param name="job"></param>
/// <returns></returns>
private async Task<AgvResultObject> InvokeAgvOutput(InjectionIssueJob job)
{
var first = job.Details.FirstOrDefault();
var requst = new AgvRequest();
requst.MatCode = first.ItemCode;
requst.MatQty = first.HandledToQty;
requst.OrderNum = job.Number;
requst.OrderType = "2";
return await _agvOutJob.OutPutTaskAsync(requst).ConfigureAwait(false);
}
#endregion
}

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

@ -43,18 +43,21 @@ public class KittingIssueJobAppService
private readonly ITransferLibRequestAppService _transferLibRequestAppService;
private readonly IOptions<RestoOptions> _options;
private readonly ICurrentUser _currentUser;
private readonly IAgvJobOutputService _agvOutJob;
protected IKittingIssueRequestAppService KittingIssueRequestAppService =>
LazyServiceProvider.LazyGetRequiredService<IKittingIssueRequestAppService>();
public KittingIssueJobAppService(
IKittingIssueJobRepository repository, IKittingIssueJobManager kittingIssueJobManager,
IAgvJobOutputService agvOutJob,
IKittingIssueJobRepository repository, IKittingIssueJobManager kittingIssueJobManager,
ILocationAppService locationAppService,
IKittingIssueNoteAppService kittingIssueNoteAppService, IExpectOutAppService expectOutAppService
, IHttpClientFactory httpClientFactory
, IOptions<RestoOptions> options, ITransferLibRequestAppService transferLibRequestAppService, ICurrentUser currentUser) : base(
repository, kittingIssueJobManager)
{
_agvOutJob = agvOutJob;
_kittingIssueJobManager = kittingIssueJobManager;
_locationAppService = locationAppService;
_kittingIssueNoteAppService = kittingIssueNoteAppService;
@ -680,7 +683,23 @@ public class KittingIssueJobAppService
kittingIssueJobDetailDto.Status, kittingIssueJobDetailDto.HandledToLot,
handledToQty).ConfigureAwait(false);
}
/// <summary>
/// 调用AgvOutPut出库
/// </summary>
/// <param name="job"></param>
/// <returns></returns>
private async Task<AgvResultObject> InvokeAgvOutput(KittingIssueJobDTO job)
{
var first = job.Details.FirstOrDefault();
var requst = new AgvRequest();
requst.MatCode = first.ItemCode;
requst.MatQty = first.HandledToQty;
requst.OrderNum = job.Number;
requst.OrderType = "2";
return await _agvOutJob.OutPutTaskAsync(requst).ConfigureAwait(false);
}
#endregion
}

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

@ -43,12 +43,14 @@ public class SparePartIssueJobAppService
private readonly ITransferLibRequestAppService _transferLibRequestAppService;
private readonly IOptions<RestoOptions> _options;
private readonly ICurrentUser _currentUser;
private readonly IAgvJobOutputService _agvOutJob;
protected ISparePartIssueRequestAppService SparePartIssueRequestAppService =>
LazyServiceProvider.LazyGetRequiredService<ISparePartIssueRequestAppService>();
public SparePartIssueJobAppService(
ISparePartIssueJobRepository repository, ISparePartIssueJobManager sparePartIssueJobManager,
IAgvJobOutputService _agvOutJob,
ISparePartIssueJobRepository repository, ISparePartIssueJobManager sparePartIssueJobManager,
ILocationAppService locationAppService,
ISparePartIssueNoteAppService sparePartIssueNoteAppService, IExpectOutAppService expectOutAppService
, IHttpClientFactory httpClientFactory
@ -662,5 +664,23 @@ public class SparePartIssueJobAppService
handledToQty).ConfigureAwait(false);
}
/// <summary>
/// 调用AgvOutPut出库
/// </summary>
/// <param name="job"></param>
/// <returns></returns>
private async Task<AgvResultObject> InvokeAgvOutput(SparePartIssueJobDTO job)
{
var first = job.Details.FirstOrDefault();
var requst = new AgvRequest();
requst.MatCode = first.ItemCode;
requst.MatQty = first.HandledToQty;
requst.OrderNum = job.Number;
requst.OrderType = "2";
return await _agvOutJob.OutPutTaskAsync(requst).ConfigureAwait(false);
}
#endregion
}

64
be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Jobs/IssueJobs/proxy/AgvJobClient.cs

@ -3,6 +3,7 @@ using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Win_in.Sfs.Wms.Store.Application.Contracts;
namespace Win_in.Sfs.Wms.Store.Jobs.IssueJobs.proxy;
@ -19,11 +20,14 @@ namespace Win_in.Sfs.Wms.Store.Jobs.IssueJobs.proxy;
private System.Text.Json.JsonSerializerOptions _instanceSettings;
#pragma warning disable CS8618 // Non-nullable field must contain a non-null value when exiting constructor. Consider declaring as nullable.
public AgvJobClient(string baseUrl, System.Net.Http.HttpClient httpClient)
public AgvJobClient(string baseUrl, System.Net.Http.HttpClient httpClient,string path)
#pragma warning restore CS8618 // Non-nullable field must contain a non-null value when exiting constructor. Consider declaring as nullable.
{
BaseUrl = baseUrl;
_httpClient = httpClient;
_path = path;
Initialize();
}
@ -360,63 +364,7 @@ namespace Win_in.Sfs.Wms.Store.Jobs.IssueJobs.proxy;
}
/// <summary>
/// 闻荫调海康入参
/// </summary>
[System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "14.2.0.0 (NJsonSchema v11.1.0.0 (Newtonsoft.Json v13.0.0.0))")]
public partial class AgvRequest
{
/// <summary>
/// 任务类型
/// </summary>
[System.Text.Json.Serialization.JsonPropertyName("orderType")]
public string OrderType { get; set; }
/// <summary>
/// 任务编号
/// </summary>
[System.Text.Json.Serialization.JsonPropertyName("orderNum")]
public string OrderNum { get; set; }
/// <summary>
/// 物料编号
/// </summary>
[System.Text.Json.Serialization.JsonPropertyName("matCode")]
public string MatCode { get; set; }
/// <summary>
/// 物料数量
/// </summary>
[System.Text.Json.Serialization.JsonPropertyName("matQty")]
public string MatQty { get; set; }
/// <summary>
/// 目标工位
/// </summary>
[System.Text.Json.Serialization.JsonPropertyName("endPosition")]
public string EndPosition { get; set; }
}
[System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "14.2.0.0 (NJsonSchema v11.1.0.0 (Newtonsoft.Json v13.0.0.0))")]
public partial class AgvResultObject
{
[System.Text.Json.Serialization.JsonPropertyName("code")]
public string Code { get; set; }
[System.Text.Json.Serialization.JsonPropertyName("message")]
public string Message { get; set; }
[System.Text.Json.Serialization.JsonPropertyName("reqCode")]
public string ReqCode { get; set; }
}

1
be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/StoreApplicationModule.cs

@ -29,6 +29,7 @@ public class StoreApplicationModule : AbpModule
Configure<RestoOptions>(configuration.GetSection("RestoOptions"));
Configure<AgvOptions>(configuration.GetSection("AgvOptions"));
//context.Services.Replace(ServiceDescriptor.Transient<IPurchaseReturnRequestAppService, PurchaseReturnRequestAppService>());
//context.Services.Replace(ServiceDescriptor.Transient<IPurchaseReturnJobAppService, PurchaseReturnJobAppService>());

25
be/Modules/Store/src/Win_in.Sfs.Wms.Store.Domain/Options/RestoOptions.cs

@ -27,3 +27,28 @@ public class RestoOptions
}
public class AgvOptions
{
// IP 地址
public string Address { set; get; }
// 用户名
public string UserName { set; get; }
// 密码
public string Password { set; get; }
// 令牌
public string Token { set; get; }
// 路径
public string Path { set; get; }
//立体库用户名
public string StereosUser { set; get; }
//立体库密码
public string StereosPassword { set; get; }
}

Loading…
Cancel
Save