Files
xinjiang/SGGL/FineUIPro.Web/common/mainMenu_HSECheck.aspx.cs
T

407 lines
17 KiB
C#

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
/// <summary>
/// 项目主键
/// </summary>
public string ProjectId
{
get
{
return (string)ViewState["ProjectId"];
}
set
{
ViewState["ProjectId"] = value;
}
}
/// <summary>
/// HSE不符合项【本年】
/// </summary>
public static List<Model.CheckProblem_Safety> list = new List<Model.CheckProblem_Safety>();
/// <summary>
/// HSE不符合项【本月】
/// </summary>
public static List<Model.CheckProblem_Safety> listMon = new List<Model.CheckProblem_Safety>();
/// <summary>
/// 问题分类
/// </summary>
public static List<Model.Base_SafetyProblemClassify> classifys = new List<Model.Base_SafetyProblemClassify>();
/// <summary>
/// 当前时间
/// </summary>
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
/// <summary>
/// 按问题分类统计【表格】
/// </summary>
private void BindGridByClassify()
{
StringBuilder sb = new StringBuilder();
sb.Append("<table id=\"myTable\" class=\"myTableClass\" > ");
sb.Append("<thead>");
sb.Append("<tr>");
sb.Append("<th class=\"tab-title\" colspan=\"7\">按问题分类统计</th>");
sb.Append("</tr>");
sb.Append("<tr>");
sb.Append("<th class=\"tab-header\" rowspan=\"2\">类别</th>");
sb.Append("<th class=\"tab-header\" colspan=\"3\">本月</th>");
sb.Append("<th class=\"tab-header\" colspan=\"3\">今年</th>");
sb.Append("</tr>");
sb.Append("<tr>");
sb.Append("<th class=\"tab-header\">承包商</th>");
sb.Append("<th class=\"tab-header\">项目部</th>");
sb.Append("<th class=\"tab-header\">合计</th>");
sb.Append("<th class=\"tab-header\">承包商</th>");
sb.Append("<th class=\"tab-header\">项目部</th>");
sb.Append("<th class=\"tab-header\">合计</th>");
sb.Append("</tr>");
sb.Append("</thead>");
sb.Append("<tbody>");
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("<tr>");
sb.Append($"<td >{obj.ClassifyName}</td>");
sb.Append($"<td>{monC}</td>");
sb.Append($"<td>{monX}</td>");
sb.Append($"<td>{mon}</td>");
sb.Append($"<td>{yearC}</td>");
sb.Append($"<td>{yearX}</td>");
sb.Append($"<td>{year}</td>");
sb.Append("</tr>");
}
}
else
{
sb.Append("<tr>");
sb.Append("<td ></td>");
sb.Append("<td ></td>");
sb.Append("<td ></td>");
sb.Append("<td ></td>");
sb.Append("<td ></td>");
sb.Append("<td ></td>");
sb.Append("<td ></td>");
sb.Append("</tr>");
}
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("<tr>");
sb.Append($"<td class=\"tab-header\">合计</td>");
sb.Append($"<td class=\"tab-header\">{monCAll}</td>");
sb.Append($"<td class=\"tab-header\">{monXAll}</td>");
sb.Append($"<td class=\"tab-header\">{monAll}</td>");
sb.Append($"<td class=\"tab-header\">{yearCAll}</td>");
sb.Append($"<td class=\"tab-header\">{yearXAll}</td>");
sb.Append($"<td class=\"tab-header\">{yearAll}</td>");
sb.Append("</tr>");
sb.Append("</tbody>");
sb.Append("</table>");
classifyTable.InnerHtml = sb.ToString();
}
/// <summary>
/// 按问题分类【柱状图——本月】
/// </summary>
protected string ClassifyBar
{
get
{
List<Model.SingleSerie> series = new List<Model.SingleSerie>();
Model.BusinessColumn businessColumn = new Model.BusinessColumn();
List<string> listCategories = new List<string>();
businessColumn.title = "按问题分类统计";
businessColumn.xFontNum = 8;
Model.SingleSerie s = new Model.SingleSerie();
Model.SingleSerie s2 = new Model.SingleSerie();
List<double> listdata = new List<double>();
List<double> listdata2 = new List<double>();
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);
}
}
/// <summary>
/// 按问题分类【柱状图——今年】
/// </summary>
protected string ClassifyBarYear
{
get
{
List<Model.SingleSerie> series = new List<Model.SingleSerie>();
Model.BusinessColumn businessColumn = new Model.BusinessColumn();
List<string> listCategories = new List<string>();
businessColumn.title = "按问题分类统计";
businessColumn.xFontNum = 8;
Model.SingleSerie s = new Model.SingleSerie();
Model.SingleSerie s2 = new Model.SingleSerie();
List<double> listdata = new List<double>();
List<double> listdata2 = new List<double>();
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
/// <summary>
/// 安全管理类统计(S1)【本月】
/// </summary>
protected string S1Pie
{
get
{
Model.BusinessColumn businessColumn = new Model.BusinessColumn();
businessColumn.title = "安全管理类统计";
List<Model.SingleSerie> series = new List<Model.SingleSerie>();
Model.SingleSerie s = new Model.SingleSerie();
//安全管理类
var classifyItems = BLL.SafetyProblemClassifyItemService.GetClassifyItemList(Const.SafetyClassifyIdS1);
List<Model.PieData> pies = new List<Model.PieData>();
List<string> dataString = new List<string>();
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);
}
}
/// <summary>
/// 安全管理类统计(S1)【今年】
/// </summary>
protected string S1PieYear
{
get
{
Model.BusinessColumn businessColumn = new Model.BusinessColumn();
businessColumn.title = "安全管理类统计";
List<Model.SingleSerie> series = new List<Model.SingleSerie>();
Model.SingleSerie s = new Model.SingleSerie();
//安全管理类
var classifyItems = BLL.SafetyProblemClassifyItemService.GetClassifyItemList(Const.SafetyClassifyIdS1);
List<Model.PieData> pies = new List<Model.PieData>();
List<string> dataString = new List<string>();
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
/// <summary>
/// 施工作业类统计(S2)【本月】
/// </summary>
protected string S2Pie
{
get
{
Model.BusinessColumn businessColumn = new Model.BusinessColumn();
businessColumn.title = "施工作业类统计";
List<Model.SingleSerie> series = new List<Model.SingleSerie>();
Model.SingleSerie s = new Model.SingleSerie();
//施工作业类
var classifyItems = BLL.SafetyProblemClassifyItemService.GetClassifyItemList(Const.SafetyClassifyIdS2);
List<Model.PieData> pies = new List<Model.PieData>();
List<string> dataString = new List<string>();
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);
}
}
/// <summary>
/// 施工作业类统计(S2)【今年】
/// </summary>
protected string S2PieYear
{
get
{
Model.BusinessColumn businessColumn = new Model.BusinessColumn();
businessColumn.title = "施工作业类统计";
List<Model.SingleSerie> series = new List<Model.SingleSerie>();
Model.SingleSerie s = new Model.SingleSerie();
//施工作业类
var classifyItems = BLL.SafetyProblemClassifyItemService.GetClassifyItemList(Const.SafetyClassifyIdS2);
List<Model.PieData> pies = new List<Model.PieData>();
List<string> dataString = new List<string>();
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
}
}