Basf_TCC11/HJGL/FineUIPro.Web/WeldingProcess/WeldingManage/PipelineManage.aspx.cs

1593 lines
79 KiB
C#
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

using System;
using System.Collections.Generic;
using System.Text;
using System.Data;
using System.Data.SqlClient;
using System.Linq;
using System.IO;
using BLL;
using Newtonsoft.Json.Linq;
namespace FineUIPro.Web.WeldingManage
{
public partial class PipelineManage : PageBase
{
//定义变量
/// <summary>
/// 上传预设的虚拟路径
/// </summary>
private string initPath = Const.ExcelUrl;
/// <summary>
/// 错误集合
/// </summary>
public static string errorInfos = string.Empty;
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
this.ddlPageSize.SelectedValue = this.Grid1.PageSize.ToString();
this.InitTreeMenu();//加载树
//显示列
Model.Sys_UserShowColumns c = BLL.UserShowColumnsService.GetColumnsByUserId(this.CurrUser.UserId, "Pipeline");
if (c != null)
{
this.GetShowColumn(c.Columns);
}
}
}
protected void drpProjectId_SelectedIndexChanged(object sender, EventArgs e)
{
this.InitTreeMenu();
}
#region --
/// <summary>
/// 加载树
/// </summary>
private void InitTreeMenu()
{
this.tvControlItem.Nodes.Clear();
var totalInstallation = from x in Funs.DB.Project_Installation select x;
var totalWorkArea = from x in Funs.DB.Project_WorkArea select x;
var totalUnit = from x in Funs.DB.Project_Unit select x;
////装置
var pInstallation = (from x in totalInstallation where x.ProjectId == this.CurrUser.LoginProjectId select x).ToList();
////区域
var pWorkArea = (from x in totalWorkArea where x.ProjectId == this.CurrUser.LoginProjectId select x).ToList();
////单位
var pUnits = (from x in totalUnit where x.ProjectId == this.CurrUser.LoginProjectId select x).ToList();
if (!string.IsNullOrEmpty(this.txtWorkArea.Text))
{
pWorkArea = pWorkArea.Where(x => x.WorkAreaCode.Contains(this.txtWorkArea.Text.Trim())).OrderBy(x => x.WorkAreaCode).ToList();
pInstallation = (from x in pInstallation
join y in pWorkArea on x.InstallationId equals y.InstallationId
select x).Distinct().ToList();
pUnits = (from x in pUnits
join y in pWorkArea on x.UnitId equals y.UnitId
select x).Distinct().ToList();
}
this.BindNodes(null, pInstallation, pWorkArea, pUnits);
}
#endregion
#region
/// <summary>
/// 绑定树节点
/// </summary>
/// <param name="node"></param>
private void BindNodes(TreeNode node, List<Model.Project_Installation> pInstallation, List<Model.Project_WorkArea> pWorkArea, List<Model.Project_Unit> pUnits)
{
if (node == null)
{
List<Model.Project_Installation> installations = pInstallation;
var pUnit = pUnits.FirstOrDefault(x => x.UnitId == this.CurrUser.UnitId);
//if (pUnit != null && !pUnit.UnitType.Contains(Const.UnitType_2) && !pUnit.UnitType.Contains(Const.UnitType_1))
if (pUnit != null && pUnit.UnitType.Contains(Const.UnitType_5))
{
installations = (from x in pInstallation
join y in pWorkArea on x.InstallationId equals y.InstallationId
where y.UnitId == this.CurrUser.UnitId
orderby x.InstallationId
select x).Distinct().ToList();
}
foreach (var q in installations)
{
TreeNode newNode = new TreeNode();
newNode.NodeID = q.InstallationId;
newNode.Text = q.InstallationName;
newNode.ToolTip = Resources.Lan.InstallationName;
newNode.Expanded = true;
this.tvControlItem.Nodes.Add(newNode);
this.BindNodes(newNode, pInstallation, pWorkArea, pUnits);
}
}
else if (node.ToolTip == Resources.Lan.InstallationName)
{
List<Model.Project_Unit> units = null;
var pUnitDepth = pUnits.FirstOrDefault(x => x.UnitId == this.CurrUser.UnitId);
if (pUnitDepth == null || pUnitDepth.UnitType.Contains(Const.UnitType_2) || pUnitDepth.UnitType.Contains(Const.UnitType_1)
|| pUnitDepth.UnitType == BLL.Const.UnitType_3 || pUnitDepth.UnitType == BLL.Const.UnitType_4)
{
units = (from x in pUnits
join y in pWorkArea on x.UnitId equals y.UnitId
where y.InstallationId == node.NodeID && x.UnitType.Contains(Const.UnitType_5)
select x).ToList();
}
else
{
units = (from x in pUnits
join y in pWorkArea on x.UnitId equals y.UnitId
where y.InstallationId == node.NodeID && x.UnitType.Contains(Const.UnitType_5) && x.UnitId == this.CurrUser.UnitId
select x).ToList();
}
units = units.OrderBy(x => x.InTime).Distinct().ToList();
foreach (var q in units)
{
var unit = BLL.Base_UnitService.GetUnit(q.UnitId);
if (unit != null)
{
TreeNode newNode = new TreeNode();
newNode.Text = unit.UnitName;
newNode.NodeID = q.UnitId + "|" + node.NodeID;
newNode.ToolTip = Resources.Lan.CompanyName;
node.Nodes.Add(newNode);
this.BindNodes(newNode, pInstallation, pWorkArea, pUnits);
}
}
}
else if (node.ToolTip == Resources.Lan.CompanyName)
{
var workAreas = (from x in pWorkArea
where x.InstallationId == node.ParentNode.NodeID && x.UnitId == node.NodeID.Split('|')[0]
select x);
workAreas = workAreas.OrderByDescending(x => x.WorkAreaCode);
var pipelines = from x in Funs.DB.Pipeline_Pipeline select x;
foreach (var q in workAreas)
{
int a = (from x in pipelines where x.ProjectId == this.CurrUser.LoginProjectId && x.UnitId == node.NodeID.Split('|')[0] && x.WorkAreaId == q.WorkAreaId select x).Count();
TreeNode newNode = new TreeNode();
newNode.Text = q.WorkAreaCode + "【" + a.ToString() + "】" + Resources.Lan.Pipeline;
newNode.NodeID = q.WorkAreaId;
newNode.EnableClickEvent = true;
newNode.ToolTip = Resources.Lan.Area;
node.Nodes.Add(newNode);
}
}
}
#endregion
#region TreeView
/// <summary>
/// 点击TreeView
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void tvControlItem_NodeCommand(object sender, TreeCommandEventArgs e)
{
this.BindGrid();
}
#endregion
#region
/// <summary>
/// 数据绑定
/// </summary>
private void BindGrid()
{
string strSql = @"SELECT ProjectId,WorkAreaId,PipelineId,PipelineCode,UnitName,MediumCode,PipingClassCode,PIPClassCode,
SystemNumber,WorkAreaCode,WorkPackageCode,SingleNumber,SubSystemNumber,Sheet,
PipeSegment,DrawingsNum,MaterialCode,Specification,DesignTemperature,TestPressure,
DesignPressure,IfPicklingStr,DetectionRateCode,Remark,TotalDin,JointCount,IsBuilt
FROM View_Pipeline_Pipeline WHERE ProjectId= @ProjectId";
List<SqlParameter> listStr = new List<SqlParameter>();
listStr.Add(new SqlParameter("@ProjectId", this.CurrUser.LoginProjectId));
strSql += " AND WorkAreaId =@WorkAreaId";
listStr.Add(new SqlParameter("@WorkAreaId", this.tvControlItem.SelectedNodeID));
if (!string.IsNullOrEmpty(this.txtPipelineCode.Text.Trim()))
{
strSql += " AND PipelineCode LIKE @PipelineCode";
listStr.Add(new SqlParameter("@PipelineCode", "%" + this.txtPipelineCode.Text.Trim() + "%"));
}
if (!string.IsNullOrEmpty(this.txtSingleNumber.Text.Trim()))
{
strSql += " AND SingleNumber LIKE @SingleNumber";
listStr.Add(new SqlParameter("@SingleNumber", "%" + this.txtSingleNumber.Text.Trim() + "%"));
}
if (!string.IsNullOrEmpty(this.txtWorkAreaCode.Text.Trim()))
{
strSql += " AND WorkAreaCode LIKE @WorkAreaCode";
listStr.Add(new SqlParameter("@WorkAreaCode", "%" + this.txtWorkAreaCode.Text.Trim() + "%"));
}
SqlParameter[] parameter = listStr.ToArray();
DataTable tb = SQLHelper.GetDataTableRunText(strSql, parameter);
// 2.获取当前分页数据
//var table = this.GetPagedDataTable(Grid1, tb1);
Grid1.RecordCount = tb.Rows.Count;
tb = GetFilteredTable(Grid1.FilteredData, tb);
var table = this.GetPagedDataTable(Grid1, tb);
this.OutputSummaryData(tb); ///取合计值
Grid1.DataSource = table;
Grid1.DataBind();
}
#endregion
#region
/// <summary>
/// 计算合计
/// </summary>
private void OutputSummaryData(DataTable tb)
{
decimal count2 = 0;//总达因数
int count3 = 0;//总焊口数
for (int i = 0; i < tb.Rows.Count; i++)
{
count2 += Funs.GetNewDecimalOrZero(tb.Rows[i]["TotalDin"].ToString());
count3 += Funs.GetNewIntOrZero(tb.Rows[i]["JointCount"].ToString());
}
JObject summary = new JObject();
summary.Add("PipelineCode", Resources.Lan.Total);
summary.Add("TotalDin", count2);
summary.Add("JointCount", count3);
Grid1.SummaryData = summary;
}
#endregion
#region
#region
/// <summary>
/// 页索引改变事件
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void Grid1_PageIndexChange(object sender, GridPageEventArgs e)
{
Grid1.PageIndex = e.NewPageIndex;
BindGrid();
}
#endregion
#region
/// <summary>
/// 排序
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void Grid1_Sort(object sender, GridSortEventArgs e)
{
Grid1.SortDirection = e.SortDirection;
Grid1.SortField = e.SortField;
BindGrid();
}
#endregion
#region
/// <summary>
/// 分页选择下拉改变事件
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void ddlPageSize_SelectedIndexChanged(object sender, EventArgs e)
{
Grid1.PageSize = Convert.ToInt32(ddlPageSize.SelectedValue);
BindGrid();
}
#endregion
#endregion
#region 线
/// <summary>
/// Grid双击事件
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void Grid1_RowDoubleClick(object sender, GridRowClickEventArgs e)
{
if (BLL.CommonService.GetAllButtonPowerList(this.CurrUser.LoginProjectId, this.CurrUser.UserId, BLL.Const.HJGL_PipelineManageMenuId, BLL.Const.BtnModify))
{
PageContext.RegisterStartupScript(Window1.GetShowReference(String.Format("PipelineManageEdit.aspx?PipelineId={0}", Grid1.SelectedRowID, "编辑 - ")));
}
else
{
ShowNotify(Resources.Lan.NoPrivilegePrompt, MessageBoxIcon.Warning);
}
}
/// <summary>
/// 增加管线信息
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void btnNew_Click(object sender, EventArgs e)
{
if (CommonService.GetAllButtonPowerList(this.CurrUser.LoginProjectId, this.CurrUser.UserId, Const.HJGL_PipelineManageMenuId, Const.BtnAdd))
{
var workArea = BLL.Project_WorkAreaService.GetProject_WorkAreaByWorkAreaId(tvControlItem.SelectedNodeID);
if (workArea != null)
{
PageContext.RegisterStartupScript(Window1.GetShowReference(String.Format("PipelineManageEdit.aspx?workAreaId={0}", this.tvControlItem.SelectedNodeID, "新增 - ")));
}
else
{
ShowNotify(Resources.Lan.PleaseSelectAreaFirst, MessageBoxIcon.Warning);
}
}
else
{
ShowNotify(Resources.Lan.NoPrivilegePrompt, MessageBoxIcon.Warning);
}
}
/// <summary>
/// 管线信息编辑
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void btnMenuEdit_Click(object sender, EventArgs e)
{
if (BLL.CommonService.GetAllButtonPowerList(this.CurrUser.LoginProjectId, this.CurrUser.UserId, BLL.Const.HJGL_PipelineManageMenuId, BLL.Const.BtnModify))
{
if (Grid1.SelectedRowIndexArray.Length == 0)
{
Alert.ShowInTop(Resources.Lan.SelectLeastOneRecord, MessageBoxIcon.Warning);
return;
}
PageContext.RegisterStartupScript(Window1.GetShowReference(String.Format("PipelineManageEdit.aspx?PipelineId={0}", Grid1.SelectedRowID, "维护 - ")));
}
else
{
ShowNotify(Resources.Lan.NoPrivilegePrompt, MessageBoxIcon.Warning);
}
}
/// <summary>
/// 删除按钮
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void btnMenuDelete_Click(object sender, EventArgs e)
{
if (CommonService.GetAllButtonPowerList(this.CurrUser.LoginProjectId, this.CurrUser.UserId, Const.HJGL_PipelineManageMenuId, Const.BtnDelete))
{
if (Grid1.SelectedRowIndexArray.Length == 0)
{
Alert.ShowInTop(Resources.Lan.SelectLeastOneRecord, MessageBoxIcon.Warning);
return;
}
bool isShow = true;
if (Grid1.SelectedRowIndexArray.Length > 1)
{
isShow = false;
}
foreach (int rowIndex in Grid1.SelectedRowIndexArray)
{
string rowID = Grid1.DataKeys[rowIndex][0].ToString();
if (judgementDelete(rowID, isShow))
{
BLL.Pipeline_PipelineService.DeletePipeline(rowID);
BLL.Sys_LogService.AddLog(BLL.Const.System_3, this.CurrUser.LoginProjectId, this.CurrUser.UserId, Const.HJGL_PipelineManageMenuId, Const.BtnDelete, rowID);
ShowNotify(Resources.Lan.DeletedSuccessfully, MessageBoxIcon.Success);
}
}
this.BindGrid();
}
else
{
ShowNotify(Resources.Lan.NoPrivilegePrompt, MessageBoxIcon.Warning);
}
}
#endregion
/// <summary>
/// 生成点口随机数
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void btnBuildPointNo_Click(object sender, EventArgs e)
{
//if (!string.IsNullOrEmpty(Grid1.SelectedRowID))
//{
// var pipe = Funs.DB.View_Pipeline_Random.FirstOrDefault(x => x.PipelineId == Grid1.SelectedRowID);
// if (pipe != null && pipe.DetectionRateValue != null)
// {
// int totalJotNum = Convert.ToInt32(pipe.JointCount);
// int weldingJotNum = Convert.ToInt32(pipe.WeldingCount);
// int pointNum = Convert.ToInt32(pipe.PointCount);
// int minValue = weldingJotNum + 1;
// int maxValue = totalJotNum;
// int rate = Convert.ToInt32(pipe.DetectionRateValue);
// int pointTotalNum = Convert.ToInt32(Math.Ceiling((double)(totalJotNum * rate) / (double)100));
// int num = pointTotalNum - pointNum;
// if (num > 0)
// {
// int[] r = Funs.GetRandomNum(num, minValue, maxValue);
// var q = from x in r orderby x select x;
// string random = string.Empty;
// foreach (int i in q)
// {
// if (i <= maxValue)
// {
// random = random + i.ToString() + ",";
// }
// }
// if (random.Length > 0)
// {
// string randomNum = random.Substring(0, random.Length - 1);
// Pipeline_PipelineService.UpdatePipelineRandom(Grid1.SelectedRowID, randomNum);
// ShowNotify("已生成随机点口序号", MessageBoxIcon.Success);
// BLL.Sys_LogService.AddLog(BLL.Const.System_3, this.CurrUser.LoginProjectId, this.CurrUser.UserId, Const.HJGL_PointManageMenuId, "生成随机点口序号", Grid1.SelectedRowID);
// }
// }
// else
// {
// Alert.ShowInTop("按比例已达到点口数了!", MessageBoxIcon.Error);
// }
// }
// else
// {
// Alert.ShowInTop("请设置探伤比例!", MessageBoxIcon.Error);
// }
//}
//else
//{
// Alert.ShowInTop("请选择管线!", MessageBoxIcon.Error);
//}
}
#region
/// <summary>
/// 关闭弹出窗口
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void Window1_Close(object sender, WindowCloseEventArgs e)
{
this.BindGrid();
}
/// <summary>
/// 查询
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void TextBox_TextChanged(object sender, EventArgs e)
{
this.BindGrid();
}
/// <summary>
/// 查询
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void Tree_TextChanged(object sender, EventArgs e)
{
this.InitTreeMenu();
this.BindGrid();
}
#endregion
#region
/// <summary>
/// 判断是否可以删除
/// </summary>
/// <returns></returns>
private bool judgementDelete(string id, bool isShow)
{
string content = string.Empty;
string jotInfo = string.Empty;
var q = from x in Funs.DB.Pipeline_WeldJoint where x.PipelineId == id && x.WeldingDailyId != null select x;
if (q.Count() > 0)
{
foreach (var item in q)
{
jotInfo += Resources.Lan.WeldingJointNumber + "" + item.WeldJointCode;
var dr = Funs.DB.Pipeline_WeldingDaily.FirstOrDefault(x => x.WeldingDailyId == item.WeldingDailyId);
if (dr != null)
{
jotInfo += "" + Resources.Lan.DailyWeldingReportNumber + ":" + dr.WeldingDailyCode;
}
}
content = Resources.Lan.WeldingJointOfThePipeline + ":" + jotInfo;
}
if (string.IsNullOrEmpty(content))
{
return true;
}
else
{
if (isShow)
{
Alert.ShowInTop(content, MessageBoxIcon.Error);
}
return false;
}
}
#endregion
#region
/// <summary>
/// 选择显示列
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void btnSelectColumn_Click(object sender, EventArgs e)
{
PageContext.RegisterStartupScript(Window2.GetShowReference(String.Format("PipelineShowColumn.aspx", "显示列 - ")));
}
#endregion
protected void Window2_Close(object sender, WindowCloseEventArgs e)
{
this.BindGrid();
//显示列
Model.Sys_UserShowColumns c = BLL.UserShowColumnsService.GetColumnsByUserId(this.CurrUser.UserId, "Pipeline");
if (c != null)
{
this.GetShowColumn(c.Columns);
}
}
#region
/// <summary>
/// 显示的列
/// </summary>
/// <param name="column"></param>
private void GetShowColumn(string column)
{
if (!string.IsNullOrEmpty(column))
{
this.Grid1.Columns[1].Hidden = true;
this.Grid1.Columns[2].Hidden = true;
this.Grid1.Columns[3].Hidden = true;
this.Grid1.Columns[4].Hidden = true;
this.Grid1.Columns[5].Hidden = true;
this.Grid1.Columns[6].Hidden = true;
this.Grid1.Columns[7].Hidden = true;
this.Grid1.Columns[8].Hidden = true;
this.Grid1.Columns[9].Hidden = true;
this.Grid1.Columns[10].Hidden = true;
this.Grid1.Columns[11].Hidden = true;
this.Grid1.Columns[12].Hidden = true;
this.Grid1.Columns[13].Hidden = true;
this.Grid1.Columns[14].Hidden = true;
this.Grid1.Columns[15].Hidden = true;
this.Grid1.Columns[16].Hidden = true;
this.Grid1.Columns[17].Hidden = true;
this.Grid1.Columns[18].Hidden = true;
this.Grid1.Columns[19].Hidden = true;
this.Grid1.Columns[20].Hidden = true;
this.Grid1.Columns[21].Hidden = true;
this.Grid1.Columns[22].Hidden = true;
List<string> columns = column.Split(',').ToList();
foreach (var item in columns)
{
this.Grid1.Columns[Convert.ToInt32(item)].Hidden = false;
}
}
}
#endregion
#region
/// <summary>
/// 模板下载
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void btnDownLoad_Click(object sender, EventArgs e)
{
string rootPath = Server.MapPath("~/");
string uploadfilepath = rootPath + Const.HJGL_DataInTemplateUrl;
string filePath = Const.HJGL_DataInTemplateUrl;
string fileName = Path.GetFileName(filePath);
FileInfo info = new FileInfo(uploadfilepath);
long fileSize = info.Length;
Response.ClearContent();
Response.AddHeader("Content-Disposition", "attachment;filename=" + System.Web.HttpUtility.UrlEncode(fileName, System.Text.Encoding.UTF8));
Response.ContentType = "excel/plain";
Response.ContentEncoding = System.Text.Encoding.UTF8;
Response.AddHeader("Content-Length", fileSize.ToString().Trim());
Response.TransmitFile(uploadfilepath, 0, fileSize);
Response.End();
//PageContext.RegisterStartupScript(Confirm.GetShowReference("确定要下载焊工信息导入模板?", String.Empty, MessageBoxIcon.Question, PageManager1.GetCustomEventReference(false, "Confirm_OK"), PageManager1.GetCustomEventReference("Confirm_Cancel")));
}
#endregion
protected void btnImport_Click(object sender, EventArgs e)
{
string message = string.Empty;
errorInfos = string.Empty;
try
{
if (this.fileUpload.HasFile == false)
{
ShowNotify("请选择Excel文件!", MessageBoxIcon.Warning);
return;
}
string IsXls = Path.GetExtension(this.fileUpload.FileName).ToString().Trim().ToLower();
if (IsXls != ".xls" && IsXls != ".xlsx")
{
ShowNotify("只能选择Excel文件!", MessageBoxIcon.Warning);
return;
}
string rootPath = Server.MapPath("~/");
string initFullPath = rootPath + initPath;
if (!Directory.Exists(initFullPath))
{
Directory.CreateDirectory(initFullPath);
}
//指定上传文件名称
this.hidFileName.Text = BLL.Funs.GetNewFileName() + IsXls;
//上传文件路径
string filePath = initFullPath + this.hidFileName.Text;
//文件上传服务器
this.fileUpload.PostedFile.SaveAs(filePath);
//文件上传服务器后的名称
string fileName = rootPath + initPath + this.hidFileName.Text;
//读取Excel
DataSet ds = NPOIHelper.ExcelToDataSet(fileName, out errorInfos, true);
//验证Excel读取是否有误
if (!string.IsNullOrEmpty(errorInfos))
{
ShowNotify(errorInfos, MessageBoxIcon.Warning);
return;
}
if (ds.Tables.Count > 0)
{
var units = from x in Funs.DB.Base_Unit
join y in Funs.DB.Project_Unit on x.UnitId equals y.UnitId
where y.ProjectId == this.CurrUser.LoginProjectId
select x;//单位
var workAreas = from x in Funs.DB.Project_WorkArea where x.ProjectId == this.CurrUser.LoginProjectId select x;//区域
var materials = from x in Funs.DB.Base_Material select x;//材质
var mediums = from x in Funs.DB.Base_Medium select x;//介质
var pipelineClasss = from x in Funs.DB.Base_PipingClass select x;//管道等级
var weldTypes = from x in Funs.DB.Base_WeldType select x;//焊缝类型
var weldingMethods = from x in Funs.DB.Base_WeldingMethod select x;//焊接方法
var grooveTypes = from x in Funs.DB.Base_GrooveType select x;//坡口类型
var componentss = from x in Funs.DB.Base_Components select x;//安装组件
var consumabless = from x in Funs.DB.Base_Consumables select x;//焊接耗材(焊丝、焊条)
var weldingLocation = from x in Funs.DB.Base_WeldingLocation select x; //焊接位置
var ndtRate = from x in Funs.DB.Base_DetectionRate select x;
List<Model.Pipeline_Pipeline> pipelineList = new List<Model.Pipeline_Pipeline>();
List<Model.Pipeline_WeldJoint> weldJointList = new List<Model.Pipeline_WeldJoint>();
List<Model.Pipeline_Pipeline> updatePipelineList = new List<Model.Pipeline_Pipeline>();
List<Model.Pipeline_WeldJoint> updateWeldJointList = new List<Model.Pipeline_WeldJoint>();
DataTable dt = ds.Tables[0];
for (int i = 0; i < ds.Tables[0].Rows.Count; i++)
{
var isExitJoint = Funs.DB.View_WeldJointAndPipeline.FirstOrDefault(x => x.ProjectId == this.CurrUser.LoginProjectId
&& x.UnitCode == ds.Tables[0].Rows[i]["单位代码"].ToString().Trim()
&& x.WorkAreaCode == ds.Tables[0].Rows[i]["区域编号"].ToString().Trim()
&& x.PipelineCode == ds.Tables[0].Rows[i]["管线号"].ToString().Trim()
&& x.WeldJointCode == ds.Tables[0].Rows[i]["焊口号"].ToString().Trim());
string error = string.Empty;
#region
if (isExitJoint == null)
{
Model.Pipeline_Pipeline pipeline = new Model.Pipeline_Pipeline();
Model.Pipeline_WeldJoint weldJoint = new Model.Pipeline_WeldJoint();
if (ds.Tables[0].Rows[i]["单位代码"] != null && !string.IsNullOrEmpty(ds.Tables[0].Rows[i]["单位代码"].ToString()))
{
var unit = units.FirstOrDefault(x => x.UnitCode == ds.Tables[0].Rows[i]["单位代码"].ToString().Trim());
if (unit == null)
{
error += "单位代码不存在!";
}
else
{
pipeline.UnitId = unit.UnitId;
}
}
else
{
error += "单位代码不能为空!";
}
if (ds.Tables[0].Rows[i]["区域编号"] != null && !string.IsNullOrEmpty(ds.Tables[0].Rows[i]["区域编号"].ToString()))
{
var area = workAreas.FirstOrDefault(x => x.WorkAreaCode == ds.Tables[0].Rows[i]["区域编号"].ToString().Trim());
if (area == null)
{
error += "区域编号不存在!";
}
else
{
pipeline.WorkAreaId = area.WorkAreaId;
pipeline.InstallationId = area.InstallationId;
}
}
else
{
error += "区域编号不能为空!";
}
string pipelineId = string.Empty;
if (ds.Tables[0].Rows[i]["管线号"] != null && !string.IsNullOrEmpty(ds.Tables[0].Rows[i]["管线号"].ToString()))
{
var isExitPipeline = Funs.DB.View_WeldJointAndPipeline.FirstOrDefault(x => x.ProjectId == this.CurrUser.LoginProjectId
&& x.UnitCode == ds.Tables[0].Rows[i]["单位代码"].ToString().Trim()
&& x.WorkAreaCode == ds.Tables[0].Rows[i]["区域编号"].ToString().Trim()
&& x.PipelineCode == ds.Tables[0].Rows[i]["管线号"].ToString().Trim());
if (isExitPipeline == null)
{
var cc = from x in pipelineList where x.PipelineCode== ds.Tables[0].Rows[i]["管线号"].ToString().Trim() select x;
if (cc.Count() == 0)
{
pipelineId = SQLHelper.GetNewID(typeof(Model.Pipeline_Pipeline));
pipeline.PipelineId = pipelineId;
pipeline.PipelineCode = ds.Tables[0].Rows[i]["管线号"].ToString();
}
else
{
pipeline.PipelineId = "";
pipelineId = cc.First().PipelineId;
}
}
else
{
pipeline.PipelineId = "";
pipelineId = isExitPipeline.PipelineId;
}
}
else
{
error += "管线号不能为空!";
}
if (ds.Tables[0].Rows[i]["焊口号"] != null && !string.IsNullOrEmpty(ds.Tables[0].Rows[i]["焊口号"].ToString()))
{
weldJoint.PipelineId = pipelineId;
weldJoint.WeldJointId = SQLHelper.GetNewID(typeof(Model.Pipeline_WeldJoint));
weldJoint.WeldJointCode = ds.Tables[0].Rows[i]["焊口号"].ToString();
}
else
{
error += "焊口号不能为空!";
}
if (ds.Tables[0].Rows[i]["材质1"] != null && !string.IsNullOrEmpty(ds.Tables[0].Rows[i]["材质1"].ToString()))
{
var steel = materials.FirstOrDefault(x => x.MaterialCode == ds.Tables[0].Rows[i]["材质1"].ToString().Trim());
if (steel == null)
{
error += "材质1不存在";
}
else
{
pipeline.MainMaterialId = steel.MaterialId;
weldJoint.Material1Id = steel.MaterialId;
}
}
else
{
error += "材质1不能为空";
}
if (ds.Tables[0].Rows[i]["材质2"] != null && !string.IsNullOrEmpty(ds.Tables[0].Rows[i]["材质2"].ToString()))
{
var steel = materials.FirstOrDefault(x => x.MaterialCode == ds.Tables[0].Rows[i]["材质2"].ToString().Trim());
if (steel == null)
{
error += "材质2不存在";
}
else
{
weldJoint.Material2Id = steel.MaterialId;
}
}
if (ds.Tables[0].Rows[i]["管道等级"] != null && !string.IsNullOrEmpty(ds.Tables[0].Rows[i]["管道等级"].ToString()))
{
var pipelineClass = pipelineClasss.FirstOrDefault(x => x.PipingClassCode == ds.Tables[0].Rows[i]["管道等级"].ToString().Trim());
if (pipelineClass == null)
{
error += "管道等级不存在!";
}
else
{
pipeline.PipingClassId = pipelineClass.PipingClassId;
weldJoint.PipingClassId = pipelineClass.PipingClassId;
}
}
else
{
error += "管道等级不能为空!";
}
if (ds.Tables[0].Rows[i]["介质代号"] != null && !string.IsNullOrEmpty(ds.Tables[0].Rows[i]["介质代号"].ToString()))
{
var medium = mediums.FirstOrDefault(x => x.MediumCode == ds.Tables[0].Rows[i]["介质代号"].ToString().Trim());
if (medium == null)
{
error += "介质代号不存在!";
}
else
{
pipeline.MediumId = medium.MediumId;
}
}
else
{
error += "介质代号不能为空!";
}
pipeline.Specification = ds.Tables[0].Rows[i]["管线规格"].ToString().Trim();
pipeline.SingleNumber = ds.Tables[0].Rows[i]["单线图号"].ToString().Trim();
pipeline.WorkPackageCode = ds.Tables[0].Rows[i]["工作包号"].ToString().Trim();
pipeline.SystemNumber = ds.Tables[0].Rows[i]["系统号"].ToString();
pipeline.SubSystemNumber = ds.Tables[0].Rows[i]["分系统号"].ToString().Trim();
if (!string.IsNullOrEmpty(ds.Tables[0].Rows[i]["总管段数"].ToString().Trim()))
{
try
{
int pipeSegment = Convert.ToInt32(ds.Tables[0].Rows[i]["总管段数"].ToString());
pipeline.PipeSegment = pipeSegment;
}
catch (Exception)
{
error += "总管段数为整数型!";
}
}
pipeline.Sheet = ds.Tables[0].Rows[i]["页数"].ToString().Trim();
pipeline.DrawingsNum = ds.Tables[0].Rows[i]["图纸版次"].ToString().Trim();
pipeline.DesignTemperature = ds.Tables[0].Rows[i]["设计温度"].ToString().Trim();
pipeline.TestPressure = ds.Tables[0].Rows[i]["试验压力"].ToString().Trim();
pipeline.DesignPressure = ds.Tables[0].Rows[i]["设计压力"].ToString().Trim();
if (ds.Tables[0].Rows[i]["焊缝类型"] != null && !string.IsNullOrEmpty(ds.Tables[0].Rows[i]["焊缝类型"].ToString()))
{
var weldType = weldTypes.FirstOrDefault(x => x.WeldTypeCode == ds.Tables[0].Rows[i]["焊缝类型"].ToString().Trim());
if (weldType == null)
{
error += "焊缝类型不存在!";
}
else
{
weldJoint.WeldTypeId = weldType.WeldTypeId;
}
}
else
{
error += "焊缝类型不能为空!";
}
if (ds.Tables[0].Rows[i]["寸径"] != null && !string.IsNullOrEmpty(ds.Tables[0].Rows[i]["寸径"].ToString()))
{
try
{
decimal size = Convert.ToDecimal(ds.Tables[0].Rows[i]["寸径"].ToString().Trim());
weldJoint.Size = size;
}
catch (Exception)
{
error += "寸径为数字型!";
}
}
else
{
error += "寸径不能为空!";
}
string weldDia = string.Empty;
if (ds.Tables[0].Rows[i]["外径"] != null && !string.IsNullOrEmpty(ds.Tables[0].Rows[i]["外径"].ToString()))
{
try
{
decimal dia = Convert.ToDecimal(ds.Tables[0].Rows[i]["外径"].ToString().Trim());
weldJoint.Dia = dia;
weldDia = dia.ToString();
}
catch (Exception)
{
error += "外径为数字型!";
}
}
else
{
error += "外径不能为空!";
}
string weldThickness = string.Empty;
if (ds.Tables[0].Rows[i]["壁厚"] != null && !string.IsNullOrEmpty(ds.Tables[0].Rows[i]["壁厚"].ToString()))
{
try
{
decimal thickness = Convert.ToDecimal(ds.Tables[0].Rows[i]["壁厚"].ToString().Trim());
weldJoint.Thickness = thickness;
weldThickness = thickness.ToString();
}
catch (Exception)
{
error += "壁厚为数字型!";
}
}
else
{
error += "壁厚不能为空!";
}
if (ds.Tables[0].Rows[i]["焊接方法"] != null && !string.IsNullOrEmpty(ds.Tables[0].Rows[i]["焊接方法"].ToString()))
{
var weldMethod = weldingMethods.FirstOrDefault(x => x.WeldingMethodCode == ds.Tables[0].Rows[i]["焊接方法"].ToString().Trim());
if (weldMethod == null)
{
error += "焊接方法不存在!";
}
else
{
weldJoint.WeldingMethodId = weldMethod.WeldingMethodId;
}
}
else
{
error += "焊接方法不能为空!";
}
weldJoint.HeartNo1 = ds.Tables[0].Rows[i]["炉批号1"].ToString();
weldJoint.HeartNo2 = ds.Tables[0].Rows[i]["炉批号2"].ToString();
if (ds.Tables[0].Rows[i]["坡口类型"] != null && !string.IsNullOrEmpty(ds.Tables[0].Rows[i]["坡口类型"].ToString()))
{
var grooveType = grooveTypes.FirstOrDefault(x => x.GrooveTypeCode == ds.Tables[0].Rows[i]["坡口类型"].ToString().Trim());
if (grooveType == null)
{
error += "坡口类型不存在!";
}
else
{
weldJoint.GrooveTypeId = grooveType.GrooveTypeId;
}
}
else
{
error += "坡口类型不能为空!";
}
if (ds.Tables[0].Rows[i]["焊口属性活动S、固定F"] != null && !string.IsNullOrEmpty(ds.Tables[0].Rows[i]["焊口属性活动S、固定F"].ToString()))
{
if (ds.Tables[0].Rows[i]["焊口属性活动S、固定F"].ToString().Trim() != "S" && ds.Tables[0].Rows[i]["焊口属性活动S、固定F"].ToString().Trim() != "F")
{
error += "焊口属性值为S或F";
}
else
{
if (ds.Tables[0].Rows[i]["焊口属性活动S、固定F"].ToString() == "S")
{
weldJoint.JointAttribute = "活动S";
weldJoint.JointArea = "S";
}
else
{
weldJoint.JointAttribute = "固定F";
weldJoint.JointArea = "F";
}
}
}
else
{
error += "焊口属性不能为空!";
}
if (ds.Tables[0].Rows[i]["组件1号"] != null && !string.IsNullOrEmpty(ds.Tables[0].Rows[i]["组件1号"].ToString()))
{
var com = componentss.FirstOrDefault(x => x.ComponentsCode == ds.Tables[0].Rows[i]["组件1号"].ToString().Trim());
if (com == null)
{
error += "组件1号不存在";
}
else
{
weldJoint.PipeAssembly1Id = com.ComponentsId;
}
}
if (ds.Tables[0].Rows[i]["组件2号"] != null && !string.IsNullOrEmpty(ds.Tables[0].Rows[i]["组件2号"].ToString()))
{
var com = componentss.FirstOrDefault(x => x.ComponentsCode == ds.Tables[0].Rows[i]["组件2号"].ToString().Trim());
if (com == null)
{
error += "组件2号不存在";
}
else
{
weldJoint.PipeAssembly2Id = com.ComponentsId;
}
}
if (ds.Tables[0].Rows[i]["焊丝"] != null && !string.IsNullOrEmpty(ds.Tables[0].Rows[i]["焊丝"].ToString()))
{
var weldSilk = consumabless.FirstOrDefault(x => x.ConsumablesCode == ds.Tables[0].Rows[i]["焊丝"].ToString().Trim() && x.ConsumablesType == "1");
if (weldSilk == null)
{
error += "焊丝不存在!";
}
else
{
weldJoint.WeldSilkId = weldSilk.ConsumablesId;
}
}
if (ds.Tables[0].Rows[i]["焊条"] != null && !string.IsNullOrEmpty(ds.Tables[0].Rows[i]["焊条"].ToString()))
{
var weldMat = consumabless.FirstOrDefault(x => x.ConsumablesCode == ds.Tables[0].Rows[i]["焊条"].ToString().Trim() && x.ConsumablesType == "2");
if (weldMat == null)
{
error += "焊条不存在!";
}
else
{
weldJoint.WeldMatId = weldMat.ConsumablesId;
}
}
if (ds.Tables[0].Rows[i]["是否热处理(是、否)"] != null && !string.IsNullOrEmpty(ds.Tables[0].Rows[i]["是否热处理(是、否)"].ToString()))
{
if (ds.Tables[0].Rows[i]["是否热处理(是、否)"].ToString() == "是")
{
weldJoint.IsHotProess = true;
}
else if (ds.Tables[0].Rows[i]["是否热处理(是、否)"].ToString() == "否")
{
weldJoint.IsHotProess = false;
}
}
if (ds.Tables[0].Rows[i]["是否酸洗(是、否)"] != null && !string.IsNullOrEmpty(ds.Tables[0].Rows[i]["是否酸洗(是、否)"].ToString()))
{
if (ds.Tables[0].Rows[i]["是否酸洗(是、否)"].ToString() == "是")
{
pipeline.IfPickling = true;
}
else if (ds.Tables[0].Rows[i]["是否酸洗(是、否)"].ToString() == "否")
{
pipeline.IfPickling = false;
}
}
if (ds.Tables[0].Rows[i]["焊接位置"] != null && !string.IsNullOrEmpty(ds.Tables[0].Rows[i]["焊接位置"].ToString()))
{
var loc = weldingLocation.FirstOrDefault(x => x.WeldingLocationCode == ds.Tables[0].Rows[i]["焊接位置"].ToString().Trim());
if (loc == null)
{
error += "焊接位置不存在!";
}
else
{
weldJoint.WeldingLocationId = loc.WeldingLocationId;
}
}
if (ds.Tables[0].Rows[i]["检测比例"] != null && !string.IsNullOrEmpty(ds.Tables[0].Rows[i]["检测比例"].ToString()))
{
var rate = ndtRate.FirstOrDefault(x => x.DetectionRateCode == ds.Tables[0].Rows[i]["检测比例"].ToString().Trim());
if (rate == null)
{
error += "检测比例不存在!";
}
else
{
pipeline.DetectionRateId = rate.DetectionRateId;
}
}
else
{
error += "检测比例不能为空!";
}
if (!string.IsNullOrEmpty(weldDia) && !string.IsNullOrEmpty(weldThickness))
{
weldJoint.Specification = "Φ" + weldDia + "*" + weldThickness;
}
pipeline.ProjectId = this.CurrUser.LoginProjectId;
weldJoint.ProjectId = this.CurrUser.LoginProjectId;
if (!string.IsNullOrEmpty(error))
{
errorInfos += "第" + (i + 2) + "行:" + error + " </br>";
}
pipelineList.Add(pipeline);
weldJointList.Add(weldJoint);
}
#endregion
#region
if (isExitJoint != null)
{
Model.Pipeline_Pipeline updatePipeline = new Model.Pipeline_Pipeline();
Model.Pipeline_WeldJoint updateWeldJoint = new Model.Pipeline_WeldJoint();
if (isExitJoint.WeldingDailyId != null)
{
error += "已焊接,不能更新!";
}
if (ds.Tables[0].Rows[i]["单位代码"] != null && !string.IsNullOrEmpty(ds.Tables[0].Rows[i]["单位代码"].ToString()))
{
var unit = units.FirstOrDefault(x => x.UnitCode == ds.Tables[0].Rows[i]["单位代码"].ToString().Trim());
if (unit == null)
{
error += "单位代码不存在!";
}
else
{
updatePipeline.UnitId = unit.UnitId;
}
}
else
{
error += "单位代码不能为空!";
}
if (ds.Tables[0].Rows[i]["区域编号"] != null && !string.IsNullOrEmpty(ds.Tables[0].Rows[i]["区域编号"].ToString()))
{
var area = workAreas.FirstOrDefault(x => x.WorkAreaCode == ds.Tables[0].Rows[i]["区域编号"].ToString().Trim());
if (area == null)
{
error += "区域编号不存在!";
}
else
{
updatePipeline.WorkAreaId = area.WorkAreaId;
updatePipeline.InstallationId = area.InstallationId;
}
}
else
{
error += "区域编号不能为空!";
}
if (ds.Tables[0].Rows[i]["管线号"] != null && !string.IsNullOrEmpty(ds.Tables[0].Rows[i]["管线号"].ToString()))
{
var isExitPipeline = Funs.DB.View_WeldJointAndPipeline.FirstOrDefault(x => x.ProjectId == this.CurrUser.LoginProjectId
&& x.UnitCode == ds.Tables[0].Rows[i]["单位代码"].ToString().Trim()
&& x.WorkAreaCode == ds.Tables[0].Rows[i]["区域编号"].ToString().Trim()
&& x.PipelineCode == ds.Tables[0].Rows[i]["管线号"].ToString().Trim());
updatePipeline.PipelineId = isExitPipeline.PipelineId;
updatePipeline.PipelineCode = ds.Tables[0].Rows[i]["管线号"].ToString();
}
else
{
error += "管线号不能为空!";
}
if (ds.Tables[0].Rows[i]["焊口号"] != null && !string.IsNullOrEmpty(ds.Tables[0].Rows[i]["焊口号"].ToString()))
{
updateWeldJoint.PipelineId = updatePipeline.PipelineId;
updateWeldJoint.WeldJointCode = ds.Tables[0].Rows[i]["焊口号"].ToString().Trim();
}
else
{
error += "焊口号不能为空!";
}
if (ds.Tables[0].Rows[i]["材质1"] != null && !string.IsNullOrEmpty(ds.Tables[0].Rows[i]["材质1"].ToString()))
{
var steel = materials.FirstOrDefault(x => x.MaterialCode == ds.Tables[0].Rows[i]["材质1"].ToString().Trim());
if (steel == null)
{
error += "材质1不存在";
}
else
{
updatePipeline.MainMaterialId = steel.MaterialId;
updateWeldJoint.Material1Id = steel.MaterialId;
}
}
else
{
error += "材质1不能为空";
}
if (ds.Tables[0].Rows[i]["材质2"] != null && !string.IsNullOrEmpty(ds.Tables[0].Rows[i]["材质2"].ToString()))
{
var steel = materials.FirstOrDefault(x => x.MaterialCode == ds.Tables[0].Rows[i]["材质2"].ToString().Trim());
if (steel == null)
{
error += "材质2不存在";
}
else
{
updateWeldJoint.Material2Id = steel.MaterialId;
}
}
if (ds.Tables[0].Rows[i]["管道等级"] != null && !string.IsNullOrEmpty(ds.Tables[0].Rows[i]["管道等级"].ToString()))
{
var pipelineClass = pipelineClasss.FirstOrDefault(x => x.PipingClassCode == ds.Tables[0].Rows[i]["管道等级"].ToString().Trim());
if (pipelineClass == null)
{
error += "管道等级不存在!";
}
else
{
updatePipeline.PipingClassId = pipelineClass.PipingClassId;
updateWeldJoint.PipingClassId = pipelineClass.PipingClassId;
}
}
else
{
error += "管道等级不能为空!";
}
if (ds.Tables[0].Rows[i]["介质代号"] != null && !string.IsNullOrEmpty(ds.Tables[0].Rows[i]["介质代号"].ToString()))
{
var medium = mediums.FirstOrDefault(x => x.MediumCode == ds.Tables[0].Rows[i]["介质代号"].ToString().Trim());
if (medium == null)
{
error += "介质代号不存在!";
}
else
{
updatePipeline.MediumId = medium.MediumId;
}
}
else
{
error += "介质代号不能为空!";
}
updatePipeline.Specification = ds.Tables[0].Rows[i]["管线规格"].ToString().Trim();
updatePipeline.SingleNumber = ds.Tables[0].Rows[i]["单线图号"].ToString().Trim();
updatePipeline.WorkPackageCode = ds.Tables[0].Rows[i]["工作包号"].ToString().Trim();
updatePipeline.SystemNumber = ds.Tables[0].Rows[i]["系统号"].ToString().Trim();
updatePipeline.SubSystemNumber = ds.Tables[0].Rows[i]["分系统号"].ToString().Trim();
if (!string.IsNullOrEmpty(ds.Tables[0].Rows[i]["总管段数"].ToString().Trim()))
{
try
{
int pipeSegment = Convert.ToInt32(ds.Tables[0].Rows[i]["总管段数"].ToString().Trim());
updatePipeline.PipeSegment = pipeSegment;
}
catch (Exception)
{
error += "总管段数为整数型!";
}
}
updatePipeline.Sheet = ds.Tables[0].Rows[i]["页数"].ToString().Trim();
updatePipeline.DrawingsNum = ds.Tables[0].Rows[i]["图纸版次"].ToString().Trim();
updatePipeline.DesignTemperature = ds.Tables[0].Rows[i]["设计温度"].ToString().Trim();
updatePipeline.TestPressure = ds.Tables[0].Rows[i]["试验压力"].ToString().Trim();
updatePipeline.DesignPressure = ds.Tables[0].Rows[i]["设计压力"].ToString().Trim();
if (ds.Tables[0].Rows[i]["焊缝类型"] != null && !string.IsNullOrEmpty(ds.Tables[0].Rows[i]["焊缝类型"].ToString()))
{
var weldType = weldTypes.FirstOrDefault(x => x.WeldTypeCode == ds.Tables[0].Rows[i]["焊缝类型"].ToString().Trim());
if (weldType == null)
{
error += "焊缝类型不存在!";
}
else
{
updateWeldJoint.WeldTypeId = weldType.WeldTypeId;
}
}
else
{
error += "焊缝类型不能为空!";
}
if (ds.Tables[0].Rows[i]["寸径"] != null && !string.IsNullOrEmpty(ds.Tables[0].Rows[i]["寸径"].ToString()))
{
try
{
decimal size = Convert.ToDecimal(ds.Tables[0].Rows[i]["寸径"].ToString().Trim());
updateWeldJoint.Size = size;
}
catch (Exception)
{
error += "寸径为数字型!";
}
}
else
{
error += "寸径不能为空!";
}
string weldDia = string.Empty;
if (ds.Tables[0].Rows[i]["外径"] != null && !string.IsNullOrEmpty(ds.Tables[0].Rows[i]["外径"].ToString()))
{
try
{
decimal dia = Convert.ToDecimal(ds.Tables[0].Rows[i]["外径"].ToString().Trim());
updateWeldJoint.Dia = dia;
weldDia = dia.ToString();
}
catch (Exception)
{
error += "外径为数字型!";
}
}
else
{
error += "外径不能为空!";
}
string weldThickness = string.Empty;
if (ds.Tables[0].Rows[i]["壁厚"] != null && !string.IsNullOrEmpty(ds.Tables[0].Rows[i]["壁厚"].ToString()))
{
try
{
decimal thickness = Convert.ToDecimal(ds.Tables[0].Rows[i]["壁厚"].ToString().Trim());
updateWeldJoint.Thickness = thickness;
weldThickness = thickness.ToString();
}
catch (Exception)
{
error += "壁厚为数字型!";
}
}
else
{
error += "壁厚不能为空!";
}
if (ds.Tables[0].Rows[i]["焊接方法"] != null && !string.IsNullOrEmpty(ds.Tables[0].Rows[i]["焊接方法"].ToString()))
{
var weldMethod = weldingMethods.FirstOrDefault(x => x.WeldingMethodCode == ds.Tables[0].Rows[i]["焊接方法"].ToString().Trim());
if (weldMethod == null)
{
error += "焊接方法不存在!";
}
else
{
updateWeldJoint.WeldingMethodId = weldMethod.WeldingMethodId;
}
}
else
{
error += "焊接方法不能为空!";
}
updateWeldJoint.HeartNo1 = ds.Tables[0].Rows[i]["炉批号1"].ToString();
updateWeldJoint.HeartNo2 = ds.Tables[0].Rows[i]["炉批号2"].ToString();
if (ds.Tables[0].Rows[i]["坡口类型"] != null && !string.IsNullOrEmpty(ds.Tables[0].Rows[i]["坡口类型"].ToString().Trim()))
{
var grooveType = grooveTypes.FirstOrDefault(x => x.GrooveTypeCode == ds.Tables[0].Rows[i]["坡口类型"].ToString().Trim());
if (grooveType == null)
{
error += "坡口类型不存在!";
}
else
{
updateWeldJoint.GrooveTypeId = grooveType.GrooveTypeId;
}
}
else
{
error += "坡口类型不能为空!";
}
if (ds.Tables[0].Rows[i]["焊口属性活动S、固定F"] != null && !string.IsNullOrEmpty(ds.Tables[0].Rows[i]["焊口属性活动S、固定F"].ToString()))
{
if (ds.Tables[0].Rows[i]["焊口属性活动S、固定F"].ToString() != "S" && ds.Tables[0].Rows[i]["焊口属性活动S、固定F"].ToString() != "F")
{
error += "焊口属性值为S或F";
}
else
{
if (ds.Tables[0].Rows[i]["焊口属性活动S、固定F"].ToString() == "S")
{
updateWeldJoint.JointAttribute = "活动S";
updateWeldJoint.JointArea = "S";
}
else
{
updateWeldJoint.JointAttribute = "固定F";
updateWeldJoint.JointArea = "F";
}
}
}
else
{
error += "焊口属性不能为空!";
}
if (ds.Tables[0].Rows[i]["组件1号"] != null && !string.IsNullOrEmpty(ds.Tables[0].Rows[i]["组件1号"].ToString()))
{
var com = componentss.FirstOrDefault(x => x.ComponentsCode == ds.Tables[0].Rows[i]["组件1号"].ToString());
if (com == null)
{
error += "组件1号不存在";
}
else
{
updateWeldJoint.PipeAssembly1Id = com.ComponentsId;
}
}
if (ds.Tables[0].Rows[i]["组件2号"] != null && !string.IsNullOrEmpty(ds.Tables[0].Rows[i]["组件2号"].ToString()))
{
var com = componentss.FirstOrDefault(x => x.ComponentsCode == ds.Tables[0].Rows[i]["组件2号"].ToString());
if (com == null)
{
error += "组件2号不存在";
}
else
{
updateWeldJoint.PipeAssembly2Id = com.ComponentsId;
}
}
if (ds.Tables[0].Rows[i]["焊丝"] != null && !string.IsNullOrEmpty(ds.Tables[0].Rows[i]["焊丝"].ToString()))
{
var weldSilk = consumabless.FirstOrDefault(x => x.ConsumablesCode == ds.Tables[0].Rows[i]["焊丝"].ToString() && x.ConsumablesType == "1");
if (weldSilk == null)
{
error += "焊丝不存在!";
}
else
{
updateWeldJoint.WeldSilkId = weldSilk.ConsumablesId;
}
}
if (ds.Tables[0].Rows[i]["焊条"] != null && !string.IsNullOrEmpty(ds.Tables[0].Rows[i]["焊条"].ToString()))
{
var weldMat = consumabless.FirstOrDefault(x => x.ConsumablesCode == ds.Tables[0].Rows[i]["焊条"].ToString() && x.ConsumablesType == "2");
if (weldMat == null)
{
error += "焊条不存在!";
}
else
{
updateWeldJoint.WeldMatId = weldMat.ConsumablesId;
}
}
if (ds.Tables[0].Rows[i]["是否热处理(是、否)"] != null && !string.IsNullOrEmpty(ds.Tables[0].Rows[i]["是否热处理(是、否)"].ToString()))
{
if (ds.Tables[0].Rows[i]["是否热处理(是、否)"].ToString() == "是")
{
updateWeldJoint.IsHotProess = true;
}
else if (ds.Tables[0].Rows[i]["是否热处理(是、否)"].ToString() == "否")
{
updateWeldJoint.IsHotProess = false;
}
}
if (ds.Tables[0].Rows[i]["是否酸洗(是、否)"] != null && !string.IsNullOrEmpty(ds.Tables[0].Rows[i]["是否酸洗(是、否)"].ToString()))
{
if (ds.Tables[0].Rows[i]["是否酸洗(是、否)"].ToString() == "是")
{
updatePipeline.IfPickling = true;
}
else if (ds.Tables[0].Rows[i]["是否酸洗(是、否)"].ToString() == "否")
{
updatePipeline.IfPickling = false;
}
}
if (ds.Tables[0].Rows[i]["焊接位置"] != null && !string.IsNullOrEmpty(ds.Tables[0].Rows[i]["焊接位置"].ToString()))
{
var loc = weldingLocation.FirstOrDefault(x => x.WeldingLocationCode == ds.Tables[0].Rows[i]["焊接位置"].ToString().Trim());
if (loc == null)
{
error += "焊接位置不存在!";
}
else
{
updateWeldJoint.WeldingLocationId = loc.WeldingLocationId;
}
}
if (ds.Tables[0].Rows[i]["检测比例"] != null && !string.IsNullOrEmpty(ds.Tables[0].Rows[i]["检测比例"].ToString()))
{
var rate = ndtRate.FirstOrDefault(x => x.DetectionRateCode == ds.Tables[0].Rows[i]["检测比例"].ToString().Trim());
if (rate == null)
{
error += "检测比例不存在!";
}
else
{
updatePipeline.DetectionRateId = rate.DetectionRateId;
}
}
else
{
error += "检测比例不能为空!";
}
if (!string.IsNullOrEmpty(weldDia) && !string.IsNullOrEmpty(weldThickness))
{
updateWeldJoint.Specification = "Φ" + weldDia + "*" + weldThickness;
}
updatePipeline.ProjectId = this.CurrUser.LoginProjectId;
updateWeldJoint.ProjectId = this.CurrUser.LoginProjectId;
if (!string.IsNullOrEmpty(error))
{
errorInfos += "第" + (i + 2) + "行:" + error + " </br>";
}
updatePipelineList.Add(updatePipeline);
updateWeldJointList.Add(updateWeldJoint);
}
#endregion
}
// 数据验证错误,返回
if (!string.IsNullOrEmpty(errorInfos))
{
ShowNotify(errorInfos, MessageBoxIcon.Warning, 30000);
return;
}
else
{
// 不更新,新数据插入
if (weldJointList.Count > 0 && pipelineList.Count() > 0)
{
var newPipeLineList = from x in pipelineList where x.PipelineId != "" select x;
Funs.DB.Pipeline_Pipeline.InsertAllOnSubmit(newPipeLineList);
Funs.DB.Pipeline_WeldJoint.InsertAllOnSubmit(weldJointList);
Funs.DB.SubmitChanges();
}
// 更新插入
if (updateWeldJointList.Count() > 0 && updatePipelineList.Count() > 0)
{
var pipeList = updatePipelineList.Distinct();
foreach (var q in pipeList)
{
BLL.Pipeline_PipelineService.UpdatePipeline(q);
}
foreach (var j in updateWeldJointList)
{
BLL.Pipeline_WeldJointService.UpdateWeldJoint(j);
}
}
ShowNotify("管道信息导入成功!", MessageBoxIcon.Success);
this.BindGrid();
}
}
else
{
ShowAlert("没有数据!", MessageBoxIcon.Warning);
return;
}
}
catch (Exception ex)
{
ShowAlert("'" + ex.Message + "'", MessageBoxIcon.Warning);
}
}
}
}