using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; using BLL; using Newtonsoft.Json; namespace FineUIPro.Web { public partial class mainMenu_HJGL : PageBase { protected void Page_Load(object sender, EventArgs e) { if (!IsPostBack) { var firstOKRates = from x in Funs.DB.HJGL_FirstOKRate where x.ProjectId == this.CurrUser.LoginProjectId && x.Type == "unit" orderby x.Months descending select x; var units = firstOKRates.Where(x => x.Type == "unit").Select(x => x.Name).Distinct(); if (firstOKRates.Count() > 0) { int totalNum = 0, oKNum = 0; foreach (var item in units) { var f = firstOKRates.FirstOrDefault(x => x.Name == item); //取每个单位最后一个月的一次合格率数据进行汇总 if (f != null) { totalNum += f.TotalNum ?? 0; oKNum += f.OKNum ?? 0; } } if (totalNum > 0) { var a = Convert.ToDouble(oKNum); var b = Convert.ToDouble(totalNum); this.divFirstOKRate.InnerHtml = Convert.ToDouble(decimal.Round(decimal.Parse((a / b * 100).ToString()), 2)).ToString(); } } else { this.divFirstOKRate.InnerHtml = "0"; } } } #region 项目焊接工程量统计 protected string Two { get { Model.Num num = new Model.Num(); var finishRates = from x in Funs.DB.HJGL_FinishRate where x.ProjectId == this.CurrUser.LoginProjectId && x.Type == "unit" select x; int totalNum = 0, finishNum = 0; foreach (var item in finishRates) { totalNum += item.TotalNum ?? 0; finishNum += item.FinishNum ?? 0; } int notFinishNum = totalNum - finishNum; num.num1 = finishNum; num.num2 = notFinishNum; return JsonConvert.SerializeObject(num); } } #endregion #region 一次合格率 protected string Four { get { List series = new List(); Model.BusinessColumn businessColumn = new Model.BusinessColumn(); List listCategories = new List(); businessColumn.title = "一次合格率"; var views = (from x in Funs.DB.HJGL_FirstOKRate where x.ProjectId == this.CurrUser.LoginProjectId && x.Type == "unit" orderby x.Months select x).ToList(); var months = views.Select(x => x.Months).Distinct().ToList(); var units = views.Select(x => x.Name).Distinct().ToList(); for (int i = 0; i < months.Count; i++) { listCategories.Add(string.Format("{0:yyyy-MM}", views[i].Months)); } for (int i = 0; i < units.Count; i++) { Model.SingleSerie2 s = new Model.SingleSerie2(); s.name = units[i]; s.type = "line"; List listdata = new List(); for (int j = 0; j < months.Count; j++) { var item = views.FirstOrDefault(x => x.Name == units[i] && x.Months == months[j]); if (item != null) { listdata.Add(Convert.ToDouble(item.Rate.Replace("%", ""))); } else { listdata.Add(null); } } s.data = listdata; series.Add(s); } businessColumn.categories = listCategories; businessColumn.series3 = series; return JsonConvert.SerializeObject(businessColumn); } } protected string Four2 { get { List series = new List(); Model.BusinessColumn businessColumn = new Model.BusinessColumn(); List listCategories = new List(); businessColumn.title = "一次合格率"; var views = (from x in Funs.DB.HJGL_FirstOKRate where x.ProjectId == this.CurrUser.LoginProjectId && x.Type == "device" orderby x.Months select x).ToList(); var months = views.Select(x => x.Months).Distinct().ToList(); var devices = views.Select(x => x.Name).Distinct().ToList(); for (int i = 0; i < months.Count; i++) { listCategories.Add(string.Format("{0:yyyy-MM}", views[i].Months)); } for (int i = 0; i < devices.Count; i++) { Model.SingleSerie2 s = new Model.SingleSerie2(); s.name = devices[i]; s.type = "line"; List listdata = new List(); for (int j = 0; j < months.Count; j++) { var item = views.FirstOrDefault(x => x.Name == devices[i] && x.Months == months[j]); if (item != null) { listdata.Add(Convert.ToDouble(item.Rate.Replace("%", ""))); } else { listdata.Add(null); } } s.data = listdata; series.Add(s); } businessColumn.categories = listCategories; businessColumn.series3 = series; return JsonConvert.SerializeObject(businessColumn); } } #endregion #region 焊接完成量 protected string Three { get { List series = new List(); Model.BusinessColumn businessColumn = new Model.BusinessColumn(); List listCategories = new List(); businessColumn.title = "焊接完成量"; businessColumn.xFontNum = 7; var views = (from x in Funs.DB.HJGL_FinishRate where x.ProjectId == this.CurrUser.LoginProjectId && x.Type == "unit" orderby x.Code select x).ToList(); Model.SingleSerie s = new Model.SingleSerie(); Model.SingleSerie s2 = new Model.SingleSerie(); List listdata = new List(); List listdata2 = new List(); foreach (var item in views) { listCategories.Add(item.Name); listdata.Add(item.FinishNum ?? 0); listdata2.Add((item.TotalNum ?? 0) - (item.FinishNum ?? 0)); } s.data = listdata; s2.data = listdata2; series.Add(s); series.Add(s2); businessColumn.categories = listCategories; businessColumn.series = series; return JsonConvert.SerializeObject(businessColumn); } } protected string Three2 { get { List series = new List(); Model.BusinessColumn businessColumn = new Model.BusinessColumn(); List listCategories = new List(); businessColumn.title = "焊接完成量"; businessColumn.xFontNum = 7; var views = (from x in Funs.DB.HJGL_FinishRate where x.ProjectId == this.CurrUser.LoginProjectId && x.Type == "device" orderby x.Code select x).ToList(); Model.SingleSerie s = new Model.SingleSerie(); Model.SingleSerie s2 = new Model.SingleSerie(); List listdata = new List(); List listdata2 = new List(); foreach (var item in views) { listCategories.Add(item.Name); listdata.Add(item.FinishNum ?? 0); listdata2.Add((item.TotalNum ?? 0) - (item.FinishNum ?? 0)); } s.data = listdata; s2.data = listdata2; series.Add(s); series.Add(s2); businessColumn.categories = listCategories; businessColumn.series = series; return JsonConvert.SerializeObject(businessColumn); } } #endregion } }