From babc2194169f30d8a6aa061c496502567047e3c7 Mon Sep 17 00:00:00 2001
From: zhaoxinyu <89237069@qq.com>
Date: Thu, 30 May 2024 15:06:31 +0800
Subject: [PATCH] =?UTF-8?q?=E6=9B=B4=E6=96=B0=E7=89=88=E6=9C=AC?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../Client/WebApi.cs | 38 +++++++
.../Incoming/InjectionMoldingRequestReader.cs | 104 ++++++++++++++++--
...ge.Fawtyg.InjectionMoldingTaskAgent.csproj | 1 +
3 files changed, 134 insertions(+), 9 deletions(-)
diff --git a/be/DataExchange/Fawtyg/Win_in.Sfs.Wms.DataExchange.Fawtyg.InjectionMoldingTaskAgent/Client/WebApi.cs b/be/DataExchange/Fawtyg/Win_in.Sfs.Wms.DataExchange.Fawtyg.InjectionMoldingTaskAgent/Client/WebApi.cs
index 028ad78ac..5b264c20c 100644
--- a/be/DataExchange/Fawtyg/Win_in.Sfs.Wms.DataExchange.Fawtyg.InjectionMoldingTaskAgent/Client/WebApi.cs
+++ b/be/DataExchange/Fawtyg/Win_in.Sfs.Wms.DataExchange.Fawtyg.InjectionMoldingTaskAgent/Client/WebApi.cs
@@ -535,6 +535,44 @@ namespace Win_in.Sfs.Wms.DataExchange.Fawtyg.InjectionMoldingTaskAgent.Incoming
}
+ [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "14.0.7.0 (NJsonSchema v11.0.0.0 (Newtonsoft.Json v13.0.0.0))")]
+ public partial class ResponCargoItem1
+ {
+
+ ///
+ /// 读取次数
+ ///
+ [Newtonsoft.Json.JsonProperty("number", Required = Newtonsoft.Json.Required.Default, NullValueHandling = Newtonsoft.Json.NullValueHandling.Ignore)]
+ public string Number { get; set; }
+
+ ///
+ /// 区域ID
+ ///
+ [Newtonsoft.Json.JsonProperty("areaID", Required = Newtonsoft.Json.Required.Default, NullValueHandling = Newtonsoft.Json.NullValueHandling.Ignore)]
+ public string AreaID { get; set; }
+
+ ///
+ /// 货位号
+ ///
+ [Newtonsoft.Json.JsonProperty("cargoID", Required = Newtonsoft.Json.Required.Default, NullValueHandling = Newtonsoft.Json.NullValueHandling.Ignore)]
+ public string CargoID { get; set; }
+
+ ///
+ /// 零件号
+ ///
+ [Newtonsoft.Json.JsonProperty("partCode", Required = Newtonsoft.Json.Required.Default, NullValueHandling = Newtonsoft.Json.NullValueHandling.Ignore)]
+ public string PartCode { get; set; }
+
+ ///
+ /// 货位状态
+ ///
+ [Newtonsoft.Json.JsonProperty("flag", Required = Newtonsoft.Json.Required.DisallowNull, NullValueHandling = Newtonsoft.Json.NullValueHandling.Ignore)]
+ public int Flag { get; set; }
+
+ }
+
+
+
[System.CodeDom.Compiler.GeneratedCode("NSwag", "14.0.7.0 (NJsonSchema v11.0.0.0 (Newtonsoft.Json v13.0.0.0))")]
diff --git a/be/DataExchange/Fawtyg/Win_in.Sfs.Wms.DataExchange.Fawtyg.InjectionMoldingTaskAgent/Incoming/InjectionMoldingRequestReader.cs b/be/DataExchange/Fawtyg/Win_in.Sfs.Wms.DataExchange.Fawtyg.InjectionMoldingTaskAgent/Incoming/InjectionMoldingRequestReader.cs
index 21554f22b..47335b81c 100644
--- a/be/DataExchange/Fawtyg/Win_in.Sfs.Wms.DataExchange.Fawtyg.InjectionMoldingTaskAgent/Incoming/InjectionMoldingRequestReader.cs
+++ b/be/DataExchange/Fawtyg/Win_in.Sfs.Wms.DataExchange.Fawtyg.InjectionMoldingTaskAgent/Incoming/InjectionMoldingRequestReader.cs
@@ -23,6 +23,9 @@ using System.Net.NetworkInformation;
using Win_in.Sfs.Shared.Domain.Shared.Enums.Store;
using System.Threading;
using System.Diagnostics;
+using System.Reflection;
+using Microsoft.Extensions.Primitives;
+using Win_in.Sfs.Shared.Application;
namespace Win_in.Sfs.Wms.DataExchange.Fawtyg.InjectionMoldingTaskAgent.Incoming;
public class InjectionMoldingRequestReader : IReader
@@ -92,26 +95,46 @@ public class InjectionMoldingRequestReader : IReader
}
var ids = _options.Value.AutoRemote.AreaIDs.Split(",");
List camralist = new List();
-
+ List camralist1 = new List();
for (int i = 1; i <= invterval; i++)
{
foreach (var itm in ids)//遍历区域查找所有货物
{
var idsList = await client.GetCargoStaticAsync(itm).ConfigureAwait(false);
+
+ Thread.Sleep(1000);//设备读取50ms延时,设置延时时间为1000ms保证读取更新到信息
//flag 1-有货 0-空闲
+ foreach (var respon in idsList.Where(r => r.Flag == 0))
+ {
+ var response = new ResponCargoItem1();
+ response.FromObject(respon);
+ response.Number = $"第{i.ToString()}次读取";
+ camralist1.Add(response);
+ }
+
camralist.AddRange(idsList.Where(r => r.Flag == 0));
}
_logger.LogInformation($"读取标识{guid}读取成功次数{i},耗时 {sw.ElapsedMilliseconds}毫秒");
}
- _logger.LogInformation($"标识{guid}读取全部空闲内容:{System.Text.Json.JsonSerializer.Serialize(camralist)}");
+ _logger.LogInformation($"标识{guid}读取{invterval}次接口表:{System.Text.Json.JsonSerializer.Serialize(camralist1)}");
+
+
+ _logger.LogInformation(MakeGrid($"标识{guid}读取{invterval}次接口表",camralist1));
+
+
+
+
+
+
+
sw.Stop();
- Thread.Sleep(1000);
+
//按区域、货位号、零件、标志
var group= camralist.GroupBy(r => new { r.AreaID, r.CargoID, r.PartCode, r.Flag });
//获取和次数相等的空闲数据
@@ -121,7 +144,8 @@ public class InjectionMoldingRequestReader : IReader
if (errorlist.Count > 0)
{
- _logger.LogInformation($"标识{guid}不能在规定次数内完成读取的{System.Text.Json.JsonSerializer.Serialize(errorlist.Select(r => r.Key).ToList())}");
+ _logger.LogInformation($"标识{guid}不能同步内容JSON:{System.Text.Json.JsonSerializer.Serialize(errorlist.Select(r => r.Key).ToList())}");
+ _logger.LogInformation(MakeGrid($"标识{guid}不能同步内容", errorlist));
}
//如果有货位空闲
@@ -150,12 +174,9 @@ public class InjectionMoldingRequestReader : IReader
select itm;
var injectionList = query.ToList();//已经完成的记录
- _logger.LogInformation($"标识{guid}同步WMS未完成记录:{System.Text.Json.JsonSerializer.Serialize(injectionList)}");
-
-
+ _logger.LogInformation($"标识{guid}同步WMS内容:{System.Text.Json.JsonSerializer.Serialize(injectionList)}");
-
-
+ _logger.LogInformation(MakeGrid($"{guid}同步WMS内容", injectionList));
@@ -377,14 +398,79 @@ public class InjectionMoldingRequestReader : IReader
public decimal Qty { get; set; }
}
+ private string MakeGrid(string header,List p_list) where T : class
+ {
+ StringBuilder sb = new StringBuilder();
+ sb.AppendLine(header);
+ int rows = p_list.Count;
+ var first = p_list.First();
+ var properties = first.GetType().GetProperties();
+ int columns = properties.Length;
+ var columNames = first.GetType().GetProperties().ToList().Select(p => p.Name).ToList();
+ int cellWidth = 20; // 每个单元格的宽度
+ List contents = new List();
+ for (int i = 0; i < rows; i++)
+ {
+ var row = p_list[i];
+ foreach (PropertyInfo property in properties)
+ {
+ // 使用反射获取属性值
+ contents.Add(property.GetValue(row).ToString());
+ }
+ }
+
+ // 输出列头
+ for (int j = 0; j < columns; j++)
+ {
+ sb.Append("|");
+ sb.Append(FormatCell(columNames[j], cellWidth));
+ }
+ sb.Append("|");
+ sb.AppendLine();
+
+ // 输出列头分隔线
+ for (int k = 0; k < columns * (cellWidth + 1) + 1; k++)
+ {
+ sb.Append("-");
+ }
+ sb.AppendLine();
+
+ // 输出网格内容
+ for (int i = 0; i < rows; i++)
+ {
+ for (int j = 0; j < columns; j++)
+ {
+ sb.Append("|");
+ sb.Append(FormatCell(contents[i * columns + j], cellWidth));
+ }
+ sb.Append("|");
+ sb.AppendLine();
+ }
+ return sb.ToString();
+
+ }
+
+
+
+
+
+
+
+
+
+
+ private string FormatCell(object value, int width)
+ {
+ return value.ToString().PadLeft(width);
+ }
}
diff --git a/be/DataExchange/Fawtyg/Win_in.Sfs.Wms.DataExchange.Fawtyg.InjectionMoldingTaskAgent/Win_in.Sfs.Wms.DataExchange.Fawtyg.InjectionMoldingTaskAgent.csproj b/be/DataExchange/Fawtyg/Win_in.Sfs.Wms.DataExchange.Fawtyg.InjectionMoldingTaskAgent/Win_in.Sfs.Wms.DataExchange.Fawtyg.InjectionMoldingTaskAgent.csproj
index 58f34a399..8006c4dfa 100644
--- a/be/DataExchange/Fawtyg/Win_in.Sfs.Wms.DataExchange.Fawtyg.InjectionMoldingTaskAgent/Win_in.Sfs.Wms.DataExchange.Fawtyg.InjectionMoldingTaskAgent.csproj
+++ b/be/DataExchange/Fawtyg/Win_in.Sfs.Wms.DataExchange.Fawtyg.InjectionMoldingTaskAgent/Win_in.Sfs.Wms.DataExchange.Fawtyg.InjectionMoldingTaskAgent.csproj
@@ -12,6 +12,7 @@
+