291 lines
16 KiB
C#
291 lines
16 KiB
C#
|
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();
|
|||
|
BindPointWarn();
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
private void BindPointWarn()
|
|||
|
{
|
|||
|
string strSql = @"SELECT ins.InstallationCode,t.PointBatchCode,welder.WelderCode,t.WeldingNum,t.LastWeldingDate
|
|||
|
FROM
|
|||
|
(SELECT pb.ProjectId,pb.InstallationId,pb.UnitId,pb.PointBatchCode,jot.CoverWelderId,rate.DetectionRateValue,
|
|||
|
COUNT(pbItem.PointBatchItemId) AS WeldingNum,MIN(daily.WeldingDate) AS LastWeldingDate
|
|||
|
FROM dbo.Batch_PointBatchItem AS pbItem
|
|||
|
LEFT JOIN Batch_PointBatch AS pb ON pb.PointBatchId=pbItem.PointBatchId
|
|||
|
LEFT JOIN Pipeline_WeldJoint AS jot ON jot.WeldJointId=pbItem.WeldJointId
|
|||
|
LEFT JOIN dbo.Pipeline_WeldingDaily daily ON daily.WeldingDailyId = jot.WeldingDailyId
|
|||
|
LEFT JOIN dbo.Base_DetectionRate rate ON rate.DetectionRateId = pb.DetectionRateId
|
|||
|
WHERE pbItem.IsCompletedPoint=0 AND jot.WeldingDailyId IS NOT NULL
|
|||
|
GROUP BY pb.ProjectId,pb.InstallationId,pb.UnitId,pb.PointBatchCode,rate.DetectionRateValue,jot.CoverWelderId
|
|||
|
)t
|
|||
|
LEFT JOIN dbo.Welder_Welder welder ON welder.WelderId = t.CoverWelderId
|
|||
|
LEFT JOIN dbo.Project_Installation ins ON ins.InstallationId = t.InstallationId
|
|||
|
WHERE t.ProjectId=@ProjectId ";
|
|||
|
|
|||
|
List<SqlParameter> listStr = new List<SqlParameter>();
|
|||
|
if (!string.IsNullOrEmpty(this.CurrUser.LoginProjectId))
|
|||
|
{
|
|||
|
listStr.Add(new SqlParameter("@ProjectId", this.CurrUser.LoginProjectId));
|
|||
|
}
|
|||
|
|
|||
|
var q = from x in BLL.Funs.DB.Sys_Set where x.ProjectId == this.CurrUser.LoginProjectId && x.SetId == "6" select x;
|
|||
|
if (q.Count() > 0 && !string.IsNullOrEmpty(q.First().SetValue))
|
|||
|
{
|
|||
|
strSql += " AND t.WeldingNum>=(@WarnPontRate/t.DetectionRateValue)";
|
|||
|
listStr.Add(new SqlParameter("@WarnPontRate", Convert.ToInt32(q.First().SetValue)));
|
|||
|
}
|
|||
|
else
|
|||
|
{
|
|||
|
strSql += " AND t.WeldingNum>='5'";
|
|||
|
}
|
|||
|
|
|||
|
var d = from x in BLL.Funs.DB.Sys_Set where x.ProjectId == this.CurrUser.LoginProjectId && x.SetId == "5" select x;
|
|||
|
if (d.Count() > 0 && !string.IsNullOrEmpty(d.First().SetValue))
|
|||
|
{
|
|||
|
strSql += " AND DATEDIFF(DAY,t.LastWeldingDate,GETDATE())>@WarnPointDay";
|
|||
|
listStr.Add(new SqlParameter("@WarnPointDay", Convert.ToInt32(d.First().SetValue)));
|
|||
|
}
|
|||
|
else
|
|||
|
{
|
|||
|
strSql += " AND DATEDIFF(DAY,t.LastWeldingDate,GETDATE())>'3'";
|
|||
|
}
|
|||
|
|
|||
|
SqlParameter[] parameter = listStr.ToArray();
|
|||
|
DataTable dt = SQLHelper.GetDataTableRunText(strSql, parameter);
|
|||
|
gvPointWarn.DataSource = dt;
|
|||
|
gvPointWarn.DataBind();
|
|||
|
}
|
|||
|
|
|||
|
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;
|
|||
|
}
|
|||
|
}
|
|||
|
}
|