diff --git a/Learun.Application.Web/AppApi/PlotLayoutApiController.cs b/Learun.Application.Web/AppApi/PlotLayoutApiController.cs index 9755394b..de74eb8e 100644 --- a/Learun.Application.Web/AppApi/PlotLayoutApiController.cs +++ b/Learun.Application.Web/AppApi/PlotLayoutApiController.cs @@ -160,6 +160,7 @@ namespace Learun.Application.Web.AppApi res.Add(layoutTag); } + res = res.OrderByDescending(x => x.RoomNo).ToList(); // 找出area和deck列组合重复的行 var duplicateGroups = res .GroupBy(r => new { r.area, r.deck, r.RoomNo }) @@ -179,7 +180,7 @@ namespace Learun.Application.Web.AppApi var validSystems = keyValue.Split(';').ToList(); matchedTagIds = propAll.Where(item => item.PropertyName == keyProp && - validSystems.Any(prefix => item.PropertyValue == prefix) || validSystems.Any(prefix => item.PropertyValue.StartsWith(prefix + GlobalObject.enum_separator)) + (validSystems.Any(prefix => item.PropertyValue == prefix) || validSystems.Any(prefix => item.PropertyValue.StartsWith(prefix + GlobalObject.enum_separator))) ).Select(X => X.EngineDataID).Distinct().ToList(); //} //else @@ -200,15 +201,22 @@ namespace Learun.Application.Web.AppApi .ToList(); //有效范围的设备的所有属性 - var EquipPropAll = propAll.Where(x => matchedTags.Select(y => y.EngineDataID).Contains(x.EngineDataID)).ToList(); + var EquipPropAll = propAll.Where(x => matchedTags.Select(y => y.EngineDataID).Contains(x.EngineDataID)) + .Select(x=>new ec_enginedata_propertyEntity { + PropertyName=x.PropertyName, + PropertyValue=x.PropertyValue, + EngineDataID=x.EngineDataID, + Marker = false + }).ToList(); foreach (var basePoint in res) { #region 每个基点关联的设备 //甲板 区域都和基点一致的设备 - var DeckMatchedTagIds = EquipPropAll.Where(x => x.PropertyName == "甲板号" && (x.PropertyValue?.Split(new[] { "||" }, StringSplitOptions.None)[0] == basePoint.deck)).Select(X => X.EngineDataID).ToList(); + var DeckMatchedTagIds = EquipPropAll.Where(x => x.PropertyName == "甲板号" && (x.PropertyValue?.Split(new[] { "||" }, StringSplitOptions.None)[0] == basePoint.deck) && x.Marker==false).Select(X => X.EngineDataID).ToList(); //var AreaMatchedTagIds = EquipPropAll.Where(x => x.PropertyName == "区域" && x.PropertyValue == basePoint.area).Select(X => X.EngineDataID).ToList(); //#task 9542 var matchPointTagIds = DeckMatchedTagIds;//.Intersect(AreaMatchedTagIds).ToList(); + var matchPointTagIdSet = new System.Collections.Generic.HashSet(matchPointTagIds); foreach (var matchPointTagId in matchPointTagIds) { @@ -225,7 +233,7 @@ namespace Learun.Application.Web.AppApi Prop_RoomNo = Prop_RoomNo.Split(new string[] { GlobalObject.enum_separator }, StringSplitOptions.None)[0];//插件端对于下拉列表 都是 name || nameEN } var matchedFrame = frameLists.FirstOrDefault(X => X.Num == Prop_Frame); - var matchedRoom = roomLists.FirstOrDefault(x => x.DataItemName == Prop_RoomNo); + var matchedRoom = roomLists.FirstOrDefault(x => x.DataItemName == Prop_RoomNo || x.DataItemName+" "+ x.DataItemNameEN==Prop_RoomNo); if (matchedFrame == null && matchedRoom == null) { var layoutTagInfoInvalid = new layoutTagInfoBrief() @@ -236,6 +244,11 @@ namespace Learun.Application.Web.AppApi area = "ERR", }; basePoint.Tags.Add(layoutTagInfoInvalid); + foreach (var item in EquipPropAll) + { + if (matchPointTagIdSet.Contains(item.EngineDataID)) + item.Marker = true; + } continue; } double xValue = 0; @@ -352,6 +365,11 @@ namespace Learun.Application.Web.AppApi RoomNo = strRoom }; basePoint.Tags.Add(layoutTagInfo); + foreach (var item in EquipPropAll) + { + if (matchPointTagIdSet.Contains(item.EngineDataID)) + item.Marker = true; + } } #endregion } diff --git a/Learun.Application.Web/Areas/ZZDT_EC/Views/ec_objecttype/FormLayoutFilter.js b/Learun.Application.Web/Areas/ZZDT_EC/Views/ec_objecttype/FormLayoutFilter.js index 093a680c..fc2f20be 100644 --- a/Learun.Application.Web/Areas/ZZDT_EC/Views/ec_objecttype/FormLayoutFilter.js +++ b/Learun.Application.Web/Areas/ZZDT_EC/Views/ec_objecttype/FormLayoutFilter.js @@ -22,8 +22,7 @@ var bootstrap = function ($, learun) { url: top.$.rootUrl + '/ZZDT_EC/ec_library_file/GetTreeDataByObjectType',//获取数据地址 param: { ProjectId: ProjectId, ObjectTypeID: objectTypeId }, //请求后台参数 type: 'tree',//数据展示类型: 1.default:普通;2.tree:树形数据;3. treemultiple:树形多选;multiple:普通多选 - allowSearch: true, - maxHeight: 225 + allowSearch: true }).lrselectSet(LayoutLibFileID);//lrselectSet获取下拉框选择的值,传入objectTypeId }, initData: function () { diff --git a/Learun.Framework.Module/Learun.Application.Module/Learun.Application.TwoDevelopment/ZZDT_EC/ec_enginedata_property/ec_enginedata_propertyEntity.cs b/Learun.Framework.Module/Learun.Application.Module/Learun.Application.TwoDevelopment/ZZDT_EC/ec_enginedata_property/ec_enginedata_propertyEntity.cs index 4b2e7d79..6da2dbda 100644 --- a/Learun.Framework.Module/Learun.Application.Module/Learun.Application.TwoDevelopment/ZZDT_EC/ec_enginedata_property/ec_enginedata_propertyEntity.cs +++ b/Learun.Framework.Module/Learun.Application.Module/Learun.Application.TwoDevelopment/ZZDT_EC/ec_enginedata_property/ec_enginedata_propertyEntity.cs @@ -118,6 +118,11 @@ namespace Learun.Application.TwoDevelopment.ZZDT_EC /// [SugarColumn(IsIgnore = true)] public string ObjectTypeName { get; set; } + /// + /// 标记是否已使用,布置图自动放置时用 + /// + [SugarColumn(IsIgnore = true)] + public bool Marker { get; set; } #endregion } }