164 lines
		
	
	
		
			5.9 KiB
		
	
	
	
		
			C#
		
	
	
	
			
		
		
	
	
			164 lines
		
	
	
		
			5.9 KiB
		
	
	
	
		
			C#
		
	
	
	
| using System;
 | |
| using System.Collections.Generic;
 | |
| using System.Data;
 | |
| using System.Linq;
 | |
| using BLL;
 | |
| 
 | |
| namespace FineUIPro.Web.ZHGL.Information
 | |
| {
 | |
|     public partial class AnalyseWorkTimeCost : PageBase
 | |
|     {
 | |
|         #region 加载页面
 | |
|         /// <summary>
 | |
|         /// 加载页面
 | |
|         /// </summary>
 | |
|         /// <param name="sender"></param>
 | |
|         /// <param name="e"></param>
 | |
|         protected void Page_Load(object sender, EventArgs e)
 | |
|         {
 | |
|             if (!IsPostBack)
 | |
|             {
 | |
|                 BLL.ConstValue.InitConstValueDropDownList(this.drpYear, ConstValue.Group_0008, false);
 | |
|                 this.drpYear.SelectedValue = DateTime.Now.Year.ToString();
 | |
| 
 | |
|                 BLL.ConstValue.InitConstValueDropDownList(this.drpQuarter, ConstValue.Group_0011, false);
 | |
|                 this.drpQuarter.SelectedValue = Funs.GetNowQuarterlyByTime(DateTime.Now).ToString();
 | |
| 
 | |
|                 BLL.ConstValue.InitConstValueDropDownList(this.drpChartType, ConstValue.Group_ChartType, false);
 | |
|             }
 | |
|         }
 | |
|         #endregion
 | |
| 
 | |
|         #region 统计
 | |
|         /// <summary>
 | |
|         /// 统计分析
 | |
|         /// </summary>
 | |
|         /// <param name="sender"></param>
 | |
|         /// <param name="e"></param>
 | |
|         protected void BtnAnalyse_Click(object sender, EventArgs e)
 | |
|         {
 | |
|             if (!GetButtonPower(BLL.Const.BtnAnalyse))
 | |
|             {
 | |
|                 ShowNotify("您没有这个权限,请与管理员联系!", MessageBoxIcon.Warning);
 | |
|                 return;
 | |
|             }
 | |
| 
 | |
|             this.AnalyseData();
 | |
|         }
 | |
| 
 | |
|         /// <summary>
 | |
|         /// 统计方法
 | |
|         /// </summary>
 | |
|         private void AnalyseData()
 | |
|         {
 | |
|             List<string> yearValues = new List<string>();
 | |
|             foreach (ListItem item in this.drpYear.SelectedItemArray)
 | |
|             {
 | |
|                 yearValues.Add(item.Value);
 | |
|             }
 | |
| 
 | |
|             List<string> quarterValues = new List<string>();
 | |
|             foreach (ListItem item in this.drpQuarter.SelectedItemArray)
 | |
|             {
 | |
|                 quarterValues.Add(item.Value);
 | |
|             }
 | |
| 
 | |
|             var safetyQuarterlyReport = (from x in Funs.DB.Information_SafetyQuarterlyReport
 | |
|                                          where yearValues.Contains(x.YearId.ToString()) && quarterValues.Contains(x.Quarters.ToString())
 | |
|                                          select x);
 | |
| 
 | |
|             #region 按时间统计
 | |
|             ///按单位统计
 | |
|             DataTable dtTime = new DataTable();
 | |
|             dtTime.Columns.Add("时间", typeof(string));
 | |
|             dtTime.Columns.Add("工时", typeof(string));
 | |
|             dtTime.Columns.Add("费用", typeof(string));
 | |
|             foreach (var itemYear in yearValues)
 | |
|             {
 | |
|                 string yearName = string.Empty;
 | |
|                 var year = BLL.ConstValue.drpConstItemList(ConstValue.Group_0008).FirstOrDefault(x => x.ConstValue == itemYear);
 | |
|                 if (year != null)
 | |
|                 {
 | |
|                     yearName = year.ConstText;
 | |
|                 }
 | |
|                 foreach (var itemQuarter in quarterValues)
 | |
|                 {
 | |
|                     string quarterName = string.Empty;
 | |
|                     var quarter = BLL.ConstValue.drpConstItemList(ConstValue.Group_0011).FirstOrDefault(x => x.ConstValue == itemQuarter);
 | |
|                     if (quarter != null)
 | |
|                     {
 | |
|                         quarterName = quarter.ConstText;
 | |
|                     }
 | |
| 
 | |
|                     DataRow rowTime = dtTime.NewRow();
 | |
|                     Model.SpTDesktopItem newspItem = new Model.SpTDesktopItem();
 | |
|                     rowTime["时间"] = yearName + quarterName;
 | |
|                     var quartersSafe = (from x in safetyQuarterlyReport
 | |
|                                         where x.YearId.ToString() == itemYear && x.Quarters.ToString() == itemQuarter
 | |
|                                         select x).ToList();
 | |
|                     rowTime["工时"] = quartersSafe.Sum(x => x.TotalInWorkHours) ?? 0;
 | |
|                     rowTime["费用"] = quartersSafe.Sum(x => x.ProductionSafetyInTotal) ?? 0;
 | |
|                     dtTime.Rows.Add(rowTime);
 | |
|                 }
 | |
|             }
 | |
| 
 | |
|             this.ChartCostTime.CreateChart(BLL.ChartControlService.GetDataSourceChart(dtTime, "人工时费用", this.drpChartType.SelectedValue, 1150, 450, this.ckbShow.Checked));
 | |
|             #endregion
 | |
| 
 | |
|         }
 | |
|         #endregion
 | |
| 
 | |
|         #region 获取按钮权限
 | |
|         /// <summary>
 | |
|         /// 获取按钮权限
 | |
|         /// </summary>
 | |
|         /// <param name="button"></param>
 | |
|         /// <returns></returns>
 | |
|         private bool GetButtonPower(string button)
 | |
|         {
 | |
|             return BLL.CommonService.GetAllButtonPowerList(this.CurrUser.LoginProjectId, this.CurrUser.UserId, BLL.Const.AnalyseWorkTimeCostMenuId, button);
 | |
|         }
 | |
|         #endregion
 | |
| 
 | |
|         #region 清空
 | |
|         /// <summary>
 | |
|         /// 清空下拉框
 | |
|         /// </summary>
 | |
|         /// <param name="sender"></param>
 | |
|         /// <param name="e"></param>
 | |
|         protected void drpYear_ClearIconClick(object sender, EventArgs e)
 | |
|         {
 | |
|             this.drpYear.SelectedValue = DateTime.Now.Year.ToString();
 | |
|             this.AnalyseData();
 | |
|         }
 | |
| 
 | |
|         /// <summary>
 | |
|         /// 清空下拉框
 | |
|         /// </summary>
 | |
|         /// <param name="sender"></param>
 | |
|         /// <param name="e"></param>
 | |
|         protected void drpQuarter_ClearIconClick(object sender, EventArgs e)
 | |
|         {
 | |
|             this.drpQuarter.SelectedValue = Funs.GetNowQuarterlyByTime(Convert.ToDateTime(DateTime.Now)).ToString();
 | |
|             this.AnalyseData();
 | |
|         }
 | |
|         #endregion
 | |
| 
 | |
|         #region 图形
 | |
|         /// <summary>
 | |
|         /// 图形变换 
 | |
|         /// </summary>
 | |
|         /// <param name="sender"></param>
 | |
|         /// <param name="e"></param>
 | |
|         protected void drpChartType_SelectedIndexChanged(object sender, EventArgs e)
 | |
|         {
 | |
|             this.AnalyseData();
 | |
|         }
 | |
| 
 | |
|         protected void ckbShow_CheckedChanged(object sender, CheckedEventArgs e)
 | |
|         {
 | |
|             this.AnalyseData();
 | |
|         }
 | |
|         #endregion
 | |
|     }
 | |
| } |