diff --git a/Learun.Application.Web/AppApi/IOModuleApiController.cs b/Learun.Application.Web/AppApi/IOModuleApiController.cs
index baf7d2d7..b020d871 100644
--- a/Learun.Application.Web/AppApi/IOModuleApiController.cs
+++ b/Learun.Application.Web/AppApi/IOModuleApiController.cs
@@ -1,11 +1,10 @@
using DocumentFormat.OpenXml.Drawing.Spreadsheet;
using Learun.Application.Organization;
using Learun.Application.TwoDevelopment.ZZDT_EC;
-using Learun.Application.TwoDevelopment.ZZDT_EC.Frame;
using Learun.Loger;
using Learun.Util;
using Learun.Util.SqlSugar;
-using log4net.Config;
+using log4net.Config;
using Microsoft.Practices.ObjectBuilder2;
using Newtonsoft.Json;
using Org.BouncyCastle.Bcpg.OpenPgp;
@@ -15,7 +14,6 @@ using System.Collections.Generic;
using System.Diagnostics;
using System.Linq;
using System.Web.Http;
-using static Learun.Application.TwoDevelopment.ZZDT_EC.GlobalEnum;
using static Learun.Application.TwoDevelopment.ZZDT_EC.IO_WorkFlowService;
namespace Learun.Application.Web.AppApi
@@ -106,7 +104,7 @@ namespace Learun.Application.Web.AppApi
nodeCatalogue.NodeExtData = Loc;
treeList.Add(nodeCatalogue);
- var listPanel = Panels.Where(x => x.Panel_Loc_ID == Loc.DataItemDetailID && x.systempanel == specialType.系统柜.ToString()).ToList();
+ var listPanel = Panels.Where(x => x.Panel_Loc_ID == Loc.DataItemDetailID && x.systempanel == GlobalEnum.specialType.系统柜.ToString()).ToList();
if (listPanel != null && listPanel.Count > 0)
{
foreach (var Panel in listPanel)
@@ -238,62 +236,20 @@ namespace Learun.Application.Web.AppApi
}
///
- /// 找到某一个预分配箱子 附近的某一个箱子
- ///
- ///
- /// Digital,4-20mA,10v,pt100,pulse
- ///
+ /// 自动分配通道(点表信号自动分配)。
+ ///
///
-
- private ec_PanelEntity FindPanelNearby(List frameLists, List allPanel, List allPanelProps
- , string IOTypeOnCable, string PreAssignPanelID)
- {
- //当前预分配的箱子的位置
- var AssignPanelProps = allPanelProps.Where(x => x.EngineDataID == PreAssignPanelID).ToList();
- var AssignPanelX = AssignPanelProps.FirstOrDefault(x => x.PropertyName == GlobalObject.propName_Frame)?.PropertyValue;
- AssignPanelX = AssignPanelX.Split(new string[] { GlobalObject.enum_separator }, StringSplitOptions.None)[0];//插件端对于下拉列表 都是 name || nameEN
- var AssignPanelXValue = frameLists.FirstOrDefault(X => X.Num == AssignPanelX).Value;
- if (AssignPanelXValue < 400)
- {
- // 小于400,我几乎可以认为此时肋位号用的是m这个单位。因为如果用的是mm,400mm的肋位号似乎也太小了。
- AssignPanelXValue = 1000 * AssignPanelXValue; // 转成mm
- }
- var AssignPanelXOff = AssignPanelProps.FirstOrDefault(x => x.PropertyName == GlobalObject.propName_FrameOff)?.PropertyValue;
-
- var AssignPanelY = AssignPanelProps.FirstOrDefault(x => x.PropertyName == GlobalObject.propName_YOff)?.PropertyValue;
-
- foreach (var panel in allPanel)
- {
- //拿到每一个的xy属性
- //然后和预分配箱子进行对比
-
- }
- //然后排序一次
-
- //根据电缆上的信号,去找匹配的排序第一位(已经按照距离排序过)的箱子
- switch (IOTypeOnCable.ToUpper())
- {
- case "DIGITAL":
- //其他就近箱子的 allowIOTypes里有DI DO
- break;
- default:
- break;
- }
- return null;
- }
- ///
- /// 自动分配通道(点表信号自动分配)
- ///
- ///
- /// 如果没有匹配的采集箱,则提示“未找到具有XX类型的采集箱,请新增后再次分配,是否取消自动分配进程?
+ ///
+ ///
///
- public IHttpActionResult AutoAssignCable2Channel(string projId, bool AcceptUnmatchedPanel)
+ public IHttpActionResult AutoAssignCable2Channel_step1(string projId, bool AcceptNearbyPanel)
{
#region 数据准备
var cbll = new ec_CableBLL();
var panelTable = ProjectSugar.TableName(projId);
var stripTable = ProjectSugar.TableName(projId);
#endregion
+
#region 先要知道有哪些待分配的信号
var cablesNeedAssigned = cbll.GetCablesPreAssign(projId, true);
@@ -306,20 +262,34 @@ namespace Learun.Application.Web.AppApi
Where(x => panelsNeed.Select(xx => xx.PanelID).Contains(x.PanelID)).
ToList();
#region 1.1判断(信号预分配选择的采集箱可能并没有该电缆需要的信号类型)
- var cablesNotMatchIO = cablesNeedAssigned.Where(x => !x.IOTypeMatch).ToList(); // GetCablesPreAssign 查询时已经处理过io是否匹配了
+ var cablesNotMatchIO = cablesNeedAssigned.Where(x => x.IOTypesNotMatchedList.Count > 0).ToList(); // GetCablesPreAssign 查询时已经处理过io是否匹配了
if (cablesNotMatchIO != null && cablesNotMatchIO.Count > 0)
{
- if (!AcceptUnmatchedPanel)//允许进行
+ if (!AcceptNearbyPanel)//允许进行
{
- //???
+ //有不匹配的,但是用户允许继续
+ //在之后的自动分配过程中会自动寻找匹配的采集箱,原则上从就近的开始找,如果没有匹配的采集箱,则提示“未找到具有XX类型的采集箱,请新增后再次分配,是否取消自动分配进程?”
+ return Success("OK");
}
else
{
//不继续自动分配,中断进程,等添加完正确的模块后再继续自动分配
- return Fail("等电缆的预分配IO类型和其预分配的采集箱的IO类型无法匹配。等添加完正确的模块后再继续自动分配。");
+ var cableNamesNotMatched = string.Join(",", cablesNotMatchIO.Select(x => x.TagNumber).ToList());
+ var panelIOMissing = new List();
+ foreach (ec_CableEntity cableNotMatchIO in cablesNotMatchIO)
+ {
+ panelIOMissing.Add(cableNotMatchIO.PanelID + "缺失IO: " + string.Join(",", cableNotMatchIO.IOTypesNotMatchedList));
+ }
+ return Fail($"预分配结果中,以下电缆【{cableNamesNotMatched}】的IO类型和其预分配采集箱的IO类型无法匹配。等添加完正确的模块后再继续自动分配。\r\n" +
+ $"需要添加的正确模块有:{string.Join(",", panelIOMissing)}");
}
}
+ else
+ {
+ //没有不匹配的,可以继续进行
+ return Success("OK");
+ }
#endregion
#region 1.2
@@ -353,12 +323,95 @@ namespace Learun.Application.Web.AppApi
//?????????????????????????????????
}
}
- 可能要换一下循环主体,评估下是按照cable循环好,还是按strip循环好
+ //可能要换一下循环主体,评估下是按照cable循环好,还是按strip循环好
#endregion
}
#endregion
return Success("自动关联完成");
+
+
+ }
+ ///
+ ///
+ ///
+ ///
+ ///
+ public IHttpActionResult AutoAssignCable2Channel_step2(string projId)
+ {
+ // #region 数据准备
+ // var cbll = new ec_CableBLL();
+ // var panelTable = ProjectSugar.TableName(projId);
+ // var stripTable = ProjectSugar.TableName(projId);
+ // #endregion
+
+ // #region 先要知道有哪些待分配的信号
+
+ // var cablesNeedAssigned = cbll.GetCablesPreAssign(projId, true);
+
+ // #endregion
+ // //涉及到哪些箱子
+ // var panelsNeed = SqlSugarHelper.Db.Queryable().AS(panelTable).
+ //Where(x => cablesNeedAssigned.Select(xx => xx.PanelID).Contains(x.PanelID)).ToList();
+ // var stripsNeed = SqlSugarHelper.Db.Queryable().AS(stripTable).
+ // Where(x => panelsNeed.Select(xx => xx.PanelID).Contains(x.PanelID)).
+ // ToList();
+ // #region 1.1判断(信号预分配选择的采集箱可能并没有该电缆需要的信号类型)
+ // var cablesNotMatchIO = cablesNeedAssigned.Where(x => x.IOTypesNotMatchedList.Count > 0).ToList(); // GetCablesPreAssign 查询时已经处理过io是否匹配了
+ // if (cablesNotMatchIO != null && cablesNotMatchIO.Count > 0)
+ // {
+ // if (!AcceptUnmatchedPanel)//允许进行
+ // {
+ // //???
+ // }
+ // else
+ // {
+ // //不继续自动分配,中断进程,等添加完正确的模块后再继续自动分配
+ // return Fail("等电缆的预分配IO类型和其预分配的采集箱的IO类型无法匹配。等添加完正确的模块后再继续自动分配。");
+
+ // }
+ // }
+ // #endregion
+
+ // #region 1.2
+ // #region 先分组 1.2.2
+ // cablesNeedAssigned = cablesNeedAssigned.OrderBy(x => new { x.PreAssignIOType, x.System, x.PanelID }).ToList();
+ // var curPanel = new ec_PanelEntity();
+ // curPanel = panelsNeed.FirstOrDefault(x => x.PanelID == cablesNeedAssigned[0].PanelID);//先定位到第一个电缆所在的箱子
+ // curPanel.strips = stripsNeed.Where(x => x.PanelID == curPanel.PanelID).ToList();
+ // var curStrip = new ec_PanelStripEntity();
+ // #endregion
+ // for (var i = 0; i < cablesNeedAssigned.Count; i++)
+ // {
+
+ // #region 是否有端子排 1.2.1
+ // if (curPanel.PanelID != cablesNeedAssigned[i].PanelID)
+ // {
+ // curPanel = panelsNeed.FirstOrDefault(x => x.PanelID == cablesNeedAssigned[0].PanelID);//切换箱子
+ // curPanel.strips = stripsNeed.Where(x => x.PanelID == curPanel.PanelID).ToList();
+ // }
+ // foreach (var set in cablesNeedAssigned[i].Sets)
+ // {
+ // var availableStrips = curPanel.strips.Where(x => x.IO_TYPE.ToUpper() == set.IOType.ToString().ToUpper()).ToList();
+
+ // if (availableStrips != null && availableStrips.Count > 0)
+ // {
+ // //已经存在端子排
+ // }
+ // else
+ // {
+ // //没有端子排,根据信号数里自动新建端子排,通道数里根据端子io模板的默认值获得
+ // //?????????????????????????????????
+ // }
+ // }
+ // //可能要换一下循环主体,评估下是按照cable循环好,还是按strip循环好
+ // #endregion
+
+ // }
+ // #endregion
+ return Success("自动关联完成");
+
+
}
///
/// 把电缆分配到空余的模块的通道上。
@@ -381,48 +434,10 @@ namespace Learun.Application.Web.AppApi
[HttpGet]
public IHttpActionResult GetCablePreAssignPreview(string projId)
{
- var table = ProjectSugar.TableName(projId);
- var tagTable = ProjectSugar.TableName(projId);
- var panelTable = ProjectSugar.TableName(projId);
- var setServ = new ec_CableSetService();
- var wireServ = new ec_CableSetWireService();
- var preAssignedCables = SqlSugarHelper.Db.Queryable().AS(table).Where(x => !string.IsNullOrEmpty(x.PanelID)).ToList();
- var tags = SqlSugarHelper.Db.Queryable().AS(tagTable).
- Where(x => preAssignedCables.Select(xx => xx.EngineerDataID).Contains(x.EngineDataID)).ToList();
+ var bll = new ec_CableBLL();
+ var res = bll.GetCablesPreAssign(projId);
- var panels = SqlSugarHelper.Db.Queryable().AS(panelTable).
- Where(x => preAssignedCables.Select(xx => xx.PanelID).Contains(x.PanelID)).ToList();
- var panelTags = SqlSugarHelper.Db.Queryable().AS(tagTable).
- Where(x => panels.Select(xx => xx.EngineerDataID).Contains(x.EngineDataID)).ToList();
- foreach (var cable in preAssignedCables)
- {
- var sets = setServ.GetList(projId, cable.CableID);
- var Wires = wireServ.GetList(projId, cable.CableID, "");
-
-
- //剩下的感觉都可以是set上的参数?
- foreach (var set in sets)
- {
- var wires = Wires.Where(x => x.CableSetID == set.CableSetID);
- set.Wires = wires.ToList();
- }
- cable.Sets = sets;
-
-
- cable.TagNumber = tags.FirstOrDefault(x => x.EngineDataID == cable.EngineerDataID)?.TagNumber;
-
- var panelObj = panels.FirstOrDefault(x => x.PanelID == cable.PanelID);
- if (panelObj != null)
- {
- panelObj.TagNumber = panelTags.FirstOrDefault(x => x.EngineDataID == panelObj.EngineerDataID)?.TagNumber;
- }
-
- cable.ToPanel = panelObj;
- }
-
- //分组
- preAssignedCables = preAssignedCables.OrderBy(x => x.PreAssignIOType).ToList();
- return Success(preAssignedCables);
+ return Success(res);
}
diff --git a/Learun.Framework.Module/Learun.Application.Module/Learun.Application.TwoDevelopment/Learun.Application.TwoDevelopment.csproj.user b/Learun.Framework.Module/Learun.Application.Module/Learun.Application.TwoDevelopment/Learun.Application.TwoDevelopment.csproj.user
index a607660d..0b246432 100644
--- a/Learun.Framework.Module/Learun.Application.Module/Learun.Application.TwoDevelopment/Learun.Application.TwoDevelopment.csproj.user
+++ b/Learun.Framework.Module/Learun.Application.Module/Learun.Application.TwoDevelopment/Learun.Application.TwoDevelopment.csproj.user
@@ -1,6 +1,6 @@
- ShowAllFiles
+ ProjectFiles
\ No newline at end of file
diff --git a/Learun.Framework.Module/Learun.Application.Module/Learun.Application.TwoDevelopment/ZZDT_EC/GlobalEnum.cs b/Learun.Framework.Module/Learun.Application.Module/Learun.Application.TwoDevelopment/ZZDT_EC/GlobalEnum.cs
index a6fe6a99..dcf855aa 100644
--- a/Learun.Framework.Module/Learun.Application.Module/Learun.Application.TwoDevelopment/ZZDT_EC/GlobalEnum.cs
+++ b/Learun.Framework.Module/Learun.Application.Module/Learun.Application.TwoDevelopment/ZZDT_EC/GlobalEnum.cs
@@ -8,12 +8,95 @@ namespace Learun.Application.TwoDevelopment.ZZDT_EC
{
public class GlobalEnum
{
+ #region 自动分配、预分配、io模块模板有关
+ public enum inOrOut
+ {
+ 输入 = 0,
+ 输出 = 1
+ }
+ ///
+ /// 电缆预分配时,会选择的信号类型。通讯和非通讯(digital等几个)
+ ///
+ public enum signalType
+ {
+ ///
+ /// 数字量
+ ///
+ Digital = 1,
+ ///
+ /// 模拟量 4-20mA等
+ ///
+ Analog = 2,
+ ///
+ ///
+ ///
+ TenVolt = 3,
+ ///
+ ///
+ ///
+ PT100 = 4,
+ PULSE
+ }
+ ///
+ /// 端子排上的IO类型
+ ///
+ public enum IOType
+ {
+ DI = 0,
+ DO,
+ AI,
+ AO,
+ PT100,
+ PULSE,
+ TenVolt,
+ LAN,
+ ///
+ /// 485 422
+ ///
+ RS485,
+
+ }
+ #endregion
+
+ ///
+ /// 对象类型上特殊的一些分类。对应
+ ///
+ public enum specialType
+ {
+ 未定义 = 0,
+ 电力一次 = 1,
+ 电力二次 = 2,
+ 系统柜 = 3,
+ }
+
+
+ ///
+ /// 用于
+ ///
public enum TagDataStatus
{
- 外部 = 00001,
+ 外部 = 00001,
待验证 = 00002,
有效 = 00003,
导入 = 00004
}
+ ///
+ /// 用于 信号组别的状态
+ ///
+ public enum signalGroupStatusEnum
+ {
+ ///
+ /// 待删除
+ ///
+ 未核对 = 01,
+ ///
+ /// 新增的
+ ///
+ 沟通中 = 02,
+ ///
+ /// 已关联
+ ///
+ 已落实 = 03
+ }
}
}
diff --git a/Learun.Framework.Module/Learun.Application.Module/Learun.Application.TwoDevelopment/ZZDT_EC/ec_cable/ec_CableBLL.cs b/Learun.Framework.Module/Learun.Application.Module/Learun.Application.TwoDevelopment/ZZDT_EC/ec_cable/ec_CableBLL.cs
index ca73b94f..2b9769b6 100644
--- a/Learun.Framework.Module/Learun.Application.Module/Learun.Application.TwoDevelopment/ZZDT_EC/ec_cable/ec_CableBLL.cs
+++ b/Learun.Framework.Module/Learun.Application.Module/Learun.Application.TwoDevelopment/ZZDT_EC/ec_cable/ec_CableBLL.cs
@@ -3,6 +3,7 @@ using Learun.Util;
using Learun.Util.SqlSugar;
using System;
using System.Collections.Generic;
+using System.Collections.ObjectModel;
using System.Data;
using System.Linq;
@@ -166,12 +167,14 @@ namespace Learun.Application.TwoDevelopment.ZZDT_EC
}
}
}
+
///
- /// 预览所有有信号预分配的电缆信息
+ /// 预分配情况下的电缆set wire数据
///
///
+ ///
///
- public ec_CableEntity CablePreAssignPreview(string ProjID)
+ public ec_CableEntity GetCablePreAssign(string ProjID, string EngineerDataID)
{
var engineerDataServ = new ec_enginedataService();
var panelServ = new ec_PanelService();
@@ -187,14 +190,12 @@ namespace Learun.Application.TwoDevelopment.ZZDT_EC
return null;
}
- var res = ec_CableService.GetList("{ProjectId:\"" + ProjID + "\"}").FirstOrDefault(); //电缆
+ var res = ec_CableService.GetList("{ProjectId:\"" + ProjID + "\",EngineerDataID:\"" + EngineerDataID + "\"}").FirstOrDefault(); //电缆
if (res != null)
{
var sets = ec_CableSetService.GetList(ProjID, res.CableID);
var Wires = ec_CableSetWireService.GetList(ProjID, res.CableID, "");
- Console.WriteLine(res.CableClass);//是否通讯信号
- Console.WriteLine(res.PreAssignIOType);//通讯类型
//剩下的感觉都可以是set上的参数?
foreach (var set in sets)
@@ -219,34 +220,65 @@ namespace Learun.Application.TwoDevelopment.ZZDT_EC
#region 还没有预配置
#endregion
}
- public ec_CableEntity GetCablePreAssign(string ProjID, string EngineerDataID)
+
+ public List GetCablesPreAssign(string projId, bool needProp = false)
{
- var engineerDataServ = new ec_enginedataService();
- var panelServ = new ec_PanelService();
- var panelStripBll = new ec_PanelStripBLL();
- var panelStripServ = new ec_PanelStripService();
- var termServ = new ec_PanelStripTermBLL();
- var channelServ = new ec_PanelChannelService();
+ var table = ProjectSugar.TableName(projId);
+ var tagTable = ProjectSugar.TableName(projId);
+ var panelTable = ProjectSugar.TableName(projId);
+ var propTable = ProjectSugar.TableName(projId);
+ var relTable = ProjectSugar.TableName(projId);
- var ProjectEntity = new ec_projectEntity();
- ProjectEntity = new ec_projectBLL().GetEntity(ProjID);
- if (ProjectEntity == null)
+ var setServ = new ec_CableSetService();
+ var wireServ = new ec_CableSetWireService();
+ //先查出所有已经预分配的电缆
+ var preAssignedCables = SqlSugarHelper.Db.Queryable().AS(table).
+ Where(x => !string.IsNullOrEmpty(x.PanelID)).ToList();
+ var tags = SqlSugarHelper.Db.Queryable().AS(tagTable).
+ Where(x => preAssignedCables.Select(xx => xx.EngineerDataID).Contains(x.EngineDataID)).ToList();
+ var allpropOnFrom = new List();
+
+ var panels = SqlSugarHelper.Db.Queryable().AS(panelTable).
+ Where(x => preAssignedCables.Select(xx => xx.PanelID).Contains(x.PanelID)).ToList();
+ var panelTags = SqlSugarHelper.Db.Queryable().AS(tagTable).
+ Where(x => panels.Select(xx => xx.EngineerDataID).Contains(x.EngineDataID)).ToList();
+ if (needProp)
{
- return null;
+ var FromRels = SqlSugarHelper.Db.Queryable().AS(relTable).
+ Where(x => preAssignedCables.Select(y => y.EngineerDataID).Contains(x.RelEngineData2ID)
+ && x.RelTypeID == ((int)enum_RelType.设备_电缆).ToString()).ToList();
+ allpropOnFrom = SqlSugarHelper.Db.Queryable().AS(propTable).
+ Where(x => FromRels.Select(xx => xx.RelEngineData2ID).Distinct().Contains(x.EngineDataID)).ToList();
}
-
- var res = ec_CableService.GetList("{ProjectId:\"" + ProjID + "\",EngineerDataID:\"" + EngineerDataID + "\"}").FirstOrDefault(); //电缆
- if (res != null)
+ foreach (var cable in preAssignedCables)
{
- var sets = ec_CableSetService.GetList(ProjID, res.CableID);
- var Wires = ec_CableSetWireService.GetList(ProjID, res.CableID, "");
+ var sets = setServ.GetList(projId, cable.CableID);
+ var Wires = wireServ.GetList(projId, cable.CableID, "");
- Console.WriteLine(res.CableClass);//是否通讯信号
- Console.WriteLine(res.PreAssignIOType);//通讯类型
+
+
+ cable.TagNumber = tags.FirstOrDefault(x => x.EngineDataID == cable.EngineerDataID)?.TagNumber;
+ var panelObj = panels.FirstOrDefault(x => x.PanelID == cable.PanelID);
+ if (panelObj == null)
+ {
+ continue;//分配就已经不合理了
+ }
+ else if (panelObj != null)
+ {
+ panelObj.TagNumber = panelTags.FirstOrDefault(x => x.EngineDataID == panelObj.EngineerDataID)?.TagNumber;
+
+ //1.2.1 系统属性从电缆的from端上的设备中取设备的系统
+ cable.System = allpropOnFrom.FirstOrDefault(x => x.EngineDataID == cable.PanelID && x.PropertyName == GlobalObject.propName_System)?.PropertyValue;
+
+
+ }
+
+ cable.ToPanel = panelObj;
+ var IOsOnPanel = panelObj.allowedIOTypes.Split(',').ToList();
//剩下的感觉都可以是set上的参数?
foreach (var set in sets)
- {
+ {
#region 判断下io匹配程度
if (set.PreAssignInOrOut == GlobalEnum.inOrOut.输入.ToString() && cable.PreAssignIOType.ToLower() == "digital")
{
@@ -268,14 +300,18 @@ namespace Learun.Application.TwoDevelopment.ZZDT_EC
{
set.IOType = GlobalEnum.IOType.TenVolt;
}
- else if (cable.PreAssignIOType == GlobalEnum.signalType.PT100.ToString())
+ else if (cable.PreAssignIOType == GlobalEnum.IOType.PT100.ToString())
{
set.IOType = GlobalEnum.IOType.PT100;
}
- else if (cable.PreAssignIOType.ToUpper() == GlobalEnum.signalType.PULSE.ToString())
+ else if (cable.PreAssignIOType.ToUpper() == GlobalEnum.IOType.PULSE.ToString())
{
set.IOType = GlobalEnum.IOType.PULSE;
- }
+ }
+ else if (cable.PreAssignIOType == GlobalEnum.IOType.PT100.ToString())
+ {
+ set.IOType = GlobalEnum.IOType.PT100;
+ }
//下面是通讯的
else
{
@@ -285,31 +321,33 @@ namespace Learun.Application.TwoDevelopment.ZZDT_EC
if (IOsOnPanel.Contains(set.IOType.ToString()))
{
set.IOTypeMatch = true;
+
}
else
{
set.IOTypeMatch = false;
+ cable.IOTypesNotMatchedList.Add(set.IOType.ToString());//从电缆上就能知道哪些io是匹配补上的
}
#endregion
var wires = Wires.Where(x => x.CableSetID == set.CableSetID);
set.Wires = wires.ToList();
}
- res.Sets = sets;
- //除了端子号
-
- return res;
- }
- else
- {
- //还没有电缆规格的实体,自然肯定也没有预配置
- return null;//由客户端根据当前电缆规格来渲染布局,然后保存时进行新建set wire和其他的预分配的内容
+ cable.Sets = sets;
+ //if (cable.Sets.Any(x => !x.IOTypeMatch))
+ //{
+ // cable.IOTypeMatch = true;
+ //}
+ //else
+ //{
+ // cable.IOTypeMatch = false;
+ //}
}
- #region 已经有了预配置
- #endregion
+ //分组
+ preAssignedCables = preAssignedCables.OrderBy(x => x.PreAssignIOType).ToList();
- #region 还没有预配置
- #endregion
+
+ return preAssignedCables;
}
#endregion
diff --git a/Learun.Framework.Module/Learun.Application.Module/Learun.Application.TwoDevelopment/ZZDT_EC/ec_cable/ec_CableEntity.cs b/Learun.Framework.Module/Learun.Application.Module/Learun.Application.TwoDevelopment/ZZDT_EC/ec_cable/ec_CableEntity.cs
index 5909e61e..8ff39406 100644
--- a/Learun.Framework.Module/Learun.Application.Module/Learun.Application.TwoDevelopment/ZZDT_EC/ec_cable/ec_CableEntity.cs
+++ b/Learun.Framework.Module/Learun.Application.Module/Learun.Application.TwoDevelopment/ZZDT_EC/ec_cable/ec_CableEntity.cs
@@ -6,7 +6,7 @@ namespace Learun.Application.TwoDevelopment.ZZDT_EC
{
-
+
///
/// 版 本 PIT-ADMS V7.0.3 敏捷开发框架
/// Copyright (c) 2013-2018 Hexagon PPM
@@ -47,8 +47,9 @@ namespace Learun.Application.TwoDevelopment.ZZDT_EC
/// Digital 4-20mA Pulse Pt100(如果是非母线,IO类型是什么。)
///
public string PreAssignIOType { get; set; } = "";
+
///
- /// 电缆预分配时,必须指定它应该在哪个IO柜子
+ /// 电缆预分配时,必须指定它应该在哪个IO柜子。所以这个不为空,就说明是预分配的电缆。
///
public string PanelID { get; set; }
///
@@ -101,6 +102,10 @@ namespace Learun.Application.TwoDevelopment.ZZDT_EC
#region 扩展字段
///
+ /// 是否和 里的匹配。
+ ///
+ public List IOTypesNotMatchedList = new List();
+ ///
///
///
[SugarColumn(IsIgnore = true)]
@@ -129,16 +134,20 @@ namespace Learun.Application.TwoDevelopment.ZZDT_EC
///
[SugarColumn(IsIgnore = true)]
public string TagNumber { set; get; }
-
+ ///
+ /// 电缆所在的From端设备的所在的system
+ ///
+ [SugarColumn(IsIgnore = true)]
+ public string System { set; get; }
///
/// From连接处的工程位号信息
///
[SugarColumn(IsIgnore = true)]
public ec_PanelEntity FromPanel { set; get; }
-
+
///
- /// From连接处的工程位号信息(
+ /// From连接处的工程位号信息。同时,也表达下预分配电缆panelid对应的柜子信息。
///
[SugarColumn(IsIgnore = true)]
public ec_PanelEntity ToPanel { set; get; }