2025-03-16 03:17:36 +08:00

143 lines
3.9 KiB
C#

using Seyounth.Core.Extensions;
using Seyounth.Hyosung.Data.Entities;
namespace Seyounth.Hyosung.Data.Models;
public class Yarn
{
public int Id { get; set; }
public string QrCode { get; set; }
public string ScanCode { get; set; }
public int Lot { get; set; }
public string? DenFila { get; set; }
public string? DtexFila { get; set; }
public string WorkShift { get; set; } = "NoData";
public string Machine { get; set; } = "NoData";
public int VarietyId { get; set; }
public DateTime ScanTime { get; set; }
public string ProduceTime { get; set; }
public bool IsFinished { get; set; } = false;
public int? TrayId { get; set; }
public DateTime? StackTime { get; set; }
public DateTime? StorageTime { get; set; }
public static Yarn? Create(string qrCode, int varietyId)
{
try
{
Yarn yarn;
if (!qrCode.Contains('\n'))
{
var parts = qrCode.Split(' ');
yarn = new Yarn()
{
QrCode = qrCode,
Lot = int.Parse(parts[0].Replace("Lot:", "")),
Machine = parts[2],
ProduceTime = parts[3],
ScanTime = DateTime.Now,
VarietyId = varietyId,
ScanCode = DateTime.Now.ToTimestamp().ToString(),
TrayId = null
};
yarn.WorkShift = parts[1] switch
{
"0" => "早班",
"1" => "中班",
"2" => "晚班",
_ => yarn.WorkShift
};
return yarn;
}
else
{
var parts = qrCode.Split('\n');
yarn = new Yarn()
{
QrCode = qrCode,
Lot = int.Parse(parts[0].Replace("Lot:", "")),
DenFila = parts[1],
DtexFila = parts[2],
ProduceTime = parts[3],
Machine = parts[4],
ScanTime = DateTime.Now,
VarietyId = varietyId,
TrayId = null,
ScanCode = DateTime.Now.ToTimestamp().ToString().PadLeft(10, '0'),
};
yarn.WorkShift = parts[5] switch
{
"0" => "早班",
"1" => "中班",
"2" => "晚班",
_ => yarn.WorkShift
};
return yarn;
}
}
catch (Exception e)
{
return null;
}
}
public static Yarn FromEntity(ScannedYarnEntity entity)
{
return new Yarn
{
Id = entity.Id,
ScanCode = entity.ScanCode,
DenFila = entity.DenFila,
DtexFila = entity.DtexFila,
IsFinished = entity.IsFinished,
Lot = entity.Lot,
Machine = entity.Machine,
ProduceTime = entity.ProduceTime,
QrCode = entity.QrCode,
ScanTime = entity.ScanTime,
VarietyId = entity.VarietyId,
WorkShift = entity.WorkShift,
TrayId = entity.TrayId,
StorageTime = entity.StorageTime,
StackTime = entity.StackTime
};
}
public ScannedYarnEntity ToEntity()
{
return new ScannedYarnEntity
{
Id = Id,
ScanCode = ScanCode,
DenFila = DenFila,
DtexFila = DtexFila,
IsFinished = IsFinished,
Lot = Lot,
Machine = Machine,
ProduceTime = ProduceTime,
QrCode = QrCode,
ScanTime = ScanTime,
VarietyId = VarietyId,
WorkShift = WorkShift,
TrayId = TrayId,
StackTime = StackTime,
StorageTime = StorageTime
};
}
}