完善查询坐标的功能
This commit is contained in:
parent
7bcc84ee8b
commit
0e5f7a56d8
|
@ -1,4 +1,6 @@
|
|||
using MasstransferCommon.Model.Constant;
|
||||
using MasstransferCommon.Atrributes;
|
||||
using MasstransferCommon.Events;
|
||||
using MasstransferCommon.Model.Constant;
|
||||
using MasstransferCommon.Utils;
|
||||
using MasstransferCommunicate.Minio;
|
||||
using MasstransferCommunicate.Mqtt.Client;
|
||||
|
@ -11,7 +13,7 @@ namespace MasstransferExporter.DataExporter;
|
|||
/// <summary>
|
||||
/// 坐标信息业务类
|
||||
/// </summary>
|
||||
public class CoordinateService
|
||||
public class CoordinateService : Instant
|
||||
{
|
||||
private static readonly SqliteHelper Db = SqliteHelper.GetInstance();
|
||||
|
||||
|
@ -19,7 +21,7 @@ public class CoordinateService
|
|||
|
||||
/// <summary>
|
||||
/// 坐标信息导出
|
||||
/// 每5秒钟自动上报一次当前时间内的坐标信息
|
||||
/// 每5分钟自动上报一次当前时间内的坐标信息
|
||||
/// </summary>
|
||||
public static Task CoordinateExporter()
|
||||
{
|
||||
|
@ -37,7 +39,7 @@ public class CoordinateService
|
|||
Directory.CreateDirectory(temp);
|
||||
|
||||
var endTime = DateTime.Now;
|
||||
var startTime = endTime.AddDays(-5);
|
||||
var startTime = endTime.AddMinutes(-5);
|
||||
|
||||
WaferCoordinateExporter(startTime, endTime);
|
||||
SubstrateCoordinateExporter(startTime, endTime);
|
||||
|
@ -107,6 +109,16 @@ public class CoordinateService
|
|||
endTime);
|
||||
|
||||
foreach (var wafer in wafers)
|
||||
{
|
||||
await UploadWaferCoords(wafer);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 生产晶环坐标文件并上传
|
||||
/// </summary>
|
||||
/// <param name="wafer"></param>
|
||||
private static async Task UploadWaferCoords(Wafer wafer)
|
||||
{
|
||||
var path = Path.Combine(Environment.CurrentDirectory, "temp", $"{wafer.Id}.json");
|
||||
try
|
||||
|
@ -130,7 +142,6 @@ public class CoordinateService
|
|||
Console.WriteLine(e);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 上传基板坐标文件
|
||||
|
@ -204,4 +215,49 @@ public class CoordinateService
|
|||
}
|
||||
}
|
||||
}
|
||||
|
||||
public void Initialized()
|
||||
{
|
||||
EventBus<bool>.AddEventHandler(EventType.StartUp,
|
||||
async () => { await MessageQueueHelper.Subscribe(Topics.QueryCoordinate, QueryCoordinate); });
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 处理查询坐标请求
|
||||
/// </summary>
|
||||
/// <param name="topic"></param>
|
||||
/// <param name="dto"></param>
|
||||
private static async Task QueryCoordinate(string topic, QueryCoordinateDTO? dto)
|
||||
{
|
||||
if (dto == null) return;
|
||||
|
||||
var batchNumber = dto.BatchNumber;
|
||||
var bizNumber = dto.BizNumber;
|
||||
var fileType = dto.FileType;
|
||||
|
||||
// 根据文件类型查询对应的文件
|
||||
if ("WAFER".Equals(fileType))
|
||||
{
|
||||
// 查询的是晶圆的数据
|
||||
var wafer = Db.Query<Wafer>(
|
||||
"SELECT * FROM wafers WHERE wafer_code = ? and batch_code = ? order by create_time desc limit 1",
|
||||
bizNumber,
|
||||
batchNumber).FirstOrDefault();
|
||||
if (wafer == null) return;
|
||||
|
||||
// 生产晶圆坐标文件并上传
|
||||
await UploadWaferCoords(wafer);
|
||||
}
|
||||
else
|
||||
{
|
||||
// 对应查询的是基板的数据
|
||||
var substrate = Db.Query<Substrate>(
|
||||
"SELECT * FROM substrates WHERE substrate_code = ? and batch_no = ? order by create_time desc limit 1",
|
||||
bizNumber,
|
||||
batchNumber).FirstOrDefault();
|
||||
if (substrate == null) return;
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,12 @@
|
|||
using Newtonsoft.Json;
|
||||
|
||||
namespace MasstransferExporter.DataExporter.Model;
|
||||
|
||||
public class QueryCoordinateDTO
|
||||
{
|
||||
[JsonProperty("fileType")] public string FileType { get; set; }
|
||||
|
||||
[JsonProperty("bizNumber")] public string BizNumber { get; set; }
|
||||
|
||||
[JsonProperty("batchNumber")] public string BatchNumber { get; set; }
|
||||
}
|
|
@ -41,8 +41,15 @@ public class Substrate : Entity
|
|||
[Column("altimetry_json"), Description("基板测高信息")]
|
||||
public string? AltimetryJson { get; set; }
|
||||
|
||||
[Column("stander_altimetry_json"), Description("基板测高信息")]
|
||||
public string? StanderAltimetryJson { get; set; }
|
||||
|
||||
[Column("substrate_mark_point_json"), Description("基板3个标点信息")]
|
||||
public string? SubstrateMarkPointJson { get; set; }
|
||||
|
||||
|
||||
[Ignore]
|
||||
public List<double[]> Coordinates
|
||||
public List<double[]>? Coordinates
|
||||
{
|
||||
get => !CoordinateJson.IsNullOrEmpty() ? JsonUtil.FromJson<List<double[]>>(CoordinateJson) : [];
|
||||
set
|
||||
|
@ -55,7 +62,7 @@ public class Substrate : Entity
|
|||
}
|
||||
|
||||
[Ignore]
|
||||
public double[,] Altimetry
|
||||
public double[,]? Altimetry
|
||||
{
|
||||
get => !AltimetryJson.IsNullOrEmpty() ? JsonUtil.FromJson<double[,]>(AltimetryJson) : new double[,] { };
|
||||
set
|
||||
|
@ -66,4 +73,34 @@ public class Substrate : Entity
|
|||
}
|
||||
}
|
||||
}
|
||||
|
||||
[Ignore]
|
||||
public double[,]? StanderAltimetry
|
||||
{
|
||||
get => !StanderAltimetryJson.IsNullOrEmpty()
|
||||
? JsonUtil.FromJson<double[,]>(StanderAltimetryJson)
|
||||
: new double[,] { };
|
||||
set
|
||||
{
|
||||
if (value != null)
|
||||
{
|
||||
StanderAltimetryJson = JsonUtil.ToJson(value);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
[Ignore]
|
||||
public SubstrateMarkPoint? SubstrateMarkPoint
|
||||
{
|
||||
get => !SubstrateMarkPointJson.IsNullOrEmpty()
|
||||
? JsonUtil.FromJson<SubstrateMarkPoint>(SubstrateMarkPointJson)
|
||||
: new SubstrateMarkPoint();
|
||||
set
|
||||
{
|
||||
if (value != null)
|
||||
{
|
||||
SubstrateMarkPointJson = JsonUtil.ToJson(value);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,19 @@
|
|||
namespace MasstransferExporter.DataExporter.Model;
|
||||
|
||||
/// <summary>
|
||||
/// 基板mark点坐标
|
||||
/// </summary>
|
||||
public class SubstrateMarkPoint
|
||||
{
|
||||
public double X1 { get; set; }
|
||||
|
||||
public double Y1 { get; set; }
|
||||
|
||||
public double X2 { get; set; }
|
||||
|
||||
public double Y2 { get; set; }
|
||||
|
||||
public double X3 { get; set; }
|
||||
|
||||
public double Y3 { get; set; }
|
||||
}
|
|
@ -89,7 +89,7 @@ public class ImageService : Instant
|
|||
}
|
||||
|
||||
// 上传文件
|
||||
var fileName = $"{Constants.SN}/{codeDir.Name}/{batchDir.Name}/{imageType}/{name}";
|
||||
var fileName = $"{Constants.SN}/{codeDir.Name}/{batchDir.Name}/{picType}/{name}";
|
||||
|
||||
await Minio.UploadFileAsync(bucket, fileName, path);
|
||||
|
||||
|
|
|
@ -1,12 +1,14 @@
|
|||
namespace MasstransferExporter.ImageExporter.Model;
|
||||
using Newtonsoft.Json;
|
||||
|
||||
namespace MasstransferExporter.ImageExporter.Model;
|
||||
|
||||
public class ImageExportData
|
||||
{
|
||||
public string PicType { get; set; }
|
||||
[JsonProperty("picType")] public string PicType { get; set; }
|
||||
|
||||
public string BizNumber { get; set; }
|
||||
[JsonProperty("bizNumber")] public string BizNumber { get; set; }
|
||||
|
||||
public string BatchNumber { get; set; }
|
||||
[JsonProperty("batchNumber")] public string BatchNumber { get; set; }
|
||||
|
||||
public string ImageType { get; set; }
|
||||
[JsonProperty("imageType")] public string ImageType { get; set; }
|
||||
}
|
|
@ -1,5 +1,4 @@
|
|||
using System.Security.Cryptography.X509Certificates;
|
||||
using MasstransferCommon.Model.Constant;
|
||||
using MasstransferCommon.Model.Constant;
|
||||
using MasstransferCommon.Utils;
|
||||
using MasstransferCommunicate.Mqtt.Model;
|
||||
using MasstransferInfrastructure.Mqtt.Model;
|
||||
|
|
|
@ -21,6 +21,7 @@ public class ProcessHelper
|
|||
{
|
||||
if (_pipe != null) return;
|
||||
_pipe = new PipeClient();
|
||||
_pipe.MessageReceived += HandleMessageReceived;
|
||||
_pipe.Start();
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue