using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.IO; using System.Linq; using System.Web; using System.Web.DynamicData; using System.Web.UI; using System.Web.UI.WebControls; using BLL; using FastReport.Data; using FineUIPro.Web.HJGL.BaseInfo; using FineUIPro.Web.HJGL.WeldingManage; using FineUIPro.Web.SysManage; using Microsoft.JScript; using Model; using Newtonsoft.Json.Linq; using NPOI.OpenXmlFormats.Vml.Office; using NPOI.SS.Formula.Functions; using NPOI.Util; using Org.BouncyCastle.Asn1.Tsp; using Org.BouncyCastle.Ocsp; namespace FineUIPro.Web.ProjectData { public partial class PCFGrid : PageBase { public string Id { get { return (string)ViewState["Id"]; } set { ViewState["Id"] = value; } } public string CurrentNodeId { get { return (string)ViewState["CurrentNodeId"]; } set { ViewState["CurrentNodeId"] = value; } } public DataSet set { get { return (DataSet)ViewState["set"]; } set { ViewState["set"] = value; } } public Dictionary> relation { get { return (Dictionary>)ViewState["relation"]; } set { ViewState["relation"] = value; } } public List isoList { get { return (List)Session["isoList"]; } set { Session["isoList"] = value; } } public List jointList { get { return (List)Session["jointList"]; } set { Session["jointList"] = value; } } #region 加载 /// /// 加载页面 /// /// /// protected void Page_Load(object sender, EventArgs e) { if (!IsPostBack) { Id = Request.Params["Id"]; relation = new Dictionary>(); isoList= new List(); jointList = new List(); initDrpType(); InitGrid(); InitTreeMenu(); } } #endregion /// /// 关闭弹出窗 /// /// /// protected void InitGrid() { string rootPath = Server.MapPath("~/"); string initFullPath = rootPath + Const.ExcelUrl; var attachFile = Funs.DB.AttachFile.Where(x => x.ToKeyId == Id); List files = new List(); foreach (var attach in attachFile) { if (!string.IsNullOrEmpty(attach.AttachUrl)) { foreach (var file in attach.AttachUrl.Split(',')) { if (!string.IsNullOrEmpty(file)) { files.Add(rootPath + file); } } } } set = new DataSet(); DataTable dt = new DataTable(); dt.TableName = "ROOT"; dt.Columns.Add("ID"); set.Tables.Add(dt); Dictionary dic = new Dictionary(); dic.Add("ROOT", dt); foreach (var filePath in files) { string currentName = "ROOT"; string content = File.ReadAllText(filePath); string[] lines = content.Split('\n'); foreach (var line in lines) { if (!string.IsNullOrEmpty(line)) { var l = line.TrimEnd('\r'); if (l.IndexOf(' ') == -1) { if (dic.ContainsKey(l)) { dt = dic[l]; } else { dt = new DataTable(); dt.TableName = l; dt.Columns.Add("ID"); currentName = l; set.Tables.Add(dt); dic.Add(l, dt); } } else { l = l.Trim(); string collomName = l; if (l.IndexOf(" ") > 0) { collomName = l.Substring(0, l.IndexOf(" ")); } if (!dt.Columns.Contains(collomName)) { dt.Columns.Add(collomName); } } } } } DataRow row = null; string rowId = ""; foreach (var filePath in files) { rowId = Guid.NewGuid().ToString(); string currentName = "ROOT"; dt = dic["ROOT"]; row = dt.NewRow(); row["ID"] = rowId; dt.Rows.Add(row); string content = File.ReadAllText(filePath); string[] lines = content.Split('\n'); foreach (var line in lines) { if (!string.IsNullOrEmpty(line)) { var l = line.TrimEnd('\r'); if (l.IndexOf(' ') == -1) { if (dic.ContainsKey(l)) { dt = dic[l]; row = dt.NewRow(); row["ID"] = rowId; dt.Rows.Add(row); } } else { if (!l.StartsWith(" ") && "ROOT" != currentName) { row = dt.NewRow(); row["ID"] = rowId; dt.Rows.Add(row); } l = l.Trim(); string collomName = l; if (l.IndexOf(" ") > 0) { collomName = l.Substring(0, l.IndexOf(" ")); } var value = l.Substring(collomName.Length); if (dt.Columns.Contains(collomName)) { row[collomName] = value.Trim(); } } } } } foreach (DataTable dtt in set.Tables) { Grid grid = new Grid(); grid.ShowGridHeader = true; grid.Title = dtt.TableName; grid.ID = dtt.TableName; grid.AllowColumnLocking= true; grid.DataKeyNames = new string[] { "Id" }; foreach (DataColumn dc in dtt.Columns) { grid.Columns.Add(new BoundField() { DataField = dc.ColumnName, HeaderText = dc.ColumnName }); } grid.DataSource = dtt; grid.DataBind(); Region2.Items.Add(grid); } } #region 加载树 /// /// 加载树 /// private void InitTreeMenu() { this.trComponent.Nodes.Clear(); this.trComponent.ShowBorder = false; this.trComponent.ShowHeader = false; this.trComponent.EnableIcons = true; this.trComponent.AutoScroll = true; foreach (DataTable dt in set.Tables) { TreeNode node = new TreeNode(); node.Text = dt.TableName; node.NodeID = dt.TableName; node.CommandName = "table"; node.EnableClickEvent = true; node.EnableExpandEvent = true; this.trComponent.Nodes.Add(node); } } #endregion #region Tree点击事件 /// /// Tree点击事件 /// /// /// protected void trComponent_NodeCommand(object sender, TreeCommandEventArgs e) { if (!string.IsNullOrEmpty(CurrentNodeId)) { BindRelation(); } CurrentNodeId = trComponent.SelectedNodeID; BindGrid(); } #endregion /// /// 加载Grid /// private void BindGrid() { List items = new List(); if (this.trComponent.SelectedNode != null) { var dic = relation.ContainsKey(this.trComponent.SelectedNode.NodeID) ? relation[this.trComponent.SelectedNode.NodeID]:null; DataTable dt = set.Tables[this.trComponent.SelectedNode.NodeID]; DataTable dtShow = new DataTable(); dtShow.Columns.Add("ID"); dtShow.Columns.Add("ComAttr"); dtShow.Columns.Add("Column"); if (dt != null) { foreach (DataColumn column in dt.Columns) { DataRow row = dtShow.NewRow(); row["ID"] = column.ColumnName; row["ComAttr"] = column.ColumnName; if (dic != null) { row["Column"] = dic.ContainsKey(column.ColumnName) ? dic[column.ColumnName]:null; } dtShow.Rows.Add(row); } } this.Grid1.DataSource = dtShow; this.Grid1.DataBind(); } } private void BindIsoGrid() { this.IsoGrid.DataSource = this.isoList; this.IsoGrid.DataBind(); } private void BindJointGrid() { this.JointGrid.DataSource = this.jointList; this.JointGrid.DataBind(); } protected void drpType_SelectedIndexChanged(object sender, EventArgs e) { initDrpType(); BindGrid(); } protected void initDrpType() { List list = new List(); if (drpType.SelectedValue == "管道") { //list.Add(new ListItem("管线代号", "ISO_IsoNo")); //list.Add(new ListItem("单位", "UnitId")); //list.Add(new ListItem("介质", "TestMediumId")); //list.Add(new ListItem("是否非标", "Is_Standard")); //list.Add(new ListItem("探伤比例", "DetectionRateId")); //list.Add(new ListItem("探伤类型", "DetectionTypeId")); //list.Add(new ListItem("系统号", "ISO_SysNo")); //list.Add(new ListItem("分系统号", "ISO_SubSysNo")); //list.Add(new ListItem("工作包号", "ISO_CwpNo")); //list.Add(new ListItem("单线图号", "ISO_IsoNumber")); //list.Add(new ListItem("图纸版次", "ISO_Rev")); //list.Add(new ListItem("页数", "ISO_Sheet")); //list.Add(new ListItem("总管段数", "ISO_PipeQty")); //list.Add(new ListItem("涂漆类别", "ISO_Paint")); //list.Add(new ListItem("绝热类别", "ISO_Insulator")); //list.Add(new ListItem("材质", "MaterialId")); //list.Add(new ListItem("执行标准", "ISO_Executive")); //list.Add(new ListItem("规格", "ISO_Specification")); //list.Add(new ListItem("修改人", "ISO_Modifier")); //list.Add(new ListItem("修改日期", "ISO_ModifyDate")); //list.Add(new ListItem("建档人", "ISO_Creator")); //list.Add(new ListItem("建档日期", "ISO_CreateDate")); //list.Add(new ListItem("设计压力", "ISO_DesignPress")); //list.Add(new ListItem("设计温度", "ISO_DesignTemperature")); //list.Add(new ListItem("试验温度", "ISO_TestTemperature")); //list.Add(new ListItem("合格等级", "ISO_NDTClass")); //list.Add(new ListItem("渗透比例", "ISO_PTRate")); //list.Add(new ListItem("渗透等级", "ISO_PTClass")); //list.Add(new ListItem("是否酸洗", "ISO_IfPickling")); //list.Add(new ListItem("是否抛光", "ISO_IfChasing")); //list.Add(new ListItem("管道等级", "PipingClassId")); //list.Add(new ListItem("管道长度", "ISO_Length")); list.Add(new ListItem("管道:管线代号", "管道:管线代号")); list.Add(new ListItem("管道:单位", "管道:单位")); list.Add(new ListItem("管道:施工区域", "管道:施工区域")); list.Add(new ListItem("管道:介质", "管道:介质")); list.Add(new ListItem("管道:是否非标", "管道:是否非标")); list.Add(new ListItem("管道:探伤比例", "管道:探伤比例")); list.Add(new ListItem("管道:探伤类型", "管道:探伤类型")); list.Add(new ListItem("管道:系统号", "管道:系统号")); list.Add(new ListItem("管道:分系统号", "管道:分系统号")); list.Add(new ListItem("管道:工作包号", "管道:工作包号")); list.Add(new ListItem("管道:单线图号", "管道:单线图号")); list.Add(new ListItem("管道:图纸版次", "管道:图纸版次")); list.Add(new ListItem("管道:页数", "管道:页数")); list.Add(new ListItem("管道:总管段数", "管道:总管段数")); list.Add(new ListItem("管道:涂漆类别", "管道:涂漆类别")); list.Add(new ListItem("管道:绝热类别", "管道:绝热类别")); list.Add(new ListItem("管道:材质", "管道:材质")); list.Add(new ListItem("管道:执行标准", "管道:执行标准")); list.Add(new ListItem("管道:规格", "管道:规格")); list.Add(new ListItem("管道:修改人", "管道:修改人")); list.Add(new ListItem("管道:修改日期", "管道:修改日期")); list.Add(new ListItem("管道:建档人", "管道:建档人")); list.Add(new ListItem("管道:建档日期", "管道:建档日期")); list.Add(new ListItem("管道:设计压力", "管道:设计压力")); list.Add(new ListItem("管道:设计温度", "管道:设计温度")); list.Add(new ListItem("管道:试验温度", "管道:试验温度")); list.Add(new ListItem("管道:合格等级", "管道:合格等级")); list.Add(new ListItem("管道:渗透比例", "管道:渗透比例")); list.Add(new ListItem("管道:渗透等级", "管道:渗透等级")); list.Add(new ListItem("管道:是否酸洗", "管道:是否酸洗")); list.Add(new ListItem("管道:是否抛光", "管道:是否抛光")); list.Add(new ListItem("管道:管道等级", "管道:管道等级")); list.Add(new ListItem("管道:管道长度", "管道:管道长度")); } else if (drpType.SelectedValue == "焊口") { //list.Add(new ListItem("焊口代号", "ISO_IsoNo")); //list.Add(new ListItem("焊接区域", "WLO_Code")); //list.Add(new ListItem("材质1", "MaterialId")); //list.Add(new ListItem("材质2", "MaterialId2")); //list.Add(new ListItem("所属管段", "JOT_BelongPipe")); //list.Add(new ListItem("组件1号", "JOT_Component1")); //list.Add(new ListItem("组件2号", "JOT_Component2")); //list.Add(new ListItem("焊口规格", "JOT_JointDesc")); //list.Add(new ListItem("炉批号1", "JOT_HeartNo1")); //list.Add(new ListItem("炉批号2", "JOT_HeartNo2")); //list.Add(new ListItem("焊缝类型", "JOTY_ID")); //list.Add(new ListItem("寸径", "JOT_Size")); //list.Add(new ListItem("外径", "JOT_Dia")); //list.Add(new ListItem("坡口类型", "JST_ID")); //list.Add(new ListItem("壁厚", "JOT_Sch")); //list.Add(new ListItem("实际壁厚", "JOT_FactSch")); //list.Add(new ListItem("后热温度", "JOT_LastTemp")); //list.Add(new ListItem("层间温度", "JOT_CellTemp")); //list.Add(new ListItem("预热温度", "TemperatureSetId")); //list.Add(new ListItem("焊口属性", "JOT_JointAttribute")); //list.Add(new ListItem("焊接方法", "WME_ID")); //list.Add(new ListItem("焊丝", "JOT_WeldSilk")); //list.Add(new ListItem("焊条", "JOT_WeldMat")); //list.Add(new ListItem("焊接电流", "JOT_Electricity")); //list.Add(new ListItem("焊接电压", "JOT_Voltage")); //list.Add(new ListItem("是否需热处理", "IS_Proess")); //list.Add(new ListItem("焊接气体保护", "WeldingGasProtection")); //list.Add(new ListItem("焊接速度", "WeldingSpeed")); //list.Add(new ListItem("实际预热温度", "ActualPrepareTemp")); //list.Add(new ListItem("探伤比例", "DetectionRateId")); //list.Add(new ListItem("探伤类型", "DetectionTypeId")); //list.Add(new ListItem("数量(组件)", "ComponentNum")); //list.Add(new ListItem("延长米", "Extend_Length")); //list.Add(new ListItem("材料1", "Material1")); //list.Add(new ListItem("材料2", "Material2")); //list.Add(new ListItem("壁板号", "WallBoard")); list.Add(new ListItem("焊口:焊口代号", "焊口:焊口代号")); list.Add(new ListItem("焊口:焊接区域", "焊口:焊接区域")); list.Add(new ListItem("焊口:材质1", "焊口:材质1")); list.Add(new ListItem("焊口:材质2", "焊口:材质2")); list.Add(new ListItem("焊口:所属管段", "焊口:所属管段")); list.Add(new ListItem("焊口:组件1号", "焊口:组件1号")); list.Add(new ListItem("焊口:组件2号", "焊口:组件2号")); list.Add(new ListItem("焊口:焊口规格", "焊口:焊口规格")); list.Add(new ListItem("焊口:炉批号1", "焊口:炉批号1")); list.Add(new ListItem("焊口:炉批号2", "焊口:炉批号2")); list.Add(new ListItem("焊口:焊缝类型", "焊口:焊缝类型")); list.Add(new ListItem("焊口:寸径", "焊口:寸径")); list.Add(new ListItem("焊口:外径", "焊口:外径")); list.Add(new ListItem("焊口:坡口类型", "焊口:坡口类型")); list.Add(new ListItem("焊口:壁厚", "焊口:壁厚")); list.Add(new ListItem("焊口:实际壁厚", "焊口:实际壁厚")); list.Add(new ListItem("焊口:后热温度", "焊口:后热温度")); list.Add(new ListItem("焊口:层间温度", "焊口:层间温度")); list.Add(new ListItem("焊口:预热温度", "焊口:预热温度")); list.Add(new ListItem("焊口:焊口属性", "焊口:焊口属性")); list.Add(new ListItem("焊口:焊接方法", "焊口:焊接方法")); list.Add(new ListItem("焊口:焊丝", "焊口:焊丝")); list.Add(new ListItem("焊口:焊条", "焊口:焊条")); list.Add(new ListItem("焊口:焊接电流", "焊口:焊接电流")); list.Add(new ListItem("焊口:焊接电压", "焊口:焊接电压")); list.Add(new ListItem("焊口:是否需热处理", "焊口:是否需热处理")); list.Add(new ListItem("焊口:焊接气体保护", "焊口:焊接气体保护")); list.Add(new ListItem("焊口:焊接速度", "焊口:焊接速度")); list.Add(new ListItem("焊口:实际预热温度", "焊口:实际预热温度")); list.Add(new ListItem("焊口:探伤比例", "焊口:探伤比例")); list.Add(new ListItem("焊口:探伤类型", "焊口:探伤类型")); list.Add(new ListItem("焊口:数量(组件)", "焊口:数量(组件)")); list.Add(new ListItem("焊口:延长米", "焊口:延长米")); list.Add(new ListItem("焊口:材料1", "焊口:材料1")); list.Add(new ListItem("焊口:材料2", "焊口:材料2")); list.Add(new ListItem("焊口:壁板号", "焊口:壁板号")); } this.drpColumn.DataTextField = "Text"; this.drpColumn.DataValueField = "Value"; this.drpColumn.DataSource = list; drpColumn.DataBind(); } protected void btnGenerateIso_Click(object sender, EventArgs e) { isoList = new List(); jointList = new List(); BindRelation(); DataSet dataSetIso = new DataSet(); DataSet dataSetJoin = new DataSet(); foreach (string key in this.relation.Keys) { DataTable dtIso = new DataTable(); DataTable dtJoin = new DataTable(); dtIso.TableName = key; dtIso.Columns.Add("ID"); dtJoin.TableName = key; dtJoin.Columns.Add("ID"); var col = this.relation[key]; foreach (string key1 in col.Keys) { if (col[key1].Contains("管道")) { dtIso.Columns.Add(key1); } else if (col[key1].Contains("焊口")) { dtJoin.Columns.Add(key1); } } if (dtIso.Columns.Count > 1) { dataSetIso.Tables.Add(dtIso); } if (dtJoin.Columns.Count > 1) { dataSetJoin.Tables.Add(dtJoin); } } foreach (DataTable dt1 in dataSetIso.Tables) { foreach (DataTable dt2 in set.Tables) { if (dt1.TableName == dt2.TableName) { foreach (DataRow row in dt2.Rows) { var newRow =dt1.NewRow(); foreach (DataColumn dc in dt1.Columns) { newRow[dc.ColumnName] = row[dc.ColumnName]; } dt1.Rows.Add(newRow); } } } } foreach (DataTable dt1 in dataSetJoin.Tables) { foreach (DataTable dt2 in set.Tables) { if (dt1.TableName == dt2.TableName) { foreach (DataRow row in dt2.Rows) { var newRow = dt1.NewRow(); foreach (DataColumn dc in dt1.Columns) { newRow[dc.ColumnName] = row[dc.ColumnName]; } dt1.Rows.Add(newRow); } } } } var units = from x in Funs.DB.Base_Unit join y in Funs.DB.Project_ProjectUnit on x.UnitId equals y.UnitId where y.ProjectId == CurrUser.LoginProjectId select x; var workAreas = from x in Funs.DB.ProjectData_WorkArea where x.ProjectId == CurrUser.LoginProjectId select x; var steels = from x in Funs.DB.Base_Material select x; var materialTypes = from x in Funs.DB.Base_MaterialType select x; var rates = from x in Funs.DB.Base_DetectionRate select x; var detectionType = from x in Funs.DB.Base_DetectionType select x; var types = from x in Funs.DB.Base_WeldType select x; var methods = from x in Funs.DB.Base_WeldingMethod select x; var materials = from x in Funs.DB.Base_Consumables select x; var services = from x in Funs.DB.Base_TestMedium select x; var slopeTypes = from x in Funs.DB.Base_GrooveType select x; var isoClasss = from x in Funs.DB.Base_PipingClass select x; var components = from x in Funs.DB.Base_Components select x; var dns = from x in Funs.DB.Base_DNCompare select x; var users = from x in Funs.DB.Sys_User select x; foreach (DataTable dataTable in dataSetIso.Tables) { var idc = this.relation[dataTable.TableName]; foreach (DataRow row in dataTable.Rows) { PW_IsoInfo isoInfo = new PW_IsoInfo(); isoInfo.ISO_ID = row["ID"].ToString(); isoInfo.ProjectId = CurrUser.LoginProjectId; foreach (DataColumn dataColumn in dataTable.Columns) { if (idc.ContainsKey(dataColumn.ColumnName)) { switch (idc[dataColumn.ColumnName]) { case "管道:管线代号": isoInfo.ISO_IsoNo = row[dataColumn.ColumnName].ToString(); break; case "管道:单位": isoInfo.UnitId = units.Where(x => x.UnitName == row[dataColumn.ColumnName].ToString()).Select(x => x.UnitId).FirstOrDefault(); break; case "管道:施工区域": isoInfo.WorkAreaId = workAreas.Where(x => x.WorkAreaName == row[dataColumn.ColumnName].ToString()).Select(x => x.WorkAreaId).FirstOrDefault(); break; case "管道:介质": isoInfo.TestMediumId = services.Where(x => x.MediumName == row[dataColumn.ColumnName].ToString()).Select(x => x.TestMediumId).FirstOrDefault(); break; case "管道:是否非标": isoInfo.Is_Standard = row[dataColumn.ColumnName].ToString() == "是" || row[dataColumn.ColumnName].ToString().ToLower() == "true" ? true : false; break; case "管道:探伤比例": isoInfo.DetectionRateId = rates.Where(x => x.DetectionRateCode == row[dataColumn.ColumnName].ToString()).Select(x => x.DetectionRateId).FirstOrDefault(); ; break; case "管道:探伤类型": isoInfo.DetectionTypeId = detectionType.Where(x => x.DetectionTypeName == row[dataColumn.ColumnName].ToString()).Select(x => x.DetectionTypeId).FirstOrDefault(); ; break; case "管道:系统号": isoInfo.ISO_SysNo = row[dataColumn.ColumnName].ToString(); break; case "管道:分系统号": isoInfo.ISO_SubSysNo = row[dataColumn.ColumnName].ToString(); break; case "管道:工作包号": isoInfo.ISO_CwpNo = row[dataColumn.ColumnName].ToString(); break; case "管道:单线图号": isoInfo.ISO_IsoNumber = row[dataColumn.ColumnName].ToString(); break; case "管道:图纸版次": isoInfo.ISO_Rev = row[dataColumn.ColumnName].ToString(); break; case "管道:页数": isoInfo.ISO_Sheet = row[dataColumn.ColumnName].ToString(); break; case "管道:总管段数": isoInfo.ISO_PipeQty = decimal.Parse(row[dataColumn.ColumnName].ToString()); break; case "管道:涂漆类别": isoInfo.ISO_Paint = row[dataColumn.ColumnName].ToString(); break; case "管道:绝热类别": isoInfo.ISO_Insulator = row[dataColumn.ColumnName].ToString(); break; case "管道:材质": isoInfo.MaterialId = steels.Where(x => x.MaterialCode == row[dataColumn.ColumnName].ToString()).Select(x => x.MaterialId).FirstOrDefault(); break; case "管道:执行标准": isoInfo.ISO_Executive = row[dataColumn.ColumnName].ToString(); break; case "管道:规格": isoInfo.ISO_Specification = row[dataColumn.ColumnName].ToString(); break; case "管道:管道长度": isoInfo.ISO_Length = row[dataColumn.ColumnName].ToString(); break; case "管道:管道等级": isoInfo.PipingClassId = isoClasss.Where(x => x.PipingClassCode == row[dataColumn.ColumnName].ToString()).Select(x => x.PipingClassId).FirstOrDefault(); break; case "管道:是否抛光": isoInfo.ISO_IfChasing = row[dataColumn.ColumnName].ToString() == "是" || row[dataColumn.ColumnName].ToString().ToLower() == "true" ? true : false; break; case "管道:是否酸洗": isoInfo.ISO_IfPickling = row[dataColumn.ColumnName].ToString() == "是" || row[dataColumn.ColumnName].ToString().ToLower() == "true" ? true : false; break; case "管道:渗透等级": isoInfo.ISO_PTClass = row[dataColumn.ColumnName].ToString(); break; case "管道:渗透比例": isoInfo.ISO_PTRate = row[dataColumn.ColumnName].ToString(); break; case "管道:合格等级": isoInfo.ISO_NDTClass = row[dataColumn.ColumnName].ToString(); break; case "管道:试验温度": isoInfo.ISO_TestTemperature = row[dataColumn.ColumnName].ToString(); break; case "管道:设计温度": isoInfo.ISO_TestTemperature = row[dataColumn.ColumnName].ToString(); break; case "管道:设计压力": isoInfo.ISO_DesignPress = row[dataColumn.ColumnName].ToString(); break; case "管道:修改人": isoInfo.ISO_Modifier = users.Where(x => x.UserName == row[dataColumn.ColumnName].ToString()).Select(x => x.UserId).FirstOrDefault(); break; case "管道:修改日期": isoInfo.ISO_ModifyDate = DateTime.Parse(row[dataColumn.ColumnName].ToString()); break; case "管道:建档人": isoInfo.ISO_Creator = users.Where(x => x.UserName == row[dataColumn.ColumnName].ToString()).Select(x => x.UserId).FirstOrDefault(); break; case "管道:建档日期": isoInfo.ISO_CreateDate = DateTime.Parse(row[dataColumn.ColumnName].ToString()); break; } } } this.isoList.Add(isoInfo); } } foreach (DataTable dataTable in dataSetJoin.Tables) { var idc = this.relation[dataTable.TableName]; foreach (DataRow row in dataTable.Rows) { PW_JointInfo joinInfo = new PW_JointInfo(); joinInfo.JOT_ID = Guid.NewGuid().ToString(); joinInfo.ISO_ID = row["ID"].ToString(); joinInfo.ProjectId = CurrUser.LoginProjectId; foreach (DataColumn dataColumn in dataTable.Columns) { if (idc.ContainsKey(dataColumn.ColumnName)) { switch (idc[dataColumn.ColumnName]) { case "焊口:焊口代号": joinInfo.JOT_JointNo = row[dataColumn.ColumnName].ToString(); break; case "焊口:焊接区域": joinInfo.WLO_Code = row[dataColumn.ColumnName].ToString(); break; case "焊口:材质1": joinInfo.MaterialId = steels.Where(x => x.MaterialCode == row[dataColumn.ColumnName].ToString()).Select(x => x.MaterialId).FirstOrDefault(); break; case "焊口:材质2": joinInfo.MaterialId2 = steels.Where(x => x.MaterialCode == row[dataColumn.ColumnName].ToString()).Select(x => x.MaterialId).FirstOrDefault(); break; case "焊口:所属管段": joinInfo.JOT_BelongPipe = row[dataColumn.ColumnName].ToString(); break; case "焊口:组件1号": joinInfo.JOT_Component1 = row[dataColumn.ColumnName].ToString(); break; case "焊口:组件2号": joinInfo.JOT_Component2 = row[dataColumn.ColumnName].ToString(); break; case "焊口:焊口规格": joinInfo.JOT_JointDesc = row[dataColumn.ColumnName].ToString(); break; case "焊口:炉批号1": joinInfo.JOT_HeartNo1 = row[dataColumn.ColumnName].ToString(); break; case "焊口:炉批号2": joinInfo.JOT_HeartNo2 = row[dataColumn.ColumnName].ToString(); break; case "焊口:焊缝类型": joinInfo.JOTY_ID = types.Where(x => x.WeldTypeCode == row[dataColumn.ColumnName].ToString()).Select(x => x.WeldTypeId).FirstOrDefault(); break; case "焊口:寸径": joinInfo.JOT_Size = decimal.Parse(row[dataColumn.ColumnName].ToString()); break; case "焊口:外径": joinInfo.JOT_Dia = decimal.Parse(row[dataColumn.ColumnName].ToString()); break; case "焊口:坡口类型": joinInfo.JST_ID = slopeTypes.Where(x => x.GrooveTypeCode == row[dataColumn.ColumnName].ToString()).Select(x => x.GrooveTypeId).FirstOrDefault(); break; case "焊口:壁厚": joinInfo.JOT_Sch = row[dataColumn.ColumnName].ToString(); break; case "焊口:实际壁厚": joinInfo.JOT_FactSch = decimal.Parse(row[dataColumn.ColumnName].ToString()); break; case "焊口:后热温度": joinInfo.JOT_LastTemp = decimal.Parse(row[dataColumn.ColumnName].ToString()); break; case "焊口:层间温度": joinInfo.JOT_CellTemp = decimal.Parse(row[dataColumn.ColumnName].ToString()); break; case "焊口:焊口属性": joinInfo.JOT_JointAttribute = row[dataColumn.ColumnName].ToString(); break; case "焊口:焊接方法": joinInfo.WME_ID = methods.Where(x => x.WeldingMethodCode == row[dataColumn.ColumnName].ToString()).Select(x => x.WeldingMethodId).FirstOrDefault(); break; case "焊口:焊丝": joinInfo.JOT_WeldSilk = row[dataColumn.ColumnName].ToString(); break; case "焊口:焊条": joinInfo.JOT_WeldMat = row[dataColumn.ColumnName].ToString(); break; case "焊口:焊接电流": joinInfo.JOT_Electricity = row[dataColumn.ColumnName].ToString(); break; case "焊口:焊接电压": joinInfo.JOT_Voltage = row[dataColumn.ColumnName].ToString(); break; case "焊口:是否需热处理": joinInfo.IS_Proess = row[dataColumn.ColumnName].ToString(); break; case "焊口:焊接气体保护": joinInfo.WeldingGasProtection = row[dataColumn.ColumnName].ToString(); break; case "焊口:焊接速度": joinInfo.WeldingSpeed = row[dataColumn.ColumnName].ToString(); break; case "焊口:实际预热温度": joinInfo.ActualPrepareTemp = decimal.Parse(row[dataColumn.ColumnName].ToString()); break; case "焊口:数量(组件)": joinInfo.ComponentNum = row[dataColumn.ColumnName].ToString(); break; case "焊口:延长米": joinInfo.Extend_Length = row[dataColumn.ColumnName].ToString(); break; case "焊口:材料1": joinInfo.Material1 = row[dataColumn.ColumnName].ToString(); break; case "焊口:材料2": joinInfo.Material2 = row[dataColumn.ColumnName].ToString(); break; case "焊口:壁板号": joinInfo.WallBoard = row[dataColumn.ColumnName].ToString(); break; } } } this.jointList.Add(joinInfo); } } BindIsoGrid(); BindJointGrid(); this.TabStrip1.ActiveTabIndex = 2; } protected DataTable joinTable(DataTable dt1, DataTable dt2, string col1, string col2) { DataTable res = new DataTable(); foreach (DataColumn col in dt1.Columns) { if (!string.IsNullOrEmpty(dt1.TableName)) { res.Columns.Add(dt1.TableName + "$" + col.ColumnName); } else { res.Columns.Add(col.ColumnName); } } foreach (DataColumn col in dt2.Columns) { if (!string.IsNullOrEmpty(dt2.TableName)) { res.Columns.Add(dt2.TableName + "$" + col.ColumnName); } else { res.Columns.Add(col.ColumnName); } } foreach (DataRow row1 in dt1.Rows) { var rows2 = dt2.Select(col2 + " = '" + row1[col1].ToString() + "'"); if (rows2.Length == 0) { var newRow = res.NewRow(); foreach (DataColumn column in dt1.Columns) { if (!string.IsNullOrEmpty(dt1.TableName)) { newRow[dt1.TableName + "$" + column.ColumnName] = row1[column.ColumnName]; } else { newRow[column.ColumnName] = row1[column.ColumnName]; } } res.Rows.Add(newRow); } else { foreach (DataRow row2 in rows2) { var newRow = res.NewRow(); foreach (DataColumn column in dt1.Columns) { if (!string.IsNullOrEmpty(dt1.TableName)) { newRow[dt1.TableName + "$" + column.ColumnName] = row1[column.ColumnName]; } else { newRow[column.ColumnName] = row1[column.ColumnName]; } } foreach (DataColumn column in dt2.Columns) { if (!string.IsNullOrEmpty(dt2.TableName)) { newRow[dt2.TableName + "$" + column.ColumnName] = row2[column.ColumnName]; } else { newRow[column.ColumnName] = row1[column.ColumnName]; } } res.Rows.Add(newRow); } } } return res; } protected void BindRelation() { if (!relation.ContainsKey(CurrentNodeId )) { relation.Add(CurrentNodeId, new Dictionary()); } var dic = relation[CurrentNodeId]; if (Grid1.Rows.Count > 0) { foreach (JObject mergedRow in Grid1.GetMergedData()) { Model.Check_JointCheckDetail jointCheckDetail = new Model.Check_JointCheckDetail(); int i = mergedRow.Value("index"); JObject values = mergedRow.Value("values"); string comAttr = values.Value("ComAttr"); string Column = values.Value("Column"); if (!string.IsNullOrEmpty(Column)) { dic[comAttr]= Column; } } } } protected void IsoGrid_RowDoubleClick(object sender, GridRowClickEventArgs e) { PW_IsoInfo iso = null; foreach (var item in isoList) { if (item.ISO_ID == IsoGrid.SelectedRowID) { iso = item; break; } } if (PCFPipelineEdit.dic.ContainsKey(IsoGrid.SelectedRowID)) { PCFPipelineEdit.dic[IsoGrid.SelectedRowID]= iso; } else { PCFPipelineEdit.dic.Add(IsoGrid.SelectedRowID, iso); } hdIds.Text = ""; PageContext.RegisterStartupScript(Window1.GetSaveStateReference(hdIds.ClientID) + Window1.GetShowReference(String.Format("PCFPipelineEdit.aspx?ISO_ID={0}", IsoGrid.SelectedRowID, "编辑 - "))); } protected void JointGrid_RowDoubleClick(object sender, GridRowClickEventArgs e) { PW_JointInfo iso = null; foreach (var item in jointList) { if (item.JOT_ID == JointGrid.SelectedRowID) { iso = item; break; } } if (PCFJointEdit.dic.ContainsKey(JointGrid.SelectedRowID)) { PCFJointEdit.dic[JointGrid.SelectedRowID] = iso; } else { PCFJointEdit.dic.Add(JointGrid.SelectedRowID, iso); } hdIds.Text = ""; PageContext.RegisterStartupScript(Window2.GetSaveStateReference(hdIds.ClientID) + Window2.GetShowReference(String.Format("PCFJointEdit.aspx?JOT_ID={0}", JointGrid.SelectedRowID, "编辑 - "))); } protected void Window1_Close(object sender, WindowCloseEventArgs e) { if (!string.IsNullOrEmpty(hdIds.Text)) { PW_IsoInfo iso = null; foreach (var item in isoList) { if (item.ISO_ID == hdIds.Text) { iso = item; break; } } for (int i = 0; i < isoList.Count; i++) { isoList[i].TestMediumId = iso.TestMediumId; isoList[i].Is_Standard = iso.Is_Standard; isoList[i].DetectionRateId = iso.DetectionRateId; isoList[i].DetectionTypeId = iso.DetectionTypeId; isoList[i].ISO_NDTClass = iso.ISO_NDTClass; isoList[i].ISO_PTRate = iso.ISO_PTRate; isoList[i].ISO_SysNo = iso.ISO_SysNo; isoList[i].ISO_SubSysNo = iso.ISO_SubSysNo; isoList[i].ISO_CwpNo = iso.ISO_CwpNo; isoList[i].ISO_IsoNumber = iso.ISO_IsoNumber; isoList[i].ISO_Rev = iso.ISO_Rev; isoList[i].ISO_Sheet = iso.ISO_Sheet; isoList[i].ISO_PipeQty = iso.ISO_PipeQty; isoList[i].ISO_Paint = iso.ISO_Paint; isoList[i].ISO_Insulator = iso.ISO_Insulator; isoList[i].MaterialId = iso.MaterialId; isoList[i].ISO_Executive = iso.ISO_Executive; isoList[i].ISO_Specification = iso.ISO_Specification; isoList[i].ISO_Modifier = iso.ISO_Modifier; isoList[i].ISO_ModifyDate = iso.ISO_ModifyDate; isoList[i].ISO_Creator = iso.ISO_Creator; isoList[i].ISO_CreateDate = iso.ISO_CreateDate; isoList[i].ISO_DesignPress = iso.ISO_DesignPress; isoList[i].ISO_DesignTemperature = iso.ISO_DesignTemperature; isoList[i].ISO_TestPress = iso.ISO_TestPress; isoList[i].ISO_PTClass = iso.ISO_PTClass; isoList[i].ISO_IfPickling = iso.ISO_IfPickling; isoList[i].ISO_IfChasing = iso.ISO_IfChasing; isoList[i].PipingClassId = iso.PipingClassId; isoList[i].UnitId = iso.UnitId; isoList[i].WorkAreaId = iso.WorkAreaId; isoList[i].ISO_Remark = iso.ISO_Remark; } } this.BindIsoGrid(); } protected void Window2_Close(object sender, WindowCloseEventArgs e) { if (!string.IsNullOrEmpty(hdIds.Text)) { PW_JointInfo iso = null; foreach (var item in jointList) { if (item.JOT_ID == hdIds.Text) { iso = item; break; } } for (int i = 0; i < jointList.Count; i++) { jointList[i].ProjectId = iso.ProjectId; //jointList[i].JOT_JointNo = iso.JOT_JointNo; jointList[i].WallBoard = iso.WallBoard; jointList[i].DetectionTypeId = iso.DetectionTypeId; jointList[i].DetectionRateId = iso.DetectionRateId; jointList[i].MaterialId = iso.MaterialId; jointList[i].MaterialId2 = iso.MaterialId2; jointList[i].WLO_Code = iso.WLO_Code; jointList[i].JOT_Component1 = iso.JOT_Component1; jointList[i].JOT_Component2 = iso.JOT_Component2; jointList[i].JOT_HeartNo1 = iso.JOT_HeartNo1; jointList[i].JOT_HeartNo2 = iso.JOT_HeartNo2; jointList[i].JOT_WeldMat = iso.JOT_WeldMat; jointList[i].JOT_Dia = iso.JOT_Dia; jointList[i].JOT_Size = iso.JOT_Size; jointList[i].JOT_Sch = iso.JOT_Sch; jointList[i].Extend_Length = iso.Extend_Length; jointList[i].JOT_FactSch = iso.JOT_FactSch; jointList[i].JOT_JointDesc = iso.JOT_JointDesc; jointList[i].JOT_WeldSilk = iso.JOT_WeldSilk; jointList[i].JOTY_ID = iso.JOTY_ID; jointList[i].JOT_RepairFlag = iso.JOT_RepairFlag; jointList[i].WME_ID = iso.WME_ID; jointList[i].JST_ID = iso.JST_ID; jointList[i].JOT_PrepareTemp = iso.JOT_PrepareTemp; jointList[i].JOT_CellTemp = iso.JOT_CellTemp; jointList[i].JOT_LastTemp = iso.JOT_LastTemp; jointList[i].JOT_JointAttribute = iso.JOT_JointAttribute; jointList[i].IS_Proess = iso.IS_Proess; jointList[i].JOT_Remark = iso.JOT_Remark; jointList[i].WeldingGasProtection = iso.WeldingGasProtection; jointList[i].WeldingSpeed = iso.WeldingSpeed; jointList[i].JOT_Electricity = iso.JOT_Electricity; jointList[i].JOT_Voltage = iso.JOT_Voltage; jointList[i].ComponentNum = iso.ComponentNum; jointList[i].JOT_JointStatus = iso.JOT_JointStatus; } } this.BindJointGrid(); } public static string ConvertUnitName(object unitId) { if (unitId != null) { var unit = (from x in Funs.DB.Base_Unit where x.UnitId == unitId.ToString() select x).FirstOrDefault(); if (unit != null) { return unit.UnitName; } } return null; } public static string ConvertDetectionRate(object detectionRateId) { if (detectionRateId != null) { var detectionRate = Funs.DB.Base_DetectionRate.FirstOrDefault(x=> x.DetectionRateId == detectionRateId.ToString() ); if (detectionRate != null) { return detectionRate.DetectionRateValue; } } return null; } public static string ConvertMediumName(object testMediumId) { if (testMediumId != null) { var testMedium = Funs.DB.Base_TestMedium.FirstOrDefault(x => x.TestMediumId == testMediumId.ToString()); if (testMedium != null) { return testMedium.MediumName; } } return null; } public static string ConvertDetectionType(object detectionTypeId) { if (detectionTypeId != null) { var detectionType = Funs.DB.Base_DetectionType.FirstOrDefault(x => x.DetectionTypeId == detectionTypeId.ToString()); if (detectionType != null) { return detectionType.DetectionTypeName; } } return null; } public static string ConvertPipingClass(object pipingClassId) { if (pipingClassId != null) { var pipingClass = Funs.DB.Base_PipingClass.FirstOrDefault(x => x.PipingClassId == pipingClassId.ToString()); if (pipingClass != null) { return pipingClass.PipingClassName; } } return null; } public static string ConvertMaterialType(object materialId) { if (materialId != null) { var pipingClass = Funs.DB.Base_Material.FirstOrDefault(x => x.MaterialId == materialId.ToString()); if (pipingClass != null) { return pipingClass.MaterialCode; } } return null; } public static string ConvertWorkArea(object workAreaId) { if (workAreaId != null) { var workArea = Funs.DB.ProjectData_WorkArea.FirstOrDefault(x => x.WorkAreaId == workAreaId.ToString()); if (workArea != null) { return workArea.WorkAreaName; } } return null; } public static string ConvertComponent(object component) { if (component != null) { var Components = Funs.DB.Base_Components.FirstOrDefault(x => x.ComponentsId == component.ToString()); if (Components != null) { return Components.ComponentsName; } } return null; } public static string ConvertWeldingMethod(object weldingMethodId) { if (weldingMethodId != null) { var WeldingMethod = Funs.DB.Base_WeldingMethod.FirstOrDefault(x => x.WeldingMethodId == weldingMethodId.ToString()); if (WeldingMethod != null) { return WeldingMethod.WeldingMethodName; } } return null; } public static string ConvertWeldSilk(object weldingMethodId) { if (weldingMethodId != null) { var WeldingMethod = Funs.DB.Base_Consumables.FirstOrDefault(x => x.ConsumablesId == weldingMethodId.ToString()); if (WeldingMethod != null) { return WeldingMethod.ConsumablesCode; } } return null; } public static string ConvertWeldMat(object weldingMethodId) { if (weldingMethodId != null) { var WeldingMethod = Funs.DB.Base_Consumables.FirstOrDefault(x => x.ConsumablesId == weldingMethodId.ToString()); if (WeldingMethod != null) { return WeldingMethod.ConsumablesCode; } } return null; } public static string ConvertWeldType(object weldTypeId) { if (weldTypeId != null) { var WeldType = Funs.DB.Base_WeldType.FirstOrDefault(x => x.WeldTypeId == weldTypeId.ToString()); if (WeldType != null) { return WeldType.WeldTypeName; } } return null; } public static string ConvertGrooveType(object grooveTypeId) { if (grooveTypeId != null) { var GrooveType = Funs.DB.Base_GrooveType.FirstOrDefault(x => x.GrooveTypeId == grooveTypeId.ToString()); if (GrooveType != null) { return GrooveType.GrooveTypeName; } } return null; } public static string ConvertIsStandard(object isStandard) { if (isStandard != null) { if (isStandard.ToString().ToLower() == "true") { return "是"; } } return "否"; } protected void btnImport_Click(object sender, EventArgs e) { if (isoList.Count() > 0) { Funs.DB.PW_IsoInfo.InsertAllOnSubmit(isoList); } if (jointList.Count() > 0) { Funs.DB.PW_JointInfo.InsertAllOnSubmit(jointList); } Funs.DB.SubmitChanges(); isoList.Clear(); jointList.Clear(); BindIsoGrid(); BindJointGrid(); Alert.ShowInTop("导入成功!", MessageBoxIcon.Success); } } }