SGGL_SGY/SGGL/FineUIPro.Web/ProjectData/PCFGrid.aspx.cs

1336 lines
60 KiB
C#

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<string, Dictionary<string, string>> relation
{
get
{
return (Dictionary<string, Dictionary<string, string>>)ViewState["relation"];
}
set
{
ViewState["relation"] = value;
}
}
public List<Model.PW_IsoInfo> isoList
{
get
{
return (List<Model.PW_IsoInfo>)Session["isoList"];
}
set
{
Session["isoList"] = value;
}
}
public List<Model.PW_JointInfo> jointList
{
get
{
return (List<Model.PW_JointInfo>)Session["jointList"];
}
set
{
Session["jointList"] = value;
}
}
#region
/// <summary>
/// 加载页面
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
Id = Request.Params["Id"];
relation = new Dictionary<string, Dictionary<string, string>>();
isoList= new List<Model.PW_IsoInfo>();
jointList = new List<PW_JointInfo>();
initDrpType();
InitGrid();
InitTreeMenu();
}
}
#endregion
/// <summary>
/// 关闭弹出窗
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void InitGrid()
{
string rootPath = Server.MapPath("~/");
string initFullPath = rootPath + Const.ExcelUrl;
var attachFile = Funs.DB.AttachFile.Where(x => x.ToKeyId == Id);
List<string> files = new List<string>();
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<string, DataTable> dic = new Dictionary<string, DataTable>();
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
/// <summary>
/// 加载树
/// </summary>
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点击事件
/// <summary>
/// Tree点击事件
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void trComponent_NodeCommand(object sender, TreeCommandEventArgs e)
{
if (!string.IsNullOrEmpty(CurrentNodeId))
{
BindRelation();
}
CurrentNodeId = trComponent.SelectedNodeID;
BindGrid();
}
#endregion
/// <summary>
/// 加载Grid
/// </summary>
private void BindGrid()
{
List<Model.WBSSetInitItem> items = new List<Model.WBSSetInitItem>();
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<ListItem> list = new List<ListItem>();
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<PW_IsoInfo>();
jointList = new List<PW_JointInfo>();
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<string, string>());
}
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<int>("index");
JObject values = mergedRow.Value<JObject>("values");
string comAttr = values.Value<string>("ComAttr");
string Column = values.Value<string>("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);
}
}
}