Browse Source

视觉接口修改

dev_DY_CC
lvzb 12 months ago
parent
commit
690e23454a
  1. 45
      be/DataExchange/Fawtyg/Win_in.Sfs.Wms.DataExchange.Fawtyg.InjectionMoldingTaskAgent/Incoming/InjectionMoldingRequestReader.cs
  2. 4
      be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Requests/IssueRequest/InjectionIssueRequests/DTOs/UnCompletedRequestDto.cs
  3. 3
      be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Requests/IssueRequest/InjectionIssueRequests/IInjectionIssueRequestAppService.cs
  4. 36
      be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Requests/IssuelRequests/InjectionIssueRequests/InjectionIssueRequestAppService.cs

45
be/DataExchange/Fawtyg/Win_in.Sfs.Wms.DataExchange.Fawtyg.InjectionMoldingTaskAgent/Incoming/InjectionMoldingRequestReader.cs

@ -51,14 +51,14 @@ public class InjectionMoldingRequestReader : IReader
_logger = logger; _logger = logger;
_options = options; _options = options;
_httpClientFactory = httpClientFactory; _httpClientFactory = httpClientFactory;
_itemService=itemService; _itemService = itemService;
_locService = locService; _locService = locService;
} }
/// <summary> /// <summary>
/// 读取注塑叫料任务 /// 读取注塑叫料任务
/// </summary> /// </summary>
/// <returns></returns> /// <returns></returns>
public virtual async Task<List<IncomingFromExternal>> ReadAsync() public virtual async Task<List<IncomingFromExternal>> ReadAsync()
{ {
@ -72,13 +72,10 @@ public class InjectionMoldingRequestReader : IReader
// var sleepTime = (_options.Value.AutoRemote.TimeCycle*60/ _options.Value.AutoRemote.Interval)-10; // var sleepTime = (_options.Value.AutoRemote.TimeCycle*60/ _options.Value.AutoRemote.Interval)-10;
var invterval = _options.Value.AutoRemote.Interval; var invterval = _options.Value.AutoRemote.Interval;
var successTime = 0;
var guid = DateTime.Now.ToString("yyyyMMddHHmmssfff"); var guid = DateTime.Now.ToString("yyyyMMddHHmmssfff");
for (int i = 0; i <invterval; i++)
{
Stopwatch sw = Stopwatch.StartNew(); Stopwatch sw = Stopwatch.StartNew();
Client client = new Client(_options.Value.AutoRemote.IpAddress, _httpClientFactory.CreateClient());//调用客户记录 Client client = new Client(_options.Value.AutoRemote.IpAddress, _httpClientFactory.CreateClient());//调用客户记录
@ -97,25 +94,31 @@ public class InjectionMoldingRequestReader : IReader
} }
var ids = _options.Value.AutoRemote.AreaIDs.Split(","); var ids = _options.Value.AutoRemote.AreaIDs.Split(",");
List<ResponCargoItem> camralist = new List<ResponCargoItem>(); List<ResponCargoItem> camralist = new List<ResponCargoItem>();
for (int i = 1; i <= invterval; i++)
{
foreach (var itm in ids)//遍历区域查找所有货物 foreach (var itm in ids)//遍历区域查找所有货物
{ {
var idsList = await client.GetCargoStaticAsync(itm).ConfigureAwait(false); var idsList = await client.GetCargoStaticAsync(itm).ConfigureAwait(false);
camralist.AddRange(idsList); //flag 1-有货 0-空闲
camralist.AddRange(idsList.Where(r => r.Flag == 0));
}
_logger.LogInformation($"读取标识{guid}读取成功次数{i},耗时 {sw.ElapsedMilliseconds}毫秒");
} }
successTime++;
sw.Stop(); sw.Stop();
_logger.LogInformation($"读取标识{guid}读取成功次数{successTime},耗时 {sw.ElapsedMilliseconds}毫秒");
Thread.Sleep(1000); Thread.Sleep(1000);
//按区域、货位号、零件、标志
var group= camralist.GroupBy(r => new { r.AreaID, r.CargoID, r.PartCode, r.Flag });
//获取和次数相等的空闲数据
if (successTime == invterval) var list = group.Where(r => r.Count() == invterval).ToList();
//如果有货位空闲
if (list.Count>0)
{ {
sw = Stopwatch.StartNew(); sw = Stopwatch.StartNew();
_logger.LogInformation($"开始标识{guid}同步WMS开始"); _logger.LogInformation($"开始标识{guid}同步WMS开始");
List<UnCompletedRequestDto> inputdetail = new List<UnCompletedRequestDto>(); List<UnCompletedRequestDto> inputdetail = new List<UnCompletedRequestDto>();
foreach (var item in camralist) foreach (var item in list.Select(r=>r.Key).ToList())
{ {
UnCompletedRequestDto jobrequestinput = new UnCompletedRequestDto(); UnCompletedRequestDto jobrequestinput = new UnCompletedRequestDto();
jobrequestinput.ItemCode = item.PartCode; jobrequestinput.ItemCode = item.PartCode;
@ -124,9 +127,9 @@ public class InjectionMoldingRequestReader : IReader
inputdetail.Add(jobrequestinput); inputdetail.Add(jobrequestinput);
} }
var uncompletelist = await _injectionRequest.GetUnCompletedRequestAsync(inputdetail).ConfigureAwait(false);//将所有库位零件信息查找未完成记录 var uncompletelist = await _injectionRequest.Getlist(inputdetail).ConfigureAwait(false);//将所有库位零件信息查找未完成记录
var query = from itm in camralist var query = from itm in list.Select(r => r.Key).ToList()
join itm1 in uncompletelist on new { locCode = itm.AreaID.ToString(), itmCode = itm.PartCode, PositionCode = itm.CargoID.ToString() } join itm1 in uncompletelist on new { locCode = itm.AreaID.ToString(), itmCode = itm.PartCode, PositionCode = itm.CargoID.ToString() }
equals new { locCode = itm1.LocCode, itmCode = itm1.ItemCode, PositionCode = itm1.PositionCode } into temp equals new { locCode = itm1.LocCode, itmCode = itm1.ItemCode, PositionCode = itm1.PositionCode } into temp
from tm in temp.DefaultIfEmpty() from tm in temp.DefaultIfEmpty()
@ -181,7 +184,7 @@ public class InjectionMoldingRequestReader : IReader
await _injectionRequest.CreateAsync(input).ConfigureAwait(false); await _injectionRequest.CreateAsync(input).ConfigureAwait(false);
} }
_logger.LogInformation($"标识{guid}同步WMS结束,耗时{sw.ElapsedMilliseconds }毫秒"); _logger.LogInformation($"标识{guid}同步WMS结束,耗时{sw.ElapsedMilliseconds}毫秒");
} }
else else
{ {
@ -189,8 +192,6 @@ public class InjectionMoldingRequestReader : IReader
} }
}
//Client client = new Client(_options.Value.AutoRemote.IpAddress, _httpClientFactory.CreateClient());//调用客户记录 //Client client = new Client(_options.Value.AutoRemote.IpAddress, _httpClientFactory.CreateClient());//调用客户记录

4
be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Requests/IssueRequest/InjectionIssueRequests/DTOs/UnCompletedRequestDto.cs

@ -1,6 +1,8 @@
using Volo.Abp.Application.Dtos;
namespace Win_in.Sfs.Wms.Store.Application.Contracts; namespace Win_in.Sfs.Wms.Store.Application.Contracts;
public class UnCompletedRequestDto public class UnCompletedRequestDto: EntityDto
{ {
public string ItemCode { get; set; } public string ItemCode { get; set; }
public string LocCode { get; set; } public string LocCode { get; set; }

3
be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Requests/IssueRequest/InjectionIssueRequests/IInjectionIssueRequestAppService.cs

@ -13,5 +13,6 @@ public interface IInjectionIssueRequestAppService
Task<InjectionIssueRequestDTO> CreateAndHandleAsync(InjectionIssueRequestEditInput input); Task<InjectionIssueRequestDTO> CreateAndHandleAsync(InjectionIssueRequestEditInput input);
Task UpdateStatusCompletedAsync(string number); Task UpdateStatusCompletedAsync(string number);
Task<string> IsHasNewJobAsync(string requestNumber, List<string> jobNumber); Task<string> IsHasNewJobAsync(string requestNumber, List<string> jobNumber);
Task<List<UnCompletedRequestDto>> GetUnCompletedRequestAsync(List<UnCompletedRequestDto> p_list); Task<List<UnCompletedRequestDto>> GetListForSJ(List<UnCompletedRequestDto> p_list);
Task<List<UnCompletedRequestDto>> Getlist(List<UnCompletedRequestDto> pList);
} }

36
be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Requests/IssuelRequests/InjectionIssueRequests/InjectionIssueRequestAppService.cs

@ -401,8 +401,8 @@ public class InjectionIssueRequestAppService : SfsStoreRequestAppServiceBase<Inj
/// 获取已完成的叫料单数量 /// 获取已完成的叫料单数量
/// </summary> /// </summary>
/// <returns></returns> /// <returns></returns>
[HttpPost("get-uncompleted-request")] [HttpPost("sj")]
public async Task<List<UnCompletedRequestDto>> GetUnCompletedRequestAsync(List<UnCompletedRequestDto> pList) public async Task<List<UnCompletedRequestDto>> GetListForSJ(List<UnCompletedRequestDto> pList)
{ {
var returnList = new List<UnCompletedRequestDto>(); var returnList = new List<UnCompletedRequestDto>();
//枚举类型查不到改成SQL查询 //枚举类型查不到改成SQL查询
@ -427,6 +427,38 @@ public class InjectionIssueRequestAppService : SfsStoreRequestAppServiceBase<Inj
return returnList; return returnList;
} }
/// <summary>
/// 获取已完成的叫料单数量
/// </summary>
/// <returns></returns>
[HttpPost("get")]
public async Task<List<UnCompletedRequestDto>> Getlist(List<UnCompletedRequestDto> pList)
{
var returnList = new List<UnCompletedRequestDto>();
//枚举类型查不到改成SQL查询
var list = await _repository.GetListAsync(p =>
p.RequestStatus != EnumRequestStatus.Completed && p.IssueRequestType == EnumIssueRequestType.Vision)
.ConfigureAwait(false);
foreach (var itm in list)
{
var query = from detail in itm.Details
join citm in pList on new
{
detail.ItemCode,
locCode = detail.ToLocationCode,
areaCode = detail.PositionCode
} equals
new { citm.ItemCode, locCode = citm.LocCode, areaCode = citm.PositionCode }
select new UnCompletedRequestDto
{
ItemCode = detail.ItemCode,
LocCode = detail.ToLocationCode,
PositionCode = detail.PositionCode
};
returnList.AddRange(query.ToList());
}
return returnList;
}
#endregion #endregion
} }

Loading…
Cancel
Save