This commit is contained in:
2024-07-29 17:25:07 +08:00
parent 1eb9661726
commit 569205fa76
14 changed files with 1149 additions and 68 deletions
@@ -10,7 +10,7 @@
</head>
<body>
<form id="form1" runat="server">
<f:PageManager ID="PageManager1" runat="server" AutoSizePanelID="RegionPanel1" AjaxAspnetControls="divAccidentUnit,divAccidentTime" />
<f:PageManager ID="PageManager1" runat="server" AutoSizePanelID="RegionPanel1" AjaxAspnetControls="divAccidentUnit,divAccidentTime,divAccidentTime1" />
<f:Panel ID="Panel3" CssClass="blockpanel" runat="server" EnableCollapse="false"
BodyPadding="10px" ShowBorder="true" ShowHeader="false">
<Items>
@@ -30,7 +30,7 @@
OnSelectedIndexChanged="drpChartType_SelectedIndexChanged" Width="300px" LabelWidth="80px">
<f:ListItem Value="Line" Text="折线图"></f:ListItem>
<f:ListItem Value="Column" Text="柱形图"></f:ListItem>
<%-- <f:ListItem Value="Pie" Text="饼形图"></f:ListItem>
<%-- <f:ListItem Value="Pie" Text="饼形图"></f:ListItem>
<f:ListItem Value="StackedArea" Text="堆积面积图"></f:ListItem>
<f:ListItem Value="Spline" Text="样条图"></f:ListItem>
<f:ListItem Value="SplineArea" Text="样条面积图"></f:ListItem>
@@ -52,7 +52,7 @@
<f:TabStrip ID="TabStrip1" CssClass="f-tabstrip-theme-simple" Height="600px" ShowBorder="true"
TabPosition="Top" MarginBottom="5px" EnableTabCloseMenu="false" runat="server">
<Tabs>
<f:Tab ID="Tab2" Title="图形" BodyPadding="5px" Layout="Fit" IconFont="Bookmark" runat="server"
<f:Tab ID="Tab1" Title="图形" BodyPadding="5px" Layout="Fit" IconFont="Bookmark" runat="server"
TitleToolTip="图形">
<Items>
<f:ContentPanel ShowHeader="false" runat="server" ID="cpAccidentTime" Margin="0 0 0 0">
@@ -62,6 +62,15 @@
</f:ContentPanel>
</Items>
</f:Tab>
<f:Tab ID="Tab2" Title="百分比" BodyPadding="5px" Layout="Fit" IconFont="Bookmark" runat="server" TitleToolTip="百分比">
<Items>
<f:ContentPanel ShowHeader="false" runat="server" ID="ContentPanel1" Margin="0 0 0 0">
<div id="divAccidentTime1">
<uc1:ChartControl ID="ChartAccidentTime1" runat="server" />
</div>
</f:ContentPanel>
</Items>
</f:Tab>
</Tabs>
</f:TabStrip>
</Items>
@@ -58,11 +58,34 @@ namespace FineUIPro.Web.Transfer.Chart
rowTime["日期"] = QueryTime.ToString("yyyy/MM/dd");
DateTime startTime = Convert.ToDateTime(QueryTime.ToString("yyyy-MM-dd") + " 00:00:00");
DateTime endTime = Convert.ToDateTime(QueryTime.ToString("yyyy-MM-dd") + " 23:59:59");
rowTime["计划完成数量"] = forms.Where(x => x.Required_Date >= startTime && x.Required_Date <= endTime).Count();
rowTime["实际完成数量"] = forms.Where(x => x.Actual_Date >= startTime && x.Actual_Date <= endTime).Count();
//rowTime["计划完成数量"] = forms.Where(x => x.Required_Date >= startTime && x.Required_Date <= endTime).Count();
//rowTime["实际完成数量"] = forms.Where(x => x.Actual_Date >= startTime && x.Actual_Date <= endTime).Count();
rowTime["计划完成数量"] = forms.Where(x => x.Required_Date <= endTime).Count();
rowTime["实际完成数量"] = forms.Where(x => x.Actual_Date <= endTime).Count();
dtTime.Rows.Add(rowTime);
}
this.ChartAccidentTime.CreateChart(BLL.ChartControlService.GetDataSourceChart(dtTime, "尾项完成统计分析", this.drpChartType.SelectedValue, 1300, 550, false));
///按单位统计
DataTable dtTime1 = new DataTable();
dtTime1.Columns.Add("日期", typeof(string));
dtTime1.Columns.Add("计划完成百分比(%)", typeof(string));
dtTime1.Columns.Add("实际完成百分比(%)", typeof(string));
for (int i = 6; i >= 0; i--)
{
DataRow rowTime = dtTime1.NewRow();
DateTime QueryTime = DateTime.Now.AddDays(i * -1);
rowTime["日期"] = QueryTime.ToString("yyyy/MM/dd");
DateTime startTime = Convert.ToDateTime(QueryTime.ToString("yyyy-MM-dd") + " 00:00:00");
DateTime endTime = Convert.ToDateTime(QueryTime.ToString("yyyy-MM-dd") + " 23:59:59");
double jhCount = forms.Where(x => x.Required_Date <= endTime).Count();
double sjCount = forms.Where(x => x.Actual_Date <= endTime).Count();
double allCount = forms.Count();
rowTime["计划完成百分比(%)"] = allCount == 0 ? "0.00" : (jhCount / allCount * 100).ToString("0.00");
rowTime["实际完成百分比(%)"] = allCount == 0 ? "0.00" : (sjCount / allCount * 100).ToString("0.00");
dtTime1.Rows.Add(rowTime);
}
this.ChartAccidentTime1.CreateChart(BLL.ChartControlService.GetDataSourceChart(dtTime1, "尾项完成统计分析", this.drpChartType.SelectedValue, 1300, 550, false));
}
#endregion
@@ -81,11 +104,34 @@ namespace FineUIPro.Web.Transfer.Chart
rowTime["月份"] = QueryTime.ToString("yyyy/MM");
DateTime startTime = QueryTime;
DateTime endTime = Convert.ToDateTime(QueryTime.AddMonths(1).AddDays(-1).ToString("yyyy-MM-dd") + " 23:59:59");
rowTime["计划完成数量"] = forms.Where(x => x.Required_Date >= startTime && x.Required_Date <= endTime).Count();
rowTime["实际完成数量"] = forms.Where(x => x.Actual_Date >= startTime && x.Actual_Date <= endTime).Count();
//rowTime["计划完成数量"] = forms.Where(x => x.Required_Date >= startTime && x.Required_Date <= endTime).Count();
//rowTime["实际完成数量"] = forms.Where(x => x.Actual_Date >= startTime && x.Actual_Date <= endTime).Count();
rowTime["计划完成数量"] = forms.Where(x => x.Required_Date <= endTime).Count();
rowTime["实际完成数量"] = forms.Where(x => x.Actual_Date <= endTime).Count();
dtTime.Rows.Add(rowTime);
}
this.ChartAccidentTime.CreateChart(BLL.ChartControlService.GetDataSourceChart(dtTime, "尾项完成统计分析", this.drpChartType.SelectedValue, 1300, 550, false));
///按单位统计
DataTable dtTime1 = new DataTable();
dtTime1.Columns.Add("月份", typeof(string));
dtTime1.Columns.Add("计划完成百分比(%)", typeof(string));
dtTime1.Columns.Add("实际完成百分比(%)", typeof(string));
for (int i = 1; i <= DateTime.Now.Month; i++)
{
DataRow rowTime = dtTime1.NewRow();
DateTime QueryTime = Convert.ToDateTime($"{DateTime.Now.Year.ToString()}-{i}-1 00:00:00");
rowTime["月份"] = QueryTime.ToString("yyyy/MM");
DateTime startTime = QueryTime;
DateTime endTime = Convert.ToDateTime(QueryTime.AddMonths(1).AddDays(-1).ToString("yyyy-MM-dd") + " 23:59:59");
double jhCount = forms.Where(x => x.Required_Date <= endTime).Count();
double sjCount = forms.Where(x => x.Actual_Date <= endTime).Count();
double allCount = forms.Count();
rowTime["计划完成百分比(%)"] = allCount == 0 ? "0.00" : (jhCount / allCount * 100).ToString("0.00");
rowTime["实际完成百分比(%)"] = allCount == 0 ? "0.00" : (sjCount / allCount * 100).ToString("0.00");
dtTime1.Rows.Add(rowTime);
}
this.ChartAccidentTime1.CreateChart(BLL.ChartControlService.GetDataSourceChart(dtTime1, "尾项完成统计分析", this.drpChartType.SelectedValue, 1300, 550, false));
}
}
@@ -105,13 +105,13 @@ namespace FineUIPro.Web.Transfer.Chart
protected global::FineUIPro.TabStrip TabStrip1;
/// <summary>
/// Tab2 控件。
/// Tab1 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.Tab Tab2;
protected global::FineUIPro.Tab Tab1;
/// <summary>
/// cpAccidentTime 控件。
@@ -130,5 +130,32 @@ namespace FineUIPro.Web.Transfer.Chart
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::Web.Controls.ChartControl ChartAccidentTime;
/// <summary>
/// Tab2 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.Tab Tab2;
/// <summary>
/// ContentPanel1 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.ContentPanel ContentPanel1;
/// <summary>
/// ChartAccidentTime1 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::Web.Controls.ChartControl ChartAccidentTime1;
}
}
@@ -88,6 +88,7 @@
EnableRowDoubleClickEvent="true" EnableTextSelection="true" EnableSummary="true" SummaryPosition="Flow">
<Columns>
<f:BoundField DataField="Action_By" ColumnID="Action_By" HeaderText="单位" ExpandUnusedSpace="true" MinWidth="150px" />
<f:RenderField Width="150px" ColumnID="Cat_All_Count" DataField="Cat_All_Count" HeaderText="汇总" TextAlign="Center" FieldType="Double" />
<f:GroupField HeaderText="类别" TextAlign="Center" MinWidth="600px">
<Columns>
<f:RenderField Width="150px" ColumnID="Cat_A_Count" DataField="Cat_A_Count" HeaderText="A" TextAlign="Center" FieldType="Double" />
@@ -196,12 +196,13 @@ namespace FineUIPro.Web.Transfer.Chart
strSql.AppendLine(" AND System_No=@System_No ");
listStr.Add(new SqlParameter("@System_No", _systemNo));
}
strSql.AppendLine(" select Action_By,cast(0 as decimal(18,2)) Cat_A_Count,cast(0 as decimal(18,2)) Cat_B_Count,cast(0 as decimal(18,2)) Cat_C_Count,cast(0 as decimal(18,2)) Cat_D_Count INTO #PunchlistFromSortTemp2 from #AllPunchlistFromSortTemp2 Group by Action_By; ");
strSql.AppendLine(" select Action_By,cast(0 as decimal(18,2)) Cat_All_Count,cast(0 as decimal(18,2)) Cat_A_Count,cast(0 as decimal(18,2)) Cat_B_Count,cast(0 as decimal(18,2)) Cat_C_Count,cast(0 as decimal(18,2)) Cat_D_Count INTO #PunchlistFromSortTemp2 from #AllPunchlistFromSortTemp2 Group by Action_By; ");
strSql.AppendLine(" update a set a.Cat_A_Count=(select count(1) from #AllPunchlistFromSortTemp2 b where a.Action_By=b.Action_By AND (isnull(b.Cat,'')='A' or isnull(b.Cat,'')='a')) ");
strSql.AppendLine(",a.Cat_B_Count=(select count(1) from #AllPunchlistFromSortTemp2 b where a.Action_By=b.Action_By AND (isnull(b.Cat,'')='B' or isnull(b.Cat,'')='b')) ");
strSql.AppendLine(",a.Cat_C_Count=(select count(1) from #AllPunchlistFromSortTemp2 b where a.Action_By=b.Action_By AND (isnull(b.Cat,'')='C' or isnull(b.Cat,'')='c')) ");
strSql.AppendLine(",a.Cat_D_Count=(select count(1) from #AllPunchlistFromSortTemp2 b where a.Action_By=b.Action_By AND (isnull(b.Cat,'')='D' or isnull(b.Cat,'')='d')) ");
strSql.AppendLine("from #PunchlistFromSortTemp2 a;");
strSql.AppendLine(" update #PunchlistFromSortTemp2 set Cat_All_Count=Cat_A_Count+Cat_B_Count+Cat_C_Count+Cat_D_Count; ");
strSql.AppendLine("select * from #PunchlistFromSortTemp2 ");
listStr.Add(new SqlParameter("@ProjectId", this.CurrUser.LoginProjectId));
strSql.AppendLine(" order by Action_By ");
@@ -217,8 +218,10 @@ namespace FineUIPro.Web.Transfer.Chart
int cat_B_Count = 0;
int cat_C_Count = 0;
int cat_D_Count = 0;
int cat_All_Count = 0;
foreach (DataRow row in tb.Rows)
{
cat_All_Count += Convert.ToInt32(row["Cat_All_Count"]);
cat_A_Count += Convert.ToInt32(row["Cat_A_Count"]);
cat_B_Count += Convert.ToInt32(row["Cat_B_Count"]);
cat_C_Count += Convert.ToInt32(row["Cat_C_Count"]);
@@ -228,6 +231,7 @@ namespace FineUIPro.Web.Transfer.Chart
JObject summary = new JObject();
summary.Add("Action_By", "合计");
summary.Add("Cat_All_Count", cat_All_Count.ToString());
summary.Add("Cat_A_Count", cat_A_Count.ToString());
summary.Add("Cat_B_Count", cat_B_Count.ToString());
summary.Add("Cat_C_Count", cat_C_Count.ToString());