225 lines
		
	
	
		
			11 KiB
		
	
	
	
		
			C#
		
	
	
	
			
		
		
	
	
			225 lines
		
	
	
		
			11 KiB
		
	
	
	
		
			C#
		
	
	
	
| 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 : 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,cast('' as nvarchar(600)) Remarks ");
 | |
|             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("  ,a.Remarks=(select top 1 Remarks from Transfer_SystemStatusRemarks b(NOLOCK) where a.Category=b.TypeName and b.ProjectId=@ProjectId) ");
 | |
|             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();
 | |
|         }
 | |
|         /// <summary>
 | |
|         /// 修改后事件
 | |
|         /// </summary>
 | |
|         /// <param name="sender"></param>
 | |
|         /// <param name="e"></param>
 | |
|         protected void Grid1_AfterEdit(object sender, GridAfterEditEventArgs e)
 | |
|         {
 | |
|             Dictionary<int, Dictionary<string, object>> modifiedDict = Grid1.GetModifiedDict();
 | |
| 
 | |
|             foreach (int rowIndex in modifiedDict.Keys)
 | |
|             {
 | |
|                 string rowID = Grid1.DataKeys[rowIndex][0].ToString();
 | |
|                 string remarks = modifiedDict[rowIndex]["Remarks"].ToString();
 | |
|                 var updateRemarks = Funs.DB.Transfer_SystemStatusRemarks.FirstOrDefault(p => p.TypeName == rowID && p.ProjectId == this.CurrUser.LoginProjectId);
 | |
|                 if (updateRemarks != null)
 | |
|                 {
 | |
|                     updateRemarks.Remarks = remarks;
 | |
|                     Funs.DB.SubmitChanges();
 | |
|                 }
 | |
|                 else
 | |
|                 {
 | |
|                     Model.Transfer_SystemStatusRemarks AddRemarks = new Model.Transfer_SystemStatusRemarks();
 | |
|                     AddRemarks.Id = Guid.NewGuid().ToString();
 | |
|                     AddRemarks.ProjectId = this.CurrUser.LoginProjectId;
 | |
|                     AddRemarks.TypeName= rowID;
 | |
|                     AddRemarks.Remarks= remarks;
 | |
|                     Funs.DB.Transfer_SystemStatusRemarks.InsertOnSubmit(AddRemarks);
 | |
|                     Funs.DB.SubmitChanges();
 | |
|                 }
 | |
|             }
 | |
| 
 | |
|         }
 | |
| 
 | |
|     }
 | |
| } |