using BLL; using Model; using Newtonsoft.Json; using System; using System.Collections.Generic; using System.Data; using System.Linq; using System.Text; using System.Web.UI.WebControls; namespace FineUIPro.Web { public partial class mainMenu_HSECheck : PageBase { #region 定义项 /// /// 项目主键 /// public string ProjectId { get { return (string)ViewState["ProjectId"]; } set { ViewState["ProjectId"] = value; } } /// /// HSE不符合项【本年】 /// public static List list = new List(); /// /// HSE不符合项【本月】 /// public static List listMon = new List(); /// /// 问题分类 /// public static List classifys = new List(); /// /// 当前时间 /// public static DateTime dateNow = DateTime.Now; public static DateTime dateMon = Convert.ToDateTime($"{dateNow.Year}-{dateNow.Month}-01"); public static DateTime dateYear = Convert.ToDateTime($"{dateNow.Year}-01-01"); #endregion protected void Page_Load(object sender, EventArgs e) { if (!IsPostBack) { this.ProjectId = this.CurrUser.LoginProjectId; if (!string.IsNullOrEmpty(Request.Params["projectId"]) && Request.Params["projectId"] != this.CurrUser.LoginProjectId) { this.ProjectId = Request.Params["projectId"]; } //var dateNow = DateTime.Now; //var dateMon = Convert.ToDateTime($"{dateNow.Year}-{dateNow.Month}-01"); //var dateYear = Convert.ToDateTime($"{dateNow.Year}-01-01"); Model.CNPCDB db = Funs.DB; list = (from x in db.CheckProblem_Safety where x.CheckDate >= dateYear select x).ToList(); listMon = (from x in db.CheckProblem_Safety where x.CheckDate >= dateMon select x).ToList(); //权限查看范围 if (this.CurrUser.UnitId != null && this.CurrUser.UnitId != Const.UnitId_XJYJ && (this.CurrUser.UserId != Const.hfnbdId || this.CurrUser.UserId != Const.sysglyId)) { list = list.Where(x => x.UnitId == this.CurrUser.UnitId).ToList(); listMon = listMon.Where(x => x.UnitId == this.CurrUser.UnitId).ToList(); } if (!string.IsNullOrWhiteSpace(this.ProjectId)) { list = list.Where(x => x.ProjectId == this.ProjectId).ToList(); listMon = listMon.Where(x => x.ProjectId == this.ProjectId).ToList(); } classifys = BLL.SafetyProblemClassifyService.GetClassify(); BindGridByClassify(); } } #region 按问题分类统计 /// /// 按问题分类统计【表格】 /// private void BindGridByClassify() { StringBuilder sb = new StringBuilder(); sb.Append(" "); sb.Append(""); sb.Append(""); sb.Append(""); sb.Append(""); sb.Append(""); sb.Append(""); sb.Append(""); sb.Append(""); sb.Append(""); sb.Append(""); sb.Append(""); sb.Append(""); sb.Append(""); sb.Append(""); sb.Append(""); sb.Append(""); sb.Append(""); sb.Append(""); sb.Append(""); if (list.Any()) { foreach (var obj in classifys) { int year = list.Where(x => x.ClassifyId == obj.ClassifyId).Count(); int yearC = list.Where(x => x.ClassifyId == obj.ClassifyId && x.UnitType == "承包商").Count(); int yearX = list.Where(x => x.ClassifyId == obj.ClassifyId && x.UnitType == "项目部").Count(); int mon = listMon.Where(x => x.ClassifyId == obj.ClassifyId).Count(); int monC = listMon.Where(x => x.ClassifyId == obj.ClassifyId && x.UnitType == "承包商").Count(); int monX = listMon.Where(x => x.ClassifyId == obj.ClassifyId && x.UnitType == "项目部").Count(); sb.Append(""); sb.Append($""); sb.Append($""); sb.Append($""); sb.Append($""); sb.Append($""); sb.Append($""); sb.Append($""); sb.Append(""); } } else { sb.Append(""); sb.Append(""); sb.Append(""); sb.Append(""); sb.Append(""); sb.Append(""); sb.Append(""); sb.Append(""); sb.Append(""); } int yearAll = list.Count(); int yearCAll = list.Where(x => x.UnitType == "承包商").Count(); int yearXAll = list.Where(x => x.UnitType == "项目部").Count(); int monAll = listMon.Count(); int monCAll = listMon.Where(x => x.UnitType == "承包商").Count(); int monXAll = listMon.Where(x => x.UnitType == "项目部").Count(); sb.Append(""); sb.Append($""); sb.Append($""); sb.Append($""); sb.Append($""); sb.Append($""); sb.Append($""); sb.Append($""); sb.Append(""); sb.Append(""); sb.Append("
按问题分类统计
类别本月今年
承包商项目部合计承包商项目部合计
{obj.ClassifyName}{monC}{monX}{mon}{yearC}{yearX}{year}
合计{monCAll}{monXAll}{monAll}{yearCAll}{yearXAll}{yearAll}
"); classifyTable.InnerHtml = sb.ToString(); } /// /// 按问题分类【柱状图——本月】 /// protected string ClassifyBar { get { List series = new List(); Model.BusinessColumn businessColumn = new Model.BusinessColumn(); List listCategories = new List(); businessColumn.title = "按问题分类统计"; businessColumn.xFontNum = 8; Model.SingleSerie s = new Model.SingleSerie(); Model.SingleSerie s2 = new Model.SingleSerie(); List listdata = new List(); List listdata2 = new List(); int tCbs = 0; int tXmb = 0; foreach (var type in classifys) { //listCategories.Add(type.ClassifyCode); listCategories.Add(type.ClassifyName); var typeItems = listMon.Where(x => x.ClassifyId == type.ClassifyId); tCbs = typeItems.Where(x => x.UnitType == "承包商").Count(); tXmb = typeItems.Where(x => x.UnitType == "项目部").Count(); listdata.Add(tXmb); listdata2.Add(tCbs); } s.data = listdata; s2.data = listdata2; series.Add(s); series.Add(s2); businessColumn.categories = listCategories; businessColumn.series = series; return JsonConvert.SerializeObject(businessColumn); } } /// /// 按问题分类【柱状图——今年】 /// protected string ClassifyBarYear { get { List series = new List(); Model.BusinessColumn businessColumn = new Model.BusinessColumn(); List listCategories = new List(); businessColumn.title = "按问题分类统计"; businessColumn.xFontNum = 8; Model.SingleSerie s = new Model.SingleSerie(); Model.SingleSerie s2 = new Model.SingleSerie(); List listdata = new List(); List listdata2 = new List(); int tCbs = 0; int tXmb = 0; foreach (var type in classifys) { //listCategories.Add(type.ClassifyCode); listCategories.Add(type.ClassifyName); var typeItems = list.Where(x => x.ClassifyId == type.ClassifyId); tCbs = typeItems.Where(x => x.UnitType == "承包商").Count(); tXmb = typeItems.Where(x => x.UnitType == "项目部").Count(); listdata.Add(tXmb); listdata2.Add(tCbs); } s.data = listdata; s2.data = listdata2; series.Add(s); series.Add(s2); businessColumn.categories = listCategories; businessColumn.series = series; return JsonConvert.SerializeObject(businessColumn); } } #endregion #region 安全管理类统计 /// /// 安全管理类统计(S1)【本月】 /// protected string S1Pie { get { Model.BusinessColumn businessColumn = new Model.BusinessColumn(); businessColumn.title = "安全管理类统计"; List series = new List(); Model.SingleSerie s = new Model.SingleSerie(); //安全管理类 var classifyItems = BLL.SafetyProblemClassifyItemService.GetClassifyItemList(Const.SafetyClassifyIdS1); List pies = new List(); List dataString = new List(); int dataNum = 0; foreach (var obj in classifyItems) { var lst = listMon.Where(x => x.ClassifyItemId == obj.ClassifyItemId); if (lst.Any()) { int num = lst.Count(); dataNum += num; pies.Add(new PieData { value = num, name = obj.ClassifyItemName }); dataString.Add(obj.ClassifyItemName); } } s.pieData = pies; s.dataString = dataString; s.stack = dataNum.ToString(); series.Add(s); businessColumn.series = series; var jsonStr = JsonConvert.SerializeObject(businessColumn); return JsonConvert.SerializeObject(businessColumn); } } /// /// 安全管理类统计(S1)【今年】 /// protected string S1PieYear { get { Model.BusinessColumn businessColumn = new Model.BusinessColumn(); businessColumn.title = "安全管理类统计"; List series = new List(); Model.SingleSerie s = new Model.SingleSerie(); //安全管理类 var classifyItems = BLL.SafetyProblemClassifyItemService.GetClassifyItemList(Const.SafetyClassifyIdS1); List pies = new List(); List dataString = new List(); int dataNum = 0; foreach (var obj in classifyItems) { var lst = list.Where(x => x.ClassifyItemId == obj.ClassifyItemId); if (lst.Any()) { int num = lst.Count(); dataNum += num; pies.Add(new PieData { value = num, name = obj.ClassifyItemName }); dataString.Add(obj.ClassifyItemName); } } s.pieData = pies; s.dataString = dataString; s.stack = dataNum.ToString(); series.Add(s); businessColumn.series = series; var jsonStr = JsonConvert.SerializeObject(businessColumn); return JsonConvert.SerializeObject(businessColumn); } } #endregion #region 施工作业类统计 /// /// 施工作业类统计(S2)【本月】 /// protected string S2Pie { get { Model.BusinessColumn businessColumn = new Model.BusinessColumn(); businessColumn.title = "施工作业类统计"; List series = new List(); Model.SingleSerie s = new Model.SingleSerie(); //施工作业类 var classifyItems = BLL.SafetyProblemClassifyItemService.GetClassifyItemList(Const.SafetyClassifyIdS2); List pies = new List(); List dataString = new List(); int dataNum = 0; foreach (var obj in classifyItems) { var lst = listMon.Where(x => x.ClassifyItemId == obj.ClassifyItemId); if (lst.Any()) { int num = lst.Count(); dataNum += num; pies.Add(new PieData { value = num, name = obj.ClassifyItemName }); dataString.Add(obj.ClassifyItemName); } } s.pieData = pies; s.dataString = dataString; s.stack = dataNum.ToString(); series.Add(s); businessColumn.series = series; var jsonStr = JsonConvert.SerializeObject(businessColumn); return JsonConvert.SerializeObject(businessColumn); } } /// /// 施工作业类统计(S2)【今年】 /// protected string S2PieYear { get { Model.BusinessColumn businessColumn = new Model.BusinessColumn(); businessColumn.title = "施工作业类统计"; List series = new List(); Model.SingleSerie s = new Model.SingleSerie(); //施工作业类 var classifyItems = BLL.SafetyProblemClassifyItemService.GetClassifyItemList(Const.SafetyClassifyIdS2); List pies = new List(); List dataString = new List(); int dataNum = 0; foreach (var obj in classifyItems) { var lst = list.Where(x => x.ClassifyItemId == obj.ClassifyItemId); if (lst.Any()) { int num = lst.Count(); dataNum += num; pies.Add(new PieData { value = num, name = obj.ClassifyItemName }); dataString.Add(obj.ClassifyItemName); } } s.pieData = pies; s.dataString = dataString; s.stack = dataNum.ToString(); series.Add(s); businessColumn.series = series; var jsonStr = JsonConvert.SerializeObject(businessColumn); return JsonConvert.SerializeObject(businessColumn); } } #endregion } }