|
@@ -14,6 +14,7 @@ using Autodesk.Revit.DB.Mechanical;
|
|
|
using Newtonsoft.Json.Linq;
|
|
|
using NPOI.SS.UserModel;
|
|
|
using SAGA.DotNetUtils.Extend;
|
|
|
+using SAGA.DotNetUtils.Logger;
|
|
|
using SAGA.DotNetUtils.Others;
|
|
|
using SAGA.MBI.Calc;
|
|
|
using SAGA.MBI.DataArrange;
|
|
@@ -54,7 +55,7 @@ namespace SAGA.MBI.ToolsData.DataCheck
|
|
|
/// </summary>
|
|
|
/// <returns></returns>
|
|
|
private bool GetCheckResult()
|
|
|
- {
|
|
|
+ {
|
|
|
bool result = true;
|
|
|
var floors = DalProjectTree.GetSelectedFloors(true);
|
|
|
foreach (var mfloor in floors)
|
|
@@ -71,8 +72,8 @@ namespace SAGA.MBI.ToolsData.DataCheck
|
|
|
try
|
|
|
{
|
|
|
var tuple = CorrectLossDuty.GetCheckResult(mFloor);
|
|
|
- list.AddRange(GetCheckResult(tuple.Item1,true));
|
|
|
- list.AddRange(GetCheckResult(tuple.Item2,false));
|
|
|
+ list.AddRange(GetCheckResult(tuple.Item1, true));
|
|
|
+ list.AddRange(GetCheckResult(tuple.Item2, false));
|
|
|
}
|
|
|
catch (Exception e)
|
|
|
{
|
|
@@ -80,16 +81,20 @@ namespace SAGA.MBI.ToolsData.DataCheck
|
|
|
return list;
|
|
|
}
|
|
|
|
|
|
- private List<MissDutyOrModeCheckResult> GetCheckResult(CalcContext calcContext,bool isadd)
|
|
|
+ private List<MissDutyOrModeCheckResult> GetCheckResult(CalcContext calcContext, bool isadd)
|
|
|
{
|
|
|
List<MissDutyOrModeCheckResult> list = new List<MissDutyOrModeCheckResult>();
|
|
|
try
|
|
|
{
|
|
|
+ IEnumerable<IGrouping<string, DocumentChangedLogMode>> logsGroupByBimId=null;
|
|
|
//if (isadd)
|
|
|
- //{
|
|
|
- // calcContext.OpenDocument();
|
|
|
- //}
|
|
|
- Action<List<MRevitEquipBase>, List<MissDutyOrModeCheckResult>, DCElementType> convetAction = (dutys, l,type) =>
|
|
|
+ {
|
|
|
+ //检测有日志文件,才上传
|
|
|
+ var logs = DalLogOperate.GetLogs(calcContext.MFloor.Id);
|
|
|
+ //按id分组后的日志
|
|
|
+ logsGroupByBimId = logs.GroupBy(t => t.Id);
|
|
|
+ }
|
|
|
+ Action<List<MRevitEquipBase>, List<MissDutyOrModeCheckResult>, DCElementType> convetAction = (dutys, l, type) =>
|
|
|
{
|
|
|
foreach (var duty in dutys)
|
|
|
{
|
|
@@ -97,24 +102,35 @@ namespace SAGA.MBI.ToolsData.DataCheck
|
|
|
result.FloorName = calcContext.MFloor.ToString();
|
|
|
result.IsRight = false;
|
|
|
result.Type = type;
|
|
|
+ result.BIMID = duty.BimID.GetBIMID().ToString();
|
|
|
if (isadd)
|
|
|
{
|
|
|
- result.BIMID = duty.BimID.GetBIMID().ToString();
|
|
|
- result.RMessage = "无岗位,在模型中有可识别构件";
|
|
|
+ result.RMessage = "模型中有可识别构件,但物理世界未找到对应岗位";
|
|
|
+
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
result.DutyId = duty.Id;
|
|
|
result.DutyName = duty.ToString();
|
|
|
- result.RMessage = "有岗位,在模型中找不到对应构件";
|
|
|
+ result.RMessage = "岗位bimID有值,但在模型中未找到的对应构件";
|
|
|
+ }
|
|
|
+ //判断是否为没有上传模型引起的
|
|
|
+ var logs = logsGroupByBimId?.FirstOrDefault(t => t.Key == result.BIMID);
|
|
|
+ if (logs != null)
|
|
|
+ {
|
|
|
+ DocumentChangedLogMode log = DalLogOperate.CombineLogs(logs.ToList());
|
|
|
+ if (log != null)
|
|
|
+ {
|
|
|
+ result.RMessage = "未上传模型";
|
|
|
+ }
|
|
|
}
|
|
|
l.Add(result);
|
|
|
}
|
|
|
};
|
|
|
- convetAction(calcContext.MEquipments.ToList<MRevitEquipBase>(), list,DCElementType.Equipment);
|
|
|
- convetAction(calcContext.MEquipmentParts.ToList<MRevitEquipBase>(), list,DCElementType.EuipmentPart);
|
|
|
- convetAction(calcContext.MBeacons.ToList<MRevitEquipBase>(), list,DCElementType.Beacon);
|
|
|
- convetAction(calcContext.MSpaces.ToList<MRevitEquipBase>(), list,DCElementType.Space);
|
|
|
+ convetAction(calcContext.MEquipments.ToList<MRevitEquipBase>(), list, DCElementType.Equipment);
|
|
|
+ convetAction(calcContext.MEquipmentParts.ToList<MRevitEquipBase>(), list, DCElementType.EuipmentPart);
|
|
|
+ convetAction(calcContext.MBeacons.ToList<MRevitEquipBase>(), list, DCElementType.Beacon);
|
|
|
+ convetAction(calcContext.MSpaces.ToList<MRevitEquipBase>(), list, DCElementType.Space);
|
|
|
}
|
|
|
catch (Exception e)
|
|
|
{
|
|
@@ -144,7 +160,7 @@ namespace SAGA.MBI.ToolsData.DataCheck
|
|
|
|
|
|
#region 添加数据
|
|
|
int index = 3;
|
|
|
-
|
|
|
+
|
|
|
foreach (MissDutyOrModeCheckResult result in Results)
|
|
|
{
|
|
|
//数量过多,只显示有问题的
|