YZ_BSF/HJGL/FineUIPro.Web/common/MainSupervision.aspx.cs

269 lines
14 KiB
C#
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

using System;
using System.Collections.Generic;
using System.Linq;
using System.Data;
using System.Data.SqlClient;
using System.Web.UI.DataVisualization.Charting;
using System.Drawing;
using BLL;
namespace FineUIPro.Web.common
{
public partial class MainSupervision : PageBase
{
protected void Page_Load(object sender, EventArgs e)
{
ShowChart();
if (!IsPostBack)
{
BindPointNoTrust();
BindTrustNoCheck();
BindCheckNoAudit();
}
}
private void BindPointNoTrust()
{
string strSql = @" SELECT batch.PointBatchCode+' | '+ (pipe.PipelineCode +' | ' + jot.WeldJointCode+ ' | ' +
CONVERT(VARCHAR(100) ,batchItem.PointDate,23) ) AS PointNoTrust
FROM dbo.Batch_PointBatchItem batchItem
LEFT JOIN dbo.Batch_PointBatch batch ON batch.PointBatchId = batchItem.PointBatchId
LEFT JOIN dbo.Pipeline_WeldJoint jot ON jot.WeldJointId = batchItem.WeldJointId
LEFT JOIN dbo.Batch_BatchTrustItem trustItem ON trustItem.PointBatchItemId = batchItem.PointBatchItemId
LEFT JOIN dbo.Pipeline_Pipeline pipe ON pipe.PipelineId = jot.PipelineId
WHERE batchItem.PointState IS NOT NULL AND trustItem.TrustBatchItemId IS NULL
AND batch.ProjectId=@ProjectId";
if (!string.IsNullOrEmpty(this.CurrUser.LoginProjectId))
{
SqlParameter[] parameter = new SqlParameter[]
{
new SqlParameter("@ProjectId", this.CurrUser.LoginProjectId)
};
DataTable dt = SQLHelper.GetDataTableRunText(strSql, parameter);
gvPointNoTrust.RecordCount = dt.Rows.Count;
var table = this.GetPagedDataTable(gvPointNoTrust, dt);
gvPointNoTrust.DataSource = table;
gvPointNoTrust.DataBind();
}
}
protected void gvPointNoTrust_PageIndexChange(object sender, GridPageEventArgs e)
{
gvPointNoTrust.PageIndex = e.NewPageIndex;
BindPointNoTrust();
}
protected void drpPageSize_SelectedIndexChanged(object sender, EventArgs e)
{
gvPointNoTrust.PageSize = Convert.ToInt32(drpPageSize.SelectedValue);
BindPointNoTrust();
}
private void BindTrustNoCheck()
{
string strSql = @" SELECT trust.TrustBatchCode+' ' + ndttype.DetectionTypeCode + ' ' +
(pipe.PipelineCode +' ' + jot.WeldJointCode) AS TrustNoCheck
FROM Batch_BatchTrustItem trustItem
LEFT JOIN dbo.Batch_BatchTrust trust ON trust.TrustBatchId = trustItem.TrustBatchId
LEFT JOIN dbo.Base_DetectionType ndttype ON ndttype.DetectionTypeId = trust.DetectionTypeId
LEFT JOIN dbo.Pipeline_WeldJoint jot ON jot.WeldJointId = trustItem.WeldJointId
LEFT JOIN dbo.Batch_NDEItem ndtItem ON ndtItem.TrustBatchItemId = trustItem.TrustBatchItemId
LEFT JOIN dbo.Pipeline_Pipeline pipe ON pipe.PipelineId = jot.PipelineId
WHERE (ndtItem.NDEItemID IS NULL OR (ndtItem.NDEItemID IS NOT NULL AND ndtItem.NDEReportNo IS NULL))
AND (trustItem.IsCancelTrust IS NULL OR trustItem.IsCancelTrust=0)
AND pipe.ProjectId=@ProjectId
ORDER BY ndttype.DetectionTypeCode";
if (!string.IsNullOrEmpty(this.CurrUser.LoginProjectId))
{
SqlParameter[] parameter = new SqlParameter[]
{
new SqlParameter("@ProjectId", this.CurrUser.LoginProjectId)
};
DataTable dt = SQLHelper.GetDataTableRunText(strSql, parameter);
gvTrustNoCheck.RecordCount = dt.Rows.Count;
var table = this.GetPagedDataTable(gvTrustNoCheck, dt);
gvTrustNoCheck.DataSource = table;
gvTrustNoCheck.DataBind();
}
}
protected void gvTrustNoCheck_PageIndexChange(object sender, GridPageEventArgs e)
{
gvTrustNoCheck.PageIndex = e.NewPageIndex;
BindTrustNoCheck();
}
protected void ddlPageSize_SelectedIndexChanged(object sender, EventArgs e)
{
gvTrustNoCheck.PageSize = Convert.ToInt32(ddlPageSize.SelectedValue);
BindTrustNoCheck();
}
private void BindCheckNoAudit()
{
string strSql = @" SELECT ndt.NDECode+' '+ (pipe.PipelineCode +' ' + jot.WeldJointCode) AS CheckNoAudit
FROM dbo.Batch_NDEItem ndtItem
LEFT JOIN dbo.Batch_NDE ndt ON ndt.NDEID = ndtItem.NDEID
LEFT JOIN dbo.Batch_BatchTrustItem trust ON trust.TrustBatchItemId = ndtItem.TrustBatchItemId
LEFT JOIN dbo.Pipeline_WeldJoint jot ON jot.WeldJointId = trust.WeldJointId
LEFT JOIN dbo.Pipeline_Pipeline pipe ON pipe.PipelineId = jot.PipelineId
WHERE ndtItem.SubmitDate IS NULL AND ndtItem.NDEReportNo IS NOT NULL AND ndt.ProjectId=@ProjectId";
if (!string.IsNullOrEmpty(this.CurrUser.LoginProjectId))
{
SqlParameter[] parameter = new SqlParameter[]
{
new SqlParameter("@ProjectId", this.CurrUser.LoginProjectId)
};
DataTable dt = SQLHelper.GetDataTableRunText(strSql, parameter);
gvCheckNoAudit.DataSource = dt;
gvCheckNoAudit.DataBind();
}
}
private void ShowChart()
{
string strSql1 = @"SELECT v.totalDin AS '预估',(v.totalDin-ISNULL(v1.LastDin,0)) AS '完成',
ISNULL(v1.LastDin,0) AS '剩余',ISNULL(v2.LastWeekDin,0) AS '近一周'
FROM
(SELECT ProjectId, ISNULL(SUM(ISNULL(Size,0)),0) AS totalDin
FROM dbo.Pipeline_WeldJoint
WHERE IsCancel IS NULL OR (IsCancel=1 AND WeldingDailyId IS NOT NULL)
GROUP BY ProjectId) v
LEFT JOIN
(SELECT ProjectId, ISNULL(SUM(ISNULL(Size,0)),0) AS LastDin
FROM dbo.Pipeline_WeldJoint
WHERE WeldingDailyId IS NULL AND IsCancel IS NULL
GROUP BY ProjectId) v1 ON v1.ProjectId = v.ProjectId
LEFT JOIN
(SELECT jot.ProjectId, ISNULL(SUM(ISNULL(jot.Size,0)),0) AS LastWeekDin
FROM dbo.Pipeline_WeldJoint jot
LEFT JOIN dbo.Pipeline_WeldingDaily report ON report.WeldingDailyId = jot.WeldingDailyId
WHERE jot.WeldingDailyId IS NOT NULL AND report.WeldingDate<=GETDATE() AND report.WeldingDate>DATEADD(ww,-1,GETDATE())
GROUP BY jot.ProjectId) v2 ON v2.ProjectId = v.ProjectId
WHERE v.ProjectId=@ProjectId1";
string strSql2 = @"SELECT ISNULL(v1.BatchTrustNum,0) AS '委托数',ISNULL(v2.NdtCheckNum,0) AS '拍片焊口',
(ISNULL(v1.BatchTrustNum,0)-ISNULL(v2.NdtCheckNum,0)) AS '积压焊口' ,
ISNULL(v3.LastWeekCheckNum,0) AS '近一周检测'
FROM
(SELECT trust.ProjectId, COUNT(d.TrustBatchItemId) AS BatchTrustNum
FROM dbo.Batch_BatchTrustItem d
LEFT JOIN dbo.Batch_BatchTrust trust ON trust.TrustBatchId = d.TrustBatchId
LEFT JOIN dbo.Base_DetectionType ndt ON ndt.DetectionTypeId = trust.DetectionTypeId
WHERE ndt.SysType='射线检测' AND d.IsCancelTrust IS NULL GROUP BY trust.ProjectId) v1
LEFT JOIN
(SELECT ndt.ProjectId,COUNT(ndtItme.NDEItemID) AS NdtCheckNum
FROM dbo.Batch_NDEItem ndtItme
LEFT JOIN dbo.Batch_NDE ndt ON ndt.NDEID = ndtItme.NDEID
LEFT JOIN dbo.Base_DetectionType ndtType ON ndtType.DetectionTypeId = ndtItme.DetectionTypeId
WHERE ndtType.SysType ='射线检测' AND SubmitDate IS NOT NULL
GROUP BY ndt.ProjectId ) v2 ON v2.ProjectId = v1.ProjectId
LEFT JOIN
(SELECT ndt.ProjectId,COUNT(ndtItme.NDEItemID) AS LastWeekCheckNum
FROM dbo.Batch_NDEItem ndtItme
LEFT JOIN dbo.Batch_NDE ndt ON ndt.NDEID = ndtItme.NDEID
LEFT JOIN dbo.Base_DetectionType ndtType ON ndtType.DetectionTypeId = ndtItme.DetectionTypeId
WHERE ndtType.SysType ='射线检测' AND SubmitDate IS NOT NULL
AND ndtItme.SubmitDate<=GETDATE() AND ndtItme.SubmitDate>DATEADD(ww,-1,GETDATE())
GROUP BY ndt.ProjectId ) v3 ON v3.ProjectId = v1.ProjectId
WHERE v1.ProjectId=@ProjectId2 AND ISNULL(v1.BatchTrustNum,0)>0 ";
if (!string.IsNullOrEmpty(this.CurrUser.LoginProjectId))
{
SqlParameter[] parameter1 = new SqlParameter[]
{
new SqlParameter("@ProjectId1", this.CurrUser.LoginProjectId)
};
DataTable dt1 = SQLHelper.GetDataTableRunText(strSql1, parameter1);
SqlParameter[] parameter2 = new SqlParameter[]
{
new SqlParameter("@ProjectId2", this.CurrUser.LoginProjectId)
};
DataTable dt2 = SQLHelper.GetDataTableRunText(strSql2, parameter2);
if (dt1.Rows.Count > 0)
{
CreateChart(dt1, Chart1);
}
if (dt2.Rows.Count > 0)
{
CreateChart(dt2, Chart2);
}
}
}
/// <summary>
/// 创建Chart图形
/// </summary>
/// <param name="dt">数据表</param>
/// <param name="chart1">图形</param>
private void CreateChart(DataTable dt, Chart chart1)
{
chart1.BackColor = Color.WhiteSmoke;
chart1.ImageLocation = "~/Images/ChartPic_#SEQ(300,3)";
chart1.BorderlineDashStyle = ChartDashStyle.Solid;
chart1.Palette = ChartColorPalette.BrightPastel;
chart1.BackSecondaryColor = Color.White;
chart1.BackGradientStyle = GradientStyle.TopBottom;
chart1.BorderWidth = 2;
chart1.BorderColor = Color.FromArgb(26, 59, 105);
chart1.ImageType = ChartImageType.Png;
ChartArea chartArea = new ChartArea();
chartArea.Name = "焊接工作量";
chartArea.BackColor = Color.Transparent;
chartArea.AxisX.IsLabelAutoFit = false;
chartArea.AxisY.IsLabelAutoFit = false;
chartArea.AxisX.LabelStyle.Font = new Font("Verdana,Arial,Helvetica,sans-serif", 8F, FontStyle.Regular);
chartArea.AxisY.LabelStyle.Font = new Font("Verdana,Arial,Helvetica,sans-serif", 8F, FontStyle.Regular);
chartArea.AxisY.LineColor = Color.FromArgb(64, 64, 64, 64);
chartArea.AxisX.LineColor = Color.FromArgb(64, 64, 64, 64);
chartArea.AxisY.MajorGrid.LineColor = Color.FromArgb(64, 64, 64, 64);
chartArea.AxisX.MajorGrid.LineColor = Color.FromArgb(64, 64, 64, 64);
chartArea.AxisX.Interval = 1;
chartArea.Area3DStyle.Enable3D = true;
chart1.ChartAreas.Add(chartArea);
chart1.Series.Add("焊接工作量");
chart1.Series["焊接工作量"].ChartType = ChartControlService.GetChartType("Column");
chart1.Series["焊接工作量"].Name = "焊接工作量";
chart1.Series["焊接工作量"].IsValueShownAsLabel = false;
chart1.Series["焊接工作量"].BorderWidth = 2;
chart1.Series["焊接工作量"]["DrawingStyle"] = "Cylinder";
for (int i = 0; i < dt.Columns.Count; i++)
{
chart1.Series["焊接工作量"].Points.AddXY(dt.Columns[i].ColumnName, dt.Rows[0][i].ToString());
chart1.Series["焊接工作量"].Points[i].Color = GetColor(i);
//chart1.Series["焊接工作量"].Points[i].Url = "~/WeldingProcess/WeldingReport/WeldSummary.aspx";
chart1.Series["焊接工作量"].Points[i].ToolTip = "#VALX#VALY";
}
}
private Color GetColor(int i)
{
Color c = Color.Blue;
if (i == 1)
{
c = Color.Yellow;
}
if (i == 2)
{
c = Color.Red;
}
if (i == 3)
{
c = Color.Green;
}
return c;
}
}
}