diff --git a/MasstransferExporter/DataExporter/CoordinateService.cs b/MasstransferExporter/DataExporter/CoordinateService.cs index 5dc1dea..5e2a747 100644 --- a/MasstransferExporter/DataExporter/CoordinateService.cs +++ b/MasstransferExporter/DataExporter/CoordinateService.cs @@ -1,4 +1,9 @@ -using MasstransferInfrastructure.Database.Sqlite; +using MasstransferCommon.Model.Constant; +using MasstransferCommon.Utils; +using MasstransferCommunicate.Minio; +using MasstransferCommunicate.Mqtt.Client; +using MasstransferExporter.DataExporter.Model; +using MasstransferInfrastructure.Database.Sqlite; namespace MasstransferExporter.DataExporter; @@ -9,12 +14,96 @@ public class CoordinateService { private static readonly SqliteHelper Db = SqliteHelper.GetInstance(); + private static MinioHelper _minio = MinioHelper.GetInstance(); + /// /// 坐标信息导出 /// - public static void CoordinateExporter() + public static async void CoordinateExporter() { - - + await MarkPointExporter(); + } + + /// + /// 上传mark点坐标文件 + /// + private static async Task MarkPointExporter() + { + var formula = FormulaService.GetSelectedFormula(); + + if (formula == null) return; + + var benchSetting = FormulaService.GetWorkBenchSettingByFormulaId(formula.Id); + + if (benchSetting == null) return; + + // 将mark点转为json,写到临时文件 + Dictionary coordinates = new Dictionary(); + coordinates.Add("SolderJointX1", benchSetting.SolderJointX1); + coordinates.Add("SolderJointY1", benchSetting.SolderJointY1); + coordinates.Add("SolderJointX2", benchSetting.SolderJointX2); + coordinates.Add("SolderJointY2", benchSetting.SolderJointY2); + coordinates.Add("SolderJointX3", benchSetting.SolderJointX3); + coordinates.Add("SolderJointY3", benchSetting.SolderJointY3); + + var json = JsonUtil.ToJson(coordinates); + + var path = Path.Combine(System.Environment.CurrentDirectory, "mark.json"); + + await File.WriteAllTextAsync(path, json); + + var fileName = $"{Constants.SN}/20230301/20230301/mark/mark.json"; + + await _minio.UploadFileAsync("coordinate", fileName, path); + + var data = new CoordinateData() + { + FileType = "MARK", + BatchNumber = "20230301", + BizNumber = "20230301" + }; + await MessageQueueHelper.Publish(Topics.CoordinateUpload, data); + } + + /// + /// 上传wafer坐标文件 + /// + private async void WaferCoordinateExporter() + { + var data = new CoordinateData() + { + FileType = "WAFER", + BatchNumber = "20230301", + BizNumber = "20230301" + }; + await MessageQueueHelper.Publish(Topics.CoordinateUpload, data); + } + + /// + /// 上传基板坐标文件 + /// + private async void SubstrateCoordinateExporter() + { + var data = new CoordinateData() + { + FileType = "PCB", + BatchNumber = "20230301", + BizNumber = "20230301" + }; + await MessageQueueHelper.Publish(Topics.CoordinateUpload, data); + } + + /// + /// 上传动打路径坐标文件 + /// + private async void PathCoordinateExporter() + { + var data = new CoordinateData() + { + FileType = "ROUTE", + BatchNumber = "20230301", + BizNumber = "20230301" + }; + await MessageQueueHelper.Publish(Topics.CoordinateUpload, data); } } \ No newline at end of file diff --git a/MasstransferExporter/DataExporter/FormulaService.cs b/MasstransferExporter/DataExporter/FormulaService.cs index 922c501..b9f6956 100644 --- a/MasstransferExporter/DataExporter/FormulaService.cs +++ b/MasstransferExporter/DataExporter/FormulaService.cs @@ -24,6 +24,15 @@ public class FormulaService return BeanUtil.CopyProperties(formulas); } + /// + /// 获取当前已经启用的配方 + /// + /// + public static Formula? GetSelectedFormula() + { + return Db.Query("select * from formulas where selected = 1").FirstOrDefault(); + } + /// /// 根据配方id来获取配方信息 /// @@ -51,7 +60,7 @@ public class FormulaService .FirstOrDefault(); } - private static WorkBenchSetting? GetWorkBenchSettingByFormulaId(string formulaId) + public static WorkBenchSetting? GetWorkBenchSettingByFormulaId(string formulaId) { return Db.Query("select * from work_bench_settings where formulaId = ?", formulaId) .FirstOrDefault(); diff --git a/MasstransferExporter/DataExporter/Model/CoordinateData.cs b/MasstransferExporter/DataExporter/Model/CoordinateData.cs new file mode 100644 index 0000000..ae8c95f --- /dev/null +++ b/MasstransferExporter/DataExporter/Model/CoordinateData.cs @@ -0,0 +1,10 @@ +namespace MasstransferExporter.DataExporter.Model; + +public class CoordinateData +{ + public string FileType { get; set; } + + public string BizNumber { get; set; } + + public string BatchNumber { get; set; } +} \ No newline at end of file diff --git a/MasstransferExporter/Program.cs b/MasstransferExporter/Program.cs index 7dba110..722aed3 100644 --- a/MasstransferExporter/Program.cs +++ b/MasstransferExporter/Program.cs @@ -1,5 +1,5 @@ using MasstransferCommunicate.Mqtt.Client; -using MasstransferExporter.ImageExporter; +using MasstransferExporter.DataExporter; using MasstransferInfrastructure.Mqtt.Model; class Program @@ -15,7 +15,7 @@ class Program await MessageQueueHelper.InitConnect(options); - ImageService.ImageExporter(); + CoordinateService.CoordinateExporter(); Console.WriteLine("按任意键退出");