|
@@ -4,26 +4,18 @@
|
|
|
* 创建日期:2018/10/23 15:08:55
|
|
|
* ==============================================================================*/
|
|
|
|
|
|
-using System;
|
|
|
-using System.Collections.Generic;
|
|
|
-using System.Linq;
|
|
|
-using System.Text;
|
|
|
-using System.Text.RegularExpressions;
|
|
|
-using Autodesk.Revit.DB;
|
|
|
-using Autodesk.Revit.DB.Mechanical;
|
|
|
using Newtonsoft.Json.Linq;
|
|
|
using NPOI.SS.UserModel;
|
|
|
-using SAGA.DotNetUtils.Extend;
|
|
|
using SAGA.DotNetUtils.Others;
|
|
|
using SAGA.MBI.DataArrange;
|
|
|
-using SAGA.MBI.JsonConvert;
|
|
|
using SAGA.MBI.Model;
|
|
|
using SAGA.MBI.RequestData;
|
|
|
-using SAGA.MBI.Tools;
|
|
|
using SAGA.MBI.ToolsData.CheckBase;
|
|
|
using SAGA.MBI.ToolsData.ModeCheck;
|
|
|
-using SAGA.RevitUtils.Extends;
|
|
|
using SAGA.RevitUtils.MEP;
|
|
|
+using System;
|
|
|
+using System.Collections.Generic;
|
|
|
+using System.Linq;
|
|
|
|
|
|
namespace SAGA.MBI.ToolsData.DataCheck
|
|
|
{
|
|
@@ -34,7 +26,7 @@ namespace SAGA.MBI.ToolsData.DataCheck
|
|
|
{
|
|
|
public SpaceEquipFloorCheck()
|
|
|
{
|
|
|
- Name = "业务空间所在楼层与设备所在楼层一致性检查";
|
|
|
+ Name = "与业务空间有所在关系的设备的实际位置和业务空间位置不一致检查";
|
|
|
}
|
|
|
[DataCheckProcessAspect]
|
|
|
public override bool Check()
|
|
@@ -66,9 +58,9 @@ namespace SAGA.MBI.ToolsData.DataCheck
|
|
|
}
|
|
|
return Results.All(t => t.IsRight);
|
|
|
}
|
|
|
- private List<MissDutyOrModeCheckResult> GetCheckResult(MFloor mFloor)
|
|
|
+ private List<SpaceEquipFloorCheckResult> GetCheckResult(MFloor mFloor)
|
|
|
{
|
|
|
- List<MissDutyOrModeCheckResult> list = new List<MissDutyOrModeCheckResult>();
|
|
|
+ List<SpaceEquipFloorCheckResult> list = new List<SpaceEquipFloorCheckResult>();
|
|
|
|
|
|
try
|
|
|
{
|
|
@@ -77,7 +69,7 @@ namespace SAGA.MBI.ToolsData.DataCheck
|
|
|
//本层下的业务空间
|
|
|
foreach (GraphRelationType businessSpaceType in m_BusinessSpaceTypes)
|
|
|
{
|
|
|
- var spaces = DalCommon.DownLoadCouldData(mFloor.Id, new[] { businessSpaceType.Code });
|
|
|
+ list.AddRange(GetCheckResult(equips,businessSpaceType,mFloor));
|
|
|
}
|
|
|
}
|
|
|
catch (Exception e)
|
|
@@ -85,17 +77,14 @@ namespace SAGA.MBI.ToolsData.DataCheck
|
|
|
}
|
|
|
return list;
|
|
|
}
|
|
|
-
|
|
|
-
|
|
|
- //忽略的信息点
|
|
|
- private List<string> m_IgnoreList = new List<string>() { "EquipID", "EquipName" };
|
|
|
- private DutyFMInfoCheckResult GetCheckResult(List<MRevitEquipBase> equipsA, GraphRelationType businessSpaceType, MFloor mFloor)
|
|
|
+ private List<SpaceEquipFloorCheckResult> GetCheckResult(List<MRevitEquipBase> equipsA, GraphRelationType businessSpaceType, MFloor mFloor)
|
|
|
{
|
|
|
- DutyFMInfoCheckResult result = null;
|
|
|
+ List<SpaceEquipFloorCheckResult> list = new List<SpaceEquipFloorCheckResult>();
|
|
|
try
|
|
|
{
|
|
|
var spacesB = DalCommon.DownLoadCouldData(mFloor.Id, new[] { businessSpaceType.Code });
|
|
|
- JObject jobject = new JObject();
|
|
|
+ JObject jObject = new JObject();
|
|
|
+ JArray jArray=new JArray();
|
|
|
foreach (MRevitEquipBase space in spacesB)
|
|
|
{
|
|
|
JObject graphJObject = new JObject();
|
|
@@ -103,20 +92,56 @@ namespace SAGA.MBI.ToolsData.DataCheck
|
|
|
graphJObject.Add("relType", businessSpaceType.Rel_Type);
|
|
|
graphJObject.Add("side", "fromId");
|
|
|
graphJObject.Add("toId", space.Id);
|
|
|
- jobject.Add(graphJObject);
|
|
|
+ jArray.Add(graphJObject);
|
|
|
}
|
|
|
- var equipsC= CommonConvert.FloorQuery_SubSet(mFloor.Id, jobject, new[] { businessSpaceType.Code });
|
|
|
+ jObject.Add("include",jArray);
|
|
|
+ var equipsC = CommonConvert.FloorQuery_SubSet(mFloor.Id, jObject, new[] { businessSpaceType.Code });
|
|
|
var equipsD = equipsC.Except(equipsA, new CommonEqualComparer<MRevitEquipBase>((a, b) => a.Id == b.Id));
|
|
|
+ foreach (MRevitEquipBase equipBase in equipsD)
|
|
|
+ {
|
|
|
+ SpaceEquipFloorCheckResult mode = new SpaceEquipFloorCheckResult();
|
|
|
+ mode.SpaceType = businessSpaceType.Name;
|
|
|
+ var space = QuerySpaceByEquipId(businessSpaceType, equipBase.Id,mFloor.Id);
|
|
|
+ mode.SpaceName = space?.ToString();
|
|
|
+ mode.SpaceId = space?.Id;
|
|
|
+ mode.SpaceFloorName = mFloor.ToString();
|
|
|
+ mode.EquipName = equipBase.ToString();
|
|
|
+ mode.EquipId = equipBase.Id;
|
|
|
+ mode.EquipFloorName = DalProjectTree.GetFloorNameByFloorId(equipBase.FloorId);
|
|
|
+ mode.IsRight = false;
|
|
|
+ mode.RMessage = "业务空间所在楼层与该空间内设备的所在楼层信息不一致。";
|
|
|
+ list.Add(mode);
|
|
|
|
|
|
+ }
|
|
|
}
|
|
|
catch (Exception e)
|
|
|
{
|
|
|
- return result;
|
|
|
+ return list;
|
|
|
}
|
|
|
- return result;
|
|
|
+ return list;
|
|
|
}
|
|
|
-
|
|
|
-
|
|
|
+ /// <summary>
|
|
|
+ /// 由设备id,查询业务空间
|
|
|
+ /// </summary>
|
|
|
+ /// <param name="businessSpaceType"></param>
|
|
|
+ /// <param name="equipId">与空间有EquipinSpace关联的设备</param>
|
|
|
+ /// <param name="floorId"></param>
|
|
|
+ /// <returns></returns>
|
|
|
+ private MRevitEquipBase QuerySpaceByEquipId( GraphRelationType businessSpaceType, string equipId,string floorId)
|
|
|
+ {
|
|
|
+ JObject jObject = new JObject();
|
|
|
+ JArray jArray = new JArray();
|
|
|
+ JObject graphJObject = new JObject();
|
|
|
+ graphJObject.Add("graphType", businessSpaceType.Code);
|
|
|
+ graphJObject.Add("relType", businessSpaceType.Rel_Type);
|
|
|
+ graphJObject.Add("side", "fromId");
|
|
|
+ graphJObject.Add("fromId", equipId);
|
|
|
+ jArray.Add(graphJObject);
|
|
|
+ jObject.Add("include", jArray);
|
|
|
+ var items = CommonConvert.FloorQuery_SubSet(floorId, jObject, new[] { businessSpaceType.Code });
|
|
|
+ return items.FirstOrDefault();
|
|
|
+ }
|
|
|
+
|
|
|
|
|
|
#endregion
|
|
|
|
|
@@ -135,18 +160,8 @@ namespace SAGA.MBI.ToolsData.DataCheck
|
|
|
//添加 共检查XXX条数据,未通过检查的如下 提示
|
|
|
IRow rowTip = sheet.CreateRow(index - 1);
|
|
|
rowTip.AddCell(0, $"总检查{Results.Count}条数据,未通过检查的如下", DataCheckNPOIStyle.Title);
|
|
|
- //IRow row4 = sheet.CreateRow(index);
|
|
|
- //row4.HeightInPoints = 15;
|
|
|
|
|
|
- //row4.AddCell(0, "楼层本地名称", DataCheckNPOIStyle.Title);
|
|
|
- //row4.AddCell(1, "文件名", DataCheckNPOIStyle.Title);
|
|
|
- //row4.AddCell(2, "文件地址", DataCheckNPOIStyle.Title);
|
|
|
- //row4.AddCell(3, "族名称", DataCheckNPOIStyle.Title);
|
|
|
- //row4.AddCell(4, "类型", DataCheckNPOIStyle.Title);
|
|
|
- //row4.AddCell(5, "ID", DataCheckNPOIStyle.Title);
|
|
|
- //row4.AddCell(6, "通过", DataCheckNPOIStyle.Title);
|
|
|
- //row4.AddCell(7, "备注(失败原因)", DataCheckNPOIStyle.Title);
|
|
|
- foreach (DutyFMInfoCheckResult result in Results)
|
|
|
+ foreach (SpaceEquipFloorCheckResult result in Results)
|
|
|
{
|
|
|
//数量过多,只显示有问题的
|
|
|
if (result.IsRight) continue;
|
|
@@ -154,12 +169,13 @@ namespace SAGA.MBI.ToolsData.DataCheck
|
|
|
IRow rowN = sheet.CreateRow(index);
|
|
|
DataCheckNPOIStyle style = result.IsRight ? DataCheckNPOIStyle.Content : DataCheckNPOIStyle.Error;
|
|
|
int i = 0;
|
|
|
- rowN.AddCell(i++, result.FloorName, style);
|
|
|
- rowN.AddCell(i++, result.FMId, style);
|
|
|
- rowN.AddCell(i++, result.FMName, style);
|
|
|
- rowN.AddCell(i++, result.DutyId, style);
|
|
|
- rowN.AddCell(i++, result.DutyName, style);
|
|
|
- rowN.AddCell(i++, result.BIMID, style);
|
|
|
+ rowN.AddCell(i++, result.SpaceType, style);
|
|
|
+ rowN.AddCell(i++, result.SpaceName, style);
|
|
|
+ rowN.AddCell(i++, result.SpaceId, style);
|
|
|
+ rowN.AddCell(i++, result.SpaceFloorName, style);
|
|
|
+ rowN.AddCell(i++, result.EquipName, style);
|
|
|
+ rowN.AddCell(i++, result.EquipId, style);
|
|
|
+ rowN.AddCell(i++, result.EquipFloorName, style);
|
|
|
string rowN4 = result.IsRight ? "通过" : "不通过";
|
|
|
rowN.AddCell(i++, rowN4, style);
|
|
|
rowN.AddCell(i++, result.RMessage, style);
|