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

238 lines
12 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)
{
if (!IsPostBack)
{
ShowChart();
BindPointNoTrust();
BindTrustNoCheck();
BindCheckNoAudit();
}
}
private void BindPointNoTrust()
{
string strSql = @" SELECT (u.UnitName+''+ Convert(varchar(6),COUNT(batchItem.PointBatchItemId))) AS PointNoTrust
FROM dbo.Batch_PointBatchItem batchItem
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
LEFT JOIN Base_Unit u on u.UnitId=pipe.UnitId
WHERE batchItem.PointState IS NOT NULL AND trustItem.TrustBatchItemId IS NULL
AND pipe.ProjectId=@ProjectId
group by pipe.ProjectId ,u.UnitName";
if (!string.IsNullOrEmpty(this.CurrUser.LoginProjectId))
{
SqlParameter[] parameter = new SqlParameter[]
{
new SqlParameter("@ProjectId", this.CurrUser.LoginProjectId)
};
DataTable dt = SQLHelper.GetDataTableRunText(strSql, parameter);
gvPointNoTrust.DataSource = dt;
gvPointNoTrust.DataBind();
}
}
private void BindTrustNoCheck()
{
string strSql = @"SELECT (u.UnitName+''+Convert(varchar(6),COUNT(trustItem.TrustBatchItemId))) 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
LEFT JOIN Base_Unit u on u.UnitId=pipe.UnitId
WHERE ndtItem.NDEItemID IS NULL AND IsCancelTrust is null AND pipe.ProjectId=@ProjectId
GROUP BY pipe.ProjectId, u.UnitName";
if (!string.IsNullOrEmpty(this.CurrUser.LoginProjectId))
{
SqlParameter[] parameter = new SqlParameter[]
{
new SqlParameter("@ProjectId", this.CurrUser.LoginProjectId)
};
DataTable dt = SQLHelper.GetDataTableRunText(strSql, parameter);
gvTrustNoCheck.DataSource = dt;
gvTrustNoCheck.DataBind();
}
}
private void BindCheckNoAudit()
{
string strSql = @" SELECT (u.UnitName+''+Convert(varchar(6),COUNT(ndtItem.NDEItemID))) 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
LEFT JOIN Base_Unit u on u.UnitId=pipe.UnitId
WHERE ndtItem.SubmitDate IS NULL AND ndt.ProjectId=@ProjectId
GROUP BY pipe.ProjectId, u.UnitName";
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 GROUP BY ProjectId) v
LEFT JOIN
(SELECT ProjectId, ISNULL(SUM(ISNULL(Size,0)),0) AS LastDin
FROM dbo.Pipeline_WeldJoint
WHERE WeldingDailyId 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='射线检测' 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;
}
}
}