mh_jy_safe/APT.MicroApi/APT.PP.WebApi/Controllers/Api/PEController.cs
2025-08-25 09:56:57 +08:00

3593 lines
234 KiB
C#
Raw Permalink Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

using APT.BaseData.Domain.Entities;
using APT.BaseData.Domain.Entities.FM;
using APT.BaseData.Domain.Enums.PF;
using APT.BaseData.Domain.IServices.FM;
using APT.Infrastructure.Core;
using APT.MS.Domain.Entities.AE;
using APT.MS.Domain.Entities.BS;
using APT.MS.Domain.Entities.DM;
using APT.MS.Domain.Entities.FO;
using APT.MS.Domain.Entities.HM;
using APT.MS.Domain.Entities.LR;
using APT.MS.Domain.Entities.OG;
using APT.MS.Domain.Entities.OH;
using APT.MS.Domain.Entities.SC;
using APT.MS.Domain.Entities.SC.DM;
using APT.MS.Domain.Entities.SC.PE;
using APT.MS.Domain.Entities.SC.PM;
using APT.MS.Domain.Entities.SC.PR;
using APT.MS.Domain.Entities.SC.PT;
using APT.MS.Domain.Entities.SC.SC;
using APT.MS.Domain.Entities.SE;
using APT.MS.Domain.Enums;
using APT.Utility;
using APT.WebApi.Models;
using Google.Protobuf.WellKnownTypes;
using log4net.Filter;
using Microsoft.AspNetCore.Mvc;
using Microsoft.AspNetCore.Server.IISIntegration;
using MySqlX.XDevAPI.Common;
using NPOI.SS.Formula.Functions;
using System;
using System.Collections.Generic;
using System.DirectoryServices.Protocols;
using System.Linq;
using System.Linq.Expressions;
namespace APT.PP.WebApi.Controllers.Api
{
/// <summary>
/// 绩效测量与评价
/// </summary>
[Route("api/PP/PEController")]
[TypeFilter(typeof(CustomActionFilterAttribute))]
public class PEController : AuthorizeApiController<T_FM_BASE_CONFIG>
{
IFMNotificationTaskService NotificationTaskService { get; set; }
public PEController(IFMNotificationTaskService notificationTaskService)
{
NotificationTaskService = notificationTaskService;
}
/// <summary>
/// 触发纠正与预防措施通知单
/// </summary>
/// <returns></returns>
[HttpPost, Route("CorrectivePreventiveSync")]
public JsonActionResult<bool> CorrectivePreventiveSync([FromBody] KeywordFilter filter)
{
return SafeExecute<bool>(() =>
{
try
{
var dtNow = DateTime.Now;
var month = dtNow.Month;
var day = dtNow.Day;
var time = dtNow.TimeOfDay;
var week = dtNow.DayOfWeek;
T_FM_NOTIFICATION_TASK sendNotice = null;
T_PE_CORRECTIVE_PREVENTIVE corrective = null;
var newFilter = new BaseFilter(filter.OrgId);
newFilter.SelectField = new List<string> { "ID", "NAME" };
var userInfo = this.GetEntity<T_FM_USER>(t => t.Nav_ApproveRole != null && t.Nav_ApproveRole.NAME == "安环部负责人" && t.ENABLE_STATUS == 0, newFilter);
if (userInfo == null && filter.OrgId.ToString() == "3efd5276-632b-e379-9ff3-7a7546591fca")
{
userInfo = this.GetEntity<T_FM_USER>(t => t.Nav_ApproveRole != null && t.Nav_ApproveRole.NAME == "安环部安全员" && t.ENABLE_STATUS == 0);
}
if (userInfo != null)
{
bool isSend = false;
newFilter.SelectField = new List<string> { "PLANCHECKFREQUENCY", "MONTH", "DATA", "WEEKDATA" };
var timeSet = GetEntity<T_PT_TIME_SET>(i => i.SET_TYPE == PTSetTypeEnum.CorrectivePreventive && i.ENABLE_STATUS == 0, newFilter);
if (timeSet != null)
{
switch (timeSet.PLANCHECKFREQUENCY)
{
//case BSPLANCHECKFREQUENCYEnum.OneTime:
case BSPLANCHECKFREQUENCYEnum.Year:
if (timeSet.MONTH == month && timeSet.DATA == day)
isSend = true;
break;
case BSPLANCHECKFREQUENCYEnum.HalfYear:
if ((timeSet.MONTH == month && timeSet.DATA == day) || ((timeSet.MONTH + 6) == month && (timeSet.DATA + 183) == day))
isSend = true;
break;
case BSPLANCHECKFREQUENCYEnum.Date:
isSend = true;
break;
case BSPLANCHECKFREQUENCYEnum.Week:
if (timeSet.WEEKDATA != null && (int)timeSet.WEEKDATA.Value == (int)week)
isSend = true;
break;
case BSPLANCHECKFREQUENCYEnum.Month:
if (timeSet.DATA == day)
isSend = true;
break;
case BSPLANCHECKFREQUENCYEnum.Quarter:
if (timeSet.MONTH == 1)
{
if ((month == 1 || month == 4 || month == 7 || month == 10) && timeSet.DATA == day)
isSend = true;
}
if (timeSet.MONTH == 2)
{
if ((month == 2 || month == 5 || month == 8 || month == 11) && timeSet.DATA == day)
isSend = true;
}
if (timeSet.MONTH == 3)
{
if ((month == 3 || month == 6 || month == 9 || month == 12) && timeSet.DATA == day)
isSend = true;
}
break;
default:
break;
}
}
if (isSend)
{
if (!string.IsNullOrEmpty(filter.Parameter1))
{
if (DateTime.Now.Hour.ToString() == filter.Parameter1)
isSend = true;
else
isSend = false;
}
var safe = this.GetEntity<T_PE_CORRECTIVE_PREVENTIVE>(t => t.USER_ID == userInfo.ID && t.CREATE_TIME.Value.Date == DateTime.Now.Date);
if (safe == null)
{
corrective = new T_PE_CORRECTIVE_PREVENTIVE();
corrective.ORG_ID = filter.GetOrgId();
corrective.USER_ID = userInfo.ID;
corrective.DEPARTMENT_ID = userInfo.DEPARTMENT_ID;
corrective.STATUS = PFStandardStatus.Draft;
sendNotice = NotificationTaskService.InsertUserNoticeTaskModel("纠正与预防措施通知单", corrective.ID, filter.GetOrgId(), userInfo.ID, userInfo.NAME, DateTime.Now, DateTime.Now.AddDays(30), (int)FMNoticeTypeEnum., "PE005");
}
}
}
UnifiedCommit(() =>
{
if (corrective != null)
UpdateEntityNoCommit(corrective);
if (sendNotice != null)
UpdateEntityNoCommit(sendNotice);
});
}
catch (Exception ex)
{
if (!string.IsNullOrEmpty(ex.StackTrace))
throw new Exception("错误日志:[StackTrace]" + ex.StackTrace);
else
throw new Exception("【" + HttpContext.Request.Path + "】错误日志:[Message]" + ex.Message);
}
return true;
});
}
/// <summary>
/// 触发安全绩效监测计划表
/// </summary>
/// <returns></returns>
[HttpPost, Route("SafetyMonitorPlanSync")]
public JsonActionResult<bool> SafetyMonitorPlanSync([FromBody] KeywordFilter filter)
{
return SafeExecute<bool>(() =>
{
try
{
var dtNow = DateTime.Now;
var year = dtNow.Year;
var month = dtNow.Month;
var day = dtNow.Day;
var time = dtNow.TimeOfDay;
var week = dtNow.DayOfWeek;
List<T_FM_NOTIFICATION_TASK> sendNotices = new List<T_FM_NOTIFICATION_TASK>();
List<T_PE_SAFETY_MONITOR_PLAN> monitorPlans = new List<T_PE_SAFETY_MONITOR_PLAN>();
List<T_PE_SAFETY_MONITOR_PLAN_DETAIL> monitorPlanDetails = new List<T_PE_SAFETY_MONITOR_PLAN_DETAIL>();
var newFilter = new BaseFilter(filter.OrgId);
newFilter.SelectField = new List<string> { "ID", "NAME" };
var userInfo = this.GetEntity<T_FM_USER>(t => t.Nav_ApproveRole != null && t.Nav_ApproveRole.NAME == "安环部负责人" && t.ENABLE_STATUS == 0, newFilter);
if (userInfo == null && filter.OrgId.ToString() == "3efd5276-632b-e379-9ff3-7a7546591fca")
{
userInfo = this.GetEntity<T_FM_USER>(t => t.Nav_ApproveRole != null && t.Nav_ApproveRole.NAME == "安环部安全员" && t.ENABLE_STATUS == 0);
}
if (userInfo != null)
{
bool isSend = false;
newFilter.SelectField = new List<string> { "PLANCHECKFREQUENCY", "MONTH", "DATA", "WEEKDATA" };
var timeSet = GetEntity<T_PT_TIME_SET>(i => i.SET_TYPE == PTSetTypeEnum.SafetyMonitorPlan && i.ENABLE_STATUS == 0, newFilter);
if (timeSet != null)
{
switch (timeSet.PLANCHECKFREQUENCY)
{
//case BSPLANCHECKFREQUENCYEnum.OneTime:
case BSPLANCHECKFREQUENCYEnum.Year:
if (timeSet.MONTH == month && timeSet.DATA == day)
{
isSend = true;
}
break;
case BSPLANCHECKFREQUENCYEnum.HalfYear:
if ((timeSet.MONTH == month && timeSet.DATA == day) || ((timeSet.MONTH + 6) == month && (timeSet.DATA + 183) == day))
{
isSend = true;
}
break;
case BSPLANCHECKFREQUENCYEnum.Date:
isSend = true;
break;
case BSPLANCHECKFREQUENCYEnum.Week:
if (timeSet.WEEKDATA != null && (int)timeSet.WEEKDATA.Value == (int)week)
isSend = true;
break;
case BSPLANCHECKFREQUENCYEnum.Month:
if (timeSet.DATA == day)
{
isSend = true;
//if (month == 1)
// year = year - 1;
}
break;
case BSPLANCHECKFREQUENCYEnum.Quarter:
if (timeSet.MONTH == 1)
{
if ((month == 1 || month == 4 || month == 7 || month == 10) && timeSet.DATA == day)
isSend = true;
}
if (timeSet.MONTH == 2)
{
if ((month == 2 || month == 5 || month == 8 || month == 11) && timeSet.DATA == day)
isSend = true;
}
if (timeSet.MONTH == 3)
{
if ((month == 3 || month == 6 || month == 9 || month == 12) && timeSet.DATA == day)
isSend = true;
}
//if ((month == 1 && day == timeSet.DATA) || (month == 4 && day == timeSet.DATA) || (month == 7 && day == timeSet.DATA) || (month == 10 && day == timeSet.DATA))
//{
// isSend = true;
// if (month == 1 && day == timeSet.DATA)
// year = year - 1;
//}
break;
default:
break;
}
}
if (isSend)
{
if (!string.IsNullOrEmpty(filter.Parameter1))
{
if (DateTime.Now.Hour.ToString() == filter.Parameter1)
isSend = true;
else
isSend = false;
}
//newFilter.SelectField = new List<string> { "ID", "NAME" };
//var productUnit = this.GetEntities<T_PE_STANDARDIZED_SCORE_IMPORT>(t => t.PARENT_ID == null, newFilter).Distinct().ToList();
//if (productUnit != null && productUnit.Any())
//{
// foreach (var item in productUnit)
// {
// }
//}
var safe = this.GetEntity<T_PE_SAFETY_MONITOR_PLAN>(t => t.USER_ID == userInfo.ID && t.CREATE_TIME.Value.Date == DateTime.Now.Date);
if (safe == null)
{
T_PE_SAFETY_MONITOR_PLAN monitorPlan = new T_PE_SAFETY_MONITOR_PLAN();
monitorPlan.ORG_ID = filter.GetOrgId();
monitorPlan.USER_ID = userInfo.ID;
monitorPlan.DEPARTMENT_ID = userInfo.DEPARTMENT_ID;
monitorPlan.STATUS = PFStandardStatus.Draft;
monitorPlan.YEAR = year.ToString();
monitorPlan.PRODUCTION_UNIT_ID = null;
monitorPlans.Add(monitorPlan);
newFilter.SelectField = new List<string> { "ORG_ID", "ID" };
var monitorProjects = this.GetEntities<T_PE_MONITOR_PROJECT>(t => !t.IS_DELETED, newFilter).ToList();
if (monitorProjects != null && monitorProjects.Any())
{
foreach (var project in monitorProjects)
{
T_PE_SAFETY_MONITOR_PLAN_DETAIL detail = new T_PE_SAFETY_MONITOR_PLAN_DETAIL();
detail.ORG_ID = project.ORG_ID;
detail.SAFETY_MONITOR_PLAN_ID = monitorPlan.ID;
detail.PROJECT_ID = project.ID;
detail.ASSESSMENT_CYCLE = PTAssessmentCycleEnums.Year;
monitorPlanDetails.Add(detail);
}
}
T_FM_NOTIFICATION_TASK sendNotice = NotificationTaskService.InsertUserNoticeTaskModel("年度安全绩效监测计划", monitorPlan.ID, filter.GetOrgId(), userInfo.ID, userInfo.NAME, DateTime.Now, DateTime.Now.AddDays(30), (int)FMNoticeTypeEnum., "PE019");
sendNotices.Add(sendNotice);
}
}
}
UnifiedCommit(() =>
{
if (monitorPlans != null && monitorPlans.Any())
this.BantchSaveEntityNoCommit(monitorPlans);
if (monitorPlanDetails != null && monitorPlanDetails.Any())
this.BantchSaveEntityNoCommit(monitorPlanDetails);
if (sendNotices != null && sendNotices.Any())
this.BantchSaveEntityNoCommit(sendNotices);
});
}
catch (Exception ex)
{
if (!string.IsNullOrEmpty(ex.StackTrace))
throw new Exception("错误日志:[StackTrace]" + ex.StackTrace);
else
throw new Exception("【" + HttpContext.Request.Path + "】错误日志:[Message]" + ex.Message);
}
return true;
});
}
/// <summary>
/// 触发安全绩效监测记录表
/// </summary>
/// <returns></returns>
[HttpPost, Route("SafetyMonitorRecordSync")]
public JsonActionResult<bool> SafetyMonitorRecordSync([FromBody] KeywordFilter filter)
{
return SafeExecute<bool>(() =>
{
try
{
var dtNow = DateTime.Now;
var year = dtNow.Year;
var month = dtNow.Month;
var day = dtNow.Day;
var time = dtNow.TimeOfDay;
var week = dtNow.DayOfWeek;
var isSend = true;
List<T_FM_NOTIFICATION_TASK> sendNotices = new List<T_FM_NOTIFICATION_TASK>();
var newFilter = new BaseFilter(filter.OrgId);
//newFilter.SelectField = new List<string> { "YEAR", "ID" };
var monitorPlan = this.GetEntities<T_PE_SAFETY_MONITOR_PLAN>(e => (e.YEAR == year.ToString()) && e.STATUS == PFStandardStatus.Archived && e.IS_RUN == DisableStatusEnum., new BaseFilter(filter.OrgId), "Nav_Details").ToList();
if (monitorPlan.Count < 1)
return true;
List<T_PE_SAFETY_MONITOR_PLAN> monitorPlanList = new List<T_PE_SAFETY_MONITOR_PLAN>();
List<T_PE_SAFETY_MONITOR_PLAN_DETAIL> monitorPlanDetails = new List<T_PE_SAFETY_MONITOR_PLAN_DETAIL>();
List<T_PE_SAFETY_MONITOR_RECORD> monitorRecords = new List<T_PE_SAFETY_MONITOR_RECORD>();
List<T_PE_SAFETY_MONITOR_RECORD_DETAIL> monitorRecordDetails = new List<T_PE_SAFETY_MONITOR_RECORD_DETAIL>();
var timeSet = GetEntities<T_PT_TIME_SET>(i => i.SET_TYPE == PTSetTypeEnum.SafetyMonitorRecord && i.ENABLE_STATUS == 0, new BaseFilter(filter.OrgId));
if (timeSet != null && timeSet.Any())
{
if (isSend)
{
if (!string.IsNullOrEmpty(filter.Parameter1))
{
if (DateTime.Now.Hour.ToString() == filter.Parameter1)
isSend = true;
else
isSend = false;
}
var monitorPlanIds = monitorPlan.Select(t => t.ID).ToList();
foreach (var itemSet in timeSet)
{
var monitorPlanNew = new List<T_PE_SAFETY_MONITOR_PLAN>();
//newFilter.SelectField = new List<string> { "SAFETY_MONITOR_PLAN_ID" };
//var monitorRecordTemp = GetEntities<T_PE_SAFETY_MONITOR_RECORD>(i => monitorPlanIds.Contains(i.SAFETY_MONITOR_PLAN_ID.Value), new BaseFilter(filter.OrgId)).ToList();
//var existIds = monitorRecordTemp.Select(t => t.SAFETY_MONITOR_PLAN_ID).Distinct().ToList();
switch (itemSet.PLANCHECKFREQUENCY)
{
//case BSPLANCHECKFREQUENCYEnum.OneTime:
case BSPLANCHECKFREQUENCYEnum.HalfYear:
if ((itemSet.MONTH == month && itemSet.DATA == day) || ((itemSet.MONTH + 6) == month && (itemSet.DATA + 183) == day))
{
monitorPlanNew = monitorPlan.Where(t => t.YEAR == year.ToString()).ToList();//&& !existIds.Contains(t.ID)
if (monitorPlanNew != null && monitorPlanNew.Any())
{
foreach (var item in monitorPlanNew)
{
item.IS_RUN = DisableStatusEnum.;
if (item.Nav_Details != null && item.Nav_Details.Any())
{
var temp = item.Nav_Details.Where(t => t.ASSESSMENT_CYCLE == PTAssessmentCycleEnums.HalfYear).ToList();
monitorPlanDetails.AddRange(temp);
}
monitorPlanList.Add(item);
}
}
}
break;
case BSPLANCHECKFREQUENCYEnum.Year:
if (itemSet.MONTH == month && itemSet.DATA == day)
{
monitorPlanNew = monitorPlan.Where(t => t.YEAR == year.ToString()).ToList();//&& !existIds.Contains(t.ID)
if (monitorPlanNew != null && monitorPlanNew.Any())
{
foreach (var item in monitorPlanNew)
{
item.IS_RUN = DisableStatusEnum.;
if (item.Nav_Details != null && item.Nav_Details.Any())
{
var temp = item.Nav_Details.Where(t => t.ASSESSMENT_CYCLE == PTAssessmentCycleEnums.Year).ToList();
monitorPlanDetails.AddRange(temp);
}
monitorPlanList.Add(item);
}
}
}
break;
case BSPLANCHECKFREQUENCYEnum.Date:
monitorPlanNew = monitorPlan.Where(t => t.YEAR == year.ToString()).ToList();//&& !existIds.Contains(t.ID)
if (monitorPlanNew != null && monitorPlanNew.Any())
{
foreach (var item in monitorPlanNew)
{
item.IS_RUN = DisableStatusEnum.;
if (item.Nav_Details != null && item.Nav_Details.Any())
{
var temp = item.Nav_Details.Where(t => t.ASSESSMENT_CYCLE == PTAssessmentCycleEnums.Day).ToList();
monitorPlanDetails.AddRange(temp);
}
monitorPlanList.Add(item);
}
}
break;
case BSPLANCHECKFREQUENCYEnum.Week:
if (itemSet.WEEKDATA != null && (int)itemSet.WEEKDATA.Value == (int)week)
{
monitorPlanNew = monitorPlan.Where(t => t.YEAR == year.ToString()).ToList();// && !existIds.Contains(t.ID)
if (monitorPlanNew != null && monitorPlanNew.Any())
{
foreach (var item in monitorPlanNew)
{
item.IS_RUN = DisableStatusEnum.;
if (item.Nav_Details != null && item.Nav_Details.Any())
{
var temp = item.Nav_Details.Where(t => t.ASSESSMENT_CYCLE == PTAssessmentCycleEnums.Week).ToList();
monitorPlanDetails.AddRange(temp);
}
monitorPlanList.Add(item);
}
}
}
break;
case BSPLANCHECKFREQUENCYEnum.Month:
if (itemSet.DATA == day)
{
monitorPlanNew = monitorPlan.Where(t => t.YEAR == year.ToString()).ToList();// && !existIds.Contains(t.ID)
if (monitorPlanNew != null && monitorPlanNew.Any())
{
foreach (var item in monitorPlanNew)
{
item.IS_RUN = DisableStatusEnum.;
if (item.Nav_Details != null && item.Nav_Details.Any())
{
var temp = item.Nav_Details.Where(t => t.ASSESSMENT_CYCLE == PTAssessmentCycleEnums.Month).ToList();
monitorPlanDetails.AddRange(temp);
}
monitorPlanList.Add(item);
}
}
}
break;
case BSPLANCHECKFREQUENCYEnum.Quarter:
if (itemSet.MONTH == 1)
{
if ((month == 1 || month == 4 || month == 7 || month == 10) && itemSet.DATA == day)
{
monitorPlanNew = monitorPlan.Where(t => t.YEAR == year.ToString()).ToList();//&& !existIds.Contains(t.ID)
if (monitorPlanNew != null && monitorPlanNew.Any())
{
foreach (var item in monitorPlanNew)
{
item.IS_RUN = DisableStatusEnum.;
if (item.Nav_Details != null && item.Nav_Details.Any())
{
var temp = item.Nav_Details.Where(t => t.ASSESSMENT_CYCLE == PTAssessmentCycleEnums.Quarter).ToList();
monitorPlanDetails.AddRange(temp);
}
monitorPlanList.Add(item);
}
}
}
}
if (itemSet.MONTH == 2)
{
if ((month == 2 || month == 5 || month == 8 || month == 11) && itemSet.DATA == day)
{
monitorPlanNew = monitorPlan.Where(t => t.YEAR == year.ToString()).ToList();//&& !existIds.Contains(t.ID)
if (monitorPlanNew != null && monitorPlanNew.Any())
{
foreach (var item in monitorPlanNew)
{
item.IS_RUN = DisableStatusEnum.;
if (item.Nav_Details != null && item.Nav_Details.Any())
{
var temp = item.Nav_Details.Where(t => t.ASSESSMENT_CYCLE == PTAssessmentCycleEnums.Quarter).ToList();
monitorPlanDetails.AddRange(temp);
}
monitorPlanList.Add(item);
}
}
}
}
if (itemSet.MONTH == 3)
{
if ((month == 3 || month == 6 || month == 9 || month == 12) && itemSet.DATA == day)
{
monitorPlanNew = monitorPlan.Where(t => t.YEAR == year.ToString()).ToList();//&& !existIds.Contains(t.ID)
if (monitorPlanNew != null && monitorPlanNew.Any())
{
foreach (var item in monitorPlanNew)
{
item.IS_RUN = DisableStatusEnum.;
if (item.Nav_Details != null && item.Nav_Details.Any())
{
var temp = item.Nav_Details.Where(t => t.ASSESSMENT_CYCLE == PTAssessmentCycleEnums.Quarter).ToList();
monitorPlanDetails.AddRange(temp);
}
monitorPlanList.Add(item);
}
}
}
}
break;
default:
break;
}
}
}
}
if (monitorPlanDetails != null && monitorPlanDetails.Any())
{
var userIds = monitorPlanDetails.Select(t => t.USER_ID).Distinct().ToList();
newFilter.SelectField = new List<string> { "DEPARTMENT_ID", "ID", "NAME" };
var users = this.GetEntities<T_FM_USER>(t => userIds.Contains(t.ID) && t.ENABLE_STATUS == 0, newFilter).Distinct().ToList();
var planTemps = monitorPlanDetails.GroupBy(t => new { t.SAFETY_MONITOR_PLAN_ID, t.ASSESSMENT_CYCLE, t.USER_ID }).ToList();
foreach (var detailP in planTemps)
{
var userInfo = users.FirstOrDefault(t => t.ID == detailP.Key.USER_ID);
T_PE_SAFETY_MONITOR_RECORD monitorRecord = new T_PE_SAFETY_MONITOR_RECORD();
monitorRecord.ORG_ID = filter.GetOrgId();
monitorRecord.USER_ID = detailP.Key.USER_ID;
monitorRecord.DEPARTMENT_ID = userInfo?.DEPARTMENT_ID;
monitorRecord.STATUS = PFStandardStatus.Draft;
monitorRecord.SAFETY_MONITOR_PLAN_ID = detailP.Key.SAFETY_MONITOR_PLAN_ID;
monitorRecord.ASSESSMENT_CYCLE = detailP.Key.ASSESSMENT_CYCLE;
monitorRecords.Add(monitorRecord);
var details = monitorPlanDetails.Where(t => t.SAFETY_MONITOR_PLAN_ID == detailP.Key.SAFETY_MONITOR_PLAN_ID && t.ASSESSMENT_CYCLE == detailP.Key.ASSESSMENT_CYCLE && t.USER_ID == detailP.Key.USER_ID).ToList();
if (details != null && details.Any())
{
foreach (var detailR in details)
{
T_PE_SAFETY_MONITOR_RECORD_DETAIL detail = new T_PE_SAFETY_MONITOR_RECORD_DETAIL();
detail.ORG_ID = monitorRecord.ORG_ID;
detail.SAFETY_MONITOR_RECORD_ID = monitorRecord.ID;
detail.PROJECT_ID = detailR.PROJECT_ID;
detail.CONTENTS = detailR.CONTENTS;
detail.STANDARD = detailR.STANDARD;
detail.METHOD = detailR.METHOD;
detail.RESULT_DISCUSS = PTResultDiscussEnums.Unfinished;
monitorRecordDetails.Add(detail);
}
}
var sendNotice = NotificationTaskService.InsertUserNoticeTaskModel("安全绩效监测记录表-" + detailP.Key.ASSESSMENT_CYCLE.GetDescription(), monitorRecord.ID, filter.GetOrgId(), userInfo.ID, userInfo.NAME, DateTime.Now, DateTime.Now.AddDays(30), (int)FMNoticeTypeEnum., "PE021");
sendNotices.Add(sendNotice);
}
}
UnifiedCommit(() =>
{
if (monitorPlanList != null && monitorPlanList.Any())
this.BantchUpdateEntityNoCommit(monitorPlanList);
if (monitorRecords != null && monitorRecords.Any())
this.BantchSaveEntityNoCommit(monitorRecords);
if (monitorRecordDetails != null && monitorRecordDetails.Any())
this.BantchSaveEntityNoCommit(monitorRecordDetails);
if (sendNotices != null && sendNotices.Any())
this.BantchSaveEntityNoCommit(sendNotices);
});
}
catch (Exception ex)
{
if (!string.IsNullOrEmpty(ex.StackTrace))
throw new Exception("错误日志:[StackTrace]" + ex.StackTrace);
else
throw new Exception("【" + HttpContext.Request.Path + "】错误日志:[Message]" + ex.Message);
}
return true;
});
}
/// <summary>
/// 触发安全评价计划讨论会(今日提醒)
/// </summary>
/// <returns></returns>
[HttpPost, Route("SafetyEvaluationPlanSync")]
public JsonActionResult<bool> SafetyEvaluationPlanSync([FromBody] KeywordFilter filter)
{
return SafeExecute<bool>(() =>
{
try
{
var dtNow = DateTime.Now;
var month = dtNow.Month;
var day = dtNow.Day;
var time = dtNow.TimeOfDay;
var week = dtNow.DayOfWeek;
T_FM_NOTIFICATION_TASK sendNotice = null;
bool isSend = false;
var userInfo = this.GetEntity<T_FM_USER>(t => t.Nav_ApproveRole != null && t.Nav_ApproveRole.NAME == "安环部负责人" && t.ENABLE_STATUS == 0);
if (userInfo == null && filter.OrgId.ToString() == "3efd5276-632b-e379-9ff3-7a7546591fca")
{
userInfo = this.GetEntity<T_FM_USER>(t => t.Nav_ApproveRole != null && t.Nav_ApproveRole.NAME == "安环部安全员" && t.ENABLE_STATUS == 0);
}
if (userInfo != null)
{
var newFilter = new BaseFilter(filter.OrgId);
newFilter.SelectField = new List<string> { "PLANCHECKFREQUENCY", "MONTH", "DATA", "WEEKDATA" };
var timeSet = GetEntity<T_PT_TIME_SET>(i => i.SET_TYPE == PTSetTypeEnum.SafetyPlanMeetting, newFilter);
if (timeSet != null)
{
switch (timeSet.PLANCHECKFREQUENCY)
{
//case BSPLANCHECKFREQUENCYEnum.OneTime:
case BSPLANCHECKFREQUENCYEnum.Year:
if (timeSet.MONTH == month && timeSet.DATA == day)
{
isSend = true;
}
break;
case BSPLANCHECKFREQUENCYEnum.HalfYear:
if ((timeSet.MONTH == month && timeSet.DATA == day) || (timeSet.MONTH + 6 == month && timeSet.DATA + 183 == day))
{
isSend = true;
}
break;
case BSPLANCHECKFREQUENCYEnum.Date:
isSend = true;
break;
case BSPLANCHECKFREQUENCYEnum.Week:
if (timeSet.WEEKDATA != null && (int)timeSet.WEEKDATA.Value == (int)week)
isSend = true;
break;
case BSPLANCHECKFREQUENCYEnum.Month:
if (timeSet.DATA == day)
{
isSend = true;
//if (month == 1)
// year = year - 1;
}
break;
case BSPLANCHECKFREQUENCYEnum.Quarter:
if (timeSet.MONTH == 1)
{
if ((month == 1 || month == 4 || month == 7 || month == 10) && timeSet.DATA == day)
isSend = true;
}
if (timeSet.MONTH == 2)
{
if ((month == 2 || month == 5 || month == 8 || month == 11) && timeSet.DATA == day)
isSend = true;
}
if (timeSet.MONTH == 3)
{
if ((month == 3 || month == 6 || month == 9 || month == 12) && timeSet.DATA == day)
isSend = true;
}
//if ((month == 1 && day == timeSet.DATA) || (month == 4 && day == timeSet.DATA) || (month == 7 && day == timeSet.DATA) || (month == 10 && day == timeSet.DATA))
//{
// isSend = true;
// if (month == 1 && day == timeSet.DATA)
// year = year - 1;
//}
break;
default:
break;
}
}
}
if (isSend)
sendNotice = NotificationTaskService.InsertUserNoticeTaskModel("请召开安全标准化内部评价计划讨论会。", Guid.NewGuid(), filter.GetOrgId(), userInfo.ID, userInfo.NAME, DateTime.Now, DateTime.Now.AddDays(30), (int)FMNoticeTypeEnum., "PF135");
UnifiedCommit(() =>
{
if (sendNotice != null)
UpdateEntityNoCommit(sendNotice);
});
}
catch (Exception ex)
{
if (!string.IsNullOrEmpty(ex.StackTrace))
throw new Exception("错误日志:[StackTrace]" + ex.StackTrace);
else
throw new Exception("【" + HttpContext.Request.Path + "】错误日志:[Message]" + ex.Message);
}
return true;
});
}
/// <summary>
/// 触发安全标准化内部评价记录表
/// </summary>
/// <param name="filter"></param>
[HttpPost, Route("SafetyEvaluationRecordSync")]
public JsonActionResult<bool> SafetyEvaluationRecordSync([FromBody] KeywordFilter filter)
{
return SafeExecute<bool>(() =>
{
try
{
var dtNow = DateTime.Now;
var year = dtNow.Year;
var month = dtNow.Month;
var day = dtNow.Day;
var time = dtNow.TimeOfDay;
var week = dtNow.DayOfWeek;
var newFilter = new BaseFilter(filter.OrgId);
var evaluationPlan = this.GetEntities<T_PE_SAFETY_EVALUATION_PLAN>(t => t.START_TIME.Value.Year == year && t.START_TIME.Value.Month == month && t.START_TIME.Value.Day == day && t.IS_RUN == DisableStatusEnum. && t.STATUS == PFStandardStatus.Archived, new BaseFilter(filter.OrgId), "Nav_Details", "Nav_Details.Nav_EvaluationUser").ToList();
if (evaluationPlan.Count < 1)
return true;
List<T_PE_SAFETY_EVALUATION_RECORD> recordList = new List<T_PE_SAFETY_EVALUATION_RECORD>();
List<T_PE_SAFETY_EVALUATION_RECORD_DETAIL> recordDetailList = new List<T_PE_SAFETY_EVALUATION_RECORD_DETAIL>();
List<T_PE_SAFETY_EVALUATION_RECORD_USER> recordUserList = new List<T_PE_SAFETY_EVALUATION_RECORD_USER>();
List<T_FM_NOTIFICATION_TASK> notices = new List<T_FM_NOTIFICATION_TASK>();
newFilter.SelectField = new List<string> { "ID", "NAME" };
var userList = this.GetEntities<T_FM_USER>(t => !t.IS_DELETED && t.ENABLE_STATUS == 0, newFilter).ToList();
foreach (var item in evaluationPlan)
{
item.IS_RUN = DisableStatusEnum.;
if (item.Nav_Details != null && item.Nav_Details.Any())
{
List<Guid> userIds = new List<Guid>();
List<string> userNames = new List<string>();
T_PE_SAFETY_EVALUATION_RECORD record = new T_PE_SAFETY_EVALUATION_RECORD();
record.ORG_ID = filter.OrgId;
record.EVALUATION_PLAN_ID = item.ID;
record.STATUS = PFStandardStatus.Draft;
recordList.Add(record);
var group = 1;
var standardizedIds = item.Nav_Details.Select(t => t.STANDARDIZED_ID).Distinct().ToList();
var standardized = this.GetEntities<T_PE_STANDARDIZED_SCORE_IMPORT_DETAIL>(t => standardizedIds.Contains(t.PRIMARY_ELEMENTS_ID), new BaseFilter(filter.OrgId));
foreach (var itemDetail in item.Nav_Details)
{
var evaluationItem = standardized.Where(t => t.PRIMARY_ELEMENTS_ID == itemDetail.STANDARDIZED_ID).ToList();
if (evaluationItem != null && evaluationItem.Any())
{
evaluationItem.ForEach(t =>
{
T_PE_SAFETY_EVALUATION_RECORD_DETAIL detail = new T_PE_SAFETY_EVALUATION_RECORD_DETAIL();
detail.ORG_ID = t.ORG_ID;
detail.PRODUCTION_UNIT_ID = item.PRODUCTION_UNIT_ID;
detail.SAFETY_EVALUATION_RECORD_ID = record.ID;
detail.PRIMARY_ELEMENTS_ID = t.PRIMARY_ELEMENTS_ID;
detail.SECOND_ELEMENTS_ID = t.SECOND_ELEMENTS_ID;
detail.THREE_ELEMENTS_ID = t.THREE_ELEMENTS_ID;
detail.EVALUATION_ITEM = t.EVALUATION_ITEM;
detail.CONTENTS = t.CONTENTS;
detail.STANDARDIZED_SCORE = t.STANDARDIZED_SCORE;
detail.NON_STANDARDIZED_SCORE = t.NON_STANDARDIZED_SCORE;
detail.EVALUATION_RESULT = PEEvaluationResultEnum.Conform;
detail.NUM = t.NUM;
recordDetailList.Add(detail);
});
}
if (itemDetail.Nav_EvaluationUser != null && itemDetail.Nav_EvaluationUser.Any())
{
foreach (var userDetail in itemDetail.Nav_EvaluationUser)
{
T_PE_SAFETY_EVALUATION_RECORD_USER user = new T_PE_SAFETY_EVALUATION_RECORD_USER();
user.SAFETY_EVALUATION_RECORD_ID = record.ID;
user.ORG_ID = filter.OrgId;
user.USER_ID = userDetail.USER_ID;
user.DEAL_STATUS = FOUserShiftStatusEnum.;
user.GROUP_NO = group;
user.ROW_NO = userDetail.ROW_NO;
recordUserList.Add(user);
if (userDetail.ROW_NO == 1)
userIds.Add(userDetail.USER_ID.Value);
}
}
group++;
}
userIds = userIds.Distinct().ToList();
if (userIds != null && userIds.Any())
{
foreach (var user in userIds)
{
var userName = userList.FirstOrDefault(t => t.ID == user);
userNames.Add(userName?.NAME);
}
//发消息
var notice = NotificationTaskService.InsertUserNoticeTaskModels("安全标准化内部评价记录表", record.ID, filter.OrgId, userIds, userNames, DateTime.Now,
DateTime.Now.AddHours(24), (int)FMNoticeTypeEnum., "PE029");
notices.AddRange(notice);
}
}
}
if (notices != null && notices.Any())
{
//recordUserList = recordUserList.Distinct(t => new { t.SAFETY_EVALUATION_RECORD_ID, t.USER_ID }).ToList();
}
else
{
recordList = null;
recordDetailList = null;
recordUserList = null;
}
UnifiedCommit(() =>
{
if (evaluationPlan != null && evaluationPlan.Any())
BantchSaveEntityNoCommit(evaluationPlan);
if (recordList != null && recordList.Any())
BantchSaveEntityNoCommit(recordList);
if (recordDetailList != null && recordDetailList.Any())
BantchAddEntityNoCommit(recordDetailList);
if (recordUserList != null && recordUserList.Any())
BantchAddEntityNoCommit(recordUserList);
if (notices != null && notices.Any())
BantchAddEntityNoCommit(notices);
});
}
catch (Exception ex)
{
if (!string.IsNullOrEmpty(ex.StackTrace))
throw new Exception("错误日志:[StackTrace]" + ex.StackTrace);
else
throw new Exception("【" + HttpContext.Request.Path + "】错误日志:[Message]" + ex.Message);
}
return true;
});
}
/// <summary>
/// 同步考评项目导入子表到考评类目评分子表
/// </summary>
/// <param name="filter"></param>
[HttpPost, Route("StandardizedScoreSync")]
public JsonActionResult<bool> StandardizedScoreSync([FromBody] KeywordFilter filter)
{
return SafeExecute<bool>(() =>
{
try
{
List<T_PE_STANDARDIZED_SCORE_IMPORT_ITEM> standardScoreItems = new List<T_PE_STANDARDIZED_SCORE_IMPORT_ITEM>();
var standardScore = this.GetEntities<T_PE_STANDARDIZED_SCORE_IMPORT_DETAIL>(t => true, new BaseFilter(filter.OrgId)).ToList();
if (standardScore != null && standardScore.Any())
{
foreach (var item in standardScore)
{
T_PE_STANDARDIZED_SCORE_IMPORT_ITEM score = new T_PE_STANDARDIZED_SCORE_IMPORT_ITEM();
score.ORG_ID = item.ORG_ID;
score.NUM = item.NUM;
score.CONTENTS = item.CONTENTS;
score.STANDARDIZED_SCORE = item.STANDARDIZED_SCORE;
score.NON_STANDARDIZED_SCORE = item.NON_STANDARDIZED_SCORE;
score.EVALUATION_ITEM = item.EVALUATION_ITEM;
score.STANDARDIZED_SCORE_IMPORT_ID = item.THREE_ELEMENTS_ID != null ? item.THREE_ELEMENTS_ID : (item.SECOND_ELEMENTS_ID != null ? item.SECOND_ELEMENTS_ID : (item.PRIMARY_ELEMENTS_ID != null ? item.PRIMARY_ELEMENTS_ID : item.PRODUCTION_UNIT_ID));
standardScoreItems.Add(score);
}
}
UnifiedCommit(() =>
{
if (standardScoreItems != null && standardScoreItems.Any())
BantchSaveEntityNoCommit(standardScoreItems);
});
}
catch (Exception ex)
{
if (!string.IsNullOrEmpty(ex.StackTrace))
throw new Exception("错误日志:[StackTrace]" + ex.StackTrace);
else
throw new Exception("【" + HttpContext.Request.Path + "】错误日志:[Message]" + ex.Message);
}
return true;
});
}
/// <summary>
/// 触发安全标准化内部评价记录表
/// </summary>
/// <param name="filter"></param>
[HttpPost, Route("SafetyEvaluationRecordNewSync")]
public JsonActionResult<bool> SafetyEvaluationRecordNewSync([FromBody] KeywordFilter filter)
{
return SafeExecute<bool>(() =>
{
try
{
var dtNow = DateTime.Now;
var year = dtNow.Year;
var month = dtNow.Month;
var day = dtNow.Day;
var hour = dtNow.Hour;
var newFilter = new BaseFilter(filter.OrgId);
var evaluationPlan = this.GetEntities<T_PE_SAFETY_EVALUATION_PLAN>(t => t.START_TIME.Value.Year == year && t.START_TIME.Value.Month == month && t.START_TIME.Value.Day == day && t.START_TIME.Value.Hour == hour && t.IS_RUN == DisableStatusEnum. && t.STATUS == PFStandardStatus.Archived, new BaseFilter(filter.OrgId), "Nav_Details.Nav_EvaluationMethod", "Nav_Details.Nav_EvaluationUser").ToList();
if (evaluationPlan.Count < 1)
return true;
List<T_PE_SAFETY_EVALUATION_RECORD> recordList = new List<T_PE_SAFETY_EVALUATION_RECORD>();
List<T_PE_SAFETY_EVALUATION_RECORD_DETAIL> recordDetailList = new List<T_PE_SAFETY_EVALUATION_RECORD_DETAIL>();
List<T_PE_SAFETY_EVALUATION_RECORD_USER> recordUserList = new List<T_PE_SAFETY_EVALUATION_RECORD_USER>();
List<T_PE_SAFETY_EVALUATION_RECORD_METHOD> recordMethodList = new List<T_PE_SAFETY_EVALUATION_RECORD_METHOD>();
List<T_FM_NOTIFICATION_TASK> notices = new List<T_FM_NOTIFICATION_TASK>();
newFilter.SelectField = new List<string> { "ID", "NAME" };
var userList = this.GetEntities<T_FM_USER>(t => !t.IS_DELETED && t.ENABLE_STATUS == 0, newFilter).ToList();
foreach (var item in evaluationPlan)
{
item.IS_RUN = DisableStatusEnum.;
if (item.Nav_Details != null && item.Nav_Details.Any())
{
List<Guid> userIds = new List<Guid>();
List<string> userNames = new List<string>();
var standardizedIds = item.Nav_Details.Select(t => t.STANDARDIZED_ID).Distinct().ToList();
var standardized = this.GetEntities<T_PE_STANDARDIZED_SCORE_IMPORT_DETAIL>(t => standardizedIds.Contains(t.PRIMARY_ELEMENTS_ID), new BaseFilter(filter.OrgId));
var group = 1;
foreach (var itemDetail in item.Nav_Details)
{
var firstDetail = item.Nav_Details.FirstOrDefault(t => t.ID == itemDetail.ID);
T_PE_SAFETY_EVALUATION_RECORD record = new T_PE_SAFETY_EVALUATION_RECORD();
record.ORG_ID = filter.OrgId;
record.EVALUATION_PLAN_ID = item.ID;
record.EVALUATION_PLAN_DETAIL_ID = itemDetail.ID;
record.STATUS = PFStandardStatus.Draft;
recordList.Add(record);
var evaluationItem = standardized.Where(t => t.PRIMARY_ELEMENTS_ID == itemDetail.STANDARDIZED_ID).ToList();
if (evaluationItem != null && evaluationItem.Any())
{
evaluationItem.ForEach(t =>
{
T_PE_SAFETY_EVALUATION_RECORD_DETAIL detail = new T_PE_SAFETY_EVALUATION_RECORD_DETAIL();
detail.ORG_ID = t.ORG_ID;
detail.PRODUCTION_UNIT_ID = item.PRODUCTION_UNIT_ID;
detail.SAFETY_EVALUATION_RECORD_ID = record.ID;
detail.PRIMARY_ELEMENTS_ID = t.PRIMARY_ELEMENTS_ID;
detail.SECOND_ELEMENTS_ID = t.SECOND_ELEMENTS_ID;
detail.THREE_ELEMENTS_ID = t.THREE_ELEMENTS_ID;
detail.EVALUATION_ITEM = t.EVALUATION_ITEM;
detail.CONTENTS = t.CONTENTS;
detail.STANDARDIZED_SCORE = t.STANDARDIZED_SCORE > 0 ? t.STANDARDIZED_SCORE : t.NON_STANDARDIZED_SCORE;
detail.NON_STANDARDIZED_SCORE = t.NON_STANDARDIZED_SCORE;
detail.RESULT_SCORE = t.STANDARDIZED_SCORE > 0 ? t.STANDARDIZED_SCORE : t.NON_STANDARDIZED_SCORE;
detail.EVALUATION_RESULT = PEEvaluationResultEnum.Conform;
detail.NUM = t.NUM;
detail.DESCRIPTION = t.DESCRIPTION;
recordDetailList.Add(detail);
if (firstDetail != null && firstDetail.Nav_EvaluationMethod != null && firstDetail.Nav_EvaluationMethod.Any())
{
firstDetail.Nav_EvaluationMethod.ForEach(t2 =>
{
T_PE_SAFETY_EVALUATION_RECORD_METHOD method = new T_PE_SAFETY_EVALUATION_RECORD_METHOD();
method.ORG_ID = detail.ORG_ID; method.SAFETY_EVALUATION_RECORD_DETAIL_ID = detail.ID;
method.METHOD_ID = t2.METHOD_ID;
recordMethodList.Add(method);
});
}
});
}
if (itemDetail.Nav_EvaluationUser != null && itemDetail.Nav_EvaluationUser.Any())
{
foreach (var userDetail in itemDetail.Nav_EvaluationUser)
{
T_PE_SAFETY_EVALUATION_RECORD_USER user = new T_PE_SAFETY_EVALUATION_RECORD_USER();
user.SAFETY_EVALUATION_RECORD_ID = record.ID;
user.ORG_ID = filter.OrgId;
user.USER_ID = userDetail.USER_ID;
user.DEAL_STATUS = FOUserShiftStatusEnum.;
user.GROUP_NO = group;
user.ROW_NO = userDetail.ROW_NO;
recordUserList.Add(user);
if (userDetail.ROW_NO == 1 && userDetail.USER_ID.HasValue)
{
//userIds.Add(userDetail.USER_ID.Value);
var userName = userList.FirstOrDefault(t => t.ID == userDetail.USER_ID.Value)?.NAME;
var notice = NotificationTaskService.InsertUserNoticeTaskModel("安全标准化内部评价记录表", record.ID, filter.OrgId, userDetail.USER_ID.Value, userName, item.START_TIME.Value,
item.END_TIME.Value, (int)FMNoticeTypeEnum., "PE029");
notices.Add(notice);
}
}
}
group++;
}
//userIds = userIds.Distinct().ToList();
//if (userIds != null && userIds.Any())
//{
// foreach (var user in userIds)
// {
// var userName = userList.FirstOrDefault(t => t.ID == user);
// userNames.Add(userName?.NAME);
// }
// //发消息
// var notice = NotificationTaskService.InsertUserNoticeTaskModels("安全标准化内部评价记录表", record.ID, filter.OrgId, userIds, userNames, DateTime.Now,
// DateTime.Now.AddHours(24), (int)FMNoticeTypeEnum.消息, "PE029");
// notices.AddRange(notice);
//}
}
}
if (notices != null && notices.Any())
{
//recordUserList = recordUserList.Distinct(t => new { t.SAFETY_EVALUATION_RECORD_ID, t.USER_ID }).ToList();
}
else
{
recordList = null;
recordDetailList = null;
recordUserList = null;
recordMethodList = null;
}
UnifiedCommit(() =>
{
if (evaluationPlan != null && evaluationPlan.Any())
BantchSaveEntityNoCommit(evaluationPlan);
if (recordList != null && recordList.Any())
BantchSaveEntityNoCommit(recordList);
if (recordDetailList != null && recordDetailList.Any())
BantchAddEntityNoCommit(recordDetailList);
if (recordUserList != null && recordUserList.Any())
BantchAddEntityNoCommit(recordUserList);
if (recordMethodList != null && recordMethodList.Any())
BantchAddEntityNoCommit(recordMethodList);
if (notices != null && notices.Any())
BantchAddEntityNoCommit(notices);
});
}
catch (Exception ex)
{
if (!string.IsNullOrEmpty(ex.StackTrace))
throw new Exception("错误日志:[StackTrace]" + ex.StackTrace);
else
throw new Exception("【" + HttpContext.Request.Path + "】错误日志:[Message]" + ex.Message);
}
return true;
});
}
/// <summary>
/// 触发安全标准化内部评价计划表
/// </summary>
/// <returns></returns>
[HttpPost, Route("SafetyEvaluationRecordPlanSync")]
public JsonActionResult<bool> SafetyEvaluationRecordPlanSync([FromBody] KeywordFilter filter)
{
return SafeExecute<bool>(() =>
{
try
{
var dtNow = DateTime.Now;
var year = dtNow.Year;
var month = dtNow.Month;
var day = dtNow.Day;
var time = dtNow.TimeOfDay;
var week = dtNow.DayOfWeek;
List<T_FM_NOTIFICATION_TASK> sendNotices = new List<T_FM_NOTIFICATION_TASK>();
List<T_PE_SAFETY_EVALUATION_PLAN> monitorPlans = new List<T_PE_SAFETY_EVALUATION_PLAN>();
var newFilter = new BaseFilter(filter.OrgId);
newFilter.SelectField = new List<string> { "ID", "NAME" };
var userInfo = this.GetEntity<T_FM_USER>(t => t.Nav_ApproveRole != null && t.Nav_ApproveRole.NAME == "安环部负责人" && t.ENABLE_STATUS == 0, newFilter);
if (userInfo == null && filter.OrgId.ToString() == "3efd5276-632b-e379-9ff3-7a7546591fca")
{
userInfo = this.GetEntity<T_FM_USER>(t => t.Nav_ApproveRole != null && t.Nav_ApproveRole.NAME == "安环部安全员" && t.ENABLE_STATUS == 0);
}
if (userInfo != null)
{
bool isSend = false;
newFilter.SelectField = new List<string> { "PLANCHECKFREQUENCY", "MONTH", "DATA", "WEEKDATA" };
var timeSet = GetEntity<T_PT_TIME_SET>(i => i.SET_TYPE == PTSetTypeEnum.SafetyEvaluationPlan && i.ENABLE_STATUS == 0, newFilter);
if (timeSet != null)
{
switch (timeSet.PLANCHECKFREQUENCY)
{
//case BSPLANCHECKFREQUENCYEnum.OneTime:
case BSPLANCHECKFREQUENCYEnum.Year:
if (timeSet.MONTH == month && timeSet.DATA == day)
{
isSend = true;
}
break;
case BSPLANCHECKFREQUENCYEnum.HalfYear:
if ((timeSet.MONTH == month && timeSet.DATA == day) || ((timeSet.MONTH + 6) == month && (timeSet.DATA + 183) == day))
{
isSend = true;
}
break;
case BSPLANCHECKFREQUENCYEnum.Date:
isSend = true;
break;
case BSPLANCHECKFREQUENCYEnum.Week:
if (timeSet.WEEKDATA != null && (int)timeSet.WEEKDATA.Value == (int)week)
isSend = true;
break;
case BSPLANCHECKFREQUENCYEnum.Month:
if (timeSet.DATA == day)
{
isSend = true;
//if (month == 1)
// year = year - 1;
}
break;
case BSPLANCHECKFREQUENCYEnum.Quarter:
if (timeSet.MONTH == 1)
{
if ((month == 1 || month == 4 || month == 7 || month == 10) && timeSet.DATA == day)
isSend = true;
}
if (timeSet.MONTH == 2)
{
if ((month == 2 || month == 5 || month == 8 || month == 11) && timeSet.DATA == day)
isSend = true;
}
if (timeSet.MONTH == 3)
{
if ((month == 3 || month == 6 || month == 9 || month == 12) && timeSet.DATA == day)
isSend = true;
}
//if ((month == 1 && day == timeSet.DATA) || (month == 4 && day == timeSet.DATA) || (month == 7 && day == timeSet.DATA) || (month == 10 && day == timeSet.DATA))
//{
// isSend = true;
// if (month == 1 && day == timeSet.DATA)
// year = year - 1;
//}
break;
default:
break;
}
}
if (isSend)
{
if (!string.IsNullOrEmpty(filter.Parameter1))
{
if (DateTime.Now.Hour.ToString() == filter.Parameter1)
isSend = true;
else
isSend = false;
}
//newFilter.SelectField = new List<string> { "ID", "NAME" };
//var productUnit = this.GetEntities<T_PE_STANDARDIZED_SCORE_IMPORT>(t => t.PARENT_ID == null, newFilter).Distinct().ToList();
//if (productUnit != null && productUnit.Any())
//{
// foreach (var item in productUnit)
// {
// }
//}
var safe = this.GetEntity<T_PE_SAFETY_EVALUATION_PLAN>(t => t.CREATE_TIME.Value.Date == DateTime.Now.Date);
if (safe == null)
{
T_PE_SAFETY_EVALUATION_PLAN monitorPlan = new T_PE_SAFETY_EVALUATION_PLAN();
monitorPlan.ORG_ID = filter.GetOrgId();
monitorPlan.PRODUCTION_UNIT_ID = null;
monitorPlan.DEPARTMENT_ID = userInfo.DEPARTMENT_ID;
monitorPlan.STATUS = PFStandardStatus.Draft;
monitorPlan.YEAR = year.ToString();
monitorPlan.IS_RUN = DisableStatusEnum.;
monitorPlans.Add(monitorPlan);
T_FM_NOTIFICATION_TASK sendNotice = NotificationTaskService.InsertUserNoticeTaskModel("安全标准化内部评价计划表", monitorPlan.ID, filter.GetOrgId(), userInfo.ID, userInfo.NAME, DateTime.Now, DateTime.Now.AddDays(30), (int)FMNoticeTypeEnum., "PE027");
sendNotices.Add(sendNotice);
}
}
}
UnifiedCommit(() =>
{
if (monitorPlans != null && monitorPlans.Any())
this.BantchSaveEntityNoCommit(monitorPlans);
if (sendNotices != null && sendNotices.Any())
this.BantchSaveEntityNoCommit(sendNotices);
});
}
catch (Exception ex)
{
if (!string.IsNullOrEmpty(ex.StackTrace))
throw new Exception("错误日志:[StackTrace]" + ex.StackTrace);
else
throw new Exception("【" + HttpContext.Request.Path + "】错误日志:[Message]" + ex.Message);
}
return true;
});
}
/// <summary>
/// 同步考评类目评分主表到考评项目明细表
/// </summary>
/// <param name="filter"></param>
[HttpPost, Route("StandardizedScoreDetailSync")]
public JsonActionResult<bool> StandardizedScoreDetailSync([FromBody] KeywordFilter filter)
{
return SafeExecute<bool>(() =>
{
try
{
List<T_PE_STANDARDIZED_SCORE_IMPORT_DETAIL> standardScoreDetails = new List<T_PE_STANDARDIZED_SCORE_IMPORT_DETAIL>();
var standardScore = this.GetEntity<T_PE_STANDARDIZED_SCORE_IMPORT>(t => t.CODE == "WK");
var standardScores = this.GetEntities<T_PE_STANDARDIZED_SCORE_IMPORT>(t => t.CODE.Contains("WK0"), new BaseFilter(filter.OrgId));
var standardIds = standardScores.Select(t => t.ID);
var standardScoreItems = this.GetEntities<T_PE_STANDARDIZED_SCORE_IMPORT_ITEM>(t => standardIds.Contains((Guid)t.STANDARDIZED_SCORE_IMPORT_ID), new BaseFilter(filter.OrgId));
if (standardScores != null && standardScores.Any())
{
foreach (var item in standardScores)
{
var itemDetails = standardScoreItems.Where(t => t.STANDARDIZED_SCORE_IMPORT_ID == item.ID).ToList();
if (itemDetails != null && itemDetails.Any())
{
foreach (var itemDetail in itemDetails)
{
T_PE_STANDARDIZED_SCORE_IMPORT_DETAIL score = new T_PE_STANDARDIZED_SCORE_IMPORT_DETAIL();
score.ORG_ID = itemDetail.ORG_ID;
score.NUM = itemDetail.NUM;
score.CONTENTS = itemDetail.CONTENTS;
score.STANDARDIZED_SCORE = itemDetail.STANDARDIZED_SCORE;
score.NON_STANDARDIZED_SCORE = itemDetail.NON_STANDARDIZED_SCORE;
score.EVALUATION_ITEM = itemDetail.EVALUATION_ITEM;
score.GROUP_NO = itemDetail.GROUP_NO;
score.DESCRIPTION = itemDetail.DESCRIPTION;
score.PRODUCTION_UNIT_ID = standardScore.ID;
var standSecond = standardScores.FirstOrDefault(t => t.ID == itemDetail.STANDARDIZED_SCORE_IMPORT_ID);
if (standSecond != null && standSecond.PARENT_ID != null)
{
if (standSecond.PARENT_ID == standardScore.ID)
{
score.PRIMARY_ELEMENTS_ID = itemDetail.STANDARDIZED_SCORE_IMPORT_ID;
}
else
{
var standPrimary = standardScores.FirstOrDefault(t => t.ID == standSecond.PARENT_ID);
if (standPrimary != null && standPrimary.PARENT_ID != null)
{
if (standPrimary.PARENT_ID == standardScore.ID)
{
score.PRIMARY_ELEMENTS_ID = standPrimary.ID;
score.SECOND_ELEMENTS_ID = itemDetail.STANDARDIZED_SCORE_IMPORT_ID;
}
else
{
var standThree = standardScores.FirstOrDefault(t => t.ID == standPrimary.PARENT_ID);
if (standThree != null && standThree.PARENT_ID != null)
{
if (standThree.PARENT_ID == standardScore.ID)
{
score.PRIMARY_ELEMENTS_ID = standThree.ID;
score.SECOND_ELEMENTS_ID = standPrimary.ID;
score.THREE_ELEMENTS_ID = itemDetail.STANDARDIZED_SCORE_IMPORT_ID;
}
}
}
}
}
}
standardScoreDetails.Add(score);
}
}
}
}
UnifiedCommit(() =>
{
if (standardScoreDetails != null && standardScoreDetails.Any())
BantchSaveEntityNoCommit(standardScoreDetails);
});
}
catch (Exception ex)
{
if (!string.IsNullOrEmpty(ex.StackTrace))
throw new Exception("错误日志:[StackTrace]" + ex.StackTrace);
else
throw new Exception("【" + HttpContext.Request.Path + "】错误日志:[Message]" + ex.Message);
}
return true;
});
}
/// <summary>
/// 自动化得分-目标指标模块
/// </summary>
/// <param name="filter"></param>
/// <returns></returns>
public JsonActionResult<bool> PTSync([FromBody] KeywordFilter filter)
{
return SafeExecute<bool>(() =>
{
try
{
List<T_PE_STANDARDIZED_SCORE_AUTO_DETAIL> autoDetails = new List<T_PE_STANDARDIZED_SCORE_AUTO_DETAIL>();
var meeting = this.GetEntity<T_SC_MT_MEETING>(t => t.THEME.Contains("安全生产方针制定、传达、评审与修订"));
var autoAll = this.GetEntities<T_PE_STANDARDIZED_SCORE_AUTO_DETAIL>(null,new BaseFilter(filter.OrgId));
var auto = autoAll.FirstOrDefault(t => t.CONTENTS.Contains("是否建立了针对安全生产方针制定、传达、评审与修订等环节的安全生产方针管理制度?") && t.PRODUCTION_UNIT == "露天矿");
if (auto != null)
{
auto.RESULT_SCORE = meeting == null ? "0" : "3";
autoDetails.Add(auto);
}
var auto2 = autoAll.FirstOrDefault(t => t.CONTENTS.Contains("制度是否指定了相应的责任部门和责任人员并规定了相应职责?") && t.PRODUCTION_UNIT == "露天矿");
if (auto2 != null)
{
auto2.RESULT_SCORE = meeting == null ? "0" : "2";
autoDetails.Add(auto2);
}
var meeting3 = this.GetEntity<T_SC_MT_MEETING>(t => t.THEME.Contains("安全生产方针文件审核表"));
var auto3 = autoAll.FirstOrDefault(t => t.CONTENTS.Contains("是否有由最高管理者签发的文件化的安全生产方针?") && t.PRODUCTION_UNIT == "露天矿");
if (auto3 != null)
{
auto3.RESULT_SCORE = meeting3 == null ? "0" : "4";
autoDetails.Add(auto3);
}
var auto4 = autoAll.FirstOrDefault(t => t.CONTENTS.Contains("安全生产方针的制定是否有员工参与?") && t.PRODUCTION_UNIT == "露天矿");
var auto5 = autoAll.FirstOrDefault(t => t.CONTENTS.Contains("安全生产方针是否已传达至全体员工?") && t.PRODUCTION_UNIT == "露天矿");
var auto6 = autoAll.FirstOrDefault(t => t.CONTENTS.Contains("安全生产方针是否体现:遵守法律法规与其他要求;持续改进?") && t.PRODUCTION_UNIT == "露天矿");
var resultScore4 = 0; var resultScore5 = 0; var resultScore6 = 0;
var safePolicy = this.GetEntity<T_PT_SAFETY_POLICY_SURVEY>(t => t.YEAR == DateTime.Now.Year.ToString());
if (safePolicy != null)
{
var userCount = this.GetCount<T_FM_USER>(t => t.ENABLE_STATUS == 0, new BaseFilter(filter.OrgId));
var taskCount = this.GetCount<T_FM_NOTIFICATION_TASK>(t => t.SOURCE_DATA_ID == safePolicy.ID, new BaseFilter(filter.OrgId));
if (userCount == taskCount)
{
resultScore4 = 3;
resultScore5 = 3;
}
var safeCollects = this.GetEntities<T_PT_SAFETY_POLICY_SURVEY_COLLECT>(t => t.SAFETY_POLICY_ID == safePolicy.ID, new BaseFilter(filter.OrgId), "Nav_Collect");
if (safeCollects != null && safeCollects.Any())
{
var safeCollect = safeCollects.FirstOrDefault(t => t.Nav_Collect != null && t.Nav_Collect.NAME.Contains("考虑法律法规与其他要求"));
var safeCollect2 = safeCollects.FirstOrDefault(t => t.Nav_Collect != null && t.Nav_Collect.NAME.Contains("持续改进"));
if (safeCollect != null && safeCollect2 != null)
{
resultScore6 = 8;
}
else if (safeCollect != null || safeCollect2 != null)
{
resultScore6 = 4;
}
}
}
if (auto4 != null)
{
auto4.RESULT_SCORE = resultScore4.ToString();
autoDetails.Add(auto4);
}
if (auto5 != null)
{
auto5.RESULT_SCORE = resultScore5.ToString();
autoDetails.Add(auto5);
}
if (auto6 != null)
{
auto6.RESULT_SCORE = resultScore6.ToString();
autoDetails.Add(auto6);
}
var auto7 = autoAll.FirstOrDefault(t => t.CONTENTS.Contains("是否有安全生产目标与指标设立、完成情况评价的管理制度?") && t.PRODUCTION_UNIT == "露天矿");
var meeting4 = this.GetEntity<T_SC_MT_MEETING>(t => t.THEME.Contains("方针及目标与指标考核"));
if (auto7 != null)
{
auto7.RESULT_SCORE = meeting4 == null ? "0" : "2";
autoDetails.Add(auto7);
}
var auto8 = autoAll.FirstOrDefault(t => t.CONTENTS.Contains("是否明确了安全生产目标和指标完成情况评价的责任部门、责任人员及评价方法?") && t.PRODUCTION_UNIT == "露天矿");
var meeting5 = this.GetEntity<T_SC_MT_MEETING>(t => t.THEME.Contains("目标与指标设立和考核办法"));
if (auto8 != null)
{
auto8.RESULT_SCORE = meeting5 == null ? "0" : "3";
autoDetails.Add(auto8);
}
var auto9 = autoAll.FirstOrDefault(t => t.CONTENTS.Contains("是否设立了文件化的年度安全生产目标与指标?") && t.PRODUCTION_UNIT == "露天矿");
var auto10 = autoAll.FirstOrDefault(t => t.CONTENTS.Contains("是否为安全生产目标与指标的实现提供了下列资源:人力资源;财力资源;物力资源;技术资源?") && t.PRODUCTION_UNIT == "露天矿");
var auto11 = autoAll.FirstOrDefault(t => t.CONTENTS.Contains("是否制定了实现安全生产目标和指标的实施计划?") && t.PRODUCTION_UNIT == "露天矿");
var auto12 = autoAll.FirstOrDefault(t => t.CONTENTS.Contains("设立安全生产目标时是否考虑:管理评审的结果;风险评价的结果;以往安全生产的绩效;标准化系统评价的结果法律法规与其他要求?") && t.PRODUCTION_UNIT == "露天矿");
var auto13 = autoAll.FirstOrDefault(t => t.CONTENTS.Contains("安全生产目标是否体现改进安全生产管理的要求?") && t.PRODUCTION_UNIT == "露天矿");
var auto14 = autoAll.FirstOrDefault(t => t.CONTENTS.Contains("安全生产目标中是否只有伤亡指标?") && t.PRODUCTION_UNIT == "露天矿");
var resultScore10 = 0; var resultScore12 = 0;
var formulation = this.GetEntity<T_PT_INDICATOR_FORMULATION>(t => t.YEAR == DateTime.Now.Year.ToString());
if (formulation != null)
{
var planResources = this.GetEntities<T_PT_INDICATOR_FORMULATION_PLAN_RESOURCES>(t => t.INDICATOR_FORMULATION_ID == formulation.ID, new BaseFilter(filter.OrgId), "Nav_Resources");
if (planResources != null && planResources.Any())
{
resultScore10 = planResources.Count();
}
var requirements = this.GetEntities<T_PT_INDICATOR_FORMULATION_REQUIREMENTS>(t => t.INDICATOR_FORMULATION_ID == formulation.ID, new BaseFilter(filter.OrgId), "Nav_Resources");
if (requirements != null && requirements.Any())
{
resultScore12 = requirements.Count();
}
}
if (auto9 != null)
{
auto9.RESULT_SCORE = formulation == null ? "0" : "2";
autoDetails.Add(auto9);
}
if (auto10 != null)
{
auto10.RESULT_SCORE = resultScore10.ToString();
autoDetails.Add(auto10);
}
if (auto11 != null)
{
auto11.RESULT_SCORE = formulation != null && formulation.IS_PLAN ? "4" : "0";
autoDetails.Add(auto11);
}
if (auto12 != null)
{
auto12.RESULT_SCORE = resultScore12.ToString();
autoDetails.Add(auto12);
}
if (auto13 != null)
{
auto13.RESULT_SCORE = formulation != null && formulation.IS_DEMAND ? "3" : "0";
autoDetails.Add(auto13);
}
if (auto14 != null)
{
auto14.RESULT_SCORE = formulation != null && formulation.IS_TARGET ? "0" : "2";
autoDetails.Add(auto14);
}
var auto15 = autoAll.FirstOrDefault(t => t.CONTENTS.Contains("对安全生产目标与指标的完成情况实施监测的比例:是否对安全生产目标和指标的实施计划执行情况进行监测、修正和更新?") && t.PRODUCTION_UNIT == "露天矿");
var resultScore15 = 0;
var departments = this.GetEntities<T_FM_DEPARTMENT>(t => t.ENABLE_STATUS == 0, new BaseFilter(filter.OrgId));
var departmentIds = departments.Select(t => t.ID).ToList();
var assessment = this.GetEntities<T_PT_MONITOR_ASSESSMENT>(t => t.YEAR == DateTime.Now.Year.ToString() && departmentIds.Contains((Guid)t.DEPARTMENT_ID), new BaseFilter(filter.OrgId), "Nav_Details.Nav_Contents");
var distinctAssessment = assessment.DistinctBy(t => t.DEPARTMENT_ID).ToList();
var rate = Math.Round((decimal)distinctAssessment.Count() / departments.Count() * 100, 2);
if (rate >= 90)
{
resultScore15 = 3;
}
else if (rate >= 75 && rate < 90)
{ resultScore15 = 2; }
else if (rate >= 60 && rate < 75)
{ resultScore15 = 1; }
if (auto15 != null)
{
auto15.RESULT_SCORE = resultScore15.ToString();
autoDetails.Add(auto15);
}
var auto16 = autoAll.FirstOrDefault(t => t.CONTENTS.Contains("是否完成了所有安全生产目标和指标?") && t.PRODUCTION_UNIT == "露天矿");
var finishAssessment = assessment.FirstOrDefault(t => t.STATUS != PFStandardStatus.Archived);
if (auto16 != null)
{
auto16.RESULT_SCORE = finishAssessment == null ? "4" : "0";
autoDetails.Add(auto16);
}
var auto17 = autoAll.FirstOrDefault(t => t.CONTENTS.Contains("对目标和指标完成的情况是否进行了系统分析,并提出了改进措施?") && t.PRODUCTION_UNIT == "露天矿");
var resultScore17 = 0;
if (assessment != null && assessment.Any())
{
foreach (var item in assessment)
{
if (item.Nav_Details != null && item.Nav_Details.Any())
{
foreach (var item2 in item.Nav_Details)
{
var measures = item2.Nav_Contents.Select(t => t.MEASURES).ToList();
if (measures != null && measures.Any())
{
resultScore17 = 4;
}
}
}
}
}
if (auto17 != null)
{
auto17.RESULT_SCORE = resultScore17.ToString();
autoDetails.Add(auto17);
}
var auto18 = autoAll.FirstOrDefault(t => t.CONTENTS.Contains("尾矿库安全生产目标是否包含于企业安全生产目标?") && t.PRODUCTION_UNIT == "露天矿");
var formulationDepartment = this.GetEntity<T_PT_INDICATOR_FORMULATION_DEPARTMENT>(t => t.YEAR == DateTime.Now.Year.ToString() && t.Nav_Department != null && t.Nav_Department.NAME.Contains("尾矿"));
if (auto18 != null)
{
auto18.RESULT_SCORE = formulationDepartment == null ? "0" : "4";
autoDetails.Add(auto18);
}
var auto19 = autoAll.FirstOrDefault(t => t.CONTENTS.Contains("是否定期与员工沟通安全生产目标的完成情况?") && t.PRODUCTION_UNIT == "露天矿");
var innerContact = this.GetEntity<T_OG_INNER_CONTACT>(t => t.DATE.Value.Year == DateTime.Now.Year && t.NAME.Contains("安全生产目标"));
if (auto19 != null)
{
auto19.RESULT_SCORE = innerContact == null ? "0" : "2";
autoDetails.Add(auto19);
}
UnifiedCommit(() =>
{
if (autoDetails != null && autoDetails.Any())
BantchSaveEntityNoCommit(autoDetails);
});
}
catch (Exception ex)
{
if (!string.IsNullOrEmpty(ex.StackTrace))
throw new Exception("错误日志:[StackTrace]" + ex.StackTrace);
else
throw new Exception("【" + HttpContext.Request.Path + "】错误日志:[Message]" + ex.Message);
}
return true;
});
}
/// <summary>
/// 自动化得分-法律法规模块
/// </summary>
/// <param name="filter"></param>
/// <returns></returns>
public JsonActionResult<bool> LRSync([FromBody] KeywordFilter filter)
{
return SafeExecute<bool>(() =>
{
try
{
List<T_PE_STANDARDIZED_SCORE_AUTO_DETAIL> autoDetails = new List<T_PE_STANDARDIZED_SCORE_AUTO_DETAIL>();
#region
var meeting = this.GetEntity<T_SC_MT_MEETING>(t => t.THEME.Contains("安全生产法律法规与其他要求"));
var auto = this.GetEntity<T_PE_STANDARDIZED_SCORE_AUTO_DETAIL>(t => t.CONTENTS.Contains("是否建立了识别安全生产法律法规与其他要求的需求并获取相应法律法规与其他要求的制度?"));
if (auto != null)
{
auto.RESULT_SCORE = meeting == null ? "0" : "2";
autoDetails.Add(auto);
}
else
{
var autoNew = new T_PE_STANDARDIZED_SCORE_AUTO_DETAIL();
autoNew.YEAR = DateTime.Now.Year.ToString();
autoNew.PRODUCTION_UNIT = "露天矿";
autoNew.Primary = "安全生产法律法规与其他要求";
autoNew.Second = "需求识别与获取";
autoNew.Three = "";
autoNew.EVALUATION_ITEM = "策划";
autoNew.CONTENTS = "是否建立了识别安全生产法律法规与其他要求的需求并获取相应法律法规与其他要求的制度?";
autoNew.DESCRIPTION = "(分数 2分 0分)";
autoNew.STANDARDIZED_SCORE = "2";
autoNew.RESULT_SCORE = meeting == null ? "0" : "2";
autoNew.IS_AUTO = false;
autoDetails.Add(autoNew);
}
var auto2 = this.GetEntity<T_PE_STANDARDIZED_SCORE_AUTO_DETAIL>(t => t.CONTENTS.Contains("是否确定了负责识别安全生产法律法规与其他要求的需求并获取相应法律法规与其他要求的部门、人员及其职责?"));
if (auto2 != null)
{
auto2.RESULT_SCORE = meeting == null ? "0" : "1";
autoDetails.Add(auto2);
}
else
{
var autoNew = new T_PE_STANDARDIZED_SCORE_AUTO_DETAIL();
autoNew.YEAR = DateTime.Now.Year.ToString();
autoNew.PRODUCTION_UNIT = "露天矿";
autoNew.Primary = "安全生产法律法规与其他要求";
autoNew.Second = "需求识别与获取";
autoNew.Three = "";
autoNew.EVALUATION_ITEM = "策划";
autoNew.CONTENTS = "是否确定了负责识别安全生产法律法规与其他要求的需求并获取相应法律法规与其他要求的部门、人员及其职责?";
autoNew.DESCRIPTION = "(分数 1分 0分)";
autoNew.STANDARDIZED_SCORE = "1";
autoNew.RESULT_SCORE = meeting == null ? "0" : "1";
autoNew.IS_AUTO = false;
autoDetails.Add(autoNew);
}
var auto3 = this.GetEntity<T_PE_STANDARDIZED_SCORE_AUTO_DETAIL>(t => t.CONTENTS.Contains("是否识别了安全生产法律法规与其他要求的需求?"));
var demandDis = this.GetEntity<T_LR_DEMAND_DISTINGUISH>(t => t.YEARS == DateTime.Now.Year);
if (auto3 != null)
{
auto3.RESULT_SCORE = demandDis == null ? "0" : "2";
autoDetails.Add(auto3);
}
else
{
var autoNew = new T_PE_STANDARDIZED_SCORE_AUTO_DETAIL();
autoNew.YEAR = DateTime.Now.Year.ToString();
autoNew.PRODUCTION_UNIT = "露天矿";
autoNew.Primary = "安全生产法律法规与其他要求";
autoNew.Second = "需求识别与获取";
autoNew.Three = "";
autoNew.EVALUATION_ITEM = "执行";
autoNew.CONTENTS = "是否识别了安全生产法律法规与其他要求的需求?";
autoNew.DESCRIPTION = "(分数 2分 0分)";
autoNew.STANDARDIZED_SCORE = "2";
autoNew.RESULT_SCORE = demandDis == null ? "0" : "2";
autoNew.IS_AUTO = false;
autoDetails.Add(autoNew);
}
var auto4 = this.GetEntity<T_PE_STANDARDIZED_SCORE_AUTO_DETAIL>(t => t.CONTENTS.Contains("是否根据需求识别结果获取相应的安全生产法律法规与其他要求?"));
var legalList = this.GetEntity<T_LR_LEGAL_LIST>(t => t.YEARS == DateTime.Now.Year);
if (auto4 != null)
{
auto4.RESULT_SCORE = legalList == null ? "0" : "2";
autoDetails.Add(auto4);
}
else
{
var autoNew = new T_PE_STANDARDIZED_SCORE_AUTO_DETAIL();
autoNew.YEAR = DateTime.Now.Year.ToString();
autoNew.PRODUCTION_UNIT = "露天矿";
autoNew.Primary = "安全生产法律法规与其他要求";
autoNew.Second = "需求识别与获取";
autoNew.Three = "";
autoNew.EVALUATION_ITEM = "执行";
autoNew.CONTENTS = "是否根据需求识别结果获取相应的安全生产法律法规与其他要求?";
autoNew.DESCRIPTION = "(分数 2分 0分)";
autoNew.STANDARDIZED_SCORE = "2";
autoNew.RESULT_SCORE = legalList == null ? "0" : "2";
autoNew.IS_AUTO = false;
autoDetails.Add(autoNew);
}
#endregion
UnifiedCommit(() =>
{
if (autoDetails != null && autoDetails.Any())
BantchSaveEntityNoCommit(autoDetails);
});
}
catch (Exception ex)
{
if (!string.IsNullOrEmpty(ex.StackTrace))
throw new Exception("错误日志:[StackTrace]" + ex.StackTrace);
else
throw new Exception("【" + HttpContext.Request.Path + "】错误日志:[Message]" + ex.Message);
}
return true;
});
}
/// <summary>
/// 自动化得分-作业现场模块
/// </summary>
/// <param name="filter"></param>
/// <returns></returns>
public JsonActionResult<bool> FOSync([FromBody] KeywordFilter filter)
{
return SafeExecute<bool>(() =>
{
try
{
List<T_PE_STANDARDIZED_SCORE_AUTO_DETAIL> autoDetails = new List<T_PE_STANDARDIZED_SCORE_AUTO_DETAIL>();
#region
var standard = this.GetEntities<T_SC_STANDARD_CREATE>(t => t.NAME.Contains("作业环境") || t.NAME.Contains("安全警示标志"),new BaseFilter(filter.OrgId));
var autoAll = this.GetEntities<T_PE_STANDARDIZED_SCORE_AUTO_DETAIL>(null,new BaseFilter(filter.OrgId));
var auto = autoAll.FirstOrDefault(t => t.CONTENTS.Contains("是否有基于风险评估的下列管理制度:作业环境管理制度;安全警示标志管理制度?") && t.PRODUCTION_UNIT == "露天矿");
var resultScore = 0;
if (standard.Count() > 1)
{
resultScore = 4;
}
else if(standard.Count() == 1)
{
resultScore = 2;
}
if (auto != null)
{
auto.RESULT_SCORE = resultScore.ToString();
autoDetails.Add(auto);
}
var auto2 = autoAll.FirstOrDefault(t => t.CONTENTS.Contains("对露天矿边界上可能危及人员安全的松散岩土层、植物和不稳固矿岩是否进行了处理?") && t.PRODUCTION_UNIT == "露天矿");
var postIds= GetEntities<T_PT_TIME_SET>(i => i.SET_TYPE == PTSetTypeEnum.RollStone, new BaseFilter(filter.OrgId)).Select(t=>t.POST_ID).ToList();
var userIds = GetEntities<T_FM_USER>(i => i.Nav_Person != null && postIds.Contains(i.Nav_Person.POST_ID), new BaseFilter(filter.OrgId)).Select(t => t.ID).ToList();
var rollstone = GetCount<T_PR_LANDSLIDE_ROLLSTONE_MONITOR>(i => userIds.Contains((Guid)i.USER_ID), new BaseFilter(filter.OrgId));
if (auto2 != null)
{
auto2.RESULT_SCORE = rollstone!=0 && rollstone == postIds.Count() ? "1" : "0";
autoDetails.Add(auto2);
}
var autoAdd = autoAll.FirstOrDefault(t => t.CONTENTS.Contains("有潜在滑坡的地段是否采取了处理措施?") && t.PRODUCTION_UNIT == "露天矿");
if (autoAdd != null)
{
autoAdd.RESULT_SCORE = rollstone != 0 && rollstone == postIds.Count() ? "2" : "0";
autoDetails.Add(autoAdd);
}
var auto3 = autoAll.FirstOrDefault(t => t.CONTENTS.Contains("是否基于风险评价建立下列安全管理制度:穿孔爆破作业安全管理制度;铲装作业安全管理制度;运输作业安全管理制度;排土作业安全管理制度;交接班管理制度;边坡安全管理制度?") && t.PRODUCTION_UNIT == "露天矿");
var standard2 = this.GetEntities<T_SC_STANDARD_CREATE>(t => t.NAME.Contains("穿孔爆破作业管理") || t.NAME.Contains("铲装作业管理") || t.NAME.Contains("运输作业管理")
|| t.NAME.Contains("排土作业管理") || t.NAME.Contains("交接班管理") || t.NAME.Contains("边坡安全管理"), new BaseFilter(filter.OrgId));
var resultScore3 = 0;
if (standard2.Count() >= 1)
{
resultScore3 = standard2.Count() * 2;
}
if (auto3 != null)
{
auto3.RESULT_SCORE = resultScore3.ToString();
autoDetails.Add(auto3);
}
var auto4 = autoAll.FirstOrDefault(t => t.CONTENTS.Contains("员工在作业前是否对作业现场进行安全检查与确认?") && t.PRODUCTION_UNIT == "露天矿");
if (auto4 != null)
{
auto4.RESULT_SCORE = "2";
autoDetails.Add(auto4);
}
var auto5 = autoAll.FirstOrDefault(t => t.CONTENTS.Contains("交接班时,是否对发现潜在的或已发生的危及作业人员安全的状况进行交代?") && t.PRODUCTION_UNIT == "露天矿");
var changeShift = this.GetEntity<T_FO_CHANGE_SHIFT_RECORD>(t => t.LAST_CLASS_RECORD_STATUS == FORunRecordStatusEnum.);
if (auto5 != null)
{
auto5.RESULT_SCORE = changeShift == null ? "1" : "0";
autoDetails.Add(auto5);
}
var auto6 = autoAll.FirstOrDefault(t => t.CONTENTS.Contains("员工进入作业现场是否佩带个体防护用品?") && t.PRODUCTION_UNIT == "露天矿");
var currentClass = this.GetEntity<T_FO_CURRENT_CLASS_RECORD>(t => t.SUPPLIES_USED == (int)WFDisableStatusEnum.);
if (auto6 != null)
{
auto6.RESULT_SCORE = currentClass == null ? "1" : "0";
autoDetails.Add(auto6);
}
var jobEventAll = this.GetEntities<T_FO_JOB_EVENT_RECORD>(t => t.Nav_OperationStep != null && (t.Nav_OperationStep.NAME.Contains("穿孔作业") ||
t.Nav_OperationStep.NAME.Contains("铲装作业") || t.Nav_OperationStep.NAME.Contains("运输作业") || t.Nav_OperationStep.NAME.Contains("排土作业")), new BaseFilter(filter.OrgId), "Nav_OperationStep");
var auto7 = autoAll.FirstOrDefault(t => t.CONTENTS.Contains("穿孔作业是否采用湿式作业或其他防尘措施?") && t.PRODUCTION_UNIT == "露天矿");
var jobEvent = jobEventAll.FirstOrDefault(t => t.Nav_OperationStep!=null && t.Nav_OperationStep.NAME.Contains("穿孔作业"));
if (auto7 != null)
{
auto7.RESULT_SCORE = jobEvent == null ? "0" : "2";
autoDetails.Add(auto7);
}
var auto8 = autoAll.FirstOrDefault(t => t.CONTENTS.Contains("是否存在打残眼现象?") && t.PRODUCTION_UNIT == "露天矿");
var jobActivity = this.GetEntity<T_FO_JOB_ACTIVITY_RECORD>(t => t.Nav_OperationStep != null && t.Nav_OperationStep.NAME.Contains("爆破作业"));
if (auto8 != null)
{
auto8.RESULT_SCORE = jobActivity == null ? "0" : "1";
autoDetails.Add(auto8);
}
var auto9 = autoAll.FirstOrDefault(t => t.CONTENTS.Contains("在穿孔、铲装、运输、排土等设备的活动区域内是否有非操作人员滞留?") && t.PRODUCTION_UNIT == "露天矿");
var jobEvent2 = jobEventAll.FirstOrDefault();
if (auto9 != null)
{
auto9.RESULT_SCORE = jobEvent2 == null ? "0" : "1";
autoDetails.Add(auto9);
}
var auto10 = autoAll.FirstOrDefault(t => t.CONTENTS.Contains("穿孔、铲装设备是否在作业平台的稳定范围内移动,且有人引导和监护?") && t.PRODUCTION_UNIT == "露天矿");
var jobEvent3 = jobEventAll.FirstOrDefault(t => t.Nav_OperationStep != null && (t.Nav_OperationStep.NAME.Contains("穿孔作业") || t.Nav_OperationStep.NAME.Contains("铲装作业")));
if (auto10 != null)
{
auto10.RESULT_SCORE = jobEvent3 == null ? "0" : "1";
autoDetails.Add(auto10);
}
var auto11 = autoAll.FirstOrDefault(t => t.CONTENTS.Contains("爆破作业是否按爆破设计书或爆破说明书进行?") && t.PRODUCTION_UNIT == "露天矿");
if (auto11 != null)
{
auto11.RESULT_SCORE = jobActivity == null ? "0" : "2";
autoDetails.Add(auto11);
}
var auto12 = autoAll.FirstOrDefault(t => t.CONTENTS.Contains("爆破作业是否按爆破设计书或爆破说明书进行?") && t.PRODUCTION_UNIT == "露天矿");
if (auto12 != null)
{
auto12.RESULT_SCORE = jobActivity == null ? "0" : "2";
autoDetails.Add(auto12);
}
var auto13 = autoAll.FirstOrDefault(t => t.CONTENTS.Contains("临近最终边坡爆破是否采用控制爆破或减震措施?") && t.PRODUCTION_UNIT == "露天矿");
if (auto13 != null)
{
auto13.RESULT_SCORE = jobActivity == null ? "0" : "1";
autoDetails.Add(auto13);
}
var auto14 = autoAll.FirstOrDefault(t => t.CONTENTS.Contains("在爆破危险区域内有两个以上的单位(作业组)进行露天爆破作业时,是否统一指挥?") && t.PRODUCTION_UNIT == "露天矿");
if (auto14 != null)
{
auto14.RESULT_SCORE = jobActivity == null ? "0" : "2";
autoDetails.Add(auto14);
}
var auto15 = autoAll.FirstOrDefault(t => t.CONTENTS.Contains("爆破后,爆破员是否按规定的等待时间进入爆破地点进行检查?") && t.PRODUCTION_UNIT == "露天矿");
if (auto15 != null)
{
auto15.RESULT_SCORE = jobActivity == null ? "0" : "2";
autoDetails.Add(auto15);
}
var auto16 = autoAll.FirstOrDefault(t => t.CONTENTS.Contains("发现悬浮岩块或崩塌征兆、盲炮等情况,是否立即停止铲装作业,并将设备移至安全地带?") && t.PRODUCTION_UNIT == "露天矿");
var jobEvent4 = jobEventAll.FirstOrDefault(t => t.Nav_OperationStep != null && t.Nav_OperationStep.NAME.Contains("铲装作业"));
if (auto16 != null)
{
auto16.RESULT_SCORE = jobEvent4 == null ? "0" : "1";
autoDetails.Add(auto16);
}
var auto17 = autoAll.FirstOrDefault(t => t.CONTENTS.Contains("上、下台阶同时作业时,作业点是否沿台阶走向错开一定的距离?") && t.PRODUCTION_UNIT == "露天矿");
if (auto17 != null)
{
auto17.RESULT_SCORE = jobEvent4 == null ? "0" : "1";
autoDetails.Add(auto17);
}
var auto18 = autoAll.FirstOrDefault(t => t.CONTENTS.Contains("车辆在急弯、陡坡、危险地段是否限速行驶?") && t.PRODUCTION_UNIT == "露天矿");
var jobEvent5 = jobEventAll.FirstOrDefault(t => t.Nav_OperationStep != null && t.Nav_OperationStep.NAME.Contains("运输作业"));
if (auto18 != null)
{
auto18.RESULT_SCORE = jobEvent5 == null ? "0" : "1";
autoDetails.Add(auto18);
}
var auto19 = autoAll.FirstOrDefault(t => t.CONTENTS.Contains("汽车排土作业时,是否有专人指挥?") && t.PRODUCTION_UNIT == "露天矿");
var jobEvent6 = jobEventAll.FirstOrDefault(t => t.Nav_OperationStep != null && t.Nav_OperationStep.NAME.Contains("排土作业"));
if (auto19 != null)
{
auto19.RESULT_SCORE = jobEvent6 == null ? "0" : "1";
autoDetails.Add(auto19);
}
var auto20 = autoAll.FirstOrDefault(t => t.CONTENTS.Contains("爆破作业是否做到:按说明书的要求进行爆破;作业人员具备资格和能力;爆破前确定危险区并设置标志和岗哨; 按规定等待时间进入爆区检查危石、盲炮;认真填写爆破记录?") && t.PRODUCTION_UNIT == "露天矿");
var job = this.GetEntity<T_FO_CRUCIAL_LICENSE_JOB>(t => t.Nav_OperationStep != null && t.Nav_OperationStep.NAME.Contains("爆破作业"));
var resultScore20 = 0;
if (jobActivity != null)
{
resultScore20 = 6;
if (jobActivity.FORM_STATUS == (int)FOTeamActivityState.)
{
resultScore20 = resultScore20 + 2;
}
}
if (job != null)
{
resultScore20 = resultScore20 + 2;
}
if (auto20 != null)
{
auto20.RESULT_SCORE = resultScore20.ToString();
autoDetails.Add(auto20);
}
var auto21 = autoAll.FirstOrDefault(t => t.CONTENTS.Contains("铲装作业是否做到悬臂和铲斗下面及工作面附近无人员停留挖掘机平衡装置外型的垂直投影到台阶坡底的水平距离不小于1m铲斗不应从车辆驾驶室上方通过不用铲斗处理粘厢车辆") && t.PRODUCTION_UNIT == "露天矿");
if (auto21 != null)
{
auto21.RESULT_SCORE = jobEvent4 == null ? "0" : "4";
autoDetails.Add(auto21);
}
var auto22 = autoAll.FirstOrDefault(t => t.CONTENTS.Contains("道路运输作业是否做到:不超载运输;不用自卸汽车运载易燃、易爆物品;装车时不检查、维护车辆;装车时驾驶员不离开驾驶室;车辆在急弯、陡坡、危险地段限速行驶;不采用溜车的方式发动车辆;下坡行驶时不空档滑行;在坡道上停车时使用停车制动并采取安全措施;在恶劣天气条件下,控制行车速度并保持车距?") && t.PRODUCTION_UNIT == "露天矿");
if (auto22 != null)
{
auto22.RESULT_SCORE = jobEvent5 == null ? "0" : "9";
autoDetails.Add(auto22);
}
var auto23 = autoAll.FirstOrDefault(t => t.CONTENTS.Contains("带式输送机运输作业是否做到:不乘坐非乘人带式输送机;不运送设备和过长的材料等;输送机运转时不注油、检查和修理?") && t.PRODUCTION_UNIT == "露天矿");
var jobEvent7 = jobEventAll.FirstOrDefault(t => t.Nav_OperationStep != null && t.Nav_OperationStep.NAME.Contains("带式输送机运输作业"));
if (auto23 != null)
{
auto23.RESULT_SCORE = jobEvent7 == null ? "0" : "3";
autoDetails.Add(auto23);
}
var auto24 = autoAll.FirstOrDefault(t => t.CONTENTS.Contains("采用汽车运输的排土作业是否做到汽车排土作业有专人指挥进入排土作业区内的工作人员、车辆、工程机械服从指挥人员的指挥在同一地段进行卸车和推土作业时设备之间保持足够的安全距离视距小于30m或遇暴雨、大雪、大风等恶劣天气时停止排土作业") && t.PRODUCTION_UNIT == "露天矿");
if (auto24 != null)
{
auto24.RESULT_SCORE = jobEvent6 == null ? "0" : "4";
autoDetails.Add(auto24);
}
var auto25 = autoAll.FirstOrDefault(t => t.CONTENTS.Contains("交接班的有效性:详细交代已发现的危及作业人员安全的状况;交接班记录完整?") && t.PRODUCTION_UNIT == "露天矿");
var changeShift2 = this.GetEntity<T_FO_CHANGE_SHIFT_RECORD>(t => t.CURRENT_CLASS_STATUS == (int)FOShiftRecordStatusEnum. || t.DEVICE_STATUS == (int)FOShiftRecordStatusEnum. || t.ENVIRONMENT_STATUS == (int)FOShiftRecordStatusEnum.);
if (auto25 != null)
{
auto25.RESULT_SCORE = changeShift2 == null ? "4" : "8";
autoDetails.Add(auto25);
}
var auto26 = autoAll.FirstOrDefault(t => t.CONTENTS.Contains("是否建立了包括下列内容的劳动防护用品管理制度:评估与采购;发放与更换;使用与维护;监督与检查?") && t.PRODUCTION_UNIT == "露天矿");
var meeting = this.GetEntity<T_SC_MT_MEETING>(t => t.THEME.Contains("劳动防护用品"));
if (auto26 != null)
{
auto26.RESULT_SCORE = meeting == null ? "0" : "2";
autoDetails.Add(auto26);
}
var auto27 = autoAll.FirstOrDefault(t => t.CONTENTS.Contains("是否建立了鼓励员工正确使用劳动防护用品的机制?") && t.PRODUCTION_UNIT == "露天矿");
var rewardPunishment = this.GetEntity<T_OG_APPROVE_REWARD_PUNISHMENT_REPORT>(t => t.TYPE == OGRewardPunishmentType. && t.Nav_Reason!=null && t.Nav_Reason.NAME.Contains("劳动防护用品"));
if (auto27 != null)
{
auto27.RESULT_SCORE = rewardPunishment == null ? "0" : "2";
autoDetails.Add(auto27);
}
var auto28 = autoAll.FirstOrDefault(t => t.CONTENTS.Contains("是否评估了防护需求,包括:头保护;眼睛保护;脸保护;听力保护;手保护;脚保护;呼吸保护?") && t.PRODUCTION_UNIT == "露天矿");
if (auto28 != null)
{
auto28.RESULT_SCORE = "0";
autoDetails.Add(auto28);
}
var auto29 = autoAll.FirstOrDefault(t => t.CONTENTS.Contains("是否为进入作业现场的人员提供适合的劳动防护用品?") && t.PRODUCTION_UNIT == "露天矿");
if (auto29 != null)
{
auto29.RESULT_SCORE = "0.5";
autoDetails.Add(auto29);
}
var auto30 = autoAll.FirstOrDefault(t => t.CONTENTS.Contains("在发放劳动防护用品时,是否提供了正确使用的培训?") && t.PRODUCTION_UNIT == "露天矿");
var trainRecords = this.GetEntities<T_SE_TRAIN_RECORD>(t => t.Nav_Notify != null && t.Nav_Notify.NAME.Contains("劳动防护用品"), new BaseFilter(filter.OrgId), "Nav_Users");
if (auto30 != null)
{
auto30.RESULT_SCORE = trainRecords==null || trainRecords.Count() == 0 ? "0" : "1";
autoDetails.Add(auto30);
}
var auto31 = autoAll.FirstOrDefault(t => t.CONTENTS.Contains("是否保存劳动防护用品的发放记录?") && t.PRODUCTION_UNIT == "露天矿");
var deviceIssue = this.GetEntity<T_DM_DEVICE_ISSUE_DETAIL>(t => t.Nav_DeviceBase != null && t.Nav_DeviceBase.NAME.Contains("劳动防护用品"));
if (auto31 != null)
{
auto31.RESULT_SCORE = deviceIssue == null ? "0" : "0.5";
autoDetails.Add(auto31);
}
var auto32 = autoAll.FirstOrDefault(t => t.CONTENTS.Contains("不合格劳动防护用品是否禁止使用并得到了妥善处理?") && t.PRODUCTION_UNIT == "露天矿");
var deviceScrap = this.GetEntity<T_DM_DEVICE_SCRAP>(t => t.Nav_DeviceBase != null && t.Nav_DeviceBase.NAME.Contains("劳动防护用品"));
if (auto32 != null)
{
auto32.RESULT_SCORE = deviceScrap == null ? "0" : "0.5";
autoDetails.Add(auto32);
}
var auto33 = autoAll.FirstOrDefault(t => t.CONTENTS.Contains("提供劳动防护用品的供应商是否具备相应的资质?") && t.PRODUCTION_UNIT == "露天矿");
var related = this.GetEntity<T_OG_RELATED>(t => t.CONTENT.Contains("劳动防护用品"));
if (auto33 != null)
{
auto33.RESULT_SCORE = related == null ? "0" : "1";
autoDetails.Add(auto33);
}
var auto34 = autoAll.FirstOrDefault(t => t.CONTENTS.Contains("劳动防护用品的维护是否适当?") && t.PRODUCTION_UNIT == "露天矿");
var deviceMaintenance = this.GetEntity<T_DM_DEVICE_MAINTENANCE_CHECK_DETAIL>(t => t.Nav_DeviceBase != null && t.Nav_DeviceBase.NAME.Contains("劳动防护用品"));
if (auto34 != null)
{
auto34.RESULT_SCORE = deviceMaintenance == null ? "0" : "0.5";
autoDetails.Add(auto34);
}
var auto35 = autoAll.FirstOrDefault(t => t.CONTENTS.Contains("是否定期评估劳动防护用品配备与使用的依从程度?") && t.PRODUCTION_UNIT == "露天矿");
if (auto35 != null)
{
auto35.RESULT_SCORE = "0";
autoDetails.Add(auto35);
}
var auto36 = autoAll.FirstOrDefault(t => t.CONTENTS.Contains("是否建立劳动防护用品发放台账?") && t.PRODUCTION_UNIT == "露天矿");
if (auto36 != null)
{
auto36.RESULT_SCORE = deviceIssue == null ? "0" : "3";
autoDetails.Add(auto36);
}
var auto37 = autoAll.FirstOrDefault(t => t.CONTENTS.Contains("所提供的劳动防护用品是否与可能的风险相适应?") && t.PRODUCTION_UNIT == "露天矿");
if (auto37 != null)
{
auto37.RESULT_SCORE = "0";
autoDetails.Add(auto37);
}
var auto38 = autoAll.FirstOrDefault(t => t.CONTENTS.Contains("接受正确使用和维护劳动防护用品培训的员工比例:") && t.PRODUCTION_UNIT == "露天矿");
var trainIds = trainRecords.Select(t => t.ID).ToList();
var trainRecordUsers = this.GetEntities<T_SE_TRAIN_RECORD_USER>(t => trainIds.Contains(t.RECORD_ID),new BaseFilter(filter.OrgId)).Select(m=>m.USER_ID).Distinct().ToList();
var userCount = this.GetCount<T_FM_USER>(t => t.ENABLE_STATUS == 0, new BaseFilter(filter.OrgId));
var rate = Math.Round((decimal)trainRecordUsers.Count() / userCount * 100, 2);
var resultScore38 = 0;
if (rate >= 90)
{
resultScore38 = 3;
}
else if (rate >= 75 && rate < 90)
{ resultScore38 = 2; }
else if (rate >= 60 && rate < 75)
{ resultScore38 = 1; }
if (auto38 != null)
{
auto38.RESULT_SCORE = resultScore38.ToString();
autoDetails.Add(auto38);
}
var auto39 = autoAll.FirstOrDefault(t => t.CONTENTS.Contains("员工是否正确使用和维护劳动防护用品?") && t.PRODUCTION_UNIT == "露天矿");
var changeShift3 = this.GetEntity<T_FO_CHANGE_SHIFT_RECORD>(t => t.SUPPLIES_STATUS == (int)FOShiftRecordStatusEnum.);
if (auto39 != null)
{
auto39.RESULT_SCORE = deviceMaintenance == null || changeShift3 == null ? "0" : "3";
autoDetails.Add(auto39);
}
var auto40 = autoAll.FirstOrDefault(t => t.CONTENTS.Contains("报废及时?是否由于没有正确提供或使用劳动防护用品而导致事故、事件的发生?") && t.PRODUCTION_UNIT == "露天矿");
var accidentReason = this.GetEntity<T_AE_ACCIDENT_EVENT_SURVEY_REASON_TYPE>(t => t.Nav_ReasonType != null && t.Nav_ReasonType.NAME.Contains("劳动防护用品"));
if (auto40 != null)
{
auto40.RESULT_SCORE = accidentReason == null ? "6" : "0";
autoDetails.Add(auto40);
}
#endregion
#region
var auto41 = autoAll.FirstOrDefault(t => t.CONTENTS.Contains("是否有基于风险评价的下列作业现场安全管理制度:危险化学品和材料管理制度;运输与起重管理制度;高处作业管理制度;危险场所动火、动焊安全管理制度;自然灾害应急管理制度;危险作业场所劳动防护管理制度;职业卫生管理制度;安全警示标志管理制度?") && t.PRODUCTION_UNIT == "选矿厂");
var standard3 = this.GetEntities<T_SC_STANDARD_CREATE>(t => t.NAME.Contains("危险化学品和材料管理") || t.NAME.Contains("运输与起重管理") || t.NAME.Contains("高处作业管理")
|| t.NAME.Contains("危险场所动火、动焊安全管理") || t.NAME.Contains("自然灾害应急管理") || t.NAME.Contains("危险作业场所劳动防护管理") || t.NAME.Contains("职业卫生管理")
|| t.NAME.Contains("安全警示标志管理"), new BaseFilter(filter.OrgId));
if (auto41 != null)
{
auto41.RESULT_SCORE = standard3 != null && standard3.Any() ? (standard3.Count() * 1.5).ToString() : "0";
autoDetails.Add(auto41);
}
var auto42 = autoAll.FirstOrDefault(t => t.CONTENTS.Contains("作业人员对其使用的化学药品的危害是否了解:理化特性;燃烧爆炸危险性;接触限值;对人体危害;急救和防护;应急处置?") && t.PRODUCTION_UNIT == "选矿厂");
var safeSurvey = this.GetEntities<T_SE_SAFE_SURVEY_LIST_POINT>(t => t.Nav_Point != null &&(t.Nav_Point.NAME.Contains("理化") || t.Nav_Point.NAME.Contains("爆炸") || t.Nav_Point.NAME.Contains("接触")
|| t.Nav_Point.NAME.Contains("人体危害") || t.Nav_Point.NAME.Contains("防护") || t.Nav_Point.NAME.Contains("应急")), new BaseFilter(filter.OrgId));
if (auto42 != null)
{
auto42.RESULT_SCORE = safeSurvey != null && safeSurvey.Any() ? (safeSurvey.Count() * 0.5).ToString() : "0";
autoDetails.Add(auto42);
}
var auto43 = autoAll.FirstOrDefault(t => t.CONTENTS.Contains("是否存在因作业环境不良而导致事故、事件发生的情况?") && t.PRODUCTION_UNIT == "选矿厂");
var accidentEvent = this.GetEntity<T_AE_ACCIDENT_EVENT_SURVEY_REASON_TYPE>(t => t.Nav_ReasonType != null && t.Nav_ReasonType.CATEGORY == AEReasonCategory.Environment);
if (auto43 != null)
{
auto43.RESULT_SCORE = accidentEvent != null ? "0" : "6";
autoDetails.Add(auto43);
}
var auto44 = autoAll.FirstOrDefault(t => t.CONTENTS.Contains("是否基于风险评价建立下列作业过程的安全操作规程:破碎与筛分;磨矿与分级设备;选别作业;脱水;尾矿输送;运输和起重;电气安全;除尘;自动化;矿石运输及其他?") && t.PRODUCTION_UNIT == "选矿厂");
var standard4 = this.GetEntities<T_SC_STANDARD_CREATE>(t => t.TYPE == SCType. && (t.NAME.Contains("破碎与筛分")|| t.NAME.Contains("选别作业") || t.NAME.Contains("磨矿与分级设备")
|| t.NAME.Contains("脱水") || t.NAME.Contains("尾矿输送") || t.NAME.Contains("运输和起重") || t.NAME.Contains("电气安全") || t.NAME.Contains("除尘") || t.NAME.Contains("自动化") || t.NAME.Contains("矿石运输及其他")), new BaseFilter(filter.OrgId));
if (auto44 != null)
{
auto44.RESULT_SCORE = standard4 != null && standard4.Any() ? (standard4.Count() * 2).ToString() : "0";
autoDetails.Add(auto44);
}
var auto45 = autoAll.FirstOrDefault(t => t.CONTENTS.Contains("多层作业或危险作业(如进入转动设备内部检修),是否进行审批并安排专人监护?") && t.PRODUCTION_UNIT == "选矿厂");
var job2 = this.GetEntity<T_FO_CRUCIAL_LICENSE_JOB>(t=>t.IS_PUBLISH == 5);
if (auto45 != null)
{
auto45.RESULT_SCORE = job2 == null ? "0" : "5";
autoDetails.Add(auto45);
}
var auto46 = autoAll.FirstOrDefault(t => t.CONTENTS.Contains("是否按规定搬运和使用选矿药品(剂)?") && t.PRODUCTION_UNIT == "选矿厂");
var drugCarry = this.GetEntity<T_PR_DRUG_CARRY_RECORD>(t=>t.STATUS == PFStandardStatus.Archived);
if (auto46 != null)
{
auto46.RESULT_SCORE = drugCarry == null ? "0" : "5";
autoDetails.Add(auto46);
}
var auto47 = autoAll.FirstOrDefault(t => t.CONTENTS.Contains("操作起重设备和电气作业等特种作业人员是否取得相应资格证书?") && t.PRODUCTION_UNIT == "选矿厂");
var renewalTrain = this.GetEntity<T_SE_RENEWAL_TRAIN>(t => t.Nav_CertificateType!=null && t.Nav_CertificateType.NAME == "特种作业人员" && t.EXPIRY_DATE >= DateTime.Now);
if (auto47 != null)
{
auto47.RESULT_SCORE = renewalTrain == null ? "0" : "5";
autoDetails.Add(auto47);
}
var auto48 = autoAll.FirstOrDefault(t => t.CONTENTS.Contains("带式输送机运行时是否遵守下列规定:人员不乘坐、跨越、钻爬带式输送机;不运送规定物料以外的其他物料;不用手捡矿石(手选皮带除外);输送带、传动轮和改向轮上的杂物,应及时停车清除;不在输送带下清矿;不进行检修、打扫和注油;不用手摸托滚、首尾轮等转动部件?") && t.PRODUCTION_UNIT == "选矿厂");
var jobEvent8 = jobEventAll.Where(t => t.Nav_OperationStep != null && t.Nav_OperationStep.NAME.Contains("皮带运输作业"));
if (auto48 != null)
{
auto48.RESULT_SCORE = jobEvent8 == null ? "0" : "7";
autoDetails.Add(auto48);
}
var auto49 = autoAll.FirstOrDefault(t => t.CONTENTS.Contains("员工是否执行交接班制度?") && t.PRODUCTION_UNIT == "选矿厂");
var changeShift4 = this.GetEntity<T_FO_CHANGE_SHIFT_RECORD>(t => t.SHIFT_STATUS == (int)FOChangeShiftStatusEnum.);
if (auto49 != null)
{
auto49.RESULT_SCORE = changeShift4 == null ? "0" : "4";
autoDetails.Add(auto49);
}
var auto50 = autoAll.FirstOrDefault(t => t.CONTENTS.Contains("供电、变电所倒闸操作是否执行下列规定:操作人填写操作票;操作时一人操作,一人监护?") && t.PRODUCTION_UNIT == "选矿厂");
var job3 = this.GetEntity<T_FO_CRUCIAL_LICENSE_JOB>(t => t.Nav_OperationStep != null && t.Nav_OperationStep.NAME.Contains("供电、变电所"));
if (auto50 != null)
{
auto50.RESULT_SCORE = job3 == null ? "0" : "6";
autoDetails.Add(auto50);
}
var auto51 = autoAll.FirstOrDefault(t => t.CONTENTS.Contains("作业过程是否做到:按规定交接班,并做好交接班记录;按规定正确佩戴和使用个体防护用品;作业人员熟悉安全出口和紧急撤离路线;认真做好作业前的安全检查确认工作;严格遵照作业指导书或安全操作规程的要求进行作业;作业结束认真清理作业现场,并认真填写当班作业记录?") && t.PRODUCTION_UNIT == "选矿厂");
var currentClass2 = this.GetEntity<T_FO_CURRENT_CLASS_RECORD>(t => t.SUPPLIES_USED == (int)WFDisableStatusEnum.);
var currentClass3 = this.GetEntity<T_FO_CURRENT_CLASS_RECORD>(t => t.SHIFT_STATUS == (int)FOShiftStatusEnum.);
var jobEvent9 = this.GetEntity<T_FO_JOB_EVENT_RECORD>(t => t.FORM_STATUS == (int)FOTeamActivityState.);
var jobActivity2 = this.GetEntity<T_FO_JOB_ACTIVITY_RECORD>(t => t.FORM_STATUS == (int)FOTeamActivityState.);
var resultScore51 = 0;
if (currentClass2 != null)
{
resultScore51 = resultScore51 + 2;
}
if (currentClass3 != null)
{
resultScore51 = resultScore51 + 2;
}
if (changeShift4 != null)
{
resultScore51 = resultScore51 + 2;
}
if (job2 != null)
{
resultScore51 = resultScore51 + 2;
}
if (jobEvent9 != null)
{
resultScore51 = resultScore51 + 2;
}
if (jobActivity2 != null)
{
resultScore51 = resultScore51 + 2;
}
if (auto51 != null)
{
auto51.RESULT_SCORE = resultScore51.ToString();
autoDetails.Add(auto51);
}
var auto52 = autoAll.FirstOrDefault(t => t.CONTENTS.Contains("破碎与筛分工序下列作业时是否做到有专人监护:停车处理固定格筛卡矿、粗破碎机棚矿(囤矿或过铁卡矿)以及进入机体检查处理故障;清理粗破碎机翻车场地积矿或进入破碎机进料口;处理破碎机下部漏斗堵塞;不超载运输?") && t.PRODUCTION_UNIT == "选矿厂");
var jobActivity3 = this.GetEntity<T_FO_JOB_ACTIVITY_RECORD>(t => t.Nav_OperationStep != null && t.Nav_OperationStep.NAME.Contains("粗破碎机"));
if (auto52 != null)
{
auto52.RESULT_SCORE = jobActivity3 == null ? "0" : "3";
autoDetails.Add(auto52);
}
var auto53 = autoAll.FirstOrDefault(t => t.CONTENTS.Contains("磨矿与分级作业时是否做到:禁止人员在磨矿机运转的筒体两侧和下部逗留或工作;封闭磨矿机入孔时,确认磨矿机内无人;球磨机\"胀肚\"时,立即停止给料,并按规定程序处理;给球磨机加球时,使用专门的加钢球装置及有保护作业人员的防护措施?") && t.PRODUCTION_UNIT == "选矿厂");
var jobEvent10 = this.GetEntity<T_FO_JOB_EVENT_RECORD>(t => t.Nav_OperationStep != null && t.Nav_OperationStep.NAME.Contains("磨矿与分级作业"));
if (auto53 != null)
{
auto53.RESULT_SCORE = jobEvent10 == null ? "0" : "8";
autoDetails.Add(auto53);
}
var auto54 = autoAll.FirstOrDefault(t => t.CONTENTS.Contains("使用有毒、易燃、易爆等选矿药品时是否做到:事先了解其化学性质、使用方法和注意事项,并掌握操作方法;开瓶时,瓶口朝向无人处;在通风条件良好的通风橱内操作剧毒、刺激性和麻醉性以及挥发性的药品;使用移液管而不是用口直接吸取有毒或剧毒液体药品并掌握操作方法;在安全地点加热或配制易燃、易爆药品;使用有毒、剧毒药品后立即将器皿冲洗干净,擦净试验台?") && t.PRODUCTION_UNIT == "选矿厂");
var drugUse = this.GetEntity<T_PR_DRUG_USE_RECORD>(t => t.STATUS == PFStandardStatus.Archived);
if (auto54 != null)
{
auto54.RESULT_SCORE = drugUse == null ? "0" : "12";
autoDetails.Add(auto54);
}
var auto55 = autoAll.FirstOrDefault(t => t.CONTENTS.Contains("搬运、使用强酸、强碱时是否做到:两人搬运桶装或坛装的强酸、强碱;用专用工具或车辆搬运,并放置牢固,严禁肩扛、背驮或徒手提运;事先检查确认所使用的工具、材料完好;按规定穿戴好劳动防护用品;用虹吸法将坛装、桶装的浓酸、浓碱注入器皿,严禁直接倾倒;在通风良好的通风橱内加热浓酸、浓碱,且操作人员远离;按规定程序配制酸碱溶液;事先准备必要的应急处置措施?") && t.PRODUCTION_UNIT == "选矿厂");
if (auto55 != null)
{
auto55.RESULT_SCORE = drugCarry == null ? "0" : "8";
autoDetails.Add(auto55);
}
var auto56 = autoAll.FirstOrDefault(t => t.CONTENTS.Contains("起重作业是否做到视线不清或信号不明不作业不歪拉斜吊、拖拉物体吊物不从人员上方通过不利用限位开关停车吊运物件时不调整制动器制动垫异常磨损或磨损超过一半立即更换起重机吊钩达到最低位置时卷筒上钢丝绳不少于3圈不用电磁盘代替起重机作业") && t.PRODUCTION_UNIT == "选矿厂");
var jobActivity4 = this.GetEntity<T_FO_JOB_ACTIVITY_RECORD>(t => t.Nav_OperationStep != null && t.Nav_OperationStep.NAME.Contains("起重作业"));
if (auto56 != null)
{
auto56.RESULT_SCORE = jobActivity4 == null ? "0" : "8";
autoDetails.Add(auto56);
}
var auto57 = autoAll.FirstOrDefault(t => t.CONTENTS.Contains("尾矿输送作业是否做到:事故尾矿池定期清理,保持足够的贮存容积;尾矿输送管、槽等,固定专人分班巡视检查和维护管理;金属管道定期进行壁厚测定和维护?") && t.PRODUCTION_UNIT == "选矿厂");
var safeCheck = this.GetEntity<T_BS_SAFE_CHECK_DETAIL>(t => t.CHECKCONTENT.Contains("尾矿输送管"));
var deviceMaintenance2 = this.GetEntity<T_DM_DEVICE_MAINTENANCE_CHECK_DETAIL>(t => t.MACHINE_NAME.Contains("尾矿输送管道"));
var deviceInspect = this.GetEntity<T_DM_DETECTION_INSPECTION_RECORD>(t => t.Nav_DeviceBase != null && t.Nav_DeviceBase.NAME.Contains("尾矿输送管"));
var resultScore57 = 0;
if (safeCheck != null)
{
resultScore57 = resultScore57 + 1;
}
if (deviceMaintenance2 != null)
{
resultScore57 = resultScore57 + 1;
}
if (deviceInspect != null)
{
resultScore57 = resultScore57 + 1;
}
if (auto57 != null)
{
auto57.RESULT_SCORE = resultScore57.ToString();
autoDetails.Add(auto57);
}
var auto58 = autoAll.FirstOrDefault(t => t.CONTENTS.Contains("是否建立了包括下列内容的劳动防护用品管理制度:评估与采购;贮存与发放;使用与更换;维护和保养?") && t.PRODUCTION_UNIT == "选矿厂");
if (auto58 != null)
{
auto58.RESULT_SCORE = meeting == null ? "0" : "4";
autoDetails.Add(auto58);
}
var auto59 = autoAll.FirstOrDefault(t => t.CONTENTS.Contains("是否建立了鼓励员工正确使用劳动防护用品的机制?") && t.PRODUCTION_UNIT == "选矿厂");
if (auto59 != null)
{
auto59.RESULT_SCORE = rewardPunishment == null ? "0" : "2";
autoDetails.Add(auto59);
}
var auto60 = autoAll.FirstOrDefault(t => t.CONTENTS.Contains("是否评估了防护需求,包括:头保护;眼睛保护;脸保护;听力保护;手保护;脚保护;呼吸保护?") && t.PRODUCTION_UNIT == "选矿厂");
if (auto60 != null)
{
auto60.RESULT_SCORE = "0";
autoDetails.Add(auto60);
}
var auto61 = autoAll.FirstOrDefault(t => t.CONTENTS.Contains("是否为下列人员提供适合的劳动防护用品:员工;承包商;参观者?") && t.PRODUCTION_UNIT == "选矿厂");
if (auto61 != null)
{
auto61.RESULT_SCORE = "1.5";
autoDetails.Add(auto61);
}
var auto62 = autoAll.FirstOrDefault(t => t.CONTENTS.Contains("在发放劳动防护用品时,是否进行了正确使用和维护培训?") && t.PRODUCTION_UNIT == "选矿厂");
if (auto62 != null)
{
auto62.RESULT_SCORE = trainRecords == null || trainRecords.Count() == 0 ? "0" : "2";
autoDetails.Add(auto62);
}
var auto63 = autoAll.FirstOrDefault(t => t.CONTENTS.Contains("是否保存劳动防护用品的发放记录?") && t.PRODUCTION_UNIT == "选矿厂");
if (auto63 != null)
{
auto63.RESULT_SCORE = deviceIssue == null ? "0" : "1";
autoDetails.Add(auto63);
}
var auto64 = autoAll.FirstOrDefault(t => t.CONTENTS.Contains("不合格劳动防护用品是否禁止使用并得到了妥善处理?") && t.PRODUCTION_UNIT == "选矿厂");
if (auto64 != null)
{
auto64.RESULT_SCORE = deviceScrap == null ? "0" : "2";
autoDetails.Add(auto64);
}
var auto65 = autoAll.FirstOrDefault(t => t.CONTENTS.Contains("提供劳动防护用品的供应商是否具备相应的资质?") && t.PRODUCTION_UNIT == "选矿厂");
if (auto65 != null)
{
auto65.RESULT_SCORE = related == null ? "0" : "2";
autoDetails.Add(auto65);
}
var auto66 = autoAll.FirstOrDefault(t => t.CONTENTS.Contains("是否建立劳动防护用品发放台账?") && t.PRODUCTION_UNIT == "选矿厂");
if (auto66 != null)
{
auto66.RESULT_SCORE = deviceIssue == null ? "0" : "4";
autoDetails.Add(auto66);
}
var auto67 = autoAll.FirstOrDefault(t => t.CONTENTS.Contains("所提供的劳动防护用品是否与可能的风险相适应?") && t.PRODUCTION_UNIT == "选矿厂");
if (auto67 != null)
{
auto67.RESULT_SCORE = "0";
autoDetails.Add(auto67);
}
var auto68 = autoAll.FirstOrDefault(t => t.CONTENTS.Contains("接受正确使用和维护劳动防护用品培训的员工比例:") && t.PRODUCTION_UNIT == "选矿厂");
var resultScore68 = 0;
if (rate >= 90)
{
resultScore68 = 6;
}
else if (rate >= 75 && rate < 90)
{ resultScore68 = 3; }
else if (rate >= 60 && rate < 75)
{ resultScore68 = 1; }
if (auto68 != null)
{
auto68.RESULT_SCORE = resultScore68.ToString();
autoDetails.Add(auto68);
}
var auto69 = autoAll.FirstOrDefault(t => t.CONTENTS.Contains("员工是否正确使用和维护劳动防护用品?") && t.PRODUCTION_UNIT == "选矿厂");
if (auto69 != null)
{
auto69.RESULT_SCORE = deviceMaintenance == null || changeShift3 == null ? "0" : "4";
autoDetails.Add(auto69);
}
var auto70 = autoAll.FirstOrDefault(t => t.CONTENTS.Contains("是否由于没有正确提供或使用劳动防护用品而导致事故、事件的发生?") && t.PRODUCTION_UNIT == "选矿厂");
if (auto70 != null)
{
auto70.RESULT_SCORE = accidentReason == null ? "4" : "0";
autoDetails.Add(auto70);
}
#endregion
UnifiedCommit(() =>
{
if (autoDetails != null && autoDetails.Any())
BantchSaveEntityNoCommit(autoDetails);
});
}
catch (Exception ex)
{
if (!string.IsNullOrEmpty(ex.StackTrace))
throw new Exception("错误日志:[StackTrace]" + ex.StackTrace);
else
throw new Exception("【" + HttpContext.Request.Path + "】错误日志:[Message]" + ex.Message);
}
return true;
});
}
/// <summary>
/// 自动化得分-风险管理模块
/// </summary>
/// <param name="filter"></param>
/// <returns></returns>
public JsonActionResult<bool> HMSync([FromBody] KeywordFilter filter)
{
return SafeExecute<bool>(() =>
{
try
{
List<T_PE_STANDARDIZED_SCORE_AUTO_DETAIL> autoDetails = new List<T_PE_STANDARDIZED_SCORE_AUTO_DETAIL>();
#region
var autoAll = this.GetEntities<T_PE_STANDARDIZED_SCORE_AUTO_DETAIL>(null, new BaseFilter(filter.OrgId));
var standards = this.GetEntities<T_SC_STANDARD_CREATE>(t => t.NAME.Contains("危险源辨识与风险评价") || t.NAME.Contains("关键任务识别与分析制度") || t.NAME.Contains("许可作业管理") || t.NAME.Contains("任务观察制度"), new BaseFilter(filter.OrgId));
var standard = standards.FirstOrDefault(t => t.NAME.Contains("危险源辨识与风险评价"));
var auto = autoAll.FirstOrDefault(t => t.CONTENTS.Contains("是否建立了危险源辨识与风险评价的管理制度?") && t.PRODUCTION_UNIT == "露天矿");
if (auto != null)
{
auto.RESULT_SCORE = standard == null ? "0" : "2";
autoDetails.Add(auto);
}
var meetings = this.GetEntities<T_SC_MT_MEETING>(t => t.THEME.Contains("危险源辨识与风险评价") || t.THEME.Contains("作业指导书") || t.THEME.Contains("许可作业"), new BaseFilter(filter.OrgId));
var meeting = meetings.FirstOrDefault(t => t.NAME.Contains("危险源辨识与风险评价"));
var auto2 = autoAll.FirstOrDefault(t => t.CONTENTS.Contains("制度是否明确风险评价的方法、流程及风险层次控制原则?") && t.PRODUCTION_UNIT == "露天矿");
if (auto2 != null)
{
auto2.RESULT_SCORE = meeting == null ? "0" : "2";
autoDetails.Add(auto2);
}
var auto3 = autoAll.FirstOrDefault(t => t.CONTENTS.Contains("制度是否明确了持续风险评价的要求?") && t.PRODUCTION_UNIT == "露天矿");
if (auto3 != null)
{
auto3.RESULT_SCORE = meeting == null ? "0" : "1";
autoDetails.Add(auto3);
}
var evaluationPlan = this.GetEntity<T_HM_EVALUATION_PLAN>(t => t.EVALUATION_DATE.Year == DateTime.Now.Year && t.STATUS == FOPreMeetingStatusEnum.);
var auto4 = autoAll.FirstOrDefault(t => t.CONTENTS.Contains("是否进行危险源辨识与风险评价,并确定重大危险源?") && t.PRODUCTION_UNIT == "露天矿");
if (auto4 != null)
{
auto4.RESULT_SCORE = evaluationPlan == null ? "0" : "4";
autoDetails.Add(auto4);
}
var riskTask4 = this.GetEntity<T_HM_RISK_TASK>(t => t.CHANGE_IDENTIFY_EVALUATION_ID != null);
var auto5 = autoAll.FirstOrDefault(t => t.CONTENTS.Contains("是否已通过初始及持续的风险评价,对风险评价实施动态管理?") && t.PRODUCTION_UNIT == "露天矿");
if (auto5 != null)
{
auto5.RESULT_SCORE = riskTask4 == null ? "0" : "2";
autoDetails.Add(auto5);
}
var auto6 = autoAll.FirstOrDefault(t => t.CONTENTS.Contains("是否定期或及时对危险源辨识与风险评价进行回顾?") && t.PRODUCTION_UNIT == "露天矿");
if (auto6 != null)
{
auto6.RESULT_SCORE = meeting == null ? "0" : "1";
autoDetails.Add(auto6);
}
var auto7 = autoAll.FirstOrDefault(t => t.CONTENTS.Contains("风险评价的结果是否文件化?") && t.PRODUCTION_UNIT == "露天矿");
if (auto7 != null)
{
auto7.RESULT_SCORE = evaluationPlan == null ? "0" : "2";
autoDetails.Add(auto7);
}
var taskAreaCount = this.GetEntities<T_HM_RISK_TASK_AREA>(null,new BaseFilter(filter.OrgId)).Select(m=>m.AREA_ID).Distinct().ToList().Count();
var areaCount = this.GetCount<T_HM_RISK_AREA>(null, new BaseFilter(filter.OrgId));
var rate = Math.Round((decimal)taskAreaCount / areaCount * 100, 2);
var auto8 = autoAll.FirstOrDefault(t => t.CONTENTS.Contains("危险源辨识与风险评价的范围是否涵盖所有的过程、活动、场所及周边环境?") && t.PRODUCTION_UNIT == "露天矿");
if (auto8 != null)
{
auto8.RESULT_SCORE = rate >= 60 ? "3" : "0";
autoDetails.Add(auto8);
}
var changeIdentifys = this.GetEntities<T_PR_CHANGE_IDENTIFY_EVALUATION_TYPE>(t=> t.Nav_Type != null && t.Nav_Type.NAME.Contains("相关方") || t.Nav_Type.NAME.Contains("生产作业过程"), new BaseFilter(filter.OrgId));
var changeIdentifyIds2 = changeIdentifys.Where(t => t.Nav_Type.NAME.Contains("相关方")).Select(m => m.CHANGE_IDENTIFY_EVALUATION_ID).Distinct().ToList();
var riskTask = this.GetEntity<T_HM_RISK_TASK>(t => changeIdentifyIds2.Contains((Guid)t.CHANGE_IDENTIFY_EVALUATION_ID));
var auto9 = autoAll.FirstOrDefault(t => t.CONTENTS.Contains("危险源辨识与风险评价过程是否考虑了相关方的活动?") && t.PRODUCTION_UNIT == "露天矿");
if (auto9 != null)
{
auto9.RESULT_SCORE = riskTask != null ? "3" : "0";
autoDetails.Add(auto9);
}
var changeIdentifyIds3 = changeIdentifys.Where(t => t.Nav_Type.NAME.Contains("生产作业过程")).Select(m => m.CHANGE_IDENTIFY_EVALUATION_ID).Distinct().ToList();
var riskTask2 = this.GetEntity<T_HM_RISK_TASK>(t => changeIdentifyIds3.Contains((Guid)t.CHANGE_IDENTIFY_EVALUATION_ID));
var auto10 = autoAll.FirstOrDefault(t => t.CONTENTS.Contains("是否认定并评估工作或活动的次生风险?") && t.PRODUCTION_UNIT == "露天矿");
if (auto10 != null)
{
auto10.RESULT_SCORE = riskTask2 != null ? "3" : "0";
autoDetails.Add(auto10);
}
var riskTask3 = this.GetEntity<T_HM_RISK_TASK>(t => t.Nav_Request != null && t.Nav_Request.NAME.Contains("考虑了正常和非正常的情况以及潜在的事故和紧急情况"));
var auto11 = autoAll.FirstOrDefault(t => t.CONTENTS.Contains("是否考虑了正常和非正常的情况以及潜在的事故和紧急情况?") && t.PRODUCTION_UNIT == "露天矿");
if (auto11 != null)
{
auto11.RESULT_SCORE = riskTask3 != null ? "3" : "0";
autoDetails.Add(auto11);
}
var evaluateResult = this.GetEntity<T_HM_EVALUATE_RESULT>(t => t.Nav_Requirement != null && t.Nav_Requirement.NAME.Contains("风险评价应考虑内部和外部的变化"));
var auto12 = autoAll.FirstOrDefault(t => t.CONTENTS.Contains("风险评价时是否要求考虑内部和外部的变化?") && t.PRODUCTION_UNIT == "露天矿");
if (auto12 != null)
{
auto12.RESULT_SCORE = evaluateResult != null ? "3" : "0";
autoDetails.Add(auto12);
}
var auto13 = autoAll.FirstOrDefault(t => t.CONTENTS.Contains("危险源辨识与风险评价制度规定的职责是否明确?") && t.PRODUCTION_UNIT == "露天矿");
if (auto13 != null)
{
auto13.RESULT_SCORE = meeting == null ? "0" : "3";
autoDetails.Add(auto13);
}
var auto14 = autoAll.FirstOrDefault(t => t.CONTENTS.Contains("制度规定的风险评价流程是否清楚?") && t.PRODUCTION_UNIT == "露天矿");
if (auto14 != null)
{
auto14.RESULT_SCORE = meeting == null ? "0" : "3";
autoDetails.Add(auto14);
}
var auto15 = autoAll.FirstOrDefault(t => t.CONTENTS.Contains("风险评价方法是否合理?") && t.PRODUCTION_UNIT == "露天矿");
if (auto15 != null)
{
auto15.RESULT_SCORE = meeting == null ? "0" : "3";
autoDetails.Add(auto15);
}
var indivdualMeasures = this.GetCount<T_HM_EVALUATE_RESULT_RISK_INDIVIDUAL_MEASURES>(t => true, new BaseFilter(filter.OrgId));
var engineeringMeasures = this.GetCount<T_HM_EVALUATE_RESULT_RISK_ENGINEERING_MEASURES>(t => true, new BaseFilter(filter.OrgId));
var managementMeasures = this.GetCount<T_HM_EVALUATE_RESULT_RISK_MANAGEMENT_MEASURES>(t => true, new BaseFilter(filter.OrgId));
var resultScore16 = 0;
if (indivdualMeasures > 0)
{
resultScore16 = resultScore16 + 1;
}
if (engineeringMeasures > 0)
{
resultScore16 = resultScore16 + 1;
}
if (managementMeasures > 0)
{
resultScore16 = resultScore16 + 1;
}
var auto16 = autoAll.FirstOrDefault(t => t.CONTENTS.Contains("风险控制措施是否包括:工程控制措施;管理控制措施;个体防护措施?") && t.PRODUCTION_UNIT == "露天矿");
if (auto16 != null)
{
auto16.RESULT_SCORE = resultScore16.ToString();
autoDetails.Add(auto16);
}
var changeShift = this.GetCount<T_FO_CHANGE_SHIFT_RECORD>(t => t.SHIFT_STATUS == (int)FOChangeShiftStatusEnum., new BaseFilter(filter.OrgId));
var jobActivity = this.GetCount<T_FO_JOB_ACTIVITY_RECORD>(t => t.FORM_STATUS == (int)FOTeamActivityState., new BaseFilter(filter.OrgId));
var deviceCheck = this.GetCount<T_DM_DEVICE_CHECK>(t => t.CHECKTYPE == CheckType.Check, new BaseFilter(filter.OrgId));
var jobEvent = this.GetCount<T_FO_JOB_EVENT_RECORD>(t => true, new BaseFilter(filter.OrgId));
var safeCheck = this.GetCount<T_BS_SAFE_CHECK>(t => t.Nav_CheckType!=null && (t.Nav_CheckType.NAME == "例行检查"|| t.Nav_CheckType.NAME == "巡回检查"), new BaseFilter(filter.OrgId));
var inspectionRecord = this.GetCount<T_DM_DETECTION_INSPECTION_RECORD>(t => t.TIME.Value.Year == DateTime.Now.Year, new BaseFilter(filter.OrgId));
var safetyEvaluation = this.GetCount<T_PE_SAFETY_EVALUATION_RECORD>(t => t.YEAR == DateTime.Now.Year.ToString(), new BaseFilter(filter.OrgId));
var teamActivity = this.GetCount<T_FO_TEAM_ACTIVITY>(t => t.TITLE.Contains("作业活动的危险预知"), new BaseFilter(filter.OrgId));
var resultScore17 = 0;
if (changeShift > 0)
{
resultScore17 = resultScore17 + 1;
}
if (jobActivity > 0)
{
resultScore17 = resultScore17 + 1;
}
if (deviceCheck > 0)
{
resultScore17 = resultScore17 + 1;
}
if (jobEvent > 0)
{
resultScore17 = resultScore17 + 1;
}
if (safeCheck > 0)
{
resultScore17 = resultScore17 + 1;
}
if (inspectionRecord > 0)
{
resultScore17 = resultScore17 + 1;
}
if (safetyEvaluation > 0)
{
resultScore17 = resultScore17 + 1;
}
if (teamActivity > 0)
{
resultScore17 = resultScore17 + 1;
}
var auto17 = autoAll.FirstOrDefault(t => t.CONTENTS.Contains("是否采用下列方式开展持续风险识别与评价:使用前检查;计划任务观察;设备检查;班前安全检查确认;定期安全检查;定期检修;安全生产标准化系统评价;班组危险预知活动?") && t.PRODUCTION_UNIT == "露天矿");
if (auto17 != null)
{
auto17.RESULT_SCORE = resultScore17.ToString();
autoDetails.Add(auto17);
}
var evalationIdentify = this.GetCount<T_HM_EVALUATION_DETAIL_IDENTIFYING>(t => t.Nav_Identifying != null && (t.Nav_Identifying.NAME == "作业人员" || t.Nav_Identifying.NAME == "设备设施" || t.Nav_Identifying.NAME == "作业过程" || t.Nav_Identifying.NAME == "作业环境" || t.Nav_Identifying.NAME == "安全管理" || t.Nav_Identifying.NAME == "职业危害辨识"), new BaseFilter(filter.OrgId));
var auto18 = autoAll.FirstOrDefault(t => t.CONTENTS.Contains("是否制定了下列风险评价的计划:周边环境风险评价;关键设备风险评价;重要设施风险评价;重要场所风险评价;主要作业过程风险评价;职业卫生风险评价?") && t.PRODUCTION_UNIT == "露天矿");
if (auto18 != null)
{
auto18.RESULT_SCORE = evalationIdentify == 0 ? "0" : (2 * evalationIdentify).ToString();
autoDetails.Add(auto18);
}
var auto19 = autoAll.FirstOrDefault(t => t.CONTENTS.Contains("是否针对下列方面开展了风险评价:周边环境;关键设备;重要设施;重要场所;主要作业过程;职业卫生?") && t.PRODUCTION_UNIT == "露天矿");
if (auto19 != null)
{
auto19.RESULT_SCORE = evalationIdentify == 0 ? "0" : evalationIdentify.ToString();
autoDetails.Add(auto19);
}
var auto20 = autoAll.FirstOrDefault(t => t.CONTENTS.Contains("是否根据风险评价结果制定了针对性的风险控制措施?") && t.PRODUCTION_UNIT == "露天矿");
if (auto20 != null)
{
auto20.RESULT_SCORE = resultScore16.ToString();
autoDetails.Add(auto20);
}
var hazardTask = this.GetCount<T_HM_HAZARD_TASK_DETAIL_IDENTIFYING>(t => t.Nav_Identifying != null && (t.Nav_Identifying.NAME == "粉尘" || t.Nav_Identifying.NAME == "高温与低温" || t.Nav_Identifying.NAME == "振动与噪声" || t.Nav_Identifying.NAME == "辐射" || t.Nav_Identifying.NAME == "毒物" || t.Nav_Identifying.NAME == "生物危害" || t.Nav_Identifying.NAME == "其他"), new BaseFilter(filter.OrgId));
var auto21 = autoAll.FirstOrDefault(t => t.CONTENTS.Contains("是否已识别和评价下列职业危害及其影响:粉尘;高温与低温;振动与噪声;辐射;毒物;生物危害;其他?") && t.PRODUCTION_UNIT == "露天矿");
if (auto21 != null)
{
auto21.RESULT_SCORE = hazardTask == 0 ? "0" : (0.5 * hazardTask).ToString();
autoDetails.Add(auto21);
}
var hazardMonitor = this.GetCount<T_OH_HAZARD_MONITOR_JOB>(t => true, new BaseFilter(filter.OrgId));
var auto22 = autoAll.FirstOrDefault(t => t.CONTENTS.Contains("是否对已识别的、可能造成严重风险的职业危害进行了监测?") && t.PRODUCTION_UNIT == "露天矿");
if (auto22 != null)
{
auto22.RESULT_SCORE = hazardMonitor == 0 ? "0" : "4";
autoDetails.Add(auto22);
}
var evalationIdentify2 = this.GetCount<T_HM_EVALUATION_DETAIL_IDENTIFYING>(t => t.Nav_Identifying != null && (t.Nav_Identifying.NAME == "滑坡" || t.Nav_Identifying.NAME == "泥石流" || t.Nav_Identifying.NAME == "火灾" || t.Nav_Identifying.NAME == "意外爆炸" || t.Nav_Identifying.NAME == "水灾"), new BaseFilter(filter.OrgId));
var auto23 = autoAll.FirstOrDefault(t => t.CONTENTS.Contains("是否已识别和评价下列灾害及其影响?滑坡;泥石流;火灾;意外爆炸;水灾?") && t.PRODUCTION_UNIT == "露天矿");
if (auto23 != null)
{
auto23.RESULT_SCORE = evalationIdentify2 == 0 ? "0" : (0.5* evalationIdentify2).ToString();
autoDetails.Add(auto23);
}
var auto24 = autoAll.FirstOrDefault(t => t.CONTENTS.Contains("初始风险评价结果是否已文件化?") && t.PRODUCTION_UNIT == "露天矿");
if (auto24 != null)
{
auto24.RESULT_SCORE = evaluationPlan == null ? "0" : "4";
autoDetails.Add(auto24);
}
var riskRecordDeatil = this.GetCount<T_HM_RISK_RECORD_DETAIL>(t =>t.RISK_NAME.Contains("暴雨") || t.RISK_NAME.Contains("地震") || t.RISK_NAME.Contains("洪水") || t.RISK_NAME.Contains("泥石流")
|| t.RISK_NAME.Contains("山体滑坡") || t.RISK_NAME.Contains("台风") || t.RISK_NAME.Contains("暴雪"), new BaseFilter(filter.OrgId));
var auto25 = autoAll.FirstOrDefault(t => t.CONTENTS.Contains("在对周边环境进行风险评价时,是否考虑了自然灾害及外部机构的影响?") && t.PRODUCTION_UNIT == "露天矿");
if (auto25 != null)
{
auto25.RESULT_SCORE = riskRecordDeatil == 0 ? "0" : "5";
autoDetails.Add(auto25);
}
var detailWorkduty = this.GetCount<T_HM_RISK_RECORD_DETAIL_WORKDUTY>(t => true, new BaseFilter(filter.OrgId));
var auto26 = autoAll.FirstOrDefault(t => t.CONTENTS.Contains("在对关键设备进行风险评价时,是否考虑了设备与工艺参数的匹配问题?") && t.PRODUCTION_UNIT == "露天矿");
if (auto26 != null)
{
auto26.RESULT_SCORE = detailWorkduty == 0 ? "0" : "5";
autoDetails.Add(auto26);
}
var hazardMonitor2 = this.GetCount<T_OH_HAZARD_MONITOR_JOB>(t => t.MONITOR_TIME.Value.Year == DateTime.Now.Year, new BaseFilter(filter.OrgId));
var hazardMonitorRule = this.GetEntity<T_OH_HAZARD_MONITOR_RULE>(t => true);
var qty = 0;
if (hazardMonitorRule != null)
{
switch (hazardMonitorRule.MONITOR_INTERVAL)
{
case BSPLANCHECKFREQUENCYEnum.Date:
qty = 365;
break;
case BSPLANCHECKFREQUENCYEnum.Week:
qty = 52;
break;
case BSPLANCHECKFREQUENCYEnum.Month:
qty = 12;
break;
case BSPLANCHECKFREQUENCYEnum.Quarter:
qty = 4;
break;
case BSPLANCHECKFREQUENCYEnum.HalfYear:
qty = 2;
break;
case BSPLANCHECKFREQUENCYEnum.Year:
qty = 1;
break;
}
}
var auto27 = autoAll.FirstOrDefault(t => t.CONTENTS.Contains("对识别的、可能造成严重健康风险的危害进行监测的比例:") && t.PRODUCTION_UNIT == "露天矿");
var rate2 = (decimal)0;
if (qty != 0)
{
rate2 = Math.Round((decimal)hazardMonitor2 / qty, 2);
}
if (auto27 != null)
{
auto27.RESULT_SCORE = rate2 >= 60 ? "6" : "0";
autoDetails.Add(auto27);
}
var riskRecordDetail = this.GetCount<T_HM_RISK_RECORD_DETAIL>(t => t.Nav_Identifying!=null && t.Nav_Identifying.NAME == "作业环境" && t.Nav_Type!=null && t.Nav_Type.NAME == "淹没" && t.Nav_OperationStep!=null
&& (t.Nav_OperationStep.NAME.Contains("河")|| t.Nav_OperationStep.NAME.Contains("湖") || t.Nav_OperationStep.NAME.Contains("江") || t.Nav_OperationStep.NAME.Contains("雨")
|| t.Nav_OperationStep.NAME.Contains("雪") || t.Nav_OperationStep.NAME.Contains("溶洞")), new BaseFilter(filter.OrgId));
var auto28 = autoAll.FirstOrDefault(t => t.CONTENTS.Contains("在水灾风险评价时,是否考虑了下列水源:地下水;地表水;降雨及融雪?") && t.PRODUCTION_UNIT == "露天矿");
if (auto28 != null)
{
auto28.RESULT_SCORE = riskRecordDetail == 0 ? "0" : (0.5* riskRecordDetail).ToString();
autoDetails.Add(auto28);
}
var riskRecordDetail2 = this.GetCount<T_HM_RISK_RECORD_DETAIL>(t => t.Nav_Identifying != null && t.Nav_Identifying.NAME == "作业环境" && t.Nav_Type != null && t.Nav_Type.NAME == "坍塌" && t.Nav_OperationStep != null
&& (t.Nav_OperationStep.NAME.Contains("岩性") || t.Nav_OperationStep.NAME.Contains("结构") || t.Nav_OperationStep.NAME.Contains("雨") || t.Nav_OperationStep.NAME.Contains("支护")
|| t.Nav_OperationStep.NAME.Contains("爆破")), new BaseFilter(filter.OrgId));
var auto29 = autoAll.FirstOrDefault(t => t.CONTENTS.Contains("在滑坡、泥石流风险评价时,是否考虑了下列可能的致因因素:矿岩性质;结构面与软岩夹层;水文地质条件与雨水冲刷;支护与加固;爆破震动等?") && t.PRODUCTION_UNIT == "露天矿");
if (auto29 != null)
{
auto29.RESULT_SCORE = riskRecordDetail2 == 0 ? "0" : riskRecordDetail2.ToString();
autoDetails.Add(auto29);
}
var riskRecordDetail3 = this.GetCount<T_HM_RISK_RECORD_DETAIL>(t => t.Nav_Identifying != null && t.Nav_Identifying.NAME == "设备设施" && t.Nav_Type != null && t.Nav_Type.NAME == "机械伤害" && t.Nav_OperationStep != null
&& (t.Nav_OperationStep.NAME.Contains("穿孔机械") || t.Nav_OperationStep.NAME.Contains("铲装机械") || t.Nav_OperationStep.NAME.Contains("运输机械") || t.Nav_OperationStep.NAME.Contains("排土机械")
|| t.Nav_OperationStep.NAME.Contains("破碎机械") || t.Nav_OperationStep.NAME.Contains("排水机械") || t.Nav_OperationStep.NAME.Contains("压风机械") || t.Nav_OperationStep.NAME.Contains("支护机械")), new BaseFilter(filter.OrgId));
var auto30 = autoAll.FirstOrDefault(t => t.CONTENTS.Contains("在机械伤害风险评价时,是否考虑了下列方面:穿孔机械;铲装机械;运输机械;排土机械;破碎机械;排水机械;压风机械;支护机械?") && t.PRODUCTION_UNIT == "露天矿");
if (auto30 != null)
{
auto30.RESULT_SCORE = riskRecordDetail3 == 0 ? "0" : (0.5 * riskRecordDetail3).ToString();
autoDetails.Add(auto30);
}
var riskRecordDetail4 = this.GetCount<T_HM_RISK_RECORD_DETAIL>(t =>t.Nav_Type != null && (t.Nav_Type.NAME.Contains("火药爆炸")|| t.Nav_Type.NAME.Contains("锅炉爆炸")|| t.Nav_Type.NAME.Contains("其它爆炸")), new BaseFilter(filter.OrgId));
var auto31 = autoAll.FirstOrDefault(t => t.CONTENTS.Contains("在意外爆炸风险评价时,是否考虑了下列方面:燃料油;爆破器材;锅炉?") && t.PRODUCTION_UNIT == "露天矿");
if (auto31 != null)
{
auto31.RESULT_SCORE = riskRecordDetail4 == 0 ? "0" : riskRecordDetail4.ToString();
autoDetails.Add(auto31);
}
var auto32 = autoAll.FirstOrDefault(t => t.CONTENTS.Contains("周边环境、重要设施及重要场所潜在风险识别与评价的有效性:周边环境可能的影响因素均已识别与评价,如滑坡、泥石流、洪水、其他矿山爆破等;可能的重大危险源均已识别与评价,如排土场、爆破器材库、油库、锅炉房等;相关风险识别与评价的信息更新及时?") && t.PRODUCTION_UNIT == "露天矿");
if (auto32 != null)
{
auto32.RESULT_SCORE = riskTask4 == null ? "0" : "6";
autoDetails.Add(auto32);
}
var hazardRecord = this.GetEntity<T_HM_HAZARD_RECORD>(t => true);
var auto33 = autoAll.FirstOrDefault(t => t.CONTENTS.Contains("职业危害风险识别与评价的有效性: 列出了职业危害因素清单;确定了暴露于职业危害的员工人数、暴露时间及相关风险;提出了职业危害的风险控制措施?") && t.PRODUCTION_UNIT == "露天矿");
if (auto33 != null)
{
auto33.RESULT_SCORE = hazardRecord == null ? "0" : "6";
autoDetails.Add(auto33);
}
var auto34 = autoAll.FirstOrDefault(t => t.CONTENTS.Contains("危害因素的监测与测量效果:") && t.PRODUCTION_UNIT == "露天矿");
if (auto34 != null)
{
auto34.RESULT_SCORE = hazardMonitor == 0 ? "0" : "6";
autoDetails.Add(auto34);
}
var accidentEvent = this.GetEntity<T_AE_ACCIDENT_EVENT_SURVEY_REASON_TYPE>(t => t.Nav_ReasonType!=null && t.Nav_ReasonType.NAME.Contains("风险评价不充分"));
var auto35 = autoAll.FirstOrDefault(t => t.CONTENTS.Contains("是否因风险评价不充分而导致企业发生事故或财产损失?") && t.PRODUCTION_UNIT == "露天矿");
if (auto35 != null)
{
auto35.RESULT_SCORE = accidentEvent == null ? "6" : "0";
autoDetails.Add(auto35);
}
var standard2 = standards.FirstOrDefault(t => t.NAME.Contains("关键任务识别与分析制度"));
var auto36 = autoAll.FirstOrDefault(t => t.CONTENTS.Contains("是否建立了关键任务识别与分析制度?") && t.PRODUCTION_UNIT == "露天矿");
if (auto36 != null)
{
auto36.RESULT_SCORE = standard2 == null ? "0" : "3";
autoDetails.Add(auto36);
}
var standard3 = standards.FirstOrDefault(t => t.NAME.Contains("任务观察制度"));
var auto37 = autoAll.FirstOrDefault(t => t.CONTENTS.Contains("是否建立任务观察制度,确保在需要时对作业任务进行完整的或部分的观察?") && t.PRODUCTION_UNIT == "露天矿");
if (auto37 != null)
{
auto37.RESULT_SCORE = standard3 == null ? "0" : "3";
autoDetails.Add(auto37);
}
var standard4 = standards.FirstOrDefault(t => t.NAME.Contains("许可作业管理"));
var auto38 = autoAll.FirstOrDefault(t => t.CONTENTS.Contains("是否有许可作业管理制度?") && t.PRODUCTION_UNIT == "露天矿");
if (auto38 != null)
{
auto38.RESULT_SCORE = standard4 == null ? "0" : "2";
autoDetails.Add(auto38);
}
var meeting2 = meetings.FirstOrDefault(t => t.NAME.Contains("作业指导书"));
var auto39 = autoAll.FirstOrDefault(t => t.CONTENTS.Contains("编写的作业指导书是否符合下列要求:简明扼要;步骤清楚、完整;危险源辨识全面;关键步骤确定准确;安全措施齐全?") && t.PRODUCTION_UNIT == "露天矿");
if (auto39 != null)
{
auto39.RESULT_SCORE = meeting2 == null ? "0" : "10";
autoDetails.Add(auto39);
}
var crucialTaskDetail=this.GetEntities<T_HM_CRUCIAL_TASK_DETAIL>(t => t.Nav_Files!=null,new BaseFilter(filter.OrgId)).Select(m=>m.CRUCIAL_TASK_ANALYSIS_ID).Distinct().Count();
var licenseAnalysisDetail = this.GetEntities<T_HM_LICENSE_ANALYSIS_DETAIL>(t => t.Nav_Files != null, new BaseFilter(filter.OrgId)).Select(m => m.LICENSE_ANALYSIS_ID).Distinct().Count();
var crucialTask = this.GetCount<T_HM_CRUCIAL_TASK_ANALYSIS>(t => true, new BaseFilter(filter.OrgId));
var licenseAnalysis = this.GetCount<T_HM_LICENSE_ANALYSIS>(t => true, new BaseFilter(filter.OrgId));
var resultScore40 = 0; var resultScore93 = 0;
if (crucialTask + licenseAnalysis > 0)
{
var rate40 = Math.Round((decimal)(crucialTaskDetail + licenseAnalysisDetail) / (crucialTask + licenseAnalysis), 2);
if (rate40 >= 60)
{
resultScore40 = 2;
resultScore93 = 3;
}
}
var auto40 = autoAll.FirstOrDefault(t => t.CONTENTS.Contains("是否已依据风险分析结果编制关键任务作业指导书?") && t.PRODUCTION_UNIT == "露天矿");
if (auto40 != null)
{
auto40.RESULT_SCORE = resultScore40.ToString();
autoDetails.Add(auto40);
}
var trainNotify = this.GetEntity<T_SE_TRAIN_NOTIFY>(t => t.NAME.Contains("关键许可作业活动记录培训通知") && t.Nav_TrainType != null && t.Nav_TrainType.NAME == "日常培训");
var auto41 = autoAll.FirstOrDefault(t => t.CONTENTS.Contains("是否就关键任务作业指导书对相关作业人员进行培训?") && t.PRODUCTION_UNIT == "露天矿");
if (auto41 != null)
{
auto41.RESULT_SCORE = trainNotify != null ? "2":"0";
autoDetails.Add(auto41);
}
var shiftMeeting = this.GetEntity<T_FO_PRE_SHIFT_MEETING_RECORD>(t =>!string.IsNullOrEmpty(t.JOB_CONTENT) && !string.IsNullOrEmpty(t.PROTECT_MEASURE));
var auto42 = autoAll.FirstOrDefault(t => t.CONTENTS.Contains("作业前或班组安全例会是否讨论作业指导书?") && t.PRODUCTION_UNIT == "露天矿");
if (auto42 != null)
{
auto42.RESULT_SCORE = shiftMeeting != null ? "2" : "0";
autoDetails.Add(auto42);
}
var jobIdentify = this.GetEntity<T_HM_JOBTASK_IDENTIFY>(t => true);
var auto43 = autoAll.FirstOrDefault(t => t.CONTENTS.Contains("是否认定了需要许可的作业范围?") && t.PRODUCTION_UNIT == "露天矿");
if (auto43 != null)
{
auto43.RESULT_SCORE = jobIdentify != null ? "2" : "0";
autoDetails.Add(auto43);
}
var filePublish = this.GetEntity<T_HM_FILE_PUBLISH>(t => t.NAME.Contains("许可作业清单"));
var auto44 = autoAll.FirstOrDefault(t => t.CONTENTS.Contains("是否将认定的需要许可的范围清单发放给受影响部门?") && t.PRODUCTION_UNIT == "露天矿");
if (auto44 != null)
{
auto44.RESULT_SCORE = filePublish != null ? "2" : "0";
autoDetails.Add(auto44);
}
var auto45 = autoAll.FirstOrDefault(t => t.CONTENTS.Contains("是否按计划执行了任务观察?") && t.PRODUCTION_UNIT == "露天矿");
if (auto45 != null)
{
auto45.RESULT_SCORE = jobActivity != 0 ? "2" : "0";
autoDetails.Add(auto45);
}
var auto46 = autoAll.FirstOrDefault(t => t.CONTENTS.Contains("是否针对观察发现的问题提出有针对性的改正意见?") && t.PRODUCTION_UNIT == "露天矿");
if (auto46 != null)
{
auto46.RESULT_SCORE = jobActivity != 0 ? "2" : "0";
autoDetails.Add(auto46);
}
var approveReward = this.GetEntity<T_OG_APPROVE_REWARD_PUNISHMENT_REPORT>(t => t.TYPE == OGRewardPunishmentType. && t.Nav_Reason!=null &&(t.Nav_Reason.NAME.Contains("作业行为规范") || t.Nav_Reason.NAME.Contains("事故防范措施到位")));
var auto47 = autoAll.FirstOrDefault(t => t.CONTENTS.Contains("任务观察时是否对好的行为给予赞誉与强化?") && t.PRODUCTION_UNIT == "露天矿");
if (auto47 != null)
{
auto47.RESULT_SCORE = approveReward != null ? "2" : "0";
autoDetails.Add(auto47);
}
var auto48 = autoAll.FirstOrDefault(t => t.CONTENTS.Contains("关键任务有作业指导书的比例:") && t.PRODUCTION_UNIT == "露天矿");
if (auto48 != null)
{
auto48.RESULT_SCORE = trainNotify != null ? "3" : "0";
autoDetails.Add(auto48);
}
var auto49 = autoAll.FirstOrDefault(t => t.CONTENTS.Contains("作业指导书是否明确:主要作业内容;作业过程可能的危险有害因素作业程序;作业过程的安全注意事项;紧急情况下的现场应急处置措施?") && t.PRODUCTION_UNIT == "露天矿");
if (auto49 != null)
{
auto49.RESULT_SCORE = meeting2 == null ? "0" : "5";
autoDetails.Add(auto49);
}
var auto50 = autoAll.FirstOrDefault(t => t.CONTENTS.Contains("执行关键任务的人员接受作业指导书培训的比例:") && t.PRODUCTION_UNIT == "露天矿");
if (auto50 != null)
{
auto50.RESULT_SCORE = trainNotify != null ? "4" : "0";
autoDetails.Add(auto50);
}
var auto51 = autoAll.FirstOrDefault(t => t.CONTENTS.Contains("所有执行观察的人员接受培训的比例:") && t.PRODUCTION_UNIT == "露天矿");
if (auto51 != null)
{
auto51.RESULT_SCORE = trainNotify != null ? "3" : "0";
autoDetails.Add(auto51);
}
var auto52 = autoAll.FirstOrDefault(t => t.CONTENTS.Contains("针对观察发现的问题提出有针对性的改正意见的比例:") && t.PRODUCTION_UNIT == "露天矿");
if (auto52 != null)
{
auto52.RESULT_SCORE = jobActivity != 0 ? "3" : "0";
autoDetails.Add(auto52);
}
var auto53 = autoAll.FirstOrDefault(t => t.CONTENTS.Contains("许可作业前是否做到:作业风险已识别; 已办理作业许可证;参与作业的人员已讨论作业风险及其控制措施?") && t.PRODUCTION_UNIT == "露天矿");
if (auto53 != null)
{
auto53.RESULT_SCORE = jobActivity != 0 ? "6" : "0";
autoDetails.Add(auto53);
}
var auto54 = autoAll.FirstOrDefault(t => t.CONTENTS.Contains("许可作业前是否做到:作业风险已识别; 已办理作业许可证;参与作业的人员已讨论作业风险及其控制措施?") && t.PRODUCTION_UNIT == "露天矿");
if (auto54 != null)
{
auto54.RESULT_SCORE = jobActivity != 0 ? "6" : "0";
autoDetails.Add(auto54);
}
var auto55 = autoAll.FirstOrDefault(t => t.CONTENTS.Contains("任务观察的有效性:在观察的同时辨识危险源和评估风险;及时指出观察中发现的可能导致损失的行为;了解员工的工作习惯;检查现有的工作方法与制度;跟踪当前培训效果?") && t.PRODUCTION_UNIT == "露天矿");
if (auto55 != null)
{
auto55.RESULT_SCORE = jobActivity != 0 ? "10" : "0";
autoDetails.Add(auto55);
}
var job = this.GetCount<T_FO_CRUCIAL_LICENSE_JOB>(t => t.IS_PUBLISH == 5,new BaseFilter(filter.OrgId));
var preOper = this.GetCount<T_FO_PRE_OPER_SCH>(t => t.FORM_STATUS == 2, new BaseFilter(filter.OrgId));
var techForm = this.GetCount<T_FO_TECH_DISCLOSURE_FROM>(t => t.FORM_STATUS == 2, new BaseFilter(filter.OrgId));
var meeting3 = meetings.FirstOrDefault(t => t.NAME.Contains("许可作业"));
var auto56 = autoAll.FirstOrDefault(t => t.CONTENTS.Contains("工作许可的有效性:许可作业的范围认定准确;作业风险识别正确、全面;许可审批程序明确、执行严格;作业前的检查确认充分;许可作业的现场应急处置措施具体、可行;许可作业范围的评审、更新及时;作业前的技术交底充分;作业前参与作业的人员对作业方案进行充分讨论,必要时,予以补充完善?") && t.PRODUCTION_UNIT == "露天矿");
var resultScore56 = 0;
if (jobIdentify != null)
{
resultScore56 = resultScore56 + 1;
}
if (jobActivity != 0)
{
resultScore56 = resultScore56 + 1;
}
if (licenseAnalysis != 0)
{
resultScore56 = resultScore56 + 1;
}
if (job != 0)
{
resultScore56 = resultScore56 + 2;
}
if (preOper != 0)
{
resultScore56 = resultScore56 + 1;
}
if (techForm != 0)
{
resultScore56 = resultScore56 + 1;
}
if (meeting3 != null)
{
resultScore56 = resultScore56 + 1;
}
if (auto56 != null)
{
auto56.RESULT_SCORE = resultScore56.ToString();
autoDetails.Add(auto56);
}
var accidentEvent2 = this.GetEntity<T_AE_ACCIDENT_EVENT_SURVEY_REASON_TYPE>(t => t.Nav_ReasonType != null && (t.Nav_ReasonType.NAME.Contains("业指导书内容不全面")|| t.Nav_ReasonType.NAME.Contains("缺乏实际指导意义")));
var auto57 = autoAll.FirstOrDefault(t => t.CONTENTS.Contains("是否因作业指导书的原因导致事件、事故的发生?") && t.PRODUCTION_UNIT == "露天矿");
if (auto57 != null)
{
auto57.RESULT_SCORE = accidentEvent2 != null ? "0" : "4";
autoDetails.Add(auto57);
}
#endregion
#region
var auto58 = autoAll.FirstOrDefault(t => t.CONTENTS.Contains("是否建立了危险源辨识与风险评价的管理制度?") && t.PRODUCTION_UNIT == "选矿厂");
if (auto58 != null)
{
auto58.RESULT_SCORE = standard == null ? "0" : "4";
autoDetails.Add(auto58);
}
var auto59 = autoAll.FirstOrDefault(t => t.CONTENTS.Contains("制度是否明确风险评价的方法、流程及风险层次控制原则?") && t.PRODUCTION_UNIT == "选矿厂");
if (auto59 != null)
{
auto59.RESULT_SCORE = meeting == null ? "0" : "2";
autoDetails.Add(auto59);
}
var auto60 = autoAll.FirstOrDefault(t => t.CONTENTS.Contains("制度是否明确了持续风险评价的要求?") && t.PRODUCTION_UNIT == "选矿厂");
if (auto60 != null)
{
auto60.RESULT_SCORE = meeting == null ? "0" : "2";
autoDetails.Add(auto60);
}
var auto61 = autoAll.FirstOrDefault(t => t.CONTENTS.Contains("是否进行危险源辨识与风险评价,并确定重大危险源?") && t.PRODUCTION_UNIT == "选矿厂");
if (auto61 != null)
{
auto61.RESULT_SCORE = evaluationPlan == null ? "0" : "4";
autoDetails.Add(auto61);
}
var auto62 = autoAll.FirstOrDefault(t => t.CONTENTS.Contains("是否已通过初始及持续的风险评价,对风险评价实施动态管理?") && t.PRODUCTION_UNIT == "选矿厂");
if (auto62 != null)
{
auto62.RESULT_SCORE = riskTask4 == null ? "0" : "4";
autoDetails.Add(auto62);
}
var auto63 = autoAll.FirstOrDefault(t => t.CONTENTS.Contains("是否定期或及时对危险源辨识与风险评价进行回顾?") && t.PRODUCTION_UNIT == "选矿厂");
if (auto63 != null)
{
auto63.RESULT_SCORE = meeting == null ? "0" : "4";
autoDetails.Add(auto63);
}
var auto64 = autoAll.FirstOrDefault(t => t.CONTENTS.Contains("风险评价的结果是否文件化?") && t.PRODUCTION_UNIT == "选矿厂");
if (auto64 != null)
{
auto64.RESULT_SCORE = evaluationPlan == null ? "0" : "4";
autoDetails.Add(auto64);
}
var auto65 = autoAll.FirstOrDefault(t => t.CONTENTS.Contains("危险源辨识与风险评价的范围是否涵盖所有的过程、活动、场所及周边环境:") && t.PRODUCTION_UNIT == "选矿厂");
if (auto65 != null)
{
auto65.RESULT_SCORE = rate >= 60 ? "6" : "0";
autoDetails.Add(auto65);
}
var auto66 = autoAll.FirstOrDefault(t => t.CONTENTS.Contains("是否认定并评估工作或活动的次生风险?") && t.PRODUCTION_UNIT == "选矿厂");
if (auto66 != null)
{
auto66.RESULT_SCORE = riskTask2 != null ? "6" : "0";
autoDetails.Add(auto66);
}
var auto67 = autoAll.FirstOrDefault(t => t.CONTENTS.Contains("是否考虑了正常和非正常的情况以及潜在的事故和紧急情况?") && t.PRODUCTION_UNIT == "选矿厂");
if (auto67 != null)
{
auto67.RESULT_SCORE = riskTask3 != null ? "6" : "0";
autoDetails.Add(auto67);
}
var auto68 = autoAll.FirstOrDefault(t => t.CONTENTS.Contains("风险评价时是否要求考虑内部和外部的变化?") && t.PRODUCTION_UNIT == "选矿厂");
if (auto68 != null)
{
auto68.RESULT_SCORE = evaluateResult != null ? "6" : "0";
autoDetails.Add(auto68);
}
var auto69 = autoAll.FirstOrDefault(t => t.CONTENTS.Contains("危险源辨识与风险评价制度规定的职责是否明确?") && t.PRODUCTION_UNIT == "选矿厂");
if (auto69 != null)
{
auto69.RESULT_SCORE = meeting == null ? "0" : "4";
autoDetails.Add(auto69);
}
var auto70 = autoAll.FirstOrDefault(t => t.CONTENTS.Contains("制度规定的风险评价流程是否清楚?") && t.PRODUCTION_UNIT == "选矿厂");
if (auto70 != null)
{
auto70.RESULT_SCORE = meeting == null ? "0" : "3";
autoDetails.Add(auto70);
}
var auto71 = autoAll.FirstOrDefault(t => t.CONTENTS.Contains("风险评价方法是否合理?") && t.PRODUCTION_UNIT == "选矿厂");
if (auto71 != null)
{
auto71.RESULT_SCORE = meeting == null ? "0" : "3";
autoDetails.Add(auto71);
}
var auto72 = autoAll.FirstOrDefault(t => t.CONTENTS.Contains("风险控制措施是否包括:工程控制措施;管理控制措施;个体防护措施?") && t.PRODUCTION_UNIT == "选矿厂");
if (auto72 != null)
{
auto72.RESULT_SCORE = (2 * resultScore16).ToString();
autoDetails.Add(auto72);
}
var auto73 = autoAll.FirstOrDefault(t => t.CONTENTS.Contains("是否采用下列方式开展持续风险识别与评价:使用前检查;计划任务观察;设备检查;班前安全检查确认;定期安全检查;定期检修;安全生产标准化系统评价;班组危险预知活动?") && t.PRODUCTION_UNIT == "选矿厂");
if (auto73 != null)
{
auto73.RESULT_SCORE = (2 * resultScore17).ToString();
autoDetails.Add(auto73);
}
var evalationIdentify3 = evalationIdentify >= 6 ? 5 : evalationIdentify;
var auto74 = autoAll.FirstOrDefault(t => t.CONTENTS.Contains("是否制定了下列风险评价的计划:矿石运输和周边环境风险评价;生产工艺和关键设备设施风险评价;重要场所风险评价;职业卫生风险评价;自然灾害风险评价?") && t.PRODUCTION_UNIT == "选矿厂");
if (auto74 != null)
{
auto74.RESULT_SCORE = evalationIdentify3 == 0 ? "0" : (2 * evalationIdentify3).ToString();
autoDetails.Add(auto74);
}
var auto75 = autoAll.FirstOrDefault(t => t.CONTENTS.Contains("是否针对下列方面开展了风险评价:矿石运输和周边环境;生产工艺和关键设备设施;重要场所;职业卫生;自然灾害?") && t.PRODUCTION_UNIT == "选矿厂");
if (auto75 != null)
{
auto75.RESULT_SCORE = evalationIdentify3 == 0 ? "0" : evalationIdentify3.ToString();
autoDetails.Add(auto75);
}
var resultScore18 = resultScore16 >= 4 ? 3 : resultScore16;
var auto76 = autoAll.FirstOrDefault(t => t.CONTENTS.Contains("是否根据风险评价结果制定了针对性的风险控制措施?") && t.PRODUCTION_UNIT == "选矿厂");
if (auto76 != null)
{
auto76.RESULT_SCORE = resultScore18.ToString();
autoDetails.Add(auto76);
}
var auto77 = autoAll.FirstOrDefault(t => t.CONTENTS.Contains("是否已识别和评价下列职业危害及其影响:粉尘;高温与低温;振动与噪声;辐射;毒物;照度;生物危害;其他?") && t.PRODUCTION_UNIT == "选矿厂");
if (auto77 != null)
{
auto77.RESULT_SCORE = hazardTask == 0 ? "0" : (0.5 * hazardTask).ToString();
autoDetails.Add(auto77);
}
var auto78 = autoAll.FirstOrDefault(t => t.CONTENTS.Contains("是否对已识别的、可能造成严重风险的职业危害进行了监测?") && t.PRODUCTION_UNIT == "选矿厂");
if (auto78 != null)
{
auto78.RESULT_SCORE = hazardMonitor == 0 ? "0" : "2";
autoDetails.Add(auto78);
}
var evalationIdentify5 = this.GetCount<T_HM_EVALUATION_DETAIL_IDENTIFYING>(t => t.Nav_Identifying != null && (t.Nav_Identifying.NAME == "机械伤害" || t.Nav_Identifying.NAME == "起重伤害" || t.Nav_Identifying.NAME == "高处坠落" || t.Nav_Identifying.NAME == "物体打击" || t.Nav_Identifying.NAME == "触电" || t.Nav_Identifying.NAME == "油品、危险化学品泄漏" || t.Nav_Identifying.NAME == "爆炸与火灾" || t.Nav_Identifying.NAME == "中毒"), new BaseFilter(filter.OrgId));
var auto79 = autoAll.FirstOrDefault(t => t.CONTENTS.Contains("是否已识别和评价下列灾害及其影响:机械伤害;起重伤害;高处坠落;物体打击;触电;爆炸与火灾;油品、危险化学品泄漏;中毒?") && t.PRODUCTION_UNIT == "选矿厂");
if (auto79 != null)
{
auto79.RESULT_SCORE = evalationIdentify5 == 0 ? "0" : (0.5 * evalationIdentify5).ToString();
autoDetails.Add(auto79);
}
var auto80 = autoAll.FirstOrDefault(t => t.CONTENTS.Contains("初始风险评价结果是否已文件化?") && t.PRODUCTION_UNIT == "选矿厂");
if (auto80 != null)
{
auto80.RESULT_SCORE = evaluationPlan == null ? "0" : "2";
autoDetails.Add(auto80);
}
var auto81 = autoAll.FirstOrDefault(t => t.CONTENTS.Contains("在对周边环境进行风险评价时,是否考虑了自然灾害及外部机构的影响?") && t.PRODUCTION_UNIT == "选矿厂");
if (auto81 != null)
{
auto81.RESULT_SCORE = riskRecordDeatil == 0 ? "0" : "5";
autoDetails.Add(auto81);
}
var auto82 = autoAll.FirstOrDefault(t => t.CONTENTS.Contains("在对关键设备进行风险评价时,是否考虑了设备与工艺参数的匹配问题?") && t.PRODUCTION_UNIT == "选矿厂");
if (auto82 != null)
{
auto82.RESULT_SCORE = detailWorkduty == 0 ? "0" : "4";
autoDetails.Add(auto82);
}
var riskRecordDetail5 = this.GetCount<T_HM_RISK_RECORD_DETAIL>(t => t.Nav_Identifying != null && t.Nav_Identifying.NAME == "设备设施" && t.Nav_Type != null && t.Nav_Type.NAME == "机械伤害" && t.Nav_OperationStep != null
&& (t.Nav_OperationStep.NAME.Contains("碎矿设备") || t.Nav_OperationStep.NAME.Contains("磨矿设备") || t.Nav_OperationStep.NAME.Contains("筛分设备") || t.Nav_OperationStep.NAME.Contains("选别设备")
|| t.Nav_OperationStep.NAME.Contains("带式输送机")), new BaseFilter(filter.OrgId));
var auto83 = autoAll.FirstOrDefault(t => t.CONTENTS.Contains("在机械伤害风险评价时,是否考虑了下列方面:碎矿设备;磨矿设备;筛分设备;选别设备;带式输送机?") && t.PRODUCTION_UNIT == "选矿厂");
if (auto83 != null)
{
auto83.RESULT_SCORE = riskRecordDetail5 == 0 ? "0" : riskRecordDetail5.ToString();
autoDetails.Add(auto83);
}
var auto84 = autoAll.FirstOrDefault(t => t.CONTENTS.Contains("在进行风险评价时,是否考虑了人的不安全行为?") && t.PRODUCTION_UNIT == "选矿厂");
if (auto84 != null)
{
auto84.RESULT_SCORE = "0";
autoDetails.Add(auto84);
}
var auto85 = autoAll.FirstOrDefault(t => t.CONTENTS.Contains("对识别的、可能造成严重健康风险的危害进行监测的比例:") && t.PRODUCTION_UNIT == "选矿厂");
var resultScore85 = 0;
if (rate2 >= 90)
{
resultScore85 = 4;
}
if (rate2 >= 75 && rate2 < 90)
{
resultScore85 = 2;
}
if (rate2 >= 60 && rate2 < 75)
{
resultScore85 = 1;
}
if (auto85 != null)
{
auto85.RESULT_SCORE = resultScore85.ToString();
autoDetails.Add(auto85);
}
var auto86 = autoAll.FirstOrDefault(t => t.CONTENTS.Contains("周边环境、重要设施及重要场所潜在风险识别与评价的有效性:周边环境可能的影响因素均已识别与评价,如滑坡、泥石流、洪水等;可能的重大危险源均已识别与评价,如油库、锅炉房、选矿药剂等;相关风险识别与评价的信息更新及时?") && t.PRODUCTION_UNIT == "选矿厂");
if (auto86 != null)
{
auto86.RESULT_SCORE = riskTask4 == null ? "0" : "6";
autoDetails.Add(auto86);
}
var auto87 = autoAll.FirstOrDefault(t => t.CONTENTS.Contains("职业危害风险识别与评价的有效性:列出了职业危害因素清单;确定了暴露于职业危害的员工人数、暴露时间及相关风险;提出了职业危害的风险控制措施?") && t.PRODUCTION_UNIT == "选矿厂");
if (auto87 != null)
{
auto87.RESULT_SCORE = riskTask4 == null ? "0" : "6";
autoDetails.Add(auto87);
}
var auto88 = autoAll.FirstOrDefault(t => t.CONTENTS.Contains("危害因素的监测与测量效果:") && t.PRODUCTION_UNIT == "选矿厂");
if (auto88 != null)
{
auto88.RESULT_SCORE = hazardMonitor == 0 ? "0" : "6";
autoDetails.Add(auto88);
}
var auto89 = autoAll.FirstOrDefault(t => t.CONTENTS.Contains("是否因风险评价不充分而导致企业发生事故或财产损失?") && t.PRODUCTION_UNIT == "选矿厂");
if (auto89 != null)
{
auto89.RESULT_SCORE = accidentEvent == null ? "0" : "4";
autoDetails.Add(auto89);
}
var auto90 = autoAll.FirstOrDefault(t => t.CONTENTS.Contains("是否建立了关键任务识别与分析制度?") && t.PRODUCTION_UNIT == "选矿厂");
if (auto90 != null)
{
auto90.RESULT_SCORE = standard2 == null ? "0" : "4";
autoDetails.Add(auto90);
}
var auto91 = autoAll.FirstOrDefault(t => t.CONTENTS.Contains("是否建立任务观察制度,确保在需要时对作业任务进行完整的或部分的观察?") && t.PRODUCTION_UNIT == "选矿厂");
if (auto91 != null)
{
auto91.RESULT_SCORE = standard3 == null ? "0" : "3";
autoDetails.Add(auto91);
}
var auto92 = autoAll.FirstOrDefault(t => t.CONTENTS.Contains("是否有许可作业管理制度?") && t.PRODUCTION_UNIT == "选矿厂");
if (auto92 != null)
{
auto92.RESULT_SCORE = standard4 == null ? "0" : "3";
autoDetails.Add(auto92);
}
var auto93 = autoAll.FirstOrDefault(t => t.CONTENTS.Contains("是否已依据风险分析结果编制关键任务作业指导书?") && t.PRODUCTION_UNIT == "选矿厂");
if (auto93 != null)
{
auto93.RESULT_SCORE = resultScore93.ToString();
autoDetails.Add(auto93);
}
var auto94 = autoAll.FirstOrDefault(t => t.CONTENTS.Contains("是否就关键任务作业指导书对相关作业人员进行培训?") && t.PRODUCTION_UNIT == "选矿厂");
if (auto94 != null)
{
auto94.RESULT_SCORE = trainNotify != null ? "4" : "0";
autoDetails.Add(auto94);
}
var auto95 = autoAll.FirstOrDefault(t => t.CONTENTS.Contains("作业前或班组安全例会是否讨论作业指导书?") && t.PRODUCTION_UNIT == "选矿厂");
if (auto95 != null)
{
auto95.RESULT_SCORE = shiftMeeting != null ? "4" : "0";
autoDetails.Add(auto95);
}
var auto96 = autoAll.FirstOrDefault(t => t.CONTENTS.Contains("是否认定了需要许可的作业范围?") && t.PRODUCTION_UNIT == "选矿厂");
if (auto96 != null)
{
auto96.RESULT_SCORE = jobIdentify != null ? "3" : "0";
autoDetails.Add(auto96);
}
var auto97 = autoAll.FirstOrDefault(t => t.CONTENTS.Contains("是否将认定的需要许可的范围清单发放给受影响部门?") && t.PRODUCTION_UNIT == "选矿厂");
if (auto97 != null)
{
auto97.RESULT_SCORE = filePublish != null ? "3" : "0";
autoDetails.Add(auto97);
}
var auto98 = autoAll.FirstOrDefault(t => t.CONTENTS.Contains("关键任务有作业指导书的比例:") && t.PRODUCTION_UNIT == "选矿厂");
if (auto98 != null)
{
auto98.RESULT_SCORE = trainNotify != null ? "6" : "0";
autoDetails.Add(auto98);
}
var auto99 = autoAll.FirstOrDefault(t => t.CONTENTS.Contains("作业指导书是否明确:主要作业内容;作业过程可能的危险有害因素;作业程序和作业过程注意事项;紧急情况下的现场应急处置措施?") && t.PRODUCTION_UNIT == "选矿厂");
if (auto99 != null)
{
auto99.RESULT_SCORE = meeting2 == null ? "0" : "12";
autoDetails.Add(auto99);
}
var auto100 = autoAll.FirstOrDefault(t => t.CONTENTS.Contains("执行关键任务的人员接受作业指导书培训的比例:") && t.PRODUCTION_UNIT == "选矿厂");
if (auto100 != null)
{
auto100.RESULT_SCORE = trainNotify != null ? "6" : "0";
autoDetails.Add(auto100);
}
var auto101 = autoAll.FirstOrDefault(t => t.CONTENTS.Contains("许可作业前是否做到:作业风险已识别;已办理作业许可证;参与作业的人员已讨论作业风险及其控制措施?") && t.PRODUCTION_UNIT == "选矿厂");
if (auto101 != null)
{
auto101.RESULT_SCORE = jobActivity != 0 ? "6" : "0";
autoDetails.Add(auto101);
}
var auto102 = autoAll.FirstOrDefault(t => t.CONTENTS.Contains("编写的作业指导书是否符合下列要求:步骤清楚、完整;危险源辨识全面;安全措施齐全?") && t.PRODUCTION_UNIT == "选矿厂");
if (auto102 != null)
{
auto102.RESULT_SCORE = meeting2 == null ? "0" : "9";
autoDetails.Add(auto102);
}
var auto103 = autoAll.FirstOrDefault(t => t.CONTENTS.Contains("任务观察的有效性:在观察的同时辨识危险源和评估风险;及时指出观察中发现的可能导致损失的行为;了解员工的工作习惯;检查现有的工作方法与制度;跟踪当前培训效果?") && t.PRODUCTION_UNIT == "选矿厂");
if (auto103 != null)
{
auto103.RESULT_SCORE = jobActivity != 0 ? "10" : "0";
autoDetails.Add(auto103);
}
var auto104 = autoAll.FirstOrDefault(t => t.CONTENTS.Contains("工作许可的有效性:许可作业的范围认定准确;作业风险识别正确、全面;许可审批程序明确、执行严格;作业前的检查确认充分;许可作业的现场应急处置措施具体、可行;许可作业范围的评审、更新及时;作业前的技术交底充分;作业前参与作业的人员对作业方案进行充分讨论,必要时,予以补充完善?") && t.PRODUCTION_UNIT == "选矿厂");
if (auto104 != null)
{
auto104.RESULT_SCORE = (2 * resultScore56).ToString();
autoDetails.Add(auto104);
}
#endregion
#region
var auto105 = autoAll.FirstOrDefault(t => t.CONTENTS.Contains("是否建立了危险源辨识与风险评价的管理制度?") && t.PRODUCTION_UNIT == "尾矿库");
if (auto105 != null)
{
auto105.RESULT_SCORE = standard == null ? "0" : "4";
autoDetails.Add(auto105);
}
var auto106 = autoAll.FirstOrDefault(t => t.CONTENTS.Contains("制度是否明确风险评价的方法、流程及风险层次控制原则?") && t.PRODUCTION_UNIT == "尾矿库");
if (auto106 != null)
{
auto106.RESULT_SCORE = meeting == null ? "0" : "3";
autoDetails.Add(auto106);
}
var auto107 = autoAll.FirstOrDefault(t => t.CONTENTS.Contains("制度是否明确了持续风险评价的要求?") && t.PRODUCTION_UNIT == "尾矿库");
if (auto107 != null)
{
auto107.RESULT_SCORE = meeting == null ? "0" : "3";
autoDetails.Add(auto107);
}
var auto108 = autoAll.FirstOrDefault(t => t.CONTENTS.Contains("是否进行危险源辨识与风险评价,并确定重大危险源?") && t.PRODUCTION_UNIT == "尾矿库");
if (auto108 != null)
{
auto108.RESULT_SCORE = evaluationPlan == null ? "0" : "5";
autoDetails.Add(auto108);
}
var auto109 = autoAll.FirstOrDefault(t => t.CONTENTS.Contains("是否已通过初始及持续的风险评价,对风险评价实施动态管理?") && t.PRODUCTION_UNIT == "尾矿库");
if (auto109 != null)
{
auto109.RESULT_SCORE = riskTask4 == null ? "0" : "5";
autoDetails.Add(auto109);
}
var auto110 = autoAll.FirstOrDefault(t => t.CONTENTS.Contains("是否定期或及时对危险源辨识与风险评价进行回顾?") && t.PRODUCTION_UNIT == "尾矿库");
if (auto110 != null)
{
auto110.RESULT_SCORE = meeting == null ? "0" : "5";
autoDetails.Add(auto110);
}
var auto111 = autoAll.FirstOrDefault(t => t.CONTENTS.Contains("风险评价的结果是否文件化?") && t.PRODUCTION_UNIT == "尾矿库");
if (auto111 != null)
{
auto111.RESULT_SCORE = evaluationPlan == null ? "0" : "5";
autoDetails.Add(auto111);
}
var auto112 = autoAll.FirstOrDefault(t => t.CONTENTS.Contains("危险源辨识与风险评价的范围是否涵盖所有的过程、活动、场所及周边环境?") && t.PRODUCTION_UNIT == "尾矿库");
if (auto112 != null)
{
auto112.RESULT_SCORE = rate >= 60 ? "6" : "0";
autoDetails.Add(auto112);
}
var auto113 = autoAll.FirstOrDefault(t => t.CONTENTS.Contains("危险源辨识与风险评价过程是否考虑了相关方的活动?") && t.PRODUCTION_UNIT == "尾矿库");
if (auto113 != null)
{
auto113.RESULT_SCORE = riskTask != null ? "6" : "0";
autoDetails.Add(auto113);
}
var auto114 = autoAll.FirstOrDefault(t => t.CONTENTS.Contains("是否认定并评估工作或活动的次生风险?") && t.PRODUCTION_UNIT == "尾矿库");
if (auto114 != null)
{
auto114.RESULT_SCORE = riskTask2 != null ? "6" : "0";
autoDetails.Add(auto114);
}
var auto115 = autoAll.FirstOrDefault(t => t.CONTENTS.Contains("是否考虑了正常和非正常的情况以及潜在的事故和紧急情况?") && t.PRODUCTION_UNIT == "尾矿库");
if (auto115 != null)
{
auto115.RESULT_SCORE = riskTask3 != null ? "6" : "0";
autoDetails.Add(auto115);
}
var auto116 = autoAll.FirstOrDefault(t => t.CONTENTS.Contains("风险评价时是否要求考虑内部和外部的变化?") && t.PRODUCTION_UNIT == "尾矿库");
if (auto116 != null)
{
auto116.RESULT_SCORE = evaluateResult != null ? "6" : "0";
autoDetails.Add(auto116);
}
var auto117 = autoAll.FirstOrDefault(t => t.CONTENTS.Contains("危险源辨识与风险评价制度规定的职责是否明确?") && t.PRODUCTION_UNIT == "尾矿库");
if (auto117 != null)
{
auto117.RESULT_SCORE = meeting == null ? "0" : "8";
autoDetails.Add(auto117);
}
var auto118 = autoAll.FirstOrDefault(t => t.CONTENTS.Contains("制度规定的风险评价流程是否清楚?") && t.PRODUCTION_UNIT == "尾矿库");
if (auto118 != null)
{
auto118.RESULT_SCORE = meeting == null ? "0" : "6";
autoDetails.Add(auto118);
}
var auto119 = autoAll.FirstOrDefault(t => t.CONTENTS.Contains("风险评价方法是否合理?") && t.PRODUCTION_UNIT == "尾矿库");
if (auto119 != null)
{
auto119.RESULT_SCORE = meeting == null ? "0" : "6";
autoDetails.Add(auto119);
}
var auto120 = autoAll.FirstOrDefault(t => t.CONTENTS.Contains("风险控制措施是否包括:工程控制措施;管理控制措施;个体防护措施?") && t.PRODUCTION_UNIT == "尾矿库");
if (auto120 != null)
{
auto120.RESULT_SCORE = (4 * resultScore16).ToString();
autoDetails.Add(auto120);
}
var auto121 = autoAll.FirstOrDefault(t => t.CONTENTS.Contains("是否采用下列方式开展持续风险识别与评价:使用前检查;任务观察;设备检查;班前安全检查确认;定期安全检查;定期检修;安全生产标准化系统评价;班组危险预知活动?") && t.PRODUCTION_UNIT == "尾矿库");
if (auto121 != null)
{
auto121.RESULT_SCORE = resultScore17.ToString();
autoDetails.Add(auto121);
}
var auto122 = autoAll.FirstOrDefault(t => t.CONTENTS.Contains("是否制定了尾矿库建设期风险评价计划?") && t.PRODUCTION_UNIT == "尾矿库");
if (auto122 != null)
{
auto122.RESULT_SCORE = evaluationPlan == null ? "0" : "3";
autoDetails.Add(auto122);
}
var auto123 = autoAll.FirstOrDefault(t => t.CONTENTS.Contains("是否制定了尾矿库运行期风险评价计划?") && t.PRODUCTION_UNIT == "尾矿库");
if (auto123 != null)
{
auto123.RESULT_SCORE = evaluationPlan == null ? "0" : "6";
autoDetails.Add(auto123);
}
var riskTask5 = this.GetEntity<T_HM_RISK_TASK>(t => t.PLAN_ID == evaluationPlan.ID && t.STATUS == FOPreMeetingStatusEnum.);
var auto124 = autoAll.FirstOrDefault(t => t.CONTENTS.Contains("是否进行了尾矿库建设期风险评价?") && t.PRODUCTION_UNIT == "尾矿库");
if (auto124 != null)
{
auto124.RESULT_SCORE = riskTask5 == null ? "0" : "5";
autoDetails.Add(auto124);
}
var auto125 = autoAll.FirstOrDefault(t => t.CONTENTS.Contains("是否进行了尾矿库运行期风险评价?") && t.PRODUCTION_UNIT == "尾矿库");
if (auto125 != null)
{
auto125.RESULT_SCORE = riskTask5 == null ? "0" : "5";
autoDetails.Add(auto125);
}
var evalationIdentify6 = this.GetCount<T_HM_EVALUATION_DETAIL_IDENTIFYING>(t => t.Nav_Identifying != null && (t.Nav_Identifying.NAME == "作业过程"), new BaseFilter(filter.OrgId));
var auto126 = autoAll.FirstOrDefault(t => t.CONTENTS.Contains("是否已对生产流程进行了辨识,并建立了关键流程及其关键设备设施清单?") && t.PRODUCTION_UNIT == "尾矿库");
if (auto126 != null)
{
auto126.RESULT_SCORE = evalationIdentify6 == 0 ? "0" : "5";
autoDetails.Add(auto126);
}
var evalationIdentify7 = this.GetCount<T_HM_EVALUATION_DETAIL_IDENTIFYING>(t => t.Nav_Identifying != null && (t.Nav_Identifying.NAME == "设备设施"), new BaseFilter(filter.OrgId));
var auto127 = autoAll.FirstOrDefault(t => t.CONTENTS.Contains("是否对识别的关键流程及其关键设备设施进行风险评价,分析与之相关的安全及故障模型,并根据分析结果制定针对性措施?") && t.PRODUCTION_UNIT == "尾矿库");
if (auto127 != null)
{
auto127.RESULT_SCORE = evalationIdentify7 == 0 ? "0" : "5";
autoDetails.Add(auto127);
}
var auto128 = autoAll.FirstOrDefault(t => t.CONTENTS.Contains("初始风险评价结果是否已文件化?") && t.PRODUCTION_UNIT == "尾矿库");
if (auto128 != null)
{
auto128.RESULT_SCORE = evaluationPlan == null ? "0" : "4";
autoDetails.Add(auto128);
}
var auto129 = autoAll.FirstOrDefault(t => t.CONTENTS.Contains("是否已分析所有与尾矿库运行关键流程相关的风险?") && t.PRODUCTION_UNIT == "尾矿库");
if (auto129 != null)
{
auto129.RESULT_SCORE = evalationIdentify6 == 0 ? "0" : "4";
autoDetails.Add(auto129);
}
var auto130 = autoAll.FirstOrDefault(t => t.CONTENTS.Contains("是否建立了关键任务识别与分析制度?") && t.PRODUCTION_UNIT == "尾矿库");
if (auto130 != null)
{
auto130.RESULT_SCORE = standard2 == null ? "0" : "3";
autoDetails.Add(auto130);
}
var auto131 = autoAll.FirstOrDefault(t => t.CONTENTS.Contains("是否建立任务观察制度,确保在需要时对作业任务进行完整的或部分的观察?") && t.PRODUCTION_UNIT == "尾矿库");
if (auto131 != null)
{
auto131.RESULT_SCORE = standard3 == null ? "0" : "3";
autoDetails.Add(auto131);
}
var auto132 = autoAll.FirstOrDefault(t => t.CONTENTS.Contains("是否有许可作业管理制度?") && t.PRODUCTION_UNIT == "尾矿库");
if (auto132 != null)
{
auto132.RESULT_SCORE = standard4 == null ? "0" : "2";
autoDetails.Add(auto132);
}
var auto133 = autoAll.FirstOrDefault(t => t.CONTENTS.Contains("是否已依据风险分析结果编制关键任务作业指导书?") && t.PRODUCTION_UNIT == "尾矿库");
if (auto133 != null)
{
auto133.RESULT_SCORE = resultScore40.ToString();
autoDetails.Add(auto133);
}
var auto134 = autoAll.FirstOrDefault(t => t.CONTENTS.Contains("是否就关键任务作业指导书对相关作业人员进行培训?") && t.PRODUCTION_UNIT == "尾矿库");
if (auto134 != null)
{
auto134.RESULT_SCORE = trainNotify != null ? "2" : "0";
autoDetails.Add(auto134);
}
var auto135 = autoAll.FirstOrDefault(t => t.CONTENTS.Contains("作业前或班组安全例会是否讨论作业指导书?") && t.PRODUCTION_UNIT == "尾矿库");
if (auto135 != null)
{
auto135.RESULT_SCORE = shiftMeeting != null ? "2" : "0";
autoDetails.Add(auto135);
}
var auto136 = autoAll.FirstOrDefault(t => t.CONTENTS.Contains("是否认定了需要许可的作业范围?") && t.PRODUCTION_UNIT == "尾矿库");
if (auto136 != null)
{
auto136.RESULT_SCORE = jobIdentify != null ? "2" : "0";
autoDetails.Add(auto136);
}
var auto137 = autoAll.FirstOrDefault(t => t.CONTENTS.Contains("是否将认定的需要许可的范围清单发放给受影响部门?") && t.PRODUCTION_UNIT == "尾矿库");
if (auto137 != null)
{
auto137.RESULT_SCORE = filePublish != null ? "2" : "0";
autoDetails.Add(auto137);
}
var auto138 = autoAll.FirstOrDefault(t => t.CONTENTS.Contains("是否按计划执行了任务观察?") && t.PRODUCTION_UNIT == "尾矿库");
if (auto138 != null)
{
auto138.RESULT_SCORE = jobActivity != 0 ? "2" : "0";
autoDetails.Add(auto138);
}
var auto139 = autoAll.FirstOrDefault(t => t.CONTENTS.Contains("是否针对观察发现的问题提出有针对性的改正意见?") && t.PRODUCTION_UNIT == "尾矿库");
if (auto139 != null)
{
auto139.RESULT_SCORE = jobActivity != 0 ? "2" : "0";
autoDetails.Add(auto139);
}
var auto140 = autoAll.FirstOrDefault(t => t.CONTENTS.Contains("任务观察时是否对好的行为给予赞誉与强化?") && t.PRODUCTION_UNIT == "尾矿库");
if (auto140 != null)
{
auto140.RESULT_SCORE = approveReward != null ? "2" : "0";
autoDetails.Add(auto140);
}
var auto141 = autoAll.FirstOrDefault(t => t.CONTENTS.Contains("关键任务有作业指导书的比例:") && t.PRODUCTION_UNIT == "尾矿库");
if (auto141 != null)
{
auto141.RESULT_SCORE = trainNotify != null ? "3" : "0";
autoDetails.Add(auto141);
}
var auto142 = autoAll.FirstOrDefault(t => t.CONTENTS.Contains("作业指导书是否明确:主要作业内容;作业过程可能的危险有害因素;作业程序;作业过程的安全注意事项;紧急情况下的现场应急处置措施?") && t.PRODUCTION_UNIT == "尾矿库");
if (auto142 != null)
{
auto142.RESULT_SCORE = meeting2 == null ? "0" : "5";
autoDetails.Add(auto142);
}
var auto143 = autoAll.FirstOrDefault(t => t.CONTENTS.Contains("执行关键任务的人员接受作业指导书培训的比例:") && t.PRODUCTION_UNIT == "尾矿库");
if (auto143 != null)
{
auto143.RESULT_SCORE = trainNotify != null ? "4" : "0";
autoDetails.Add(auto143);
}
var auto144 = autoAll.FirstOrDefault(t => t.CONTENTS.Contains("所有执行观察的人员接受培训的比例:") && t.PRODUCTION_UNIT == "尾矿库");
if (auto144 != null)
{
auto144.RESULT_SCORE = trainNotify != null ? "3" : "0";
autoDetails.Add(auto144);
}
var auto145 = autoAll.FirstOrDefault(t => t.CONTENTS.Contains("针对观察发现的问题提出有针对性的改正意见的比例:") && t.PRODUCTION_UNIT == "尾矿库");
if (auto145 != null)
{
auto145.RESULT_SCORE = jobActivity != 0 ? "3" : "0";
autoDetails.Add(auto145);
}
var auto146 = autoAll.FirstOrDefault(t => t.CONTENTS.Contains("许可作业前是否做到:作业风险已识别;已办理作业许可证;参与作业的人员已讨论作业风险及其控制措施?") && t.PRODUCTION_UNIT == "尾矿库");
if (auto146 != null)
{
auto146.RESULT_SCORE = jobActivity != 0 ? "6" : "0";
autoDetails.Add(auto146);
}
var auto147 = autoAll.FirstOrDefault(t => t.CONTENTS.Contains("编写的作业指导书是否符合下列要求:简明扼要;编写的作业指导书是否符合下列要求:步骤清楚、完整;危险源辨识全面;关键步骤确定准确;安全措施齐全?") && t.PRODUCTION_UNIT == "尾矿库");
if (auto147 != null)
{
auto147.RESULT_SCORE = meeting2 == null ? "0" : "10";
autoDetails.Add(auto147);
}
var auto148 = autoAll.FirstOrDefault(t => t.CONTENTS.Contains("任务观察的有效性:在观察的同时辨识危险源和评估风险;及时指出观察中发现的可能导致损失的行为;了解员工的工作习惯;检查现有的工作方法与制度;跟踪当前培训效果?") && t.PRODUCTION_UNIT == "尾矿库");
if (auto148 != null)
{
auto148.RESULT_SCORE = jobActivity != 0 ? "10" : "0";
autoDetails.Add(auto148);
}
var auto149 = autoAll.FirstOrDefault(t => t.CONTENTS.Contains("工作许可的有效性:许可作业的范围认定准确;作业风险识别正确、全面;许可审批程序明确、执行严格;作业前的检查确认充分;许可作业的现场应急处置措施具体、可行;许可作业范围的评审、更新及时;作业前的技术交底充分;作业前参与作业的人员对作业方案进行充分讨论,必要时,予以补充完善?") && t.PRODUCTION_UNIT == "尾矿库");
if (auto149 != null)
{
auto149.RESULT_SCORE = resultScore56.ToString();
autoDetails.Add(auto149);
}
var auto150 = autoAll.FirstOrDefault(t => t.CONTENTS.Contains("是否因作业指导书的原因导致事件、事故的发生?") && t.PRODUCTION_UNIT == "尾矿库");
if (auto150 != null)
{
auto150.RESULT_SCORE = accidentEvent2 != null ? "0" : "4";
autoDetails.Add(auto150);
}
#endregion
UnifiedCommit(() =>
{
if (autoDetails != null && autoDetails.Any())
BantchSaveEntityNoCommit(autoDetails);
});
}
catch (Exception ex)
{
if (!string.IsNullOrEmpty(ex.StackTrace))
throw new Exception("错误日志:[StackTrace]" + ex.StackTrace);
else
throw new Exception("【" + HttpContext.Request.Path + "】错误日志:[Message]" + ex.Message);
}
return true;
});
}
}
}