using BLL; using BLL.Common; using System; using System.Collections.Generic; using System.Data; using System.Data.OleDb; using System.Data.SqlClient; using System.IO; using System.Linq; using System.Threading; namespace FineUIPro.Web.HJGL.DataIn { public partial class DataInTable : PageBase { #region 定义项 /// /// 是否PDMS /// private string IsPDMS { get { return (string)ViewState["IsPDMS"]; } set { ViewState["IsPDMS"] = value; } } #endregion #region 加载页面 /// /// 加载页面 /// /// /// protected void Page_Load(object sender, EventArgs e) { if (!IsPostBack) { Funs.DropDownPageSize(this.ddlPageSize); if (percent == null) { percent = new Dictionary(); } this.id.Text = this.CurrUser.UserId; this.IsPDMS = "0"; var set = BLL.Project_SysSetService.GetSysSetBySetId("8", this.CurrUser.LoginProjectId); if (set != null && set.IsAuto == true) { this.IsPDMS = "1"; this.FileExcel.EmptyText = "请上传PDMS模板的EXCEl格式文件"; } this.ddlPageSize.SelectedValue = Grid1.PageSize.ToString(); // 绑定表格 this.BindGrid(); } else if (GetRequestEventArgument() == "reloadGrid") { BindGrid(); } } #endregion #region 绑定数据 /// /// 绑定数据 /// private void BindGrid() { string strSql = @"SELECT TempId,ProjectId,UserId,Time,RowNo,ToopValue,Value1,Value2,Value3,Value4,Value5,Value6,Value7,Value8,Value9,Value10" + @" ,Value11,Value12,Value13,Value14,Value15,Value16,Value17,Value18,Value19,Value20,Value21,Value22,Value23,Value24,Value25,Value26,Value27,Value28,Value29,Value30" + @" ,Value31,Value32,Value33,Value34,Value35,Value36,Value37,Value38,Value39,Value40,Value41,Value42,Value43,Value44,Value45,Value46,Value47,Value48,Value49,Value50,ToopValue,Type" + @" FROM Sys_DataInTemp " + @" WHERE ProjectId=@ProjectId AND UserId=@UserId AND Type=@Type"; List listStr = new List(); listStr.Add(new SqlParameter("@ProjectId", this.CurrUser.LoginProjectId)); listStr.Add(new SqlParameter("@UserId", this.CurrUser.UserId)); listStr.Add(new SqlParameter("@Type", this.IsPDMS)); //if (!string.IsNullOrEmpty(this.txtValue1.Text.Trim())) //{ // strSql += " AND Value1 LIKE @Value1"; // listStr.Add(new SqlParameter("@Value1", "%" + this.txtValue1.Text.Trim() + "%")); //} //if (!string.IsNullOrEmpty(this.txtValue2.Text.Trim())) //{ // strSql += " AND Value2 LIKE @Value2"; // listStr.Add(new SqlParameter("@Value2", "%" + this.txtValue2.Text.Trim() + "%")); //} //if (!string.IsNullOrEmpty(this.txtValue3.Text.Trim())) //{ // strSql += " AND Value3 LIKE @Value3"; // listStr.Add(new SqlParameter("@Value3", "%" + this.txtValue3.Text.Trim() + "%")); //} //if (!string.IsNullOrEmpty(this.txtValue4.Text.Trim())) //{ // strSql += " AND Value4 LIKE @Value4"; // listStr.Add(new SqlParameter("@Value4", "%" + this.txtValue4.Text.Trim() + "%")); //} //if (!string.IsNullOrEmpty(this.txtToopValue.Text.Trim())) //{ // strSql += " AND ToopValue LIKE @ToopValue"; // listStr.Add(new SqlParameter("@ToopValue", "%" + this.txtToopValue.Text.Trim() + "%")); //} SqlParameter[] parameter = listStr.ToArray(); DataTable tb = SQLHelper.GetDataTableRunText(strSql, parameter); // 2.获取当前分页数据 //var table = this.GetPagedDataTable(Grid1, tb1); Grid1.RecordCount = tb.Rows.Count; //tb = GetFilteredTable(Grid1.FilteredData, tb); var table = this.GetPagedDataTable(Grid1, tb); Grid1.DataSource = table; Grid1.DataBind(); var dataInTempAll = from x in Funs.DB.Sys_DataInTemp where x.ProjectId == this.CurrUser.LoginProjectId && x.UserId == this.CurrUser.UserId && x.Type == this.IsPDMS select x; for (int i = 0; i < Grid1.Rows.Count; i++) { var dataInTemp = dataInTempAll.FirstOrDefault(x => x.TempId == Grid1.Rows[i].DataKeys[0].ToString()); if (dataInTemp != null) { if (!string.IsNullOrEmpty(dataInTemp.ToopValue)) { Grid1.Rows[i].RowCssClass = "red"; } } } if (this.Grid1.Columns.Count() > 0) { if (this.IsPDMS == "1") ///如果是PDMS { this.Grid1.Columns[7].Hidden = true;//材质2 this.Grid1.Columns[10].Hidden = true;//焊接区域 this.Grid1.Columns[11].Hidden = true;//焊口属性 this.Grid1.Columns[12].Hidden = true;//达因数 this.Grid1.Columns[13].Hidden = true;//规格 this.Grid1.Columns[15].Hidden = true;//焊接方法代码 this.Grid1.Columns[17].Hidden = true;//焊条代号 this.Grid1.Columns[18].Hidden = true;//焊丝代号 this.Grid1.Columns[19].HeaderText = "流水介质"; this.Grid1.Columns[23].Hidden = true;//坡口代号 this.Grid1.Columns[25].HeaderText = "组件类型"; this.Grid1.Columns[26].Hidden = true;//组件二代号 this.Grid1.Columns[27].Hidden = true;//炉批号1 this.Grid1.Columns[28].Hidden = true;//炉批号2 this.Grid1.Columns[30].Hidden = true;//预热温度 this.Grid1.Columns[31].Hidden = true;//是否热处理 this.Grid1.Columns[32].Hidden = true;//热处理编号 this.Grid1.Columns[33].Hidden = true;//焊接位置 this.Grid1.Columns[34].Hidden = true;//外径 this.Grid1.Columns[35].Hidden = true;//硬度检测比例(数值) this.Grid1.Columns[36].Hidden = true;//焊接气体保护 } else { this.Grid1.Columns[37].Hidden = true;//组件数量 this.Grid1.Columns[38].Hidden = true;//公称直径 } } var errData = from x in dataInTempAll where x.ToopValue != null select x; this.lbDataCout.Text = errData.Count().ToString(); } #endregion #region 双击事件 /// /// Grid行双击事件 /// /// /// protected void Grid1_RowDoubleClick(object sender, GridRowClickEventArgs e) { if (Grid1.SelectedRowIndexArray.Length == 0) { Alert.ShowInTop("请选择一条记录!", MessageBoxIcon.Warning); return; } if (CommonService.GetAllButtonPowerList(this.CurrUser.LoginProjectId, this.CurrUser.UserId, Const.HJGL_DataInMenuId, Const.BtnIn)) { PageContext.RegisterStartupScript(Window1.GetShowReference(String.Format("DataInEdit.aspx?TempId={0}", Grid1.SelectedRowID, "维护 - "))); } else { ShowNotify("您没有这个权限,请与管理员联系!", MessageBoxIcon.Warning); } } #endregion #region 导入信息 维护 /// /// 导入信息编辑 /// /// /// protected void btnMenuEdit_Click(object sender, EventArgs e) { if (BLL.CommonService.GetAllButtonPowerList(this.CurrUser.LoginProjectId, this.CurrUser.UserId, BLL.Const.HJGL_DataInMenuId, BLL.Const.BtnIn)) { if (Grid1.SelectedRowIndexArray.Length == 0) { Alert.ShowInTop("请选择一条记录!", MessageBoxIcon.Warning); return; } PageContext.RegisterStartupScript(Window1.GetShowReference(String.Format("DataInEdit.aspx?TempId={0}", Grid1.SelectedRowID, "维护 - "))); } else { ShowNotify("您没有这个权限,请与管理员联系!", MessageBoxIcon.Warning); } } /// /// 删除按钮 /// /// /// protected void btnMenuDelete_Click(object sender, EventArgs e) { if (CommonService.GetAllButtonPowerList(this.CurrUser.LoginProjectId, this.CurrUser.UserId, Const.HJGL_DataInMenuId, Const.BtnIn)) { if (Grid1.SelectedRowIndexArray.Length == 0) { Alert.ShowInTop("请选择一条记录!", MessageBoxIcon.Warning); return; } foreach (int rowIndex in Grid1.SelectedRowIndexArray) { string rowID = Grid1.DataKeys[rowIndex][0].ToString(); BLL.DataInTempService.DeleteDataInTempByDataInTempID(rowID); //BLL.Sys_LogService.AddLog(Const.System_7, this.CurrUser.LoginProjectId, this.CurrUser.UserId, "删除导入信息"); } ShowNotify("删除成功!", MessageBoxIcon.Success); this.BindGrid(); } else { Alert.ShowInTop("您没有这个权限,请与管理员联系!", MessageBoxIcon.Warning); return; } } #endregion #region 分页 排序 /// /// 分页 /// /// /// protected void Grid1_PageIndexChange(object sender, GridPageEventArgs e) { BindGrid(); } /// /// 分页显示条数下拉框 /// /// /// protected void ddlPageSize_SelectedIndexChanged(object sender, EventArgs e) { Grid1.PageSize = Convert.ToInt32(ddlPageSize.SelectedValue); BindGrid(); } /// /// 排序 /// /// /// protected void Grid1_Sort(object sender, FineUIPro.GridSortEventArgs e) { BindGrid(); } #endregion #region 文件上传 /// /// 文件上传 /// /// /// protected void imgbtnImport_Click(object sender, EventArgs e) { try { if (this.FileExcel.HasFile == false) { Response.Write(" "); //for (int i = 0; i < 10; i++) //{ // Response.Flush(); // Response.Write(" "); // System.Threading.Thread.Sleep(5000); // Response.Flush(); //} return; } string IsXls = Path.GetExtension(FileExcel.FileName).ToString().Trim().ToLower(); if (IsXls != ".xls") { Response.Write(""); return; } string rootPath = Server.MapPath("~/"); string initFullPath = rootPath + Const.ExcelUrl; if (!Directory.Exists(initFullPath)) { Directory.CreateDirectory(initFullPath); } string fileUrl = initFullPath + BLL.Funs.GetNewFileName() + IsXls; this.FileExcel.PostedFile.SaveAs(fileUrl); //string oleDBConnString = String.Empty; //oleDBConnString = "Provider=Microsoft.Jet.OLEDB.4.0;"; //oleDBConnString += "Data Source="; //oleDBConnString += fileUrl; //oleDBConnString += ";Extended Properties=Excel 8.0;"; ////oleDBConnString = "Provider=Microsoft.ACE.OLEDB.12.0;"; ////oleDBConnString += "Data Source="; ////oleDBConnString += fileUrl; ////oleDBConnString += ";Extended Properties='Excel 8.0;HDR=Yes;IMEX=1;'"; //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 = 3600; //oleAdMaster.Fill(ds, "m_tableName"); //oleAdMaster.Dispose(); //oleDBConn.Close(); //oleDBConn.Dispose(); //this.AddDatasetToSQL(ds.Tables[0]); DataTable dt = NPOIHelper.ExcelToDataTable1(fileUrl); this.AddDatasetToSQL(dt); if (!string.IsNullOrEmpty(fileUrl) && System.IO.File.Exists(fileUrl)) { System.IO.File.Delete(fileUrl);//删除上传的XLS文件 } this.FileExcel.Reset(); } catch (Exception ex) { ShowNotify(ex.Message, MessageBoxIcon.Warning); return; } } #endregion #region 导出按钮 /// 导出按钮 /// /// /// protected void btnOut_Click(object sender, EventArgs e) { Response.ClearContent(); string filename = Funs.GetNewFileName(); Response.AddHeader("content-disposition", "attachment; filename=" + System.Web.HttpUtility.UrlEncode("管线焊口" + filename, System.Text.Encoding.UTF8) + ".xls"); Response.ContentType = "application/excel"; Response.ContentEncoding = System.Text.Encoding.UTF8; Response.Write(GetGridTableHtml(Grid1)); Response.End(); } #endregion #region 将Dataset的数据导入数据库 /// /// 将Dataset的数据导入数据库 /// /// 数据集 /// 数据集列数 /// private void AddDatasetToSQL(DataTable pds) { if (pds != null && pds.Rows.Count > 0) { int ir = pds.Rows.Count; List newDataInTempList = new List(); for (int i = 0; i < ir; i++) { if (!string.IsNullOrEmpty(pds.Rows[i][3].ToString())) { Model.Sys_DataInTemp newDataInTemp = new Model.Sys_DataInTemp(); newDataInTemp.TempId = SQLHelper.GetNewID(typeof(Model.Sys_DataInTemp)); newDataInTemp.ProjectId = this.CurrUser.LoginProjectId; newDataInTemp.UserId = this.CurrUser.UserId; newDataInTemp.Time = System.DateTime.Now; newDataInTemp.Type = this.IsPDMS; newDataInTemp.RowNo = i + 2; newDataInTemp.Value1 = pds.Rows[i][0].ToString().Trim(); newDataInTemp.Value2 = pds.Rows[i][1].ToString().Trim(); newDataInTemp.Value3 = pds.Rows[i][2].ToString().Trim(); newDataInTemp.Value4 = pds.Rows[i][3].ToString().Trim(); newDataInTemp.Value5 = pds.Rows[i][4].ToString().Trim(); if (this.IsPDMS == "0") ////非PDMS 模板 { newDataInTemp.Value6 = pds.Rows[i][5].ToString().Trim(); newDataInTemp.Value7 = pds.Rows[i][6].ToString().Trim(); newDataInTemp.Value8 = pds.Rows[i][7].ToString().Trim(); newDataInTemp.Value9 = pds.Rows[i][8].ToString().Trim(); newDataInTemp.Value10 = pds.Rows[i][9].ToString().Trim(); newDataInTemp.Value11 = pds.Rows[i][10].ToString().Trim(); newDataInTemp.Value12 = pds.Rows[i][11].ToString().Trim(); newDataInTemp.Value13 = pds.Rows[i][12].ToString().Trim(); newDataInTemp.Value14 = pds.Rows[i][13].ToString().Trim(); newDataInTemp.Value15 = pds.Rows[i][14].ToString().Trim(); newDataInTemp.Value16 = pds.Rows[i][15].ToString().Trim(); newDataInTemp.Value17 = pds.Rows[i][16].ToString().Trim(); newDataInTemp.Value18 = pds.Rows[i][17].ToString().Trim(); newDataInTemp.Value19 = pds.Rows[i][18].ToString().Trim(); newDataInTemp.Value20 = pds.Rows[i][19].ToString().Trim(); newDataInTemp.Value21 = pds.Rows[i][20].ToString().Trim(); newDataInTemp.Value22 = pds.Rows[i][21].ToString().Trim(); newDataInTemp.Value23 = pds.Rows[i][22].ToString().Trim(); newDataInTemp.Value24 = pds.Rows[i][23].ToString().Trim(); newDataInTemp.Value25 = pds.Rows[i][24].ToString().Trim(); newDataInTemp.Value26 = pds.Rows[i][25].ToString().Trim(); newDataInTemp.Value27 = pds.Rows[i][26].ToString().Trim(); newDataInTemp.Value28 = pds.Rows[i][27].ToString().Trim(); newDataInTemp.Value29 = pds.Rows[i][28].ToString().Trim(); newDataInTemp.Value30 = pds.Rows[i][29].ToString().Trim(); newDataInTemp.Value31 = pds.Rows[i][30].ToString().Trim(); newDataInTemp.Value32 = pds.Rows[i][31].ToString().Trim(); newDataInTemp.Value33 = pds.Rows[i][32].ToString().Trim(); newDataInTemp.Value34 = pds.Rows[i][33].ToString().Trim(); newDataInTemp.Value35 = pds.Rows[i][34].ToString().Trim(); newDataInTemp.Value38 = pds.Rows[i][37].ToString().Trim(); newDataInTemp.Value39 = pds.Rows[i][36].ToString().Trim(); newDataInTemp.Value40 = pds.Rows[i][35].ToString().Trim(); newDataInTemp.Value41 = pds.Rows[i][38].ToString().Trim(); newDataInTemp.Value42 = pds.Rows[i][39].ToString().Trim(); newDataInTemp.Value43 = pds.Rows[i][40].ToString().Trim(); newDataInTemp.Value44 = pds.Rows[i][41].ToString().Trim(); } else { newDataInTemp.Value7 = pds.Rows[i][5].ToString().Trim(); newDataInTemp.Value20 = pds.Rows[i][6].ToString().Trim(); newDataInTemp.Value15 = pds.Rows[i][7].ToString().Trim(); newDataInTemp.Value21 = pds.Rows[i][8].ToString().Trim(); newDataInTemp.Value23 = pds.Rows[i][9].ToString().Trim();//等级 newDataInTemp.Value37 = pds.Rows[i][10].ToString().Trim();//公称直径 newDataInTemp.Value13 = pds.Rows[i][11].ToString().Trim();//壁厚 newDataInTemp.Value18 = pds.Rows[i][12].ToString().Trim();//流体介质 newDataInTemp.Value19 = pds.Rows[i][13].ToString().Trim();//单线图号 newDataInTemp.Value24 = pds.Rows[i][14].ToString().Trim(); //组件类型 newDataInTemp.Value36 = pds.Rows[i][15].ToString().Trim();//数量 newDataInTemp.Value8 = pds.Rows[i][14].ToString().Trim();//接头形式 newDataInTemp.Value28 = pds.Rows[i][17].ToString().Trim(); //所属管段 } newDataInTempList.Add(newDataInTemp); } } BLL.DataInTempService.AddDataInTemp(newDataInTempList); this.BindGrid(); ShowNotify("数据已导入临时表!", MessageBoxIcon.Success); } else { Alert.ShowInTop("导入数据为空!", MessageBoxIcon.Success); return; } } #endregion #region 保存审核事件 /// /// 保存审核事件 /// /// /// protected void btnSave_Click(object sender, EventArgs e) { Thread t = new Thread(new ThreadStart(() => { btnSaveMethod(this.CurrUser.LoginProjectId, this.CurrUser.UserId, this.IsPDMS); })); t.Start(); if (percent.ContainsKey(this.CurrUser.UserId)) { percent[CurrUser.UserId] = 0; } else { percent.Add(CurrUser.UserId, 0); } PageContext.RegisterStartupScript("printX()"); } protected void btnRefresh_Click(object sender, EventArgs e) { this.BindGrid(); } protected void btnSaveMethod(string LoginProjectId, string UserId, string IsPDMS) { //beginProgress(); var units = from x in Funs.DB.Base_Unit join y in Funs.DB.Project_ProjectUnit on x.UnitId equals y.UnitId where y.ProjectId == LoginProjectId select x; var workAreas = from x in Funs.DB.ProjectData_WorkArea where x.ProjectId == LoginProjectId select x; var steels = from x in Funs.DB.Base_Material select x; var materialTypes = from x in Funs.DB.Base_MaterialType select x; var rates = from x in Funs.DB.Base_DetectionRate select x; var types = from x in Funs.DB.Base_WeldType select x; var methods = from x in Funs.DB.Base_WeldingMethod select x; var materials = from x in Funs.DB.Base_Consumables select x; var services = from x in Funs.DB.Base_TestMedium select x; var slopeTypes = from x in Funs.DB.Base_GrooveType select x; var isoClasss = from x in Funs.DB.Base_PipingClass select x; var components = from x in Funs.DB.Base_Components select x; var dns = from x in Funs.DB.Base_DNCompare select x; var dataInTemp = from x in Funs.DB.Sys_DataInTemp where x.ProjectId == LoginProjectId && x.UserId == UserId && x.Type == IsPDMS select x; int okCount = 0; int i = 0; int ir = dataInTemp.Count(); string erreMessage = ""; foreach (var tempData in dataInTemp) { //if (i % (ir / 100 + 1) == 0 && i < ir && i > 0) //{ // setProgress(i / (ir / 100 + 1)); // //此处用线程休眠代替实际的操作,如加载数据等 // //System.Threading.Thread.Sleep(50); //} //i++; if (tempData != null) { i++; percent[UserId] = (int)(100 * i / ir); string errInfo = string.Empty; var isExitValue = Funs.DB.View_JointInfoAndIsoInfo.FirstOrDefault(x => x.ProjectId == this.CurrUser.LoginProjectId && x.UnitCode == tempData.Value1 && x.WorkAreaCode == tempData.Value2 && x.ISO_IsoNo == tempData.Value3 && x.JOT_JointNo == tempData.Value4); if (isExitValue == null || this.ckUpdate.Checked) { Model.PW_IsoInfo isoInfo = new Model.PW_IsoInfo(); ///管线 Model.PW_JointInfo jointInfo = new Model.PW_JointInfo(); ///焊口 jointInfo.JOT_JointStatus = "100"; isoInfo.Is_Standard = false; if (!string.IsNullOrEmpty(tempData.Value1)) { var unit = units.FirstOrDefault(x => x.UnitCode == tempData.Value1); if (unit == null) { errInfo += "单位代码[" + tempData.Value1 + "]不存在;"; } else { isoInfo.UnitId = unit.UnitId; } } else { errInfo += "单位代码为必填项;"; } if (!string.IsNullOrEmpty(tempData.Value2) && !string.IsNullOrEmpty(isoInfo.UnitId)) { var workArea = workAreas.FirstOrDefault(x => x.WorkAreaCode == tempData.Value2 && x.UnitId == isoInfo.UnitId); if (workArea == null) { errInfo += "工区编号[" + tempData.Value2 + "]该单位下不存在;"; } else { isoInfo.WorkAreaId = workArea.WorkAreaId; } } else { errInfo += "工区编号为必填项;"; } if (string.IsNullOrEmpty(tempData.Value3)) { errInfo += "管线代号此项为必填项!"; } else { isoInfo.ISO_IsoNo = tempData.Value3; } if (string.IsNullOrEmpty(tempData.Value4)) { errInfo += "焊口代号此项为必填项!"; } else { jointInfo.JOT_JointNo = tempData.Value4; } #region 通用 if (!string.IsNullOrEmpty(tempData.Value5)) { var materialType = materialTypes.FirstOrDefault(x => x.MaterialTypeCode == tempData.Value5); if (materialType == null) { errInfo += "材质类型代号[" + tempData.Value5 + "]不存在;"; } else { jointInfo.MaterialType = materialType.MaterialTypeId; } } if (!string.IsNullOrEmpty(tempData.Value8)) { jointInfo.Material1 = tempData.Value8; } if (!string.IsNullOrEmpty(tempData.Value9)) { jointInfo.Material2 = tempData.Value9; } if (!string.IsNullOrEmpty(tempData.Value6)) { var steel = steels.FirstOrDefault(x => x.MaterialCode == tempData.Value6); if (steel == null) { errInfo += "材质1代号[" + tempData.Value6 + "]不存在;"; } else { isoInfo.MaterialId = steel.MaterialId; jointInfo.MaterialId = steel.MaterialId; } } else { errInfo += "材质1代号为必填项;"; } if (!string.IsNullOrEmpty(tempData.Value10)) { var rate = rates.FirstOrDefault(x => x.DetectionRateCode == tempData.Value10); if (rate == null) { errInfo += "探伤比例[" + tempData.Value10 + "]不存在;"; } else { isoInfo.DetectionRateId = rate.DetectionRateId; jointInfo.DetectionRateId = rate.DetectionRateId; } } else { errInfo += "探伤比例为必填项;"; } if (!string.IsNullOrEmpty(tempData.Value41)) { if (tempData.Value41.Trim() == "是") { isoInfo.Is_Standard = true; jointInfo.Extend_Length = tempData.Value43; } else { isoInfo.Is_Standard = false; } } if (!string.IsNullOrEmpty(tempData.Value43)) { isoInfo.ISO_Length = tempData.Value43; } //if (!string.IsNullOrEmpty(tempData.Value15)) //{ // try // { // decimal testPress = Convert.ToDecimal(tempData.Value15); // isoInfo.ISO_TestPress = testPress; // } // catch (Exception) // { // errInfo += "试验压力[" + tempData.Value15 + "]错误;"; // } //} isoInfo.ISO_TestPress = tempData.Value18; //if (!string.IsNullOrEmpty(tempData.Value20)) //{ // try // { // decimal testPress = Convert.ToDecimal(tempData.Value20); // isoInfo.ISO_DesignPress = testPress; // } // catch (Exception) // { // errInfo += "设计压力[" + tempData.Value20 + "]错误;"; // } //} isoInfo.ISO_DesignPress = tempData.Value23; if (!string.IsNullOrEmpty(tempData.Value24)) { try { isoInfo.ISO_DesignTemperature = tempData.Value24; } catch (Exception) { errInfo += "设计温度[" + tempData.Value24 + "]错误;"; } } if (!string.IsNullOrEmpty(tempData.Value26)) { var isoClass = isoClasss.FirstOrDefault(x => x.PipingClassCode == tempData.Value26); if (isoClass == null) { errInfo += "管线等级代号[" + tempData.Value26 + "]不存在;"; } else { isoInfo.PipingClassId = isoClass.PipingClassId; } } if (string.IsNullOrEmpty(tempData.Value16)) { errInfo += "壁厚此项为必填项!"; } else { jointInfo.JOT_Sch = tempData.Value16; } if (!string.IsNullOrEmpty(tempData.Value21)) { var service = services.FirstOrDefault(x => x.MediumCode == tempData.Value21); if (service == null) { errInfo += "介质代号[" + tempData.Value21 + "]不存在;"; } else { isoInfo.TestMediumId = service.TestMediumId; } } isoInfo.ISO_IsoNumber = tempData.Value22; jointInfo.JOT_BelongPipe = tempData.Value31; jointInfo.WallBoard = tempData.Value42; #endregion if (this.IsPDMS == "0") ////非PDMS 模板 { #region 非PDMS 模板 if (!string.IsNullOrEmpty(tempData.Value7)) { var steel = steels.FirstOrDefault(x => x.MaterialCode == tempData.Value7); if (steel == null) { errInfo += "材质2代号[" + tempData.Value7 + "]不存在;"; } else { jointInfo.MaterialId = steel.MaterialId; } } if (!string.IsNullOrEmpty(tempData.Value11)) { var type = types.FirstOrDefault(x => x.WeldTypeCode == tempData.Value11); if (type == null) { errInfo += "焊缝类型代号[" + tempData.Value11 + "]不存在;"; } else { jointInfo.JOTY_ID = type.WeldTypeId; } } else { errInfo += "焊缝类型代号为必填项;"; } if (!string.IsNullOrEmpty(tempData.Value12)) { if (tempData.Value12 != "安装" && tempData.Value12 != "预制") { errInfo += "焊接区域[" + tempData.Value12 + "]不存在;"; } else { if (tempData.Value12 == "安装") { jointInfo.WLO_Code = "F"; } else { jointInfo.WLO_Code = "S"; } } } //else //{ // errInfo += "焊接区域为必填项;"; //} if (!string.IsNullOrEmpty(tempData.Value13)) { if (tempData.Value13 != "固定" && tempData.Value13 != "活动") { errInfo += "焊口属性[" + tempData.Value13 + "]不存在;"; } else { jointInfo.JOT_JointAttribute = tempData.Value13; } } //else //{ // errInfo += "焊口属性为必填项;"; //} if (!string.IsNullOrEmpty(tempData.Value14)) { try { decimal doneDin = Convert.ToDecimal(tempData.Value14); jointInfo.JOT_Size = doneDin; isoInfo.ISO_Specification = doneDin.ToString(); } catch (Exception) { errInfo += "达因数[" + tempData.Value14 + "]错误;"; } } else { errInfo += "达因数为必填项;"; } if (string.IsNullOrEmpty(tempData.Value15)) { errInfo += "规格此项为必填项!"; } else { jointInfo.JOT_JointDesc = tempData.Value15; } if (!string.IsNullOrEmpty(tempData.Value17)) { var method = methods.FirstOrDefault(x => x.WeldingMethodCode == tempData.Value17); if (method == null) { errInfo += "焊接方法代号[" + tempData.Value17 + "]不存在;"; } else { jointInfo.WME_ID = method.WeldingMethodId; } } else { errInfo += "焊接方法代号为必填项;"; } if (!string.IsNullOrEmpty(tempData.Value19)) { var material = materials.FirstOrDefault(x => x.ConsumablesCode == tempData.Value19 && x.ConsumablesType == "2"); if (material == null) { errInfo += "焊条代号[" + tempData.Value19 + "]不存在;"; } else { jointInfo.JOT_WeldMat = material.ConsumablesId; } } if (!string.IsNullOrEmpty(tempData.Value20)) { var material = materials.FirstOrDefault(x => x.ConsumablesCode == tempData.Value20 && x.ConsumablesType == "1"); if (material == null) { errInfo += "焊丝代号[" + tempData.Value20 + "]不存在;"; } else { jointInfo.JOT_WeldSilk = material.ConsumablesId; } } if (!string.IsNullOrEmpty(tempData.Value25)) { var slopeType = slopeTypes.FirstOrDefault(x => x.GrooveTypeCode == tempData.Value25); if (slopeType == null) { errInfo += "坡口代号[" + tempData.Value25 + "]不存在;"; } else { jointInfo.JST_ID = slopeType.GrooveTypeId; } } else { errInfo += "坡口代号必填项;"; } if (!string.IsNullOrEmpty(tempData.Value27)) { var component = components.FirstOrDefault(x => x.ComponentsCode == tempData.Value27); if (component == null) { errInfo += "组件一代号[" + tempData.Value27 + "]不存在;"; } else { jointInfo.JOT_Component1 = component.ComponentsId; } } if (!string.IsNullOrEmpty(tempData.Value28)) { var component = components.FirstOrDefault(x => x.ComponentsCode == tempData.Value28); if (component == null) { errInfo += "组件二代号[" + tempData.Value28 + "]不存在;"; } else { jointInfo.JOT_Component2 = component.ComponentsId; } } jointInfo.JOT_HeartNo1 = tempData.Value29; jointInfo.JOT_HeartNo2 = tempData.Value30; if (!string.IsNullOrEmpty(tempData.Value32)) { try { decimal testPress = Convert.ToDecimal(tempData.Value32); jointInfo.JOT_PrepareTemp = testPress; } catch (Exception) { errInfo += "预热温度[" + tempData.Value32 + "]错误;"; } } if (!string.IsNullOrEmpty(tempData.Value30)) { if (tempData.Value33 != "是" && tempData.Value33 != "否") { errInfo += "是否热处理[" + tempData.Value33 + "]错误;"; } else { if (tempData.Value33 == "是") { jointInfo.IS_Proess = "1"; } else { jointInfo.IS_Proess = "0"; } } } jointInfo.JOT_HotRpt = tempData.Value34; if (!string.IsNullOrEmpty(tempData.Value35)) { if (tempData.Value35 != "1G" && tempData.Value35 != "2G" && tempData.Value35 != "3G" && tempData.Value35 != "4G" && tempData.Value35 != "5G" && tempData.Value35 != "6G" && tempData.Value35 != "1F" && tempData.Value35 != "2F" && tempData.Value35 != "2FR" && tempData.Value35 != "4F" && tempData.Value35 != "5F" && tempData.Value35 != "5FG" && tempData.Value35 != "6FG" && tempData.Value35 != "2FG" && tempData.Value35 != "4FG") { errInfo += "焊接位置[" + tempData.Value35 + "]不存在;"; } else { jointInfo.JOT_Location = tempData.Value35; } } //else //{ // errInfo += "焊接位置必填项;"; //} if (!string.IsNullOrEmpty(tempData.Value36)) { try { decimal testPress = Convert.ToDecimal(tempData.Value36); jointInfo.JOT_Dia = testPress; } catch (Exception) { errInfo += "外径[" + tempData.Value36 + "]错误;"; } } if (!string.IsNullOrEmpty(tempData.Value37)) { try { decimal testPress = Convert.ToDecimal(tempData.Value37); isoInfo.ISO_HardnessRate = Convert.ToDecimal(testPress) / Convert.ToDecimal(1.0 * 100); } catch (Exception) { errInfo += "硬度检测比例[" + tempData.Value37 + "]错误;"; } } #endregion } else { #region PDMS模板 if (!string.IsNullOrEmpty(tempData.Value40)) { //var dn = dns.FirstOrDefault(x => x.DN.ToString() == tempData.Value40); //if (dn == null) //{ // errInfo += "公称直径[" + tempData.Value40 + "]基础表中不存在;"; //} //else //{ // try // { // int count = Convert.ToInt32(tempData.Value40); // } // catch (Exception) // { // errInfo += "公称直径[" + tempData.Value40 + "]错误;"; // } //} } if (!string.IsNullOrEmpty(tempData.Value27)) { var component = components.FirstOrDefault(x => x.ComponentsCode == tempData.Value27); if (component == null) { errInfo += "组件类型[" + tempData.Value27 + "]不存在;"; } else { jointInfo.JOT_Component1 = component.ComponentsId; } } if (string.IsNullOrEmpty(tempData.Value39)) { errInfo += "数量(组件)必填项;"; } else { jointInfo.ComponentNum = tempData.Value39; } if (!string.IsNullOrEmpty(tempData.Value11)) { var type = types.FirstOrDefault(x => x.WeldTypeCode == tempData.Value11); if (type == null) { errInfo += "接头形式[" + tempData.Value11 + "]不存在;"; } else { jointInfo.JOTY_ID = type.WeldTypeId; } } else { errInfo += "接头形式为必填项;"; } jointInfo.WLO_Code = "S"; jointInfo.JOT_JointAttribute = "活动"; jointInfo.JOT_Location = "1G"; jointInfo.JOT_Size = BLL.Base_DNCompareService.GetSizeByDn(tempData.Value40); // 生成尺寸 if (Funs.GetNewIntOrZero(tempData.Value40) <= 50) // 生成焊接方法 { var m = methods.FirstOrDefault(x => x.WeldingMethodCode.Contains("GTAW")); if (m != null) { jointInfo.WME_ID = m.WeldingMethodId; } } else { var m = methods.FirstOrDefault(x => x.WeldingMethodCode.Contains("GTAW") && x.WeldingMethodCode.Contains("SMAW")); if (m != null) { jointInfo.WME_ID = m.WeldingMethodId; } } if (!string.IsNullOrEmpty(tempData.Value40) && !string.IsNullOrEmpty(tempData.Value16)) { jointInfo.JOT_JointDesc = tempData.Value40 + "×" + tempData.Value16; } if (!string.IsNullOrEmpty(tempData.Value16)) { jointInfo.JOT_Sch = tempData.Value16; } if (!string.IsNullOrEmpty(tempData.Value27)) { var component = components.FirstOrDefault(x => x.ComponentsName.Contains(tempData.Value27)); if (component != null) { jointInfo.JOT_Component1 = component.ComponentsId; jointInfo.JOT_Component2 = jointInfo.JOT_Component1; } } #endregion } if (string.IsNullOrEmpty(errInfo)) ////所有信息正确的话 这插入管线焊口 { isoInfo.ProjectId = this.CurrUser.LoginProjectId; jointInfo.ProjectId = this.CurrUser.LoginProjectId; var isExitISOValue = Funs.DB.View_JointInfoAndIsoInfo.FirstOrDefault(x => x.ProjectId == this.CurrUser.LoginProjectId && x.UnitCode == tempData.Value1 && x.WorkAreaCode == tempData.Value2 && x.ISO_IsoNo == tempData.Value3); if (isExitISOValue != null) ///管线已存在 { isoInfo.ISO_ID = isExitISOValue.ISO_ID; jointInfo.ISO_ID = isExitISOValue.ISO_ID; BLL.PW_IsoInfoService.UpdateIsoInfo(isoInfo); } else { isoInfo.ISO_ID = SQLHelper.GetNewID(typeof(Model.PW_IsoInfo)); jointInfo.ISO_ID = isoInfo.ISO_ID; BLL.PW_IsoInfoService.AddIsoInfo(isoInfo); } var isExitJotNoValue = Funs.DB.View_JointInfoAndIsoInfo.FirstOrDefault(x => x.ProjectId == this.CurrUser.LoginProjectId && x.UnitCode == tempData.Value1 && x.WorkAreaCode == tempData.Value2 && x.ISO_IsoNo == tempData.Value3 && x.JOT_JointNo == tempData.Value4 && x.JOT_JointStatus != "104"); if (isExitJotNoValue == null) { BLL.PW_JointInfoService.AddJointInfo(jointInfo); } else { if (string.IsNullOrEmpty(isExitJotNoValue.DReportID)) { jointInfo.JOT_ID = isExitJotNoValue.JOT_ID; BLL.PW_JointInfoService.UpdateJointInfo(jointInfo); } } BLL.DataInTempService.DeleteDataInTempByDataInTempID(tempData.TempId); okCount++; } } else { errInfo = "该条记录已存在于管线、焊口信息表中。"; } if (!string.IsNullOrEmpty(errInfo)) { tempData.ToopValue = errInfo; BLL.DataInTempService.UpdateDataInTemp(tempData); erreMessage += errInfo + ";"; } } } //if (!string.IsNullOrEmpty(erreMessage)) //{ // // ShowNotify(erreMessage, MessageBoxIcon.Error); // Alert n = new Alert // { // Target = Target.Top, // Message = erreMessage, // MessageBoxIcon = MessageBoxIcon.Error, // ShowHeader = false // }; // n.Show(); //} //else //{ // ShowNotify("保存操作已完成,成功保存" + okCount.ToString() + "条数据到管线焊口表!", MessageBoxIcon.Success); //} //this.BindGrid(); } #endregion #region 删除所有数据事件 /// /// 删除所有数据事件 /// /// /// protected void btnAllDelete_Click(object sender, EventArgs e) { ////先删除临时表中 该人员以前导入的数据 BLL.DataInTempService.DeleteDataInTempByProjectIdUserId(this.CurrUser.LoginProjectId, this.CurrUser.UserId, this.IsPDMS); this.BindGrid(); ShowNotify("删除成功!", MessageBoxIcon.Success); this.lbDataCout.Text = string.Empty; } #endregion #region 模版导入说明 下载 /// /// 下载模版 /// /// /// protected void imgbtnUpload_Click(object sender, EventArgs e) { if (this.IsPDMS == "0") { this.TemplateUpload(BLL.Const.HJGL_DataInTemplateUrl); } else { this.TemplateUpload(BLL.Const.HJGL_DataIn_PDMSTemplateUrl); } } /// /// 导入说明 /// /// /// protected void lkAchievements_Click(object sender, EventArgs e) { this.TemplateUpload(Const.HJGL_DataInHelpUrl); } /// /// 模板下载方法 /// /// protected void TemplateUpload(string initTemplatePath) { 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 public static Dictionary percent { get; set; } public static Dictionary url { get; set; } [System.Web.Services.WebMethod] public static int getPercent(string id) { return percent[id]; } /// /// /// /// /// protected void btnD_Click(object sender, EventArgs e) { using (Model.SGGLDB db = new Model.SGGLDB(Funs.ConnString)) { int count = 0; var getD = db.Sys_DataInTemp.Where(x => x.ProjectId == this.CurrUser.LoginProjectId && x.ToopValue == "该条记录已存在于管线、焊口信息表中。"); if (getD.Count() > 0) { count = getD.Count(); db.Sys_DataInTemp.DeleteAllOnSubmit(getD); db.SubmitChanges(); } this.BindGrid(); ShowNotify("删除成功!"+count.ToString(), MessageBoxIcon.Success); } } } }