|
@@ -24,6 +24,7 @@ using System.Collections.ObjectModel;
|
|
|
using System.IO;
|
|
|
using System.Linq;
|
|
|
using System.Reflection;
|
|
|
+using SAGA.MBI.FileStream;
|
|
|
using SAGA.RevitUtils.MEP;
|
|
|
|
|
|
namespace SAGA.MBI.DataArrange
|
|
@@ -68,7 +69,7 @@ namespace SAGA.MBI.DataArrange
|
|
|
ProjectLogManager.ClearFile(tuple.Item1);
|
|
|
//更新拓扑计算结果版本
|
|
|
GplotWatch.RefreshAll(DateTime.Now);
|
|
|
-
|
|
|
+
|
|
|
j++;
|
|
|
}
|
|
|
else
|
|
@@ -454,17 +455,6 @@ namespace SAGA.MBI.DataArrange
|
|
|
}
|
|
|
return list;
|
|
|
}
|
|
|
-
|
|
|
- /// <summary>
|
|
|
- /// 上传
|
|
|
- /// </summary>
|
|
|
- public static void Upload()
|
|
|
- {
|
|
|
- //常规计算
|
|
|
- //常规上传
|
|
|
- //拓扑计算
|
|
|
- //拓扑上传
|
|
|
- }
|
|
|
/// <summary>
|
|
|
/// 获取所有的拓扑图类型
|
|
|
/// </summary>
|
|
@@ -497,7 +487,7 @@ namespace SAGA.MBI.DataArrange
|
|
|
cloudContext.SetState(DocumentChangedOperator.None);
|
|
|
localContext.SetState(DocumentChangedOperator.None);
|
|
|
#region Modify Add
|
|
|
- foreach (var lduty in localContext.GetAllDutys())
|
|
|
+ foreach (var lduty in localDutys)
|
|
|
{
|
|
|
string bimId = lduty.BimID;
|
|
|
var cdutys = cloudDutys.Where(t => t.BimID == bimId).ToList();
|
|
@@ -514,11 +504,20 @@ namespace SAGA.MBI.DataArrange
|
|
|
cdutys[i].Operator = DocumentChangedOperator.Delete;
|
|
|
}
|
|
|
}
|
|
|
- cduty = cdutys.FirstOrDefault();
|
|
|
}
|
|
|
-
|
|
|
+ else
|
|
|
+ {
|
|
|
+ //请求Duty,Bim数据库中的id,待建模型清单产生的
|
|
|
+ var dutyId = lduty.GetDutyBIMRelationByBIM()?.DutyId;
|
|
|
+ if (dutyId.IsNotNullEmpty())
|
|
|
+ {
|
|
|
+ cdutys = cloudDutys.Where(t => t.Id == dutyId).ToList();
|
|
|
+ }
|
|
|
+ }
|
|
|
+ cduty = cdutys.FirstOrDefault();
|
|
|
if (cduty == null)
|
|
|
- {//找不到物理世界对应的岗位,即为添加
|
|
|
+ {
|
|
|
+ //找不到物理世界对应的岗位,即为添加
|
|
|
lduty.Operator = DocumentChangedOperator.Add;
|
|
|
}
|
|
|
else
|
|
@@ -540,7 +539,6 @@ namespace SAGA.MBI.DataArrange
|
|
|
}
|
|
|
}
|
|
|
|
|
|
-
|
|
|
//处理设备所在空间的关系
|
|
|
OperateBaseRelation(localContext, lduty);
|
|
|
}
|
|
@@ -551,8 +549,8 @@ namespace SAGA.MBI.DataArrange
|
|
|
//CloudDuty,有两种操作,更新和删除。更新等价于None
|
|
|
foreach (var duty in cloudDutys)
|
|
|
{
|
|
|
- //物理世界修改,不做处理
|
|
|
- if (duty.Operator == DocumentChangedOperator.Modified)
|
|
|
+ //物理世界修改,不做处理或台账转过来的岗位
|
|
|
+ if (duty.BimID.IsOnlyDutyNoModelBIMID() || duty.Operator == DocumentChangedOperator.Modified)
|
|
|
{
|
|
|
duty.Operator = DocumentChangedOperator.None;
|
|
|
continue;
|
|
@@ -563,11 +561,11 @@ namespace SAGA.MBI.DataArrange
|
|
|
}
|
|
|
|
|
|
#endregion
|
|
|
-
|
|
|
-
|
|
|
+
|
|
|
+
|
|
|
}
|
|
|
/// <summary>
|
|
|
- /// 处理基本关系
|
|
|
+ /// 删除服务器基本关系
|
|
|
/// </summary>
|
|
|
private static void DelServiceRelation(CalcContext localContext, MRevitEquipBase mode)
|
|
|
{
|
|
@@ -578,7 +576,7 @@ namespace SAGA.MBI.DataArrange
|
|
|
var beaconrelations = localContext.RltBeaconinElementSps;
|
|
|
if (mode is MBSpace)
|
|
|
{
|
|
|
- var equipRelation=new RltEquipInSpace(null,mode.Id){Operator = DocumentChangedOperator.Delete};
|
|
|
+ var equipRelation = new RltEquipInSpace(null, mode.Id) { Operator = DocumentChangedOperator.Delete };
|
|
|
equiprelations.Add(equipRelation);
|
|
|
var beaconRelation = new RltBeaconinElementSp(null, mode.Id) { Operator = DocumentChangedOperator.Delete };
|
|
|
beaconrelations.Add(beaconRelation);
|
|
@@ -593,7 +591,7 @@ namespace SAGA.MBI.DataArrange
|
|
|
var equipRelation = new RltEquipInSpace(mode.Id, null) { Operator = DocumentChangedOperator.Delete };
|
|
|
equiprelations.Add(equipRelation);
|
|
|
}
|
|
|
-
|
|
|
+
|
|
|
|
|
|
#endregion
|
|
|
}
|
|
@@ -647,5 +645,33 @@ namespace SAGA.MBI.DataArrange
|
|
|
|
|
|
#endregion
|
|
|
}
|
|
|
+ /// <summary>
|
|
|
+ /// 上传岗位和基本关系数据操作
|
|
|
+ /// </summary>
|
|
|
+ /// <param name="floor"></param>
|
|
|
+ public static void UploadDataOperate(MFloor floor)
|
|
|
+ {
|
|
|
+ CalcContext serviceContext = DalCommon.DownLoadCouldData(floor);
|
|
|
+ CalcContext localContext = ObjectCalc.Calc(floor);
|
|
|
+ WrapperContext(serviceContext, localContext);
|
|
|
+ serviceContext.Upload();
|
|
|
+ localContext.Upload();
|
|
|
+ }
|
|
|
+
|
|
|
+ /// <summary>
|
|
|
+ /// 上传或下载完成之后的操作
|
|
|
+ /// </summary>
|
|
|
+ public static void AfterUploadOperate(MFloor floor, bool isunlock = true)
|
|
|
+ {
|
|
|
+ //请除Duty和BIMID的关系
|
|
|
+ MBIAssistHelper.DeleteFloorRelation(floor.Id);
|
|
|
+ if (isunlock)
|
|
|
+ //解锁
|
|
|
+ DalLock.UnLockFloor(floor.Id, false);
|
|
|
+ //上传成功后清除日志数据
|
|
|
+ ProjectLogManager.ClearFiles(floor.Id);
|
|
|
+ //删除备份文件
|
|
|
+ FloorFileOperate.Del000BakFile(floor.FullPath);
|
|
|
+ }
|
|
|
}
|
|
|
}
|