using BLL; using System; using System.Collections.Generic; using System.Data; using System.Data.OleDb; using System.IO; using System.Linq; using System.Web.UI.WebControls; namespace FineUIPro.Web.HJGL.WeldingManage { public partial class CheckManageDataIn : PageBase { #region 定义变量 /// /// 检测方法 /// public string DetectionTypeId { get { return (string)ViewState["DetectionTypeId"]; } set { ViewState["DetectionTypeId"] = value; } } /// /// 检测方法代号 /// public string DetectionTypeCode { get { return (string)ViewState["DetectionTypeCode"]; } set { ViewState["DetectionTypeCode"] = value; } } /// /// 上传预设的虚拟路径 /// private string initPath = Const.ExcelUrl; /// /// 导入模版文件原始的虚拟路径 /// private string initTemplatePath = string.Empty; /// /// 错误集合 /// public static List errorInfos = new List(); #endregion #region 加载 /// /// 加载页面 /// /// /// protected void Page_Load(object sender, EventArgs e) { if (!IsPostBack) { this.DetectionTypeId = Request.Params["detectionTypeId"]; if (!string.IsNullOrEmpty(this.DetectionTypeId)) { var deectionType = BLL.Base_DetectionTypeService.GetDetectionTypeByDetectionTypeId(this.DetectionTypeId); if (deectionType != null) { this.DetectionTypeCode = deectionType.DetectionTypeCode; } } if (errorInfos != null) { errorInfos.Clear(); } } } #endregion #region 模板下载 /// /// 模板下载 /// /// /// protected void imgbtnUpload_Click(object sender, EventArgs e) { var detectionType = BLL.Base_DetectionTypeService.GetDetectionTypeByDetectionTypeId(this.DetectionTypeId); if (detectionType != null) { if (detectionType.DetectionTypeCode == "RT") { initTemplatePath = Const.RTCheckManageDataInTemplateUrl; } else if (detectionType.DetectionTypeCode == "PT") { initTemplatePath = Const.PTCheckManageDataInTemplateUrl; } } string uploadfilepath = Server.MapPath("~/") + initTemplatePath; string fileName = Path.GetFileName(initTemplatePath); FileInfo info = new FileInfo(uploadfilepath); if (info.Exists) { long fileSize = info.Length; Response.Clear(); Response.ContentType = "application/x-zip-compressed"; Response.AddHeader("Content-Disposition", "attachment;filename=" + System.Web.HttpUtility.UrlEncode(fileName, System.Text.Encoding.UTF8)); Response.AddHeader("Content-Length", fileSize.ToString()); Response.TransmitFile(uploadfilepath, 0, fileSize); Response.Flush(); Response.Close(); } else { ShowNotify("文件不存在!", MessageBoxIcon.Warning); } } #endregion #region 审核 /// /// 审核 /// /// /// protected void btnAudit_Click(object sender, EventArgs e) { try { if (this.FileExcel.HasFile == false) { Alert.ShowInTop("请您选择Excel文件!", MessageBoxIcon.Warning); return; } string IsXls = Path.GetExtension(FileExcel.FileName).ToString().Trim().ToLower(); if (IsXls != ".xls") { Alert.ShowInTop("只可以选择Excel文件!", MessageBoxIcon.Warning); return; } if (errorInfos != null) { errorInfos.Clear(); } 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; FileExcel.PostedFile.SaveAs(filePath); ImportXlsToData(filePath); } catch (Exception ex) { Alert.ShowInTop(ex.Message); } } #region 读Excel提取数据 /// /// 从Excel提取数据--》Dataset /// /// Excel文件路径名 private void ImportXlsToData(string fileName) { 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.SelectCommand.CommandTimeout = 1200; oleAdMaster.Fill(ds, "m_tableName"); oleAdMaster.Dispose(); oleDBConn.Close(); oleDBConn.Dispose(); if (this.DetectionTypeCode == "RT") { AddDatasetToSQL(ds.Tables[0], 35); } else if (this.DetectionTypeCode == "PT") { AddDatasetToSQL(ds.Tables[0], 34); } } catch (Exception ex) { throw ex; } } #endregion #endregion /// /// 将Dataset的数据导入数据库 /// /// 数据集 /// 数据集列数 /// private bool AddDatasetToSQL(DataTable pds, int Cols) { string result = string.Empty; int ic, ir; ic = pds.Columns.Count; if (ic < Cols) { throw new Exception("导入Excel格式错误!Excel只有" + ic.ToString().Trim() + "列"); } //委托单位 var trustUnits = from x in Funs.DB.Project_ProjectUnit join y in Funs.DB.Base_Unit on x.UnitId equals y.UnitId where x.ProjectId == this.CurrUser.LoginProjectId //&& x.UnitType == "2" select y; //装置 var installations = from x in Funs.DB.Project_Installation where x.ProjectId == this.CurrUser.LoginProjectId select x; //区域 var workareas = from x in Funs.DB.ProjectData_WorkArea where x.ProjectId == this.CurrUser.LoginProjectId select x; //委托 var trusts = from x in Funs.DB.CH_Trust where x.ProjectId == this.CurrUser.LoginProjectId select x; //管线 var isoInfos = from x in Funs.DB.PW_IsoInfo where x.ProjectId == this.CurrUser.LoginProjectId select x; //焊口 var jointInfos = from x in Funs.DB.PW_JointInfo where x.ProjectId == this.CurrUser.LoginProjectId select x; //焊工号 var welders = from x in Funs.DB.BS_Welder where x.ProjectId == this.CurrUser.LoginProjectId select x; //材质 var materials = from x in Funs.DB.Base_Material select x; //检测比例 var detectionRates = from x in Funs.DB.Base_DetectionRate select x; //焊接方法 var weldingMotheds = from x in Funs.DB.Base_WeldingMethod select x; //坡口形式 var grooveTypes = from x in Funs.DB.Base_GrooveType select x; ir = pds.Rows.Count; if (pds != null && ir > 0) { for (int i = 0; i < ir; i++) { //string unitId = string.Empty; string installationId = string.Empty; string workareaId = string.Empty; string isoid = string.Empty; if (string.IsNullOrEmpty(pds.Rows[i][0].ToString().Trim())) { result += (i + 2).ToString() + "," + "委托单位" + "," + "此项为必填项!" + "|"; } else { var unit = trustUnits.FirstOrDefault(e => e.UnitName == pds.Rows[i][0].ToString().Trim()); if (unit == null) { result += (i + 2).ToString() + "," + "委托单位[" + pds.Rows[i][0].ToString().Trim() + "],不存在|"; } //else //{ // unitId = unit.UnitId; //} } if (string.IsNullOrEmpty(pds.Rows[i][1].ToString())) { result += (i + 2).ToString() + "," + "承包单位" + "," + "此项为必填项!" + "|"; } if (string.IsNullOrEmpty(pds.Rows[i][2].ToString().Trim())) { result += (i + 2).ToString() + "," + "单元/装置名称" + "," + "此项为必填项!" + "|"; } else { var installation = installations.FirstOrDefault(e => e.InstallationName == pds.Rows[i][2].ToString().Trim()); if (installation == null) { result += (i + 2).ToString() + "," + "单元/装置名称[" + pds.Rows[i][2].ToString().Trim() + "],不存在|"; } else { installationId = installation.InstallationId; } } if (string.IsNullOrEmpty(pds.Rows[i][3].ToString().Trim())) { result += (i + 2).ToString() + "," + "区号" + "," + "此项为必填项!" + "|"; } else { var workarea = workareas.FirstOrDefault(e => e.InstallationId == installationId && e.WorkAreaCode == pds.Rows[i][3].ToString().Trim()); if (workarea == null) { result += (i + 2).ToString() + "," + "区号[" + pds.Rows[i][3].ToString().Trim() + "],该装置下不存在|"; } else { workareaId = workarea.WorkAreaId; } } if (string.IsNullOrEmpty(pds.Rows[i][4].ToString().Trim())) { result += (i + 2).ToString() + "," + "委托编号" + "," + "此项为必填项!" + "|"; } else { var trust = trusts.FirstOrDefault(e => e.CH_TrustCode == pds.Rows[i][4].ToString().Trim()); if (trust == null) { result += (i + 2).ToString() + "," + "委托编号[" + pds.Rows[i][4].ToString().Trim() + "],不存在|"; } } if (string.IsNullOrEmpty(pds.Rows[i][5].ToString())) { result += (i + 2).ToString() + "," + "委托日期" + "," + "此项为必填项!" + "|"; } else { try { } catch (Exception) { result += (i + 2).ToString() + "," + "委托日期" + "," + "格式不正确!" + "|"; } } if (string.IsNullOrEmpty(pds.Rows[i][6].ToString())) { result += (i + 2).ToString() + "," + "检件名称" + "," + "此项为必填项!" + "|"; } if (this.DetectionTypeCode == "RT") { //if (string.IsNullOrEmpty(pds.Rows[i][7].ToString())) //{ // result += (i + 2).ToString() + "," + "检测批号" + "," + "此项为必填项!" + "|"; //} if (string.IsNullOrEmpty(pds.Rows[i][8].ToString().Trim())) { result += (i + 2).ToString() + "," + "检件编号(管线号)" + "," + "此项为必填项!" + "|"; } else { var iso = isoInfos.FirstOrDefault(e => e.WorkAreaId == workareaId && e.ISO_IsoNo == pds.Rows[i][8].ToString().Trim()); if (iso == null) { result += (i + 2).ToString() + "," + "检件编号(管线号)[" + pds.Rows[i][8].ToString().Trim() + "],该区域下不存在|"; } else { isoid = iso.ISO_ID; } } if (string.IsNullOrEmpty(pds.Rows[i][9].ToString().Trim())) { result += (i + 2).ToString() + "," + "焊口号" + "," + "此项为必填项!" + "|"; } else { var joint = jointInfos.FirstOrDefault(e => e.ISO_ID == isoid && e.JOT_JointNo == pds.Rows[i][9].ToString().Trim()); if (joint == null) { result += (i + 2).ToString() + "," + "焊口号[" + pds.Rows[i][9].ToString().Trim() + "],该管线下不存在|"; } } if (string.IsNullOrEmpty(pds.Rows[i][10].ToString().Trim())) { result += (i + 2).ToString() + "," + "焊工号" + "," + "此项为必填项!" + "|"; } else { var welder = welders.FirstOrDefault(e => e.WED_Code == pds.Rows[i][11].ToString().Trim()); if (welder == null) { result += (i + 2).ToString() + "," + "焊工号[" + pds.Rows[i][11].ToString().Trim() + "],不存在|"; } } if (string.IsNullOrEmpty(pds.Rows[i][12].ToString())) { result += (i + 2).ToString() + "," + "检件规格" + "," + "此项为必填项!" + "|"; } if (string.IsNullOrEmpty(pds.Rows[i][13].ToString().Trim())) { result += (i + 2).ToString() + "," + "检件材质" + "," + "此项为必填项!" + "|"; } else { var material = materials.FirstOrDefault(e => e.MaterialCode == pds.Rows[i][13].ToString().Trim()); if (material == null) { result += (i + 2).ToString() + "," + "检件材质[" + pds.Rows[i][13].ToString().Trim() + "],不存在|"; } } if (string.IsNullOrEmpty(pds.Rows[i][14].ToString().Trim())) { result += (i + 2).ToString() + "," + "比例(%)" + "," + "此项为必填项!" + "|"; } else { var rate = detectionRates.FirstOrDefault(e => e.DetectionRate == pds.Rows[i][14].ToString()); if (rate == null) { result += (i + 2).ToString() + "," + "比例(%)[" + pds.Rows[i][14].ToString().Trim() + "],不存在|"; } } if (string.IsNullOrEmpty(pds.Rows[i][15].ToString())) { result += (i + 2).ToString() + "," + "合格级别" + "," + "此项为必填项!" + "|"; } //if (string.IsNullOrEmpty(pds.Rows[i][15].ToString())) //{ // result += (i + 2).ToString() + "," + "焊口数" + "," + "此项为必填项!" + "|"; //} if (string.IsNullOrEmpty(pds.Rows[i][17].ToString())) { result += (i + 2).ToString() + "," + "拍片性质" + "," + "此项为必填项!" + "|"; } if (string.IsNullOrEmpty(pds.Rows[i][18].ToString())) { result += (i + 2).ToString() + "," + "片位号" + "," + "此项为必填项!" + "|"; } //if (string.IsNullOrEmpty(pds.Rows[i][18].ToString())) //{ // result += (i + 2).ToString() + "," + "缺陷性质" + "," + "此项为必填项!" + "|"; //} //if (string.IsNullOrEmpty(pds.Rows[i][19].ToString())) //{ // result += (i + 2).ToString() + "," + "缺陷定量" + "," + "此项为必填项!" + "|"; //} //if (string.IsNullOrEmpty(pds.Rows[i][20].ToString())) //{ // result += (i + 2).ToString() + "," + "评定级别" + "," + "此项为必填项!" + "|"; //} if (string.IsNullOrEmpty(pds.Rows[i][22].ToString())) { result += (i + 2).ToString() + "," + "是否合格" + "," + "此项为必填项!" + "|"; } //if (string.IsNullOrEmpty(pds.Rows[i][22].ToString())) //{ // result += (i + 2).ToString() + "," + "备注" + "," + "此项为必填项!" + "|"; //} if (string.IsNullOrEmpty(pds.Rows[i][24].ToString())) { result += (i + 2).ToString() + "," + "拍片日期" + "," + "此项为必填项!" + "|"; } //if (string.IsNullOrEmpty(pds.Rows[i][24].ToString())) //{ // result += (i + 2).ToString() + "," + "拍片人" + "," + "此项为必填项!" + "|"; //} //if (string.IsNullOrEmpty(pds.Rows[i][25].ToString())) //{ // result += (i + 2).ToString() + "," + "源种类" + "," + "此项为必填项!" + "|"; //} //if (string.IsNullOrEmpty(pds.Rows[i][26].ToString())) //{ // result += (i + 2).ToString() + "," + "底片规格" + "," + "此项为必填项!" + "|"; //} //if (string.IsNullOrEmpty(pds.Rows[i][27].ToString())) //{ // result += (i + 2).ToString() + "," + "结果单编号" + "," + "此项为必填项!" + "|"; //} //if (string.IsNullOrEmpty(pds.Rows[i][28].ToString())) //{ // result += (i + 2).ToString() + "," + "结果单日期" + "," + "此项为必填项!" + "|"; //} //if (string.IsNullOrEmpty(pds.Rows[i][29].ToString())) //{ // result += (i + 2).ToString() + "," + "报告编号" + "," + "此项为必填项!" + "|"; //} //if (string.IsNullOrEmpty(pds.Rows[i][30].ToString())) //{ // result += (i + 2).ToString() + "," + "报告日期" + "," + "此项为必填项!" + "|"; //} //if (string.IsNullOrEmpty(pds.Rows[i][31].ToString())) //{ // result += (i + 2).ToString() + "," + "合格数量" + "," + "此项为必填项!" + "|"; //} //if (string.IsNullOrEmpty(pds.Rows[i][32].ToString())) //{ // result += (i + 2).ToString() + "," + "不合格数" + "," + "此项为必填项!" + "|"; //} if (string.IsNullOrEmpty(pds.Rows[i][34].ToString().Trim())) { result += (i + 2).ToString() + "," + "焊接方法" + "," + "此项为必填项!" + "|"; } else { var weldthoed = weldingMotheds.FirstOrDefault(e => e.WeldingMethodCode == pds.Rows[i][34].ToString().Trim()); if (weldthoed == null) { result += (i + 2).ToString() + "," + "焊接方法[" + pds.Rows[i][34].ToString().Trim() + "],不存在|"; } } } else if (this.DetectionTypeCode == "PT") { if (string.IsNullOrEmpty(pds.Rows[i][9].ToString().Trim())) { result += (i + 2).ToString() + "," + "检件编号(管线号)" + "," + "此项为必填项!" + "|"; } else { var iso = isoInfos.FirstOrDefault(e => e.WorkAreaId == workareaId && e.ISO_IsoNo == pds.Rows[i][9].ToString().Trim()); if (iso == null) { result += (i + 2).ToString() + "," + "检件编号(管线号)[" + pds.Rows[i][9].ToString().Trim() + "],该区域下不存在|"; } else { isoid = iso.ISO_ID; } } if (string.IsNullOrEmpty(pds.Rows[i][10].ToString().Trim())) { result += (i + 2).ToString() + "," + "焊口号" + "," + "此项为必填项!" + "|"; } else { var joint = jointInfos.FirstOrDefault(e => e.ISO_ID == isoid && e.JOT_JointNo == pds.Rows[i][10].ToString().Trim()); if (joint == null) { result += (i + 2).ToString() + "," + "焊口号[" + pds.Rows[i][10].ToString().Trim() + "],该管线下不存在|"; } } if (string.IsNullOrEmpty(pds.Rows[i][12].ToString().Trim())) { result += (i + 2).ToString() + "," + "焊工号" + "," + "此项为必填项!" + "|"; } else { var welder = welders.FirstOrDefault(e => e.WED_Code == pds.Rows[i][12].ToString().Trim()); if (welder == null) { result += (i + 2).ToString() + "," + "焊工号[" + pds.Rows[i][12].ToString().Trim() + "],不存在|"; } } if (string.IsNullOrEmpty(pds.Rows[i][14].ToString().Trim())) { result += (i + 2).ToString() + "," + "检件材质" + "," + "此项为必填项!" + "|"; } else { var material = materials.FirstOrDefault(e => e.MaterialCode == pds.Rows[i][14].ToString().Trim()); if (material == null) { result += (i + 2).ToString() + "," + "检件材质[" + pds.Rows[i][14].ToString().Trim() + "],不存在|"; } } if (string.IsNullOrEmpty(pds.Rows[i][15].ToString().Trim())) { result += (i + 2).ToString() + "," + "比例(%)" + "," + "此项为必填项!" + "|"; } else { var rate = detectionRates.FirstOrDefault(e => e.DetectionRate == pds.Rows[i][15].ToString()); if (rate == null) { result += (i + 2).ToString() + "," + "比例(%)[" + pds.Rows[i][15].ToString().Trim() + "],不存在|"; } } if (string.IsNullOrEmpty(pds.Rows[i][16].ToString().Trim())) { result += (i + 2).ToString() + "," + "焊接方法" + "," + "此项为必填项!" + "|"; } else { var weldthoed = weldingMotheds.FirstOrDefault(e => e.WeldingMethodCode == pds.Rows[i][16].ToString().Trim()); if (weldthoed == null) { result += (i + 2).ToString() + "," + "焊接方法[" + pds.Rows[i][16].ToString().Trim() + "],不存在|"; } } if (!string.IsNullOrEmpty(pds.Rows[i][17].ToString().Trim())) { var groove = grooveTypes.FirstOrDefault(e => e.GrooveTypeCode == pds.Rows[i][17].ToString().Trim()); if (groove == null) { result += (i + 2).ToString() + "," + "坡口形式[" + pds.Rows[i][17].ToString().Trim() + "],不存在|"; } } if (string.IsNullOrEmpty(pds.Rows[i][28].ToString().Trim())) { result += (i + 2).ToString() + "," + "结果" + "," + "此项为必填项!" + "|"; } } //a++; } if (!string.IsNullOrEmpty(result)) { result = result.Substring(0, result.LastIndexOf("|")); } errorInfos.Clear(); if (!string.IsNullOrEmpty(result)) { string results = result; List errorInfoList = results.Split('|').ToList(); foreach (var item in errorInfoList) { string[] errors = item.Split(','); Model.ErrorInfo errorInfo = new Model.ErrorInfo(); errorInfo.Row = errors[0]; errorInfo.Column = errors[1]; errorInfo.Reason = errors[2]; errorInfos.Add(errorInfo); } if (errorInfos.Count > 0) { Grid1.DataSource = errorInfos; Grid1.DataBind(); } } else { ShowNotify("审核完成,请点击导入!", MessageBoxIcon.Success); } } else { throw new Exception("导入数据为空!"); } return true; } #region 导入 /// /// 导入 /// /// /// protected void btnSave_Click(object sender, EventArgs e) { if (errorInfos.Count <= 0) { string rootPath = Server.MapPath("~/"); string initFullPath = rootPath + initPath; if (!Directory.Exists(initFullPath)) { Directory.CreateDirectory(initFullPath); } string filePath = initFullPath + this.hdfileName.Text; ImportXlsToData2(filePath); } else { Alert.ShowInTop("请先将错误数据修正,再重新导入保存!", MessageBoxIcon.Warning); } } #region 读Excel提取数据 /// /// 从Excel提取数据--》Dataset /// /// Excel文件路径名 private void ImportXlsToData2(string fileName) { 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.SelectCommand.CommandTimeout = 1200; oleAdMaster.Fill(ds, "m_tableName"); oleAdMaster.Dispose(); oleDBConn.Close(); oleDBConn.Dispose(); if (this.DetectionTypeCode == "RT") { AddDatasetToSQL2(ds.Tables[0], 35); } else if (this.DetectionTypeCode == "PT") { AddDatasetToSQL2(ds.Tables[0], 34); } } catch (Exception ex) { throw ex; } } #endregion /// /// 将Dataset的数据导入数据库 /// /// 数据集 /// 数据集列数 /// private bool AddDatasetToSQL2(DataTable pds, int Cols) { string result = string.Empty; string dReportID = string.Empty; string dateStr = string.Empty; int ic, ir; ic = pds.Columns.Count; if (ic < Cols) { throw new Exception("导入Excel格式错误!Excel只有" + ic.ToString().Trim() + "列"); } List checkStaticList = new List(); //委托单位 var trustUnits = from x in Funs.DB.Project_ProjectUnit join y in Funs.DB.Base_Unit on x.UnitId equals y.UnitId where x.ProjectId == this.CurrUser.LoginProjectId //&& x.UnitType == "2" select y; //装置 var installations = from x in Funs.DB.Project_Installation where x.ProjectId == this.CurrUser.LoginProjectId select x; //区域 var workareas = from x in Funs.DB.ProjectData_WorkArea where x.ProjectId == this.CurrUser.LoginProjectId select x; //委托 var trusts = from x in Funs.DB.CH_Trust where x.ProjectId == this.CurrUser.LoginProjectId select x; //管线 var isoInfos = from x in Funs.DB.PW_IsoInfo where x.ProjectId == this.CurrUser.LoginProjectId select x; //焊口 var jointInfos = from x in Funs.DB.PW_JointInfo where x.ProjectId == this.CurrUser.LoginProjectId select x; //焊工号 var welders = from x in Funs.DB.BS_Welder where x.ProjectId == this.CurrUser.LoginProjectId select x; //材质 var materials = from x in Funs.DB.Base_Material select x; //检测比例 var detectionRates = from x in Funs.DB.Base_DetectionRate select x; //焊接方法 var weldingMotheds = from x in Funs.DB.Base_WeldingMethod select x; //坡口形式 var grooveTypes = from x in Funs.DB.Base_GrooveType select x; ir = pds.Rows.Count; if (pds != null && ir > 0) { for (int i = 0; i < ir; i++) { string row8 = string.Empty; string row9 = string.Empty; string row10 = string.Empty; string row11 = string.Empty; string row12 = string.Empty; string row13 = string.Empty; string row14 = string.Empty; string row15 = string.Empty; string row16 = string.Empty; string row17 = string.Empty; string row18 = string.Empty; string row19 = string.Empty; string row20 = string.Empty; string row21 = string.Empty; string row22 = string.Empty; string row23 = string.Empty; string row24 = string.Empty; string row25 = string.Empty; string row26 = string.Empty; string row27 = string.Empty; string row28 = string.Empty; string row29 = string.Empty; string row30 = string.Empty; string row31 = string.Empty; string row32 = string.Empty; string row33 = string.Empty; string row34 = string.Empty; string row0= pds.Rows[i][0].ToString().Trim();//委托单位 string row1 = pds.Rows[i][1].ToString().Trim();//承包单位 string row2 = pds.Rows[i][2].ToString().Trim();//单元/装置名称 string row3 = pds.Rows[i][3].ToString().Trim();//区号 string row4 = pds.Rows[i][4].ToString().Trim();// 委托编号 string row5 = pds.Rows[i][5].ToString().Trim();//委托日期 string row6 = pds.Rows[i][6].ToString().Trim();//检件名称 string row7 = pds.Rows[i][7].ToString().Trim();//检测批号 if (this.DetectionTypeCode == "RT") { row8 = pds.Rows[i][8].ToString().Trim();//检件编号(管线号) row9 = pds.Rows[i][9].ToString().Trim();//焊口号 row10 = pds.Rows[i][10].ToString().Trim();//焊口标志 row11 = pds.Rows[i][11].ToString().Trim();//焊工号 row12 = pds.Rows[i][12].ToString().Trim();//检件规格 row13 = pds.Rows[i][13].ToString().Trim();//检件材质 row14 = pds.Rows[i][14].ToString().Trim();//比例(%) row15 = pds.Rows[i][15].ToString().Trim();//合格级别 row16 = pds.Rows[i][16].ToString().Trim();//焊口数 row17= pds.Rows[i][17].ToString().Trim();//拍片性质 row18 = pds.Rows[i][18].ToString().Trim();//片位号 row19 = pds.Rows[i][19].ToString().Trim();//缺陷性质 row20 = pds.Rows[i][20].ToString().Trim();//缺陷定量 row21 = pds.Rows[i][21].ToString().Trim();//评定级别 row22 = pds.Rows[i][22].ToString().Trim();//是否合格 row23 = pds.Rows[i][23].ToString().Trim();//备注 row24 = pds.Rows[i][24].ToString().Trim();//拍片日期 row25 = pds.Rows[i][25].ToString().Trim();//拍片人 row26 = pds.Rows[i][26].ToString().Trim();//源种类 row27 = pds.Rows[i][27].ToString().Trim();//底片规格 row28 = pds.Rows[i][28].ToString().Trim();//结果单编号 row29 = pds.Rows[i][29].ToString().Trim();//结果单日期 row30 = pds.Rows[i][30].ToString().Trim();//报告编号 row31 = pds.Rows[i][31].ToString().Trim();//报告日期 row32 = pds.Rows[i][32].ToString().Trim();//合格数量 row33 = pds.Rows[i][33].ToString().Trim();//不合格数 row34 = pds.Rows[i][34].ToString().Trim();//焊接方法 } else if (this.DetectionTypeCode=="PT") { row8 = pds.Rows[i][8].ToString().Trim();//检测时机 row9 = pds.Rows[i][9].ToString().Trim();//检件编号(管线号) row10 = pds.Rows[i][10].ToString().Trim();//焊口号 row11 = pds.Rows[i][11].ToString().Trim();//焊口标志 row12 = pds.Rows[i][12].ToString().Trim();//焊工号 row13 = pds.Rows[i][13].ToString().Trim();//检件规格 row14 = pds.Rows[i][14].ToString().Trim();//检件材质 row15 = pds.Rows[i][15].ToString().Trim();//比例(%) row16 = pds.Rows[i][16].ToString().Trim();//焊接方法 row17 = pds.Rows[i][17].ToString().Trim();//坡口形式 row18 = pds.Rows[i][18].ToString().Trim();//级别 row19 = pds.Rows[i][19].ToString().Trim();//工艺卡序号 row20 = pds.Rows[i][20].ToString().Trim();//工作量米 row21 = pds.Rows[i][21].ToString().Trim();//工作量道 row22 = pds.Rows[i][22].ToString().Trim();//检测日期 row23 = pds.Rows[i][23].ToString().Trim();//检测面 row24 = pds.Rows[i][24].ToString().Trim();//检测人 row25 = pds.Rows[i][25].ToString().Trim();//缺陷情况或缺陷示意图编号 row26 = pds.Rows[i][26].ToString().Trim();//评定级别 row27 = pds.Rows[i][27].ToString().Trim();//结果 row28 = pds.Rows[i][28].ToString().Trim();//结果单编号 row29 = pds.Rows[i][29].ToString().Trim();//结果单日期 row30 = pds.Rows[i][30].ToString().Trim();//报告编号 row31 = pds.Rows[i][31].ToString().Trim();//报告日期 row32 = pds.Rows[i][32].ToString().Trim();//工作量 row33 = pds.Rows[i][33].ToString().Trim();//工程进度款 } Model.CH_CheckStatic checkStatic = new Model.CH_CheckStatic(); checkStatic.CheckStaticId = Guid.NewGuid().ToString(); checkStatic.ProjectId = this.CurrUser.LoginProjectId; checkStatic.ProjectName = BLL.ProjectService.GetProjectNameByProjectId(this.CurrUser.LoginProjectId); checkStatic.DetectionTypeCode = this.DetectionTypeCode; checkStatic.CreateDate = DateTime.Now; var trustUnit = trustUnits.FirstOrDefault(e => e.UnitName == row0);//委托单位 if (trustUnit != null) { checkStatic.TrustUnitId = trustUnit.UnitId; checkStatic.TrustUnitName = trustUnit.UnitName; } checkStatic.UnitName= row1;//承包单位 var unit = BLL.UnitService.getUnitByUnitName(row1); if (unit != null) { checkStatic.UnidId = unit.UnitId; } //单元/装置名称 var insta = installations.FirstOrDefault(e => e.InstallationName == row2); if (insta!=null) { checkStatic.InstallationName = row2; checkStatic.Installation_ID = insta.InstallationId; } //区域 var workarea = workareas.FirstOrDefault(e => e.WorkAreaCode == row3); if (workarea!=null) { checkStatic.WorkAreaCode = row3; checkStatic.WorkAreaId = workarea.WorkAreaId; } var trust = trusts.FirstOrDefault(e => e.CH_TrustCode == row4); if (trust != null) { checkStatic.CH_TrustCode = row4; checkStatic.CH_TrustID = trust.CH_TrustID; if (!string.IsNullOrEmpty(row5)) { checkStatic.Trust_Date = Funs.GetNewDateTime(row5); } else { checkStatic.Trust_Date = trust.CH_TrustDate; } } checkStatic.ItemName = row6;//检件名称 checkStatic.BatchNum = row7;//检测批号 if (this.DetectionTypeCode == "RT") { var iso = isoInfos.FirstOrDefault(e => e.ISO_IsoNo == row8); if (iso != null) { checkStatic.ISO_IsoNo = row8; checkStatic.ISO_ID = iso.ISO_ID; } var joint = jointInfos.FirstOrDefault(e => e.JOT_JointNo == row9); if (joint != null) { checkStatic.JOT_JointNo = row9; checkStatic.JOT_ID = joint.JOT_ID; } checkStatic.JointNoFlag = row10;//焊口标志 var welder = welders.FirstOrDefault(e => e.WED_Code == row11); if (welder != null) { checkStatic.WED_ID = welder.WED_ID; checkStatic.WED_Code = row11; } checkStatic.JOT_JointDesc = row12;//检件规格 //检件材质 var material = materials.FirstOrDefault(e => e.MaterialCode == row13); if (material != null) { checkStatic.MaterialId = material.MaterialId; checkStatic.MaterialCode = row13; } //比例(%) var rate = detectionRates.FirstOrDefault(e => e.DetectionRate == row14); if (rate != null) { checkStatic.DetectionRateId = rate.DetectionRateId; checkStatic.DetectionRateCode = row14; } checkStatic.QualificationLevel = row15;//合格级别 checkStatic.JointCount = Funs.GetNewInt(row16);//焊口数 checkStatic.FilmingNature = row17;//拍片性质 checkStatic.FilmNum = row18;//片位号 checkStatic.DefectType = row19;//缺陷性质 checkStatic.DefectNum = row20;//缺陷定量 checkStatic.EvaluateLevel = row21;//评定级别 checkStatic.CheckResult = row22;//是否合格 checkStatic.Remark = row23;//备注 checkStatic.CheckDate = Funs.GetNewDateTime(row24);//拍片日期 checkStatic.FilmMan = row25;//拍片人 checkStatic.SourceCategory = row26;//源种类 checkStatic.FilmSpecifications = row27;//底片规格 checkStatic.CheckResultNum = row28;//结果单编号 checkStatic.CheckResultDate = Funs.GetNewDateTime(row29);//结果单日期 checkStatic.ReportNo = row30;//报告编号 if (!string.IsNullOrEmpty(row31)) { checkStatic.ReportDate = Funs.GetNewDateTime(row31);//报告日期 } else { checkStatic.ReportDate = DateTime.Now; } checkStatic.PassCount = Funs.GetNewInt(row32);//合格数量 checkStatic.NoPassCount = Funs.GetNewInt(row33);//不合格数 //焊接方法 var weldingMethod = weldingMotheds.FirstOrDefault(e => e.WeldingMethodCode == row34); if (weldingMethod != null) { checkStatic.WME_ID = weldingMethod.WeldingMethodId; checkStatic.WeldingMethodCode = row34; } } else if (this.DetectionTypeCode=="PT") { checkStatic.DetectionTime = row8; var iso = isoInfos.FirstOrDefault(e => e.ISO_IsoNo == row9); if (iso != null) { checkStatic.ISO_IsoNo = row9; checkStatic.ISO_ID = iso.ISO_ID; } var joint = jointInfos.FirstOrDefault(e => e.JOT_JointNo == row10); if (joint != null) { checkStatic.JOT_JointNo = row10; checkStatic.JOT_ID = joint.JOT_ID; } checkStatic.JointNoFlag = row11;//焊口号标志 var welder = welders.FirstOrDefault(e => e.WED_Code == row12); if (welder != null) { checkStatic.WED_ID = welder.WED_ID; checkStatic.WED_Code = row12; } checkStatic.JOT_JointDesc = row13;//检件规格 //检件材质 var material = materials.FirstOrDefault(e => e.MaterialCode == row14); if (material != null) { checkStatic.MaterialId = material.MaterialId; checkStatic.MaterialCode = row14; } //比例(%) var rate = detectionRates.FirstOrDefault(e => e.DetectionRate == row15); if (rate != null) { checkStatic.DetectionRateId = rate.DetectionRateId; checkStatic.DetectionRateCode = row15; } //焊接方法 var weldingMethod = weldingMotheds.FirstOrDefault(e => e.WeldingMethodCode == row16); if (weldingMethod != null) { checkStatic.WME_ID = weldingMethod.WeldingMethodId; checkStatic.WeldingMethodCode = row16; } //坡口形式 var grooveType = grooveTypes.FirstOrDefault(e => e.GrooveTypeCode == row17); if (grooveType!=null) { checkStatic.GrooveTypeId = grooveType.GrooveTypeId; checkStatic.GrooveTypeCode = row17; } checkStatic.QualificationLevel = row18;//级别 checkStatic.ProcessCardNum = row19;//工艺卡序号 checkStatic.WorkMeter = row20;//工作量米 checkStatic.WorkloadTrack = row21;//工作量道 checkStatic.CheckDate = Funs.GetNewDateTime(row22);//检测日期 checkStatic.DetectionSurface = row23;//检测面 checkStatic.FilmMan = row24;//检测人 checkStatic.DefectCode = row25;//缺陷情况或缺陷示意图编号 checkStatic.EvaluateLevel = row26;//评定级别 checkStatic.CheckResult = row27;//结果 checkStatic.CheckResultNum = row28;//结果单编号 checkStatic.CheckResultDate = Funs.GetNewDateTime(row29);//结果单日期 checkStatic.ReportNo = row30;//报告编号 if (!string.IsNullOrEmpty(row31)) { checkStatic.ReportDate = Funs.GetNewDateTime(row31);//报告日期 } else { checkStatic.ReportDate = DateTime.Now; } checkStatic.Workloads = row32;//工作量 checkStatic.ProgressMoney = row33;//工程进度款 } checkStaticList.Add(checkStatic); } Funs.DB.CH_CheckStatic.InsertAllOnSubmit(checkStaticList); Funs.DB.SubmitChanges(); ShowNotify("导入成功!", MessageBoxIcon.Success); PageContext.RegisterStartupScript(ActiveWindow.GetHidePostBackReference()); } else { throw new Exception("导入数据为空!"); } return true; } #endregion } }