This commit is contained in:
佘春生 2024-05-26 11:53:51 +08:00
commit 46a669a995
5 changed files with 218 additions and 105 deletions

View File

@ -31,9 +31,9 @@
LabelAlign="Right" Width="280px"> LabelAlign="Right" Width="280px">
</f:DropDownList> </f:DropDownList>
<f:DropDownList ID="drpIsALl" OnSelectedIndexChanged="drpIsALl_SelectedIndexChanged" runat="server" Label="筛选报警" LabelAlign="Right" Width="200px"> <f:DropDownList ID="drpIsALl" OnSelectedIndexChanged="drpIsALl_SelectedIndexChanged" runat="server" Label="筛选报警" LabelAlign="Right" Width="200px">
<f:ListItem Text="全部" Value="全部" />
<f:ListItem Text="报警" Value="报警" /> <f:ListItem Text="报警" Value="报警" />
<f:ListItem Text="全部" Value="全部" />
</f:DropDownList> </f:DropDownList>
<f:ToolbarFill ID="ToolbarFill1" runat="server"> <f:ToolbarFill ID="ToolbarFill1" runat="server">
</f:ToolbarFill> </f:ToolbarFill>

View File

@ -48,9 +48,9 @@ namespace FineUIPro.Web.WeldingProcess.PMI
WorkAreaCode, WorkAreaCode,
PipelineCode, PipelineCode,
PMINum, PMINum,
(convert(float,PMIBySNum)/NULLIF(convert(float,PMINum),0)*100) as RateBys, isnull((convert(float,PMIBySNum)/NULLIF(convert(float,PMINum),0)*100),0) as RateBys,
PMIBySNum, PMIBySNum,
(convert(float,PMIByFNum)/NULLIF(convert(float,PMINum),0)*100) as RateByf, isnull( (convert(float,PMIByFNum)/NULLIF(convert(float,PMINum),0)*100),0) as RateByf,
PMIByFNum PMIByFNum
from ( from (
select select
@ -79,7 +79,7 @@ namespace FineUIPro.Web.WeldingProcess.PMI
left join Project_Installation as b on a.InstallationId=b.InstallationId left join Project_Installation as b on a.InstallationId=b.InstallationId
left join Project_WorkArea as c on a.WorkAreaId=c.WorkAreaId left join Project_WorkArea as c on a.WorkAreaId=c.WorkAreaId
) as t ) as t
) as H where projectId=@projectId and RateBys>0 "; ) as H where projectId=@projectId ";
List<SqlParameter> listStr = new List<SqlParameter>(); List<SqlParameter> listStr = new List<SqlParameter>();
listStr.Add(new SqlParameter("@projectId", this.CurrUser.LoginProjectId)); listStr.Add(new SqlParameter("@projectId", this.CurrUser.LoginProjectId));
if (this.drpUnitId.SelectedValue != BLL.Const._Null) if (this.drpUnitId.SelectedValue != BLL.Const._Null)
@ -92,9 +92,9 @@ namespace FineUIPro.Web.WeldingProcess.PMI
sql += " and WorkAreaId=@workAreaId"; sql += " and WorkAreaId=@workAreaId";
listStr.Add(new SqlParameter("@workAreaId", this.drpWorkAreaId.SelectedValue)); listStr.Add(new SqlParameter("@workAreaId", this.drpWorkAreaId.SelectedValue));
} }
if (this.drpIsALl.SelectedValue!="全部") if (this.drpIsALl.SelectedValue=="报警")
{ {
sql += " and RateBys<=2"; sql += " and RateBys>0 and RateBys<=2";
} }
if (!string.IsNullOrEmpty(this.txtPipelineCode.Text)) if (!string.IsNullOrEmpty(this.txtPipelineCode.Text))
{ {
@ -139,7 +139,7 @@ namespace FineUIPro.Web.WeldingProcess.PMI
if (itemLable !=null && !string.IsNullOrEmpty(itemLable.Text)) if (itemLable !=null && !string.IsNullOrEmpty(itemLable.Text))
{ {
itemLable.Text = rates.ToString() + "%"; itemLable.Text = rates.ToString() + "%";
if (rates <= 2) if (rates>0 && rates <= 2)
{ {
itemLable.ForeColor = Color.Red; itemLable.ForeColor = Color.Red;
} }
@ -148,7 +148,7 @@ namespace FineUIPro.Web.WeldingProcess.PMI
if(labRateByf!=null && !string.IsNullOrEmpty(labRateByf.Text)) if(labRateByf!=null && !string.IsNullOrEmpty(labRateByf.Text))
{ {
labRateByf.Text= ratef.ToString() + "%"; labRateByf.Text= ratef.ToString() + "%";
if (ratef <= 2) if (ratef>0 && ratef <= 2)
{ {
labRateByf.ForeColor = Color.Red; labRateByf.ForeColor = Color.Red;
} }

View File

@ -7,6 +7,9 @@
<title>查找管线焊口信息</title> <title>查找管线焊口信息</title>
<base target="_self" /> <base target="_self" />
<link href="../res/css/common.css" rel="stylesheet" type="text/css" /> <link href="../res/css/common.css" rel="stylesheet" type="text/css" />
<style>
.red{ color:red}
</style>
</head> </head>
<body> <body>
<form id="form1" runat="server"> <form id="form1" runat="server">
@ -23,6 +26,7 @@
EmptyText="<%$ Resources:Lan,EnterQueryConditions %>" AutoPostBack="true" OnTextChanged="Tree_TextChanged" EmptyText="<%$ Resources:Lan,EnterQueryConditions %>" AutoPostBack="true" OnTextChanged="Tree_TextChanged"
Width="230px" LabelWidth="110px" LabelAlign="Right"> Width="230px" LabelWidth="110px" LabelAlign="Right">
</f:TextBox> </f:TextBox>
</Items> </Items>
</f:Toolbar> </f:Toolbar>
</Toolbars> </Toolbars>
@ -48,11 +52,13 @@
<Items> <Items>
<f:TextBox ID="txtJointNo" runat="server" Label="<%$ Resources:Lan,WeldingJointNumber %>" <f:TextBox ID="txtJointNo" runat="server" Label="<%$ Resources:Lan,WeldingJointNumber %>"
EmptyText="<%$ Resources:Lan,EnterQueryConditions %>" AutoPostBack="true" OnTextChanged="Tree2_TextChanged" EmptyText="<%$ Resources:Lan,EnterQueryConditions %>" AutoPostBack="true" OnTextChanged="Tree2_TextChanged"
Width="300px" LabelWidth="160px" LabelAlign="Right"> LabelAlign="Right" Width="220" LabelWidth="80">
</f:TextBox> </f:TextBox>
<f:Label ID="ww" runat="server" Width="60px">
</f:Label>
<f:Label ID="lblratebys" Text="预制检测比例0" runat="server" Width="160"></f:Label>
<f:Label ID="lblnumbys" Text="预制检测数量0" runat="server" Width="120"></f:Label>
<f:Label ID="lblratebyf" Text="安装检测比例0" runat="server" Width="160"></f:Label>
<f:Label ID="lblnumbyf" Text="安装检测数量0" runat="server" Width="120"></f:Label>
<f:ToolbarFill ID="ToolbarFill1" runat="server"> <f:ToolbarFill ID="ToolbarFill1" runat="server">
</f:ToolbarFill> </f:ToolbarFill>
<f:Button ID="btnAccept" Icon="Accept" runat="server" Text="<%$ Resources:Lan,Sure %>" <f:Button ID="btnAccept" Icon="Accept" runat="server" Text="<%$ Resources:Lan,Sure %>"

View File

@ -3,6 +3,7 @@ using Model;
using NPOI.SS.Formula.Functions; using NPOI.SS.Formula.Functions;
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.Data;
using System.Data.SqlClient; using System.Data.SqlClient;
using System.Linq; using System.Linq;
using System.Web; using System.Web;
@ -35,6 +36,7 @@ namespace FineUIPro.Web.WeldingProcess.PMI
{ {
this.InitTreeMenu();//加载树 this.InitTreeMenu();//加载树
this.BindGrid(); this.BindGrid();
this.TotalPMIReport();
} }
} }
#endregion #endregion
@ -52,7 +54,7 @@ namespace FineUIPro.Web.WeldingProcess.PMI
rootNode.ToolTip = Resources.Lan.SeachTip; rootNode.ToolTip = Resources.Lan.SeachTip;
rootNode.Expanded = true; rootNode.Expanded = true;
this.tvControlItem.Nodes.Add(rootNode); this.tvControlItem.Nodes.Add(rootNode);
var dictWorkArea = GetWorkAreaDict();
//排除已经委托过的 //排除已经委托过的
var listData= (from a in Funs.DB.PMI_Delegation.AsQueryable() join var listData= (from a in Funs.DB.PMI_Delegation.AsQueryable() join
b in Funs.DB.PMI_DelegationDetails.AsQueryable() on b in Funs.DB.PMI_DelegationDetails.AsQueryable() on
@ -61,41 +63,43 @@ namespace FineUIPro.Web.WeldingProcess.PMI
).Distinct().ToList(); ).Distinct().ToList();
//查询带有PMI处理的管线数据 //查询带有PMI处理的管线数据
var iso = (from a in Funs.DB.Pipeline_Pipeline join b var iso = from a in Funs.DB.View_Pipeline_WeldJoint
in Funs.DB.Project_WorkArea on a.WorkAreaId equals b.WorkAreaId where a.IsPMI==true && a.ProjectId==this.ProjectId && a.UnitId==this.UnitId
join c in Funs.DB.Pipeline_WeldJoint on a.PipelineId equals c.PipelineId && a.InstallationId==this.installId
where a.ProjectId==this.ProjectId && a.UnitId==this.UnitId && select new {a.PipelineId,a.PipelineCode,a.WorkAreaId,a.WeldJointCode,a.WeldJointId }
a.InstallationId==this.installId && c.IsPMI==true ;
select new {
a.PipelineCode,
a.PipelineId,
b.WorkAreaId,
b.WorkAreaCode,
c.WeldJointId,
c.WeldJointCode
});
if (listData.Count > 0) if (listData.Count > 0)
{ {
iso = iso.Where(e => !listData.Contains(e.WeldJointId)); iso = iso.Where(a => !listData.Contains(a.WeldJointId));
} }
if (!string.IsNullOrEmpty(this.txtIsono.Text)) if (!string.IsNullOrEmpty(this.txtIsono.Text))
{ {
iso = iso.Where(e => e.PipelineCode.Contains(this.txtIsono.Text.Trim())); iso = iso.Where(a => a.PipelineCode.Contains(this.txtIsono.Text.Trim()));
} }
var isoList = iso.Select(x => new { x.PipelineId,x.PipelineCode,x.WorkAreaCode}).OrderBy(x => x.PipelineCode).Distinct().ToList(); var isoList = iso.Select(x => new { x.PipelineId,x.PipelineCode,x.WorkAreaId}).OrderBy(x => x.PipelineCode).Distinct().ToList();
if (isoList.Count > 0) if (isoList.Count > 0)
{ {
foreach (var q in isoList) foreach (var q in isoList)
{ {
string workAreaCode = string.Empty;
if (dictWorkArea.ContainsKey(q.WorkAreaId))
{
workAreaCode = dictWorkArea[q.WorkAreaId];
}
TreeNode newNode = new TreeNode(); TreeNode newNode = new TreeNode();
newNode.NodeID = q.PipelineId; newNode.NodeID = q.PipelineId;
newNode.Text = q.PipelineCode + "(" + q.WorkAreaCode + ")"; newNode.Text = q.PipelineCode + "(" + workAreaCode + ")";
newNode.EnableClickEvent = true; newNode.EnableClickEvent = true;
rootNode.Nodes.Add(newNode); rootNode.Nodes.Add(newNode);
} }
} }
} }
private Dictionary<string, string> GetWorkAreaDict()
{
var dict = Funs.DB.Project_WorkArea.Where(t=>t.ProjectId==this.ProjectId&& t.UnitId==this.UnitId).ToDictionary(t => t.WorkAreaId, t => t.WorkAreaCode);
return dict;
}
#endregion #endregion
#region 线 #region 线
@ -111,6 +115,7 @@ namespace FineUIPro.Web.WeldingProcess.PMI
protected void Tree2_TextChanged(object sender, EventArgs e) protected void Tree2_TextChanged(object sender, EventArgs e)
{ {
this.BindGrid(); this.BindGrid();
this.TotalPMIReport();
} }
#endregion #endregion
@ -125,6 +130,7 @@ namespace FineUIPro.Web.WeldingProcess.PMI
protected void tvControlItem_NodeCommand(object sender, TreeCommandEventArgs e) protected void tvControlItem_NodeCommand(object sender, TreeCommandEventArgs e)
{ {
this.BindGrid(); this.BindGrid();
this.TotalPMIReport();
} }
#endregion #endregion
@ -224,5 +230,79 @@ namespace FineUIPro.Web.WeldingProcess.PMI
+ ActiveWindow.GetHidePostBackReference()); + ActiveWindow.GetHidePostBackReference());
} }
#endregion #endregion
#region
private void TotalPMIReport()
{
string sql = @"select *from (
select
projectId,
InstallationId,
WorkAreaId,
UnitId,
PipelineId,
InstallationCode,
WorkAreaCode,
PipelineCode,
PMINum,
isnull((convert(float,PMIBySNum)/NULLIF(convert(float,PMINum),0)*100),0) as RateBys,
PMIBySNum,
isnull( (convert(float,PMIByFNum)/NULLIF(convert(float,PMINum),0)*100),0) as RateByf,
PMIByFNum
from (
select
a.projectId,
a.InstallationId,
a.WorkAreaId,
a.UnitId,
a.PipelineId,
b.InstallationCode,
c.WorkAreaCode,
a.PipelineCode,
(select count(1) from Pipeline_WeldJoint as d where isPMI=1 and d.PipelineId=a.PipelineId) as PMINum,
(
select count(1) from PMI_Delegation as pd inner join PMI_DelegationDetails as pdd on pd.Id=pdd.PMIId
inner join Pipeline_WeldJoint as pwj on pdd.JointId=pwj.WeldJointId
where pd.InstallationId=a.InstallationId and pd.UnitId=a.UnitId and pdd.WorkAreaId=a.WorkAreaId
and pwj.PipelineId=a.PipelineId and pwj.JointAttribute='S' and pwj.isPMI=1
) as PMIBySNum,
(
select count(1) from PMI_Delegation as pd inner join PMI_DelegationDetails as pdd on pd.Id=pdd.PMIId
inner join Pipeline_WeldJoint as pwj on pdd.JointId=pwj.WeldJointId
where pd.InstallationId=a.InstallationId and pd.UnitId=a.UnitId and pdd.WorkAreaId=a.WorkAreaId
and pwj.PipelineId=a.PipelineId and pwj.JointAttribute='F' and pwj.isPMI=1
) as PMIByFNum
from Pipeline_Pipeline as a
left join Project_Installation as b on a.InstallationId=b.InstallationId
left join Project_WorkArea as c on a.WorkAreaId=c.WorkAreaId
) as t
) as H where projectId=@projectId and PipelineId=@PipelineId ";
List<SqlParameter> listStr = new List<SqlParameter>();
listStr.Add(new SqlParameter("@projectId", this.CurrUser.LoginProjectId));
listStr.Add(new SqlParameter("@PipelineId", this.tvControlItem.SelectedNodeID));
SqlParameter[] parameter = listStr.ToArray();
DataTable dt = SQLHelper.GetDataTableRunText(sql, parameter);
if (dt.Rows.Count > 0)
{
string PMIByFNum = dt.Rows[0]["PMIByFNum"].ToString();
string PMIBySNum=dt.Rows[0]["PMIBySNum"].ToString();
string RateByF=dt.Rows[0]["RateByF"].ToString();
string RateByS = dt.Rows[0]["RateByS"].ToString();
lblnumbyf.Text = "预制检测数量:" + PMIByFNum;
lblnumbys.Text = "安装检测数量:" + PMIBySNum;
lblratebyf.Text = "预制检测比例:" + Math.Round(decimal.Parse(RateByF), 2)+"%";
lblratebys.Text = "安装检测比例:" + Math.Round(decimal.Parse(RateByS), 2) + "%";
//if(Math.Round(decimal.Parse(RateByF), 2)>0 && Math.Round(decimal.Parse(RateByF), 2) <= 2)
//{
// lblratebyf.CssStyle = "{color:red}";
//}
//if (Math.Round(decimal.Parse(RateByS), 2) > 0 && Math.Round(decimal.Parse(RateByS), 2) <= 2)
//{
// lblratebys.CssStyle = "{color:red}";
//}
}
}
#endregion
} }
} }

View File

@ -114,13 +114,40 @@ namespace FineUIPro.Web.WeldingProcess.PMI
protected global::FineUIPro.TextBox txtJointNo; protected global::FineUIPro.TextBox txtJointNo;
/// <summary> /// <summary>
/// ww 控件。 /// lblratebys 控件。
/// </summary> /// </summary>
/// <remarks> /// <remarks>
/// 自动生成的字段。 /// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks> /// </remarks>
protected global::FineUIPro.Label ww; protected global::FineUIPro.Label lblratebys;
/// <summary>
/// lblnumbys 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.Label lblnumbys;
/// <summary>
/// lblratebyf 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.Label lblratebyf;
/// <summary>
/// lblnumbyf 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.Label lblnumbyf;
/// <summary> /// <summary>
/// ToolbarFill1 控件。 /// ToolbarFill1 控件。