Browse Source

编写测试接口

Agv分支2024-11-19
赵新宇 5 months ago
parent
commit
455879ada7
  1. 13
      be/Modules/BaseData/src/Win_in.Sfs.Basedata.Application/test/TestAppService.cs
  2. 7
      be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Jobs/IssueJobs/AgvJobs/DTOS/AgvDto.cs
  3. 2
      be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Jobs/IssueJobs/AssembleIssueJobs/IAssembleIssueJobAppService.cs
  4. 2
      be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Jobs/IssueJobs/CoatingIssueJobs/ICoatingIssueJobAppService.cs
  5. 5
      be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Jobs/IssueJobs/InjectionJobs/IInjectionIssueJobAppService.cs
  6. 2
      be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Jobs/IssueJobs/KittingIssueJobs/IKittingIssueJobAppService.cs
  7. 3
      be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Jobs/IssueJobs/SparePartIssueJobs/ISparePartIssueJobAppService.cs
  8. 1
      be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Jobs/UnplannedIssueJobs/IUnplannedIssueJobAppService.cs
  9. 3
      be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Jobs/UnplannedReceiptJobs/IUnplannedReceiptJobAppService.cs
  10. 160
      be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Jobs/AgvJobs/AgvJobOutputService.cs
  11. 5
      build/src/docker/publish/conf/settings/appsettings.Development.json

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

@ -28,7 +28,7 @@ namespace Win_in.Sfs.Basedata.Application;
/// 接口模拟测试
/// </summary>
[AllowAnonymous]
[Route($"{BasedataConsts.RootPath}test")]
public class TestService:ApplicationService
{
private readonly IServiceProvider _serviceProvider;
@ -244,6 +244,11 @@ public class AgvRequestUnplannedDetailDto1
/// <summary>
/// 闻荫调海康入参
/// </summary>
@ -256,7 +261,7 @@ public class AgvRequest1
[Display(Name = "物料编号")]
public string MatCode { set; get; }
[Display(Name = "物料数量")]
public string MatQty { set; get; }
public decimal MatQty { set; get; }
[Display(Name = "来源工位")]
public string BeginPosition { set; get; }
[Display(Name = "目标工位")]
@ -279,7 +284,7 @@ public class AgvRequestUnplanned1
[Display(Name = "物料编号")]
public string MatCode { set; get; }
[Display(Name = "物料数量")]
public string MatQty { set; get; }
public decimal MatQty { set; get; }
[Display(Name = "来源工位")]
public string BeginPosition { set; get; }
[Display(Name = "目标工位")]
@ -293,7 +298,7 @@ public class AgvRequestBack1
[Display(Name = "物料编号")]
public string MatCode { set; get; }
[Display(Name = "物料数量")]
public string ReturnQty { set; get; }
public decimal ReturnQty { set; get; }
[Display(Name = "目标工位")]
public string EndPosition { set; get; }
}

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

@ -119,9 +119,14 @@ public class AgvRequestUnplannedDetailDto
/// <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>

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

@ -29,4 +29,6 @@ public interface IAssembleIssueJobAppService
Task<AssembleIssueJobDTO> GetByNumber2Async(string number);
Task<AssembleIssueJobDTO> GetJobByPackingCodeAsync(string packingCode);
Task<AgvResultObject> CallBackAgvAsync(AgvRequestDto request);
Task<ReusltObject> CallAgvAsync(AssembleIssueJobDTO input);
}

2
be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Jobs/IssueJobs/CoatingIssueJobs/ICoatingIssueJobAppService.cs

@ -28,4 +28,6 @@ public interface ICoatingIssueJobAppService
Task<CoatingIssueJobDTO> GetByNumber2Async(string number);
Task<CoatingIssueJobDTO> GetJobByPackingCodeAsync(string packingCode);
Task<AgvResultObject> CallBackAgvAsync(AgvRequestDto request);
Task<ReusltObject> CallAgvAsync(CoatingIssueJobDTO input);
}

5
be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Jobs/IssueJobs/InjectionJobs/IInjectionIssueJobAppService.cs

@ -27,4 +27,9 @@ public interface IInjectionIssueJobAppService
Task<InjectionIssueJobDTO> GetByNumber2Async(string number);
Task<InjectionIssueJobDTO> GetJobByPackingCodeAsync(string packingCode);
Task<AgvResultObject> CallBackAgvAsync(AgvRequestDto request);
Task<ReusltObject> CallAgvAsync(InjectionIssueJobDTO input);
}

2
be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Jobs/IssueJobs/KittingIssueJobs/IKittingIssueJobAppService.cs

@ -27,4 +27,6 @@ public interface IKittingIssueJobAppService
Task<KittingIssueJobDTO> GetByNumber2Async(string number);
Task<KittingIssueJobDTO> GetJobByPackingCodeAsync(string packingCode);
Task<AgvResultObject> CallBackAgvAsync(AgvRequestDto request);
Task<ReusltObject> CallAgvAsync(KittingIssueJobDTO input);
}

3
be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Jobs/IssueJobs/SparePartIssueJobs/ISparePartIssueJobAppService.cs

@ -27,4 +27,7 @@ public interface ISparePartIssueJobAppService
Task<SparePartIssueJobDTO> GetByNumber2Async(string number);
Task<SparePartIssueJobDTO> GetJobByPackingCodeAsync(string packingCode);
Task<AgvResultObject> CallBackAgvAsync(AgvRequestDto request);
Task<ReusltObject> CallAgvAsync(SparePartIssueJobDTO input);
}

1
be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Jobs/UnplannedIssueJobs/IUnplannedIssueJobAppService.cs

@ -11,6 +11,7 @@ public interface IUnplannedIssueJobAppService
Task CreateByRecommendAsync(UnplannedIssueRequest requestDto);
Task<bool> IsAllJobOverByRequestNumberAsync(string requestNumber);
Task<ReusltObject> CallAgvAsync(UnplannedIssueJobDTO input);

3
be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Jobs/UnplannedReceiptJobs/IUnplannedReceiptJobAppService.cs

@ -30,4 +30,7 @@ public interface IUnplannedReceiptJobAppService
/// </summary>
/// <returns></returns>
Task<bool> IsAllJobOverByRequestNumberAsync(string requestNumber);
Task<ReusltObject> CallAgvAsync(UnplannedReceiptJobDTO input);
}

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

@ -24,25 +24,51 @@ using Microsoft.Extensions.Options;
using Win_in.Sfs.Wms.Store.Options;
using Microsoft.Extensions.Logging;
using Win_in.Sfs.Shared.Application.Contracts;
using Win_in.Sfs.Wms.Store.Application;
namespace Win_in.Sfs.Wms.Store.Jobs.AgvJobs;
[AllowAnonymous]
[Route($"{StoreConsts.RootPath}agv-job-in")]
public class AgvJobOutputService : ApplicationService, IAgvJobOutputService
[Route($"{StoreConsts.RootPath}agv-job-test")]
public class AgvJobOutputService : ApplicationService
{
private readonly UnitOfWorkManager _unitOfWorkManager;
private readonly IHttpClientFactory _httpClientFactory;
private readonly IOptions<AgvOptions> _options;
private readonly ILogger<AgvJobOutputService> _logger;
private readonly IAssembleIssueJobAppService _assembleIssueJobAppService;
private readonly ICoatingIssueJobAppService _coatingIssueJobAppService;
private readonly IInjectionIssueJobAppService _injectionIssueJobAppService;
private readonly IKittingIssueJobAppService _kittingIssueJobAppService;
private readonly ISparePartIssueJobAppService _sparePartIssueJobAppService;
private readonly IUnplannedIssueJobAppService _unplannedIssueJobAppService;
private readonly IUnplannedReceiptJobAppService _unplannedReceiptJobAppService;
public AgvJobOutputService(
UnitOfWorkManager unitOfWorkManager,
IHttpClientFactory httpClientFactory,
IOptions<AgvOptions> options,
ILogger<AgvJobOutputService> logger
ILogger<AgvJobOutputService> logger,
IAssembleIssueJobAppService assembleIssueJobAppService,
ICoatingIssueJobAppService coatingIssueJobAppService,
IInjectionIssueJobAppService injectionIssueJobAppService,
IKittingIssueJobAppService kittingIssueJobAppService,
ISparePartIssueJobAppService sparePartIssueJobAppService,
IUnplannedIssueJobAppService unplannedIssueJobAppService,
IUnplannedReceiptJobAppService unplannedReceiptJobAppService
)
{
_assembleIssueJobAppService = assembleIssueJobAppService;
_coatingIssueJobAppService = coatingIssueJobAppService;
_injectionIssueJobAppService = injectionIssueJobAppService;
_kittingIssueJobAppService = kittingIssueJobAppService;
_sparePartIssueJobAppService = sparePartIssueJobAppService;
_unplannedIssueJobAppService = unplannedIssueJobAppService;
_unplannedReceiptJobAppService = unplannedReceiptJobAppService;
_logger = logger;
_unitOfWorkManager = unitOfWorkManager;
_httpClientFactory = httpClientFactory;
@ -51,44 +77,106 @@ public class AgvJobOutputService : ApplicationService, IAgvJobOutputService
[HttpPost("out-put-task")]
public async Task<AgvResultObject> OutPutTaskAsync(AgvRequest request)
[HttpPost("assemble-test-callagv-id")]
public async Task<Win_in.Sfs.Wms.Store.Application.Contracts.ReusltObject> Assemble_CallAgvAsync(Guid id)
{
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);
var jobdto= await _assembleIssueJobAppService.GetAsync(id).ConfigureAwait(false);
var ret= await _assembleIssueJobAppService.CallAgvAsync(jobdto).ConfigureAwait(false);
return ret;
}
[HttpPost("assemble-test-callagv1")]
public async Task<Win_in.Sfs.Wms.Store.Application.Contracts.ReusltObject> Assemble_CallAgvAsync1(AssembleIssueJobDTO jobdto)
{
var ret = await _assembleIssueJobAppService.CallAgvAsync(jobdto).ConfigureAwait(false);
return ret;
}
[HttpPost("coating-test-callagv-id")]
public async Task<Win_in.Sfs.Wms.Store.Application.Contracts.ReusltObject> Coating_CallAgvAsync(Guid id)
{
var jobdto= await _coatingIssueJobAppService.GetAsync(id).ConfigureAwait(false);
var ret = await _coatingIssueJobAppService.CallAgvAsync(jobdto).ConfigureAwait(false);
return ret;
}
[HttpPost("coating-test-callagv")]
public async Task<Win_in.Sfs.Wms.Store.Application.Contracts.ReusltObject> Coating_CallAgvAsync(CoatingIssueJobDTO jobdto)
{
var ret = await _coatingIssueJobAppService.CallAgvAsync(jobdto).ConfigureAwait(false);
return ret;
}
[HttpPost("injection-test-callagv-id")]
public async Task<Win_in.Sfs.Wms.Store.Application.Contracts.ReusltObject> Injection_CallAgvAsync(Guid id)
{
var jobdto = await _injectionIssueJobAppService.GetAsync(id).ConfigureAwait(false);
var ret = await _injectionIssueJobAppService.CallAgvAsync(jobdto).ConfigureAwait(false);
return ret;
}
[HttpPost("injection-test-callagv")]
public async Task<Win_in.Sfs.Wms.Store.Application.Contracts.ReusltObject> Injection_CallAgvAsync1(InjectionIssueJobDTO jobdto)
{
var ret = await _injectionIssueJobAppService.CallAgvAsync(jobdto).ConfigureAwait(false);
return ret;
}
[HttpPost("kitting-test-callagv-id")]
public async Task<Win_in.Sfs.Wms.Store.Application.Contracts.ReusltObject> Kitting_CallAgvAsync(Guid id)
{
var jobdto=await _kittingIssueJobAppService.GetAsync(id).ConfigureAwait(false);
var ret = await _kittingIssueJobAppService.CallAgvAsync(jobdto).ConfigureAwait(false);
return ret;
}
[HttpPost("kitting-test-callagv")]
public async Task<Win_in.Sfs.Wms.Store.Application.Contracts.ReusltObject> Kitting_CallAgvAsync1(KittingIssueJobDTO jobdto)
{
var ret = await _kittingIssueJobAppService.CallAgvAsync(jobdto).ConfigureAwait(false);
return ret;
}
[HttpPost("sparePart-test-callagv-id")]
public async Task<Win_in.Sfs.Wms.Store.Application.Contracts.ReusltObject> SparePart_CallAgvAsync(Guid id)
{
var jobdto = await _sparePartIssueJobAppService.GetAsync(id).ConfigureAwait(false);
var ret = await _sparePartIssueJobAppService.CallAgvAsync(jobdto).ConfigureAwait(false);
return ret;
}
[HttpPost("sparePart-test-callagv")]
public async Task<Win_in.Sfs.Wms.Store.Application.Contracts.ReusltObject> SparePart_CallAgvAsync1(SparePartIssueJobDTO jobdto)
{
var ret = await _sparePartIssueJobAppService.CallAgvAsync(jobdto).ConfigureAwait(false);
return ret;
}
[HttpPost("unplannedIssue-test-callagv-id")]
public async Task<Win_in.Sfs.Wms.Store.Application.Contracts.ReusltObject> UnplannedIssue_CallAgvAsync(Guid id)
{
var jobdto = await _unplannedIssueJobAppService.GetAsync(id).ConfigureAwait(false);
var ret = await _unplannedIssueJobAppService.CallAgvAsync(jobdto).ConfigureAwait(false);
return ret;
}
[HttpPost("unplannedIssue-test-callagv")]
public async Task<Win_in.Sfs.Wms.Store.Application.Contracts.ReusltObject> UnplannedIssue_CallAgvAsync1(UnplannedIssueJobDTO jobdto)
{
var ret = await _unplannedIssueJobAppService.CallAgvAsync(jobdto).ConfigureAwait(false);
return ret;
}
[HttpPost("unplannedReceipt-test-callagv-id")]
public async Task<Win_in.Sfs.Wms.Store.Application.Contracts.ReusltObject> UnplannedReceipt_CallAgvAsync(Guid id)
{
var jobdto = await _unplannedReceiptJobAppService.GetAsync(id).ConfigureAwait(false);
var ret = await _unplannedReceiptJobAppService.CallAgvAsync(jobdto).ConfigureAwait(false);
return ret;
}
[HttpPost("unplannedReceipt-test-callagv")]
public async Task<Win_in.Sfs.Wms.Store.Application.Contracts.ReusltObject> UnplannedReceipt_CallAgvAsync1(UnplannedReceiptJobDTO jobdto)
{
var ret = await _unplannedReceiptJobAppService.CallAgvAsync(jobdto).ConfigureAwait(false);
return ret;
}
}

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

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

Loading…
Cancel
Save