完善上传生产数据问题

This commit is contained in:
huangxianguo 2024-09-10 10:17:00 +08:00
parent 7edb347ec7
commit 5dfbdfee5e
5 changed files with 54 additions and 31 deletions

View File

@ -10,7 +10,7 @@ public class DatetimeConverter : JsonConverter<DateTime>
public override void WriteJson(JsonWriter writer, DateTime value, JsonSerializer serializer)
{
long timestamp = (long)(value.ToUniversalTime() - UnixEpoch).TotalMilliseconds;
writer.WriteValue(timestamp);
writer.WriteValue(timestamp < 0 ? 0 : timestamp);
}
public override DateTime ReadJson(JsonReader reader, Type objectType, DateTime existingValue, bool hasExistingValue,

View File

@ -1,4 +1,6 @@
namespace MasstransferExporter.DataExporter.Model;
using Newtonsoft.Json;
namespace MasstransferExporter.DataExporter.Model;
/// <summary>
/// 动打记录
@ -6,12 +8,19 @@
/// </summary>
public class ProductionRecord
{
public string BatchNumber { get; set; }
public string PcbNumber { get; set; }
public string ChipType { get; set; }
public string HitQuantity { get; set; }
public string PcbInputTimeCost { get; set; }
public string PcbScanTimeCost { get; set; }
public string PcbOutputTimeCost { get; set; }
public List<ProductionWaferRecord> Rounds { get; set; }
[JsonProperty("batchNumber")] public string BatchNumber { get; set; }
[JsonProperty("pcbNumber")] public string PcbNumber { get; set; }
[JsonProperty("chipType")] public string ChipType { get; set; }
[JsonProperty("hitQuantity")] public string HitQuantity { get; set; }
[JsonProperty("pcbInputTime")] public DateTime PcbInputTime { get; set; }
[JsonProperty("pcbOutputTime")] public DateTime PcbOutputTime { get; set; }
[JsonProperty("pcbInputTimeCost")] public int PcbInputTimeCost { get; set; }
[JsonProperty("pcbScanTimeCost")] public int PcbScanTimeCost { get; set; }
[JsonProperty("pcbOutputTimeCost")] public int PcbOutputTimeCost { get; set; }
[JsonProperty("rounds")] public List<ProductionWaferRecord> Rounds { get; set; }
}

View File

@ -1,16 +1,25 @@
namespace MasstransferExporter.DataExporter.Model;
using Newtonsoft.Json;
namespace MasstransferExporter.DataExporter.Model;
/// <summary>
/// 每次动打期间用到的wafer记录
/// </summary>
public class ProductionWaferRecord
{
public string WaferNumber { get; set; }
public string ChipQuantity { get; set; }
public string WaferInputTimeCost { get; set; }
public string ChipScanTimeCost { get; set; }
public string ProdutionTimeCost { get; set; }
public string PcbCheckTimeCost { get; set; }
public string WaferOutputTimeCost { get; set; }
public string HitedQuantity { get; set; }
[JsonProperty("waferNumber")] public string WaferNumber { get; set; }
[JsonProperty("chipQuantity")] public int ChipQuantity { get; set; }
[JsonProperty("waferInputTimeCost")] public int WaferInputTimeCost { get; set; }
[JsonProperty("chipScanTimeCost")] public int ChipScanTimeCost { get; set; }
[JsonProperty("productionTimeCost")] public int ProductionTimeCost { get; set; }
[JsonProperty("pcbCheckTimeCost")] public int PcbCheckTimeCost { get; set; }
[JsonProperty("waferOutputTimeCost")] public int WaferOutputTimeCost { get; set; }
[JsonProperty("hitedQuantity")] public int HitedQuantity { get; set; }
}

View File

@ -14,9 +14,10 @@ public class StrikeRecordService
/// <summary>
/// 上报动打记录
/// </summary>
private static void ReportStrikeRecord()
public static async Task ReportStrikeRecord()
{
// 根据这个基板编号,从记录中找到所有的跟基板有关的生产记录
await ReportStrikeRecord("1108016217473286144");
}
@ -51,9 +52,11 @@ public class StrikeRecordService
Db.Query<SubstrateConsumeTime>(querySubstrateConsumeTime, substrateId).FirstOrDefault();
if (substrateConsumeTime != null)
{
record.PcbInputTimeCost = substrateConsumeTime.LoadingConsumedTime.ToString();
record.PcbOutputTimeCost = substrateConsumeTime.UnloadingConsumedTime.ToString();
record.PcbScanTimeCost = substrateConsumeTime.FlyConsumedTime.ToString();
record.PcbInputTimeCost = substrateConsumeTime.LoadingConsumedTime;
record.PcbOutputTimeCost = substrateConsumeTime.UnloadingConsumedTime;
record.PcbScanTimeCost = substrateConsumeTime.FlyConsumedTime;
record.PcbInputTime = substrateConsumeTime.LoadingStartTime;
record.PcbOutputTime = substrateConsumeTime.UnloadingEndTime;
}
// 查询出当前的作业相关的晶环耗时信息
@ -63,7 +66,8 @@ public class StrikeRecordService
var waferConsumeTimes = Db.Query<WaferConsumeTime>(queryWaferConsumeTime);
// 查询出当前作业的所有晶环信息
var queryWafer = "select * from wafer where Id in (" + string.Join(",", waferIds) + ")";
var queryWafer = "select * from wafers where Id in (" + string.Join(",", waferIds) + ")";
var wafers = Db.Query<Wafer>(queryWafer);
// 将晶环耗时信息与晶环信息关联
@ -83,11 +87,11 @@ public class StrikeRecordService
var waferRecord = new ProductionWaferRecord
{
WaferNumber = wafer.WaferCode,
ChipQuantity = wafer.ChipAmount.ToString(),
WaferInputTimeCost = consumeTime.LoadingConsumedTime.ToString(),
WaferOutputTimeCost = consumeTime.UnloadingConsumedTime.ToString(),
ChipScanTimeCost = consumeTime.FlyConsumedTime.ToString(),
HitedQuantity = strikeRecord.StrikeAmount.ToString(),
ChipQuantity = wafer.ChipAmount,
WaferInputTimeCost = consumeTime.LoadingConsumedTime,
WaferOutputTimeCost = consumeTime.UnloadingConsumedTime,
ChipScanTimeCost = consumeTime.FlyConsumedTime,
HitedQuantity = strikeRecord.StrikeAmount,
};
waferRecords.Add(waferRecord);

View File

@ -1,13 +1,14 @@
using MasstransferCommon.Config;
using MasstransferCommon.Events;
using MasstransferCommon.Model.Entity;
using MasstransferCommon.Scheduler;
using MasstransferCommunicate.Mqtt.Client;
using MasstransferExporter.DataExporter;
using MasstransferExporter.DataExporter.Model;
using MasstransferExporter.Init;
using MasstransferInfrastructure.Database.Sqlite;
using MasstransferInfrastructure.Mqtt.Model;
using Serilog;
using MqttParams = MasstransferCommon.Model.Entity.MqttParams;
namespace MasstransferExporter;
@ -38,7 +39,7 @@ class Program
// 启动完成后,广播启动通知
EventBus<bool>.Publish(EventType.StartUp, true);
DelayScheduler.Delay(async () => await CoordinateService.CoordinateExporter(),
DelayScheduler.Delay(async () => await StrikeRecordService.ReportStrikeRecord(),
TimeSpan.FromSeconds(5));
// 启动与主程序的通信