using APT.BaseData.Domain.ApiModel;
using APT.BaseData.Domain.Entities;
using APT.BaseData.Domain.Entities.FM;
using APT.BaseData.Domain.Enums;
using APT.BaseData.Domain.Enums.PF;
using APT.BaseData.Domain.IServices;
using APT.BaseData.Domain.IServices.FM;
using APT.BaseData.Services.DomainServices;
using APT.BaseData.Services.Services.FM;
using APT.Infrastructure.Core;
using APT.MS.Domain.Entities.BI;
using APT.MS.Domain.Entities.BS;
using APT.MS.Domain.Entities.FO;
using APT.MS.Domain.Entities.HM;
using APT.MS.Domain.Entities.OG;
using APT.MS.Domain.Entities.PF;
using APT.MS.Domain.Entities.SC;
using APT.MS.Domain.Entities.SC.BI;
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 Castle.Core.Internal;
using ICSharpCode.SharpZipLib.Core;
using InfluxData.Net.InfluxDb.Models.Responses;
using InfluxData.Net.Kapacitor.Models;
using log4net.Filter;
using Microsoft.AspNetCore.Mvc;
using Microsoft.AspNetCore.Mvc.Filters;
using MySqlX.XDevAPI.Common;
using NPOI.SS.Formula.Functions;
using Renci.SshNet.Common;
using System;
using System.Collections.Generic;
using System.Data;
using System.Diagnostics.Eventing.Reader;
using System.Drawing;
using System.Linq;
using System.Linq.Expressions;
using System.Net.NetworkInformation;
using System.Runtime.CompilerServices;
using System.Threading.Tasks;
namespace APT.SC.WebApi.Controllers.Api.BIController
{
public class GroupbyMouldName
{
public string mouldName { get; set; }
public int totalCount { get; set; }
public int doneCount { get; set; }
public int timeOverCount { get; set; }
}
public class GroupbyDepartmentId
{
public Guid? departmentId { get; set; }
public string departmentName { get; set; }
public string formCode { get; set; }
public string formName { get; set; }
public int TotalCount { get; set; }
public int doneCount { get; set; }
public int timeOverCount { get; set; }
}
public class DepartmentInfos
{
public string NAME { get; set; }
public string USER_NAME { get; set; }
public string CHARGE_NAME { get; set; }
public int DEPARTMENT_TYPE { get; set; }
}
public class ApproveUserInfos
{
public int DEPARTMENT_TYPE { get; set; }
public string DEPARTMENT_NAME { get; set; }
public string APPROVE_ROLE_NAME { get; set; }
public string USER_INFO { get; set; }
}
public class ParentDepartmentInfo
{
public Guid parent_departmentId { get; set; }
public Guid departmentId { get; set; }
public string parent_departmentName { get; set; }
public string departmentName { get; set; }
}
public class UnFinishInfo
{
public string NAME { get; set; }
public string CREATE_NAME { get; set; }
public string DEPARTMENT_NAME { get; set; }
public DateTime? CREATE_TIME { get; set; }
public string STATUS_NAME { get; set; }
}
public class GroupbyDepartmentCompletion
{
public Guid? shopId { get; set; }
public string shopName { get; set; }
public int shopTotalCount { get; set; }
public int shopDoneCount { get; set; }
public int shopOntimeCount { get; set; }
public double shopDoneRate { get; set; }
public double shopOverDoneRate { get; set; }
public Guid? teamId { get; set; }
public string teamName { get; set; }
public int teamTotalCount { get; set; }
public int teamDoneCount { get; set; }
public int teamOntimeCount { get; set; }
public int teamUndoneCount { get; set; }
public double teamDoneRate { get; set; }
public double teamOverDoneRate { get; set; }
}
///
///
///
[Route("api/BI/BIStatiscialAnalysisController")]
public class BIStatiscialAnalysisController : AuthorizeApiController
{
IPFApproveCallBackService ApproveCallBackService { get; set; }
public BIStatiscialAnalysisController(IPFApproveCallBackService approveCallBackService)
{
ApproveCallBackService = approveCallBackService;
}
#region 安全事务执行情况汇总
///
/// 待办汇总查询
///
///
///
[HttpPost, Route("GetAllTask")]
public JsonActionResult GetAllTask([FromBody] KeywordPageFilter pageFilter)
{
return SafeExecute(() =>
{
//首页待办增加数量统计字段
dynamic ret = new System.Dynamic.ExpandoObject();
//var userId = APT.Infrastructure.Api.AppContext.CurrentSession.UserID;
if (string.IsNullOrEmpty(pageFilter.Parameter1) || string.IsNullOrEmpty(pageFilter.Parameter2))
{
throw new Exception("请先选择时间段");
}
var newFilter = new BaseFilter(pageFilter.OrgId);
newFilter.SelectField = new List { "CODE", "NAME" };
var formInfo = this.GetEntities(t => true, newFilter);
DateTime startTime = Convert.ToDateTime(pageFilter.Parameter1 + " 00:00:00");
DateTime endTime = Convert.ToDateTime(pageFilter.Parameter2 + " 23:59:59");
TimeSpan span = endTime.Subtract(startTime);
int dayDidd = span.Days + 1;
if (dayDidd >= 180)
throw new Exception("查询时间不能超过6个月!");
var result = GetOrderPageEntities(s => !s.IS_DELETED && s.CREATE_DATE >= startTime && s.CREATE_DATE <= endTime, pageFilter);
//pageFilter.Sort = "CREATE_TIME";
//pageFilter.Order = DbOrder.DESC;
if (result.Data.Any())
{
var newData = result.Data.ToList();
var userIds = newData.Select(t => t.USER_ID).Distinct().ToList();
newFilter.SelectField = new List { "ID", "DEPARTMENT_ID", "Nav_Department" };
var userInfos = this.GetEntities(t => userIds.Contains(t.ID) && t.ENABLE_STATUS == 0, newFilter);
newData.ForEach(t =>
{
var user = userInfos.FirstOrDefault(m => m.ID == t.USER_ID);
var department = GetDepartmentId(user.DEPARTMENT_ID.Value);
t.DEPARTMENT_ID = department == null ? null : department.ID;
t.DEPARTMENT_NAME = department == null ? "" : department.NAME;
});
//if (!string.IsNullOrEmpty(pageFilter.Keyword))
//{
// newData = newData.Where(t => t.DEPARTMENT_ID == Guid.Parse(pageFilter.Keyword)).ToList();
//}
ret.newData = newData;
ret.TotalCount = newData.Count();
ret.doneCount = newData.Where(t => t.NOTICE_STATUS == 1).Count();
ret.timeOverCount = newData.Where(t => t.NOTICE_STATUS == 2).Count();
//if (!string.IsNullOrEmpty(pageFilter.Keyword))
//{
// var formCodes = newData.Select(t => t.SOURCE_FORMCODE).Distinct().ToList();
// var forms = this.GetEntities(t => formCodes.Contains(t.CODE), new BaseFilter(pageFilter.OrgId));
// ret.groupData = newData.GroupBy(t => t.SOURCE_FORMCODE).Select(m => new GroupbyDepartmentId
// {
// formCode = m.Key,
// formName = forms.FirstOrDefault(p => p.CODE == m.Key)?.NAME,
// TotalCount = m.Count(),
// doneCount = m.Where(p => p.NOTICE_STATUS == 1).Count(),
// timeOverCount = m.Where(p => p.NOTICE_STATUS == 2).Count(),
// }).ToList();
//}
//else
var groupDataTemp = newData.GroupBy(t => new { t.DEPARTMENT_ID, t.DEPARTMENT_NAME, t.SOURCE_FORMCODE }).Select(m => new GroupbyDepartmentId
{
departmentId = m.Key.DEPARTMENT_ID,
departmentName = m.Key.DEPARTMENT_NAME,
formCode = m.Key.SOURCE_FORMCODE,
formName = formInfo.FirstOrDefault(p => p.CODE == m.Key.SOURCE_FORMCODE)?.NAME,
TotalCount = m.Count(p => p.DEPARTMENT_ID == m.Key.DEPARTMENT_ID && p.SOURCE_FORMCODE == m.Key.SOURCE_FORMCODE),
doneCount = m.Count(p => p.DEPARTMENT_ID == m.Key.DEPARTMENT_ID && p.NOTICE_STATUS == 1 && p.SOURCE_FORMCODE == m.Key.SOURCE_FORMCODE),
timeOverCount = m.Count(p => p.DEPARTMENT_ID == m.Key.DEPARTMENT_ID && p.NOTICE_STATUS == 2 && p.SOURCE_FORMCODE == m.Key.SOURCE_FORMCODE),
}).ToList();
ret.groupData = groupDataTemp;
}
return ret;
});
}
///
/// 获取部门级ID
///
///
public T_FM_DEPARTMENT GetDepartmentId(Guid id)
{
//var loginUserId = APT.Infrastructure.Api.AppContext.CurrentSession.UserID;
var department = GetEntity(t => t.ID == id);
if (department.DEPARTMENT_TYPE == (int)FMDepartmentType.公司)
{
return null;
}
else if (department.DEPARTMENT_TYPE == (int)FMDepartmentType.部门)
{
return department;
}
else
{
department = GetDepartmentId(department.PARENT_ID.Value);
}
return department;
}
///
/// 获取组织ID的部门级组织
///
///
///
public T_FM_DEPARTMENT GetDEPARTMENTLevel(List departList, Guid DepartmentID)
{
var department = GetEntity(t => t.ID == DepartmentID);
if (department.DEPARTMENT_TYPE == (int)FMDepartmentType.公司)
{
return null;
}
else if (department.DEPARTMENT_TYPE == (int)FMDepartmentType.部门)
{
return department;
}
else
{
department = GetDEPARTMENTLevel(departList, department.PARENT_ID.Value);
}
return department;
}
///
/// 获取组织ID的车间级组织
///
///
///
public T_FM_DEPARTMENT GetDEPARTMENTShop(List departList,Guid DepartmentID)
{
var department = GetEntity(t => t.ID == DepartmentID);
if (department.DEPARTMENT_TYPE == (int)FMDepartmentType.部门 || department.DEPARTMENT_TYPE == (int)FMDepartmentType.公司)
{
return null;
}
else if (department.DEPARTMENT_TYPE == (int)FMDepartmentType.车间)
{
return department;
}
else
{
department = GetDEPARTMENTShop(departList,department.PARENT_ID.Value);
}
return department;
}
///
/// 获取组织ID的班组级组织
///
///
///
public T_FM_DEPARTMENT GetDEPARTMENTClass(List departList, Guid DepartmentID)
{
var department = GetEntity(t => t.ID == DepartmentID);
if (department.DEPARTMENT_TYPE == (int)FMDepartmentType.车间 || department.DEPARTMENT_TYPE == (int)FMDepartmentType.部门 || department.DEPARTMENT_TYPE == (int)FMDepartmentType.公司)
{
return null;
}
else if (department.DEPARTMENT_TYPE == (int)FMDepartmentType.班组)
{
return department;
}
else
{
department = GetDEPARTMENTClass(departList,department.PARENT_ID.Value);
}
return department;
}
#endregion
///
/// 返回所有下级部门节点
///
///
///
///
public void GetDepartmentIds(Guid orgId, List listDepIDInt, ref List departmentIdPs)
{
var listDep = GetEntities(e => !e.IS_DELETED && e.PARENT_ID.HasValue && listDepIDInt.Contains(e.PARENT_ID.Value),new BaseFilter(orgId));
if (listDep != null && listDep.Any())
{
listDepIDInt = listDep.Select(e => e.ID).ToList();
departmentIdPs.AddRange(listDepIDInt);
GetDepartmentIds(orgId, listDepIDInt, ref departmentIdPs);
}
}
[HttpPost, Route("GetFormRun")]
public JsonActionResult> GetFormRun([FromBody] KeywordFilter filter)
{
return SafeExecute>(() =>
{
//首页待办增加数量统计字段
//var userId = APT.Infrastructure.Api.AppContext.CurrentSession.UserID;
if (string.IsNullOrEmpty(filter.Parameter1))
{
throw new Exception("请先选择开始时间");
}
if (string.IsNullOrEmpty(filter.Parameter2))
{
throw new Exception("请先选择结束时间");
}
List outPartmentIds = new List();
if (!string.IsNullOrEmpty(filter.Keyword))
{
List inputIds = new List() { Guid.Parse(filter.Keyword) };
GetDepartmentIds(APT.Infrastructure.Api.AppContext.CurrentSession.OrgId.Value, inputIds, ref outPartmentIds);
outPartmentIds.Add(Guid.Parse(filter.Keyword));
}
List formAnalysis = new List();
List parentDepartments = new List();
DateTime startTime = Convert.ToDateTime(filter.Parameter1);
DateTime endTime = Convert.ToDateTime(filter.Parameter2);
TimeSpan span = endTime.Subtract(startTime);
int dayDidd = span.Days + 1;
if (dayDidd >= 180)
throw new Exception("查询时间不能超过6个月!");
//var sourceIds = new List();
var departmentIds = new List();
var newFilter = new BaseFilter(filter.OrgId);
newFilter.IgnoreDataRule = true;
if (string.IsNullOrEmpty(filter.Parameter3))
{
newFilter.SelectField = new List { "ID", "STATUS", "INITIATING_DEPARTMENT" };
//风险评价计划审核表
var evalPlan = this.GetEntities(t => t.CREATE_TIME >= startTime && t.CREATE_TIME <= endTime && t.INITIATING_DEPARTMENT != null, newFilter).ToList();
//风险评价计划发布
newFilter.SelectField = new List { "ID", "RELEASE_STATUS", "RELEAS_DEPARTMENT_ID" };
var noticeRelease = this.GetEntities(t => t.CREATE_TIME >= startTime && t.CREATE_TIME <= endTime && t.RELEAS_DEPARTMENT_ID != null, newFilter).ToList();
//危险源/风险辨识任务
newFilter.SelectField = new List { "ID", "STATUS", "INITIATING_DEPARTMENT" };
var riskTask = this.GetEntities(t => t.CREATE_TIME >= startTime && t.CREATE_TIME <= endTime && t.INITIATING_DEPARTMENT != null, newFilter).ToList();
//危险源/风险辨识记录表
var riskRecord = this.GetEntities(t => t.CREATE_TIME >= startTime && t.CREATE_TIME <= endTime && t.INITIATING_DEPARTMENT != null, newFilter).ToList();
//职业危害辨识任务
var hazardTask = this.GetEntities(t => t.CREATE_TIME >= startTime && t.CREATE_TIME <= endTime && t.INITIATING_DEPARTMENT != null, newFilter).ToList();
//职业危害辨识记录表
var hazardRecord = this.GetEntities(t => t.CREATE_TIME >= startTime && t.CREATE_TIME <= endTime && t.INITIATING_DEPARTMENT != null, newFilter).ToList();
//评价结果表
var evalResult = this.GetEntities(t => t.CREATE_TIME >= startTime && t.CREATE_TIME <= endTime && t.INITIATING_DEPARTMENT != null, newFilter).ToList();
//作业任务识别
newFilter.SelectField = new List { "ID", "IS_PUBLISH", "DEPARTMENT_ID" };
var taskIdentify = this.GetEntities(t => t.CREATE_TIME >= startTime && t.CREATE_TIME <= endTime && t.DEPARTMENT_ID != null, newFilter).ToList();
//作业任务识别分析
var taskAnalysis = this.GetEntities(t => t.CREATE_TIME >= startTime && t.CREATE_TIME <= endTime && t.DEPARTMENT_ID != null, newFilter).ToList();
//一般任务分析
var taskOrdinary = this.GetEntities(t => t.CREATE_TIME >= startTime && t.CREATE_TIME <= endTime && t.DEPARTMENT_ID != null, newFilter).ToList();
//关键任务分析
var taskCrucial = this.GetEntities(t => t.CREATE_TIME >= startTime && t.CREATE_TIME <= endTime && t.DEPARTMENT_ID != null, newFilter).ToList();
//许可任务分析
var taskLicense = this.GetEntities(t => t.CREATE_TIME >= startTime && t.CREATE_TIME <= endTime && t.DEPARTMENT_ID != null, newFilter).ToList();
//作业任务分析文件发布
var filePublish = this.GetEntities(t => t.CREATE_TIME >= startTime && t.CREATE_TIME <= endTime && t.DEPARTMENT_ID != null, newFilter).ToList();
newFilter.SelectField = new List { "ID", "STATUSPLAN", "STATUCHECK", "DEPARTMENTID" };
//检查任务制定
var checkTask = this.GetEntities(t => t.CREATE_TIME >= startTime && t.CREATE_TIME <= endTime && t.DEPARTMENTID != null, newFilter).ToList();
//检查记录
var checkRecord = checkTask.Where(t => t.STATUSPLAN == (int)HMAuditStatusEnmu.归档).ToList();
////隐患上报
//newFilter.SelectField = new List { "ID", "SUBMIT_STATUS", "DEPARTMENT_ID" };
//var riskSubmit = this.GetEntities(t => t.CREATE_TIME >= startTime && t.CREATE_TIME <= endTime && t.DEPARTMENT_ID != null, newFilter).ToList();
//隐患整改记录
newFilter.SelectField = new List { "ID", "DEALSITUATION", "Nav_UserDeal" };
var riskDeal = this.GetEntities(t => t.CREATE_TIME >= startTime && t.CREATE_TIME <= endTime && t.Nav_UserDeal != null && t.Nav_UserDeal.DEPARTMENT_ID != null, newFilter).ToList();
//延期整改申请
newFilter.SelectField = new List { "ID", "APPLY_DEPARTMENT_ID" };
var delayApply = this.GetEntities(t => t.CREATE_TIME >= startTime && t.CREATE_TIME <= endTime && t.APPLY_DEPARTMENT_ID != null, newFilter).ToList();
newFilter.SelectField = new List { "ID", "SHIFT_STATUS", "OVERTIME", "DEPARTMENT_ID", "Nav_Team" };
//岗位当班工作记录
var classRecord = this.GetEntities(t => t.CREATE_TIME >= startTime && t.CREATE_TIME <= endTime && t.DEPARTMENT_ID != null, newFilter).ToList();
//岗位交接班记录
var shiftRecord = this.GetEntities(t => t.CREATE_TIME >= startTime && t.CREATE_TIME <= endTime && t.DEPARTMENT_ID != null, newFilter).ToList();
//班组安全活动
newFilter.SelectField = new List { "ID", "TA_STATUS", "OVERTIME", "Nav_User" };
var teamActive = this.GetEntities(t => t.CREATE_TIME >= startTime && t.CREATE_TIME <= endTime && t.Nav_User != null && t.Nav_User.DEPARTMENT_ID != null, newFilter).ToList();
//班前会议记录
newFilter.SelectField = new List { "ID", "PRE_MEETING_STATUS", "OVERTIME", "DEPARTMENT_ID", "Nav_Team" };
var shiftMeeting = this.GetEntities(t => t.CREATE_TIME >= startTime && t.CREATE_TIME <= endTime && t.DEPARTMENT_ID != null, newFilter).ToList();
//作业活动记录(一般作业)
newFilter.SelectField = new List { "ID", "FORM_STATUS", "Nav_CreateUser" };
var eventRecord = this.GetEntities(t => t.CREATE_TIME >= startTime && t.CREATE_TIME <= endTime && t.Nav_CreateUser != null && t.Nav_CreateUser.DEPARTMENT_ID != null, newFilter).ToList();
//作业方案讨论记录
newFilter.SelectField = new List { "ID", "FORM_STATUS", "DEPARTMENT_ID" };
var operSch = this.GetEntities(t => t.CREATE_TIME >= startTime && t.CREATE_TIME <= endTime && t.DEPARTMENT_ID != null, newFilter).ToList();
//关键作业/许可作业工作票
newFilter.SelectField = new List { "ID", "IS_PUBLISH", "Nav_ApplyUser" };
var licenseJob = this.GetEntities(t => t.CREATE_TIME >= startTime && t.CREATE_TIME <= endTime && t.Nav_ApplyUser != null && t.Nav_ApplyUser.DEPARTMENT_ID != null, newFilter).ToList();
//技术交底表
newFilter.SelectField = new List { "ID", "FORM_STATUS", "Nav_DisclosurePerson" };
var techForm = this.GetEntities(t => t.CREATE_TIME >= startTime && t.CREATE_TIME <= endTime && t.Nav_DisclosurePerson != null && t.Nav_DisclosurePerson.DEPARTMENT_ID != null, newFilter).ToList();
//作业活动记录(关键和许可作业)
newFilter.SelectField = new List { "ID", "FORM_STATUS", "Nav_CreateUser" };
var activeRecord = this.GetEntities(t => t.CREATE_TIME >= startTime && t.CREATE_TIME <= endTime && t.Nav_CreateUser != null && t.Nav_CreateUser.DEPARTMENT_ID != null, newFilter).ToList();
//只取待办超期的
newFilter.SelectField = new List { "SOURCE_DATA_ID" };
var tasks = this.GetEntities(t => t.NOTICE_STATUS == 2 && t.CREATE_TIME >= startTime && t.CREATE_TIME <= endTime, newFilter).ToList();
//tasks = tasks.Where(t => sourceIds.Contains(t.SOURCE_DATA_ID.Value)).ToList();
#region 风险评价计划审核表
if (evalPlan.Any())
{
foreach (var item in evalPlan)
{
var task = tasks.FirstOrDefault(t => t.SOURCE_DATA_ID == item.ID);
if (task == null)
item.IS_OVERTIME = 0;
else
item.IS_OVERTIME = 1;
}
if (!string.IsNullOrEmpty(filter.Keyword))
{
evalPlan = evalPlan.Where(t => outPartmentIds.Contains((Guid)t.INITIATING_DEPARTMENT)).ToList();
}
var count = evalPlan.Count();
var finish = evalPlan.Count(t => t.IS_OVERTIME == 0 && t.STATUS == MS.Domain.Enums.FOPreMeetingStatusEnum.归档);
var overfinish = evalPlan.Count(t => t.IS_OVERTIME == 1 && t.STATUS == MS.Domain.Enums.FOPreMeetingStatusEnum.归档);
var unfinish = count - finish - overfinish;
var temp = count == 0 ? 0 : (double)(finish + overfinish) / count * 100;
var finishRate = temp.ToString("0") + "%";
var temp2 = count == 0 ? 0 : (double)finish / count * 100;
var normalFinishRate = temp2.ToString("0") + "%";
T_BI_FORM_RUN_ANALYSIS analysis = new T_BI_FORM_RUN_ANALYSIS();
analysis.MOUDLE_NAME = "风险管理";
analysis.FORM_NAME = "年度风险评价计划审核表";
analysis.NUM = 1;
analysis.ORG_ID = filter.OrgId;
analysis.TOTAL_QTY = count;
analysis.FINISH_QTY = finish;
analysis.OVER_FINISH_QTY = overfinish;
analysis.UNFINISH_QTY = unfinish;
analysis.FINISH_RATE = finishRate;
analysis.NORMAL_FINISH_RATE = normalFinishRate;
formAnalysis.Add(analysis);
}
#endregion
#region 风险评价计划发布
if (noticeRelease.Any())
{
foreach (var item in noticeRelease)
{
var task = tasks.FirstOrDefault(t => t.SOURCE_DATA_ID == item.ID);
if (task == null)
item.IS_OVERTIME = 0;
else
item.IS_OVERTIME = 1;
}
if (!string.IsNullOrEmpty(filter.Keyword))
{
noticeRelease = noticeRelease.Where(t => outPartmentIds.Contains((Guid)t.RELEAS_DEPARTMENT_ID)).ToList();
}
var count = noticeRelease.Count();
var finish = noticeRelease.Count(t => t.IS_OVERTIME == 0 && t.RELEASE_STATUS == MS.Domain.Enums.FOPreMeetingStatusEnum.归档);
var overfinish = noticeRelease.Count(t => t.IS_OVERTIME == 1 && t.RELEASE_STATUS == MS.Domain.Enums.FOPreMeetingStatusEnum.归档);
var unfinish = count - finish - overfinish;
var temp = count == 0 ? 0 : (double)(finish + overfinish) / count * 100;
var finishRate = temp.ToString("0") + "%";
var temp2 = count == 0 ? 0 : (double)finish / count * 100;
var normalFinishRate = temp2.ToString("0") + "%";
T_BI_FORM_RUN_ANALYSIS analysis = new T_BI_FORM_RUN_ANALYSIS();
analysis.MOUDLE_NAME = "风险管理";
analysis.FORM_NAME = "风险评价计划发布";
analysis.NUM = 2;
analysis.ORG_ID = filter.OrgId;
analysis.TOTAL_QTY = count;
analysis.FINISH_QTY = finish;
analysis.OVER_FINISH_QTY = overfinish;
analysis.UNFINISH_QTY = unfinish;
analysis.FINISH_RATE = finishRate;
analysis.NORMAL_FINISH_RATE = normalFinishRate;
formAnalysis.Add(analysis);
}
#endregion
#region 危险源/风险辨识任务
if (riskTask.Any())
{
foreach (var item in riskTask)
{
var task = tasks.FirstOrDefault(t => t.SOURCE_DATA_ID == item.ID);
if (task == null)
item.IS_OVERTIME = 0;
else
item.IS_OVERTIME = 1;
}
if (!string.IsNullOrEmpty(filter.Keyword))
{
riskTask = riskTask.Where(t => outPartmentIds.Contains((Guid)t.INITIATING_DEPARTMENT)).ToList();
}
var count = riskTask.Count();
var finish = riskTask.Count(t => t.IS_OVERTIME == 0 && t.STATUS == MS.Domain.Enums.FOPreMeetingStatusEnum.归档);
var overfinish = riskTask.Count(t => t.IS_OVERTIME == 1 && t.STATUS == MS.Domain.Enums.FOPreMeetingStatusEnum.归档);
var unfinish = count - finish - overfinish;
var temp = count == 0 ? 0 : (double)(finish + overfinish) / count * 100;
var finishRate = temp.ToString("0") + "%";
var temp2 = count == 0 ? 0 : (double)finish / count * 100;
var normalFinishRate = temp2.ToString("0") + "%";
T_BI_FORM_RUN_ANALYSIS analysis = new T_BI_FORM_RUN_ANALYSIS();
analysis.MOUDLE_NAME = "风险管理";
analysis.FORM_NAME = "危险源/风险辨识任务";
analysis.NUM = 3;
analysis.ORG_ID = filter.OrgId;
analysis.TOTAL_QTY = count;
analysis.FINISH_QTY = finish;
analysis.OVER_FINISH_QTY = overfinish;
analysis.UNFINISH_QTY = unfinish;
analysis.FINISH_RATE = finishRate;
analysis.NORMAL_FINISH_RATE = normalFinishRate;
formAnalysis.Add(analysis);
}
#endregion
#region 危险源/风险辨识记录表
if (riskRecord.Any())
{
foreach (var item in riskRecord)
{
var task = tasks.FirstOrDefault(t => t.SOURCE_DATA_ID == item.ID);
if (task == null)
item.IS_OVERTIME = 0;
else
item.IS_OVERTIME = 1;
}
if (!string.IsNullOrEmpty(filter.Keyword))
{
riskRecord = riskRecord.Where(t => outPartmentIds.Contains((Guid)t.INITIATING_DEPARTMENT)).ToList();
}
var count = riskRecord.Count();
var finish = riskRecord.Count(t => t.IS_OVERTIME == 0 && t.STATUS == MS.Domain.Enums.FOPreMeetingStatusEnum.归档);
var overfinish = riskRecord.Count(t => t.IS_OVERTIME == 1 && t.STATUS == MS.Domain.Enums.FOPreMeetingStatusEnum.归档);
var unfinish = count - finish - overfinish;
var temp = count == 0 ? 0 : (double)(finish + overfinish) / count * 100;
var finishRate = temp.ToString("0") + "%";
var temp2 = count == 0 ? 0 : (double)finish / count * 100;
var normalFinishRate = temp2.ToString("0") + "%";
T_BI_FORM_RUN_ANALYSIS analysis = new T_BI_FORM_RUN_ANALYSIS();
analysis.MOUDLE_NAME = "风险管理";
analysis.FORM_NAME = "危险源/风险辨识记录表";
analysis.NUM = 4;
analysis.ORG_ID = filter.OrgId;
analysis.TOTAL_QTY = count;
analysis.FINISH_QTY = finish;
analysis.OVER_FINISH_QTY = overfinish;
analysis.UNFINISH_QTY = unfinish;
analysis.FINISH_RATE = finishRate;
analysis.NORMAL_FINISH_RATE = normalFinishRate;
formAnalysis.Add(analysis);
}
#endregion
#region 职业危害辨识任务
if (hazardTask.Any())
{
foreach (var item in hazardTask)
{
var task = tasks.FirstOrDefault(t => t.SOURCE_DATA_ID == item.ID);
if (task == null)
item.IS_OVERTIME = 0;
else
item.IS_OVERTIME = 1;
}
if (!string.IsNullOrEmpty(filter.Keyword))
{
hazardTask = hazardTask.Where(t => outPartmentIds.Contains((Guid)t.INITIATING_DEPARTMENT)).ToList();
}
var count = hazardTask.Count();
var finish = hazardTask.Count(t => t.IS_OVERTIME == 0 && t.STATUS == MS.Domain.Enums.FOPreMeetingStatusEnum.归档);
var overfinish = hazardTask.Count(t => t.IS_OVERTIME == 1 && t.STATUS == MS.Domain.Enums.FOPreMeetingStatusEnum.归档);
var unfinish = count - finish - overfinish;
var temp = count == 0 ? 0 : (double)(finish + overfinish) / count * 100;
var finishRate = temp.ToString("0") + "%";
var temp2 = count == 0 ? 0 : (double)finish / count * 100;
var normalFinishRate = temp2.ToString("0") + "%";
T_BI_FORM_RUN_ANALYSIS analysis = new T_BI_FORM_RUN_ANALYSIS();
analysis.MOUDLE_NAME = "风险管理";
analysis.FORM_NAME = "职业危害辨识任务";
analysis.NUM = 5;
analysis.ORG_ID = filter.OrgId;
analysis.TOTAL_QTY = count;
analysis.FINISH_QTY = finish;
analysis.OVER_FINISH_QTY = overfinish;
analysis.UNFINISH_QTY = unfinish;
analysis.FINISH_RATE = finishRate;
analysis.NORMAL_FINISH_RATE = normalFinishRate;
formAnalysis.Add(analysis);
}
#endregion
#region 职业危害辨识记录表
if (hazardRecord.Any())
{
foreach (var item in hazardRecord)
{
var task = tasks.FirstOrDefault(t => t.SOURCE_DATA_ID == item.ID);
if (task == null)
item.IS_OVERTIME = 0;
else
item.IS_OVERTIME = 1;
}
if (!string.IsNullOrEmpty(filter.Keyword))
{
hazardRecord = hazardRecord.Where(t => outPartmentIds.Contains((Guid)t.INITIATING_DEPARTMENT)).ToList();
}
var count = hazardRecord.Count();
var finish = hazardRecord.Count(t => t.IS_OVERTIME == 0 && t.STATUS == MS.Domain.Enums.FOPreMeetingStatusEnum.归档);
var overfinish = hazardRecord.Count(t => t.IS_OVERTIME == 1 && t.STATUS == MS.Domain.Enums.FOPreMeetingStatusEnum.归档);
var unfinish = count - finish - overfinish;
var temp = count == 0 ? 0 : (double)(finish + overfinish) / count * 100;
var finishRate = temp.ToString("0") + "%";
var temp2 = count == 0 ? 0 : (double)finish / count * 100;
var normalFinishRate = temp2.ToString("0") + "%";
T_BI_FORM_RUN_ANALYSIS analysis = new T_BI_FORM_RUN_ANALYSIS();
analysis.MOUDLE_NAME = "风险管理";
analysis.FORM_NAME = "职业危害辨识记录表";
analysis.NUM = 6;
analysis.ORG_ID = filter.OrgId;
analysis.TOTAL_QTY = count;
analysis.FINISH_QTY = finish;
analysis.OVER_FINISH_QTY = overfinish;
analysis.UNFINISH_QTY = unfinish;
analysis.FINISH_RATE = finishRate;
analysis.NORMAL_FINISH_RATE = normalFinishRate;
formAnalysis.Add(analysis);
}
#endregion
#region 评价结果表
if (evalResult.Any())
{
foreach (var item in evalResult)
{
var task = tasks.FirstOrDefault(t => t.SOURCE_DATA_ID == item.ID);
if (task == null)
item.IS_OVERTIME = 0;
else
item.IS_OVERTIME = 1;
}
if (!string.IsNullOrEmpty(filter.Keyword))
{
evalResult = evalResult.Where(t => outPartmentIds.Contains((Guid)t.INITIATING_DEPARTMENT)).ToList();
}
var count = evalResult.Count();
var finish = evalResult.Count(t => t.IS_OVERTIME == 0 && t.STATUS == MS.Domain.Enums.FOPreMeetingStatusEnum.归档);
var overfinish = evalResult.Count(t => t.IS_OVERTIME == 1 && t.STATUS == MS.Domain.Enums.FOPreMeetingStatusEnum.归档);
var unfinish = count - finish - overfinish;
var temp = count == 0 ? 0 : (double)(finish + overfinish) / count * 100;
var finishRate = temp.ToString("0") + "%";
var temp2 = count == 0 ? 0 : (double)finish / count * 100;
var normalFinishRate = temp2.ToString("0") + "%";
T_BI_FORM_RUN_ANALYSIS analysis = new T_BI_FORM_RUN_ANALYSIS();
analysis.MOUDLE_NAME = "风险管理";
analysis.FORM_NAME = "评价结果表";
analysis.NUM = 7;
analysis.ORG_ID = filter.OrgId;
analysis.TOTAL_QTY = count;
analysis.FINISH_QTY = finish;
analysis.OVER_FINISH_QTY = overfinish;
analysis.UNFINISH_QTY = unfinish;
analysis.FINISH_RATE = finishRate;
analysis.NORMAL_FINISH_RATE = normalFinishRate;
formAnalysis.Add(analysis);
}
#endregion
#region 作业任务识别
if (taskIdentify.Any())
{
foreach (var item in taskIdentify)
{
var task = tasks.FirstOrDefault(t => t.SOURCE_DATA_ID == item.ID);
if (task == null)
item.IS_OVERTIME = 0;
else
item.IS_OVERTIME = 1;
}
if (!string.IsNullOrEmpty(filter.Keyword))
{
taskIdentify = taskIdentify.Where(t => outPartmentIds.Contains((Guid)t.DEPARTMENT_ID)).ToList();
}
var count = taskIdentify.Count();
var finish = taskIdentify.Count(t => t.IS_OVERTIME == 0 && t.IS_PUBLISH == MS.Domain.Enums.FOPreMeetingStatusEnum.归档);
var overfinish = taskIdentify.Count(t => t.IS_OVERTIME == 1 && t.IS_PUBLISH == MS.Domain.Enums.FOPreMeetingStatusEnum.归档);
var unfinish = count - finish - overfinish;
var temp = count == 0 ? 0 : (double)(finish + overfinish) / count * 100;
var finishRate = temp.ToString("0") + "%";
var temp2 = count == 0 ? 0 : (double)finish / count * 100;
var normalFinishRate = temp2.ToString("0") + "%";
T_BI_FORM_RUN_ANALYSIS analysis = new T_BI_FORM_RUN_ANALYSIS();
analysis.MOUDLE_NAME = "风险管理";
analysis.FORM_NAME = "作业任务识别";
analysis.NUM = 8;
analysis.ORG_ID = filter.OrgId;
analysis.TOTAL_QTY = count;
analysis.FINISH_QTY = finish;
analysis.OVER_FINISH_QTY = overfinish;
analysis.UNFINISH_QTY = unfinish;
analysis.FINISH_RATE = finishRate;
analysis.NORMAL_FINISH_RATE = normalFinishRate;
formAnalysis.Add(analysis);
}
#endregion
#region 作业任务识别分析
if (taskAnalysis.Any())
{
foreach (var item in taskAnalysis)
{
var task = tasks.FirstOrDefault(t => t.SOURCE_DATA_ID == item.ID);
if (task == null)
item.IS_OVERTIME = 0;
else
item.IS_OVERTIME = 1;
}
if (!string.IsNullOrEmpty(filter.Keyword))
{
taskAnalysis = taskAnalysis.Where(t => outPartmentIds.Contains((Guid)t.DEPARTMENT_ID)).ToList();
}
var count = taskAnalysis.Count();
var finish = taskAnalysis.Count(t => t.IS_OVERTIME == 0 && t.IS_PUBLISH == MS.Domain.Enums.FOPreMeetingStatusEnum.归档);
var overfinish = taskAnalysis.Count(t => t.IS_OVERTIME == 1 && t.IS_PUBLISH == MS.Domain.Enums.FOPreMeetingStatusEnum.归档);
var unfinish = count - finish - overfinish;
var temp = count == 0 ? 0 : (double)(finish + overfinish) / count * 100;
var finishRate = temp.ToString("0") + "%";
var temp2 = count == 0 ? 0 : (double)finish / count * 100;
var normalFinishRate = temp2.ToString("0") + "%";
T_BI_FORM_RUN_ANALYSIS analysis = new T_BI_FORM_RUN_ANALYSIS();
analysis.MOUDLE_NAME = "风险管理";
analysis.FORM_NAME = "作业任务识别分析";
analysis.NUM = 9;
analysis.ORG_ID = filter.OrgId;
analysis.TOTAL_QTY = count;
analysis.FINISH_QTY = finish;
analysis.OVER_FINISH_QTY = overfinish;
analysis.UNFINISH_QTY = unfinish;
analysis.FINISH_RATE = finishRate;
analysis.NORMAL_FINISH_RATE = normalFinishRate;
formAnalysis.Add(analysis);
}
#endregion
#region 一般任务分析
if (taskOrdinary.Any())
{
foreach (var item in taskOrdinary)
{
var task = tasks.FirstOrDefault(t => t.SOURCE_DATA_ID == item.ID);
if (task == null)
item.IS_OVERTIME = 0;
else
item.IS_OVERTIME = 1;
}
if (!string.IsNullOrEmpty(filter.Keyword))
{
taskOrdinary = taskOrdinary.Where(t => outPartmentIds.Contains((Guid)t.DEPARTMENT_ID)).ToList();
}
var count = taskOrdinary.Count();
var finish = taskOrdinary.Count(t => t.IS_OVERTIME == 0 && t.IS_PUBLISH == MS.Domain.Enums.FOPreMeetingStatusEnum.归档);
var overfinish = taskOrdinary.Count(t => t.IS_OVERTIME == 1 && t.IS_PUBLISH == MS.Domain.Enums.FOPreMeetingStatusEnum.归档);
var unfinish = count - finish - overfinish;
var temp = count == 0 ? 0 : (double)(finish + overfinish) / count * 100;
var finishRate = temp.ToString("0") + "%";
var temp2 = count == 0 ? 0 : (double)finish / count * 100;
var normalFinishRate = temp2.ToString("0") + "%";
T_BI_FORM_RUN_ANALYSIS analysis = new T_BI_FORM_RUN_ANALYSIS();
analysis.MOUDLE_NAME = "风险管理";
analysis.FORM_NAME = "一般任务分析";
analysis.NUM = 10;
analysis.ORG_ID = filter.OrgId;
analysis.TOTAL_QTY = count;
analysis.FINISH_QTY = finish;
analysis.OVER_FINISH_QTY = overfinish;
analysis.UNFINISH_QTY = unfinish;
analysis.FINISH_RATE = finishRate;
analysis.NORMAL_FINISH_RATE = normalFinishRate;
formAnalysis.Add(analysis);
}
#endregion
#region 关键任务分析
if (taskCrucial.Any())
{
foreach (var item in taskCrucial)
{
var task = tasks.FirstOrDefault(t => t.SOURCE_DATA_ID == item.ID);
if (task == null)
item.IS_OVERTIME = 0;
else
item.IS_OVERTIME = 1;
}
if (!string.IsNullOrEmpty(filter.Keyword))
{
taskCrucial = taskCrucial.Where(t => outPartmentIds.Contains((Guid)t.DEPARTMENT_ID)).ToList();
}
var count = taskCrucial.Count();
var finish = taskCrucial.Count(t => t.IS_OVERTIME == 0 && t.IS_PUBLISH == MS.Domain.Enums.FOPreMeetingStatusEnum.归档);
var overfinish = taskCrucial.Count(t => t.IS_OVERTIME == 1 && t.IS_PUBLISH == MS.Domain.Enums.FOPreMeetingStatusEnum.归档);
var unfinish = count - finish - overfinish;
var temp = count == 0 ? 0 : (double)(finish + overfinish) / count * 100;
var finishRate = temp.ToString("0") + "%";
var temp2 = count == 0 ? 0 : (double)finish / count * 100;
var normalFinishRate = temp2.ToString("0") + "%";
T_BI_FORM_RUN_ANALYSIS analysis = new T_BI_FORM_RUN_ANALYSIS();
analysis.MOUDLE_NAME = "风险管理";
analysis.FORM_NAME = "关键任务分析";
analysis.NUM = 11;
analysis.ORG_ID = filter.OrgId;
analysis.TOTAL_QTY = count;
analysis.FINISH_QTY = finish;
analysis.OVER_FINISH_QTY = overfinish;
analysis.UNFINISH_QTY = unfinish;
analysis.FINISH_RATE = finishRate;
analysis.NORMAL_FINISH_RATE = normalFinishRate;
formAnalysis.Add(analysis);
}
#endregion
#region 许可任务分析
if (taskLicense.Any())
{
foreach (var item in taskLicense)
{
var task = tasks.FirstOrDefault(t => t.SOURCE_DATA_ID == item.ID);
if (task == null)
item.IS_OVERTIME = 0;
else
item.IS_OVERTIME = 1;
}
if (!string.IsNullOrEmpty(filter.Keyword))
{
taskLicense = taskLicense.Where(t => outPartmentIds.Contains((Guid)t.DEPARTMENT_ID)).ToList();
}
var count = taskLicense.Count();
var finish = taskLicense.Count(t => t.IS_OVERTIME == 0 && t.IS_PUBLISH == MS.Domain.Enums.FOPreMeetingStatusEnum.归档);
var overfinish = taskLicense.Count(t => t.IS_OVERTIME == 1 && t.IS_PUBLISH == MS.Domain.Enums.FOPreMeetingStatusEnum.归档);
var unfinish = count - finish - overfinish;
var temp = count == 0 ? 0 : (double)(finish + overfinish) / count * 100;
var finishRate = temp.ToString("0") + "%";
var temp2 = count == 0 ? 0 : (double)finish / count * 100;
var normalFinishRate = temp2.ToString("0") + "%";
T_BI_FORM_RUN_ANALYSIS analysis = new T_BI_FORM_RUN_ANALYSIS();
analysis.MOUDLE_NAME = "风险管理";
analysis.FORM_NAME = "许可任务分析";
analysis.NUM = 12;
analysis.ORG_ID = filter.OrgId;
analysis.TOTAL_QTY = count;
analysis.FINISH_QTY = finish;
analysis.OVER_FINISH_QTY = overfinish;
analysis.UNFINISH_QTY = unfinish;
analysis.FINISH_RATE = finishRate;
analysis.NORMAL_FINISH_RATE = normalFinishRate;
formAnalysis.Add(analysis);
}
#endregion
#region 作业任务分析文件发布
if (filePublish.Any())
{
foreach (var item in filePublish)
{
var task = tasks.FirstOrDefault(t => t.SOURCE_DATA_ID == item.ID);
if (task == null)
item.IS_OVERTIME = 0;
else
item.IS_OVERTIME = 1;
}
if (!string.IsNullOrEmpty(filter.Keyword))
{
filePublish = filePublish.Where(t => outPartmentIds.Contains((Guid)t.DEPARTMENT_ID)).ToList();
}
var count = filePublish.Count();
var finish = filePublish.Count(t => t.IS_OVERTIME == 0 && t.IS_PUBLISH == MS.Domain.Enums.FOPreMeetingStatusEnum.归档);
var overfinish = filePublish.Count(t => t.IS_OVERTIME == 1 && t.IS_PUBLISH == MS.Domain.Enums.FOPreMeetingStatusEnum.归档);
var unfinish = count - finish - overfinish;
var temp = count == 0 ? 0 : (double)(finish + overfinish) / count * 100;
var finishRate = temp.ToString("0") + "%";
var temp2 = count == 0 ? 0 : (double)finish / count * 100;
var normalFinishRate = temp2.ToString("0") + "%";
T_BI_FORM_RUN_ANALYSIS analysis = new T_BI_FORM_RUN_ANALYSIS();
analysis.MOUDLE_NAME = "风险管理";
analysis.FORM_NAME = "作业任务分析文件发布";
analysis.NUM = 13;
analysis.ORG_ID = filter.OrgId;
analysis.TOTAL_QTY = count;
analysis.FINISH_QTY = finish;
analysis.OVER_FINISH_QTY = overfinish;
analysis.UNFINISH_QTY = unfinish;
analysis.FINISH_RATE = finishRate;
analysis.NORMAL_FINISH_RATE = normalFinishRate;
formAnalysis.Add(analysis);
}
#endregion
#region 检查任务制定
if (checkTask.Any())
{
foreach (var item in checkTask)
{
var task = tasks.FirstOrDefault(t => t.SOURCE_DATA_ID == item.ID);
if (task == null)
item.IS_OVERTIME = 0;
else
item.IS_OVERTIME = 1;
}
if (!string.IsNullOrEmpty(filter.Keyword))
{
checkTask = checkTask.Where(t => outPartmentIds.Contains((Guid)t.DEPARTMENTID)).ToList();
}
var count = checkTask.Count();
var finish = checkTask.Count(t => t.IS_OVERTIME == 0 && t.STATUSPLAN == (int)HMAuditStatusEnmu.归档);
var overfinish = checkTask.Count(t => t.IS_OVERTIME == 1 && t.STATUSPLAN == (int)HMAuditStatusEnmu.归档);
var unfinish = count - finish - overfinish;
var temp = count == 0 ? 0 : (double)(finish + overfinish) / count * 100;
var finishRate = temp.ToString("0") + "%";
var temp2 = count == 0 ? 0 : (double)finish / count * 100;
var normalFinishRate = temp2.ToString("0") + "%";
T_BI_FORM_RUN_ANALYSIS analysis = new T_BI_FORM_RUN_ANALYSIS();
analysis.MOUDLE_NAME = "安全检查";
analysis.FORM_NAME = "检查任务制定";
analysis.NUM = 20;
analysis.ORG_ID = filter.OrgId;
analysis.TOTAL_QTY = count;
analysis.FINISH_QTY = finish;
analysis.OVER_FINISH_QTY = overfinish;
analysis.UNFINISH_QTY = unfinish;
analysis.FINISH_RATE = finishRate;
analysis.NORMAL_FINISH_RATE = normalFinishRate;
formAnalysis.Add(analysis);
}
#endregion
#region 检查记录
if (checkRecord.Any())
{
foreach (var item in checkRecord)
{
var task = tasks.FirstOrDefault(t => t.SOURCE_DATA_ID == item.ID);
if (task == null)
item.IS_OVERTIME = 0;
else
item.IS_OVERTIME = 1;
}
if (!string.IsNullOrEmpty(filter.Keyword))
{
checkRecord = checkRecord.Where(t => outPartmentIds.Contains((Guid)t.DEPARTMENTID)).ToList();
}
var count = checkRecord.Count();
var finish = checkRecord.Count(t => t.IS_OVERTIME == 0 && t.STATUCHECK == (int)HMAuditStatusEnmu.归档);
var overfinish = checkRecord.Count(t => t.IS_OVERTIME == 1 && t.STATUCHECK == (int)HMAuditStatusEnmu.归档);
var unfinish = count - finish - overfinish;
var temp = count == 0 ? 0 : (double)(finish + overfinish) / count * 100;
var finishRate = temp.ToString("0") + "%";
var temp2 = count == 0 ? 0 : (double)finish / count * 100;
var normalFinishRate = temp2.ToString("0") + "%";
T_BI_FORM_RUN_ANALYSIS analysis = new T_BI_FORM_RUN_ANALYSIS();
analysis.MOUDLE_NAME = "安全检查";
analysis.FORM_NAME = "检查记录";
analysis.NUM = 21;
analysis.ORG_ID = filter.OrgId;
analysis.TOTAL_QTY = count;
analysis.FINISH_QTY = finish;
analysis.OVER_FINISH_QTY = overfinish;
analysis.UNFINISH_QTY = unfinish;
analysis.FINISH_RATE = finishRate;
analysis.NORMAL_FINISH_RATE = normalFinishRate;
formAnalysis.Add(analysis);
}
#endregion
#region 隐患上报
//if (riskSubmit.Any())
//{
// foreach (var item in riskSubmit)
// {
// var task = tasks.FirstOrDefault(t => t.SOURCE_DATA_ID == item.ID);
// if (task == null)
// item.IS_OVERTIME = 0;
// else
// item.IS_OVERTIME = 1;
// }
// if (!string.IsNullOrEmpty(filter.Keyword))
// {
// riskSubmit = riskSubmit.Where(t => outPartmentIds.Contains((Guid)t.DEPARTMENT_ID)).ToList();
// }
// var count = riskSubmit.Count();
// var finish = riskSubmit.Count(t => t.IS_OVERTIME == 0 && t.SUBMIT_STATUS == (int)BSSubmitStatusEnum.Start);
// var overfinish = riskSubmit.Count(t => t.IS_OVERTIME == 1 && t.SUBMIT_STATUS == (int)BSSubmitStatusEnum.Start);
// var unfinish = count - finish - overfinish;
// var temp = count == 0 ? 0 : (double)(finish + overfinish) / count * 100;
// var finishRate = temp.ToString("0") + "%";
// var temp2 = count == 0 ? 0 : (double)finish / count * 100;
// var normalFinishRate = temp2.ToString("0") + "%";
// T_BI_FORM_RUN_ANALYSIS analysis = new T_BI_FORM_RUN_ANALYSIS();
// analysis.MOUDLE_NAME = "安全检查";
// analysis.FORM_NAME = "隐患上报";
// analysis.NUM = 22;
// analysis.ORG_ID = filter.OrgId;
// analysis.TOTAL_QTY = count;
// analysis.FINISH_QTY = finish;
// analysis.OVER_FINISH_QTY = overfinish;
// analysis.UNFINISH_QTY = unfinish;
// analysis.FINISH_RATE = finishRate;
// analysis.NORMAL_FINISH_RATE = normalFinishRate;
// formAnalysis.Add(analysis);
//}
#endregion
#region 隐患整改记录
if (riskDeal.Any())
{
foreach (var item in riskDeal)
{
var task = tasks.FirstOrDefault(t => t.SOURCE_DATA_ID == item.ID);
if (task == null)
item.IS_OVERTIME = 0;
else
item.IS_OVERTIME = 1;
}
if (!string.IsNullOrEmpty(filter.Keyword))
{
riskDeal = riskDeal.Where(t => outPartmentIds.Contains((Guid)t.Nav_UserDeal.DEPARTMENT_ID)).ToList();
}
var count = riskDeal.Count();
var finish = riskDeal.Count(t => t.IS_OVERTIME == 0 && t.DEALSITUATION == (int)DealSituation.End);
var overfinish = riskDeal.Count(t => t.IS_OVERTIME == 1 && t.DEALSITUATION == (int)DealSituation.End);
var unfinish = count - finish - overfinish;
var temp = count == 0 ? 0 : (double)(finish + overfinish) / count * 100;
var finishRate = temp.ToString("0") + "%";
var temp2 = count == 0 ? 0 : (double)finish / count * 100;
var normalFinishRate = temp2.ToString("0") + "%";
T_BI_FORM_RUN_ANALYSIS analysis = new T_BI_FORM_RUN_ANALYSIS();
analysis.MOUDLE_NAME = "安全检查";
analysis.FORM_NAME = "隐患整改记录";
analysis.NUM = 23;
analysis.ORG_ID = filter.OrgId;
analysis.TOTAL_QTY = count;
analysis.FINISH_QTY = finish;
analysis.OVER_FINISH_QTY = overfinish;
analysis.UNFINISH_QTY = unfinish;
analysis.FINISH_RATE = finishRate;
analysis.NORMAL_FINISH_RATE = normalFinishRate;
formAnalysis.Add(analysis);
}
#endregion
#region 延期整改申请
if (delayApply.Any())
{
foreach (var item in delayApply)
{
var task = tasks.FirstOrDefault(t => t.SOURCE_DATA_ID == item.ID);
if (task == null)
item.IS_OVERTIME = 0;
else
item.IS_OVERTIME = 1;
}
if (!string.IsNullOrEmpty(filter.Keyword))
{
delayApply = delayApply.Where(t => outPartmentIds.Contains((Guid)t.APPLY_DEPARTMENT_ID)).ToList();
}
var count = delayApply.Count();
var finish = delayApply.Count(t => t.IS_OVERTIME == 0);
var overfinish = delayApply.Count(t => t.IS_OVERTIME == 1);
var unfinish = count - finish - overfinish;
var temp = count == 0 ? 0 : (double)(finish + overfinish) / count * 100;
var finishRate = temp.ToString("0") + "%";
var temp2 = count == 0 ? 0 : (double)finish / count * 100;
var normalFinishRate = temp2.ToString("0") + "%";
T_BI_FORM_RUN_ANALYSIS analysis = new T_BI_FORM_RUN_ANALYSIS();
analysis.MOUDLE_NAME = "安全检查";
analysis.FORM_NAME = "延期整改申请";
analysis.NUM = 24;
analysis.ORG_ID = filter.OrgId;
analysis.TOTAL_QTY = count;
analysis.FINISH_QTY = finish;
analysis.OVER_FINISH_QTY = overfinish;
analysis.UNFINISH_QTY = unfinish;
analysis.FINISH_RATE = finishRate;
analysis.NORMAL_FINISH_RATE = normalFinishRate;
formAnalysis.Add(analysis);
}
#endregion
#region 岗位当班工作记录
if (classRecord.Any())
{
//var taskIds = tasks.Select(t => t.ID).ToList();
foreach (var item in classRecord)
{
var task = tasks.FirstOrDefault(t => t.SOURCE_DATA_ID == item.ID);
if (task == null)
item.IS_OVERTIME = 0;
else
item.IS_OVERTIME = 1;
}
if (!string.IsNullOrEmpty(filter.Keyword))
{
classRecord = classRecord.Where(t => outPartmentIds.Contains((Guid)t.Nav_Team?.DEPARTMENT_ID)).ToList();
if (!classRecord.Any())
{
classRecord = classRecord.Where(t => outPartmentIds.Contains((Guid)t.DEPARTMENT_ID)).ToList();
}
//var recordIds = classRecord.Where(t => t.IS_OVERTIME == 1 && t.SHIFT_STATUS == (int)FOShiftStatusEnum.归档).Select(t => t.ID).ToList();
}
var count = classRecord.Count();
var finish = classRecord.Count(t => t.IS_OVERTIME == 0 && t.SHIFT_STATUS == (int)FOShiftStatusEnum.归档);
var overfinish = classRecord.Count(t => t.IS_OVERTIME == 1 && t.SHIFT_STATUS == (int)FOShiftStatusEnum.归档);
var unfinish = count - finish - overfinish;
var temp = count == 0 ? 0 : (double)(finish + overfinish) / count * 100;
var finishRate = temp.ToString("0") + "%";
var temp2 = count == 0 ? 0 : (double)finish / count * 100;
var normalFinishRate = temp2.ToString("0") + "%";
T_BI_FORM_RUN_ANALYSIS analysis = new T_BI_FORM_RUN_ANALYSIS();
analysis.MOUDLE_NAME = "作业现场管理";
analysis.FORM_NAME = "岗位当班工作记录";
analysis.NUM = 30;
analysis.ORG_ID = filter.OrgId;
analysis.TOTAL_QTY = count;
analysis.FINISH_QTY = finish;
analysis.OVER_FINISH_QTY = overfinish;
analysis.UNFINISH_QTY = unfinish;
analysis.FINISH_RATE = finishRate;
analysis.NORMAL_FINISH_RATE = normalFinishRate;
formAnalysis.Add(analysis);
}
#endregion
#region 岗位交接班记录
if (shiftRecord.Any())
{
foreach (var item in shiftRecord)
{
var task = tasks.FirstOrDefault(t => t.SOURCE_DATA_ID == item.ID);
if (task == null)
item.IS_OVERTIME = 0;
else
item.IS_OVERTIME = 1;
}
if (!string.IsNullOrEmpty(filter.Keyword))
{
shiftRecord = shiftRecord.Where(t => outPartmentIds.Contains((Guid)t.Nav_Team?.DEPARTMENT_ID)).ToList();
if (!shiftRecord.Any())
{
shiftRecord = shiftRecord.Where(t => outPartmentIds.Contains((Guid)t.DEPARTMENT_ID)).ToList();
}
}
var count = shiftRecord.Count();
var finish = shiftRecord.Count(t => t.IS_OVERTIME == 0 && t.SHIFT_STATUS == (int)FOChangeShiftStatusEnum.归档);
var overfinish = shiftRecord.Count(t => t.IS_OVERTIME == 1 && t.SHIFT_STATUS == (int)FOChangeShiftStatusEnum.归档);
var unfinish = count - finish - overfinish;
var temp = count == 0 ? 0 : (double)(finish + overfinish) / count * 100;
var finishRate = temp.ToString("0") + "%";
var temp2 = count == 0 ? 0 : (double)finish / count * 100;
var normalFinishRate = temp2.ToString("0") + "%";
T_BI_FORM_RUN_ANALYSIS analysis = new T_BI_FORM_RUN_ANALYSIS();
analysis.MOUDLE_NAME = "作业现场管理";
analysis.FORM_NAME = "岗位交接班记录";
analysis.NUM = 31;
analysis.ORG_ID = filter.OrgId;
analysis.TOTAL_QTY = count;
analysis.FINISH_QTY = finish;
analysis.OVER_FINISH_QTY = overfinish;
analysis.UNFINISH_QTY = unfinish;
analysis.FINISH_RATE = finishRate;
analysis.NORMAL_FINISH_RATE = normalFinishRate;
formAnalysis.Add(analysis);
}
#endregion
#region 班组安全活动
if (teamActive.Any())
{
foreach (var item in teamActive)
{
var task = tasks.FirstOrDefault(t => t.SOURCE_DATA_ID == item.ID);
if (task == null)
item.IS_OVERTIME = 0;
else
item.IS_OVERTIME = 1;
}
if (!string.IsNullOrEmpty(filter.Keyword))
{
teamActive = teamActive.Where(t => outPartmentIds.Contains((Guid)t.Nav_User.DEPARTMENT_ID)).ToList();
}
var count = teamActive.Count();
var finish = teamActive.Count(t => t.IS_OVERTIME == 0 && t.TA_STATUS == (int)FOTeamActivityState.已归档);
var overfinish = teamActive.Count(t => t.IS_OVERTIME == 1 && t.TA_STATUS == (int)FOTeamActivityState.已归档);
var unfinish = count - finish - overfinish;
var temp = count == 0 ? 0 : (double)(finish + overfinish) / count * 100;
var finishRate = temp.ToString("0") + "%";
var temp2 = count == 0 ? 0 : (double)finish / count * 100;
var normalFinishRate = temp2.ToString("0") + "%";
T_BI_FORM_RUN_ANALYSIS analysis = new T_BI_FORM_RUN_ANALYSIS();
analysis.MOUDLE_NAME = "作业现场管理";
analysis.FORM_NAME = "班组安全活动";
analysis.NUM = 32;
analysis.ORG_ID = filter.OrgId;
analysis.TOTAL_QTY = count;
analysis.FINISH_QTY = finish;
analysis.OVER_FINISH_QTY = overfinish;
analysis.UNFINISH_QTY = unfinish;
analysis.FINISH_RATE = finishRate;
analysis.NORMAL_FINISH_RATE = normalFinishRate;
formAnalysis.Add(analysis);
}
#endregion
#region 班前会议记录
if (shiftMeeting.Any())
{
foreach (var item in shiftMeeting)
{
var task = tasks.FirstOrDefault(t => t.SOURCE_DATA_ID == item.ID);
if (task == null)
item.IS_OVERTIME = 0;
else
item.IS_OVERTIME = 1;
}
if (!string.IsNullOrEmpty(filter.Keyword))
{
shiftMeeting = shiftMeeting.Where(t => outPartmentIds.Contains((Guid)t.Nav_Team?.DEPARTMENT_ID)).ToList();
if (!shiftMeeting.Any())
{
shiftMeeting = shiftMeeting.Where(t => outPartmentIds.Contains((Guid)t.DEPARTMENT_ID)).ToList();
}
}
var count = shiftMeeting.Count();
var finish = shiftMeeting.Count(t => t.IS_OVERTIME == 0 && t.PRE_MEETING_STATUS == FOPreMeetingStatusEnum.归档);
var overfinish = shiftMeeting.Count(t => t.IS_OVERTIME == 1 && t.PRE_MEETING_STATUS == FOPreMeetingStatusEnum.归档);
var unfinish = count - finish - overfinish;
var temp = count == 0 ? 0 : (double)(finish + overfinish) / count * 100;
var finishRate = temp.ToString("0") + "%";
var temp2 = count == 0 ? 0 : (double)finish / count * 100;
var normalFinishRate = temp2.ToString("0") + "%";
T_BI_FORM_RUN_ANALYSIS analysis = new T_BI_FORM_RUN_ANALYSIS();
analysis.MOUDLE_NAME = "作业现场管理";
analysis.FORM_NAME = "班前会议记录";
analysis.NUM = 33;
analysis.ORG_ID = filter.OrgId;
analysis.TOTAL_QTY = count;
analysis.FINISH_QTY = finish;
analysis.OVER_FINISH_QTY = overfinish;
analysis.UNFINISH_QTY = unfinish;
analysis.FINISH_RATE = finishRate;
analysis.NORMAL_FINISH_RATE = normalFinishRate;
formAnalysis.Add(analysis);
}
#endregion
#region 作业活动记录(一般作业)
if (eventRecord.Any())
{
foreach (var item in eventRecord)
{
var task = tasks.FirstOrDefault(t => t.SOURCE_DATA_ID == item.ID);
if (task == null)
item.IS_OVERTIME = 0;
else
item.IS_OVERTIME = 1;
}
if (!string.IsNullOrEmpty(filter.Keyword))
{
eventRecord = eventRecord.Where(t => outPartmentIds.Contains((Guid)t.Nav_CreateUser.DEPARTMENT_ID)).ToList();
}
var count = eventRecord.Count();
var finish = eventRecord.Count(t => t.IS_OVERTIME == 0 && t.FORM_STATUS == (int)FOTeamActivityState.已归档);
var overfinish = eventRecord.Count(t => t.IS_OVERTIME == 1 && t.FORM_STATUS == (int)FOTeamActivityState.已归档);
var unfinish = count - finish - overfinish;
var temp = count == 0 ? 0 : (double)(finish + overfinish) / count * 100;
var finishRate = temp.ToString("0") + "%";
var temp2 = count == 0 ? 0 : (double)finish / count * 100;
var normalFinishRate = temp2.ToString("0") + "%";
T_BI_FORM_RUN_ANALYSIS analysis = new T_BI_FORM_RUN_ANALYSIS();
analysis.MOUDLE_NAME = "作业现场管理";
analysis.FORM_NAME = "作业活动记录(一般作业)";
analysis.NUM = 34;
analysis.ORG_ID = filter.OrgId;
analysis.TOTAL_QTY = count;
analysis.FINISH_QTY = finish;
analysis.OVER_FINISH_QTY = overfinish;
analysis.UNFINISH_QTY = unfinish;
analysis.FINISH_RATE = finishRate;
analysis.NORMAL_FINISH_RATE = normalFinishRate;
formAnalysis.Add(analysis);
}
#endregion
#region 作业方案讨论记录
if (operSch.Any())
{
foreach (var item in operSch)
{
var task = tasks.FirstOrDefault(t => t.SOURCE_DATA_ID == item.ID);
if (task == null)
item.IS_OVERTIME = 0;
else
item.IS_OVERTIME = 1;
}
if (!string.IsNullOrEmpty(filter.Keyword))
{
operSch = operSch.Where(t => outPartmentIds.Contains((Guid)t.DEPARTMENT_ID)).ToList();
}
var count = operSch.Count();
var finish = operSch.Count(t => t.IS_OVERTIME == 0 && t.FORM_STATUS == (int)FOTeamActivityState.已归档);
var overfinish = operSch.Count(t => t.IS_OVERTIME == 1 && t.FORM_STATUS == (int)FOTeamActivityState.已归档);
var unfinish = count - finish - overfinish;
var temp = count == 0 ? 0 : (double)(finish + overfinish) / count * 100;
var finishRate = temp.ToString("0") + "%";
var temp2 = count == 0 ? 0 : (double)finish / count * 100;
var normalFinishRate = temp2.ToString("0") + "%";
T_BI_FORM_RUN_ANALYSIS analysis = new T_BI_FORM_RUN_ANALYSIS();
analysis.MOUDLE_NAME = "作业现场管理";
analysis.FORM_NAME = "作业方案讨论记录";
analysis.NUM = 35;
analysis.ORG_ID = filter.OrgId;
analysis.TOTAL_QTY = count;
analysis.FINISH_QTY = finish;
analysis.OVER_FINISH_QTY = overfinish;
analysis.UNFINISH_QTY = unfinish;
analysis.FINISH_RATE = finishRate;
analysis.NORMAL_FINISH_RATE = normalFinishRate;
formAnalysis.Add(analysis);
}
#endregion
#region 关键作业/许可作业工作票
if (licenseJob.Any())
{
foreach (var item in licenseJob)
{
var task = tasks.FirstOrDefault(t => t.SOURCE_DATA_ID == item.ID);
if (task == null)
item.IS_OVERTIME = 0;
else
item.IS_OVERTIME = 1;
}
if (!string.IsNullOrEmpty(filter.Keyword))
{
licenseJob = licenseJob.Where(t => outPartmentIds.Contains((Guid)t.Nav_ApplyUser.DEPARTMENT_ID)).ToList();
}
var count = licenseJob.Count();
var finish = licenseJob.Count(t => t.IS_OVERTIME == 0 && t.IS_PUBLISH == (int)FOPreMeetingStatusEnum.归档);
var overfinish = licenseJob.Count(t => t.IS_OVERTIME == 1 && t.IS_PUBLISH == (int)FOPreMeetingStatusEnum.归档);
var unfinish = count - finish - overfinish;
var temp = count == 0 ? 0 : (double)(finish + overfinish) / count * 100;
var finishRate = temp.ToString("0") + "%";
var temp2 = count == 0 ? 0 : (double)finish / count * 100;
var normalFinishRate = temp2.ToString("0") + "%";
T_BI_FORM_RUN_ANALYSIS analysis = new T_BI_FORM_RUN_ANALYSIS();
analysis.MOUDLE_NAME = "作业现场管理";
analysis.FORM_NAME = "关键作业/许可作业工作票";
analysis.NUM = 36;
analysis.ORG_ID = filter.OrgId;
analysis.TOTAL_QTY = count;
analysis.FINISH_QTY = finish;
analysis.OVER_FINISH_QTY = overfinish;
analysis.UNFINISH_QTY = unfinish;
analysis.FINISH_RATE = finishRate;
analysis.NORMAL_FINISH_RATE = normalFinishRate;
formAnalysis.Add(analysis);
}
#endregion
#region 技术交底表
if (techForm.Any())
{
foreach (var item in techForm)
{
var task = tasks.FirstOrDefault(t => t.SOURCE_DATA_ID == item.ID);
if (task == null)
item.IS_OVERTIME = 0;
else
item.IS_OVERTIME = 1;
}
if (!string.IsNullOrEmpty(filter.Keyword))
{
techForm = techForm.Where(t => outPartmentIds.Contains((Guid)t.Nav_DisclosurePerson.DEPARTMENT_ID)).ToList();
}
var count = techForm.Count();
var finish = techForm.Count(t => t.IS_OVERTIME == 0 && t.FORM_STATUS == (int)FOTeamActivityState.已归档);
var overfinish = techForm.Count(t => t.IS_OVERTIME == 1 && t.FORM_STATUS == (int)FOTeamActivityState.已归档);
var unfinish = count - finish - overfinish;
var temp = count == 0 ? 0 : (double)(finish + overfinish) / count * 100;
var finishRate = temp.ToString("0") + "%";
var temp2 = count == 0 ? 0 : (double)finish / count * 100;
var normalFinishRate = temp2.ToString("0") + "%";
T_BI_FORM_RUN_ANALYSIS analysis = new T_BI_FORM_RUN_ANALYSIS();
analysis.MOUDLE_NAME = "作业现场管理";
analysis.FORM_NAME = "技术交底表";
analysis.NUM = 37;
analysis.ORG_ID = filter.OrgId;
analysis.TOTAL_QTY = count;
analysis.FINISH_QTY = finish;
analysis.OVER_FINISH_QTY = overfinish;
analysis.UNFINISH_QTY = unfinish;
analysis.FINISH_RATE = finishRate;
analysis.NORMAL_FINISH_RATE = normalFinishRate;
formAnalysis.Add(analysis);
}
#endregion
#region 作业活动记录(关键和许可作业)
if (activeRecord.Any())
{
foreach (var item in activeRecord)
{
var task = tasks.FirstOrDefault(t => t.SOURCE_DATA_ID == item.ID);
if (task == null)
item.IS_OVERTIME = 0;
else
item.IS_OVERTIME = 1;
}
if (!string.IsNullOrEmpty(filter.Keyword))
{
activeRecord = activeRecord.Where(t => outPartmentIds.Contains((Guid)t.Nav_CreateUser.DEPARTMENT_ID)).ToList();
}
var count = activeRecord.Count();
var finish = activeRecord.Count(t => t.IS_OVERTIME == 0 && t.FORM_STATUS == (int)FOTeamActivityState.已归档);
var overfinish = activeRecord.Count(t => t.IS_OVERTIME == 1 && t.FORM_STATUS == (int)FOTeamActivityState.已归档);
var unfinish = count - finish - overfinish;
var temp = count == 0 ? 0 : (double)(finish + overfinish) / count * 100;
var finishRate = temp.ToString("0") + "%";
var temp2 = count == 0 ? 0 : (double)finish / count * 100;
var normalFinishRate = temp2.ToString("0") + "%";
T_BI_FORM_RUN_ANALYSIS analysis = new T_BI_FORM_RUN_ANALYSIS();
analysis.MOUDLE_NAME = "作业现场管理";
analysis.FORM_NAME = "作业活动记录(关键和许可作业)";
analysis.NUM = 38;
analysis.ORG_ID = filter.OrgId;
analysis.TOTAL_QTY = count;
analysis.FINISH_QTY = finish;
analysis.OVER_FINISH_QTY = overfinish;
analysis.UNFINISH_QTY = unfinish;
analysis.FINISH_RATE = finishRate;
analysis.NORMAL_FINISH_RATE = normalFinishRate;
formAnalysis.Add(analysis);
}
#endregion
}
if (!string.IsNullOrEmpty(filter.Parameter3) && filter.Parameter3 == "风险管理")
{
newFilter.SelectField = new List { "ID", "STATUS", "INITIATING_DEPARTMENT" };
//风险评价计划审核表
var evalPlan = this.GetEntities(t => t.CREATE_TIME >= startTime && t.CREATE_TIME <= endTime && t.INITIATING_DEPARTMENT != null, newFilter).ToList();
//风险评价计划发布
newFilter.SelectField = new List { "ID", "RELEASE_STATUS", "RELEAS_DEPARTMENT_ID" };
var noticeRelease = this.GetEntities(t => t.CREATE_TIME >= startTime && t.CREATE_TIME <= endTime && t.RELEAS_DEPARTMENT_ID != null, newFilter).ToList();
//危险源/风险辨识任务
newFilter.SelectField = new List { "ID", "STATUS", "INITIATING_DEPARTMENT" };
var riskTask = this.GetEntities(t => t.CREATE_TIME >= startTime && t.CREATE_TIME <= endTime && t.INITIATING_DEPARTMENT != null, newFilter).ToList();
//危险源/风险辨识记录表
var riskRecord = this.GetEntities(t => t.CREATE_TIME >= startTime && t.CREATE_TIME <= endTime && t.INITIATING_DEPARTMENT != null, newFilter).ToList();
//职业危害辨识任务
var hazardTask = this.GetEntities(t => t.CREATE_TIME >= startTime && t.CREATE_TIME <= endTime && t.INITIATING_DEPARTMENT != null, newFilter).ToList();
//职业危害辨识记录表
var hazardRecord = this.GetEntities(t => t.CREATE_TIME >= startTime && t.CREATE_TIME <= endTime && t.INITIATING_DEPARTMENT != null, newFilter).ToList();
//评价结果表
var evalResult = this.GetEntities(t => t.CREATE_TIME >= startTime && t.CREATE_TIME <= endTime && t.INITIATING_DEPARTMENT != null, newFilter).ToList();
//作业任务识别
newFilter.SelectField = new List { "ID", "IS_PUBLISH", "DEPARTMENT_ID" };
var taskIdentify = this.GetEntities(t => t.CREATE_TIME >= startTime && t.CREATE_TIME <= endTime && t.DEPARTMENT_ID != null, newFilter).ToList();
//作业任务识别分析
var taskAnalysis = this.GetEntities(t => t.CREATE_TIME >= startTime && t.CREATE_TIME <= endTime && t.DEPARTMENT_ID != null, newFilter).ToList();
//一般任务分析
var taskOrdinary = this.GetEntities(t => t.CREATE_TIME >= startTime && t.CREATE_TIME <= endTime && t.DEPARTMENT_ID != null, newFilter).ToList();
//关键任务分析
var taskCrucial = this.GetEntities(t => t.CREATE_TIME >= startTime && t.CREATE_TIME <= endTime && t.DEPARTMENT_ID != null, newFilter).ToList();
//许可任务分析
var taskLicense = this.GetEntities(t => t.CREATE_TIME >= startTime && t.CREATE_TIME <= endTime && t.DEPARTMENT_ID != null, newFilter).ToList();
//作业任务分析文件发布
var filePublish = this.GetEntities(t => t.CREATE_TIME >= startTime && t.CREATE_TIME <= endTime && t.DEPARTMENT_ID != null, newFilter).ToList();
//只取待办超期的
newFilter.SelectField = new List { "SOURCE_DATA_ID" };
var tasks = this.GetEntities(t => t.NOTICE_STATUS == 2 && t.CREATE_TIME >= startTime && t.CREATE_TIME <= endTime, newFilter).ToList();
#region 风险评价计划审核表
if (evalPlan.Any())
{
foreach (var item in evalPlan)
{
var task = tasks.FirstOrDefault(t => t.SOURCE_DATA_ID == item.ID);
if (task == null)
item.IS_OVERTIME = 0;
else
item.IS_OVERTIME = 1;
//var department = parentDepartments.FirstOrDefault(t=>t.departmentId == item.INITIATING_DEPARTMENT);
//item.INITIATING_DEPARTMENT = department == null ? null : department.parent_departmentId;
}
if (!string.IsNullOrEmpty(filter.Keyword))
{
evalPlan = evalPlan.Where(t => outPartmentIds.Contains((Guid)t.INITIATING_DEPARTMENT)).ToList();
}
var count = evalPlan.Count();
var finish = evalPlan.Count(t => t.IS_OVERTIME == 0 && t.STATUS == MS.Domain.Enums.FOPreMeetingStatusEnum.归档);
var overfinish = evalPlan.Count(t => t.IS_OVERTIME == 1 && t.STATUS == MS.Domain.Enums.FOPreMeetingStatusEnum.归档);
var unfinish = count - finish - overfinish;
var temp = count == 0 ? 0 : (double)(finish + overfinish) / count * 100;
var finishRate = temp.ToString("0") + "%";
var temp2 = count == 0 ? 0 : (double)finish / count * 100;
var normalFinishRate = temp2.ToString("0") + "%";
T_BI_FORM_RUN_ANALYSIS analysis = new T_BI_FORM_RUN_ANALYSIS();
analysis.MOUDLE_NAME = "风险管理";
analysis.FORM_NAME = "年度风险评价计划审核表";
analysis.NUM = 1;
analysis.ORG_ID = filter.OrgId;
analysis.TOTAL_QTY = count;
analysis.FINISH_QTY = finish;
analysis.OVER_FINISH_QTY = overfinish;
analysis.UNFINISH_QTY = unfinish;
analysis.FINISH_RATE = finishRate;
analysis.NORMAL_FINISH_RATE = normalFinishRate;
formAnalysis.Add(analysis);
}
#endregion
#region 风险评价计划发布
if (noticeRelease.Any())
{
foreach (var item in noticeRelease)
{
var task = tasks.FirstOrDefault(t => t.SOURCE_DATA_ID == item.ID);
if (task == null)
item.IS_OVERTIME = 0;
else
item.IS_OVERTIME = 1;
//var department = GetDepartmentId(item.RELEAS_DEPARTMENT_ID.Value);
//item.RELEAS_DEPARTMENT_ID = department == null ? null : department.ID;
//var department = parentDepartments.FirstOrDefault(t => t.departmentId == item.RELEAS_DEPARTMENT_ID);
//item.RELEAS_DEPARTMENT_ID = department == null ? null : department.parent_departmentId;
}
if (!string.IsNullOrEmpty(filter.Keyword))
{
noticeRelease = noticeRelease.Where(t => outPartmentIds.Contains((Guid)t.RELEAS_DEPARTMENT_ID)).ToList();
}
var count = noticeRelease.Count();
var finish = noticeRelease.Count(t => t.IS_OVERTIME == 0 && t.RELEASE_STATUS == MS.Domain.Enums.FOPreMeetingStatusEnum.归档);
var overfinish = noticeRelease.Count(t => t.IS_OVERTIME == 1 && t.RELEASE_STATUS == MS.Domain.Enums.FOPreMeetingStatusEnum.归档);
var unfinish = count - finish - overfinish;
var temp = count == 0 ? 0 : (double)(finish + overfinish) / count * 100;
var finishRate = temp.ToString("0") + "%";
var temp2 = count == 0 ? 0 : (double)finish / count * 100;
var normalFinishRate = temp2.ToString("0") + "%";
T_BI_FORM_RUN_ANALYSIS analysis = new T_BI_FORM_RUN_ANALYSIS();
analysis.MOUDLE_NAME = "风险管理";
analysis.FORM_NAME = "风险评价计划发布";
analysis.NUM = 2;
analysis.ORG_ID = filter.OrgId;
analysis.TOTAL_QTY = count;
analysis.FINISH_QTY = finish;
analysis.OVER_FINISH_QTY = overfinish;
analysis.UNFINISH_QTY = unfinish;
analysis.FINISH_RATE = finishRate;
analysis.NORMAL_FINISH_RATE = normalFinishRate;
formAnalysis.Add(analysis);
}
#endregion
#region 危险源/风险辨识任务
if (riskTask.Any())
{
foreach (var item in riskTask)
{
var task = tasks.FirstOrDefault(t => t.SOURCE_DATA_ID == item.ID);
if (task == null)
item.IS_OVERTIME = 0;
else
item.IS_OVERTIME = 1;
//var department = GetDepartmentId(item.INITIATING_DEPARTMENT.Value);
//item.INITIATING_DEPARTMENT = department == null ? null : department.ID;
//var department = parentDepartments.FirstOrDefault(t => t.departmentId == item.INITIATING_DEPARTMENT);
//item.INITIATING_DEPARTMENT = department == null ? null : department.parent_departmentId;
}
if (!string.IsNullOrEmpty(filter.Keyword))
{
riskTask = riskTask.Where(t => outPartmentIds.Contains((Guid)t.INITIATING_DEPARTMENT)).ToList();
}
var count = riskTask.Count();
var finish = riskTask.Count(t => t.IS_OVERTIME == 0 && t.STATUS == MS.Domain.Enums.FOPreMeetingStatusEnum.归档);
var overfinish = riskTask.Count(t => t.IS_OVERTIME == 1 && t.STATUS == MS.Domain.Enums.FOPreMeetingStatusEnum.归档);
var unfinish = count - finish - overfinish;
var temp = count == 0 ? 0 : (double)(finish + overfinish) / count * 100;
var finishRate = temp.ToString("0") + "%";
var temp2 = count == 0 ? 0 : (double)finish / count * 100;
var normalFinishRate = temp2.ToString("0") + "%";
T_BI_FORM_RUN_ANALYSIS analysis = new T_BI_FORM_RUN_ANALYSIS();
analysis.MOUDLE_NAME = "风险管理";
analysis.FORM_NAME = "危险源/风险辨识任务";
analysis.NUM = 3;
analysis.ORG_ID = filter.OrgId;
analysis.TOTAL_QTY = count;
analysis.FINISH_QTY = finish;
analysis.OVER_FINISH_QTY = overfinish;
analysis.UNFINISH_QTY = unfinish;
analysis.FINISH_RATE = finishRate;
analysis.NORMAL_FINISH_RATE = normalFinishRate;
formAnalysis.Add(analysis);
}
#endregion
#region 危险源/风险辨识记录表
if (riskRecord.Any())
{
foreach (var item in riskRecord)
{
var task = tasks.FirstOrDefault(t => t.SOURCE_DATA_ID == item.ID);
if (task == null)
item.IS_OVERTIME = 0;
else
item.IS_OVERTIME = 1;
//var department = GetDepartmentId(item.INITIATING_DEPARTMENT.Value);
//item.INITIATING_DEPARTMENT = department == null ? null : department.ID;
//var department = parentDepartments.FirstOrDefault(t => t.departmentId == item.INITIATING_DEPARTMENT);
//item.INITIATING_DEPARTMENT = department == null ? null : department.parent_departmentId;
}
if (!string.IsNullOrEmpty(filter.Keyword))
{
riskRecord = riskRecord.Where(t => outPartmentIds.Contains((Guid)t.INITIATING_DEPARTMENT)).ToList();
}
var count = riskRecord.Count();
var finish = riskRecord.Count(t => t.IS_OVERTIME == 0 && t.STATUS == MS.Domain.Enums.FOPreMeetingStatusEnum.归档);
var overfinish = riskRecord.Count(t => t.IS_OVERTIME == 1 && t.STATUS == MS.Domain.Enums.FOPreMeetingStatusEnum.归档);
var unfinish = count - finish - overfinish;
var temp = count == 0 ? 0 : (double)(finish + overfinish) / count * 100;
var finishRate = temp.ToString("0") + "%";
var temp2 = count == 0 ? 0 : (double)finish / count * 100;
var normalFinishRate = temp2.ToString("0") + "%";
T_BI_FORM_RUN_ANALYSIS analysis = new T_BI_FORM_RUN_ANALYSIS();
analysis.MOUDLE_NAME = "风险管理";
analysis.FORM_NAME = "危险源/风险辨识记录表";
analysis.NUM = 4;
analysis.ORG_ID = filter.OrgId;
analysis.TOTAL_QTY = count;
analysis.FINISH_QTY = finish;
analysis.OVER_FINISH_QTY = overfinish;
analysis.UNFINISH_QTY = unfinish;
analysis.FINISH_RATE = finishRate;
analysis.NORMAL_FINISH_RATE = normalFinishRate;
formAnalysis.Add(analysis);
}
#endregion
#region 职业危害辨识任务
if (hazardTask.Any())
{
foreach (var item in hazardTask)
{
var task = tasks.FirstOrDefault(t => t.SOURCE_DATA_ID == item.ID);
if (task == null)
item.IS_OVERTIME = 0;
else
item.IS_OVERTIME = 1;
//var department = GetDepartmentId(item.INITIATING_DEPARTMENT.Value);
//item.INITIATING_DEPARTMENT = department == null ? null : department.ID;
//var department = parentDepartments.FirstOrDefault(t => t.departmentId == item.INITIATING_DEPARTMENT);
//item.INITIATING_DEPARTMENT = department == null ? null : department.parent_departmentId;
}
if (!string.IsNullOrEmpty(filter.Keyword))
{
hazardTask = hazardTask.Where(t => outPartmentIds.Contains((Guid)t.INITIATING_DEPARTMENT)).ToList();
}
var count = hazardTask.Count();
var finish = hazardTask.Count(t => t.IS_OVERTIME == 0 && t.STATUS == MS.Domain.Enums.FOPreMeetingStatusEnum.归档);
var overfinish = hazardTask.Count(t => t.IS_OVERTIME == 1 && t.STATUS == MS.Domain.Enums.FOPreMeetingStatusEnum.归档);
var unfinish = count - finish - overfinish;
var temp = count == 0 ? 0 : (double)(finish + overfinish) / count * 100;
var finishRate = temp.ToString("0") + "%";
var temp2 = count == 0 ? 0 : (double)finish / count * 100;
var normalFinishRate = temp2.ToString("0") + "%";
T_BI_FORM_RUN_ANALYSIS analysis = new T_BI_FORM_RUN_ANALYSIS();
analysis.MOUDLE_NAME = "风险管理";
analysis.FORM_NAME = "职业危害辨识任务";
analysis.NUM = 5;
analysis.ORG_ID = filter.OrgId;
analysis.TOTAL_QTY = count;
analysis.FINISH_QTY = finish;
analysis.OVER_FINISH_QTY = overfinish;
analysis.UNFINISH_QTY = unfinish;
analysis.FINISH_RATE = finishRate;
analysis.NORMAL_FINISH_RATE = normalFinishRate;
formAnalysis.Add(analysis);
}
#endregion
#region 职业危害辨识记录表
if (hazardRecord.Any())
{
foreach (var item in hazardRecord)
{
var task = tasks.FirstOrDefault(t => t.SOURCE_DATA_ID == item.ID);
if (task == null)
item.IS_OVERTIME = 0;
else
item.IS_OVERTIME = 1;
//var department = GetDepartmentId(item.INITIATING_DEPARTMENT.Value);
//item.INITIATING_DEPARTMENT = department == null ? null : department.ID;
//var department = parentDepartments.FirstOrDefault(t => t.departmentId == item.INITIATING_DEPARTMENT);
//item.INITIATING_DEPARTMENT = department == null ? null : department.parent_departmentId;
}
if (!string.IsNullOrEmpty(filter.Keyword))
{
hazardRecord = hazardRecord.Where(t => outPartmentIds.Contains((Guid)t.INITIATING_DEPARTMENT)).ToList();
}
var count = hazardRecord.Count();
var finish = hazardRecord.Count(t => t.IS_OVERTIME == 0 && t.STATUS == MS.Domain.Enums.FOPreMeetingStatusEnum.归档);
var overfinish = hazardRecord.Count(t => t.IS_OVERTIME == 1 && t.STATUS == MS.Domain.Enums.FOPreMeetingStatusEnum.归档);
var unfinish = count - finish - overfinish;
var temp = count == 0 ? 0 : (double)(finish + overfinish) / count * 100;
var finishRate = temp.ToString("0") + "%";
var temp2 = count == 0 ? 0 : (double)finish / count * 100;
var normalFinishRate = temp2.ToString("0") + "%";
T_BI_FORM_RUN_ANALYSIS analysis = new T_BI_FORM_RUN_ANALYSIS();
analysis.MOUDLE_NAME = "风险管理";
analysis.FORM_NAME = "职业危害辨识记录表";
analysis.NUM = 6;
analysis.ORG_ID = filter.OrgId;
analysis.TOTAL_QTY = count;
analysis.FINISH_QTY = finish;
analysis.OVER_FINISH_QTY = overfinish;
analysis.UNFINISH_QTY = unfinish;
analysis.FINISH_RATE = finishRate;
analysis.NORMAL_FINISH_RATE = normalFinishRate;
formAnalysis.Add(analysis);
}
#endregion
#region 评价结果表
if (evalResult.Any())
{
foreach (var item in evalResult)
{
var task = tasks.FirstOrDefault(t => t.SOURCE_DATA_ID == item.ID);
if (task == null)
item.IS_OVERTIME = 0;
else
item.IS_OVERTIME = 1;
//var department = GetDepartmentId(item.INITIATING_DEPARTMENT.Value);
//item.INITIATING_DEPARTMENT = department == null ? null : department.ID;
//var department = parentDepartments.FirstOrDefault(t => t.departmentId == item.INITIATING_DEPARTMENT);
//item.INITIATING_DEPARTMENT = department == null ? null : department.parent_departmentId;
}
if (!string.IsNullOrEmpty(filter.Keyword))
{
evalResult = evalResult.Where(t => outPartmentIds.Contains((Guid)t.INITIATING_DEPARTMENT)).ToList();
}
var count = evalResult.Count();
var finish = evalResult.Count(t => t.IS_OVERTIME == 0 && t.STATUS == MS.Domain.Enums.FOPreMeetingStatusEnum.归档);
var overfinish = evalResult.Count(t => t.IS_OVERTIME == 1 && t.STATUS == MS.Domain.Enums.FOPreMeetingStatusEnum.归档);
var unfinish = count - finish - overfinish;
var temp = count == 0 ? 0 : (double)(finish + overfinish) / count * 100;
var finishRate = temp.ToString("0") + "%";
var temp2 = count == 0 ? 0 : (double)finish / count * 100;
var normalFinishRate = temp2.ToString("0") + "%";
T_BI_FORM_RUN_ANALYSIS analysis = new T_BI_FORM_RUN_ANALYSIS();
analysis.MOUDLE_NAME = "风险管理";
analysis.FORM_NAME = "评价结果表";
analysis.NUM = 7;
analysis.ORG_ID = filter.OrgId;
analysis.TOTAL_QTY = count;
analysis.FINISH_QTY = finish;
analysis.OVER_FINISH_QTY = overfinish;
analysis.UNFINISH_QTY = unfinish;
analysis.FINISH_RATE = finishRate;
analysis.NORMAL_FINISH_RATE = normalFinishRate;
formAnalysis.Add(analysis);
}
#endregion
#region 作业任务识别
if (taskIdentify.Any())
{
foreach (var item in taskIdentify)
{
var task = tasks.FirstOrDefault(t => t.SOURCE_DATA_ID == item.ID);
if (task == null)
item.IS_OVERTIME = 0;
else
item.IS_OVERTIME = 1;
//var department = GetDepartmentId(item.DEPARTMENT_ID.Value);
//item.DEPARTMENT_ID = department == null ? null : department.ID;
//var department = parentDepartments.FirstOrDefault(t => t.departmentId == item.DEPARTMENT_ID);
//item.DEPARTMENT_ID = department == null ? null : department.parent_departmentId;
}
if (!string.IsNullOrEmpty(filter.Keyword))
{
taskIdentify = taskIdentify.Where(t => outPartmentIds.Contains((Guid)t.DEPARTMENT_ID)).ToList();
}
var count = taskIdentify.Count();
var finish = taskIdentify.Count(t => t.IS_OVERTIME == 0 && t.IS_PUBLISH == MS.Domain.Enums.FOPreMeetingStatusEnum.归档);
var overfinish = taskIdentify.Count(t => t.IS_OVERTIME == 1 && t.IS_PUBLISH == MS.Domain.Enums.FOPreMeetingStatusEnum.归档);
var unfinish = count - finish - overfinish;
var temp = count == 0 ? 0 : (double)(finish + overfinish) / count * 100;
var finishRate = temp.ToString("0") + "%";
var temp2 = count == 0 ? 0 : (double)finish / count * 100;
var normalFinishRate = temp2.ToString("0") + "%";
T_BI_FORM_RUN_ANALYSIS analysis = new T_BI_FORM_RUN_ANALYSIS();
analysis.MOUDLE_NAME = "风险管理";
analysis.FORM_NAME = "作业任务识别";
analysis.NUM = 8;
analysis.ORG_ID = filter.OrgId;
analysis.TOTAL_QTY = count;
analysis.FINISH_QTY = finish;
analysis.OVER_FINISH_QTY = overfinish;
analysis.UNFINISH_QTY = unfinish;
analysis.FINISH_RATE = finishRate;
analysis.NORMAL_FINISH_RATE = normalFinishRate;
formAnalysis.Add(analysis);
}
#endregion
#region 作业任务识别分析
if (taskAnalysis.Any())
{
foreach (var item in taskAnalysis)
{
var task = tasks.FirstOrDefault(t => t.SOURCE_DATA_ID == item.ID);
if (task == null)
item.IS_OVERTIME = 0;
else
item.IS_OVERTIME = 1;
//var department = GetDepartmentId(item.DEPARTMENT_ID.Value);
//item.DEPARTMENT_ID = department == null ? null : department.ID;
//var department = parentDepartments.FirstOrDefault(t => t.departmentId == item.DEPARTMENT_ID);
//item.DEPARTMENT_ID = department == null ? null : department.parent_departmentId;
}
if (!string.IsNullOrEmpty(filter.Keyword))
{
taskAnalysis = taskAnalysis.Where(t => outPartmentIds.Contains((Guid)t.DEPARTMENT_ID)).ToList();
}
var count = taskAnalysis.Count();
var finish = taskAnalysis.Count(t => t.IS_OVERTIME == 0 && t.IS_PUBLISH == MS.Domain.Enums.FOPreMeetingStatusEnum.归档);
var overfinish = taskAnalysis.Count(t => t.IS_OVERTIME == 1 && t.IS_PUBLISH == MS.Domain.Enums.FOPreMeetingStatusEnum.归档);
var unfinish = count - finish - overfinish;
var temp = count == 0 ? 0 : (double)(finish + overfinish) / count * 100;
var finishRate = temp.ToString("0") + "%";
var temp2 = count == 0 ? 0 : (double)finish / count * 100;
var normalFinishRate = temp2.ToString("0") + "%";
T_BI_FORM_RUN_ANALYSIS analysis = new T_BI_FORM_RUN_ANALYSIS();
analysis.MOUDLE_NAME = "风险管理";
analysis.FORM_NAME = "作业任务识别分析";
analysis.NUM = 9;
analysis.ORG_ID = filter.OrgId;
analysis.TOTAL_QTY = count;
analysis.FINISH_QTY = finish;
analysis.OVER_FINISH_QTY = overfinish;
analysis.UNFINISH_QTY = unfinish;
analysis.FINISH_RATE = finishRate;
analysis.NORMAL_FINISH_RATE = normalFinishRate;
formAnalysis.Add(analysis);
}
#endregion
#region 一般任务分析
if (taskOrdinary.Any())
{
foreach (var item in taskOrdinary)
{
var task = tasks.FirstOrDefault(t => t.SOURCE_DATA_ID == item.ID);
if (task == null)
item.IS_OVERTIME = 0;
else
item.IS_OVERTIME = 1;
//var department = GetDepartmentId(item.DEPARTMENT_ID.Value);
//item.DEPARTMENT_ID = department == null ? null : department.ID;
//var department = parentDepartments.FirstOrDefault(t => t.departmentId == item.DEPARTMENT_ID);
//item.DEPARTMENT_ID = department == null ? null : department.parent_departmentId;
}
if (!string.IsNullOrEmpty(filter.Keyword))
{
taskOrdinary = taskOrdinary.Where(t => outPartmentIds.Contains((Guid)t.DEPARTMENT_ID)).ToList();
}
var count = taskOrdinary.Count();
var finish = taskOrdinary.Count(t => t.IS_OVERTIME == 0 && t.IS_PUBLISH == MS.Domain.Enums.FOPreMeetingStatusEnum.归档);
var overfinish = taskOrdinary.Count(t => t.IS_OVERTIME == 1 && t.IS_PUBLISH == MS.Domain.Enums.FOPreMeetingStatusEnum.归档);
var unfinish = count - finish - overfinish;
var temp = count == 0 ? 0 : (double)(finish + overfinish) / count * 100;
var finishRate = temp.ToString("0") + "%";
var temp2 = count == 0 ? 0 : (double)finish / count * 100;
var normalFinishRate = temp2.ToString("0") + "%";
T_BI_FORM_RUN_ANALYSIS analysis = new T_BI_FORM_RUN_ANALYSIS();
analysis.MOUDLE_NAME = "风险管理";
analysis.FORM_NAME = "一般任务分析";
analysis.NUM = 10;
analysis.ORG_ID = filter.OrgId;
analysis.TOTAL_QTY = count;
analysis.FINISH_QTY = finish;
analysis.OVER_FINISH_QTY = overfinish;
analysis.UNFINISH_QTY = unfinish;
analysis.FINISH_RATE = finishRate;
analysis.NORMAL_FINISH_RATE = normalFinishRate;
formAnalysis.Add(analysis);
}
#endregion
#region 关键任务分析
if (taskCrucial.Any())
{
foreach (var item in taskCrucial)
{
var task = tasks.FirstOrDefault(t => t.SOURCE_DATA_ID == item.ID);
if (task == null)
item.IS_OVERTIME = 0;
else
item.IS_OVERTIME = 1;
//var department = GetDepartmentId(item.DEPARTMENT_ID.Value);
//item.DEPARTMENT_ID = department == null ? null : department.ID;
//var department = parentDepartments.FirstOrDefault(t => t.departmentId == item.DEPARTMENT_ID);
//item.DEPARTMENT_ID = department == null ? null : department.parent_departmentId;
}
if (!string.IsNullOrEmpty(filter.Keyword))
{
taskCrucial = taskCrucial.Where(t => outPartmentIds.Contains((Guid)t.DEPARTMENT_ID)).ToList();
}
var count = taskCrucial.Count();
var finish = taskCrucial.Count(t => t.IS_OVERTIME == 0 && t.IS_PUBLISH == MS.Domain.Enums.FOPreMeetingStatusEnum.归档);
var overfinish = taskCrucial.Count(t => t.IS_OVERTIME == 1 && t.IS_PUBLISH == MS.Domain.Enums.FOPreMeetingStatusEnum.归档);
var unfinish = count - finish - overfinish;
var temp = count == 0 ? 0 : (double)(finish + overfinish) / count * 100;
var finishRate = temp.ToString("0") + "%";
var temp2 = count == 0 ? 0 : (double)finish / count * 100;
var normalFinishRate = temp2.ToString("0") + "%";
T_BI_FORM_RUN_ANALYSIS analysis = new T_BI_FORM_RUN_ANALYSIS();
analysis.MOUDLE_NAME = "风险管理";
analysis.FORM_NAME = "关键任务分析";
analysis.NUM = 11;
analysis.ORG_ID = filter.OrgId;
analysis.TOTAL_QTY = count;
analysis.FINISH_QTY = finish;
analysis.OVER_FINISH_QTY = overfinish;
analysis.UNFINISH_QTY = unfinish;
analysis.FINISH_RATE = finishRate;
analysis.NORMAL_FINISH_RATE = normalFinishRate;
formAnalysis.Add(analysis);
}
#endregion
#region 许可任务分析
if (taskLicense.Any())
{
foreach (var item in taskLicense)
{
var task = tasks.FirstOrDefault(t => t.SOURCE_DATA_ID == item.ID);
if (task == null)
item.IS_OVERTIME = 0;
else
item.IS_OVERTIME = 1;
//var department = GetDepartmentId(item.DEPARTMENT_ID.Value);
//item.DEPARTMENT_ID = department == null ? null : department.ID;
//var department = parentDepartments.FirstOrDefault(t => t.departmentId == item.DEPARTMENT_ID);
//item.DEPARTMENT_ID = department == null ? null : department.parent_departmentId;
}
if (!string.IsNullOrEmpty(filter.Keyword))
{
taskLicense = taskLicense.Where(t => outPartmentIds.Contains((Guid)t.DEPARTMENT_ID)).ToList();
}
var count = taskLicense.Count();
var finish = taskLicense.Count(t => t.IS_OVERTIME == 0 && t.IS_PUBLISH == MS.Domain.Enums.FOPreMeetingStatusEnum.归档);
var overfinish = taskLicense.Count(t => t.IS_OVERTIME == 1 && t.IS_PUBLISH == MS.Domain.Enums.FOPreMeetingStatusEnum.归档);
var unfinish = count - finish - overfinish;
var temp = count == 0 ? 0 : (double)(finish + overfinish) / count * 100;
var finishRate = temp.ToString("0") + "%";
var temp2 = count == 0 ? 0 : (double)finish / count * 100;
var normalFinishRate = temp2.ToString("0") + "%";
T_BI_FORM_RUN_ANALYSIS analysis = new T_BI_FORM_RUN_ANALYSIS();
analysis.MOUDLE_NAME = "风险管理";
analysis.FORM_NAME = "许可任务分析";
analysis.NUM = 12;
analysis.ORG_ID = filter.OrgId;
analysis.TOTAL_QTY = count;
analysis.FINISH_QTY = finish;
analysis.OVER_FINISH_QTY = overfinish;
analysis.UNFINISH_QTY = unfinish;
analysis.FINISH_RATE = finishRate;
analysis.NORMAL_FINISH_RATE = normalFinishRate;
formAnalysis.Add(analysis);
}
#endregion
#region 作业任务分析文件发布
if (filePublish.Any())
{
foreach (var item in filePublish)
{
var task = tasks.FirstOrDefault(t => t.SOURCE_DATA_ID == item.ID);
if (task == null)
item.IS_OVERTIME = 0;
else
item.IS_OVERTIME = 1;
//var department = GetDepartmentId(item.DEPARTMENT_ID.Value);
//item.DEPARTMENT_ID = department == null ? null : department.ID;
//var department = parentDepartments.FirstOrDefault(t => t.departmentId == item.DEPARTMENT_ID);
//item.DEPARTMENT_ID = department == null ? null : department.parent_departmentId;
}
if (!string.IsNullOrEmpty(filter.Keyword))
{
filePublish = filePublish.Where(t => outPartmentIds.Contains((Guid)t.DEPARTMENT_ID)).ToList();
}
var count = filePublish.Count();
var finish = filePublish.Count(t => t.IS_OVERTIME == 0 && t.IS_PUBLISH == MS.Domain.Enums.FOPreMeetingStatusEnum.归档);
var overfinish = filePublish.Count(t => t.IS_OVERTIME == 1 && t.IS_PUBLISH == MS.Domain.Enums.FOPreMeetingStatusEnum.归档);
var unfinish = count - finish - overfinish;
var temp = count == 0 ? 0 : (double)(finish + overfinish) / count * 100;
var finishRate = temp.ToString("0") + "%";
var temp2 = count == 0 ? 0 : (double)finish / count * 100;
var normalFinishRate = temp2.ToString("0") + "%";
T_BI_FORM_RUN_ANALYSIS analysis = new T_BI_FORM_RUN_ANALYSIS();
analysis.MOUDLE_NAME = "风险管理";
analysis.FORM_NAME = "作业任务分析文件发布";
analysis.NUM = 13;
analysis.ORG_ID = filter.OrgId;
analysis.TOTAL_QTY = count;
analysis.FINISH_QTY = finish;
analysis.OVER_FINISH_QTY = overfinish;
analysis.UNFINISH_QTY = unfinish;
analysis.FINISH_RATE = finishRate;
analysis.NORMAL_FINISH_RATE = normalFinishRate;
formAnalysis.Add(analysis);
}
#endregion
}
if (!string.IsNullOrEmpty(filter.Parameter3) && filter.Parameter3 == "安全检查")
{
newFilter.SelectField = new List { "ID", "STATUSPLAN", "STATUCHECK", "DEPARTMENTID" };
//检查任务制定
var checkTask = this.GetEntities(t => t.CREATE_TIME >= startTime && t.CREATE_TIME <= endTime && t.DEPARTMENTID != null, newFilter).ToList();
//检查记录
var checkRecord = checkTask.Where(t => t.STATUSPLAN == (int)HMAuditStatusEnmu.归档).ToList();
//隐患上报
//newFilter.SelectField = new List { "ID", "SUBMIT_STATUS", "DEPARTMENT_ID" };
//var riskSubmit = this.GetEntities(t => t.CREATE_TIME >= startTime && t.CREATE_TIME <= endTime && t.DEPARTMENT_ID != null, newFilter).ToList();
//隐患整改记录
newFilter.SelectField = new List { "ID", "DEALSITUATION", "Nav_UserDeal" };
var riskDeal = this.GetEntities(t => t.CREATE_TIME >= startTime && t.CREATE_TIME <= endTime && t.Nav_UserDeal != null && t.Nav_UserDeal.DEPARTMENT_ID != null, newFilter).ToList();
//延期整改申请
newFilter.SelectField = new List { "ID", "APPLY_DEPARTMENT_ID" };
var delayApply = this.GetEntities(t => t.CREATE_TIME >= startTime && t.CREATE_TIME <= endTime && t.APPLY_DEPARTMENT_ID != null, newFilter).ToList();
//只取待办超期的
newFilter.SelectField = new List { "SOURCE_DATA_ID" };
var tasks = this.GetEntities(t => t.NOTICE_STATUS == 2 && t.CREATE_TIME >= startTime && t.CREATE_TIME <= endTime, newFilter).ToList();
#region 检查任务制定
if (checkTask.Any())
{
foreach (var item in checkTask)
{
var task = tasks.FirstOrDefault(t => t.SOURCE_DATA_ID == item.ID);
if (task == null)
item.IS_OVERTIME = 0;
else
item.IS_OVERTIME = 1;
//var department = GetDepartmentId(item.DEPARTMENTID.Value);
//item.DEPARTMENTID = department == null ? null : department.ID;
//var department = parentDepartments.FirstOrDefault(t => t.departmentId == item.DEPARTMENTID);
//item.DEPARTMENTID = department == null ? null : department.parent_departmentId;
}
if (!string.IsNullOrEmpty(filter.Keyword))
{
checkTask = checkTask.Where(t => outPartmentIds.Contains((Guid)t.DEPARTMENTID)).ToList();
}
var count = checkTask.Count();
var finish = checkTask.Count(t => t.IS_OVERTIME == 0 && t.STATUSPLAN == (int)HMAuditStatusEnmu.归档);
var overfinish = checkTask.Count(t => t.IS_OVERTIME == 1 && t.STATUSPLAN == (int)HMAuditStatusEnmu.归档);
var unfinish = count - finish - overfinish;
var temp = count == 0 ? 0 : (double)(finish + overfinish) / count * 100;
var finishRate = temp.ToString("0") + "%";
var temp2 = count == 0 ? 0 : (double)finish / count * 100;
var normalFinishRate = temp2.ToString("0") + "%";
T_BI_FORM_RUN_ANALYSIS analysis = new T_BI_FORM_RUN_ANALYSIS();
analysis.MOUDLE_NAME = "安全检查";
analysis.FORM_NAME = "检查任务制定";
analysis.NUM = 20;
analysis.ORG_ID = filter.OrgId;
analysis.TOTAL_QTY = count;
analysis.FINISH_QTY = finish;
analysis.OVER_FINISH_QTY = overfinish;
analysis.UNFINISH_QTY = unfinish;
analysis.FINISH_RATE = finishRate;
analysis.NORMAL_FINISH_RATE = normalFinishRate;
formAnalysis.Add(analysis);
}
#endregion
#region 检查记录
if (checkRecord.Any())
{
foreach (var item in checkRecord)
{
var task = tasks.FirstOrDefault(t => t.SOURCE_DATA_ID == item.ID);
if (task == null)
item.IS_OVERTIME = 0;
else
item.IS_OVERTIME = 1;
//var department = GetDepartmentId(item.DEPARTMENTID.Value);
//item.DEPARTMENTID = department == null ? null : department.ID;
//var department = parentDepartments.FirstOrDefault(t => t.departmentId == item.DEPARTMENTID);
//item.DEPARTMENTID = department == null ? null : department.parent_departmentId;
}
if (!string.IsNullOrEmpty(filter.Keyword))
{
checkRecord = checkRecord.Where(t => outPartmentIds.Contains((Guid)t.DEPARTMENTID)).ToList();
}
var count = checkRecord.Count();
var finish = checkRecord.Count(t => t.IS_OVERTIME == 0 && t.STATUCHECK == (int)HMAuditStatusEnmu.归档);
var overfinish = checkRecord.Count(t => t.IS_OVERTIME == 1 && t.STATUCHECK == (int)HMAuditStatusEnmu.归档);
var unfinish = count - finish - overfinish;
var temp = count == 0 ? 0 : (double)(finish + overfinish) / count * 100;
var finishRate = temp.ToString("0") + "%";
var temp2 = count == 0 ? 0 : (double)finish / count * 100;
var normalFinishRate = temp2.ToString("0") + "%";
T_BI_FORM_RUN_ANALYSIS analysis = new T_BI_FORM_RUN_ANALYSIS();
analysis.MOUDLE_NAME = "安全检查";
analysis.FORM_NAME = "检查记录";
analysis.NUM = 21;
analysis.ORG_ID = filter.OrgId;
analysis.TOTAL_QTY = count;
analysis.FINISH_QTY = finish;
analysis.OVER_FINISH_QTY = overfinish;
analysis.UNFINISH_QTY = unfinish;
analysis.FINISH_RATE = finishRate;
analysis.NORMAL_FINISH_RATE = normalFinishRate;
formAnalysis.Add(analysis);
}
#endregion
#region 隐患上报
//if (riskSubmit.Any())
//{
// foreach (var item in riskSubmit)
// {
// var task = tasks.FirstOrDefault(t => t.SOURCE_DATA_ID == item.ID);
// if (task == null)
// item.IS_OVERTIME = 0;
// else
// item.IS_OVERTIME = 1;
// //var department = GetDepartmentId(item.DEPARTMENT_ID.Value);
// //item.DEPARTMENT_ID = department == null ? null : department.ID;
// //var department = parentDepartments.FirstOrDefault(t => t.departmentId == item.DEPARTMENT_ID);
// //item.DEPARTMENT_ID = department == null ? null : department.parent_departmentId;
// }
// if (!string.IsNullOrEmpty(filter.Keyword))
// {
// riskSubmit = riskSubmit.Where(t => outPartmentIds.Contains((Guid)t.DEPARTMENT_ID)).ToList();
// }
// var count = riskSubmit.Count();
// var finish = riskSubmit.Count(t => t.IS_OVERTIME == 0 && t.SUBMIT_STATUS == (int)BSSubmitStatusEnum.Start);
// var overfinish = riskSubmit.Count(t => t.IS_OVERTIME == 1 && t.SUBMIT_STATUS == (int)BSSubmitStatusEnum.Start);
// var unfinish = count - finish - overfinish;
// var temp = count == 0 ? 0 : (double)(finish + overfinish) / count * 100;
// var finishRate = temp.ToString("0") + "%";
// var temp2 = count == 0 ? 0 : (double)finish / count * 100;
// var normalFinishRate = temp2.ToString("0") + "%";
// T_BI_FORM_RUN_ANALYSIS analysis = new T_BI_FORM_RUN_ANALYSIS();
// analysis.MOUDLE_NAME = "安全检查";
// analysis.FORM_NAME = "隐患上报";
// analysis.NUM = 22;
// analysis.ORG_ID = filter.OrgId;
// analysis.TOTAL_QTY = count;
// analysis.FINISH_QTY = finish;
// analysis.OVER_FINISH_QTY = overfinish;
// analysis.UNFINISH_QTY = unfinish;
// analysis.FINISH_RATE = finishRate;
// analysis.NORMAL_FINISH_RATE = normalFinishRate;
// formAnalysis.Add(analysis);
//}
#endregion
#region 隐患整改记录
if (riskDeal.Any())
{
foreach (var item in riskDeal)
{
var task = tasks.FirstOrDefault(t => t.SOURCE_DATA_ID == item.ID);
if (task == null)
item.IS_OVERTIME = 0;
else
item.IS_OVERTIME = 1;
//var department = GetDepartmentId(item.Nav_UserDeal.DEPARTMENT_ID.Value);
//item.DEPARTMENT_ID = department == null ? null : department.ID;
//var department = parentDepartments.FirstOrDefault(t => t.departmentId == item.Nav_UserDeal.DEPARTMENT_ID);
//item.DEPARTMENT_ID = department == null ? null : department.parent_departmentId;
}
if (!string.IsNullOrEmpty(filter.Keyword))
{
riskDeal = riskDeal.Where(t => outPartmentIds.Contains((Guid)t.Nav_UserDeal.DEPARTMENT_ID)).ToList();
}
var count = riskDeal.Count();
var finish = riskDeal.Count(t => t.IS_OVERTIME == 0 && t.DEALSITUATION == (int)DealSituation.End);
var overfinish = riskDeal.Count(t => t.IS_OVERTIME == 1 && t.DEALSITUATION == (int)DealSituation.End);
var unfinish = count - finish - overfinish;
var temp = count == 0 ? 0 : (double)(finish + overfinish) / count * 100;
var finishRate = temp.ToString("0") + "%";
var temp2 = count == 0 ? 0 : (double)finish / count * 100;
var normalFinishRate = temp2.ToString("0") + "%";
T_BI_FORM_RUN_ANALYSIS analysis = new T_BI_FORM_RUN_ANALYSIS();
analysis.MOUDLE_NAME = "安全检查";
analysis.FORM_NAME = "隐患整改记录";
analysis.NUM = 23;
analysis.ORG_ID = filter.OrgId;
analysis.TOTAL_QTY = count;
analysis.FINISH_QTY = finish;
analysis.OVER_FINISH_QTY = overfinish;
analysis.UNFINISH_QTY = unfinish;
analysis.FINISH_RATE = finishRate;
analysis.NORMAL_FINISH_RATE = normalFinishRate;
formAnalysis.Add(analysis);
}
#endregion
#region 延期整改申请
if (delayApply.Any())
{
foreach (var item in delayApply)
{
var task = tasks.FirstOrDefault(t => t.SOURCE_DATA_ID == item.ID);
if (task == null)
item.IS_OVERTIME = 0;
else
item.IS_OVERTIME = 1;
//var department = GetDepartmentId(item.APPLY_DEPARTMENT_ID);
//item.APPLY_DEPARTMENT_ID = department == null ? item.APPLY_DEPARTMENT_ID : department.ID;
//var department = parentDepartments.FirstOrDefault(t => t.departmentId == item.APPLY_DEPARTMENT_ID);
//item.APPLY_DEPARTMENT_ID = department == null ? item.APPLY_DEPARTMENT_ID : (Guid)department.parent_departmentId;
}
if (!string.IsNullOrEmpty(filter.Keyword))
{
delayApply = delayApply.Where(t => outPartmentIds.Contains((Guid)t.APPLY_DEPARTMENT_ID)).ToList();
}
var count = delayApply.Count();
var finish = delayApply.Count(t => t.IS_OVERTIME == 0);
var overfinish = delayApply.Count(t => t.IS_OVERTIME == 1);
var unfinish = count - finish - overfinish;
var temp = count == 0 ? 0 : (double)(finish + overfinish) / count * 100;
var finishRate = temp.ToString("0") + "%";
var temp2 = count == 0 ? 0 : (double)finish / count * 100;
var normalFinishRate = temp2.ToString("0") + "%";
T_BI_FORM_RUN_ANALYSIS analysis = new T_BI_FORM_RUN_ANALYSIS();
analysis.MOUDLE_NAME = "安全检查";
analysis.FORM_NAME = "延期整改申请";
analysis.NUM = 24;
analysis.ORG_ID = filter.OrgId;
analysis.TOTAL_QTY = count;
analysis.FINISH_QTY = finish;
analysis.OVER_FINISH_QTY = overfinish;
analysis.UNFINISH_QTY = unfinish;
analysis.FINISH_RATE = finishRate;
analysis.NORMAL_FINISH_RATE = normalFinishRate;
formAnalysis.Add(analysis);
}
#endregion
}
if (!string.IsNullOrEmpty(filter.Parameter3) && filter.Parameter3 == "作业现场管理")
{
newFilter.SelectField = new List { "ID", "SHIFT_STATUS", "OVERTIME", "DEPARTMENT_ID", "Nav_Team" };
//岗位当班工作记录
var classRecord = this.GetEntities(t => t.CREATE_TIME >= startTime && t.CREATE_TIME <= endTime && t.DEPARTMENT_ID != null, newFilter).ToList();
//岗位交接班记录
var shiftRecord = this.GetEntities(t => t.CREATE_TIME >= startTime && t.CREATE_TIME <= endTime && t.DEPARTMENT_ID != null, newFilter).ToList();
//班组安全活动
newFilter.SelectField = new List { "ID", "TA_STATUS", "OVERTIME", "Nav_User" };
var teamActive = this.GetEntities(t => t.CREATE_TIME >= startTime && t.CREATE_TIME <= endTime && t.Nav_User != null && t.Nav_User.DEPARTMENT_ID != null, newFilter).ToList();
//班前会议记录
newFilter.SelectField = new List { "ID", "PRE_MEETING_STATUS", "OVERTIME", "DEPARTMENT_ID", "Nav_Team" };
var shiftMeeting = this.GetEntities(t => t.CREATE_TIME >= startTime && t.CREATE_TIME <= endTime && t.DEPARTMENT_ID != null, newFilter).ToList();
//作业活动记录(一般作业)
newFilter.SelectField = new List { "ID", "FORM_STATUS", "Nav_CreateUser" };
var eventRecord = this.GetEntities(t => t.CREATE_TIME >= startTime && t.CREATE_TIME <= endTime && t.Nav_CreateUser != null && t.Nav_CreateUser.DEPARTMENT_ID != null, newFilter).ToList();
//作业方案讨论记录
newFilter.SelectField = new List { "ID", "FORM_STATUS", "DEPARTMENT_ID" };
var operSch = this.GetEntities(t => t.CREATE_TIME >= startTime && t.CREATE_TIME <= endTime && t.DEPARTMENT_ID != null, newFilter).ToList();
//关键作业/许可作业工作票
newFilter.SelectField = new List { "ID", "IS_PUBLISH", "Nav_ApplyUser" };
var licenseJob = this.GetEntities(t => t.CREATE_TIME >= startTime && t.CREATE_TIME <= endTime && t.Nav_ApplyUser != null && t.Nav_ApplyUser.DEPARTMENT_ID != null, newFilter).ToList();
//技术交底表
newFilter.SelectField = new List { "ID", "FORM_STATUS", "Nav_DisclosurePerson" };
var techForm = this.GetEntities(t => t.CREATE_TIME >= startTime && t.CREATE_TIME <= endTime && t.Nav_DisclosurePerson != null && t.Nav_DisclosurePerson.DEPARTMENT_ID != null, newFilter).ToList();
//作业活动记录(关键和许可作业)
newFilter.SelectField = new List { "ID", "FORM_STATUS", "Nav_CreateUser" };
var activeRecord = this.GetEntities(t => t.CREATE_TIME >= startTime && t.CREATE_TIME <= endTime && t.Nav_CreateUser != null && t.Nav_CreateUser.DEPARTMENT_ID != null, newFilter).ToList();
//只取待办超期的
newFilter.SelectField = new List { "SOURCE_DATA_ID" };
var tasks = this.GetEntities(t => t.NOTICE_STATUS == 2 && t.CREATE_TIME >= startTime && t.CREATE_TIME <= endTime, newFilter).ToList();
#region 岗位当班工作记录
if (classRecord.Any())
{
foreach (var item in classRecord)
{
var task = tasks.FirstOrDefault(t => t.SOURCE_DATA_ID == item.ID);
if (task == null)
item.IS_OVERTIME = 0;
else
item.IS_OVERTIME = 1;
//var department = GetDepartmentId(item.Nav_CreateUser.DEPARTMENT_ID.Value);
//item.DEPARTMENT_ID = department == null ? null : department.ID;
//var department = parentDepartments.FirstOrDefault(t => t.departmentId == item.Nav_CreateUser.DEPARTMENT_ID);
//item.DEPARTMENT_ID = department == null ? null : department.parent_departmentId;
}
if (!string.IsNullOrEmpty(filter.Keyword))
{
classRecord = classRecord.Where(t => outPartmentIds.Contains((Guid)t.Nav_Team?.DEPARTMENT_ID)).ToList();
if (!classRecord.Any())
{
classRecord = classRecord.Where(t => outPartmentIds.Contains((Guid)t.DEPARTMENT_ID)).ToList();
}
}
var count = classRecord.Count();
var finish = classRecord.Count(t => t.IS_OVERTIME == 0 && t.SHIFT_STATUS == (int)FOShiftStatusEnum.归档);
var overfinish = classRecord.Count(t => t.IS_OVERTIME == 1 && t.SHIFT_STATUS == (int)FOShiftStatusEnum.归档);
var unfinish = count - finish - overfinish;
var temp = count == 0 ? 0 : (double)(finish + overfinish) / count * 100;
var finishRate = temp.ToString("0") + "%";
var temp2 = count == 0 ? 0 : (double)finish / count * 100;
var normalFinishRate = temp2.ToString("0") + "%";
T_BI_FORM_RUN_ANALYSIS analysis = new T_BI_FORM_RUN_ANALYSIS();
analysis.MOUDLE_NAME = "作业现场管理";
analysis.FORM_NAME = "岗位当班工作记录";
analysis.NUM = 30;
analysis.ORG_ID = filter.OrgId;
analysis.TOTAL_QTY = count;
analysis.FINISH_QTY = finish;
analysis.OVER_FINISH_QTY = overfinish;
analysis.UNFINISH_QTY = unfinish;
analysis.FINISH_RATE = finishRate;
analysis.NORMAL_FINISH_RATE = normalFinishRate;
formAnalysis.Add(analysis);
}
#endregion
#region 岗位交接班记录
if (shiftRecord.Any())
{
foreach (var item in shiftRecord)
{
var task = tasks.FirstOrDefault(t => t.SOURCE_DATA_ID == item.ID);
if (task == null)
item.IS_OVERTIME = 0;
else
item.IS_OVERTIME = 1;
//var department = GetDepartmentId(item.Nav_CreateUser.DEPARTMENT_ID.Value);
//item.DEPARTMENT_ID = department == null ? null : department.ID;
//var department = parentDepartments.FirstOrDefault(t => t.departmentId == item.Nav_CreateUser.DEPARTMENT_ID);
//item.DEPARTMENT_ID = department == null ? null : department.parent_departmentId;
}
if (!string.IsNullOrEmpty(filter.Keyword))
{
shiftRecord = shiftRecord.Where(t => outPartmentIds.Contains((Guid)t.Nav_Team?.DEPARTMENT_ID)).ToList();
if (!shiftRecord.Any())
{
shiftRecord = shiftRecord.Where(t => outPartmentIds.Contains((Guid)t.DEPARTMENT_ID)).ToList();
}
}
var count = shiftRecord.Count();
var finish = shiftRecord.Count(t => t.IS_OVERTIME == 0 && t.SHIFT_STATUS == (int)FOChangeShiftStatusEnum.归档);
var overfinish = shiftRecord.Count(t => t.IS_OVERTIME == 1 && t.SHIFT_STATUS == (int)FOChangeShiftStatusEnum.归档);
var unfinish = count - finish - overfinish;
var temp = count == 0 ? 0 : (double)(finish + overfinish) / count * 100;
var finishRate = temp.ToString("0") + "%";
var temp2 = count == 0 ? 0 : (double)finish / count * 100;
var normalFinishRate = temp2.ToString("0") + "%";
T_BI_FORM_RUN_ANALYSIS analysis = new T_BI_FORM_RUN_ANALYSIS();
analysis.MOUDLE_NAME = "作业现场管理";
analysis.FORM_NAME = "岗位交接班记录";
analysis.NUM = 31;
analysis.ORG_ID = filter.OrgId;
analysis.TOTAL_QTY = count;
analysis.FINISH_QTY = finish;
analysis.OVER_FINISH_QTY = overfinish;
analysis.UNFINISH_QTY = unfinish;
analysis.FINISH_RATE = finishRate;
analysis.NORMAL_FINISH_RATE = normalFinishRate;
formAnalysis.Add(analysis);
}
#endregion
#region 班组安全活动
if (teamActive.Any())
{
foreach (var item in teamActive)
{
var task = tasks.FirstOrDefault(t => t.SOURCE_DATA_ID == item.ID);
if (task == null)
item.IS_OVERTIME = 0;
else
item.IS_OVERTIME = 1;
//var department = GetDepartmentId(item.Nav_CreateUser.DEPARTMENT_ID.Value);
//item.DEPARTMENT_ID = department == null ? null : department.ID;
//var department = parentDepartments.FirstOrDefault(t => t.departmentId == item.Nav_CreateUser.DEPARTMENT_ID);
//item.DEPARTMENT_ID = department == null ? null : department.parent_departmentId;
}
if (!string.IsNullOrEmpty(filter.Keyword))
{
teamActive = teamActive.Where(t => outPartmentIds.Contains((Guid)t.Nav_User.DEPARTMENT_ID)).ToList();
}
var count = teamActive.Count();
var finish = teamActive.Count(t => t.IS_OVERTIME == 0 && t.TA_STATUS == (int)FOTeamActivityState.已归档);
var overfinish = teamActive.Count(t => t.IS_OVERTIME == 1 && t.TA_STATUS == (int)FOTeamActivityState.已归档);
var unfinish = count - finish - overfinish;
var temp = count == 0 ? 0 : (double)(finish + overfinish) / count * 100;
var finishRate = temp.ToString("0") + "%";
var temp2 = count == 0 ? 0 : (double)finish / count * 100;
var normalFinishRate = temp2.ToString("0") + "%";
T_BI_FORM_RUN_ANALYSIS analysis = new T_BI_FORM_RUN_ANALYSIS();
analysis.MOUDLE_NAME = "作业现场管理";
analysis.FORM_NAME = "班组安全活动";
analysis.NUM = 32;
analysis.ORG_ID = filter.OrgId;
analysis.TOTAL_QTY = count;
analysis.FINISH_QTY = finish;
analysis.OVER_FINISH_QTY = overfinish;
analysis.UNFINISH_QTY = unfinish;
analysis.FINISH_RATE = finishRate;
analysis.NORMAL_FINISH_RATE = normalFinishRate;
formAnalysis.Add(analysis);
}
#endregion
#region 班前会议记录
if (shiftMeeting.Any())
{
foreach (var item in shiftMeeting)
{
var task = tasks.FirstOrDefault(t => t.SOURCE_DATA_ID == item.ID);
if (task == null)
item.IS_OVERTIME = 0;
else
item.IS_OVERTIME = 1;
//var department = GetDepartmentId(item.Nav_CreateUser.DEPARTMENT_ID.Value);
//item.DEPARTMENT_ID = department == null ? null : department.ID;
//var department = parentDepartments.FirstOrDefault(t => t.departmentId == item.Nav_CreateUser.DEPARTMENT_ID);
//item.DEPARTMENT_ID = department == null ? null : department.parent_departmentId;
}
if (!string.IsNullOrEmpty(filter.Keyword))
{
shiftMeeting = shiftMeeting.Where(t => outPartmentIds.Contains((Guid)t.Nav_Team?.DEPARTMENT_ID)).ToList();
if (!shiftMeeting.Any())
{
shiftMeeting = shiftMeeting.Where(t => outPartmentIds.Contains((Guid)t.DEPARTMENT_ID)).ToList();
}
}
var count = shiftMeeting.Count();
var finish = shiftMeeting.Count(t => t.IS_OVERTIME == 0 && t.PRE_MEETING_STATUS == FOPreMeetingStatusEnum.归档);
var overfinish = shiftMeeting.Count(t => t.IS_OVERTIME == 1 && t.PRE_MEETING_STATUS == FOPreMeetingStatusEnum.归档);
var unfinish = count - finish - overfinish;
var temp = count == 0 ? 0 : (double)(finish + overfinish) / count * 100;
var finishRate = temp.ToString("0") + "%";
var temp2 = count == 0 ? 0 : (double)finish / count * 100;
var normalFinishRate = temp2.ToString("0") + "%";
T_BI_FORM_RUN_ANALYSIS analysis = new T_BI_FORM_RUN_ANALYSIS();
analysis.MOUDLE_NAME = "作业现场管理";
analysis.FORM_NAME = "班前会议记录";
analysis.NUM = 33;
analysis.ORG_ID = filter.OrgId;
analysis.TOTAL_QTY = count;
analysis.FINISH_QTY = finish;
analysis.OVER_FINISH_QTY = overfinish;
analysis.UNFINISH_QTY = unfinish;
analysis.FINISH_RATE = finishRate;
analysis.NORMAL_FINISH_RATE = normalFinishRate;
formAnalysis.Add(analysis);
}
#endregion
#region 作业活动记录(一般作业)
if (eventRecord.Any())
{
foreach (var item in eventRecord)
{
var task = tasks.FirstOrDefault(t => t.SOURCE_DATA_ID == item.ID);
if (task == null)
item.IS_OVERTIME = 0;
else
item.IS_OVERTIME = 1;
//var department = GetDepartmentId(item.Nav_CreateUser.DEPARTMENT_ID.Value);
//item.DEPARTMENT_ID = department == null ? null : department.ID;
//var department = parentDepartments.FirstOrDefault(t => t.departmentId == item.Nav_CreateUser.DEPARTMENT_ID);
//item.DEPARTMENT_ID = department == null ? null : department.parent_departmentId;
}
if (!string.IsNullOrEmpty(filter.Keyword))
{
eventRecord = eventRecord.Where(t => outPartmentIds.Contains((Guid)t.Nav_CreateUser.DEPARTMENT_ID)).ToList();
}
var count = eventRecord.Count();
var finish = eventRecord.Count(t => t.IS_OVERTIME == 0 && t.FORM_STATUS == (int)FOTeamActivityState.已归档);
var overfinish = eventRecord.Count(t => t.IS_OVERTIME == 1 && t.FORM_STATUS == (int)FOTeamActivityState.已归档);
var unfinish = count - finish - overfinish;
var temp = count == 0 ? 0 : (double)(finish + overfinish) / count * 100;
var finishRate = temp.ToString("0") + "%";
var temp2 = count == 0 ? 0 : (double)finish / count * 100;
var normalFinishRate = temp2.ToString("0") + "%";
T_BI_FORM_RUN_ANALYSIS analysis = new T_BI_FORM_RUN_ANALYSIS();
analysis.MOUDLE_NAME = "作业现场管理";
analysis.FORM_NAME = "作业活动记录(一般作业)";
analysis.NUM = 34;
analysis.ORG_ID = filter.OrgId;
analysis.TOTAL_QTY = count;
analysis.FINISH_QTY = finish;
analysis.OVER_FINISH_QTY = overfinish;
analysis.UNFINISH_QTY = unfinish;
analysis.FINISH_RATE = finishRate;
analysis.NORMAL_FINISH_RATE = normalFinishRate;
formAnalysis.Add(analysis);
}
#endregion
#region 作业方案讨论记录
if (operSch.Any())
{
foreach (var item in operSch)
{
var task = tasks.FirstOrDefault(t => t.SOURCE_DATA_ID == item.ID);
if (task == null)
item.IS_OVERTIME = 0;
else
item.IS_OVERTIME = 1;
//var department = GetDepartmentId(item.DEPARTMENT_ID.Value);
//item.DEPARTMENT_ID = department == null ? null : department.ID;
//var department = parentDepartments.FirstOrDefault(t => t.departmentId == item.DEPARTMENT_ID);
//item.DEPARTMENT_ID = department == null ? null : department.parent_departmentId;
}
if (!string.IsNullOrEmpty(filter.Keyword))
{
operSch = operSch.Where(t => outPartmentIds.Contains((Guid)t.DEPARTMENT_ID)).ToList();
}
var count = operSch.Count();
var finish = operSch.Count(t => t.IS_OVERTIME == 0 && t.FORM_STATUS == (int)FOTeamActivityState.已归档);
var overfinish = operSch.Count(t => t.IS_OVERTIME == 1 && t.FORM_STATUS == (int)FOTeamActivityState.已归档);
var unfinish = count - finish - overfinish;
var temp = count == 0 ? 0 : (double)(finish + overfinish) / count * 100;
var finishRate = temp.ToString("0") + "%";
var temp2 = count == 0 ? 0 : (double)finish / count * 100;
var normalFinishRate = temp2.ToString("0") + "%";
T_BI_FORM_RUN_ANALYSIS analysis = new T_BI_FORM_RUN_ANALYSIS();
analysis.MOUDLE_NAME = "作业现场管理";
analysis.FORM_NAME = "作业方案讨论记录";
analysis.NUM = 35;
analysis.ORG_ID = filter.OrgId;
analysis.TOTAL_QTY = count;
analysis.FINISH_QTY = finish;
analysis.OVER_FINISH_QTY = overfinish;
analysis.UNFINISH_QTY = unfinish;
analysis.FINISH_RATE = finishRate;
analysis.NORMAL_FINISH_RATE = normalFinishRate;
formAnalysis.Add(analysis);
}
#endregion
#region 关键作业/许可作业工作票
if (licenseJob.Any())
{
foreach (var item in licenseJob)
{
var task = tasks.FirstOrDefault(t => t.SOURCE_DATA_ID == item.ID);
if (task == null)
item.IS_OVERTIME = 0;
else
item.IS_OVERTIME = 1;
//var department = GetDepartmentId(item.Nav_ApplyUser.DEPARTMENT_ID.Value);
//item.DEPARTMENT_ID = department == null ? null : department.ID;
//var department = parentDepartments.FirstOrDefault(t => t.departmentId == item.Nav_ApplyUser.DEPARTMENT_ID);
//item.DEPARTMENT_ID = department == null ? null : department.parent_departmentId;
}
if (!string.IsNullOrEmpty(filter.Keyword))
{
licenseJob = licenseJob.Where(t => outPartmentIds.Contains((Guid)t.Nav_ApplyUser.DEPARTMENT_ID)).ToList();
}
var count = licenseJob.Count();
var finish = licenseJob.Count(t => t.IS_OVERTIME == 0 && t.IS_PUBLISH == (int)FOPreMeetingStatusEnum.归档);
var overfinish = licenseJob.Count(t => t.IS_OVERTIME == 1 && t.IS_PUBLISH == (int)FOPreMeetingStatusEnum.归档);
var unfinish = count - finish - overfinish;
var temp = count == 0 ? 0 : (double)(finish + overfinish) / count * 100;
var finishRate = temp.ToString("0") + "%";
var temp2 = count == 0 ? 0 : (double)finish / count * 100;
var normalFinishRate = temp2.ToString("0") + "%";
T_BI_FORM_RUN_ANALYSIS analysis = new T_BI_FORM_RUN_ANALYSIS();
analysis.MOUDLE_NAME = "作业现场管理";
analysis.FORM_NAME = "关键作业/许可作业工作票";
analysis.NUM = 36;
analysis.ORG_ID = filter.OrgId;
analysis.TOTAL_QTY = count;
analysis.FINISH_QTY = finish;
analysis.OVER_FINISH_QTY = overfinish;
analysis.UNFINISH_QTY = unfinish;
analysis.FINISH_RATE = finishRate;
analysis.NORMAL_FINISH_RATE = normalFinishRate;
formAnalysis.Add(analysis);
}
#endregion
#region 技术交底表
if (techForm.Any())
{
foreach (var item in techForm)
{
var task = tasks.FirstOrDefault(t => t.SOURCE_DATA_ID == item.ID);
if (task == null)
item.IS_OVERTIME = 0;
else
item.IS_OVERTIME = 1;
//var department = GetDepartmentId(item.Nav_DisclosurePerson.DEPARTMENT_ID.Value);
//item.DEPARTMENT_ID = department == null ? null : department.ID;
//var department = parentDepartments.FirstOrDefault(t => t.departmentId == item.Nav_DisclosurePerson.DEPARTMENT_ID);
//item.DEPARTMENT_ID = department == null ? null : department.parent_departmentId;
}
if (!string.IsNullOrEmpty(filter.Keyword))
{
techForm = techForm.Where(t => outPartmentIds.Contains((Guid)t.Nav_DisclosurePerson.DEPARTMENT_ID)).ToList();
}
var count = techForm.Count();
var finish = techForm.Count(t => t.IS_OVERTIME == 0 && t.FORM_STATUS == (int)FOTeamActivityState.已归档);
var overfinish = techForm.Count(t => t.IS_OVERTIME == 1 && t.FORM_STATUS == (int)FOTeamActivityState.已归档);
var unfinish = count - finish - overfinish;
var temp = count == 0 ? 0 : (double)(finish + overfinish) / count * 100;
var finishRate = temp.ToString("0") + "%";
var temp2 = count == 0 ? 0 : (double)finish / count * 100;
var normalFinishRate = temp2.ToString("0") + "%";
T_BI_FORM_RUN_ANALYSIS analysis = new T_BI_FORM_RUN_ANALYSIS();
analysis.MOUDLE_NAME = "作业现场管理";
analysis.FORM_NAME = "技术交底表";
analysis.NUM = 37;
analysis.ORG_ID = filter.OrgId;
analysis.TOTAL_QTY = count;
analysis.FINISH_QTY = finish;
analysis.OVER_FINISH_QTY = overfinish;
analysis.UNFINISH_QTY = unfinish;
analysis.FINISH_RATE = finishRate;
analysis.NORMAL_FINISH_RATE = normalFinishRate;
formAnalysis.Add(analysis);
}
#endregion
#region 作业活动记录(关键和许可作业)
if (activeRecord.Any())
{
foreach (var item in activeRecord)
{
var task = tasks.FirstOrDefault(t => t.SOURCE_DATA_ID == item.ID);
if (task == null)
item.IS_OVERTIME = 0;
else
item.IS_OVERTIME = 1;
//var department = GetDepartmentId(item.Nav_CreateUser.DEPARTMENT_ID.Value);
//item.DEPARTMENT_ID = department == null ? null : department.ID;
//var department = parentDepartments.FirstOrDefault(t => t.departmentId == item.Nav_CreateUser.DEPARTMENT_ID);
//item.DEPARTMENT_ID = department == null ? null : department.parent_departmentId;
}
if (!string.IsNullOrEmpty(filter.Keyword))
{
activeRecord = activeRecord.Where(t => outPartmentIds.Contains((Guid)t.Nav_CreateUser.DEPARTMENT_ID)).ToList();
}
var count = activeRecord.Count();
var finish = activeRecord.Count(t => t.IS_OVERTIME == 0 && t.FORM_STATUS == (int)FOTeamActivityState.已归档);
var overfinish = activeRecord.Count(t => t.IS_OVERTIME == 1 && t.FORM_STATUS == (int)FOTeamActivityState.已归档);
var unfinish = count - finish - overfinish;
var temp = count == 0 ? 0 : (double)(finish + overfinish) / count * 100;
var finishRate = temp.ToString("0") + "%";
var temp2 = count == 0 ? 0 : (double)finish / count * 100;
var normalFinishRate = temp2.ToString("0") + "%";
T_BI_FORM_RUN_ANALYSIS analysis = new T_BI_FORM_RUN_ANALYSIS();
analysis.MOUDLE_NAME = "作业现场管理";
analysis.FORM_NAME = "作业活动记录(关键和许可作业)";
analysis.NUM = 38;
analysis.ORG_ID = filter.OrgId;
analysis.TOTAL_QTY = count;
analysis.FINISH_QTY = finish;
analysis.OVER_FINISH_QTY = overfinish;
analysis.UNFINISH_QTY = unfinish;
analysis.FINISH_RATE = finishRate;
analysis.NORMAL_FINISH_RATE = normalFinishRate;
formAnalysis.Add(analysis);
}
#endregion
}
if (!string.IsNullOrEmpty(filter.Parameter3) && filter.Parameter3 == "会议管理")
{
newFilter.SelectField = new List { "ID", "STATUS", "DEPARTMENT_ID" , "MEETINGTYPE" };
//会议管理
var meetingManage = this.GetEntities(t => t.CREATE_TIME >= startTime && t.CREATE_TIME <= endTime, newFilter).ToList();
//普通会议通知
var orderMeeting = meetingManage.Where(t => t.MEETINGTYPE == SCMEETINGTYPE.Ordinary).ToList();
//安委会通知
var safeMeeting = meetingManage.Where(t => t.MEETINGTYPE == SCMEETINGTYPE.SafetyBoard || t.MEETINGTYPE == SCMEETINGTYPE.BasicSecurity).ToList();
//会议纪要
newFilter.SelectField = new List { "ID", "STATUS", "Nav_Meeting", "MEETINGTYPE" };
var meetingMinutes = this.GetEntities(t => t.CREATE_TIME >= startTime && t.CREATE_TIME <= endTime && t.Nav_Meeting != null, newFilter).ToList();
//普通会议纪要
var orderMinute = meetingMinutes.Where(t => t.MEETINGTYPE == SCMEETINGTYPE.Ordinary).ToList();
//安委会纪要
var safeMinute = meetingMinutes.Where(t => t.MEETINGTYPE == SCMEETINGTYPE.SafetyBoard || t.MEETINGTYPE == SCMEETINGTYPE.BasicSecurity).ToList();
//只取待办超期的
newFilter.SelectField = new List { "SOURCE_DATA_ID" };
var tasks = this.GetEntities(t => t.NOTICE_STATUS == 2 && t.CREATE_TIME >= startTime && t.CREATE_TIME <= endTime, newFilter).ToList();
#region 普通会议通知
if (orderMeeting.Any())
{
foreach (var item in orderMeeting)
{
var task = tasks.FirstOrDefault(t => t.SOURCE_DATA_ID == item.ID);
if (task == null)
item.IS_OVERTIME = 0;
else
item.IS_OVERTIME = 1;
}
if (!string.IsNullOrEmpty(filter.Keyword))
{
orderMeeting = orderMeeting.Where(t => outPartmentIds.Contains((Guid)t.DEPARTMENT_ID)).ToList();
}
var count = orderMeeting.Count();
var finish = orderMeeting.Count(t => t.IS_OVERTIME == 0 && t.STATUS == PFStandardStatus.Archived);
var overfinish = orderMeeting.Count(t => t.IS_OVERTIME == 1 && t.STATUS == PFStandardStatus.Archived);
var unfinish = count - finish - overfinish;
var temp = count == 0 ? 0 : (double)(finish + overfinish) / count * 100;
var finishRate = temp.ToString("0") + "%";
var temp2 = count == 0 ? 0 : (double)finish / count * 100;
var normalFinishRate = temp2.ToString("0") + "%";
T_BI_FORM_RUN_ANALYSIS analysis = new T_BI_FORM_RUN_ANALYSIS();
analysis.MOUDLE_NAME = "会议管理";
analysis.FORM_NAME = "普通会议通知";
analysis.NUM = 10;
analysis.ORG_ID = filter.OrgId;
analysis.TOTAL_QTY = count;
analysis.FINISH_QTY = finish;
analysis.OVER_FINISH_QTY = overfinish;
analysis.UNFINISH_QTY = unfinish;
analysis.FINISH_RATE = finishRate;
analysis.NORMAL_FINISH_RATE = normalFinishRate;
formAnalysis.Add(analysis);
}
#endregion
#region 安委会通知
if (safeMeeting.Any())
{
foreach (var item in safeMeeting)
{
var task = tasks.FirstOrDefault(t => t.SOURCE_DATA_ID == item.ID);
if (task == null)
item.IS_OVERTIME = 0;
else
item.IS_OVERTIME = 1;
}
if (!string.IsNullOrEmpty(filter.Keyword))
{
safeMeeting = safeMeeting.Where(t => outPartmentIds.Contains((Guid)t.DEPARTMENT_ID)).ToList();
}
var count = safeMeeting.Count();
var finish = safeMeeting.Count(t => t.IS_OVERTIME == 0 && t.STATUS == PFStandardStatus.Archived);
var overfinish = safeMeeting.Count(t => t.IS_OVERTIME == 1 && t.STATUS == PFStandardStatus.Archived);
var unfinish = count - finish - overfinish;
var temp = count == 0 ? 0 : (double)(finish + overfinish) / count * 100;
var finishRate = temp.ToString("0") + "%";
var temp2 = count == 0 ? 0 : (double)finish / count * 100;
var normalFinishRate = temp2.ToString("0") + "%";
T_BI_FORM_RUN_ANALYSIS analysis = new T_BI_FORM_RUN_ANALYSIS();
analysis.MOUDLE_NAME = "会议管理";
analysis.FORM_NAME = "安委会通知";
analysis.NUM = 11;
analysis.ORG_ID = filter.OrgId;
analysis.TOTAL_QTY = count;
analysis.FINISH_QTY = finish;
analysis.OVER_FINISH_QTY = overfinish;
analysis.UNFINISH_QTY = unfinish;
analysis.FINISH_RATE = finishRate;
analysis.NORMAL_FINISH_RATE = normalFinishRate;
formAnalysis.Add(analysis);
}
#endregion
#region 普通会议纪要
if (orderMinute.Any())
{
foreach (var item in orderMinute)
{
var task = tasks.FirstOrDefault(t => t.SOURCE_DATA_ID == item.ID);
if (task == null)
item.IS_OVERTIME = 0;
else
item.IS_OVERTIME = 1;
}
if (!string.IsNullOrEmpty(filter.Keyword))
{
orderMinute = orderMinute.Where(t => outPartmentIds.Contains((Guid)t.Nav_Meeting.DEPARTMENT_ID)).ToList();
}
var count = orderMinute.Count();
var finish = orderMinute.Count(t => t.IS_OVERTIME == 0 && t.STATUS == PFStandardStatus.Archived);
var overfinish = orderMinute.Count(t => t.IS_OVERTIME == 1 && t.STATUS == PFStandardStatus.Archived);
var unfinish = count - finish - overfinish;
var temp = count == 0 ? 0 : (double)(finish + overfinish) / count * 100;
var finishRate = temp.ToString("0") + "%";
var temp2 = count == 0 ? 0 : (double)finish / count * 100;
var normalFinishRate = temp2.ToString("0") + "%";
T_BI_FORM_RUN_ANALYSIS analysis = new T_BI_FORM_RUN_ANALYSIS();
analysis.MOUDLE_NAME = "会议管理";
analysis.FORM_NAME = "普通会议纪要";
analysis.NUM = 12;
analysis.ORG_ID = filter.OrgId;
analysis.TOTAL_QTY = count;
analysis.FINISH_QTY = finish;
analysis.OVER_FINISH_QTY = overfinish;
analysis.UNFINISH_QTY = unfinish;
analysis.FINISH_RATE = finishRate;
analysis.NORMAL_FINISH_RATE = normalFinishRate;
formAnalysis.Add(analysis);
}
#endregion
#region 安委会纪要
if (safeMinute.Any())
{
foreach (var item in safeMinute)
{
var task = tasks.FirstOrDefault(t => t.SOURCE_DATA_ID == item.ID);
if (task == null)
item.IS_OVERTIME = 0;
else
item.IS_OVERTIME = 1;
}
if (!string.IsNullOrEmpty(filter.Keyword))
{
safeMinute = safeMinute.Where(t => outPartmentIds.Contains((Guid)t.Nav_Meeting.DEPARTMENT_ID)).ToList();
}
var count = safeMinute.Count();
var finish = safeMinute.Count(t => t.IS_OVERTIME == 0 && t.STATUS == PFStandardStatus.Archived);
var overfinish = safeMinute.Count(t => t.IS_OVERTIME == 1 && t.STATUS == PFStandardStatus.Archived);
var unfinish = count - finish - overfinish;
var temp = count == 0 ? 0 : (double)(finish + overfinish) / count * 100;
var finishRate = temp.ToString("0") + "%";
var temp2 = count == 0 ? 0 : (double)finish / count * 100;
var normalFinishRate = temp2.ToString("0") + "%";
T_BI_FORM_RUN_ANALYSIS analysis = new T_BI_FORM_RUN_ANALYSIS();
analysis.MOUDLE_NAME = "会议管理";
analysis.FORM_NAME = "安委会纪要";
analysis.NUM = 13;
analysis.ORG_ID = filter.OrgId;
analysis.TOTAL_QTY = count;
analysis.FINISH_QTY = finish;
analysis.OVER_FINISH_QTY = overfinish;
analysis.UNFINISH_QTY = unfinish;
analysis.FINISH_RATE = finishRate;
analysis.NORMAL_FINISH_RATE = normalFinishRate;
formAnalysis.Add(analysis);
}
#endregion
}
if (!string.IsNullOrEmpty(filter.Parameter3) && filter.Parameter3 == "安全教育培训")
{
//安全教育培训
newFilter.SelectField = new List { "ID", "STATUS", "LAUNCH_DEPARTMENT_ID" };
//安全意识调查
var taskIdentify = this.GetEntities(t => t.CREATE_TIME >= startTime && t.CREATE_TIME <= endTime && t.LAUNCH_DEPARTMENT_ID != null, newFilter).ToList();
//培训需求调查
var taskAnalysis = this.GetEntities(t => t.CREATE_TIME >= startTime && t.CREATE_TIME <= endTime && t.LAUNCH_DEPARTMENT_ID != null, newFilter).ToList();
//部门培训计划
var taskOrdinary = this.GetEntities(t => t.CREATE_TIME >= startTime && t.CREATE_TIME <= endTime, newFilter).ToList();
//年度培训计划
var taskCrucial = this.GetEntities(t => t.CREATE_TIME >= startTime && t.CREATE_TIME <= endTime && t.LAUNCH_DEPARTMENT_ID != null, newFilter).ToList();
//培训通知
var taskLicense = this.GetEntities(t => t.CREATE_TIME >= startTime && t.CREATE_TIME <= endTime && t.LAUNCH_DEPARTMENT_ID != null, newFilter).ToList();
//三级安全教育卡
var checkTask = this.GetEntities(t => t.CREATE_TIME >= startTime && t.CREATE_TIME <= endTime && t.LAUNCH_DEPARTMENT_ID != null, newFilter).ToList();
//培训记录
newFilter.SelectField = new List { "ID", "STATUS", "Nav_Notify" };
var filePublish = this.GetEntities(t => t.CREATE_TIME >= startTime && t.CREATE_TIME <= endTime && t.Nav_Notify != null && t.Nav_Notify.LAUNCH_DEPARTMENT_ID != null, newFilter).ToList();
//培训效果评估表
newFilter.SelectField = new List { "ID", "STATUS", "Nav_User" };
var riskDeal = this.GetEntities(t => t.CREATE_TIME >= startTime && t.CREATE_TIME <= endTime && t.Nav_User != null && t.Nav_User.DEPARTMENT_ID != null, newFilter).ToList();
//只取待办超期的
newFilter.SelectField = new List { "SOURCE_DATA_ID" };
var tasks = this.GetEntities(t => t.NOTICE_STATUS == 2 && t.CREATE_TIME >= startTime && t.CREATE_TIME <= endTime, newFilter).ToList();
#region 安全意识调查
if (taskIdentify.Any())
{
foreach (var item in taskIdentify)
{
var task = tasks.FirstOrDefault(t => t.SOURCE_DATA_ID == item.ID);
if (task == null)
item.IS_OVERTIME = 0;
else
item.IS_OVERTIME = 1;
}
if (!string.IsNullOrEmpty(filter.Keyword))
{
taskIdentify = taskIdentify.Where(t => outPartmentIds.Contains((Guid)t.LAUNCH_DEPARTMENT_ID)).ToList();
}
var count = taskIdentify.Count();
var finish = taskIdentify.Count(t => t.IS_OVERTIME == 0 && t.STATUS == SESafeSurveyStatus.完成);
var overfinish = taskIdentify.Count(t => t.IS_OVERTIME == 1 && t.STATUS == SESafeSurveyStatus.完成);
var unfinish = count - finish - overfinish;
var temp = count == 0 ? 0 : (double)(finish + overfinish) / count * 100;
var finishRate = temp.ToString("0") + "%";
var temp2 = count == 0 ? 0 : (double)finish / count * 100;
var normalFinishRate = temp2.ToString("0") + "%";
T_BI_FORM_RUN_ANALYSIS analysis = new T_BI_FORM_RUN_ANALYSIS();
analysis.MOUDLE_NAME = "安全教育培训";
analysis.FORM_NAME = "安全意识调查";
analysis.NUM = 14;
analysis.ORG_ID = filter.OrgId;
analysis.TOTAL_QTY = count;
analysis.FINISH_QTY = finish;
analysis.OVER_FINISH_QTY = overfinish;
analysis.UNFINISH_QTY = unfinish;
analysis.FINISH_RATE = finishRate;
analysis.NORMAL_FINISH_RATE = normalFinishRate;
formAnalysis.Add(analysis);
}
#endregion
#region 培训需求调查
if (taskAnalysis.Any())
{
foreach (var item in taskAnalysis)
{
var task = tasks.FirstOrDefault(t => t.SOURCE_DATA_ID == item.ID);
if (task == null)
item.IS_OVERTIME = 0;
else
item.IS_OVERTIME = 1;
}
if (!string.IsNullOrEmpty(filter.Keyword))
{
taskAnalysis = taskAnalysis.Where(t => outPartmentIds.Contains((Guid)t.LAUNCH_DEPARTMENT_ID)).ToList();
}
var count = taskAnalysis.Count();
var finish = taskAnalysis.Count(t => t.IS_OVERTIME == 0 && t.STATUS == MS.Domain.Enums.SETrainSurveyStatus.完成);
var overfinish = taskAnalysis.Count(t => t.IS_OVERTIME == 1 && t.STATUS == MS.Domain.Enums.SETrainSurveyStatus.完成);
var unfinish = count - finish - overfinish;
var temp = count == 0 ? 0 : (double)(finish + overfinish) / count * 100;
var finishRate = temp.ToString("0") + "%";
var temp2 = count == 0 ? 0 : (double)finish / count * 100;
var normalFinishRate = temp2.ToString("0") + "%";
T_BI_FORM_RUN_ANALYSIS analysis = new T_BI_FORM_RUN_ANALYSIS();
analysis.MOUDLE_NAME = "安全教育培训";
analysis.FORM_NAME = "培训需求调查";
analysis.NUM = 15;
analysis.ORG_ID = filter.OrgId;
analysis.TOTAL_QTY = count;
analysis.FINISH_QTY = finish;
analysis.OVER_FINISH_QTY = overfinish;
analysis.UNFINISH_QTY = unfinish;
analysis.FINISH_RATE = finishRate;
analysis.NORMAL_FINISH_RATE = normalFinishRate;
formAnalysis.Add(analysis);
}
#endregion
#region 部门培训计划
if (taskOrdinary.Any())
{
foreach (var item in taskOrdinary)
{
var task = tasks.FirstOrDefault(t => t.SOURCE_DATA_ID == item.ID);
if (task == null)
item.IS_OVERTIME = 0;
else
item.IS_OVERTIME = 1;
}
if (!string.IsNullOrEmpty(filter.Keyword))
{
taskOrdinary = taskOrdinary.Where(t => outPartmentIds.Contains((Guid)t.LAUNCH_DEPARTMENT_ID)).ToList();
}
var count = taskOrdinary.Count();
var finish = taskOrdinary.Count(t => t.IS_OVERTIME == 0 && t.STATUS == PFStandardStatus.Archived);
var overfinish = taskOrdinary.Count(t => t.IS_OVERTIME == 1 && t.STATUS == PFStandardStatus.Archived);
var unfinish = count - finish - overfinish;
var temp = count == 0 ? 0 : (double)(finish + overfinish) / count * 100;
var finishRate = temp.ToString("0") + "%";
var temp2 = count == 0 ? 0 : (double)finish / count * 100;
var normalFinishRate = temp2.ToString("0") + "%";
T_BI_FORM_RUN_ANALYSIS analysis = new T_BI_FORM_RUN_ANALYSIS();
analysis.MOUDLE_NAME = "安全教育培训";
analysis.FORM_NAME = "部门培训计划";
analysis.NUM = 16;
analysis.ORG_ID = filter.OrgId;
analysis.TOTAL_QTY = count;
analysis.FINISH_QTY = finish;
analysis.OVER_FINISH_QTY = overfinish;
analysis.UNFINISH_QTY = unfinish;
analysis.FINISH_RATE = finishRate;
analysis.NORMAL_FINISH_RATE = normalFinishRate;
formAnalysis.Add(analysis);
}
#endregion
#region 年度培训计划
if (taskCrucial.Any())
{
foreach (var item in taskCrucial)
{
var task = tasks.FirstOrDefault(t => t.SOURCE_DATA_ID == item.ID);
if (task == null)
item.IS_OVERTIME = 0;
else
item.IS_OVERTIME = 1;
}
if (!string.IsNullOrEmpty(filter.Keyword))
{
taskCrucial = taskCrucial.Where(t => outPartmentIds.Contains((Guid)t.LAUNCH_DEPARTMENT_ID)).ToList();
}
var count = taskCrucial.Count();
var finish = taskCrucial.Count(t => t.IS_OVERTIME == 0 && t.STATUS == PFStandardStatus.Archived);
var overfinish = taskCrucial.Count(t => t.IS_OVERTIME == 1 && t.STATUS == PFStandardStatus.Archived);
var unfinish = count - finish - overfinish;
var temp = count == 0 ? 0 : (double)(finish + overfinish) / count * 100;
var finishRate = temp.ToString("0") + "%";
var temp2 = count == 0 ? 0 : (double)finish / count * 100;
var normalFinishRate = temp2.ToString("0") + "%";
T_BI_FORM_RUN_ANALYSIS analysis = new T_BI_FORM_RUN_ANALYSIS();
analysis.MOUDLE_NAME = "安全教育培训";
analysis.FORM_NAME = "年度培训计划";
analysis.NUM = 17;
analysis.ORG_ID = filter.OrgId;
analysis.TOTAL_QTY = count;
analysis.FINISH_QTY = finish;
analysis.OVER_FINISH_QTY = overfinish;
analysis.UNFINISH_QTY = unfinish;
analysis.FINISH_RATE = finishRate;
analysis.NORMAL_FINISH_RATE = normalFinishRate;
formAnalysis.Add(analysis);
}
#endregion
#region 培训通知
if (taskLicense.Any())
{
foreach (var item in taskLicense)
{
var task = tasks.FirstOrDefault(t => t.SOURCE_DATA_ID == item.ID);
if (task == null)
item.IS_OVERTIME = 0;
else
item.IS_OVERTIME = 1;
}
if (!string.IsNullOrEmpty(filter.Keyword))
{
taskLicense = taskLicense.Where(t => outPartmentIds.Contains((Guid)t.LAUNCH_DEPARTMENT_ID)).ToList();
}
var count = taskLicense.Count();
var finish = taskLicense.Count(t => t.IS_OVERTIME == 0 && t.STATUS == SETrainNotifyStatus.归档);
var overfinish = taskLicense.Count(t => t.IS_OVERTIME == 1 && t.STATUS == SETrainNotifyStatus.归档);
var unfinish = count - finish - overfinish;
var temp = count == 0 ? 0 : (double)(finish + overfinish) / count * 100;
var finishRate = temp.ToString("0") + "%";
var temp2 = count == 0 ? 0 : (double)finish / count * 100;
var normalFinishRate = temp2.ToString("0") + "%";
T_BI_FORM_RUN_ANALYSIS analysis = new T_BI_FORM_RUN_ANALYSIS();
analysis.MOUDLE_NAME = "安全教育培训";
analysis.FORM_NAME = "培训通知";
analysis.NUM = 18;
analysis.ORG_ID = filter.OrgId;
analysis.TOTAL_QTY = count;
analysis.FINISH_QTY = finish;
analysis.OVER_FINISH_QTY = overfinish;
analysis.UNFINISH_QTY = unfinish;
analysis.FINISH_RATE = finishRate;
analysis.NORMAL_FINISH_RATE = normalFinishRate;
formAnalysis.Add(analysis);
}
#endregion
#region 培训记录
if (filePublish.Any())
{
foreach (var item in filePublish)
{
var task = tasks.FirstOrDefault(t => t.SOURCE_DATA_ID == item.ID);
if (task == null)
item.IS_OVERTIME = 0;
else
item.IS_OVERTIME = 1;
}
if (!string.IsNullOrEmpty(filter.Keyword))
{
filePublish = filePublish.Where(t => outPartmentIds.Contains((Guid)t.Nav_Notify.LAUNCH_DEPARTMENT_ID)).ToList();
}
var count = filePublish.Count();
var finish = filePublish.Count(t => t.IS_OVERTIME == 0 && t.STATUS == SETrainRecordStatus.归档);
var overfinish = filePublish.Count(t => t.IS_OVERTIME == 1 && t.STATUS == SETrainRecordStatus.归档);
var unfinish = count - finish - overfinish;
var temp = count == 0 ? 0 : (double)(finish + overfinish) / count * 100;
var finishRate = temp.ToString("0") + "%";
var temp2 = count == 0 ? 0 : (double)finish / count * 100;
var normalFinishRate = temp2.ToString("0") + "%";
T_BI_FORM_RUN_ANALYSIS analysis = new T_BI_FORM_RUN_ANALYSIS();
analysis.MOUDLE_NAME = "安全教育培训";
analysis.FORM_NAME = "培训记录";
analysis.NUM = 19;
analysis.ORG_ID = filter.OrgId;
analysis.TOTAL_QTY = count;
analysis.FINISH_QTY = finish;
analysis.OVER_FINISH_QTY = overfinish;
analysis.UNFINISH_QTY = unfinish;
analysis.FINISH_RATE = finishRate;
analysis.NORMAL_FINISH_RATE = normalFinishRate;
formAnalysis.Add(analysis);
}
#endregion
#region 三级安全教育卡
if (checkTask.Any())
{
foreach (var item in checkTask)
{
var task = tasks.FirstOrDefault(t => t.SOURCE_DATA_ID == item.ID);
if (task == null)
item.IS_OVERTIME = 0;
else
item.IS_OVERTIME = 1;
}
if (!string.IsNullOrEmpty(filter.Keyword))
{
checkTask = checkTask.Where(t => outPartmentIds.Contains((Guid)t.LAUNCH_DEPARTMENT_ID)).ToList();
}
var count = checkTask.Count();
var finish = checkTask.Count(t => t.IS_OVERTIME == 0 && t.STATUS == SEThreeLevelSafeTrainStatus.归档);
var overfinish = checkTask.Count(t => t.IS_OVERTIME == 1 && t.STATUS == SEThreeLevelSafeTrainStatus.归档);
var unfinish = count - finish - overfinish;
var temp = count == 0 ? 0 : (double)(finish + overfinish) / count * 100;
var finishRate = temp.ToString("0") + "%";
var temp2 = count == 0 ? 0 : (double)finish / count * 100;
var normalFinishRate = temp2.ToString("0") + "%";
T_BI_FORM_RUN_ANALYSIS analysis = new T_BI_FORM_RUN_ANALYSIS();
analysis.MOUDLE_NAME = "安全教育培训";
analysis.FORM_NAME = "三级安全教育卡";
analysis.NUM = 20;
analysis.ORG_ID = filter.OrgId;
analysis.TOTAL_QTY = count;
analysis.FINISH_QTY = finish;
analysis.OVER_FINISH_QTY = overfinish;
analysis.UNFINISH_QTY = unfinish;
analysis.FINISH_RATE = finishRate;
analysis.NORMAL_FINISH_RATE = normalFinishRate;
formAnalysis.Add(analysis);
}
#endregion
#region 培训效果评估表
if (riskDeal.Any())
{
foreach (var item in riskDeal)
{
var task = tasks.FirstOrDefault(t => t.SOURCE_DATA_ID == item.ID);
if (task == null)
item.IS_OVERTIME = 0;
else
item.IS_OVERTIME = 1;
}
if (!string.IsNullOrEmpty(filter.Keyword))
{
riskDeal = riskDeal.Where(t => outPartmentIds.Contains((Guid)t.Nav_User.DEPARTMENT_ID)).ToList();
}
var count = riskDeal.Count();
var finish = riskDeal.Count(t => t.IS_OVERTIME == 0 && t.STATUS == SETrainningEffectSurveyStatus.归档);
var overfinish = riskDeal.Count(t => t.IS_OVERTIME == 1 && t.STATUS == SETrainningEffectSurveyStatus.归档);
var unfinish = count - finish - overfinish;
var temp = count == 0 ? 0 : (double)(finish + overfinish) / count * 100;
var finishRate = temp.ToString("0") + "%";
var temp2 = count == 0 ? 0 : (double)finish / count * 100;
var normalFinishRate = temp2.ToString("0") + "%";
T_BI_FORM_RUN_ANALYSIS analysis = new T_BI_FORM_RUN_ANALYSIS();
analysis.MOUDLE_NAME = "安全教育培训";
analysis.FORM_NAME = "培训效果评估表";
analysis.NUM = 21;
analysis.ORG_ID = filter.OrgId;
analysis.TOTAL_QTY = count;
analysis.FINISH_QTY = finish;
analysis.OVER_FINISH_QTY = overfinish;
analysis.UNFINISH_QTY = unfinish;
analysis.FINISH_RATE = finishRate;
analysis.NORMAL_FINISH_RATE = normalFinishRate;
formAnalysis.Add(analysis);
}
#endregion
}
if (!string.IsNullOrEmpty(filter.Parameter3) && filter.Parameter3 == "标准化创建")
{
newFilter.SelectField = new List { "ID", "STATUS", "Nav_User" };
//标准化创建
var standardCreate = this.GetEntities(t => t.CREATE_TIME >= startTime && t.CREATE_TIME <= endTime && t.Nav_User != null && t.Nav_User.DEPARTMENT_ID != null, newFilter).ToList();
//制度
var standardSystem = standardCreate.Where(t => t.TYPE == SCType.制度).ToList();
//责任制
var standardRespon = standardCreate.Where(t => t.TYPE == SCType.安全生产责任制).ToList();
//岗位安全操作规程和指导书
var standardPost = standardCreate.Where(t => t.TYPE == SCType.岗位安全操作规程和指导书).ToList();
//应急预案修订记录
var standardPlan = standardCreate.Where(t => t.TYPE == SCType.应急预案).ToList();
//只取待办超期的
newFilter.SelectField = new List { "SOURCE_DATA_ID" };
var tasks = this.GetEntities(t => t.NOTICE_STATUS == 2 && t.CREATE_TIME >= startTime && t.CREATE_TIME <= endTime, newFilter).ToList();
#region 标准化制度创建
if (standardSystem.Any())
{
foreach (var item in standardSystem)
{
var task = tasks.FirstOrDefault(t => t.SOURCE_DATA_ID == item.ID);
if (task == null)
item.IS_OVERTIME = 0;
else
item.IS_OVERTIME = 1;
//var department = parentDepartments.FirstOrDefault(t=>t.departmentId == item.INITIATING_DEPARTMENT);
//item.INITIATING_DEPARTMENT = department == null ? null : department.parent_departmentId;
}
if (!string.IsNullOrEmpty(filter.Keyword))
{
standardSystem = standardSystem.Where(t => outPartmentIds.Contains((Guid)t.Nav_User.DEPARTMENT_ID)).ToList();
}
var count = standardSystem.Count();
var finish = standardSystem.Count(t => t.IS_OVERTIME == 0 && t.STATUS == MS.Domain.Enums.SCSystemEditStatus.已归档);
var overfinish = standardSystem.Count(t => t.IS_OVERTIME == 1 && t.STATUS == MS.Domain.Enums.SCSystemEditStatus.已归档);
var unfinish = count - finish - overfinish;
var temp = count == 0 ? 0 : (double)(finish + overfinish) / count * 100;
var finishRate = temp.ToString("0") + "%";
var temp2 = count == 0 ? 0 : (double)finish / count * 100;
var normalFinishRate = temp2.ToString("0") + "%";
T_BI_FORM_RUN_ANALYSIS analysis = new T_BI_FORM_RUN_ANALYSIS();
analysis.MOUDLE_NAME = "标准化创建";
analysis.FORM_NAME = "制度创建";
analysis.NUM = 1;
analysis.ORG_ID = filter.OrgId;
analysis.TOTAL_QTY = count;
analysis.FINISH_QTY = finish;
analysis.OVER_FINISH_QTY = overfinish;
analysis.UNFINISH_QTY = unfinish;
analysis.FINISH_RATE = finishRate;
analysis.NORMAL_FINISH_RATE = normalFinishRate;
formAnalysis.Add(analysis);
}
#endregion
#region 标准化责任制创建
if (standardRespon.Any())
{
foreach (var item in standardRespon)
{
var task = tasks.FirstOrDefault(t => t.SOURCE_DATA_ID == item.ID);
if (task == null)
item.IS_OVERTIME = 0;
else
item.IS_OVERTIME = 1;
//var department = parentDepartments.FirstOrDefault(t=>t.departmentId == item.INITIATING_DEPARTMENT);
//item.INITIATING_DEPARTMENT = department == null ? null : department.parent_departmentId;
}
if (!string.IsNullOrEmpty(filter.Keyword))
{
standardRespon = standardRespon.Where(t => outPartmentIds.Contains((Guid)t.Nav_User.DEPARTMENT_ID)).ToList();
}
var count = standardRespon.Count();
var finish = standardRespon.Count(t => t.IS_OVERTIME == 0 && t.STATUS == MS.Domain.Enums.SCSystemEditStatus.已归档);
var overfinish = standardRespon.Count(t => t.IS_OVERTIME == 1 && t.STATUS == MS.Domain.Enums.SCSystemEditStatus.已归档);
var unfinish = count - finish - overfinish;
var temp = count == 0 ? 0 : (double)(finish + overfinish) / count * 100;
var finishRate = temp.ToString("0") + "%";
var temp2 = count == 0 ? 0 : (double)finish / count * 100;
var normalFinishRate = temp2.ToString("0") + "%";
T_BI_FORM_RUN_ANALYSIS analysis = new T_BI_FORM_RUN_ANALYSIS();
analysis.MOUDLE_NAME = "标准化创建";
analysis.FORM_NAME = "责任制创建";
analysis.NUM = 2;
analysis.ORG_ID = filter.OrgId;
analysis.TOTAL_QTY = count;
analysis.FINISH_QTY = finish;
analysis.OVER_FINISH_QTY = overfinish;
analysis.UNFINISH_QTY = unfinish;
analysis.FINISH_RATE = finishRate;
analysis.NORMAL_FINISH_RATE = normalFinishRate;
formAnalysis.Add(analysis);
}
#endregion
#region 岗位安全操作规程和指导书
if (standardPost.Any())
{
foreach (var item in standardPost)
{
var task = tasks.FirstOrDefault(t => t.SOURCE_DATA_ID == item.ID);
if (task == null)
item.IS_OVERTIME = 0;
else
item.IS_OVERTIME = 1;
//var department = parentDepartments.FirstOrDefault(t=>t.departmentId == item.INITIATING_DEPARTMENT);
//item.INITIATING_DEPARTMENT = department == null ? null : department.parent_departmentId;
}
if (!string.IsNullOrEmpty(filter.Keyword))
{
standardPost = standardPost.Where(t => outPartmentIds.Contains((Guid)t.Nav_User.DEPARTMENT_ID)).ToList();
}
var count = standardPost.Count();
var finish = standardPost.Count(t => t.IS_OVERTIME == 0 && t.STATUS == MS.Domain.Enums.SCSystemEditStatus.已归档);
var overfinish = standardPost.Count(t => t.IS_OVERTIME == 1 && t.STATUS == MS.Domain.Enums.SCSystemEditStatus.已归档);
var unfinish = count - finish - overfinish;
var temp = count == 0 ? 0 : (double)(finish + overfinish) / count * 100;
var finishRate = temp.ToString("0") + "%";
var temp2 = count == 0 ? 0 : (double)finish / count * 100;
var normalFinishRate = temp2.ToString("0") + "%";
T_BI_FORM_RUN_ANALYSIS analysis = new T_BI_FORM_RUN_ANALYSIS();
analysis.MOUDLE_NAME = "标准化创建";
analysis.FORM_NAME = "岗位安全操作规程和指导书";
analysis.NUM = 3;
analysis.ORG_ID = filter.OrgId;
analysis.TOTAL_QTY = count;
analysis.FINISH_QTY = finish;
analysis.OVER_FINISH_QTY = overfinish;
analysis.UNFINISH_QTY = unfinish;
analysis.FINISH_RATE = finishRate;
analysis.NORMAL_FINISH_RATE = normalFinishRate;
formAnalysis.Add(analysis);
}
#endregion
#region 应急预案修订记录
if (standardPlan.Any())
{
foreach (var item in standardPlan)
{
var task = tasks.FirstOrDefault(t => t.SOURCE_DATA_ID == item.ID);
if (task == null)
item.IS_OVERTIME = 0;
else
item.IS_OVERTIME = 1;
//var department = parentDepartments.FirstOrDefault(t=>t.departmentId == item.INITIATING_DEPARTMENT);
//item.INITIATING_DEPARTMENT = department == null ? null : department.parent_departmentId;
}
if (!string.IsNullOrEmpty(filter.Keyword))
{
standardPlan = standardPlan.Where(t => outPartmentIds.Contains((Guid)t.Nav_User.DEPARTMENT_ID)).ToList();
}
var count = standardPlan.Count();
var finish = standardPlan.Count(t => t.IS_OVERTIME == 0 && t.STATUS == MS.Domain.Enums.SCSystemEditStatus.已归档);
var overfinish = standardPlan.Count(t => t.IS_OVERTIME == 1 && t.STATUS == MS.Domain.Enums.SCSystemEditStatus.已归档);
var unfinish = count - finish - overfinish;
var temp = count == 0 ? 0 : (double)(finish + overfinish) / count * 100;
var finishRate = temp.ToString("0") + "%";
var temp2 = count == 0 ? 0 : (double)finish / count * 100;
var normalFinishRate = temp2.ToString("0") + "%";
T_BI_FORM_RUN_ANALYSIS analysis = new T_BI_FORM_RUN_ANALYSIS();
analysis.MOUDLE_NAME = "标准化创建";
analysis.FORM_NAME = "应急预案修订记录";
analysis.NUM = 4;
analysis.ORG_ID = filter.OrgId;
analysis.TOTAL_QTY = count;
analysis.FINISH_QTY = finish;
analysis.OVER_FINISH_QTY = overfinish;
analysis.UNFINISH_QTY = unfinish;
analysis.FINISH_RATE = finishRate;
analysis.NORMAL_FINISH_RATE = normalFinishRate;
formAnalysis.Add(analysis);
}
#endregion
}
if (!string.IsNullOrEmpty(filter.Parameter3) && filter.Parameter3 == "方针目标与指标")
{
//方针目标与指标
newFilter.SelectField = new List { "ID", "STATUS", "DEPARTMENT_ID" };
//安全生产方针调查
var noticeRelease = this.GetEntities(t => t.CREATE_TIME >= startTime && t.CREATE_TIME <= endTime && t.DEPARTMENT_ID != null, newFilter).ToList();
//公司安全生产目标与指标制定
var riskTask = this.GetEntities(t => t.CREATE_TIME >= startTime && t.CREATE_TIME <= endTime && t.DEPARTMENT_ID != null, newFilter).ToList();
//部门车间班组安全生产目标与指标制定
var riskRecord = this.GetEntities(t => t.CREATE_TIME >= startTime && t.CREATE_TIME <= endTime && t.DEPARTMENT_ID != null, newFilter).ToList();
//考核方案审核
var hazardTask = this.GetEntities(t => t.CREATE_TIME >= startTime && t.CREATE_TIME <= endTime && t.DEPARTMENT_ID != null, newFilter).ToList();
//监测与考核记录
var hazardRecord = this.GetEntities(t => t.CREATE_TIME >= startTime && t.CREATE_TIME <= endTime && t.DEPARTMENT_ID != null, newFilter).ToList();
//只取待办超期的
newFilter.SelectField = new List { "SOURCE_DATA_ID" };
var tasks = this.GetEntities(t => t.NOTICE_STATUS == 2 && t.CREATE_TIME >= startTime && t.CREATE_TIME <= endTime, newFilter).ToList();
#region 安全生产方针调查
if (noticeRelease.Any())
{
foreach (var item in noticeRelease)
{
var task = tasks.FirstOrDefault(t => t.SOURCE_DATA_ID == item.ID);
if (task == null)
item.IS_OVERTIME = 0;
else
item.IS_OVERTIME = 1;
}
if (!string.IsNullOrEmpty(filter.Keyword))
{
noticeRelease = noticeRelease.Where(t => outPartmentIds.Contains((Guid)t.DEPARTMENT_ID)).ToList();
}
var count = noticeRelease.Count();
var finish = noticeRelease.Count(t => t.IS_OVERTIME == 0 && t.STATUS == PFStandardStatus.Archived);
var overfinish = noticeRelease.Count(t => t.IS_OVERTIME == 1 && t.STATUS == PFStandardStatus.Archived);
var unfinish = count - finish - overfinish;
var temp = count == 0 ? 0 : (double)(finish + overfinish) / count * 100;
var finishRate = temp.ToString("0") + "%";
var temp2 = count == 0 ? 0 : (double)finish / count * 100;
var normalFinishRate = temp2.ToString("0") + "%";
T_BI_FORM_RUN_ANALYSIS analysis = new T_BI_FORM_RUN_ANALYSIS();
analysis.MOUDLE_NAME = "方针目标与指标";
analysis.FORM_NAME = "安全生产方针调查";
analysis.NUM = 5;
analysis.ORG_ID = filter.OrgId;
analysis.TOTAL_QTY = count;
analysis.FINISH_QTY = finish;
analysis.OVER_FINISH_QTY = overfinish;
analysis.UNFINISH_QTY = unfinish;
analysis.FINISH_RATE = finishRate;
analysis.NORMAL_FINISH_RATE = normalFinishRate;
formAnalysis.Add(analysis);
}
#endregion
#region 公司安全生产目标与指标制定
if (riskTask.Any())
{
foreach (var item in riskTask)
{
var task = tasks.FirstOrDefault(t => t.SOURCE_DATA_ID == item.ID);
if (task == null)
item.IS_OVERTIME = 0;
else
item.IS_OVERTIME = 1;
}
if (!string.IsNullOrEmpty(filter.Keyword))
{
riskTask = riskTask.Where(t => outPartmentIds.Contains((Guid)t.DEPARTMENT_ID)).ToList();
}
var count = riskTask.Count();
var finish = riskTask.Count(t => t.IS_OVERTIME == 0 && t.STATUS == PFStandardStatus.Archived);
var overfinish = riskTask.Count(t => t.IS_OVERTIME == 1 && t.STATUS == PFStandardStatus.Archived);
var unfinish = count - finish - overfinish;
var temp = count == 0 ? 0 : (double)(finish + overfinish) / count * 100;
var finishRate = temp.ToString("0") + "%";
var temp2 = count == 0 ? 0 : (double)finish / count * 100;
var normalFinishRate = temp2.ToString("0") + "%";
T_BI_FORM_RUN_ANALYSIS analysis = new T_BI_FORM_RUN_ANALYSIS();
analysis.MOUDLE_NAME = "方针目标与指标";
analysis.FORM_NAME = "公司安全生产目标与指标制定";
analysis.NUM = 6;
analysis.ORG_ID = filter.OrgId;
analysis.TOTAL_QTY = count;
analysis.FINISH_QTY = finish;
analysis.OVER_FINISH_QTY = overfinish;
analysis.UNFINISH_QTY = unfinish;
analysis.FINISH_RATE = finishRate;
analysis.NORMAL_FINISH_RATE = normalFinishRate;
formAnalysis.Add(analysis);
}
#endregion
#region 部门车间班组安全生产目标与指标制定
if (riskRecord.Any())
{
foreach (var item in riskRecord)
{
var task = tasks.FirstOrDefault(t => t.SOURCE_DATA_ID == item.ID);
if (task == null)
item.IS_OVERTIME = 0;
else
item.IS_OVERTIME = 1;
}
if (!string.IsNullOrEmpty(filter.Keyword))
{
riskRecord = riskRecord.Where(t => outPartmentIds.Contains((Guid)t.DEPARTMENT_ID)).ToList();
}
var count = riskRecord.Count();
var finish = riskRecord.Count(t => t.IS_OVERTIME == 0 && t.STATUS == PFStandardStatus.Archived);
var overfinish = riskRecord.Count(t => t.IS_OVERTIME == 1 && t.STATUS == PFStandardStatus.Archived);
var unfinish = count - finish - overfinish;
var temp = count == 0 ? 0 : (double)(finish + overfinish) / count * 100;
var finishRate = temp.ToString("0") + "%";
var temp2 = count == 0 ? 0 : (double)finish / count * 100;
var normalFinishRate = temp2.ToString("0") + "%";
T_BI_FORM_RUN_ANALYSIS analysis = new T_BI_FORM_RUN_ANALYSIS();
analysis.MOUDLE_NAME = "方针目标与指标";
analysis.FORM_NAME = "部门车间班组安全生产目标与指标制定";
analysis.NUM = 7;
analysis.ORG_ID = filter.OrgId;
analysis.TOTAL_QTY = count;
analysis.FINISH_QTY = finish;
analysis.OVER_FINISH_QTY = overfinish;
analysis.UNFINISH_QTY = unfinish;
analysis.FINISH_RATE = finishRate;
analysis.NORMAL_FINISH_RATE = normalFinishRate;
formAnalysis.Add(analysis);
}
#endregion
#region 考核方案审核
if (hazardTask.Any())
{
foreach (var item in hazardTask)
{
var task = tasks.FirstOrDefault(t => t.SOURCE_DATA_ID == item.ID);
if (task == null)
item.IS_OVERTIME = 0;
else
item.IS_OVERTIME = 1;
//var department = GetDepartmentId(item.INITIATING_DEPARTMENT.Value);
//item.INITIATING_DEPARTMENT = department == null ? null : department.ID;
//var department = parentDepartments.FirstOrDefault(t => t.departmentId == item.INITIATING_DEPARTMENT);
//item.INITIATING_DEPARTMENT = department == null ? null : department.parent_departmentId;
}
if (!string.IsNullOrEmpty(filter.Keyword))
{
hazardTask = hazardTask.Where(t => outPartmentIds.Contains((Guid)t.DEPARTMENT_ID)).ToList();
}
var count = hazardTask.Count();
var finish = hazardTask.Count(t => t.IS_OVERTIME == 0 && t.STATUS == PFStandardStatus.Archived);
var overfinish = hazardTask.Count(t => t.IS_OVERTIME == 1 && t.STATUS == PFStandardStatus.Archived);
var unfinish = count - finish - overfinish;
var temp = count == 0 ? 0 : (double)(finish + overfinish) / count * 100;
var finishRate = temp.ToString("0") + "%";
var temp2 = count == 0 ? 0 : (double)finish / count * 100;
var normalFinishRate = temp2.ToString("0") + "%";
T_BI_FORM_RUN_ANALYSIS analysis = new T_BI_FORM_RUN_ANALYSIS();
analysis.MOUDLE_NAME = "方针目标与指标";
analysis.FORM_NAME = "考核方案审核";
analysis.NUM = 8;
analysis.ORG_ID = filter.OrgId;
analysis.TOTAL_QTY = count;
analysis.FINISH_QTY = finish;
analysis.OVER_FINISH_QTY = overfinish;
analysis.UNFINISH_QTY = unfinish;
analysis.FINISH_RATE = finishRate;
analysis.NORMAL_FINISH_RATE = normalFinishRate;
formAnalysis.Add(analysis);
}
#endregion
#region 监测与考核记录
if (hazardRecord.Any())
{
foreach (var item in hazardRecord)
{
var task = tasks.FirstOrDefault(t => t.SOURCE_DATA_ID == item.ID);
if (task == null)
item.IS_OVERTIME = 0;
else
item.IS_OVERTIME = 1;
//var department = GetDepartmentId(item.INITIATING_DEPARTMENT.Value);
//item.INITIATING_DEPARTMENT = department == null ? null : department.ID;
//var department = parentDepartments.FirstOrDefault(t => t.departmentId == item.INITIATING_DEPARTMENT);
//item.INITIATING_DEPARTMENT = department == null ? null : department.parent_departmentId;
}
if (!string.IsNullOrEmpty(filter.Keyword))
{
hazardRecord = hazardRecord.Where(t => outPartmentIds.Contains((Guid)t.DEPARTMENT_ID)).ToList();
}
var count = hazardRecord.Count();
var finish = hazardRecord.Count(t => t.IS_OVERTIME == 0 && t.STATUS == PFStandardStatus.Archived);
var overfinish = hazardRecord.Count(t => t.IS_OVERTIME == 1 && t.STATUS == PFStandardStatus.Archived);
var unfinish = count - finish - overfinish;
var temp = count == 0 ? 0 : (double)(finish + overfinish) / count * 100;
var finishRate = temp.ToString("0") + "%";
var temp2 = count == 0 ? 0 : (double)finish / count * 100;
var normalFinishRate = temp2.ToString("0") + "%";
T_BI_FORM_RUN_ANALYSIS analysis = new T_BI_FORM_RUN_ANALYSIS();
analysis.MOUDLE_NAME = "方针目标与指标";
analysis.FORM_NAME = "监测与考核记录";
analysis.NUM = 9;
analysis.ORG_ID = filter.OrgId;
analysis.TOTAL_QTY = count;
analysis.FINISH_QTY = finish;
analysis.OVER_FINISH_QTY = overfinish;
analysis.UNFINISH_QTY = unfinish;
analysis.FINISH_RATE = finishRate;
analysis.NORMAL_FINISH_RATE = normalFinishRate;
formAnalysis.Add(analysis);
}
#endregion
}
return formAnalysis;
});
}
[HttpPost, Route("GetFormRunSix")]
public JsonActionResult> GetFormRunSix([FromBody] KeywordFilter filter)
{
return SafeExecute>(() =>
{
//首页待办增加数量统计字段
//var userId = APT.Infrastructure.Api.AppContext.CurrentSession.UserID;
if (string.IsNullOrEmpty(filter.Parameter1))
{
throw new Exception("请先选择开始时间");
}
if (string.IsNullOrEmpty(filter.Parameter2))
{
throw new Exception("请先选择结束时间");
}
List outPartmentIds = new List();
if (!string.IsNullOrEmpty(filter.Keyword))
{
List inputIds = new List() { Guid.Parse(filter.Keyword) };
GetDepartmentIds(APT.Infrastructure.Api.AppContext.CurrentSession.OrgId.Value, inputIds, ref outPartmentIds);
outPartmentIds.Add(Guid.Parse(filter.Keyword));
}
List formAnalysis = new List();
List parentDepartments = new List();
DateTime startTime = Convert.ToDateTime(filter.Parameter1);
DateTime endTime = Convert.ToDateTime(filter.Parameter2);
TimeSpan span = endTime.Subtract(startTime);
int dayDidd = span.Days + 1;
if (dayDidd >= 180)
throw new Exception("查询时间不能超过6个月!");
//var sourceIds = new List();
var departmentIds = new List();
var newFilter = new BaseFilter(filter.OrgId);
newFilter.IgnoreDataRule = true;
newFilter.SelectField = new List { "ID", "STATUS", "Nav_User" };
//标准化创建
var standardCreate = this.GetEntities(t => t.CREATE_TIME >= startTime && t.CREATE_TIME <= endTime && t.Nav_User != null && t.Nav_User.DEPARTMENT_ID != null, newFilter).ToList();
//制度
var standardSystem = standardCreate.Where(t => t.TYPE == SCType.制度).ToList();
//责任制
var standardRespon = standardCreate.Where(t => t.TYPE == SCType.安全生产责任制).ToList();
//岗位安全操作规程和指导书
var standardPost = standardCreate.Where(t => t.TYPE == SCType.岗位安全操作规程和指导书).ToList();
//应急预案修订记录
var standardPlan = standardCreate.Where(t => t.TYPE == SCType.应急预案).ToList();
//方针目标与指标
newFilter.SelectField = new List { "ID", "STATUS", "DEPARTMENT_ID" };
//安全生产方针调查
var noticeRelease = this.GetEntities(t => t.CREATE_TIME >= startTime && t.CREATE_TIME <= endTime && t.DEPARTMENT_ID != null, newFilter).ToList();
//公司安全生产目标与指标制定
var riskTask = this.GetEntities(t => t.CREATE_TIME >= startTime && t.CREATE_TIME <= endTime && t.DEPARTMENT_ID != null, newFilter).ToList();
//部门车间班组安全生产目标与指标制定
var riskRecord = this.GetEntities(t => t.CREATE_TIME >= startTime && t.CREATE_TIME <= endTime && t.DEPARTMENT_ID != null, newFilter).ToList();
//考核方案审核
var hazardTask = this.GetEntities(t => t.CREATE_TIME >= startTime && t.CREATE_TIME <= endTime && t.DEPARTMENT_ID != null, newFilter).ToList();
//监测与考核记录
var hazardRecord = this.GetEntities(t => t.CREATE_TIME >= startTime && t.CREATE_TIME <= endTime && t.DEPARTMENT_ID != null, newFilter).ToList();
//会议管理
var meetingManage = this.GetEntities(t => t.CREATE_TIME >= startTime && t.CREATE_TIME <= endTime, newFilter).ToList();
//普通会议通知
var orderMeeting = meetingManage.Where(t => t.MEETINGTYPE == SCMEETINGTYPE.Ordinary).ToList();
//安委会通知
var safeMeeting = meetingManage.Where(t => t.MEETINGTYPE == SCMEETINGTYPE.SafetyBoard).ToList();
//会议纪要
newFilter.SelectField = new List { "ID", "STATUS", "Nav_Meeting" };
var meetingMinutes = this.GetEntities(t => t.CREATE_TIME >= startTime && t.CREATE_TIME <= endTime && t.Nav_Meeting != null, newFilter).ToList();
//普通会议纪要
var orderMinute = meetingMinutes.Where(t => t.MEETINGTYPE == SCMEETINGTYPE.Ordinary).ToList();
//安委会纪要
var safeMinute = meetingMinutes.Where(t => t.MEETINGTYPE == SCMEETINGTYPE.SafetyBoard).ToList();
//安全教育培训
newFilter.SelectField = new List { "ID", "STATUS", "LAUNCH_DEPARTMENT_ID" };
//安全意识调查
var taskIdentify = this.GetEntities(t => t.CREATE_TIME >= startTime && t.CREATE_TIME <= endTime && t.LAUNCH_DEPARTMENT_ID != null, newFilter).ToList();
//培训需求调查
var taskAnalysis = this.GetEntities(t => t.CREATE_TIME >= startTime && t.CREATE_TIME <= endTime && t.LAUNCH_DEPARTMENT_ID != null, newFilter).ToList();
//部门培训计划
var taskOrdinary = this.GetEntities(t => t.CREATE_TIME >= startTime && t.CREATE_TIME <= endTime, newFilter).ToList();
//年度培训计划
var taskCrucial = this.GetEntities(t => t.CREATE_TIME >= startTime && t.CREATE_TIME <= endTime && t.LAUNCH_DEPARTMENT_ID != null, newFilter).ToList();
//培训通知
var taskLicense = this.GetEntities(t => t.CREATE_TIME >= startTime && t.CREATE_TIME <= endTime && t.LAUNCH_DEPARTMENT_ID != null, newFilter).ToList();
//三级安全教育卡
var checkTask = this.GetEntities(t => t.CREATE_TIME >= startTime && t.CREATE_TIME <= endTime && t.LAUNCH_DEPARTMENT_ID != null, newFilter).ToList();
//培训记录
newFilter.SelectField = new List { "ID", "STATUS", "Nav_Notify" };
var filePublish = this.GetEntities(t => t.CREATE_TIME >= startTime && t.CREATE_TIME <= endTime && t.Nav_Notify != null && t.Nav_Notify.LAUNCH_DEPARTMENT_ID != null, newFilter).ToList();
//培训效果评估表
newFilter.SelectField = new List { "ID", "STATUS", "Nav_User" };
var riskDeal = this.GetEntities(t => t.CREATE_TIME >= startTime && t.CREATE_TIME <= endTime && t.Nav_User != null && t.Nav_User.DEPARTMENT_ID != null, newFilter).ToList();
//只取待办超期的
newFilter.SelectField = new List { "SOURCE_DATA_ID" };
var tasks = this.GetEntities(t => t.NOTICE_STATUS == 2 && t.CREATE_TIME >= startTime && t.CREATE_TIME <= endTime, newFilter).ToList();
#region 标准化制度创建
if (standardSystem.Any())
{
foreach (var item in standardSystem)
{
var task = tasks.FirstOrDefault(t => t.SOURCE_DATA_ID == item.ID);
if (task == null)
item.IS_OVERTIME = 0;
else
item.IS_OVERTIME = 1;
//var department = parentDepartments.FirstOrDefault(t=>t.departmentId == item.INITIATING_DEPARTMENT);
//item.INITIATING_DEPARTMENT = department == null ? null : department.parent_departmentId;
}
if (!string.IsNullOrEmpty(filter.Keyword))
{
standardSystem = standardSystem.Where(t => outPartmentIds.Contains((Guid)t.Nav_User.DEPARTMENT_ID)).ToList();
}
var count = standardSystem.Count();
var finish = standardSystem.Count(t => t.IS_OVERTIME == 0 && t.STATUS == MS.Domain.Enums.SCSystemEditStatus.已归档);
var overfinish = standardSystem.Count(t => t.IS_OVERTIME == 1 && t.STATUS == MS.Domain.Enums.SCSystemEditStatus.已归档);
var unfinish = count - finish - overfinish;
var temp = count == 0 ? 0 : (double)(finish + overfinish) / count * 100;
var finishRate = temp.ToString("0") + "%";
var temp2 = count == 0 ? 0 : (double)finish / count * 100;
var normalFinishRate = temp2.ToString("0") + "%";
T_BI_FORM_RUN_ANALYSIS analysis = new T_BI_FORM_RUN_ANALYSIS();
analysis.MOUDLE_NAME = "标准化创建";
analysis.FORM_NAME = "制度创建";
analysis.NUM = 1;
analysis.ORG_ID = filter.OrgId;
analysis.TOTAL_QTY = count;
analysis.FINISH_QTY = finish;
analysis.OVER_FINISH_QTY = overfinish;
analysis.UNFINISH_QTY = unfinish;
analysis.FINISH_RATE = finishRate;
analysis.NORMAL_FINISH_RATE = normalFinishRate;
formAnalysis.Add(analysis);
}
#endregion
#region 标准化责任制创建
if (standardRespon.Any())
{
foreach (var item in standardRespon)
{
var task = tasks.FirstOrDefault(t => t.SOURCE_DATA_ID == item.ID);
if (task == null)
item.IS_OVERTIME = 0;
else
item.IS_OVERTIME = 1;
//var department = parentDepartments.FirstOrDefault(t=>t.departmentId == item.INITIATING_DEPARTMENT);
//item.INITIATING_DEPARTMENT = department == null ? null : department.parent_departmentId;
}
if (!string.IsNullOrEmpty(filter.Keyword))
{
standardRespon = standardRespon.Where(t => outPartmentIds.Contains((Guid)t.Nav_User.DEPARTMENT_ID)).ToList();
}
var count = standardRespon.Count();
var finish = standardRespon.Count(t => t.IS_OVERTIME == 0 && t.STATUS == MS.Domain.Enums.SCSystemEditStatus.已归档);
var overfinish = standardRespon.Count(t => t.IS_OVERTIME == 1 && t.STATUS == MS.Domain.Enums.SCSystemEditStatus.已归档);
var unfinish = count - finish - overfinish;
var temp = count == 0 ? 0 : (double)(finish + overfinish) / count * 100;
var finishRate = temp.ToString("0") + "%";
var temp2 = count == 0 ? 0 : (double)finish / count * 100;
var normalFinishRate = temp2.ToString("0") + "%";
T_BI_FORM_RUN_ANALYSIS analysis = new T_BI_FORM_RUN_ANALYSIS();
analysis.MOUDLE_NAME = "标准化创建";
analysis.FORM_NAME = "责任制创建";
analysis.NUM = 2;
analysis.ORG_ID = filter.OrgId;
analysis.TOTAL_QTY = count;
analysis.FINISH_QTY = finish;
analysis.OVER_FINISH_QTY = overfinish;
analysis.UNFINISH_QTY = unfinish;
analysis.FINISH_RATE = finishRate;
analysis.NORMAL_FINISH_RATE = normalFinishRate;
formAnalysis.Add(analysis);
}
#endregion
#region 岗位安全操作规程和指导书
if (standardPost.Any())
{
foreach (var item in standardPost)
{
var task = tasks.FirstOrDefault(t => t.SOURCE_DATA_ID == item.ID);
if (task == null)
item.IS_OVERTIME = 0;
else
item.IS_OVERTIME = 1;
//var department = parentDepartments.FirstOrDefault(t=>t.departmentId == item.INITIATING_DEPARTMENT);
//item.INITIATING_DEPARTMENT = department == null ? null : department.parent_departmentId;
}
if (!string.IsNullOrEmpty(filter.Keyword))
{
standardPost = standardPost.Where(t => outPartmentIds.Contains((Guid)t.Nav_User.DEPARTMENT_ID)).ToList();
}
var count = standardPost.Count();
var finish = standardPost.Count(t => t.IS_OVERTIME == 0 && t.STATUS == MS.Domain.Enums.SCSystemEditStatus.已归档);
var overfinish = standardPost.Count(t => t.IS_OVERTIME == 1 && t.STATUS == MS.Domain.Enums.SCSystemEditStatus.已归档);
var unfinish = count - finish - overfinish;
var temp = count == 0 ? 0 : (double)(finish + overfinish) / count * 100;
var finishRate = temp.ToString("0") + "%";
var temp2 = count == 0 ? 0 : (double)finish / count * 100;
var normalFinishRate = temp2.ToString("0") + "%";
T_BI_FORM_RUN_ANALYSIS analysis = new T_BI_FORM_RUN_ANALYSIS();
analysis.MOUDLE_NAME = "标准化创建";
analysis.FORM_NAME = "岗位安全操作规程和指导书";
analysis.NUM = 3;
analysis.ORG_ID = filter.OrgId;
analysis.TOTAL_QTY = count;
analysis.FINISH_QTY = finish;
analysis.OVER_FINISH_QTY = overfinish;
analysis.UNFINISH_QTY = unfinish;
analysis.FINISH_RATE = finishRate;
analysis.NORMAL_FINISH_RATE = normalFinishRate;
formAnalysis.Add(analysis);
}
#endregion
#region 应急预案修订记录
if (standardPlan.Any())
{
foreach (var item in standardPlan)
{
var task = tasks.FirstOrDefault(t => t.SOURCE_DATA_ID == item.ID);
if (task == null)
item.IS_OVERTIME = 0;
else
item.IS_OVERTIME = 1;
//var department = parentDepartments.FirstOrDefault(t=>t.departmentId == item.INITIATING_DEPARTMENT);
//item.INITIATING_DEPARTMENT = department == null ? null : department.parent_departmentId;
}
if (!string.IsNullOrEmpty(filter.Keyword))
{
standardPlan = standardPlan.Where(t => outPartmentIds.Contains((Guid)t.Nav_User.DEPARTMENT_ID)).ToList();
}
var count = standardPlan.Count();
var finish = standardPlan.Count(t => t.IS_OVERTIME == 0 && t.STATUS == MS.Domain.Enums.SCSystemEditStatus.已归档);
var overfinish = standardPlan.Count(t => t.IS_OVERTIME == 1 && t.STATUS == MS.Domain.Enums.SCSystemEditStatus.已归档);
var unfinish = count - finish - overfinish;
var temp = count == 0 ? 0 : (double)(finish + overfinish) / count * 100;
var finishRate = temp.ToString("0") + "%";
var temp2 = count == 0 ? 0 : (double)finish / count * 100;
var normalFinishRate = temp2.ToString("0") + "%";
T_BI_FORM_RUN_ANALYSIS analysis = new T_BI_FORM_RUN_ANALYSIS();
analysis.MOUDLE_NAME = "标准化创建";
analysis.FORM_NAME = "应急预案修订记录";
analysis.NUM = 4;
analysis.ORG_ID = filter.OrgId;
analysis.TOTAL_QTY = count;
analysis.FINISH_QTY = finish;
analysis.OVER_FINISH_QTY = overfinish;
analysis.UNFINISH_QTY = unfinish;
analysis.FINISH_RATE = finishRate;
analysis.NORMAL_FINISH_RATE = normalFinishRate;
formAnalysis.Add(analysis);
}
#endregion
#region 安全生产方针调查
if (noticeRelease.Any())
{
foreach (var item in noticeRelease)
{
var task = tasks.FirstOrDefault(t => t.SOURCE_DATA_ID == item.ID);
if (task == null)
item.IS_OVERTIME = 0;
else
item.IS_OVERTIME = 1;
}
if (!string.IsNullOrEmpty(filter.Keyword))
{
noticeRelease = noticeRelease.Where(t => outPartmentIds.Contains((Guid)t.DEPARTMENT_ID)).ToList();
}
var count = noticeRelease.Count();
var finish = noticeRelease.Count(t => t.IS_OVERTIME == 0 && t.STATUS == PFStandardStatus.Archived);
var overfinish = noticeRelease.Count(t => t.IS_OVERTIME == 1 && t.STATUS == PFStandardStatus.Archived);
var unfinish = count - finish - overfinish;
var temp = count == 0 ? 0 : (double)(finish + overfinish) / count * 100;
var finishRate = temp.ToString("0") + "%";
var temp2 = count == 0 ? 0 : (double)finish / count * 100;
var normalFinishRate = temp2.ToString("0") + "%";
T_BI_FORM_RUN_ANALYSIS analysis = new T_BI_FORM_RUN_ANALYSIS();
analysis.MOUDLE_NAME = "方针与目标";
analysis.FORM_NAME = "安全生产方针调查";
analysis.NUM = 5;
analysis.ORG_ID = filter.OrgId;
analysis.TOTAL_QTY = count;
analysis.FINISH_QTY = finish;
analysis.OVER_FINISH_QTY = overfinish;
analysis.UNFINISH_QTY = unfinish;
analysis.FINISH_RATE = finishRate;
analysis.NORMAL_FINISH_RATE = normalFinishRate;
formAnalysis.Add(analysis);
}
#endregion
#region 公司安全生产目标与指标制定
if (riskTask.Any())
{
foreach (var item in riskTask)
{
var task = tasks.FirstOrDefault(t => t.SOURCE_DATA_ID == item.ID);
if (task == null)
item.IS_OVERTIME = 0;
else
item.IS_OVERTIME = 1;
}
if (!string.IsNullOrEmpty(filter.Keyword))
{
riskTask = riskTask.Where(t => outPartmentIds.Contains((Guid)t.DEPARTMENT_ID)).ToList();
}
var count = riskTask.Count();
var finish = riskTask.Count(t => t.IS_OVERTIME == 0 && t.STATUS == PFStandardStatus.Archived);
var overfinish = riskTask.Count(t => t.IS_OVERTIME == 1 && t.STATUS == PFStandardStatus.Archived);
var unfinish = count - finish - overfinish;
var temp = count == 0 ? 0 : (double)(finish + overfinish) / count * 100;
var finishRate = temp.ToString("0") + "%";
var temp2 = count == 0 ? 0 : (double)finish / count * 100;
var normalFinishRate = temp2.ToString("0") + "%";
T_BI_FORM_RUN_ANALYSIS analysis = new T_BI_FORM_RUN_ANALYSIS();
analysis.MOUDLE_NAME = "方针与目标";
analysis.FORM_NAME = "公司安全生产目标与指标制定";
analysis.NUM = 6;
analysis.ORG_ID = filter.OrgId;
analysis.TOTAL_QTY = count;
analysis.FINISH_QTY = finish;
analysis.OVER_FINISH_QTY = overfinish;
analysis.UNFINISH_QTY = unfinish;
analysis.FINISH_RATE = finishRate;
analysis.NORMAL_FINISH_RATE = normalFinishRate;
formAnalysis.Add(analysis);
}
#endregion
#region 部门车间班组安全生产目标与指标制定
if (riskRecord.Any())
{
foreach (var item in riskRecord)
{
var task = tasks.FirstOrDefault(t => t.SOURCE_DATA_ID == item.ID);
if (task == null)
item.IS_OVERTIME = 0;
else
item.IS_OVERTIME = 1;
}
if (!string.IsNullOrEmpty(filter.Keyword))
{
riskRecord = riskRecord.Where(t => outPartmentIds.Contains((Guid)t.DEPARTMENT_ID)).ToList();
}
var count = riskRecord.Count();
var finish = riskRecord.Count(t => t.IS_OVERTIME == 0 && t.STATUS == PFStandardStatus.Archived);
var overfinish = riskRecord.Count(t => t.IS_OVERTIME == 1 && t.STATUS == PFStandardStatus.Archived);
var unfinish = count - finish - overfinish;
var temp = count == 0 ? 0 : (double)(finish + overfinish) / count * 100;
var finishRate = temp.ToString("0") + "%";
var temp2 = count == 0 ? 0 : (double)finish / count * 100;
var normalFinishRate = temp2.ToString("0") + "%";
T_BI_FORM_RUN_ANALYSIS analysis = new T_BI_FORM_RUN_ANALYSIS();
analysis.MOUDLE_NAME = "方针与目标";
analysis.FORM_NAME = "部门车间班组安全生产目标与指标制定";
analysis.NUM = 7;
analysis.ORG_ID = filter.OrgId;
analysis.TOTAL_QTY = count;
analysis.FINISH_QTY = finish;
analysis.OVER_FINISH_QTY = overfinish;
analysis.UNFINISH_QTY = unfinish;
analysis.FINISH_RATE = finishRate;
analysis.NORMAL_FINISH_RATE = normalFinishRate;
formAnalysis.Add(analysis);
}
#endregion
#region 考核方案审核
if (hazardTask.Any())
{
foreach (var item in hazardTask)
{
var task = tasks.FirstOrDefault(t => t.SOURCE_DATA_ID == item.ID);
if (task == null)
item.IS_OVERTIME = 0;
else
item.IS_OVERTIME = 1;
//var department = GetDepartmentId(item.INITIATING_DEPARTMENT.Value);
//item.INITIATING_DEPARTMENT = department == null ? null : department.ID;
//var department = parentDepartments.FirstOrDefault(t => t.departmentId == item.INITIATING_DEPARTMENT);
//item.INITIATING_DEPARTMENT = department == null ? null : department.parent_departmentId;
}
if (!string.IsNullOrEmpty(filter.Keyword))
{
hazardTask = hazardTask.Where(t => outPartmentIds.Contains((Guid)t.DEPARTMENT_ID)).ToList();
}
var count = hazardTask.Count();
var finish = hazardTask.Count(t => t.IS_OVERTIME == 0 && t.STATUS == PFStandardStatus.Archived);
var overfinish = hazardTask.Count(t => t.IS_OVERTIME == 1 && t.STATUS == PFStandardStatus.Archived);
var unfinish = count - finish - overfinish;
var temp = count == 0 ? 0 : (double)(finish + overfinish) / count * 100;
var finishRate = temp.ToString("0") + "%";
var temp2 = count == 0 ? 0 : (double)finish / count * 100;
var normalFinishRate = temp2.ToString("0") + "%";
T_BI_FORM_RUN_ANALYSIS analysis = new T_BI_FORM_RUN_ANALYSIS();
analysis.MOUDLE_NAME = "方针与目标";
analysis.FORM_NAME = "考核方案审核";
analysis.NUM = 8;
analysis.ORG_ID = filter.OrgId;
analysis.TOTAL_QTY = count;
analysis.FINISH_QTY = finish;
analysis.OVER_FINISH_QTY = overfinish;
analysis.UNFINISH_QTY = unfinish;
analysis.FINISH_RATE = finishRate;
analysis.NORMAL_FINISH_RATE = normalFinishRate;
formAnalysis.Add(analysis);
}
#endregion
#region 监测与考核记录
if (hazardRecord.Any())
{
foreach (var item in hazardRecord)
{
var task = tasks.FirstOrDefault(t => t.SOURCE_DATA_ID == item.ID);
if (task == null)
item.IS_OVERTIME = 0;
else
item.IS_OVERTIME = 1;
//var department = GetDepartmentId(item.INITIATING_DEPARTMENT.Value);
//item.INITIATING_DEPARTMENT = department == null ? null : department.ID;
//var department = parentDepartments.FirstOrDefault(t => t.departmentId == item.INITIATING_DEPARTMENT);
//item.INITIATING_DEPARTMENT = department == null ? null : department.parent_departmentId;
}
if (!string.IsNullOrEmpty(filter.Keyword))
{
hazardRecord = hazardRecord.Where(t => outPartmentIds.Contains((Guid)t.DEPARTMENT_ID)).ToList();
}
var count = hazardRecord.Count();
var finish = hazardRecord.Count(t => t.IS_OVERTIME == 0 && t.STATUS == PFStandardStatus.Archived);
var overfinish = hazardRecord.Count(t => t.IS_OVERTIME == 1 && t.STATUS == PFStandardStatus.Archived);
var unfinish = count - finish - overfinish;
var temp = count == 0 ? 0 : (double)(finish + overfinish) / count * 100;
var finishRate = temp.ToString("0") + "%";
var temp2 = count == 0 ? 0 : (double)finish / count * 100;
var normalFinishRate = temp2.ToString("0") + "%";
T_BI_FORM_RUN_ANALYSIS analysis = new T_BI_FORM_RUN_ANALYSIS();
analysis.MOUDLE_NAME = "方针与目标";
analysis.FORM_NAME = "监测与考核记录";
analysis.NUM = 9;
analysis.ORG_ID = filter.OrgId;
analysis.TOTAL_QTY = count;
analysis.FINISH_QTY = finish;
analysis.OVER_FINISH_QTY = overfinish;
analysis.UNFINISH_QTY = unfinish;
analysis.FINISH_RATE = finishRate;
analysis.NORMAL_FINISH_RATE = normalFinishRate;
formAnalysis.Add(analysis);
}
#endregion
#region 普通会议通知
if (orderMeeting.Any())
{
foreach (var item in orderMeeting)
{
var task = tasks.FirstOrDefault(t => t.SOURCE_DATA_ID == item.ID);
if (task == null)
item.IS_OVERTIME = 0;
else
item.IS_OVERTIME = 1;
}
if (!string.IsNullOrEmpty(filter.Keyword))
{
orderMeeting = orderMeeting.Where(t => outPartmentIds.Contains((Guid)t.DEPARTMENT_ID)).ToList();
}
var count = orderMeeting.Count();
var finish = orderMeeting.Count(t => t.IS_OVERTIME == 0 && t.STATUS == PFStandardStatus.Archived);
var overfinish = orderMeeting.Count(t => t.IS_OVERTIME == 1 && t.STATUS == PFStandardStatus.Archived);
var unfinish = count - finish - overfinish;
var temp = count == 0 ? 0 : (double)(finish + overfinish) / count * 100;
var finishRate = temp.ToString("0") + "%";
var temp2 = count == 0 ? 0 : (double)finish / count * 100;
var normalFinishRate = temp2.ToString("0") + "%";
T_BI_FORM_RUN_ANALYSIS analysis = new T_BI_FORM_RUN_ANALYSIS();
analysis.MOUDLE_NAME = "会议管理";
analysis.FORM_NAME = "普通会议通知";
analysis.NUM = 10;
analysis.ORG_ID = filter.OrgId;
analysis.TOTAL_QTY = count;
analysis.FINISH_QTY = finish;
analysis.OVER_FINISH_QTY = overfinish;
analysis.UNFINISH_QTY = unfinish;
analysis.FINISH_RATE = finishRate;
analysis.NORMAL_FINISH_RATE = normalFinishRate;
formAnalysis.Add(analysis);
}
#endregion
#region 安委会通知
if (safeMeeting.Any())
{
foreach (var item in safeMeeting)
{
var task = tasks.FirstOrDefault(t => t.SOURCE_DATA_ID == item.ID);
if (task == null)
item.IS_OVERTIME = 0;
else
item.IS_OVERTIME = 1;
}
if (!string.IsNullOrEmpty(filter.Keyword))
{
safeMeeting = safeMeeting.Where(t => outPartmentIds.Contains((Guid)t.DEPARTMENT_ID)).ToList();
}
var count = safeMeeting.Count();
var finish = safeMeeting.Count(t => t.IS_OVERTIME == 0 && t.STATUS == PFStandardStatus.Archived);
var overfinish = safeMeeting.Count(t => t.IS_OVERTIME == 1 && t.STATUS == PFStandardStatus.Archived);
var unfinish = count - finish - overfinish;
var temp = count == 0 ? 0 : (double)(finish + overfinish) / count * 100;
var finishRate = temp.ToString("0") + "%";
var temp2 = count == 0 ? 0 : (double)finish / count * 100;
var normalFinishRate = temp2.ToString("0") + "%";
T_BI_FORM_RUN_ANALYSIS analysis = new T_BI_FORM_RUN_ANALYSIS();
analysis.MOUDLE_NAME = "会议管理";
analysis.FORM_NAME = "安委会通知";
analysis.NUM = 11;
analysis.ORG_ID = filter.OrgId;
analysis.TOTAL_QTY = count;
analysis.FINISH_QTY = finish;
analysis.OVER_FINISH_QTY = overfinish;
analysis.UNFINISH_QTY = unfinish;
analysis.FINISH_RATE = finishRate;
analysis.NORMAL_FINISH_RATE = normalFinishRate;
formAnalysis.Add(analysis);
}
#endregion
#region 普通会议纪要
if (orderMinute.Any())
{
foreach (var item in orderMinute)
{
var task = tasks.FirstOrDefault(t => t.SOURCE_DATA_ID == item.ID);
if (task == null)
item.IS_OVERTIME = 0;
else
item.IS_OVERTIME = 1;
}
if (!string.IsNullOrEmpty(filter.Keyword))
{
orderMinute = orderMinute.Where(t => outPartmentIds.Contains((Guid)t.Nav_Meeting.DEPARTMENT_ID)).ToList();
}
var count = orderMinute.Count();
var finish = orderMinute.Count(t => t.IS_OVERTIME == 0 && t.STATUS == PFStandardStatus.Archived);
var overfinish = orderMinute.Count(t => t.IS_OVERTIME == 1 && t.STATUS == PFStandardStatus.Archived);
var unfinish = count - finish - overfinish;
var temp = count == 0 ? 0 : (double)(finish + overfinish) / count * 100;
var finishRate = temp.ToString("0") + "%";
var temp2 = count == 0 ? 0 : (double)finish / count * 100;
var normalFinishRate = temp2.ToString("0") + "%";
T_BI_FORM_RUN_ANALYSIS analysis = new T_BI_FORM_RUN_ANALYSIS();
analysis.MOUDLE_NAME = "会议管理";
analysis.FORM_NAME = "普通会议纪要";
analysis.NUM = 12;
analysis.ORG_ID = filter.OrgId;
analysis.TOTAL_QTY = count;
analysis.FINISH_QTY = finish;
analysis.OVER_FINISH_QTY = overfinish;
analysis.UNFINISH_QTY = unfinish;
analysis.FINISH_RATE = finishRate;
analysis.NORMAL_FINISH_RATE = normalFinishRate;
formAnalysis.Add(analysis);
}
#endregion
#region 安委会纪要
if (safeMinute.Any())
{
foreach (var item in safeMinute)
{
var task = tasks.FirstOrDefault(t => t.SOURCE_DATA_ID == item.ID);
if (task == null)
item.IS_OVERTIME = 0;
else
item.IS_OVERTIME = 1;
}
if (!string.IsNullOrEmpty(filter.Keyword))
{
safeMinute = safeMinute.Where(t => outPartmentIds.Contains((Guid)t.Nav_Meeting.DEPARTMENT_ID)).ToList();
}
var count = safeMinute.Count();
var finish = safeMinute.Count(t => t.IS_OVERTIME == 0 && t.STATUS == PFStandardStatus.Archived);
var overfinish = safeMinute.Count(t => t.IS_OVERTIME == 1 && t.STATUS == PFStandardStatus.Archived);
var unfinish = count - finish - overfinish;
var temp = count == 0 ? 0 : (double)(finish + overfinish) / count * 100;
var finishRate = temp.ToString("0") + "%";
var temp2 = count == 0 ? 0 : (double)finish / count * 100;
var normalFinishRate = temp2.ToString("0") + "%";
T_BI_FORM_RUN_ANALYSIS analysis = new T_BI_FORM_RUN_ANALYSIS();
analysis.MOUDLE_NAME = "会议管理";
analysis.FORM_NAME = "安委会纪要";
analysis.NUM = 13;
analysis.ORG_ID = filter.OrgId;
analysis.TOTAL_QTY = count;
analysis.FINISH_QTY = finish;
analysis.OVER_FINISH_QTY = overfinish;
analysis.UNFINISH_QTY = unfinish;
analysis.FINISH_RATE = finishRate;
analysis.NORMAL_FINISH_RATE = normalFinishRate;
formAnalysis.Add(analysis);
}
#endregion
#region 安全意识调查
if (taskIdentify.Any())
{
foreach (var item in taskIdentify)
{
var task = tasks.FirstOrDefault(t => t.SOURCE_DATA_ID == item.ID);
if (task == null)
item.IS_OVERTIME = 0;
else
item.IS_OVERTIME = 1;
}
if (!string.IsNullOrEmpty(filter.Keyword))
{
taskIdentify = taskIdentify.Where(t => outPartmentIds.Contains((Guid)t.LAUNCH_DEPARTMENT_ID)).ToList();
}
var count = taskIdentify.Count();
var finish = taskIdentify.Count(t => t.IS_OVERTIME == 0 && t.STATUS == SESafeSurveyStatus.完成);
var overfinish = taskIdentify.Count(t => t.IS_OVERTIME == 1 && t.STATUS == SESafeSurveyStatus.完成);
var unfinish = count - finish - overfinish;
var temp = count == 0 ? 0 : (double)(finish + overfinish) / count * 100;
var finishRate = temp.ToString("0") + "%";
var temp2 = count == 0 ? 0 : (double)finish / count * 100;
var normalFinishRate = temp2.ToString("0") + "%";
T_BI_FORM_RUN_ANALYSIS analysis = new T_BI_FORM_RUN_ANALYSIS();
analysis.MOUDLE_NAME = "安全教育培训";
analysis.FORM_NAME = "安全意识调查";
analysis.NUM = 14;
analysis.ORG_ID = filter.OrgId;
analysis.TOTAL_QTY = count;
analysis.FINISH_QTY = finish;
analysis.OVER_FINISH_QTY = overfinish;
analysis.UNFINISH_QTY = unfinish;
analysis.FINISH_RATE = finishRate;
analysis.NORMAL_FINISH_RATE = normalFinishRate;
formAnalysis.Add(analysis);
}
#endregion
#region 培训需求调查
if (taskAnalysis.Any())
{
foreach (var item in taskAnalysis)
{
var task = tasks.FirstOrDefault(t => t.SOURCE_DATA_ID == item.ID);
if (task == null)
item.IS_OVERTIME = 0;
else
item.IS_OVERTIME = 1;
}
if (!string.IsNullOrEmpty(filter.Keyword))
{
taskAnalysis = taskAnalysis.Where(t => outPartmentIds.Contains((Guid)t.LAUNCH_DEPARTMENT_ID)).ToList();
}
var count = taskAnalysis.Count();
var finish = taskAnalysis.Count(t => t.IS_OVERTIME == 0 && t.STATUS == MS.Domain.Enums.SETrainSurveyStatus.完成);
var overfinish = taskAnalysis.Count(t => t.IS_OVERTIME == 1 && t.STATUS == MS.Domain.Enums.SETrainSurveyStatus.完成);
var unfinish = count - finish - overfinish;
var temp = count == 0 ? 0 : (double)(finish + overfinish) / count * 100;
var finishRate = temp.ToString("0") + "%";
var temp2 = count == 0 ? 0 : (double)finish / count * 100;
var normalFinishRate = temp2.ToString("0") + "%";
T_BI_FORM_RUN_ANALYSIS analysis = new T_BI_FORM_RUN_ANALYSIS();
analysis.MOUDLE_NAME = "安全教育培训";
analysis.FORM_NAME = "培训需求调查";
analysis.NUM = 15;
analysis.ORG_ID = filter.OrgId;
analysis.TOTAL_QTY = count;
analysis.FINISH_QTY = finish;
analysis.OVER_FINISH_QTY = overfinish;
analysis.UNFINISH_QTY = unfinish;
analysis.FINISH_RATE = finishRate;
analysis.NORMAL_FINISH_RATE = normalFinishRate;
formAnalysis.Add(analysis);
}
#endregion
#region 部门培训计划
if (taskOrdinary.Any())
{
foreach (var item in taskOrdinary)
{
var task = tasks.FirstOrDefault(t => t.SOURCE_DATA_ID == item.ID);
if (task == null)
item.IS_OVERTIME = 0;
else
item.IS_OVERTIME = 1;
}
if (!string.IsNullOrEmpty(filter.Keyword))
{
taskOrdinary = taskOrdinary.Where(t => outPartmentIds.Contains((Guid)t.LAUNCH_DEPARTMENT_ID)).ToList();
}
var count = taskOrdinary.Count();
var finish = taskOrdinary.Count(t => t.IS_OVERTIME == 0 && t.STATUS == PFStandardStatus.Archived);
var overfinish = taskOrdinary.Count(t => t.IS_OVERTIME == 1 && t.STATUS == PFStandardStatus.Archived);
var unfinish = count - finish - overfinish;
var temp = count == 0 ? 0 : (double)(finish + overfinish) / count * 100;
var finishRate = temp.ToString("0") + "%";
var temp2 = count == 0 ? 0 : (double)finish / count * 100;
var normalFinishRate = temp2.ToString("0") + "%";
T_BI_FORM_RUN_ANALYSIS analysis = new T_BI_FORM_RUN_ANALYSIS();
analysis.MOUDLE_NAME = "安全教育培训";
analysis.FORM_NAME = "部门培训计划";
analysis.NUM = 16;
analysis.ORG_ID = filter.OrgId;
analysis.TOTAL_QTY = count;
analysis.FINISH_QTY = finish;
analysis.OVER_FINISH_QTY = overfinish;
analysis.UNFINISH_QTY = unfinish;
analysis.FINISH_RATE = finishRate;
analysis.NORMAL_FINISH_RATE = normalFinishRate;
formAnalysis.Add(analysis);
}
#endregion
#region 年度培训计划
if (taskCrucial.Any())
{
foreach (var item in taskCrucial)
{
var task = tasks.FirstOrDefault(t => t.SOURCE_DATA_ID == item.ID);
if (task == null)
item.IS_OVERTIME = 0;
else
item.IS_OVERTIME = 1;
}
if (!string.IsNullOrEmpty(filter.Keyword))
{
taskCrucial = taskCrucial.Where(t => outPartmentIds.Contains((Guid)t.LAUNCH_DEPARTMENT_ID)).ToList();
}
var count = taskCrucial.Count();
var finish = taskCrucial.Count(t => t.IS_OVERTIME == 0 && t.STATUS == PFStandardStatus.Archived);
var overfinish = taskCrucial.Count(t => t.IS_OVERTIME == 1 && t.STATUS == PFStandardStatus.Archived);
var unfinish = count - finish - overfinish;
var temp = count == 0 ? 0 : (double)(finish + overfinish) / count * 100;
var finishRate = temp.ToString("0") + "%";
var temp2 = count == 0 ? 0 : (double)finish / count * 100;
var normalFinishRate = temp2.ToString("0") + "%";
T_BI_FORM_RUN_ANALYSIS analysis = new T_BI_FORM_RUN_ANALYSIS();
analysis.MOUDLE_NAME = "安全教育培训";
analysis.FORM_NAME = "年度培训计划";
analysis.NUM = 17;
analysis.ORG_ID = filter.OrgId;
analysis.TOTAL_QTY = count;
analysis.FINISH_QTY = finish;
analysis.OVER_FINISH_QTY = overfinish;
analysis.UNFINISH_QTY = unfinish;
analysis.FINISH_RATE = finishRate;
analysis.NORMAL_FINISH_RATE = normalFinishRate;
formAnalysis.Add(analysis);
}
#endregion
#region 培训通知
if (taskLicense.Any())
{
foreach (var item in taskLicense)
{
var task = tasks.FirstOrDefault(t => t.SOURCE_DATA_ID == item.ID);
if (task == null)
item.IS_OVERTIME = 0;
else
item.IS_OVERTIME = 1;
}
if (!string.IsNullOrEmpty(filter.Keyword))
{
taskLicense = taskLicense.Where(t => outPartmentIds.Contains((Guid)t.LAUNCH_DEPARTMENT_ID)).ToList();
}
var count = taskLicense.Count();
var finish = taskLicense.Count(t => t.IS_OVERTIME == 0 && t.STATUS == SETrainNotifyStatus.归档);
var overfinish = taskLicense.Count(t => t.IS_OVERTIME == 1 && t.STATUS == SETrainNotifyStatus.归档);
var unfinish = count - finish - overfinish;
var temp = count == 0 ? 0 : (double)(finish + overfinish) / count * 100;
var finishRate = temp.ToString("0") + "%";
var temp2 = count == 0 ? 0 : (double)finish / count * 100;
var normalFinishRate = temp2.ToString("0") + "%";
T_BI_FORM_RUN_ANALYSIS analysis = new T_BI_FORM_RUN_ANALYSIS();
analysis.MOUDLE_NAME = "安全教育培训";
analysis.FORM_NAME = "培训通知";
analysis.NUM = 18;
analysis.ORG_ID = filter.OrgId;
analysis.TOTAL_QTY = count;
analysis.FINISH_QTY = finish;
analysis.OVER_FINISH_QTY = overfinish;
analysis.UNFINISH_QTY = unfinish;
analysis.FINISH_RATE = finishRate;
analysis.NORMAL_FINISH_RATE = normalFinishRate;
formAnalysis.Add(analysis);
}
#endregion
#region 培训记录
if (filePublish.Any())
{
foreach (var item in filePublish)
{
var task = tasks.FirstOrDefault(t => t.SOURCE_DATA_ID == item.ID);
if (task == null)
item.IS_OVERTIME = 0;
else
item.IS_OVERTIME = 1;
}
if (!string.IsNullOrEmpty(filter.Keyword))
{
filePublish = filePublish.Where(t => outPartmentIds.Contains((Guid)t.Nav_Notify.LAUNCH_DEPARTMENT_ID)).ToList();
}
var count = filePublish.Count();
var finish = filePublish.Count(t => t.IS_OVERTIME == 0 && t.STATUS == SETrainRecordStatus.归档);
var overfinish = filePublish.Count(t => t.IS_OVERTIME == 1 && t.STATUS == SETrainRecordStatus.归档);
var unfinish = count - finish - overfinish;
var temp = count == 0 ? 0 : (double)(finish + overfinish) / count * 100;
var finishRate = temp.ToString("0") + "%";
var temp2 = count == 0 ? 0 : (double)finish / count * 100;
var normalFinishRate = temp2.ToString("0") + "%";
T_BI_FORM_RUN_ANALYSIS analysis = new T_BI_FORM_RUN_ANALYSIS();
analysis.MOUDLE_NAME = "安全教育培训";
analysis.FORM_NAME = "培训记录";
analysis.NUM = 19;
analysis.ORG_ID = filter.OrgId;
analysis.TOTAL_QTY = count;
analysis.FINISH_QTY = finish;
analysis.OVER_FINISH_QTY = overfinish;
analysis.UNFINISH_QTY = unfinish;
analysis.FINISH_RATE = finishRate;
analysis.NORMAL_FINISH_RATE = normalFinishRate;
formAnalysis.Add(analysis);
}
#endregion
#region 三级安全教育卡
if (checkTask.Any())
{
foreach (var item in checkTask)
{
var task = tasks.FirstOrDefault(t => t.SOURCE_DATA_ID == item.ID);
if (task == null)
item.IS_OVERTIME = 0;
else
item.IS_OVERTIME = 1;
}
if (!string.IsNullOrEmpty(filter.Keyword))
{
checkTask = checkTask.Where(t => outPartmentIds.Contains((Guid)t.LAUNCH_DEPARTMENT_ID)).ToList();
}
var count = checkTask.Count();
var finish = checkTask.Count(t => t.IS_OVERTIME == 0 && t.STATUS == SEThreeLevelSafeTrainStatus.归档);
var overfinish = checkTask.Count(t => t.IS_OVERTIME == 1 && t.STATUS == SEThreeLevelSafeTrainStatus.归档);
var unfinish = count - finish - overfinish;
var temp = count == 0 ? 0 : (double)(finish + overfinish) / count * 100;
var finishRate = temp.ToString("0") + "%";
var temp2 = count == 0 ? 0 : (double)finish / count * 100;
var normalFinishRate = temp2.ToString("0") + "%";
T_BI_FORM_RUN_ANALYSIS analysis = new T_BI_FORM_RUN_ANALYSIS();
analysis.MOUDLE_NAME = "安全教育培训";
analysis.FORM_NAME = "三级安全教育卡";
analysis.NUM = 20;
analysis.ORG_ID = filter.OrgId;
analysis.TOTAL_QTY = count;
analysis.FINISH_QTY = finish;
analysis.OVER_FINISH_QTY = overfinish;
analysis.UNFINISH_QTY = unfinish;
analysis.FINISH_RATE = finishRate;
analysis.NORMAL_FINISH_RATE = normalFinishRate;
formAnalysis.Add(analysis);
}
#endregion
#region 培训效果评估表
if (riskDeal.Any())
{
foreach (var item in riskDeal)
{
var task = tasks.FirstOrDefault(t => t.SOURCE_DATA_ID == item.ID);
if (task == null)
item.IS_OVERTIME = 0;
else
item.IS_OVERTIME = 1;
}
if (!string.IsNullOrEmpty(filter.Keyword))
{
riskDeal = riskDeal.Where(t => outPartmentIds.Contains((Guid)t.Nav_User.DEPARTMENT_ID)).ToList();
}
var count = riskDeal.Count();
var finish = riskDeal.Count(t => t.IS_OVERTIME == 0 && t.STATUS == SETrainningEffectSurveyStatus.归档);
var overfinish = riskDeal.Count(t => t.IS_OVERTIME == 1 && t.STATUS == SETrainningEffectSurveyStatus.归档);
var unfinish = count - finish - overfinish;
var temp = count == 0 ? 0 : (double)(finish + overfinish) / count * 100;
var finishRate = temp.ToString("0") + "%";
var temp2 = count == 0 ? 0 : (double)finish / count * 100;
var normalFinishRate = temp2.ToString("0") + "%";
T_BI_FORM_RUN_ANALYSIS analysis = new T_BI_FORM_RUN_ANALYSIS();
analysis.MOUDLE_NAME = "安全教育培训";
analysis.FORM_NAME = "培训效果评估表";
analysis.NUM = 21;
analysis.ORG_ID = filter.OrgId;
analysis.TOTAL_QTY = count;
analysis.FINISH_QTY = finish;
analysis.OVER_FINISH_QTY = overfinish;
analysis.UNFINISH_QTY = unfinish;
analysis.FINISH_RATE = finishRate;
analysis.NORMAL_FINISH_RATE = normalFinishRate;
formAnalysis.Add(analysis);
}
#endregion
//#region 班组安全活动
//if (teamActive.Any())
//{
// foreach (var item in teamActive)
// {
// var task = tasks.FirstOrDefault(t => t.SOURCE_DATA_ID == item.ID);
// if (task == null)
// item.IS_OVERTIME = 0;
// else
// item.IS_OVERTIME = 1;
// //var department = GetDepartmentId(item.Nav_CreateUser.DEPARTMENT_ID.Value);
// //item.DEPARTMENT_ID = department == null ? null : department.ID;
// //var department = parentDepartments.FirstOrDefault(t => t.departmentId == item.Nav_CreateUser.DEPARTMENT_ID);
// //item.DEPARTMENT_ID = department == null ? null : department.parent_departmentId;
// }
// if (!string.IsNullOrEmpty(filter.Keyword))
// {
// teamActive = teamActive.Where(t => outPartmentIds.Contains((Guid)t.Nav_User.DEPARTMENT_ID)).ToList();
// }
// var count = teamActive.Count();
// var finish = teamActive.Count(t => t.IS_OVERTIME == 0 && t.TA_STATUS == (int)FOTeamActivityState.已归档);
// var overfinish = teamActive.Count(t => t.IS_OVERTIME == 1 && t.TA_STATUS == (int)FOTeamActivityState.已归档);
// var unfinish = count - finish - overfinish;
// var temp = count == 0 ? 0 : (double)(finish + overfinish) / count * 100;
// var finishRate = temp.ToString("0") + "%";
// var temp2 = count == 0 ? 0 : (double)finish / count * 100;
// var normalFinishRate = temp2.ToString("0") + "%";
// T_BI_FORM_RUN_ANALYSIS analysis = new T_BI_FORM_RUN_ANALYSIS();
// analysis.MOUDLE_NAME = "作业现场管理";
// analysis.FORM_NAME = "班组安全活动";
// analysis.NUM = 32;
// analysis.ORG_ID = filter.OrgId;
// analysis.TOTAL_QTY = count;
// analysis.FINISH_QTY = finish;
// analysis.OVER_FINISH_QTY = overfinish;
// analysis.UNFINISH_QTY = unfinish;
// analysis.FINISH_RATE = finishRate;
// analysis.NORMAL_FINISH_RATE = normalFinishRate;
// formAnalysis.Add(analysis);
//}
//#endregion
//#region 班前会议记录
//if (shiftMeeting.Any())
//{
// foreach (var item in shiftMeeting)
// {
// var task = tasks.FirstOrDefault(t => t.SOURCE_DATA_ID == item.ID);
// if (task == null)
// item.IS_OVERTIME = 0;
// else
// item.IS_OVERTIME = 1;
// //var department = GetDepartmentId(item.Nav_CreateUser.DEPARTMENT_ID.Value);
// //item.DEPARTMENT_ID = department == null ? null : department.ID;
// //var department = parentDepartments.FirstOrDefault(t => t.departmentId == item.Nav_CreateUser.DEPARTMENT_ID);
// //item.DEPARTMENT_ID = department == null ? null : department.parent_departmentId;
// }
// if (!string.IsNullOrEmpty(filter.Keyword))
// {
// shiftMeeting = shiftMeeting.Where(t => outPartmentIds.Contains((Guid)t.Nav_Team?.DEPARTMENT_ID)).ToList();
// if (!shiftMeeting.Any())
// {
// shiftMeeting = shiftMeeting.Where(t => outPartmentIds.Contains((Guid)t.DEPARTMENT_ID)).ToList();
// }
// }
// var count = shiftMeeting.Count();
// var finish = shiftMeeting.Count(t => t.IS_OVERTIME == 0 && t.PRE_MEETING_STATUS == FOPreMeetingStatusEnum.归档);
// var overfinish = shiftMeeting.Count(t => t.IS_OVERTIME == 1 && t.PRE_MEETING_STATUS == FOPreMeetingStatusEnum.归档);
// var unfinish = count - finish - overfinish;
// var temp = count == 0 ? 0 : (double)(finish + overfinish) / count * 100;
// var finishRate = temp.ToString("0") + "%";
// var temp2 = count == 0 ? 0 : (double)finish / count * 100;
// var normalFinishRate = temp2.ToString("0") + "%";
// T_BI_FORM_RUN_ANALYSIS analysis = new T_BI_FORM_RUN_ANALYSIS();
// analysis.MOUDLE_NAME = "作业现场管理";
// analysis.FORM_NAME = "班前会议记录";
// analysis.NUM = 33;
// analysis.ORG_ID = filter.OrgId;
// analysis.TOTAL_QTY = count;
// analysis.FINISH_QTY = finish;
// analysis.OVER_FINISH_QTY = overfinish;
// analysis.UNFINISH_QTY = unfinish;
// analysis.FINISH_RATE = finishRate;
// analysis.NORMAL_FINISH_RATE = normalFinishRate;
// formAnalysis.Add(analysis);
//}
//#endregion
return formAnalysis;
});
}
///
/// 待办汇总查询
///
///
///
[HttpPost, Route("GetFormTask")]
public JsonActionResult GetFormTask([FromBody] KeywordPageFilter pageFilter)
{
return SafeExecute(() =>
{
//首页待办增加数量统计字段
dynamic ret = new System.Dynamic.ExpandoObject();
//var userId = APT.Infrastructure.Api.AppContext.CurrentSession.UserID;
if (string.IsNullOrEmpty(pageFilter.Parameter1) || string.IsNullOrEmpty(pageFilter.Parameter2))
{
throw new Exception("请先选择时间段");
}
if (string.IsNullOrEmpty(pageFilter.Keyword))
{
throw new Exception("请先选择部门");
}
var newFilter = new BaseFilter(pageFilter.OrgId);
newFilter.SelectField = new List { "ID","CODE", "NAME" };
var formInfo = this.GetEntities(t => t.ENABLE_STATUS == 0, newFilter);
DateTime startTime = Convert.ToDateTime(pageFilter.Parameter1 + " 00:00:00");
DateTime endTime = Convert.ToDateTime(pageFilter.Parameter2 + " 23:59:59");
TimeSpan span = endTime.Subtract(startTime);
int dayDidd = span.Days + 1;
if (dayDidd >= 180)
throw new Exception("查询时间不能超过6个月!");
var result = GetEntities(s => !s.IS_DELETED && s.CREATE_DATE >= startTime && s.CREATE_DATE <= endTime && s.DEPT_DEPARTMENT_ID == Guid.Parse(pageFilter.Keyword), pageFilter);
var userIds = result.Select(t => t.USER_ID).Distinct().ToList();
var userInfos= GetEntities(s => userIds.Contains(s.ID) && s.ENABLE_STATUS == 0, newFilter);
//pageFilter.Sort = "CREATE_TIME";
//pageFilter.Order = DbOrder.DESC;
if (result.Any())
{
var newData = result.ToList();
ret.formData = formInfo.ToList();
ret.userData = userInfos.ToList();
ret.newData = newData;
ret.TotalCount = newData.Count();
ret.doneCount = newData.Where(t => t.NOTICE_STATUS == 1).Count();
ret.timeOverCount = newData.Where(t => t.NOTICE_STATUS == 2).Count();
var groupDataTemp = newData.GroupBy(t =>t.MOUDLE_NAME).Select(m => new GroupbyMouldName
{
mouldName = m.Key,
totalCount = m.Count(p => p.MOUDLE_NAME == m.Key),
doneCount = m.Count(p => p.MOUDLE_NAME == m.Key && p.NOTICE_STATUS == 1),
timeOverCount = m.Count(p => p.MOUDLE_NAME == m.Key && p.NOTICE_STATUS == 2),
}).ToList();
ret.groupData = groupDataTemp;
}
return ret;
});
}
///
/// 回调失败log执行
///
///
///
[HttpPost, Route("ExecuteLog")]
public JsonActionResult ExecuteLog([FromBody] KeywordPageFilter pageFilter)
{
return SafeExecute(() =>
{
var logs = this.GetEntities(t => t.LOG_TYPE == 80, new BaseFilter(pageFilter.OrgId));
if (logs.Any())
{
foreach (var item in logs)
{
var temp = item.LOG_DATA.Split(":");
if (temp.Length > 1)
{
var apiTemp = temp[1];
var api = apiTemp.Split("DATA_ID");
if (api.Length > 1)
{
var idTemp = api[1];
int arr = idTemp.IndexOf(")") - 1 - idTemp.IndexOf("(");
var id = idTemp.Substring(idTemp.IndexOf("(") + 1, arr);
var backApi = api[0].Substring(0, api[0].IndexOf("ID"));
var result = ApproveCallBackService.CallBack(backApi, id);
if (result)
{
item.LOG_TYPE = (int)PFSysLogTypeEnum.FaildApproveCallBackOK;
item.LOG_DATA = item.LOG_DATA.Replace("未执行回调", "已执行回调");
UpdateEntity(item);
}
else
{
item.LOG_TYPE = (int)PFSysLogTypeEnum.FaildApproveCallBackNG;
item.LOG_DATA = item.LOG_DATA.Replace("未执行回调", "未执行回调且跑批失败");
UpdateEntity(item);
}
}
}
}
}
return true;
});
}
[HttpPost, Route("GetFormRunAnalyze")]
public JsonActionResult> GetFormRunAnalyze([FromBody] KeywordFilter filter)
{
return SafeExecute>(() =>
{
//首页待办增加数量统计字段
//var userId = APT.Infrastructure.Api.AppContext.CurrentSession.UserID;
if (string.IsNullOrEmpty(filter.Parameter1))
{
throw new Exception("请先选择开始时间");
}
if (string.IsNullOrEmpty(filter.Parameter2))
{
throw new Exception("请先选择结束时间");
}
List outPartmentIds = new List();
if (!string.IsNullOrEmpty(filter.Keyword))
{
List inputIds = new List() { Guid.Parse(filter.Keyword) };
GetDepartmentIds(APT.Infrastructure.Api.AppContext.CurrentSession.OrgId.Value, inputIds, ref outPartmentIds);
outPartmentIds.Add(Guid.Parse(filter.Keyword));
}
List formAnalysis = new List();
List parentDepartments = new List();
DateTime startTime = Convert.ToDateTime(filter.Parameter1);
DateTime endTime = Convert.ToDateTime(filter.Parameter2);
TimeSpan span = endTime.Subtract(startTime);
int dayDidd = span.Days + 1;
if (dayDidd >= 180)
throw new Exception("查询时间不能超过6个月!");
//var sourceIds = new List();
var departmentIds = new List();
var newFilter = new BaseFilter(filter.OrgId);
newFilter.IgnoreDataRule = true;
if (!string.IsNullOrEmpty(filter.Parameter3) && !string.IsNullOrEmpty(filter.Parameter4)
&& filter.Parameter3 == "风险管理" && filter.Parameter4 == "风险评价计划审核表")
{
newFilter.SelectField = new List { "ID", "DOCUMENT_NAME", "STATUS", "INITIATING_DEPARTMENT", "CREATER_ID", "CREATE_TIME" };
//风险评价计划审核表
var evalPlan = this.GetEntities(t => t.CREATE_TIME >= startTime && t.CREATE_TIME <= endTime && t.INITIATING_DEPARTMENT != null
&& t.STATUS != FOPreMeetingStatusEnum.归档, newFilter).ToList();
if (!string.IsNullOrEmpty(filter.Keyword))
{
evalPlan = evalPlan.Where(t => outPartmentIds.Contains((Guid)t.INITIATING_DEPARTMENT)).ToList();
}
newFilter.SelectField = new List { "NAME", "Nav_Department" };
var userInfo = this.GetEntities(t => t.ENABLE_STATUS == 0, newFilter).ToList();
#region 风险评价计划审核表
if (evalPlan.Any())
{
evalPlan.ForEach(t =>
{
UnFinishInfo analysis = new UnFinishInfo();
analysis.NAME = t.DOCUMENT_NAME;
analysis.CREATE_NAME = userInfo.FirstOrDefault(m => m.ID == t.CREATER_ID)?.NAME;
analysis.DEPARTMENT_NAME = userInfo.FirstOrDefault(m => m.ID == t.CREATER_ID)?.Nav_Department?.NAME;
analysis.CREATE_TIME = t.CREATE_TIME;
analysis.STATUS_NAME = Enum.GetName(typeof(FOPreMeetingStatusEnum), t.STATUS);
formAnalysis.Add(analysis);
});
}
#endregion
}
if (!string.IsNullOrEmpty(filter.Parameter3) && !string.IsNullOrEmpty(filter.Parameter4)
&& filter.Parameter3 == "风险管理" && filter.Parameter4 == "风险评价计划发布")
{
//风险评价计划发布
newFilter.SelectField = new List { "ID", "NOTICE_NAME", "RELEASE_STATUS", "RELEAS_DEPARTMENT_ID", "CREATER_ID", "CREATE_TIME" };
var noticeRelease = this.GetEntities(t => t.CREATE_TIME >= startTime && t.CREATE_TIME <= endTime && t.RELEAS_DEPARTMENT_ID != null
&& t.RELEASE_STATUS != FOPreMeetingStatusEnum.归档, newFilter).ToList();
if (!string.IsNullOrEmpty(filter.Keyword))
{
noticeRelease = noticeRelease.Where(t => outPartmentIds.Contains((Guid)t.RELEAS_DEPARTMENT_ID)).ToList();
}
newFilter.SelectField = new List { "NAME", "Nav_Department" };
var userInfo = this.GetEntities(t => t.ENABLE_STATUS == 0, newFilter).ToList();
#region 风险评价计划发布
if (noticeRelease.Any())
{
noticeRelease.ForEach(t =>
{
UnFinishInfo analysis = new UnFinishInfo();
analysis.NAME = t.NOTICE_NAME;
analysis.CREATE_NAME = userInfo.FirstOrDefault(m => m.ID == t.CREATER_ID)?.NAME;
analysis.DEPARTMENT_NAME = userInfo.FirstOrDefault(m => m.ID == t.CREATER_ID)?.Nav_Department?.NAME;
analysis.CREATE_TIME = t.CREATE_TIME;
analysis.STATUS_NAME = Enum.GetName(typeof(FOPreMeetingStatusEnum), t.RELEASE_STATUS);
formAnalysis.Add(analysis);
});
}
#endregion
}
if (!string.IsNullOrEmpty(filter.Parameter3) && !string.IsNullOrEmpty(filter.Parameter4)
&& filter.Parameter3 == "风险管理" && filter.Parameter4 == "危险源/风险辨识任务")
{
//危险源/风险辨识任务
newFilter.SelectField = new List { "ID", "CODE", "STATUS", "INITIATING_DEPARTMENT", "CREATER_ID", "CREATE_TIME" };
var riskTask = this.GetEntities(t => t.CREATE_TIME >= startTime && t.CREATE_TIME <= endTime && t.INITIATING_DEPARTMENT != null
&& t.STATUS != FOPreMeetingStatusEnum.归档, newFilter).ToList();
if (!string.IsNullOrEmpty(filter.Keyword))
{
riskTask = riskTask.Where(t => outPartmentIds.Contains((Guid)t.INITIATING_DEPARTMENT)).ToList();
}
newFilter.SelectField = new List { "NAME", "Nav_Department" };
var userInfo = this.GetEntities(t => t.ENABLE_STATUS == 0, newFilter).ToList();
#region 危险源/风险辨识任务
if (riskTask.Any())
{
riskTask.ForEach(t =>
{
UnFinishInfo analysis = new UnFinishInfo();
analysis.NAME = t.CODE;
analysis.CREATE_NAME = userInfo.FirstOrDefault(m => m.ID == t.CREATER_ID)?.NAME;
analysis.DEPARTMENT_NAME = userInfo.FirstOrDefault(m => m.ID == t.CREATER_ID)?.Nav_Department?.NAME;
analysis.CREATE_TIME = t.CREATE_TIME;
analysis.STATUS_NAME = Enum.GetName(typeof(FOPreMeetingStatusEnum), t.STATUS);
formAnalysis.Add(analysis);
});
}
#endregion
}
if (!string.IsNullOrEmpty(filter.Parameter3) && !string.IsNullOrEmpty(filter.Parameter4)
&& filter.Parameter3 == "风险管理" && filter.Parameter4 == "危险源/风险辨识记录表")
{
newFilter.SelectField = new List { "ID", "CODE", "STATUS", "INITIATING_DEPARTMENT", "CREATER_ID", "CREATE_TIME" };
//危险源/风险辨识记录表
var riskRecord = this.GetEntities(t => t.CREATE_TIME >= startTime && t.CREATE_TIME <= endTime && t.INITIATING_DEPARTMENT != null
&& t.STATUS != FOPreMeetingStatusEnum.归档, newFilter).ToList();
if (!string.IsNullOrEmpty(filter.Keyword))
{
riskRecord = riskRecord.Where(t => outPartmentIds.Contains((Guid)t.INITIATING_DEPARTMENT)).ToList();
}
newFilter.SelectField = new List { "NAME", "Nav_Department" };
var userInfo = this.GetEntities(t => t.ENABLE_STATUS == 0, newFilter).ToList();
#region 危险源/风险辨识记录表
if (riskRecord.Any())
{
riskRecord.ForEach(t =>
{
UnFinishInfo analysis = new UnFinishInfo();
analysis.NAME = t.CODE;
analysis.CREATE_NAME = userInfo.FirstOrDefault(m => m.ID == t.CREATER_ID)?.NAME;
analysis.DEPARTMENT_NAME = userInfo.FirstOrDefault(m => m.ID == t.CREATER_ID)?.Nav_Department?.NAME;
analysis.CREATE_TIME = t.CREATE_TIME;
analysis.STATUS_NAME = Enum.GetName(typeof(FOPreMeetingStatusEnum), t.STATUS);
formAnalysis.Add(analysis);
});
}
#endregion
}
if (!string.IsNullOrEmpty(filter.Parameter3) && !string.IsNullOrEmpty(filter.Parameter4)
&& filter.Parameter3 == "风险管理" && filter.Parameter4 == "职业危害辨识任务")
{
newFilter.SelectField = new List { "ID", "CODE", "STATUS", "INITIATING_DEPARTMENT", "CREATER_ID", "CREATE_TIME" };
//职业危害辨识任务
var hazardTask = this.GetEntities(t => t.CREATE_TIME >= startTime && t.CREATE_TIME <= endTime && t.INITIATING_DEPARTMENT != null
&& t.STATUS != FOPreMeetingStatusEnum.归档, newFilter).ToList();
if (!string.IsNullOrEmpty(filter.Keyword))
{
hazardTask = hazardTask.Where(t => outPartmentIds.Contains((Guid)t.INITIATING_DEPARTMENT)).ToList();
}
newFilter.SelectField = new List { "NAME", "Nav_Department" };
var userInfo = this.GetEntities(t => t.ENABLE_STATUS == 0, newFilter).ToList();
#region 职业危害辨识任务
if (hazardTask.Any())
{
hazardTask.ForEach(t =>
{
UnFinishInfo analysis = new UnFinishInfo();
analysis.NAME = t.CODE;
analysis.CREATE_NAME = userInfo.FirstOrDefault(m => m.ID == t.CREATER_ID)?.NAME;
analysis.DEPARTMENT_NAME = userInfo.FirstOrDefault(m => m.ID == t.CREATER_ID)?.Nav_Department?.NAME;
analysis.CREATE_TIME = t.CREATE_TIME;
analysis.STATUS_NAME = Enum.GetName(typeof(FOPreMeetingStatusEnum), t.STATUS);
formAnalysis.Add(analysis);
});
}
#endregion
}
if (!string.IsNullOrEmpty(filter.Parameter3) && !string.IsNullOrEmpty(filter.Parameter4)
&& filter.Parameter3 == "风险管理" && filter.Parameter4 == "职业危害辨识记录表")
{
newFilter.SelectField = new List { "ID", "CODE", "STATUS", "INITIATING_DEPARTMENT", "CREATER_ID", "CREATE_TIME" };
//职业危害辨识记录表
var hazardRecord = this.GetEntities(t => t.CREATE_TIME >= startTime && t.CREATE_TIME <= endTime && t.INITIATING_DEPARTMENT != null
&& t.STATUS != FOPreMeetingStatusEnum.归档, newFilter).ToList();
if (!string.IsNullOrEmpty(filter.Keyword))
{
hazardRecord = hazardRecord.Where(t => outPartmentIds.Contains((Guid)t.INITIATING_DEPARTMENT)).ToList();
}
newFilter.SelectField = new List { "NAME", "Nav_Department" };
var userInfo = this.GetEntities(t => t.ENABLE_STATUS == 0, newFilter).ToList();
#region 职业危害辨识记录表
if (hazardRecord.Any())
{
hazardRecord.ForEach(t =>
{
UnFinishInfo analysis = new UnFinishInfo();
analysis.NAME = t.CODE;
analysis.CREATE_NAME = userInfo.FirstOrDefault(m => m.ID == t.CREATER_ID)?.NAME;
analysis.DEPARTMENT_NAME = userInfo.FirstOrDefault(m => m.ID == t.CREATER_ID)?.Nav_Department?.NAME;
analysis.CREATE_TIME = t.CREATE_TIME;
analysis.STATUS_NAME = Enum.GetName(typeof(FOPreMeetingStatusEnum), t.STATUS);
formAnalysis.Add(analysis);
});
}
#endregion
}
if (!string.IsNullOrEmpty(filter.Parameter3) && !string.IsNullOrEmpty(filter.Parameter4)
&& filter.Parameter3 == "风险管理" && filter.Parameter4 == "评价结果表")
{
newFilter.SelectField = new List { "ID", "CODE", "STATUS", "INITIATING_DEPARTMENT", "CREATER_ID", "CREATE_TIME" };
//评价结果表
var evalResult = this.GetEntities(t => t.CREATE_TIME >= startTime && t.CREATE_TIME <= endTime && t.INITIATING_DEPARTMENT != null
&& t.STATUS != FOPreMeetingStatusEnum.归档, newFilter).ToList();
if (!string.IsNullOrEmpty(filter.Keyword))
{
evalResult = evalResult.Where(t => outPartmentIds.Contains((Guid)t.INITIATING_DEPARTMENT)).ToList();
}
newFilter.SelectField = new List { "NAME", "Nav_Department" };
var userInfo = this.GetEntities(t => t.ENABLE_STATUS == 0, newFilter).ToList();
#region 评价结果表
if (evalResult.Any())
{
evalResult.ForEach(t =>
{
UnFinishInfo analysis = new UnFinishInfo();
analysis.NAME = t.CODE;
analysis.CREATE_NAME = userInfo.FirstOrDefault(m => m.ID == t.CREATER_ID)?.NAME;
analysis.DEPARTMENT_NAME = userInfo.FirstOrDefault(m => m.ID == t.CREATER_ID)?.Nav_Department?.NAME;
analysis.CREATE_TIME = t.CREATE_TIME;
analysis.STATUS_NAME = Enum.GetName(typeof(FOPreMeetingStatusEnum), t.STATUS);
formAnalysis.Add(analysis);
});
}
#endregion
}
if (!string.IsNullOrEmpty(filter.Parameter3) && !string.IsNullOrEmpty(filter.Parameter4)
&& filter.Parameter3 == "风险管理" && filter.Parameter4 == "作业任务识别")
{
//作业任务识别
newFilter.SelectField = new List { "ID", "CODE", "IS_PUBLISH", "DEPARTMENT_ID", "CREATER_ID", "CREATE_TIME" };
var taskIdentify = this.GetEntities(t => t.CREATE_TIME >= startTime && t.CREATE_TIME <= endTime && t.DEPARTMENT_ID != null
&& t.IS_PUBLISH != FOPreMeetingStatusEnum.归档, newFilter).ToList();
if (!string.IsNullOrEmpty(filter.Keyword))
{
taskIdentify = taskIdentify.Where(t => outPartmentIds.Contains((Guid)t.DEPARTMENT_ID)).ToList();
}
newFilter.SelectField = new List { "NAME", "Nav_Department" };
var userInfo = this.GetEntities(t => t.ENABLE_STATUS == 0, newFilter).ToList();
#region 作业任务识别
if (taskIdentify.Any())
{
taskIdentify.ForEach(t =>
{
UnFinishInfo analysis = new UnFinishInfo();
analysis.NAME = t.CODE;
analysis.CREATE_NAME = userInfo.FirstOrDefault(m => m.ID == t.CREATER_ID)?.NAME;
analysis.DEPARTMENT_NAME = userInfo.FirstOrDefault(m => m.ID == t.CREATER_ID)?.Nav_Department?.NAME;
analysis.CREATE_TIME = t.CREATE_TIME;
analysis.STATUS_NAME = Enum.GetName(typeof(FOPreMeetingStatusEnum), t.IS_PUBLISH);
formAnalysis.Add(analysis);
});
}
#endregion
}
if (!string.IsNullOrEmpty(filter.Parameter3) && !string.IsNullOrEmpty(filter.Parameter4)
&& filter.Parameter3 == "风险管理" && filter.Parameter4 == "作业任务识别分析")
{
newFilter.SelectField = new List { "ID", "CODE", "IS_PUBLISH", "DEPARTMENT_ID", "CREATER_ID", "CREATE_TIME" };
//作业任务识别分析
var taskAnalysis = this.GetEntities(t => t.CREATE_TIME >= startTime && t.CREATE_TIME <= endTime && t.DEPARTMENT_ID != null
&& t.IS_PUBLISH != FOPreMeetingStatusEnum.归档, newFilter).ToList();
if (!string.IsNullOrEmpty(filter.Keyword))
{
taskAnalysis = taskAnalysis.Where(t => outPartmentIds.Contains((Guid)t.DEPARTMENT_ID)).ToList();
}
newFilter.SelectField = new List { "NAME", "Nav_Department" };
var userInfo = this.GetEntities(t => t.ENABLE_STATUS == 0, newFilter).ToList();
#region 作业任务识别分析
if (taskAnalysis.Any())
{
taskAnalysis.ForEach(t =>
{
UnFinishInfo analysis = new UnFinishInfo();
analysis.NAME = t.CODE;
analysis.CREATE_NAME = userInfo.FirstOrDefault(m => m.ID == t.CREATER_ID)?.NAME;
analysis.DEPARTMENT_NAME = userInfo.FirstOrDefault(m => m.ID == t.CREATER_ID)?.Nav_Department?.NAME;
analysis.CREATE_TIME = t.CREATE_TIME;
analysis.STATUS_NAME = Enum.GetName(typeof(FOPreMeetingStatusEnum), t.IS_PUBLISH);
formAnalysis.Add(analysis);
});
}
#endregion
}
if (!string.IsNullOrEmpty(filter.Parameter3) && !string.IsNullOrEmpty(filter.Parameter4)
&& filter.Parameter3 == "风险管理" && filter.Parameter4 == "一般任务分析")
{
newFilter.SelectField = new List { "ID", "CODE", "IS_PUBLISH", "DEPARTMENT_ID", "CREATER_ID", "CREATE_TIME" };
//一般任务分析
var taskOrdinary = this.GetEntities(t => t.CREATE_TIME >= startTime && t.CREATE_TIME <= endTime && t.DEPARTMENT_ID != null
&& t.IS_PUBLISH != FOPreMeetingStatusEnum.归档, newFilter).ToList();
if (!string.IsNullOrEmpty(filter.Keyword))
{
taskOrdinary = taskOrdinary.Where(t => outPartmentIds.Contains((Guid)t.DEPARTMENT_ID)).ToList();
}
newFilter.SelectField = new List { "NAME", "Nav_Department" };
var userInfo = this.GetEntities(t => t.ENABLE_STATUS == 0, newFilter).ToList();
#region 一般任务分析
if (taskOrdinary.Any())
{
taskOrdinary.ForEach(t =>
{
UnFinishInfo analysis = new UnFinishInfo();
analysis.NAME = t.CODE;
analysis.CREATE_NAME = userInfo.FirstOrDefault(m => m.ID == t.CREATER_ID)?.NAME;
analysis.DEPARTMENT_NAME = userInfo.FirstOrDefault(m => m.ID == t.CREATER_ID)?.Nav_Department?.NAME;
analysis.CREATE_TIME = t.CREATE_TIME;
analysis.STATUS_NAME = Enum.GetName(typeof(FOPreMeetingStatusEnum), t.IS_PUBLISH);
formAnalysis.Add(analysis);
});
}
#endregion
}
if (!string.IsNullOrEmpty(filter.Parameter3) && !string.IsNullOrEmpty(filter.Parameter4)
&& filter.Parameter3 == "风险管理" && filter.Parameter4 == "关键任务分析")
{
newFilter.SelectField = new List { "ID", "CODE", "IS_PUBLISH", "DEPARTMENT_ID", "CREATER_ID", "CREATE_TIME" };
//关键任务分析
var taskCrucial = this.GetEntities(t => t.CREATE_TIME >= startTime && t.CREATE_TIME <= endTime && t.DEPARTMENT_ID != null
&& t.IS_PUBLISH != FOPreMeetingStatusEnum.归档, newFilter).ToList();
if (!string.IsNullOrEmpty(filter.Keyword))
{
taskCrucial = taskCrucial.Where(t => outPartmentIds.Contains((Guid)t.DEPARTMENT_ID)).ToList();
}
newFilter.SelectField = new List { "NAME", "Nav_Department" };
var userInfo = this.GetEntities