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 加载页面 /// /// 加载页面 /// /// /// 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 统计 /// /// 统计分析 /// /// /// protected void BtnAnalyse_Click(object sender, EventArgs e) { if (!GetButtonPower(BLL.Const.BtnAnalyse)) { ShowNotify("您没有这个权限,请与管理员联系!", MessageBoxIcon.Warning); return; } this.AnalyseData(); } /// /// 统计方法 /// private void AnalyseData() { List yearValues = new List(); foreach (ListItem item in this.drpYear.SelectedItemArray) { yearValues.Add(item.Value); } List quarterValues = new List(); 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 获取按钮权限 /// /// 获取按钮权限 /// /// /// private bool GetButtonPower(string button) { return BLL.CommonService.GetAllButtonPowerList(this.CurrUser.LoginProjectId, this.CurrUser.UserId, BLL.Const.AnalyseWorkTimeCostMenuId, button); } #endregion #region 清空 /// /// 清空下拉框 /// /// /// protected void drpYear_ClearIconClick(object sender, EventArgs e) { this.drpYear.SelectedValue = DateTime.Now.Year.ToString(); this.AnalyseData(); } /// /// 清空下拉框 /// /// /// protected void drpQuarter_ClearIconClick(object sender, EventArgs e) { this.drpQuarter.SelectedValue = Funs.GetNowQuarterlyByTime(Convert.ToDateTime(DateTime.Now)).ToString(); this.AnalyseData(); } #endregion #region 图形 /// /// 图形变换 /// /// /// protected void drpChartType_SelectedIndexChanged(object sender, EventArgs e) { this.AnalyseData(); } protected void ckbShow_CheckedChanged(object sender, CheckedEventArgs e) { this.AnalyseData(); } #endregion } }