From 6a4248f0e52b2b95c84cf25d4aab46cfc66402c2 Mon Sep 17 00:00:00 2001 From: xiaju <1784803958@qq.com> Date: Sat, 6 Jun 2026 11:04:42 +0800 Subject: [PATCH] =?UTF-8?q?1HSE=E4=B8=8D=E7=AC=A6=E5=90=88=E9=A1=B9?= =?UTF-8?q?=E6=B8=85=E5=8D=95=E5=92=8C=E7=BB=9F=E8=AE=A1=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- DataBase/版本日志/SGGLDB_V2026-06-06-xiaj.sql | 19 + SGGL/BLL/Common/Const.cs | 30 +- .../FineUIPro.Web/Check/HSE/CheckProblem.aspx | 16 +- .../Check/HSE/CheckProblem.aspx.cs | 15 +- SGGL/FineUIPro.Web/FineUIPro.Web.csproj | 8 + .../common/mainMenu_HSECheck.aspx | 649 ++++++++++++++++++ .../common/mainMenu_HSECheck.aspx.cs | 407 +++++++++++ .../common/mainMenu_HSECheck.aspx.designer.cs | 35 + 8 files changed, 1174 insertions(+), 5 deletions(-) create mode 100644 DataBase/版本日志/SGGLDB_V2026-06-06-xiaj.sql create mode 100644 SGGL/FineUIPro.Web/common/mainMenu_HSECheck.aspx create mode 100644 SGGL/FineUIPro.Web/common/mainMenu_HSECheck.aspx.cs create mode 100644 SGGL/FineUIPro.Web/common/mainMenu_HSECheck.aspx.designer.cs diff --git a/DataBase/版本日志/SGGLDB_V2026-06-06-xiaj.sql b/DataBase/版本日志/SGGLDB_V2026-06-06-xiaj.sql new file mode 100644 index 00000000..6460c387 --- /dev/null +++ b/DataBase/版本日志/SGGLDB_V2026-06-06-xiaj.sql @@ -0,0 +1,19 @@ + + +update Sys_Menu +set Url='common/mainMenu_HSECheck.aspx' +where MenuId='10615676-E53B-4E67-8CD5-7385057A3A82' + +go + + +--ĿHSE嵥ͳ +IF NOT EXISTS (SELECT * FROM Sys_Menu WHERE MenuId = '10615676-E53B-4E67-8CD5-7385057ABCDE') +BEGIN +INSERT INTO dbo.Sys_Menu (MenuId, MenuName,Url, SortIndex, SuperMenu, MenuType, IsOffice, IsEnd, IsUsed) +VALUES (N'10615676-E53B-4E67-8CD5-7385057ABCDE', N'HSE嵥ͳ', N'common/mainMenu_HSECheck.aspx', 20, N'467A0CB9-737D-4451-965E-869EBC3A4BD6', N'Menu_HSSE', 0,1, 1); +END +GO + + + diff --git a/SGGL/BLL/Common/Const.cs b/SGGL/BLL/Common/Const.cs index ae9be174..cea646ac 100644 --- a/SGGL/BLL/Common/Const.cs +++ b/SGGL/BLL/Common/Const.cs @@ -31,9 +31,37 @@ namespace BLL /// 职业健康危害因素数据导入模板 /// public const string HazardFactorOccHealthDataInTemplateUrl = "File\\Excel\\DataIn\\职业健康危害因素数据导入模板.xlsx"; - + #endregion + #region HSE不符合项 + + /// + /// S1安全管理Id + /// + public const string SafetyClassifyIdS1 = "c8701e01-14a6-45d3-96bf-96c5dd1acb9d"; + /// + /// S2施工作业Id + /// + public const string SafetyClassifyIdS2 = "db8c5a03-d356-4e6e-bb2e-a4f14ab76c76"; + + + /// + /// N1管控红线Id + /// + public const string SafetyNatureIdN1 = "4c03e852-f058-4c33-b879-da4c3abf5a14"; + /// + /// N2危险作业许可Id + /// + public const string SafetyNatureIdN2 = "f78830db-87d5-433c-a04a-72d61eeacef9"; + /// + /// N3较大隐患Id + /// + public const string SafetyNatureIdN3 = "4cd15090-0fb0-4bdf-9a72-3076f90fe5c6"; + + #endregion + + /// /// 焊条发放回收纪录 /// diff --git a/SGGL/FineUIPro.Web/Check/HSE/CheckProblem.aspx b/SGGL/FineUIPro.Web/Check/HSE/CheckProblem.aspx index 0c980b31..78f2f8d6 100644 --- a/SGGL/FineUIPro.Web/Check/HSE/CheckProblem.aspx +++ b/SGGL/FineUIPro.Web/Check/HSE/CheckProblem.aspx @@ -155,11 +155,23 @@ - + <%-- + --%> + + + - + <%-- + --%> + + + + + + + <%-- listStr = new List(); if (this.CurrUser.UnitId != null && this.CurrUser.UnitId != Const.UnitId_XJYJ && (this.CurrUser.UserId != Const.hfnbdId || this.CurrUser.UserId != Const.sysglyId)) { diff --git a/SGGL/FineUIPro.Web/FineUIPro.Web.csproj b/SGGL/FineUIPro.Web/FineUIPro.Web.csproj index 39cfe764..ad6c00c5 100644 --- a/SGGL/FineUIPro.Web/FineUIPro.Web.csproj +++ b/SGGL/FineUIPro.Web/FineUIPro.Web.csproj @@ -326,6 +326,7 @@ + @@ -8204,6 +8205,13 @@ mainMenu_HJGL2.aspx + + mainMenu_HSECheck.aspx + ASPXCodeBehind + + + mainMenu_HSECheck.aspx + mainMenu_Staff.aspx ASPXCodeBehind diff --git a/SGGL/FineUIPro.Web/common/mainMenu_HSECheck.aspx b/SGGL/FineUIPro.Web/common/mainMenu_HSECheck.aspx new file mode 100644 index 00000000..137fa272 --- /dev/null +++ b/SGGL/FineUIPro.Web/common/mainMenu_HSECheck.aspx @@ -0,0 +1,649 @@ +<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="mainMenu_HSECheck.aspx.cs" Inherits="FineUIPro.Web.mainMenu_HSECheck" %> + + + + + + 首页 + + + + + + +
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
本月
+
+
今年
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
本月
+
+
今年
+
+
+
+
+
+
+
+
+
+
+
+
+
+
本月
+
+
今年
+
+
+
+
+
+
+
+
+
+
+
+ + + + + + + + + + + + diff --git a/SGGL/FineUIPro.Web/common/mainMenu_HSECheck.aspx.cs b/SGGL/FineUIPro.Web/common/mainMenu_HSECheck.aspx.cs new file mode 100644 index 00000000..19a9c3c6 --- /dev/null +++ b/SGGL/FineUIPro.Web/common/mainMenu_HSECheck.aspx.cs @@ -0,0 +1,407 @@ +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 + } +} \ No newline at end of file diff --git a/SGGL/FineUIPro.Web/common/mainMenu_HSECheck.aspx.designer.cs b/SGGL/FineUIPro.Web/common/mainMenu_HSECheck.aspx.designer.cs new file mode 100644 index 00000000..8f577fbe --- /dev/null +++ b/SGGL/FineUIPro.Web/common/mainMenu_HSECheck.aspx.designer.cs @@ -0,0 +1,35 @@ +//------------------------------------------------------------------------------ +// <自动生成> +// 此代码由工具生成。 +// +// 对此文件的更改可能导致不正确的行为,如果 +// 重新生成代码,则所做更改将丢失。 +// +//------------------------------------------------------------------------------ + +namespace FineUIPro.Web +{ + + + public partial class mainMenu_HSECheck + { + + /// + /// Head1 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.HtmlControls.HtmlHead Head1; + + /// + /// classifyTable 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.HtmlControls.HtmlGenericControl classifyTable; + } +}