移交管理优化:子项完成状态判断逻辑调整;

This commit is contained in:
2024-11-20 11:29:46 +08:00
parent 981b4e2f63
commit 448fa6c4f2
31 changed files with 300 additions and 103 deletions
@@ -13,7 +13,7 @@
<f:Panel ID="Panel1" runat="server" Margin="5px" BodyPadding="5px" ShowBorder="false"
ShowHeader="false" Layout="VBox" BoxConfigAlign="Stretch">
<items>
<f:Grid ID="Grid1" ShowBorder="true" ShowHeader="false" Title="设备材料报验" EnableCollapse="true"
<f:Grid ID="Grid1" ShowBorder="true" ShowHeader="false" Title="移交统计表" EnableCollapse="true"
runat="server" BoxFlex="1" DataKeyNames="SubSysNo" AllowCellEditing="true" EnableColumnLines="true"
ClicksToEdit="2" DataIDField="SubSysNo" AllowSorting="true"
AllowPaging="true" IsDatabasePaging="true" PageSize="10" OnPageIndexChange="Grid1_PageIndexChange"
@@ -48,7 +48,7 @@
<f:RenderField ColumnID="SubSysNo" DataField="SubSysNo"
FieldType="String" HeaderText="Turnover<br/>System Code" TextAlign="Center"
HeaderTextAlign="Center" MinWidth="140px" EnableLock="true" Locked="true">
HeaderTextAlign="Center" MinWidth="180px" EnableLock="true" Locked="true">
</f:RenderField>
<f:RenderField MinWidth="100px" ColumnID="PlanPWD" DataField="PlanPWD"
@@ -65,91 +65,91 @@
<f:GroupField HeaderText="Welding<br/>管道焊接信息" TextAlign="Center">
<columns>
<f:RenderField MinWidth="30px" ColumnID="TotalFactor" DataField="TotalFactor"
<f:RenderField MinWidth="30px" ColumnID="StrTotalFactor" DataField="StrTotalFactor"
HeaderText="总达因数" TextAlign="Center" />
<f:RenderField MinWidth="50px" ColumnID="CompleteFactor" DataField="CompleteFactor"
<f:RenderField MinWidth="50px" ColumnID="StrCompleteFactor" DataField="StrCompleteFactor"
HeaderText="完成达因数" TextAlign="Center" />
<f:RenderField MinWidth="30px" ColumnID="CompleteProportion" DataField="CompleteProportion"
<f:RenderField MinWidth="30px" ColumnID="StrCompleteProportion" DataField="StrCompleteProportion"
HeaderText="完成率(%)" TextAlign="Center" />
</columns>
</f:GroupField>
<f:GroupField HeaderText="Piping<br/>管道试压包" TextAlign="Center">
<columns>
<f:RenderField MinWidth="30px" ColumnID="PipingCount" DataField="PipingCount"
<f:RenderField MinWidth="30px" ColumnID="StrPipingCount" DataField="StrPipingCount"
HeaderText="总数" TextAlign="Center" />
<f:RenderField MinWidth="30px" ColumnID="PipingScount" DataField="PipingScount"
<f:RenderField MinWidth="30px" ColumnID="StrPipingScount" DataField="StrPipingScount"
HeaderText="完成数" TextAlign="Center" />
<f:RenderField MinWidth="30px" ColumnID="PipingPercent" DataField="PipingPercent"
<f:RenderField MinWidth="30px" ColumnID="StrPipingPercent" DataField="StrPipingPercent"
HeaderText="完成率(%)" TextAlign="Center" />
</columns>
</f:GroupField>
<f:GroupField HeaderText="Reinstate<br/>管道冲洗吹扫&复位信息" TextAlign="Center">
<columns>
<f:RenderField MinWidth="30px" ColumnID="ReinstateCount" DataField="ReinstateCount"
<f:RenderField MinWidth="30px" ColumnID="StrReinstateCount" DataField="StrReinstateCount"
HeaderText="总数" TextAlign="Center" />
<f:RenderField MinWidth="30px" ColumnID="ReinstateScount" DataField="ReinstateScount"
<f:RenderField MinWidth="30px" ColumnID="StrReinstateScount" DataField="StrReinstateScount"
HeaderText="完成数" TextAlign="Center" />
<f:RenderField MinWidth="30px" ColumnID="ReinstatePercent" DataField="ReinstatePercent"
<f:RenderField MinWidth="30px" ColumnID="StrReinstatePercent" DataField="StrReinstatePercent"
HeaderText="完成率(%)" TextAlign="Center" />
</columns>
</f:GroupField>
<f:GroupField HeaderText="Equipment<br/>设备测试包" TextAlign="Center">
<columns>
<f:RenderField MinWidth="30px" ColumnID="EqCount" DataField="EqCount"
<f:RenderField MinWidth="30px" ColumnID="StrEqCount" DataField="StrEqCount"
HeaderText="总数" TextAlign="Center" />
<f:RenderField MinWidth="30px" ColumnID="EqSCount" DataField="EqSCount"
<f:RenderField MinWidth="30px" ColumnID="StrEqSCount" DataField="StrEqSCount"
HeaderText="完成数" TextAlign="Center" />
<f:RenderField MinWidth="30px" ColumnID="EqPercent" DataField="EqPercent"
<f:RenderField MinWidth="30px" ColumnID="StrEqPercent" DataField="StrEqPercent"
HeaderText="完成率(%)" TextAlign="Center" />
</columns>
</f:GroupField>
<f:GroupField HeaderText="Electric<br/>电气测试包" TextAlign="Center">
<columns>
<f:RenderField MinWidth="30px" ColumnID="TeCount" DataField="TeCount"
<f:RenderField MinWidth="30px" ColumnID="StrTeCount" DataField="StrTeCount"
HeaderText="总数" TextAlign="Center" />
<f:RenderField MinWidth="30px" ColumnID="TeScount" DataField="TeScount"
<f:RenderField MinWidth="30px" ColumnID="StrTeScount" DataField="StrTeScount"
HeaderText="完成数" TextAlign="Center" />
<f:RenderField MinWidth="30px" ColumnID="TePercent" DataField="TePercent"
<f:RenderField MinWidth="30px" ColumnID="StrTePercent" DataField="StrTePercent"
HeaderText="完成率(%)" TextAlign="Center" />
</columns>
</f:GroupField>
<f:GroupField HeaderText="instrument<br/>仪表测试包" TextAlign="Center">
<columns>
<f:RenderField MinWidth="30px" ColumnID="TiCount" DataField="TiCount"
<f:RenderField MinWidth="30px" ColumnID="StrTiCount" DataField="StrTiCount"
HeaderText="总数" TextAlign="Center" />
<f:RenderField MinWidth="30px" ColumnID="TiScount" DataField="TiScount"
<f:RenderField MinWidth="30px" ColumnID="StrTiScount" DataField="StrTiScount"
HeaderText="完成数" TextAlign="Center" />
<f:RenderField MinWidth="30px" ColumnID="TiPercent" DataField="TiPercent"
<f:RenderField MinWidth="30px" ColumnID="StrTiPercent" DataField="StrTiPercent"
HeaderText="完成率(%)" TextAlign="Center" />
</columns>
</f:GroupField>
<f:GroupField HeaderText="Civil/Structure<br/>土建/建筑/结构测试包" TextAlign="Center">
<columns>
<f:RenderField MinWidth="30px" ColumnID="TcsCount" DataField="TcsCount"
<f:RenderField MinWidth="30px" ColumnID="StrTcsCount" DataField="StrTcsCount"
HeaderText="总数" TextAlign="Center" />
<f:RenderField MinWidth="30px" ColumnID="TcsScount" DataField="TcsScount"
<f:RenderField MinWidth="30px" ColumnID="StrTcsScount" DataField="StrTcsScount"
HeaderText="完成数" TextAlign="Center" />
<f:RenderField MinWidth="30px" ColumnID="TcsPercent" DataField="TcsPercent"
<f:RenderField MinWidth="30px" ColumnID="StrTcsPercent" DataField="StrTcsPercent"
HeaderText="完成率(%)" TextAlign="Center" />
</columns>
</f:GroupField>
@@ -169,13 +169,13 @@
<f:GroupField HeaderText="Telecom<br/>电信测试包" TextAlign="Center">
<columns>
<f:RenderField MinWidth="30px" ColumnID="TtCount" DataField="TtCount"
<f:RenderField MinWidth="30px" ColumnID="StrTtCount" DataField="StrTtCount"
HeaderText="总数" TextAlign="Center" />
<f:RenderField MinWidth="30px" ColumnID="TtScount" DataField="TtScount"
<f:RenderField MinWidth="30px" ColumnID="StrTtScount" DataField="StrTtScount"
HeaderText="完成数" TextAlign="Center" />
<f:RenderField MinWidth="30px" ColumnID="TtPercent" DataField="TtPercent"
<f:RenderField MinWidth="30px" ColumnID="StrTtPercent" DataField="StrTtPercent"
HeaderText="完成率(%)" TextAlign="Center" />
</columns>
</f:GroupField>
@@ -183,6 +183,187 @@ where f.ProjectId = @ProjectId";
DataTable tb = DataSql();
Grid1.RecordCount = tb.Rows.Count;
var table = this.GetPagedDataTable(Grid1, tb);
// 添加管道焊接信息
DataColumn StrTotalFactor = new DataColumn("StrTotalFactor", typeof(string));
DataColumn StrCompleteFactor = new DataColumn("StrCompleteFactor", typeof(string));
DataColumn StrCompleteProportion = new DataColumn("StrCompleteProportion", typeof(string));
table.Columns.Add(StrTotalFactor);
table.Columns.Add(StrCompleteFactor);
table.Columns.Add(StrCompleteProportion);
// 添加管道试压包
DataColumn StrPipingCount = new DataColumn("StrPipingCount", typeof(string));
DataColumn StrPipingScount = new DataColumn("StrPipingScount", typeof(string));
DataColumn StrPipingPercent = new DataColumn("StrPipingPercent", typeof(string));
table.Columns.Add(StrPipingCount);
table.Columns.Add(StrPipingScount);
table.Columns.Add(StrPipingPercent);
// 管道冲洗吹扫&复位信息
DataColumn StrReinstateCount = new DataColumn("StrReinstateCount", typeof(string));
DataColumn StrReinstateScount = new DataColumn("StrReinstateScount", typeof(string));
DataColumn StrReinstatePercent = new DataColumn("StrReinstatePercent", typeof(string));
table.Columns.Add(StrReinstateCount);
table.Columns.Add(StrReinstateScount);
table.Columns.Add(StrReinstatePercent);
// 设备测试包
DataColumn StrEqCount = new DataColumn("StrEqCount", typeof(string));
DataColumn StrEqSCount = new DataColumn("StrEqSCount", typeof(string));
DataColumn StrEqPercent = new DataColumn("StrEqPercent", typeof(string));
table.Columns.Add(StrEqCount);
table.Columns.Add(StrEqSCount);
table.Columns.Add(StrEqPercent);
// 电气测试包
DataColumn StrTeCount = new DataColumn("StrTeCount", typeof(string));
DataColumn StrTeScount = new DataColumn("StrTeScount", typeof(string));
DataColumn StrTePercent = new DataColumn("StrTePercent", typeof(string));
table.Columns.Add(StrTeCount);
table.Columns.Add(StrTeScount);
table.Columns.Add(StrTePercent);
// 仪表测试包
DataColumn StrTiCount = new DataColumn("StrTiCount", typeof(string));
DataColumn StrTiScount = new DataColumn("StrTiScount", typeof(string));
DataColumn StrTiPercent = new DataColumn("StrTiPercent", typeof(string));
table.Columns.Add(StrTiCount);
table.Columns.Add(StrTiScount);
table.Columns.Add(StrTiPercent);
// 土建/建筑/结构测试包
DataColumn StrTcsCount = new DataColumn("StrTcsCount", typeof(string));
DataColumn StrTcsScount = new DataColumn("StrTcsScount", typeof(string));
DataColumn StrTcsPercent = new DataColumn("StrTcsPercent", typeof(string));
table.Columns.Add(StrTcsCount);
table.Columns.Add(StrTcsScount);
table.Columns.Add(StrTcsPercent);
// 电信测试包
DataColumn StrTtCount = new DataColumn("StrTtCount", typeof(string));
DataColumn StrTtScount = new DataColumn("StrTtScount", typeof(string));
DataColumn StrTtPercent = new DataColumn("StrTtPercent", typeof(string));
table.Columns.Add(StrTtCount);
table.Columns.Add(StrTtScount);
table.Columns.Add(StrTtPercent);
// 遍历所有行
foreach (DataRow row in table.Rows)
{
//管道焊接信息-总达因数
//string TotalFactor = row["TotalFactor"].ToString();
//if (string.IsNullOrWhiteSpace(TotalFactor) || TotalFactor == "0.0" || TotalFactor == "0")
if (string.IsNullOrWhiteSpace(row["TotalFactor"].ToString()) || (decimal)row["TotalFactor"] == 0)
{
row["StrTotalFactor"] = "NA";
row["StrCompleteFactor"] = "NA";
row["StrCompleteProportion"] = "NA";
}
else
{
row["StrTotalFactor"] = row["TotalFactor"].ToString();
row["StrCompleteFactor"] = row["CompleteFactor"].ToString();
row["StrCompleteProportion"] = row["CompleteProportion"].ToString();
}
//管道试压包
//string PipingCount = row["PipingCount"].ToString();
//if (string.IsNullOrWhiteSpace(PipingCount) || PipingCount == "0.0" || PipingCount == "0")
if (string.IsNullOrWhiteSpace(row["PipingCount"].ToString()) || (int)row["PipingCount"] == 0)
{
row["StrPipingCount"] = "NA";
row["StrPipingScount"] = "NA";
row["StrPipingPercent"] = "NA";
}
else
{
row["StrPipingCount"] = row["PipingCount"].ToString();
row["StrPipingScount"] = row["PipingScount"].ToString();
row["StrPipingPercent"] = row["PipingPercent"].ToString();
}
//管道冲洗吹扫&复位信息
//string ReinstateCount = row["ReinstateCount"].ToString();
//if (string.IsNullOrWhiteSpace(ReinstateCount) || ReinstateCount == "0.0" || ReinstateCount == "0")
if (string.IsNullOrWhiteSpace(row["ReinstateCount"].ToString()) || (int)row["ReinstateCount"] == 0)
{
row["StrReinstateCount"] = "NA";
row["StrReinstateScount"] = "NA";
row["StrReinstatePercent"] = "NA";
}
else
{
row["StrReinstateCount"] = row["ReinstateCount"].ToString();
row["StrReinstateScount"] = row["ReinstateScount"].ToString();
row["StrReinstatePercent"] = row["ReinstatePercent"].ToString();
}
//设备测试包
//string EqCount = row["EqCount"].ToString();
//if (string.IsNullOrWhiteSpace(EqCount) || EqCount == "0.0" || EqCount == "0")
if (string.IsNullOrWhiteSpace(row["EqCount"].ToString()) || (int)row["EqCount"] == 0)
{
row["StrEqCount"] = "NA";
row["StrEqSCount"] = "NA";
row["StrEqPercent"] = "NA";
}
else
{
row["StrEqCount"] = row["EqCount"].ToString();
row["StrEqSCount"] = row["EqSCount"].ToString();
row["StrEqPercent"] = row["EqPercent"].ToString();
}
//电气测试包
//string TeCount = row["TeCount"].ToString();
//if (string.IsNullOrWhiteSpace(TeCount) || TeCount == "0.0" || TeCount == "0")
if (string.IsNullOrWhiteSpace(row["TeCount"].ToString()) || (int)row["TeCount"] == 0)
{
row["StrTeCount"] = "NA";
row["StrTeScount"] = "NA";
row["StrTePercent"] = "NA";
}
else
{
row["StrTeCount"] = row["TeCount"].ToString();
row["StrTeScount"] = row["TeScount"].ToString();
row["StrTePercent"] = row["TePercent"].ToString();
}
//仪表测试包
//string TiCount = row["TiCount"].ToString();
//if (string.IsNullOrWhiteSpace(TiCount) || TiCount == "0.0" || TiCount == "0")
if (string.IsNullOrWhiteSpace(row["TiCount"].ToString()) || (int)row["TiCount"] == 0)
{
row["StrTiCount"] = "NA";
row["StrTiScount"] = "NA";
row["StrTiPercent"] = "NA";
}
else
{
row["StrTiCount"] = row["TiCount"].ToString();
row["StrTiScount"] = row["TiScount"].ToString();
row["StrTiPercent"] = row["TiPercent"].ToString();
}
//土建/建筑/结构测试包
//string TcsCount = row["TcsCount"].ToString();
//if (string.IsNullOrWhiteSpace(TcsCount) || TcsCount == "0.0" || TcsCount == "0")
if (string.IsNullOrWhiteSpace(row["TcsCount"].ToString()) || (int)row["TcsCount"] == 0)
{
row["StrTcsCount"] = "NA";
row["StrTcsScount"] = "NA";
row["StrTcsPercent"] = "NA";
}
else
{
row["StrTcsCount"] = row["TcsCount"].ToString();
row["StrTcsScount"] = row["TcsScount"].ToString();
row["StrTcsPercent"] = row["TcsPercent"].ToString();
}
//电信测试包
//string TtCount = row["TtCount"].ToString();
//if (string.IsNullOrWhiteSpace(TtCount) || TtCount == "0.0" || TtCount == "0")
if (string.IsNullOrWhiteSpace(row["TtCount"].ToString()) || (int)row["TtCount"] == 0)
{
row["StrTtCount"] = "NA";
row["StrTtScount"] = "NA";
row["StrTtPercent"] = "NA";
}
else
{
row["StrTtCount"] = row["TtCount"].ToString();
row["StrTtScount"] = row["TtScount"].ToString();
row["StrTtPercent"] = row["TtPercent"].ToString();
}
}
Grid1.DataSource = table;
Grid1.DataBind();
}
@@ -260,7 +441,7 @@ where f.ProjectId = @ProjectId";
Alert.ShowInTop("请至少选择一条记录!", MessageBoxIcon.Warning);
return;
}
string SystemNo = Grid1.SelectedRowID;
PageContext.RegisterStartupScript(Window1.GetShowReference(String.Format("SystemstatusEdit.aspx?SystemNo={0}", SystemNo, "编辑 - ")));
}
@@ -284,27 +465,42 @@ where f.ProjectId = @ProjectId";
var scode = systemNo.ToString();
//根据systemNo和projectid获取所有数据 和完成的数据
#region
var list1 = Funs.DB.Transfer_Piping.Where(x => x.ProjectId == pid && x.SYSTEM == scode).ToList();
var list2 = Funs.DB.Transfer_StaticEquipment.Where(x => x.ProjectId == pid && x.SYSTEM == scode).ToList();
var list3 = Funs.DB.Transfer_RotatingEquipment.Where(x => x.ProjectId == pid && x.SYSTEM == scode).ToList();
var list4 = Funs.DB.Transfer_Instrumentation.Where(x => x.ProjectId == pid && x.SystemName == scode).ToList();
var list5 = Funs.DB.Transfer_Electrical.Where(x => x.ProjectId == pid && x.SystemName == scode).ToList();
var list6 = Funs.DB.Transfer_Civil_Structure.Where(x => x.ProjectId == pid && x.SystemName == scode).ToList();
//var list7 = Funs.DB.Transfer_Firefighting.Where(x => x.ProjectId == pid && x.SystemName == scode).ToList();
var list8 = Funs.DB.Transfer_Telecom.Where(x => x.ProjectId == pid && x.SystemName == scode).ToList();
var list1 = Funs.DB.Transfer_Piping.Where(x => x.ProjectId == pid && x.TestPackage == scode).ToList();
var list2 = Funs.DB.Transfer_StaticEquipment.Where(x => x.ProjectId == pid && x.TestPackage == scode).ToList();
var list3 = Funs.DB.Transfer_RotatingEquipment.Where(x => x.ProjectId == pid && x.TestPackage == scode).ToList();
var list4 = Funs.DB.Transfer_Instrumentation.Where(x => x.ProjectId == pid && x.Test_Package == scode).ToList();
var list5 = Funs.DB.Transfer_Electrical.Where(x => x.ProjectId == pid && x.Test_Package == scode).ToList();
var list6 = Funs.DB.Transfer_Civil_Structure.Where(x => x.ProjectId == pid && x.Test_Package == scode).ToList();
//var list7 = Funs.DB.Transfer_Firefighting.Where(x => x.ProjectId == pid && x.Test_Package == scode).ToList();
var list8 = Funs.DB.Transfer_Telecom.Where(x => x.ProjectId == pid && x.Test_Package == scode).ToList();
#endregion
float allcount = (list1.Count + list2.Count + list3.Count + list4.Count +
list5.Count + list6.Count + list8.Count);//list7.Count +
//float allcount = (list1.Count + list2.Count + list3.Count + list4.Count +
// list5.Count + list6.Count + list8.Count);//list7.Count +
float allScount = (list1.Where(x => x.FINALStatus == "Completed").ToList().Count + list2.Where(x => x.MechanicalFINALStatus == "Completed").ToList().Count
+ list3.Where(x => x.MechanicalFINALStatus == "Completed").ToList().Count + list4.Where(x => x.FINAL_Status == "Completed").ToList().Count +
list5.Where(x => x.FINAL_Status == "Completed").ToList().Count + list6.Where(x => x.FINAL_Status == "Completed").ToList().Count
//float allScount = (list1.Where(x => x.FINALStatus == "Completed").ToList().Count + list2.Where(x => x.MechanicalFINALStatus == "Completed").ToList().Count
// + list3.Where(x => x.MechanicalFINALStatus == "Completed").ToList().Count + list4.Where(x => x.FINAL_Status == "Completed").ToList().Count +
// list5.Where(x => x.FINAL_Status == "Completed").ToList().Count + list6.Where(x => x.FINAL_Status == "Completed").ToList().Count
// //+ list7.Where(x => x.FINAL_Status == "Completed").ToList().Count
// + list8.Where(x => x.FINAL_Status == "Completed").ToList().Count
// );
//Piping管道试压包和复位都要统计
float allcount = (list1.Count + list1.Count + list2.Count + list3.Count + list4.Count +
list5.Count + list6.Count + list8.Count);//list7.Count +
float allScount = (list1.Where(x => x.FINALStatus == "Completed").ToList().Count
+ list1.Where(x => x.Reduction == "Completed").ToList().Count
+ list2.Where(x => x.MechanicalFINALStatus == "Completed").ToList().Count
+ list3.Where(x => x.MechanicalFINALStatus == "Completed").ToList().Count
+ list4.Where(x => x.FINAL_Status == "Completed").ToList().Count +
list5.Where(x => x.FINAL_Status == "Completed").ToList().Count
+ list6.Where(x => x.FINAL_Status == "Completed").ToList().Count
//+ list7.Where(x => x.FINAL_Status == "Completed").ToList().Count
+ list8.Where(x => x.FINAL_Status == "Completed").ToList().Count
);
if (Convert.ToInt32(allcount)==0)
if (Convert.ToInt32(allcount) == 0)
{
return "0";
}
@@ -388,7 +584,7 @@ where f.ProjectId = @ProjectId";
// {
// html = (row.FindControl("lblPageIndex") as AspNet.Label).Text;
// }
// else if (column.ColumnID == "Count4")
// {
// html = (row.FindControl("Label5") as AspNet.Label).Text;
@@ -400,7 +596,7 @@ where f.ProjectId = @ProjectId";
// //}
// sb.Append("</tr>");
// }
// sb.Append("</table>");
// return sb.ToString();
@@ -46,7 +46,7 @@ namespace FineUIPro.Web.Transfer.Chart
if (!string.IsNullOrEmpty(ddlSystemNo.SelectedValue))
{
systemCode= Funs.DB.Transfer_LHCSystemList
.Where(x => x.ProjectId == CurrUser.LoginProjectId && x.SystemNo == ddlSystemNo.SelectedValue)
.Where(x => x.ProjectId == CurrUser.LoginProjectId && x.Commissioningsystemcode == ddlSystemNo.SelectedValue)
.GroupBy(p => new { p.Commissioningsystemcode })
.Select(p => new { Commissioningsystemcode = p.Key.Commissioningsystemcode }).ToList();
}