diff --git a/.gitignore b/.gitignore
index 8ccfa79f..d1c32de5 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1109,3 +1109,4 @@ newFront/c#前端/.vs/
/newFront/c#前端/CAD.Extend/obj/Debug/CAD.Extend.csproj.AssemblyReference.cache
/newFront/c#前端/.vs/SWS.CAD/FileContentIndex/f03e1583-e8e0-43b7-9dbb-a1896ce4b92d.vsidx
/newFront/c#前端/.vs/SWS.CAD/FileContentIndex/f2e37380-e651-406b-9320-af642620eee9.vsidx
+/SWSDBSchemeUpgradeTool/obj/Debug/DesignTimeResolveAssemblyReferencesInput.cache
diff --git a/Learun.Application.Web/AppApi/DrawingFileApiController.cs b/Learun.Application.Web/AppApi/DrawingFileApiController.cs
index ffdbe1f7..29b4eb0a 100644
--- a/Learun.Application.Web/AppApi/DrawingFileApiController.cs
+++ b/Learun.Application.Web/AppApi/DrawingFileApiController.cs
@@ -406,57 +406,7 @@ namespace Learun.Application.Web.AppApi
return Fail(ex.Message);
}
}
-
- ///
- /// 检入图纸文件
- ///
- /// 项目ID
- /// 图纸文件ID
- /// 描述
- /// 文件夹ID
- /// 文件MD5
- /// 待通知的用户,逗号分隔
- ///
- [HttpPost]
- [Obsolete]
- public IHttpActionResult CheckInDrawingFile(string projectId, string drawingFileID, string remark, string folderId, string fileMD5, string UsersNotified)
- {
- //如何避免数据丢失
- try
- {
- var httpContent = Request.Content;
- var asyncContent = httpContent.ReadAsStringAsync().Result;
- List entityList = asyncContent.ToList();
- if (entityList == null || entityList.Count == 0)
- {
- //避免前端因频繁切换图纸造成检入时,一个都没有,而把数据库里的都清空了
- XmlConfigurator.Configure();
- var log = log4net.LogManager.GetLogger("INFO"); //参数就是config里logger节点的名字
- log.Error($"★★★{DateTime.Now.ToString()}★★★Drawing Check In Only 0 Pixel【DrawingId:{drawingFileID}】★★★");
- //return Success("检入成功!");
- //entityList = new List();
- }
- else if (string.IsNullOrEmpty(folderId))
- {
- log4net.LogManager.GetLogger("ERROR").Error("检入图纸 - " + "无效的空白FolderId");
- throw new Exception("检入图纸 - " + "无效的空白FolderId");
- }
- else
- {
- pixelBll.SavePixels(entityList, projectId, drawingFileID);
-
- }
- //换了下顺序,先SaveMuliteEntity,再CheckInDrawingFile。这样就算SaveMuliteEntity报错了,但是图纸至少不会被检入,免得出现之前数据丢失的问题
- ec_drawing_fileIBLL.CheckInDrawingFile(drawingFileID, remark, folderId, fileMD5, projectId, UsersNotified);
-
- return Success("检入成功!");
- }
- catch (Exception ex)
- {
- return Fail(ex.Message);
- }
- }
- ///
+
/// 检入图纸文件(修改消息)
///
/// 项目ID
diff --git a/Learun.Application.Web/AppApi/EnginedataApiController.cs b/Learun.Application.Web/AppApi/EnginedataApiController.cs
index 6d2b47b2..28d7a910 100644
--- a/Learun.Application.Web/AppApi/EnginedataApiController.cs
+++ b/Learun.Application.Web/AppApi/EnginedataApiController.cs
@@ -62,7 +62,7 @@ namespace Learun.Application.Web.AppApi
{
List res = new List();
var ec_enginedata_pixelBLL = new ec_enginedata_pixelBLL();
- var data = ec_enginedata_pixelBLL.GetList("{\"ProjectId\":\"" + projectId + "\",\"EngineDataID\":\"" + EngineDataID + "\"}");
+ var data = ec_enginedata_pixelBLL.GetList("{\"ProjectId\":\"" + projectId + "\",\"EngineDataID\":\"" + EngineDataID + "\"}",projectId);
return Success(data);
}
@@ -184,7 +184,7 @@ namespace Learun.Application.Web.AppApi
Where(x => x.DeleteFlg != 1).ToList();
var relTypeTbName = ProjectSugar.TableName(projectId);
- var relType = SqlSugarHelper.Db.Queryable().AS(relTypeTbName).ToList().FirstOrDefault(x => x.RelType == ((int)enum_RelType.设备_电缆).ToString());
+ var relType = SqlSugarHelper.Db.Queryable().AS(relTypeTbName).ToList().FirstOrDefault(x => x.RelType == enum_RelType.设备_电缆);
var propBll = new ec_enginedata_propertyBLL();
var allTagProps = SqlSugarHelper.Db.Queryable().AS(propTbName).ToList();
@@ -265,7 +265,7 @@ namespace Learun.Application.Web.AppApi
Where(x => x.DeleteFlg != 1).ToList();
var relTypeTbName = ProjectSugar.TableName(projectId);
- var relType = SqlSugarHelper.Db.Queryable().AS(relTypeTbName).ToList().FirstOrDefault(x => x.RelType == ((int)enum_RelType.设备_电缆).ToString());
+ var relType = SqlSugarHelper.Db.Queryable().AS(relTypeTbName).ToList().FirstOrDefault(x => x.RelType == enum_RelType.设备_电缆);
//var propBll = new ec_enginedata_propertyBLL();
var allTagProps = SqlSugarHelper.Db.Queryable().AS(propTBName).ToList();
@@ -312,7 +312,7 @@ namespace Learun.Application.Web.AppApi
Where(x => x.DeleteFlg != 1).ToList();
var relTypeTbName = ProjectSugar.TableName(projectId);
- var relType = SqlSugarHelper.Db.Queryable().AS(relTypeTbName).ToList().FirstOrDefault(x => x.RelType == ((int)enum_RelType.设备_电缆).ToString());
+ var relType = SqlSugarHelper.Db.Queryable().AS(relTypeTbName).ToList().FirstOrDefault(x => x.RelType == enum_RelType.设备_电缆);
var propBll = new ec_enginedata_propertyBLL();
var CBs = allCBs.Where(x => x.PDBId == Enginedataid).ToList();
diff --git a/Learun.Application.Web/AppApi/IOModuleApiController.cs b/Learun.Application.Web/AppApi/IOModuleApiController.cs
index 1e3bf30c..4c6149ea 100644
--- a/Learun.Application.Web/AppApi/IOModuleApiController.cs
+++ b/Learun.Application.Web/AppApi/IOModuleApiController.cs
@@ -1,16 +1,21 @@
using DocumentFormat.OpenXml.Drawing.Spreadsheet;
using Learun.Application.Organization;
using Learun.Application.TwoDevelopment.ZZDT_EC;
+using Learun.Application.TwoDevelopment.ZZDT_EC.Frame;
+using Learun.Cache.Base;
+using Learun.Cache.Factory;
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;
using Pipelines.Sockets.Unofficial.Arenas;
+using SqlSugar;
using System;
using System.Collections.Generic;
+using System.Data.Entity.Infrastructure;
using System.Diagnostics;
using System.Linq;
using System.Web.Http;
@@ -41,7 +46,49 @@ namespace Learun.Application.Web.AppApi
+ ///
+ /// 找到某一个预分配箱子 附近的某一个箱子
+ ///
+ ///
+ /// Digital,4-20mA,10v,pt100,pulse
+ ///
+ ///
+ private ec_PanelEntity FindPanelNearby(List frameLists, List allPanel, List allPanelProps
+ , string IOTypeOnCable)
+ {
+ //当前预分配的箱子的位置
+ var AssignPanelX = allPanelProps.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)//null也没事
+ {
+ // 小于400,我几乎可以认为此时肋位号用的是m这个单位。因为如果用的是mm,400mm的肋位号似乎也太小了。
+ AssignPanelXValue = 1000 * AssignPanelXValue; // 转成mm
+ }
+ var AssignPanelXOff = allPanelProps.FirstOrDefault(x => x.PropertyName == GlobalObject.propName_FrameOff)?.PropertyValue;
+
+ var AssignPanelY = allPanelProps.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;
+ }
///
/// IO分配主界面查询,查询所有的位置 - 采集箱 - 模块 - 通道
@@ -104,7 +151,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)
@@ -234,6 +281,158 @@ namespace Learun.Application.Web.AppApi
return Success(res);
}
+ }
+ ///
+ /// 自动分配通道(点表信号自动分配)。
+ ///
+ ///
+ ///
+ ///
+ /// 需要分配的电缆cableid,不是enginedataId,逗号分开
+ ///
+ [HttpPost]
+ public IHttpActionResult AutoAssignCable2Channel_step1(string projId, bool AcceptNearbyPanel, [FromBody] List CableIds)
+ {
+ #region 数据准备
+ var frameBll = new FrameBll();
+ var allFrames = frameBll.GetFrameList(projId);
+ var cbll = new ec_CableBLL();
+ var panelTable = ProjectSugar.TableName(projId);
+ var stripTable = ProjectSugar.TableName(projId);
+ var tagTable = ProjectSugar.TableName(projId);
+ var propTable = ProjectSugar.TableName(projId);
+ var typeTable = ProjectSugar.TableName(projId);
+ #endregion
+
+ #region 先要知道有哪些待分配的信号 端子排
+ if (CableIds == null || CableIds.Count == 0)
+ {
+ return Success("OK");
+ }
+ var cablesNeedAssigned = cbll.GetCablesPreAssign(projId, CableIds, true);
+ cablesNeedAssigned = cablesNeedAssigned.Where(x => CableIds.Contains(x.CableID)).ToList();
+ #endregion
+ //涉及到哪些箱子
+ var allPanel = SqlSugarHelper.Db.Queryable().AS(panelTable).
+ InnerJoin((a, b) => a.EngineerDataID == b.EngineDataID).AS(tagTable).
+ InnerJoin((a, b, c) => b.ObjectTypeID == c.ObjectTypeID).AS(typeTable).
+ Where((a, b, c) => c.specialType == GlobalEnum.specialType.系统柜).
+ ToList();//这里要过滤一下,根据object type里的specialType,而不是所有的panel
+
+ var allPanelProp = SqlSugarHelper.Db.Queryable().AS(propTable)
+ .Where(x => allPanel.Select(xx => xx.EngineerDataID).Contains(x.EngineDataID))
+ .ToList().GroupBy(x => x.EngineDataID).ToDictionary(x => x.Key, x => x.ToList());
+ var panelsNeed = allPanel.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 (AcceptNearbyPanel)//允许进行
+ {
+ //有不匹配的,但是用户允许继续
+ //在之后的自动分配过程中会自动寻找匹配的采集箱,原则上从就近的开始找,如果没有匹配的采集箱,则提示“未找到具有XX类型的采集箱,请新增后再次分配,是否取消自动分配进程?”
+ bool nearbyFound = false;
+ foreach (var cable in cablesNotMatchIO)
+ {
+ var nearPanel = FindPanelNearby(allFrames, allPanel, allPanelProp[cable.ToPanel.EngineerDataID], cable.PreAssignIOType);
+ if (nearPanel == null)
+ {
+ nearbyFound = false;
+ return Fail($"在附近未找到具有{cable.PreAssignIOType}类型的采集箱,请新增后再次分配,是否取消自动分配进程?");
+ }
+ else
+ {
+ nearbyFound = true;
+ }
+ }
+
+
+
+ }
+ else
+ {
+ //不继续自动分配,中断进程,等添加完正确的模块后再继续自动分配
+ 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
+ {
+ //没有不匹配的,可以继续进行
+
+ }
+ //必要的数据存入redis,以便后续步骤使用
+ ICache redisObj = CacheFactory.CaChe();
+ redisObj.Remove("IOModule_AutoAssign2Ch_" + projId, CacheId.IOModule_AutoAssign2Ch);
+ redisObj.Write>("IOModule_AutoAssign2Ch_" + projId, cablesNeedAssigned, CacheId.IOModule_AutoAssign2Ch);
+
+ return Success("OK");
+ #endregion
+
+
+
+
+ }
+ ///
+ ///
+ ///
+ ///
+ ///
+ public IHttpActionResult AutoAssignCable2Channel_step2(string projId)
+ {
+ ICache redisObj = CacheFactory.CaChe();
+ var cablesNeedAssigned = redisObj.Read>("IOModule_AutoAssign2Ch_" + projId, CacheId.IOModule_AutoAssign2Ch);
+
+ //#region 1.2
+ #region 先分组 1.2.2
+ cablesNeedAssigned = cablesNeedAssigned.OrderBy(x => new { x.PanelID, x.PreAssignIOType, x.System }).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("自动关联完成");
+
+
}
///
/// 把电缆分配到空余的模块的通道上。
@@ -256,48 +455,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, null);
- 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.Application.Web/AppApi/ObjectTypeApiController.cs b/Learun.Application.Web/AppApi/ObjectTypeApiController.cs
index 82f5cf87..113ee1e8 100644
--- a/Learun.Application.Web/AppApi/ObjectTypeApiController.cs
+++ b/Learun.Application.Web/AppApi/ObjectTypeApiController.cs
@@ -373,7 +373,7 @@ namespace Learun.Application.Web.AppApi
///
/// 项目ID
/// 图纸文件ID
- /// 图元编号集合(用,连接)
+ /// 图元编号集合(用,连接)。正常就1个
/// 工况ID
///
[HttpGet]
@@ -548,11 +548,11 @@ namespace Learun.Application.Web.AppApi
foreach (ec_enginedata_propertyEntity TagProp in tag.EngineDataProperty)
{
- if (TagProp.PropertyName == "起始设备")
+ if (TagProp.PropertyName == GlobalObject.propName_From)
{
TagProp.PropertyValue = CableConn.End1Tag;
}
- else if (TagProp.PropertyName == "终止设备")
+ else if (TagProp.PropertyName == GlobalObject.propName_To)
{
TagProp.PropertyValue = CableConn.End2Tag;
}
@@ -591,79 +591,97 @@ namespace Learun.Application.Web.AppApi
var propTbName = ProjectSugar.TableName(projectId);
var allUser = SqlSugarHelper.Db.Queryable().ToList();
+ var userDict = allUser.ToDictionary(x => x.F_UserId, x => x.F_RealName);
var pixelAll = SqlSugarHelper.Db.Queryable().AS(pixelTbName).Where(x => x.DrawingFileID == drawingFileID && x.DeleteFlg != 1).ToList();
+ var pixelDictByTag = pixelAll.GroupBy(x => x.EngineDataID).ToDictionary(x => x.Key, x => x.ToList());
var pixelObjs = pixelAll.Where(x => pixelCodes.Split(',').ToList().Contains(x.PixelCode)).ToList();
var tagIds = pixelObjs.Select(x => x.EngineDataID).Distinct().ToList();
var tagAll = SqlSugarHelper.Db.Queryable().AS(tagTbName).OrderBy(x => x.TagNumber).ToList();
+ // 提前分组:按ObjectTypeID分组,并为每个组预生成字典(仅执行一次,O(m)时间)
+ var preGrouped = tagAll
+ .GroupBy(tag => tag.ObjectTypeID)
+ .ToDictionary(
+ group => group.Key, // 键:ObjectTypeID
+ group => group.ToDictionary( // 值:该组内的EngineDataID→TagNumber字典
+ item => item.EngineDataID,
+ item => item.TagNumber
+ )
+ );
var tagObjs = tagAll.Where(x => tagIds.Contains(x.EngineDataID)).ToList();
-
+ var tagDictByType = tagObjs.GroupBy(x => x.ObjectTypeID).ToDictionary(x => x.Key, x => x.ToList());
var typeIds = tagObjs.Select(x => x.ObjectTypeID).Distinct().ToList();
var typeAll = SqlSugarHelper.Db.Queryable().AS(typeTbName).ToList();
var typeObjs = typeAll.Where(x => typeIds.Contains(x.ObjectTypeID)).ToList();
var tagPropAll = SqlSugarHelper.Db.Queryable().AS(propTbName).Where(x => tagIds.Contains(x.EngineDataID)).ToList();
+ var tagPropDictByTag = tagPropAll.GroupBy(x => x.EngineDataID).ToDictionary(x => x.Key, x => x.ToList());
//所有类别的属性信息
var objectTypeProps2 = objectTypePBll.GetObjectTypePById(string.Join(",", typeIds), projectId, true);//最频繁的那个接口
-
+ var typePropDictByType = objectTypeProps2.GroupBy(x => x.ObjectTypeID).ToDictionary(g => g.Key, g => g.ToList());
try
{
foreach (var objectType in typeObjs)
{
//该类型下的属性信息
- objectType.props = objectTypeProps2.Where(x => x.ObjectTypeID == objectType.ObjectTypeID).ToList();
+ objectType.props = typePropDictByType[objectType.ObjectTypeID];// objectTypeProps2.Where(x => x.ObjectTypeID == objectType.ObjectTypeID).ToList();
//该类型下的位号基础信息
- objectType.tags = tagObjs.Where(x => x.ObjectTypeID == objectType.ObjectTypeID).ToList();
- foreach (var item in objectType.tags)
- {
- item.CreateUserName = allUser.FirstOrDefault(x => x.F_UserId == item.CreateUserID)?.F_RealName;
- }
+ objectType.tags = tagDictByType[objectType.ObjectTypeID]; // tagObjs.Where(x => x.ObjectTypeID == objectType.ObjectTypeID).ToList();
+
//每个位号的属性信息
foreach (var tag in objectType.tags)
{
+ if (string.IsNullOrEmpty(tag.CreateUserID))
+ {
+ tag.CreateUserName = string.Empty;
+ }
+ else
+ {
+ tag.CreateUserName = userDict[tag.CreateUserID];// allUser.FirstOrDefault(x => x.F_UserId == item.CreateUserID)?.F_RealName;
+ }
- tag.EngineDataID = tag.EngineDataID;
- tag.EngineDataProperty = tagPropAll.Where(x => x.EngineDataID == tag.EngineDataID).ToList();
+ tag.EngineDataProperty = tagPropDictByTag[tag.EngineDataID];// tagPropAll.Where(x => x.EngineDataID == tag.EngineDataID).ToList();
tag.ObjectTypeName = objectType.ObjectTypeName;
+
if (objectType.ObjectTypeName.EndsWith("电缆"))
{
//电缆from to
- var CableConn = relBll.GetCableConn(tag.EngineDataID, projectId);
+ var CableConn = relBll.GetCableConn(tag.EngineDataID, projectId);//此时就根据rel里的id拿到了新的tagNumber
- if (!tag.EngineDataProperty.Any(X => X.PropertyName == "起始设备"))
+ if (!tag.EngineDataProperty.Any(X => X.PropertyName == GlobalObject.propName_From))
{
var newProp = new ec_enginedata_propertyEntity()
{
EngineDataID = tag.EngineDataID,
- PropertyName = "起始设备",
+ PropertyName = GlobalObject.propName_From,
//CaseID = string.IsNullOrEmpty(caseID) ? tag.CaseID : caseID,
};
newProp.Create();
- ec_enginedata_propertyBLL.InsertTagProp(projectId, tag.EngineDataID, newProp);
+ ec_enginedata_propertyBLL.InsertTagProp(projectId, tag.EngineDataID, newProp);//增加 起始设备
tag.EngineDataProperty.Add(newProp);
}
- if (!tag.EngineDataProperty.Any(X => X.PropertyName == "终止设备"))
+ if (!tag.EngineDataProperty.Any(X => X.PropertyName == GlobalObject.propName_To))
{
var newProp = new ec_enginedata_propertyEntity()
{
EngineDataID = tag.EngineDataID,
- PropertyName = "终止设备",
+ PropertyName = GlobalObject.propName_To,
//CaseID = string.IsNullOrEmpty(caseID) ? tag.CaseID : caseID,
};
newProp.Create();
- ec_enginedata_propertyBLL.InsertTagProp(projectId, tag.EngineDataID, newProp);
+ ec_enginedata_propertyBLL.InsertTagProp(projectId, tag.EngineDataID, newProp);////增加 终止设备
tag.EngineDataProperty.Add(newProp);
}
- var TagProp = tag.EngineDataProperty.FirstOrDefault(X => X.PropertyName == "起始设备");
+ var TagProp = tag.EngineDataProperty.FirstOrDefault(X => X.PropertyName == GlobalObject.propName_From);
if (TagProp != null)
{
TagProp.PropertyValue = CableConn.End1Tag;
}
TagProp = null;
- TagProp = tag.EngineDataProperty.FirstOrDefault(X => X.PropertyName == "终止设备");
+ TagProp = tag.EngineDataProperty.FirstOrDefault(X => X.PropertyName == GlobalObject.propName_To);
if (TagProp != null)
{
TagProp.PropertyValue = CableConn.End2Tag;
@@ -671,10 +689,10 @@ namespace Learun.Application.Web.AppApi
}
//查一下每个位号的图元信息
- tag.EngineDataPixel = pixelAll.Where(x => x.EngineDataID == tag.EngineDataID).ToList();
+ tag.EngineDataPixel = pixelDictByTag[tag.EngineDataID];// pixelAll.Where(x => x.EngineDataID == tag.EngineDataID).ToList();
}
//taglist
- objectType.tagsListDropDown = tagAll.Where(X => X.ObjectTypeID == objectType.ObjectTypeID).ToDictionary(x => x.EngineDataID, x => x.TagNumber);
+ objectType.tagsListDropDown = preGrouped[objectType.ObjectTypeID]; //tagAll.Where(X => X.ObjectTypeID == objectType.ObjectTypeID).ToDictionary(x => x.EngineDataID, x => x.TagNumber);
//该类型下的流水
if (objectType.IsSerialNumber == 1)
@@ -775,12 +793,12 @@ namespace Learun.Application.Web.AppApi
tag.EngineDataProperty = engineDataProps.Where(x => x.EngineDataID == tag.EngineDataID).ToList();
//BUG 1483
- if (!tag.EngineDataProperty.Any(X => X.PropertyName == "起始设备"))
+ if (!tag.EngineDataProperty.Any(X => X.PropertyName == GlobalObject.propName_From))
{
var newProp = new ec_enginedata_propertyEntity()
{
EngineDataID = tag.EngineDataID,
- PropertyName = "起始设备",
+ PropertyName = GlobalObject.propName_From,
//CaseID = string.IsNullOrEmpty(caseID) ? tag.CaseID : caseID,
};
newProp.Create();
@@ -788,12 +806,12 @@ namespace Learun.Application.Web.AppApi
ec_enginedata_propertyIBLL.InsertTagProp(projectId, tag.EngineDataID, newProp);
tag.EngineDataProperty.Add(newProp);
}
- if (!tag.EngineDataProperty.Any(X => X.PropertyName == "终止设备"))
+ if (!tag.EngineDataProperty.Any(X => X.PropertyName == GlobalObject.propName_To))
{
var newProp = new ec_enginedata_propertyEntity()
{
EngineDataID = tag.EngineDataID,
- PropertyName = "终止设备",
+ PropertyName = GlobalObject.propName_To,
//CaseID = string.IsNullOrEmpty(caseID) ? tag.CaseID : caseID,
};
newProp.Create();
@@ -804,11 +822,11 @@ namespace Learun.Application.Web.AppApi
foreach (ec_enginedata_propertyEntity TagProp in tag.EngineDataProperty)
{
- if (TagProp.PropertyName == "起始设备")
+ if (TagProp.PropertyName == GlobalObject.propName_From)
{
TagProp.PropertyValue = CableConn.End1Tag;
}
- else if (TagProp.PropertyName == "终止设备")
+ else if (TagProp.PropertyName == GlobalObject.propName_To)
{
TagProp.PropertyValue = CableConn.End2Tag;
}
@@ -921,7 +939,7 @@ namespace Learun.Application.Web.AppApi
foreach (var DuplicatePixelData in data)
{
//先根据老的图例,找出工程ID
- var EngineDataIDs = pixelServ.GetList("{\"ProjectId\":\"" + ProjectId + "\",\"PixelCode\":\"" + DuplicatePixelData.oldPixelCode + "\",\"DrawingFileID\":\"" + oldDrawingID + "\"}").
+ var EngineDataIDs = pixelServ.GetList("{\"ProjectId\":\"" + ProjectId + "\",\"PixelCode\":\"" + DuplicatePixelData.oldPixelCode + "\",\"DrawingFileID\":\"" + oldDrawingID + "\"}", ProjectId).
Where(x => x.EngineDataID != "").
Select(x => x.EngineDataID).Distinct();
if (EngineDataIDs == null)
diff --git a/Learun.Application.Web/AppApi/PlotLayoutApiController.cs b/Learun.Application.Web/AppApi/PlotLayoutApiController.cs
index 7dcabe24..3f2d00b5 100644
--- a/Learun.Application.Web/AppApi/PlotLayoutApiController.cs
+++ b/Learun.Application.Web/AppApi/PlotLayoutApiController.cs
@@ -1,4 +1,5 @@
using Learun.Application.TwoDevelopment.ZZDT_EC;
+using Learun.Application.TwoDevelopment.ZZDT_EC.Frame;
using Learun.Util;
using Learun.Util.SqlSugar;
using NPOI.SS.Formula.Functions;
@@ -54,37 +55,13 @@ namespace Learun.Application.Web.AppApi
return Fail("找不到基点这个对象类型。");
}
#region frame
- List frameLists = new List();
- frameLists.Add(new FrameList()
- { Num = "", Value = 0 });
- var settings = new ec_projectSettingsBLL();
- var ec_dataitemBLL = new ec_dataitemBLL();
-
- var FrameListFlg = settings.GetEntity(GlobalObject.projSetting_enumlist_Frame, ProjectId);
-
- if (FrameListFlg != null)
+ var frameBll = new FrameBll();
+ var frameLists = frameBll.GetFrameList(ProjectId);
+ if (frameLists == null)
{
-
- var FrameDetail = ec_dataitemBLL.GetDetailList(FrameListFlg.SettingValue, "", ProjectId, false);
- if (FrameDetail == null)
- {
- return Fail("项目数据字典中,没有找到【肋位号】的下拉项中。");// 或者 无法从数据字典中找到对应的那个下拉
- }
- foreach (var item in FrameDetail)
- {
- double value;
- if (double.TryParse(item.DataItemCode, out value))
- {
- frameLists.Add(new FrameList() { Num = item.DataItemName, Value = value });
- }
- }
-
- frameLists = frameLists.OrderBy(t => t.Value).ToList();
- }
- else
- {
- return Fail("项目设置中(projectSettings表),没有找到【肋位号】的设置项。");// 或者 无法从数据字典中找到对应的那个下拉
+ return Fail("项目数据字典中,没有找到【肋位号】的下拉项中。");// 或者 无法从数据字典中找到对应的那个下拉
}
+
#endregion
var pointsOnDwg = SqlSugarHelper.Db.Queryable().AS(pixelTbName).
@@ -148,9 +125,23 @@ namespace Learun.Application.Web.AppApi
}
//这里要考虑下拉列表 带 ||的问题
- var matchedTagIds = propAll.Where(x => x.PropertyName == keyProp
- && (x.PropertyValue == keyValue || x.PropertyValue.StartsWith(keyValue + GlobalObject.enum_separator))).
- Select(X => X.EngineDataID).Distinct().ToList();
+ List matchedTagIds = new List();
+ if (keyProp == GlobalObject.propName_System)
+ {
+ //#task 9536
+ // 筛选出所有以 "a||" 或 "b||" 开头的元素
+ var validSystems = keyValue.Split().ToList();
+ matchedTagIds = propAll.Where(item =>
+ validSystems.Any(prefix => item.PropertyValue == prefix) || validSystems.Any(prefix => item.PropertyValue.StartsWith(prefix + GlobalObject.enum_separator))
+ ).Select(X => X.EngineDataID).Distinct().ToList();
+ }
+ else
+ {
+ matchedTagIds = propAll.Where(x => x.PropertyName == keyProp
+ && (x.PropertyValue == keyValue || x.PropertyValue.StartsWith(keyValue + GlobalObject.enum_separator))).
+ Select(X => X.EngineDataID).Distinct().ToList();
+ }
+
//有效范围的设备
var matchedTags = SqlSugarHelper.Db.Queryable().AS(tagTbName).
@@ -167,9 +158,9 @@ namespace Learun.Application.Web.AppApi
#region 每个基点关联的设备
//甲板 区域都和基点一致的设备
var DeckMatchedTagIds = EquipPropAll.Where(x => x.PropertyName == "甲板号" && x.PropertyValue == basePoint.deck).Select(X => X.EngineDataID).ToList();
- var AreaMatchedTagIds = EquipPropAll.Where(x => x.PropertyName == "区域" && x.PropertyValue == basePoint.area).Select(X => X.EngineDataID).ToList();
-
- var matchPointTagIds = DeckMatchedTagIds.Intersect(AreaMatchedTagIds).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();
foreach (var matchPointTagId in matchPointTagIds)
{
@@ -361,40 +352,21 @@ namespace Learun.Application.Web.AppApi
[HttpGet]
public IHttpActionResult GetFrameList(string ProjectId)
{
- var ec_dataitemBLL = new ec_dataitemBLL();
- var settings = new ec_projectSettingsBLL();
-
- var FrameListFlg = settings.GetEntity(GlobalObject.projSetting_enumlist_Frame, ProjectId);
-
- if (FrameListFlg != null)
+ var bll = new FrameBll();
+ var res = bll.GetFrameList(ProjectId);
+ if (res == null)
{
- List frameLists = new List();
+ return Fail("项目设置中(projectSettings表),没有找到【肋位号】的设置项中,对应的那个下拉。");// 或者 无法从数据字典中找到对应的那个下拉
-
- var res = ec_dataitemBLL.GetDetailList(FrameListFlg.SettingValue, "", ProjectId, false);
- if (res == null)
- {
- return Fail("项目设置中(projectSettings表),没有找到【肋位号】的设置项中,对应的那个下拉。");// 或者 无法从数据字典中找到对应的那个下拉
- }
- foreach (var item in res)
- {
- double value;
- if (double.TryParse(item.DataItemCode, out value))
- {
- frameLists.Add(new FrameList() { Num = item.DataItemName, Value = value });
- }
- }
-
- frameLists = frameLists.OrderBy(t => t.Value).ToList();
- return Success(frameLists);
}
else
{
- return Fail("项目设置中(projectSettings表),没有找到【肋位号】的设置项。");// 或者 无法从数据字典中找到对应的那个下拉
+ return Success(res);
}
}
+
///
/// 根据ObjectTypeID,查绘制布置图时的图例
///
@@ -467,20 +439,6 @@ namespace Learun.Application.Web.AppApi
}
- ///
- /// 肋位号
- ///
- public class FrameList
- {
- ///
- /// 号
- ///
- public string Num { get; set; }
- ///
- /// 值。单位是m
- ///
- public double Value { get; set; }
- }
}
\ No newline at end of file
diff --git a/Learun.Application.Web/AppApi/RelApiController.cs b/Learun.Application.Web/AppApi/RelApiController.cs
index b05b934b..40062252 100644
--- a/Learun.Application.Web/AppApi/RelApiController.cs
+++ b/Learun.Application.Web/AppApi/RelApiController.cs
@@ -77,7 +77,7 @@ namespace Learun.Application.Web.AppApi
relData.RelEngineData2ID
};
}
- ec_relDataBLL.SaveEntitys(ProjectId, relData.RelTypeID, relData.RelEngineData1ID, relData.End2IDs);
+ ec_relDataBLL.SaveEntitys(ProjectId, relData.RelTypeID, relData.RelEngineData1ID, relData.End2IDs,relData.OPCPixel);
}
@@ -214,7 +214,7 @@ namespace Learun.Application.Web.AppApi
//根据句柄和图纸,先把工程id查出来先
var drawingID = CablePixelID.DrawingID;
var pixelID = CablePixelID.CablePixelID;
- var EngineDataIDs = pixelServ.GetList("{\"ProjectId\":\"" + ProjectId + "\",\"PixelCode\":\"" + pixelID + "\",\"DrawingFileID\":\"" + drawingID + "\"}").Distinct();
+ var EngineDataIDs = pixelServ.GetList("{\"ProjectId\":\"" + ProjectId + "\",\"PixelCode\":\"" + pixelID + "\",\"DrawingFileID\":\"" + drawingID + "\"}", ProjectId).Distinct();
if (EngineDataIDs != null && EngineDataIDs.Count() == 1)
{
var engineDataPixel = EngineDataIDs.First();
@@ -487,7 +487,7 @@ namespace Learun.Application.Web.AppApi
}
}
-
+
relDataCol = relDataColNotOPC;
}
else
@@ -509,9 +509,9 @@ namespace Learun.Application.Web.AppApi
}
//根据句柄和图纸,先把工程id查出来先
//获取工程数据图元数据
- var EngineDataIDs = pixelServ.GetList("{\"ProjectId\":\"" + ProjectId + "\",\"PixelCode\":\"" + relData.TagPixelID + "\",\"DrawingFileID\":\"" + relData.DrawingID + "\"}").
+ var EngineDataIDs = pixelServ.GetList("{\"ProjectId\":\"" + ProjectId + "\",\"PixelCode\":\"" + relData.TagPixelID + "\",\"DrawingFileID\":\"" + relData.DrawingID + "\"}", ProjectId).
Select(x => x.EngineDataID).Distinct();
- var CableIDs = pixelServ.GetList("{\"ProjectId\":\"" + ProjectId + "\",\"PixelCode\":\"" + relData.CablePixelID + "\",\"DrawingFileID\":\"" + relData.DrawingID + "\"}").
+ var CableIDs = pixelServ.GetList("{\"ProjectId\":\"" + ProjectId + "\",\"PixelCode\":\"" + relData.CablePixelID + "\",\"DrawingFileID\":\"" + relData.DrawingID + "\"}", ProjectId).
Select(x => x.EngineDataID).Distinct();
if (EngineDataIDs != null && EngineDataIDs.Count() == 1 && CableIDs != null && CableIDs.Count() == 1)
{
@@ -536,9 +536,9 @@ namespace Learun.Application.Web.AppApi
{
//根据句柄和图纸,先把工程id查出来先
//获取工程数据图元数据
- var EngineDataIDs = pixelServ.GetList("{\"ProjectId\":\"" + ProjectId + "\",\"PixelCode\":\"" + relData.TagPixelID + "\",\"DrawingFileID\":\"" + relData.DrawingID + "\"}").
+ var EngineDataIDs = pixelServ.GetList("{\"ProjectId\":\"" + ProjectId + "\",\"PixelCode\":\"" + relData.TagPixelID + "\",\"DrawingFileID\":\"" + relData.DrawingID + "\"}", ProjectId).
Select(x => x.EngineDataID).Distinct();
- var CableIDs = pixelServ.GetList("{\"ProjectId\":\"" + ProjectId + "\",\"PixelCode\":\"" + relData.CablePixelID + "\",\"DrawingFileID\":\"" + relData.DrawingID + "\"}").
+ var CableIDs = pixelServ.GetList("{\"ProjectId\":\"" + ProjectId + "\",\"PixelCode\":\"" + relData.CablePixelID + "\",\"DrawingFileID\":\"" + relData.DrawingID + "\"}", ProjectId).
Select(x => x.EngineDataID).Distinct();
if (EngineDataIDs != null && EngineDataIDs.Count() == 1 && CableIDs != null && CableIDs.Count() == 1)
{
@@ -547,13 +547,13 @@ namespace Learun.Application.Web.AppApi
- if (relData.IsEnd1)
+ if (relData.IsEnd1)//电缆的起始端连接信息,设备在end1,电缆在end2
{
- ec_relDataBLL.SaveEntitys(ProjectId, RelTypeID, new List { TagID }, CableID, true);
+ ec_relDataBLL.SaveEntitys(ProjectId, RelTypeID, new List { TagID }, CableID, relData.TagPixelID, true);
}
else
{
- ec_relDataBLL.SaveEntitys(ProjectId, RelTypeID, CableID, new List { TagID }, true);
+ ec_relDataBLL.SaveEntitys(ProjectId, RelTypeID, CableID, new List { TagID }, relData.TagPixelID, true);
}
}
diff --git a/Learun.Application.Web/Areas/ZZDT_EC/Controllers/ec_drawing_fileController.cs b/Learun.Application.Web/Areas/ZZDT_EC/Controllers/ec_drawing_fileController.cs
index ce134c71..806bfb29 100644
--- a/Learun.Application.Web/Areas/ZZDT_EC/Controllers/ec_drawing_fileController.cs
+++ b/Learun.Application.Web/Areas/ZZDT_EC/Controllers/ec_drawing_fileController.cs
@@ -55,7 +55,7 @@ namespace Learun.Application.Web.Areas.ZZDT_EC.Controllers
return View();
}
///
- /// 回收站
+ /// 图纸回收站
///
///
[HttpGet]
diff --git a/Learun.Application.Web/Areas/ZZDT_EC/Controllers/ec_enginedataController.cs b/Learun.Application.Web/Areas/ZZDT_EC/Controllers/ec_enginedataController.cs
index b7c86a01..2ebe07da 100644
--- a/Learun.Application.Web/Areas/ZZDT_EC/Controllers/ec_enginedataController.cs
+++ b/Learun.Application.Web/Areas/ZZDT_EC/Controllers/ec_enginedataController.cs
@@ -40,7 +40,7 @@ namespace Learun.Application.Web.Areas.ZZDT_EC.Controllers
return View();
}
///
- /// 工程数据回收站
+ /// 工程数据Tag回收站
///
///
[HttpGet]
diff --git a/Learun.Application.Web/Areas/ZZDT_EC/Controllers/ec_enginedata_pixelController.cs b/Learun.Application.Web/Areas/ZZDT_EC/Controllers/ec_enginedata_pixelController.cs
index 3fced1d3..8cb7936f 100644
--- a/Learun.Application.Web/Areas/ZZDT_EC/Controllers/ec_enginedata_pixelController.cs
+++ b/Learun.Application.Web/Areas/ZZDT_EC/Controllers/ec_enginedata_pixelController.cs
@@ -32,17 +32,7 @@ namespace Learun.Application.Web.Areas.ZZDT_EC.Controllers
#region 获取数据
- ///
- /// 获取列表数据
- ///
- ///
- [HttpGet]
- [AjaxOnly]
- public ActionResult GetList(string queryJson)
- {
- var data = ec_enginedata_pixelIBLL.GetList(queryJson);
- return Success(data);
- }
+
///
/// 获取工程数据图元表数据
///
diff --git a/Learun.Application.Web/Areas/ZZDT_EC/Controllers/ec_enginedata_relController.cs b/Learun.Application.Web/Areas/ZZDT_EC/Controllers/ec_enginedata_relController.cs
index 3dee7536..d365cbc3 100644
--- a/Learun.Application.Web/Areas/ZZDT_EC/Controllers/ec_enginedata_relController.cs
+++ b/Learun.Application.Web/Areas/ZZDT_EC/Controllers/ec_enginedata_relController.cs
@@ -99,7 +99,7 @@ namespace Learun.Application.Web.Areas.ZZDT_EC.Controllers
public ActionResult SaveForm(string ProjectId, string RelTypeID, string RelEngineData1ID, string strEntity)
{
List relEngineData2IDs = strEntity.ToList();
- ec_enginedata_relIBLL.SaveEntitys(ProjectId, RelTypeID, RelEngineData1ID, relEngineData2IDs);
+ ec_enginedata_relIBLL.SaveEntitys(ProjectId, RelTypeID, RelEngineData1ID, relEngineData2IDs,"");
return Success("保存成功!");
}
#endregion
diff --git a/Learun.Application.Web/Areas/ZZDT_EC/Controllers/ec_report_fileController.cs b/Learun.Application.Web/Areas/ZZDT_EC/Controllers/ec_report_fileController.cs
index 16e0b0a4..aae1c759 100644
--- a/Learun.Application.Web/Areas/ZZDT_EC/Controllers/ec_report_fileController.cs
+++ b/Learun.Application.Web/Areas/ZZDT_EC/Controllers/ec_report_fileController.cs
@@ -28,6 +28,7 @@ using System.Text.RegularExpressions;
using System.Web.Helpers;
using System.Web.Mvc;
using static Learun.Application.TwoDevelopment.ZZDT_EC.ec_enginedata_pixelService;
+using static Learun.Application.TwoDevelopment.ZZDT_EC.GlobalEnum;
using SystemIO = System.IO;
namespace Learun.Application.Web.Areas.ZZDT_EC.Controllers
@@ -764,7 +765,7 @@ namespace Learun.Application.Web.Areas.ZZDT_EC.Controllers
break;
}
- var cableFromToRel = SqlSugarHelper.Db.Queryable().AS(relTypeTableName).ToList().FirstOrDefault(x => x.RelType == ((int)enum_RelType.设备_电缆).ToString());
+ var cableFromToRel = SqlSugarHelper.Db.Queryable().AS(relTypeTableName).ToList().FirstOrDefault(x => x.RelType == enum_RelType.设备_电缆);
if (cableFromToRel == null)
{
throw new Exception($"查不到【{enum_RelType.设备_电缆.ToString()}】这个关联类型。");
@@ -1123,7 +1124,7 @@ namespace Learun.Application.Web.Areas.ZZDT_EC.Controllers
//电缆的from to是根据甲板号的order顺序来的,高优先级的就属于from
int? FromOrder = -1; int? ToOrder = -1;
#region From
- var cableFromId = relDatas?.FirstOrDefault(x => x?.RelEngineData2ID == cable?.EngineDataID && x?.RelEngDataObjType1?.Contains("OPC")==false)?.RelEngineData1ID;
+ var cableFromId = relDatas?.FirstOrDefault(x => x?.RelEngineData2ID == cable?.EngineDataID && x?.RelEngDataObjType1?.Contains(GlobalObject.objectType_OPC)==false)?.RelEngineData1ID;
if (!string.IsNullOrEmpty(cableFromId))
{
var cableFromObj = Equips.FirstOrDefault(x => x.EngineDataID == cableFromId);
@@ -1174,7 +1175,7 @@ namespace Learun.Application.Web.Areas.ZZDT_EC.Controllers
}
#endregion
#region To
- var cableEndId = relDatas?.FirstOrDefault(x => x?.RelEngineData1ID == cable?.EngineDataID && x?.RelEngDataObjType2?.Contains("OPC")==false)?.RelEngineData2ID;
+ var cableEndId = relDatas?.FirstOrDefault(x => x?.RelEngineData1ID == cable?.EngineDataID && x?.RelEngDataObjType2?.Contains(GlobalObject.objectType_OPC)==false)?.RelEngineData2ID;
if (!string.IsNullOrEmpty(cableEndId))
{
var cableEndObj = Equips.FirstOrDefault(x => x.EngineDataID == cableEndId);
@@ -1570,8 +1571,8 @@ namespace Learun.Application.Web.Areas.ZZDT_EC.Controllers
(eep, ee, eo, edf, edc, edp) => eep.EngineDataID == edp.EngineDataID
)
.LeftJoin(subQuery, (eep, ee, eo, edf, edc, edp,dde)=> edp.甲板号 == dde.DataItemName)
- .WhereIF(selectModel == 0, (eep, ee, eo, edf, edc, edp, dde) => !eo.FullPathCN.EndsWith("电缆") && !eo.FullPathCN.EndsWith("图框") && !eo.FullPathCN.EndsWith(GlobalObject.objectType_Base) && !eo.FullPathCN.EndsWith("OPC") && eep.DeleteFlg == 0)
- .WhereIF(selectModel == 1, (eep, ee, eo, edf, edc, edp, dde) => !eo.FullPathCN.EndsWith("电缆") && !eo.FullPathCN.EndsWith("图框") && !eo.FullPathCN.EndsWith(GlobalObject.objectType_Base) && !eo.FullPathCN.EndsWith("OPC") && dwgIdCos.Contains(eep.DrawingFileID) && eep.DeleteFlg == 0)
+ .WhereIF(selectModel == 0, (eep, ee, eo, edf, edc, edp, dde) => !eo.FullPathCN.EndsWith("电缆") && !eo.FullPathCN.EndsWith("图框") && !eo.FullPathCN.EndsWith(GlobalObject.objectType_Base) && !eo.FullPathCN.EndsWith(GlobalObject.objectType_OPC) && eep.DeleteFlg == 0)
+ .WhereIF(selectModel == 1, (eep, ee, eo, edf, edc, edp, dde) => !eo.FullPathCN.EndsWith("电缆") && !eo.FullPathCN.EndsWith("图框") && !eo.FullPathCN.EndsWith(GlobalObject.objectType_Base) && !eo.FullPathCN.EndsWith(GlobalObject.objectType_OPC) && dwgIdCos.Contains(eep.DrawingFileID) && eep.DeleteFlg == 0)
.GroupBy((eep, ee, eo, edf, edc, edp, dde) => new
{
edc.DrawingCatalogueNO,
diff --git a/Learun.Application.Web/Global.asax.cs b/Learun.Application.Web/Global.asax.cs
index 0f239625..b82c196c 100644
--- a/Learun.Application.Web/Global.asax.cs
+++ b/Learun.Application.Web/Global.asax.cs
@@ -1,5 +1,7 @@
using Learun.Application.Scheduler;
using Learun.Application.Web.Common;
+using Learun.Cache.Base;
+using Learun.Cache.Factory;
using System;
using System.Timers;
using System.Web;
@@ -30,12 +32,17 @@ namespace Learun.Application.Web
GlobalConfiguration.Configure(WebApiConfig.Register);
RouteConfig.RegisterRoutes(RouteTable.Routes);
-
+
////一天执行一次备份
Timer timer = new Timer(86400000);
//timer.Elapsed += Timer_Elapsed;
//timer.Start();
+
+ #region redis清理
+ ICache redisObj = CacheFactory.CaChe();
+ redisObj.RemoveAll();
+ #endregion
}
private void Timer_Elapsed(object sender, ElapsedEventArgs e)
diff --git a/Learun.Application.Web/Learun.Application.Web.csproj.user b/Learun.Application.Web/Learun.Application.Web.csproj.user
index 7b853d90..e3b381c6 100644
--- a/Learun.Application.Web/Learun.Application.Web.csproj.user
+++ b/Learun.Application.Web/Learun.Application.Web.csproj.user
@@ -18,7 +18,7 @@
True
False
- ShowAllFiles
+ ProjectFiles
diff --git a/Learun.Application.Web/SQL/250829/NoProject/ec_project.sql b/Learun.Application.Web/SQL/250829/NoProject/ec_project.sql
index 764159c9..7bb1f6ca 100644
--- a/Learun.Application.Web/SQL/250829/NoProject/ec_project.sql
+++ b/Learun.Application.Web/SQL/250829/NoProject/ec_project.sql
@@ -1,5 +1,5 @@
ALTER TABLE ec_project ADD `IO_predicted_issue` VARCHAR(50) NULL;
-ALTER TABLE ec_project ADD `IO_predicted_issue` VARCHAR(50) NULL;
-ALTER TABLE ec_project ADD `IO_predicted_issue` VARCHAR(50) NULL;
-ALTER TABLE ec_project ADD `IO_predicted_issue` VARCHAR(50) NULL;
+ALTER TABLE ec_project ADD `IO_predicted_construct` VARCHAR(50) NULL;
+ALTER TABLE ec_project ADD `IO_real_issue` VARCHAR(50) NULL;
+ALTER TABLE ec_project ADD `IO_real_construct` VARCHAR(50) NULL;
\ No newline at end of file
diff --git a/Learun.Framework.Module/Learun.Application.Module/Learun.Application.TwoDevelopment/.vs/Learun.Application.TwoDevelopment.csproj.dtbcache.json b/Learun.Framework.Module/Learun.Application.Module/Learun.Application.TwoDevelopment/.vs/Learun.Application.TwoDevelopment.csproj.dtbcache.json
index c8c7fd3e..0a5784bc 100644
--- a/Learun.Framework.Module/Learun.Application.Module/Learun.Application.TwoDevelopment/.vs/Learun.Application.TwoDevelopment.csproj.dtbcache.json
+++ b/Learun.Framework.Module/Learun.Application.Module/Learun.Application.TwoDevelopment/.vs/Learun.Application.TwoDevelopment.csproj.dtbcache.json
@@ -1 +1 @@
-{"RootPath":"C:\\repo\\CODE\\009_DI-Elec\\Server\\Learun.Framework.Module\\Learun.Application.Module\\Learun.Application.TwoDevelopment","ProjectFileName":"Learun.Application.TwoDevelopment.csproj","Configuration":"Debug|AnyCPU","FrameworkPath":"","Sources":[{"SourceFile":"Plugin\\IEnginedataPlugin.cs"},{"SourceFile":"Plugin\\PluginHelper.cs"},{"SourceFile":"Properties\\AssemblyInfo.cs"},{"SourceFile":"ZZDT_EC\\Archive\\ec_Archive_enginedata.cs"},{"SourceFile":"ZZDT_EC\\Archive\\ec_Archive_Pixel.cs"},{"SourceFile":"ZZDT_EC\\Archive\\ec_Archive_Property.cs"},{"SourceFile":"ZZDT_EC\\Archive\\ec_Archive_Rel.cs"},{"SourceFile":"ZZDT_EC\\ec_access\\ec_accessBLL.cs"},{"SourceFile":"ZZDT_EC\\ec_access\\ec_accessEntity.cs"},{"SourceFile":"ZZDT_EC\\ec_access\\ec_accessService.cs"},{"SourceFile":"ZZDT_EC\\ec_Action\\ec_actionEntity.cs"},{"SourceFile":"ZZDT_EC\\ec_cable\\ec_CableSetEntityBrief.cs"},{"SourceFile":"ZZDT_EC\\ec_cable\\ec_parallel_CableEntity.cs"},{"SourceFile":"ZZDT_EC\\ec_cable\\ec_CableSetWireService.cs"},{"SourceFile":"ZZDT_EC\\ec_cable\\ec_CableSetService.cs"},{"SourceFile":"ZZDT_EC\\ec_cable\\ec_CableSetWireEntity.cs"},{"SourceFile":"ZZDT_EC\\ec_cable\\ec_CableSetEntity.cs"},{"SourceFile":"ZZDT_EC\\ec_cable\\ec_CableEntity.cs"},{"SourceFile":"ZZDT_EC\\ec_cable\\ec_CableBLL.cs"},{"SourceFile":"ZZDT_EC\\ec_cable\\ec_CableService.cs"},{"SourceFile":"ZZDT_EC\\ec_Case\\ec_CaseEntity.cs"},{"SourceFile":"ZZDT_EC\\ec_Case\\ec_CaseBLL.cs"},{"SourceFile":"ZZDT_EC\\ec_Case\\ec_CaseIBLL.cs"},{"SourceFile":"ZZDT_EC\\ec_Case\\ec_CaseService.cs"},{"SourceFile":"ZZDT_EC\\ec_CircuitBreaker\\ec_RefCBService.cs"},{"SourceFile":"ZZDT_EC\\ec_CircuitBreaker\\ec_RefCircuitBreakerEntity.cs"},{"SourceFile":"ZZDT_EC\\ec_CircuitBreaker\\ec_CircuitBreakerService.cs"},{"SourceFile":"ZZDT_EC\\ec_CircuitBreaker\\ec_CircuitBreakerBLL.cs"},{"SourceFile":"ZZDT_EC\\ec_CircuitBreaker\\ec_CircuitBreakerEntity.cs"},{"SourceFile":"ZZDT_EC\\ec_dataitem\\ec_dataitemdetailEntity.cs"},{"SourceFile":"ZZDT_EC\\ec_enginedata\\ec_enginedataCableBrief.cs"},{"SourceFile":"ZZDT_EC\\ec_enginedata\\layoutTagInfoBrief.cs"},{"SourceFile":"ZZDT_EC\\ec_enginedata\\ec_enginedataEquipBrief.cs"},{"SourceFile":"ZZDT_EC\\ec_enginedata_property\\ec_enginedata_propertyEntityBrief.cs"},{"SourceFile":"ZZDT_EC\\ec_lookup\\ec_REFLOOKUPTABLEBLL.cs"},{"SourceFile":"ZZDT_EC\\ec_lookup\\ec_REFLOOKUPTABLEData.cs"},{"SourceFile":"ZZDT_EC\\ec_lookup\\ec_REFLOOKUPTABLEAttr.cs"},{"SourceFile":"ZZDT_EC\\ec_lookup\\ec_REFLOOKUPTABLE.cs"},{"SourceFile":"ZZDT_EC\\ec_notification\\ec_notificationBLL.cs"},{"SourceFile":"ZZDT_EC\\ec_notification\\ec_notificationEntity.cs"},{"SourceFile":"ZZDT_EC\\ec_notification\\ec_notificationService.cs"},{"SourceFile":"ZZDT_EC\\ec_objecttypenamingconv\\ec_objectNVBLL.cs"},{"SourceFile":"ZZDT_EC\\ec_objecttypenamingconv\\ec_objectNVEntity.cs"},{"SourceFile":"ZZDT_EC\\ec_objecttypenamingconv\\ec_objectNVService.cs"},{"SourceFile":"ZZDT_EC\\ec_objecttype\\ec_objTypeLayoutFilterP.cs"},{"SourceFile":"ZZDT_EC\\ec_objecttype\\ec_objTypeLayoutFilter.cs"},{"SourceFile":"ZZDT_EC\\ec_panel_channel\\ec_PanelChannelEntity_Brief.cs"},{"SourceFile":"ZZDT_EC\\ec_panel_strip\\ec_PanelStripEntity_Brief.cs"},{"SourceFile":"ZZDT_EC\\ec_panel_strip_term\\ec_PanelStripTermBLL.cs"},{"SourceFile":"ZZDT_EC\\ec_panel_strip_term\\ec_PanelStripTermEntity_Brief.cs"},{"SourceFile":"ZZDT_EC\\ec_panel_strip_term\\ec_PanelStripTermEntity.cs"},{"SourceFile":"ZZDT_EC\\ec_panel_strip_term\\ec_PanelStripTermIBLL.cs"},{"SourceFile":"ZZDT_EC\\ec_panel_strip_term\\ec_PanelStripTermService.cs"},{"SourceFile":"ZZDT_EC\\ec_panel_strip\\ec_PanelStripBLL.cs"},{"SourceFile":"ZZDT_EC\\ec_panel_strip\\ec_PanelStripEntity.cs"},{"SourceFile":"ZZDT_EC\\ec_panel_strip\\ec_PanelStripIBLL.cs"},{"SourceFile":"ZZDT_EC\\ec_panel_strip\\ec_PanelStripService.cs"},{"SourceFile":"ZZDT_EC\\ec_panel_channel\\ec_PanelChannelBLL.cs"},{"SourceFile":"ZZDT_EC\\ec_panel_channel\\ec_PanelChannelEntity.cs"},{"SourceFile":"ZZDT_EC\\ec_panel_channel\\ec_PanelChannelIBLL.cs"},{"SourceFile":"ZZDT_EC\\ec_panel_channel\\ec_PanelChannelService.cs"},{"SourceFile":"ZZDT_EC\\ec_panel\\ec_PanelIBLL.cs"},{"SourceFile":"ZZDT_EC\\ec_projectSettings\\ec_projectSettingsBLL.cs"},{"SourceFile":"ZZDT_EC\\ec_projectSettings\\ec_projectSettingsEntity.cs"},{"SourceFile":"ZZDT_EC\\ec_projectSettings\\ec_projectSettingsService.cs"},{"SourceFile":"ZZDT_EC\\ec_project\\ec_projectEntity.cs"},{"SourceFile":"ZZDT_EC\\ec_project\\ec_projectService.cs"},{"SourceFile":"ZZDT_EC\\ec_project\\ec_projectBLL.cs"},{"SourceFile":"ZZDT_EC\\ec_project\\ec_projectIBLL.cs"},{"SourceFile":"ZZDT_EC\\ec_drawing_catalogue\\ec_drawing_catalogueEntity.cs"},{"SourceFile":"ZZDT_EC\\ec_drawing_catalogue\\ec_drawing_catalogueService.cs"},{"SourceFile":"ZZDT_EC\\ec_drawing_catalogue\\ec_drawing_catalogueIBLL.cs"},{"SourceFile":"ZZDT_EC\\ec_drawing_catalogue\\ec_drawing_catalogueBLL.cs"},{"SourceFile":"ZZDT_EC\\ec_drawing_file\\ec_drawing_fileEntity.cs"},{"SourceFile":"ZZDT_EC\\ec_drawing_file\\ec_drawing_fileService.cs"},{"SourceFile":"ZZDT_EC\\ec_drawing_file\\ec_drawing_fileBLL.cs"},{"SourceFile":"ZZDT_EC\\ec_drawing_publish\\ec_drawing_publishEntity.cs"},{"SourceFile":"ZZDT_EC\\ec_drawing_publish\\ec_drawing_publishService.cs"},{"SourceFile":"ZZDT_EC\\ec_drawing_publish\\ec_drawing_publishIBLL.cs"},{"SourceFile":"ZZDT_EC\\ec_drawing_publish\\ec_drawing_publishBLL.cs"},{"SourceFile":"ZZDT_EC\\ec_drawing_syn\\ec_drawing_synEntity.cs"},{"SourceFile":"ZZDT_EC\\ec_drawing_syn\\ec_drawing_synService.cs"},{"SourceFile":"ZZDT_EC\\ec_drawing_syn\\ec_drawing_synIBLL.cs"},{"SourceFile":"ZZDT_EC\\ec_drawing_syn\\ec_drawing_synBLL.cs"},{"SourceFile":"ZZDT_EC\\ec_operate_log\\ec_operate_logEntity.cs"},{"SourceFile":"ZZDT_EC\\ec_operate_log\\ec_operate_logService.cs"},{"SourceFile":"ZZDT_EC\\ec_operate_log\\ec_operate_logIBLL.cs"},{"SourceFile":"ZZDT_EC\\ec_operate_log\\ec_operate_logBLL.cs"},{"SourceFile":"ZZDT_EC\\GlobalEnum.cs"},{"SourceFile":"ZZDT_EC\\GlobalObject.cs"},{"SourceFile":"ZZDT_EC\\ec_template_catalogue\\ec_template_catalogueEntity.cs"},{"SourceFile":"ZZDT_EC\\ec_template_catalogue\\ec_template_catalogueService.cs"},{"SourceFile":"ZZDT_EC\\ec_template_catalogue\\ec_template_catalogueIBLL.cs"},{"SourceFile":"ZZDT_EC\\ec_template_catalogue\\ec_template_catalogueBLL.cs"},{"SourceFile":"ZZDT_EC\\ec_template_file\\ec_template_fileEntity.cs"},{"SourceFile":"ZZDT_EC\\ec_template_file\\ec_template_fileService.cs"},{"SourceFile":"ZZDT_EC\\ec_template_file\\ec_template_fileIBLL.cs"},{"SourceFile":"ZZDT_EC\\ec_template_file\\ec_template_fileBLL.cs"},{"SourceFile":"ZZDT_EC\\ec_property\\ec_propertyEntity.cs"},{"SourceFile":"ZZDT_EC\\ec_property\\ec_propertyService.cs"},{"SourceFile":"ZZDT_EC\\ec_property\\ec_propertyBLL.cs"},{"SourceFile":"ZZDT_EC\\ec_property\\ec_propertyIBLL.cs"},{"SourceFile":"ZZDT_EC\\ec_objecttype\\ec_objecttypeEntity.cs"},{"SourceFile":"ZZDT_EC\\ec_objecttype\\ec_objecttypeService.cs"},{"SourceFile":"ZZDT_EC\\ec_objecttype\\ec_objecttypeIBLL.cs"},{"SourceFile":"ZZDT_EC\\ec_objecttype\\ec_objecttypeBLL.cs"},{"SourceFile":"ZZDT_EC\\ec_objecttypep\\ec_objecttypepEntity.cs"},{"SourceFile":"ZZDT_EC\\ec_objecttypep\\ec_objecttypepService.cs"},{"SourceFile":"ZZDT_EC\\ec_objecttypep\\ec_objecttypepIBLL.cs"},{"SourceFile":"ZZDT_EC\\ec_objecttypep\\ec_objecttypepBLL.cs"},{"SourceFile":"ZZDT_EC\\ec_propertyg\\ec_propertygEntity.cs"},{"SourceFile":"ZZDT_EC\\ec_propertyg\\ec_propertygService.cs"},{"SourceFile":"ZZDT_EC\\ec_propertyg\\ec_propertygIBLL.cs"},{"SourceFile":"ZZDT_EC\\ec_propertyg\\ec_propertygBLL.cs"},{"SourceFile":"ZZDT_EC\\ec_library_catalogue\\ec_library_catalogueEntity.cs"},{"SourceFile":"ZZDT_EC\\ec_library_catalogue\\ec_library_catalogueService.cs"},{"SourceFile":"ZZDT_EC\\ec_library_catalogue\\ec_library_catalogueBLL.cs"},{"SourceFile":"ZZDT_EC\\ec_library_catalogue\\ec_library_catalogueIBLL.cs"},{"SourceFile":"ZZDT_EC\\ec_library_file\\ec_library_fileEntity.cs"},{"SourceFile":"ZZDT_EC\\ec_library_file\\ec_library_fileService.cs"},{"SourceFile":"ZZDT_EC\\ec_library_file\\ec_library_fileBLL.cs"},{"SourceFile":"ZZDT_EC\\ec_library_file\\ec_library_fileIBLL.cs"},{"SourceFile":"ZZDT_EC\\ec_enginedata\\ec_enginedataEntity.cs"},{"SourceFile":"ZZDT_EC\\ec_enginedata\\ec_enginedataService.cs"},{"SourceFile":"ZZDT_EC\\ec_enginedata\\ec_enginedataBLL.cs"},{"SourceFile":"ZZDT_EC\\ec_enginedata\\ec_enginedataIBLL.cs"},{"SourceFile":"ZZDT_EC\\ec_enginedata_pixel\\ec_enginedata_pixelEntity.cs"},{"SourceFile":"ZZDT_EC\\ec_enginedata_pixel\\ec_enginedata_pixelService.cs"},{"SourceFile":"ZZDT_EC\\ec_enginedata_pixel\\ec_enginedata_pixelIBLL.cs"},{"SourceFile":"ZZDT_EC\\ec_enginedata_pixel\\ec_enginedata_pixelBLL.cs"},{"SourceFile":"ZZDT_EC\\ec_enginedata_property\\ec_enginedata_propertyEntity.cs"},{"SourceFile":"ZZDT_EC\\ec_enginedata_property\\ec_enginedata_propertyService.cs"},{"SourceFile":"ZZDT_EC\\ec_enginedata_property\\ec_enginedata_propertyIBLL.cs"},{"SourceFile":"ZZDT_EC\\ec_enginedata_property\\ec_enginedata_propertyBLL.cs"},{"SourceFile":"ZZDT_EC\\ec_objecttypelib\\ec_objecttypelibEntity.cs"},{"SourceFile":"ZZDT_EC\\ec_objecttypelib\\ec_objecttypelibService.cs"},{"SourceFile":"ZZDT_EC\\ec_objecttypelib\\ec_objecttypelibIBLL.cs"},{"SourceFile":"ZZDT_EC\\ec_objecttypelib\\ec_objecttypelibBLL.cs"},{"SourceFile":"ZZDT_EC\\ec_business_table\\ec_business_tableEntity.cs"},{"SourceFile":"ZZDT_EC\\ec_business_table\\ec_business_tableService.cs"},{"SourceFile":"ZZDT_EC\\ec_business_table\\ec_business_tableIBLL.cs"},{"SourceFile":"ZZDT_EC\\ec_business_table\\ec_business_tableBLL.cs"},{"SourceFile":"ZZDT_EC\\ec_project_bakup\\ec_project_bakupEntity.cs"},{"SourceFile":"ZZDT_EC\\ec_project_bakup\\ec_project_bakupService.cs"},{"SourceFile":"ZZDT_EC\\ec_project_bakup\\ec_project_bakupBLL.cs"},{"SourceFile":"ZZDT_EC\\ec_project_bakup\\ec_project_bakupIBLL.cs"},{"SourceFile":"ZZDT_EC\\ec_dataitem\\ec_dataitemEntity.cs"},{"SourceFile":"ZZDT_EC\\ec_dataitem\\ec_dataitemService.cs"},{"SourceFile":"ZZDT_EC\\ec_dataitem\\ec_dataitemBLL.cs"},{"SourceFile":"ZZDT_EC\\ec_dataitem\\ec_dataitemIBLL.cs"},{"SourceFile":"ZZDT_EC\\ec_report_catalogue\\ec_report_catalogueEntity.cs"},{"SourceFile":"ZZDT_EC\\ec_report_catalogue\\ec_report_catalogueService.cs"},{"SourceFile":"ZZDT_EC\\ec_report_catalogue\\ec_report_catalogueIBLL.cs"},{"SourceFile":"ZZDT_EC\\ec_report_catalogue\\ec_report_catalogueBLL.cs"},{"SourceFile":"ZZDT_EC\\ec_report_file\\ec_report_fileEntity.cs"},{"SourceFile":"ZZDT_EC\\ec_report_file\\ec_report_fileService.cs"},{"SourceFile":"ZZDT_EC\\ec_report_file\\ec_report_fileBLL.cs"},{"SourceFile":"ZZDT_EC\\ec_report_file\\ec_report_fileIBLL.cs"},{"SourceFile":"ZZDT_EC\\ec_enginedata_propertyhis\\ec_enginedata_propertyhisEntity.cs"},{"SourceFile":"ZZDT_EC\\ec_enginedata_propertyhis\\ec_enginedata_propertyhisService.cs"},{"SourceFile":"ZZDT_EC\\ec_enginedata_propertyhis\\ec_enginedata_propertyhisIBLL.cs"},{"SourceFile":"ZZDT_EC\\ec_enginedata_propertyhis\\ec_enginedata_propertyhisBLL.cs"},{"SourceFile":"ZZDT_EC\\ec_reltype\\ec_reltypeEntity.cs"},{"SourceFile":"ZZDT_EC\\ec_reltype\\ec_reltypeService.cs"},{"SourceFile":"ZZDT_EC\\ec_reltype\\ec_reltypeIBLL.cs"},{"SourceFile":"ZZDT_EC\\ec_reltype\\ec_reltypeBLL.cs"},{"SourceFile":"ZZDT_EC\\ec_enginedata_rel\\ec_enginedata_relEntity.cs"},{"SourceFile":"ZZDT_EC\\ec_enginedata_rel\\ec_enginedata_relService.cs"},{"SourceFile":"ZZDT_EC\\ec_enginedata_rel\\ec_enginedata_relIBLL.cs"},{"SourceFile":"ZZDT_EC\\ec_enginedata_rel\\ec_enginedata_relBLL.cs"},{"SourceFile":"ZZDT_EC\\ec_synrel_table\\ec_synrel_tableEntity.cs"},{"SourceFile":"ZZDT_EC\\ec_synrel_table\\ec_synrel_tableService.cs"},{"SourceFile":"ZZDT_EC\\ec_synrel_table\\ec_synrel_tableIBLL.cs"},{"SourceFile":"ZZDT_EC\\ec_synrel_table\\ec_synrel_tableBLL.cs"},{"SourceFile":"ZZDT_EC\\ec_measuring_unittype\\ec_measuring_unittypeEntity.cs"},{"SourceFile":"ZZDT_EC\\ec_measuring_unittype\\ec_measuring_unittypeService.cs"},{"SourceFile":"ZZDT_EC\\ec_measuring_unittype\\ec_measuring_unittypeIBLL.cs"},{"SourceFile":"ZZDT_EC\\ec_measuring_unittype\\ec_measuring_unittypeBLL.cs"},{"SourceFile":"ZZDT_EC\\ec_measuring_unit\\ec_measuring_unitEntity.cs"},{"SourceFile":"ZZDT_EC\\ec_measuring_unit\\ec_measuring_unitService.cs"},{"SourceFile":"ZZDT_EC\\ec_measuring_unit\\ec_measuring_unitIBLL.cs"},{"SourceFile":"ZZDT_EC\\ec_measuring_unit\\ec_measuring_unitBLL.cs"},{"SourceFile":"ZZDT_EC\\ec_panel\\ec_PanelEntity.cs"},{"SourceFile":"ZZDT_EC\\ec_panel\\ec_PanelBLL.cs"},{"SourceFile":"ZZDT_EC\\ec_panel\\ec_PanelService.cs"},{"SourceFile":"ZZDT_EC\\ec_Wire_Group\\ec_Wire_GroupBLL.cs"},{"SourceFile":"ZZDT_EC\\ec_Wire_Group\\ec_Wire_GroupEntity.cs"},{"SourceFile":"ZZDT_EC\\ec_Wire_Group\\ec_Wire_GroupIBLL.cs"},{"SourceFile":"ZZDT_EC\\ec_Wire_Group\\IO_WorkFlowService.cs"},{"SourceFile":"ZZDT_EC\\ec_Wire_Group\\ec_Wire_GroupService.cs"},{"SourceFile":"ZZDT_EC\\ec_Wire_Group\\SignalStatusConverter.cs"},{"SourceFile":"ZZDT_EC\\ec_wire_group_notice\\ec_wire_group_noticeEntity.cs"},{"SourceFile":"ZZDT_EC\\ec_wire_group_log\\ec_wire_group_logEntity.cs"},{"SourceFile":"ZZDT_EC\\ec_wire_group_propertyhis\\ec_wire_group_propertyhisEntity.cs"},{"SourceFile":"ZZDT_EC\\ec_Wire_Group_Template\\ec_Wire_Group_TemplateBLL.cs"},{"SourceFile":"ZZDT_EC\\ec_Wire_Group_Template\\ec_Wire_Group_TemplateEntity.cs"},{"SourceFile":"ZZDT_EC\\ec_Wire_Group_Template\\ec_Wire_Group_TemplateIBLL.cs"},{"SourceFile":"ZZDT_EC\\ec_Wire_Group_Template\\ec_Wire_Group_TemplateService.cs"},{"SourceFile":"ZZDT_EC\\ec_Wire_Terminal\\ec_WireTerminalBLL.cs"},{"SourceFile":"ZZDT_EC\\ec_Wire_Terminal\\ec_WireTerminalService.cs"},{"SourceFile":"ZZDT_EC\\ec_Wire_Terminal\\ec_WireTerminalEntity.cs"},{"SourceFile":"ZZDT_EC\\ProjectSugar.cs"},{"SourceFile":"obj\\Debug\\.NETFramework,Version=v4.6.1.AssemblyAttributes.cs"}],"References":[{"Reference":"C:\\repo\\CODE\\009_DI-Elec\\Server\\packages\\ClosedXML.0.102.1\\lib\\netstandard2.0\\ClosedXML.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\repo\\CODE\\009_DI-Elec\\Server\\packages\\Dapper.1.50.2\\lib\\net45\\Dapper.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\repo\\CODE\\009_DI-Elec\\Server\\packages\\DnsClient.1.3.1\\lib\\net45\\DnsClient.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\repo\\CODE\\009_DI-Elec\\Server\\packages\\DocumentFormat.OpenXml.2.16.0\\lib\\net46\\DocumentFormat.OpenXml.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\repo\\CODE\\009_DI-Elec\\Server\\packages\\EPPlus.7.0.1\\lib\\net35\\EPPlus.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\repo\\CODE\\009_DI-Elec\\Server\\packages\\EPPlus.Interfaces.6.1.1\\lib\\net35\\EPPlus.Interfaces.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\repo\\CODE\\009_DI-Elec\\Server\\packages\\EPPlus.System.Drawing.6.1.1\\lib\\net35\\EPPlus.System.Drawing.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\repo\\CODE\\009_DI-Elec\\Server\\packages\\ExcelNumberFormat.1.1.0\\lib\\net20\\ExcelNumberFormat.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\repo\\CODE\\009_DI-Elec\\Server\\packages\\SharpZipLib.0.86.0\\lib\\20\\ICSharpCode.SharpZipLib.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\repo\\CODE\\009_DI-Elec\\Server\\packages\\Irony.NetCore.1.0.11\\lib\\net461\\Irony.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\repo\\CODE\\009_DI-Elec\\Server\\Learun.Framework.Module\\Learun.Application.Module\\Learun.Application.Base\\bin\\Debug\\Learun.Application.Base.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":true,"ProjectPath":"C:\\repo\\CODE\\009_DI-Elec\\Server\\Learun.Framework.Module\\Learun.Application.Module\\Learun.Application.Base\\bin\\Debug\\Learun.Application.Base.dll"},{"Reference":"C:\\repo\\CODE\\009_DI-Elec\\Server\\Learun.Framework.Module\\Learun.Application.Module\\Learun.Application.IM\\bin\\Debug\\Learun.Application.IM.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":true,"ProjectPath":"C:\\repo\\CODE\\009_DI-Elec\\Server\\Learun.Framework.Module\\Learun.Application.Module\\Learun.Application.IM\\bin\\Debug\\Learun.Application.IM.dll"},{"Reference":"C:\\repo\\CODE\\009_DI-Elec\\Server\\Learun.Application.Organization\\bin\\Debug\\Learun.Application.Organization.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":true,"ProjectPath":"C:\\repo\\CODE\\009_DI-Elec\\Server\\Learun.Application.Organization\\bin\\Debug\\Learun.Application.Organization.dll"},{"Reference":"C:\\repo\\CODE\\009_DI-Elec\\Server\\Learun.Framework.Module\\Learun.Application.Module\\Learun.Application.WorkFlow\\bin\\Debug\\Learun.Application.WorkFlow.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":true,"ProjectPath":"C:\\repo\\CODE\\009_DI-Elec\\Server\\Learun.Framework.Module\\Learun.Application.Module\\Learun.Application.WorkFlow\\bin\\Debug\\Learun.Application.WorkFlow.dll"},{"Reference":"C:\\repo\\CODE\\009_DI-Elec\\Server\\Learun.Framework.Module\\Learun.Cache\\Learun.Cache.Base\\bin\\Debug\\Learun.Cache.Base.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":true,"ProjectPath":"C:\\repo\\CODE\\009_DI-Elec\\Server\\Learun.Framework.Module\\Learun.Cache\\Learun.Cache.Base\\bin\\Debug\\Learun.Cache.Base.dll"},{"Reference":"C:\\repo\\CODE\\009_DI-Elec\\Server\\Learun.Framework.Module\\Learun.Cache\\LeaRun.Cache.Factory\\bin\\Debug\\Learun.Cache.Factory.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":true,"ProjectPath":"C:\\repo\\CODE\\009_DI-Elec\\Server\\Learun.Framework.Module\\Learun.Cache\\LeaRun.Cache.Factory\\bin\\Debug\\Learun.Cache.Factory.dll"},{"Reference":"C:\\repo\\CODE\\009_DI-Elec\\Server\\Learun.Framework.Module\\Learun.Cache\\Learun.Cache.Redis\\bin\\Debug\\Learun.Cache.Redis.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":true,"ProjectPath":"C:\\repo\\CODE\\009_DI-Elec\\Server\\Learun.Framework.Module\\Learun.Cache\\Learun.Cache.Redis\\bin\\Debug\\Learun.Cache.Redis.dll"},{"Reference":"C:\\repo\\CODE\\009_DI-Elec\\Server\\Learun.Framework.Module\\Learun.Log\\bin\\Debug\\Learun.Loger.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":true,"ProjectPath":"C:\\repo\\CODE\\009_DI-Elec\\Server\\Learun.Framework.Module\\Learun.Log\\bin\\Debug\\Learun.Loger.dll"},{"Reference":"C:\\repo\\CODE\\009_DI-Elec\\Server\\Learun.Framework.Module\\Learun.Util\\Learun.Util\\bin\\Debug\\Learun.Util.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":true,"ProjectPath":"C:\\repo\\CODE\\009_DI-Elec\\Server\\Learun.Framework.Module\\Learun.Util\\Learun.Util\\bin\\Debug\\Learun.Util.dll"},{"Reference":"C:\\repo\\CODE\\009_DI-Elec\\Server\\Learun.Framework.Module\\Learun.Util\\Learun.Util.Operat\\bin\\Debug\\Learun.Util.Operat.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":true,"ProjectPath":"C:\\repo\\CODE\\009_DI-Elec\\Server\\Learun.Framework.Module\\Learun.Util\\Learun.Util.Operat\\bin\\Debug\\Learun.Util.Operat.dll"},{"Reference":"C:\\repo\\CODE\\009_DI-Elec\\Server\\packages\\log4net.2.0.7\\lib\\net45-full\\log4net.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files (x86)\\Reference Assemblies\\Microsoft\\Framework\\.NETFramework\\v4.6.1\\Microsoft.CSharp.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\repo\\CODE\\009_DI-Elec\\Server\\packages\\Microsoft.Extensions.Logging.Abstractions.2.1.1\\lib\\netstandard2.0\\Microsoft.Extensions.Logging.Abstractions.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\repo\\CODE\\009_DI-Elec\\Server\\packages\\Microsoft.Office.Interop.Excel.15.0.4795.1000\\lib\\net20\\Microsoft.Office.Interop.Excel.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files\\Microsoft Visual Studio\\2022\\Community\\MSBuild\\Microsoft\\Microsoft.NET.Build.Extensions\\net461\\lib\\Microsoft.Win32.Primitives.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files (x86)\\Reference Assemblies\\Microsoft\\Framework\\.NETFramework\\v4.6.1\\mscorlib.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files\\Microsoft Visual Studio\\2022\\Community\\MSBuild\\Microsoft\\Microsoft.NET.Build.Extensions\\net461\\lib\\netfx.force.conflicts.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files\\Microsoft Visual Studio\\2022\\Community\\MSBuild\\Microsoft\\Microsoft.NET.Build.Extensions\\net461\\lib\\netstandard.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\repo\\CODE\\009_DI-Elec\\Server\\packages\\Newtonsoft.Json.12.0.1\\lib\\net45\\Newtonsoft.Json.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\repo\\CODE\\009_DI-Elec\\Server\\packages\\O2S.Components.PDFRender4NET.Win.6.0.2.0\\lib\\net40\\O2S.Components.PDFRender4NET.Win.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files (x86)\\Reference Assemblies\\Microsoft\\Framework\\.NETFramework\\v4.6.1\\PresentationCore.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files (x86)\\Reference Assemblies\\Microsoft\\Framework\\.NETFramework\\v4.6.1\\PresentationFramework.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\repo\\CODE\\009_DI-Elec\\Server\\packages\\Quartz.3.7.0\\lib\\netstandard2.0\\Quartz.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\repo\\CODE\\009_DI-Elec\\Server\\packages\\SixLabors.Fonts.1.0.0\\lib\\netstandard2.0\\SixLabors.Fonts.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\repo\\CODE\\009_DI-Elec\\Server\\packages\\SqlSugar.5.1.4.114\\lib\\SqlSugar.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files\\Microsoft Visual Studio\\2022\\Community\\MSBuild\\Microsoft\\Microsoft.NET.Build.Extensions\\net461\\lib\\System.AppContext.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\repo\\CODE\\009_DI-Elec\\Server\\packages\\System.Buffers.4.5.1\\lib\\net461\\System.Buffers.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files\\Microsoft Visual Studio\\2022\\Community\\MSBuild\\Microsoft\\Microsoft.NET.Build.Extensions\\net461\\lib\\System.Collections.Concurrent.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files\\Microsoft Visual Studio\\2022\\Community\\MSBuild\\Microsoft\\Microsoft.NET.Build.Extensions\\net461\\lib\\System.Collections.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files\\Microsoft Visual Studio\\2022\\Community\\MSBuild\\Microsoft\\Microsoft.NET.Build.Extensions\\net461\\lib\\System.Collections.NonGeneric.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files\\Microsoft Visual Studio\\2022\\Community\\MSBuild\\Microsoft\\Microsoft.NET.Build.Extensions\\net461\\lib\\System.Collections.Specialized.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files (x86)\\Reference Assemblies\\Microsoft\\Framework\\.NETFramework\\v4.6.1\\System.ComponentModel.DataAnnotations.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files\\Microsoft Visual Studio\\2022\\Community\\MSBuild\\Microsoft\\Microsoft.NET.Build.Extensions\\net461\\lib\\System.ComponentModel.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files\\Microsoft Visual Studio\\2022\\Community\\MSBuild\\Microsoft\\Microsoft.NET.Build.Extensions\\net461\\lib\\System.ComponentModel.EventBasedAsync.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files\\Microsoft Visual Studio\\2022\\Community\\MSBuild\\Microsoft\\Microsoft.NET.Build.Extensions\\net461\\lib\\System.ComponentModel.Primitives.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files\\Microsoft Visual Studio\\2022\\Community\\MSBuild\\Microsoft\\Microsoft.NET.Build.Extensions\\net461\\lib\\System.ComponentModel.TypeConverter.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\repo\\CODE\\009_DI-Elec\\Server\\packages\\System.Configuration.ConfigurationManager.6.0.1\\lib\\net461\\System.Configuration.ConfigurationManager.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files (x86)\\Reference Assemblies\\Microsoft\\Framework\\.NETFramework\\v4.6.1\\System.Configuration.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files\\Microsoft Visual Studio\\2022\\Community\\MSBuild\\Microsoft\\Microsoft.NET.Build.Extensions\\net461\\lib\\System.Console.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files (x86)\\Reference Assemblies\\Microsoft\\Framework\\.NETFramework\\v4.6.1\\System.Core.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files\\Microsoft Visual Studio\\2022\\Community\\MSBuild\\Microsoft\\Microsoft.NET.Build.Extensions\\net461\\lib\\System.Data.Common.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files (x86)\\Reference Assemblies\\Microsoft\\Framework\\.NETFramework\\v4.6.1\\System.Data.DataSetExtensions.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files (x86)\\Reference Assemblies\\Microsoft\\Framework\\.NETFramework\\v4.6.1\\System.Data.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files (x86)\\Reference Assemblies\\Microsoft\\Framework\\.NETFramework\\v4.6.1\\System.Data.OracleClient.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files\\Microsoft Visual Studio\\2022\\Community\\MSBuild\\Microsoft\\Microsoft.NET.Build.Extensions\\net461\\lib\\System.Diagnostics.Contracts.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files\\Microsoft Visual Studio\\2022\\Community\\MSBuild\\Microsoft\\Microsoft.NET.Build.Extensions\\net461\\lib\\System.Diagnostics.Debug.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\repo\\CODE\\009_DI-Elec\\Server\\packages\\System.Diagnostics.DiagnosticSource.4.7.1\\lib\\net46\\System.Diagnostics.DiagnosticSource.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files\\Microsoft Visual Studio\\2022\\Community\\MSBuild\\Microsoft\\Microsoft.NET.Build.Extensions\\net461\\lib\\System.Diagnostics.FileVersionInfo.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files\\Microsoft Visual Studio\\2022\\Community\\MSBuild\\Microsoft\\Microsoft.NET.Build.Extensions\\net461\\lib\\System.Diagnostics.Process.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files\\Microsoft Visual Studio\\2022\\Community\\MSBuild\\Microsoft\\Microsoft.NET.Build.Extensions\\net461\\lib\\System.Diagnostics.StackTrace.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files\\Microsoft Visual Studio\\2022\\Community\\MSBuild\\Microsoft\\Microsoft.NET.Build.Extensions\\net461\\lib\\System.Diagnostics.TextWriterTraceListener.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files\\Microsoft Visual Studio\\2022\\Community\\MSBuild\\Microsoft\\Microsoft.NET.Build.Extensions\\net461\\lib\\System.Diagnostics.Tools.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files\\Microsoft Visual Studio\\2022\\Community\\MSBuild\\Microsoft\\Microsoft.NET.Build.Extensions\\net461\\lib\\System.Diagnostics.TraceSource.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files\\Microsoft Visual Studio\\2022\\Community\\MSBuild\\Microsoft\\Microsoft.NET.Build.Extensions\\net461\\lib\\System.Diagnostics.Tracing.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files (x86)\\Reference Assemblies\\Microsoft\\Framework\\.NETFramework\\v4.6.1\\System.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files (x86)\\Reference Assemblies\\Microsoft\\Framework\\.NETFramework\\v4.6.1\\System.Drawing.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files\\Microsoft Visual Studio\\2022\\Community\\MSBuild\\Microsoft\\Microsoft.NET.Build.Extensions\\net461\\lib\\System.Drawing.Primitives.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files\\Microsoft Visual Studio\\2022\\Community\\MSBuild\\Microsoft\\Microsoft.NET.Build.Extensions\\net461\\lib\\System.Dynamic.Runtime.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files\\Microsoft Visual Studio\\2022\\Community\\MSBuild\\Microsoft\\Microsoft.NET.Build.Extensions\\net461\\lib\\System.Globalization.Calendars.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files\\Microsoft Visual Studio\\2022\\Community\\MSBuild\\Microsoft\\Microsoft.NET.Build.Extensions\\net461\\lib\\System.Globalization.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files\\Microsoft Visual Studio\\2022\\Community\\MSBuild\\Microsoft\\Microsoft.NET.Build.Extensions\\net461\\lib\\System.Globalization.Extensions.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files\\Microsoft Visual Studio\\2022\\Community\\MSBuild\\Microsoft\\Microsoft.NET.Build.Extensions\\net461\\lib\\System.IO.Compression.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files\\Microsoft Visual Studio\\2022\\Community\\MSBuild\\Microsoft\\Microsoft.NET.Build.Extensions\\net461\\lib\\System.IO.Compression.ZipFile.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files\\Microsoft Visual Studio\\2022\\Community\\MSBuild\\Microsoft\\Microsoft.NET.Build.Extensions\\net461\\lib\\System.IO.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files\\Microsoft Visual Studio\\2022\\Community\\MSBuild\\Microsoft\\Microsoft.NET.Build.Extensions\\net461\\lib\\System.IO.FileSystem.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files\\Microsoft Visual Studio\\2022\\Community\\MSBuild\\Microsoft\\Microsoft.NET.Build.Extensions\\net461\\lib\\System.IO.FileSystem.DriveInfo.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files\\Microsoft Visual Studio\\2022\\Community\\MSBuild\\Microsoft\\Microsoft.NET.Build.Extensions\\net461\\lib\\System.IO.FileSystem.Primitives.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files\\Microsoft Visual Studio\\2022\\Community\\MSBuild\\Microsoft\\Microsoft.NET.Build.Extensions\\net461\\lib\\System.IO.FileSystem.Watcher.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files\\Microsoft Visual Studio\\2022\\Community\\MSBuild\\Microsoft\\Microsoft.NET.Build.Extensions\\net461\\lib\\System.IO.IsolatedStorage.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files\\Microsoft Visual Studio\\2022\\Community\\MSBuild\\Microsoft\\Microsoft.NET.Build.Extensions\\net461\\lib\\System.IO.MemoryMappedFiles.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\repo\\CODE\\009_DI-Elec\\Server\\packages\\System.IO.Packaging.6.0.0\\lib\\net461\\System.IO.Packaging.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files\\Microsoft Visual Studio\\2022\\Community\\MSBuild\\Microsoft\\Microsoft.NET.Build.Extensions\\net461\\lib\\System.IO.Pipes.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files\\Microsoft Visual Studio\\2022\\Community\\MSBuild\\Microsoft\\Microsoft.NET.Build.Extensions\\net461\\lib\\System.IO.UnmanagedMemoryStream.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files\\Microsoft Visual Studio\\2022\\Community\\MSBuild\\Microsoft\\Microsoft.NET.Build.Extensions\\net461\\lib\\System.Linq.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files\\Microsoft Visual Studio\\2022\\Community\\MSBuild\\Microsoft\\Microsoft.NET.Build.Extensions\\net461\\lib\\System.Linq.Expressions.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files\\Microsoft Visual Studio\\2022\\Community\\MSBuild\\Microsoft\\Microsoft.NET.Build.Extensions\\net461\\lib\\System.Linq.Parallel.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files\\Microsoft Visual Studio\\2022\\Community\\MSBuild\\Microsoft\\Microsoft.NET.Build.Extensions\\net461\\lib\\System.Linq.Queryable.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\repo\\CODE\\009_DI-Elec\\Server\\packages\\System.Memory.4.5.4\\lib\\net461\\System.Memory.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files (x86)\\Reference Assemblies\\Microsoft\\Framework\\.NETFramework\\v4.6.1\\System.Net.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files\\Microsoft Visual Studio\\2022\\Community\\MSBuild\\Microsoft\\Microsoft.NET.Build.Extensions\\net461\\lib\\System.Net.Http.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files\\Microsoft Visual Studio\\2022\\Community\\MSBuild\\Microsoft\\Microsoft.NET.Build.Extensions\\net461\\lib\\System.Net.NameResolution.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files\\Microsoft Visual Studio\\2022\\Community\\MSBuild\\Microsoft\\Microsoft.NET.Build.Extensions\\net461\\lib\\System.Net.NetworkInformation.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files\\Microsoft Visual Studio\\2022\\Community\\MSBuild\\Microsoft\\Microsoft.NET.Build.Extensions\\net461\\lib\\System.Net.Ping.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files\\Microsoft Visual Studio\\2022\\Community\\MSBuild\\Microsoft\\Microsoft.NET.Build.Extensions\\net461\\lib\\System.Net.Primitives.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files\\Microsoft Visual Studio\\2022\\Community\\MSBuild\\Microsoft\\Microsoft.NET.Build.Extensions\\net461\\lib\\System.Net.Requests.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files\\Microsoft Visual Studio\\2022\\Community\\MSBuild\\Microsoft\\Microsoft.NET.Build.Extensions\\net461\\lib\\System.Net.Security.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files\\Microsoft Visual Studio\\2022\\Community\\MSBuild\\Microsoft\\Microsoft.NET.Build.Extensions\\net461\\lib\\System.Net.Sockets.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files\\Microsoft Visual Studio\\2022\\Community\\MSBuild\\Microsoft\\Microsoft.NET.Build.Extensions\\net461\\lib\\System.Net.WebHeaderCollection.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files\\Microsoft Visual Studio\\2022\\Community\\MSBuild\\Microsoft\\Microsoft.NET.Build.Extensions\\net461\\lib\\System.Net.WebSockets.Client.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files\\Microsoft Visual Studio\\2022\\Community\\MSBuild\\Microsoft\\Microsoft.NET.Build.Extensions\\net461\\lib\\System.Net.WebSockets.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files (x86)\\Reference Assemblies\\Microsoft\\Framework\\.NETFramework\\v4.6.1\\System.Numerics.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\repo\\CODE\\009_DI-Elec\\Server\\packages\\System.Numerics.Vectors.4.5.0\\lib\\net46\\System.Numerics.Vectors.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files\\Microsoft Visual Studio\\2022\\Community\\MSBuild\\Microsoft\\Microsoft.NET.Build.Extensions\\net461\\lib\\System.ObjectModel.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files\\Microsoft Visual Studio\\2022\\Community\\MSBuild\\Microsoft\\Microsoft.NET.Build.Extensions\\net461\\lib\\System.Reflection.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files\\Microsoft Visual Studio\\2022\\Community\\MSBuild\\Microsoft\\Microsoft.NET.Build.Extensions\\net461\\lib\\System.Reflection.Extensions.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files\\Microsoft Visual Studio\\2022\\Community\\MSBuild\\Microsoft\\Microsoft.NET.Build.Extensions\\net461\\lib\\System.Reflection.Primitives.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files\\Microsoft Visual Studio\\2022\\Community\\MSBuild\\Microsoft\\Microsoft.NET.Build.Extensions\\net461\\lib\\System.Resources.Reader.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files\\Microsoft Visual Studio\\2022\\Community\\MSBuild\\Microsoft\\Microsoft.NET.Build.Extensions\\net461\\lib\\System.Resources.ResourceManager.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files\\Microsoft Visual Studio\\2022\\Community\\MSBuild\\Microsoft\\Microsoft.NET.Build.Extensions\\net461\\lib\\System.Resources.Writer.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\repo\\CODE\\009_DI-Elec\\Server\\packages\\System.Runtime.CompilerServices.Unsafe.4.7.0\\lib\\netstandard2.0\\System.Runtime.CompilerServices.Unsafe.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files\\Microsoft Visual Studio\\2022\\Community\\MSBuild\\Microsoft\\Microsoft.NET.Build.Extensions\\net461\\lib\\System.Runtime.CompilerServices.VisualC.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files\\Microsoft Visual Studio\\2022\\Community\\MSBuild\\Microsoft\\Microsoft.NET.Build.Extensions\\net461\\lib\\System.Runtime.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files\\Microsoft Visual Studio\\2022\\Community\\MSBuild\\Microsoft\\Microsoft.NET.Build.Extensions\\net461\\lib\\System.Runtime.Extensions.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files\\Microsoft Visual Studio\\2022\\Community\\MSBuild\\Microsoft\\Microsoft.NET.Build.Extensions\\net461\\lib\\System.Runtime.Handles.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files\\Microsoft Visual Studio\\2022\\Community\\MSBuild\\Microsoft\\Microsoft.NET.Build.Extensions\\net461\\lib\\System.Runtime.InteropServices.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files\\Microsoft Visual Studio\\2022\\Community\\MSBuild\\Microsoft\\Microsoft.NET.Build.Extensions\\net461\\lib\\System.Runtime.InteropServices.RuntimeInformation.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files\\Microsoft Visual Studio\\2022\\Community\\MSBuild\\Microsoft\\Microsoft.NET.Build.Extensions\\net461\\lib\\System.Runtime.Numerics.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files\\Microsoft Visual Studio\\2022\\Community\\MSBuild\\Microsoft\\Microsoft.NET.Build.Extensions\\net461\\lib\\System.Runtime.Serialization.Formatters.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files\\Microsoft Visual Studio\\2022\\Community\\MSBuild\\Microsoft\\Microsoft.NET.Build.Extensions\\net461\\lib\\System.Runtime.Serialization.Json.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files\\Microsoft Visual Studio\\2022\\Community\\MSBuild\\Microsoft\\Microsoft.NET.Build.Extensions\\net461\\lib\\System.Runtime.Serialization.Primitives.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files\\Microsoft Visual Studio\\2022\\Community\\MSBuild\\Microsoft\\Microsoft.NET.Build.Extensions\\net461\\lib\\System.Runtime.Serialization.Xml.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\repo\\CODE\\009_DI-Elec\\Server\\packages\\System.Security.AccessControl.6.0.0\\lib\\net461\\System.Security.AccessControl.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files\\Microsoft Visual Studio\\2022\\Community\\MSBuild\\Microsoft\\Microsoft.NET.Build.Extensions\\net461\\lib\\System.Security.Claims.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files\\Microsoft Visual Studio\\2022\\Community\\MSBuild\\Microsoft\\Microsoft.NET.Build.Extensions\\net461\\lib\\System.Security.Cryptography.Algorithms.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files\\Microsoft Visual Studio\\2022\\Community\\MSBuild\\Microsoft\\Microsoft.NET.Build.Extensions\\net461\\lib\\System.Security.Cryptography.Csp.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files\\Microsoft Visual Studio\\2022\\Community\\MSBuild\\Microsoft\\Microsoft.NET.Build.Extensions\\net461\\lib\\System.Security.Cryptography.Encoding.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files\\Microsoft Visual Studio\\2022\\Community\\MSBuild\\Microsoft\\Microsoft.NET.Build.Extensions\\net461\\lib\\System.Security.Cryptography.Primitives.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files\\Microsoft Visual Studio\\2022\\Community\\MSBuild\\Microsoft\\Microsoft.NET.Build.Extensions\\net461\\lib\\System.Security.Cryptography.X509Certificates.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files (x86)\\Reference Assemblies\\Microsoft\\Framework\\.NETFramework\\v4.6.1\\System.Security.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\repo\\CODE\\009_DI-Elec\\Server\\packages\\System.Security.Permissions.6.0.0\\lib\\net461\\System.Security.Permissions.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files\\Microsoft Visual Studio\\2022\\Community\\MSBuild\\Microsoft\\Microsoft.NET.Build.Extensions\\net461\\lib\\System.Security.Principal.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\repo\\CODE\\009_DI-Elec\\Server\\packages\\System.Security.Principal.Windows.5.0.0\\lib\\net461\\System.Security.Principal.Windows.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files\\Microsoft Visual Studio\\2022\\Community\\MSBuild\\Microsoft\\Microsoft.NET.Build.Extensions\\net461\\lib\\System.Security.SecureString.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files (x86)\\Reference Assemblies\\Microsoft\\Framework\\.NETFramework\\v4.6.1\\System.ServiceProcess.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files\\Microsoft Visual Studio\\2022\\Community\\MSBuild\\Microsoft\\Microsoft.NET.Build.Extensions\\net461\\lib\\System.Text.Encoding.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files\\Microsoft Visual Studio\\2022\\Community\\MSBuild\\Microsoft\\Microsoft.NET.Build.Extensions\\net461\\lib\\System.Text.Encoding.Extensions.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files\\Microsoft Visual Studio\\2022\\Community\\MSBuild\\Microsoft\\Microsoft.NET.Build.Extensions\\net461\\lib\\System.Text.RegularExpressions.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files\\Microsoft Visual Studio\\2022\\Community\\MSBuild\\Microsoft\\Microsoft.NET.Build.Extensions\\net461\\lib\\System.Threading.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files\\Microsoft Visual Studio\\2022\\Community\\MSBuild\\Microsoft\\Microsoft.NET.Build.Extensions\\net461\\lib\\System.Threading.Overlapped.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files\\Microsoft Visual Studio\\2022\\Community\\MSBuild\\Microsoft\\Microsoft.NET.Build.Extensions\\net461\\lib\\System.Threading.Tasks.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files\\Microsoft Visual Studio\\2022\\Community\\MSBuild\\Microsoft\\Microsoft.NET.Build.Extensions\\net461\\lib\\System.Threading.Tasks.Parallel.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files\\Microsoft Visual Studio\\2022\\Community\\MSBuild\\Microsoft\\Microsoft.NET.Build.Extensions\\net461\\lib\\System.Threading.Thread.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files\\Microsoft Visual Studio\\2022\\Community\\MSBuild\\Microsoft\\Microsoft.NET.Build.Extensions\\net461\\lib\\System.Threading.ThreadPool.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files\\Microsoft Visual Studio\\2022\\Community\\MSBuild\\Microsoft\\Microsoft.NET.Build.Extensions\\net461\\lib\\System.Threading.Timer.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files (x86)\\Reference Assemblies\\Microsoft\\Framework\\.NETFramework\\v4.6.1\\System.Transactions.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files\\Microsoft Visual Studio\\2022\\Community\\MSBuild\\Microsoft\\Microsoft.NET.Build.Extensions\\net461\\lib\\System.ValueTuple.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files (x86)\\Reference Assemblies\\Microsoft\\Framework\\.NETFramework\\v4.6.1\\System.Web.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files (x86)\\Reference Assemblies\\Microsoft\\Framework\\.NETFramework\\v4.6.1\\System.Xml.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files (x86)\\Reference Assemblies\\Microsoft\\Framework\\.NETFramework\\v4.6.1\\System.Xml.Linq.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files\\Microsoft Visual Studio\\2022\\Community\\MSBuild\\Microsoft\\Microsoft.NET.Build.Extensions\\net461\\lib\\System.Xml.ReaderWriter.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files\\Microsoft Visual Studio\\2022\\Community\\MSBuild\\Microsoft\\Microsoft.NET.Build.Extensions\\net461\\lib\\System.Xml.XDocument.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files\\Microsoft Visual Studio\\2022\\Community\\MSBuild\\Microsoft\\Microsoft.NET.Build.Extensions\\net461\\lib\\System.Xml.XmlDocument.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files\\Microsoft Visual Studio\\2022\\Community\\MSBuild\\Microsoft\\Microsoft.NET.Build.Extensions\\net461\\lib\\System.Xml.XmlSerializer.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files\\Microsoft Visual Studio\\2022\\Community\\MSBuild\\Microsoft\\Microsoft.NET.Build.Extensions\\net461\\lib\\System.Xml.XPath.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files\\Microsoft Visual Studio\\2022\\Community\\MSBuild\\Microsoft\\Microsoft.NET.Build.Extensions\\net461\\lib\\System.Xml.XPath.XDocument.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files (x86)\\Reference Assemblies\\Microsoft\\Framework\\.NETFramework\\v4.6.1\\WindowsBase.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\repo\\CODE\\009_DI-Elec\\Server\\packages\\XLParser.1.5.2\\lib\\net461\\XLParser.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""}],"Analyzers":[],"Outputs":[{"OutputItemFullPath":"C:\\repo\\CODE\\009_DI-Elec\\Server\\Learun.Framework.Module\\Learun.Application.Module\\Learun.Application.TwoDevelopment\\bin\\Debug\\Learun.Application.TwoDevelopment.dll","OutputItemRelativePath":"Learun.Application.TwoDevelopment.dll"},{"OutputItemFullPath":"","OutputItemRelativePath":""}],"CopyToOutputEntries":[]}
\ No newline at end of file
+{"RootPath":"C:\\repo\\CODE\\009_DI-Elec\\Learun.Framework.Module\\Learun.Application.Module\\Learun.Application.TwoDevelopment","ProjectFileName":"Learun.Application.TwoDevelopment.csproj","Configuration":"Debug|AnyCPU","FrameworkPath":"","Sources":[{"SourceFile":"Plugin\\IEnginedataPlugin.cs"},{"SourceFile":"Plugin\\PluginHelper.cs"},{"SourceFile":"Properties\\AssemblyInfo.cs"},{"SourceFile":"ZZDT_EC\\Archive\\ec_Archive_enginedata.cs"},{"SourceFile":"ZZDT_EC\\Archive\\ec_Archive_Pixel.cs"},{"SourceFile":"ZZDT_EC\\Archive\\ec_Archive_Property.cs"},{"SourceFile":"ZZDT_EC\\Archive\\ec_Archive_Rel.cs"},{"SourceFile":"ZZDT_EC\\ec_access\\ec_accessBLL.cs"},{"SourceFile":"ZZDT_EC\\ec_access\\ec_accessEntity.cs"},{"SourceFile":"ZZDT_EC\\ec_access\\ec_accessService.cs"},{"SourceFile":"ZZDT_EC\\ec_Action\\ec_actionEntity.cs"},{"SourceFile":"ZZDT_EC\\ec_cable\\ec_CableSetEntityBrief.cs"},{"SourceFile":"ZZDT_EC\\ec_cable\\ec_parallel_CableEntity.cs"},{"SourceFile":"ZZDT_EC\\ec_cable\\ec_CableSetWireService.cs"},{"SourceFile":"ZZDT_EC\\ec_cable\\ec_CableSetService.cs"},{"SourceFile":"ZZDT_EC\\ec_cable\\ec_CableSetWireEntity.cs"},{"SourceFile":"ZZDT_EC\\ec_cable\\ec_CableSetEntity.cs"},{"SourceFile":"ZZDT_EC\\ec_cable\\ec_CableEntity.cs"},{"SourceFile":"ZZDT_EC\\ec_cable\\ec_CableBLL.cs"},{"SourceFile":"ZZDT_EC\\ec_cable\\ec_CableService.cs"},{"SourceFile":"ZZDT_EC\\ec_Case\\ec_CaseEntity.cs"},{"SourceFile":"ZZDT_EC\\ec_Case\\ec_CaseBLL.cs"},{"SourceFile":"ZZDT_EC\\ec_Case\\ec_CaseIBLL.cs"},{"SourceFile":"ZZDT_EC\\ec_Case\\ec_CaseService.cs"},{"SourceFile":"ZZDT_EC\\ec_CircuitBreaker\\ec_RefCBService.cs"},{"SourceFile":"ZZDT_EC\\ec_CircuitBreaker\\ec_RefCircuitBreakerEntity.cs"},{"SourceFile":"ZZDT_EC\\ec_CircuitBreaker\\ec_CircuitBreakerService.cs"},{"SourceFile":"ZZDT_EC\\ec_CircuitBreaker\\ec_CircuitBreakerBLL.cs"},{"SourceFile":"ZZDT_EC\\ec_CircuitBreaker\\ec_CircuitBreakerEntity.cs"},{"SourceFile":"ZZDT_EC\\ec_dataitem\\ec_dataitemdetailEntity.cs"},{"SourceFile":"ZZDT_EC\\ec_enginedata\\ec_enginedataCableBrief.cs"},{"SourceFile":"ZZDT_EC\\ec_enginedata\\layoutTagInfoBrief.cs"},{"SourceFile":"ZZDT_EC\\ec_enginedata\\ec_enginedataEquipBrief.cs"},{"SourceFile":"ZZDT_EC\\ec_enginedata_property\\ec_enginedata_propertyEntityBrief.cs"},{"SourceFile":"ZZDT_EC\\ec_lookup\\ec_REFLOOKUPTABLEBLL.cs"},{"SourceFile":"ZZDT_EC\\ec_lookup\\ec_REFLOOKUPTABLEData.cs"},{"SourceFile":"ZZDT_EC\\ec_lookup\\ec_REFLOOKUPTABLEAttr.cs"},{"SourceFile":"ZZDT_EC\\ec_lookup\\ec_REFLOOKUPTABLE.cs"},{"SourceFile":"ZZDT_EC\\ec_notification\\ec_notificationBLL.cs"},{"SourceFile":"ZZDT_EC\\ec_notification\\ec_notificationEntity.cs"},{"SourceFile":"ZZDT_EC\\ec_notification\\ec_notificationService.cs"},{"SourceFile":"ZZDT_EC\\ec_objecttypenamingconv\\ec_objectNVBLL.cs"},{"SourceFile":"ZZDT_EC\\ec_objecttypenamingconv\\ec_objectNVEntity.cs"},{"SourceFile":"ZZDT_EC\\ec_objecttypenamingconv\\ec_objectNVService.cs"},{"SourceFile":"ZZDT_EC\\ec_objecttype\\ec_objTypeLayoutFilterP.cs"},{"SourceFile":"ZZDT_EC\\ec_objecttype\\ec_objTypeLayoutFilter.cs"},{"SourceFile":"ZZDT_EC\\ec_panel_channel\\ec_PanelChannelEntity_Brief.cs"},{"SourceFile":"ZZDT_EC\\ec_panel_strip\\ec_PanelStripEntity_Brief.cs"},{"SourceFile":"ZZDT_EC\\ec_panel_strip_term\\ec_PanelStripTermBLL.cs"},{"SourceFile":"ZZDT_EC\\ec_panel_strip_term\\ec_PanelStripTermEntity_Brief.cs"},{"SourceFile":"ZZDT_EC\\ec_panel_strip_term\\ec_PanelStripTermEntity.cs"},{"SourceFile":"ZZDT_EC\\ec_panel_strip_term\\ec_PanelStripTermIBLL.cs"},{"SourceFile":"ZZDT_EC\\ec_panel_strip_term\\ec_PanelStripTermService.cs"},{"SourceFile":"ZZDT_EC\\ec_panel_strip\\ec_PanelStripBLL.cs"},{"SourceFile":"ZZDT_EC\\ec_panel_strip\\ec_PanelStripEntity.cs"},{"SourceFile":"ZZDT_EC\\ec_panel_strip\\ec_PanelStripIBLL.cs"},{"SourceFile":"ZZDT_EC\\ec_panel_strip\\ec_PanelStripService.cs"},{"SourceFile":"ZZDT_EC\\ec_panel_channel\\ec_PanelChannelBLL.cs"},{"SourceFile":"ZZDT_EC\\ec_panel_channel\\ec_PanelChannelEntity.cs"},{"SourceFile":"ZZDT_EC\\ec_panel_channel\\ec_PanelChannelIBLL.cs"},{"SourceFile":"ZZDT_EC\\ec_panel_channel\\ec_PanelChannelService.cs"},{"SourceFile":"ZZDT_EC\\ec_panel\\ec_PanelIBLL.cs"},{"SourceFile":"ZZDT_EC\\ec_projectSettings\\ec_projectSettingsBLL.cs"},{"SourceFile":"ZZDT_EC\\ec_projectSettings\\ec_projectSettingsEntity.cs"},{"SourceFile":"ZZDT_EC\\ec_projectSettings\\ec_projectSettingsService.cs"},{"SourceFile":"ZZDT_EC\\ec_project\\ec_projectEntity.cs"},{"SourceFile":"ZZDT_EC\\ec_project\\ec_projectService.cs"},{"SourceFile":"ZZDT_EC\\ec_project\\ec_projectBLL.cs"},{"SourceFile":"ZZDT_EC\\ec_project\\ec_projectIBLL.cs"},{"SourceFile":"ZZDT_EC\\ec_drawing_catalogue\\ec_drawing_catalogueEntity.cs"},{"SourceFile":"ZZDT_EC\\ec_drawing_catalogue\\ec_drawing_catalogueService.cs"},{"SourceFile":"ZZDT_EC\\ec_drawing_catalogue\\ec_drawing_catalogueIBLL.cs"},{"SourceFile":"ZZDT_EC\\ec_drawing_catalogue\\ec_drawing_catalogueBLL.cs"},{"SourceFile":"ZZDT_EC\\ec_drawing_file\\ec_drawing_fileEntity.cs"},{"SourceFile":"ZZDT_EC\\ec_drawing_file\\ec_drawing_fileService.cs"},{"SourceFile":"ZZDT_EC\\ec_drawing_file\\ec_drawing_fileBLL.cs"},{"SourceFile":"ZZDT_EC\\ec_drawing_publish\\ec_drawing_publishEntity.cs"},{"SourceFile":"ZZDT_EC\\ec_drawing_publish\\ec_drawing_publishService.cs"},{"SourceFile":"ZZDT_EC\\ec_drawing_publish\\ec_drawing_publishIBLL.cs"},{"SourceFile":"ZZDT_EC\\ec_drawing_publish\\ec_drawing_publishBLL.cs"},{"SourceFile":"ZZDT_EC\\ec_drawing_syn\\ec_drawing_synEntity.cs"},{"SourceFile":"ZZDT_EC\\ec_drawing_syn\\ec_drawing_synService.cs"},{"SourceFile":"ZZDT_EC\\ec_drawing_syn\\ec_drawing_synIBLL.cs"},{"SourceFile":"ZZDT_EC\\ec_drawing_syn\\ec_drawing_synBLL.cs"},{"SourceFile":"ZZDT_EC\\ec_operate_log\\ec_operate_logEntity.cs"},{"SourceFile":"ZZDT_EC\\ec_operate_log\\ec_operate_logService.cs"},{"SourceFile":"ZZDT_EC\\ec_operate_log\\ec_operate_logIBLL.cs"},{"SourceFile":"ZZDT_EC\\ec_operate_log\\ec_operate_logBLL.cs"},{"SourceFile":"ZZDT_EC\\ec_Wire_Group\\signalGroup.cs"},{"SourceFile":"ZZDT_EC\\Frame\\FrameBll.cs"},{"SourceFile":"ZZDT_EC\\GlobalEnum.cs"},{"SourceFile":"ZZDT_EC\\GlobalObject.cs"},{"SourceFile":"ZZDT_EC\\ec_template_catalogue\\ec_template_catalogueEntity.cs"},{"SourceFile":"ZZDT_EC\\ec_template_catalogue\\ec_template_catalogueService.cs"},{"SourceFile":"ZZDT_EC\\ec_template_catalogue\\ec_template_catalogueIBLL.cs"},{"SourceFile":"ZZDT_EC\\ec_template_catalogue\\ec_template_catalogueBLL.cs"},{"SourceFile":"ZZDT_EC\\ec_template_file\\ec_template_fileEntity.cs"},{"SourceFile":"ZZDT_EC\\ec_template_file\\ec_template_fileService.cs"},{"SourceFile":"ZZDT_EC\\ec_template_file\\ec_template_fileIBLL.cs"},{"SourceFile":"ZZDT_EC\\ec_template_file\\ec_template_fileBLL.cs"},{"SourceFile":"ZZDT_EC\\ec_property\\ec_propertyEntity.cs"},{"SourceFile":"ZZDT_EC\\ec_property\\ec_propertyService.cs"},{"SourceFile":"ZZDT_EC\\ec_property\\ec_propertyBLL.cs"},{"SourceFile":"ZZDT_EC\\ec_property\\ec_propertyIBLL.cs"},{"SourceFile":"ZZDT_EC\\ec_objecttype\\ec_objecttypeEntity.cs"},{"SourceFile":"ZZDT_EC\\ec_objecttype\\ec_objecttypeService.cs"},{"SourceFile":"ZZDT_EC\\ec_objecttype\\ec_objecttypeIBLL.cs"},{"SourceFile":"ZZDT_EC\\ec_objecttype\\ec_objecttypeBLL.cs"},{"SourceFile":"ZZDT_EC\\ec_objecttypep\\ec_objecttypepEntity.cs"},{"SourceFile":"ZZDT_EC\\ec_objecttypep\\ec_objecttypepService.cs"},{"SourceFile":"ZZDT_EC\\ec_objecttypep\\ec_objecttypepIBLL.cs"},{"SourceFile":"ZZDT_EC\\ec_objecttypep\\ec_objecttypepBLL.cs"},{"SourceFile":"ZZDT_EC\\ec_propertyg\\ec_propertygEntity.cs"},{"SourceFile":"ZZDT_EC\\ec_propertyg\\ec_propertygService.cs"},{"SourceFile":"ZZDT_EC\\ec_propertyg\\ec_propertygIBLL.cs"},{"SourceFile":"ZZDT_EC\\ec_propertyg\\ec_propertygBLL.cs"},{"SourceFile":"ZZDT_EC\\ec_library_catalogue\\ec_library_catalogueEntity.cs"},{"SourceFile":"ZZDT_EC\\ec_library_catalogue\\ec_library_catalogueService.cs"},{"SourceFile":"ZZDT_EC\\ec_library_catalogue\\ec_library_catalogueBLL.cs"},{"SourceFile":"ZZDT_EC\\ec_library_catalogue\\ec_library_catalogueIBLL.cs"},{"SourceFile":"ZZDT_EC\\ec_library_file\\ec_library_fileEntity.cs"},{"SourceFile":"ZZDT_EC\\ec_library_file\\ec_library_fileService.cs"},{"SourceFile":"ZZDT_EC\\ec_library_file\\ec_library_fileBLL.cs"},{"SourceFile":"ZZDT_EC\\ec_library_file\\ec_library_fileIBLL.cs"},{"SourceFile":"ZZDT_EC\\ec_enginedata\\ec_enginedataEntity.cs"},{"SourceFile":"ZZDT_EC\\ec_enginedata\\ec_enginedataService.cs"},{"SourceFile":"ZZDT_EC\\ec_enginedata\\ec_enginedataBLL.cs"},{"SourceFile":"ZZDT_EC\\ec_enginedata\\ec_enginedataIBLL.cs"},{"SourceFile":"ZZDT_EC\\ec_enginedata_pixel\\ec_enginedata_pixelEntity.cs"},{"SourceFile":"ZZDT_EC\\ec_enginedata_pixel\\ec_enginedata_pixelService.cs"},{"SourceFile":"ZZDT_EC\\ec_enginedata_pixel\\ec_enginedata_pixelIBLL.cs"},{"SourceFile":"ZZDT_EC\\ec_enginedata_pixel\\ec_enginedata_pixelBLL.cs"},{"SourceFile":"ZZDT_EC\\ec_enginedata_property\\ec_enginedata_propertyEntity.cs"},{"SourceFile":"ZZDT_EC\\ec_enginedata_property\\ec_enginedata_propertyService.cs"},{"SourceFile":"ZZDT_EC\\ec_enginedata_property\\ec_enginedata_propertyIBLL.cs"},{"SourceFile":"ZZDT_EC\\ec_enginedata_property\\ec_enginedata_propertyBLL.cs"},{"SourceFile":"ZZDT_EC\\ec_objecttypelib\\ec_objecttypelibEntity.cs"},{"SourceFile":"ZZDT_EC\\ec_objecttypelib\\ec_objecttypelibService.cs"},{"SourceFile":"ZZDT_EC\\ec_objecttypelib\\ec_objecttypelibIBLL.cs"},{"SourceFile":"ZZDT_EC\\ec_objecttypelib\\ec_objecttypelibBLL.cs"},{"SourceFile":"ZZDT_EC\\ec_business_table\\ec_business_tableEntity.cs"},{"SourceFile":"ZZDT_EC\\ec_business_table\\ec_business_tableService.cs"},{"SourceFile":"ZZDT_EC\\ec_business_table\\ec_business_tableIBLL.cs"},{"SourceFile":"ZZDT_EC\\ec_business_table\\ec_business_tableBLL.cs"},{"SourceFile":"ZZDT_EC\\ec_project_bakup\\ec_project_bakupEntity.cs"},{"SourceFile":"ZZDT_EC\\ec_project_bakup\\ec_project_bakupService.cs"},{"SourceFile":"ZZDT_EC\\ec_project_bakup\\ec_project_bakupBLL.cs"},{"SourceFile":"ZZDT_EC\\ec_project_bakup\\ec_project_bakupIBLL.cs"},{"SourceFile":"ZZDT_EC\\ec_dataitem\\ec_dataitemEntity.cs"},{"SourceFile":"ZZDT_EC\\ec_dataitem\\ec_dataitemService.cs"},{"SourceFile":"ZZDT_EC\\ec_dataitem\\ec_dataitemBLL.cs"},{"SourceFile":"ZZDT_EC\\ec_dataitem\\ec_dataitemIBLL.cs"},{"SourceFile":"ZZDT_EC\\ec_report_catalogue\\ec_report_catalogueEntity.cs"},{"SourceFile":"ZZDT_EC\\ec_report_catalogue\\ec_report_catalogueService.cs"},{"SourceFile":"ZZDT_EC\\ec_report_catalogue\\ec_report_catalogueIBLL.cs"},{"SourceFile":"ZZDT_EC\\ec_report_catalogue\\ec_report_catalogueBLL.cs"},{"SourceFile":"ZZDT_EC\\ec_report_file\\ec_report_fileEntity.cs"},{"SourceFile":"ZZDT_EC\\ec_report_file\\ec_report_fileService.cs"},{"SourceFile":"ZZDT_EC\\ec_report_file\\ec_report_fileBLL.cs"},{"SourceFile":"ZZDT_EC\\ec_report_file\\ec_report_fileIBLL.cs"},{"SourceFile":"ZZDT_EC\\ec_enginedata_propertyhis\\ec_enginedata_propertyhisEntity.cs"},{"SourceFile":"ZZDT_EC\\ec_enginedata_propertyhis\\ec_enginedata_propertyhisService.cs"},{"SourceFile":"ZZDT_EC\\ec_enginedata_propertyhis\\ec_enginedata_propertyhisIBLL.cs"},{"SourceFile":"ZZDT_EC\\ec_enginedata_propertyhis\\ec_enginedata_propertyhisBLL.cs"},{"SourceFile":"ZZDT_EC\\ec_reltype\\ec_reltypeEntity.cs"},{"SourceFile":"ZZDT_EC\\ec_reltype\\ec_reltypeService.cs"},{"SourceFile":"ZZDT_EC\\ec_reltype\\ec_reltypeIBLL.cs"},{"SourceFile":"ZZDT_EC\\ec_reltype\\ec_reltypeBLL.cs"},{"SourceFile":"ZZDT_EC\\ec_enginedata_rel\\ec_enginedata_relEntity.cs"},{"SourceFile":"ZZDT_EC\\ec_enginedata_rel\\ec_enginedata_relService.cs"},{"SourceFile":"ZZDT_EC\\ec_enginedata_rel\\ec_enginedata_relIBLL.cs"},{"SourceFile":"ZZDT_EC\\ec_enginedata_rel\\ec_enginedata_relBLL.cs"},{"SourceFile":"ZZDT_EC\\ec_synrel_table\\ec_synrel_tableEntity.cs"},{"SourceFile":"ZZDT_EC\\ec_synrel_table\\ec_synrel_tableService.cs"},{"SourceFile":"ZZDT_EC\\ec_synrel_table\\ec_synrel_tableIBLL.cs"},{"SourceFile":"ZZDT_EC\\ec_synrel_table\\ec_synrel_tableBLL.cs"},{"SourceFile":"ZZDT_EC\\ec_measuring_unittype\\ec_measuring_unittypeEntity.cs"},{"SourceFile":"ZZDT_EC\\ec_measuring_unittype\\ec_measuring_unittypeService.cs"},{"SourceFile":"ZZDT_EC\\ec_measuring_unittype\\ec_measuring_unittypeIBLL.cs"},{"SourceFile":"ZZDT_EC\\ec_measuring_unittype\\ec_measuring_unittypeBLL.cs"},{"SourceFile":"ZZDT_EC\\ec_measuring_unit\\ec_measuring_unitEntity.cs"},{"SourceFile":"ZZDT_EC\\ec_measuring_unit\\ec_measuring_unitService.cs"},{"SourceFile":"ZZDT_EC\\ec_measuring_unit\\ec_measuring_unitIBLL.cs"},{"SourceFile":"ZZDT_EC\\ec_measuring_unit\\ec_measuring_unitBLL.cs"},{"SourceFile":"ZZDT_EC\\ec_panel\\ec_PanelEntity.cs"},{"SourceFile":"ZZDT_EC\\ec_panel\\ec_PanelBLL.cs"},{"SourceFile":"ZZDT_EC\\ec_panel\\ec_PanelService.cs"},{"SourceFile":"ZZDT_EC\\ec_Wire_Group\\ec_Wire_GroupBLL.cs"},{"SourceFile":"ZZDT_EC\\ec_Wire_Group\\ec_Wire_GroupEntity.cs"},{"SourceFile":"ZZDT_EC\\ec_Wire_Group\\ec_Wire_GroupIBLL.cs"},{"SourceFile":"ZZDT_EC\\ec_Wire_Group\\IO_WorkFlowService.cs"},{"SourceFile":"ZZDT_EC\\ec_Wire_Group\\ec_Wire_GroupService.cs"},{"SourceFile":"ZZDT_EC\\ec_Wire_Group\\SignalStatusConverter.cs"},{"SourceFile":"ZZDT_EC\\ec_wire_group_notice\\ec_wire_group_noticeEntity.cs"},{"SourceFile":"ZZDT_EC\\ec_wire_group_log\\ec_wire_group_logEntity.cs"},{"SourceFile":"ZZDT_EC\\ec_wire_group_propertyhis\\ec_wire_group_propertyhisEntity.cs"},{"SourceFile":"ZZDT_EC\\ec_Wire_Group_Template\\ec_Wire_Group_TemplateBLL.cs"},{"SourceFile":"ZZDT_EC\\ec_Wire_Group_Template\\ec_Wire_Group_TemplateEntity.cs"},{"SourceFile":"ZZDT_EC\\ec_Wire_Group_Template\\ec_Wire_Group_TemplateIBLL.cs"},{"SourceFile":"ZZDT_EC\\ec_Wire_Group_Template\\ec_Wire_Group_TemplateService.cs"},{"SourceFile":"ZZDT_EC\\ec_Wire_Terminal\\ec_WireTerminalBLL.cs"},{"SourceFile":"ZZDT_EC\\ec_Wire_Terminal\\ec_WireTerminalService.cs"},{"SourceFile":"ZZDT_EC\\ec_Wire_Terminal\\ec_WireTerminalEntity.cs"},{"SourceFile":"ZZDT_EC\\ProjectSugar.cs"},{"SourceFile":"obj\\Debug\\.NETFramework,Version=v4.6.1.AssemblyAttributes.cs"}],"References":[{"Reference":"C:\\repo\\CODE\\009_DI-Elec\\packages\\ClosedXML.0.102.1\\lib\\netstandard2.0\\ClosedXML.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\repo\\CODE\\009_DI-Elec\\packages\\Dapper.1.50.2\\lib\\net45\\Dapper.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\repo\\CODE\\009_DI-Elec\\packages\\DnsClient.1.3.1\\lib\\net45\\DnsClient.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\repo\\CODE\\009_DI-Elec\\packages\\DocumentFormat.OpenXml.2.16.0\\lib\\net46\\DocumentFormat.OpenXml.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\repo\\CODE\\009_DI-Elec\\packages\\EPPlus.7.0.1\\lib\\net35\\EPPlus.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\repo\\CODE\\009_DI-Elec\\packages\\EPPlus.Interfaces.6.1.1\\lib\\net35\\EPPlus.Interfaces.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\repo\\CODE\\009_DI-Elec\\packages\\EPPlus.System.Drawing.6.1.1\\lib\\net35\\EPPlus.System.Drawing.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\repo\\CODE\\009_DI-Elec\\packages\\ExcelNumberFormat.1.1.0\\lib\\net20\\ExcelNumberFormat.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\repo\\CODE\\009_DI-Elec\\packages\\SharpZipLib.0.86.0\\lib\\20\\ICSharpCode.SharpZipLib.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\repo\\CODE\\009_DI-Elec\\packages\\Irony.NetCore.1.0.11\\lib\\net461\\Irony.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\repo\\CODE\\009_DI-Elec\\Learun.Framework.Module\\Learun.Application.Module\\Learun.Application.Base\\bin\\Debug\\Learun.Application.Base.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":true,"ProjectPath":"C:\\repo\\CODE\\009_DI-Elec\\Learun.Framework.Module\\Learun.Application.Module\\Learun.Application.Base\\bin\\Debug\\Learun.Application.Base.dll"},{"Reference":"C:\\repo\\CODE\\009_DI-Elec\\Learun.Framework.Module\\Learun.Application.Module\\Learun.Application.IM\\bin\\Debug\\Learun.Application.IM.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":true,"ProjectPath":"C:\\repo\\CODE\\009_DI-Elec\\Learun.Framework.Module\\Learun.Application.Module\\Learun.Application.IM\\bin\\Debug\\Learun.Application.IM.dll"},{"Reference":"C:\\repo\\CODE\\009_DI-Elec\\Learun.Application.Organization\\bin\\Debug\\Learun.Application.Organization.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":true,"ProjectPath":"C:\\repo\\CODE\\009_DI-Elec\\Learun.Application.Organization\\bin\\Debug\\Learun.Application.Organization.dll"},{"Reference":"C:\\repo\\CODE\\009_DI-Elec\\Learun.Framework.Module\\Learun.Application.Module\\Learun.Application.WorkFlow\\bin\\Debug\\Learun.Application.WorkFlow.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":true,"ProjectPath":"C:\\repo\\CODE\\009_DI-Elec\\Learun.Framework.Module\\Learun.Application.Module\\Learun.Application.WorkFlow\\bin\\Debug\\Learun.Application.WorkFlow.dll"},{"Reference":"C:\\repo\\CODE\\009_DI-Elec\\Learun.Framework.Module\\Learun.Cache\\Learun.Cache.Base\\bin\\Debug\\Learun.Cache.Base.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":true,"ProjectPath":"C:\\repo\\CODE\\009_DI-Elec\\Learun.Framework.Module\\Learun.Cache\\Learun.Cache.Base\\bin\\Debug\\Learun.Cache.Base.dll"},{"Reference":"C:\\repo\\CODE\\009_DI-Elec\\Learun.Framework.Module\\Learun.Cache\\LeaRun.Cache.Factory\\bin\\Debug\\Learun.Cache.Factory.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":true,"ProjectPath":"C:\\repo\\CODE\\009_DI-Elec\\Learun.Framework.Module\\Learun.Cache\\LeaRun.Cache.Factory\\bin\\Debug\\Learun.Cache.Factory.dll"},{"Reference":"C:\\repo\\CODE\\009_DI-Elec\\Learun.Framework.Module\\Learun.Cache\\Learun.Cache.Redis\\bin\\Debug\\Learun.Cache.Redis.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":true,"ProjectPath":"C:\\repo\\CODE\\009_DI-Elec\\Learun.Framework.Module\\Learun.Cache\\Learun.Cache.Redis\\bin\\Debug\\Learun.Cache.Redis.dll"},{"Reference":"C:\\repo\\CODE\\009_DI-Elec\\Learun.Framework.Module\\Learun.Log\\bin\\Debug\\Learun.Loger.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":true,"ProjectPath":"C:\\repo\\CODE\\009_DI-Elec\\Learun.Framework.Module\\Learun.Log\\bin\\Debug\\Learun.Loger.dll"},{"Reference":"C:\\repo\\CODE\\009_DI-Elec\\Learun.Framework.Module\\Learun.Util\\Learun.Util\\bin\\Debug\\Learun.Util.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":true,"ProjectPath":"C:\\repo\\CODE\\009_DI-Elec\\Learun.Framework.Module\\Learun.Util\\Learun.Util\\bin\\Debug\\Learun.Util.dll"},{"Reference":"C:\\repo\\CODE\\009_DI-Elec\\Learun.Framework.Module\\Learun.Util\\Learun.Util.Operat\\bin\\Debug\\Learun.Util.Operat.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":true,"ProjectPath":"C:\\repo\\CODE\\009_DI-Elec\\Learun.Framework.Module\\Learun.Util\\Learun.Util.Operat\\bin\\Debug\\Learun.Util.Operat.dll"},{"Reference":"C:\\repo\\CODE\\009_DI-Elec\\packages\\log4net.2.0.7\\lib\\net45-full\\log4net.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files (x86)\\Reference Assemblies\\Microsoft\\Framework\\.NETFramework\\v4.6.1\\Microsoft.CSharp.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\repo\\CODE\\009_DI-Elec\\packages\\Microsoft.Extensions.Logging.Abstractions.2.1.1\\lib\\netstandard2.0\\Microsoft.Extensions.Logging.Abstractions.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\repo\\CODE\\009_DI-Elec\\packages\\Microsoft.Office.Interop.Excel.15.0.4795.1000\\lib\\net20\\Microsoft.Office.Interop.Excel.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files\\Microsoft Visual Studio\\2022\\Community\\MSBuild\\Microsoft\\Microsoft.NET.Build.Extensions\\net461\\lib\\Microsoft.Win32.Primitives.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files (x86)\\Reference Assemblies\\Microsoft\\Framework\\.NETFramework\\v4.6.1\\mscorlib.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files\\Microsoft Visual Studio\\2022\\Community\\MSBuild\\Microsoft\\Microsoft.NET.Build.Extensions\\net461\\lib\\netfx.force.conflicts.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files\\Microsoft Visual Studio\\2022\\Community\\MSBuild\\Microsoft\\Microsoft.NET.Build.Extensions\\net461\\lib\\netstandard.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\repo\\CODE\\009_DI-Elec\\packages\\Newtonsoft.Json.12.0.1\\lib\\net45\\Newtonsoft.Json.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\repo\\CODE\\009_DI-Elec\\packages\\O2S.Components.PDFRender4NET.Win.6.0.2.0\\lib\\net40\\O2S.Components.PDFRender4NET.Win.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files (x86)\\Reference Assemblies\\Microsoft\\Framework\\.NETFramework\\v4.6.1\\PresentationCore.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files (x86)\\Reference Assemblies\\Microsoft\\Framework\\.NETFramework\\v4.6.1\\PresentationFramework.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\repo\\CODE\\009_DI-Elec\\packages\\Quartz.3.7.0\\lib\\netstandard2.0\\Quartz.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\repo\\CODE\\009_DI-Elec\\packages\\SixLabors.Fonts.1.0.0\\lib\\netstandard2.0\\SixLabors.Fonts.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\repo\\CODE\\009_DI-Elec\\packages\\SqlSugar.5.1.4.114\\lib\\SqlSugar.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files\\Microsoft Visual Studio\\2022\\Community\\MSBuild\\Microsoft\\Microsoft.NET.Build.Extensions\\net461\\lib\\System.AppContext.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\repo\\CODE\\009_DI-Elec\\packages\\System.Buffers.4.5.1\\lib\\net461\\System.Buffers.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files\\Microsoft Visual Studio\\2022\\Community\\MSBuild\\Microsoft\\Microsoft.NET.Build.Extensions\\net461\\lib\\System.Collections.Concurrent.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files\\Microsoft Visual Studio\\2022\\Community\\MSBuild\\Microsoft\\Microsoft.NET.Build.Extensions\\net461\\lib\\System.Collections.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files\\Microsoft Visual Studio\\2022\\Community\\MSBuild\\Microsoft\\Microsoft.NET.Build.Extensions\\net461\\lib\\System.Collections.NonGeneric.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files\\Microsoft Visual Studio\\2022\\Community\\MSBuild\\Microsoft\\Microsoft.NET.Build.Extensions\\net461\\lib\\System.Collections.Specialized.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files (x86)\\Reference Assemblies\\Microsoft\\Framework\\.NETFramework\\v4.6.1\\System.ComponentModel.DataAnnotations.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files\\Microsoft Visual Studio\\2022\\Community\\MSBuild\\Microsoft\\Microsoft.NET.Build.Extensions\\net461\\lib\\System.ComponentModel.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files\\Microsoft Visual Studio\\2022\\Community\\MSBuild\\Microsoft\\Microsoft.NET.Build.Extensions\\net461\\lib\\System.ComponentModel.EventBasedAsync.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files\\Microsoft Visual Studio\\2022\\Community\\MSBuild\\Microsoft\\Microsoft.NET.Build.Extensions\\net461\\lib\\System.ComponentModel.Primitives.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files\\Microsoft Visual Studio\\2022\\Community\\MSBuild\\Microsoft\\Microsoft.NET.Build.Extensions\\net461\\lib\\System.ComponentModel.TypeConverter.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\repo\\CODE\\009_DI-Elec\\packages\\System.Configuration.ConfigurationManager.6.0.1\\lib\\net461\\System.Configuration.ConfigurationManager.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files (x86)\\Reference Assemblies\\Microsoft\\Framework\\.NETFramework\\v4.6.1\\System.Configuration.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files\\Microsoft Visual Studio\\2022\\Community\\MSBuild\\Microsoft\\Microsoft.NET.Build.Extensions\\net461\\lib\\System.Console.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files (x86)\\Reference Assemblies\\Microsoft\\Framework\\.NETFramework\\v4.6.1\\System.Core.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files\\Microsoft Visual Studio\\2022\\Community\\MSBuild\\Microsoft\\Microsoft.NET.Build.Extensions\\net461\\lib\\System.Data.Common.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files (x86)\\Reference Assemblies\\Microsoft\\Framework\\.NETFramework\\v4.6.1\\System.Data.DataSetExtensions.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files (x86)\\Reference Assemblies\\Microsoft\\Framework\\.NETFramework\\v4.6.1\\System.Data.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files (x86)\\Reference Assemblies\\Microsoft\\Framework\\.NETFramework\\v4.6.1\\System.Data.OracleClient.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files\\Microsoft Visual Studio\\2022\\Community\\MSBuild\\Microsoft\\Microsoft.NET.Build.Extensions\\net461\\lib\\System.Diagnostics.Contracts.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files\\Microsoft Visual Studio\\2022\\Community\\MSBuild\\Microsoft\\Microsoft.NET.Build.Extensions\\net461\\lib\\System.Diagnostics.Debug.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\repo\\CODE\\009_DI-Elec\\packages\\System.Diagnostics.DiagnosticSource.4.7.1\\lib\\net46\\System.Diagnostics.DiagnosticSource.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files\\Microsoft Visual Studio\\2022\\Community\\MSBuild\\Microsoft\\Microsoft.NET.Build.Extensions\\net461\\lib\\System.Diagnostics.FileVersionInfo.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files\\Microsoft Visual Studio\\2022\\Community\\MSBuild\\Microsoft\\Microsoft.NET.Build.Extensions\\net461\\lib\\System.Diagnostics.Process.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files\\Microsoft Visual Studio\\2022\\Community\\MSBuild\\Microsoft\\Microsoft.NET.Build.Extensions\\net461\\lib\\System.Diagnostics.StackTrace.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files\\Microsoft Visual Studio\\2022\\Community\\MSBuild\\Microsoft\\Microsoft.NET.Build.Extensions\\net461\\lib\\System.Diagnostics.TextWriterTraceListener.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files\\Microsoft Visual Studio\\2022\\Community\\MSBuild\\Microsoft\\Microsoft.NET.Build.Extensions\\net461\\lib\\System.Diagnostics.Tools.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files\\Microsoft Visual Studio\\2022\\Community\\MSBuild\\Microsoft\\Microsoft.NET.Build.Extensions\\net461\\lib\\System.Diagnostics.TraceSource.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files\\Microsoft Visual Studio\\2022\\Community\\MSBuild\\Microsoft\\Microsoft.NET.Build.Extensions\\net461\\lib\\System.Diagnostics.Tracing.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files (x86)\\Reference Assemblies\\Microsoft\\Framework\\.NETFramework\\v4.6.1\\System.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files (x86)\\Reference Assemblies\\Microsoft\\Framework\\.NETFramework\\v4.6.1\\System.Drawing.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files\\Microsoft Visual Studio\\2022\\Community\\MSBuild\\Microsoft\\Microsoft.NET.Build.Extensions\\net461\\lib\\System.Drawing.Primitives.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files\\Microsoft Visual Studio\\2022\\Community\\MSBuild\\Microsoft\\Microsoft.NET.Build.Extensions\\net461\\lib\\System.Dynamic.Runtime.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files\\Microsoft Visual Studio\\2022\\Community\\MSBuild\\Microsoft\\Microsoft.NET.Build.Extensions\\net461\\lib\\System.Globalization.Calendars.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files\\Microsoft Visual Studio\\2022\\Community\\MSBuild\\Microsoft\\Microsoft.NET.Build.Extensions\\net461\\lib\\System.Globalization.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files\\Microsoft Visual Studio\\2022\\Community\\MSBuild\\Microsoft\\Microsoft.NET.Build.Extensions\\net461\\lib\\System.Globalization.Extensions.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files\\Microsoft Visual Studio\\2022\\Community\\MSBuild\\Microsoft\\Microsoft.NET.Build.Extensions\\net461\\lib\\System.IO.Compression.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files\\Microsoft Visual Studio\\2022\\Community\\MSBuild\\Microsoft\\Microsoft.NET.Build.Extensions\\net461\\lib\\System.IO.Compression.ZipFile.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files\\Microsoft Visual Studio\\2022\\Community\\MSBuild\\Microsoft\\Microsoft.NET.Build.Extensions\\net461\\lib\\System.IO.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files\\Microsoft Visual Studio\\2022\\Community\\MSBuild\\Microsoft\\Microsoft.NET.Build.Extensions\\net461\\lib\\System.IO.FileSystem.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files\\Microsoft Visual Studio\\2022\\Community\\MSBuild\\Microsoft\\Microsoft.NET.Build.Extensions\\net461\\lib\\System.IO.FileSystem.DriveInfo.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files\\Microsoft Visual Studio\\2022\\Community\\MSBuild\\Microsoft\\Microsoft.NET.Build.Extensions\\net461\\lib\\System.IO.FileSystem.Primitives.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files\\Microsoft Visual Studio\\2022\\Community\\MSBuild\\Microsoft\\Microsoft.NET.Build.Extensions\\net461\\lib\\System.IO.FileSystem.Watcher.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files\\Microsoft Visual Studio\\2022\\Community\\MSBuild\\Microsoft\\Microsoft.NET.Build.Extensions\\net461\\lib\\System.IO.IsolatedStorage.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files\\Microsoft Visual Studio\\2022\\Community\\MSBuild\\Microsoft\\Microsoft.NET.Build.Extensions\\net461\\lib\\System.IO.MemoryMappedFiles.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\repo\\CODE\\009_DI-Elec\\packages\\System.IO.Packaging.6.0.0\\lib\\net461\\System.IO.Packaging.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files\\Microsoft Visual Studio\\2022\\Community\\MSBuild\\Microsoft\\Microsoft.NET.Build.Extensions\\net461\\lib\\System.IO.Pipes.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files\\Microsoft Visual Studio\\2022\\Community\\MSBuild\\Microsoft\\Microsoft.NET.Build.Extensions\\net461\\lib\\System.IO.UnmanagedMemoryStream.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files\\Microsoft Visual Studio\\2022\\Community\\MSBuild\\Microsoft\\Microsoft.NET.Build.Extensions\\net461\\lib\\System.Linq.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files\\Microsoft Visual Studio\\2022\\Community\\MSBuild\\Microsoft\\Microsoft.NET.Build.Extensions\\net461\\lib\\System.Linq.Expressions.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files\\Microsoft Visual Studio\\2022\\Community\\MSBuild\\Microsoft\\Microsoft.NET.Build.Extensions\\net461\\lib\\System.Linq.Parallel.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files\\Microsoft Visual Studio\\2022\\Community\\MSBuild\\Microsoft\\Microsoft.NET.Build.Extensions\\net461\\lib\\System.Linq.Queryable.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\repo\\CODE\\009_DI-Elec\\packages\\System.Memory.4.5.4\\lib\\net461\\System.Memory.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files (x86)\\Reference Assemblies\\Microsoft\\Framework\\.NETFramework\\v4.6.1\\System.Net.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files\\Microsoft Visual Studio\\2022\\Community\\MSBuild\\Microsoft\\Microsoft.NET.Build.Extensions\\net461\\lib\\System.Net.Http.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files\\Microsoft Visual Studio\\2022\\Community\\MSBuild\\Microsoft\\Microsoft.NET.Build.Extensions\\net461\\lib\\System.Net.NameResolution.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files\\Microsoft Visual Studio\\2022\\Community\\MSBuild\\Microsoft\\Microsoft.NET.Build.Extensions\\net461\\lib\\System.Net.NetworkInformation.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files\\Microsoft Visual Studio\\2022\\Community\\MSBuild\\Microsoft\\Microsoft.NET.Build.Extensions\\net461\\lib\\System.Net.Ping.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files\\Microsoft Visual Studio\\2022\\Community\\MSBuild\\Microsoft\\Microsoft.NET.Build.Extensions\\net461\\lib\\System.Net.Primitives.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files\\Microsoft Visual Studio\\2022\\Community\\MSBuild\\Microsoft\\Microsoft.NET.Build.Extensions\\net461\\lib\\System.Net.Requests.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files\\Microsoft Visual Studio\\2022\\Community\\MSBuild\\Microsoft\\Microsoft.NET.Build.Extensions\\net461\\lib\\System.Net.Security.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files\\Microsoft Visual Studio\\2022\\Community\\MSBuild\\Microsoft\\Microsoft.NET.Build.Extensions\\net461\\lib\\System.Net.Sockets.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files\\Microsoft Visual Studio\\2022\\Community\\MSBuild\\Microsoft\\Microsoft.NET.Build.Extensions\\net461\\lib\\System.Net.WebHeaderCollection.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files\\Microsoft Visual Studio\\2022\\Community\\MSBuild\\Microsoft\\Microsoft.NET.Build.Extensions\\net461\\lib\\System.Net.WebSockets.Client.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files\\Microsoft Visual Studio\\2022\\Community\\MSBuild\\Microsoft\\Microsoft.NET.Build.Extensions\\net461\\lib\\System.Net.WebSockets.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files (x86)\\Reference Assemblies\\Microsoft\\Framework\\.NETFramework\\v4.6.1\\System.Numerics.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\repo\\CODE\\009_DI-Elec\\packages\\System.Numerics.Vectors.4.5.0\\lib\\net46\\System.Numerics.Vectors.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files\\Microsoft Visual Studio\\2022\\Community\\MSBuild\\Microsoft\\Microsoft.NET.Build.Extensions\\net461\\lib\\System.ObjectModel.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files\\Microsoft Visual Studio\\2022\\Community\\MSBuild\\Microsoft\\Microsoft.NET.Build.Extensions\\net461\\lib\\System.Reflection.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files\\Microsoft Visual Studio\\2022\\Community\\MSBuild\\Microsoft\\Microsoft.NET.Build.Extensions\\net461\\lib\\System.Reflection.Extensions.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files\\Microsoft Visual Studio\\2022\\Community\\MSBuild\\Microsoft\\Microsoft.NET.Build.Extensions\\net461\\lib\\System.Reflection.Primitives.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files\\Microsoft Visual Studio\\2022\\Community\\MSBuild\\Microsoft\\Microsoft.NET.Build.Extensions\\net461\\lib\\System.Resources.Reader.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files\\Microsoft Visual Studio\\2022\\Community\\MSBuild\\Microsoft\\Microsoft.NET.Build.Extensions\\net461\\lib\\System.Resources.ResourceManager.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files\\Microsoft Visual Studio\\2022\\Community\\MSBuild\\Microsoft\\Microsoft.NET.Build.Extensions\\net461\\lib\\System.Resources.Writer.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\repo\\CODE\\009_DI-Elec\\packages\\System.Runtime.CompilerServices.Unsafe.4.7.0\\lib\\netstandard2.0\\System.Runtime.CompilerServices.Unsafe.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files\\Microsoft Visual Studio\\2022\\Community\\MSBuild\\Microsoft\\Microsoft.NET.Build.Extensions\\net461\\lib\\System.Runtime.CompilerServices.VisualC.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files\\Microsoft Visual Studio\\2022\\Community\\MSBuild\\Microsoft\\Microsoft.NET.Build.Extensions\\net461\\lib\\System.Runtime.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files\\Microsoft Visual Studio\\2022\\Community\\MSBuild\\Microsoft\\Microsoft.NET.Build.Extensions\\net461\\lib\\System.Runtime.Extensions.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files\\Microsoft Visual Studio\\2022\\Community\\MSBuild\\Microsoft\\Microsoft.NET.Build.Extensions\\net461\\lib\\System.Runtime.Handles.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files\\Microsoft Visual Studio\\2022\\Community\\MSBuild\\Microsoft\\Microsoft.NET.Build.Extensions\\net461\\lib\\System.Runtime.InteropServices.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files\\Microsoft Visual Studio\\2022\\Community\\MSBuild\\Microsoft\\Microsoft.NET.Build.Extensions\\net461\\lib\\System.Runtime.InteropServices.RuntimeInformation.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files\\Microsoft Visual Studio\\2022\\Community\\MSBuild\\Microsoft\\Microsoft.NET.Build.Extensions\\net461\\lib\\System.Runtime.Numerics.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files\\Microsoft Visual Studio\\2022\\Community\\MSBuild\\Microsoft\\Microsoft.NET.Build.Extensions\\net461\\lib\\System.Runtime.Serialization.Formatters.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files\\Microsoft Visual Studio\\2022\\Community\\MSBuild\\Microsoft\\Microsoft.NET.Build.Extensions\\net461\\lib\\System.Runtime.Serialization.Json.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files\\Microsoft Visual Studio\\2022\\Community\\MSBuild\\Microsoft\\Microsoft.NET.Build.Extensions\\net461\\lib\\System.Runtime.Serialization.Primitives.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files\\Microsoft Visual Studio\\2022\\Community\\MSBuild\\Microsoft\\Microsoft.NET.Build.Extensions\\net461\\lib\\System.Runtime.Serialization.Xml.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\repo\\CODE\\009_DI-Elec\\packages\\System.Security.AccessControl.6.0.0\\lib\\net461\\System.Security.AccessControl.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files\\Microsoft Visual Studio\\2022\\Community\\MSBuild\\Microsoft\\Microsoft.NET.Build.Extensions\\net461\\lib\\System.Security.Claims.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files\\Microsoft Visual Studio\\2022\\Community\\MSBuild\\Microsoft\\Microsoft.NET.Build.Extensions\\net461\\lib\\System.Security.Cryptography.Algorithms.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files\\Microsoft Visual Studio\\2022\\Community\\MSBuild\\Microsoft\\Microsoft.NET.Build.Extensions\\net461\\lib\\System.Security.Cryptography.Csp.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files\\Microsoft Visual Studio\\2022\\Community\\MSBuild\\Microsoft\\Microsoft.NET.Build.Extensions\\net461\\lib\\System.Security.Cryptography.Encoding.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files\\Microsoft Visual Studio\\2022\\Community\\MSBuild\\Microsoft\\Microsoft.NET.Build.Extensions\\net461\\lib\\System.Security.Cryptography.Primitives.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files\\Microsoft Visual Studio\\2022\\Community\\MSBuild\\Microsoft\\Microsoft.NET.Build.Extensions\\net461\\lib\\System.Security.Cryptography.X509Certificates.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files (x86)\\Reference Assemblies\\Microsoft\\Framework\\.NETFramework\\v4.6.1\\System.Security.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\repo\\CODE\\009_DI-Elec\\packages\\System.Security.Permissions.6.0.0\\lib\\net461\\System.Security.Permissions.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files\\Microsoft Visual Studio\\2022\\Community\\MSBuild\\Microsoft\\Microsoft.NET.Build.Extensions\\net461\\lib\\System.Security.Principal.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\repo\\CODE\\009_DI-Elec\\packages\\System.Security.Principal.Windows.5.0.0\\lib\\net461\\System.Security.Principal.Windows.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files\\Microsoft Visual Studio\\2022\\Community\\MSBuild\\Microsoft\\Microsoft.NET.Build.Extensions\\net461\\lib\\System.Security.SecureString.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files (x86)\\Reference Assemblies\\Microsoft\\Framework\\.NETFramework\\v4.6.1\\System.ServiceProcess.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files\\Microsoft Visual Studio\\2022\\Community\\MSBuild\\Microsoft\\Microsoft.NET.Build.Extensions\\net461\\lib\\System.Text.Encoding.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files\\Microsoft Visual Studio\\2022\\Community\\MSBuild\\Microsoft\\Microsoft.NET.Build.Extensions\\net461\\lib\\System.Text.Encoding.Extensions.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files\\Microsoft Visual Studio\\2022\\Community\\MSBuild\\Microsoft\\Microsoft.NET.Build.Extensions\\net461\\lib\\System.Text.RegularExpressions.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files\\Microsoft Visual Studio\\2022\\Community\\MSBuild\\Microsoft\\Microsoft.NET.Build.Extensions\\net461\\lib\\System.Threading.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files\\Microsoft Visual Studio\\2022\\Community\\MSBuild\\Microsoft\\Microsoft.NET.Build.Extensions\\net461\\lib\\System.Threading.Overlapped.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files\\Microsoft Visual Studio\\2022\\Community\\MSBuild\\Microsoft\\Microsoft.NET.Build.Extensions\\net461\\lib\\System.Threading.Tasks.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files\\Microsoft Visual Studio\\2022\\Community\\MSBuild\\Microsoft\\Microsoft.NET.Build.Extensions\\net461\\lib\\System.Threading.Tasks.Parallel.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files\\Microsoft Visual Studio\\2022\\Community\\MSBuild\\Microsoft\\Microsoft.NET.Build.Extensions\\net461\\lib\\System.Threading.Thread.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files\\Microsoft Visual Studio\\2022\\Community\\MSBuild\\Microsoft\\Microsoft.NET.Build.Extensions\\net461\\lib\\System.Threading.ThreadPool.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files\\Microsoft Visual Studio\\2022\\Community\\MSBuild\\Microsoft\\Microsoft.NET.Build.Extensions\\net461\\lib\\System.Threading.Timer.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files (x86)\\Reference Assemblies\\Microsoft\\Framework\\.NETFramework\\v4.6.1\\System.Transactions.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files\\Microsoft Visual Studio\\2022\\Community\\MSBuild\\Microsoft\\Microsoft.NET.Build.Extensions\\net461\\lib\\System.ValueTuple.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files (x86)\\Reference Assemblies\\Microsoft\\Framework\\.NETFramework\\v4.6.1\\System.Web.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files (x86)\\Reference Assemblies\\Microsoft\\Framework\\.NETFramework\\v4.6.1\\System.Xml.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files (x86)\\Reference Assemblies\\Microsoft\\Framework\\.NETFramework\\v4.6.1\\System.Xml.Linq.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files\\Microsoft Visual Studio\\2022\\Community\\MSBuild\\Microsoft\\Microsoft.NET.Build.Extensions\\net461\\lib\\System.Xml.ReaderWriter.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files\\Microsoft Visual Studio\\2022\\Community\\MSBuild\\Microsoft\\Microsoft.NET.Build.Extensions\\net461\\lib\\System.Xml.XDocument.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files\\Microsoft Visual Studio\\2022\\Community\\MSBuild\\Microsoft\\Microsoft.NET.Build.Extensions\\net461\\lib\\System.Xml.XmlDocument.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files\\Microsoft Visual Studio\\2022\\Community\\MSBuild\\Microsoft\\Microsoft.NET.Build.Extensions\\net461\\lib\\System.Xml.XmlSerializer.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files\\Microsoft Visual Studio\\2022\\Community\\MSBuild\\Microsoft\\Microsoft.NET.Build.Extensions\\net461\\lib\\System.Xml.XPath.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files\\Microsoft Visual Studio\\2022\\Community\\MSBuild\\Microsoft\\Microsoft.NET.Build.Extensions\\net461\\lib\\System.Xml.XPath.XDocument.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files (x86)\\Reference Assemblies\\Microsoft\\Framework\\.NETFramework\\v4.6.1\\WindowsBase.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\repo\\CODE\\009_DI-Elec\\packages\\XLParser.1.5.2\\lib\\net461\\XLParser.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""}],"Analyzers":[],"Outputs":[{"OutputItemFullPath":"C:\\repo\\CODE\\009_DI-Elec\\Learun.Framework.Module\\Learun.Application.Module\\Learun.Application.TwoDevelopment\\bin\\Debug\\Learun.Application.TwoDevelopment.dll","OutputItemRelativePath":"Learun.Application.TwoDevelopment.dll"},{"OutputItemFullPath":"","OutputItemRelativePath":""}],"CopyToOutputEntries":[]}
\ No newline at end of file
diff --git a/Learun.Framework.Module/Learun.Application.Module/Learun.Application.TwoDevelopment/Learun.Application.TwoDevelopment.csproj b/Learun.Framework.Module/Learun.Application.Module/Learun.Application.TwoDevelopment/Learun.Application.TwoDevelopment.csproj
index 011106eb..3674d81f 100644
--- a/Learun.Framework.Module/Learun.Application.Module/Learun.Application.TwoDevelopment/Learun.Application.TwoDevelopment.csproj
+++ b/Learun.Framework.Module/Learun.Application.Module/Learun.Application.TwoDevelopment/Learun.Application.TwoDevelopment.csproj
@@ -274,6 +274,7 @@
+
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/Frame/FrameBll.cs b/Learun.Framework.Module/Learun.Application.Module/Learun.Application.TwoDevelopment/ZZDT_EC/Frame/FrameBll.cs
new file mode 100644
index 00000000..c9f04b35
--- /dev/null
+++ b/Learun.Framework.Module/Learun.Application.Module/Learun.Application.TwoDevelopment/ZZDT_EC/Frame/FrameBll.cs
@@ -0,0 +1,64 @@
+using DocumentFormat.OpenXml.Bibliography;
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace Learun.Application.TwoDevelopment.ZZDT_EC.Frame
+{
+ public class FrameBll
+ {
+ ///
+ /// 肋位号
+ ///
+ public class FrameList
+ {
+ ///
+ /// 号
+ ///
+ public string Num { get; set; }
+
+ ///
+ /// 值。单位是m
+ ///
+ public double Value { get; set; }
+ }
+ public List GetFrameList(string ProjectId)
+ {
+ var ec_dataitemBLL = new ec_dataitemBLL();
+ var settings = new ec_projectSettingsBLL();
+
+ var FrameListFlg = settings.GetEntity(GlobalObject.projSetting_enumlist_Frame, ProjectId);
+
+ if (FrameListFlg != null)
+ {
+ List frameLists = new List();
+
+
+ var res = ec_dataitemBLL.GetDetailList(FrameListFlg.SettingValue, "", ProjectId, false);
+ if (res == null)
+ {
+ return null;// 或者 无法从数据字典中找到对应的那个下拉
+ }
+ foreach (var item in res)
+ {
+ double value;
+ if (double.TryParse(item.DataItemCode, out value))
+ {
+ frameLists.Add(new FrameList() { Num = item.DataItemName, Value = value });
+ }
+ }
+
+ frameLists = frameLists.OrderBy(t => t.Value).ToList();
+ return frameLists;
+ }
+ else
+ {
+ return null;// 或者 无法从数据字典中找到对应的那个下拉
+ }
+
+ }
+
+ }
+}
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 0834fa00..8a05f5be 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
@@ -1,8 +1,10 @@
using DocumentFormat.OpenXml.Drawing.Spreadsheet;
using Learun.Util;
using Learun.Util.SqlSugar;
+using SqlSugar;
using System;
using System.Collections.Generic;
+using System.Collections.ObjectModel;
using System.Data;
using System.Linq;
@@ -121,7 +123,7 @@ namespace Learun.Application.TwoDevelopment.ZZDT_EC
var panelStripTableName = ProjectSugar.TableName(ProjID);
var allRelTypeDef = SqlSugarHelper.Db.Queryable().AS(relTypeTableName).ToList();
//var x2 = SqlSugarHelper.Db.Queryable().AS(relTypeTableName).ToList().FirstOrDefault(x => x.RelType == ((int)enum_RelType.设备_电缆).ToString());
- var cableFromToRel = allRelTypeDef.FirstOrDefault(x => x.RelType == ((int)enum_RelType.设备_电缆).ToString());
+ var cableFromToRel = allRelTypeDef.FirstOrDefault(x => x.RelType == enum_RelType.设备_电缆);
if (cableFromToRel == null)
{
throw new Exception($"查不到【{enum_RelType.设备_电缆.ToString()}】这个关联类型。");
@@ -166,12 +168,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 +191,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,53 +221,161 @@ namespace Learun.Application.TwoDevelopment.ZZDT_EC
#region 还没有预配置
#endregion
}
- public ec_CableEntity GetCablePreAssign(string ProjID, string EngineerDataID)
+ ///
+ /// 所有的
+ ///
+ ///
+ /// 按需指定某几个id
+ /// 是否需要带出电缆上的工程属性
+ ///
+ public List GetCablesPreAssign(string projId, List range, 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 relTypeTable = ProjectSugar.TableName(projId);
+ var setServ = new ec_CableSetService();
+ var wireServ = new ec_CableSetWireService();
+ //先查出所有已经预分配的电缆
+ var preAssignedCables = SqlSugarHelper.Db.Queryable().AS(table).
+ WhereIF(range != null && range.Count() > 0, x => range.Contains(x.CableID)).
+ 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().
+ ToDictionary(x => x.EngineDataID);
+ //var allpropOnFrom = new List();
- var ProjectEntity = new ec_projectEntity();
- ProjectEntity = new ec_projectBLL().GetEntity(ProjID);
- if (ProjectEntity == null)
+ var panels = SqlSugarHelper.Db.Queryable().AS(panelTable).
+ Where(x => preAssignedCables.Select(xx => xx.PanelID).Contains(x.PanelID)).ToList();
+ var panelDict = panels.ToDictionary(x => x.PanelID);
+ var panelTags = SqlSugarHelper.Db.Queryable().AS(tagTable).
+ Where(x => panels.Select(xx => xx.EngineerDataID).Contains(x.EngineDataID)).ToList().ToDictionary(x => x.EngineDataID);
+ var FromRels = new Dictionary();//key是cable,value是from设备的id
+ var allpropOnFrom = new List();
+ if (needProp)
{
- return null;
+ var relTypeObj = SqlSugarHelper.Db.Queryable().AS(relTypeTable).ToList().
+ FirstOrDefault(x => x.RelType == enum_RelType.设备_电缆);
+
+ FromRels = SqlSugarHelper.Db.Queryable().AS(relTable).
+ Where(x => x.RelTypeID == relTypeObj.RelTypeID && preAssignedCables.Select(c => c.EngineerDataID).Contains(x.RelEngineData2ID)).
+ Distinct().
+ ToList().ToDictionary(x => x.RelEngineData2ID, x => x.RelEngineData1ID);
+
+ //设备上的属性
+ //电缆在2,因为1.2.2里用于取的是from端的设备(设备在1,电缆在2)
+
+ allpropOnFrom = SqlSugarHelper.Db.Queryable().AS(propTable).
+ Where(x => FromRels.Values.Contains(x.EngineDataID)).ToList();
+
}
-
- var res = ec_CableService.GetList("{ProjectId:\"" + ProjID + "\",EngineerDataID:\"" + EngineerDataID + "\"}").FirstOrDefault(); //电缆
- if (res != null)
+ var allPropOnFromDict = allpropOnFrom.GroupBy(x => x.EngineDataID).ToDictionary(x => x.Key,
+ groupValue => groupValue.ToDictionary(
+ item => item.PropertyName, // 内层字典的键:比如 PropertyID
+ item => item)); // 内层字典的值:整个对象或其某个属性);
+ 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[cable.EngineerDataID]?.TagNumber;
+ var panelObj = panelDict[cable.PanelID];
+ if (panelObj == null)
+ {
+ continue;//分配就已经不合理了
+ }
+ else if (panelObj != null)
+ {
+ panelObj.TagNumber = panelTags[panelObj.EngineerDataID]?.TagNumber;
+
+ //1.2.2 系统属性从电缆的from端上的设备中取设备的系统
+ var panelId = FromRels[cable.EngineerDataID];
+ var panelProps = allPropOnFromDict[panelId];
+ cable.System = panelProps[GlobalObject.propName_System]?.PropertyValue;
+
+
+ }
+
+ cable.ToPanel = panelObj;//暂用一下topanel属性,相当于电缆预分配的采集箱背后的Panel对象。
+
+ var IOsOnPanel = panelObj.allowedIOTypes.Split(',').ToList();
//剩下的感觉都可以是set上的参数?
foreach (var set in sets)
{
+ #region 判断下io匹配程度
+ if (set.PreAssignInOrOut == GlobalEnum.inOrOut.输入.ToString() && cable.PreAssignIOType.ToLower() == "digital")
+ {
+ set.IOType = GlobalEnum.IOType.DI;
+ }
+ else if (set.PreAssignInOrOut == GlobalEnum.inOrOut.输出.ToString() && cable.PreAssignIOType.ToLower() == "digital")
+ {
+ set.IOType = GlobalEnum.IOType.DO;
+ }
+ else if (set.PreAssignInOrOut == GlobalEnum.inOrOut.输入.ToString() && cable.PreAssignIOType == "4~20mA")
+ {
+ set.IOType = GlobalEnum.IOType.AI;
+ }
+ else if (set.PreAssignInOrOut == GlobalEnum.inOrOut.输出.ToString() && cable.PreAssignIOType == "4~20mA")
+ {
+ set.IOType = GlobalEnum.IOType.AO;
+ }
+ else if (cable.PreAssignIOType == "10v")
+ {
+ set.IOType = GlobalEnum.IOType.TenVolt;
+ }
+ else if (cable.PreAssignIOType == GlobalEnum.signalType.PT100.ToString())
+ {
+ set.IOType = GlobalEnum.IOType.PT100;
+ }
+ else if (cable.PreAssignIOType.ToUpper() == GlobalEnum.signalType.PULSE.ToString())
+ {
+ set.IOType = GlobalEnum.IOType.PULSE;
+ }
+ else if (cable.PreAssignIOType == GlobalEnum.signalType.PT100.ToString())
+ {
+ set.IOType = GlobalEnum.IOType.PT100;
+ }
+ //下面是通讯的
+ else
+ {
+
+ }
+
+ 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..5e4bbd34 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
@@ -42,13 +42,14 @@ namespace Learun.Application.TwoDevelopment.ZZDT_EC
public string CableClass { get; set; } = "";
///
- /// 即里面走的信号的信号类型?
+ /// 即里面走的信号的信号类型?。然后加上,才是
/// RS485 RS422 TCP/IP MQTT(如果是通讯母线,通讯类型是什么。)
/// 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 HashSet IOTypesNotMatchedList = new HashSet();
+ ///
///
///
[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; }
diff --git a/Learun.Framework.Module/Learun.Application.Module/Learun.Application.TwoDevelopment/ZZDT_EC/ec_cable/ec_CableSetEntity.cs b/Learun.Framework.Module/Learun.Application.Module/Learun.Application.TwoDevelopment/ZZDT_EC/ec_cable/ec_CableSetEntity.cs
index dc941e9d..aed17d4f 100644
--- a/Learun.Framework.Module/Learun.Application.Module/Learun.Application.TwoDevelopment/ZZDT_EC/ec_cable/ec_CableSetEntity.cs
+++ b/Learun.Framework.Module/Learun.Application.Module/Learun.Application.TwoDevelopment/ZZDT_EC/ec_cable/ec_CableSetEntity.cs
@@ -129,6 +129,16 @@ namespace Learun.Application.TwoDevelopment.ZZDT_EC
#region 扩展字段
///
+ /// 根据 和 算出来的(比如4-20mA + 输入)得到AI
+ ///
+ [SugarColumn(IsIgnore = true)]
+ public GlobalEnum.IOType IOType { get; set; }
+ ///
+ ///
+ ///
+ [SugarColumn(IsIgnore = true)]
+ public bool IOTypeMatch { get; set; }
+ ///
///
///
[SugarColumn(IsIgnore = true)]
diff --git a/Learun.Framework.Module/Learun.Application.Module/Learun.Application.TwoDevelopment/ZZDT_EC/ec_drawing_file/ec_drawing_fileBLL.cs b/Learun.Framework.Module/Learun.Application.Module/Learun.Application.TwoDevelopment/ZZDT_EC/ec_drawing_file/ec_drawing_fileBLL.cs
index 324459e2..fb143fc1 100644
--- a/Learun.Framework.Module/Learun.Application.Module/Learun.Application.TwoDevelopment/ZZDT_EC/ec_drawing_file/ec_drawing_fileBLL.cs
+++ b/Learun.Framework.Module/Learun.Application.Module/Learun.Application.TwoDevelopment/ZZDT_EC/ec_drawing_file/ec_drawing_fileBLL.cs
@@ -586,7 +586,7 @@ namespace Learun.Application.TwoDevelopment.ZZDT_EC
List ArchiveRels = new List();
var tbRelType = ProjectSugar.TableName(targetProjId);
- var RelTypeCableFromTo = SqlSugarHelper.Db.Queryable().AS(tbRelType).ToList().FirstOrDefault(x => x.RelType == ((int)enum_RelType.设备_电缆).ToString());
+ var RelTypeCableFromTo = SqlSugarHelper.Db.Queryable().AS(tbRelType).ToList().FirstOrDefault(x => x.RelType == enum_RelType.设备_电缆);
//图上的pixel内容
@@ -824,7 +824,7 @@ namespace Learun.Application.TwoDevelopment.ZZDT_EC
var sourceTermAll = Db.Queryable().AS($"ec_Panel_Strip_Term_{sourceProject.ProjectIndex}").ToList();
var sourceChAll = Db.Queryable().AS($"ec_Panel_Channel_{sourceProject.ProjectIndex}").ToList();
var sourceCBAll = Db.Queryable().AS($"ec_CircuitBreaker_{sourceProject.ProjectIndex}").ToList();
- var sourceConnRelType = Db.Queryable().AS($"ec_reltype_{sourceProject.ProjectIndex}").ToList().FirstOrDefault(x => x.RelType == ((int)enum_RelType.设备_电缆).ToString());
+ var sourceConnRelType = Db.Queryable().AS($"ec_reltype_{sourceProject.ProjectIndex}").ToList().FirstOrDefault(x => x.RelType == enum_RelType.设备_电缆);
if (sourceConnRelType == null)
{
return "原始项目中,找不到 设备-电缆 的连接关系(RelType)定义。";
@@ -859,7 +859,7 @@ namespace Learun.Application.TwoDevelopment.ZZDT_EC
var targetTypeAll = objectTypeBll.GetList("{ProjectId:\"" + ProjectId + "\"}").ToList();
var TargetDrawingFile = drawingBll.GetList("{ProjectId:\"" + ProjectId + "\"}").ToList();
var targetTags = ec_enginedataService.GetListSingleTable(ProjectId, null);
- var targetConnRelType = Db.Queryable().AS($"ec_reltype_{targetProject.ProjectIndex}").ToList().FirstOrDefault(x => x.RelType == ((int)enum_RelType.设备_电缆).ToString());
+ var targetConnRelType = Db.Queryable().AS($"ec_reltype_{targetProject.ProjectIndex}").ToList().FirstOrDefault(x => x.RelType == enum_RelType.设备_电缆);
if (targetConnRelType == null)
{
return "当前项目中,找不到 设备-电缆 的连接关系(RelType)定义。";
@@ -986,7 +986,7 @@ namespace Learun.Application.TwoDevelopment.ZZDT_EC
#region 工程数据和图面
- var resourcePixelList = ec_enginedata_pixelService.GetList("{ProjectId:\"" + item.ProjectId + "\",DrawingFileID:\"" + item.DrawingFileID + "\"}").ToList();
+ var resourcePixelList = ec_enginedata_pixelService.GetList("{ProjectId:\"" + item.ProjectId + "\",DrawingFileID:\"" + item.DrawingFileID + "\"}",ProjectId).ToList();
if (resourcePixelList != null && resourcePixelList.Count() > 0)//不包含deleteflg的
{
//获取拷贝图纸所有的工程数据ID
diff --git a/Learun.Framework.Module/Learun.Application.Module/Learun.Application.TwoDevelopment/ZZDT_EC/ec_enginedata/ec_enginedataBLL.cs b/Learun.Framework.Module/Learun.Application.Module/Learun.Application.TwoDevelopment/ZZDT_EC/ec_enginedata/ec_enginedataBLL.cs
index 00cf9631..210cdc43 100644
--- a/Learun.Framework.Module/Learun.Application.Module/Learun.Application.TwoDevelopment/ZZDT_EC/ec_enginedata/ec_enginedataBLL.cs
+++ b/Learun.Framework.Module/Learun.Application.Module/Learun.Application.TwoDevelopment/ZZDT_EC/ec_enginedata/ec_enginedataBLL.cs
@@ -2,6 +2,7 @@
using DocumentFormat.OpenXml.ExtendedProperties;
using DocumentFormat.OpenXml.Office2010.Excel;
using DocumentFormat.OpenXml.Office2013.Drawing.Chart;
+using DocumentFormat.OpenXml.Office2021.DocumentTasks;
using DocumentFormat.OpenXml.Spreadsheet;
@@ -87,7 +88,8 @@ namespace Learun.Application.TwoDevelopment.ZZDT_EC
var drawingInfo = Db.Queryable().AS(drawingfileTableName)
.LeftJoin((edf, edid) => edf.DrawingSystem == edid.DataItemDetailID).AS(dataitemdetailTableName)
.Where((edf, edid) => edf.DrawingFileID == drawingId)
- .Select((edf, edid) => new {
+ .Select((edf, edid) => new
+ {
edid.DataItemName,
edf.DrawingFileName,
edid.UpDataItemDetailID
@@ -126,10 +128,10 @@ namespace Learun.Application.TwoDevelopment.ZZDT_EC
allTag = FilterEngineDataBySystemTopName(propertiesOfEnginedata, allTag, topDataItemDetailName, dataitemdetailTableName);
}
var allType = Db.Queryable().AS(typeT).
- Where(x => allTag.Select(y => y.ObjectTypeID).Contains(x.ObjectTypeID)
+ Where(x => allTag.Select(y => y.ObjectTypeID).Contains(x.ObjectTypeID)
&& !x.FullPathCN.EndsWith("图框")
&& !x.FullPathCN.EndsWith(GlobalObject.objectType_Base)
- && !x.FullPathCN.EndsWith("OPC")).Distinct().ToList();
+ && !x.FullPathCN.EndsWith(GlobalObject.objectType_OPC)).Distinct().ToList();
var allPropDef = Db.Queryable().AS(propT).ToList();
//var allObjectTypeP = Db.Queryable().AS(objectTypeP_T).ToList();
var allObjectTypeP = new ec_objecttypepBLL().GetObjectTypePById("", projectId, true).ToList();
@@ -226,8 +228,8 @@ namespace Learun.Application.TwoDevelopment.ZZDT_EC
groupedProps[cableId] = props;
}
- bool hasStart = props.Any(x => x.PropertyName == "起始设备");
- bool hasEnd = props.Any(x => x.PropertyName == "终止设备");
+ bool hasStart = props.Any(x => x.PropertyName == GlobalObject.propName_From);
+ bool hasEnd = props.Any(x => x.PropertyName == GlobalObject.propName_To);
var cableTypeName = cableTypeMap.TryGetValue(cableId, out var typeName) ? typeName : "电缆";
if (!hasStart)
@@ -236,12 +238,12 @@ namespace Learun.Application.TwoDevelopment.ZZDT_EC
{
EngineDataID = cableId,
ObjectTypeName = cableTypeName,
- PropertyName = "起始设备",
+ PropertyName = GlobalObject.propName_From,
PropertyValue = ""
};
props.Add(newStartProp);
allTagProps.Add(newStartProp); // ✅ 加入总集合
- tagPropDict[(cableId, "起始设备")] = newStartProp; // ✅ 加入/覆盖字典
+ tagPropDict[(cableId, GlobalObject.propName_From)] = newStartProp; // ✅ 加入/覆盖字典
}
if (!hasEnd)
@@ -250,18 +252,18 @@ namespace Learun.Application.TwoDevelopment.ZZDT_EC
{
EngineDataID = cableId,
ObjectTypeName = cableTypeName,
- PropertyName = "终止设备",
+ PropertyName = GlobalObject.propName_To,
PropertyValue = ""
};
props.Add(newEndProp);
allTagProps.Add(newEndProp); // ✅ 加入总集合
- tagPropDict[(cableId, "终止设备")] = newEndProp; // ✅ 加入/覆盖字典
+ tagPropDict[(cableId, GlobalObject.propName_To)] = newEndProp; // ✅ 加入/覆盖字典
}
}
// 整合所有补全后的属性
var cableProperties = groupedProps.Values.SelectMany(g => g)
- .Where(x => x.PropertyName == "起始设备" || x.PropertyName == "终止设备")
+ .Where(x => x.PropertyName == GlobalObject.propName_From || x.PropertyName == GlobalObject.propName_To)
.ToList();
// 一次性获取所有连接信息
@@ -271,18 +273,18 @@ namespace Learun.Application.TwoDevelopment.ZZDT_EC
{
if (cableRelDict.TryGetValue(changeprofromto.EngineDataID, out var conn))
{
- if (changeprofromto.PropertyName == "起始设备")
+ if (changeprofromto.PropertyName == GlobalObject.propName_From)
{
changeprofromto.PropertyValue = conn.End1Tag;
}
- else if (changeprofromto.PropertyName == "终止设备")
+ else if (changeprofromto.PropertyName == GlobalObject.propName_To)
{
changeprofromto.PropertyValue = conn.End2Tag;
}
}
}
-
+
foreach (var type in allType)
{
string sheetName = $"{seq}_{type.ObjectTypeName}";
@@ -320,7 +322,7 @@ namespace Learun.Application.TwoDevelopment.ZZDT_EC
// 4. 处理 `RequireIfRequired` 依赖项
foreach (var item in requireIfRequiredProps)
{
- if (requiredProps.ContainsKey(item.trigger_property_id) && (item.IsRequired == -1 || item.IsRequired == null || item.IsRequired==0))//isrequired==0是因为历史遗留数据,正常情况是没有0的
+ if (requiredProps.ContainsKey(item.trigger_property_id) && (item.IsRequired == -1 || item.IsRequired == null || item.IsRequired == 0))//isrequired==0是因为历史遗留数据,正常情况是没有0的
{
//在必填的里面累加不必填的内容,但是需要处理依赖项的
allLinkedPropSet.Add(item);
@@ -366,21 +368,21 @@ namespace Learun.Application.TwoDevelopment.ZZDT_EC
{
curSheet.Cells[curRow, 1].Value = tag.TagNumber;
//var tagPropDict = allTagProps
- //.GroupBy(x => (x.EngineDataID, x.PropertyName))
- //.ToDictionary(g => g.Key, g => g.First());
+ //.GroupBy(x => (x.EngineDataID, x.PropertyName))
+ //.ToDictionary(g => g.Key, g => g.First());
var tagProp = tagPropDict.TryGetValue((tag.EngineDataID, propDef.PropertyName), out var propVal) ? propVal : null;
//var tagProp = allTagProps.FirstOrDefault(x => x.EngineDataID == tag.EngineDataID && x.PropertyName == propDef.PropertyName);
if (tagProp == null)
{
- if (!string.IsNullOrEmpty(propDef.DefaultValue) && propDef.DefaultValue != "0")
- {
- curSheet.Cells[curRow, propCol].Value = propDef.DefaultValue;
- }
- else
- {
- CheckDependency(prop, allTagProps, tag, triggerProName, triggerOperator, triggerValue, curSheet, curRow, propCol, allLinkedPropId);
- }
+ if (!string.IsNullOrEmpty(propDef.DefaultValue) && propDef.DefaultValue != "0")
+ {
+ curSheet.Cells[curRow, propCol].Value = propDef.DefaultValue;
+ }
+ else
+ {
+ CheckDependency(prop, allTagProps, tag, triggerProName, triggerOperator, triggerValue, curSheet, curRow, propCol, allLinkedPropId);
+ }
}
else if (string.IsNullOrEmpty(tagProp.PropertyValue) || tagProp.PropertyValue == "0")
{
@@ -536,7 +538,7 @@ namespace Learun.Application.TwoDevelopment.ZZDT_EC
curSheet.Cells[1, 1, totalRows, totalColumns].Style.Locked = false;
curSheet.Cells[1, 1, 1, totalColumns].Style.Locked = true; // 锁定第一行
curSheet.Cells[1, 1, totalRows, 1].Style.Locked = true; // 锁定第一列
- curSheet.Protection.IsProtected = true;
+ curSheet.Protection.IsProtected = true;
curSheet.Protection.AllowFormatColumns = true; // 允许调整列宽
}
@@ -596,7 +598,7 @@ namespace Learun.Application.TwoDevelopment.ZZDT_EC
{
var isRequired = tagDepObjtypep.IsRequired;//上级的必填阶段值
//只有当前属性的必填阶段大于等于上级关联的必填阶段时才会去判断自身是不是要必填,不然都没有检查下去的必要
- if(prop.IsRequired >= isRequired)
+ if (prop.IsRequired >= isRequired)
{
//取某个位号的工程数据属性
var tagDepProp = allTagProps.FirstOrDefault(x => x.EngineDataID == tag.EngineDataID && x.PropertyName == triggerProName);
@@ -612,7 +614,7 @@ namespace Learun.Application.TwoDevelopment.ZZDT_EC
}
}
}
-
+
}
}
else if (prop.dependency_type.Equals(dependency_type.RequireIfRequired))
@@ -633,7 +635,7 @@ namespace Learun.Application.TwoDevelopment.ZZDT_EC
else
{
//不依赖特定条件,且没有默认值,变色
- SetCellColor(curSheet, curRow, propCol, prop.IsRequired, dependency_type.RequireNone,"");
+ SetCellColor(curSheet, curRow, propCol, prop.IsRequired, dependency_type.RequireNone, "");
}
}
///
@@ -643,7 +645,7 @@ namespace Learun.Application.TwoDevelopment.ZZDT_EC
/// 行
/// 列
/// 图纸阶段
- private void SetCellColor(ExcelWorksheet curSheet, int row, int col, int? isRequired, dependency_type deType, string strTriggerProName="", Dictionary fillStyleCache = null)
+ private void SetCellColor(ExcelWorksheet curSheet, int row, int col, int? isRequired, dependency_type deType, string strTriggerProName = "", Dictionary fillStyleCache = null)
{
curSheet.Cells[row, col].Style.Fill.PatternType = OfficeOpenXml.Style.ExcelFillStyle.Solid;
@@ -808,7 +810,7 @@ namespace Learun.Application.TwoDevelopment.ZZDT_EC
.Where((ed, edp, eo) =>
!SqlFunc.Contains(eo.ObjectTypeName, "%电缆") &&
!SqlFunc.Contains(eo.ObjectTypeName, "%图框") &&
- !SqlFunc.Contains(eo.ObjectTypeName, "%"+ GlobalObject.objectType_Base) &&
+ !SqlFunc.Contains(eo.ObjectTypeName, "%" + GlobalObject.objectType_Base) &&
!SqlFunc.Contains(eo.ObjectTypeName, "%OPC") &&
validEngineDataIds.Contains(ed.EngineDataID)
)
@@ -1165,7 +1167,7 @@ namespace Learun.Application.TwoDevelopment.ZZDT_EC
#endregion
#region 提交数据
- public async Task LockTag(string projId, string enginedataId, string action)
+ public async System.Threading.Tasks.Task LockTag(string projId, string enginedataId, string action)
{
var data = LoginUserInfo.Get();
@@ -1505,6 +1507,8 @@ namespace Learun.Application.TwoDevelopment.ZZDT_EC
var objectTypeTableName = TableName(ProjectEntity.ProjectIndex.ToString());
var objectTypepTableName = TableName(ProjectEntity.ProjectIndex.ToString());
var unitTableName = TableName(ProjectEntity.ProjectIndex.ToString());
+ var relTableName = TableName(ProjectEntity.ProjectIndex.ToString());
+ var reldataTableName = TableName(ProjectEntity.ProjectIndex.ToString());
var lookupBll = new ec_REFLOOKUPTABLEBLL();
@@ -1558,6 +1562,7 @@ namespace Learun.Application.TwoDevelopment.ZZDT_EC
var typeTbName = ProjectSugar.TableName(projectId);
var dwgTbName = ProjectSugar.TableName(projectId);
var pixelTbName = ProjectSugar.TableName(projectId);
+ var dataitemdetailTableName = TableName(projectId);
var allType = SqlSugarHelper.Db.Queryable().AS(typeTbName).ToList();
var systems = new ec_dataitemBLL().GetDetailList(GlobalObject.enumlist_System, "", projectId);
@@ -1569,14 +1574,24 @@ namespace Learun.Application.TwoDevelopment.ZZDT_EC
{
var cableSystemObj = entity.EngineDataProperty.FirstOrDefault(x => x.PropertyName == GlobalObject.propName_System);
- var cableSystem = cableSystemObj == null ? "" : systems.FirstOrDefault(x => x.DataItemName == cableSystemObj.PropertyValue)?.DataItemDetailID;
- if (cableSystem != null)
+ string systemNameAfterDealWith = string.Empty;
+ var cableSystem =string.Empty;
+ var topDataItemDetailIDofDwg = string.Empty;
+ var topDataItemDetailIDofEng = string.Empty;
+ if (cableSystemObj != null)
{
- if (dwgObj.DrawingSystem == cableSystem && !string.IsNullOrEmpty(dwgObj.DrawingSystem))
+ int index = cableSystemObj.PropertyValue.IndexOf("||");
+ systemNameAfterDealWith = index >= 0 ? cableSystemObj.PropertyValue.Substring(0, index) : cableSystemObj.PropertyValue;
+ cableSystem = systems.FirstOrDefault(x => x.DataItemName == systemNameAfterDealWith)?.DataItemDetailID;
+ //获取图纸系统的最上级ID
+ topDataItemDetailIDofDwg = GetTopParentDataItemDetailByID(dataitemdetailTableName, dwgObj.DrawingSystem);
+ //获取位号系统的最上级ID
+ topDataItemDetailIDofEng= GetTopParentDataItemDetailByID(dataitemdetailTableName, cableSystem);
+ if (topDataItemDetailIDofDwg == topDataItemDetailIDofEng && !string.IsNullOrEmpty(dwgObj.DrawingSystem))
{
//可以修改
}
- else if (string.IsNullOrEmpty(cableSystem))
+ else if (string.IsNullOrEmpty(topDataItemDetailIDofEng))
{
//不可以
allowPropertyModify = false;
@@ -1602,6 +1617,12 @@ namespace Learun.Application.TwoDevelopment.ZZDT_EC
}
}
+ //var cableSystem = cableSystemObj == null ? "" : systems.FirstOrDefault(x => x.DataItemName == cableSystemObj.PropertyValue)?.DataItemDetailID;
+ //if (cableSystem != null)
+ //{
+
+
+ //}
}
else
{
@@ -1715,10 +1736,10 @@ namespace Learun.Application.TwoDevelopment.ZZDT_EC
//db.UpdateByNoMap(curEnginedata, $"ec_enginedata_{ProjectEntity.ProjectIndex}", "EngineDataID");
Db.Updateable(curEnginedata).AS($"ec_enginedata_{ProjectEntity.ProjectIndex}").ExecuteCommand();
-
+
}
- engineDataID = curEnginedata.EngineDataID;//更新位号时
+ engineDataID = curEnginedata.EngineDataID;//更新位号时
#endregion
}
else
@@ -1774,37 +1795,8 @@ namespace Learun.Application.TwoDevelopment.ZZDT_EC
validTagProps.Add(engineDataProp);
}
Db.Insertable(validTagProps).AS($"ec_enginedata_property_{ProjectEntity.ProjectIndex}").ExecuteCommand();
- #endregion
+ #endregion
- #region 新增属性(其他的所有case,值用默认值)
- //foreach (var caseEntity in cases.Where(x => x.CaseID != caseID))
- //{
- // //把objectTypep里的一套,和默认值带过来即可
- // var enginedataProps = new List();
- // Db.Queryable().AS(propertyTableName)
- // .InnerJoin((a, b) => a.PropertyID == b.PropertyID)//&& !string.IsNullOrEmpty(a.DefaultValue)
- // .AS(objectTypepTableName)
- // .InnerJoin((a, b, c) => b.ObjectTypeID == c.ObjectTypeID && c.ObjectTypeID == entity.ObjectTypeID)
- // .AS(objectTypeTableName)
- // .LeftJoin((a, b, c, d) => a.DefaultUnit == d.MeasuringUnitID)
- // .AS(unitTableName)
- // .Select((a, b, c, d) => new { a, d })
- // .ToList().ForEach(x =>
- // {
- // var enginedataProp = new ec_enginedata_propertyEntity()
- // {
- // EngineDataID = engineDataID,
- // PropertyName = x.a.PropertyName,
- // PropertyValue = x.a.DefaultValue,
- // MeasuringUnit = x.d.MeasuringUnitName,
- // CaseID = caseEntity.CaseID,
- // };
- // enginedataProp.Create();
- // enginedataProps.Add(enginedataProp);
- // });
- // Db.Insertable(enginedataProps).AS($"ec_enginedata_property_{ProjectEntity.ProjectIndex}").ExecuteCommand(); //231007
- //}
- #endregion
#region 新增ec panel的记录(除了电缆)
var objectType = new ec_objecttypeBLL().GetEntity(addEnginedata.ObjectTypeID, projectId);
if (objectType != null && !objectType.ObjectTypeName.EndsWith("电缆") && objectType.IsOOTB != 1)
@@ -1830,6 +1822,46 @@ namespace Learun.Application.TwoDevelopment.ZZDT_EC
First(x => x.DrawingFileID == pixel.DrawingFileID && x.PixelCode == pixel.PixelCode);
if (existPixel != null)
{
+ #region TASK #9476
+ //是否这个句柄换过位号?换过的话,更新为当前位号,同时要更新相关电缆的from/to
+ var oldTagId = existPixel.EngineDataID;
+ var newTagId = engineDataID;
+ if (oldTagId != newTagId)
+ {
+ //句柄换位号主体了
+ //原本句柄相关的rel
+ var relObj = Db.Queryable().AS(relTableName).First(x => x.RelType == enum_RelType.设备_电缆);
+ if (relObj != null)
+ {
+ var existCableConns = Db.Queryable().AS(reldataTableName).
+ Where(x => x.RelTypeID == relObj.RelTypeID && x.OPCPixel == pixel.PixelCode && (x.RelEngineData1ID == oldTagId || x.RelEngineData2ID == oldTagId)).ToList();
+ //这里有问题。
+ //比如设备B在多个图上多有句柄P1 P2 P3,且这些句柄都关联了多个电缆C1 C2 C3,那么在rel表里就有3个B的记录
+ //这时如果进行提交,句柄P1的主体变为了设备BBB,那么B的所有句柄P1 P2 P3都变为BBB了,没有单独分离出来 C1 C2 C3中的某一个
+
+ //解决:在进行saveconnection,把设备的句柄存入
+
+ if (existCableConns != null)
+ {
+ //更新rel表
+ foreach (var existConn in existCableConns)
+ {
+ if (existConn.RelEngineData1ID == oldTagId)
+ {
+ existConn.RelEngineData1ID = newTagId;
+ }
+ else if (existConn.RelEngineData2ID == oldTagId)
+ {
+ existConn.RelEngineData2ID = newTagId;
+ }
+ }
+ //更新电缆属性里的 起始设备 和 终止设备
+ //不需要 查询时会自动处理
+ Db.Updateable(existCableConns).AS($"ec_enginedata_rel_{ProjectEntity.ProjectIndex}").ExecuteCommand();
+ }
+ }
+ }
+ #endregion
existPixel.Modify(existPixel.EngineDataPixelID);
existPixel.DeleteFlg = 0;
existPixel.EngineDataID = engineDataID;
@@ -1858,102 +1890,10 @@ namespace Learun.Application.TwoDevelopment.ZZDT_EC
-
-
- #region 电缆规格
- //更新电缆规格
- //var cableTableName = ProjectSugar.TableName(projectId);
- //var enginedataTableName = ProjectSugar.TableName(projectId);
- //var enginedataPropertyTableName = ProjectSugar.TableName(projectId);
- //var cableFormat = SqlSugarHelper.Db.Queryable().AS(cableTableName)
- // .InnerJoin((a, b) => a.EngineerDataID == b.EngineDataID).AS(enginedataPropertyTableName)
- // .InnerJoin((a, b, c) => b.EngineDataID == c.EngineDataID).AS(enginedataTableName)
- // .Where((a, b, c) => b.PropertyName == GlobalObject.propName_CableSpec && b.CaseID == caseID && c.TagNumber == entity.TagNumber)
- // .Select((a, b, c) => new { a, b })
- // .First();
- //if (cableFormat != null)
- //{
- // var cableID = cableFormat.a.CableID;
- // var start = cableFormat.b.PropertyValue.Split('*', 'x', 'X', '✖');
- // if (start.Length >= 2)
- // {
- // int setCount;
- // int wireCount;
- // var b1 = int.TryParse(start[0], out setCount);
- // var b2 = int.TryParse(start[1], out wireCount);
- // if (b1 && b2)
- // {
- // var cableSetTableName = ProjectSugar.TableName(projectId);
- // var cableSetWireTableName = ProjectSugar.TableName(projectId);
- // var sets = SqlSugarHelper.Db.Queryable().AS(cableSetTableName).Where(x => x.CableID == cableID).ToList();
- // var wires = SqlSugarHelper.Db.Queryable().AS(cableSetWireTableName).Where(x => sets.Select(Y => Y.CableSetID).Contains(x.CableSetID)).ToList();
- // var setMax = Math.Max(setCount, sets.Count);
- // var insSets = new List();
- // var insWires = new List();
- // var delSets = new List();
- // var delWires = new List();
- // for (int i = 0; i < setMax; i++)
- // {
- // var set = new ec_CableSetEntity();
- // if (i <= setCount - 1 && i <= sets.Count - 1)
- // {
- // set = sets[i];
- // }
- // if (i > setCount - 1)
- // {
- // var delSet = sets[i];
- // delSets.Add(delSet);
- // delWires.AddRange(wires.Where(x => x.CableSetID == delSet.CableSetID).ToList());
- // }
- // if (i > sets.Count - 1)
- // {
- // set = new ec_CableSetEntity()
- // {
- // CableID = cableID,
- // CableSetSeq = i + 1,
- // CableSetName = $"Set{i + 1}",
- // };
- // set.Create();
- // insSets.Add(set);
- // }
- // if (!string.IsNullOrEmpty(set.CableSetID))
- // {
- // var setWires = wires.Where(x => x.CableSetID == set.CableSetID).ToList();
- // var wireMax = Math.Max(wireCount, setWires.Count);
- // for (int j = 0; j < wireMax; j++)
- // {
- // if (j > wireCount - 1)
- // {
- // var delWire = setWires[j];
- // delWires.Add(delWire);
- // }
- // if (j > setWires.Count - 1)
- // {
- // var wire = new ec_CableSetWireEntity()
- // {
- // //CableID = cableID,
- // CableSetID = set.CableSetID,
- // SetLevel = j,
- // Wire_Tag = $"W{j + 1}"
- // };
- // wire.Create();
- // insWires.Add(wire);
- // }
- // }
- // }
- // }
- // SqlSugarHelper.Db.Insertable(insSets).AS(cableSetTableName).ExecuteCommand();
- // SqlSugarHelper.Db.Insertable(insWires).AS(cableSetWireTableName).ExecuteCommand();
- // SqlSugarHelper.Db.Deleteable(delWires).AS(cableSetWireTableName).ExecuteCommand();
- // SqlSugarHelper.Db.Deleteable(delSets).AS(cableSetTableName).ExecuteCommand();
- // }
- // }
- //}
- #endregion
Db.CommitTran();
}
catch (Exception ex)
- {
+ {
log4net.LogManager.GetLogger("ERROR").Error(ex.StackTrace + " || " + ex.Message);
Db.RollbackTran();
if (ex is ExceptionEx)
@@ -2489,6 +2429,38 @@ namespace Learun.Application.TwoDevelopment.ZZDT_EC
return current.DataItemName;
}
+ ///
+ /// 找到最上级的DataItemDetailID
+ ///
+ /// 表名
+ /// 当前的DataItemName
+ /// 最上层的Name
+ public string GetTopParentDataItemDetailByID(string DtatTableName, string strDataItemDetailID)
+ {
+ // 先找到初始节点
+ var current = Db.Queryable().AS(DtatTableName).Where(x => x.DataItemDetailID == strDataItemDetailID).First();
+
+ // 如果找不到,直接返回 null
+ if (current == null)
+ return null;
+
+ // 循环向上查找
+ while (current.UpDataItemDetailID != "0")
+ {
+ // upDataItemDetailID是上级节点的DataItemDetailID
+ var parent = Db.Queryable().AS(DtatTableName).Where(x => x.DataItemDetailID == current.UpDataItemDetailID).First();
+
+ // 如果找不到就返回 null(防止死循环)
+ if (parent == null)
+ return null;
+
+ current = parent;
+ }
+
+ // 返回最上层的 DataItemDetailID(也就是 0对应的ID)
+ return current.DataItemDetailID;
+ }
+
///
/// 过滤掉与图纸系统最上层不一致的 EngineDataID
///
@@ -2648,7 +2620,7 @@ namespace Learun.Application.TwoDevelopment.ZZDT_EC
// 筛选出“真实设备”,这里排除OPC、通讯器等中转对象
var deviceTags = endpointInfo
- .Where(x => !x.objectType.Contains("OPC"))
+ .Where(x => !x.objectType.Contains(GlobalObject.objectType_OPC))
.Select(x => x.tagNumber)
.Distinct()
.Take(2) // 只取前两个设备
@@ -2660,5 +2632,7 @@ namespace Learun.Application.TwoDevelopment.ZZDT_EC
return result;
}
+
+
}
}
diff --git a/Learun.Framework.Module/Learun.Application.Module/Learun.Application.TwoDevelopment/ZZDT_EC/ec_enginedata/ec_enginedataEntity.cs b/Learun.Framework.Module/Learun.Application.Module/Learun.Application.TwoDevelopment/ZZDT_EC/ec_enginedata/ec_enginedataEntity.cs
index 50ff8185..33d5aae5 100644
--- a/Learun.Framework.Module/Learun.Application.Module/Learun.Application.TwoDevelopment/ZZDT_EC/ec_enginedata/ec_enginedataEntity.cs
+++ b/Learun.Framework.Module/Learun.Application.Module/Learun.Application.TwoDevelopment/ZZDT_EC/ec_enginedata/ec_enginedataEntity.cs
@@ -136,6 +136,12 @@ namespace Learun.Application.TwoDevelopment.ZZDT_EC
UserInfo userInfo = LoginUserInfo.Get();
this.CreateUserID = userInfo.userId;
}
+ public void Modify()
+ {
+ this.UpdateTime = Time.MySqlTime;
+ UserInfo userInfo = LoginUserInfo.Get();
+ this.UpdateUserID = userInfo.userId;
+ }
///
/// 编辑调用
///
diff --git a/Learun.Framework.Module/Learun.Application.Module/Learun.Application.TwoDevelopment/ZZDT_EC/ec_enginedata/ec_enginedataService.cs b/Learun.Framework.Module/Learun.Application.Module/Learun.Application.TwoDevelopment/ZZDT_EC/ec_enginedata/ec_enginedataService.cs
index 2936a16c..fd6b33b8 100644
--- a/Learun.Framework.Module/Learun.Application.Module/Learun.Application.TwoDevelopment/ZZDT_EC/ec_enginedata/ec_enginedataService.cs
+++ b/Learun.Framework.Module/Learun.Application.Module/Learun.Application.TwoDevelopment/ZZDT_EC/ec_enginedata/ec_enginedataService.cs
@@ -8,6 +8,7 @@ using System.Data;
using System.Linq;
using System.Text;
using System.Windows.Controls.Primitives;
+using static Learun.Application.TwoDevelopment.ZZDT_EC.GlobalEnum;
using DbType = System.Data.DbType;
namespace Learun.Application.TwoDevelopment.ZZDT_EC
@@ -63,11 +64,11 @@ namespace Learun.Application.TwoDevelopment.ZZDT_EC
WHERE t1.DataStatus != '00001' ");
if (queryParam["ProjectId"].IsEmpty())
{
- strSql.Append(" AND (select count(1) from ec_enginedata_pixel st2 where st2.EngineDataID = t1.EngineDataID) = 0 ");
+ return new List();
}
else
{
- strSql.Append($" AND (select count(1) from ec_enginedata_pixel_{ProjectEntity.ProjectIndex} st2 where st2.EngineDataID = t1.EngineDataID) = 0 ");
+ //strSql.Append($" AND (select count(1) from ec_enginedata_pixel_{ProjectEntity.ProjectIndex} st2 where st2.EngineDataID = t1.EngineDataID) = 0 ");
}
// 虚拟参数
@@ -89,7 +90,22 @@ namespace Learun.Application.TwoDevelopment.ZZDT_EC
strSql.Append(" AND t1.DataStatus = @DataStatus ");
}
//return this.BaseRepository().FindList(strSql.ToString(), dp, pagination);
- return SqlSugarHelper.Db.SqlQueryable(strSql.ToString()).AddParameters(dp).ToPageList(pagination.page, pagination.rows);
+ var sql = strSql.ToString();
+ var res = SqlSugarHelper.Db.SqlQueryable(sql).AddParameters(dp).ToPageList(pagination.page, pagination.rows);
+
+ var allTagIds = res.Select(x => x.EngineDataID).Distinct().ToList();
+
+ var pixelTbName = ProjectSugar.TableName(ProjectEntity.ProjectId);
+
+ var allPixels = SqlSugarHelper.Db.Queryable().AS(pixelTbName)
+ .Where(x => allTagIds.Contains(x.EngineDataID) && x.DeleteFlg !=1)
+ .ToList();
+ var allTagIdsHavingPixel = allPixels.Select(x => x.EngineDataID).Distinct().ToList();
+
+ var TagNotHavingPixel = allTagIds.Except(allTagIdsHavingPixel).ToList();
+
+ var res2 = res.Where(x => TagNotHavingPixel.Contains(x.EngineDataID)).ToList();
+ return res2;
}
catch (Exception ex)
{
@@ -215,7 +231,7 @@ namespace Learun.Application.TwoDevelopment.ZZDT_EC
}
}
}
-
+
#endregion
@@ -269,7 +285,7 @@ namespace Learun.Application.TwoDevelopment.ZZDT_EC
SqlSugarHelper.Db.Deleteable(chs).AS($"ec_panel_channel_{ProjectEntity.ProjectIndex}").ExecuteCommand();
//SqlSugarHelper.Db.Ado.ExecuteCommand($@" DELETE FROM ec_panel_channel_{ProjectEntity.ProjectIndex} WHERE PanelID = '{panel.PanelID}'");
var wts = SqlSugarHelper.Db.Queryable().AS($"ec_wire_terminal_{ProjectEntity.ProjectIndex}").
- Where(x => terms.Select(y=>y.TermID).Contains(x.TermID)).ToList();
+ Where(x => terms.Select(y => y.TermID).Contains(x.TermID)).ToList();
SqlSugarHelper.Db.Deleteable(wts).AS($"ec_wire_terminal_{ProjectEntity.ProjectIndex}").ExecuteCommand();
//SqlSugarHelper.Db.Ado.ExecuteCommand($@" DELETE FROM ec_wire_terminal_{ProjectEntity.ProjectIndex} WHERE PanelID = '{panel.PanelID}'");
}
@@ -723,7 +739,7 @@ namespace Learun.Application.TwoDevelopment.ZZDT_EC
}
}
-
+
///
/// 更新工程数据属性默认值
///
diff --git a/Learun.Framework.Module/Learun.Application.Module/Learun.Application.TwoDevelopment/ZZDT_EC/ec_enginedata_pixel/ec_enginedata_pixelBLL.cs b/Learun.Framework.Module/Learun.Application.Module/Learun.Application.TwoDevelopment/ZZDT_EC/ec_enginedata_pixel/ec_enginedata_pixelBLL.cs
index 64eed1dd..94c0b480 100644
--- a/Learun.Framework.Module/Learun.Application.Module/Learun.Application.TwoDevelopment/ZZDT_EC/ec_enginedata_pixel/ec_enginedata_pixelBLL.cs
+++ b/Learun.Framework.Module/Learun.Application.Module/Learun.Application.TwoDevelopment/ZZDT_EC/ec_enginedata_pixel/ec_enginedata_pixelBLL.cs
@@ -199,11 +199,11 @@ namespace Learun.Application.TwoDevelopment.ZZDT_EC
/// 获取列表数据
///
///
- public IEnumerable GetList(string queryJson)
+ public IEnumerable GetList(string queryJson,string projId)
{
try
{
- return ec_enginedata_pixelService.GetList(queryJson);
+ return ec_enginedata_pixelService.GetList(queryJson,projId);
}
catch (Exception ex)
{
@@ -400,7 +400,7 @@ namespace Learun.Application.TwoDevelopment.ZZDT_EC
.LeftJoin((edp, ede) => edp.EngineDataID == ede.EngineDataID).AS(enginedataTableName)
.LeftJoin((edp, ede, eot) => ede.ObjectTypeID == eot.ObjectTypeID).AS(objectTypeTableName)
.Where((edp, ede, eot) => edp.DeleteFlg == 0 && edp.DrawingFileID == drawingFileID && pixelEntities.Select(y => y.PixelCode).Contains(edp.PixelCode)
- && !eot.FullPathCN.EndsWith("图框") && !eot.FullPathCN.EndsWith(GlobalObject.objectType_Base) && !eot.FullPathCN.EndsWith("OPC"))
+ && !eot.FullPathCN.EndsWith("图框") && !eot.FullPathCN.EndsWith(GlobalObject.objectType_Base) && !eot.FullPathCN.EndsWith(GlobalObject.objectType_OPC))
.Select((edp, ede, eot) => edp.EngineDataID)
.Distinct()
.ToList();
@@ -460,7 +460,7 @@ namespace Learun.Application.TwoDevelopment.ZZDT_EC
// 获取所有需要处理的属性(只包含电缆对象,起始设备和终止设备)
var cableProperties = AllPropsOfEng
.Where(x => x.ObjectTypeName.Contains("电缆") &&
- (x.PropertyName == "起始设备" || x.PropertyName == "终止设备"))
+ (x.PropertyName == GlobalObject.propName_From || x.PropertyName == GlobalObject.propName_To))
.ToList();
// 提取所有 CableID
@@ -474,36 +474,34 @@ namespace Learun.Application.TwoDevelopment.ZZDT_EC
{
if (cableRelDict.TryGetValue(changeprofromto.EngineDataID, out var conn))
{
- if (changeprofromto.PropertyName == "起始设备")
+ if (changeprofromto.PropertyName == GlobalObject.propName_From)
{
changeprofromto.PropertyValue = conn.End1Tag;
}
- else if (changeprofromto.PropertyName == "终止设备")
+ else if (changeprofromto.PropertyName == GlobalObject.propName_To)
{
changeprofromto.PropertyValue = conn.End2Tag;
}
}
}
+
+ // 构建一个字典,key = (EngineDataID, PropertyID),value = PropertyValue
+ var propDict = AllPropsOfEng
+ .GroupBy(x => (x.EngineDataID, x.PropertyID))
+ .ToDictionary(g => g.Key, g => g.First().PropertyValue);
+
//检查必填属性
foreach (var checkproperty in NeedCheckProperties)
{
- //如果ec_enginedata_propety里面没有必填属性要求的这个属性,就代表没有保存,认为是没有填值,为空
- if (AllPropsOfEng.Where(x => x.EngineDataID == checkproperty.EngineDataID).Select(x => x.PropertyID).Contains(checkproperty.PropertyID))
+ var key = (checkproperty.EngineDataID, checkproperty.PropertyID);
+ if (propDict.TryGetValue(key, out var propertyValue))
{
- var PropertyValue = AllPropsOfEng
- .FirstOrDefault(x =>
- x.EngineDataID == checkproperty.EngineDataID &&
- x.PropertyID == checkproperty.PropertyID)
- ?.PropertyValue;
- //foreach (var property in AllPropsOfEng)
- //{
//如果ec_enginedata_propety里面的EngineDataID等于需要检查对象的EngineDataID,且属性ID也能对上,且属性值为空或者NULL,则认为没有填写
- if (string.IsNullOrEmpty(PropertyValue) || PropertyValue == "0")
- {
- errText = $"图面有对象【{checkproperty.TagNumber}】在即时更新阶段的必填属性【{checkproperty.PropertyName}】值为空,不能检入,请执行“属性检查”功能对图纸进行属性检查。";
- return res = false;
- }
- //}
+ if (string.IsNullOrEmpty(propertyValue) || propertyValue == "0")
+ {
+ errText = $"图面有对象【{checkproperty.TagNumber}】在即时更新阶段的必填属性【{checkproperty.PropertyName}】值为空,不能检入,请执行“属性检查”功能对图纸进行属性检查。";
+ return res = false;
+ }
}
else
{
@@ -525,7 +523,7 @@ namespace Learun.Application.TwoDevelopment.ZZDT_EC
TagNumber = ee.TagNumber,
ObjectTypeID = ee.ObjectTypeID,
PropertyID = ote.PropertyID,
- PropertyName=epe.PropertyName,
+ PropertyName = epe.PropertyName,
PropertyGID = epe.PropertyGID,
IsRequired = ote.IsRequired,
dependency_type = SqlFunc.IIF(SqlFunc.IsNullOrEmpty(ote.dependency_type), dependency_type.RequireNone, ote.dependency_type),
@@ -535,131 +533,140 @@ namespace Learun.Application.TwoDevelopment.ZZDT_EC
ValueInGroup = false
})
.ToList();
+ // ====== [1] 提前建索引,避免循环里反复Where ======
+
+ // AllPropsOfEng 索引: (EngineDataID, PropertyID) -> 属性对象
+ var allPropsDict = AllPropsOfEng
+ .GroupBy(x => (x.EngineDataID, x.PropertyID))
+ .ToDictionary(g => g.Key, g => g.First());
+
+ // quaryNeedCheckPropertiesDependency 索引: (EngineDataID, PropertyID) -> Dependency对象
+ var depDict = quaryNeedCheckPropertiesDependency
+ .GroupBy(x => (x.EngineDataID, x.PropertyID))
+ .ToDictionary(g => g.Key, g => g.First());
+
+ // 索引: (PropertyID, ObjectTypeID) -> Dependency对象 (用于 RequireIf)
+ var depByPropObjDict = quaryNeedCheckPropertiesDependency
+ .GroupBy(x => (x.PropertyID, x.ObjectTypeID))
+ .ToDictionary(g => g.Key, g => g.First());
+
+ // 索引: (PropertyGID, EngineDataID) -> List (用于 RequireMutually)
+ var depByGroupDict = quaryNeedCheckPropertiesDependency
+ .GroupBy(x => (x.PropertyGID, x.EngineDataID))
+ .ToDictionary(g => g.Key, g => g.ToList());
foreach (var checkproperty in quaryNeedCheckPropertiesDependency)
{
- //先看前置属性必填的情况
+ // ----------------- RequireIfRequired -----------------
if (checkproperty.dependency_type == dependency_type.RequireIfRequired
&& !string.IsNullOrEmpty(checkproperty.trigger_property_id))
{
- //获得关联对象是否必填
- var depObjIsNotRequired = quaryNeedCheckPropertiesDependency
- .Where(x => x.EngineDataID == checkproperty.EngineDataID
- && x.PropertyID == checkproperty.trigger_property_id)
- .Select(x => x.IsRequired)
- .FirstOrDefault();
- //如果关联对象是必填的,那么就需要检查属性本身的值是不是空或者0
- if (depObjIsNotRequired == 1 && checkproperty.IsRequired == 1)//前置属性即时更新版必填的话,自己的即时更新版也必填,不然本身自己也显示不到EXCEL里面
+ if (depDict.TryGetValue((checkproperty.EngineDataID, checkproperty.trigger_property_id), out var depObj)
+ && depObj.IsRequired == 1 && checkproperty.IsRequired == 1)
{
- var PropertyValue = AllPropsOfEng
- .FirstOrDefault(x =>
- x.EngineDataID == checkproperty.EngineDataID &&
- x.PropertyID == checkproperty.PropertyID)
- ?.PropertyValue;
- //foreach (var property in AllPropsOfEng.Where(x=>x.EngineDataID.Equals(checkproperty.EngineDataID)))
- //{
- //判断当前属性的值是不是为空、为NULL还是为0,如果是的话,报错
- if (string.IsNullOrEmpty(PropertyValue) || PropertyValue == "0")
+ if (allPropsDict.TryGetValue((checkproperty.EngineDataID, checkproperty.PropertyID), out var prop))
+ {
+ var value = prop.PropertyValue;
+ if (string.IsNullOrEmpty(value) || value == "0")
{
errText = $"图面有对象【{checkproperty.TagNumber}】,其前置属性设置了必填,所以属性【{checkproperty.PropertyName}】本身也必须填值,不然不能检入,请执行“属性检查”功能对图纸进行属性检查。";
return res = false;
}
- //}
+ }
}
-
}
- //前置属性符合某种条件时
+ // ----------------- RequireIf -----------------
if (checkproperty.dependency_type == dependency_type.RequireIf
&& !string.IsNullOrEmpty(checkproperty.trigger_property_id)
&& !string.IsNullOrEmpty(checkproperty.trigger_operator)
&& !string.IsNullOrEmpty(checkproperty.trigger_value))
{
- var triggerOperator = checkproperty.trigger_operator;
- var triggerValue = checkproperty.trigger_value;
var triggerPropertyId = checkproperty.trigger_property_id;
- //先从该对象的属性列表里面找前置条件的那个属性,如果没有找到,证明前置属性为NULL,就是空,那么也就不用继续考虑本身是不是为空了
- if (AllPropsOfEng.Where(x => x.EngineDataID == checkproperty.EngineDataID).Select(x => x.PropertyID).Contains(triggerPropertyId))
+
+ // 如果前置属性在 AllProps 里面找不到,就直接跳过
+ if (allPropsDict.ContainsKey((checkproperty.EngineDataID, triggerPropertyId)))
{
- //找到上级的Isrequired值
- var upObjectIsRequired = quaryNeedCheckPropertiesDependency.Where(x => x.PropertyID.Equals(triggerPropertyId) && x.ObjectTypeID.Equals(checkproperty.ObjectTypeID)).Select(x => x.IsRequired).FirstOrDefault();
- //当前属性的IsRequired和上级的IsRequired都是即时更新版必填时才可以去做检入时检查
- if (upObjectIsRequired == 1 && checkproperty.IsRequired == 1)
+ if (depByPropObjDict.TryGetValue((triggerPropertyId, checkproperty.ObjectTypeID), out var upObj)
+ && upObj.IsRequired == 1 && checkproperty.IsRequired == 1)
{
- var PropertyValue = AllPropsOfEng
- .FirstOrDefault(x =>
- x.EngineDataID == checkproperty.EngineDataID &&
- x.PropertyID == checkproperty.PropertyID)
- ?.PropertyValue;
- //进入循环了,证明能找到前置属性
- //foreach (var property in AllPropsOfEng)
- //{
- //先判断当前属性值是不是空或者0,不是的话也就不用去进一步判断了,如果是空或者0,则去看她的前置属性
- if (string.IsNullOrEmpty(PropertyValue) || PropertyValue == "0")
+ // 当前属性值
+ string propertyValue = allPropsDict.TryGetValue((checkproperty.EngineDataID, checkproperty.PropertyID), out var prop)
+ ? prop.PropertyValue : null;
+
+ if (string.IsNullOrEmpty(propertyValue) || propertyValue == "0")
+ {
+ // 找上级属性值
+ if (!allPropsDict.TryGetValue((checkproperty.EngineDataID, triggerPropertyId), out var upProp))
{
- //取当前属性的上级联动属性值
- var upPropertyValue = AllPropsOfEng?.Where(x =>
- x?.EngineDataID != null
- && x.PropertyID != null
- && x.EngineDataID.Equals(checkproperty?.EngineDataID)
- && x.PropertyID.Equals(triggerPropertyId)).FirstOrDefault();
- if (upPropertyValue == null)
- {
- errText = $"图面对象【{checkproperty.TagNumber}】,其属性【{checkproperty.PropertyName}】的前置属性【{triggerPropertyId}】找不到。请管理员确认。";
- return res = false;
- }
- //如果上级属性值符合条件,那么同时根据上面的判断,当前属性值不是空就是0,那么需要报错
- if ((triggerOperator == "=" && upPropertyValue.PropertyValue.ToUpper().Equals(triggerValue.ToUpper())) ||
- (triggerOperator == ">" && double.Parse(upPropertyValue.PropertyValue) > double.Parse(triggerValue)) ||
- (triggerOperator == "<" && double.Parse(upPropertyValue.PropertyValue) < double.Parse(triggerValue)) ||
- (triggerOperator == "!=" && !upPropertyValue.PropertyValue.ToUpper().Equals(triggerValue.ToUpper())))
- {
- errText = $"图面有对象【{checkproperty.TagNumber}】,其前置属性【{upPropertyValue.PropertyName}】符合{triggerOperator}条件,所以属性本身【{checkproperty.PropertyName}】必须填值,不然不能检入,请执行“属性检查”功能对图纸进行属性检查。";
- return res = false;
- }
+ errText = $"图面对象【{checkproperty.TagNumber}】,其属性【{checkproperty.PropertyName}】的前置属性【{triggerPropertyId}】找不到。请管理员确认。";
+ return res = false;
}
- //}
+
+ // 判断触发条件
+ bool conditionMet = false;
+ var triggerValue = checkproperty.trigger_value;
+ var triggerOperator = checkproperty.trigger_operator;
+
+ switch (triggerOperator)
+ {
+ case "=":
+ conditionMet = upProp.PropertyValue?.Equals(triggerValue, StringComparison.OrdinalIgnoreCase) == true;
+ break;
+ case "!=":
+ conditionMet = !upProp.PropertyValue?.Equals(triggerValue, StringComparison.OrdinalIgnoreCase) == true;
+ break;
+ case ">":
+ if (double.TryParse(upProp.PropertyValue, out var upVal) &&
+ double.TryParse(triggerValue, out var trgVal))
+ conditionMet = upVal > trgVal;
+ break;
+ case "<":
+ if (double.TryParse(upProp.PropertyValue, out var upVal2) &&
+ double.TryParse(triggerValue, out var trgVal2))
+ conditionMet = upVal2 < trgVal2;
+ break;
+ }
+
+ if (conditionMet)
+ {
+ errText = $"图面有对象【{checkproperty.TagNumber}】,其前置属性【{upProp.PropertyName}】符合{triggerOperator}条件,所以属性本身【{checkproperty.PropertyName}】必须填值,不然不能检入,请执行“属性检查”功能对图纸进行属性检查。";
+ return res = false;
+ }
+ }
}
}
}
- //最后看组内互斥,检入的话只检查即时更新版的
+ // ----------------- RequireMutually -----------------
if (checkproperty.dependency_type == dependency_type.RequireMutually
&& checkproperty.ValueInGroup == false
- && checkproperty.IsRequired==1)
+ && checkproperty.IsRequired == 1)
{
- var PgID = string.Empty;
- //如果ec_enginedata_propety里面没有必填属性要求的这个属性,就代表没有保存,认为是没有填值,为空
- if (AllPropsOfEng.Where(x => x.EngineDataID == checkproperty.EngineDataID).Select(x => x.PropertyID).Contains(checkproperty.PropertyID))
+ if (allPropsDict.TryGetValue((checkproperty.EngineDataID, checkproperty.PropertyID), out var prop))
{
- var PropertyValue = AllPropsOfEng
- .FirstOrDefault(x =>
- x.EngineDataID == checkproperty.EngineDataID &&
- x.PropertyID == checkproperty.PropertyID)
- ?.PropertyValue;
- //foreach (var property in AllPropsOfEng)
- //{
- //如果ec_enginedata_propety里面的EngineDataID等于需要检查对象的EngineDataID,且属性ID也能对上,也属于同一group,且属性值为空或者NULL,则认为没有填写
- if (!string.IsNullOrEmpty(PropertyValue) && PropertyValue != "0")
- {
- PgID = checkproperty.PropertyGID;//获得有属性值的属性组ID
- //break;
- }
- //}
- if (!string.IsNullOrEmpty(PgID))
+ var value = prop.PropertyValue;
+ if (!string.IsNullOrEmpty(value) && value != "0")
{
- foreach (var propertyvalue in quaryNeedCheckPropertiesDependency
- .Where(x => x.PropertyGID == PgID
- && x.EngineDataID == checkproperty.EngineDataID
- && x.dependency_type == dependency_type.RequireMutually))
+ // 有属性值 → 找到组
+ var groupKey = (checkproperty.PropertyGID, checkproperty.EngineDataID);
+ if (depByGroupDict.TryGetValue(groupKey, out var groupList))
{
- //把这个对象上只要属于这个检查组的ValueInGroup都打上标记,代表检查组里面至少有一个属性是有值的
- propertyvalue.ValueInGroup = true;
+ foreach (var dep in groupList)
+ {
+ dep.ValueInGroup = true;
+ }
}
}
}
}
}
- var lstValueGroup = quaryNeedCheckPropertiesDependency.Where(x => x.dependency_type == dependency_type.RequireMutually && x.IsRequired== 1).Select(x => new { x.ValueInGroup, x.EngineDataID }).Distinct().ToList();
+ // ====== [3] 组内互斥最后检查 ======
+ var lstValueGroup = quaryNeedCheckPropertiesDependency
+ .Where(x => x.dependency_type == dependency_type.RequireMutually && x.IsRequired == 1)
+ .Select(x => new { x.ValueInGroup, x.EngineDataID })
+ .Distinct()
+ .ToList();
+
foreach (var item in lstValueGroup)
{
if (item.ValueInGroup == false)
@@ -753,7 +760,7 @@ namespace Learun.Application.TwoDevelopment.ZZDT_EC
.LeftJoin((edp, ede) => edp.EngineDataID == ede.EngineDataID).AS(enginedataTableName)
.LeftJoin((edp, ede, eot) => ede.ObjectTypeID == eot.ObjectTypeID).AS(objectTypeTableName)
.Where((edp, ede, eot) => edp.DeleteFlg == 0 && edp.DrawingFileID == drawingFileID
- && !eot.FullPathCN.EndsWith("图框") && !eot.FullPathCN.EndsWith(GlobalObject.objectType_Base) && !eot.FullPathCN.EndsWith("OPC"))
+ && !eot.FullPathCN.EndsWith("图框") && !eot.FullPathCN.EndsWith(GlobalObject.objectType_Base) && !eot.FullPathCN.EndsWith(GlobalObject.objectType_OPC))
.Select((edp, ede, eot) => edp.EngineDataID)
.Distinct()
.ToList();
@@ -812,7 +819,7 @@ namespace Learun.Application.TwoDevelopment.ZZDT_EC
// 获取所有需要处理的属性(只包含电缆对象,起始设备和终止设备)
var cableProperties = quaryPropertiesOfEng
.Where(x => x.ObjectTypeName.Contains("电缆") &&
- (x.PropertyName == "起始设备" || x.PropertyName == "终止设备"))
+ (x.PropertyName == GlobalObject.propName_From || x.PropertyName == GlobalObject.propName_To))
.ToList();
// 提取所有 CableID
@@ -826,16 +833,17 @@ namespace Learun.Application.TwoDevelopment.ZZDT_EC
{
if (cableRelDict.TryGetValue(changeprofromto.EngineDataID, out var conn))
{
- if (changeprofromto.PropertyName == "起始设备")
+ if (changeprofromto.PropertyName == GlobalObject.propName_From)
{
changeprofromto.PropertyValue = conn.End1Tag;
}
- else if (changeprofromto.PropertyName == "终止设备")
+ else if (changeprofromto.PropertyName == GlobalObject.propName_To)
{
changeprofromto.PropertyValue = conn.End2Tag;
}
}
}
+
//没有依赖对象但要必填的循环
foreach (var checkproperty in quaryNeedCheckProperties)
{
@@ -849,12 +857,12 @@ namespace Learun.Application.TwoDevelopment.ZZDT_EC
?.PropertyValue;
//foreach (var property in quaryPropertiesOfEng)
//{
- //如果ec_enginedata_propety里面的EngineDataID等于需要检查对象的EngineDataID,且属性ID也能对上,且属性值为空或者NULL,则认为没有填写
- if (string.IsNullOrEmpty(PropertyValue) || PropertyValue == "0")
- {
- errText = "图面有对象在" + reversion + "阶段或者之前阶段的必填属性值为空,不能发布,请执行“属性检查”功能对图纸进行属性检查。";
- return res = false;
- }
+ //如果ec_enginedata_propety里面的EngineDataID等于需要检查对象的EngineDataID,且属性ID也能对上,且属性值为空或者NULL,则认为没有填写
+ if (string.IsNullOrEmpty(PropertyValue) || PropertyValue == "0")
+ {
+ errText = "图面有对象在" + reversion + "阶段或者之前阶段的必填属性值为空,不能发布,请执行“属性检查”功能对图纸进行属性检查。";
+ return res = false;
+ }
//}
}
else
@@ -909,12 +917,12 @@ namespace Learun.Application.TwoDevelopment.ZZDT_EC
?.PropertyValue;
//foreach (var property in quaryPropertiesOfEng)
//{
- //判断当前属性的值是不是为空、为NULL还是为0,如果是的话,报错
- if (string.IsNullOrEmpty(PropertyValue) || PropertyValue == "0")
- {
- errText = "图面有对象她的前置属性在" + reversion + "阶段或者再之前阶段设置了必填,所以她必须填值,不然不能发布,请执行“属性检查”功能对图纸进行属性检查。";
- return res = false;
- }
+ //判断当前属性的值是不是为空、为NULL还是为0,如果是的话,报错
+ if (string.IsNullOrEmpty(PropertyValue) || PropertyValue == "0")
+ {
+ errText = "图面有对象她的前置属性在" + reversion + "阶段或者再之前阶段设置了必填,所以她必须填值,不然不能发布,请执行“属性检查”功能对图纸进行属性检查。";
+ return res = false;
+ }
//}
}
}
@@ -945,26 +953,26 @@ namespace Learun.Application.TwoDevelopment.ZZDT_EC
//进入循环了,证明能找到前置属性
//foreach (var property in quaryPropertiesOfEng)
//{
- //先判断当前属性值是不是空或者0,不是的话也就不用去进一步判断了,如果是空或者0,则去看她的前置属性
- if (string.IsNullOrEmpty(PropertyValue) || PropertyValue == "0")
+ //先判断当前属性值是不是空或者0,不是的话也就不用去进一步判断了,如果是空或者0,则去看她的前置属性
+ if (string.IsNullOrEmpty(PropertyValue) || PropertyValue == "0")
+ {
+ //取当前属性的上级联动属性值
+ var upPropertyValue = quaryPropertiesOfEng?.Where(x =>
+ x?.EngineDataID != null
+ && x.PropertyID != null
+ && x.EngineDataID.Equals(checkproperty?.EngineDataID)
+ && x.PropertyID.Equals(triggerPropertyId))
+ .Select(x => x.PropertyValue).FirstOrDefault();
+ //如果上级属性值符合条件,那么同时根据上面的判断,当前属性值不是空就是0,那么需要报错
+ if ((triggerOperator == "=" && upPropertyValue.ToUpper().Equals(triggerValue.ToUpper())) ||
+ (triggerOperator == ">" && double.Parse(upPropertyValue) > double.Parse(triggerValue)) ||
+ (triggerOperator == "<" && double.Parse(upPropertyValue) < double.Parse(triggerValue)) ||
+ (triggerOperator == "!=" && !upPropertyValue.ToUpper().Equals(triggerValue.ToUpper())))
{
- //取当前属性的上级联动属性值
- var upPropertyValue = quaryPropertiesOfEng?.Where(x =>
- x?.EngineDataID != null
- && x.PropertyID != null
- && x.EngineDataID.Equals(checkproperty?.EngineDataID)
- && x.PropertyID.Equals(triggerPropertyId))
- .Select(x => x.PropertyValue).FirstOrDefault();
- //如果上级属性值符合条件,那么同时根据上面的判断,当前属性值不是空就是0,那么需要报错
- if ((triggerOperator == "=" && upPropertyValue.ToUpper().Equals(triggerValue.ToUpper())) ||
- (triggerOperator == ">" && double.Parse(upPropertyValue) > double.Parse(triggerValue)) ||
- (triggerOperator == "<" && double.Parse(upPropertyValue) < double.Parse(triggerValue)) ||
- (triggerOperator == "!=" && !upPropertyValue.ToUpper().Equals(triggerValue.ToUpper())))
- {
- errText = "图面有对象她的前置属性符合某种条件,所以她必须填值,不然不能在" + reversion + "阶段发布,请执行“属性检查”功能对图纸进行属性检查。";
- return res = false;
- }
+ errText = "图面有对象她的前置属性符合某种条件,所以她必须填值,不然不能在" + reversion + "阶段发布,请执行“属性检查”功能对图纸进行属性检查。";
+ return res = false;
}
+ }
//}
}
}
@@ -985,12 +993,12 @@ namespace Learun.Application.TwoDevelopment.ZZDT_EC
?.PropertyValue;
//foreach (var property in quaryPropertiesOfEng)
//{
- //如果ec_enginedata_propety里面的EngineDataID等于需要检查对象的EngineDataID,且属性ID也能对上,也属于同一group,且属性值为空或者NULL,则认为没有填写
- if (!string.IsNullOrEmpty(PropertyValue) && PropertyValue != "0")
- {
- PgID = checkproperty.PropertyGID;//获得有属性值的属性组ID
- //break;
- }
+ //如果ec_enginedata_propety里面的EngineDataID等于需要检查对象的EngineDataID,且属性ID也能对上,也属于同一group,且属性值为空或者NULL,则认为没有填写
+ if (!string.IsNullOrEmpty(PropertyValue) && PropertyValue != "0")
+ {
+ PgID = checkproperty.PropertyGID;//获得有属性值的属性组ID
+ //break;
+ }
//}
if (!string.IsNullOrEmpty(PgID))
{
@@ -1007,7 +1015,7 @@ namespace Learun.Application.TwoDevelopment.ZZDT_EC
}
}
- var lstValueGroup = quaryNeedCheckPropertiesDependency.Where(x => x.dependency_type == dependency_type.RequireMutually && x.IsRequired<=period).Select(x => x.ValueInGroup).Distinct().ToList();
+ var lstValueGroup = quaryNeedCheckPropertiesDependency.Where(x => x.dependency_type == dependency_type.RequireMutually && x.IsRequired <= period).Select(x => x.ValueInGroup).Distinct().ToList();
foreach (var item in lstValueGroup)
{
if (item == false)
@@ -1032,7 +1040,7 @@ namespace Learun.Application.TwoDevelopment.ZZDT_EC
/// 表名
/// 当前的DataItemName
/// 最上层的Name
- public string GetTopParentDataItemDetail(string DtatTableName, string strDataItemName)
+ private string GetTopParentDataItemDetail(string DtatTableName, string strDataItemName)
{
// 先找到初始节点
var current = SqlSugarHelper.Db.Queryable().AS(DtatTableName).Where(x => x.DataItemName == strDataItemName).First();
@@ -1150,7 +1158,7 @@ namespace Learun.Application.TwoDevelopment.ZZDT_EC
/// 电缆ID(LIST)
/// 项目编号
/// 电缆连接信息
- public List GetCableConnListBatch(List cableIds, string projectId)
+ private List GetCableConnListBatch(List cableIds, string projectId)
{
ec_enginedata_relBLL relbll = new ec_enginedata_relBLL();
var allRel = relbll.GetList($"{{ProjectId:\"{projectId}\", RelType:\"{(int)enum_RelType.设备_电缆}\"}}")
@@ -1212,7 +1220,7 @@ namespace Learun.Application.TwoDevelopment.ZZDT_EC
// 筛选出“真实设备”,这里排除OPC、通讯器等中转对象
var deviceTags = endpointInfo
- .Where(x => !x.objectType?.Contains("OPC")??false)
+ .Where(x => !x.objectType?.Contains(GlobalObject.objectType_OPC) ?? false)
.Select(x => x.tagNumber)
.Where(tag => !string.IsNullOrWhiteSpace(tag))
.Distinct()
diff --git a/Learun.Framework.Module/Learun.Application.Module/Learun.Application.TwoDevelopment/ZZDT_EC/ec_enginedata_pixel/ec_enginedata_pixelIBLL.cs b/Learun.Framework.Module/Learun.Application.Module/Learun.Application.TwoDevelopment/ZZDT_EC/ec_enginedata_pixel/ec_enginedata_pixelIBLL.cs
index 12a18e14..e2d78bfd 100644
--- a/Learun.Framework.Module/Learun.Application.Module/Learun.Application.TwoDevelopment/ZZDT_EC/ec_enginedata_pixel/ec_enginedata_pixelIBLL.cs
+++ b/Learun.Framework.Module/Learun.Application.Module/Learun.Application.TwoDevelopment/ZZDT_EC/ec_enginedata_pixel/ec_enginedata_pixelIBLL.cs
@@ -19,7 +19,7 @@ namespace Learun.Application.TwoDevelopment.ZZDT_EC
/// 获取列表数据
///
///
- IEnumerable GetList(string queryJson);
+ IEnumerable GetList(string queryJson,string projId);
///
/// 获取工程数据图元表数据
///
diff --git a/Learun.Framework.Module/Learun.Application.Module/Learun.Application.TwoDevelopment/ZZDT_EC/ec_enginedata_pixel/ec_enginedata_pixelService.cs b/Learun.Framework.Module/Learun.Application.Module/Learun.Application.TwoDevelopment/ZZDT_EC/ec_enginedata_pixel/ec_enginedata_pixelService.cs
index 5338facc..8a278954 100644
--- a/Learun.Framework.Module/Learun.Application.Module/Learun.Application.TwoDevelopment/ZZDT_EC/ec_enginedata_pixel/ec_enginedata_pixelService.cs
+++ b/Learun.Framework.Module/Learun.Application.Module/Learun.Application.TwoDevelopment/ZZDT_EC/ec_enginedata_pixel/ec_enginedata_pixelService.cs
@@ -78,7 +78,7 @@ left JOIN ec_enginedata_{ProjectEntity.ProjectIndex} t3 ON t3.EngineDataID = t1.
///
/// 是否需要查询出被删的
///
- public IEnumerable GetList(string queryJson, bool NeedDeleted = false)
+ public IEnumerable GetList(string queryJson, string projId, bool NeedDeleted = false)
{
try
{
@@ -93,7 +93,7 @@ left JOIN ec_enginedata_{ProjectEntity.ProjectIndex} t3 ON t3.EngineDataID = t1.
else
{
//var ProjectEntity = this.BaseRepository().FindEntity(queryParam["ProjectId"].ToString());
- var ProjectEntity = new ec_projectBLL().GetEntity(queryParam["ProjectId"].ToString());
+ var ProjectEntity = new ec_projectBLL().GetEntity(projId);
strSql.Append($@" FROM ec_enginedata_pixel_{ProjectEntity.ProjectIndex} t1
JOIN ec_drawing_file_{ProjectEntity.ProjectIndex} t2 ON t2.DrawingFileID = t1.DrawingFileID
JOIN ec_enginedata_{ProjectEntity.ProjectIndex} t3 ON t3.EngineDataID = t1.EngineDataID
@@ -553,8 +553,12 @@ left JOIN ec_enginedata_{ProjectEntity.ProjectIndex} t3 ON t3.EngineDataID = t1.
SqlSugarHelper.Db.BeginTran();
try
{
+ if (string.IsNullOrWhiteSpace(ProjectId))
+ {
+ return;
+ }
//获取某个图纸上的图元数据
- var existPixels = this.GetList("{\"ProjectId\":\"" + ProjectId + "\",\"DrawingFileID\":\"" + drawingFileID + "\"}", true).ToList();
+ var existPixels = this.GetList("{\"ProjectId\":\"" + ProjectId + "\",\"DrawingFileID\":\"" + drawingFileID + "\"}", ProjectId, true).ToList();
ec_projectEntity ProjectEntity = new ec_projectEntity();
if (!string.IsNullOrWhiteSpace(ProjectId))
{
@@ -583,32 +587,42 @@ left JOIN ec_enginedata_{ProjectEntity.ProjectIndex} t3 ON t3.EngineDataID = t1.
//存在
it.DeleteFlg = 0;
}
+
}
- _enginedataPixelRepository.AsUpdateable(existPixels).AS($"ec_enginedata_pixel_{ProjectEntity.ProjectIndex}").ExecuteCommand();
- if (string.IsNullOrWhiteSpace(ProjectId))
+ _enginedataPixelRepository.AsUpdateable(existPixels).AS($"ec_enginedata_pixel_{ProjectEntity.ProjectIndex}").ExecuteCommand();//batch commit
+
+
+
+ //db.ExecuteBySql($@"UPDATE ec_enginedata_{ ProjectEntity.ProjectIndex} T1
+ // SET DataStatus = '00001'
+ // WHERE (SELECT COUNT(*) FROM ec_enginedata_pixel_{ ProjectEntity.ProjectIndex} WHERE EngineDataID = T1.EngineDataID ) <= 0");
+ //db.ExecuteBySql($@"UPDATE ec_enginedata_{ProjectEntity.ProjectIndex} T1
+ // SET DataStatus = '00002'
+ // WHERE (SELECT COUNT(*) FROM ec_enginedata_pixel_{ProjectEntity.ProjectIndex} WHERE EngineDataID = T1.EngineDataID ) > 0 AND DataStatus != '00003'");
+
+ var tagTbName = TableName(ProjectId);
+ var tags = SqlSugarHelper.Db.Queryable().AS(tagTbName).
+ Where(t => existPixels.Select(x => x.EngineDataID).Distinct().Contains(t.EngineDataID) && t.DataStatus != "00003").ToList();
+
+ foreach (var tag in tags)
{
+ tag.DataStatus = "00002";tag.Modify();
}
- else
- {
- //db.ExecuteBySql($@"UPDATE ec_enginedata_{ ProjectEntity.ProjectIndex} T1
- // SET DataStatus = '00001'
- // WHERE (SELECT COUNT(*) FROM ec_enginedata_pixel_{ ProjectEntity.ProjectIndex} WHERE EngineDataID = T1.EngineDataID ) <= 0");
- //db.ExecuteBySql($@"UPDATE ec_enginedata_{ProjectEntity.ProjectIndex} T1
- // SET DataStatus = '00002'
- // WHERE (SELECT COUNT(*) FROM ec_enginedata_pixel_{ProjectEntity.ProjectIndex} WHERE EngineDataID = T1.EngineDataID ) > 0 AND DataStatus != '00003'");
- foreach (var EngineDataID in existPixels.Select(x => x.EngineDataID).Distinct())
- {
- if (EngineDataID != null)
- {
- SqlSugarHelper.Db.Ado.ExecuteCommand($@"UPDATE ec_enginedata_{ProjectEntity.ProjectIndex} T1
- SET DataStatus = '00002'
- WHERE DataStatus != '00003' and EngineDataID='{EngineDataID}'");
- }
+ SqlSugarHelper.Db.Updateable(tags).AS(tagTbName).UpdateColumns(x => x.DataStatus).ExecuteCommand();
+ //foreach (var EngineDataID in existPixels.Select(x => x.EngineDataID).Distinct())
+ //{
+ // if (EngineDataID != null)
+ // {
+ // SqlSugarHelper.Db.Ado.ExecuteCommand($@"UPDATE ec_enginedata_{ProjectEntity.ProjectIndex} T1
+ // SET DataStatus = '00002'
+ // WHERE DataStatus != '00003' and EngineDataID='{EngineDataID}'");
+ // }
- };
- }
+ //}
+ //;
+
SqlSugarHelper.Db.CommitTran();
}
diff --git a/Learun.Framework.Module/Learun.Application.Module/Learun.Application.TwoDevelopment/ZZDT_EC/ec_enginedata_rel/ec_enginedata_relBLL.cs b/Learun.Framework.Module/Learun.Application.Module/Learun.Application.TwoDevelopment/ZZDT_EC/ec_enginedata_rel/ec_enginedata_relBLL.cs
index a354c4ff..0d013c96 100644
--- a/Learun.Framework.Module/Learun.Application.Module/Learun.Application.TwoDevelopment/ZZDT_EC/ec_enginedata_rel/ec_enginedata_relBLL.cs
+++ b/Learun.Framework.Module/Learun.Application.Module/Learun.Application.TwoDevelopment/ZZDT_EC/ec_enginedata_rel/ec_enginedata_relBLL.cs
@@ -13,7 +13,7 @@ using System.Data;
using System.Diagnostics;
using System.Linq;
using System.Text.RegularExpressions;
-using System.Threading.Tasks;
+using System.Threading.Tasks;
using static Learun.Application.TwoDevelopment.ZZDT_EC.ProjectSugar;
using static Learun.Util.SqlSugar.SqlSugarHelper;
@@ -79,7 +79,7 @@ namespace Learun.Application.TwoDevelopment.ZZDT_EC
Where(x => x.DeleteFlg != 1).ToList();
var relTypeTbName = ProjectSugar.TableName(projId);
- var relType = Db.Queryable().AS(relTypeTbName).ToList().FirstOrDefault(x => x.RelType == ((int)enum_RelType.设备_电缆).ToString());
+ var relType = Db.Queryable().AS(relTypeTbName).ToList().FirstOrDefault(x => x.RelType == enum_RelType.设备_电缆);
var propBll = new ec_enginedata_propertyBLL();
@@ -176,7 +176,7 @@ namespace Learun.Application.TwoDevelopment.ZZDT_EC
Where(x => x.DeleteFlg != 1).ToList();
var relTypeTbName = ProjectSugar.TableName(projId);
- var relType = Db.Queryable().AS(relTypeTbName).ToList().FirstOrDefault(x => x.RelType == ((int)enum_RelType.设备_电缆).ToString());
+ var relType = Db.Queryable().AS(relTypeTbName).ToList().FirstOrDefault(x => x.RelType == enum_RelType.设备_电缆);
var allTagProps = SqlSugarHelper.Db.Queryable().AS(propTbName).ToList();
@@ -1348,7 +1348,7 @@ Select((a, b, c) => new
//根据句柄和图纸,先把工程id查出来先
var drawingID = CablePixelID.DrawingID;
var pixelID = CablePixelID.CablePixelID;
- var EngineDataIDs = pixelServ.GetList("{\"ProjectId\":\"" + ProjectId + "\",\"PixelCode\":\"" + pixelID + "\",\"DrawingFileID\":\"" + drawingID + "\"}").
+ var EngineDataIDs = pixelServ.GetList("{\"ProjectId\":\"" + ProjectId + "\",\"PixelCode\":\"" + pixelID + "\",\"DrawingFileID\":\"" + drawingID + "\"}", ProjectId).
Select(x => x.EngineDataID).Distinct();
if (EngineDataIDs != null && EngineDataIDs.Count() == 1)
{
@@ -1395,7 +1395,19 @@ Select((a, b, c) => new
var End2 = new ec_enginedata_relEntity();
//查单一记录
var existRel = this.GetList("{ProjectId:\"" + ProjectId + "\",RelType:\"" + (int)enum_RelType.设备_电缆 + "\",RelEngineDataID:\"" + CableID + "\"}").ToList();
- if (existRel.Any(x => !string.IsNullOrEmpty(x.OPCPixel)))
+ //需要换判断了,现在所有东西都有存这个
+ var tagIds = existRel.Select(x => x.RelEngineData1ID).ToList();
+ tagIds.AddRange(existRel.Select(x => x.RelEngineData2ID).ToList());
+ tagIds = tagIds.Where(X => X != CableID).Distinct().ToList();
+
+ var tbName = ProjectSugar.TableName(ProjectId);
+ var typeTbName = ProjectSugar.TableName(ProjectId);
+ var tags = SqlSugarHelper.Db.Queryable().AS(tbName).
+ InnerJoin((t, t2) => t.ObjectTypeID == t2.ObjectTypeID).AS(typeTbName).
+ Where(t => tagIds.Contains(t.EngineDataID)).
+ Select((t, t2) => new { t.EngineDataID, t.TagNumber, t2.ObjectTypeName }).ToList();
+
+ if (tags.Any(x => x.ObjectTypeName == GlobalObject.objectType_OPC))
{
//OPC
var tb = ProjectSugar.TableName(ProjectId);
@@ -1420,6 +1432,7 @@ Select((a, b, c) => new
}
else
{
+ //正常情况
existRel = existRel.Where(X => X.RelEngineData1ID != opcId.EngineDataID && X.RelEngineData2ID != opcId.EngineDataID).ToList();//排除opc的,留下电缆的
}
}
@@ -1444,11 +1457,11 @@ Select((a, b, c) => new
}
- public class ec_enginedataEntity_2: ec_enginedataEntity
+ public class ec_enginedataEntity_2 : ec_enginedataEntity
{
}
- public class ec_objecttypeEntity_2: ec_objecttypeEntity
+ public class ec_objecttypeEntity_2 : ec_objecttypeEntity
{
}
@@ -1470,6 +1483,11 @@ Select((a, b, c) => new
var RelEngineData2ID = queryParam["RelEngineData2ID"]?.ToString();
var RelTypeName = queryParam["RelTypeName"]?.ToString();
var RelType = queryParam["RelType"]?.ToString();
+ enum_RelType RelEnum = default;
+ if (!string.IsNullOrEmpty(RelType) && Enum.TryParse(RelType, out RelEnum))
+ {
+
+ }
var TagNumber = queryParam["TagNumber"]?.ToString();
var tableName = TableName(ProjectId);
@@ -1490,8 +1508,8 @@ Select((a, b, c) => new
.WhereIF(!string.IsNullOrEmpty(RelEngineData1ID), a => a.RelEngineData1ID == RelEngineData1ID)
.WhereIF(!string.IsNullOrEmpty(RelEngineData2ID), a => a.RelEngineData2ID == RelEngineData2ID)
.WhereIF(!string.IsNullOrEmpty(RelTypeName), (a, b) => b.RelTypeName == RelTypeName)
- .WhereIF(!string.IsNullOrEmpty(RelType), (a, b) => b.RelType == RelType)
- .Select((a, b, t1,t2,o1,o2) => new ec_enginedata_relEntity
+ .WhereIF(!string.IsNullOrEmpty(RelType), (a, b) => b.RelType == RelEnum)
+ .Select((a, b, t1, t2, o1, o2) => new ec_enginedata_relEntity
{
EngineDataRelID = a.EngineDataRelID,
RelTypeID = a.RelTypeID,
@@ -1529,7 +1547,7 @@ Select((a, b, c) => new
// dataIds.Add(x.RelEngineData1ID);
// dataIds.Add(x.RelEngineData2ID);
//});
-
+
//dataIds.AddRange(list?.Select(x => x.RelEngineData1ID).Distinct());
//dataIds.AddRange(list?.Select(x => x.RelEngineData2ID).Distinct());
//dataIds = dataIds.Distinct().ToList();
@@ -1633,7 +1651,7 @@ Select((a, b, c) => new
/// 是否移除已有的,true的话,基本就是确保一对一的这种rel关系
///
///
- public void SaveEntitys(string ProjectId, string RelTypeID, string RelEngineData1ID, List relEngineData2IDs, bool NeedRemove = false)
+ public void SaveEntitys(string ProjectId, string RelTypeID, string RelEngineData1ID, List relEngineData2IDs, string tagPixelId, bool NeedRemove = false)
{
try
{
@@ -1653,7 +1671,8 @@ Select((a, b, c) => new
model.Create();
model.RelTypeID = RelTypeID;
model.RelEngineData1ID = RelEngineData1ID;
- model.RelEngineData2ID = item;
+ model.RelEngineData2ID = item;
+ model.OPCPixel = tagPixelId;//普通情况
engineDataRelAdd.Add(model);
continue;
}
@@ -1672,6 +1691,7 @@ Select((a, b, c) => new
model.RelTypeID = RelTypeID;
model.RelEngineData1ID = RelEngineData1ID;
model.RelEngineData2ID = item;
+ model.OPCPixel = tagPixelId;//普通情况
engineDataRelAdd.Add(model);
continue;
}
@@ -1688,7 +1708,7 @@ Select((a, b, c) => new
}
//engineDataRelDel = engineDataRel.Except(engineDataRelExcept).ToList();
List delEngineDataRelIDs = new List(); //engineDataRelDel.Select(x => x.EngineDataRelID).ToList();
- ec_enginedata_relService.SaveEntity(ProjectId, engineDataRelAdd, delEngineDataRelIDs);
+ ec_enginedata_relService.SaveEntity(ProjectId, engineDataRelAdd, delEngineDataRelIDs); //电缆在end1,进行最后的保存
}
catch (Exception ex)
{
@@ -1711,7 +1731,7 @@ Select((a, b, c) => new
///
/// 电缆ID,大概率
///
- public void SaveEntitys(string ProjectId, string RelTypeID, List RelEngineData1IDs, string relEngineData2ID, bool NeedRemove = false)
+ public void SaveEntitys(string ProjectId, string RelTypeID, List RelEngineData1IDs, string relEngineData2ID, string tagPixelId, bool NeedRemove = false)
{
try
{
@@ -1726,7 +1746,6 @@ Select((a, b, c) => new
foreach (var item in RelEngineData1IDs)
{
- //判断下是否为OPC
if (NeedRemove)
{
@@ -1737,6 +1756,7 @@ Select((a, b, c) => new
model.RelTypeID = RelTypeID;
model.RelEngineData1ID = item;
model.RelEngineData2ID = relEngineData2ID;
+ model.OPCPixel = tagPixelId;//普通情况
engineDataRelAdd.Add(model);
continue;
@@ -1759,6 +1779,7 @@ Select((a, b, c) => new
model.RelTypeID = RelTypeID;
model.RelEngineData1ID = item;
model.RelEngineData2ID = relEngineData2ID;
+ model.OPCPixel = tagPixelId;//普通情况
engineDataRelAdd.Add(model);
continue;
}
@@ -1775,7 +1796,7 @@ Select((a, b, c) => new
}
//engineDataRelDel = engineDataRel.Except(engineDataRelExcept).ToList();
List delEngineDataRelIDs = new List(); //engineDataRelDel.Select(x => x.EngineDataRelID).ToList();
- ec_enginedata_relService.SaveEntity(ProjectId, engineDataRelAdd, delEngineDataRelIDs);
+ ec_enginedata_relService.SaveEntity(ProjectId, engineDataRelAdd, delEngineDataRelIDs);//电缆在end2,进行最后的保存
}
catch (Exception ex)
{
diff --git a/Learun.Framework.Module/Learun.Application.Module/Learun.Application.TwoDevelopment/ZZDT_EC/ec_enginedata_rel/ec_enginedata_relIBLL.cs b/Learun.Framework.Module/Learun.Application.Module/Learun.Application.TwoDevelopment/ZZDT_EC/ec_enginedata_rel/ec_enginedata_relIBLL.cs
index 93c80b9e..cff0f09a 100644
--- a/Learun.Framework.Module/Learun.Application.Module/Learun.Application.TwoDevelopment/ZZDT_EC/ec_enginedata_rel/ec_enginedata_relIBLL.cs
+++ b/Learun.Framework.Module/Learun.Application.Module/Learun.Application.TwoDevelopment/ZZDT_EC/ec_enginedata_rel/ec_enginedata_relIBLL.cs
@@ -35,10 +35,10 @@ namespace Learun.Application.TwoDevelopment.ZZDT_EC
/// 主键
///
///
- void SaveEntitys(string ProjectId, string RelTypeID, string RelEngineData1ID, List relEngineData2IDs, bool NeedRemove = false);
+ void SaveEntitys(string ProjectId, string RelTypeID, string RelEngineData1ID, List relEngineData2IDs, string tagPixeId, bool NeedRemove = false);
+
+ void SaveEntitys(string ProjectId, string RelTypeID, List RelEngineData1IDs, string relEngineData2ID, string tagPixeId, bool NeedRemove = false);
- void SaveEntitys(string ProjectId, string RelTypeID, List RelEngineData1IDs, string relEngineData2ID, bool NeedRemove = false);
-
#endregion
diff --git a/Learun.Framework.Module/Learun.Application.Module/Learun.Application.TwoDevelopment/ZZDT_EC/ec_enginedata_rel/ec_enginedata_relService.cs b/Learun.Framework.Module/Learun.Application.Module/Learun.Application.TwoDevelopment/ZZDT_EC/ec_enginedata_rel/ec_enginedata_relService.cs
index a06229c8..8cfbcde0 100644
--- a/Learun.Framework.Module/Learun.Application.Module/Learun.Application.TwoDevelopment/ZZDT_EC/ec_enginedata_rel/ec_enginedata_relService.cs
+++ b/Learun.Framework.Module/Learun.Application.Module/Learun.Application.TwoDevelopment/ZZDT_EC/ec_enginedata_rel/ec_enginedata_relService.cs
@@ -201,7 +201,7 @@ namespace Learun.Application.TwoDevelopment.ZZDT_EC
var relTb = ProjectSugar.TableName(ProjId);
var relDataTb = ProjectSugar.TableName(ProjId);
var relTypes = SqlSugarHelper.Db.Queryable().AS(relTb).ToList();
- var relType = relTypes.FirstOrDefault(x => x.RelType == ((int)enum_RelType.设备_电缆).ToString());
+ var relType = relTypes.FirstOrDefault(x => x.RelType == enum_RelType.设备_电缆);
if (relType != null)
{
foreach (var cableId in cableIds)
diff --git a/Learun.Framework.Module/Learun.Application.Module/Learun.Application.TwoDevelopment/ZZDT_EC/ec_notification/ec_notificationBLL.cs b/Learun.Framework.Module/Learun.Application.Module/Learun.Application.TwoDevelopment/ZZDT_EC/ec_notification/ec_notificationBLL.cs
index fd4c6423..ee145c26 100644
--- a/Learun.Framework.Module/Learun.Application.Module/Learun.Application.TwoDevelopment/ZZDT_EC/ec_notification/ec_notificationBLL.cs
+++ b/Learun.Framework.Module/Learun.Application.Module/Learun.Application.TwoDevelopment/ZZDT_EC/ec_notification/ec_notificationBLL.cs
@@ -198,7 +198,7 @@ namespace Learun.Application.TwoDevelopment.ZZDT_EC
//DELETE
var tagsExisted = ec_EnginedataService.GetListBySQL("", ProjectId).Where(TAG => DateTime.Compare((DateTime)TAG.CreateTime, (DateTime)Drawing.CheckOutTime) < 0).OrderBy(x => x.ObjectTypeName);
//图纸上所有的pixel记录
- var pixelsExisted = new ec_enginedata_pixelService().GetList("{\"ProjectId\":\"" + ProjectId + "\",\"DrawingFileID\":\"" + DrawingID + "\"}").ToList();
+ var pixelsExisted = new ec_enginedata_pixelService().GetList("{\"ProjectId\":\"" + ProjectId + "\",\"DrawingFileID\":\"" + DrawingID + "\"}",ProjectId).ToList();
// 创建时间 早于 检出时间
foreach (var TAG in tagsExisted)
diff --git a/Learun.Framework.Module/Learun.Application.Module/Learun.Application.TwoDevelopment/ZZDT_EC/ec_objecttype/ec_objecttypeBLL.cs b/Learun.Framework.Module/Learun.Application.Module/Learun.Application.TwoDevelopment/ZZDT_EC/ec_objecttype/ec_objecttypeBLL.cs
index d2866218..dd7a7754 100644
--- a/Learun.Framework.Module/Learun.Application.Module/Learun.Application.TwoDevelopment/ZZDT_EC/ec_objecttype/ec_objecttypeBLL.cs
+++ b/Learun.Framework.Module/Learun.Application.Module/Learun.Application.TwoDevelopment/ZZDT_EC/ec_objecttype/ec_objecttypeBLL.cs
@@ -10,6 +10,7 @@ using System.IO;
using System.Linq;
using System.Web.Caching;
using System.Windows.Input;
+using static Learun.Application.TwoDevelopment.ZZDT_EC.GlobalEnum;
using static Learun.Application.TwoDevelopment.ZZDT_EC.ProjectSugar;
using static Learun.Util.SqlSugar.SqlSugarHelper;
@@ -86,7 +87,7 @@ namespace Learun.Application.TwoDevelopment.ZZDT_EC
if (dataType.Equals("2"))//2时,才额外需要
{
- listPixel = ec_enginedata_pixelBLL.GetList(queryJson).ToList();
+ listPixel = ec_enginedata_pixelBLL.GetList(queryJson,projectId).ToList();
listPixel = listPixel.Where(x => x.DeleteFlg != 1).ToList();
}
if (!string.IsNullOrEmpty(KeyWord))
diff --git a/Learun.Framework.Module/Learun.Application.Module/Learun.Application.TwoDevelopment/ZZDT_EC/ec_objecttype/ec_objecttypeEntity.cs b/Learun.Framework.Module/Learun.Application.Module/Learun.Application.TwoDevelopment/ZZDT_EC/ec_objecttype/ec_objecttypeEntity.cs
index 448d117b..49a45530 100644
--- a/Learun.Framework.Module/Learun.Application.Module/Learun.Application.TwoDevelopment/ZZDT_EC/ec_objecttype/ec_objecttypeEntity.cs
+++ b/Learun.Framework.Module/Learun.Application.Module/Learun.Application.TwoDevelopment/ZZDT_EC/ec_objecttype/ec_objecttypeEntity.cs
@@ -2,6 +2,7 @@
using SqlSugar;
using System;
using System.Collections.Generic;
+using static Learun.Application.TwoDevelopment.ZZDT_EC.GlobalEnum;
namespace Learun.Application.TwoDevelopment.ZZDT_EC
{
///
@@ -181,12 +182,6 @@ namespace Learun.Application.TwoDevelopment.ZZDT_EC
#endregion
}
- public enum specialType
- {
- 未定义 = 0,
- 电力一次 = 1,
- 电力二次 = 2,
- 系统柜 = 3,
- }
+
}
diff --git a/Learun.Framework.Module/Learun.Application.Module/Learun.Application.TwoDevelopment/ZZDT_EC/ec_objecttypep/ec_objecttypepBLL.cs b/Learun.Framework.Module/Learun.Application.Module/Learun.Application.TwoDevelopment/ZZDT_EC/ec_objecttypep/ec_objecttypepBLL.cs
index 7d0b4d92..5a035895 100644
--- a/Learun.Framework.Module/Learun.Application.Module/Learun.Application.TwoDevelopment/ZZDT_EC/ec_objecttypep/ec_objecttypepBLL.cs
+++ b/Learun.Framework.Module/Learun.Application.Module/Learun.Application.TwoDevelopment/ZZDT_EC/ec_objecttypep/ec_objecttypepBLL.cs
@@ -116,29 +116,54 @@ namespace Learun.Application.TwoDevelopment.ZZDT_EC
if (!string.IsNullOrEmpty(objectTypeID))
{
- RES = RES.Where(X => objectTypeID.Split(',').ToList().Contains(X.ObjectTypeID)).ToList();
+ RES = RES.Where(X => objectTypeID.Split(',').Contains(X.ObjectTypeID)).ToList();
}
var propBll = new ec_propertyBLL();
var allProp = propBll.GetListRedis(ProjectId);
+ // 提前构建Dictionary(键为PropertyID,值为对应的AllProp对象)
+ var allPropDict = allProp.ToDictionary(x => x.PropertyID);
var propGroupBll = new ec_propertygBLL();
var allGroup = propGroupBll.GetList("{ProjectId:\"" + ProjectId + "\"}");
+ var allGroupDict = allGroup.ToDictionary(x => x.PropertyGID);
var unitTypeBll = new ec_measuring_unittypeBLL();
var allUnitType = unitTypeBll.GetList("{ProjectId:\"" + ProjectId + "\"}");
+ var allUnitTypeDict = allUnitType.ToDictionary(x => x.MeasuringUnitTypeID);
var unitBll = new ec_measuring_unitBLL();
var allUnit = unitBll.GetListRedis(ProjectId);
+ var allUnitDict = allUnit.ToDictionary(x => x.MeasuringUnitID);
var detailBll = new ec_dataitemBLL();
var allDics = detailBll.GetList("{ProjectId:\"" + ProjectId + "\"}");
var allDetails = detailBll.GetDetailList("", "", ProjectId);
+ var detailsDictGrouped = allDetails.GroupBy(x => x.DataItemID).ToDictionary(g => g.Key, g => g.ToList());//按照DataItemID分组
//strSql.Append($" FROM ec_objecttypep_{ProjectEntity.ProjectIndex} t1 ");
if (isLoadExtraData)
{
foreach (var objectTypeProp in RES)
{
- var t2 = allProp.FirstOrDefault(x => x.PropertyID == objectTypeProp.PropertyID);
- if (t2 == null) { continue; }
- var t3 = allGroup.FirstOrDefault(x => x.PropertyGID == t2.PropertyGID);
- if (t3 == null) { continue; }
- ;
+ // 用TryGetValue快速查询(O(1)时间)
+ if (allPropDict.TryGetValue(objectTypeProp.PropertyID, out var t2))
+ {
+ // 找到匹配项,处理t2
+ }
+ else
+ {
+ // 未找到匹配项的处理逻辑
+ continue;
+ }
+ //var t2 = allProp.FirstOrDefault(x => x.PropertyID == objectTypeProp.PropertyID);
+ //if (t2 == null) { continue; }
+ if (allGroupDict.TryGetValue(t2.PropertyGID, out var t3))
+ {
+ // 找到匹配项,处理t2
+ }
+ else
+ {
+ // 未找到匹配项的处理逻辑
+ continue;
+ }
+ //var t3 = allGroup.FirstOrDefault(x => x.PropertyGID == t2.PropertyGID);
+ //if (t3 == null) { continue; }
+ //;
objectTypeProp.PropertyName = t2.PropertyName;
objectTypeProp.PropertyNameEN = t2.PropertyNameEN;
objectTypeProp.PropertyType = t2.PropertyType;
@@ -158,17 +183,26 @@ namespace Learun.Application.TwoDevelopment.ZZDT_EC
objectTypeProp.PropertyGroupName = t3.PropertyGroupName;
objectTypeProp.PropertyGID = t3.PropertyGID;
+ if (allUnitTypeDict.TryGetValue(t2.MeasuringUnitTypeID, out var t4))
+ {
+ // 找到匹配项,处理t2
+ objectTypeProp.MeasuringUnitTypeName = t4.MeasuringUnitTypeName;
- objectTypeProp.MeasuringUnitTypeName = allUnitType.FirstOrDefault(x => x.MeasuringUnitTypeID == t2.MeasuringUnitTypeID)?.MeasuringUnitTypeName;
- objectTypeProp.DefaultUnitName = allUnit.FirstOrDefault(x => x.MeasuringUnitID == t2.DefaultUnit)?.MeasuringUnitName;
+ }
+ if (allUnitDict.TryGetValue(t2.DefaultUnit, out var t5))
+ {
+ objectTypeProp.DefaultUnitName = t5.MeasuringUnitName;
+
+ }
if (!string.IsNullOrEmpty(t2.EnumData))
{
- var Dic = allDics.FirstOrDefault(X => t2.EnumData == X.DataItemName || t2.EnumData == X.DataItemCode);
+
+ var Dic = allDics.FirstOrDefault(X => t2.EnumData == X.DataItemName || t2.EnumData == X.DataItemCode);//不是按照id来找
if (Dic != null)
{
- foreach (var detail in allDetails.Where(x => x.DataItemID == Dic.DataItemID))
+ foreach (ec_dataitemdetailEntity detail in detailsDictGrouped[Dic.DataItemID])// allDetails.Where(x => x.DataItemID == Dic.DataItemID))
{
if (!string.IsNullOrEmpty(detail.DataItemNameEN) && Dic.ShowEN == 1)
{
@@ -215,16 +249,19 @@ namespace Learun.Application.TwoDevelopment.ZZDT_EC
{
var tObjectType = ProjectSugar.TableName(ProjectId);
var tobjTypeAll = SqlSugarHelper.Db.Queryable().AS(tObjectType).ToList();
+ var tobjTypeDict = tobjTypeAll.ToDictionary(x => x.ObjectTypeID);
foreach (var item in objectTypeID.Split(','))
{
- var pObjectType = RES.Where(x => x.ObjectTypeID == item).ToList();
- var tobjType = tobjTypeAll.First(x => x.ObjectTypeID == item);
+ var pObjectType = RES.Where(x => x.ObjectTypeID == item).ToList();//每种类型下的属性
+ var tobjType = tobjTypeDict[item];//每种类型的名字
+ // 提前提取所有PropertyName到HashSet(仅需一次遍历)
+ var propertyNames = new HashSet(pObjectType.Select(x => x.PropertyName));//每种类型下的属性的名字
if (tobjType.ObjectTypeName.EndsWith("电缆"))
{
- if (!pObjectType.Any(X => X.PropertyName == GlobalObject.propName_parallelCableCombineName))
+ if (!propertyNames.Any(X => X == GlobalObject.propName_parallelCableCombineName))
{
ec_objecttypepEntity UDF_01 = new ec_objecttypepEntity();
UDF_01.ObjectTypePID = Guid.NewGuid().ToString();
@@ -236,7 +273,7 @@ namespace Learun.Application.TwoDevelopment.ZZDT_EC
RES.Add(UDF_01);
}
- if (!pObjectType.Any(X => X.PropertyName == GlobalObject.propName_parallelCableList))
+ if (!propertyNames.Any(X => X == GlobalObject.propName_parallelCableList))
{
ec_objecttypepEntity UDF_02 = new ec_objecttypepEntity();
UDF_02.ObjectTypePID = Guid.NewGuid().ToString();
diff --git a/Learun.Framework.Module/Learun.Application.Module/Learun.Application.TwoDevelopment/ZZDT_EC/ec_panel_channel/ec_PanelChannelBLL.cs b/Learun.Framework.Module/Learun.Application.Module/Learun.Application.TwoDevelopment/ZZDT_EC/ec_panel_channel/ec_PanelChannelBLL.cs
index c20dd98c..0ec9be92 100644
--- a/Learun.Framework.Module/Learun.Application.Module/Learun.Application.TwoDevelopment/ZZDT_EC/ec_panel_channel/ec_PanelChannelBLL.cs
+++ b/Learun.Framework.Module/Learun.Application.Module/Learun.Application.TwoDevelopment/ZZDT_EC/ec_panel_channel/ec_PanelChannelBLL.cs
@@ -170,7 +170,7 @@ namespace Learun.Application.TwoDevelopment.ZZDT_EC
Where((a, b) => allPanelIds.Contains(b.PanelID)).
Distinct().ToList();
- var relId = Db.Queryable().AS(relTypeTb).ToList().First(x => x.RelType == ((int)enum_RelType.设备_电缆).ToString());
+ var relId = Db.Queryable().AS(relTypeTb).ToList().First(x => x.RelType == enum_RelType.设备_电缆);
var existRels = Db.Queryable().AS(relTb).Where(x => x.RelTypeID == relId.RelTypeID).ToList();
@@ -319,7 +319,7 @@ namespace Learun.Application.TwoDevelopment.ZZDT_EC
var allEngineData = Db.Queryable().AS(tagTb).ToList();
var allPanels = Db.Queryable().AS(panelTb).ToList();
- var relId = Db.Queryable().AS(relTypeTb).ToList().First(x => x.RelType == ((int)enum_RelType.设备_电缆).ToString());
+ var relId = Db.Queryable().AS(relTypeTb).ToList().First(x => x.RelType == enum_RelType.设备_电缆);
var newWTCommits = new List();
var SignalCommits = new List();
diff --git a/Learun.Framework.Module/Learun.Application.Module/Learun.Application.TwoDevelopment/ZZDT_EC/ec_project_bakup/ec_project_bakupBLL.cs b/Learun.Framework.Module/Learun.Application.Module/Learun.Application.TwoDevelopment/ZZDT_EC/ec_project_bakup/ec_project_bakupBLL.cs
index dfa320d8..9b9c756c 100644
--- a/Learun.Framework.Module/Learun.Application.Module/Learun.Application.TwoDevelopment/ZZDT_EC/ec_project_bakup/ec_project_bakupBLL.cs
+++ b/Learun.Framework.Module/Learun.Application.Module/Learun.Application.TwoDevelopment/ZZDT_EC/ec_project_bakup/ec_project_bakupBLL.cs
@@ -217,7 +217,7 @@ namespace Learun.Application.TwoDevelopment.ZZDT_EC
//创建工程数据图元表
baseDAL.Create(sqlitePath);
//添加工程数据图元表数据
- baseDAL.Add(new ec_enginedata_pixelService().GetList(queryJson).ToList(), sqlitePath);
+ baseDAL.Add(new ec_enginedata_pixelService().GetList(queryJson,ProjectId).ToList(), sqlitePath);
continue;
}
if (table == "ec_enginedata")
diff --git a/Learun.Framework.Module/Learun.Application.Module/Learun.Application.TwoDevelopment/ZZDT_EC/ec_reltype/ec_reltypeBLL.cs b/Learun.Framework.Module/Learun.Application.Module/Learun.Application.TwoDevelopment/ZZDT_EC/ec_reltype/ec_reltypeBLL.cs
index b6ca06b1..0ed2fcc8 100644
--- a/Learun.Framework.Module/Learun.Application.Module/Learun.Application.TwoDevelopment/ZZDT_EC/ec_reltype/ec_reltypeBLL.cs
+++ b/Learun.Framework.Module/Learun.Application.Module/Learun.Application.TwoDevelopment/ZZDT_EC/ec_reltype/ec_reltypeBLL.cs
@@ -33,11 +33,14 @@ namespace Learun.Application.TwoDevelopment.ZZDT_EC
var ProjectId = queryParam["ProjectId"]?.ToString();
var RelTypeName = queryParam["RelTypeName"]?.ToString();
var RelType = queryParam["RelType"]?.ToString();
-
+ enum_RelType RelEnum = default;
+ if (!string.IsNullOrEmpty(RelType) && Enum.TryParse(RelType, out RelEnum))
+ {
+ }
var tableName = TableName(ProjectId);
var query = Db.Queryable().AS(tableName)
.WhereIF(!string.IsNullOrEmpty(RelTypeName), x => x.RelTypeName.Contains(RelTypeName))
- .WhereIF(!string.IsNullOrEmpty(RelType), x => x.RelType == RelType)
+ .WhereIF(!string.IsNullOrEmpty(RelType), x => x.RelType == RelEnum)
.OrderByDescending(x => x.CreateTime);
List list;
if (pagination == null)
diff --git a/Learun.Framework.Module/Learun.Application.Module/Learun.Application.TwoDevelopment/ZZDT_EC/ec_reltype/ec_reltypeEntity.cs b/Learun.Framework.Module/Learun.Application.Module/Learun.Application.TwoDevelopment/ZZDT_EC/ec_reltype/ec_reltypeEntity.cs
index b231c403..e5a341e8 100644
--- a/Learun.Framework.Module/Learun.Application.Module/Learun.Application.TwoDevelopment/ZZDT_EC/ec_reltype/ec_reltypeEntity.cs
+++ b/Learun.Framework.Module/Learun.Application.Module/Learun.Application.TwoDevelopment/ZZDT_EC/ec_reltype/ec_reltypeEntity.cs
@@ -46,7 +46,7 @@ namespace Learun.Application.TwoDevelopment.ZZDT_EC
/// 关联类型缩写
///
///
- public string RelType { get; set; } = "";
+ public enum_RelType RelType { get; set; }
///
/// 创建人
///
diff --git a/Learun.Framework.Module/Learun.Application.Module/Learun.Application.WeChat/Learun.Application.WeChat.csproj.user b/Learun.Framework.Module/Learun.Application.Module/Learun.Application.WeChat/Learun.Application.WeChat.csproj.user
new file mode 100644
index 00000000..a607660d
--- /dev/null
+++ b/Learun.Framework.Module/Learun.Application.Module/Learun.Application.WeChat/Learun.Application.WeChat.csproj.user
@@ -0,0 +1,6 @@
+
+
+
+ ShowAllFiles
+
+
\ No newline at end of file
diff --git a/Learun.Framework.Module/Learun.Cache/Learun.Cache.Base/CacheId.cs b/Learun.Framework.Module/Learun.Cache/Learun.Cache.Base/CacheId.cs
index 45f46cb5..d1e2d170 100644
--- a/Learun.Framework.Module/Learun.Cache/Learun.Cache.Base/CacheId.cs
+++ b/Learun.Framework.Module/Learun.Cache/Learun.Cache.Base/CacheId.cs
@@ -138,6 +138,7 @@
#endregion
#region 8号库
+ public static int IOModule_AutoAssign2Ch { get { return 8; } }
#endregion
#region 9号库
diff --git a/Learun.Framework.Module/Learun.Cache/Learun.Cache.Redis/CacheByRedis.cs b/Learun.Framework.Module/Learun.Cache/Learun.Cache.Redis/CacheByRedis.cs
index 1a06e699..826accc9 100644
--- a/Learun.Framework.Module/Learun.Cache/Learun.Cache.Redis/CacheByRedis.cs
+++ b/Learun.Framework.Module/Learun.Cache/Learun.Cache.Redis/CacheByRedis.cs
@@ -33,8 +33,7 @@ namespace Learun.Cache.Redis
if (expireTime == null)
{
expireTime = TimeSpan.FromHours(1); // 如果参数为null,设置为1小时
- }
-
+ }
// 先从Redis缓存中获取数据
var cachedData = redisCache.StringGet(cacheKey);
if (cachedData != null)
diff --git a/SWSDBSchemeUpgradeTool/MainWindow.xaml.cs b/SWSDBSchemeUpgradeTool/MainWindow.xaml.cs
index 2b390c0b..588b869a 100644
--- a/SWSDBSchemeUpgradeTool/MainWindow.xaml.cs
+++ b/SWSDBSchemeUpgradeTool/MainWindow.xaml.cs
@@ -591,7 +591,7 @@ WHERE
}
catch (Exception ex)
{
- LogInfo(baseDirectory + logFileName, tableName + " 项目表更新出现问题," + ex.Message);
+ LogInfo(baseDirectory + logFileName, tableName +"_" + proj.ProjectIndex + " 项目表更新出现问题," + ex.Message);
}
}
}
diff --git a/SWSDBSchemeUpgradeTool/obj/Debug/App.g.cs b/SWSDBSchemeUpgradeTool/obj/Debug/App.g.cs
deleted file mode 100644
index a0691576..00000000
--- a/SWSDBSchemeUpgradeTool/obj/Debug/App.g.cs
+++ /dev/null
@@ -1,70 +0,0 @@
-#pragma checksum "..\..\App.xaml" "{8829d00f-11b8-4213-878b-770e8597ac16}" "C59FD92DD7F882290C4D1E00897269832FF33C044AE5C3AC38691771009953DB"
-//------------------------------------------------------------------------------
-//
-// 此代码由工具生成。
-// 运行时版本:4.0.30319.42000
-//
-// 对此文件的更改可能会导致不正确的行为,并且如果
-// 重新生成代码,这些更改将会丢失。
-//
-//------------------------------------------------------------------------------
-
-using SWSDBSchemeUpgradeTool;
-using System;
-using System.Diagnostics;
-using System.Windows;
-using System.Windows.Automation;
-using System.Windows.Controls;
-using System.Windows.Controls.Primitives;
-using System.Windows.Data;
-using System.Windows.Documents;
-using System.Windows.Ink;
-using System.Windows.Input;
-using System.Windows.Markup;
-using System.Windows.Media;
-using System.Windows.Media.Animation;
-using System.Windows.Media.Effects;
-using System.Windows.Media.Imaging;
-using System.Windows.Media.Media3D;
-using System.Windows.Media.TextFormatting;
-using System.Windows.Navigation;
-using System.Windows.Shapes;
-using System.Windows.Shell;
-
-
-namespace SWSDBSchemeUpgradeTool {
-
-
- ///
- /// App
- ///
- public partial class App : System.Windows.Application {
-
- ///
- /// InitializeComponent
- ///
- [System.Diagnostics.DebuggerNonUserCodeAttribute()]
- [System.CodeDom.Compiler.GeneratedCodeAttribute("PresentationBuildTasks", "4.0.0.0")]
- public void InitializeComponent() {
-
- #line 6 "..\..\App.xaml"
- this.StartupUri = new System.Uri("MainWindow.xaml", System.UriKind.Relative);
-
- #line default
- #line hidden
- }
-
- ///
- /// Application Entry Point.
- ///
- [System.STAThreadAttribute()]
- [System.Diagnostics.DebuggerNonUserCodeAttribute()]
- [System.CodeDom.Compiler.GeneratedCodeAttribute("PresentationBuildTasks", "4.0.0.0")]
- public static void Main() {
- SWSDBSchemeUpgradeTool.App app = new SWSDBSchemeUpgradeTool.App();
- app.InitializeComponent();
- app.Run();
- }
- }
-}
-
diff --git a/SWSDBSchemeUpgradeTool/obj/Debug/App.g.i.cs b/SWSDBSchemeUpgradeTool/obj/Debug/App.g.i.cs
deleted file mode 100644
index a0691576..00000000
--- a/SWSDBSchemeUpgradeTool/obj/Debug/App.g.i.cs
+++ /dev/null
@@ -1,70 +0,0 @@
-#pragma checksum "..\..\App.xaml" "{8829d00f-11b8-4213-878b-770e8597ac16}" "C59FD92DD7F882290C4D1E00897269832FF33C044AE5C3AC38691771009953DB"
-//------------------------------------------------------------------------------
-//
-// 此代码由工具生成。
-// 运行时版本:4.0.30319.42000
-//
-// 对此文件的更改可能会导致不正确的行为,并且如果
-// 重新生成代码,这些更改将会丢失。
-//
-//------------------------------------------------------------------------------
-
-using SWSDBSchemeUpgradeTool;
-using System;
-using System.Diagnostics;
-using System.Windows;
-using System.Windows.Automation;
-using System.Windows.Controls;
-using System.Windows.Controls.Primitives;
-using System.Windows.Data;
-using System.Windows.Documents;
-using System.Windows.Ink;
-using System.Windows.Input;
-using System.Windows.Markup;
-using System.Windows.Media;
-using System.Windows.Media.Animation;
-using System.Windows.Media.Effects;
-using System.Windows.Media.Imaging;
-using System.Windows.Media.Media3D;
-using System.Windows.Media.TextFormatting;
-using System.Windows.Navigation;
-using System.Windows.Shapes;
-using System.Windows.Shell;
-
-
-namespace SWSDBSchemeUpgradeTool {
-
-
- ///
- /// App
- ///
- public partial class App : System.Windows.Application {
-
- ///
- /// InitializeComponent
- ///
- [System.Diagnostics.DebuggerNonUserCodeAttribute()]
- [System.CodeDom.Compiler.GeneratedCodeAttribute("PresentationBuildTasks", "4.0.0.0")]
- public void InitializeComponent() {
-
- #line 6 "..\..\App.xaml"
- this.StartupUri = new System.Uri("MainWindow.xaml", System.UriKind.Relative);
-
- #line default
- #line hidden
- }
-
- ///
- /// Application Entry Point.
- ///
- [System.STAThreadAttribute()]
- [System.Diagnostics.DebuggerNonUserCodeAttribute()]
- [System.CodeDom.Compiler.GeneratedCodeAttribute("PresentationBuildTasks", "4.0.0.0")]
- public static void Main() {
- SWSDBSchemeUpgradeTool.App app = new SWSDBSchemeUpgradeTool.App();
- app.InitializeComponent();
- app.Run();
- }
- }
-}
-
diff --git a/SWSDBSchemeUpgradeTool/obj/Debug/DesignTimeResolveAssemblyReferencesInput.cache b/SWSDBSchemeUpgradeTool/obj/Debug/DesignTimeResolveAssemblyReferencesInput.cache
deleted file mode 100644
index 88c5aa17..00000000
Binary files a/SWSDBSchemeUpgradeTool/obj/Debug/DesignTimeResolveAssemblyReferencesInput.cache and /dev/null differ
diff --git a/SWSDBSchemeUpgradeTool/obj/Debug/MainWindow.g.cs b/SWSDBSchemeUpgradeTool/obj/Debug/MainWindow.g.cs
deleted file mode 100644
index 703e941f..00000000
--- a/SWSDBSchemeUpgradeTool/obj/Debug/MainWindow.g.cs
+++ /dev/null
@@ -1,146 +0,0 @@
-#pragma checksum "..\..\MainWindow.xaml" "{8829d00f-11b8-4213-878b-770e8597ac16}" "A0C489F14831BC98743B3A71A943EBA949B115892D4776AC738A96131DA29AA4"
-//------------------------------------------------------------------------------
-//
-// 此代码由工具生成。
-// 运行时版本:4.0.30319.42000
-//
-// 对此文件的更改可能会导致不正确的行为,并且如果
-// 重新生成代码,这些更改将会丢失。
-//
-//------------------------------------------------------------------------------
-
-using SWSDBSchemeUpgradeTool;
-using System;
-using System.Diagnostics;
-using System.Windows;
-using System.Windows.Automation;
-using System.Windows.Controls;
-using System.Windows.Controls.Primitives;
-using System.Windows.Data;
-using System.Windows.Documents;
-using System.Windows.Ink;
-using System.Windows.Input;
-using System.Windows.Markup;
-using System.Windows.Media;
-using System.Windows.Media.Animation;
-using System.Windows.Media.Effects;
-using System.Windows.Media.Imaging;
-using System.Windows.Media.Media3D;
-using System.Windows.Media.TextFormatting;
-using System.Windows.Navigation;
-using System.Windows.Shapes;
-using System.Windows.Shell;
-
-
-namespace SWSDBSchemeUpgradeTool {
-
-
- ///
- /// MainWindow
- ///
- public partial class MainWindow : System.Windows.Window, System.Windows.Markup.IComponentConnector {
-
-
- #line 12 "..\..\MainWindow.xaml"
- [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
- internal System.Windows.Controls.Grid ContentGrid;
-
- #line default
- #line hidden
-
-
- #line 64 "..\..\MainWindow.xaml"
- [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
- internal System.Windows.Controls.ProgressBar ProgressBar;
-
- #line default
- #line hidden
-
-
- #line 70 "..\..\MainWindow.xaml"
- [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
- internal System.Windows.Controls.Label StatusText;
-
- #line default
- #line hidden
-
-
- #line 75 "..\..\MainWindow.xaml"
- [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
- internal System.Windows.Controls.TextBlock StatusText2;
-
- #line default
- #line hidden
-
- private bool _contentLoaded;
-
- ///
- /// InitializeComponent
- ///
- [System.Diagnostics.DebuggerNonUserCodeAttribute()]
- [System.CodeDom.Compiler.GeneratedCodeAttribute("PresentationBuildTasks", "4.0.0.0")]
- public void InitializeComponent() {
- if (_contentLoaded) {
- return;
- }
- _contentLoaded = true;
- System.Uri resourceLocater = new System.Uri("/SWSDBSchemeUpgradeTool;component/mainwindow.xaml", System.UriKind.Relative);
-
- #line 1 "..\..\MainWindow.xaml"
- System.Windows.Application.LoadComponent(this, resourceLocater);
-
- #line default
- #line hidden
- }
-
- [System.Diagnostics.DebuggerNonUserCodeAttribute()]
- [System.CodeDom.Compiler.GeneratedCodeAttribute("PresentationBuildTasks", "4.0.0.0")]
- [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Never)]
- [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
- [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")]
- [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1800:DoNotCastUnnecessarily")]
- void System.Windows.Markup.IComponentConnector.Connect(int connectionId, object target) {
- switch (connectionId)
- {
- case 1:
- this.ContentGrid = ((System.Windows.Controls.Grid)(target));
- return;
- case 2:
- this.ProgressBar = ((System.Windows.Controls.ProgressBar)(target));
- return;
- case 3:
- this.StatusText = ((System.Windows.Controls.Label)(target));
- return;
- case 4:
- this.StatusText2 = ((System.Windows.Controls.TextBlock)(target));
- return;
- case 5:
-
- #line 86 "..\..\MainWindow.xaml"
- ((System.Windows.Controls.Button)(target)).Click += new System.Windows.RoutedEventHandler(this.Button_Click);
-
- #line default
- #line hidden
- return;
- case 6:
-
- #line 91 "..\..\MainWindow.xaml"
- ((System.Windows.Controls.Button)(target)).Click += new System.Windows.RoutedEventHandler(this.Button_Click_1);
-
- #line default
- #line hidden
- return;
- case 7:
-
- #line 97 "..\..\MainWindow.xaml"
- ((System.Windows.Controls.Button)(target)).Click += new System.Windows.RoutedEventHandler(this.Button_Click_2);
-
- #line default
- #line hidden
- return;
- }
- this._contentLoaded = true;
- }
- }
-}
-
diff --git a/SWSDBSchemeUpgradeTool/obj/Debug/MainWindow.g.i.cs b/SWSDBSchemeUpgradeTool/obj/Debug/MainWindow.g.i.cs
deleted file mode 100644
index 703e941f..00000000
--- a/SWSDBSchemeUpgradeTool/obj/Debug/MainWindow.g.i.cs
+++ /dev/null
@@ -1,146 +0,0 @@
-#pragma checksum "..\..\MainWindow.xaml" "{8829d00f-11b8-4213-878b-770e8597ac16}" "A0C489F14831BC98743B3A71A943EBA949B115892D4776AC738A96131DA29AA4"
-//------------------------------------------------------------------------------
-//
-// 此代码由工具生成。
-// 运行时版本:4.0.30319.42000
-//
-// 对此文件的更改可能会导致不正确的行为,并且如果
-// 重新生成代码,这些更改将会丢失。
-//
-//------------------------------------------------------------------------------
-
-using SWSDBSchemeUpgradeTool;
-using System;
-using System.Diagnostics;
-using System.Windows;
-using System.Windows.Automation;
-using System.Windows.Controls;
-using System.Windows.Controls.Primitives;
-using System.Windows.Data;
-using System.Windows.Documents;
-using System.Windows.Ink;
-using System.Windows.Input;
-using System.Windows.Markup;
-using System.Windows.Media;
-using System.Windows.Media.Animation;
-using System.Windows.Media.Effects;
-using System.Windows.Media.Imaging;
-using System.Windows.Media.Media3D;
-using System.Windows.Media.TextFormatting;
-using System.Windows.Navigation;
-using System.Windows.Shapes;
-using System.Windows.Shell;
-
-
-namespace SWSDBSchemeUpgradeTool {
-
-
- ///
- /// MainWindow
- ///
- public partial class MainWindow : System.Windows.Window, System.Windows.Markup.IComponentConnector {
-
-
- #line 12 "..\..\MainWindow.xaml"
- [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
- internal System.Windows.Controls.Grid ContentGrid;
-
- #line default
- #line hidden
-
-
- #line 64 "..\..\MainWindow.xaml"
- [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
- internal System.Windows.Controls.ProgressBar ProgressBar;
-
- #line default
- #line hidden
-
-
- #line 70 "..\..\MainWindow.xaml"
- [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
- internal System.Windows.Controls.Label StatusText;
-
- #line default
- #line hidden
-
-
- #line 75 "..\..\MainWindow.xaml"
- [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
- internal System.Windows.Controls.TextBlock StatusText2;
-
- #line default
- #line hidden
-
- private bool _contentLoaded;
-
- ///
- /// InitializeComponent
- ///
- [System.Diagnostics.DebuggerNonUserCodeAttribute()]
- [System.CodeDom.Compiler.GeneratedCodeAttribute("PresentationBuildTasks", "4.0.0.0")]
- public void InitializeComponent() {
- if (_contentLoaded) {
- return;
- }
- _contentLoaded = true;
- System.Uri resourceLocater = new System.Uri("/SWSDBSchemeUpgradeTool;component/mainwindow.xaml", System.UriKind.Relative);
-
- #line 1 "..\..\MainWindow.xaml"
- System.Windows.Application.LoadComponent(this, resourceLocater);
-
- #line default
- #line hidden
- }
-
- [System.Diagnostics.DebuggerNonUserCodeAttribute()]
- [System.CodeDom.Compiler.GeneratedCodeAttribute("PresentationBuildTasks", "4.0.0.0")]
- [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Never)]
- [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
- [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")]
- [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1800:DoNotCastUnnecessarily")]
- void System.Windows.Markup.IComponentConnector.Connect(int connectionId, object target) {
- switch (connectionId)
- {
- case 1:
- this.ContentGrid = ((System.Windows.Controls.Grid)(target));
- return;
- case 2:
- this.ProgressBar = ((System.Windows.Controls.ProgressBar)(target));
- return;
- case 3:
- this.StatusText = ((System.Windows.Controls.Label)(target));
- return;
- case 4:
- this.StatusText2 = ((System.Windows.Controls.TextBlock)(target));
- return;
- case 5:
-
- #line 86 "..\..\MainWindow.xaml"
- ((System.Windows.Controls.Button)(target)).Click += new System.Windows.RoutedEventHandler(this.Button_Click);
-
- #line default
- #line hidden
- return;
- case 6:
-
- #line 91 "..\..\MainWindow.xaml"
- ((System.Windows.Controls.Button)(target)).Click += new System.Windows.RoutedEventHandler(this.Button_Click_1);
-
- #line default
- #line hidden
- return;
- case 7:
-
- #line 97 "..\..\MainWindow.xaml"
- ((System.Windows.Controls.Button)(target)).Click += new System.Windows.RoutedEventHandler(this.Button_Click_2);
-
- #line default
- #line hidden
- return;
- }
- this._contentLoaded = true;
- }
- }
-}
-
diff --git a/SWSDBSchemeUpgradeTool/obj/Debug/SQLPreview.g.cs b/SWSDBSchemeUpgradeTool/obj/Debug/SQLPreview.g.cs
deleted file mode 100644
index aafc2d41..00000000
--- a/SWSDBSchemeUpgradeTool/obj/Debug/SQLPreview.g.cs
+++ /dev/null
@@ -1,89 +0,0 @@
-#pragma checksum "..\..\SQLPreview.xaml" "{8829d00f-11b8-4213-878b-770e8597ac16}" "68D1F76124B5320845E5CAEA226A6F687D21C37205B359F167F55D30D3DE8FA5"
-//------------------------------------------------------------------------------
-//
-// 此代码由工具生成。
-// 运行时版本:4.0.30319.42000
-//
-// 对此文件的更改可能会导致不正确的行为,并且如果
-// 重新生成代码,这些更改将会丢失。
-//
-//------------------------------------------------------------------------------
-
-using SWSDBSchemeUpgradeTool;
-using System;
-using System.Diagnostics;
-using System.Windows;
-using System.Windows.Automation;
-using System.Windows.Controls;
-using System.Windows.Controls.Primitives;
-using System.Windows.Data;
-using System.Windows.Documents;
-using System.Windows.Ink;
-using System.Windows.Input;
-using System.Windows.Markup;
-using System.Windows.Media;
-using System.Windows.Media.Animation;
-using System.Windows.Media.Effects;
-using System.Windows.Media.Imaging;
-using System.Windows.Media.Media3D;
-using System.Windows.Media.TextFormatting;
-using System.Windows.Navigation;
-using System.Windows.Shapes;
-using System.Windows.Shell;
-
-
-namespace SWSDBSchemeUpgradeTool {
-
-
- ///
- /// SQLPreview
- ///
- public partial class SQLPreview : System.Windows.Window, System.Windows.Markup.IComponentConnector {
-
-
- #line 12 "..\..\SQLPreview.xaml"
- [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
- internal System.Windows.Controls.Grid xxx;
-
- #line default
- #line hidden
-
- private bool _contentLoaded;
-
- ///
- /// InitializeComponent
- ///
- [System.Diagnostics.DebuggerNonUserCodeAttribute()]
- [System.CodeDom.Compiler.GeneratedCodeAttribute("PresentationBuildTasks", "4.0.0.0")]
- public void InitializeComponent() {
- if (_contentLoaded) {
- return;
- }
- _contentLoaded = true;
- System.Uri resourceLocater = new System.Uri("/SWSDBSchemeUpgradeTool;component/sqlpreview.xaml", System.UriKind.Relative);
-
- #line 1 "..\..\SQLPreview.xaml"
- System.Windows.Application.LoadComponent(this, resourceLocater);
-
- #line default
- #line hidden
- }
-
- [System.Diagnostics.DebuggerNonUserCodeAttribute()]
- [System.CodeDom.Compiler.GeneratedCodeAttribute("PresentationBuildTasks", "4.0.0.0")]
- [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Never)]
- [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
- [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")]
- [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1800:DoNotCastUnnecessarily")]
- void System.Windows.Markup.IComponentConnector.Connect(int connectionId, object target) {
- switch (connectionId)
- {
- case 1:
- this.xxx = ((System.Windows.Controls.Grid)(target));
- return;
- }
- this._contentLoaded = true;
- }
- }
-}
-
diff --git a/SWSDBSchemeUpgradeTool/obj/Debug/SQLPreview.g.i.cs b/SWSDBSchemeUpgradeTool/obj/Debug/SQLPreview.g.i.cs
deleted file mode 100644
index aafc2d41..00000000
--- a/SWSDBSchemeUpgradeTool/obj/Debug/SQLPreview.g.i.cs
+++ /dev/null
@@ -1,89 +0,0 @@
-#pragma checksum "..\..\SQLPreview.xaml" "{8829d00f-11b8-4213-878b-770e8597ac16}" "68D1F76124B5320845E5CAEA226A6F687D21C37205B359F167F55D30D3DE8FA5"
-//------------------------------------------------------------------------------
-//
-// 此代码由工具生成。
-// 运行时版本:4.0.30319.42000
-//
-// 对此文件的更改可能会导致不正确的行为,并且如果
-// 重新生成代码,这些更改将会丢失。
-//
-//------------------------------------------------------------------------------
-
-using SWSDBSchemeUpgradeTool;
-using System;
-using System.Diagnostics;
-using System.Windows;
-using System.Windows.Automation;
-using System.Windows.Controls;
-using System.Windows.Controls.Primitives;
-using System.Windows.Data;
-using System.Windows.Documents;
-using System.Windows.Ink;
-using System.Windows.Input;
-using System.Windows.Markup;
-using System.Windows.Media;
-using System.Windows.Media.Animation;
-using System.Windows.Media.Effects;
-using System.Windows.Media.Imaging;
-using System.Windows.Media.Media3D;
-using System.Windows.Media.TextFormatting;
-using System.Windows.Navigation;
-using System.Windows.Shapes;
-using System.Windows.Shell;
-
-
-namespace SWSDBSchemeUpgradeTool {
-
-
- ///
- /// SQLPreview
- ///
- public partial class SQLPreview : System.Windows.Window, System.Windows.Markup.IComponentConnector {
-
-
- #line 12 "..\..\SQLPreview.xaml"
- [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
- internal System.Windows.Controls.Grid xxx;
-
- #line default
- #line hidden
-
- private bool _contentLoaded;
-
- ///
- /// InitializeComponent
- ///
- [System.Diagnostics.DebuggerNonUserCodeAttribute()]
- [System.CodeDom.Compiler.GeneratedCodeAttribute("PresentationBuildTasks", "4.0.0.0")]
- public void InitializeComponent() {
- if (_contentLoaded) {
- return;
- }
- _contentLoaded = true;
- System.Uri resourceLocater = new System.Uri("/SWSDBSchemeUpgradeTool;component/sqlpreview.xaml", System.UriKind.Relative);
-
- #line 1 "..\..\SQLPreview.xaml"
- System.Windows.Application.LoadComponent(this, resourceLocater);
-
- #line default
- #line hidden
- }
-
- [System.Diagnostics.DebuggerNonUserCodeAttribute()]
- [System.CodeDom.Compiler.GeneratedCodeAttribute("PresentationBuildTasks", "4.0.0.0")]
- [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Never)]
- [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
- [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")]
- [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1800:DoNotCastUnnecessarily")]
- void System.Windows.Markup.IComponentConnector.Connect(int connectionId, object target) {
- switch (connectionId)
- {
- case 1:
- this.xxx = ((System.Windows.Controls.Grid)(target));
- return;
- }
- this._contentLoaded = true;
- }
- }
-}
-
diff --git a/newFront/c#前端/.vs/SWS.CAD/CopilotIndices/17.13.444.19527/CodeChunks.db b/newFront/c#前端/.vs/SWS.CAD/CopilotIndices/17.13.444.19527/CodeChunks.db
index 8ed632ad..11e675fa 100644
Binary files a/newFront/c#前端/.vs/SWS.CAD/CopilotIndices/17.13.444.19527/CodeChunks.db and b/newFront/c#前端/.vs/SWS.CAD/CopilotIndices/17.13.444.19527/CodeChunks.db differ
diff --git a/newFront/c#前端/.vs/SWS.CAD/CopilotIndices/17.13.444.19527/CodeChunks.db-shm b/newFront/c#前端/.vs/SWS.CAD/CopilotIndices/17.13.444.19527/CodeChunks.db-shm
index 181ea008..31b0d793 100644
Binary files a/newFront/c#前端/.vs/SWS.CAD/CopilotIndices/17.13.444.19527/CodeChunks.db-shm and b/newFront/c#前端/.vs/SWS.CAD/CopilotIndices/17.13.444.19527/CodeChunks.db-shm differ
diff --git a/newFront/c#前端/.vs/SWS.CAD/CopilotIndices/17.13.444.19527/CodeChunks.db-wal b/newFront/c#前端/.vs/SWS.CAD/CopilotIndices/17.13.444.19527/CodeChunks.db-wal
index c53fe8aa..0b6297d7 100644
Binary files a/newFront/c#前端/.vs/SWS.CAD/CopilotIndices/17.13.444.19527/CodeChunks.db-wal and b/newFront/c#前端/.vs/SWS.CAD/CopilotIndices/17.13.444.19527/CodeChunks.db-wal differ
diff --git a/newFront/c#前端/.vs/SWS.CAD/CopilotIndices/17.13.444.19527/SemanticSymbols.db b/newFront/c#前端/.vs/SWS.CAD/CopilotIndices/17.13.444.19527/SemanticSymbols.db
index 567217bf..ddab609d 100644
Binary files a/newFront/c#前端/.vs/SWS.CAD/CopilotIndices/17.13.444.19527/SemanticSymbols.db and b/newFront/c#前端/.vs/SWS.CAD/CopilotIndices/17.13.444.19527/SemanticSymbols.db differ
diff --git a/newFront/c#前端/.vs/SWS.CAD/CopilotIndices/17.13.444.19527/SemanticSymbols.db-shm b/newFront/c#前端/.vs/SWS.CAD/CopilotIndices/17.13.444.19527/SemanticSymbols.db-shm
index d8b8326a..0e854215 100644
Binary files a/newFront/c#前端/.vs/SWS.CAD/CopilotIndices/17.13.444.19527/SemanticSymbols.db-shm and b/newFront/c#前端/.vs/SWS.CAD/CopilotIndices/17.13.444.19527/SemanticSymbols.db-shm differ
diff --git a/newFront/c#前端/.vs/SWS.CAD/CopilotIndices/17.13.444.19527/SemanticSymbols.db-wal b/newFront/c#前端/.vs/SWS.CAD/CopilotIndices/17.13.444.19527/SemanticSymbols.db-wal
index e8003a29..05236062 100644
Binary files a/newFront/c#前端/.vs/SWS.CAD/CopilotIndices/17.13.444.19527/SemanticSymbols.db-wal and b/newFront/c#前端/.vs/SWS.CAD/CopilotIndices/17.13.444.19527/SemanticSymbols.db-wal differ
diff --git a/newFront/c#前端/DI-Electrical/App.xaml.cs b/newFront/c#前端/DI-Electrical/App.xaml.cs
index b0dd7ffe..4adadc9f 100644
--- a/newFront/c#前端/DI-Electrical/App.xaml.cs
+++ b/newFront/c#前端/DI-Electrical/App.xaml.cs
@@ -58,6 +58,7 @@ namespace DI_Electrical
GlobalObject._prismContainer.RegisterDialog();
GlobalObject._prismContainer.RegisterDialog();
GlobalObject._prismContainer.RegisterDialog();
+ GlobalObject._prismContainer.RegisterDialog();
GlobalObject._prismContainer.RegisterDialog();
GlobalObject._prismContainer.Register();
diff --git a/newFront/c#前端/SWS.CAD/Commands.cs b/newFront/c#前端/SWS.CAD/Commands.cs
index 2dd0253d..a28f2dcd 100644
--- a/newFront/c#前端/SWS.CAD/Commands.cs
+++ b/newFront/c#前端/SWS.CAD/Commands.cs
@@ -24,6 +24,7 @@ using Panel = Bricscad.Windows.Panel;
using GlobalObject = SWS.Commons.GlobalObject;
using SWS.Model;
using SWS.Service;
+using OfficeOpenXml.FormulaParsing.Excel.Functions.Information;
[assembly: CommandClass(typeof(Commands))]
@@ -540,6 +541,8 @@ namespace SWS.CAD
//选择的元素返回的属性信息
var ResTagInfosByPixels = new Model.ec_objecttype();
var listPropertys = new List();
+ var _objectTypeService = GlobalObject.container.Resolve();
+ var _iOModuleService = GlobalObject.container.Resolve();
// 持续选择直到获取有效电缆
bool isValidCable = false;
@@ -564,7 +567,7 @@ namespace SWS.CAD
{
// 获取句柄(Handle 是字符串类型)
var handId = (cable.Handle.ToString());
- var _objectTypeService = GlobalObject.container.Resolve();
+ _objectTypeService = GlobalObject.container.Resolve();
var res = await _objectTypeService.GetTagInfosByPixels(dwgFile.Id, handId);
if (res != null)
{
@@ -600,8 +603,20 @@ namespace SWS.CAD
//Thread.Sleep(2000);
if (isValidCable)
{
- var _iOModuleService = GlobalObject.container.Resolve();
+ var ResTagNumberById = await _objectTypeService.GetTagNumberById(ResTagInfosByPixels.tags.FirstOrDefault().ObjectTypeID);
+ var ObjectTypePListBy = await _objectTypeService.GetObjectTypePListByIds(ResTagInfosByPixels.tags.FirstOrDefault().ObjectTypeID);
+ string CableSpecification = ObjectTypePListBy.Where(q => q.PropertyName.Equals("电缆规格")).Select(s => s.EnumDataCode).FirstOrDefault();
+ CableSpecification = CableSpecification.Substring(0, CableSpecification.Length - 1);
+ var LatestSerialNumber = await _objectTypeService.GetLatestSerialNumber(ResTagInfosByPixels.tags.FirstOrDefault().ObjectTypeID);
+ //获取位号的电缆属性,判断是否设置电缆规格
+ var TagNumberBys = await _objectTypeService.GetEngineDataListByTags(ResTagInfosByPixels.tags.FirstOrDefault().TagNumber);
+ var TagNumberBy = TagNumberBys.Where(t => t.TagNumber.Equals(ResTagInfosByPixels.tags.FirstOrDefault().TagNumber)).FirstOrDefault();
+ if (string.IsNullOrEmpty(TagNumberBy.EngineDataProperty.Where(e => e.PropertyName.Equals("电缆规格")).Select(e => e.PropertyValue).FirstOrDefault()))
+ //if (!CableSpecification.Split(',').ToList().Contains(TagNumberBy.EngineDataProperty.Where(e => e.PropertyName.Equals("电缆规格")).Select(e => e.PropertyValue).FirstOrDefault()))
+ {
+ System.Windows.MessageBox.Show("无法获取电缆对信息,请在电缆\"属性面版“输入电缆”电缆规格”属性\r\n如:“1x2x0.75”", "KunHengCAD", System.Windows.MessageBoxButton.OK, System.Windows.MessageBoxImage.Warning); return;
+ }
var ResCableEngID = await _iOModuleService.GetCableByEngID(ResTagInfosByPixels.tags.FirstOrDefault().EngineDataID);
//如果配置不存在
if (ResCableEngID == null)
@@ -636,6 +651,7 @@ namespace SWS.CAD
ec_Cable.EngineerDataID = ResTagInfosByPixels.tags.FirstOrDefault().EngineDataID;
ec_Cable.Sets = new List();
int CableSetCount = int.TryParse(ReslistPro.Where(p => p.DisplayText.Equals("电缆对数")).Select(p => p.PropertyValue).FirstOrDefault(), out CableSetCount) ? CableSetCount : 0;
+ int n = 0;
for (int i = 0; i < CableSetCount; i++)
{
ec_CableSet ec_CableSet = new ec_CableSet();
@@ -645,6 +661,7 @@ namespace SWS.CAD
int WireCount = int.TryParse(ReslistPro.Where(p => p.DisplayText.Equals("每电缆对芯数")).Select(p => p.PropertyValue).FirstOrDefault(), out WireCount) ? WireCount : 0;
for (int j = 0; j < WireCount; j++)
{
+ n++;
ec_CableSetWire ec_CableSetWire = new ec_CableSetWire();
ec_CableSetWire.Polarity = ReslistPro.Where(p => p.DisplayText.Equals("极性")).Select(p => p.PropertyValue).FirstOrDefault().Split(',')[Math.Abs(j % 3)];
ec_CableSetWire.SetLevel = j + 1;
@@ -653,6 +670,20 @@ namespace SWS.CAD
switch (ReslistPro.Where(p => p.DisplayText.Equals("编号规则")).Select(p => p.PropertyValue).FirstOrDefault())
{
case "按电缆编号":
+ if (ReslistPro.Where(p => p.DisplayText.Equals("编号类型")).Select(p => p.PropertyValue).FirstOrDefault().Equals("数字"))
+ {
+ Tag = n.ToString();
+ }
+ else if (ReslistPro.Where(p => p.DisplayText.Equals("编号类型")).Select(p => p.PropertyValue).FirstOrDefault().Equals("字母"))
+ {
+ Tag = Tag + (char)('A' + (n - 1));
+ }
+ else if (ReslistPro.Where(p => p.DisplayText.Equals("编号类型")).Select(p => p.PropertyValue).FirstOrDefault().Equals("电缆对序号"))
+ {
+ Tag = (i + 1) + "-" + n.ToString();
+ }
+ break;
+ case "按电缆对编号":
if (ReslistPro.Where(p => p.DisplayText.Equals("编号类型")).Select(p => p.PropertyValue).FirstOrDefault().Equals("数字"))
{
Tag = (j + 1).ToString();
@@ -663,12 +694,9 @@ namespace SWS.CAD
}
else if (ReslistPro.Where(p => p.DisplayText.Equals("编号类型")).Select(p => p.PropertyValue).FirstOrDefault().Equals("电缆对序号"))
{
- Tag = (i + 1).ToString();
+ Tag = (i + 1) + "-" + (j + 1).ToString();
}
break;
- case "按电缆对编号":
- a = ResTagInfosByPixels.tags.FirstOrDefault().TagNumber;
- break;
}
ec_CableSetWire.Wire_Tag = a + Tag;
ec_CableSet.Wires.Add(ec_CableSetWire);
@@ -705,6 +733,7 @@ namespace SWS.CAD
ec_Cable.EngineerDataID = ResTagInfosByPixels.tags.FirstOrDefault().EngineDataID;
ec_Cable.Sets = new List();
int CableSetCount = int.TryParse(ReslistPro.Where(p => p.DisplayText.Equals("电缆对数")).Select(p => p.PropertyValue).FirstOrDefault(), out CableSetCount) ? CableSetCount : 0;
+ int n = 0;
for (int i = 0; i < CableSetCount; i++)
{
ec_CableSet ec_CableSet = new ec_CableSet();
@@ -714,6 +743,7 @@ namespace SWS.CAD
int WireCount = int.TryParse(ReslistPro.Where(p => p.DisplayText.Equals("每电缆对芯数")).Select(p => p.PropertyValue).FirstOrDefault(), out WireCount) ? WireCount : 0;
for (int j = 0; j < WireCount; j++)
{
+ n++;
ec_CableSetWire ec_CableSetWire = new ec_CableSetWire();
ec_CableSetWire.Polarity = ReslistPro.Where(p => p.DisplayText.Equals("极性")).Select(p => p.PropertyValue).FirstOrDefault().Split(',')[Math.Abs(j % 3)];
ec_CableSetWire.SetLevel = j + 1;
@@ -722,6 +752,20 @@ namespace SWS.CAD
switch (ReslistPro.Where(p => p.DisplayText.Equals("编号规则")).Select(p => p.PropertyValue).FirstOrDefault())
{
case "按电缆编号":
+ if (ReslistPro.Where(p => p.DisplayText.Equals("编号类型")).Select(p => p.PropertyValue).FirstOrDefault().Equals("数字"))
+ {
+ Tag = n.ToString();
+ }
+ else if (ReslistPro.Where(p => p.DisplayText.Equals("编号类型")).Select(p => p.PropertyValue).FirstOrDefault().Equals("字母"))
+ {
+ Tag = Tag + (char)('A' + (n - 1));
+ }
+ else if (ReslistPro.Where(p => p.DisplayText.Equals("编号类型")).Select(p => p.PropertyValue).FirstOrDefault().Equals("电缆对序号"))
+ {
+ Tag = (i + 1) + "-" + n.ToString();
+ }
+ break;
+ case "按电缆对编号":
if (ReslistPro.Where(p => p.DisplayText.Equals("编号类型")).Select(p => p.PropertyValue).FirstOrDefault().Equals("数字"))
{
Tag = (j + 1).ToString();
@@ -732,12 +776,9 @@ namespace SWS.CAD
}
else if (ReslistPro.Where(p => p.DisplayText.Equals("编号类型")).Select(p => p.PropertyValue).FirstOrDefault().Equals("电缆对序号"))
{
- Tag = (i + 1).ToString();
+ Tag = (i + 1) + "-" + (j + 1).ToString();
}
break;
- case "按电缆对编号":
- a = ResTagInfosByPixels.tags.FirstOrDefault().TagNumber;
- break;
}
ec_CableSetWire.Wire_Tag = a + Tag;
ec_CableSet.Wires.Add(ec_CableSetWire);
@@ -849,20 +890,305 @@ namespace SWS.CAD
btnCableSinal.ToolTip = "信号预分配";
btnCableSinal.Text = "信号预分配";
btnCableSinal.ButtonStyle = RibbonButtonStyle.SmallWithText;
- btnCableSinal.CommandHandler = new DelegateCommand(x =>
+ btnCableSinal.CommandHandler = new DelegateCommand(async x =>
{
- //打开窗体
- var para = new Prism.Services.Dialogs.DialogParameters();
- var _dialogService = GlobalObject._prismContainer.Resolve();
- _dialogService.ShowDialog(nameof(DialogSignalPredistribution), para, (RES) =>
+ if (GlobalObject.userInfo == null || GlobalObject.curProject == null)
{
- if (RES.Result == ButtonResult.Yes)
+ MessageBox.Show("请先登录系统并选择项目!");
+ return;
+ }
+
+ //在SWS系统内打开且不是只读的图纸才可
+ var dwgName = General.GetDwgName();
+ var dwgFile = GlobalObject.ListDwgOpened.FirstOrDefault(a => a.Path == dwgName && a.IsReadOnly == false);
+ if (dwgFile == null)
+ { return; }
+ Document doc = Application.DocumentManager.MdiActiveDocument;
+ Database db = doc.Database;
+ Editor ed = doc.Editor;
+ //选择的元素返回的属性信息
+ var ResTagInfosByPixels = new Model.ec_objecttype();
+ var listPropertys = new List();
+ var _objectTypeService = GlobalObject.container.Resolve();
+ var _iOModuleService = GlobalObject.container.Resolve();
+ // 持续选择直到获取有效电缆
+ bool isValidCable = false;
+
+ try
+ {
+ #region 选择电缆
+ // 创建选择选项(禁用回车确认)
+ PromptEntityOptions options = new PromptEntityOptions("\n请单击选择电缆: ");
+ options.AllowNone = false; // 禁止空选
+
+ // 执行选择(直接单击生效)
+ PromptEntityResult resultEntity = ed.GetEntity(options);
+ //WindowVisibility = System.Windows.Visibility.Hidden;
+
+ while (resultEntity.Status == PromptStatus.OK)
{
+ using (Transaction tr = db.TransactionManager.StartTransaction())
+ {
+ // 获取选中的电缆实体
+ Entity cable = tr.GetObject(resultEntity.ObjectId, OpenMode.ForRead) as Entity;
+ //if (cable != null&&cable.XData != null)
+ if (cable != null)
+ {
+ // 获取句柄(Handle 是字符串类型)
+ var handId = (cable.Handle.ToString());
+ var res = await _objectTypeService.GetTagInfosByPixels(dwgFile.Id, handId);
+ if (res != null)
+ {
+ if (res.Count == 1)
+ {
+ var item = res[0];
+ var objTypeName = item.ObjectTypeName;
+ if (objTypeName.Contains("电缆"))
+ {
+ ResTagInfosByPixels = item;
+ isValidCable = true; // 校验通过
+ ed.WriteMessage($"\n已选择电缆:{ResTagInfosByPixels.tags.FirstOrDefault().TagNumber}");
+ }
+
+ }
+ }
+
+ }
+ tr.Commit();
+ }
+ if (isValidCable)
+ {
+ break;
+ }
+ else
+ {
+ ed.WriteMessage($"\n已选择电缆:");
+ resultEntity = ed.GetEntity(options);
+ }
}
- else if (RES.Result == ButtonResult.No)
- { }
- });
+ #endregion
+
+
+ //Thread.Sleep(2000);
+ if (isValidCable)
+ {
+ var ResTagNumberById = await _objectTypeService.GetTagNumberById(ResTagInfosByPixels.tags.FirstOrDefault().ObjectTypeID);
+ var ObjectTypePListBy = await _objectTypeService.GetObjectTypePListByIds(ResTagInfosByPixels.tags.FirstOrDefault().ObjectTypeID);
+ string CableSpecification = ObjectTypePListBy.Where(q => q.PropertyName.Equals("电缆规格")).Select(s => s.EnumDataCode).FirstOrDefault();
+ CableSpecification = CableSpecification.Substring(0, CableSpecification.Length - 1);
+ var LatestSerialNumber = await _objectTypeService.GetLatestSerialNumber(ResTagInfosByPixels.tags.FirstOrDefault().ObjectTypeID);
+ //获取位号的电缆属性,判断是否设置电缆规格
+ var TagNumberBys = await _objectTypeService.GetEngineDataListByTags(ResTagInfosByPixels.tags.FirstOrDefault().TagNumber);
+ var TagNumberBy = TagNumberBys.Where(t => t.TagNumber.Equals(ResTagInfosByPixels.tags.FirstOrDefault().TagNumber)).FirstOrDefault();
+ if(string.IsNullOrEmpty(TagNumberBy.EngineDataProperty.Where(e => e.PropertyName.Equals("电缆规格")).Select(e => e.PropertyValue).FirstOrDefault()))
+ //if (!CableSpecification.Split(',').ToList().Contains(TagNumberBy.EngineDataProperty.Where(e => e.PropertyName.Equals("电缆规格")).Select(e => e.PropertyValue).FirstOrDefault()))
+ {
+ System.Windows.MessageBox.Show("无法获取电缆对信息,请在电缆\"属性面版“输入电缆”电缆规格”属性\r\n如:“1x2x0.75”", "KunHengCAD", System.Windows.MessageBoxButton.OK, System.Windows.MessageBoxImage.Warning); return;
+
+ }
+ var ResCableEngID = await _iOModuleService.GetCableByEngID(ResTagInfosByPixels.tags.FirstOrDefault().EngineDataID);
+ //如果配置不存在
+ if (ResCableEngID == null)
+ {
+ listPropertys = new List();
+ System.Windows.MessageBoxResult result = System.Windows.MessageBox.Show($"是否为通讯母线?", "KunHengCAD", System.Windows.MessageBoxButton.OKCancel, System.Windows.MessageBoxImage.Question);
+ if (result == System.Windows.MessageBoxResult.OK)
+ {
+ listPropertys = new List();
+ Dictionary pulldownlist;
+
+ listPropertys.Add(new propertyModel() { Id = "1", DisplayText = "电缆对数", GroupName = "基本参数", PropertyValue = "1", ControlTypeName = PROPERTYType.TextBox, });
+ listPropertys.Add(new propertyModel() { Id = "1", DisplayText = "每电缆对芯数", GroupName = "基本参数", PropertyValue = "2", ControlTypeName = PROPERTYType.TextBox, });
+ listPropertys.Add(new propertyModel() { Id = "1", DisplayText = "电缆对编号前缀", GroupName = "基本参数", PropertyValue = "Set", ControlTypeName = PROPERTYType.TextBox, });
+ pulldownlist = new Dictionary();
+ pulldownlist.Add("数字", "数字");
+ pulldownlist.Add("字母", "字母");
+ pulldownlist.Add("电缆对序号", "电缆对序号");
+ listPropertys.Add(new propertyModel() { Id = "1", DisplayText = "编号类型", GroupName = "电芯参数", PropertyValue = "数字", ControlTypeName = PROPERTYType.ComboBox, Item = pulldownlist, });
+ pulldownlist = new Dictionary();
+ pulldownlist.Add("按电缆编号", "按电缆编号");
+ pulldownlist.Add("按电缆对编号", "按电缆对编号");
+ listPropertys.Add(new propertyModel() { Id = "1", DisplayText = "编号规则", GroupName = "电芯参数", PropertyValue = "按电缆对编号", ControlTypeName = PROPERTYType.ComboBox, Item = pulldownlist, });
+ listPropertys.Add(new propertyModel() { Id = "1", DisplayText = "电芯编号前缀", GroupName = "电芯参数", PropertyValue = "C", ControlTypeName = PROPERTYType.TextBox, });
+ listPropertys.Add(new propertyModel() { Id = "1", DisplayText = "极性", GroupName = "电芯参数", PropertyValue = "+,-,s", ControlTypeName = PROPERTYType.TextBox, });
+ //显示属性弹窗
+ var ReslistPro = ShowPropertyMessage("新建" + ResTagInfosByPixels.tags.FirstOrDefault().TagNumber + "电缆配置", listPropertys);
+ if (ReslistPro == null || ReslistPro.Count() == 0) return;
+ ec_Cable ec_Cable = new ec_Cable();
+ ec_Cable.CableClass = "homerun";//母线
+ ec_Cable.Cable_Format = ResTagInfosByPixels.tags.FirstOrDefault().EngineDataProperty.Where(e => e.PropertyName.Equals("电缆规格")).Select(e => e.PropertyValue).FirstOrDefault();
+ ec_Cable.EngineerDataID = ResTagInfosByPixels.tags.FirstOrDefault().EngineDataID;
+ ec_Cable.Sets = new List();
+ int CableSetCount = int.TryParse(ReslistPro.Where(p => p.DisplayText.Equals("电缆对数")).Select(p => p.PropertyValue).FirstOrDefault(), out CableSetCount) ? CableSetCount : 0;
+ int n = 0;
+ for (int i = 0; i < CableSetCount; i++)
+ {
+ ec_CableSet ec_CableSet = new ec_CableSet();
+ ec_CableSet.CableSetName = ReslistPro.Where(p => p.DisplayText.Equals("电缆对编号前缀")).Select(p => p.PropertyValue).FirstOrDefault() + (i + 1);
+ ec_CableSet.CableSetSeq = i + 1;
+ ec_CableSet.Wires = new List();
+ int WireCount = int.TryParse(ReslistPro.Where(p => p.DisplayText.Equals("每电缆对芯数")).Select(p => p.PropertyValue).FirstOrDefault(), out WireCount) ? WireCount : 0;
+ for (int j = 0; j < WireCount; j++)
+ {
+ n++;
+ ec_CableSetWire ec_CableSetWire = new ec_CableSetWire();
+ ec_CableSetWire.Polarity = ReslistPro.Where(p => p.DisplayText.Equals("极性")).Select(p => p.PropertyValue).FirstOrDefault().Split(',')[Math.Abs(j % 3)];
+ ec_CableSetWire.SetLevel = j + 1;
+ string a = ReslistPro.Where(p => p.DisplayText.Equals("电芯编号前缀")).Select(p => p.PropertyValue).FirstOrDefault();//组成线号名的前缀
+ string Tag = "";//线号名的中间部分
+ switch (ReslistPro.Where(p => p.DisplayText.Equals("编号规则")).Select(p => p.PropertyValue).FirstOrDefault())
+ {
+ case "按电缆编号":
+ if (ReslistPro.Where(p => p.DisplayText.Equals("编号类型")).Select(p => p.PropertyValue).FirstOrDefault().Equals("数字"))
+ {
+ Tag = n.ToString();
+ }
+ else if (ReslistPro.Where(p => p.DisplayText.Equals("编号类型")).Select(p => p.PropertyValue).FirstOrDefault().Equals("字母"))
+ {
+ Tag = Tag + (char)('A' + (n - 1));
+ }
+ else if (ReslistPro.Where(p => p.DisplayText.Equals("编号类型")).Select(p => p.PropertyValue).FirstOrDefault().Equals("电缆对序号"))
+ {
+ Tag = (i + 1) + "-" + n.ToString();
+ }
+ break;
+ case "按电缆对编号":
+ if (ReslistPro.Where(p => p.DisplayText.Equals("编号类型")).Select(p => p.PropertyValue).FirstOrDefault().Equals("数字"))
+ {
+ Tag = (j + 1).ToString();
+ }
+ else if (ReslistPro.Where(p => p.DisplayText.Equals("编号类型")).Select(p => p.PropertyValue).FirstOrDefault().Equals("字母"))
+ {
+ Tag = Tag + (char)('A' + j);
+ }
+ else if (ReslistPro.Where(p => p.DisplayText.Equals("编号类型")).Select(p => p.PropertyValue).FirstOrDefault().Equals("电缆对序号"))
+ {
+ Tag = (i + 1) + "-" + (j + 1).ToString();
+ }
+ break;
+ }
+ ec_CableSetWire.Wire_Tag = a + Tag;
+ ec_CableSet.Wires.Add(ec_CableSetWire);
+ }
+ ec_Cable.Sets.Add(ec_CableSet);
+ }
+ var httpres = await _iOModuleService.CreateCableByProfile(ec_Cable);
+ ResCableEngID = await _iOModuleService.GetCableByEngID(ResTagInfosByPixels.tags.FirstOrDefault().EngineDataID);
+ }
+ else
+ {
+ listPropertys = new List();
+ Dictionary pulldownlist;
+
+ listPropertys.Add(new propertyModel() { Id = "1", DisplayText = "电缆对数", GroupName = "基本参数", PropertyValue = "10", ControlTypeName = PROPERTYType.TextBox, });
+ listPropertys.Add(new propertyModel() { Id = "1", DisplayText = "每电缆对芯数", GroupName = "基本参数", PropertyValue = "2", ControlTypeName = PROPERTYType.TextBox, });
+ listPropertys.Add(new propertyModel() { Id = "1", DisplayText = "电缆对编号前缀", GroupName = "基本参数", PropertyValue = "Set", ControlTypeName = PROPERTYType.TextBox, });
+ pulldownlist = new Dictionary();
+ pulldownlist.Add("数字", "数字");
+ pulldownlist.Add("字母", "字母");
+ pulldownlist.Add("电缆对序号", "电缆对序号");
+ listPropertys.Add(new propertyModel() { Id = "1", DisplayText = "编号类型", GroupName = "电芯参数", PropertyValue = "数字", ControlTypeName = PROPERTYType.ComboBox, Item = pulldownlist, });
+ pulldownlist = new Dictionary();
+ pulldownlist.Add("按电缆编号", "按电缆编号");
+ pulldownlist.Add("按电缆对编号", "按电缆对编号");
+ listPropertys.Add(new propertyModel() { Id = "1", DisplayText = "编号规则", GroupName = "电芯参数", PropertyValue = "按电缆对编号", ControlTypeName = PROPERTYType.ComboBox, Item = pulldownlist, });
+ listPropertys.Add(new propertyModel() { Id = "1", DisplayText = "电芯编号前缀", GroupName = "电芯参数", PropertyValue = "C", ControlTypeName = PROPERTYType.TextBox, });
+ listPropertys.Add(new propertyModel() { Id = "1", DisplayText = "极性", GroupName = "电芯参数", PropertyValue = "+,-,s", ControlTypeName = PROPERTYType.TextBox, });
+ //显示属性弹窗
+ var ReslistPro = ShowPropertyMessage("新建" + ResTagInfosByPixels.tags.FirstOrDefault().TagNumber + "电缆配置", listPropertys);
+ if (ReslistPro == null || ReslistPro.Count() == 0) return;
+ ec_Cable ec_Cable = new ec_Cable();
+ ec_Cable.CableClass = "conventional";//常规电缆
+ ec_Cable.EngineerDataID = ResTagInfosByPixels.tags.FirstOrDefault().EngineDataID;
+ ec_Cable.Sets = new List();
+ int CableSetCount = int.TryParse(ReslistPro.Where(p => p.DisplayText.Equals("电缆对数")).Select(p => p.PropertyValue).FirstOrDefault(), out CableSetCount) ? CableSetCount : 0;
+ int n = 0;
+ for (int i = 0; i < CableSetCount; i++)
+ {
+ ec_CableSet ec_CableSet = new ec_CableSet();
+ ec_CableSet.CableSetName = ReslistPro.Where(p => p.DisplayText.Equals("电缆对编号前缀")).Select(p => p.PropertyValue).FirstOrDefault() + (i + 1);
+ ec_CableSet.CableSetSeq = i + 1;
+ ec_CableSet.Wires = new List();
+ int WireCount = int.TryParse(ReslistPro.Where(p => p.DisplayText.Equals("每电缆对芯数")).Select(p => p.PropertyValue).FirstOrDefault(), out WireCount) ? WireCount : 0;
+ for (int j = 0; j < WireCount; j++)
+ {
+ n++;
+ ec_CableSetWire ec_CableSetWire = new ec_CableSetWire();
+ ec_CableSetWire.Polarity = ReslistPro.Where(p => p.DisplayText.Equals("极性")).Select(p => p.PropertyValue).FirstOrDefault().Split(',')[Math.Abs(j % 3)];
+ ec_CableSetWire.SetLevel = j + 1;
+ string a = ReslistPro.Where(p => p.DisplayText.Equals("电芯编号前缀")).Select(p => p.PropertyValue).FirstOrDefault();//组成线号名的前缀
+ string Tag = "";//线号名的中间部分
+ switch (ReslistPro.Where(p => p.DisplayText.Equals("编号规则")).Select(p => p.PropertyValue).FirstOrDefault())
+ {
+ case "按电缆编号"://所有的电缆对中的电芯一起编号
+ if (ReslistPro.Where(p => p.DisplayText.Equals("编号类型")).Select(p => p.PropertyValue).FirstOrDefault().Equals("数字"))
+ {
+ Tag = n.ToString();
+ }
+ else if (ReslistPro.Where(p => p.DisplayText.Equals("编号类型")).Select(p => p.PropertyValue).FirstOrDefault().Equals("字母"))
+ {
+ Tag = Tag + (char)('A' + (n-1));
+ }
+ else if (ReslistPro.Where(p => p.DisplayText.Equals("编号类型")).Select(p => p.PropertyValue).FirstOrDefault().Equals("电缆对序号"))
+ {
+ Tag = (i+1)+"-"+ n.ToString();
+ }
+ break;
+ case "按电缆对编号"://一个电缆对中线号按顺序编号,另一个电缆对中线号重新从1开始编号
+ if (ReslistPro.Where(p => p.DisplayText.Equals("编号类型")).Select(p => p.PropertyValue).FirstOrDefault().Equals("数字"))
+ {
+ Tag = (j + 1).ToString();
+ }
+ else if (ReslistPro.Where(p => p.DisplayText.Equals("编号类型")).Select(p => p.PropertyValue).FirstOrDefault().Equals("字母"))
+ {
+ Tag = Tag + (char)('A' + j);
+ }
+ else if (ReslistPro.Where(p => p.DisplayText.Equals("编号类型")).Select(p => p.PropertyValue).FirstOrDefault().Equals("电缆对序号"))
+ {
+ Tag = (i+1) + "-" + (j+1).ToString();
+ }
+ break;
+ }
+ ec_CableSetWire.Wire_Tag = a + Tag;
+ ec_CableSet.Wires.Add(ec_CableSetWire);
+ }
+ ec_Cable.Sets.Add(ec_CableSet);
+ }
+ var httpres = await _iOModuleService.CreateCableByProfile(ec_Cable);
+ ResCableEngID = await _iOModuleService.GetCableByEngID(ResTagInfosByPixels.tags.FirstOrDefault().EngineDataID);
+ }
+ }
+ if (ResCableEngID != null)
+ {
+
+ IntPtr cadHandle = Bricscad.ApplicationServices.Application.MainWindow.Handle;
+ //打开窗体
+ var para = new Prism.Services.Dialogs.DialogParameters();
+ //para.Add(GlobalObject.dialogPar.para1.ToString(), "6e2919e4-28cd-4fb6-9035-10b2ff0e30fb");
+ para.Add(GlobalObject.dialogPar.info.ToString(), cadHandle);
+
+ para.Add(GlobalObject.dialogPar.para1.ToString(), ResCableEngID);
+ para.Add(GlobalObject.dialogPar.para2.ToString(), ResTagInfosByPixels.tags.FirstOrDefault().TagNumber);
+ var _dialogService = GlobalObject._prismContainer.Resolve();
+ _dialogService.ShowDialog(nameof(DialogSignalPredistribution), para, (RES) =>
+ {
+ if (RES.Result == ButtonResult.Yes)
+ {
+
+ }
+ else if (RES.Result == ButtonResult.No)
+ { }
+ });
+ }
+
+ }
+
+ }
+ catch (System.Exception ex)
+ {
+ ed.WriteMessage($"\n错误: {ex.Message}");
+ }
});
btnCableSinal.Image = GlobalObject.ImageSourceFromEmbeddedResourceStream(@"CableSinal.png");
btnCableSinal.Id = "信号预分配";
diff --git a/newFront/c#前端/SWS.CAD/Event/ScrollToItemEvent.cs b/newFront/c#前端/SWS.CAD/Event/ScrollToItemEvent.cs
new file mode 100644
index 00000000..be965b2d
--- /dev/null
+++ b/newFront/c#前端/SWS.CAD/Event/ScrollToItemEvent.cs
@@ -0,0 +1,9 @@
+using Newtonsoft.Json.Linq;
+using Prism.Events;
+
+namespace SWS.CAD.Event
+{
+ public class ScrollToItemEvent: PubSubEvent