Compare commits
No commits in common. "5698acc185cef0092ca5d01180846d254767e5bb" and "40569d91846a568b464e13479db379df1481a805" have entirely different histories.
5698acc185
...
40569d9184
|
@ -1,51 +0,0 @@
|
||||||
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,7 +4,6 @@ using MasstransferCommunicate.Mqtt.Client;
|
||||||
using MasstransferCore.Model.Entity;
|
using MasstransferCore.Model.Entity;
|
||||||
using MasstransferExporter.DataExporter.Model;
|
using MasstransferExporter.DataExporter.Model;
|
||||||
using MasstransferInfrastructure.Database.Sqlite;
|
using MasstransferInfrastructure.Database.Sqlite;
|
||||||
using Masuit.Tools;
|
|
||||||
|
|
||||||
namespace MasstransferExporter.DataExporter;
|
namespace MasstransferExporter.DataExporter;
|
||||||
|
|
||||||
|
@ -15,133 +14,6 @@ public class FormulaService
|
||||||
{
|
{
|
||||||
private static readonly SqliteHelper Db = SqliteHelper.GetInstance();
|
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>
|
||||||
/// 获取所有的配方列表
|
/// 获取所有的配方列表
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
@ -152,11 +24,6 @@ public class FormulaService
|
||||||
return BeanUtil.CopyProperties<FormulaDTO>(formulas);
|
return BeanUtil.CopyProperties<FormulaDTO>(formulas);
|
||||||
}
|
}
|
||||||
|
|
||||||
private static Formula GetFormulaByName(string name)
|
|
||||||
{
|
|
||||||
return Db.Query<Formula>("select * from formulas where name = ?", name).FirstOrDefault();
|
|
||||||
}
|
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 获取当前已经启用的配方
|
/// 获取当前已经启用的配方
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
|
|
@ -1,9 +1,7 @@
|
||||||
using MasstransferCommon.Model.Constant;
|
using MasstransferCommon.Model.Constant;
|
||||||
using MasstransferCommon.Utils;
|
|
||||||
using MasstransferCommunicate.Mqtt.Client;
|
using MasstransferCommunicate.Mqtt.Client;
|
||||||
using MasstransferExporter.DataExporter.Model;
|
using MasstransferExporter.DataExporter.Model;
|
||||||
using MasstransferInfrastructure.Database.Sqlite;
|
using MasstransferInfrastructure.Database.Sqlite;
|
||||||
using Masuit.Tools;
|
|
||||||
|
|
||||||
namespace MasstransferExporter.DataExporter;
|
namespace MasstransferExporter.DataExporter;
|
||||||
|
|
||||||
|
@ -14,110 +12,6 @@ public class SystemParamsService
|
||||||
{
|
{
|
||||||
private static readonly SqliteHelper Db = SqliteHelper.GetInstance();
|
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>
|
||||||
/// 系统参数上报
|
/// 系统参数上报
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
|
|
@ -1,6 +1,5 @@
|
||||||
using System.Drawing;
|
using System.Drawing;
|
||||||
using MasstransferCommon.Model.Constant;
|
using MasstransferCommon.Model.Constant;
|
||||||
using MasstransferCommon.Utils;
|
|
||||||
using MasstransferCommunicate.Minio;
|
using MasstransferCommunicate.Minio;
|
||||||
using MasstransferCommunicate.Mqtt.Client;
|
using MasstransferCommunicate.Mqtt.Client;
|
||||||
using MasstransferExporter.DataExporter.Model;
|
using MasstransferExporter.DataExporter.Model;
|
||||||
|
@ -17,103 +16,6 @@ public class ImageService
|
||||||
|
|
||||||
private const string BasePath = "masstransfer";
|
private const string BasePath = "masstransfer";
|
||||||
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// 监听图片查询事件
|
|
||||||
/// </summary>
|
|
||||||
public static async Task ListenImageQueryEvent()
|
|
||||||
{
|
|
||||||
await MessageQueueHelper.Subscribe(Topics.UpdateLicenseEvent, HandleImageQueryEvent);
|
|
||||||
}
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// 处理图片查询请求
|
|
||||||
/// </summary>
|
|
||||||
private static async Task HandleImageQueryEvent(string topic, string payload)
|
|
||||||
{
|
|
||||||
if (payload == null) return;
|
|
||||||
|
|
||||||
var queryDto = JsonUtil.FromJson<ImageQueryDTO>(payload);
|
|
||||||
|
|
||||||
if (queryDto == null) return;
|
|
||||||
|
|
||||||
var batchNumber = queryDto.batchNumber;
|
|
||||||
var bizNumber = queryDto.bizNumber;
|
|
||||||
var imageType = queryDto.imageType;
|
|
||||||
var picType = queryDto.picType;
|
|
||||||
|
|
||||||
var isThumbnail = "thumbnail".Equals(imageType);
|
|
||||||
|
|
||||||
var bucket = isThumbnail ? "thumbnail" : "image";
|
|
||||||
|
|
||||||
var systemParams = GetSystemParams();
|
|
||||||
var imageStoragePath =
|
|
||||||
systemParams!.ImageStoragePath ?? Environment.GetEnvironmentVariable("USERPROFILE");
|
|
||||||
|
|
||||||
var dir = Path.Combine(imageStoragePath, BasePath);
|
|
||||||
|
|
||||||
if (!Directory.Exists(dir)) return;
|
|
||||||
|
|
||||||
var dirInfo = new DirectoryInfo(dir);
|
|
||||||
|
|
||||||
var batchDirs = dirInfo.GetDirectories().Where(d => d.Name.Equals(batchNumber));
|
|
||||||
|
|
||||||
foreach (var batchDir in batchDirs)
|
|
||||||
{
|
|
||||||
var dateDirs = batchDir.GetDirectories();
|
|
||||||
foreach (var dateDir in dateDirs)
|
|
||||||
{
|
|
||||||
var typeDirs = dateDir.GetDirectories();
|
|
||||||
foreach (var typeDir in typeDirs)
|
|
||||||
{
|
|
||||||
if (!typeDir.Name.Equals(picType.ToLower())) continue;
|
|
||||||
var codeDirs = typeDir.GetDirectories();
|
|
||||||
foreach (var codeDir in codeDirs)
|
|
||||||
{
|
|
||||||
if (!codeDir.Name.Equals(bizNumber)) continue;
|
|
||||||
var files = codeDir.GetFiles();
|
|
||||||
foreach (var file in files)
|
|
||||||
{
|
|
||||||
var path = file.FullName;
|
|
||||||
var name = file.Name;
|
|
||||||
if (isThumbnail)
|
|
||||||
{
|
|
||||||
// 先生成缩略图
|
|
||||||
if (file.Name.EndsWith(".bmp") && !file.Name.Contains("_thumbnail"))
|
|
||||||
{
|
|
||||||
// 判断是否已经存在缩略图,如果存在的话,则跳过生成过程
|
|
||||||
name = file.Name.Replace(".bmp", "_thumbnail.bmp");
|
|
||||||
path = file.FullName.Replace(".bmp", "_thumbnail.bmp");
|
|
||||||
if (!File.Exists(path))
|
|
||||||
{
|
|
||||||
GenerateThumbnail(file.FullName);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// 上传文件
|
|
||||||
var fileName = $"{Constants.SN}/{codeDir.Name}/{batchDir.Name}/{imageType}/{name}";
|
|
||||||
|
|
||||||
await Minio.UploadFileAsync(bucket, fileName, path);
|
|
||||||
|
|
||||||
var data = new ImageExportData()
|
|
||||||
{
|
|
||||||
BatchNumber = batchDir.Name,
|
|
||||||
BizNumber = codeDir.Name,
|
|
||||||
ImageType = imageType,
|
|
||||||
PicType = isThumbnail ? "thumbnail" : "raw"
|
|
||||||
};
|
|
||||||
|
|
||||||
// 上传完成后发布通知
|
|
||||||
await MessageQueueHelper.Publish(Topics.ImageUpload, data);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
private static SystemParams? GetSystemParams()
|
private static SystemParams? GetSystemParams()
|
||||||
{
|
{
|
||||||
return Helper.Query<SystemParams>("select * from system_params limit 1")
|
return Helper.Query<SystemParams>("select * from system_params limit 1")
|
||||||
|
@ -203,22 +105,24 @@ public class ImageService
|
||||||
var imageStoragePath =
|
var imageStoragePath =
|
||||||
systemParams!.ImageStoragePath ?? Environment.GetEnvironmentVariable("USERPROFILE");
|
systemParams!.ImageStoragePath ?? Environment.GetEnvironmentVariable("USERPROFILE");
|
||||||
|
|
||||||
var dir = Path.Combine(imageStoragePath, BasePath);
|
var date = dateTime.ToString("yyyyMMdd");
|
||||||
|
|
||||||
|
var dir = Path.Combine(imageStoragePath, BasePath, date);
|
||||||
|
|
||||||
if (!Directory.Exists(dir)) return;
|
if (!Directory.Exists(dir)) return;
|
||||||
|
|
||||||
var dirInfo = new DirectoryInfo(dir);
|
var dirInfo = new DirectoryInfo(dir);
|
||||||
|
|
||||||
// 文件保存路径的规则是 {user BasePath}/masstransfer/images/{batchCode}/{yyyyMMdd}/wafer/{waferCode}/{timestamp}.bmp
|
|
||||||
var files = dirInfo.GetDirectories().Where(d => d.CreationTime.Date == dateTime);
|
|
||||||
foreach (var batchDir in files)
|
|
||||||
{
|
|
||||||
if (isThumbnail)
|
if (isThumbnail)
|
||||||
{
|
{
|
||||||
// 对图片进行压缩
|
// 对图片进行压缩
|
||||||
GenerateThumbnail(batchDir);
|
GenerateThumbnail(dirInfo);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// 文件保存路径的规则是 {user BasePath}/masstransfer/images/{yyyyMMdd}/{batchCode}/wafer/{waferCode}/{timestamp}.bmp
|
||||||
|
var files = dirInfo.GetDirectories();
|
||||||
|
foreach (var batchDir in files)
|
||||||
|
{
|
||||||
var types = batchDir.GetDirectories();
|
var types = batchDir.GetDirectories();
|
||||||
foreach (var type in types)
|
foreach (var type in types)
|
||||||
{
|
{
|
||||||
|
|
|
@ -1,12 +0,0 @@
|
||||||
namespace MasstransferExporter.ImageExporter.Model;
|
|
||||||
|
|
||||||
public class ImageQueryDTO
|
|
||||||
{
|
|
||||||
public string picType { get; set; }
|
|
||||||
|
|
||||||
public string bizNumber { get; set; }
|
|
||||||
|
|
||||||
public string batchNumber { get; set; }
|
|
||||||
|
|
||||||
public string imageType { get; set; }
|
|
||||||
}
|
|
|
@ -13,9 +13,9 @@ class Program
|
||||||
EnableTls = false
|
EnableTls = false
|
||||||
};
|
};
|
||||||
|
|
||||||
// await MessageQueueHelper.InitConnect(options);
|
await MessageQueueHelper.InitConnect(options);
|
||||||
|
|
||||||
await FormulaService.FormulaDataExporter();
|
CoordinateService.CoordinateExporter();
|
||||||
|
|
||||||
|
|
||||||
Console.WriteLine("按任意键退出");
|
Console.WriteLine("按任意键退出");
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
<Project Sdk="Microsoft.NET.Sdk">
|
<Project Sdk="Microsoft.NET.Sdk">
|
||||||
|
|
||||||
<PropertyGroup>
|
<PropertyGroup>
|
||||||
<TargetFramework>net7.0</TargetFramework>
|
<TargetFramework>net8.0</TargetFramework>
|
||||||
<ImplicitUsings>enable</ImplicitUsings>
|
<ImplicitUsings>enable</ImplicitUsings>
|
||||||
<Nullable>enable</Nullable>
|
<Nullable>enable</Nullable>
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue