SGGL_SHJ/SGGL/FineUIPro.Web/HJGL/WeldingManage/PipelineListPDMSIn.aspx.cs

1840 lines
84 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 BLL;
using FineUIPro.Web.ProjectData;
using MiniExcelLibs;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Data.OleDb;
using System.Data.SqlClient;
using System.IO;
using System.Linq;
namespace FineUIPro.Web.HJGL.WeldingManage
{
public partial class PipelineListPDMSIn : PageBase
{
#region
/// <summary>
/// 上传预设的虚拟路径
/// </summary>
private string initPath = Const.ExcelUrl;
/// <summary>
/// 安装组件集合
/// </summary>
public static List<Model.View_HJGL_WeldJoint> PipelineList = new List<Model.View_HJGL_WeldJoint>();
/// <summary>
/// 错误集合
/// </summary>
public static string errorInfos = string.Empty;
/// <summary>
/// 导入数据分类(管线)
/// </summary>
public static string DataClassification = "Pipeline";
public enum ButtonState { Check = 0, Import = 1, Save = 2 }
public static int State;
#endregion
#region
/// <summary>
/// 加载页面
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
this.hdFileName.Text = string.Empty;
State = (int)ButtonState.Check;
if (PipelineList != null)
{
PipelineList.Clear();
}
errorInfos = string.Empty;
lbVersion.Text = BLL.HJGL_DesignBasisDataImportService.GetNowVersionByUnitWorkId(Request.Params["UnitWorkId"], DataClassification).ToString();
BindGrid2();
}
}
#endregion
void BindGrid2()
{
string strSql = @" select Import.DesignBasisDataImportId
,Import.ProjectId
,Import.UnitWorkId
,(Case Import.ImportType when '0' then '补充导入'
when '1' then '更新导入' end) as ImportType
,Import.FileName
,Import.FilePath
,Import.DataClassification
,Import.FileType
,Import.FileSize
,Import.FileId
,Import.Version
,Import.Remark
,Import.CreateMan
,Import.CreateDate
, Users.PersonName
from HJGL_DesignBasisDataImport as Import
left join Person_Persons as Users on Users.PersonId=Import.CreateMan
where Import.UnitWorkId=@UnitWorkId and Import.ProjectId=@ProjectId and Import.DataClassification=@DataClassification
order by Import.CreateDate";
List<SqlParameter> listStr = new List<SqlParameter>();
listStr.Add(new SqlParameter("@ProjectId", this.CurrUser.LoginProjectId));
listStr.Add(new SqlParameter("@UnitWorkId", Request.Params["UnitWorkId"]));
listStr.Add(new SqlParameter("@DataClassification", DataClassification));
SqlParameter[] parameter = listStr.ToArray();
DataTable tb = SQLHelper.GetDataTableRunText(strSql, parameter);
// 2.获取当前分页数据
//var table = this.GetPagedDataTable(Grid1, tb1);
Grid2.RecordCount = tb.Rows.Count;
tb = GetFilteredTable(Grid2.FilteredData, tb);
var table = this.GetPagedDataTable(Grid2, tb);
Grid2.DataSource = table;
Grid2.DataBind();
drpVersion.DataSource = BLL.HJGL_DesignBasisDataImportService.GetListVersionByUnitWorkId(Request.Params["UnitWorkId"], DataClassification);
drpVersion.DataBind();
}
#region
/// <summary>
/// 审核
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void btnAudit_Click(object sender, EventArgs e)
{
try
{
if (this.fuAttachUrl.HasFile == false)
{
ShowNotify("请您选择Excel文件", MessageBoxIcon.Warning);
return;
}
string IsXls = Path.GetExtension(this.fuAttachUrl.FileName).ToString().Trim().ToLower();
if (IsXls != ".xlsx")
{
ShowNotify("只可以选择Excel文件", MessageBoxIcon.Warning);
return;
}
if (PipelineList != null)
{
PipelineList.Clear();
}
if (!string.IsNullOrEmpty(errorInfos))
{
errorInfos = string.Empty;
}
string rootPath = Server.MapPath("~/");
string initFullPath = rootPath + initPath;
if (!Directory.Exists(initFullPath))
{
Directory.CreateDirectory(initFullPath);
}
this.hdFileName.Text = BLL.Funs.GetNewFileName() + IsXls;
string filePath = initFullPath + this.hdFileName.Text;
this.fuAttachUrl.PostedFile.SaveAs(filePath);
ImportXlsToData(rootPath + initPath + this.hdFileName.Text);
}
catch (Exception ex)
{
Alert alert = new Alert
{
Message = "'" + ex.Message + "'",
Target = Target.Self
};
alert.Show();
//ShowNotify("'" + ex.Message + "'", MessageBoxIcon.Warning);
}
}
#region Excel提取数据
/// <summary>
/// 从Excel提取数据--》Dataset
/// </summary>
/// <param name="filename">Excel文件路径名</param>
private void ImportXlsToData(string fileName)
{
//支持.xls和.xlsx即包括office2010等版本的 HDR=Yes代表第一行是标题不是数据
try
{
//string oleDBConnString = String.Empty;
//oleDBConnString = "Provider=Microsoft.Jet.OLEDB.4.0;";
//oleDBConnString += "Data Source=";
//oleDBConnString += fileName;
//oleDBConnString += ";Extended Properties=Excel 8.0;";
//OleDbConnection oleDBConn = null;
//OleDbDataAdapter oleAdMaster = null;
//DataTable m_tableName = new DataTable();
//DataSet ds = new DataSet();
//oleDBConn = new OleDbConnection(oleDBConnString);
//oleDBConn.Open();
//m_tableName = oleDBConn.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, null);
//if (m_tableName != null && m_tableName.Rows.Count > 0)
//{
// m_tableName.TableName = m_tableName.Rows[0]["TABLE_NAME"].ToString().Trim();
//}
//string sqlMaster;
//sqlMaster = " SELECT * FROM [" + m_tableName.TableName + "]";
//oleAdMaster = new OleDbDataAdapter(sqlMaster, oleDBConn);
//oleAdMaster.Fill(ds, "m_tableName");
//oleAdMaster.Dispose();
//oleDBConn.Close();
//oleDBConn.Dispose();
var ds = MiniExcel.Query(fileName).ToList();
var columns = MiniExcel.GetColumns(fileName);
var cnt = columns.Count;
var reposedata = AddDatasetToSQL(ds, cnt);
if (reposedata.code==1)
{
State = (int)ButtonState.Import;
ShowNotify("审核完成请点击导入");
}
else
{
Alert alert = new Alert
{
Message = reposedata.message,
Target = Target.Self
};
alert.Show();
//ShowNotify(reposedata.message);
}
}
catch (Exception exc)
{
ErrLogInfo.WriteLog("焊接基础数据上传失败!", exc);
//return null;
// return dt;
}
//finally
//{
// conn.Close();
// conn.Dispose();
//}
}
#endregion
#region Dataset的数据导入数据库
/// <summary>
/// 将Dataset的数据导入数据库
/// </summary>
/// <param name="pds">数据集</param>
/// <param name="Cols">数据集行数</param>
/// <returns></returns>
private Model.ResponeData AddDatasetToSQL(DataTable pds, int Cols)
{
Model.ResponeData responeData = new Model.ResponeData();
string result = string.Empty;
int ic, ir;
//pds = BLL.Funs.FilterBlankLines(pds);
ic = pds.Columns.Count;
ir = pds.Rows.Count;
if (ic < Cols)
{
responeData.code = 0;
responeData.message = "导入Excel格式错误Excel只有" + ic.ToString().Trim() + "列";
return responeData;
//ShowNotify("导入Excel格式错误Excel只有" + ic.ToString().Trim() + "列", MessageBoxIcon.Warning);
//return false;
}
if (pds != null && ir > 0)
{
var getPipeline = from x in Funs.DB.View_HJGL_WeldJoint where x.ProjectId == this.CurrUser.LoginProjectId select x;
var getMedium = from x in Funs.DB.Base_Medium where x.ProjectId == this.CurrUser.LoginProjectId select x;//介质
var getPipeLineClass = from x in Funs.DB.Base_PipingClass where x.ProjectId == this.CurrUser.LoginProjectId select x;//管道等级
var getDetectionRate = from x in Funs.DB.Base_DetectionRate select x;//探伤比例
var getDetectionType = from x in Funs.DB.Base_DetectionType select x;//探伤类型
var getPressurePipingClass = from x in Funs.DB.Base_PressurePipingClass select x;//压力管道级别
var getTestMedium = from x in Funs.DB.Base_TestMedium where x.TestType == "1" select x;//压力试验介质
var getLeakMedium = from x in Funs.DB.Base_TestMedium where x.TestType == "2" select x;//泄露性试验介质
var getPurgeMethod = from x in Funs.DB.Base_PurgeMethod select x;
var getMaterial = from x in Funs.DB.Base_Material select x;
var getWeldType = from x in Funs.DB.Base_WeldType select x;
//var getComponents = from x in Funs.DB.Base_Components where x.ProjeceId == this.CurrUser.LoginProjectId select x;
for (int i = 0; i < ir; i++)
{
Model.View_HJGL_WeldJoint pipeline = new Model.View_HJGL_WeldJoint();
//pipeline.PipelineId = SQLHelper.GetNewID();
Model.WBS_UnitWork unitWork = BLL.UnitWorkService.GetUnitWorkByUnitWorkId(Request.Params["UnitWorkId"]);
if (unitWork != null)
{
pipeline.UnitWorkId = Request.Params["UnitWorkId"];
pipeline.UnitId = unitWork.UnitId;
}
string col0 = pds.Rows[i][0].ToString();
string pipeLineId = string.Empty;
if (string.IsNullOrEmpty(col0))
{
result += "第" + (i + 2).ToString() + "行," + "管线号" + "," + "此项为必填项!" + "|";
}
else
{
pipeline.PipelineCode = col0;
}
pipeline.SingleNumber = pds.Rows[i][1].ToString();
pipeline.SingleName = pds.Rows[i][2].ToString();
string col3 = pds.Rows[i][3].ToString();
if (string.IsNullOrEmpty(col3))
{
result += "第" + (i + 2).ToString() + "行," + "介质名称" + "," + "此项为必填项!" + "|";
}
else
{
var Medium = getMedium.FirstOrDefault(x => x.MediumName == col3);
if (Medium == null)
{
result += "第" + (i + 2).ToString() + "行," + "该介质不存在!" + "|";
}
else
{
pipeline.MediumId = Medium.MediumId;
pipeline.MediumName = col3;
}
}
string col4 = pds.Rows[i][4].ToString();
if (string.IsNullOrEmpty(col4))
{
result += "第" + (i + 2).ToString() + "行," + "管道等级" + "," + "此项为必填项!" + "|";
}
else
{
var PipeLineClass = getPipeLineClass.FirstOrDefault(x => x.PipingClassCode == col4);
if (PipeLineClass == null)
{
result += "第" + (i + 2).ToString() + "行," + "该管道等级不存在!" + "|";
}
else
{
pipeline.PipingClassId = PipeLineClass.PipingClassId;
pipeline.PipingClassCode = col4;
}
}
string col5 = pds.Rows[i][5].ToString();
if (!string.IsNullOrEmpty(col5))
{
var DetectionRate = getDetectionRate.FirstOrDefault(x => x.DetectionRateValue.ToString() == col5.Replace("%", "") || x.DetectionRateCode == col5);
if (DetectionRate == null)
{
result += "第" + (i + 2).ToString() + "行," + "该探伤比例不存在!" + "|";
}
else
{
pipeline.DetectionRateId = DetectionRate.DetectionRateId;
pipeline.DetectionRateCode = col5;
}
}
else
{
result += "第" + (i + 2).ToString() + "行," + "探伤比例" + "," + "此项为必填项!" + "|";
}
string col6 = pds.Rows[i][6].ToString();
if (!string.IsNullOrEmpty(col6))
{
string[] types = col6.ToString().Split(',');
foreach (string t in types)
{
var type = getDetectionType.FirstOrDefault(x => x.DetectionTypeCode == t);
if (type == null)
{
result += "第" + (i + 2).ToString() + "行," + "探伤类型【" + t + "】不存在!" + "|";
}
else
{
pipeline.DetectionType += type.DetectionTypeId + "|";
}
}
if (!string.IsNullOrEmpty(pipeline.DetectionType))
{
pipeline.DetectionType = pipeline.DetectionType.Substring(0, pipeline.DetectionType.Length - 1);
pipeline.DetectionTypeStr = col6;
}
}
else
{
result += "第" + (i + 2).ToString() + "行," + "探伤类型" + "," + "此项为必填项!" + "|";
}
string col7 = pds.Rows[i][7].ToString();
if (!string.IsNullOrEmpty(col7))
{
pipeline.DesignTemperature = col7;
}
string col8 = pds.Rows[i][8].ToString();
if (!string.IsNullOrEmpty(col8))
{
pipeline.DesignPress = col8;
}
string col9 = pds.Rows[i][9].ToString();
if (!string.IsNullOrEmpty(col9))
{
var TestMedium = getTestMedium.FirstOrDefault(x => x.MediumName == col9);
if (TestMedium == null)
{
result += "第" + (i + 2).ToString() + "行," + "该压力试验介质不存在!" + "|";
}
else
{
pipeline.TestMedium = TestMedium.TestMediumId;
pipeline.TestMediumName = col9;
}
}
string col10 = pds.Rows[i][10].ToString();
if (!string.IsNullOrEmpty(col10))
{
pipeline.TestPressure = col10;
}
string col11 = pds.Rows[i][11].ToString();
if (!string.IsNullOrEmpty(col11))
{
var PressurePipingClass = getPressurePipingClass.FirstOrDefault(x => x.PressurePipingClassCode == col11);
if (PressurePipingClass == null)
{
result += "第" + (i + 2).ToString() + "行," + "该压力管道级别不存在!" + "|";
}
else
{
pipeline.PressurePipingClassId = PressurePipingClass.PressurePipingClassId;
pipeline.PressurePipingClassCode = col11;
}
}
string col12 = pds.Rows[i][12].ToString();
if (!string.IsNullOrEmpty(col12))
{
try
{
var PipeLenth = Funs.GetNewDecimal(col12);
pipeline.PipeLenth = PipeLenth;
}
catch (Exception)
{
result += "第" + (i + 2).ToString() + "行," + "管线长度(m)格式输入有误" + "|";
}
}
string col13 = pds.Rows[i][13].ToString();
if (!string.IsNullOrEmpty(col13))
{
var LeakMedium = getLeakMedium.FirstOrDefault(x => x.MediumName == col13);
if (LeakMedium == null)
{
result += "第" + (i + 2).ToString() + "行," + "该泄露试验介质不存在!" + "|";
}
else
{
pipeline.LeakMedium = LeakMedium.TestMediumId;
pipeline.LeakMediumName = col13;
}
}
string col14 = pds.Rows[i][14].ToString();
if (!string.IsNullOrEmpty(col14))
{
pipeline.LeakPressure = col14;
}
string col15 = pds.Rows[i][15].ToString();
if (!string.IsNullOrEmpty(col15))
{
var PurgeMethod = getPurgeMethod.FirstOrDefault(x => x.PurgeMethodCode == col15);
if (PurgeMethod == null)
{
result += "第" + (i + 2).ToString() + "行," + "该吹洗要求不存在!" + "|";
}
else
{
pipeline.PCMedium = PurgeMethod.PurgeMethodId;
pipeline.PurgeMethodCode = col15;
}
}
string col16 = pds.Rows[i][16].ToString();
if (!string.IsNullOrEmpty(col16))
{
pipeline.VacuumPressure = col16;
}
string col17 = pds.Rows[i][17].ToString();
if (!string.IsNullOrEmpty(col17))
{
var material = getMaterial.FirstOrDefault(x => x.MaterialCode == col17);
if (material == null)
{
result += "第" + (i + 2).ToString() + "行," + "该材质不存在!" + "|";
}
else
{
pipeline.MaterialId = material.MaterialId;
pipeline.PipeMaterialCode = col17;
}
}
pipeline.Remark = pds.Rows[i][18].ToString();
// 以下是焊口信息
string col19 = pds.Rows[i][19].ToString();
if (string.IsNullOrEmpty(col19))
{
result += "第" + (i + 2).ToString() + "行," + "焊口号" + "," + "此项为必填项!" + "|";
}
else
{
//var oldWeldJoint = getPipeline.FirstOrDefault(x => x.PipelineId == pipeLineId && x.WeldJointCode == col19);
//if (oldWeldJoint != null)
//{
// pipeline.WeldJointId = oldWeldJoint.WeldJointId;
//}
//else
//{
// pipeline.WeldJointId = SQLHelper.GetNewID();
//}
pipeline.WeldJointCode = col19;
}
string col20 = pds.Rows[i][20].ToString();
if (!string.IsNullOrEmpty(col20))
{
var material = getMaterial.FirstOrDefault(x => x.MaterialCode == col20);
if (material == null)
{
result += "第" + (i + 2).ToString() + "行," + "该材质1不存在" + "|";
}
else
{
pipeline.Material1Id = material.MaterialId;
pipeline.Material1Code = col20;
}
}
else
{
result += "第" + (i + 2).ToString() + "行," + "材质1" + "," + "此项为必填项!" + "|";
}
string col21 = pds.Rows[i][21].ToString();
if (!string.IsNullOrEmpty(col21))
{
var material = getMaterial.FirstOrDefault(x => x.MaterialCode == col21);
if (material == null)
{
result += "第" + (i + 2).ToString() + "行," + "该材质2不存在" + "|";
}
else
{
pipeline.Material2Id = material.MaterialId;
pipeline.Material2Code = col21;
}
}
else
{
result += "第" + (i + 2).ToString() + "行," + "材质2" + "," + "此项为必填项!" + "|";
}
string col22 = pds.Rows[i][22].ToString().Replace("Φ", "");
string col27 = pds.Rows[i][22].ToString();
if (rbDiaType.SelectedValue=="1")
{
if (!string.IsNullOrEmpty(col27))
{
try
{
decimal Dia = Convert.ToDecimal(col27);
pipeline.Dia = Dia;
//var inch = BLL.Base_DNCompareService.GetSizeByDia(Dia);
//if (inch != null)
//{
// pipeline.Size = inch;
//}
}
catch (Exception)
{
result += "第" + (i + 2).ToString() + "行," + "外径格式输入有误" + "|";
}
}
else
{
result += "第" + (i + 2).ToString() + "行," + "外径" + "," + "此项为必填项!" + "|";
}
}
else
{
if (!string.IsNullOrEmpty(col22))
{
pipeline.DNDia = col22;
}
else
{
result += "第" + (i + 2).ToString() + "行," + "DN公称直径" + "," + "此项为必填项!" + "|";
}
}
string col23 = pds.Rows[i][23].ToString();
if (!string.IsNullOrEmpty(col23))
{
try
{
decimal Size = Convert.ToDecimal(col23);
pipeline.Size = Size;
}
catch (Exception)
{
result += "第" + (i + 2).ToString() + "行," + "达因格式输入有误" + "|";
}
}
else
{
result += "第" + (i + 2).ToString() + "行," + "达因" + "," + "此项为必填项!" + "|";
}
string col24 = pds.Rows[i][24].ToString();
if (!string.IsNullOrEmpty(col24))
{
try
{
var Thickness = Convert.ToDecimal(col24);
pipeline.Thickness = Thickness;
//是否根据壁厚计算达因
//Model.Project_Sys_Set thicknessSet = BLL.Project_SysSetService.GetSysSetBySetId("7", this.CurrUser.LoginProjectId);
//if (thicknessSet != null && thicknessSet.IsAuto == true)
//{
// if (pipeline.Size != null)
// {
// pipeline.Size = Convert.ToDecimal(BLL.WeldJointService.GetSizeByThickness(pipeline.Size, Thickness));
// }
//}
}
catch (Exception)
{
result += "第" + (i + 2).ToString() + "行," + "壁厚格式输入有误" + "|";
}
}
else
{
result += "第" + (i + 2).ToString() + "行," + "壁厚" + "," + "此项为必填项!" + "|";
}
if (rbDiaType.SelectedValue=="1")
{
pipeline.Specification = "Φ" + (pipeline.Dia ?? 0).ToString() + "*" + (pipeline.Thickness ?? 0).ToString();
}
else
{
pipeline.Specification = pipeline.DNDia + "*" + (pipeline.Thickness ?? 0).ToString();
}
string col25 = pds.Rows[i][25].ToString();
if (!string.IsNullOrEmpty(col25))
{
var weldType = getWeldType.FirstOrDefault(x => x.WeldTypeCode == col25);
if (weldType == null)
{
result += "第" + (i + 2).ToString() + "行," + "该焊缝类型不存在!" + "|";
}
else
{
pipeline.WeldTypeId = weldType.WeldTypeId;
pipeline.WeldTypeCode = col25;
if (col25.Contains("B"))
{
if (col6.Contains("RT"))
{
Model.Base_DetectionType rt = BLL.Base_DetectionTypeService.GetDetectionTypeIdByDetectionTypeCode("RT");
if (rt != null)
{
pipeline.DetectionTypeId = rt.DetectionTypeId;
}
}
else
{
Model.Base_DetectionType ut = BLL.Base_DetectionTypeService.GetDetectionTypeIdByDetectionTypeCode("UT");
if (ut != null)
{
pipeline.DetectionTypeId = ut.DetectionTypeId;
}
}
}
else
{
if (col6.Contains("MT"))
{
Model.Base_DetectionType mt = BLL.Base_DetectionTypeService.GetDetectionTypeIdByDetectionTypeCode("MT");
if (mt != null)
{
pipeline.DetectionTypeId = mt.DetectionTypeId;
}
}
else
{
Model.Base_DetectionType pt = BLL.Base_DetectionTypeService.GetDetectionTypeIdByDetectionTypeCode("PT");
if (pt != null)
{
pipeline.DetectionTypeId = pt.DetectionTypeId;
}
}
}
}
}
else
{
result += "第" + (i + 2).ToString() + "行," + "焊缝类型" + "," + "此项为必填项!" + "|";
}
string col26 = pds.Rows[i][26].ToString();
if (!string.IsNullOrEmpty(col26))
{
var JointAttribute = BLL.DropListService.HJGL_JointAttribute();
var q = JointAttribute.Where(x => x.Value == col26);
if (q==null )
{
result += "第" + (i + 2).ToString() + "行," + "该焊口属性不存在!" + "|";
}
else
{
pipeline.JointAttribute = col26;
}
}
else
{
result += "第" + (i + 2).ToString() + "行," + "焊口属性" + "," + "此项为必填项!" + "|";
}
if (!string.IsNullOrEmpty(pipeline.PipelineCode) && !string.IsNullOrEmpty(pipeline.WeldJointCode))
{
pipeline.ProjectId = this.CurrUser.LoginProjectId;
PipelineList.Add(pipeline);
}
}
if (!string.IsNullOrEmpty(result))
{
PipelineList.Clear();
result = result.Substring(0, result.LastIndexOf("|"));
errorInfos = result;
responeData.code = 0;
responeData.message = errorInfos;
}
else
{
errorInfos = string.Empty;
//ShowNotify("审核完成,请点击导入!", MessageBoxIcon.Success);
}
}
else
{
responeData.code = 0;
responeData.message = "导入数据为空!";
//ShowNotify("导入数据为空!", MessageBoxIcon.Warning);
}
return responeData;
}
private Model.ResponeData AddDatasetToSQL(List<dynamic> pds, int count)
{
Model.ResponeData responeData = new Model.ResponeData();
// string result = string.Empty;
List<string> result = new List<string>();
//pds = BLL.Funs.FilterBlankLines(pds);
if (count < 28)
{
responeData.code = 0;
responeData.message = "导入Excel格式错误Excel只有" + count.ToString().Trim() + "列";
return responeData;
}
if (pds.Count > 0 && pds != null)
{
var getPipeline = from x in Funs.DB.View_HJGL_WeldJoint where x.ProjectId == this.CurrUser.LoginProjectId select x;
var getMedium = from x in Funs.DB.Base_Medium where x.ProjectId == this.CurrUser.LoginProjectId select x;//介质
var getPipeLineClass = from x in Funs.DB.Base_PipingClass where x.ProjectId == this.CurrUser.LoginProjectId select x;//管道等级
var getDetectionRate = from x in Funs.DB.Base_DetectionRate select x;//探伤比例
var getDetectionType = from x in Funs.DB.Base_DetectionType select x;//探伤类型
var getPressurePipingClass = from x in Funs.DB.Base_PressurePipingClass select x;//压力管道级别
var getTestMedium = from x in Funs.DB.Base_TestMedium where x.TestType == "1" select x;//压力试验介质
var getLeakMedium = from x in Funs.DB.Base_TestMedium where x.TestType == "2" select x;//泄露性试验介质
var getPurgeMethod = from x in Funs.DB.Base_PurgeMethod select x;
var getMaterial = from x in Funs.DB.Base_Material select x;
var getWeldType = from x in Funs.DB.Base_WeldType select x;
//var getComponents = from x in Funs.DB.Base_Components where x.ProjeceId == this.CurrUser.LoginProjectId select x;
for (int i = 1; i < pds.Count; i++)
{
Model.View_HJGL_WeldJoint pipeline = new Model.View_HJGL_WeldJoint();
//pipeline.PipelineId = SQLHelper.GetNewID();
Model.WBS_UnitWork unitWork = BLL.UnitWorkService.GetUnitWorkByUnitWorkId(Request.Params["UnitWorkId"]);
if (unitWork != null)
{
pipeline.UnitWorkId = Request.Params["UnitWorkId"];
pipeline.UnitId = unitWork.UnitId;
}
string col0 = pds[i].A;
string pipeLineId = string.Empty;
if (string.IsNullOrEmpty(col0))
{
result.Add( "第" + (i + 1).ToString() + "行," + "管线号" + "," + "此项为必填项!" + "|");
}
else
{
pipeline.PipelineCode = col0;
}
pipeline.SingleNumber = pds[i].B;
pipeline.SingleName = pds[i].C;
string col3 = pds[i].D;
if (string.IsNullOrEmpty(col3))
{
result.Add("第" + (i + 1).ToString() + "行," + "介质名称" + "," + "此项为必填项!" + "|");
}
else
{
var Medium = getMedium.FirstOrDefault(x => x.MediumName == col3);
if (Medium == null)
{
// result += "第" + (i + 1).ToString() + "行," + "该介质不存在!" + "|";
result .Add( col3 + "-该介质不存在!" + "|");
}
else
{
pipeline.MediumId = Medium.MediumId;
pipeline.MediumName = col3;
}
}
string col4 = pds[i].E;
if (string.IsNullOrEmpty(col4))
{
result.Add("第" + (i + 1).ToString() + "行," + "管道等级" + "," + "此项为必填项!" + "|");
}
else
{
var PipeLineClass = getPipeLineClass.FirstOrDefault(x => x.PipingClassCode == col4);
if (PipeLineClass == null)
{
// result += "第" + (i + 1).ToString() + "行," + "该管道等级不存在!" + "|";
result.Add(col4 + "-该管道等级不存在!" + "|");
}
else
{
pipeline.PipingClassId = PipeLineClass.PipingClassId;
pipeline.PipingClassCode = col4;
}
}
string col5 = pds[i].F;
if (!string.IsNullOrEmpty(col5))
{
var DetectionRate = getDetectionRate.FirstOrDefault(x => x.DetectionRateValue.ToString() == col5.Replace("%", "") || x.DetectionRateCode == col5);
if (DetectionRate == null)
{
// result += "第" + (i + 1).ToString() + "行," + "该探伤比例不存在!" + "|";
result.Add(col5 + "-该探伤比例不存在!" + "|");
}
else
{
pipeline.DetectionRateId = DetectionRate.DetectionRateId;
pipeline.DetectionRateCode = col5;
}
}
else
{
result.Add("第" + (i + 1).ToString() + "行," + "探伤比例" + "," + "此项为必填项!" + "|");
}
string col6 = pds[i].G;
if (!string.IsNullOrEmpty(col6))
{
string[] types = col6.ToString().Split(',');
foreach (string t in types)
{
var type = getDetectionType.FirstOrDefault(x => x.DetectionTypeCode == t);
if (type == null)
{
//result += "第" + (i + 1).ToString() + "行," + "探伤类型【" + t + "】不存在!" + "|";
result.Add("探伤类型【" + t + "】不存在!" + "|");
}
else
{
pipeline.DetectionType += type.DetectionTypeId + "|";
}
}
if (!string.IsNullOrEmpty(pipeline.DetectionType))
{
pipeline.DetectionType = pipeline.DetectionType.Substring(0, pipeline.DetectionType.Length - 1);
pipeline.DetectionTypeStr = col6;
}
}
else
{
result.Add("第" + (i + 1).ToString() + "行," + "探伤类型" + "," + "此项为必填项!" + "|");
}
string col7 = Convert.ToString(pds[i].H);
if (!string.IsNullOrEmpty(col7))
{
pipeline.DesignTemperature = col7;
}
string col8 = Convert.ToString(pds[i].I);
if (!string.IsNullOrEmpty(col8))
{
pipeline.DesignPress = col8;
}
string col9 = Convert.ToString(pds[i].J);
if (!string.IsNullOrEmpty(col9))
{
var TestMedium = getTestMedium.FirstOrDefault(x => x.MediumName == col9);
if (TestMedium == null)
{
//result += "第" + (i + 1).ToString() + "行," + "该压力试验介质不存在!" + "|";
result.Add(col9 + "-该压力试验介质不存在!" + "|");
}
else
{
pipeline.TestMedium = TestMedium.TestMediumId;
pipeline.TestMediumName = col9;
}
}
string col10 = Convert.ToString(pds[i].K);
if (!string.IsNullOrEmpty(col10))
{
pipeline.TestPressure = col10;
}
string col11 = Convert.ToString(pds[i].L);
if (!string.IsNullOrEmpty(col11))
{
var PressurePipingClass = getPressurePipingClass.FirstOrDefault(x => x.PressurePipingClassCode == col11);
if (PressurePipingClass == null)
{
// result += "第" + (i + 1).ToString() + "行," + "该压力管道级别不存在!" + "|";
result.Add(col11 + "-该压力管道级别不存在!" + "|");
}
else
{
pipeline.PressurePipingClassId = PressurePipingClass.PressurePipingClassId;
pipeline.PressurePipingClassCode = col11;
}
}
string col12 = Convert.ToString(pds[i].M);
if (!string.IsNullOrEmpty(col12))
{
try
{
var PipeLenth = Funs.GetNewDecimal(col12);
pipeline.PipeLenth = PipeLenth;
}
catch (Exception)
{
result.Add("第" + (i + 1).ToString() + "行," + "管线长度(m)格式输入有误" + "|");
}
}
string col13 = Convert.ToString(pds[i].N);
if (!string.IsNullOrEmpty(col13))
{
var LeakMedium = getLeakMedium.FirstOrDefault(x => x.MediumName == col13);
if (LeakMedium == null)
{
//result += "第" + (i + 1).ToString() + "行," + "该泄露试验介质不存在!" + "|";
result.Add(col13 + "-该泄露试验介质不存在!" + "|");
}
else
{
pipeline.LeakMedium = LeakMedium.TestMediumId;
pipeline.LeakMediumName = col13;
}
}
string col14 = Convert.ToString(pds[i].O);
if (!string.IsNullOrEmpty(col14))
{
pipeline.LeakPressure = col14;
}
string col15 = Convert.ToString(pds[i].P);
if (!string.IsNullOrEmpty(col15))
{
var PurgeMethod = getPurgeMethod.FirstOrDefault(x => x.PurgeMethodCode == col15);
if (PurgeMethod == null)
{
//result += "第" + (i + 1).ToString() + "行," + "该吹洗要求不存在!" + "|";
result.Add(col15 + "-该吹洗要求不存在!" + "|");
}
else
{
pipeline.PCMedium = PurgeMethod.PurgeMethodId;
pipeline.PurgeMethodCode = col15;
}
}
string col16 = Convert.ToString(pds[i].Q);
if (!string.IsNullOrEmpty(col16))
{
pipeline.VacuumPressure = col16;
}
string col17 = Convert.ToString(pds[i].R);
if (!string.IsNullOrEmpty(col17))
{
var material = getMaterial.FirstOrDefault(x => x.MaterialCode == col17);
if (material == null)
{
// result += "第" + (i + 1).ToString() + "行," + "该材质不存在!" + "|";
result.Add(col17 + "-该材质不存在!" + "|");
}
else
{
pipeline.MaterialId = material.MaterialId;
pipeline.PipeMaterialCode = col17;
}
}
pipeline.FlowingSection= Convert.ToString(pds[i].S);
pipeline.Remark = Convert.ToString(pds[i].T);
// 以下是焊口信息
string col19 = Convert.ToString(pds[i].U);
if (string.IsNullOrEmpty(col19))
{
result.Add("第" + (i + 1).ToString() + "行," + "焊口号" + "," + "此项为必填项!" + "|");
}
else
{
//var oldWeldJoint = getPipeline.FirstOrDefault(x => x.PipelineId == pipeLineId && x.WeldJointCode == col19);
//if (oldWeldJoint != null)
//{
// pipeline.WeldJointId = oldWeldJoint.WeldJointId;
//}
//else
//{
// pipeline.WeldJointId = SQLHelper.GetNewID();
//}
pipeline.WeldJointCode = col19;
}
string col20 = "";
if (pds[i].V!=null)
{
col20 = pds[i].V.ToString();
}
if (!string.IsNullOrEmpty(col20))
{
var material = getMaterial.FirstOrDefault(x => x.MaterialCode == col20);
if (material == null)
{
// result += "第" + (i + 1).ToString() + "行," + "该材质1不存在" + "|";
result.Add(col20 + "-该材质1不存在" + "|");
}
else
{
pipeline.Material1Id = material.MaterialId;
pipeline.Material1Code = col20;
}
}
else
{
result.Add("第" + (i + 1).ToString() + "行," + "材质1" + "," + "此项为必填项!" + "|");
}
string col21 = "";
if (pds[i].W!=null)
{
col21 = pds[i].W.ToString();
}
if (!string.IsNullOrEmpty(col21))
{
var material = getMaterial.FirstOrDefault(x => x.MaterialCode == col21);
if (material == null)
{
//result += "第" + (i + 1).ToString() + "行," + "该材质2不存在" + "|";
result.Add(col21 + "-该材质2不存在" + "|");
}
else
{
pipeline.Material2Id = material.MaterialId;
pipeline.Material2Code = col21;
}
}
else
{
result.Add("第" + (i + 1).ToString() + "行," + "材质2" + "," + "此项为必填项!" + "|");
}
string col22 = Convert.ToString(pds[i].X);
string col27 = "";
if (pds[i].AC!=null)
{
col27= pds[i].AC.ToString();
}
if (rbDiaType.SelectedValue == "1")
{
if (!string.IsNullOrEmpty(col27))
{
try
{
decimal Dia = Convert.ToDecimal(col27.Replace("Φ", ""));
pipeline.Dia = Dia;
//var inch = BLL.Base_DNCompareService.GetSizeByDia(Dia);
//if (inch != null)
//{
// pipeline.Size = inch;
//}
}
catch (Exception)
{
result.Add("第" + (i + 1).ToString() + "行," + "外径格式输入有误" + "|");
}
}
else
{
result.Add("第" + (i + 1).ToString() + "行," + "外径" + "," + "此项为必填项!" + "|");
}
}
else
{
if (!string.IsNullOrEmpty(col22))
{
pipeline.DNDia = col22;
}
else
{
result.Add("第" + (i + 1).ToString() + "行," + "DN公称直径" + "," + "此项为必填项!" + "|");
}
}
var col23 = Convert.ToString(pds[i].Y);
if (col23!=null)
{
try
{
decimal Size = Convert.ToDecimal(col23);
pipeline.Size = Size;
}
catch (Exception)
{
result.Add("第" + (i + 1).ToString() + "行," + "达因格式输入有误" + "|");
}
}
else
{
result.Add("第" + (i + 1).ToString() + "行," + "达因" + "," + "此项为必填项!" + "|");
}
var col24 = Convert.ToString(pds[i].Z);
if (col24!=null)
{
try
{
var Thickness = Convert.ToDecimal(col24);
pipeline.Thickness = Thickness;
//是否根据壁厚计算达因
//Model.Project_Sys_Set thicknessSet = BLL.Project_SysSetService.GetSysSetBySetId("7", this.CurrUser.LoginProjectId);
//if (thicknessSet != null && thicknessSet.IsAuto == true)
//{
// if (pipeline.Size != null)
// {
// pipeline.Size = Convert.ToDecimal(BLL.WeldJointService.GetSizeByThickness(pipeline.Size, Thickness));
// }
//}
}
catch (Exception)
{
result.Add("第" + (i + 1).ToString() + "行," + "壁厚格式输入有误" + "|") ;
}
}
else
{
result.Add("第" + (i + 1).ToString() + "行," + "壁厚" + "," + "此项为必填项!" + "|");
}
if (rbDiaType.SelectedValue == "1")
{
pipeline.Specification = "Φ" + (pipeline.Dia ?? 0).ToString() + "*" + (pipeline.Thickness ?? 0).ToString();
}
else
{
pipeline.Specification = pipeline.DNDia + "*" + (pipeline.Thickness ?? 0).ToString();
}
string col25 = Convert.ToString(pds[i].AA);
if (!string.IsNullOrEmpty(col25))
{
var weldType = getWeldType.FirstOrDefault(x => x.WeldTypeCode == col25);
if (weldType == null)
{
// result += "第" + (i + 1).ToString() + "行," + "该焊缝类型不存在!" + "|";
result.Add(col25 + "-该焊缝类型不存在!" + "|");
}
else
{
pipeline.WeldTypeId = weldType.WeldTypeId;
pipeline.WeldTypeCode = col25;
if (col25.Contains("B"))
{
if (col6.Contains("RT"))
{
Model.Base_DetectionType rt = BLL.Base_DetectionTypeService.GetDetectionTypeIdByDetectionTypeCode("RT");
if (rt != null)
{
pipeline.DetectionTypeId = rt.DetectionTypeId;
}
}
else
{
Model.Base_DetectionType ut = BLL.Base_DetectionTypeService.GetDetectionTypeIdByDetectionTypeCode("UT");
if (ut != null)
{
pipeline.DetectionTypeId = ut.DetectionTypeId;
}
}
}
else
{
if (col6.Contains("MT"))
{
Model.Base_DetectionType mt = BLL.Base_DetectionTypeService.GetDetectionTypeIdByDetectionTypeCode("MT");
if (mt != null)
{
pipeline.DetectionTypeId = mt.DetectionTypeId;
}
}
else
{
Model.Base_DetectionType pt = BLL.Base_DetectionTypeService.GetDetectionTypeIdByDetectionTypeCode("PT");
if (pt != null)
{
pipeline.DetectionTypeId = pt.DetectionTypeId;
}
}
}
}
}
else
{
result.Add("第" + (i + 1).ToString() + "行," + "焊缝类型" + "," + "此项为必填项!" + "|");
}
string col26 = Convert.ToString(pds[i].AB);
if (!string.IsNullOrEmpty(col26))
{
var JointAttribute = BLL.DropListService.HJGL_JointAttribute();
var q = JointAttribute.Where(x => x.Value == col26);
if (q == null)
{
result.Add("第" + (i + 1).ToString() + "行," + "该焊口属性不存在!" + "|");
}
else
{
pipeline.JointAttribute = col26;
}
}
else
{
result.Add("第" + (i + 1).ToString() + "行," + "焊口属性" + "," + "此项为必填项!" + "|");
}
if (!string.IsNullOrEmpty(pipeline.PipelineCode) && !string.IsNullOrEmpty(pipeline.WeldJointCode))
{
pipeline.ProjectId = this.CurrUser.LoginProjectId;
PipelineList.Add(pipeline);
}
}
if (result.Count > 0)
{
PipelineList.Clear();
// result = result.Substring(0, result.LastIndexOf("|"));
errorInfos = string.Join("|", result.Distinct());
//Alert alert = new Alert();
//alert.Message = result;
//alert.Target = Target.Self;
//alert.Show();
responeData.code = 0;
responeData.message = errorInfos;
}
else
{
errorInfos = string.Empty;
}
}
else
{
responeData.code = 0;
responeData.message = "导入数据为空!";
}
return responeData;
}
#endregion
#endregion
#region
/// <summary>
/// 导入
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void btnImport_Click(object sender, EventArgs e)
{
if (State != (int)ButtonState.Import)
{
ShowNotify("请先审核");
return;
}
if (string.IsNullOrEmpty(errorInfos))
{
if (!string.IsNullOrEmpty(this.hdFileName.Text))
{
if (PipelineList.Count > 0)
{
this.Grid1.Hidden = false;
this.Grid1.DataSource = PipelineList;
this.Grid1.DataBind();
Grid1.RecordCount = PipelineList.Count;
State = (int)ButtonState.Save;
}
}
else
{
ShowNotify("请先审核要导入的文件!", MessageBoxIcon.Warning);
}
}
else
{
ShowNotify("请先将错误数据修正,再重新导入提交!", MessageBoxIcon.Warning);
}
}
#endregion
#region
/// <summary>
/// 提交
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void btnSave_Click(object sender, EventArgs e)
{
if (State != (int)ButtonState.Save)
{
ShowNotify("请先审核/导入");
return;
}
if (string.IsNullOrEmpty(errorInfos))
{
string rootPath = Server.MapPath("~/");
string oldefilePath = rootPath+initPath + this.hdFileName.Text;
string unitworkId = Request.Params["UnitWorkId"];
string filePath = rootPath+ Const.DesignBasisDataImportPath + this.hdFileName.Text;
if (oldefilePath != string.Empty && System.IO.File.Exists(oldefilePath))
{
if (!Directory.Exists(rootPath + Const.DesignBasisDataImportPath))
{
Directory.CreateDirectory(rootPath + Const.DesignBasisDataImportPath);
}
File.Move(oldefilePath, filePath);
//System.IO.File.Delete(oldefilePath);//删除上传的XLS文件
}
string FileName = this.fuAttachUrl.FileName;
if (DrpType.SelectedValue == "1")//更新导入
{
BLL.PipelineMatService.DeletePipeLineMatByUnitWorkId(unitworkId);//删除原有管线对应材料
BLL.WeldJointService.DeleteWeldJointByUnitWorkId(unitworkId);////删除原有管线对应焊口
BLL.PipelineService.DeletePipelineByUnitworkId(unitworkId);//删除原有管线
AddView_HJGL_WeldJoint(PipelineList);//导入数据
Model .HJGL_DesignBasisDataImport hJGL_DesignBasisDataImport = new Model .HJGL_DesignBasisDataImport();
hJGL_DesignBasisDataImport.DesignBasisDataImportId= SQLHelper.GetNewID();
hJGL_DesignBasisDataImport.ProjectId = this.CurrUser.LoginProjectId;
hJGL_DesignBasisDataImport.UnitWorkId = unitworkId;
hJGL_DesignBasisDataImport.ImportType = "1";
hJGL_DesignBasisDataImport.DataClassification = DataClassification;
hJGL_DesignBasisDataImport.FileName = FileName;
hJGL_DesignBasisDataImport.FilePath = filePath.Replace(rootPath, "");
hJGL_DesignBasisDataImport.FileType = BLL.HJGL_DesignBasisDataImportService.GetFileType(FileName);
hJGL_DesignBasisDataImport.Version = BLL.HJGL_DesignBasisDataImportService.GetNewVersionByUnitWorkId(unitworkId,DataClassification);
hJGL_DesignBasisDataImport.Remark = txtRemark.Text;
hJGL_DesignBasisDataImport.CreateMan = this.CurrUser.PersonId;
hJGL_DesignBasisDataImport.CreateDate = DateTime.Now.ToString("yyyy-MM-dd HH-mm-ss");
BLL.HJGL_DesignBasisDataImportService.AddHJGL_DesignBasisDataImport(hJGL_DesignBasisDataImport);
BLL.HJGL_DesignBasisDataImportVerSionLogService.UpdateVersion(this.CurrUser.LoginProjectId, unitworkId, (decimal)hJGL_DesignBasisDataImport.Version, DataClassification);
}
else //补充导入
{
AddView_HJGL_WeldJoint(PipelineList);
Model.HJGL_DesignBasisDataImport hJGL_DesignBasisDataImport = new Model.HJGL_DesignBasisDataImport();
hJGL_DesignBasisDataImport.DesignBasisDataImportId = SQLHelper.GetNewID();
hJGL_DesignBasisDataImport.ProjectId = this.CurrUser.LoginProjectId;
hJGL_DesignBasisDataImport.UnitWorkId = unitworkId;
hJGL_DesignBasisDataImport.ImportType = "0";
hJGL_DesignBasisDataImport.DataClassification = DataClassification;
hJGL_DesignBasisDataImport.FileName = FileName;
hJGL_DesignBasisDataImport.FilePath = filePath.Replace(rootPath, ""); ;
hJGL_DesignBasisDataImport.FileType = BLL.HJGL_DesignBasisDataImportService.GetFileType(FileName);
hJGL_DesignBasisDataImport.Version = BLL.HJGL_DesignBasisDataImportService.GetNowVersionByUnitWorkId(unitworkId, DataClassification);
hJGL_DesignBasisDataImport.Remark = txtRemark.Text;
hJGL_DesignBasisDataImport.CreateMan = this.CurrUser.PersonId;
hJGL_DesignBasisDataImport.CreateDate = DateTime.Now.ToString("yyyy-MM-dd HH-mm-ss");
BLL.HJGL_DesignBasisDataImportService.AddHJGL_DesignBasisDataImport(hJGL_DesignBasisDataImport);
BLL.HJGL_DesignBasisDataImportVerSionLogService.UpdateVersion(this.CurrUser.LoginProjectId, unitworkId, (decimal)hJGL_DesignBasisDataImport.Version, DataClassification);
}
ShowNotify("导入成功!", MessageBoxIcon.Success);
PipelineService.RestPipelineAndJoints(this.CurrUser.LoginProjectId);
PageContext.RegisterStartupScript(ActiveWindow.GetHidePostBackReference());
}
else
{
ShowNotify("请先将错误数据修正,再重新导入提交!", MessageBoxIcon.Warning);
}
}
public void AddView_HJGL_WeldJoint(List<Model.View_HJGL_WeldJoint> PipelineList)
{
string unitworkId = Request.Params["UnitWorkId"];
addPipelines(PipelineList, unitworkId);
addHJGL_WeldJoints(PipelineList, unitworkId);
}
//public void AddView_HJGL_WeldJoint(List<Model.View_HJGL_WeldJoint> PipelineList)
//{
// string unitworkId = Request.Params["UnitWorkId"];
// var getPipeline = from x in Funs.DB.View_HJGL_WeldJoint where x.UnitWorkId== unitworkId select x;
// List<Model.HJGL_WeldJoint> weldJoints_add = new List<Model.HJGL_WeldJoint>();
// for (int i = 0; i < PipelineList.Count(); i++)
// {
// var pipeLineId = string.Empty;
// var WeldJointId = string.Empty;
// Model.HJGL_Pipeline pipeline = new Model.HJGL_Pipeline();
// pipeline.PipelineId = PipelineList[i].PipelineId;
// pipeline.ProjectId = this.CurrUser.LoginProjectId;
// pipeline.UnitId = PipelineList[i].UnitId;
// pipeline.UnitWorkId = PipelineList[i].UnitWorkId;
// pipeline.PipelineCode = PipelineList[i].PipelineCode;
// pipeline.SingleName = PipelineList[i].SingleName;
// pipeline.SingleNumber = PipelineList[i].SingleNumber;
// pipeline.MediumId = PipelineList[i].MediumId;
// pipeline.PipingClassId = PipelineList[i].PipingClassId;
// pipeline.DetectionRateId = PipelineList[i].DetectionRateId;
// pipeline.DetectionType = PipelineList[i].DetectionType;
// pipeline.DesignPress = PipelineList[i].DesignPress;
// pipeline.DesignTemperature = PipelineList[i].DesignTemperature;
// pipeline.TestMedium = PipelineList[i].TestMedium;
// pipeline.TestPressure = PipelineList[i].TestPressure;
// pipeline.PressurePipingClassId = PipelineList[i].PressurePipingClassId;
// pipeline.PipeLenth = PipelineList[i].PipeLenth;
// pipeline.LeakMedium = PipelineList[i].LeakMedium;
// pipeline.LeakPressure = PipelineList[i].LeakPressure;
// pipeline.VacuumPressure = PipelineList[i].VacuumPressure;
// pipeline.PCMedium = PipelineList[i].PCMedium;
// pipeline.MaterialId = PipelineList[i].MaterialId;
// pipeline.Remark = PipelineList[i].Remark;
// var isExistPipelineCode = getPipeline.FirstOrDefault(x => x.PipelineCode == pipeline.PipelineCode && x.UnitWorkId == Request.Params["UnitWorkId"]);
// if (isExistPipelineCode != null) // 更新管线
// {
// pipeLineId = isExistPipelineCode.PipelineId;
// pipeline.PipelineId = isExistPipelineCode.PipelineId;
// BLL.PipelineService.UpdatePipeline(pipeline);
// }
// else // 增加管线
// {
// pipeLineId = SQLHelper.GetNewID();
// pipeline.PipelineId = pipeLineId;
// BLL.PipelineService.AddPipeline(pipeline);
// }
// Model.HJGL_WeldJoint weldJoint = new Model.HJGL_WeldJoint();
// weldJoint.PipelineId = pipeLineId;
// weldJoint.WeldJointCode = PipelineList[i].WeldJointCode;
// weldJoint.PipelineCode = PipelineList[i].PipelineCode;
// weldJoint.Material1Id = PipelineList[i].Material1Id;
// weldJoint.Material2Id = PipelineList[i].Material2Id;
// weldJoint.Dia = PipelineList[i].Dia;
// weldJoint.Size = PipelineList[i].Size;
// weldJoint.Thickness = PipelineList[i].Thickness;
// weldJoint.Specification = PipelineList[i].Specification;
// weldJoint.WeldTypeId = PipelineList[i].WeldTypeId;
// weldJoint.DetectionTypeId = PipelineList[i].DetectionTypeId;
// weldJoint.JointAttribute = PipelineList[i].JointAttribute;
// weldJoint.ProjectId= PipelineList[i].ProjectId;
// var isExistJot = getPipeline.FirstOrDefault(x => x.PipelineId == pipeLineId && x.WeldJointCode == PipelineList[i].WeldJointCode);
// if (isExistJot != null) // 更新焊口
// {
// weldJoint.WeldJointId = isExistJot.WeldJointId;
// BLL.WeldJointService.UpdateWeldJoint(weldJoint);
// }
// else // 增加焊口
// {
// weldJoint.WeldJointId=SQLHelper.GetNewID();
// weldJoints_add.Add(weldJoint);
// //BLL.WeldJointService.AddWeldJoint(weldJoint);
// }
// }
// if (weldJoints_add.Count>0)
// {
// BLL.WeldJointService.AddBulkWeldJoint(weldJoints_add);
// }
//}
#endregion
void addPipelines(List<Model.View_HJGL_WeldJoint> PipelineList, string UnitWorkId)
{
// var getPipeline = from x in Funs.DB.View_HJGL_WeldJoint where x.UnitWorkId == UnitWorkId select x;
var pipelines = (from x in PipelineList
select new Model.HJGL_Pipeline
{
PipelineId = x.PipelineId,
ProjectId = this.CurrUser.LoginProjectId,
UnitId = x.UnitId,
UnitWorkId = x.UnitWorkId,
PipelineCode = x.PipelineCode,
SingleName = x.SingleName,
SingleNumber = x.SingleNumber,
MediumId = x.MediumId,
PipingClassId = x.PipingClassId,
DetectionRateId = x.DetectionRateId,
DetectionType = x.DetectionType,
DesignPress = x.DesignPress,
DesignTemperature = x.DesignTemperature,
TestMedium = x.TestMedium,
TestPressure = x.TestPressure,
PressurePipingClassId = x.PressurePipingClassId,
PipeLenth = x.PipeLenth,
LeakMedium = x.LeakMedium,
LeakPressure = x.LeakPressure,
VacuumPressure = x.VacuumPressure,
PCMedium = x.PCMedium,
MaterialId = x.MaterialId,
Remark = x.Remark,
FlowingSection=x.FlowingSection
}).DistinctBy(temp => new
{
temp.PipelineId,
temp.ProjectId,
temp.UnitId,
temp.UnitWorkId,
temp.PipelineCode,
temp.SingleName,
temp.SingleNumber,
temp.MediumId,
temp.PipingClassId,
temp.DetectionRateId,
temp.DetectionType,
temp.DesignPress,
temp.DesignTemperature,
temp.TestMedium,
temp.TestPressure,
temp.PressurePipingClassId,
temp.PipeLenth,
temp.LeakMedium,
temp.LeakPressure,
temp.VacuumPressure,
temp.PCMedium,
temp.MaterialId,
temp.Remark,
temp.FlowingSection
}).ToList();
for (int i = 0; i < pipelines.Count(); i++)
{
Model.HJGL_Pipeline pipeline = new Model.HJGL_Pipeline();
pipeline.PipelineId = pipelines[i].PipelineId;
pipeline.ProjectId = this.CurrUser.LoginProjectId;
pipeline.UnitId = pipelines[i].UnitId;
pipeline.UnitWorkId = pipelines[i].UnitWorkId;
pipeline.PipelineCode = pipelines[i].PipelineCode;
pipeline.SingleName = pipelines[i].SingleName;
pipeline.SingleNumber = pipelines[i].SingleNumber;
pipeline.MediumId = pipelines[i].MediumId;
pipeline.PipingClassId = pipelines[i].PipingClassId;
pipeline.DetectionRateId = pipelines[i].DetectionRateId;
pipeline.DetectionType = pipelines[i].DetectionType;
pipeline.DesignPress = pipelines[i].DesignPress;
pipeline.DesignTemperature = pipelines[i].DesignTemperature;
pipeline.TestMedium = pipelines[i].TestMedium;
pipeline.TestPressure = pipelines[i].TestPressure;
pipeline.PressurePipingClassId = pipelines[i].PressurePipingClassId;
pipeline.PipeLenth = pipelines[i].PipeLenth;
pipeline.LeakMedium = pipelines[i].LeakMedium;
pipeline.LeakPressure = pipelines[i].LeakPressure;
pipeline.VacuumPressure = pipelines[i].VacuumPressure;
pipeline.PCMedium = pipelines[i].PCMedium;
pipeline.MaterialId = pipelines[i].MaterialId;
pipeline.Remark = pipelines[i].Remark;
pipeline.FlowingSection = pipelines[i].FlowingSection;
var isExistPipelineCode = PipelineService.GetPipelineByCode(pipeline.PipelineCode, pipeline.UnitWorkId);
if (isExistPipelineCode!=null) // 更新管线
{
pipeline.PipelineId = isExistPipelineCode.PipelineId;
BLL.PipelineService.UpdatePipeline(pipeline);
}
else // 增加管线
{
pipeline.PipelineId = SQLHelper.GetNewID();
BLL.PipelineService.AddPipeline(pipeline);
}
}
}
void addHJGL_WeldJoints(List<Model.View_HJGL_WeldJoint> PipelineList, string UnitWorkId)
{
var getpipelines= from y in Funs.DB.HJGL_Pipeline where y.UnitWorkId== UnitWorkId select y;
List<Model.HJGL_WeldJoint> weldJoints_add = new List<Model.HJGL_WeldJoint>();
var weldJoints = (from x in PipelineList
select new Model.HJGL_WeldJoint
{
WeldJointCode = x.WeldJointCode,
PipelineCode = x.PipelineCode,
Material1Id = x.Material1Id,
Material2Id = x.Material2Id,
Dia = x.Dia,
DNDia=x.DNDia,
Size = x.Size,
Thickness = x.Thickness,
Specification = x.Specification,
WeldTypeId = x.WeldTypeId,
DetectionTypeId = x.DetectionTypeId,
JointAttribute = x.JointAttribute,
ProjectId = this.CurrUser.LoginProjectId
}).DistinctBy(temp => new
{
temp.WeldJointCode ,
temp.PipelineCode ,
temp.Material1Id ,
temp.Material2Id ,
temp.Dia,
temp.DNDia,
temp.Size,
temp.Thickness,
temp.Specification,
temp.WeldTypeId,
temp.DetectionTypeId,
temp.JointAttribute,
temp.ProjectId
}).ToList();
for (int i = 0; i < weldJoints.Count(); i++)
{
Model.HJGL_WeldJoint weldJoint = new Model.HJGL_WeldJoint();
weldJoint.PipelineId = getpipelines.Where(x=>x.PipelineCode== weldJoints[i].PipelineCode).FirstOrDefault().PipelineId;
weldJoint.WeldJointCode = weldJoints[i].WeldJointCode;
weldJoint.PipelineCode = weldJoints[i].PipelineCode;
weldJoint.Material1Id = weldJoints[i].Material1Id;
weldJoint.Material2Id = weldJoints[i].Material2Id;
weldJoint.Dia = weldJoints[i].Dia;
weldJoint.DNDia = weldJoints[i].DNDia;
weldJoint.Size = weldJoints[i].Size;
weldJoint.Thickness = weldJoints[i].Thickness;
weldJoint.Specification = weldJoints[i].Specification;
weldJoint.WeldTypeId = weldJoints[i].WeldTypeId;
weldJoint.DetectionTypeId = weldJoints[i].DetectionTypeId;
weldJoint.JointAttribute = weldJoints[i].JointAttribute;
weldJoint.ProjectId = weldJoints[i].ProjectId;
var isExistJot = WeldJointService.GetWeldJointsByWeldJointCode(weldJoint.PipelineId, weldJoint.WeldJointCode);
if (isExistJot != null) // 更新焊口
{
weldJoint.WeldJointId = isExistJot.WeldJointId;
BLL.WeldJointService.UpdateWeldJoint(weldJoint);
}
else // 增加焊口
{
weldJoint.WeldJointId = SQLHelper.GetNewID();
weldJoints_add.Add(weldJoint);
//BLL.WeldJointService.AddWeldJoint(weldJoint);
}
}
if (weldJoints_add.Count > 0)
{
BLL.WeldJointService.AddBulkWeldJoint(weldJoints_add);
}
}
/// <summary>
/// 恢复版本
/// </summary>
/// <param name="unitworkId"></param>
/// <param name="version"></param>
private void RestoreVersion(string unitworkId, decimal version)
{
var model = BLL.HJGL_DesignBasisDataImportService.GetDataByUnitWorkIdAndVersion(unitworkId, version, DataClassification);
if (model != null && model.Count > 0)
{
foreach (var item in model)
{
string rootPath = Server.MapPath("~/");
// initFullPath = rootPath + initPath;
string filePath = rootPath + item.FilePath;
ImportXlsToData(filePath);
BLL.PipelineMatService.DeletePipeLineMatByUnitWorkId(unitworkId);//删除原有管线对应材料
BLL.WeldJointService.DeleteWeldJointByUnitWorkId(unitworkId);////删除原有管线对应焊口
BLL.PipelineService.DeletePipelineByUnitworkId(unitworkId);//删除原有管线
AddView_HJGL_WeldJoint(PipelineList);//导入数据
PipelineList.Clear();
}
BLL.HJGL_DesignBasisDataImportVerSionLogService.UpdateVersion(this.CurrUser.LoginProjectId, unitworkId, version, DataClassification);
PipelineService.RestPipelineAndJoints(this.CurrUser.LoginProjectId);
ShowNotify("恢复成功!");
}
}
protected void btnRestore_Click(object sender, EventArgs e)
{
if (string.IsNullOrEmpty(drpVersion.SelectedValue))
{
ShowNotify("请选择版本");
}
else
{
PageContext.RegisterStartupScript(Confirm.GetShowReference("确定恢复至该版本吗?", String.Empty, MessageBoxIcon.Question, PageManager1.GetCustomEventReference(false, "Confirm_Restore"), PageManager1.GetCustomEventReference("Confirm_Cancel")));
}
}
#region
/// <summary>
/// 下载模板按钮
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void btnDownLoad_Click(object sender, EventArgs e)
{
PageContext.RegisterStartupScript(Confirm.GetShowReference("确定下载导入模板吗?", String.Empty, MessageBoxIcon.Question, PageManager1.GetCustomEventReference(false, "Confirm_OK"), PageManager1.GetCustomEventReference("Confirm_Cancel")));
}
/// <summary>
/// 下载导入模板
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void PageManager1_CustomEvent(object sender, CustomEventArgs e)
{
if (e.EventArgument == "Confirm_OK")
{
string rootPath = Server.MapPath("~/");
string uploadfilepath = rootPath + Const.PDMSPipelineTemplateUrl;
string filePath = Const.PDMSPipelineTemplateUrl;
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();
}
else if (e.EventArgument == "Confirm_Restore")
{
var unitworkid = Request.Params["UnitWorkId"];
decimal version = decimal.Parse(drpVersion.SelectedValue);
RestoreVersion(unitworkid, version);
}
}
#endregion
protected string ConvertDetectionType(object detectionType)
{
string detectionName = string.Empty;
if (detectionType != null)
{
string[] types = detectionType.ToString().Split('|');
foreach (string t in types)
{
var type = BLL.Base_DetectionTypeService.GetDetectionTypeByDetectionTypeId(t);
if (type != null)
{
detectionName += type.DetectionTypeCode + ",";
}
}
}
if (detectionName != string.Empty)
{
return detectionName.Substring(0, detectionName.Length - 1);
}
else
{
return "";
}
}
#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);
this.Grid1.DataSource = PipelineList;
this.Grid1.DataBind();
Grid1.RecordCount = PipelineList.Count;
}
#endregion
}
}