1593 lines
79 KiB
C#
1593 lines
79 KiB
C#
|
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);
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
}
|
|||
|
}
|