Browse Source

更新版本

dev_DY_CC
赵新宇 12 months ago
parent
commit
4b18fcb9a6
  1. 85
      be/DataExchange/Fawtyg/Win_in.Sfs.Wms.DataExchange.Fawtyg.InjectionMoldingTaskAgent/Incoming/InjectionMoldingRequestReader.cs
  2. 2
      be/DataExchange/Fawtyg/Win_in.Sfs.Wms.DataExchange.Fawtyg.InjectionMoldingTaskAgent/Incoming/InjectionMoldingTaskIncomingBackgroundWorker.cs
  3. 6
      be/DataExchange/Fawtyg/Win_in.Sfs.Wms.DataExchange.Fawtyg.InjectionMoldingTaskAgent/InjectionMoldingTaskOptions.cs
  4. 7
      be/DataExchange/Fawtyg/Win_in.Sfs.Wms.DataExchange.Fawtyg.InjectionMoldingTaskAgent/appsettings.json
  5. 42
      be/Modules/BaseData/src/Win_in.Sfs.Basedata.Application/test/TestAppService.cs
  6. 5
      be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Jobs/IssueJobs/KittingIssueJobs/KittingIssueJobAppService.cs
  7. 2
      be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Jobs/IssueJobs/proxy/IssueJobToRestoClient.cs

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

@ -21,6 +21,8 @@ using System.IdentityModel.Tokens.Jwt;
using Volo.Abp;
using System.Net.NetworkInformation;
using Win_in.Sfs.Shared.Domain.Shared.Enums.Store;
using System.Threading;
using System.Diagnostics;
namespace Win_in.Sfs.Wms.DataExchange.Fawtyg.InjectionMoldingTaskAgent.Incoming;
public class InjectionMoldingRequestReader : IReader
@ -62,41 +64,44 @@ public class InjectionMoldingRequestReader : IReader
{
try
{
// 获取注塑叫料任务数量
//var count = await _injectionRequest.GetCountAsync().ConfigureAwait(false);
//List<InjectionIssueRequestEditInput> joblist = new List<InjectionIssueRequestEditInput>();
//if (count == 0)
//{
// 调用 ReaderCameraApi 方法获取摄像头信息
var sleepTime = (_options.Value.AutoRemote.TimeCycle*60/ _options.Value.AutoRemote.Interval)-10;
var invterval = _options.Value.AutoRemote.Interval;
var successTime = 0;
for (int i = 0; i <invterval; i++)
{
Stopwatch sw = Stopwatch.StartNew();
Client client = new Client(_options.Value.AutoRemote.IpAddress, _httpClientFactory.CreateClient());//调用客户记录
var flag= await client.GetMacStaticAsync().ConfigureAwait(false);
if (flag!=1)
var flag = await client.GetMacStaticAsync().ConfigureAwait(false);
if (flag != 1)
{
// 记录错误日志并返回空列表
_logger.LogInformation($"读取到摄像头信息为不可用{DateTime.Now},请检查摄像头");
return new List<IncomingFromExternal>();
}
if (string.IsNullOrEmpty(_options.Value.AutoRemote.AreaIDs))
{
_logger.LogInformation($"没有设置指定区域AutoRemote->AreaIDs");
return new List<IncomingFromExternal>();
}
var ids=_options.Value.AutoRemote.AreaIDs.Split(",");
var ids = _options.Value.AutoRemote.AreaIDs.Split(",");
List<ResponCargoItem> camralist = new List<ResponCargoItem>();
foreach (var itm in ids)//遍历区域查找所有货物
{
var idsList= await client.GetCargoStaticAsync(itm).ConfigureAwait(false);
var idsList = await client.GetCargoStaticAsync(itm).ConfigureAwait(false);
camralist.AddRange(idsList);
}
camralist = camralist.Where(p=>p.Flag==0).ToList();
successTime++;
if (successTime == invterval)
{
List<UnCompletedRequestDto> inputdetail=new List<UnCompletedRequestDto>();
List<UnCompletedRequestDto> inputdetail = new List<UnCompletedRequestDto>();
foreach (var item in camralist)
{
UnCompletedRequestDto jobrequestinput = new UnCompletedRequestDto();
@ -106,15 +111,15 @@ public class InjectionMoldingRequestReader : IReader
inputdetail.Add(jobrequestinput);
}
var uncompletelist= await _injectionRequest.GetUnCompletedRequestAsync(inputdetail).ConfigureAwait(false);//将所有库位零件信息查找未完成记录
var uncompletelist = await _injectionRequest.GetUnCompletedRequestAsync(inputdetail).ConfigureAwait(false);//将所有库位零件信息查找未完成记录
var query = from itm in camralist
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()
where tm == null
select itm;
var injectionList=query.ToList();//已经完成的记录
var injectionList = query.ToList();//已经完成的记录
foreach (var inject in injectionList)
@ -135,14 +140,14 @@ public class InjectionMoldingRequestReader : IReader
{
ItemCode = inject.PartCode,
ToLocationCode = inject.AreaID.ToString(),
PositionCode=inject.CargoID,
PositionCode = inject.CargoID,
Qty = 1,
RecommendType = EnumRecommendType.RAW,
IssuedQty = 0,
ReceivedQty = 0,
Status = EnumStatus.Open,
RequestStatus = EnumRequestStatus.New,
BoxQty=1
BoxQty = 1
};
// 添加注塑叫料明细任务数据
injectionRequestDetails.Add(detailInput);
@ -161,14 +166,48 @@ public class InjectionMoldingRequestReader : IReader
}
// 创建新的注塑请求并将数据写入数据库
await _injectionRequest.CreateAsync(input).ConfigureAwait(false);
}
}
else
{
Thread.Sleep(sleepTime * 1000);
}
sw.Stop();
_logger.LogInformation($"读取成功次数{successTime},耗时 ${sw.ElapsedMilliseconds / 1000 / 60}分钟");
}
//Client client = new Client(_options.Value.AutoRemote.IpAddress, _httpClientFactory.CreateClient());//调用客户记录
//var flag= await client.GetMacStaticAsync().ConfigureAwait(false);
//if (flag!=1)
//{
// // 记录错误日志并返回空列表
// _logger.LogInformation($"读取到摄像头信息为不可用{DateTime.Now},请检查摄像头");
// return new List<IncomingFromExternal>();
//}
//else
//if (string.IsNullOrEmpty(_options.Value.AutoRemote.AreaIDs))
//{
// _logger.LogInformation("注塑叫料任务已存在,无需读取");
// _logger.LogInformation($"没有设置指定区域AutoRemote->AreaIDs");
// return new List<IncomingFromExternal>();
//}
//var ids=_options.Value.AutoRemote.AreaIDs.Split(",");
//List<ResponCargoItem> camralist = new List<ResponCargoItem>();
//foreach (var itm in ids)//遍历区域查找所有货物
//{
// var idsList= await client.GetCargoStaticAsync(itm).ConfigureAwait(false);
// camralist.AddRange(idsList);
//}
//camralist = camralist.Where(p=>p.Flag==0).ToList();
//}
}
// 捕获特定异常并记录日志

2
be/DataExchange/Fawtyg/Win_in.Sfs.Wms.DataExchange.Fawtyg.InjectionMoldingTaskAgent/Incoming/InjectionMoldingTaskIncomingBackgroundWorker.cs

@ -24,7 +24,7 @@ public class InjectionMoldingTaskIncomingBackgroundWorker : AsyncPeriodicBackgro
) : base(timer, serviceScopeFactory)
{
_options = options;
Timer.Period = options.Value.IncomingOptions.PeriodSeconds * 1000; //default 10 minutes
Timer.Period = options.Value.AutoRemote.TimeCycle * 60 * 1000; //default 10 minutes
}
[UnitOfWork]

6
be/DataExchange/Fawtyg/Win_in.Sfs.Wms.DataExchange.Fawtyg.InjectionMoldingTaskAgent/InjectionMoldingTaskOptions.cs

@ -27,6 +27,10 @@ public class InjectionAutoRemote
public string AreaIDs { set; get; }
public int Interval { set; get; } // interval
public int TimeCycle { set; get; }
}
@ -36,7 +40,7 @@ public class InjectionAutoRemote
public class DataExchangeOptions
{
public bool Active { get; set; }
public int PeriodSeconds { get; set; } = 60;
public int PeriodSeconds { get; set; } = 300;
public int BatchSize { get; set; } = 10;
public int MaxCount { get; set; } = 100;
public int RetryTimes { get; set; } = 3;

7
be/DataExchange/Fawtyg/Win_in.Sfs.Wms.DataExchange.Fawtyg.InjectionMoldingTaskAgent/appsettings.json

@ -71,7 +71,12 @@
"UserName": "",
"Password": "",
"Token": "",
"AreaIDs": "1"
"AreaIDs": "1",
"Interval" : "3", // interval
"TimeCycle" :"5"
},
"IncomingOptions": {

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

@ -36,36 +36,36 @@ public class TestService:ApplicationService
_options = options;
}
///// <summary>
///// 生命周期操作
///// </summary>
//[HttpPost("GetMacStatic")]
//public async Task<int> GetMacStatic()
//{
// return 1;
//}
/// <summary>
/// 生命周期操作
/// </summary>
[HttpPost("GetMacStatic")]
public async Task<int> GetMacStatic()
{
return 1;
}
//[HttpPost("GetCargoStatic")]
///// <summary>
///// 异步开始生命周期操作不能堵塞
///// </summary>
//public async Task<List<ResponCargoItem>> GetCargoStatic(string p_AreaID)
//{
[HttpPost("GetCargoStatic")]
/// <summary>
/// 异步开始生命周期操作不能堵塞
/// </summary>
public async Task<List<ResponCargoItem>> GetCargoStatic(string p_AreaID)
{
// List<ResponCargoItem> result = new List<ResponCargoItem>();
List<ResponCargoItem> result = new List<ResponCargoItem>();
// result.Add(new ResponCargoItem() { AreaID = "1", CargoID = "PTXB1", PartCode = "TMDLYA0A071AB", Flag = 0 });
// result.Add(new ResponCargoItem() { AreaID = "1", CargoID = "PTXB2", PartCode = "TMDLYA0A061AB", Flag = 0 });
// result.Add(new ResponCargoItem() { AreaID = "2", CargoID = "ZSXB2", PartCode = "TMDLYD0ABM5A", Flag = 0 });
result.Add(new ResponCargoItem() { AreaID = "1", CargoID = "PTXB1", PartCode = "TMDLYA0A071AB", Flag = 0 });
result.Add(new ResponCargoItem() { AreaID = "1", CargoID = "PTXB2", PartCode = "TMDLYA0A061AB", Flag = 0 });
result.Add(new ResponCargoItem() { AreaID = "2", CargoID = "ZSXB2", PartCode = "TMDLYD0ABM5A", Flag = 0 });
// result = result.Where(p => p.AreaID == p_AreaID).ToList();
result = result.Where(p => p.AreaID == p_AreaID).ToList();
// return result;
return result;
//}
}
[HttpPost("SyncIssueJobStereo")]
public virtual async Task<ReusltObject> SyncIssueJobStereoAsync(IssueJobToRestoDTO input)

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

@ -397,13 +397,11 @@ public class KittingIssueJobAppService
main.Details = IssueJobToRestoDetailDTOs;
var httpclient = _httpClientFactory.CreateClient();
#if DEBUG
string json= System.Text.Json.JsonSerializer.Serialize(main);
_options.Value.Address = "http://localhost:59094/";//测试地址
_options.Value.Token = "";//测试token
_options.Value.UserName = "";//测试用户名
_options.Value.Password = "";//测试密码
#endif
if (!string.IsNullOrEmpty(_options.Value.Token))
{
@ -426,9 +424,7 @@ public class KittingIssueJobAppService
ret.Message=ex.Message;
ret.OperateTime = DateTime.Now.ToString("yyyy-MM-dd");
}
return ret;
}
[HttpPost("receive-issue-job-stereo")]
@ -447,7 +443,6 @@ public class KittingIssueJobAppService
};
try
{
if (input.Jobs.Count > 0)
{
var jobs = input.Jobs;

2
be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Jobs/IssueJobs/proxy/IssueJobToRestoClient.cs

@ -95,7 +95,7 @@ namespace MyNamespace
var urlBuilder_ = new System.Text.StringBuilder();
if (!string.IsNullOrEmpty(_baseUrl)) urlBuilder_.Append(_baseUrl);
// Operation Path: "CargoState/SyncIssueJobStereo"
urlBuilder_.Append("CargoState/SyncIssueJobStereo");//修改路由需求
urlBuilder_.Append("CargoState/SyncIssueJobStereo");//修改路由需求
PrepareRequest(client_, request_, urlBuilder_);

Loading…
Cancel
Save