143 lines
3.9 KiB
C#
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
|
|
};
|
|
}
|
|
} |