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. 148
      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> /// </summary>
[AllowAnonymous] [AllowAnonymous]
[Route($"{BasedataConsts.RootPath}test")]
public class TestService:ApplicationService public class TestService:ApplicationService
{ {
private readonly IServiceProvider _serviceProvider; private readonly IServiceProvider _serviceProvider;
@ -244,6 +244,11 @@ public class AgvRequestUnplannedDetailDto1
/// <summary> /// <summary>
/// 闻荫调海康入参 /// 闻荫调海康入参
/// </summary> /// </summary>
@ -256,7 +261,7 @@ public class AgvRequest1
[Display(Name = "物料编号")] [Display(Name = "物料编号")]
public string MatCode { set; get; } public string MatCode { set; get; }
[Display(Name = "物料数量")] [Display(Name = "物料数量")]
public string MatQty { set; get; } public decimal MatQty { set; get; }
[Display(Name = "来源工位")] [Display(Name = "来源工位")]
public string BeginPosition { set; get; } public string BeginPosition { set; get; }
[Display(Name = "目标工位")] [Display(Name = "目标工位")]
@ -279,7 +284,7 @@ public class AgvRequestUnplanned1
[Display(Name = "物料编号")] [Display(Name = "物料编号")]
public string MatCode { set; get; } public string MatCode { set; get; }
[Display(Name = "物料数量")] [Display(Name = "物料数量")]
public string MatQty { set; get; } public decimal MatQty { set; get; }
[Display(Name = "来源工位")] [Display(Name = "来源工位")]
public string BeginPosition { set; get; } public string BeginPosition { set; get; }
[Display(Name = "目标工位")] [Display(Name = "目标工位")]
@ -293,7 +298,7 @@ public class AgvRequestBack1
[Display(Name = "物料编号")] [Display(Name = "物料编号")]
public string MatCode { set; get; } public string MatCode { set; get; }
[Display(Name = "物料数量")] [Display(Name = "物料数量")]
public string ReturnQty { set; get; } public decimal ReturnQty { set; get; }
[Display(Name = "目标工位")] [Display(Name = "目标工位")]
public string EndPosition { set; get; } 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>
/// 闻荫调海康入参 /// 闻荫调海康入参
/// </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 public partial class AgvRequest
{ {
/// <summary> /// <summary>
/// 任务类型 /// 任务类型
/// </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> GetByNumber2Async(string number);
Task<AssembleIssueJobDTO> GetJobByPackingCodeAsync(string packingCode); Task<AssembleIssueJobDTO> GetJobByPackingCodeAsync(string packingCode);
Task<AgvResultObject> CallBackAgvAsync(AgvRequestDto request); 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> GetByNumber2Async(string number);
Task<CoatingIssueJobDTO> GetJobByPackingCodeAsync(string packingCode); 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> GetByNumber2Async(string number);
Task<InjectionIssueJobDTO> GetJobByPackingCodeAsync(string packingCode); 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> GetByNumber2Async(string number);
Task<KittingIssueJobDTO> GetJobByPackingCodeAsync(string packingCode); 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> GetByNumber2Async(string number);
Task<SparePartIssueJobDTO> GetJobByPackingCodeAsync(string packingCode); 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 CreateByRecommendAsync(UnplannedIssueRequest requestDto);
Task<bool> IsAllJobOverByRequestNumberAsync(string requestNumber); 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> /// </summary>
/// <returns></returns> /// <returns></returns>
Task<bool> IsAllJobOverByRequestNumberAsync(string requestNumber); Task<bool> IsAllJobOverByRequestNumberAsync(string requestNumber);
Task<ReusltObject> CallAgvAsync(UnplannedReceiptJobDTO input);
} }

148
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 Win_in.Sfs.Wms.Store.Options;
using Microsoft.Extensions.Logging; using Microsoft.Extensions.Logging;
using Win_in.Sfs.Shared.Application.Contracts; using Win_in.Sfs.Shared.Application.Contracts;
using Win_in.Sfs.Wms.Store.Application;
namespace Win_in.Sfs.Wms.Store.Jobs.AgvJobs; namespace Win_in.Sfs.Wms.Store.Jobs.AgvJobs;
[AllowAnonymous] [AllowAnonymous]
[Route($"{StoreConsts.RootPath}agv-job-in")] [Route($"{StoreConsts.RootPath}agv-job-test")]
public class AgvJobOutputService : ApplicationService, IAgvJobOutputService public class AgvJobOutputService : ApplicationService
{ {
private readonly UnitOfWorkManager _unitOfWorkManager; private readonly UnitOfWorkManager _unitOfWorkManager;
private readonly IHttpClientFactory _httpClientFactory; private readonly IHttpClientFactory _httpClientFactory;
private readonly IOptions<AgvOptions> _options; private readonly IOptions<AgvOptions> _options;
private readonly ILogger<AgvJobOutputService> _logger; 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( public AgvJobOutputService(
UnitOfWorkManager unitOfWorkManager, UnitOfWorkManager unitOfWorkManager,
IHttpClientFactory httpClientFactory, IHttpClientFactory httpClientFactory,
IOptions<AgvOptions> options, 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; _logger = logger;
_unitOfWorkManager = unitOfWorkManager; _unitOfWorkManager = unitOfWorkManager;
_httpClientFactory = httpClientFactory; _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(); var jobdto= await _assembleIssueJobAppService.GetAsync(id).ConfigureAwait(false);
_options.Value.Address = string.IsNullOrEmpty(_options.Value.Address) var ret= await _assembleIssueJobAppService.CallAgvAsync(jobdto).ConfigureAwait(false);
? "http://7e42682n64.goho.co:21171/" return ret;
: _options.Value.Address; //测试地址 }
_options.Value.Token =
string.IsNullOrEmpty(_options.Value.Token) ? string.Empty : _options.Value.Token; //测试token
_options.Value.UserName = [HttpPost("assemble-test-callagv1")]
string.IsNullOrEmpty(_options.Value.UserName) ? "" : _options.Value.UserName; //测试用户名 public async Task<Win_in.Sfs.Wms.Store.Application.Contracts.ReusltObject> Assemble_CallAgvAsync1(AssembleIssueJobDTO jobdto)
_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; var ret = await _assembleIssueJobAppService.CallAgvAsync(jobdto).ConfigureAwait(false);
httpclient.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", token); return ret;
} }
if (!string.IsNullOrEmpty(_options.Value.UserName) && !string.IsNullOrEmpty(_options.Value.Password)) [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 username = _options.Value.UserName; var jobdto=await _kittingIssueJobAppService.GetAsync(id).ConfigureAwait(false);
var password = _options.Value.Password; var ret = await _kittingIssueJobAppService.CallAgvAsync(jobdto).ConfigureAwait(false);
httpclient.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Basic", return ret;
Convert.ToBase64String(Encoding.ASCII.GetBytes($"{username}:{password}")));
} }
var client = new AgvJobClient(_options.Value.Address, httpclient, _options.Value.Path); [HttpPost("kitting-test-callagv")]
var ret = await client.PushOutTask4FWAsync(request).ConfigureAwait(false); 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; 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": { "AgvOptions": {
"Address": "http://localhost:59094/", "Address": "http://dev.ccwin-in.com:60084/api/basedata/test/",
// //
"UserName": "", "UserName": "",
// //
"Password": "", "Password": "",
// //
"Token": "", "Token": "",
"Path": "Test/pushOutTask4FW"
"Path": ""
}, },

Loading…
Cancel
Save