完善参数下发相关参数
This commit is contained in:
parent
c140544af7
commit
3d1c151f32
|
@ -0,0 +1,51 @@
|
|||
using MasstransferCommon.Model.Constant;
|
||||
using MasstransferCommon.Utils;
|
||||
using MasstransferCommunicate.Mqtt.Client;
|
||||
using MasstransferExporter.DataExporter.Model;
|
||||
using Masuit.Tools;
|
||||
|
||||
namespace MasstransferExporter.DataExporter;
|
||||
|
||||
/// <summary>
|
||||
/// 配置服务
|
||||
/// </summary>
|
||||
public class ConfigService
|
||||
{
|
||||
/// <summary>
|
||||
/// 监听配置下发事件
|
||||
/// </summary>
|
||||
public static async Task ListenConfigIssuedEvent()
|
||||
{
|
||||
await MessageQueueHelper.Subscribe(Topics.DownloadConfigData, HandleConfigIssuedEvent);
|
||||
}
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// 处理接收到的配置下发事件,根据配置类型执行不同的操作
|
||||
/// </summary>
|
||||
/// <param name="topic"></param>
|
||||
/// <param name="payload"></param>
|
||||
private static void HandleConfigIssuedEvent(string topic, string payload)
|
||||
{
|
||||
if (payload.IsNullOrEmpty()) return;
|
||||
|
||||
var data = JsonUtil.FromJson<ConfigData>(payload);
|
||||
|
||||
if (data.IsNullOrEmpty()) return;
|
||||
|
||||
var type = data.Type;
|
||||
switch (type)
|
||||
{
|
||||
case "system":
|
||||
SystemParamsService.HandleSystemParamsIssuedEvent(data);
|
||||
break;
|
||||
case "formula":
|
||||
{
|
||||
var param = data.Param;
|
||||
var formulaDto = JsonUtil.FromJson<FormulaDTO>(JsonUtil.ToJson(param));
|
||||
FormulaService.HandleFormulaIssuedEvent(formulaDto);
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
|
@ -4,6 +4,7 @@ using MasstransferCommunicate.Mqtt.Client;
|
|||
using MasstransferCore.Model.Entity;
|
||||
using MasstransferExporter.DataExporter.Model;
|
||||
using MasstransferInfrastructure.Database.Sqlite;
|
||||
using Masuit.Tools;
|
||||
|
||||
namespace MasstransferExporter.DataExporter;
|
||||
|
||||
|
@ -14,6 +15,133 @@ public class FormulaService
|
|||
{
|
||||
private static readonly SqliteHelper Db = SqliteHelper.GetInstance();
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// 处理配方下发事件
|
||||
/// </summary>
|
||||
public static void HandleFormulaIssuedEvent(FormulaDTO formulaDto)
|
||||
{
|
||||
if (formulaDto.IsNullOrEmpty() || formulaDto.Name.IsNullOrEmpty()) return;
|
||||
|
||||
var name = formulaDto.Name;
|
||||
|
||||
var formula = GetFormulaByName(name);
|
||||
|
||||
if (formula.IsNullOrEmpty())
|
||||
{
|
||||
// 当前不存在这个配方,则去创建这个配方
|
||||
formula = new Formula()
|
||||
{
|
||||
Name = name,
|
||||
Code = formulaDto.Code,
|
||||
Description = formulaDto.Description,
|
||||
Selected = false,
|
||||
};
|
||||
|
||||
Db.Insert(formula);
|
||||
}
|
||||
|
||||
// 插入其他的配方记录
|
||||
var formulaId = formula.Id;
|
||||
|
||||
var algorithmParams = formulaDto.AlgorithmParams;
|
||||
var altimetryParams = formulaDto.AltimetryParams;
|
||||
var needleSetting = formulaDto.NeedleSetting;
|
||||
var pcbSetting = formulaDto.PcbSetting;
|
||||
var waferSetting = formulaDto.WaferSetting;
|
||||
var jobSetting = formulaDto.JobSetting;
|
||||
var axisPositionParams = formulaDto.AxisPositionParams;
|
||||
var axisVariables = formulaDto.AxisVariables;
|
||||
|
||||
if (algorithmParams != null)
|
||||
{
|
||||
var algorithmParamsByFormulaId = GetAlgorithmParamsByFormulaId(formulaId);
|
||||
if (algorithmParamsByFormulaId != null)
|
||||
{
|
||||
algorithmParams.Id = algorithmParamsByFormulaId.Id;
|
||||
}
|
||||
|
||||
Db.SaveOrUpdate(algorithmParams);
|
||||
}
|
||||
|
||||
if (altimetryParams != null)
|
||||
{
|
||||
var altimetryParamsByFormulaId = GetAltimetryParamsByFormulaId(formulaId);
|
||||
if (altimetryParamsByFormulaId != null)
|
||||
{
|
||||
altimetryParams.Id = altimetryParamsByFormulaId.Id;
|
||||
}
|
||||
|
||||
Db.SaveOrUpdate(altimetryParams);
|
||||
}
|
||||
|
||||
if (needleSetting != null)
|
||||
{
|
||||
var needleSettingByFormulaId = GetNeedleSettingByFormulaId(formulaId);
|
||||
if (needleSettingByFormulaId != null)
|
||||
{
|
||||
needleSetting.Id = needleSettingByFormulaId.Id;
|
||||
}
|
||||
|
||||
Db.SaveOrUpdate(needleSetting);
|
||||
}
|
||||
|
||||
if (pcbSetting != null)
|
||||
{
|
||||
var pcbSettingByFormulaId = GetPcbSettingByFormulaId(formulaId);
|
||||
if (pcbSettingByFormulaId != null)
|
||||
{
|
||||
pcbSetting.Id = pcbSettingByFormulaId.Id;
|
||||
}
|
||||
|
||||
Db.SaveOrUpdate(pcbSetting);
|
||||
}
|
||||
|
||||
if (waferSetting != null)
|
||||
{
|
||||
var waferSettingByFormulaId = GetWaferSettingByFormulaId(formulaId);
|
||||
if (waferSettingByFormulaId != null)
|
||||
{
|
||||
waferSetting.Id = waferSettingByFormulaId.Id;
|
||||
}
|
||||
|
||||
Db.SaveOrUpdate(waferSetting);
|
||||
}
|
||||
|
||||
if (jobSetting != null)
|
||||
{
|
||||
var jobSettingByFormulaId = GetJobSettingByFormulaId(formulaId);
|
||||
if (jobSettingByFormulaId != null)
|
||||
{
|
||||
jobSetting.Id = jobSettingByFormulaId.Id;
|
||||
}
|
||||
|
||||
Db.SaveOrUpdate(jobSetting);
|
||||
}
|
||||
|
||||
if (axisPositionParams != null)
|
||||
{
|
||||
var axisPositionParamsByFormulaId = GetAxisPositionParamsByFormulaId(formulaId);
|
||||
if (axisPositionParamsByFormulaId != null)
|
||||
{
|
||||
axisPositionParams.Id = axisPositionParamsByFormulaId.Id;
|
||||
}
|
||||
|
||||
Db.SaveOrUpdate(axisPositionParams);
|
||||
}
|
||||
|
||||
if (axisVariables != null)
|
||||
{
|
||||
var axisVariablesByFormulaId = GetAxisVariablesByFormulaId(formulaId);
|
||||
if (axisVariablesByFormulaId != null)
|
||||
{
|
||||
axisVariables.Id = axisVariablesByFormulaId.Id;
|
||||
}
|
||||
|
||||
Db.SaveOrUpdate(axisVariables);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 获取所有的配方列表
|
||||
/// </summary>
|
||||
|
@ -24,6 +152,11 @@ public class FormulaService
|
|||
return BeanUtil.CopyProperties<FormulaDTO>(formulas);
|
||||
}
|
||||
|
||||
private static Formula GetFormulaByName(string name)
|
||||
{
|
||||
return Db.Query<Formula>("select * from formulas where name = ?", name).FirstOrDefault();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 获取当前已经启用的配方
|
||||
/// </summary>
|
||||
|
|
|
@ -1,7 +1,9 @@
|
|||
using MasstransferCommon.Model.Constant;
|
||||
using MasstransferCommon.Utils;
|
||||
using MasstransferCommunicate.Mqtt.Client;
|
||||
using MasstransferExporter.DataExporter.Model;
|
||||
using MasstransferInfrastructure.Database.Sqlite;
|
||||
using Masuit.Tools;
|
||||
|
||||
namespace MasstransferExporter.DataExporter;
|
||||
|
||||
|
@ -12,6 +14,110 @@ public class SystemParamsService
|
|||
{
|
||||
private static readonly SqliteHelper Db = SqliteHelper.GetInstance();
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// 处理下发的系统配置参数
|
||||
/// </summary>
|
||||
/// <param name="data"></param>
|
||||
public static void HandleSystemParamsIssuedEvent(ConfigData data)
|
||||
{
|
||||
if (data.IsNullOrEmpty()) return;
|
||||
|
||||
var name = data.Name;
|
||||
var param = JsonUtil.ToJson(data.Param);
|
||||
switch (name)
|
||||
{
|
||||
case "相机配置":
|
||||
var cameraParams = JsonUtil.FromJson<CameraParams>(param);
|
||||
if (cameraParams == null) break;
|
||||
var cameraParamsFromDb = GetCameraParams();
|
||||
if (cameraParamsFromDb != null)
|
||||
{
|
||||
cameraParams.Id = cameraParamsFromDb.Id;
|
||||
}
|
||||
|
||||
Db.SaveOrUpdate(cameraParams);
|
||||
break;
|
||||
case "日志配置":
|
||||
var logParams = JsonUtil.FromJson<LogParams>(param);
|
||||
if (logParams == null) break;
|
||||
var logParamsFromDb = GetLogParams();
|
||||
if (logParamsFromDb != null)
|
||||
{
|
||||
logParams.Id = logParamsFromDb.Id;
|
||||
}
|
||||
|
||||
Db.SaveOrUpdate(logParams);
|
||||
break;
|
||||
case "系统配置":
|
||||
var systemParams = JsonUtil.FromJson<SystemParams>(param);
|
||||
if (systemParams == null) break;
|
||||
var systemParamsFromDb = GetSystemParams();
|
||||
if (systemParamsFromDb != null)
|
||||
{
|
||||
systemParams.Id = systemParamsFromDb.Id;
|
||||
}
|
||||
|
||||
Db.SaveOrUpdate(systemParams);
|
||||
break;
|
||||
case "扫描器配置":
|
||||
var scannerParams = JsonUtil.FromJson<ScannerParams>(param);
|
||||
if (scannerParams == null) break;
|
||||
var scannerParamsFromDb = GetScannerParams();
|
||||
if (scannerParamsFromDb != null)
|
||||
{
|
||||
scannerParams.Id = scannerParamsFromDb.Id;
|
||||
}
|
||||
|
||||
Db.SaveOrUpdate(scannerParams);
|
||||
break;
|
||||
case "MinIO配置":
|
||||
var minioParams = JsonUtil.FromJson<MinioParams>(param);
|
||||
if (minioParams == null) break;
|
||||
var minioParamsFromDb = GetMinioParams();
|
||||
if (minioParamsFromDb != null)
|
||||
{
|
||||
minioParams.Id = minioParamsFromDb.Id;
|
||||
}
|
||||
|
||||
Db.SaveOrUpdate(minioParams);
|
||||
break;
|
||||
case "MQTT配置":
|
||||
var mqttParams = JsonUtil.FromJson<MqttParams>(param);
|
||||
if (mqttParams == null) break;
|
||||
var mqttParamsFromDb = GetMqttConnectParams();
|
||||
if (mqttParamsFromDb != null)
|
||||
{
|
||||
mqttParams.Id = mqttParamsFromDb.Id;
|
||||
}
|
||||
|
||||
Db.SaveOrUpdate(mqttParams);
|
||||
break;
|
||||
case "基板拍照相机内参":
|
||||
var waferCameraInternalParams = JsonUtil.FromJson<CameraInternalParams>(param);
|
||||
if (waferCameraInternalParams == null) break;
|
||||
var waferCameraInternalParamsFromDb = GetWaferParams();
|
||||
if (waferCameraInternalParamsFromDb != null)
|
||||
{
|
||||
waferCameraInternalParams.Id = waferCameraInternalParamsFromDb.Id;
|
||||
}
|
||||
|
||||
Db.SaveOrUpdate(waferCameraInternalParams);
|
||||
break;
|
||||
case "基板拍照相机外参":
|
||||
var substrateCameraInternalParams = JsonUtil.FromJson<CameraInternalParams>(param);
|
||||
if (substrateCameraInternalParams == null) break;
|
||||
var substrateCameraInternalParamsFromDb = GetSubstrateParams();
|
||||
if (substrateCameraInternalParamsFromDb != null)
|
||||
{
|
||||
substrateCameraInternalParams.Id = substrateCameraInternalParamsFromDb.Id;
|
||||
}
|
||||
|
||||
Db.SaveOrUpdate(substrateCameraInternalParams);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 系统参数上报
|
||||
/// </summary>
|
||||
|
|
|
@ -13,9 +13,9 @@ class Program
|
|||
EnableTls = false
|
||||
};
|
||||
|
||||
await MessageQueueHelper.InitConnect(options);
|
||||
// await MessageQueueHelper.InitConnect(options);
|
||||
|
||||
CoordinateService.CoordinateExporter();
|
||||
await FormulaService.FormulaDataExporter();
|
||||
|
||||
|
||||
Console.WriteLine("按任意键退出");
|
||||
|
|
Loading…
Reference in New Issue