using System;
|
using System.Collections.Generic;
|
using System.Linq;
|
using System.Text;
|
using System.Threading.Tasks;
|
|
namespace IStation.Model
|
{
|
/// <summary>
|
///
|
/// </summary>
|
public class EtaBasicRealRecord
|
{
|
/// <summary>
|
///
|
/// </summary>
|
public EtaBasicRealRecord() { }
|
|
/// <summary>
|
///
|
/// </summary>
|
public EtaBasicRealRecord(EtaBasicRealRecord rhs)
|
{
|
this.CorpID = rhs.CorpID;
|
this.ObjectType = rhs.ObjectType;
|
this.ObjectID = rhs.ObjectID;
|
this.DataTime = rhs.DataTime;
|
this.Duration = rhs.Duration;
|
this.Qa = rhs.Qa;
|
this.Ha = rhs.Ha;
|
this.Pa = rhs.Pa;
|
this.Ea = rhs.Ea;
|
this.WPa = rhs.WPa;
|
this.UWPa = rhs.UWPa;
|
this.AnalyStatus = rhs.AnalyStatus;
|
this.AnalyInfo = rhs.AnalyInfo;
|
}
|
|
/// <summary>
|
/// 复制分析参数
|
/// </summary>
|
/// <param name="rhs"></param>
|
public void CopyAnaPara(EtaBasicRealRecord rhs)
|
{
|
if (rhs == null)
|
return;
|
this.Qa = rhs.Qa;
|
this.Ha = rhs.Ha;
|
this.Pa = rhs.Pa;
|
this.Ea = rhs.Ea;
|
this.WPa = rhs.WPa;
|
this.UWPa = rhs.UWPa;
|
this.AnalyStatus = rhs.AnalyStatus;
|
this.AnalyInfo = rhs.AnalyInfo;
|
}
|
|
|
/// <summary>
|
/// 客户标识
|
/// </summary>
|
public long CorpID { get; set; }
|
|
/// <summary>
|
/// 对象类型
|
/// </summary>
|
public string ObjectType { get; set; }
|
|
/// <summary>
|
/// 对象标识
|
/// </summary>
|
public long ObjectID { get; set; }
|
|
/// <summary>
|
/// 数据时间
|
/// </summary>
|
public DateTime DataTime { get; set; }
|
|
/// <summary>
|
/// 间隔
|
/// </summary>
|
public int Duration { get; set; }
|
|
/// <summary>
|
/// 分析瞬时流量
|
/// </summary>
|
public double? Qa { get; set; }
|
|
/// <summary>
|
/// 分析扬程
|
/// </summary>
|
public double? Ha { get; set; }
|
|
/// <summary>
|
/// 分析功率
|
/// </summary>
|
public double? Pa { get; set; }
|
|
/// <summary>
|
/// 分析效率
|
/// </summary>
|
public double? Ea { get; set; }
|
|
/// <summary>
|
/// 分析千吨能耗
|
/// </summary>
|
public double? WPa { get; set; }
|
|
/// <summary>
|
/// 分析单位能耗
|
/// </summary>
|
public double? UWPa { get; set; }
|
|
/// <summary>
|
/// 分析状态
|
/// </summary>
|
public Eta.eAnalyStatus AnalyStatus { get; set; }
|
|
/// <summary>
|
/// 分析信息
|
/// </summary>
|
public string AnalyInfo { get; set; }
|
|
#region AnalyInfo
|
/// <summary>
|
/// 添加状态
|
/// </summary>
|
/// <param name="tag"></param>
|
public void PutAnalyInfo(string tag)
|
{
|
if (string.IsNullOrEmpty(AnalyInfo))
|
{
|
AnalyInfo = string.Format("V1|{0}:", tag);
|
}
|
else
|
{
|
AnalyInfo = string.Format("{0}|{1}:", AnalyInfo, tag);
|
}
|
}
|
/// <summary>
|
/// 添加AnalyInfo标识
|
/// </summary>
|
/// <param name="tag">标识</param>
|
/// <param name="more">更多信息</param>
|
public void PutAnalyInfo(string tag, string more)
|
{
|
if (string.IsNullOrEmpty(AnalyInfo))
|
{
|
if (string.IsNullOrEmpty(more))
|
{
|
AnalyInfo = string.Format("V1|{0}:", tag);
|
}
|
else
|
{
|
AnalyInfo = string.Format("V1|{0}:{1}", tag, more);
|
}
|
}
|
else
|
{
|
if (string.IsNullOrEmpty(more))
|
{
|
AnalyInfo = string.Format("{0}|{1}:", AnalyInfo, tag);
|
}
|
else
|
{
|
AnalyInfo = string.Format("{0}|{1}:{2}", AnalyInfo, tag, more);
|
}
|
}
|
}
|
/// <summary>
|
/// 添加AnalyInfo标识
|
/// </summary>
|
/// <param name="tag">标识</param>
|
public void RemoveAnalyInfo(string tag)
|
{
|
if (string.IsNullOrEmpty(AnalyInfo))
|
{
|
return;
|
}
|
var sss = AnalyInfo.Split('|').ToList();
|
|
for (int i = 0; i < sss.Count(); i++)
|
{
|
if (sss[i].StartsWith(tag))
|
{
|
sss.RemoveAt(i);
|
AnalyInfo = string.Join("|", sss);
|
if (AnalyInfo == "V1")
|
{
|
AnalyInfo = null;
|
}
|
return;
|
}
|
}
|
|
|
}
|
|
/// <summary>
|
/// 有分析异常
|
/// </summary>
|
/// <param name="tag"></param>
|
/// <returns></returns>
|
public bool IsHaveAnaTag(string tag)
|
{
|
if (string.IsNullOrEmpty(AnalyInfo))
|
{
|
return false;
|
}
|
|
return AnalyInfo.Contains("|" + tag);
|
}
|
|
/// <summary>
|
/// 运行状态发生异常的标识
|
/// </summary>
|
public static string InfoTag_RU = "RU";
|
/// <summary>
|
/// 频率发生异常的标识
|
/// </summary>
|
public static string InfoTag_HZ = "HZ";
|
/// <summary>
|
/// 流量发生异常的标识
|
/// </summary>
|
public static string InfoTag_Qa = "Qa";
|
/// <summary>
|
/// 扬程发生异常的标识
|
/// </summary>
|
public static string InfoTag_Ha = "Ha";
|
/// <summary>
|
/// 进口压力发生异常的标识
|
/// </summary>
|
public static string InfoTag_P1 = "P1";
|
/// <summary>
|
/// 出口压力发生异常的标识
|
/// </summary>
|
public static string InfoTag_P2 = "P2";
|
/// <summary>
|
/// 功率发生异常的标识
|
/// </summary>
|
public static string InfoTag_Pa = "Pa";
|
/// <summary>
|
/// 效率发生异常的标识
|
/// </summary>
|
public static string InfoTag_Ea = "Ea";
|
/// <summary>
|
/// 电流发生异常的标识
|
/// </summary>
|
public static string InfoTag_Ia = "Ia";
|
/// <summary>
|
/// 曲线发生异常的标识
|
/// </summary>
|
public static string InfoTag_Curve = "Cu";
|
#endregion
|
|
|
|
|
#region 计算
|
|
/// <summary>
|
///
|
/// </summary>
|
/// <param name="mpa"></param>
|
/// <returns></returns>
|
public static double MPa2M(double mpa)
|
{
|
return mpa * 1000 / 9.81;
|
}
|
/// <summary>
|
///
|
/// </summary>
|
/// <param name="Q"></param>
|
/// <param name="H"></param>
|
/// <param name="P"></param>
|
/// <param name="midu"></param>
|
/// <param name="gavity"></param>
|
/// <returns></returns>
|
public static double Calc_Eta(double Q, double H, double P, double midu, double gavity)
|
{
|
P = P * 1000;//此处 1000 是 kw换成w
|
Q = Q / 3600;//此处 3600 是 小时换成秒
|
double E = 0;
|
if (P < 0.1)
|
E = 0;
|
else
|
E = midu * gavity * Q * H / P;
|
return Math.Round(E * 100, 2);//效率用百分数
|
}
|
/// <summary>
|
///
|
/// </summary>
|
/// <param name="Q"></param>
|
/// <param name="H"></param>
|
/// <param name="P"></param>
|
/// <returns></returns>
|
public static double Calc_Eta(double Q, double H, double P)
|
{
|
double midu = 1000;
|
double gavity = 9.81;
|
P = P * 1000;//此处 1000 是 kw换成w
|
Q = Q / 3600;//此处 3600 是 小时换成秒
|
double E = 0;
|
if (P < 0.1)
|
E = 0;
|
else
|
E = midu * gavity * Q * H / P;
|
return Math.Round(E * 100, 2);//效率用百分数
|
}
|
/// <summary>
|
///
|
/// </summary>
|
/// <returns></returns>
|
public bool Calcu_WP()
|
{
|
if (this.Qa == null || this.Qa < 0.1)
|
return false;
|
if (this.Pa == null || this.Pa < 0.1)
|
return false;
|
|
this.WPa = Math.Round(this.Pa.Value / this.Qa.Value * 1000f, 3);
|
return true;
|
}
|
|
/// <summary>
|
/// 单位水耗 千吨水
|
/// </summary>
|
/// <returns></returns>
|
public bool Calcu_UWP()
|
{
|
if (this.Qa == null || this.Qa < 0.1)
|
return false;
|
if (this.Pa == null || this.Pa < 0.1)
|
return false;
|
if (this.Ha == null || this.Ha < 0.1)
|
return false;
|
this.UWPa = Math.Round(this.Pa.Value / this.Qa.Value / this.Ha.Value * 1000f, 4);
|
return true;
|
}
|
#endregion
|
}
|
}
|