Browse Source

余料回库接口

Agv分支2024-11-19
赵新宇 4 months ago
parent
commit
ff95bd9bf4
  1. 17
      be/Hosts/WmsPda.Host/Win_in.Sfs.Wms.Pda.Host/Controllers/Jobs/IssueJobController.cs
  2. 3
      be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Jobs/IssueJobs/IssueJobs/IIssueJobAppService.cs
  3. 3
      be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Jobs/IssueJobs/AssembleIssueJobs/AssembleIssueJobAppService.cs
  4. 63
      be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Jobs/IssueJobs/IssueJobAppService.cs

17
be/Hosts/WmsPda.Host/Win_in.Sfs.Wms.Pda.Host/Controllers/Jobs/IssueJobController.cs

@ -50,6 +50,23 @@ public class IssueJobController : AbpController
var result = await _issueJobAppService.GetAsync(id).ConfigureAwait(false); var result = await _issueJobAppService.GetAsync(id).ConfigureAwait(false);
return Ok(result); return Ok(result);
} }
/// <summary>
/// 余料回库
/// </summary>
/// <param name="jobdto"></param>
/// <returns></returns>
[HttpPost("NotifyOutTaskBack4FW")]
public async Task<AgvResultObject> CallReturn(AgvRequestBack jobdto)
{
return await _issueJobAppService.CallReturn(jobdto).ConfigureAwait(false);
}
/// <summary> /// <summary>
/// 获取列表 /// 获取列表

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

@ -23,4 +23,7 @@ public interface IIssueJobAppService
/// <returns></returns> /// <returns></returns>
Task<IssueJobDTO> SaveDetail_SplitPackingAsync(SplitPacking_UpdateJobDetailInput input); Task<IssueJobDTO> SaveDetail_SplitPackingAsync(SplitPacking_UpdateJobDetailInput input);
Task<AgvResultObject> CallReturn(AgvRequestBack jobdto);
} }

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

@ -51,12 +51,13 @@ public class AssembleIssueJobAppService
private readonly IAssembleIssueNoteAppService _assembleIssueNoteAppService; private readonly IAssembleIssueNoteAppService _assembleIssueNoteAppService;
private readonly IExpectOutAppService _expectOutAppService; private readonly IExpectOutAppService _expectOutAppService;
private readonly IHttpClientFactory _httpClientFactory; private readonly IHttpClientFactory _httpClientFactory;
private readonly IOptions<AgvOptions> _agvOptions;
private readonly ITransferLibRequestAppService _transferLibRequestAppService; private readonly ITransferLibRequestAppService _transferLibRequestAppService;
private readonly IOptions<RestoOptions> _options; private readonly IOptions<RestoOptions> _options;
private readonly ICurrentUser _currentUser; private readonly ICurrentUser _currentUser;
private readonly UnitOfWorkManager _unitOfWorkManager; private readonly UnitOfWorkManager _unitOfWorkManager;
private readonly IOptions<AgvOptions> _agvOptions;
private readonly ILogger<AssembleIssueJobAppService> _logger; private readonly ILogger<AssembleIssueJobAppService> _logger;

63
be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Jobs/IssueJobs/IssueJobAppService.cs

@ -2,6 +2,9 @@ using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.Linq; using System.Linq;
using System.Linq.Expressions; using System.Linq.Expressions;
using System.Net.Http.Headers;
using System.Net.Http;
using System.Text;
using System.Threading; using System.Threading;
using System.Threading.Tasks; using System.Threading.Tasks;
using Microsoft.AspNetCore.Authorization; using Microsoft.AspNetCore.Authorization;
@ -15,6 +18,9 @@ using Win_in.Sfs.Shared.Domain.Shared;
using Win_in.Sfs.Wms.Store.Application.Contracts; using Win_in.Sfs.Wms.Store.Application.Contracts;
using Win_in.Sfs.Wms.Store.Domain; using Win_in.Sfs.Wms.Store.Domain;
using Win_in.Sfs.Wms.Store.Domain.Shared; using Win_in.Sfs.Wms.Store.Domain.Shared;
using Win_in.Sfs.Wms.Store.Jobs.IssueJobs.proxy;
using Win_in.Sfs.Wms.Store.Options;
using Microsoft.Extensions.Options;
namespace Win_in.Sfs.Wms.Store.Application; namespace Win_in.Sfs.Wms.Store.Application;
@ -26,14 +32,69 @@ public class IssueJobAppService
IIssueJobAppService IIssueJobAppService
{ {
private readonly IIssueJobManager _issueJobManager; private readonly IIssueJobManager _issueJobManager;
private readonly IHttpClientFactory _httpClientFactory;
private readonly IOptions<AgvOptions> _agvOptions;
public IssueJobAppService( public IssueJobAppService(
IIssueJobRepository repository, IIssueJobManager issueJobManager IIssueJobRepository repository, IIssueJobManager issueJobManager,IHttpClientFactory httpClientFactory, IOptions<AgvOptions> agvOptions
) : base(repository, issueJobManager) ) : base(repository, issueJobManager)
{ {
_issueJobManager = issueJobManager; _issueJobManager = issueJobManager;
_httpClientFactory = httpClientFactory;
_agvOptions = agvOptions;
} }
/// <summary>
/// 余料回库
/// </summary>
/// <param name="jobdto"></param>
/// <returns></returns>
[HttpPost("NotifyOutTaskBack4FW")]
public async Task<AgvResultObject> CallReturn(AgvRequestBack jobdto)
{
var client = await GetAgvJobClient().ConfigureAwait(false);
var ret = await client.NotifyOutTaskBack4FWAsync(jobdto).ConfigureAwait(false);
return ret;
}
private async Task<AgvJobClient> GetAgvJobClient()
{
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);
return client;
}
/// <summary> /// <summary>
/// 根据物品和库位 检查是否存在发料任务 /// 根据物品和库位 检查是否存在发料任务
/// </summary> /// </summary>

Loading…
Cancel
Save