From 7e5aa24ab1cb5e78b518d7c80bbbf2d95fabe763 Mon Sep 17 00:00:00 2001 From: supercjj2023 Date: Thu, 25 Sep 2025 16:56:23 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E5=8F=96ROOMNO=E6=95=B0?= =?UTF-8?q?=E6=8D=AE=E6=9C=89=E5=85=B3=E7=9A=84=E4=BB=A3=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../AppApi/PlotLayoutApiController.cs | 64 +++++++++++++++---- .../ZZDT_EC/GlobalObject.cs | 1 + .../ec_enginedata/layoutTagInfoBrief.cs | 3 +- 3 files changed, 55 insertions(+), 13 deletions(-) diff --git a/Learun.Application.Web/AppApi/PlotLayoutApiController.cs b/Learun.Application.Web/AppApi/PlotLayoutApiController.cs index 2624e147..91139941 100644 --- a/Learun.Application.Web/AppApi/PlotLayoutApiController.cs +++ b/Learun.Application.Web/AppApi/PlotLayoutApiController.cs @@ -61,6 +61,12 @@ namespace Learun.Application.Web.AppApi { return Fail("项目数据字典中,没有找到【肋位号】的下拉项中。");// 或者 无法从数据字典中找到对应的那个下拉 } + ec_dataitemBLL ec_DataitemBLL = new ec_dataitemBLL(); + var roomLists = ec_DataitemBLL.GetDetailList("RoomNo", "", ProjectId, false); + if (roomLists == null) + { + return Fail("项目数据字典中,没有找到【房间号】的下拉项中。");// 或者 无法从数据字典中找到对应的那个下拉 + } #endregion @@ -85,10 +91,17 @@ namespace Learun.Application.Web.AppApi { Prop_Frame = Prop_Frame.Split(new string[] { GlobalObject.enum_separator }, StringSplitOptions.None)[0];//插件端对于下拉列表 都是 name || nameEN + } + var Prop_Room = tagProps.FirstOrDefault(x => x.PropertyName == GlobalObject.propName_Room)?.PropertyValue; + if (Prop_Room != null) + { + Prop_Room = Prop_Room.Split(new string[] { GlobalObject.enum_separator }, StringSplitOptions.None)[0];//插件端对于下拉列表 都是 name || nameEN + } var matchedFrame = frameLists.FirstOrDefault(X => X.Num == Prop_Frame); - if (matchedFrame == null) + var matchedRoom = roomLists.FirstOrDefault(X => X.DataItemName == Prop_Room); + if (matchedFrame == null && matchedRoom == null) { //没有 //无效的基点 @@ -104,12 +117,22 @@ namespace Learun.Application.Web.AppApi res.Add(layoutTagInvalid); continue; } - var xValue = frameLists.FirstOrDefault(X => X.Num == Prop_Frame).Value; - if (xValue < 400) + double xValue = 0 ; + if (matchedFrame != null) { - // 小于400,我几乎可以认为此时肋位号用的是m这个单位。因为如果用的是mm,400mm的肋位号似乎也太小了。 - xValue = 1000 * xValue; // 转成mm + xValue = frameLists.FirstOrDefault(X => X.Num == Prop_Frame).Value; + if (xValue < 400) + { + // 小于400,我几乎可以认为此时肋位号用的是m这个单位。因为如果用的是mm,400mm的肋位号似乎也太小了。 + xValue = 1000 * xValue; // 转成mm + } } + string strRoom = string.Empty; + if (matchedRoom != null) + { + strRoom = matchedRoom.DataItemName; + } + var Prop_FrameOff = tagProps.FirstOrDefault(x => x.PropertyName == GlobalObject.propName_FrameOff)?.PropertyValue; var Prop_YOff = tagProps.FirstOrDefault(x => x.PropertyName == GlobalObject.propName_YOff)?.PropertyValue; var DECK = tagProps.FirstOrDefault(x => x.PropertyName == "甲板号")?.PropertyValue; @@ -128,7 +151,8 @@ namespace Learun.Application.Web.AppApi YOff = Prop_YOff, deck = DECK, area = AREA, - Scale = BasePointProp_scale == null ? 1 : (double.TryParse(BasePointProp_scale.PropertyValue, out double scale) ? scale : 1) + Scale = BasePointProp_scale == null ? 1 : (double.TryParse(BasePointProp_scale.PropertyValue, out double scale) ? scale : 1), + RoomNo = strRoom }; @@ -195,8 +219,14 @@ namespace Learun.Application.Web.AppApi { Prop_Frame = Prop_Frame.Split(new string[] { GlobalObject.enum_separator }, StringSplitOptions.None)[0];//插件端对于下拉列表 都是 name || nameEN } + var Prop_RoomNo = tagProps.FirstOrDefault(x => x.PropertyName == GlobalObject.propName_Room)?.PropertyValue; + if (Prop_RoomNo != null) + { + Prop_RoomNo = Prop_RoomNo.Split(new string[] { GlobalObject.enum_separator }, StringSplitOptions.None)[0];//插件端对于下拉列表 都是 name || nameEN + } var matchedFrame = frameLists.FirstOrDefault(X => X.Num == Prop_Frame); - if (matchedFrame == null) + var matchedRoom = roomLists.FirstOrDefault(x => x.DataItemName == Prop_RoomNo); + if (matchedFrame == null && matchedRoom == null) { var layoutTagInfoInvalid = new layoutTagInfoBrief() { @@ -208,11 +238,20 @@ namespace Learun.Application.Web.AppApi basePoint.Tags.Add(layoutTagInfoInvalid); continue; } - var xValue = frameLists.FirstOrDefault(X => X.Num == Prop_Frame).Value; - if (xValue < 400) + double xValue = 0; + if (matchedFrame != null) { - // 小于400,我几乎可以认为此时肋位号用的是m这个单位。因为如果用的是mm,400mm的肋位号似乎也太小了。 - xValue = 1000 * xValue; // 转成mm + xValue = frameLists.FirstOrDefault(X => X.Num == Prop_Frame).Value; + if (xValue < 400) + { + // 小于400,我几乎可以认为此时肋位号用的是m这个单位。因为如果用的是mm,400mm的肋位号似乎也太小了。 + xValue = 1000 * xValue; // 转成mm + } + } + string strRoom = string.Empty; + if (matchedRoom != null) + { + strRoom = matchedRoom.DataItemName; } var Prop_FrameOff = tagProps.FirstOrDefault(x => x.PropertyName == GlobalObject.propName_FrameOff)?.PropertyValue; var Prop_YOff = tagProps.FirstOrDefault(x => x.PropertyName == GlobalObject.propName_YOff)?.PropertyValue; @@ -309,7 +348,8 @@ namespace Learun.Application.Web.AppApi YOff = Prop_YOff, deck = basePoint.deck, area = basePoint.area, - Scale = basePoint.Scale + Scale = basePoint.Scale, + RoomNo = strRoom }; basePoint.Tags.Add(layoutTagInfo); } diff --git a/Learun.Framework.Module/Learun.Application.Module/Learun.Application.TwoDevelopment/ZZDT_EC/GlobalObject.cs b/Learun.Framework.Module/Learun.Application.Module/Learun.Application.TwoDevelopment/ZZDT_EC/GlobalObject.cs index ba3fc7f8..0da8373d 100644 --- a/Learun.Framework.Module/Learun.Application.Module/Learun.Application.TwoDevelopment/ZZDT_EC/GlobalObject.cs +++ b/Learun.Framework.Module/Learun.Application.Module/Learun.Application.TwoDevelopment/ZZDT_EC/GlobalObject.cs @@ -80,6 +80,7 @@ namespace Learun.Application.TwoDevelopment.ZZDT_EC public const string propName_FrameOff = "肋位号偏移量(mm)"; public const string propName_YOff = "纵骨偏移量(mm)"; public const string propName_TagNumber = "TagNumber"; + public const string propName_Room = "房间号"; #endregion #region projSetting diff --git a/Learun.Framework.Module/Learun.Application.Module/Learun.Application.TwoDevelopment/ZZDT_EC/ec_enginedata/layoutTagInfoBrief.cs b/Learun.Framework.Module/Learun.Application.Module/Learun.Application.TwoDevelopment/ZZDT_EC/ec_enginedata/layoutTagInfoBrief.cs index 22b918fb..dd397a01 100644 --- a/Learun.Framework.Module/Learun.Application.Module/Learun.Application.TwoDevelopment/ZZDT_EC/ec_enginedata/layoutTagInfoBrief.cs +++ b/Learun.Framework.Module/Learun.Application.Module/Learun.Application.TwoDevelopment/ZZDT_EC/ec_enginedata/layoutTagInfoBrief.cs @@ -59,9 +59,10 @@ namespace Learun.Application.TwoDevelopment.ZZDT_EC /// 基点从属的、或者说附近的设备位号 /// public List Tags { get; set; } = new List(); + public string RoomNo { get; set; } #endregion - + } }