|
@@ -9,18 +9,41 @@ namespace SAGA.GplotManage
|
|
|
{
|
|
|
public class RelationDataManager
|
|
|
{
|
|
|
- private void InitRelationData(List<RelationUploader> uploaders)
|
|
|
+ #region 静态方法
|
|
|
+ /// <summary>
|
|
|
+ /// 获取所有使用uploader
|
|
|
+ /// </summary>
|
|
|
+ /// <returns></returns>
|
|
|
+ public static List<RelationUploader> GetAllUploaders()
|
|
|
+ {
|
|
|
+ List<RelationUploader> uploaders = new List<RelationUploader>();
|
|
|
+ uploaders.Add(new ElectricalRelationUploader("EquipPower", "设备电源"));
|
|
|
+ uploaders.Add(new ElectricalRelationUploader("LUDistribution", "低压配电柜关系"));
|
|
|
+ uploaders.Add(new ElectricalRelationUploader("ControlRelation","对象受控关系"));
|
|
|
+
|
|
|
+ uploaders.Add(new SpaceRelationUploader("ElementSpNeighborhood", "空间邻接关系"));
|
|
|
+ uploaders.Add(new SpaceRelationUploader("TrafficNetwork", "建筑交通网络"));
|
|
|
+ uploaders.Add(new SpaceRelationUploader("ConvectionNetwork", "空气流通网络"));
|
|
|
+ uploaders.Add(new SpaceRelationUploader("RadiationNetwork", "光照辐射网络"));
|
|
|
+ var sytemRelationTypes = RelationTypeManager.GetSystemRelationTypes();
|
|
|
+ foreach (RelationItem relation in sytemRelationTypes)
|
|
|
+ {
|
|
|
+ uploaders.Add(new SpaceRelationUploader(relation.Type, relation.Name));
|
|
|
+ }
|
|
|
+ return uploaders;
|
|
|
+ }
|
|
|
+ public static void ComputerRelations(List<RelationUploader> uploaders, bool useCache)
|
|
|
{
|
|
|
bool containSpace = false;
|
|
|
List<string> systems = new List<string>();
|
|
|
foreach (var uploader in uploaders)
|
|
|
{
|
|
|
- if(uploader is SystemRelationUploader)
|
|
|
+ if (uploader is SystemRelationUploader)
|
|
|
{
|
|
|
systems.Add(uploader.RelationType);
|
|
|
continue;
|
|
|
}
|
|
|
- if(!containSpace&&uploader is SpaceRelationUploader)
|
|
|
+ if (!containSpace && uploader is SpaceRelationUploader)
|
|
|
{
|
|
|
containSpace = true;
|
|
|
continue;
|
|
@@ -29,13 +52,41 @@ namespace SAGA.GplotManage
|
|
|
//计算数据,以后可能合并
|
|
|
#region 计算空间数据
|
|
|
SpaceComputerHandler spaceHandler = new SpaceComputerHandler();
|
|
|
- spaceHandler.ComputerWidthCache();
|
|
|
- SpaceData=SpaceComputerDataUtil.LoadData();
|
|
|
+ if (containSpace)
|
|
|
+ {
|
|
|
+ if (useCache)
|
|
|
+ {
|
|
|
+ spaceHandler.ComputerWidthCache();
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ spaceHandler.Computer();
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
#endregion
|
|
|
#region 计算管道数据
|
|
|
SystemComputerHandler systemHandler = new SystemComputerHandler();
|
|
|
- systemHandler.ComputerWidthCache(systems);
|
|
|
+ if (useCache)
|
|
|
+ {
|
|
|
+ systemHandler.ComputerWidthCache(systems);
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ systemHandler.Computer(systems);
|
|
|
+ }
|
|
|
#endregion
|
|
|
+ }
|
|
|
+ #endregion
|
|
|
+ public void InitRelationData(List<RelationUploader> uploaders)
|
|
|
+ {
|
|
|
+ ComputerRelations(uploaders, false);
|
|
|
+ if (uploaders.Any(s=>s is SpaceRelationUploader))
|
|
|
+ {
|
|
|
+ SpaceData = SpaceComputerDataUtil.LoadData();
|
|
|
+ }
|
|
|
+
|
|
|
}
|
|
|
/// <summary>
|
|
|
/// 获取空间计算数据
|
|
@@ -56,5 +107,24 @@ namespace SAGA.GplotManage
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
+ /// <summary>
|
|
|
+ /// 将传入各个关系,重新计算,在生成关系数据
|
|
|
+ /// </summary>
|
|
|
+ /// <param name="uploaders"></param>
|
|
|
+ public void CommitRelationsByReComputer(List<RelationUploader> uploaders)
|
|
|
+ {
|
|
|
+ ComputerRelations(uploaders, true);
|
|
|
+ foreach (RelationUploader uploader in uploaders)
|
|
|
+ {
|
|
|
+ if (uploader is SpaceRelationUploader)
|
|
|
+ {
|
|
|
+ uploader.Upload(SpaceData);
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ uploader.Upload();
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
}
|
|
|
}
|