Compare commits
2 Commits
231e088199
...
716a1e3524
Author | SHA1 | Date | |
---|---|---|---|
716a1e3524 | |||
4c55f4c7f2 |
@ -184,7 +184,7 @@ namespace Learun.Application.Web.AppApi
|
|||||||
Where(x => x.DeleteFlg != 1).ToList();
|
Where(x => x.DeleteFlg != 1).ToList();
|
||||||
|
|
||||||
var relTypeTbName = ProjectSugar.TableName<ec_reltypeEntity>(projectId);
|
var relTypeTbName = ProjectSugar.TableName<ec_reltypeEntity>(projectId);
|
||||||
var relType = SqlSugarHelper.Db.Queryable<ec_reltypeEntity>().AS(relTypeTbName).ToList().FirstOrDefault(x => x.RelType == ((int)enum_RelType.设备_电缆).ToString());
|
var relType = SqlSugarHelper.Db.Queryable<ec_reltypeEntity>().AS(relTypeTbName).ToList().FirstOrDefault(x => x.RelType == enum_RelType.设备_电缆);
|
||||||
var propBll = new ec_enginedata_propertyBLL();
|
var propBll = new ec_enginedata_propertyBLL();
|
||||||
|
|
||||||
var allTagProps = SqlSugarHelper.Db.Queryable<ec_enginedata_propertyEntity>().AS(propTbName).ToList();
|
var allTagProps = SqlSugarHelper.Db.Queryable<ec_enginedata_propertyEntity>().AS(propTbName).ToList();
|
||||||
@ -265,7 +265,7 @@ namespace Learun.Application.Web.AppApi
|
|||||||
Where(x => x.DeleteFlg != 1).ToList();
|
Where(x => x.DeleteFlg != 1).ToList();
|
||||||
|
|
||||||
var relTypeTbName = ProjectSugar.TableName<ec_reltypeEntity>(projectId);
|
var relTypeTbName = ProjectSugar.TableName<ec_reltypeEntity>(projectId);
|
||||||
var relType = SqlSugarHelper.Db.Queryable<ec_reltypeEntity>().AS(relTypeTbName).ToList().FirstOrDefault(x => x.RelType == ((int)enum_RelType.设备_电缆).ToString());
|
var relType = SqlSugarHelper.Db.Queryable<ec_reltypeEntity>().AS(relTypeTbName).ToList().FirstOrDefault(x => x.RelType == enum_RelType.设备_电缆);
|
||||||
//var propBll = new ec_enginedata_propertyBLL();
|
//var propBll = new ec_enginedata_propertyBLL();
|
||||||
|
|
||||||
var allTagProps = SqlSugarHelper.Db.Queryable<ec_enginedata_propertyEntity>().AS(propTBName).ToList();
|
var allTagProps = SqlSugarHelper.Db.Queryable<ec_enginedata_propertyEntity>().AS(propTBName).ToList();
|
||||||
@ -312,7 +312,7 @@ namespace Learun.Application.Web.AppApi
|
|||||||
Where(x => x.DeleteFlg != 1).ToList();
|
Where(x => x.DeleteFlg != 1).ToList();
|
||||||
|
|
||||||
var relTypeTbName = ProjectSugar.TableName<ec_reltypeEntity>(projectId);
|
var relTypeTbName = ProjectSugar.TableName<ec_reltypeEntity>(projectId);
|
||||||
var relType = SqlSugarHelper.Db.Queryable<ec_reltypeEntity>().AS(relTypeTbName).ToList().FirstOrDefault(x => x.RelType == ((int)enum_RelType.设备_电缆).ToString());
|
var relType = SqlSugarHelper.Db.Queryable<ec_reltypeEntity>().AS(relTypeTbName).ToList().FirstOrDefault(x => x.RelType == enum_RelType.设备_电缆);
|
||||||
var propBll = new ec_enginedata_propertyBLL();
|
var propBll = new ec_enginedata_propertyBLL();
|
||||||
var CBs = allCBs.Where(x => x.PDBId == Enginedataid).ToList();
|
var CBs = allCBs.Where(x => x.PDBId == Enginedataid).ToList();
|
||||||
|
|
||||||
|
@ -1,6 +1,9 @@
|
|||||||
using DocumentFormat.OpenXml.Drawing.Spreadsheet;
|
using DocumentFormat.OpenXml.Drawing.Spreadsheet;
|
||||||
using Learun.Application.Organization;
|
using Learun.Application.Organization;
|
||||||
using Learun.Application.TwoDevelopment.ZZDT_EC;
|
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.Loger;
|
||||||
using Learun.Util;
|
using Learun.Util;
|
||||||
using Learun.Util.SqlSugar;
|
using Learun.Util.SqlSugar;
|
||||||
@ -9,8 +12,10 @@ using Microsoft.Practices.ObjectBuilder2;
|
|||||||
using Newtonsoft.Json;
|
using Newtonsoft.Json;
|
||||||
using Org.BouncyCastle.Bcpg.OpenPgp;
|
using Org.BouncyCastle.Bcpg.OpenPgp;
|
||||||
using Pipelines.Sockets.Unofficial.Arenas;
|
using Pipelines.Sockets.Unofficial.Arenas;
|
||||||
|
using SqlSugar;
|
||||||
using System;
|
using System;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
|
using System.Data.Entity.Infrastructure;
|
||||||
using System.Diagnostics;
|
using System.Diagnostics;
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
using System.Web.Http;
|
using System.Web.Http;
|
||||||
@ -41,7 +46,49 @@ namespace Learun.Application.Web.AppApi
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 找到某一个预分配箱子 附近的某一个箱子
|
||||||
|
/// <param name="frameLists"/>
|
||||||
|
/// <param name="allPanel"/>
|
||||||
|
/// <param name="IOTypeOnCable">Digital,4-20mA,10v,pt100,pulse</param>
|
||||||
|
/// <param name="PreAssignPanelID"/>
|
||||||
|
/// </summary>
|
||||||
|
|
||||||
|
private ec_PanelEntity FindPanelNearby(List<FrameBll.FrameList> frameLists, List<ec_PanelEntity> allPanel, List<ec_enginedata_propertyEntity> 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;
|
||||||
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// IO分配主界面查询,查询所有的位置 - 采集箱 - 模块 - 通道
|
/// IO分配主界面查询,查询所有的位置 - 采集箱 - 模块 - 通道
|
||||||
@ -241,23 +288,42 @@ namespace Learun.Application.Web.AppApi
|
|||||||
/// </summary>
|
/// </summary>
|
||||||
/// <param name="projId"></param>
|
/// <param name="projId"></param>
|
||||||
/// <param name="AcceptNearbyPanel"></param>
|
/// <param name="AcceptNearbyPanel"></param>
|
||||||
|
/// <param name="CableIds">需要分配的电缆cableid,不是enginedataId,逗号分开</param>
|
||||||
/// <returns></returns>
|
/// <returns></returns>
|
||||||
public IHttpActionResult AutoAssignCable2Channel_step1(string projId, bool AcceptNearbyPanel)
|
[HttpPost]
|
||||||
|
public IHttpActionResult AutoAssignCable2Channel_step1(string projId, bool AcceptNearbyPanel, [FromBody] List<string> CableIds)
|
||||||
{
|
{
|
||||||
#region 数据准备
|
#region 数据准备
|
||||||
|
var frameBll = new FrameBll();
|
||||||
|
var allFrames = frameBll.GetFrameList(projId);
|
||||||
var cbll = new ec_CableBLL();
|
var cbll = new ec_CableBLL();
|
||||||
var panelTable = ProjectSugar.TableName<ec_PanelEntity>(projId);
|
var panelTable = ProjectSugar.TableName<ec_PanelEntity>(projId);
|
||||||
var stripTable = ProjectSugar.TableName<ec_PanelStripEntity>(projId);
|
var stripTable = ProjectSugar.TableName<ec_PanelStripEntity>(projId);
|
||||||
|
var tagTable = ProjectSugar.TableName<ec_enginedataEntity>(projId);
|
||||||
|
var propTable = ProjectSugar.TableName<ec_enginedata_propertyEntity>(projId);
|
||||||
|
var typeTable = ProjectSugar.TableName<ec_objecttypeEntity>(projId);
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
#region 先要知道有哪些待分配的信号
|
#region 先要知道有哪些待分配的信号 端子排
|
||||||
|
if (CableIds == null || CableIds.Count == 0)
|
||||||
var cablesNeedAssigned = cbll.GetCablesPreAssign(projId, true);
|
{
|
||||||
|
return Success("OK");
|
||||||
|
}
|
||||||
|
var cablesNeedAssigned = cbll.GetCablesPreAssign(projId, CableIds, true);
|
||||||
|
cablesNeedAssigned = cablesNeedAssigned.Where(x => CableIds.Contains(x.CableID)).ToList();
|
||||||
#endregion
|
#endregion
|
||||||
//涉及到哪些箱子
|
//涉及到哪些箱子
|
||||||
var panelsNeed = SqlSugarHelper.Db.Queryable<ec_PanelEntity>().AS(panelTable).
|
var allPanel = SqlSugarHelper.Db.Queryable<ec_PanelEntity>().AS(panelTable).
|
||||||
Where(x => cablesNeedAssigned.Select(xx => xx.PanelID).Contains(x.PanelID)).ToList();
|
InnerJoin<ec_enginedataEntity>((a, b) => a.EngineerDataID == b.EngineDataID).AS<ec_enginedataEntity>(tagTable).
|
||||||
|
InnerJoin<ec_objecttypeEntity>((a, b, c) => b.ObjectTypeID == c.ObjectTypeID).AS<ec_objecttypeEntity>(typeTable).
|
||||||
|
Where((a, b, c) => c.specialType == GlobalEnum.specialType.系统柜).
|
||||||
|
ToList();//这里要过滤一下,根据object type里的specialType,而不是所有的panel
|
||||||
|
|
||||||
|
var allPanelProp = SqlSugarHelper.Db.Queryable<ec_enginedata_propertyEntity>().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<ec_PanelStripEntity>().AS(stripTable).
|
var stripsNeed = SqlSugarHelper.Db.Queryable<ec_PanelStripEntity>().AS(stripTable).
|
||||||
Where(x => panelsNeed.Select(xx => xx.PanelID).Contains(x.PanelID)).
|
Where(x => panelsNeed.Select(xx => xx.PanelID).Contains(x.PanelID)).
|
||||||
ToList();
|
ToList();
|
||||||
@ -265,11 +331,27 @@ namespace Learun.Application.Web.AppApi
|
|||||||
var cablesNotMatchIO = cablesNeedAssigned.Where(x => x.IOTypesNotMatchedList.Count > 0).ToList(); // GetCablesPreAssign 查询时已经处理过io是否匹配了
|
var cablesNotMatchIO = cablesNeedAssigned.Where(x => x.IOTypesNotMatchedList.Count > 0).ToList(); // GetCablesPreAssign 查询时已经处理过io是否匹配了
|
||||||
if (cablesNotMatchIO != null && cablesNotMatchIO.Count > 0)
|
if (cablesNotMatchIO != null && cablesNotMatchIO.Count > 0)
|
||||||
{
|
{
|
||||||
if (!AcceptNearbyPanel)//允许进行
|
if (AcceptNearbyPanel)//允许进行
|
||||||
{
|
{
|
||||||
//有不匹配的,但是用户允许继续
|
//有不匹配的,但是用户允许继续
|
||||||
//在之后的自动分配过程中会自动寻找匹配的采集箱,原则上从就近的开始找,如果没有匹配的采集箱,则提示“未找到具有XX类型的采集箱,请新增后再次分配,是否取消自动分配进程?”
|
//在之后的自动分配过程中会自动寻找匹配的采集箱,原则上从就近的开始找,如果没有匹配的采集箱,则提示“未找到具有XX类型的采集箱,请新增后再次分配,是否取消自动分配进程?”
|
||||||
return Success("OK");
|
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
|
else
|
||||||
{
|
{
|
||||||
@ -288,47 +370,17 @@ namespace Learun.Application.Web.AppApi
|
|||||||
else
|
else
|
||||||
{
|
{
|
||||||
//没有不匹配的,可以继续进行
|
//没有不匹配的,可以继续进行
|
||||||
|
|
||||||
|
}
|
||||||
|
//必要的数据存入redis,以便后续步骤使用
|
||||||
|
ICache redisObj = CacheFactory.CaChe();
|
||||||
|
redisObj.Remove("IOModule_AutoAssign2Ch_" + projId, CacheId.IOModule_AutoAssign2Ch);
|
||||||
|
redisObj.Write<List<ec_CableEntity>>("IOModule_AutoAssign2Ch_" + projId, cablesNeedAssigned, CacheId.IOModule_AutoAssign2Ch);
|
||||||
|
|
||||||
return Success("OK");
|
return Success("OK");
|
||||||
}
|
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
#region 1.2
|
|
||||||
#region 先分组 1.2.2
|
|
||||||
cablesNeedAssigned = cablesNeedAssigned.OrderBy(x => new { x.PreAssignIOType, x.System, x.PanelID }).ToList();
|
|
||||||
var curPanel = new ec_PanelEntity();
|
|
||||||
curPanel = panelsNeed.FirstOrDefault(x => x.PanelID == cablesNeedAssigned[0].PanelID);//先定位到第一个电缆所在的箱子
|
|
||||||
curPanel.strips = stripsNeed.Where(x => x.PanelID == curPanel.PanelID).ToList();
|
|
||||||
var curStrip = new ec_PanelStripEntity();
|
|
||||||
#endregion
|
|
||||||
for (var i = 0; i < cablesNeedAssigned.Count; i++)
|
|
||||||
{
|
|
||||||
|
|
||||||
#region 是否有端子排 1.2.1
|
|
||||||
if (curPanel.PanelID != cablesNeedAssigned[i].PanelID)
|
|
||||||
{
|
|
||||||
curPanel = panelsNeed.FirstOrDefault(x => x.PanelID == cablesNeedAssigned[0].PanelID);//切换箱子
|
|
||||||
curPanel.strips = stripsNeed.Where(x => x.PanelID == curPanel.PanelID).ToList();
|
|
||||||
}
|
|
||||||
foreach (var set in cablesNeedAssigned[i].Sets)
|
|
||||||
{
|
|
||||||
var availableStrips = curPanel.strips.Where(x => x.IO_TYPE.ToUpper() == set.IOType.ToString().ToUpper()).ToList();
|
|
||||||
|
|
||||||
if (availableStrips != null && availableStrips.Count > 0)
|
|
||||||
{
|
|
||||||
//已经存在端子排
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
//没有端子排,根据信号数里自动新建端子排,通道数里根据端子io模板的默认值获得
|
|
||||||
//?????????????????????????????????
|
|
||||||
}
|
|
||||||
}
|
|
||||||
//可能要换一下循环主体,评估下是按照cable循环好,还是按strip循环好
|
|
||||||
#endregion
|
|
||||||
|
|
||||||
}
|
|
||||||
#endregion
|
|
||||||
return Success("自动关联完成");
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
@ -339,48 +391,17 @@ namespace Learun.Application.Web.AppApi
|
|||||||
/// <returns></returns>
|
/// <returns></returns>
|
||||||
public IHttpActionResult AutoAssignCable2Channel_step2(string projId)
|
public IHttpActionResult AutoAssignCable2Channel_step2(string projId)
|
||||||
{
|
{
|
||||||
// #region 数据准备
|
ICache redisObj = CacheFactory.CaChe();
|
||||||
// var cbll = new ec_CableBLL();
|
var cablesNeedAssigned = redisObj.Read<List<ec_CableEntity>>("IOModule_AutoAssign2Ch_" + projId, CacheId.IOModule_AutoAssign2Ch);
|
||||||
// var panelTable = ProjectSugar.TableName<ec_PanelEntity>(projId);
|
|
||||||
// var stripTable = ProjectSugar.TableName<ec_PanelStripEntity>(projId);
|
|
||||||
// #endregion
|
|
||||||
|
|
||||||
// #region 先要知道有哪些待分配的信号
|
|
||||||
|
|
||||||
// var cablesNeedAssigned = cbll.GetCablesPreAssign(projId, true);
|
|
||||||
|
|
||||||
// #endregion
|
|
||||||
// //涉及到哪些箱子
|
|
||||||
// var panelsNeed = SqlSugarHelper.Db.Queryable<ec_PanelEntity>().AS(panelTable).
|
|
||||||
//Where(x => cablesNeedAssigned.Select(xx => xx.PanelID).Contains(x.PanelID)).ToList();
|
|
||||||
// var stripsNeed = SqlSugarHelper.Db.Queryable<ec_PanelStripEntity>().AS(stripTable).
|
|
||||||
// Where(x => panelsNeed.Select(xx => xx.PanelID).Contains(x.PanelID)).
|
|
||||||
// ToList();
|
|
||||||
// #region 1.1判断(信号预分配选择的采集箱可能并没有该电缆需要的信号类型)
|
|
||||||
// var cablesNotMatchIO = cablesNeedAssigned.Where(x => x.IOTypesNotMatchedList.Count > 0).ToList(); // GetCablesPreAssign 查询时已经处理过io是否匹配了
|
|
||||||
// if (cablesNotMatchIO != null && cablesNotMatchIO.Count > 0)
|
|
||||||
// {
|
|
||||||
// if (!AcceptUnmatchedPanel)//允许进行
|
|
||||||
// {
|
|
||||||
// //???
|
|
||||||
// }
|
|
||||||
// else
|
|
||||||
// {
|
|
||||||
// //不继续自动分配,中断进程,等添加完正确的模块后再继续自动分配
|
|
||||||
// return Fail("等电缆的预分配IO类型和其预分配的采集箱的IO类型无法匹配。等添加完正确的模块后再继续自动分配。");
|
|
||||||
|
|
||||||
// }
|
|
||||||
// }
|
|
||||||
// #endregion
|
|
||||||
|
|
||||||
//#region 1.2
|
//#region 1.2
|
||||||
// #region 先分组 1.2.2
|
#region 先分组 1.2.2
|
||||||
// cablesNeedAssigned = cablesNeedAssigned.OrderBy(x => new { x.PreAssignIOType, x.System, x.PanelID }).ToList();
|
cablesNeedAssigned = cablesNeedAssigned.OrderBy(x => new { x.PanelID, x.PreAssignIOType, x.System }).ToList();
|
||||||
//var curPanel = new ec_PanelEntity();
|
//var curPanel = new ec_PanelEntity();
|
||||||
//curPanel = panelsNeed.FirstOrDefault(x => x.PanelID == cablesNeedAssigned[0].PanelID);//先定位到第一个电缆所在的箱子
|
//curPanel = panelsNeed.FirstOrDefault(x => x.PanelID == cablesNeedAssigned[0].PanelID);//先定位到第一个电缆所在的箱子
|
||||||
//curPanel.strips = stripsNeed.Where(x => x.PanelID == curPanel.PanelID).ToList();
|
//curPanel.strips = stripsNeed.Where(x => x.PanelID == curPanel.PanelID).ToList();
|
||||||
//var curStrip = new ec_PanelStripEntity();
|
//var curStrip = new ec_PanelStripEntity();
|
||||||
// #endregion
|
#endregion
|
||||||
//for (var i = 0; i < cablesNeedAssigned.Count; i++)
|
//for (var i = 0; i < cablesNeedAssigned.Count; i++)
|
||||||
//{
|
//{
|
||||||
|
|
||||||
@ -435,7 +456,7 @@ namespace Learun.Application.Web.AppApi
|
|||||||
public IHttpActionResult GetCablePreAssignPreview(string projId)
|
public IHttpActionResult GetCablePreAssignPreview(string projId)
|
||||||
{
|
{
|
||||||
var bll = new ec_CableBLL();
|
var bll = new ec_CableBLL();
|
||||||
var res = bll.GetCablesPreAssign(projId);
|
var res = bll.GetCablesPreAssign(projId, null);
|
||||||
|
|
||||||
return Success(res);
|
return Success(res);
|
||||||
|
|
||||||
|
@ -61,6 +61,7 @@ namespace Learun.Application.Web.AppApi
|
|||||||
{
|
{
|
||||||
return Fail("项目数据字典中,没有找到【肋位号】的下拉项中。");// 或者 无法从数据字典中找到对应的那个下拉
|
return Fail("项目数据字典中,没有找到【肋位号】的下拉项中。");// 或者 无法从数据字典中找到对应的那个下拉
|
||||||
}
|
}
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
var pointsOnDwg = SqlSugarHelper.Db.Queryable<ec_enginedata_pixelEntity>().AS(pixelTbName).
|
var pointsOnDwg = SqlSugarHelper.Db.Queryable<ec_enginedata_pixelEntity>().AS(pixelTbName).
|
||||||
|
@ -765,7 +765,7 @@ namespace Learun.Application.Web.Areas.ZZDT_EC.Controllers
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
var cableFromToRel = SqlSugarHelper.Db.Queryable<ec_reltypeEntity>().AS(relTypeTableName).ToList().FirstOrDefault(x => x.RelType == ((int)enum_RelType.设备_电缆).ToString());
|
var cableFromToRel = SqlSugarHelper.Db.Queryable<ec_reltypeEntity>().AS(relTypeTableName).ToList().FirstOrDefault(x => x.RelType == enum_RelType.设备_电缆);
|
||||||
if (cableFromToRel == null)
|
if (cableFromToRel == null)
|
||||||
{
|
{
|
||||||
throw new Exception($"查不到【{enum_RelType.设备_电缆.ToString()}】这个关联类型。");
|
throw new Exception($"查不到【{enum_RelType.设备_电缆.ToString()}】这个关联类型。");
|
||||||
|
@ -1,6 +1,7 @@
|
|||||||
using DocumentFormat.OpenXml.Drawing.Spreadsheet;
|
using DocumentFormat.OpenXml.Drawing.Spreadsheet;
|
||||||
using Learun.Util;
|
using Learun.Util;
|
||||||
using Learun.Util.SqlSugar;
|
using Learun.Util.SqlSugar;
|
||||||
|
using SqlSugar;
|
||||||
using System;
|
using System;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using System.Collections.ObjectModel;
|
using System.Collections.ObjectModel;
|
||||||
@ -122,7 +123,7 @@ namespace Learun.Application.TwoDevelopment.ZZDT_EC
|
|||||||
var panelStripTableName = ProjectSugar.TableName<ec_PanelStripEntity>(ProjID);
|
var panelStripTableName = ProjectSugar.TableName<ec_PanelStripEntity>(ProjID);
|
||||||
var allRelTypeDef = SqlSugarHelper.Db.Queryable<ec_reltypeEntity>().AS(relTypeTableName).ToList();
|
var allRelTypeDef = SqlSugarHelper.Db.Queryable<ec_reltypeEntity>().AS(relTypeTableName).ToList();
|
||||||
//var x2 = SqlSugarHelper.Db.Queryable<ec_reltypeEntity>().AS(relTypeTableName).ToList().FirstOrDefault(x => x.RelType == ((int)enum_RelType.设备_电缆).ToString());
|
//var x2 = SqlSugarHelper.Db.Queryable<ec_reltypeEntity>().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)
|
if (cableFromToRel == null)
|
||||||
{
|
{
|
||||||
throw new Exception($"查不到【{enum_RelType.设备_电缆.ToString()}】这个关联类型。");
|
throw new Exception($"查不到【{enum_RelType.设备_电缆.ToString()}】这个关联类型。");
|
||||||
@ -220,36 +221,60 @@ namespace Learun.Application.TwoDevelopment.ZZDT_EC
|
|||||||
#region 还没有预配置
|
#region 还没有预配置
|
||||||
#endregion
|
#endregion
|
||||||
}
|
}
|
||||||
|
/// <summary>
|
||||||
public List<ec_CableEntity> GetCablesPreAssign(string projId, bool needProp = false)
|
/// 所有的
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="projId"></param>
|
||||||
|
/// <param name="range">按需指定某几个id</param>
|
||||||
|
/// <param name="needProp">是否需要带出电缆上的工程属性</param>
|
||||||
|
/// <returns></returns>
|
||||||
|
public List<ec_CableEntity> GetCablesPreAssign(string projId, List<string> range, bool needProp = false)
|
||||||
{
|
{
|
||||||
var table = ProjectSugar.TableName<ec_CableEntity>(projId);
|
var table = ProjectSugar.TableName<ec_CableEntity>(projId);
|
||||||
var tagTable = ProjectSugar.TableName<ec_enginedataEntity>(projId);
|
var tagTable = ProjectSugar.TableName<ec_enginedataEntity>(projId);
|
||||||
var panelTable = ProjectSugar.TableName<ec_PanelEntity>(projId);
|
var panelTable = ProjectSugar.TableName<ec_PanelEntity>(projId);
|
||||||
var propTable = ProjectSugar.TableName<ec_enginedata_propertyEntity>(projId);
|
var propTable = ProjectSugar.TableName<ec_enginedata_propertyEntity>(projId);
|
||||||
var relTable = ProjectSugar.TableName<ec_enginedata_relEntity>(projId);
|
var relTable = ProjectSugar.TableName<ec_enginedata_relEntity>(projId);
|
||||||
|
var relTypeTable = ProjectSugar.TableName<ec_reltypeEntity>(projId);
|
||||||
var setServ = new ec_CableSetService();
|
var setServ = new ec_CableSetService();
|
||||||
var wireServ = new ec_CableSetWireService();
|
var wireServ = new ec_CableSetWireService();
|
||||||
//先查出所有已经预分配的电缆
|
//先查出所有已经预分配的电缆
|
||||||
var preAssignedCables = SqlSugarHelper.Db.Queryable<ec_CableEntity>().AS(table).
|
var preAssignedCables = SqlSugarHelper.Db.Queryable<ec_CableEntity>().AS(table).
|
||||||
|
WhereIF(range != null && range.Count() > 0, x => range.Contains(x.CableID)).
|
||||||
Where(x => !string.IsNullOrEmpty(x.PanelID)).ToList();
|
Where(x => !string.IsNullOrEmpty(x.PanelID)).ToList();
|
||||||
var tags = SqlSugarHelper.Db.Queryable<ec_enginedataEntity>().AS(tagTable).
|
var tags = SqlSugarHelper.Db.Queryable<ec_enginedataEntity>().AS(tagTable).
|
||||||
Where(x => preAssignedCables.Select(xx => xx.EngineerDataID).Contains(x.EngineDataID)).ToList();
|
Where(x => preAssignedCables.Select(xx => xx.EngineerDataID).Contains(x.EngineDataID)).ToList().
|
||||||
var allpropOnFrom = new List<ec_enginedata_propertyEntity>();
|
ToDictionary(x => x.EngineDataID);
|
||||||
|
//var allpropOnFrom = new List<ec_enginedata_propertyEntity>();
|
||||||
|
|
||||||
var panels = SqlSugarHelper.Db.Queryable<ec_PanelEntity>().AS(panelTable).
|
var panels = SqlSugarHelper.Db.Queryable<ec_PanelEntity>().AS(panelTable).
|
||||||
Where(x => preAssignedCables.Select(xx => xx.PanelID).Contains(x.PanelID)).ToList();
|
Where(x => preAssignedCables.Select(xx => xx.PanelID).Contains(x.PanelID)).ToList();
|
||||||
|
var panelDict = panels.ToDictionary(x => x.PanelID);
|
||||||
var panelTags = SqlSugarHelper.Db.Queryable<ec_enginedataEntity>().AS(tagTable).
|
var panelTags = SqlSugarHelper.Db.Queryable<ec_enginedataEntity>().AS(tagTable).
|
||||||
Where(x => panels.Select(xx => xx.EngineerDataID).Contains(x.EngineDataID)).ToList();
|
Where(x => panels.Select(xx => xx.EngineerDataID).Contains(x.EngineDataID)).ToList().ToDictionary(x => x.EngineDataID);
|
||||||
|
var FromRels = new Dictionary<string, string>();//key是cable,value是from设备的id
|
||||||
|
var allpropOnFrom = new List<ec_enginedata_propertyEntity>();
|
||||||
if (needProp)
|
if (needProp)
|
||||||
{
|
{
|
||||||
var FromRels = SqlSugarHelper.Db.Queryable<ec_enginedata_relEntity>().AS(relTable).
|
var relTypeObj = SqlSugarHelper.Db.Queryable<ec_reltypeEntity>().AS(relTypeTable).ToList().
|
||||||
Where(x => preAssignedCables.Select(y => y.EngineerDataID).Contains(x.RelEngineData2ID)
|
FirstOrDefault(x => x.RelType == enum_RelType.设备_电缆);
|
||||||
&& x.RelTypeID == ((int)enum_RelType.设备_电缆).ToString()).ToList();
|
|
||||||
|
FromRels = SqlSugarHelper.Db.Queryable<ec_enginedata_relEntity>().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<ec_enginedata_propertyEntity>().AS(propTable).
|
allpropOnFrom = SqlSugarHelper.Db.Queryable<ec_enginedata_propertyEntity>().AS(propTable).
|
||||||
Where(x => FromRels.Select(xx => xx.RelEngineData2ID).Distinct().Contains(x.EngineDataID)).ToList();
|
Where(x => FromRels.Values.Contains(x.EngineDataID)).ToList();
|
||||||
|
|
||||||
}
|
}
|
||||||
|
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)
|
foreach (var cable in preAssignedCables)
|
||||||
{
|
{
|
||||||
var sets = setServ.GetList(projId, cable.CableID);
|
var sets = setServ.GetList(projId, cable.CableID);
|
||||||
@ -258,23 +283,26 @@ namespace Learun.Application.TwoDevelopment.ZZDT_EC
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
cable.TagNumber = tags.FirstOrDefault(x => x.EngineDataID == cable.EngineerDataID)?.TagNumber;
|
cable.TagNumber = tags[cable.EngineerDataID]?.TagNumber;
|
||||||
var panelObj = panels.FirstOrDefault(x => x.PanelID == cable.PanelID);
|
var panelObj = panelDict[cable.PanelID];
|
||||||
if (panelObj == null)
|
if (panelObj == null)
|
||||||
{
|
{
|
||||||
continue;//分配就已经不合理了
|
continue;//分配就已经不合理了
|
||||||
}
|
}
|
||||||
else if (panelObj != null)
|
else if (panelObj != null)
|
||||||
{
|
{
|
||||||
panelObj.TagNumber = panelTags.FirstOrDefault(x => x.EngineDataID == panelObj.EngineerDataID)?.TagNumber;
|
panelObj.TagNumber = panelTags[panelObj.EngineerDataID]?.TagNumber;
|
||||||
|
|
||||||
//1.2.1 系统属性从电缆的from端上的设备中取设备的系统
|
//1.2.2 系统属性从电缆的from端上的设备中取设备的系统
|
||||||
cable.System = allpropOnFrom.FirstOrDefault(x => x.EngineDataID == cable.PanelID && x.PropertyName == GlobalObject.propName_System)?.PropertyValue;
|
var panelId = FromRels[cable.EngineerDataID];
|
||||||
|
var panelProps = allPropOnFromDict[panelId];
|
||||||
|
cable.System = panelProps[GlobalObject.propName_System]?.PropertyValue;
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
cable.ToPanel = panelObj;
|
cable.ToPanel = panelObj;//暂用一下topanel属性,相当于电缆预分配的采集箱背后的Panel对象。
|
||||||
|
|
||||||
var IOsOnPanel = panelObj.allowedIOTypes.Split(',').ToList();
|
var IOsOnPanel = panelObj.allowedIOTypes.Split(',').ToList();
|
||||||
//剩下的感觉都可以是set上的参数?
|
//剩下的感觉都可以是set上的参数?
|
||||||
foreach (var set in sets)
|
foreach (var set in sets)
|
||||||
@ -300,15 +328,15 @@ namespace Learun.Application.TwoDevelopment.ZZDT_EC
|
|||||||
{
|
{
|
||||||
set.IOType = GlobalEnum.IOType.TenVolt;
|
set.IOType = GlobalEnum.IOType.TenVolt;
|
||||||
}
|
}
|
||||||
else if (cable.PreAssignIOType == GlobalEnum.IOType.PT100.ToString())
|
else if (cable.PreAssignIOType == GlobalEnum.signalType.PT100.ToString())
|
||||||
{
|
{
|
||||||
set.IOType = GlobalEnum.IOType.PT100;
|
set.IOType = GlobalEnum.IOType.PT100;
|
||||||
}
|
}
|
||||||
else if (cable.PreAssignIOType.ToUpper() == GlobalEnum.IOType.PULSE.ToString())
|
else if (cable.PreAssignIOType.ToUpper() == GlobalEnum.signalType.PULSE.ToString())
|
||||||
{
|
{
|
||||||
set.IOType = GlobalEnum.IOType.PULSE;
|
set.IOType = GlobalEnum.IOType.PULSE;
|
||||||
}
|
}
|
||||||
else if (cable.PreAssignIOType == GlobalEnum.IOType.PT100.ToString())
|
else if (cable.PreAssignIOType == GlobalEnum.signalType.PT100.ToString())
|
||||||
{
|
{
|
||||||
set.IOType = GlobalEnum.IOType.PT100;
|
set.IOType = GlobalEnum.IOType.PT100;
|
||||||
}
|
}
|
||||||
|
@ -42,7 +42,7 @@ namespace Learun.Application.TwoDevelopment.ZZDT_EC
|
|||||||
public string CableClass { get; set; } = "";
|
public string CableClass { get; set; } = "";
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 即里面走的信号的信号类型?<see cref="ec_Wire_GroupEntity.IO_Type"/>
|
/// 即里面走的信号的信号类型?<see cref="GlobalEnum.signalType"/>。然后加上<see cref="ec_CableSetEntity.PreAssignInOrOut"/>,才是<see cref="GlobalEnum.IOType"/>
|
||||||
/// RS485 RS422 TCP/IP MQTT(如果是通讯母线,通讯类型是什么。)
|
/// RS485 RS422 TCP/IP MQTT(如果是通讯母线,通讯类型是什么。)
|
||||||
/// Digital 4-20mA Pulse Pt100(如果是非母线,IO类型是什么。)
|
/// Digital 4-20mA Pulse Pt100(如果是非母线,IO类型是什么。)
|
||||||
/// </summary>
|
/// </summary>
|
||||||
@ -104,7 +104,7 @@ namespace Learun.Application.TwoDevelopment.ZZDT_EC
|
|||||||
/// <summary>
|
/// <summary>
|
||||||
/// <see cref="PreAssignIOType"/> 是否和 <see cref="ec_PanelEntity.allowedIOTypes"/> 里的匹配。
|
/// <see cref="PreAssignIOType"/> 是否和 <see cref="ec_PanelEntity.allowedIOTypes"/> 里的匹配。
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public List<string> IOTypesNotMatchedList = new List<string>();
|
public HashSet<string> IOTypesNotMatchedList = new HashSet<string>();
|
||||||
/// <summary>
|
/// <summary>
|
||||||
///
|
///
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
@ -586,7 +586,7 @@ namespace Learun.Application.TwoDevelopment.ZZDT_EC
|
|||||||
List<ec_Archive_Rel> ArchiveRels = new List<ec_Archive_Rel>();
|
List<ec_Archive_Rel> ArchiveRels = new List<ec_Archive_Rel>();
|
||||||
|
|
||||||
var tbRelType = ProjectSugar.TableName<ec_reltypeEntity>(targetProjId);
|
var tbRelType = ProjectSugar.TableName<ec_reltypeEntity>(targetProjId);
|
||||||
var RelTypeCableFromTo = SqlSugarHelper.Db.Queryable<ec_reltypeEntity>().AS(tbRelType).ToList().FirstOrDefault(x => x.RelType == ((int)enum_RelType.设备_电缆).ToString());
|
var RelTypeCableFromTo = SqlSugarHelper.Db.Queryable<ec_reltypeEntity>().AS(tbRelType).ToList().FirstOrDefault(x => x.RelType == enum_RelType.设备_电缆);
|
||||||
|
|
||||||
|
|
||||||
//图上的pixel内容
|
//图上的pixel内容
|
||||||
@ -824,7 +824,7 @@ namespace Learun.Application.TwoDevelopment.ZZDT_EC
|
|||||||
var sourceTermAll = Db.Queryable<ec_PanelStripTermEntity>().AS($"ec_Panel_Strip_Term_{sourceProject.ProjectIndex}").ToList();
|
var sourceTermAll = Db.Queryable<ec_PanelStripTermEntity>().AS($"ec_Panel_Strip_Term_{sourceProject.ProjectIndex}").ToList();
|
||||||
var sourceChAll = Db.Queryable<ec_PanelChannelEntity>().AS($"ec_Panel_Channel_{sourceProject.ProjectIndex}").ToList();
|
var sourceChAll = Db.Queryable<ec_PanelChannelEntity>().AS($"ec_Panel_Channel_{sourceProject.ProjectIndex}").ToList();
|
||||||
var sourceCBAll = Db.Queryable<ec_CircuitBreakerEntity>().AS($"ec_CircuitBreaker_{sourceProject.ProjectIndex}").ToList();
|
var sourceCBAll = Db.Queryable<ec_CircuitBreakerEntity>().AS($"ec_CircuitBreaker_{sourceProject.ProjectIndex}").ToList();
|
||||||
var sourceConnRelType = Db.Queryable<ec_reltypeEntity>().AS($"ec_reltype_{sourceProject.ProjectIndex}").ToList().FirstOrDefault(x => x.RelType == ((int)enum_RelType.设备_电缆).ToString());
|
var sourceConnRelType = Db.Queryable<ec_reltypeEntity>().AS($"ec_reltype_{sourceProject.ProjectIndex}").ToList().FirstOrDefault(x => x.RelType == enum_RelType.设备_电缆);
|
||||||
if (sourceConnRelType == null)
|
if (sourceConnRelType == null)
|
||||||
{
|
{
|
||||||
return "原始项目中,找不到 设备-电缆 的连接关系(RelType)定义。";
|
return "原始项目中,找不到 设备-电缆 的连接关系(RelType)定义。";
|
||||||
@ -859,7 +859,7 @@ namespace Learun.Application.TwoDevelopment.ZZDT_EC
|
|||||||
var targetTypeAll = objectTypeBll.GetList("{ProjectId:\"" + ProjectId + "\"}").ToList();
|
var targetTypeAll = objectTypeBll.GetList("{ProjectId:\"" + ProjectId + "\"}").ToList();
|
||||||
var TargetDrawingFile = drawingBll.GetList("{ProjectId:\"" + ProjectId + "\"}").ToList();
|
var TargetDrawingFile = drawingBll.GetList("{ProjectId:\"" + ProjectId + "\"}").ToList();
|
||||||
var targetTags = ec_enginedataService.GetListSingleTable(ProjectId, null);
|
var targetTags = ec_enginedataService.GetListSingleTable(ProjectId, null);
|
||||||
var targetConnRelType = Db.Queryable<ec_reltypeEntity>().AS($"ec_reltype_{targetProject.ProjectIndex}").ToList().FirstOrDefault(x => x.RelType == ((int)enum_RelType.设备_电缆).ToString());
|
var targetConnRelType = Db.Queryable<ec_reltypeEntity>().AS($"ec_reltype_{targetProject.ProjectIndex}").ToList().FirstOrDefault(x => x.RelType == enum_RelType.设备_电缆);
|
||||||
if (targetConnRelType == null)
|
if (targetConnRelType == null)
|
||||||
{
|
{
|
||||||
return "当前项目中,找不到 设备-电缆 的连接关系(RelType)定义。";
|
return "当前项目中,找不到 设备-电缆 的连接关系(RelType)定义。";
|
||||||
|
@ -1813,8 +1813,9 @@ namespace Learun.Application.TwoDevelopment.ZZDT_EC
|
|||||||
{
|
{
|
||||||
//句柄换位号主体了
|
//句柄换位号主体了
|
||||||
//原本句柄相关的rel
|
//原本句柄相关的rel
|
||||||
var relObj = Db.Queryable<ec_reltypeEntity>().AS(relTableName).First(x => x.RelType == "0");
|
var relObj = Db.Queryable<ec_reltypeEntity>().AS(relTableName).First(x => x.RelType == enum_RelType.设备_电缆);
|
||||||
if (relObj != null) {
|
if (relObj != null)
|
||||||
|
{
|
||||||
var existCableConns = Db.Queryable<ec_enginedata_relEntity>().AS(reldataTableName).
|
var existCableConns = Db.Queryable<ec_enginedata_relEntity>().AS(reldataTableName).
|
||||||
Where(x => x.RelTypeID == relObj.RelTypeID && x.OPCPixel == pixel.PixelCode && (x.RelEngineData1ID == oldTagId || x.RelEngineData2ID == oldTagId)).ToList();
|
Where(x => x.RelTypeID == relObj.RelTypeID && x.OPCPixel == pixel.PixelCode && (x.RelEngineData1ID == oldTagId || x.RelEngineData2ID == oldTagId)).ToList();
|
||||||
//这里有问题。
|
//这里有问题。
|
||||||
|
@ -79,7 +79,7 @@ namespace Learun.Application.TwoDevelopment.ZZDT_EC
|
|||||||
Where(x => x.DeleteFlg != 1).ToList();
|
Where(x => x.DeleteFlg != 1).ToList();
|
||||||
|
|
||||||
var relTypeTbName = ProjectSugar.TableName<ec_reltypeEntity>(projId);
|
var relTypeTbName = ProjectSugar.TableName<ec_reltypeEntity>(projId);
|
||||||
var relType = Db.Queryable<ec_reltypeEntity>().AS(relTypeTbName).ToList().FirstOrDefault(x => x.RelType == ((int)enum_RelType.设备_电缆).ToString());
|
var relType = Db.Queryable<ec_reltypeEntity>().AS(relTypeTbName).ToList().FirstOrDefault(x => x.RelType == enum_RelType.设备_电缆);
|
||||||
|
|
||||||
var propBll = new ec_enginedata_propertyBLL();
|
var propBll = new ec_enginedata_propertyBLL();
|
||||||
|
|
||||||
@ -176,7 +176,7 @@ namespace Learun.Application.TwoDevelopment.ZZDT_EC
|
|||||||
Where(x => x.DeleteFlg != 1).ToList();
|
Where(x => x.DeleteFlg != 1).ToList();
|
||||||
|
|
||||||
var relTypeTbName = ProjectSugar.TableName<ec_reltypeEntity>(projId);
|
var relTypeTbName = ProjectSugar.TableName<ec_reltypeEntity>(projId);
|
||||||
var relType = Db.Queryable<ec_reltypeEntity>().AS(relTypeTbName).ToList().FirstOrDefault(x => x.RelType == ((int)enum_RelType.设备_电缆).ToString());
|
var relType = Db.Queryable<ec_reltypeEntity>().AS(relTypeTbName).ToList().FirstOrDefault(x => x.RelType == enum_RelType.设备_电缆);
|
||||||
|
|
||||||
|
|
||||||
var allTagProps = SqlSugarHelper.Db.Queryable<ec_enginedata_propertyEntity>().AS(propTbName).ToList();
|
var allTagProps = SqlSugarHelper.Db.Queryable<ec_enginedata_propertyEntity>().AS(propTbName).ToList();
|
||||||
@ -1483,6 +1483,11 @@ Select((a, b, c) => new
|
|||||||
var RelEngineData2ID = queryParam["RelEngineData2ID"]?.ToString();
|
var RelEngineData2ID = queryParam["RelEngineData2ID"]?.ToString();
|
||||||
var RelTypeName = queryParam["RelTypeName"]?.ToString();
|
var RelTypeName = queryParam["RelTypeName"]?.ToString();
|
||||||
var RelType = queryParam["RelType"]?.ToString();
|
var RelType = queryParam["RelType"]?.ToString();
|
||||||
|
enum_RelType RelEnum = default;
|
||||||
|
if (!string.IsNullOrEmpty(RelType) && Enum.TryParse<enum_RelType>(RelType, out RelEnum))
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
var TagNumber = queryParam["TagNumber"]?.ToString();
|
var TagNumber = queryParam["TagNumber"]?.ToString();
|
||||||
|
|
||||||
var tableName = TableName<ec_enginedata_relEntity>(ProjectId);
|
var tableName = TableName<ec_enginedata_relEntity>(ProjectId);
|
||||||
@ -1503,7 +1508,7 @@ Select((a, b, c) => new
|
|||||||
.WhereIF(!string.IsNullOrEmpty(RelEngineData1ID), a => a.RelEngineData1ID == RelEngineData1ID)
|
.WhereIF(!string.IsNullOrEmpty(RelEngineData1ID), a => a.RelEngineData1ID == RelEngineData1ID)
|
||||||
.WhereIF(!string.IsNullOrEmpty(RelEngineData2ID), a => a.RelEngineData2ID == RelEngineData2ID)
|
.WhereIF(!string.IsNullOrEmpty(RelEngineData2ID), a => a.RelEngineData2ID == RelEngineData2ID)
|
||||||
.WhereIF(!string.IsNullOrEmpty(RelTypeName), (a, b) => b.RelTypeName == RelTypeName)
|
.WhereIF(!string.IsNullOrEmpty(RelTypeName), (a, b) => b.RelTypeName == RelTypeName)
|
||||||
.WhereIF(!string.IsNullOrEmpty(RelType), (a, b) => b.RelType == RelType)
|
.WhereIF(!string.IsNullOrEmpty(RelType), (a, b) => b.RelType == RelEnum)
|
||||||
.Select((a, b, t1, t2, o1, o2) => new ec_enginedata_relEntity
|
.Select((a, b, t1, t2, o1, o2) => new ec_enginedata_relEntity
|
||||||
{
|
{
|
||||||
EngineDataRelID = a.EngineDataRelID,
|
EngineDataRelID = a.EngineDataRelID,
|
||||||
@ -1667,6 +1672,7 @@ Select((a, b, c) => new
|
|||||||
model.RelTypeID = RelTypeID;
|
model.RelTypeID = RelTypeID;
|
||||||
model.RelEngineData1ID = RelEngineData1ID;
|
model.RelEngineData1ID = RelEngineData1ID;
|
||||||
model.RelEngineData2ID = item;
|
model.RelEngineData2ID = item;
|
||||||
|
model.OPCPixel = tagPixelId;//普通情况
|
||||||
engineDataRelAdd.Add(model);
|
engineDataRelAdd.Add(model);
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
@ -1685,6 +1691,7 @@ Select((a, b, c) => new
|
|||||||
model.RelTypeID = RelTypeID;
|
model.RelTypeID = RelTypeID;
|
||||||
model.RelEngineData1ID = RelEngineData1ID;
|
model.RelEngineData1ID = RelEngineData1ID;
|
||||||
model.RelEngineData2ID = item;
|
model.RelEngineData2ID = item;
|
||||||
|
model.OPCPixel = tagPixelId;//普通情况
|
||||||
engineDataRelAdd.Add(model);
|
engineDataRelAdd.Add(model);
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
@ -1749,6 +1756,7 @@ Select((a, b, c) => new
|
|||||||
model.RelTypeID = RelTypeID;
|
model.RelTypeID = RelTypeID;
|
||||||
model.RelEngineData1ID = item;
|
model.RelEngineData1ID = item;
|
||||||
model.RelEngineData2ID = relEngineData2ID;
|
model.RelEngineData2ID = relEngineData2ID;
|
||||||
|
model.OPCPixel = tagPixelId;//普通情况
|
||||||
engineDataRelAdd.Add(model);
|
engineDataRelAdd.Add(model);
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
@ -1771,7 +1779,7 @@ Select((a, b, c) => new
|
|||||||
model.RelTypeID = RelTypeID;
|
model.RelTypeID = RelTypeID;
|
||||||
model.RelEngineData1ID = item;
|
model.RelEngineData1ID = item;
|
||||||
model.RelEngineData2ID = relEngineData2ID;
|
model.RelEngineData2ID = relEngineData2ID;
|
||||||
model.OPCPixel = tagPixelId;
|
model.OPCPixel = tagPixelId;//普通情况
|
||||||
engineDataRelAdd.Add(model);
|
engineDataRelAdd.Add(model);
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
@ -201,7 +201,7 @@ namespace Learun.Application.TwoDevelopment.ZZDT_EC
|
|||||||
var relTb = ProjectSugar.TableName<ec_reltypeEntity>(ProjId);
|
var relTb = ProjectSugar.TableName<ec_reltypeEntity>(ProjId);
|
||||||
var relDataTb = ProjectSugar.TableName<ec_enginedata_relEntity>(ProjId);
|
var relDataTb = ProjectSugar.TableName<ec_enginedata_relEntity>(ProjId);
|
||||||
var relTypes = SqlSugarHelper.Db.Queryable<ec_reltypeEntity>().AS(relTb).ToList();
|
var relTypes = SqlSugarHelper.Db.Queryable<ec_reltypeEntity>().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)
|
if (relType != null)
|
||||||
{
|
{
|
||||||
foreach (var cableId in cableIds)
|
foreach (var cableId in cableIds)
|
||||||
|
@ -170,7 +170,7 @@ namespace Learun.Application.TwoDevelopment.ZZDT_EC
|
|||||||
Where((a, b) => allPanelIds.Contains(b.PanelID)).
|
Where((a, b) => allPanelIds.Contains(b.PanelID)).
|
||||||
Distinct().ToList();
|
Distinct().ToList();
|
||||||
|
|
||||||
var relId = Db.Queryable<ec_reltypeEntity>().AS(relTypeTb).ToList().First(x => x.RelType == ((int)enum_RelType.设备_电缆).ToString());
|
var relId = Db.Queryable<ec_reltypeEntity>().AS(relTypeTb).ToList().First(x => x.RelType == enum_RelType.设备_电缆);
|
||||||
var existRels = Db.Queryable<ec_enginedata_relEntity>().AS(relTb).Where(x => x.RelTypeID == relId.RelTypeID).ToList();
|
var existRels = Db.Queryable<ec_enginedata_relEntity>().AS(relTb).Where(x => x.RelTypeID == relId.RelTypeID).ToList();
|
||||||
|
|
||||||
|
|
||||||
@ -319,7 +319,7 @@ namespace Learun.Application.TwoDevelopment.ZZDT_EC
|
|||||||
var allEngineData = Db.Queryable<ec_enginedataEntity>().AS(tagTb).ToList();
|
var allEngineData = Db.Queryable<ec_enginedataEntity>().AS(tagTb).ToList();
|
||||||
var allPanels = Db.Queryable<ec_PanelEntity>().AS(panelTb).ToList();
|
var allPanels = Db.Queryable<ec_PanelEntity>().AS(panelTb).ToList();
|
||||||
|
|
||||||
var relId = Db.Queryable<ec_reltypeEntity>().AS(relTypeTb).ToList().First(x => x.RelType == ((int)enum_RelType.设备_电缆).ToString());
|
var relId = Db.Queryable<ec_reltypeEntity>().AS(relTypeTb).ToList().First(x => x.RelType == enum_RelType.设备_电缆);
|
||||||
|
|
||||||
var newWTCommits = new List<ec_WireTerminalEntity>();
|
var newWTCommits = new List<ec_WireTerminalEntity>();
|
||||||
var SignalCommits = new List<ec_Wire_GroupEntity>();
|
var SignalCommits = new List<ec_Wire_GroupEntity>();
|
||||||
|
@ -33,11 +33,14 @@ namespace Learun.Application.TwoDevelopment.ZZDT_EC
|
|||||||
var ProjectId = queryParam["ProjectId"]?.ToString();
|
var ProjectId = queryParam["ProjectId"]?.ToString();
|
||||||
var RelTypeName = queryParam["RelTypeName"]?.ToString();
|
var RelTypeName = queryParam["RelTypeName"]?.ToString();
|
||||||
var RelType = queryParam["RelType"]?.ToString();
|
var RelType = queryParam["RelType"]?.ToString();
|
||||||
|
enum_RelType RelEnum = default;
|
||||||
|
if (!string.IsNullOrEmpty(RelType) && Enum.TryParse(RelType, out RelEnum))
|
||||||
|
{
|
||||||
|
}
|
||||||
var tableName = TableName<ec_reltypeEntity>(ProjectId);
|
var tableName = TableName<ec_reltypeEntity>(ProjectId);
|
||||||
var query = Db.Queryable<ec_reltypeEntity>().AS(tableName)
|
var query = Db.Queryable<ec_reltypeEntity>().AS(tableName)
|
||||||
.WhereIF(!string.IsNullOrEmpty(RelTypeName), x => x.RelTypeName.Contains(RelTypeName))
|
.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);
|
.OrderByDescending(x => x.CreateTime);
|
||||||
List<ec_reltypeEntity> list;
|
List<ec_reltypeEntity> list;
|
||||||
if (pagination == null)
|
if (pagination == null)
|
||||||
|
@ -46,7 +46,7 @@ namespace Learun.Application.TwoDevelopment.ZZDT_EC
|
|||||||
/// 关联类型缩写
|
/// 关联类型缩写
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <returns></returns>
|
/// <returns></returns>
|
||||||
public string RelType { get; set; } = "";
|
public enum_RelType RelType { get; set; }
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 创建人
|
/// 创建人
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
@ -138,6 +138,7 @@
|
|||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
#region 8号库
|
#region 8号库
|
||||||
|
public static int IOModule_AutoAssign2Ch { get { return 8; } }
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
#region 9号库
|
#region 9号库
|
||||||
|
Loading…
x
Reference in New Issue
Block a user