2025-03-16 23:38:23 +08:00

180 lines
5.6 KiB
C#

using Seyounth.Hyosung.Data.Entities;
namespace Seyounth.Hyosung.Data.Models;
public class Variety
{
public int Id { get; set; }
public string Code { get; set; }
public int Lot { get; set; }
public int YarnCarType { get; set; }
public int YarnCarSide { get; set; }
public string Specifications { get; set; }
public int InnerDiameter { get; set; }
public int OuterDiameter { get; set; }
public int YarnDiameter { get; set; }
public int PaperTubeHeight { get; set; }
public int YarnThickness { get; set; }
public double SingleWeight { get; set; }
public int StackingLayers { get; set; }
public int TotalCount { get; set; }
public Pallet MiddlePallet { get; set; }
public Pallet TopAndBottomPallet { get; set; }
public Pallet Tray { get; set; }
public string? StackHeadSpec { get; set; }
public int? StackHeadCount { get; set; }
public Pallet? PaperTray { get; set; }
public bool HasBox { get; set; }
public NeedType NeedTopBoard { get; set; }
public NeedType NeedAngleBeam { get; set; }
public NeedType NeedPackStrap { get; set; }
public NeedType NeedFilmWrapping { get; set; }
public NeedType NeedFilmCoating { get; set; }
public int MasterLabelCount { get; set; }
public int SubLabelCount { get; set; }
public bool IsTurn { get; set; }
public static Variety Create(VarietyEntity entity, List<PalletEntity> pallets)
{
var variety = new Variety()
{
Id = entity.Id,
Code = entity.Code,
Lot = entity.Lot,
Specifications = entity.Specifications,
InnerDiameter = entity.InnerDiameter,
OuterDiameter = entity.OuterDiameter,
YarnDiameter = entity.YarnDiameter,
PaperTubeHeight = entity.PaperTubeHeight,
YarnThickness = entity.YarnThickness,
SingleWeight = entity.SingleWeight,
StackingLayers = entity.StackingLayers,
TotalCount = entity.TotalCount,
StackHeadSpec = entity.StackHeadSpec,
StackHeadCount = entity.StackHeadCount,
NeedTopBoard = entity.NeedTopBoard,
NeedAngleBeam = entity.NeedAngleBeam,
NeedPackStrap = entity.NeedPackStrap,
NeedFilmWrapping = entity.NeedFilmWrapping,
NeedFilmCoating = entity.NeedFilmCoating,
MasterLabelCount = entity.MasterLabelCount,
SubLabelCount = entity.SubLabelCount,
MiddlePallet = Pallet.FromEntity( pallets.First(x => x.Id == entity.MiddlePalletId)),
TopAndBottomPallet = Pallet.FromEntity(pallets.First(x => x.Id == entity.TopAndBottomPalletId)),
Tray = Pallet.FromEntity(pallets.First(x => x.Id == entity.TrayId)),
HasBox = entity.HasBox
};
if (entity.PaperTrayId != null && entity.PaperTrayId != 0)
variety.PaperTray = Pallet.FromEntity(pallets.First(x => x.Id == entity.PaperTrayId));
return variety;
}
public VarietyEntity ToEntity()
{
var entity = new VarietyEntity()
{
Id = Id,
Code = Code,
Lot = Lot,
Specifications = Specifications,
InnerDiameter = InnerDiameter,
OuterDiameter = OuterDiameter,
YarnDiameter = YarnDiameter,
PaperTubeHeight = PaperTubeHeight,
YarnThickness = YarnThickness,
SingleWeight = SingleWeight,
StackingLayers = StackingLayers,
TotalCount = TotalCount,
StackHeadSpec = StackHeadSpec,
StackHeadCount = StackHeadCount,
PaperTrayId = PaperTray?.Id,
NeedTopBoard = NeedTopBoard,
NeedAngleBeam = NeedAngleBeam,
NeedPackStrap = NeedPackStrap,
NeedFilmWrapping = NeedFilmWrapping,
NeedFilmCoating = NeedFilmCoating,
MasterLabelCount = MasterLabelCount,
SubLabelCount = SubLabelCount,
MiddlePalletId = MiddlePallet.Id,
TopAndBottomPalletId = TopAndBottomPallet.Id,
TrayId = Tray.Id,
HasBox = HasBox,
};
return entity;
}
public short[] ToVarietyPlcData()
{
List<short> ls = new List<short>();
ls.Add((short)YarnCarSide);
ls.Add((short)YarnCarType);
ls.Add((short)InnerDiameter);
ls.Add((short)OuterDiameter);
ls.Add((short)YarnDiameter);
ls.Add((short)PaperTubeHeight);
ls.Add((short)YarnThickness);
ls.Add((short)Tray.Type);
ls.Add((short)Tray.Length);
ls.Add((short)Tray.Width);
ls.Add((short)Tray.Height);
ls.Add((short)(HasBox ? 70 : 0));
if (PaperTray is null)
{
ls.Add(0);
ls.Add(0);
ls.Add(0);
ls.Add(0);
}
else
{
ls.Add(1);
ls.Add((short)PaperTray.Length);
ls.Add((short)PaperTray.Width);
ls.Add((short)PaperTray.Height);
}
ls.Add((short)TopAndBottomPallet.HoleCount);
ls.Add((short)(TopAndBottomPallet.IsBigHole.Value ? 1 : 2));
ls.Add((short)TopAndBottomPallet.Length);
ls.Add((short)TopAndBottomPallet.Width);
ls.Add((short)TopAndBottomPallet.Height);
ls.Add((short)MiddlePallet.HoleCount);
ls.Add((short)(MiddlePallet.IsBigHole.Value ? 1 : 2));
ls.Add((short)MiddlePallet.Length);
ls.Add((short)MiddlePallet.Width);
ls.Add((short)MiddlePallet.Height);
ls.Add((short)(IsTurn ? 1 : 2));
ls.Add((short)TotalCount);
ls.Add((short)StackingLayers);
return ls.ToArray();
}
}