using IStation.OpenDto;
|
using System.Collections.Generic;
|
using System.Linq;
|
|
namespace IStation.WinFrmUI.Basic
|
{
|
/// <summary>
|
///
|
/// </summary>
|
public class ConvertHelper
|
{
|
public static bool ConvertTProduct(FullPacking packing)
|
{
|
if (packing == null)
|
return false;
|
if (packing.Stations == null || !packing.Stations.Any())
|
return false;
|
|
var testItemGroup = packing.TestItems?.GroupBy(x => x.PartID);
|
|
var stations = new List<Model.Station>();
|
var products = new List<Model.Equipment>();
|
var curves = new List<Model.PumpCurve>();
|
var curveMappings = new List<Model.PumpCurveMapping>();
|
|
foreach (var itemStaton in packing.Stations)
|
{
|
var station = new Model.Station();
|
station.ID = itemStaton.ID;
|
station.Name = itemStaton.Name;
|
station.TagName = itemStaton.Tag;
|
station.SortCode = itemStaton.SortCode;
|
station.Description = itemStaton.Note;
|
stations.Add(station);
|
if (itemStaton.Pumps == null || !itemStaton.Pumps.Any())
|
continue;
|
|
foreach (var itemPump in itemStaton.Pumps)
|
{
|
Model.Equipment enginePump, pump, motor;
|
|
//添加机泵组
|
enginePump = new Model.Equipment()
|
{
|
ID = SnowflakeIdHelper.NextId(),
|
BelongType = IStation.ObjectType.Station,
|
BelongID = station.ID,
|
Catalog = IStation.Equipment.EnginePump,
|
Supplier = itemPump.ManufacturerName,
|
NO = itemPump.PartCode,
|
Name = itemPump.PartName + "-机组",
|
ModelType = itemPump.Code,
|
Specification = itemPump.SeriesName,
|
TagName = itemPump.Tag,
|
UseStatus = Model.eProductStatus.Enable,
|
SortCode = itemPump.SortCode,
|
Description = itemPump.ProductParas
|
};
|
{
|
var ratedParas = new Model.EnginePump();
|
enginePump.RatedParas = ratedParas.ToJson();
|
}
|
products.Add(enginePump);
|
|
//添加泵
|
pump = new Model.Equipment()
|
{
|
ID = itemPump.PartID,
|
BelongType = IStation.ObjectType.Station,
|
BelongID = station.ID,
|
Catalog = IStation.Equipment.Pump,
|
Supplier = itemPump.ManufacturerName,
|
ParentIds = new List<long>() { enginePump.ID },
|
NO = itemPump.PartCode,
|
Name = itemPump.PartName,
|
ModelType = itemPump.Code,
|
Specification = itemPump.SeriesName,
|
TagName = itemPump.Tag,
|
UseStatus = Model.eProductStatus.Enable,
|
SortCode = 0,
|
Description = itemPump.ProductParas
|
};
|
if (itemPump.RatedParas != null)
|
{
|
var itemRatedParas = itemPump.RatedParas;
|
var ratedParas = new Model.Pump();
|
ratedParas.Qr = itemRatedParas.Q;
|
ratedParas.Hr = itemRatedParas.H;
|
ratedParas.Pr = itemRatedParas.P;
|
ratedParas.Er = itemRatedParas.E;
|
if (itemPump.Ratedn.HasValue)
|
ratedParas.Nr = itemPump.Ratedn.Value;
|
if (itemRatedParas.NPSHr.HasValue)
|
ratedParas.NPSHr = itemRatedParas.NPSHr.Value;
|
ratedParas.Oc = itemRatedParas.OutletDia;
|
ratedParas.Ic = itemRatedParas.InletDia;
|
//ratedParas.IOd
|
ratedParas.StNumr = itemRatedParas.StageNumber;
|
ratedParas.IsBp = itemRatedParas.IsFrequency;
|
ratedParas.IsSxp = itemRatedParas.IsSxp;
|
pump.RatedParas = ratedParas.ToJson();
|
}
|
products.Add(pump);
|
|
//添加电机
|
if (itemPump.Motor != null)
|
{
|
var itemMotor = itemPump.Motor;
|
motor = new Model.Equipment()
|
{
|
ID = itemMotor.PartID,
|
BelongType = IStation.ObjectType.Station,
|
BelongID = station.ID,
|
Catalog = IStation.Equipment.Motor,
|
Supplier = itemMotor.ManufacturerName,
|
ParentIds = new List<long>() { enginePump.ID },
|
NO = itemMotor.PartCode,
|
Name = itemMotor.PartName,
|
ModelType = itemMotor.Code,
|
Specification = itemMotor.SeriesName,
|
TagName = itemMotor.Tag,
|
UseStatus = Model.eProductStatus.Enable,
|
SortCode = 0,
|
Description = itemMotor.ProductParas
|
};
|
products.Add(motor);
|
|
var ratedParas = new Model.Motor();
|
if (itemMotor.RatedPower.HasValue)
|
ratedParas.Pr = itemMotor.RatedPower.Value;
|
|
if (itemMotor.Ratedn.HasValue)
|
ratedParas.Nr = itemMotor.Ratedn.Value;
|
|
if (itemMotor.RatedI.HasValue)
|
ratedParas.Ir = itemMotor.RatedI.Value;
|
ratedParas.Er = itemMotor.E_Self;
|
motor.RatedParas = ratedParas.ToJson();
|
}
|
|
//添加测试曲线
|
if (testItemGroup == null || !testItemGroup.Any())
|
continue;
|
var testItems = testItemGroup.Where(x => x.Key == pump.ID).FirstOrDefault().ToList();
|
testItems = testItems?.Where(x => x.Records != null && x.Records.Any()).ToList();
|
if (testItems == null || !testItems.Any())
|
continue;
|
foreach (var testItem in testItems)
|
{
|
List<Model.CurvePoint> qhPoints = new List<Model.CurvePoint>(),
|
qePoints = new List<Model.CurvePoint>(),
|
qpPoints = new List<Model.CurvePoint>();
|
|
testItem.Records.ForEach(record =>
|
{
|
var qhPoint = new Model.CurvePoint()
|
{
|
X = record.CorrectPtQ,
|
Y = record.CorrectPtH
|
};
|
qhPoints.Add(qhPoint);
|
if (record.CorrectPtE.HasValue)
|
{
|
var qePoint = new Model.CurvePoint()
|
{
|
X = record.CorrectPtQ,
|
Y = record.CorrectPtE.Value
|
};
|
qePoints.Add(qePoint);
|
}
|
if (record.CorrectPtP.HasValue)
|
{
|
var qpPoint = new Model.CurvePoint()
|
{
|
X = record.CorrectPtQ,
|
Y = record.CorrectPtP.Value
|
};
|
qpPoints.Add(qpPoint);
|
}
|
});
|
|
var curve = new Model.PumpCurve();
|
curve.ID = SnowflakeIdHelper.NextId();
|
curve.CurveCode = $"[现场测试]{testItem.ItemName}";
|
curve.SourceFrom = Model.eCurveSourceFrom.现场测试;
|
curve.CreateMethod = Model.eCurveCreateMethod.中间格式导入;
|
//curve.PointInfo = new Model.FeatCurvePointGroup(qhPoints, qePoints, qpPoints);
|
curve.CurveInfo = new Model.FeatCurveExpressGroup();
|
|
var qhFitType = (Model.eCurveFitType)(int)itemPump.CurveFitTypeQH;
|
curve.CurveInfo.CurveQH = new Model.CurveExpress(qhPoints, qhFitType, true);
|
if (qePoints.Any())
|
{
|
var qeFitType = (Model.eCurveFitType)(int)itemPump.CurveFitTypeQE;
|
curve.CurveInfo.CurveQE = new Model.CurveExpress(qePoints, qeFitType, true);
|
}
|
if (qpPoints.Any())
|
{
|
var qpFitType = (Model.eCurveFitType)(int)itemPump.CurveFitTypeQP;
|
curve.CurveInfo.CurveQP = new Model.CurveExpress(qpPoints, qpFitType, true);
|
}
|
curve.ReliabilityStatus = Model.PumpCurve.eReliabilityStatus.Normal;
|
curve.CreateTime = testItem.ItemCreateTime;
|
curve.Description = testItem.ProjectUseStatus;
|
curves.Add(curve);
|
|
var curveMpping = new Model.PumpCurveMapping();
|
curveMpping.PumpID = pump.ID;
|
curveMpping.CurveID = curve.ID;
|
curveMpping.OtherName = $"[测试]{testItem.ItemName}";
|
curveMpping.IsWorking = false;
|
curveMpping.SortCode = 1;
|
curveMappings.Add(curveMpping);
|
}
|
};
|
}
|
|
var result_Station = new BLL.Station().Covers(stations);
|
var result_product = new BLL.Equipment().Covers(products);
|
var result_pumpCurve = new BLL.PumpCurve().Covers(curves);
|
var result_pumpMapping = new BLL.PumpCurveMapping().Covers(curveMappings);
|
return true;
|
}
|
|
}
|
}
|