diff --git a/HJGL/FineUIPro.Web/WeldingProcess/PMI/PMIDelegationReport.aspx b/HJGL/FineUIPro.Web/WeldingProcess/PMI/PMIDelegationReport.aspx index 7c0a664..59e66d5 100644 --- a/HJGL/FineUIPro.Web/WeldingProcess/PMI/PMIDelegationReport.aspx +++ b/HJGL/FineUIPro.Web/WeldingProcess/PMI/PMIDelegationReport.aspx @@ -31,9 +31,9 @@ LabelAlign="Right" Width="280px"> - + - + diff --git a/HJGL/FineUIPro.Web/WeldingProcess/PMI/PMIDelegationReport.aspx.cs b/HJGL/FineUIPro.Web/WeldingProcess/PMI/PMIDelegationReport.aspx.cs index 4f4842a..6fc24ce 100644 --- a/HJGL/FineUIPro.Web/WeldingProcess/PMI/PMIDelegationReport.aspx.cs +++ b/HJGL/FineUIPro.Web/WeldingProcess/PMI/PMIDelegationReport.aspx.cs @@ -48,9 +48,9 @@ namespace FineUIPro.Web.WeldingProcess.PMI WorkAreaCode, PipelineCode, 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, - (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 from ( select @@ -79,7 +79,7 @@ namespace FineUIPro.Web.WeldingProcess.PMI 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 RateBys>0 "; + ) as H where projectId=@projectId "; List listStr = new List(); listStr.Add(new SqlParameter("@projectId", this.CurrUser.LoginProjectId)); if (this.drpUnitId.SelectedValue != BLL.Const._Null) @@ -92,9 +92,9 @@ namespace FineUIPro.Web.WeldingProcess.PMI sql += " and WorkAreaId=@workAreaId"; 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)) { @@ -139,7 +139,7 @@ namespace FineUIPro.Web.WeldingProcess.PMI if (itemLable !=null && !string.IsNullOrEmpty(itemLable.Text)) { itemLable.Text = rates.ToString() + "%"; - if (rates <= 2) + if (rates>0 && rates <= 2) { itemLable.ForeColor = Color.Red; } @@ -148,7 +148,7 @@ namespace FineUIPro.Web.WeldingProcess.PMI if(labRateByf!=null && !string.IsNullOrEmpty(labRateByf.Text)) { labRateByf.Text= ratef.ToString() + "%"; - if (ratef <= 2) + if (ratef>0 && ratef <= 2) { labRateByf.ForeColor = Color.Red; } diff --git a/HJGL/FineUIPro.Web/WeldingProcess/PMI/PMISelectList.aspx b/HJGL/FineUIPro.Web/WeldingProcess/PMI/PMISelectList.aspx index 1e4efae..ee90a50 100644 --- a/HJGL/FineUIPro.Web/WeldingProcess/PMI/PMISelectList.aspx +++ b/HJGL/FineUIPro.Web/WeldingProcess/PMI/PMISelectList.aspx @@ -7,83 +7,89 @@ 查找管线焊口信息 +
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - \ No newline at end of file + diff --git a/HJGL/FineUIPro.Web/WeldingProcess/PMI/PMISelectList.aspx.cs b/HJGL/FineUIPro.Web/WeldingProcess/PMI/PMISelectList.aspx.cs index 06427de..a3a00ea 100644 --- a/HJGL/FineUIPro.Web/WeldingProcess/PMI/PMISelectList.aspx.cs +++ b/HJGL/FineUIPro.Web/WeldingProcess/PMI/PMISelectList.aspx.cs @@ -3,6 +3,7 @@ using Model; using NPOI.SS.Formula.Functions; using System; using System.Collections.Generic; +using System.Data; using System.Data.SqlClient; using System.Linq; using System.Web; @@ -35,6 +36,7 @@ namespace FineUIPro.Web.WeldingProcess.PMI { this.InitTreeMenu();//加载树 this.BindGrid(); + this.TotalPMIReport(); } } #endregion @@ -52,7 +54,7 @@ namespace FineUIPro.Web.WeldingProcess.PMI rootNode.ToolTip = Resources.Lan.SeachTip; rootNode.Expanded = true; this.tvControlItem.Nodes.Add(rootNode); - + var dictWorkArea = GetWorkAreaDict(); //排除已经委托过的 var listData= (from a in Funs.DB.PMI_Delegation.AsQueryable() join b in Funs.DB.PMI_DelegationDetails.AsQueryable() on @@ -61,41 +63,43 @@ namespace FineUIPro.Web.WeldingProcess.PMI ).Distinct().ToList(); //查询带有PMI处理的管线数据 - var iso = (from a in Funs.DB.Pipeline_Pipeline join b - in Funs.DB.Project_WorkArea on a.WorkAreaId equals b.WorkAreaId - join c in Funs.DB.Pipeline_WeldJoint on a.PipelineId equals c.PipelineId - where a.ProjectId==this.ProjectId && a.UnitId==this.UnitId && - a.InstallationId==this.installId && c.IsPMI==true - select new { - a.PipelineCode, - a.PipelineId, - b.WorkAreaId, - b.WorkAreaCode, - c.WeldJointId, - c.WeldJointCode - }); + var iso = from a in Funs.DB.View_Pipeline_WeldJoint + where a.IsPMI==true && a.ProjectId==this.ProjectId && a.UnitId==this.UnitId + && a.InstallationId==this.installId + select new {a.PipelineId,a.PipelineCode,a.WorkAreaId,a.WeldJointCode,a.WeldJointId } + ; 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)) { - 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) { foreach (var q in isoList) { + string workAreaCode = string.Empty; + if (dictWorkArea.ContainsKey(q.WorkAreaId)) + { + workAreaCode = dictWorkArea[q.WorkAreaId]; + } TreeNode newNode = new TreeNode(); newNode.NodeID = q.PipelineId; - newNode.Text = q.PipelineCode + "(" + q.WorkAreaCode + ")"; + newNode.Text = q.PipelineCode + "(" + workAreaCode + ")"; newNode.EnableClickEvent = true; rootNode.Nodes.Add(newNode); } } } + private Dictionary 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 #region 管线查询 @@ -111,6 +115,7 @@ namespace FineUIPro.Web.WeldingProcess.PMI protected void Tree2_TextChanged(object sender, EventArgs e) { this.BindGrid(); + this.TotalPMIReport(); } #endregion @@ -125,6 +130,7 @@ namespace FineUIPro.Web.WeldingProcess.PMI protected void tvControlItem_NodeCommand(object sender, TreeCommandEventArgs e) { this.BindGrid(); + this.TotalPMIReport(); } #endregion @@ -224,5 +230,79 @@ namespace FineUIPro.Web.WeldingProcess.PMI + ActiveWindow.GetHidePostBackReference()); } #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 listStr = new List(); + 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 } } \ No newline at end of file diff --git a/HJGL/FineUIPro.Web/WeldingProcess/PMI/PMISelectList.aspx.designer.cs b/HJGL/FineUIPro.Web/WeldingProcess/PMI/PMISelectList.aspx.designer.cs index 067c153..6dfa397 100644 --- a/HJGL/FineUIPro.Web/WeldingProcess/PMI/PMISelectList.aspx.designer.cs +++ b/HJGL/FineUIPro.Web/WeldingProcess/PMI/PMISelectList.aspx.designer.cs @@ -114,13 +114,40 @@ namespace FineUIPro.Web.WeldingProcess.PMI protected global::FineUIPro.TextBox txtJointNo; /// - /// ww 控件。 + /// lblratebys 控件。 /// /// /// 自动生成的字段。 /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 /// - protected global::FineUIPro.Label ww; + protected global::FineUIPro.Label lblratebys; + + /// + /// lblnumbys 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Label lblnumbys; + + /// + /// lblratebyf 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Label lblratebyf; + + /// + /// lblnumbyf 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Label lblnumbyf; /// /// ToolbarFill1 控件。