using BLL;
using System;
using System.Collections.Generic;
using System.Data.SqlClient;
using System.Data;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.IO;
using NPOI.SS.Formula.PTG;
using static System.Windows.Forms.VisualStyles.VisualStyleElement;
using FineUIPro.Web.common.BaseInfo;
using Model;
namespace FineUIPro.Web.JGZL
{
public partial class TestResultsSummary : PageBase
{
#region 加载页面
///
/// 加载页面
///
///
///
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
//this.ddlPageSize.SelectedValue = this.Grid1.PageSize.ToString();
this.drpProjectId.DataTextField = "ProjectCode";
this.drpProjectId.DataValueField = "ProjectId";
this.drpProjectId.DataSource = BLL.Base_ProjectService.GetOnProjectListByUserId(this.CurrUser.UserId, "1");
this.drpProjectId.DataBind();
Funs.FineUIPleaseSelect(this.drpProjectId);
this.drpProjectId.SelectedValue = this.CurrUser.LoginProjectId;
this.InitTreeMenu();//加载树
this.tvControlItem.SelectedNodeID = this.drpProjectId.SelectedValue;
this.BindGrid();
}
}
#endregion
#region 加载树项目
///
/// 加载树
///
private void InitTreeMenu()
{
this.tvControlItem.Nodes.Clear();
TreeNode rootNode = new TreeNode();
rootNode.Text = "项目";
rootNode.ToolTip = "项目";
rootNode.NodeID = "0";
rootNode.Expanded = true;
this.tvControlItem.Nodes.Add(rootNode);
List projects = BLL.Base_ProjectService.GetOnProjectListByUserId(this.CurrUser.UserId, "1");
if (this.drpProjectId.SelectedValue != BLL.Const._Null)
{
projects = projects.Where(e => e.ProjectId == this.drpProjectId.SelectedValue).ToList();
}
foreach (var item in projects)
{
TreeNode rootProjectNode = new TreeNode();//定义根节点
rootProjectNode.Text = item.ProjectCode;
rootProjectNode.NodeID = item.ProjectId;
rootProjectNode.EnableClickEvent = true;
rootProjectNode.Expanded = true;
rootProjectNode.ToolTip = item.ProjectName;
rootProjectNode.CommandName = "项目名称";
rootNode.Nodes.Add(rootProjectNode);
}
}
#endregion
#region 点击TreeView
///
/// 点击TreeView
///
///
///
protected void tvControlItem_NodeCommand(object sender, TreeCommandEventArgs e)
{
if (this.tvControlItem.SelectedNodeID != "0")
{
this.BindGrid();
}
}
#endregion
#region 数据绑定
///
/// 数据绑定
///
private void BindGrid()
{
List summaryLists = new List();
List list = (from x in Funs.DB.View_CheckResultsSummaryTree where x.ProjectId == this.tvControlItem.SelectedNodeID select x).ToList();
foreach (var item in list)
{
var pipeIds = item.PipeId.Split('|').ToList();
string isoClassId = pipeIds[0];//管道等级
string serviceId = pipeIds[1];//介质
string steId = pipeIds[2];//材质
Model.JGZL_CheckResultsSummary newSummary = new Model.JGZL_CheckResultsSummary();
newSummary.ISO_ID = item.PipeId;
newSummary.ProjectId = item.ProjectId;
newSummary.ISO_IsoNo = item.PipeCode;
newSummary.ISC_IsoName = BLL.HJGL_PipingClassService.GetPipingClassByPipingClassId(isoClassId).ISC_IsoName;
newSummary.TestingStandard = "NB/T47013-2015";
var installationCode = (from x in Funs.DB.Project_Installation where x.ProjectId == this.tvControlItem.SelectedNodeID select x.InstallationCode).FirstOrDefault();
if (!string.IsNullOrEmpty(installationCode))
{
newSummary.WorkAreaCode = installationCode;
}
summaryLists.Add(newSummary);
}
Grid1.DataSource = summaryLists;
Grid1.DataBind();
}
#endregion
#region 分页排序
#region 页索引改变事件
///
/// 页索引改变事件
///
///
///
protected void Grid1_PageIndexChange(object sender, GridPageEventArgs e)
{
BindGrid();
}
#endregion
#region 排序
///
/// 排序
///
///
///
protected void Grid1_Sort(object sender, GridSortEventArgs e)
{
BindGrid();
}
#endregion
#region 分页选择下拉改变事件
///
/// 分页选择下拉改变事件
///
///
///
protected void ddlPageSize_SelectedIndexChanged(object sender, EventArgs e)
{
Grid1.PageSize = Convert.ToInt32(ddlPageSize.SelectedValue);
BindGrid();
}
#endregion
#endregion
#region 查询
///
///查询
///
///
///
protected void drpProjectId_SelectedIndexChanged(object sender, EventArgs e)
{
this.InitTreeMenu();
this.BindGrid();
}
///
/// 查询
///
///
///
protected void TextBox_TextChanged(object sender, EventArgs e)
{
this.BindGrid();
}
#endregion
#region 打印
///
/// 打印
///
///
///
protected void btnPrint_Click(object sender, EventArgs e)
{
string projectId = this.tvControlItem.SelectedNodeID;
if (projectId != null)
{
if (!string.IsNullOrEmpty(this.Grid1.SelectedRowID))
{
string initTemplatePath = "";
string rootPath = Server.MapPath("~/");
BLL.Common.FastReportService.ResetData();
var checkResultSummary = (from x in Funs.DB.View_CheckResultsSummaryTree where x.ProjectId == projectId && x.PipeId == this.Grid1.SelectedRowID select x).FirstOrDefault();
if (checkResultSummary != null)
{
this.hdIsoNo.Text = checkResultSummary.PipeCode;//管道编号
}
var pipeIds = this.Grid1.SelectedRowID.Split('|').ToList();
if (pipeIds != null)
{
string isoClassId = pipeIds[0];//管道等级
string serviceId = pipeIds[1];//介质
string steId = pipeIds[2];//材质
List listStr = new List();
listStr.Add(new SqlParameter("@ProjectId", projectId));
listStr.Add(new SqlParameter("@ISC_ID", isoClassId));
listStr.Add(new SqlParameter("@SER_ID", serviceId));
listStr.Add(new SqlParameter("@STE_ID", steId));
listStr.Add(new SqlParameter("@Flag", "0"));
SqlParameter[] parameter = listStr.ToArray();
DataTable tb = BLL.SQLHelper.GetDataTableRunProc("HJGL_sp_CheckResultSummary", parameter);
if (tb.Rows.Count > 0)
{
DataTable dt = new DataTable();
dt.TableName = "Data";
dt.Columns.Add("SingleName");
dt.Columns.Add("WeldJointCode");
dt.Columns.Add("WelderCode");
dt.Columns.Add("PointBatchCode");
dt.Columns.Add("RTUTResult");
dt.Columns.Add("RTUTCheckNo");
dt.Columns.Add("MTPTResult");
dt.Columns.Add("MTPTCheckNo");
//dt.Columns.Add("CHT_Remark");
DataView dv = tb.DefaultView;//获取表视图
dv.Sort = "ISO_IsoNo,Sort1,Sort2,Sort3,Sort4,Sort5 asc";//按照ID排序
tb = dv.ToTable();//转为表
DataRow[] rows = tb.DefaultView.ToTable().Select();
foreach (var row in rows)
{
var newRow = dt.NewRow();
newRow["SingleName"] = row["ISO_IsoNo"].ToString();
newRow["WeldJointCode"] = row["JOT_JointNo"].ToString();
newRow["WelderCode"] = row["WED_Code"].ToString();
newRow["PointBatchCode"] = "/";
newRow["RTUTResult"] = row["RTUTResult"].ToString();
newRow["RTUTCheckNo"] = row["RTUTReport"].ToString();
newRow["MTPTResult"] = row["MTPTResult"].ToString();
newRow["MTPTCheckNo"] = row["MTPTReport"].ToString();
//newRow["CHT_Remark"] = row["CHT_Remark"].ToString();
dt.Rows.Add(newRow);
}
BLL.Common.FastReportService.AddFastreportTable(dt);
}
Dictionary keyValuePairs = new Dictionary();
keyValuePairs.Add("ProjectName", BLL.Base_ProjectService.GetProjectByProjectId(projectId).ProjectName);
//监理单位
var project = BLL.Base_ProjectService.GetProjectByProjectId(projectId);
if (!string.IsNullOrEmpty(project.WatchUnit))
{
keyValuePairs.Add("UnitName1", project.WatchUnit);//监理单位
}
keyValuePairs.Add("UnitName2", "浙江鼎盛石化工程有限公司");//施工单位
keyValuePairs.Add("CH_NDTCriteria", "NB/T47013-2015");//检测标准
keyValuePairs.Add("ISOLevel", BLL.HJGL_PipingClassService.GetPipingClassByPipingClassId(isoClassId).ISC_IsoName);//管道级别
var installationCode = (from x in Funs.DB.Project_Installation where x.ProjectId == projectId select x.InstallationCode).FirstOrDefault();
if (!string.IsNullOrEmpty(installationCode))
{
keyValuePairs.Add("WorkAreaCode", installationCode);//区号
}
keyValuePairs.Add("UnitWorkName", "/");//检测类别号
keyValuePairs.Add("isoCode", this.hdIsoNo.Text.Trim());//管道编号
var result = from x in Funs.DB.HJGL_View_CheckResult
where x.ProjectId == projectId
&& x.ISC_ID == isoClassId && x.STE_ID == steId
&& x.SER_ID == serviceId
select x;
//RT对焊接头
string RT1 = string.Empty;
var rt1 = from x in result where x.JOTY_Group == "1" && x.States == "2" && x.SysType == "射线检测" select x;
if (rt1.Count() > 0)
{
var q1 = from x in Funs.DB.HJGL_BO_QualityRating where rt1.Select(y => y.CH_TrustItemID).Contains(x.CH_TrustItemID) select x;
var q2 = from x in Funs.DB.HJGL_BO_QualityRatingRepair where rt1.Select(y => y.JOT_ID).Contains(x.JOT_ID) select x;
string rt1Num = rt1.Count().ToString();
string rt1FileNum = (q1.Count() + q2.Count()).ToString();
RT1 = rt1Num + "/" + rt1FileNum;//RT对焊接头
}
else
{
RT1 = "/";
}
keyValuePairs.Add("RTBW", RT1);
keyValuePairs.Add("RTFW", "-");
//RT 支管连接接头
string RT3 = string.Empty;
var rt3 = from x in result where x.JOTY_Group == "3" && x.States == "2" && x.SysType == "射线检测" select x;
if (rt3.Count() > 0)
{
var q3 = from x in Funs.DB.HJGL_BO_QualityRating where rt3.Select(y => y.CH_TrustItemID).Contains(x.CH_TrustItemID) select x;
var q4 = from x in Funs.DB.HJGL_BO_QualityRatingRepair where rt3.Select(y => y.JOT_ID).Contains(x.JOT_ID) select x;
string rt3Num = rt3.Count().ToString();
string rt3FileNum = (q3.Count() + q4.Count()).ToString();
RT3 = rt3Num + "/" + rt3FileNum;//RT支管连接接头
}
else
{
RT3 = "/";
}
keyValuePairs.Add("RTDW", RT3);
//RT对焊接头
string unRT1Count = string.Empty;
var unRT1 = from x in result where x.JOTY_Group == "1" && x.States == "4" && x.SysType == "射线检测" select x;
if (unRT1.Count() > 0)
{
var q1 = from x in Funs.DB.HJGL_BO_QualityRating where x.IsPass == "不合格" && unRT1.Select(y => y.CH_TrustItemID).Contains(x.CH_TrustItemID) select x;
string unRT1Num = unRT1.Count().ToString();
string unRT1FileNum = q1.Count().ToString();
unRT1Count = unRT1Num + "/" + unRT1FileNum;//RT对焊接头
}
else
{
unRT1Count = "/";
}
keyValuePairs.Add("RTNoPassBW", unRT1Count);
keyValuePairs.Add("RTNoPassFW", "-");
// RT支管连接接头
string unRT3Count = string.Empty;
var unRT3 = from x in result where x.JOTY_Group == "3" && x.States == "4" && x.SysType == "射线检测" select x;
if (unRT3.Count() > 0)
{
var q1 = from x in Funs.DB.HJGL_BO_QualityRating where x.IsPass == "不合格" && unRT3.Select(y => y.CH_TrustItemID).Contains(x.CH_TrustItemID) select x;
string unRT3Num = unRT3.Count().ToString();
string unRT3FileNum = q1.Count().ToString();
unRT3Count = unRT3Num + "/" + unRT3FileNum;//RT支管连接接头
}
else
{
unRT3Count = "/";
}
keyValuePairs.Add("RTNoPassDW", unRT3Count);
//UT对焊接头
string ut1Count = string.Empty;
var ut1 = from x in result where x.JOTY_Group == "1" && x.States == "2" && x.SysType == "超声波检测" select x;
if (ut1.Count() > 0)
{
string ut1Num = ut1.Count().ToString();
string ut1FileNum = (Convert.ToDouble(ut1.Sum(x => (x.JOT_Dia.HasValue ? x.JOT_Dia.Value : 0))) * 3.14 / 1000).ToString("#0.000");
ut1Count = ut1Num + "/" + ut1FileNum;//UT对焊接头
}
else
{
ut1Count = "/";
}
keyValuePairs.Add("UTBW", ut1Count);
keyValuePairs.Add("UTFW", "-");
//UT 支管连接接头
string ut3Count = string.Empty;
var ut3 = from x in result where x.JOTY_Group == "3" && x.States == "2" && x.SysType == "超声波检测" select x;
if (ut3.Count() > 0)
{
string ut3Num = ut3.Count().ToString();
string ut3FileNum = (Convert.ToDouble(ut3.Sum(x => (x.JOT_Dia.HasValue ? x.JOT_Dia.Value : 0))) * 3.14 / 1000).ToString("#0.000");
ut3Count = ut3Num + "/" + ut3FileNum;//UT支管连接接头
}
else
{
ut3Count = "/";
}
keyValuePairs.Add("UTDW", ut3Count);
//UT对焊接头
string unUT1Count = string.Empty;
var unUT1 = from x in result where x.JOTY_Group == "1" && x.States == "4" && x.SysType == "超声波检测" select x;
if (unUT1.Count() > 0)
{
string unUT1Num = unUT1.Count().ToString();
string unUT1FileNum = (Convert.ToDouble(unUT1.Sum(x => (x.JOT_Dia.HasValue ? x.JOT_Dia.Value : 0))) * 3.14 / 1000).ToString("#0.000");
unUT1Count = unUT1Num + "/" + unUT1FileNum;//UT对焊接头
}
else
{
unUT1Count = "/";
}
keyValuePairs.Add("UTNoPassBW", unUT1Count);
keyValuePairs.Add("UTNoPassFW", "-");
// UT支管连接接头
string unUT3Count = string.Empty;
var unUT3 = from x in result where x.JOTY_Group == "3" && x.States == "4" && x.SysType == "超声波检测" select x;
if (unUT3.Count() > 0)
{
string unUT3Num = unUT3.Count().ToString();
string unUT3FileNum = (Convert.ToDouble(unUT3.Sum(x => (x.JOT_Dia.HasValue ? x.JOT_Dia.Value : 0))) * 3.14 / 1000).ToString("#0.000");
unUT3Count = unUT3Num + "/" + unUT3FileNum;//UT支管连接接头
}
else
{
unUT3Count = "/";
}
keyValuePairs.Add("UTNoPassDW", unUT3Count);
//MT对焊接头
string mt1Count = string.Empty;
var mt1 = from x in result where x.JOTY_Group == "1" && x.States == "2" && x.SysType == "磁粉检测" select x;
if (mt1.Count() > 0)
{
string mt1Num = mt1.Count().ToString();
string mt1FileNum = (Convert.ToDouble(mt1.Sum(x => (x.JOT_Dia.HasValue ? x.JOT_Dia.Value : 0))) * 3.14 / 1000).ToString("#0.000");
mt1Count = mt1Num + "/" + mt1FileNum;//MT对焊接头
}
else
{
mt1Count = "/";
}
keyValuePairs.Add("MTBW", mt1Count);
//MT角焊接头
string mt2Count = string.Empty;
var mt2 = from x in result where x.JOTY_Group == "2" && x.States == "2" && x.SysType == "磁粉检测" select x;
if (mt2.Count() > 0)
{
string mt2Num = mt2.Count().ToString();
string mt2FileNum = (Convert.ToDouble(mt2.Sum(x => (x.JOT_Dia.HasValue ? x.JOT_Dia.Value : 0))) * 3.14 / 1000).ToString("#0.000");
mt2Count = mt2Num + "/" + mt2FileNum;//MT角焊接头
}
else
{
mt2Count = "/";
}
keyValuePairs.Add("MTFW", mt2Count);
//MT 支管连接接头
string mt3Count = string.Empty;
var mt3 = from x in result where x.JOTY_Group == "3" && x.States == "2" && x.SysType == "磁粉检测" select x;
if (mt3.Count() > 0)
{
string mt3Num = mt3.Count().ToString();
string mt3FileNum = (Convert.ToDouble(mt3.Sum(x => (x.JOT_Dia.HasValue ? x.JOT_Dia.Value : 0))) * 3.14 / 1000).ToString("#0.000");
mt3Count = mt3Num + "/" + mt3FileNum;//MT支管连接接头
}
else
{
mt3Count = "/";
}
keyValuePairs.Add("MTDW", mt3Count);
// MT对焊接头
string unMT1Count = string.Empty;
var unMT1 = from x in result where x.JOTY_Group == "1" && x.States == "4" && x.SysType == "磁粉检测" select x;
if (unMT1.Count() > 0)
{
string unMT1Num = unMT1.Count().ToString();
string unMT1FileNum = (Convert.ToDouble(unMT1.Sum(x => (x.JOT_Dia.HasValue ? x.JOT_Dia.Value : 0))) * 3.14 / 1000).ToString("#0.000");
unMT1Count = unMT1Num + "/" + unMT1FileNum;//MT对焊接头
}
else
{
unMT1Count = "/";
}
keyValuePairs.Add("MTNoPassBW", unMT1Count);
// MT角焊接头
string unMT2Count = string.Empty;
var unMT2 = from x in result where x.JOTY_Group == "2" && x.States == "4" && x.SysType == "磁粉检测" select x;
if (unMT2.Count() > 0)
{
string unMT2Num = unMT2.Count().ToString();
string unMT2FileNum = (Convert.ToDouble(unMT2.Sum(x => (x.JOT_Dia.HasValue ? x.JOT_Dia.Value : 0))) * 3.14 / 1000).ToString("#0.000");
unMT2Count = unMT2Num + "/" + unMT2FileNum;//MT对焊接头
}
else
{
unMT2Count = "/";
}
keyValuePairs.Add("MTNoPassFW", unMT2Count);
// MT支管连接接头
string unMT3Count = string.Empty;
var unMT3 = from x in result where x.JOTY_Group == "3" && x.States == "4" && x.SysType == "磁粉检测" select x;
if (unMT3.Count() > 0)
{
string unMT3Num = unMT3.Count().ToString();
string unMT3FileNum = (Convert.ToDouble(unMT3.Sum(x => (x.JOT_Dia.HasValue ? x.JOT_Dia.Value : 0))) * 3.14 / 1000).ToString("#0.000");
unMT3Count = unMT3Num + "/" + unMT3FileNum;//MT支管连接接头
}
else
{
unMT3Count = "/";
}
keyValuePairs.Add("MTNoPassDW", unMT3Count);
//PT对焊接头
string pt1Count = string.Empty;
var pt1 = from x in result where x.JOTY_Group == "1" && x.States == "2" && x.SysType == "渗透检测" select x;
if (pt1.Count() > 0)
{
string pt1Num = pt1.Count().ToString();
string pt1FileNum = (Convert.ToDouble(pt1.Sum(x => (x.JOT_Dia.HasValue ? x.JOT_Dia.Value : 0))) * 3.14 / 1000).ToString("#0.000");
pt1Count = pt1Num + "/" + pt1FileNum;//PT对焊接头
}
else
{
pt1Count = "/";
}
keyValuePairs.Add("PTBW", pt1Count);
//PT角焊接头
string pt2Count = string.Empty;
var pt2 = from x in result where x.JOTY_Group == "2" && x.States == "2" && x.SysType == "渗透检测" select x;
if (pt2.Count() > 0)
{
string pt2Num = pt2.Count().ToString();
string pt2FileNum = (Convert.ToDouble(pt2.Sum(x => (x.JOT_Dia.HasValue ? x.JOT_Dia.Value : 0))) * 3.14 / 1000).ToString("#0.000");
pt2Count = pt2Num + "/" + pt2FileNum;//PT角焊接头
}
else
{
pt2Count = "/";
}
keyValuePairs.Add("PTFW", pt2Count);
//PT 支管连接接头
string pt3Count = string.Empty;
var pt3 = from x in result where x.JOTY_Group == "3" && x.States == "2" && x.SysType == "渗透检测" select x;
if (pt3.Count() > 0)
{
string pt3Num = pt3.Count().ToString();
string pt3FileNum = (Convert.ToDouble(pt3.Sum(x => (x.JOT_Dia.HasValue ? x.JOT_Dia.Value : 0))) * 3.14 / 1000).ToString("#0.000");
pt3Count = pt3Num + "/" + pt3FileNum;//PT支管连接接头
}
else
{
pt3Count = "/";
}
keyValuePairs.Add("PTDW", pt3Count);
// PT对焊接头
string unPT1Count = string.Empty;
var unPT1 = from x in result where x.JOTY_Group == "1" && x.States == "4" && x.SysType == "渗透检测" select x;
if (unPT1.Count() > 0)
{
string unPT1Num = unPT1.Count().ToString();
string unPT1FileNum = (Convert.ToDouble(unPT1.Sum(x => (x.JOT_Dia.HasValue ? x.JOT_Dia.Value : 0))) * 3.14 / 1000).ToString("#0.000");
unPT1Count = unPT1Num + "/" + unPT1FileNum;//PT对焊接头
}
else
{
unPT1Count = "/";
}
keyValuePairs.Add("PTNoPassBW", unPT1Count);
// PT角焊接头
string unPT2Count = string.Empty;
var unPT2 = from x in result where x.JOTY_Group == "2" && x.States == "4" && x.SysType == "渗透检测" select x;
if (unPT2.Count() > 0)
{
string unPT2Num = unPT2.Count().ToString();
string unPT2FileNum = (Convert.ToDouble(unPT2.Sum(x => (x.JOT_Dia.HasValue ? x.JOT_Dia.Value : 0))) * 3.14 / 1000).ToString("#0.000");
unPT2Count = unPT2Num + "/" + unPT2FileNum;//PT对焊接头
}
else
{
unPT2Count = "/";
}
keyValuePairs.Add("PTNoPassFW", unPT2Count);
// PT支管连接接头
string unPT3Count = string.Empty;
var unPT3 = from x in result where x.JOTY_Group == "3" && x.States == "4" && x.SysType == "渗透检测" select x;
if (unPT3.Count() > 0)
{
string unPT3Num = unPT3.Count().ToString();
string unPT3FileNum = (Convert.ToDouble(unPT3.Sum(x => (x.JOT_Dia.HasValue ? x.JOT_Dia.Value : 0))) * 3.14 / 1000).ToString("#0.000");
unPT3Count = unPT3Num + "/" + unPT3FileNum;//PT支管连接接头
}
else
{
unPT3Count = "/";
}
keyValuePairs.Add("PTNoPassDW", unPT3Count);
BLL.Common.FastReportService.AddFastreportParameter(keyValuePairs);
initTemplatePath = "File\\Fastreport\\JGZL\\管道无损检测结果汇总表.frx";
if (File.Exists(rootPath + initTemplatePath))
{
PageContext.RegisterStartupScript(WindowPrint.GetShowReference(String.Format("../common/ReportPrint/Fastreport.aspx?ReportPath={0}", rootPath + initTemplatePath)));
}
}
}
else
{
Alert.ShowInTop("请选择一条记录!", MessageBoxIcon.Warning);
return;
}
}
else
{
Alert.ShowInTop("请选择项目!", MessageBoxIcon.Warning);
return;
}
}
#endregion
}
}