using DevExpress.Xpo.Helpers;
|
using NPOI.SS.Formula.Functions;
|
using Yw.Hydro;
|
using Yw.Model;
|
using Yw.Service;
|
|
namespace Yw.WinFrmUI
|
{
|
/// <summary>
|
/// 构件属性辅助类
|
/// </summary>
|
public class HydroPropStatusHelper
|
{
|
/// <summary>
|
///
|
/// </summary>
|
public HydroPropStatusHelper
|
(
|
Yw.Model.HydroModelInfo hydroInfo,
|
List<Yw.Model.HydroParterPropStatusInfo> allPropStatusDbList
|
)
|
{
|
_hydroInfo = hydroInfo;
|
_dict = _hydroInfo.ToPropStatusInfoDict(allPropStatusDbList);
|
}
|
|
private Yw.Model.HydroModelInfo _hydroInfo = null;//水力信息
|
private Dictionary<string, List<Yw.Model.HydroParterPropStatusInfo>> _dict = null;//字典
|
private Dictionary<string, List<Yw.Model.HydroParterPropStatusInfo>> _dictUpdate = null;//更新字典
|
|
/// <summary>
|
/// 获取属性状态信息
|
/// </summary>
|
public HydroParterPropStatusInfo GetPropStatusInfo(string code, string propNameInfo)
|
{
|
if (string.IsNullOrEmpty(code))
|
{
|
return default;
|
}
|
if (string.IsNullOrEmpty(propNameInfo))
|
{
|
return default;
|
}
|
if (_dict == null)
|
{
|
_dict = new Dictionary<string, List<Model.HydroParterPropStatusInfo>>();
|
}
|
if (!_dict.ContainsKey(code))
|
{
|
_dict.Add(code, new List<Model.HydroParterPropStatusInfo>());
|
}
|
if (_dict[code] == null)
|
{
|
_dict[code] = new List<Model.HydroParterPropStatusInfo>();
|
}
|
var list = _dict[code];
|
var propStatusInfo = list.Find(x => x.PropName == propNameInfo);
|
return propStatusInfo;
|
|
}
|
|
/// <summary>
|
/// 获取属性状态Db列表
|
/// </summary>
|
public List<Yw.Model.HydroParterPropStatusInfo> GetPropStatusDbList()
|
{
|
return _hydroInfo.ToPropStatusDbList(_dict);
|
}
|
|
/// <summary>
|
/// 获取更新属性状态Db列表
|
/// </summary>
|
/// <returns></returns>
|
public List<Yw.Model.HydroParterPropStatusInfo> GetUpdatePropStatusDbList()
|
{
|
return _hydroInfo.ToPropStatusDbList(_dictUpdate);
|
}
|
|
/// <summary>
|
/// 重置
|
/// </summary>
|
public void Reset()
|
{
|
_dictUpdate?.Clear();
|
}
|
|
/// <summary>
|
/// 更新属性状态
|
/// </summary>
|
public void UpdatePropStatus(Yw.Model.HydroParterInfo parter, string propNameInfo, ePropStatus propStatus, string statusInfo)
|
{
|
UpdatePropStatus(parter?.Code, propNameInfo, propStatus, statusInfo);
|
}
|
|
/// <summary>
|
/// 更新属性状态
|
/// </summary>
|
public void UpdatePropStatus(string code, string propNameInfo, ePropStatus propStatus, string statusInfo)
|
{
|
if (string.IsNullOrEmpty(code))
|
{
|
return;
|
}
|
if (string.IsNullOrEmpty(propNameInfo))
|
{
|
return;
|
}
|
if (_dict == null)
|
{
|
_dict = new Dictionary<string, List<Model.HydroParterPropStatusInfo>>();
|
}
|
if (!_dict.ContainsKey(code))
|
{
|
_dict.Add(code, new List<Model.HydroParterPropStatusInfo>());
|
}
|
if (_dict[code] == null)
|
{
|
_dict[code] = new List<Model.HydroParterPropStatusInfo>();
|
}
|
var list = _dict[code];
|
var propStatusInfo = list.Find(x => x.PropName == propNameInfo);
|
if (propStatusInfo == null)
|
{
|
propStatusInfo = new HydroParterPropStatusInfo()
|
{
|
Parter = code,
|
PropName = propNameInfo
|
};
|
list.Add(propStatusInfo);
|
}
|
propStatusInfo.PropStatus = propStatus;
|
propStatusInfo.StatusInfo = statusInfo;
|
|
AppendUpdatePropStatus(propStatusInfo);
|
}
|
|
//附加更新属性状态
|
private void AppendUpdatePropStatus(HydroParterPropStatusInfo propStatusInfo)
|
{
|
if (propStatusInfo == null)
|
{
|
return;
|
}
|
if (string.IsNullOrEmpty(propStatusInfo.Parter))
|
{
|
return;
|
}
|
if (string.IsNullOrEmpty(propStatusInfo.PropName))
|
{
|
return;
|
}
|
if (_dictUpdate == null)
|
{
|
_dictUpdate = new Dictionary<string, List<HydroParterPropStatusInfo>>();
|
}
|
if (!_dictUpdate.ContainsKey(propStatusInfo.Parter))
|
{
|
_dictUpdate.Add(propStatusInfo.Parter, new List<HydroParterPropStatusInfo>());
|
}
|
if (_dictUpdate[propStatusInfo.Parter] == null)
|
{
|
_dictUpdate[propStatusInfo.Parter] = new List<Model.HydroParterPropStatusInfo>();
|
}
|
var list = _dictUpdate[propStatusInfo.Parter];
|
list.RemoveAll(x => x.PropName == propStatusInfo.PropName);
|
list.Add(propStatusInfo);
|
}
|
|
|
|
|
}
|
}
|