完善上传生产数据问题
This commit is contained in:
parent
7edb347ec7
commit
5dfbdfee5e
|
@ -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,
|
||||
|
|
|
@ -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; }
|
||||
}
|
|
@ -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; }
|
||||
}
|
|
@ -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);
|
||||
|
|
|
@ -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));
|
||||
|
||||
// 启动与主程序的通信
|
||||
|
|
Loading…
Reference in New Issue