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 aae1c759..1fc3808a 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
@@ -1,4 +1,5 @@
-using DocumentFormat.OpenXml.Bibliography;
+using ClosedXML.Excel;
+using DocumentFormat.OpenXml.Bibliography;
using DocumentFormat.OpenXml.Drawing.Charts;
using DocumentFormat.OpenXml.ExtendedProperties;
using DocumentFormat.OpenXml.Spreadsheet;
@@ -1311,6 +1312,9 @@ namespace Learun.Application.Web.Areas.ZZDT_EC.Controllers
}
#endregion
break;
+ case "电缆册":
+ CreateReportForCableOfDivision2(paramObj, workbook, ProjectId);
+ break;
case "云线备注清单":
#region 云线备注清单
int SelectModel;
@@ -2007,6 +2011,499 @@ namespace Learun.Application.Web.Areas.ZZDT_EC.Controllers
return DetailName.Substring(0, index);
}
+ ///
+ /// 专门帮2室做的电缆册抽取
+ ///
+ ///
+ ///
+ ///
+ public void CreateReportForCableOfDivision2(JObject paramObj, IWorkbook workbook, string ProjectId)
+ {
+ try
+ {
+ string dataItemDetailIDOrDwgCategoryID; int model;
+ dataItemDetailIDOrDwgCategoryID = paramObj.Value("dataItemDetailIDOrDrawingCategoryID");// paramObj["dataItemDetailIDOrDwgCategoryID"].ToString();
+ model = paramObj.Value("model");
+
+
+ ISheet sheetCable = workbook.CreateSheet("电缆清册");
+ ISheet sheetCable2 = workbook.CreateSheet("电缆清册(双星)");
+ #region 表头部分
+ IRow rowCable = sheetCable.CreateRow(0);
+ rowCable.CreateCell(0).SetCellValue("所属系统");
+ rowCable.CreateCell(1).SetCellValue("电缆编号");
+ rowCable.CreateCell(2).SetCellValue("电缆类型");
+ rowCable.CreateCell(3).SetCellValue("电缆规格");
+ rowCable.CreateCell(4).SetCellValue("起始设备代码");
+ rowCable.CreateCell(5).SetCellValue("起始" + "\n" + "FrDeck");
+ rowCable.CreateCell(6).SetCellValue("设备位置" + "\n" + "FrRoom");
+ rowCable.CreateCell(7).SetCellValue("设备名称" + "\n" + "FrEquip");
+ rowCable.CreateCell(8).SetCellValue("终止设备代码");
+ rowCable.CreateCell(9).SetCellValue("终止" + "\n" + "ToDeck");
+ rowCable.CreateCell(10).SetCellValue("设备位置" + "\n" + "ToRoom");
+ rowCable.CreateCell(11).SetCellValue("设备名称" + "\n" + "ToEquip");
+ rowCable.CreateCell(12).SetCellValue("是否变频");
+ rowCable.CreateCell(13).SetCellValue("是否本安");
+ rowCable.CreateCell(14).SetCellValue("是否独立屏蔽");
+ rowCable.CreateCell(15).SetCellValue("是否防火");
+ rowCable.CreateCell(16).SetCellValue("是否铠装");
+
+ IRow rowCable2 = sheetCable2.CreateRow(0);
+ rowCable2.CreateCell(0).SetCellValue("所属系统");
+ rowCable2.CreateCell(1).SetCellValue("电缆编号");
+ rowCable2.CreateCell(2).SetCellValue("电缆类型");
+ rowCable2.CreateCell(3).SetCellValue("电缆规格");
+ rowCable2.CreateCell(4).SetCellValue("起始设备代码");
+ rowCable2.CreateCell(5).SetCellValue("起始" + "\n" + "FrDeck");
+ rowCable2.CreateCell(6).SetCellValue("设备位置" + "\n" + "FrRoom");
+ rowCable2.CreateCell(7).SetCellValue("设备名称" + "\n" + "FrEquip");
+ rowCable2.CreateCell(8).SetCellValue("终止设备代码");
+ rowCable2.CreateCell(9).SetCellValue("终止" + "\n" + "ToDeck");
+ rowCable2.CreateCell(10).SetCellValue("设备位置" + "\n" + "ToRoom");
+ rowCable2.CreateCell(11).SetCellValue("设备名称" + "\n" + "ToEquip");
+ rowCable2.CreateCell(12).SetCellValue("是否变频");
+ rowCable2.CreateCell(13).SetCellValue("是否本安");
+ rowCable2.CreateCell(14).SetCellValue("是否独立屏蔽");
+ rowCable2.CreateCell(15).SetCellValue("是否防火");
+ rowCable2.CreateCell(16).SetCellValue("是否铠装");
+ #endregion
+ #region 表名区
+ var enginedataTableName = ProjectSugar.TableName(ProjectId);
+ var objectTypeTableName = ProjectSugar.TableName(ProjectId);
+ var relTypeTableName = ProjectSugar.TableName(ProjectId);
+ var PropertyTableName = ProjectSugar.TableName(ProjectId);
+ var DataItemTableName = ProjectSugar.TableName(ProjectId);
+ var DataItemDetailTableName = ProjectSugar.TableName(ProjectId);
+ var relTableName = ProjectSugar.TableName(ProjectId);
+ var propertyTableName = ProjectSugar.TableName(ProjectId);
+ var pixelTableName = ProjectSugar.TableName(ProjectId);
+ var dwgTableName = ProjectSugar.TableName(ProjectId);
+ var dwgCategoryTableName = ProjectSugar.TableName(ProjectId);
+ #endregion
+ #region 数据查询区,避免循环里查询
+ var pixels = SqlSugarHelper.Db.Queryable().AS(pixelTableName).Distinct().ToList();
+ pixels = pixels.Where(x => x.DeleteFlg != 1).ToList();
+ var dwgCategory = SqlSugarHelper.Db.Queryable().AS(dwgCategoryTableName).Distinct().ToList();
+
+ var allDwgs = SqlSugarHelper.Db.Queryable().AS(dwgTableName).ToList();
+ //var allProps = SqlSugarHelper.Db.Queryable().AS(propertyTableName).ToList();
+ var DeckProp = SqlSugarHelper.Db.Queryable().AS(PropertyTableName).First(x => x.PropertyName == "甲板号");
+ List allDecks = new List();
+ List allSystems = new List();
+ List validSystemIds = new List(); // dataItemDetailID 以及 其下面所有的
+ if (DeckProp != null)
+ {
+ var DeckEnumList = SqlSugarHelper.Db.Queryable().AS(DataItemTableName).First(x => x.DataItemName == DeckProp.EnumData);
+ if (DeckEnumList != null)
+ {
+ allDecks = SqlSugarHelper.Db.Queryable().AS(DataItemDetailTableName).Where(x => x.DataItemID == DeckEnumList.DataItemID).ToList();
+ }
+ }
+ var SystemEnumList = SqlSugarHelper.Db.Queryable().AS(DataItemTableName).First(x => x.DataItemCode == GlobalObject.enumlist_System);
+ if (SystemEnumList != null)
+ {
+ allSystems = SqlSugarHelper.Db.Queryable().AS(DataItemDetailTableName).Where(x => x.DataItemID == SystemEnumList.DataItemID).ToList();
+
+
+ }
+ var needPropsName = new List() {
+ GlobalObject.propName_System, GlobalObject.propName_CableSpec,
+ "变频电缆","本安电缆","是否独立屏蔽","是否防火","是否铠装","电缆供货类型","平行电缆",
+"甲板号","房间号","中文名称",GlobalObject.propName_Frame, GlobalObject.propName_cableTypeTest};
+ var allprops = SqlSugarHelper.Db.Queryable().AS(propertyTableName).
+ Where(x => needPropsName.Contains(x.PropertyName)).
+ ToList();
+
+ switch (model)
+ {
+ case 0:
+ break;
+ case 1://按系统
+ validSystemIds = new ec_dataitemBLL().GetChildNodes(ProjectId, dataItemDetailIDOrDwgCategoryID); break;
+ case 2://按图纸(可能选的是目录,也可能选的是图纸)
+ var folder = dwgCategory.FirstOrDefault(x => x.DrawingCatalogueID == dataItemDetailIDOrDwgCategoryID);
+ if (folder != null)
+ {
+ //选的是目录
+ validSystemIds = new ec_drawing_catalogueBLL().GetChildNodes(ProjectId, dataItemDetailIDOrDwgCategoryID); break;
+ }
+ else
+ {
+ var dwg = allDwgs.FirstOrDefault(x => x.DrawingFileID == dataItemDetailIDOrDwgCategoryID);
+ if (dwg != null)
+ {
+ //选的是文件
+ validSystemIds.Add(dwg.DrawingFileID);
+ }
+ else
+ {
+ //ID 有些问题
+ }
+ }
+ break;
+ default:
+ break;
+ }
+
+ var cableFromToRel = SqlSugarHelper.Db.Queryable().AS(relTypeTableName).ToList().FirstOrDefault(x => x.RelType == enum_RelType.设备_电缆);
+ if (cableFromToRel == null)
+ {
+ throw new Exception($"查不到【{enum_RelType.设备_电缆.ToString()}】这个关联类型。");
+ }
+ var relDatas = SqlSugarHelper.Db.Queryable().AS(relTableName)
+ .LeftJoin((eere, eede1) => eere.RelEngineData1ID == eede1.EngineDataID).AS(enginedataTableName)
+ .LeftJoin((eere, eede1, eote1) => eede1.ObjectTypeID == eote1.ObjectTypeID).AS(objectTypeTableName)
+ .LeftJoin((eere, eede1, eote1, eede2) => eere.RelEngineData2ID == eede2.EngineDataID).AS(enginedataTableName)
+ .LeftJoin((eere, eede1, eote1, eede2, eote2) => eede2.ObjectTypeID == eote2.ObjectTypeID).AS(objectTypeTableName)
+ .Where((eere, eede1, eote1, eede2, eote2) => eere.RelTypeID == cableFromToRel.RelTypeID)
+ .Select((eere, eede1, eote1, eede2, eote2) => new {
+ eere.EngineDataRelID,
+ eere.RelTypeID,
+ eere.RelEngineData1ID,
+ RelEngDataObjType1 = eote1.ObjectTypeName,
+ eere.RelEngineData2ID,
+ RelEngDataObjType2 = eote2.ObjectTypeName,
+ eere.OPCPixel
+ })
+ .ToList();
+ var cables = SqlSugarHelper.Db.Queryable().AS(enginedataTableName)
+ .InnerJoin((a, b) => a.ObjectTypeID == b.ObjectTypeID).AS(objectTypeTableName)
+ .InnerJoin((a, b, c) => a.EngineDataID == c.EngineDataID).AS(pixelTableName)
+ .Where((a, b, c) =>
+ b.ObjectTypeName.EndsWith("电缆") &&
+ !string.IsNullOrEmpty(a.TagNumber) &&
+ c.DeleteFlg != 1)
+ .OrderBy((a, b) => a.TagNumber)
+ .Select((a, b, c) => new ec_enginedataEntity
+ {
+ CaseID = a.CaseID,
+ EngineDataID = a.EngineDataID,
+ TagNumber = a.TagNumber,
+ ObjectTypeID = a.ObjectTypeID,
+ ObjectTypeName = b.ObjectTypeName,
+ DataStatus = a.DataStatus
+ })
+ .Distinct()
+ .ToList();
+
+ //24 4 2,过滤掉图面上不存在的
+
+ var Equips = SqlSugarHelper.Db.Queryable().AS(enginedataTableName)
+ .InnerJoin((a, b) => a.ObjectTypeID == b.ObjectTypeID).AS(objectTypeTableName)
+ .Where((a, b) => !b.ObjectTypeName.EndsWith("电缆"))
+ .OrderBy((a, b) => a.TagNumber)
+ .ToList();
+ #endregion
+ int curRow = 1;
+ //对电缆编号排序
+ cables.Sort((x, y) => CommonHelper.Compare(x.TagNumber, y.TagNumber));
+
+ foreach (var cable in cables) //Where(x => x.TagNumber == "TEST-CABLE-001" || x.TagNumber == "1L11-7")
+ {
+ try
+ {
+
+ bool RoutingType = false;//true时,代表**,会出现在第二个sheet里
+ rowCable = sheetCable.CreateRow(curRow++);
+ rowCable.CreateCell(0).SetCellValue("");
+ rowCable.CreateCell(1).SetCellValue("");
+ rowCable.CreateCell(2).SetCellValue("");
+ rowCable.CreateCell(3).SetCellValue("");
+ rowCable.CreateCell(4).SetCellValue("");
+ rowCable.CreateCell(5).SetCellValue("");
+ rowCable.CreateCell(6).SetCellValue("");
+ rowCable.CreateCell(7).SetCellValue("");
+ rowCable.CreateCell(8).SetCellValue("");
+ rowCable.CreateCell(9).SetCellValue("");
+ rowCable.CreateCell(10).SetCellValue("");
+ rowCable.CreateCell(11).SetCellValue("");
+ rowCable.CreateCell(12).SetCellValue("");
+ rowCable.CreateCell(13).SetCellValue("");
+ rowCable.CreateCell(14).SetCellValue("");
+ rowCable.CreateCell(15).SetCellValue("");
+ rowCable.CreateCell(16).SetCellValue("");
+ rowCable.CreateCell(17).SetCellValue("");
+ //rowCable.CreateCell(18).SetCellValue("");
+
+ //25 02 28,优化速速,估注释,搬到循环外
+ var TagProps = allprops.Where(x => x.EngineDataID == cable.EngineDataID)//&& (x.CaseID == "0" || string.IsNullOrEmpty(x.CaseID))
+ .ToList();//位号的所有属性
+ var PropValue = "";
+
+
+
+
+ #region 所属系统
+ var TagProp = TagProps.Where(x => x.PropertyName == GlobalObject.propName_System && !string.IsNullOrEmpty(x.PropertyValue)).ToList();
+ PropValue = TagProp.Count() == 0 ? "" : TagProp.Last()?.PropertyValue;
+ PropValue = GetNameBeforeDoublePipe(PropValue);//双||的事情
+
+ if (!TagInRange(model, PropValue, cable, validSystemIds, ref pixels, ref allDwgs, ref allSystems))
+ {
+ curRow--;
+ continue;
+ } //判断是否在范围内
+
+ if (!string.IsNullOrEmpty(PropValue) && Regex.IsMatch(PropValue, "^[A-Za-z0-9]*$") && allSystems.Any(x => x.DataItemName == PropValue))
+ {
+ //换成枚举的描述
+ PropValue = allSystems.FirstOrDefault(x => x.DataItemName == PropValue).DataItemCode;
+ }
+ rowCable.Cells[0].SetCellValue(PropValue);//感觉这里保持默认好点
+ #endregion
+ #region 位号
+ rowCable.Cells[1].SetCellValue(cable.TagNumber);
+ if (cable.TagNumber.Contains("**"))
+ {
+ RoutingType = true;
+ }
+ #endregion
+ TagProp = TagProps.Where(x => x.PropertyName == GlobalObject.propName_cableTypeTest && !string.IsNullOrEmpty(x.PropertyValue)).ToList();
+ PropValue = TagProp.Count() == 0 ? "" : TagProp.Last()?.PropertyValue;
+ rowCable.Cells[2].SetCellValue(PropValue);//电缆类型,信号、电力、本安、动力、随机
+ #region 电缆规格
+ TagProp = TagProps.Where(x => x.PropertyName == GlobalObject.propName_CableSpec && !string.IsNullOrEmpty(x.PropertyValue)).ToList();
+ PropValue = TagProp.Count() == 0 ? "" : TagProp.Last()?.PropertyValue;
+ rowCable.Cells[3].SetCellValue(PropValue);
+
+ #endregion
+ #region 电缆型号(CJ86)
+ TagProp = TagProps.Where(x => x.PropertyName == "变频电缆" && !string.IsNullOrEmpty(x.PropertyValue)).ToList();
+ PropValue = TagProp.Count() == 0 ? "" : TagProp.Last()?.PropertyValue;
+ rowCable.Cells[12].SetCellValue(PropValue);
+
+ TagProp = TagProps.Where(x => x.PropertyName == "本安电缆" && !string.IsNullOrEmpty(x.PropertyValue)).ToList();
+ PropValue = TagProp.Count() == 0 ? "" : TagProp.Last()?.PropertyValue;
+ rowCable.Cells[13].SetCellValue(PropValue);
+
+ TagProp = TagProps.Where(x => x.PropertyName == "是否独立屏蔽" && !string.IsNullOrEmpty(x.PropertyValue)).ToList();
+ PropValue = TagProp.Count() == 0 ? "" : TagProp.Last()?.PropertyValue;
+ rowCable.Cells[14].SetCellValue(PropValue);
+
+ TagProp = TagProps.Where(x => x.PropertyName == "是否防火" && !string.IsNullOrEmpty(x.PropertyValue)).ToList();
+ PropValue = TagProp.Count() == 0 ? "" : TagProp.Last()?.PropertyValue;
+ rowCable.Cells[15].SetCellValue(PropValue);
+
+ TagProp = TagProps.Where(x => x.PropertyName == "是否铠装" && !string.IsNullOrEmpty(x.PropertyValue)).ToList();
+ PropValue = TagProp.Count() == 0 ? "" : TagProp.Last()?.PropertyValue;
+ rowCable.Cells[16].SetCellValue(PropValue);
+
+
+
+ #endregion
+ xxx:
+ #region 供货范围
+ //TagProp = TagProps.Where(x => x.PropertyName == "电缆供货类型" && !string.IsNullOrEmpty(x.PropertyValue)).ToList();
+ //PropValue = TagProp.Count() == 0 ? "" : TagProp.Last()?.PropertyValue;
+ //if (PropValue.Contains("**"))
+ //{
+ // RoutingType = true;
+ //}
+ //else if (PropValue.Contains("*"))
+ //{
+ // rowCable.Cells[2].SetCellValue("A");//电缆类型,信号、电力、本安、动力、随机
+ //}
+ //else
+ //{
+ // //根据前面的 CableTypeEnum 来
+ //}
+ #endregion
+ //电缆的from to是根据甲板号的order顺序来的,高优先级的就属于from
+ int? FromOrder = -1; int? ToOrder = -1;
+ #region From
+ 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);
+ if (cableFromObj != null)
+ {
+ var EquipFromProps = allprops.Where(x => x.EngineDataID == cableFromObj.EngineDataID)
+ .ToList();
+ rowCable.Cells[4].SetCellValue(cableFromObj?.TagNumber);
+
+ TagProp = EquipFromProps.Where(x => x.PropertyName == "甲板号" && !string.IsNullOrEmpty(x.PropertyValue)).ToList();
+ PropValue = TagProp.Count() == 0 ? "" : TagProp.Last()?.PropertyValue;
+ //转换
+ if (!string.IsNullOrEmpty(PropValue))
+ {
+ var frDeck = allDecks.FirstOrDefault(x => x.DataItemName == ec_dataitemService.GetNameBeforeDoublePipe(PropValue));
+ if (frDeck != null)
+ {
+ //找到匹配的enum,但是如果code为空,依旧使用自己原本的
+ PropValue = string.IsNullOrEmpty(frDeck.DataItemCode) ? PropValue : frDeck.DataItemCode;
+ FromOrder = frDeck.OrderID;
+ }
+
+ }
+
+ rowCable.Cells[5].SetCellValue(PropValue);//没找到依旧用自己原本的
+
+ TagProp = EquipFromProps.Where(x => x.PropertyName == "房间号" && !string.IsNullOrEmpty(x.PropertyValue)).ToList();
+ PropValue = TagProp.Count() == 0 ? "" : TagProp.Last()?.PropertyValue;
+ if (string.IsNullOrEmpty(PropValue))
+ {
+ //没房间号,取肋位号
+ TagProp = EquipFromProps.Where(x => x.PropertyName == GlobalObject.propName_Frame && !string.IsNullOrEmpty(x.PropertyValue)).ToList();
+ PropValue = TagProp.Count() == 0 ? "" : TagProp.Last()?.PropertyValue;
+ }
+ else
+ {
+ //有房间号,取房间号
+ }
+ rowCable.Cells[6].SetCellValue(PropValue);
+
+
+ TagProp = EquipFromProps.Where(x => x.PropertyName == "中文名称" && !string.IsNullOrEmpty(x.PropertyValue)).ToList();
+ PropValue = TagProp.Count() == 0 ? "" : TagProp.Last()?.PropertyValue;
+ rowCable.Cells[7].SetCellValue(PropValue);
+
+ }
+
+ }
+ #endregion
+ #region To
+ 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);
+ if (cableEndObj != null)
+ {
+ var EquipToProps = allprops.Where(x => x.EngineDataID == cableEndObj.EngineDataID)
+ .ToList();
+ rowCable.Cells[8].SetCellValue(cableEndObj?.TagNumber);
+
+
+ TagProp = EquipToProps.Where(x => x.PropertyName == "甲板号" && !string.IsNullOrEmpty(x.PropertyValue)).ToList();
+ PropValue = TagProp.Count() == 0 ? "" : TagProp.Last()?.PropertyValue;
+ //转换
+ if (!string.IsNullOrEmpty(PropValue))
+ {
+ //目前属性寸的是name + || + nameEN,因为cad需要这样显示
+ //但是电缆表需要的是Code
+ var ToDeck = allDecks.FirstOrDefault(x => x.DataItemName == ec_dataitemService.GetNameBeforeDoublePipe(PropValue));
+ if (ToDeck != null)
+ {
+ //找到匹配的enum,但是如果code为空,依旧使用自己原本的
+ PropValue = string.IsNullOrEmpty(ToDeck.DataItemCode) ? PropValue : ToDeck.DataItemCode;
+ ToOrder = ToDeck.OrderID;
+ }
+ }
+
+ rowCable.Cells[9].SetCellValue(PropValue);
+
+ TagProp = EquipToProps.Where(x => x.PropertyName == "房间号" && !string.IsNullOrEmpty(x.PropertyValue)).ToList();
+ PropValue = TagProp.Count() == 0 ? "" : TagProp.Last()?.PropertyValue;
+ if (string.IsNullOrEmpty(PropValue))
+ {
+ //没房间号,取肋位号
+ TagProp = EquipToProps.Where(x => x.PropertyName == GlobalObject.propName_Frame && !string.IsNullOrEmpty(x.PropertyValue)).ToList();
+ PropValue = TagProp.Count() == 0 ? "" : TagProp.Last()?.PropertyValue;
+ }
+ else
+ {
+ //有房间号,取房间号
+ }
+ rowCable.Cells[10].SetCellValue(PropValue);
+
+
+ TagProp = EquipToProps.Where(x => x.PropertyName == "中文名称" && !string.IsNullOrEmpty(x.PropertyValue)).ToList();
+ PropValue = TagProp.Count() == 0 ? "" : TagProp.Last()?.PropertyValue;
+ rowCable.Cells[11].SetCellValue(PropValue);
+ }
+
+ }
+ #endregion
+ if (FromOrder != -1 && ToOrder != -1)
+ {
+ if (FromOrder > ToOrder)
+ {
+ //5678 9 10 11 12
+ var tempTag = rowCable.Cells[4].StringCellValue;
+ var tempDeck = rowCable.Cells[5].StringCellValue;
+ var tempRoom = rowCable.Cells[6].StringCellValue;
+ var tempName = rowCable.Cells[7].StringCellValue;
+
+ rowCable.Cells[4].SetCellValue(rowCable.Cells[8].StringCellValue);
+
+ rowCable.Cells[5].SetCellValue(rowCable.Cells[9].StringCellValue);
+
+ rowCable.Cells[6].SetCellValue(rowCable.Cells[10].StringCellValue);
+
+ rowCable.Cells[7].SetCellValue(rowCable.Cells[11].StringCellValue);
+
+ rowCable.Cells[8].SetCellValue(tempTag);
+ rowCable.Cells[9].SetCellValue(tempDeck);
+ rowCable.Cells[10].SetCellValue(tempRoom);
+ rowCable.Cells[11].SetCellValue(tempName);
+ }
+ }
+ #region 第二个sheet和平行电缆
+ if (RoutingType)
+ {
+ // 在目标工作表中创建新行
+ IRow newRow = sheetCable2.CreateRow(sheetCable2.LastRowNum + 1); // 将新行添加到目标工作表的末尾
+
+ // 复制源行的单元格数据到新行
+ for (int i = 0; i < rowCable.LastCellNum; i++)
+ {
+ ICell sourceCell = rowCable.GetCell(i);
+ ICell newCell = newRow.CreateCell(i);
+
+ if (sourceCell != null)
+ {
+ newCell.SetCellValue(sourceCell.StringCellValue); // 这里假设你的单元格都包含文本数据
+ }
+ }
+ for (int i = 0; i < rowCable.LastCellNum; i++)
+ {
+ rowCable.CreateCell(i).SetCellValue("");
+ }
+ curRow--;
+ }
+ else
+ {
+ TagProp = TagProps.Where(x => x.PropertyName == "平行电缆" && !string.IsNullOrEmpty(x.PropertyValue)).ToList();
+ PropValue = TagProp.Count() == 0 ? "" : TagProp.Last()?.PropertyValue;
+ if (!string.IsNullOrEmpty(PropValue))
+ {
+ foreach (var pCable in PropValue.Split(','))
+ {
+ // 创建新行
+ IRow newRow = sheetCable.CreateRow(curRow++); // 将新行添加到目标工作表的末尾
+
+ // 复制源行的单元格数据到新行
+ for (int i = 0; i < rowCable.LastCellNum; i++)
+ {
+ ICell sourceCell = rowCable.GetCell(i);
+ ICell newCell = newRow.CreateCell(i);
+
+ if (sourceCell != null)
+ {
+ newCell.SetCellValue(sourceCell.StringCellValue); // 这里假设你的单元格都包含文本数据
+ }
+ }
+ newRow.CreateCell(1).SetCellValue(pCable);
+ }
+ Console.Write(PropValue);
+ }
+ }
+ #endregion
+ }
+ catch (Exception ex)
+ {
+ log4net.LogManager.GetLogger("ERROR").Error("导出电缆清册 - " + ex.Message + ex.StackTrace);
+ continue;
+ }
+
+ }
+ }
+ catch (Exception ex)
+ {
+
+ throw ex;
+ }
+ }
+
#endregion
}
}
diff --git a/Learun.Application.Web/Areas/ZZDT_EC/Views/ec_report_file/Index.js b/Learun.Application.Web/Areas/ZZDT_EC/Views/ec_report_file/Index.js
index c860e381..53bb21c9 100644
--- a/Learun.Application.Web/Areas/ZZDT_EC/Views/ec_report_file/Index.js
+++ b/Learun.Application.Web/Areas/ZZDT_EC/Views/ec_report_file/Index.js
@@ -40,7 +40,7 @@ var bootstrap = function ($, learun) {
if (learun.checkrow(keyValue)) {
var folderId = $('#gridtable').jfGridValue('FolderId');
var reportFileName = $('#gridtable').jfGridValue('ReportFileName');
- if (reportFileName == '电缆清册') {
+ if (reportFileName == '电缆清册' || reportFileName == '电缆册') {
learun.layerForm({
id: 'systemselect',
title: '电缆清册 参数选择',
diff --git a/Learun.Framework.Module/Learun.Application.Module/Learun.Application.TwoDevelopment/ZZDT_EC/GlobalObject.cs b/Learun.Framework.Module/Learun.Application.Module/Learun.Application.TwoDevelopment/ZZDT_EC/GlobalObject.cs
index 0da8373d..27e55989 100644
--- a/Learun.Framework.Module/Learun.Application.Module/Learun.Application.TwoDevelopment/ZZDT_EC/GlobalObject.cs
+++ b/Learun.Framework.Module/Learun.Application.Module/Learun.Application.TwoDevelopment/ZZDT_EC/GlobalObject.cs
@@ -81,6 +81,7 @@ namespace Learun.Application.TwoDevelopment.ZZDT_EC
public const string propName_YOff = "纵骨偏移量(mm)";
public const string propName_TagNumber = "TagNumber";
public const string propName_Room = "房间号";
+ public const string propName_cableTypeTest = "电缆类型(测试)";
#endregion
#region projSetting