1211
This commit is contained in:
@@ -1,16 +1,100 @@
|
||||
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="SystemStatusSummary.aspx.cs" Inherits="FineUIPro.Web.Transfer.Chart.SystemStatusSummary" %>
|
||||
|
||||
<%@ Register Src="~/Controls/ChartControl.ascx" TagName="ChartControl" TagPrefix="uc1" %>
|
||||
<!DOCTYPE html>
|
||||
|
||||
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||
<head runat="server">
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
||||
<title>移交状态汇总表</title>
|
||||
<link href="../res/css/common.css" rel="stylesheet" type="text/css" />
|
||||
<style type="text/css">
|
||||
.f-grid-row .f-grid-cell-inner {
|
||||
white-space: normal;
|
||||
word-break: break-all;
|
||||
}
|
||||
|
||||
.LabelColor {
|
||||
color: Red;
|
||||
font-size: small;
|
||||
}
|
||||
|
||||
.f-grid-row-summary .f-grid-cell-inner {
|
||||
font-weight: bold;
|
||||
color: red;
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<form id="form1" runat="server">
|
||||
<div>
|
||||
</div>
|
||||
<f:PageManager ID="PageManager1" runat="server" AutoSizePanelID="TabStrip1" AjaxAspnetControls="divAccidentTime" />
|
||||
<f:Panel ID="Panel2" runat="server" ShowHeader="false" ShowBorder="false" ColumnWidth="100%" MarginRight="5px">
|
||||
<Items>
|
||||
<f:TabStrip ID="TabStrip1" CssClass="f-tabstrip-theme-simple" Height="550px" ShowBorder="true"
|
||||
TabPosition="Top" MarginBottom="5px" EnableTabCloseMenu="false" runat="server" AutoPostBack="true" OnTabIndexChanged="TabStrip1_TabIndexChanged"
|
||||
ActiveTabIndex="0">
|
||||
<Tabs>
|
||||
<f:Tab ID="Tab1" Title="数据表格统计" BodyPadding="5px" Layout="VBox" IconFont="ListAlt" runat="server">
|
||||
<Items>
|
||||
<f:Grid ID="Grid1" ShowBorder="true" ShowHeader="false" EnableCollapse="true"
|
||||
runat="server" DataKeyNames="Category" AllowCellEditing="true" EnableColumnLines="true"
|
||||
ClicksToEdit="2" DataIDField="Category" AllowSorting="true"
|
||||
AllowPaging="false" IsDatabasePaging="false"
|
||||
EnableRowDoubleClickEvent="true" EnableTextSelection="true" EnableSummary="true" SummaryPosition="Flow">
|
||||
<Columns>
|
||||
<f:TemplateField ColumnID="tfPageIndex" Width="80px" HeaderText="No.序号" HeaderTextAlign="Center"
|
||||
TextAlign="Center" EnableLock="true" Locked="False">
|
||||
<ItemTemplate>
|
||||
<asp:Label ID="lblPageIndex" runat="server" Text='<%# Grid1.PageIndex * Grid1.PageSize + Container.DataItemIndex + 1 %>'></asp:Label>
|
||||
</ItemTemplate>
|
||||
</f:TemplateField>
|
||||
<f:BoundField DataField="Category" ColumnID="Category" HeaderText="Category<br/>分类" ExpandUnusedSpace="true" MinWidth="150px" TextAlign="Center" />
|
||||
<f:RenderField Width="200px" ColumnID="System_Qty" DataField="System_Qty" HeaderText="System Qty<br/>系统数量" TextAlign="Center" FieldType="Double" />
|
||||
<f:GroupField HeaderText="Cumulative Completion<br/>累计完成" TextAlign="Center" MinWidth="600px">
|
||||
<Columns>
|
||||
<f:RenderField Width="150px" ColumnID="Cumulative_Plan" DataField="Cumulative_Plan" HeaderText="Plan计划" TextAlign="Center" FieldType="Double" />
|
||||
<f:RenderField Width="150px" ColumnID="Cumulative_Actual" DataField="Cumulative_Plan" HeaderText="Actual实际" TextAlign="Center" FieldType="Double" />
|
||||
</Columns>
|
||||
</f:GroupField>
|
||||
<f:GroupField HeaderText="This Week<br/>本周" TextAlign="Center" MinWidth="600px">
|
||||
<Columns>
|
||||
<f:RenderField Width="150px" ColumnID="Week_Plan" DataField="Week_Plan" HeaderText="Plan计划" TextAlign="Center" FieldType="Double" />
|
||||
<f:RenderField Width="150px" ColumnID="Week_Actual" DataField="Week_Plan" HeaderText="Actual实际" TextAlign="Center" FieldType="Double" />
|
||||
</Columns>
|
||||
</f:GroupField>
|
||||
</Columns>
|
||||
</f:Grid>
|
||||
</Items>
|
||||
</f:Tab>
|
||||
<f:Tab ID="Tab2" Title="数据图表统计" BodyPadding="5px" Layout="VBox" IconFont="ListAlt" runat="server">
|
||||
<Toolbars>
|
||||
<f:Toolbar>
|
||||
<Items>
|
||||
<f:DropDownList ID="ddlDateType" runat="server" Label="日期类型" AutoPostBack="true"
|
||||
OnSelectedIndexChanged="ddlDateType_SelectedIndexChanged" Width="200px" LabelWidth="80px">
|
||||
<f:ListItem Value="1" Text="一周"></f:ListItem>
|
||||
<f:ListItem Value="2" Text="月份"></f:ListItem>
|
||||
</f:DropDownList>
|
||||
<f:DropDownList ID="drpChartType" runat="server" Label="图形类型" AutoPostBack="true"
|
||||
OnSelectedIndexChanged="drpChartType_SelectedIndexChanged" Width="300px" LabelWidth="80px">
|
||||
<f:ListItem Value="Line" Text="折线图"></f:ListItem>
|
||||
<f:ListItem Value="Column" Text="柱形图"></f:ListItem>
|
||||
</f:DropDownList>
|
||||
</Items>
|
||||
</f:Toolbar>
|
||||
</Toolbars>
|
||||
<Items>
|
||||
<f:ContentPanel ShowHeader="false" runat="server" ID="cpAccidentTime" Margin="0 0 0 0">
|
||||
<div id="divAccidentTime">
|
||||
<uc1:ChartControl ID="ChartAccidentTime" runat="server" />
|
||||
</div>
|
||||
</f:ContentPanel>
|
||||
</Items>
|
||||
</f:Tab>
|
||||
</Tabs>
|
||||
</f:TabStrip>
|
||||
</Items>
|
||||
</f:Panel>
|
||||
</form>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
@@ -1,17 +1,191 @@
|
||||
using System;
|
||||
using BLL;
|
||||
using Newtonsoft.Json.Linq;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Data;
|
||||
using System.Data.SqlClient;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Web;
|
||||
using System.Web.UI;
|
||||
using System.Web.UI.WebControls;
|
||||
|
||||
namespace FineUIPro.Web.Transfer.Chart
|
||||
{
|
||||
public partial class SystemStatusSummary : System.Web.UI.Page
|
||||
public partial class SystemStatusSummary : PageBase
|
||||
{
|
||||
protected void Page_Load(object sender, EventArgs e)
|
||||
{
|
||||
if (!IsPostBack)
|
||||
{
|
||||
BindGrid1();
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 查询
|
||||
/// </summary>
|
||||
/// <param name="sender"></param>
|
||||
/// <param name="e"></param>
|
||||
protected void btnSearch_Click(object sender, EventArgs e)
|
||||
{
|
||||
BindGrid1();
|
||||
}
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// 查询绑定数据
|
||||
/// </summary>
|
||||
public void BindGrid1()
|
||||
{
|
||||
|
||||
List<SqlParameter> listStr = new List<SqlParameter>();
|
||||
//计算本周日期段
|
||||
DateTime today = DateTime.Today;
|
||||
int dayOfWeek = (int)today.DayOfWeek;
|
||||
DateTime startWeebTime=Convert.ToDateTime(today.AddDays(-dayOfWeek + 1).ToString("yyyy-MM-dd")+" 00:00:00");
|
||||
DateTime endWeebTime= Convert.ToDateTime(today.AddDays(-dayOfWeek + 7).ToString("yyyy-MM-dd") + " 23:59:59");
|
||||
|
||||
StringBuilder strSql = new StringBuilder("");
|
||||
strSql.AppendLine(" IF OBJECT_ID('tempdb..#AllLHCSystemListTemp') IS NOT NULL drop table #AllLHCSystemListTemp; ");
|
||||
strSql.AppendLine(" IF OBJECT_ID('tempdb..#LHCSystemListTemp') IS NOT NULL drop table #LHCSystemListTemp; ");
|
||||
strSql.AppendLine(" select * INTO #AllLHCSystemListTemp from Transfer_LHCSystemList(NOLOCK) where ProjectId =@ProjectId; ");
|
||||
strSql.AppendLine(" select isnull([Type],'0') [Type],(CASE isnull([Type],'0') WHEN '1' THEN 'Non Process system' ELSE 'Process System' END) Category,count(1) System_Qty ");
|
||||
strSql.AppendLine(",cast(0 as decimal(18,2)) Cumulative_Plan,cast(0 as decimal(18,2)) Cumulative_Actual ,cast(0 as decimal(18,2)) Week_Plan,cast(0 as decimal(18,2)) Week_Actual ");
|
||||
strSql.AppendLine(" INTO #LHCSystemListTemp from #AllLHCSystemListTemp group by isnull([Type],'0'); ");
|
||||
strSql.AppendLine(" update a set a.Cumulative_Plan=(select count(1) from #AllLHCSystemListTemp b where isnull(b.[Type],'0')=a.[Type] AND isnull(b.PlanFinishofTestingDate,'')<>'') ");
|
||||
strSql.AppendLine(" ,a.Cumulative_Actual=(select count(1) from #AllLHCSystemListTemp b where isnull(b.[Type],'0')=a.[Type] AND isnull(b.ActualFinishedDate,'')<>'') ");
|
||||
strSql.AppendLine(" ,a.Week_Plan=(select count(1) from #AllLHCSystemListTemp b where isnull(b.[Type],'0')=a.[Type] AND b.PlanFinishofTestingDate>=@StartWeebTime AND b.PlanFinishofTestingDate<=@EndWeebTime) ");
|
||||
strSql.AppendLine(" ,a.Week_Actual=(select count(1) from #AllLHCSystemListTemp b where isnull(b.[Type],'0')=a.[Type] AND b.ActualFinishedDate>=@StartWeebTime AND b.ActualFinishedDate<=@EndWeebTime) ");
|
||||
strSql.AppendLine(" from #LHCSystemListTemp a; ");
|
||||
strSql.AppendLine(" select * from #LHCSystemListTemp; ");
|
||||
listStr.Add(new SqlParameter("@ProjectId", this.CurrUser.LoginProjectId));
|
||||
listStr.Add(new SqlParameter("@StartWeebTime", startWeebTime));
|
||||
listStr.Add(new SqlParameter("@EndWeebTime", dayOfWeek));
|
||||
SqlParameter[] parameter = listStr.ToArray();
|
||||
DataTable tb = SQLHelper.GetDataTableRunText(strSql.ToString(), parameter);
|
||||
Grid1.RecordCount = tb.Rows.Count;
|
||||
Grid1.DataSource = tb;
|
||||
Grid1.DataBind();
|
||||
|
||||
//合计
|
||||
int Cumulative_Plan = 0;
|
||||
int Cumulative_Actual = 0;
|
||||
int Week_Plan = 0;
|
||||
int Week_Actual = 0;
|
||||
int System_Qty=0;
|
||||
foreach (DataRow row in tb.Rows)
|
||||
{
|
||||
System_Qty += Convert.ToInt32(row["System_Qty"]);
|
||||
Cumulative_Plan += Convert.ToInt32(row["Cumulative_Plan"]);
|
||||
Cumulative_Actual += Convert.ToInt32(row["Cumulative_Actual"]);
|
||||
Week_Plan += Convert.ToInt32(row["Week_Plan"]);
|
||||
Week_Actual += Convert.ToInt32(row["Week_Actual"]);
|
||||
}
|
||||
|
||||
|
||||
JObject summary = new JObject();
|
||||
summary.Add("Category", "Total");
|
||||
summary.Add("System_Qty", System_Qty.ToString());
|
||||
summary.Add("Cumulative_Plan", Cumulative_Plan.ToString());
|
||||
summary.Add("Cumulative_Actual", Cumulative_Actual.ToString());
|
||||
summary.Add("Week_Plan", Week_Plan.ToString());
|
||||
summary.Add("Week_Actual", Week_Actual.ToString());
|
||||
|
||||
|
||||
Grid1.SummaryData = summary;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 查询绑定图表数据
|
||||
/// </summary>
|
||||
public void AnalyseData()
|
||||
{
|
||||
var forms = from x in Funs.DB.Transfer_LHCSystemList
|
||||
where x.ProjectId == this.CurrUser.LoginProjectId
|
||||
select x;
|
||||
|
||||
string _dateType = ddlDateType.SelectedValue;
|
||||
#region 按照当前日期前一周数据
|
||||
if (_dateType == "1")
|
||||
{
|
||||
///按单位统计
|
||||
DataTable dtTime = new DataTable();
|
||||
dtTime.Columns.Add("日期", typeof(string));
|
||||
dtTime.Columns.Add("计划完成数量", typeof(string));
|
||||
dtTime.Columns.Add("实际完成数量", typeof(string));
|
||||
dtTime.Columns.Add("进行中移交包数量", typeof(string));
|
||||
for (int i = 6; i >= 0; i--)
|
||||
{
|
||||
DataRow rowTime = dtTime.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");
|
||||
rowTime["计划完成数量"] = forms.Where(x => x.PlanFinishofTestingDate <= endTime).Count();
|
||||
rowTime["实际完成数量"] = forms.Where(x => x.ActualFinishedDate <= endTime).Count();
|
||||
rowTime["进行中移交包数量"] = forms.Where(x => x.UpdateTime <= endTime && x.Status== "In progress").Count();
|
||||
dtTime.Rows.Add(rowTime);
|
||||
}
|
||||
this.ChartAccidentTime.CreateChart(BLL.ChartControlService.GetDataSourceChart(dtTime, "尾项完成统计分析", this.drpChartType.SelectedValue, 1300, 550, false));
|
||||
}
|
||||
#endregion
|
||||
|
||||
//按照当前月份到一月份的数据
|
||||
if (_dateType == "2")
|
||||
{
|
||||
///按单位统计
|
||||
DataTable dtTime = new DataTable();
|
||||
dtTime.Columns.Add("月份", typeof(string));
|
||||
dtTime.Columns.Add("计划完成数量", typeof(string));
|
||||
dtTime.Columns.Add("实际完成数量", typeof(string));
|
||||
dtTime.Columns.Add("进行中移交包数量", typeof(string));
|
||||
for (int i = 1; i <= DateTime.Now.Month; i++)
|
||||
{
|
||||
DataRow rowTime = dtTime.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");
|
||||
rowTime["计划完成数量"] = forms.Where(x => x.PlanFinishofTestingDate <= endTime).Count();
|
||||
rowTime["实际完成数量"] = forms.Where(x => x.ActualFinishedDate <= endTime).Count();
|
||||
rowTime["进行中移交包数量"] = forms.Where(x => x.UpdateTime <= endTime && x.Status == "In progress").Count();
|
||||
dtTime.Rows.Add(rowTime);
|
||||
}
|
||||
this.ChartAccidentTime.CreateChart(BLL.ChartControlService.GetDataSourceChart(dtTime, "尾项完成统计分析", this.drpChartType.SelectedValue, 1300, 550, false));
|
||||
}
|
||||
}
|
||||
|
||||
protected void TabStrip1_TabIndexChanged(object sender, EventArgs e)
|
||||
{
|
||||
if (TabStrip1.ActiveTabIndex == 0)
|
||||
{
|
||||
BindGrid1();
|
||||
}
|
||||
else if (TabStrip1.ActiveTabIndex == 1)
|
||||
{
|
||||
AnalyseData();
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 图形变换
|
||||
/// </summary>
|
||||
/// <param name="sender"></param>
|
||||
/// <param name="e"></param>
|
||||
protected void drpChartType_SelectedIndexChanged(object sender, EventArgs e)
|
||||
{
|
||||
this.AnalyseData();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 现在日期类型
|
||||
/// </summary>
|
||||
/// <param name="sender"></param>
|
||||
/// <param name="e"></param>
|
||||
protected void ddlDateType_SelectedIndexChanged(object sender, EventArgs e)
|
||||
{
|
||||
this.AnalyseData();
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -22,5 +22,104 @@ namespace FineUIPro.Web.Transfer.Chart
|
||||
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
|
||||
/// </remarks>
|
||||
protected global::System.Web.UI.HtmlControls.HtmlForm form1;
|
||||
|
||||
/// <summary>
|
||||
/// PageManager1 控件。
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// 自动生成的字段。
|
||||
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
|
||||
/// </remarks>
|
||||
protected global::FineUIPro.PageManager PageManager1;
|
||||
|
||||
/// <summary>
|
||||
/// Panel2 控件。
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// 自动生成的字段。
|
||||
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
|
||||
/// </remarks>
|
||||
protected global::FineUIPro.Panel Panel2;
|
||||
|
||||
/// <summary>
|
||||
/// TabStrip1 控件。
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// 自动生成的字段。
|
||||
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
|
||||
/// </remarks>
|
||||
protected global::FineUIPro.TabStrip TabStrip1;
|
||||
|
||||
/// <summary>
|
||||
/// Tab1 控件。
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// 自动生成的字段。
|
||||
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
|
||||
/// </remarks>
|
||||
protected global::FineUIPro.Tab Tab1;
|
||||
|
||||
/// <summary>
|
||||
/// Grid1 控件。
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// 自动生成的字段。
|
||||
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
|
||||
/// </remarks>
|
||||
protected global::FineUIPro.Grid Grid1;
|
||||
|
||||
/// <summary>
|
||||
/// lblPageIndex 控件。
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// 自动生成的字段。
|
||||
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
|
||||
/// </remarks>
|
||||
protected global::System.Web.UI.WebControls.Label lblPageIndex;
|
||||
|
||||
/// <summary>
|
||||
/// Tab2 控件。
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// 自动生成的字段。
|
||||
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
|
||||
/// </remarks>
|
||||
protected global::FineUIPro.Tab Tab2;
|
||||
|
||||
/// <summary>
|
||||
/// ddlDateType 控件。
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// 自动生成的字段。
|
||||
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
|
||||
/// </remarks>
|
||||
protected global::FineUIPro.DropDownList ddlDateType;
|
||||
|
||||
/// <summary>
|
||||
/// drpChartType 控件。
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// 自动生成的字段。
|
||||
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
|
||||
/// </remarks>
|
||||
protected global::FineUIPro.DropDownList drpChartType;
|
||||
|
||||
/// <summary>
|
||||
/// cpAccidentTime 控件。
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// 自动生成的字段。
|
||||
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
|
||||
/// </remarks>
|
||||
protected global::FineUIPro.ContentPanel cpAccidentTime;
|
||||
|
||||
/// <summary>
|
||||
/// ChartAccidentTime 控件。
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// 自动生成的字段。
|
||||
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
|
||||
/// </remarks>
|
||||
protected global::Web.Controls.ChartControl ChartAccidentTime;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user