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 定义变量 /// /// 上传预设的虚拟路径 /// private string initPath = Const.ExcelUrl; /// /// 安装组件集合 /// public static List PipelineList = new List(); /// /// 错误集合 /// public static string errorInfos = string.Empty; /// /// 导入数据分类(管线) /// public static string DataClassification = "Pipeline"; public enum ButtonState { Check = 0, Import = 1, Save = 2 } public static int State; #endregion #region 加载 /// /// 加载页面 /// /// /// 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 listStr = new List(); 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 审核 /// /// 审核 /// /// /// 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) { ShowNotify("'" + ex.Message + "'", MessageBoxIcon.Warning); } } #region 读Excel提取数据 /// /// 从Excel提取数据--》Dataset /// /// Excel文件路径名 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 { ShowNotify(reposedata.message); } } catch (Exception exc) { Response.Write(exc); //return null; // return dt; } //finally //{ // conn.Close(); // conn.Dispose(); //} } #endregion #region 将Dataset的数据导入数据库 /// /// 将Dataset的数据导入数据库 /// /// 数据集 /// 数据集行数 /// 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 pds, int count) { Model.ResponeData responeData = new Model.ResponeData(); string result = string.Empty; //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 += "第" + (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 += "第" + (i + 1).ToString() + "行," + "介质名称" + "," + "此项为必填项!" + "|"; } else { var Medium = getMedium.FirstOrDefault(x => x.MediumName == col3); if (Medium == null) { result += "第" + (i + 1).ToString() + "行," + "该介质不存在!" + "|"; } else { pipeline.MediumId = Medium.MediumId; pipeline.MediumName = col3; } } string col4 = pds[i].E; if (string.IsNullOrEmpty(col4)) { result += "第" + (i + 1).ToString() + "行," + "管道等级" + "," + "此项为必填项!" + "|"; } else { var PipeLineClass = getPipeLineClass.FirstOrDefault(x => x.PipingClassCode == col4); if (PipeLineClass == null) { result += "第" + (i + 1).ToString() + "行," + "该管道等级不存在!" + "|"; } 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() + "行," + "该探伤比例不存在!" + "|"; } else { pipeline.DetectionRateId = DetectionRate.DetectionRateId; pipeline.DetectionRateCode = col5; } } else { result += "第" + (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 + "】不存在!" + "|"; } 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 + 1).ToString() + "行," + "探伤类型" + "," + "此项为必填项!" + "|"; } string col7 = pds[i].H; if (!string.IsNullOrEmpty(col7)) { pipeline.DesignTemperature = col7; } string col8 = pds[i].I; if (!string.IsNullOrEmpty(col8)) { pipeline.DesignPress = col8; } string col9 = pds[i].J; if (!string.IsNullOrEmpty(col9)) { var TestMedium = getTestMedium.FirstOrDefault(x => x.MediumName == col9); if (TestMedium == null) { result += "第" + (i + 1).ToString() + "行," + "该压力试验介质不存在!" + "|"; } else { pipeline.TestMedium = TestMedium.TestMediumId; pipeline.TestMediumName = col9; } } string col10 = pds[i].K; if (!string.IsNullOrEmpty(col10)) { pipeline.TestPressure = col10; } string col11 = pds[i].L; if (!string.IsNullOrEmpty(col11)) { var PressurePipingClass = getPressurePipingClass.FirstOrDefault(x => x.PressurePipingClassCode == col11); if (PressurePipingClass == null) { result += "第" + (i + 1).ToString() + "行," + "该压力管道级别不存在!" + "|"; } else { pipeline.PressurePipingClassId = PressurePipingClass.PressurePipingClassId; pipeline.PressurePipingClassCode = col11; } } string col12 = pds[i].M; if (!string.IsNullOrEmpty(col12)) { try { var PipeLenth = Funs.GetNewDecimal(col12); pipeline.PipeLenth = PipeLenth; } catch (Exception) { result += "第" + (i + 1).ToString() + "行," + "管线长度(m)格式输入有误" + "|"; } } string col13 = pds[i].N; if (!string.IsNullOrEmpty(col13)) { var LeakMedium = getLeakMedium.FirstOrDefault(x => x.MediumName == col13); if (LeakMedium == null) { result += "第" + (i + 1).ToString() + "行," + "该泄露试验介质不存在!" + "|"; } else { pipeline.LeakMedium = LeakMedium.TestMediumId; pipeline.LeakMediumName = col13; } } string col14 = pds[i].O; if (!string.IsNullOrEmpty(col14)) { pipeline.LeakPressure = col14; } string col15 = pds[i].P; if (!string.IsNullOrEmpty(col15)) { var PurgeMethod = getPurgeMethod.FirstOrDefault(x => x.PurgeMethodCode == col15); if (PurgeMethod == null) { result += "第" + (i + 1).ToString() + "行," + "该吹洗要求不存在!" + "|"; } else { pipeline.PCMedium = PurgeMethod.PurgeMethodId; pipeline.PurgeMethodCode = col15; } } string col16 = pds[i].Q; if (!string.IsNullOrEmpty(col16)) { pipeline.VacuumPressure = col16; } string col17 = pds[i].R; if (!string.IsNullOrEmpty(col17)) { var material = getMaterial.FirstOrDefault(x => x.MaterialCode == col17); if (material == null) { result += "第" + (i + 1).ToString() + "行," + "该材质不存在!" + "|"; } else { pipeline.MaterialId = material.MaterialId; pipeline.PipeMaterialCode = col17; } } pipeline.Remark = pds[i].S; // 以下是焊口信息 string col19 = pds[i].T; if (string.IsNullOrEmpty(col19)) { result += "第" + (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 = pds[i].U.ToString(); if (!string.IsNullOrEmpty(col20)) { var material = getMaterial.FirstOrDefault(x => x.MaterialCode == col20); if (material == null) { result += "第" + (i + 1).ToString() + "行," + "该材质1不存在!" + "|"; } else { pipeline.Material1Id = material.MaterialId; pipeline.Material1Code = col20; } } else { result += "第" + (i + 1).ToString() + "行," + "材质1" + "," + "此项为必填项!" + "|"; } string col21 = pds[i].V.ToString(); if (!string.IsNullOrEmpty(col21)) { var material = getMaterial.FirstOrDefault(x => x.MaterialCode == col21); if (material == null) { result += "第" + (i + 1).ToString() + "行," + "该材质2不存在!" + "|"; } else { pipeline.Material2Id = material.MaterialId; pipeline.Material2Code = col21; } } else { result += "第" + (i + 1).ToString() + "行," + "材质2" + "," + "此项为必填项!" + "|"; } string col22 = pds[i].W; string col27 = pds[i].AB; 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 += "第" + (i + 1).ToString() + "行," + "外径格式输入有误" + "|"; } } else { result += "第" + (i + 1).ToString() + "行," + "外径" + "," + "此项为必填项!" + "|"; } } else { if (!string.IsNullOrEmpty(col22)) { pipeline.DNDia = col22; } else { result += "第" + (i + 1).ToString() + "行," + "DN公称直径" + "," + "此项为必填项!" + "|"; } } string col23 = pds[i].X; if (!string.IsNullOrEmpty(col23)) { try { decimal Size = Convert.ToDecimal(col23); pipeline.Size = Size; } catch (Exception) { result += "第" + (i + 1).ToString() + "行," + "达因格式输入有误" + "|"; } } else { result += "第" + (i + 1).ToString() + "行," + "达因" + "," + "此项为必填项!" + "|"; } string col24 = pds[i].Y; 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 + 1).ToString() + "行," + "壁厚格式输入有误" + "|"; } } else { result += "第" + (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 = pds[i].Z; if (!string.IsNullOrEmpty(col25)) { var weldType = getWeldType.FirstOrDefault(x => x.WeldTypeCode == col25); if (weldType == null) { result += "第" + (i + 1).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 + 1).ToString() + "行," + "焊缝类型" + "," + "此项为必填项!" + "|"; } string col26 = pds[i].AA; if (!string.IsNullOrEmpty(col26)) { var JointAttribute = BLL.DropListService.HJGL_JointAttribute(); var q = JointAttribute.Where(x => x.Value == col26); if (q == null) { result += "第" + (i + 1).ToString() + "行," + "该焊口属性不存在!" + "|"; } else { pipeline.JointAttribute = col26; } } else { result += "第" + (i + 1).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; } } else { responeData.code = 0; responeData.message = "导入数据为空!"; } return responeData; } #endregion #endregion #region 导入 /// /// 导入 /// /// /// 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 提交 /// /// 提交 /// /// /// 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 PipelineList) { string unitworkId = Request.Params["UnitWorkId"]; addPipelines(PipelineList, unitworkId); addHJGL_WeldJoints(PipelineList, unitworkId); } //public void AddView_HJGL_WeldJoint(List PipelineList) //{ // string unitworkId = Request.Params["UnitWorkId"]; // var getPipeline = from x in Funs.DB.View_HJGL_WeldJoint where x.UnitWorkId== unitworkId select x; // List weldJoints_add = new List(); // 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 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 }).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 }).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; 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 PipelineList, string UnitWorkId) { var getpipelines= from y in Funs.DB.HJGL_Pipeline where y.UnitWorkId== UnitWorkId select y; List weldJoints_add = new List(); 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); } } /// /// 恢复版本 /// /// /// 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 下载模板 /// /// 下载模板按钮 /// /// /// 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"))); } /// /// 下载导入模板 /// /// /// 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 分页选择下拉改变事件 /// /// 分页选择下拉改变事件 /// /// /// 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 } }