407 lines
17 KiB
C#
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
|
|
}
|
|
} |