修改五环安全月报

This commit is contained in:
2024-08-26 14:24:39 +08:00
parent 90b11e22d6
commit ba55ac64e4
8 changed files with 628 additions and 28 deletions
@@ -7,6 +7,7 @@ using System.Web.UI.WebControls;
using BLL;
using Newtonsoft.Json.Linq;
using System.Threading;
using Model;
namespace FineUIPro.Web.HSSE.Manager
{
@@ -92,6 +93,9 @@ namespace FineUIPro.Web.HSSE.Manager
private static List<Model.Manager_Month_ComplianceObligationsC> complianceObligationsCs = new List<Model.Manager_Month_ComplianceObligationsC>();
#endregion
public List<Project_ProjectUnit> units = new List<Project_ProjectUnit>();
public Model.SGGLDB db = Funs.DB;
#region
@@ -99,6 +103,12 @@ namespace FineUIPro.Web.HSSE.Manager
{
if (!IsPostBack)
{
ProjectId = CurrUser.LoginProjectId;
units = (from x in db.Project_ProjectUnit
where x.ProjectId == this.ProjectId && (x.UnitType == "1" || x.UnitType == "2")
orderby x.UnitType
select x).ToList(); //1为总包,2为施工分包
rewardAndPunishSortCs.Clear();
trainSorts.Clear();
checkSorts.Clear();
@@ -107,7 +117,7 @@ namespace FineUIPro.Web.HSSE.Manager
otherWorkPlanCs.Clear();
complianceObligationsCs.Clear();
ProjectId = CurrUser.LoginProjectId;
unitList = db.Base_Unit.ToList();
MonthReportId = Request.Params["MonthReportId"];
var project = BLL.ProjectService.GetProjectByProjectId(this.CurrUser.LoginProjectId);
@@ -188,6 +198,11 @@ namespace FineUIPro.Web.HSSE.Manager
}
#endregion
#region 4.3
txtMonthHdangerCount.Text = model.MonthHdangerCount.ToString();
txtYearHdangerCount.Text = model.YearHdangerCount.ToString();
#endregion
#region 4.6.3
txtEmergencyManagementWorkDef.Text = model.EmergencyManagementWorkDef;
#endregion
@@ -404,6 +419,10 @@ namespace FineUIPro.Web.HSSE.Manager
monthReport.TotalHseManhours = Funs.GetNewIntOrZero(TotalHseManhours);
monthReport.TotalHseManhoursYear= Funs.GetNewIntOrZero(TotalYearHseManhours);
//4.3隐患
monthReport.MonthHdangerCount = Funs.GetNewIntOrZero(txtMonthHdangerCount.Text);
monthReport.YearHdangerCount = Funs.GetNewIntOrZero(txtYearHdangerCount.Text);
//4.6.3其他应急管理工作描述
monthReport.EmergencyManagementWorkDef = txtEmergencyManagementWorkDef.Text;
@@ -432,6 +451,9 @@ namespace FineUIPro.Web.HSSE.Manager
//4.2
OperateCheckSort();
//4.3
OperateManager_HiddenDanger();
//4.7
OperateRewardAndPunishSort();
@@ -478,6 +500,30 @@ namespace FineUIPro.Web.HSSE.Manager
}
#endregion
#region 4.3
private void OperateManager_HiddenDanger() {
PersonSortCService.DeleteManager_HiddenDanger(MonthReportId);
JArray mergedData = GridHiddenDanger.GetMergedData();
foreach (JObject mergedRow in mergedData)
{
string status = mergedRow.Value<string>("status");
JObject values = mergedRow.Value<JObject>("values");
int i = mergedRow.Value<int>("index");
Model.Manager_HiddenDanger model = new Model.Manager_HiddenDanger
{
Id=Guid.NewGuid().ToString(),
MonthReportId = MonthReportId,
UnitId = this.GridHiddenDanger.Rows[i].DataKeys[1].ToString(),
CommonlyNum = Funs.GetNewIntOrZero(values.Value<string>("CommonlyNum").ToString()),
MajorNum = Funs.GetNewIntOrZero(values.Value<string>("MajorNum").ToString()),
ReRate = values.Value<string>("ReRate").ToString(),
SortIndex = i+1,
};
db.Manager_HiddenDanger.InsertOnSubmit(model);
db.SubmitChanges();
}
}
#endregion
#region 4.1
private void OperateTrainSort()
@@ -792,6 +838,8 @@ namespace FineUIPro.Web.HSSE.Manager
GetTrainSort();
//4.2现场HSE绩效数据统计
GetCheckSort();
//4.3本月隐患
GetManager_HiddenDanger();
//4.7HSE奖励与处罚
GetRewardAndPunishSort();
@@ -804,6 +852,9 @@ namespace FineUIPro.Web.HSSE.Manager
{
//2.本月项目现场HSE人力投入情况
GetPersonSortEdit();
//3.本月隐患
GetManager_HiddenDangerEdit();
}
}
@@ -815,10 +866,10 @@ namespace FineUIPro.Web.HSSE.Manager
private void GetPersonSort()
{
List<Model.Manager_PersonSortC> personSorts = new List<Model.Manager_PersonSortC>();
var units = from x in Funs.DB.Project_ProjectUnit
where x.ProjectId == this.ProjectId && (x.UnitType == "1" || x.UnitType == "2")
orderby x.UnitType
select x; //1为总包,2为施工分包
//var units = from x in Funs.DB.Project_ProjectUnit
// where x.ProjectId == this.ProjectId && (x.UnitType == "1" || x.UnitType == "2")
// orderby x.UnitType
// select x; //1为总包,2为施工分包
int totalSumPersonNum = 0;//总部
int totalSumOutPersonNum = 0;//外聘
int totalHSEPersonNum = 0;
@@ -874,10 +925,7 @@ namespace FineUIPro.Web.HSSE.Manager
orderby y.UnitType
select x).Distinct().ToList();
List<Model.Manager_PersonSortC> personSorts = new List<Model.Manager_PersonSortC>();
var units = from x in db.Project_ProjectUnit
where x.ProjectId == this.ProjectId && (x.UnitType == "1" || x.UnitType == "2")
orderby x.UnitType
select x; //1为总包,2为施工分包
foreach (var unit in units)
{
Model.Manager_PersonSortC personSort = sorts.FirstOrDefault(x => x.UnitId == unit.UnitId);
@@ -1259,6 +1307,155 @@ namespace FineUIPro.Web.HSSE.Manager
}
#endregion
#region 4.3
void GetManager_HiddenDangerEdit() {
var q = from x in db.Manager_HiddenDanger
where x.MonthReportId == MonthReportId
select x;
if (q.Count() > 0) //保存过数据
{
//人力投入情况
List<Model.Manager_HiddenDanger> sorts = (from x in db.Manager_HiddenDanger
join y in db.Project_ProjectUnit
on x.UnitId equals y.UnitId
where x.MonthReportId == MonthReportId && y.ProjectId == this.ProjectId
orderby y.UnitType
select x).Distinct().ToList();
List<Model.Manager_HiddenDanger> personSorts = new List<Model.Manager_HiddenDanger>();
//var units = from x in db.Project_ProjectUnit
// where x.ProjectId == this.ProjectId && (x.UnitType == "1" || x.UnitType == "2")
// orderby x.UnitType
// select x; //1为总包,2为施工分包
foreach (var unit in units)
{
Model.Manager_HiddenDanger personSort = sorts.FirstOrDefault(x => x.UnitId == unit.UnitId);
if (personSort != null)
{
personSorts.Add(personSort);
}
}
this.GridHiddenDanger.DataSource = personSorts;
this.GridHiddenDanger.DataBind();
}
else
{
GetManager_HiddenDanger();
}
}
//保存时根据 HSE巡检、专项检查、综合检查(即周检、月检等)、隐患整改(书面整改单)这四项同时抓取数据
void GetManager_HiddenDanger() {
//安全巡检list
var HseList = (from x in Funs.DB.View_Hazard_HazardRegister
where x.ProblemTypes == "1" && x.ProjectId == ProjectId && x.CheckTime>=startTime && x.CheckTime<=endTime
select x);
//专项检查
var CheckSpecialList = from x in db.Check_CheckSpecialDetail
join y in db.Check_CheckSpecial on x.CheckSpecialId equals y.CheckSpecialId
where y.ProjectId == ProjectId && y.CheckTime >= startTime && y.CheckTime <= endTime
select x;
//综合检查
var CheckColligationList = from x in db.Check_CheckColligationDetail
join y in db.Check_CheckColligation on x.CheckColligationId equals y.CheckColligationId
where y.ProjectId == ProjectId && y.CheckTime >= startTime && y.CheckTime <= endTime
select x;
//隐患整改单
var YhzgdList = from x in db.Check_RectifyNoticesItem
join y in db.Check_RectifyNotices on x.RectifyNoticesId equals y.RectifyNoticesId
where y.ProjectId == ProjectId && y.CheckedDate >= startTime && y.CheckedDate <= endTime
select new { y.UnitId, x.HiddenHazardType,y.States};
int yhMonthSum = 0, yhYearSum = 0;
var list = new List<Model.Manager_HiddenDanger>();
if (units.Count() > 0)
{
var i = 1;
foreach (Model.Project_ProjectUnit u in units)
{
var model = new Manager_HiddenDanger
{
Id=Guid.NewGuid().ToString(),
UnitId = u.UnitId,
SortIndex= i
};
//HSE巡检(一般和重大)
//所有数据
var Commonly1 = HseList.Where(x => x.ResponsibleUnit == u.UnitId && x.Type == 0 && x.Risk_Level=="一般" && x.States == "2").Count();
var MajorNum1= HseList.Where(x => x.ResponsibleUnit == u.UnitId && x.Type == 0 && x.Risk_Level == "重大" && x.States == "2").Count();
//总数,已整改
var Sum1 = HseList.Where(x => x.ResponsibleUnit == u.UnitId && x.Type == 0).Count();
var Yzg1 = HseList.Where(x => x.ResponsibleUnit == u.UnitId && x.Type == 0 && x.States == "2").Count();
//专项检查(一般和重大)
var Commonly2 = CheckSpecialList.Where(x => x.UnitId == u.UnitId && x.HiddenHazardType == "1" && x.CompleteStatus == true).Count();
var MajorNum2 = CheckSpecialList.Where(x => x.UnitId == u.UnitId && x.HiddenHazardType == "3" && x.CompleteStatus == true).Count();
//总数,已整改
var Sum2 = CheckSpecialList.Where(x => x.UnitId == u.UnitId).Count();
var Yzg2 = CheckSpecialList.Where(x => x.UnitId == u.UnitId && x.CompleteStatus==true).Count();
//综合检查(一般和重大)
var Commonly3 = CheckColligationList.Where(x => x.UnitId == u.UnitId && x.HiddenHazardType == "一般" && x.CompleteStatus == true).Count();
var MajorNum3 = CheckColligationList.Where(x => x.UnitId == u.UnitId && x.HiddenHazardType == "重大" && x.CompleteStatus == true).Count();
//总数,已整改
var Sum3 = CheckColligationList.Where(x => x.UnitId == u.UnitId).Count();
var Yzg3 = CheckColligationList.Where(x => x.UnitId == u.UnitId && x.CompleteStatus == true).Count();
//隐患整改(一般和重大)
var Commonly4 = YhzgdList.Where(x => x.UnitId == u.UnitId && x.HiddenHazardType == "一般" && x.States == "5").Count();
var MajorNum4 = YhzgdList.Where(x => x.UnitId == u.UnitId && x.HiddenHazardType == "重大" && x.States == "5").Count();
//总数,已整改
var Sum4 = YhzgdList.Where(x => x.UnitId == u.UnitId).Count();
var Yzg4 = YhzgdList.Where(x => x.UnitId == u.UnitId && x.States == "5").Count();
model.CommonlyNum = Commonly1+ Commonly2+ Commonly3+ Commonly4;
model.MajorNum = MajorNum1+ MajorNum2+ MajorNum3+ MajorNum4;
//整改率=已整改/总数
if ((Sum1 + Sum2 + Sum3 + Sum4) != 0)
{
model.ReRate = Math.Round((float)(Yzg1 + Yzg2 + Yzg3 + Yzg4) / (float)(Sum1 + Sum2 + Sum3 + Sum4) * 100, 2).ToString();
}
else {
model.ReRate = "0";
}
yhMonthSum += Sum1 + Sum2 + Sum3 + Sum4;
list.Add(model);
i++;
}
}
txtMonthHdangerCount.Text = yhMonthSum.ToString();
this.GridHiddenDanger.DataSource = list;
this.GridHiddenDanger.DataBind();
#region
//安全巡检list
var HseListYear = (from x in Funs.DB.View_Hazard_HazardRegister
where x.ProblemTypes == "1" && x.ProjectId == ProjectId && x.CheckTime >= yearStartTime && x.CheckTime <= endTime
select x).ToList().Count;
//专项检查
var CheckSpecialListYear = (from x in db.Check_CheckSpecialDetail
join y in db.Check_CheckSpecial on x.CheckSpecialId equals y.CheckSpecialId
where y.ProjectId == ProjectId && y.CheckTime >= yearStartTime && y.CheckTime <= endTime
select x).ToList().Count;
//综合检查
var CheckColligationListYear = (from x in db.Check_CheckColligationDetail
join y in db.Check_CheckColligation on x.CheckColligationId equals y.CheckColligationId
where y.ProjectId == ProjectId && y.CheckTime >= yearStartTime && y.CheckTime <= endTime
select x).ToList().Count;
//隐患整改单
var YhzgdListYear = (from x in db.Check_RectifyNoticesItem
join y in db.Check_RectifyNotices on x.RectifyNoticesId equals y.RectifyNoticesId
where y.ProjectId == ProjectId && y.CheckedDate >= yearStartTime && y.CheckedDate <= endTime
select new { y.UnitId, x.HiddenHazardType, y.States }).ToList().Count;
txtYearHdangerCount.Text = (HseListYear + CheckSpecialListYear + CheckColligationListYear + YhzgdListYear).ToString();
#endregion
}
#endregion
#region 4.7 HSE奖励与处罚
private void GetRewardAndPunishSort()
{