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(t => t.ENABLE_STATUS == 0, newFilter).ToList(); #region 关键任务分析 if (taskCrucial.Any()) { taskCrucial.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 taskLicense = 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)) { taskLicense = taskLicense.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 (taskLicense.Any()) { taskLicense.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", "NAME", "IS_PUBLISH", "DEPARTMENT_ID", "CREATER_ID", "CREATE_TIME" }; //作业任务分析文件发布 var filePublish = 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)) { filePublish = filePublish.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 (filePublish.Any()) { filePublish.ForEach(t => { UnFinishInfo analysis = new UnFinishInfo(); analysis.NAME = t.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.IS_PUBLISH); formAnalysis.Add(analysis); }); } #endregion } if (!string.IsNullOrEmpty(filter.Parameter3) && !string.IsNullOrEmpty(filter.Parameter4) && filter.Parameter3 == "作业现场管理" && filter.Parameter4 == "岗位当班工作记录") { newFilter.SelectField = new List { "ID", "NAME", "SHIFT_STATUS", "OVERTIME", "DEPARTMENT_ID", "Nav_Team", "CREATER_ID", "CREATE_TIME" }; //岗位当班工作记录 var classRecord = this.GetEntities(t => t.CREATE_TIME >= startTime && t.CREATE_TIME <= endTime && t.DEPARTMENT_ID != null && t.SHIFT_STATUS != (int)FOShiftStatusEnum.归档, newFilter).ToList(); if (!string.IsNullOrEmpty(filter.Keyword)) { classRecord = classRecord.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 (classRecord.Any()) { classRecord.ForEach(t => { UnFinishInfo analysis = new UnFinishInfo(); analysis.NAME = t.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(FOShiftStatusEnum), t.SHIFT_STATUS); formAnalysis.Add(analysis); }); } #endregion } if (!string.IsNullOrEmpty(filter.Parameter3) && !string.IsNullOrEmpty(filter.Parameter4) && filter.Parameter3 == "作业现场管理" && filter.Parameter4 == "岗位交接班记录") { newFilter.SelectField = new List { "ID", "NAME", "SHIFT_STATUS", "OVERTIME", "DEPARTMENT_ID", "Nav_Team", "CREATER_ID", "CREATE_TIME" }; //岗位交接班记录 var shiftRecord = this.GetEntities(t => t.CREATE_TIME >= startTime && t.CREATE_TIME <= endTime && t.DEPARTMENT_ID != null && t.SHIFT_STATUS != (int)FOChangeShiftStatusEnum.归档, newFilter).ToList(); if (!string.IsNullOrEmpty(filter.Keyword)) { shiftRecord = shiftRecord.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 (shiftRecord.Any()) { shiftRecord.ForEach(t => { UnFinishInfo analysis = new UnFinishInfo(); analysis.NAME = t.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(FOChangeShiftStatusEnum), t.SHIFT_STATUS); formAnalysis.Add(analysis); }); } #endregion } if (!string.IsNullOrEmpty(filter.Parameter3) && !string.IsNullOrEmpty(filter.Parameter4) && filter.Parameter3 == "作业现场管理" && filter.Parameter4 == "班组安全活动") { //班组安全活动 newFilter.SelectField = new List { "ID", "TITLE", "TA_STATUS", "OVERTIME", "Nav_User", "CREATER_ID", "CREATE_TIME" }; var teamActive = this.GetEntities(t => t.CREATE_TIME >= startTime && t.CREATE_TIME <= endTime && t.Nav_User != null && t.Nav_User.DEPARTMENT_ID != null && t.TA_STATUS != (int)FOTeamActivityState.已归档, newFilter).ToList(); if (!string.IsNullOrEmpty(filter.Keyword)) { teamActive = teamActive.Where(t => outPartmentIds.Contains((Guid)t.Nav_User.DEPARTMENT_ID)).ToList(); } //人员 newFilter.SelectField = new List { "NAME", "Nav_Department" }; var userInfo = this.GetEntities(t => t.ENABLE_STATUS == 0, newFilter).ToList(); #region 班组安全活动 if (teamActive.Any()) { teamActive.ForEach(t => { UnFinishInfo analysis = new UnFinishInfo(); analysis.NAME = t.TITLE; analysis.CREATE_NAME = userInfo.FirstOrDefault(m => m.ID == t.Nav_User.ID)?.NAME; analysis.DEPARTMENT_NAME = userInfo.FirstOrDefault(m => m.ID == t.Nav_User.ID)?.Nav_Department?.NAME; analysis.CREATE_TIME = t.CREATE_TIME; analysis.STATUS_NAME = Enum.GetName(typeof(FOTeamActivityState), t.TA_STATUS); formAnalysis.Add(analysis); }); } #endregion } if (!string.IsNullOrEmpty(filter.Parameter3) && !string.IsNullOrEmpty(filter.Parameter4) && filter.Parameter3 == "作业现场管理" && filter.Parameter4 == "班前会议记录") { //班前会议记录 newFilter.SelectField = new List { "ID", "NAME", "PRE_MEETING_STATUS", "OVERTIME", "DEPARTMENT_ID", "Nav_Team", "CREATER_ID", "CREATE_TIME" }; var shiftMeeting = this.GetEntities(t => t.CREATE_TIME >= startTime && t.CREATE_TIME <= endTime && t.DEPARTMENT_ID != null &&t.PRE_MEETING_STATUS != FOPreMeetingStatusEnum.归档, newFilter).ToList(); if (!string.IsNullOrEmpty(filter.Keyword)) { shiftMeeting = shiftMeeting.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 (shiftMeeting.Any()) { shiftMeeting.ForEach(t => { UnFinishInfo analysis = new UnFinishInfo(); analysis.NAME = t.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.PRE_MEETING_STATUS); formAnalysis.Add(analysis); }); } #endregion } if (!string.IsNullOrEmpty(filter.Parameter3) && !string.IsNullOrEmpty(filter.Parameter4) && filter.Parameter3 == "作业现场管理" && filter.Parameter4 == "作业活动记录(一般作业)") { //作业活动记录(一般作业) newFilter.SelectField = new List { "ID", "Nav_OperationStep", "FORM_STATUS", "Nav_CreateUser", "CREATER_ID", "CREATE_TIME" }; var eventRecord = this.GetEntities(t => t.CREATE_TIME >= startTime && t.CREATE_TIME <= endTime && t.Nav_CreateUser != null && t.Nav_CreateUser.DEPARTMENT_ID != null && t.FORM_STATUS != (int)FOTeamActivityState.已归档, newFilter).ToList(); if (!string.IsNullOrEmpty(filter.Keyword)) { eventRecord = eventRecord.Where(t => outPartmentIds.Contains((Guid)t.Nav_CreateUser.DEPARTMENT_ID)).ToList(); } //人员 newFilter.SelectField = new List { "NAME", "Nav_Department" }; var userInfo = this.GetEntities(t => t.ENABLE_STATUS == 0, newFilter).ToList(); #region 作业活动记录(一般作业) if (eventRecord.Any()) { eventRecord.ForEach(t => { UnFinishInfo analysis = new UnFinishInfo(); analysis.NAME = t.Nav_OperationStep?.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(FOTeamActivityState), t.FORM_STATUS); formAnalysis.Add(analysis); }); } #endregion } if (!string.IsNullOrEmpty(filter.Parameter3) && !string.IsNullOrEmpty(filter.Parameter4) && filter.Parameter3 == "作业现场管理" && filter.Parameter4 == "作业方案讨论记录") { //作业方案讨论记录 newFilter.SelectField = new List { "ID", "FILE_NAME", "FORM_STATUS", "DEPARTMENT_ID", "CREATER_ID", "CREATE_TIME" }; var operSch = this.GetEntities(t => t.CREATE_TIME >= startTime && t.CREATE_TIME <= endTime && t.DEPARTMENT_ID != null && t.FORM_STATUS != (int)FOTeamActivityState.已归档, newFilter).ToList(); if (!string.IsNullOrEmpty(filter.Keyword)) { operSch = operSch.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 (operSch.Any()) { operSch.ForEach(t => { UnFinishInfo analysis = new UnFinishInfo(); analysis.NAME = t.FILE_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(FOTeamActivityState), t.FORM_STATUS); formAnalysis.Add(analysis); }); } #endregion } if (!string.IsNullOrEmpty(filter.Parameter3) && !string.IsNullOrEmpty(filter.Parameter4) && filter.Parameter3 == "作业现场管理" && filter.Parameter4 == "关键作业/许可作业工作票") { //关键作业/许可作业工作票 newFilter.SelectField = new List { "ID", "Nav_OperationStep", "IS_PUBLISH", "Nav_ApplyUser", "CREATER_ID", "CREATE_TIME" }; var licenseJob = this.GetEntities(t => t.CREATE_TIME >= startTime && t.CREATE_TIME <= endTime && t.Nav_ApplyUser != null && t.Nav_ApplyUser.DEPARTMENT_ID != null && t.IS_PUBLISH != (int)FOPreMeetingStatusEnum.归档, newFilter).ToList(); if (!string.IsNullOrEmpty(filter.Keyword)) { licenseJob = licenseJob.Where(t => outPartmentIds.Contains((Guid)t.Nav_ApplyUser.DEPARTMENT_ID)).ToList(); } //人员 newFilter.SelectField = new List { "NAME", "Nav_Department" }; var userInfo = this.GetEntities(t => t.ENABLE_STATUS == 0, newFilter).ToList(); #region 关键作业/许可作业工作票 if (licenseJob.Any()) { licenseJob.ForEach(t => { UnFinishInfo analysis = new UnFinishInfo(); analysis.NAME = t.Nav_OperationStep?.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.IS_PUBLISH); formAnalysis.Add(analysis); }); } #endregion } if (!string.IsNullOrEmpty(filter.Parameter3) && !string.IsNullOrEmpty(filter.Parameter4) && filter.Parameter3 == "作业现场管理" && filter.Parameter4 == "技术交底表") { //技术交底表 newFilter.SelectField = new List { "ID", "Nav_OperationStep", "FORM_STATUS", "Nav_DisclosurePerson", "CREATER_ID", "CREATE_TIME" }; var techForm = this.GetEntities(t => t.CREATE_TIME >= startTime && t.CREATE_TIME <= endTime && t.Nav_DisclosurePerson != null && t.Nav_DisclosurePerson.DEPARTMENT_ID != null && t.FORM_STATUS != (int)FOTeamActivityState.已归档, 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 { "ID", "IS_PUBLISH", "DEPARTMENT_ID" }; if (!string.IsNullOrEmpty(filter.Keyword)) { techForm = techForm.Where(t => outPartmentIds.Contains((Guid)t.Nav_DisclosurePerson.DEPARTMENT_ID)).ToList(); } //人员 newFilter.SelectField = new List { "NAME", "Nav_Department" }; var userInfo = this.GetEntities(t => t.ENABLE_STATUS == 0, newFilter).ToList(); #region 技术交底表 if (techForm.Any()) { techForm.ForEach(t => { UnFinishInfo analysis = new UnFinishInfo(); analysis.NAME = t.Nav_OperationStep?.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(FOTeamActivityState), t.FORM_STATUS); formAnalysis.Add(analysis); }); } #endregion } if (!string.IsNullOrEmpty(filter.Parameter3) && !string.IsNullOrEmpty(filter.Parameter4) && filter.Parameter3 == "作业现场管理" && filter.Parameter4 == "作业活动记录(关键和许可作业)") { //作业活动记录(关键和许可作业) newFilter.SelectField = new List { "ID", "Nav_OperationStep", "FORM_STATUS", "Nav_CreateUser", "CREATER_ID", "CREATE_TIME" }; var activeRecord = this.GetEntities(t => t.CREATE_TIME >= startTime && t.CREATE_TIME <= endTime && t.Nav_CreateUser != null && t.Nav_CreateUser.DEPARTMENT_ID != null && t.FORM_STATUS != (int)FOTeamActivityState.已归档, newFilter).ToList(); if (!string.IsNullOrEmpty(filter.Keyword)) { activeRecord = activeRecord.Where(t => outPartmentIds.Contains((Guid)t.Nav_CreateUser.DEPARTMENT_ID)).ToList(); } //人员 newFilter.SelectField = new List { "NAME", "Nav_Department" }; var userInfo = this.GetEntities(t => t.ENABLE_STATUS == 0, newFilter).ToList(); #region 作业活动记录(关键和许可作业) if (activeRecord.Any()) { activeRecord.ForEach(t => { UnFinishInfo analysis = new UnFinishInfo(); analysis.NAME = t.Nav_OperationStep?.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(FOTeamActivityState), t.FORM_STATUS); formAnalysis.Add(analysis); }); } #endregion } if (!string.IsNullOrEmpty(filter.Parameter3) && !string.IsNullOrEmpty(filter.Parameter4) && filter.Parameter3 == "安全检查" && filter.Parameter4 == "检查任务制定") { newFilter.SelectField = new List { "ID", "NAME", "STATUSPLAN", "STATUCHECK", "DEPARTMENTID","CREATER_ID", "CREATE_TIME" }; //检查任务制定 var checkTask = this.GetEntities(t => t.CREATE_TIME >= startTime && t.CREATE_TIME <= endTime && t.DEPARTMENTID != null && t.STATUSPLAN != (int)HMAuditStatusEnmu.归档, newFilter).ToList(); if (!string.IsNullOrEmpty(filter.Keyword)) { checkTask = checkTask.Where(t => outPartmentIds.Contains((Guid)t.DEPARTMENTID)).ToList(); } //var ids = checkTask.Select(t => t.ID); //var approveIds = this.GetEntities(t => ids.Contains(t.DATA_ID), new BaseFilter(filter.OrgId)).Select(t => t.ID).ToList(); //var allIds = new List(); //allIds.AddRange(ids); //allIds.AddRange(approveIds); ////只取未完成的 //newFilter.SelectField = new List { "NOTICE_TITLE", "USER_ID", "USER_NAME", "SOURCE_DATA_ID", "CREATE_TIME" }; //var tasks = this.GetEntities(t => t.NOTICE_STATUS == 0 && allIds.Contains((Guid)t.SOURCE_DATA_ID), newFilter).ToList(); ////人员 //var userIds = tasks.Select(t => t.USER_ID).Distinct().ToList(); newFilter.SelectField = new List { "NAME", "Nav_Department" }; var userInfo = this.GetEntities(t => t.ENABLE_STATUS == 0, newFilter).ToList(); #region 检查任务制定 //if (tasks.Any()) //{ // tasks.ForEach(t => // { // UnFinishInfo analysis = new UnFinishInfo(); // analysis.NAME = t.NOTICE_TITLE; // analysis.CREATE_NAME = t.USER_NAME; // analysis.DEPARTMENT_NAME = userInfo.FirstOrDefault(m => m.ID == t.USER_ID)?.Nav_Department?.NAME; // analysis.CREATE_TIME = t.CREATE_TIME; // formAnalysis.Add(analysis); // }); //} if (checkTask.Any()) { checkTask.ForEach(t => { UnFinishInfo analysis = new UnFinishInfo(); analysis.NAME = t.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(HMAuditStatusEnmu), t.STATUSPLAN); formAnalysis.Add(analysis); }); } #endregion } if (!string.IsNullOrEmpty(filter.Parameter3) && !string.IsNullOrEmpty(filter.Parameter4) && filter.Parameter3 == "安全检查" && filter.Parameter4 == "检查记录") { newFilter.SelectField = new List { "ID", "NAME", "STATUSPLAN", "STATUCHECK", "DEPARTMENTID", "CREATER_ID","CREATE_TIME" }; //检查记录 var checkRecord = this.GetEntities(t => t.CREATE_TIME >= startTime && t.CREATE_TIME <= endTime && t.DEPARTMENTID != null && t.STATUSPLAN == (int)HMAuditStatusEnmu.归档 && t.STATUCHECK!= (int)HMAuditStatusEnmu.归档, newFilter).ToList(); if (!string.IsNullOrEmpty(filter.Keyword)) { checkRecord = checkRecord.Where(t => outPartmentIds.Contains((Guid)t.DEPARTMENTID)).ToList(); } //var ids = checkRecord.Select(t => t.ID); //var approveIds = this.GetEntities(t => ids.Contains(t.DATA_ID), new BaseFilter(filter.OrgId)).Select(t => t.ID).ToList(); //var allIds = new List(); //allIds.AddRange(ids); //allIds.AddRange(approveIds); //allIds = allIds.Distinct().ToList(); ////只取未完成的 //newFilter.SelectField = new List { "NOTICE_TITLE", "USER_ID", "USER_NAME", "SOURCE_DATA_ID", "CREATE_TIME" }; //var tasks = this.GetEntities(t => t.NOTICE_STATUS == 0 && allIds.Contains((Guid)t.SOURCE_DATA_ID), newFilter).ToList(); ////人员 //var userIds = tasks.Select(t => t.USER_ID).Distinct().ToList(); newFilter.SelectField = new List { "NAME", "Nav_Department" }; var userInfo = this.GetEntities(t =>t.ENABLE_STATUS == 0, newFilter).ToList(); #region 检查记录 //if (tasks.Any()) //{ // tasks.ForEach(t => // { // UnFinishInfo analysis = new UnFinishInfo(); // analysis.NAME = t.NOTICE_TITLE; // analysis.CREATE_NAME = t.USER_NAME; // analysis.DEPARTMENT_NAME = userInfo.FirstOrDefault(m => m.ID == t.USER_ID)?.Nav_Department?.NAME; // analysis.CREATE_TIME = t.CREATE_TIME; // formAnalysis.Add(analysis); // }); //} if (checkRecord.Any()) { checkRecord.ForEach(t => { UnFinishInfo analysis = new UnFinishInfo(); analysis.NAME = t.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(HMAuditStatusEnmu), t.STATUCHECK); formAnalysis.Add(analysis); }); } #endregion } if (!string.IsNullOrEmpty(filter.Parameter3) && !string.IsNullOrEmpty(filter.Parameter4) && filter.Parameter3 == "安全检查" && filter.Parameter4 == "隐患上报") { //隐患上报 newFilter.SelectField = new List { "ID", "NAME", "SUBMIT_STATUS", "DEPARTMENT_ID", "CREATER_ID", "CREATE_TIME" }; var riskSubmit = this.GetEntities(t => t.CREATE_TIME >= startTime && t.CREATE_TIME <= endTime && t.DEPARTMENT_ID != null && t.SUBMIT_STATUS != (int)BSSubmitStatusEnum.Start, newFilter).ToList(); if (!string.IsNullOrEmpty(filter.Keyword)) { riskSubmit = riskSubmit.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 (riskSubmit.Any()) { riskSubmit.ForEach(t => { UnFinishInfo analysis = new UnFinishInfo(); analysis.NAME = t.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(BSSubmitStatusEnum), t.SUBMIT_STATUS); formAnalysis.Add(analysis); }); } #endregion } if (!string.IsNullOrEmpty(filter.Parameter3) && !string.IsNullOrEmpty(filter.Parameter4) && filter.Parameter3 == "安全检查" && filter.Parameter4 == "隐患整改记录") { //隐患整改记录 newFilter.SelectField = new List { "ID", "NAME", "DEALSITUATION", "Nav_UserDeal", "CREATER_ID", "CREATE_TIME" }; var riskDeal = this.GetEntities(t => t.CREATE_TIME >= startTime && t.CREATE_TIME <= endTime && t.Nav_UserDeal != null && t.Nav_UserDeal.DEPARTMENT_ID != null && t.DEALSITUATION != (int)DealSituation.End, newFilter).ToList(); if (!string.IsNullOrEmpty(filter.Keyword)) { riskDeal = riskDeal.Where(t => outPartmentIds.Contains((Guid)t.Nav_UserDeal.DEPARTMENT_ID)).ToList(); } //人员 newFilter.SelectField = new List { "NAME", "Nav_Department" }; var userInfo = this.GetEntities(t => t.ENABLE_STATUS == 0, newFilter).ToList(); #region 隐患整改记录 if (riskDeal.Any()) { riskDeal.ForEach(t => { UnFinishInfo analysis = new UnFinishInfo(); analysis.NAME = t.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(DealSituation), t.DEALSITUATION); formAnalysis.Add(analysis); }); } #endregion } if (!string.IsNullOrEmpty(filter.Parameter3) && !string.IsNullOrEmpty(filter.Parameter4) && filter.Parameter3 == "安全检查" && filter.Parameter4 == "延期整改申请") { //延期整改申请 newFilter.SelectField = new List { "ID", "NAME", "Nav_Submit", "APPLY_DEPARTMENT_ID", "CREATER_ID", "CREATE_TIME" }; var delayApply = this.GetEntities(t => t.CREATE_TIME >= startTime && t.CREATE_TIME <= endTime && t.APPLY_DEPARTMENT_ID != null && t.Nav_Submit!=null, newFilter).ToList(); if (!string.IsNullOrEmpty(filter.Keyword)) { delayApply = delayApply.Where(t => outPartmentIds.Contains((Guid)t.APPLY_DEPARTMENT_ID)).ToList(); } var ids = delayApply.Select(t => t.ID).ToList(); //人员 newFilter.SelectField = new List { "NAME", "Nav_Department" }; var userInfo = this.GetEntities(t => t.ENABLE_STATUS == 0, newFilter).ToList(); //只取待办超期的 newFilter.SelectField = new List { "SOURCE_DATA_ID" }; var tasks = this.GetEntities(t => (t.NOTICE_STATUS == 1|| t.NOTICE_STATUS == 2) && ids.Contains((Guid)t.SOURCE_DATA_ID) && t.CREATE_TIME >= startTime && t.CREATE_TIME <= endTime, newFilter).ToList(); var sourceIds = tasks.Select(t => t.SOURCE_DATA_ID).Distinct().ToList(); delayApply = delayApply.Where(t => !sourceIds.Contains(t.ID)).ToList(); #region 延期整改申请 if (delayApply.Any()) { delayApply.ForEach(t => { UnFinishInfo analysis = new UnFinishInfo(); analysis.NAME = t.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(BSSubmitStatusEnum), t.Nav_Submit.SUBMIT_STATUS); formAnalysis.Add(analysis); }); } #endregion } if (!string.IsNullOrEmpty(filter.Parameter3) && !string.IsNullOrEmpty(filter.Parameter4) && filter.Parameter3 == "标准化创建" && filter.Parameter4 == "制度创建") { newFilter.SelectField = new List { "ID", "NAME", "STATUS", "Nav_User", "CREATER_ID", "CREATE_TIME" }; //标准化创建 var standardCreate = this.GetEntities(t => t.CREATE_TIME >= startTime && t.CREATE_TIME <= endTime && t.Nav_User != null && t.Nav_User.DEPARTMENT_ID != null && t.STATUS != MS.Domain.Enums.SCSystemEditStatus.已归档, newFilter).ToList(); //制度 var standardSystem = standardCreate.Where(t => t.TYPE == SCType.制度).ToList(); if (!string.IsNullOrEmpty(filter.Keyword)) { standardSystem = standardSystem.Where(t => outPartmentIds.Contains((Guid)t.Nav_User.DEPARTMENT_ID)).ToList(); } //人员 newFilter.SelectField = new List { "NAME", "Nav_Department" }; var userInfo = this.GetEntities(t => t.ENABLE_STATUS == 0, newFilter).ToList(); #region 标准化制度创建 if (standardSystem.Any()) { standardSystem.ForEach(t => { UnFinishInfo analysis = new UnFinishInfo(); analysis.NAME = t.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(SCSystemEditStatus), t.STATUS); formAnalysis.Add(analysis); }); } #endregion } if (!string.IsNullOrEmpty(filter.Parameter3) && !string.IsNullOrEmpty(filter.Parameter4) && filter.Parameter3 == "标准化创建" && filter.Parameter4 == "责任制创建") { newFilter.SelectField = new List { "ID", "NAME", "STATUS", "Nav_User", "CREATER_ID", "CREATE_TIME" }; //标准化创建 var standardCreate = this.GetEntities(t => t.CREATE_TIME >= startTime && t.CREATE_TIME <= endTime && t.Nav_User != null && t.Nav_User.DEPARTMENT_ID != null && t.STATUS != MS.Domain.Enums.SCSystemEditStatus.已归档, newFilter).ToList(); //责任制 var standardRespon = standardCreate.Where(t => t.TYPE == SCType.安全生产责任制).ToList(); if (!string.IsNullOrEmpty(filter.Keyword)) { standardRespon = standardRespon.Where(t => outPartmentIds.Contains((Guid)t.Nav_User.DEPARTMENT_ID)).ToList(); } //人员 newFilter.SelectField = new List { "NAME", "Nav_Department" }; var userInfo = this.GetEntities(t => t.ENABLE_STATUS == 0, newFilter).ToList(); #region 标准化责任制创建 if (standardRespon.Any()) { standardRespon.ForEach(t => { UnFinishInfo analysis = new UnFinishInfo(); analysis.NAME = t.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(SCSystemEditStatus), t.STATUS); formAnalysis.Add(analysis); }); } #endregion } if (!string.IsNullOrEmpty(filter.Parameter3) && !string.IsNullOrEmpty(filter.Parameter4) && filter.Parameter3 == "标准化创建" && filter.Parameter4 == "岗位安全操作规程和指导书") { newFilter.SelectField = new List { "ID", "NAME", "STATUS", "Nav_User", "CREATER_ID", "CREATE_TIME" }; //标准化创建 var standardCreate = this.GetEntities(t => t.CREATE_TIME >= startTime && t.CREATE_TIME <= endTime && t.Nav_User != null && t.Nav_User.DEPARTMENT_ID != null && t.STATUS != MS.Domain.Enums.SCSystemEditStatus.已归档, newFilter).ToList(); //岗位安全操作规程和指导书 var standardPost = standardCreate.Where(t => t.TYPE == SCType.岗位安全操作规程和指导书).ToList(); if (!string.IsNullOrEmpty(filter.Keyword)) { standardPost = standardPost.Where(t => outPartmentIds.Contains((Guid)t.Nav_User.DEPARTMENT_ID)).ToList(); } //人员 newFilter.SelectField = new List { "NAME", "Nav_Department" }; var userInfo = this.GetEntities(t => t.ENABLE_STATUS == 0, newFilter).ToList(); #region 岗位安全操作规程和指导书 if (standardPost.Any()) { standardPost.ForEach(t => { UnFinishInfo analysis = new UnFinishInfo(); analysis.NAME = t.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(SCSystemEditStatus), t.STATUS); formAnalysis.Add(analysis); }); } #endregion } if (!string.IsNullOrEmpty(filter.Parameter3) && !string.IsNullOrEmpty(filter.Parameter4) && filter.Parameter3 == "标准化创建" && filter.Parameter4 == "应急预案修订记录") { newFilter.SelectField = new List { "ID", "NAME", "STATUS", "Nav_User", "CREATER_ID", "CREATE_TIME" }; //标准化创建 var standardCreate = this.GetEntities(t => t.CREATE_TIME >= startTime && t.CREATE_TIME <= endTime && t.Nav_User != null && t.Nav_User.DEPARTMENT_ID != null && t.STATUS != MS.Domain.Enums.SCSystemEditStatus.已归档, newFilter).ToList(); //应急预案修订记录 var standardPlan = standardCreate.Where(t => t.TYPE == SCType.应急预案).ToList(); if (!string.IsNullOrEmpty(filter.Keyword)) { standardPlan = standardPlan.Where(t => outPartmentIds.Contains((Guid)t.Nav_User.DEPARTMENT_ID)).ToList(); } //人员 newFilter.SelectField = new List { "NAME", "Nav_Department" }; var userInfo = this.GetEntities(t => t.ENABLE_STATUS == 0, newFilter).ToList(); #region 应急预案修订记录 if (standardPlan.Any()) { standardPlan.ForEach(t => { UnFinishInfo analysis = new UnFinishInfo(); analysis.NAME = t.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(SCSystemEditStatus), t.STATUS); formAnalysis.Add(analysis); }); } #endregion } if (!string.IsNullOrEmpty(filter.Parameter3) && !string.IsNullOrEmpty(filter.Parameter4) && filter.Parameter3 == "方针目标与指标" && filter.Parameter4 == "安全生产方针调查") { //方针目标与指标 newFilter.SelectField = new List { "ID", "Nav_Guidelines", "STATUS", "DEPARTMENT_ID", "CREATER_ID", "CREATE_TIME" }; //安全生产方针调查 var noticeRelease = this.GetEntities(t => t.CREATE_TIME >= startTime && t.CREATE_TIME <= endTime && t.DEPARTMENT_ID != null && t.STATUS != PFStandardStatus.Archived, newFilter).ToList(); if (!string.IsNullOrEmpty(filter.Keyword)) { noticeRelease = noticeRelease.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 (noticeRelease.Any()) { noticeRelease.ForEach(t => { UnFinishInfo analysis = new UnFinishInfo(); analysis.NAME = t.Nav_Guidelines?.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(PFStandardStatus), t.STATUS); formAnalysis.Add(analysis); }); } #endregion } if (!string.IsNullOrEmpty(filter.Parameter3) && !string.IsNullOrEmpty(filter.Parameter4) && filter.Parameter3 == "方针目标与指标" && filter.Parameter4 == "公司安全生产目标与指标制定") { //方针目标与指标 newFilter.SelectField = new List { "ID", "NAME", "STATUS", "DEPARTMENT_ID", "CREATER_ID", "CREATE_TIME" }; //公司安全生产目标与指标制定 var riskTask = this.GetEntities(t => t.CREATE_TIME >= startTime && t.CREATE_TIME <= endTime && t.DEPARTMENT_ID != null && t.STATUS != PFStandardStatus.Archived, newFilter).ToList(); if (!string.IsNullOrEmpty(filter.Keyword)) { riskTask = riskTask.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 (riskTask.Any()) { riskTask.ForEach(t => { UnFinishInfo analysis = new UnFinishInfo(); analysis.NAME = t.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(PFStandardStatus), t.STATUS); formAnalysis.Add(analysis); }); } #endregion } if (!string.IsNullOrEmpty(filter.Parameter3) && !string.IsNullOrEmpty(filter.Parameter4) && filter.Parameter3 == "方针目标与指标" && filter.Parameter4 == "部门车间班组安全生产目标与指标制定") { //方针目标与指标 newFilter.SelectField = new List { "ID", "Nav_Indeicator", "STATUS", "DEPARTMENT_ID", "CREATER_ID", "CREATE_TIME" }; //部门车间班组安全生产目标与指标制定 var riskRecord = this.GetEntities(t => t.CREATE_TIME >= startTime && t.CREATE_TIME <= endTime && t.DEPARTMENT_ID != null && t.STATUS != PFStandardStatus.Archived, newFilter).ToList(); if (!string.IsNullOrEmpty(filter.Keyword)) { riskRecord = riskRecord.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 (riskRecord.Any()) { riskRecord.ForEach(t => { UnFinishInfo analysis = new UnFinishInfo(); analysis.NAME = t.Nav_Indeicator?.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(PFStandardStatus), t.STATUS); formAnalysis.Add(analysis); }); } #endregion } if (!string.IsNullOrEmpty(filter.Parameter3) && !string.IsNullOrEmpty(filter.Parameter4) && filter.Parameter3 == "方针目标与指标" && filter.Parameter4 == "考核方案审核") { //方针目标与指标 newFilter.SelectField = new List { "ID", "NAME", "STATUS", "DEPARTMENT_ID", "CREATER_ID", "CREATE_TIME" }; //考核方案审核 var hazardTask = this.GetEntities(t => t.CREATE_TIME >= startTime && t.CREATE_TIME <= endTime && t.DEPARTMENT_ID != null && t.STATUS != PFStandardStatus.Archived, newFilter).ToList(); if (!string.IsNullOrEmpty(filter.Keyword)) { hazardTask = hazardTask.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 (hazardTask.Any()) { hazardTask.ForEach(t => { UnFinishInfo analysis = new UnFinishInfo(); analysis.NAME = t.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(PFStandardStatus), t.STATUS); formAnalysis.Add(analysis); }); } } if (!string.IsNullOrEmpty(filter.Parameter3) && !string.IsNullOrEmpty(filter.Parameter4) && filter.Parameter3 == "方针目标与指标" && filter.Parameter4 == "监测与考核记录") { //方针目标与指标 newFilter.SelectField = new List { "ID", "YEAR", "STATUS", "DEPARTMENT_ID", "CREATER_ID", "CREATE_TIME" }; //监测与考核记录 var hazardRecord = this.GetEntities(t => t.CREATE_TIME >= startTime && t.CREATE_TIME <= endTime && t.DEPARTMENT_ID != null && t.STATUS != PFStandardStatus.Archived, newFilter).ToList(); if (!string.IsNullOrEmpty(filter.Keyword)) { hazardRecord = hazardRecord.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 (hazardRecord.Any()) { hazardRecord.ForEach(t => { UnFinishInfo analysis = new UnFinishInfo(); analysis.NAME = t.YEAR; 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(PFStandardStatus), t.STATUS); formAnalysis.Add(analysis); }); } #endregion } if (!string.IsNullOrEmpty(filter.Parameter3) && !string.IsNullOrEmpty(filter.Parameter4) && filter.Parameter3 == "会议管理" && filter.Parameter4 == "普通会议通知") { newFilter.SelectField = new List { "ID", "NAME", "STATUS", "DEPARTMENT_ID", "CREATER_ID", "CREATE_TIME" }; //会议管理 var meetingManage = this.GetEntities(t => t.CREATE_TIME >= startTime && t.CREATE_TIME <= endTime && t.STATUS != PFStandardStatus.Archived, newFilter).ToList(); //普通会议通知 var orderMeeting = meetingManage.Where(t => t.MEETINGTYPE == SCMEETINGTYPE.Ordinary).ToList(); if (!string.IsNullOrEmpty(filter.Keyword)) { orderMeeting = orderMeeting.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 (orderMeeting.Any()) { orderMeeting.ForEach(t => { UnFinishInfo analysis = new UnFinishInfo(); analysis.NAME = t.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(PFStandardStatus), t.STATUS); formAnalysis.Add(analysis); }); } #endregion } if (!string.IsNullOrEmpty(filter.Parameter3) && !string.IsNullOrEmpty(filter.Parameter4) && filter.Parameter3 == "会议管理" && filter.Parameter4 == "安委会通知") { newFilter.SelectField = new List { "ID", "NAME", "STATUS", "DEPARTMENT_ID", "CREATER_ID", "CREATE_TIME" }; //会议管理 var meetingManage = this.GetEntities(t => t.CREATE_TIME >= startTime && t.CREATE_TIME <= endTime && t.STATUS != PFStandardStatus.Archived, newFilter).ToList(); //安委会通知 var safeMeeting = meetingManage.Where(t => t.MEETINGTYPE == SCMEETINGTYPE.SafetyBoard).ToList(); if (!string.IsNullOrEmpty(filter.Keyword)) { safeMeeting = safeMeeting.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 (safeMeeting.Any()) { safeMeeting.ForEach(t => { UnFinishInfo analysis = new UnFinishInfo(); analysis.NAME = t.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(PFStandardStatus), t.STATUS); formAnalysis.Add(analysis); }); } #endregion } if (!string.IsNullOrEmpty(filter.Parameter3) && !string.IsNullOrEmpty(filter.Parameter4) && filter.Parameter3 == "会议管理" && filter.Parameter4 == "普通会议纪要") { //会议纪要 newFilter.SelectField = new List { "ID", "STATUS", "Nav_Meeting" ,"CREATER_ID", "CREATE_TIME" }; var meetingMinutes = this.GetEntities(t => t.CREATE_TIME >= startTime && t.CREATE_TIME <= endTime && t.Nav_Meeting != null && t.STATUS != PFStandardStatus.Archived, newFilter).ToList(); //普通会议纪要 var orderMinute = meetingMinutes.Where(t => t.MEETINGTYPE == SCMEETINGTYPE.Ordinary).ToList(); if (!string.IsNullOrEmpty(filter.Keyword)) { orderMinute = orderMinute.Where(t => outPartmentIds.Contains((Guid)t.Nav_Meeting.DEPARTMENT_ID)).ToList(); } //人员 newFilter.SelectField = new List { "NAME", "Nav_Department" }; var userInfo = this.GetEntities(t => t.ENABLE_STATUS == 0, newFilter).ToList(); #region 普通会议纪要 if (orderMinute.Any()) { orderMinute.ForEach(t => { UnFinishInfo analysis = new UnFinishInfo(); analysis.NAME = t.Nav_Meeting?.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(PFStandardStatus), t.STATUS); formAnalysis.Add(analysis); }); } #endregion } if (!string.IsNullOrEmpty(filter.Parameter3) && !string.IsNullOrEmpty(filter.Parameter4) && filter.Parameter3 == "会议管理" && filter.Parameter4 == "安委会纪要") { //会议纪要 newFilter.SelectField = new List { "ID", "STATUS", "Nav_Meeting", "CREATER_ID", "CREATE_TIME" }; var meetingMinutes = this.GetEntities(t => t.CREATE_TIME >= startTime && t.CREATE_TIME <= endTime && t.Nav_Meeting != null && t.STATUS != PFStandardStatus.Archived, newFilter).ToList(); //安委会纪要 var safeMinute = meetingMinutes.Where(t => t.MEETINGTYPE == SCMEETINGTYPE.SafetyBoard).ToList(); if (!string.IsNullOrEmpty(filter.Keyword)) { safeMinute = safeMinute.Where(t => outPartmentIds.Contains((Guid)t.Nav_Meeting.DEPARTMENT_ID)).ToList(); } //人员 newFilter.SelectField = new List { "NAME", "Nav_Department" }; var userInfo = this.GetEntities(t => t.ENABLE_STATUS == 0, newFilter).ToList(); #region 安委会纪要 if (safeMinute.Any()) { safeMinute.ForEach(t => { UnFinishInfo analysis = new UnFinishInfo(); analysis.NAME = t.Nav_Meeting?.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(PFStandardStatus), t.STATUS); formAnalysis.Add(analysis); }); } #endregion } if (!string.IsNullOrEmpty(filter.Parameter3) && !string.IsNullOrEmpty(filter.Parameter4) && filter.Parameter3 == "安全教育培训" && filter.Parameter4 == "安全意识调查") { //安全教育培训 newFilter.SelectField = new List { "ID", "NAME", "STATUS", "LAUNCH_DEPARTMENT_ID", "CREATER_ID", "CREATE_TIME" }; //安全意识调查 var taskIdentify = this.GetEntities(t => t.CREATE_TIME >= startTime && t.CREATE_TIME <= endTime && t.LAUNCH_DEPARTMENT_ID != null && t.STATUS != SESafeSurveyStatus.完成, newFilter).ToList(); if (!string.IsNullOrEmpty(filter.Keyword)) { taskIdentify = taskIdentify.Where(t => outPartmentIds.Contains((Guid)t.LAUNCH_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.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(SESafeSurveyStatus), t.STATUS); formAnalysis.Add(analysis); }); } #endregion } if (!string.IsNullOrEmpty(filter.Parameter3) && !string.IsNullOrEmpty(filter.Parameter4) && filter.Parameter3 == "安全教育培训" && filter.Parameter4 == "培训需求调查") { //安全教育培训 newFilter.SelectField = new List { "ID", "NAME", "STATUS", "LAUNCH_DEPARTMENT_ID", "CREATER_ID", "CREATE_TIME" }; //培训需求调查 var taskAnalysis = this.GetEntities(t => t.CREATE_TIME >= startTime && t.CREATE_TIME <= endTime && t.LAUNCH_DEPARTMENT_ID != null && t.STATUS != MS.Domain.Enums.SETrainSurveyStatus.完成, newFilter).ToList(); if (!string.IsNullOrEmpty(filter.Keyword)) { taskAnalysis = taskAnalysis.Where(t => outPartmentIds.Contains((Guid)t.LAUNCH_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.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(SETrainSurveyStatus), t.STATUS); formAnalysis.Add(analysis); }); } #endregion } if (!string.IsNullOrEmpty(filter.Parameter3) && !string.IsNullOrEmpty(filter.Parameter4) && filter.Parameter3 == "安全教育培训" && filter.Parameter4 == "部门培训计划") { //安全教育培训 newFilter.SelectField = new List { "ID", "PLAN_YEAR", "STATUS", "LAUNCH_DEPARTMENT_ID", "CREATER_ID", "CREATE_TIME" }; //部门培训计划 var taskOrdinary = this.GetEntities(t => t.CREATE_TIME >= startTime && t.CREATE_TIME <= endTime && t.STATUS != PFStandardStatus.Archived, newFilter).ToList(); if (!string.IsNullOrEmpty(filter.Keyword)) { taskOrdinary = taskOrdinary.Where(t => outPartmentIds.Contains((Guid)t.LAUNCH_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.PLAN_YEAR.ToString(); 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(PFStandardStatus), t.STATUS); formAnalysis.Add(analysis); }); } #endregion } if (!string.IsNullOrEmpty(filter.Parameter3) && !string.IsNullOrEmpty(filter.Parameter4) && filter.Parameter3 == "安全教育培训" && filter.Parameter4 == "年度培训计划") { //安全教育培训 newFilter.SelectField = new List { "ID", "PLAN_NAME", "STATUS", "LAUNCH_DEPARTMENT_ID", "CREATER_ID", "CREATE_TIME" }; //年度培训计划 var taskCrucial = this.GetEntities(t => t.CREATE_TIME >= startTime && t.CREATE_TIME <= endTime && t.LAUNCH_DEPARTMENT_ID != null && t.STATUS != PFStandardStatus.Archived, newFilter).ToList(); if (!string.IsNullOrEmpty(filter.Keyword)) { taskCrucial = taskCrucial.Where(t => outPartmentIds.Contains((Guid)t.LAUNCH_DEPARTMENT_ID)).ToList(); } //人员 newFilter.SelectField = new List { "NAME", "Nav_Department" }; var userInfo = this.GetEntities(t => t.ENABLE_STATUS == 0, newFilter).ToList(); #region 年度培训计划 if (taskCrucial.Any()) { taskCrucial.ForEach(t => { UnFinishInfo analysis = new UnFinishInfo(); analysis.NAME = t.PLAN_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(PFStandardStatus), t.STATUS); formAnalysis.Add(analysis); }); } #endregion } if (!string.IsNullOrEmpty(filter.Parameter3) && !string.IsNullOrEmpty(filter.Parameter4) && filter.Parameter3 == "安全教育培训" && filter.Parameter4 == "培训通知") { //安全教育培训 newFilter.SelectField = new List { "ID", "NAME", "STATUS", "LAUNCH_DEPARTMENT_ID", "CREATER_ID", "CREATE_TIME" }; //培训通知 var taskLicense = this.GetEntities(t => t.CREATE_TIME >= startTime && t.CREATE_TIME <= endTime && t.LAUNCH_DEPARTMENT_ID != null && t.STATUS != SETrainNotifyStatus.归档, newFilter).ToList(); if (!string.IsNullOrEmpty(filter.Keyword)) { taskLicense = taskLicense.Where(t => outPartmentIds.Contains((Guid)t.LAUNCH_DEPARTMENT_ID)).ToList(); } //人员 newFilter.SelectField = new List { "NAME", "Nav_Department" }; var userInfo = this.GetEntities(t => t.ENABLE_STATUS == 0, newFilter).ToList(); #region 培训通知 if (taskLicense.Any()) { taskLicense.ForEach(t => { UnFinishInfo analysis = new UnFinishInfo(); analysis.NAME = t.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(SETrainNotifyStatus), 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", "LAUNCH_DEPARTMENT_ID", "CREATER_ID", "CREATE_TIME" }; //三级安全教育卡 var checkTask = this.GetEntities(t => t.CREATE_TIME >= startTime && t.CREATE_TIME <= endTime && t.LAUNCH_DEPARTMENT_ID != null && t.STATUS != SEThreeLevelSafeTrainStatus.归档, newFilter).ToList(); if (!string.IsNullOrEmpty(filter.Keyword)) { checkTask = checkTask.Where(t => outPartmentIds.Contains((Guid)t.LAUNCH_DEPARTMENT_ID)).ToList(); } //人员 newFilter.SelectField = new List { "NAME", "Nav_Department" }; var userInfo = this.GetEntities(t => t.ENABLE_STATUS == 0, newFilter).ToList(); #region 三级安全教育卡 if (checkTask.Any()) { checkTask.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(SEThreeLevelSafeTrainStatus), t.STATUS); formAnalysis.Add(analysis); }); } #endregion } if (!string.IsNullOrEmpty(filter.Parameter3) && !string.IsNullOrEmpty(filter.Parameter4) && filter.Parameter3 == "安全教育培训" && filter.Parameter4 == "培训记录") { //安全教育培训 //培训记录 newFilter.SelectField = new List { "ID", "STATUS", "Nav_Notify", "CREATER_ID", "CREATE_TIME" }; var filePublish = this.GetEntities(t => t.CREATE_TIME >= startTime && t.CREATE_TIME <= endTime && t.Nav_Notify != null && t.Nav_Notify.LAUNCH_DEPARTMENT_ID != null && t.STATUS != SETrainRecordStatus.归档, newFilter).ToList(); if (!string.IsNullOrEmpty(filter.Keyword)) { filePublish = filePublish.Where(t => outPartmentIds.Contains((Guid)t.Nav_Notify.LAUNCH_DEPARTMENT_ID)).ToList(); } //人员 newFilter.SelectField = new List { "NAME", "Nav_Department" }; var userInfo = this.GetEntities(t => t.ENABLE_STATUS == 0, newFilter).ToList(); #region 培训记录 if (filePublish.Any()) { filePublish.ForEach(t => { UnFinishInfo analysis = new UnFinishInfo(); analysis.NAME = t.Nav_Notify.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(SETrainRecordStatus), t.STATUS); formAnalysis.Add(analysis); }); } #endregion } if (!string.IsNullOrEmpty(filter.Parameter3) && !string.IsNullOrEmpty(filter.Parameter4) && filter.Parameter3 == "安全教育培训" && filter.Parameter4 == "培训效果评估表") { //安全教育培训 //培训效果评估表 newFilter.SelectField = new List { "ID", "NAME", "STATUS", "Nav_User", "CREATER_ID", "CREATE_TIME" }; var riskDeal = this.GetEntities(t => t.CREATE_TIME >= startTime && t.CREATE_TIME <= endTime && t.Nav_User != null && t.Nav_User.DEPARTMENT_ID != null && t.STATUS != SETrainningEffectSurveyStatus.归档, newFilter).ToList(); if (!string.IsNullOrEmpty(filter.Keyword)) { riskDeal = riskDeal.Where(t => outPartmentIds.Contains((Guid)t.Nav_User.DEPARTMENT_ID)).ToList(); } //人员 newFilter.SelectField = new List { "NAME", "Nav_Department" }; var userInfo = this.GetEntities(t => t.ENABLE_STATUS == 0, newFilter).ToList(); #region 培训效果评估表 if (riskDeal.Any()) { riskDeal.ForEach(t => { UnFinishInfo analysis = new UnFinishInfo(); analysis.NAME = t.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(SETrainningEffectSurveyStatus), t.STATUS); formAnalysis.Add(analysis); }); } #endregion } return formAnalysis; }); } #endregion [HttpPost, Route("GetTotalCount")] public JsonActionResult GetTotalCount([FromBody] KeywordPageFilter pageFilter) { return SafeExecute(() => { pageFilter.IgnoreDataRule = true; //首页待办增加数量统计字段 dynamic ret = new System.Dynamic.ExpandoObject(); var ordinaryCount = GetCount(s => !s.IS_DELETED, pageFilter); var crucialCount = GetCount(s => !s.IS_DELETED, pageFilter); var activityCount = GetCount(s => !s.IS_DELETED, pageFilter); var postCount = GetCount(s => !s.IS_DELETED, pageFilter); var postChangeCount = GetCount(s => !s.IS_DELETED, pageFilter); var taskCount = GetCount(s => !s.IS_DELETED, pageFilter); var shiftMeetingCount = GetCount(s => !s.IS_DELETED, pageFilter); var shiftMeetingFinishCount = GetCount(s => !s.IS_DELETED && s.PRE_MEETING_STATUS == FOPreMeetingStatusEnum.归档, pageFilter); var postChangeFinishCount = GetCount(s => !s.IS_DELETED && s.SHIFT_STATUS == (int)FOChangeShiftStatusEnum.归档, pageFilter); var postFinishCount = GetCount(s => !s.IS_DELETED && s.SHIFT_STATUS == (int)FOShiftStatusEnum.归档, pageFilter); ret.ordinaryCount = ordinaryCount; ret.crucialCount = crucialCount; ret.activityCount = activityCount; ret.postCount = postCount; ret.postChangeCount = postChangeCount; ret.taskCount = taskCount; ret.shiftMeetingFinishRate = shiftMeetingCount == 0 ? "0" : ((double)shiftMeetingFinishCount / shiftMeetingCount * 100).ToString("0"); ret.postFinishRate = postCount == 0 ? "0" : ((double)postFinishCount / postCount * 100).ToString("0"); ret.postChangeFinishRate = postChangeCount == 0 ? "0" : ((double)postChangeFinishCount / postChangeCount * 100).ToString("0"); return ret; }); } [HttpPost, Route("GetDepartmentSort")] public JsonActionResult> GetDepartmentSort([FromBody] KeywordFilter filter) { return SafeExecute>(() => { List completionSorts = new List(); var completions = GetEntities(null, new BaseFilter(filter.OrgId)); if (!string.IsNullOrEmpty(filter.Keyword)) { completions = completions.Where(t => t.DEPARTMENT_NAME == filter.Keyword).ToList(); } var preshift = completions.Where(t => t.FORM_NAME == "班前会议"); foreach (var item in preshift) { T_FM_DEPARTMENT_COMPLETION_SORT completionSort = new T_FM_DEPARTMENT_COMPLETION_SORT(); completionSort.DEPARTMENT_ID = item.DEPARTMENT_ID; completionSort.DEPARTMENT_NAME = item.DEPARTMENT_NAME; completionSort.TEAM_ID = item.TEAM_ID; completionSort.TEAM_NAME = item.TEAM_NAME; completionSort.TEAM_TOTAL_COUNT = item.TOTAL_COUNT; completionSort.TEAM_FINISH_COUNT = item.FINISH_COUNT; completionSort.TEAM_ONTIME_FINISH_COUNT = item.ONTIME_COUNT; completionSort.ORG_ID = filter.GetOrgId(); var current = completions.Where(t => t.TEAM_ID == item.TEAM_ID && t.FORM_NAME == "岗位当班"); if (current.Any()) { completionSort.POST_TOTAL_COUNT = current.FirstOrDefault().TOTAL_COUNT; completionSort.POST_FINISH_COUNT = current.FirstOrDefault().FINISH_COUNT; completionSort.POST_ONTIME_FINISH_COUNT = current.FirstOrDefault().ONTIME_COUNT; } else { completionSort.POST_TOTAL_COUNT = 0; completionSort.POST_FINISH_COUNT = 0; completionSort.POST_ONTIME_FINISH_COUNT = 0; } var change = completions.Where(t => t.TEAM_ID == item.TEAM_ID && t.FORM_NAME == "岗位交接班"); if (change.Any()) { completionSort.HANDOVER_TOTAL_COUNT = change.FirstOrDefault().TOTAL_COUNT; completionSort.HANDOVER_FINISH_COUNT = change.FirstOrDefault().FINISH_COUNT; completionSort.HANDOVER_ONTIME_FINISH_COUNT = change.FirstOrDefault().ONTIME_COUNT; } else { completionSort.HANDOVER_TOTAL_COUNT = 0; completionSort.HANDOVER_FINISH_COUNT = 0; completionSort.HANDOVER_ONTIME_FINISH_COUNT = 0; } completionSorts.Add(completionSort); } foreach (var item in completionSorts) { var temp1 = (item.TEAM_ONTIME_FINISH_COUNT + item.POST_ONTIME_FINISH_COUNT + item.HANDOVER_ONTIME_FINISH_COUNT);//(item.TEAM_FINISH_COUNT + item.POST_FINISH_COUNT + item.HANDOVER_FINISH_COUNT); var temp2 = (item.TEAM_TOTAL_COUNT + item.POST_TOTAL_COUNT + item.HANDOVER_TOTAL_COUNT); var tempCalc = (double)temp1 / (double)temp2; item.CALC = tempCalc; } List completionSorts1 = completionSorts.OrderByDescending(t => t.CALC).Take(8).ToList(); int i = 1; foreach (var item in completionSorts1) { item.NUM = i; i++; } return completionSorts1; }); } [HttpPost, Route("GetLicenseJob")] public JsonActionResult> GetLicenseJob([FromBody] KeywordFilter filter) { return SafeExecute>(() => { List completionSorts = new List(); filter.IgnoreDataRule = true; var completions = GetEntities(t=>!t.IS_DELETED, filter); var count1 = completions.Where(t => t.AUDIT_LEVEL == (int)HMOperationTaskAuditEnum.一级审批).Count(); T_FM_RISK_LEVEL_PROPORTION level1 = new T_FM_RISK_LEVEL_PROPORTION(); level1.RISK_LEVEL = "一级审批"; level1.COUNT = count1; completionSorts.Add(level1); var count2 = completions.Where(t => t.AUDIT_LEVEL == (int)HMOperationTaskAuditEnum.二级审批).Count(); T_FM_RISK_LEVEL_PROPORTION level2 = new T_FM_RISK_LEVEL_PROPORTION(); level2.RISK_LEVEL = "二级审批"; level2.COUNT = count2; completionSorts.Add(level2); var count3 = completions.Where(t => t.AUDIT_LEVEL == (int)HMOperationTaskAuditEnum.三级审批).Count(); T_FM_RISK_LEVEL_PROPORTION level3 = new T_FM_RISK_LEVEL_PROPORTION(); level3.RISK_LEVEL = "三级审批"; level3.COUNT = count3; completionSorts.Add(level3); var count4 = completions.Where(t => t.AUDIT_LEVEL == (int)HMOperationTaskAuditEnum.四级审批).Count(); T_FM_RISK_LEVEL_PROPORTION level4 = new T_FM_RISK_LEVEL_PROPORTION(); level4.RISK_LEVEL = "四级审批"; level4.COUNT = count4; completionSorts.Add(level4); var count5 = completions.Where(t => t.AUDIT_LEVEL == (int)HMOperationTaskAuditEnum.无审批层级).Count(); T_FM_RISK_LEVEL_PROPORTION level5 = new T_FM_RISK_LEVEL_PROPORTION(); level5.RISK_LEVEL = "无审批层级"; level5.COUNT = count5; completionSorts.Add(level5); return completionSorts; }); } /// /// 待办汇总查询 /// /// /// [HttpPost, Route("GetPersonAnalyze")] public JsonActionResult GetPersonAnalyze([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" }; var user = GetEntity(t => (t.NAME == pageFilter.Keyword.Trim()||t.CODE == pageFilter.Keyword.Trim()) && t.ENABLE_STATUS == 0, newFilter); if(user==null) throw new Exception("该人员或工号不存在或已被禁用,请核对"); newFilter.SelectField = new List { "CREATE_TIME", "TASK_STARTDT", "NOTICE_STATUS", "TASK_ENDDT" }; 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个月!"); List monthRuns = new List(); var result = GetEntities(s => s.TASK_STARTDT >= startTime && s.TASK_STARTDT <= endTime && s.USER_ID == user.ID && !s.IS_DELETED && s.NOTICE_TYPE != 2 && s.NOTICE_TYPE != 7, newFilter); if (result.Any()) { var newData = result.ToList(); ret.newData = newData; ret.unfinishCount = newData.Where(s => s.NOTICE_STATUS == 0 ).Count(); ret.doneCount = newData.Where(s => s.NOTICE_STATUS == 1 || s.NOTICE_STATUS ==4).Count(); ret.timeOverCount = newData.Where(s => s.NOTICE_STATUS == 2).Count(); ret.timeOverWaitCount = newData.Where(s=>s.NOTICE_STATUS == 0 && s.TASK_ENDDT < DateTime.Now).Count(); ret.TotalCount = ret.doneCount + ret.unfinishCount+ ret.timeOverCount; var currentMonth = startTime.Month; var currentDay = startTime.Day; for (DateTime i = startTime; i <= endTime; i=i.AddMonths(i.Month - i.Month+1).AddDays(1 - i.Day)) { var monthEnd = Convert.ToDateTime(i.AddMonths(i.Month - i.Month + 1).AddDays(1 - i.Day - 1).ToString().Replace("0:00:00", "23:59:59")); var ksJantask = result.Where(t => t.TASK_STARTDT >= i && t.TASK_STARTDT <= monthEnd).ToList(); if (ksJantask.Any()) { T_BI_DEPARTMENT_MONTH_RUN run = new T_BI_DEPARTMENT_MONTH_RUN(); run.ORG_ID = pageFilter.OrgId; run.MONTH = i; run.MONTHStr = i.Year + "年" + i.Month + "月"; var total = ksJantask.Count(); var finish = ksJantask.Where(s => s.NOTICE_STATUS == 1).Count(); var overFinish = ksJantask.Where(s => s.NOTICE_STATUS == 2).Count(); var temp = total == 0 ? 0 : (double)(finish + overFinish) / total * 100; run.FINISH_RATE = temp.ToString("0.0"); var temp2 = total == 0 ? 0 : (double)finish / total * 100; run.NORMAL_FINISH_RATE = temp2.ToString("0.0"); run.TOTAL_QTY = total; monthRuns.Add(run); } else { T_BI_DEPARTMENT_MONTH_RUN run = new T_BI_DEPARTMENT_MONTH_RUN(); run.ORG_ID = pageFilter.OrgId; run.MONTH = i; run.MONTHStr = i.Year + "年" + i.Month + "月"; var total = 0; var finish = 0; var overFinish = 0; var temp = total == 0 ? 0 : (double)(finish + overFinish) / total * 100; run.FINISH_RATE = temp.ToString("0"); var temp2 = total == 0 ? 0 : (double)finish / total * 100; run.NORMAL_FINISH_RATE = temp2.ToString("0"); run.TOTAL_QTY = total; monthRuns.Add(run); } } ret.groupData = monthRuns.OrderByDescending(t=>t.MONTH).ToList(); ret.groupDataLine = monthRuns.ToList(); } return ret; }); } /// /// 导出所有人 /// /// /// [HttpPost, Route("GetAllPersonAnalyze")] public JsonActionResult GetAllPersonAnalyze([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 { "ID","NAME" }; var users = GetEntities(t =>!t.IS_DELETED && t.ENABLE_STATUS ==0 && t.CODE!="admin", newFilter); var userIds = users.Select(t => t.ID).ToList(); newFilter.SelectField = new List { "CREATE_TIME", "TASK_STARTDT", "NOTICE_STATUS", "TASK_ENDDT" }; 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个月!"); List monthRuns = new List(); var resultTemp = GetEntities(s => s.TASK_STARTDT >= startTime && s.TASK_STARTDT <= endTime && userIds.Contains(s.USER_ID) && !s.IS_DELETED && s.NOTICE_TYPE != 2 && s.NOTICE_TYPE != 7, newFilter); if (resultTemp.Any()) { foreach (var item in users) { var result = resultTemp.Where(t => t.USER_ID == item.ID).ToList(); //var newData = result.ToList(); //ret.newData = newData; //ret.unfinishCount = newData.Where(s => s.NOTICE_STATUS == 0).Count(); //ret.doneCount = newData.Where(s => s.NOTICE_STATUS == 1 || s.NOTICE_STATUS == 4).Count(); //ret.timeOverCount = newData.Where(s => s.NOTICE_STATUS == 2).Count(); //ret.timeOverWaitCount = newData.Where(s => s.NOTICE_STATUS == 0 && s.TASK_ENDDT < DateTime.Now).Count(); //ret.TotalCount = ret.doneCount + ret.unfinishCount + ret.timeOverCount; var currentMonth = startTime.Month; var currentDay = startTime.Day; for (DateTime i = startTime; i <= endTime; i = i.AddMonths(i.Month - i.Month + 1).AddDays(1 - i.Day)) { var monthEnd = Convert.ToDateTime(i.AddMonths(i.Month - i.Month + 1).AddDays(1 - i.Day - 1).ToString().Replace("0:00:00", "23:59:59")); var ksJantask = result.Where(t => t.TASK_STARTDT >= i && t.TASK_STARTDT <= monthEnd).ToList(); if (ksJantask.Any()) { T_BI_DEPARTMENT_MONTH_RUN run = new T_BI_DEPARTMENT_MONTH_RUN(); run.ORG_ID = pageFilter.OrgId; run.MONTH = i; run.MONTHStr = i.Year + "年" + i.Month + "月"; var total = ksJantask.Count(); var finish = ksJantask.Where(s => s.NOTICE_STATUS == 1).Count(); var overFinish = ksJantask.Where(s => s.NOTICE_STATUS == 2).Count(); var temp = total == 0 ? 0 : (double)(finish + overFinish) / total * 100; run.FINISH_RATE = temp.ToString("0.0"); var temp2 = total == 0 ? 0 : (double)finish / total * 100; run.NORMAL_FINISH_RATE = temp2.ToString("0.0"); run.TOTAL_QTY = total; run.DEPARTMENT_NAME = item.NAME; monthRuns.Add(run); } else { T_BI_DEPARTMENT_MONTH_RUN run = new T_BI_DEPARTMENT_MONTH_RUN(); run.ORG_ID = pageFilter.OrgId; run.MONTH = i; run.MONTHStr = i.Year + "年" + i.Month + "月"; var total = 0; var finish = 0; var overFinish = 0; var temp = total == 0 ? 0 : (double)(finish + overFinish) / total * 100; run.FINISH_RATE = temp.ToString("0"); var temp2 = total == 0 ? 0 : (double)finish / total * 100; run.NORMAL_FINISH_RATE = temp2.ToString("0"); run.TOTAL_QTY = total; run.DEPARTMENT_NAME = item.NAME; monthRuns.Add(run); } } } ret.groupData = monthRuns.OrderByDescending(t => t.MONTH).ToList(); } return ret; }); } #region 获取选矿部、矿山部统计情况 /// /// 获取选矿部、矿山部统计情况 /// /// /// [HttpPost, Route("GetDepartmentAnalyze")] public JsonActionResult> GetDepartmentAnalyze([FromBody] KeywordPageFilter pageFilter) { return SafeExecute>(() => { var dt = DateTime.Now; 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); DateTime year = DateTime.Parse(pageFilter.Parameter1); DateTime yearEnd = DateTime.Parse(pageFilter.Parameter2); TimeSpan span = yearEnd.Subtract(year); int dayDidd = span.Days + 1; if (dayDidd >= 180) throw new Exception("查询时间不能超过6个月!"); var departmentId = Guid.Parse(pageFilter.Keyword); List departSummary = new List(); var taskYear = this.GetEntities(t => t.CREATE_DATE >= year && t.CREATE_DATE<= yearEnd && t.DEPT_DEPARTMENT_ID == departmentId, new BaseFilter(pageFilter.OrgId)).ToList(); newFilter.SelectField = new List { "ID", "PARENT_ID", "NAME", "Nav_Parent", "DEPARTMENT_TYPE" }; var departmentInfos = this.GetEntities(t => !t.IS_DELETED && t.ENABLE_STATUS == 0, newFilter).ToList(); //部门级 var departGroupYear = taskYear.Where(t => t.DEPT_DEPARTMENT_ID != null && t.MOUDLE_NAME != null).ToList(); //车间级 var shopGroupYear = taskYear.Where(t => t.SHOP_DEPARTMENT_ID != null && t.MOUDLE_NAME != null).ToList(); //班组级 var classGroupYear = taskYear.Where(t => t.CLASS_DEPARTMENT_ID != null).ToList(); //分组 if (departGroupYear.Any()) { var groupYearDepart = departGroupYear.GroupBy(t => t.DEPT_DEPARTMENT_ID).ToList(); groupYearDepart.ForEach(t => { T_BI_SYSTEM_RUN_SUMMARY sum = new T_BI_SYSTEM_RUN_SUMMARY(); sum.DEPARTMENT_ID = t.Key.Value; sum.ORG_ID = pageFilter.OrgId; var depart = departmentInfos.FirstOrDefault(m => m.ID == t.Key.Value); sum.DEPARTMENT_NAME = depart?.NAME; sum.TYPE = MS.Domain.Enums.BI.BIEnums.FilterTimeType.LastYear; sum.TOTAL_QTY = t.Where(m => m.DEPT_DEPARTMENT_ID == t.Key.Value).Count(); sum.FINISH_QTY = t.Where(m => m.DEPT_DEPARTMENT_ID == t.Key.Value && m.NOTICE_STATUS == 1).Count(); sum.OVER_FINISH_QTY = t.Where(m => m.DEPT_DEPARTMENT_ID == t.Key.Value && m.NOTICE_STATUS == 2).Count(); sum.UNFINISH_QTY = sum.TOTAL_QTY - sum.FINISH_QTY - sum.OVER_FINISH_QTY; sum.DEPARTMENT_TYPE = FMDepartmentType.部门; var temp = sum.TOTAL_QTY == 0 ? 0 : (double)(sum.FINISH_QTY + sum.OVER_FINISH_QTY) / sum.TOTAL_QTY * 100; sum.FINISH_RATE = temp.ToString("0"); var temp2 = sum.TOTAL_QTY == 0 ? 0 : (double)sum.FINISH_QTY / sum.TOTAL_QTY * 100; sum.NORMAL_FINISH_RATE = temp2.ToString("0"); departSummary.Add(sum); }); } if (shopGroupYear.Any()) { var groupYearDepart = shopGroupYear.GroupBy(t => t.SHOP_DEPARTMENT_ID).ToList(); groupYearDepart.ForEach(t => { T_BI_SYSTEM_RUN_SUMMARY sum = new T_BI_SYSTEM_RUN_SUMMARY(); sum.DEPARTMENT_ID = t.Key.Value; sum.ORG_ID = pageFilter.OrgId; var depart = departmentInfos.FirstOrDefault(m => m.ID == t.Key.Value); sum.DEPARTMENT_NAME = depart?.NAME; sum.PARENT_DEPARTMENT_ID = depart?.PARENT_ID; sum.TYPE = MS.Domain.Enums.BI.BIEnums.FilterTimeType.LastYear; sum.TOTAL_QTY = t.Where(m => m.SHOP_DEPARTMENT_ID == t.Key.Value).Count(); sum.FINISH_QTY = t.Where(m => m.SHOP_DEPARTMENT_ID == t.Key.Value && m.NOTICE_STATUS == 1).Count(); sum.OVER_FINISH_QTY = t.Where(m => m.SHOP_DEPARTMENT_ID == t.Key.Value && m.NOTICE_STATUS == 2).Count(); sum.UNFINISH_QTY = sum.TOTAL_QTY - sum.FINISH_QTY - sum.OVER_FINISH_QTY; sum.DEPARTMENT_TYPE = FMDepartmentType.车间; var temp = sum.TOTAL_QTY == 0 ? 0 : (double)(sum.FINISH_QTY + sum.OVER_FINISH_QTY) / sum.TOTAL_QTY * 100; sum.FINISH_RATE = temp.ToString("0"); var temp2 = sum.TOTAL_QTY == 0 ? 0 : (double)sum.FINISH_QTY / sum.TOTAL_QTY * 100; sum.NORMAL_FINISH_RATE = temp2.ToString("0"); departSummary.Add(sum); }); } if (classGroupYear.Any()) { var groupYearDepart = classGroupYear.GroupBy(t => t.CLASS_DEPARTMENT_ID).ToList(); groupYearDepart.ForEach(t => { T_BI_SYSTEM_RUN_SUMMARY sum = new T_BI_SYSTEM_RUN_SUMMARY(); sum.DEPARTMENT_ID = t.Key.Value; sum.ORG_ID = pageFilter.OrgId; var depart = departmentInfos.FirstOrDefault(m => m.ID == t.Key.Value); sum.DEPARTMENT_NAME = depart?.NAME; sum.PARENT_DEPARTMENT_ID = depart?.PARENT_ID; sum.TYPE = MS.Domain.Enums.BI.BIEnums.FilterTimeType.LastYear; sum.TOTAL_QTY = t.Where(m => m.CLASS_DEPARTMENT_ID == t.Key.Value).Count(); sum.FINISH_QTY = t.Where(m => m.CLASS_DEPARTMENT_ID == t.Key.Value && m.NOTICE_STATUS == 1).Count(); sum.OVER_FINISH_QTY = t.Where(m => m.CLASS_DEPARTMENT_ID == t.Key.Value && m.NOTICE_STATUS == 2).Count(); sum.UNFINISH_QTY = sum.TOTAL_QTY - sum.FINISH_QTY - sum.OVER_FINISH_QTY; sum.DEPARTMENT_TYPE = FMDepartmentType.班组; var temp = sum.TOTAL_QTY == 0 ? 0 : (double)(sum.FINISH_QTY + sum.OVER_FINISH_QTY) / sum.TOTAL_QTY * 100; sum.FINISH_RATE = temp.ToString("0"); var temp2 = sum.TOTAL_QTY == 0 ? 0 : (double)sum.FINISH_QTY / sum.TOTAL_QTY * 100; sum.NORMAL_FINISH_RATE = temp2.ToString("0"); departSummary.Add(sum); }); } return departSummary; }); } #endregion #region 获取选矿部、矿山部统计情况 /// /// 获取选矿部、矿山部统计情况 /// /// /// [HttpPost, Route("GetDepartmentAnalyzeNew")] public JsonActionResult> GetDepartmentAnalyzeNew([FromBody] KeywordPageFilter pageFilter) { return SafeExecute>(() => { var dt = DateTime.Now; 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); DateTime year = DateTime.Parse(pageFilter.Parameter1); DateTime yearEnd = DateTime.Parse(pageFilter.Parameter2); TimeSpan span = yearEnd.Subtract(year); if(year < DateTime.Now.AddMonths(-6)) throw new Exception("查询时间不能小于"+ DateTime.Now.AddMonths(-6)); int dayDidd = span.Days + 1; if (dayDidd >= 180) throw new Exception("查询时间不能超过6个月!"); var departmentId = Guid.Parse(pageFilter.Keyword); List departSummary = new List(); var taskYear = this.GetEntities(t =>!t.IS_DELETED && t.CREATE_DATE >= year && t.CREATE_DATE <= yearEnd, new BaseFilter(pageFilter.OrgId)).ToList(); newFilter.SelectField = new List { "ID", "PARENT_ID", "NAME", "Nav_Parent", "DEPARTMENT_TYPE" }; var departmentInfos = this.GetEntities(t => !t.IS_DELETED && t.ENABLE_STATUS == 0, newFilter).ToList(); //newFilter.SelectField = new List { "ID", "DEPARTMENT_ID", "NAME" }; //var userInfos = this.GetEntities(t => !t.IS_DELETED, newFilter).ToList(); //部门级 var departGroupYear = taskYear.Where(t => t.DEPT_DEPARTMENT_ID != null && t.DEPT_DEPARTMENT_ID == departmentId).ToList(); //车间级 var shopGroupYear = taskYear.Where(t => t.SHOP_DEPARTMENT_ID != null && t.DEPT_DEPARTMENT_ID == departmentId).ToList(); //班组级 var classGroupYear = taskYear.Where(t => t.CLASS_DEPARTMENT_ID != null && t.DEPT_DEPARTMENT_ID == departmentId).ToList(); //分组 if (departGroupYear.Any()) { var groupYearDepart = departGroupYear.GroupBy(t => t.DEPT_DEPARTMENT_ID).ToList(); groupYearDepart.ForEach(t => { T_BI_SYSTEM_RUN_SUMMARY sum = new T_BI_SYSTEM_RUN_SUMMARY(); sum.DEPARTMENT_ID = t.Key.Value; sum.ORG_ID = pageFilter.OrgId; var depart = departmentInfos.FirstOrDefault(m => m.ID == t.Key.Value); sum.DEPARTMENT_NAME = depart?.NAME; sum.TYPE = MS.Domain.Enums.BI.BIEnums.FilterTimeType.LastYear; sum.TOTAL_QTY = t.Where(m => m.DEPT_DEPARTMENT_ID == t.Key.Value).Count(); sum.FINISH_QTY = t.Where(m => m.DEPT_DEPARTMENT_ID == t.Key.Value && m.NOTICE_STATUS == 1).Count(); sum.OVER_FINISH_QTY = t.Where(m => m.DEPT_DEPARTMENT_ID == t.Key.Value && m.NOTICE_STATUS == 2).Count(); sum.UNFINISH_QTY = t.Where(m => m.DEPT_DEPARTMENT_ID == t.Key.Value && m.NOTICE_STATUS == 0).Count(); sum.DEPARTMENT_TYPE = FMDepartmentType.部门; var temp = sum.TOTAL_QTY == 0 ? 0 : (double)(sum.FINISH_QTY + sum.OVER_FINISH_QTY) / sum.TOTAL_QTY * 100; sum.FINISH_RATE = temp.ToString("0"); var temp2 = sum.TOTAL_QTY == 0 ? 0 : (double)sum.FINISH_QTY / sum.TOTAL_QTY * 100; sum.NORMAL_FINISH_RATE = temp2.ToString("0"); departSummary.Add(sum); }); } if (shopGroupYear.Any()) { var groupYearDepart = shopGroupYear.GroupBy(t => t.SHOP_DEPARTMENT_ID).ToList(); groupYearDepart.ForEach(t => { T_BI_SYSTEM_RUN_SUMMARY sum = new T_BI_SYSTEM_RUN_SUMMARY(); sum.DEPARTMENT_ID = t.Key.Value; sum.ORG_ID = pageFilter.OrgId; var depart = departmentInfos.FirstOrDefault(m => m.ID == t.Key.Value); sum.DEPARTMENT_NAME = depart?.NAME; sum.PARENT_DEPARTMENT_ID = depart?.PARENT_ID; sum.TYPE = MS.Domain.Enums.BI.BIEnums.FilterTimeType.LastYear; sum.TOTAL_QTY = t.Where(m => m.SHOP_DEPARTMENT_ID == t.Key.Value).Count(); sum.FINISH_QTY = t.Where(m => m.SHOP_DEPARTMENT_ID == t.Key.Value && m.NOTICE_STATUS == 1).Count(); sum.OVER_FINISH_QTY = t.Where(m => m.SHOP_DEPARTMENT_ID == t.Key.Value && m.NOTICE_STATUS == 2).Count(); sum.UNFINISH_QTY = t.Where(m => m.SHOP_DEPARTMENT_ID == t.Key.Value && m.NOTICE_STATUS == 0).Count(); sum.DEPARTMENT_TYPE = FMDepartmentType.车间; var temp = sum.TOTAL_QTY == 0 ? 0 : (double)(sum.FINISH_QTY + sum.OVER_FINISH_QTY) / sum.TOTAL_QTY * 100; sum.FINISH_RATE = temp.ToString("0"); var temp2 = sum.TOTAL_QTY == 0 ? 0 : (double)sum.FINISH_QTY / sum.TOTAL_QTY * 100; sum.NORMAL_FINISH_RATE = temp2.ToString("0"); departSummary.Add(sum); }); } if (classGroupYear.Any()) { var groupYearDepart = classGroupYear.GroupBy(t => t.CLASS_DEPARTMENT_ID).ToList(); groupYearDepart.ForEach(t => { T_BI_SYSTEM_RUN_SUMMARY sum = new T_BI_SYSTEM_RUN_SUMMARY(); sum.DEPARTMENT_ID = t.Key.Value; sum.ORG_ID = pageFilter.OrgId; var depart = departmentInfos.FirstOrDefault(m => m.ID == t.Key.Value); sum.DEPARTMENT_NAME = depart?.NAME; sum.PARENT_DEPARTMENT_ID = depart?.PARENT_ID; sum.TYPE = MS.Domain.Enums.BI.BIEnums.FilterTimeType.LastYear; sum.TOTAL_QTY = t.Where(m => m.CLASS_DEPARTMENT_ID == t.Key.Value).Count(); sum.FINISH_QTY = t.Where(m => m.CLASS_DEPARTMENT_ID == t.Key.Value && m.NOTICE_STATUS == 1).Count(); sum.OVER_FINISH_QTY = t.Where(m => m.CLASS_DEPARTMENT_ID == t.Key.Value && m.NOTICE_STATUS == 2).Count(); sum.UNFINISH_QTY = t.Where(m => m.CLASS_DEPARTMENT_ID == t.Key.Value && m.NOTICE_STATUS == 0).Count(); sum.DEPARTMENT_TYPE = FMDepartmentType.班组; var temp = sum.TOTAL_QTY == 0 ? 0 : (double)(sum.FINISH_QTY + sum.OVER_FINISH_QTY) / sum.TOTAL_QTY * 100; sum.FINISH_RATE = temp.ToString("0"); var temp2 = sum.TOTAL_QTY == 0 ? 0 : (double)sum.FINISH_QTY / sum.TOTAL_QTY * 100; sum.NORMAL_FINISH_RATE = temp2.ToString("0"); departSummary.Add(sum); }); } return departSummary; }); } #endregion /// /// 作业活动完成率前八(除班组级) /// /// /// [HttpPost, Route("GetDepartmentCompletionSortOld")] public JsonActionResult> GetDepartmentCompletionSortOld([FromBody] KeywordFilter filter) { return SafeExecute>(() => { var departmentType = 3; List completionLists = new List(); List completionSorts = new List(); if (string.IsNullOrEmpty(filter.Keyword)) return completionSorts; var departmentInfo = this.GetEntity(t => t.ID == Guid.Parse(filter.Keyword.ToString())); if (departmentInfo == null) return completionSorts; else departmentType = departmentInfo.DEPARTMENT_TYPE; //BaseFilter baseFilter = new BaseFilter(filter.GetOrgId()); var orgId = APT.Infrastructure.Api.AppContext.CurrentSession.OrgId.Value; var completions = GetEntities(t=>!t.IS_DELETED, new BaseFilter(orgId)).ToList(); if(departmentType == 3) { completionLists = completions.Where(m => m.SHOP_DEPARTMENT_ID != null).GroupBy(t => new { t.SHOP_DEPARTMENT_ID, t.SHOP_DEPARTMENT_NAME }).Select(group => new GroupbyDepartmentId { departmentId = group.Key.SHOP_DEPARTMENT_ID, departmentName = group.Key.SHOP_DEPARTMENT_NAME, doneCount = group.Where(i => i.SHOP_DEPARTMENT_ID == group.Key.SHOP_DEPARTMENT_ID).Sum(m=>m.FINISH_COUNT), TotalCount = group.Where(i => i.SHOP_DEPARTMENT_ID == group.Key.SHOP_DEPARTMENT_ID).Sum(m => m.TOTAL_COUNT), }).ToList(); } if (departmentType == 0) { completionLists = completions.Where(m => m.SHOP_DEPARTMENT_ID != null && m.DEPARTMENT_ID == Guid.Parse(filter.Keyword.ToString())).GroupBy(t => new { t.SHOP_DEPARTMENT_ID, t.SHOP_DEPARTMENT_NAME }).Select(group => new GroupbyDepartmentId { departmentId = group.Key.SHOP_DEPARTMENT_ID, departmentName = group.Key.SHOP_DEPARTMENT_NAME, doneCount = group.Where(i => i.SHOP_DEPARTMENT_ID == group.Key.SHOP_DEPARTMENT_ID).Sum(m => m.FINISH_COUNT), TotalCount = group.Where(i => i.SHOP_DEPARTMENT_ID == group.Key.SHOP_DEPARTMENT_ID).Sum(m => m.TOTAL_COUNT), }).ToList(); } if (departmentType == 1) { completionLists = completions.Where(m => m.TEAM_ID != null && m.SHOP_DEPARTMENT_ID == Guid.Parse(filter.Keyword.ToString())).GroupBy(t => new { t.TEAM_ID, t.TEAM_NAME }).Select(group => new GroupbyDepartmentId { departmentId = group.Key.TEAM_ID, departmentName = group.Key.TEAM_NAME, doneCount = group.Where(i => i.TEAM_ID == group.Key.TEAM_ID).Sum(m => m.FINISH_COUNT), TotalCount = group.Where(i => i.TEAM_ID == group.Key.TEAM_ID).Sum(m => m.TOTAL_COUNT), }).ToList(); } if (departmentType == 2) { completionLists = completions.Where(m => m.TEAM_ID != null && m.SHOP_DEPARTMENT_ID == departmentInfo.PARENT_ID).GroupBy(t => new { t.TEAM_ID, t.TEAM_NAME }).Select(group => new GroupbyDepartmentId { departmentId = group.Key.TEAM_ID, departmentName = group.Key.TEAM_NAME, doneCount = group.Where(i => i.TEAM_ID == group.Key.TEAM_ID).Sum(m => m.FINISH_COUNT), TotalCount = group.Where(i => i.TEAM_ID == group.Key.TEAM_ID).Sum(m => m.TOTAL_COUNT), }).ToList(); } if (completionLists != null && completionLists.Any()) { foreach (var item in completionLists) { T_FM_DEPARTMENT_COMPLETION_SORT completionSort = new T_FM_DEPARTMENT_COMPLETION_SORT(); completionSort.TEAM_ID = item.departmentId; completionSort.TEAM_NAME = item.departmentName; completionSort.TEAM_FINISH_COUNT = item.doneCount; completionSort.TEAM_TOTAL_COUNT = item.TotalCount; completionSort.POST_FINISH_COUNT = 0; completionSort.POST_TOTAL_COUNT = 0; completionSort.HANDOVER_FINISH_COUNT = 0; completionSort.HANDOVER_TOTAL_COUNT = 0; completionSorts.Add(completionSort); } } foreach (var item in completionSorts) { if (item.TEAM_TOTAL_COUNT == 0) { item.CALC = 0; } else { var tempCalc = (double)item.TEAM_FINISH_COUNT / (double)item.TEAM_TOTAL_COUNT; item.CALC = tempCalc; } } List completionSorts1 = completionSorts.OrderByDescending(t => t.CALC).Take(8).ToList(); int i = 1; foreach (var item in completionSorts1) { item.NUM = i; i++; } return completionSorts1; }); } /// /// 作业活动完成率前八 /// /// /// [HttpPost, Route("GetDepartmentCompletionSort")] public JsonActionResult> GetDepartmentCompletionSort([FromBody] KeywordFilter filter) { return SafeExecute>(() => { var orgId = APT.Infrastructure.Api.AppContext.CurrentSession.OrgId.Value; var mineType = 30; var departmentIds = new List(); List completionLists = new List(); List completionSorts = new List(); if (string.IsNullOrEmpty(filter.Keyword)) return completionSorts; var departmentInfo = this.GetEntities(t => t.MineType == int.Parse(filter.Keyword.ToString()), new BaseFilter(orgId)); if (departmentInfo == null || !departmentInfo.Any()) return completionSorts; else departmentIds = departmentInfo.Select(t => t.ID).ToList(); BaseFilter baseFilter = new BaseFilter(orgId); baseFilter.SelectField = new string[] { "ID", "DEPARTMENT_ID" }; var teams = GetEntities(t => !t.IS_DELETED && departmentIds.Contains(t.DEPARTMENT_ID.Value), baseFilter); var teamIds = teams.Select(t => t.ID); var completions = GetEntities(t => !t.IS_DELETED, new BaseFilter(orgId)).ToList(); if (teamIds != null && teamIds.Any()) { completionLists = completions.Where(m => m.TEAM_ID != null && teamIds.Contains(m.TEAM_ID.Value)).GroupBy(t => new { t.TEAM_ID, t.TEAM_NAME }).Select(group => new GroupbyDepartmentId { departmentId = group.Key.TEAM_ID, departmentName = group.Key.TEAM_NAME, doneCount = group.Where(i => i.TEAM_ID == group.Key.TEAM_ID).Sum(m => m.FINISH_COUNT), TotalCount = group.Where(i => i.TEAM_ID == group.Key.TEAM_ID).Sum(m => m.TOTAL_COUNT), }).ToList(); } if (completionLists != null && completionLists.Any()) { foreach (var item in completionLists) { T_FM_DEPARTMENT_COMPLETION_SORT completionSort = new T_FM_DEPARTMENT_COMPLETION_SORT(); completionSort.TEAM_ID = item.departmentId; completionSort.TEAM_NAME = item.departmentName; completionSort.TEAM_FINISH_COUNT = item.doneCount; completionSort.TEAM_TOTAL_COUNT = item.TotalCount; completionSort.POST_FINISH_COUNT = 0; completionSort.POST_TOTAL_COUNT = 0; completionSort.HANDOVER_FINISH_COUNT = 0; completionSort.HANDOVER_TOTAL_COUNT = 0; completionSorts.Add(completionSort); } } foreach (var item in completionSorts) { if (item.TEAM_TOTAL_COUNT == 0) { item.CALC = 0; } else { var tempCalc = (double)item.TEAM_FINISH_COUNT / (double)item.TEAM_TOTAL_COUNT; item.CALC = tempCalc; } } List completionSorts1 = completionSorts.OrderByDescending(t => t.CALC).Take(8).ToList(); if (!string.IsNullOrEmpty(filter.Parameter1)) { var param = int.Parse(filter.Parameter1.ToString()); completionSorts1 = completionSorts.OrderByDescending(t => t.CALC).Take(param).ToList(); } int i = 1; foreach (var item in completionSorts1) { item.NUM = i; i++; } return completionSorts1; }); } /// /// 作业活动完成率前八(详情页) /// /// /// [HttpPost, Route("GetClassCompletionSort")] public JsonActionResult GetClassCompletionSort([FromBody] KeywordFilter filter) { return SafeExecute(() => { dynamic ret = new System.Dynamic.ExpandoObject(); var orgId = APT.Infrastructure.Api.AppContext.CurrentSession.OrgId.Value; var mineType = 30; var departmentIds = new List(); List completionLists = new List(); List completionSorts = new List(); if (string.IsNullOrEmpty(filter.Keyword)) return ret; var departmentInfo = this.GetEntities(t => t.MineType == int.Parse(filter.Keyword.ToString()), new BaseFilter(orgId)); if (departmentInfo == null || !departmentInfo.Any()) return ret; else departmentIds = departmentInfo.Select(t => t.ID).ToList(); BaseFilter baseFilter = new BaseFilter(orgId); baseFilter.SelectField = new string[] { "ID", "DEPARTMENT_ID" }; var teams = GetEntities(t => !t.IS_DELETED && departmentIds.Contains(t.DEPARTMENT_ID.Value), baseFilter); var teamIds = teams.Select(t => t.ID); var completions = GetEntities(t => !t.IS_DELETED && t.TEAM_ID != null && teamIds.Contains(t.TEAM_ID.Value), new BaseFilter(orgId)).ToList(); if (completions != null && completions.Any()) { completionSorts = completions.GroupBy(t => new { t.MONTH,t.MONTHStr }).Select(group => new T_FM_DEPARTMENT_COMPLETION { MONTH = group.Key.MONTH, MONTHStr = group.Key.MONTH.Year + "-" + group.Key.MONTH.Month, FINISH_COUNT = group.Where(i => i.MONTH == group.Key.MONTH).Sum(m => m.FINISH_COUNT), ONTIME_COUNT = group.Where(i => i.MONTH == group.Key.MONTH).Sum(m => m.ONTIME_COUNT), TOTAL_COUNT = group.Where(i => i.MONTH == group.Key.MONTH).Sum(m => m.TOTAL_COUNT), }).ToList(); completionLists = completions.GroupBy(t => new { t.TEAM_ID, t.TEAM_NAME,t.SHOP_DEPARTMENT_ID,t.SHOP_DEPARTMENT_NAME }).Select(group => new GroupbyDepartmentCompletion { shopId = group.Key.SHOP_DEPARTMENT_ID, shopName = group.Key.SHOP_DEPARTMENT_NAME, teamId = group.Key.TEAM_ID, teamName = group.Key.TEAM_NAME, teamDoneCount = group.Where(i => i.TEAM_ID == group.Key.TEAM_ID && i.SHOP_DEPARTMENT_ID == group.Key.SHOP_DEPARTMENT_ID).Sum(m => m.FINISH_COUNT), teamOntimeCount = group.Where(i => i.TEAM_ID == group.Key.TEAM_ID && i.SHOP_DEPARTMENT_ID == group.Key.SHOP_DEPARTMENT_ID).Sum(m => m.ONTIME_COUNT), teamUndoneCount = group.Where(i => i.TEAM_ID == group.Key.TEAM_ID && i.SHOP_DEPARTMENT_ID == group.Key.SHOP_DEPARTMENT_ID).Sum(m => m.WAITTING_COUNT), teamTotalCount = group.Where(i => i.TEAM_ID == group.Key.TEAM_ID && i.SHOP_DEPARTMENT_ID == group.Key.SHOP_DEPARTMENT_ID).Sum(m => m.TOTAL_COUNT), }).ToList(); } if (completionSorts != null && completionSorts.Any()) { foreach (var item in completionSorts) { if (item.TOTAL_COUNT == 0) { item.FINISH_RATE = 0; item.NORMAL_FINISH_RATE = 0; } else { item.FINISH_RATE = Math.Round((double)item.FINISH_COUNT / (double)item.TOTAL_COUNT * 100, 2); item.NORMAL_FINISH_RATE = Math.Round((double)item.ONTIME_COUNT / (double)item.TOTAL_COUNT * 100, 2); } } ret.rateData = completionSorts.OrderBy(t=>t.MONTH).ToList(); } if (completionLists != null && completionLists.Any()) { foreach (var item in completionLists) { item.shopDoneCount = completionLists.Where(i => i.shopId == item.shopId).Sum(m => m.teamDoneCount); item.shopOntimeCount = completionLists.Where(i => i.shopId == item.shopId).Sum(m => m.teamOntimeCount); item.shopTotalCount = completionLists.Where(i => i.shopId == item.shopId).Sum(m => m.teamTotalCount); if (item.shopTotalCount == 0) { item.shopDoneRate = 0; item.shopOverDoneRate = 0; } else { item.shopDoneRate = Math.Round((double)item.shopDoneCount / (double)item.shopTotalCount * 100, 2); item.shopOverDoneRate = Math.Round((double)item.shopOntimeCount / (double)item.shopTotalCount * 100, 2); } if (item.teamTotalCount == 0) { item.teamDoneRate = 0; item.teamOverDoneRate = 0; } else { item.teamDoneRate = Math.Round((double)item.teamDoneCount / (double)item.teamTotalCount * 100, 2); item.teamOverDoneRate = Math.Round((double)item.teamOntimeCount / (double)item.teamTotalCount * 100, 2); } } ret.retData = completionLists.OrderBy(t=>t.shopName).ThenByDescending(m=>m.teamOverDoneRate).ToList(); } return ret; }); } /// /// 首页工作票完成数前八 /// /// /// [HttpPost, Route("GetJobCompletionSortOld")] public JsonActionResult> GetJobCompletionSortOld([FromBody] KeywordFilter filter) { return SafeExecute>(() => { var departmentType = 3; List completionLists = new List(); List completionSorts = new List(); if (string.IsNullOrEmpty(filter.Keyword)) return completionSorts; var departmentInfo = this.GetEntity(t => t.ID == Guid.Parse(filter.Keyword.ToString())); if (departmentInfo == null) return completionSorts; else departmentType = departmentInfo.DEPARTMENT_TYPE; var orgId = APT.Infrastructure.Api.AppContext.CurrentSession.OrgId.Value; var completions = GetEntities(t => !t.IS_DELETED, new BaseFilter(orgId)).ToList(); if (departmentType == 3) { completionLists = completions.Where(m=>m.SHOP_DEPARTMENT_ID !=null).GroupBy(t => new { t.SHOP_DEPARTMENT_ID, t.SHOP_DEPARTMENT_NAME }).Select(group => new GroupbyDepartmentId { departmentId = group.Key.SHOP_DEPARTMENT_ID, departmentName = group.Key.SHOP_DEPARTMENT_NAME, doneCount = group.Where(i => i.SHOP_DEPARTMENT_ID == group.Key.SHOP_DEPARTMENT_ID).Sum(m => m.ONTIME_COUNT), timeOverCount = group.Where(i => i.SHOP_DEPARTMENT_ID == group.Key.SHOP_DEPARTMENT_ID).Sum(m => m.OVER_FINISH_COUNT), TotalCount = group.Where(i => i.SHOP_DEPARTMENT_ID == group.Key.SHOP_DEPARTMENT_ID).Sum(m => m.TOTAL_COUNT), }).ToList(); } if (departmentType == 0) { completionLists = completions.Where(m => m.SHOP_DEPARTMENT_ID != null && m.DEPARTMENT_ID == Guid.Parse(filter.Keyword.ToString())).GroupBy(t => new { t.SHOP_DEPARTMENT_ID, t.SHOP_DEPARTMENT_NAME }).Select(group => new GroupbyDepartmentId { departmentId = group.Key.SHOP_DEPARTMENT_ID, departmentName = group.Key.SHOP_DEPARTMENT_NAME, doneCount = group.Where(i => i.SHOP_DEPARTMENT_ID == group.Key.SHOP_DEPARTMENT_ID).Sum(m => m.ONTIME_COUNT), timeOverCount = group.Where(i => i.SHOP_DEPARTMENT_ID == group.Key.SHOP_DEPARTMENT_ID).Sum(m => m.OVER_FINISH_COUNT), TotalCount = group.Where(i => i.SHOP_DEPARTMENT_ID == group.Key.SHOP_DEPARTMENT_ID).Sum(m => m.TOTAL_COUNT), }).ToList(); } if (departmentType == 1) { completionLists = completions.Where(m => m.TEAM_ID != null && m.SHOP_DEPARTMENT_ID == Guid.Parse(filter.Keyword.ToString())).GroupBy(t => new { t.TEAM_ID, t.TEAM_NAME }).Select(group => new GroupbyDepartmentId { departmentId = group.Key.TEAM_ID, departmentName = group.Key.TEAM_NAME, doneCount = group.Where(i => i.TEAM_ID == group.Key.TEAM_ID).Sum(m => m.ONTIME_COUNT), timeOverCount = group.Where(i => i.TEAM_ID == group.Key.TEAM_ID).Sum(m => m.OVER_FINISH_COUNT), TotalCount = group.Where(i => i.TEAM_ID == group.Key.TEAM_ID).Sum(m => m.TOTAL_COUNT), }).ToList(); } if (departmentType == 2) { completionLists = completions.Where(m=> m.TEAM_ID != null && m.SHOP_DEPARTMENT_ID == departmentInfo.PARENT_ID).GroupBy(t => new { t.TEAM_ID, t.TEAM_NAME }).Select(group => new GroupbyDepartmentId { departmentId = group.Key.TEAM_ID, departmentName = group.Key.TEAM_NAME, doneCount = group.Where(i => i.TEAM_ID == group.Key.TEAM_ID).Sum(m => m.ONTIME_COUNT), timeOverCount = group.Where(i => i.TEAM_ID == group.Key.TEAM_ID).Sum(m => m.OVER_FINISH_COUNT), TotalCount = group.Where(i => i.TEAM_ID == group.Key.TEAM_ID).Sum(m => m.TOTAL_COUNT), }).ToList(); } if (completionLists != null && completionLists.Any()) { foreach (var item in completionLists) { T_FM_WORK_TICKET_COMPLETION completionSort = new T_FM_WORK_TICKET_COMPLETION(); completionSort.TEAM_ID = item.departmentId; completionSort.TEAM_NAME = item.departmentName; completionSort.FINISH_COUNT = item.doneCount; completionSort.OVER_FINISH_COUNT = item.timeOverCount; completionSort.TOTAL_COUNT = item.TotalCount; completionSort.WAITTING_COUNT = item.TotalCount - item.doneCount - item.timeOverCount; completionSorts.Add(completionSort); } } foreach (var item in completionSorts) { if (item.TOTAL_COUNT == 0) { item.CALC = 0; } else { var tempCalc = ((double)item.FINISH_COUNT + (double)item.OVER_FINISH_COUNT) / (double)item.TOTAL_COUNT; item.CALC = tempCalc; } } List completionSorts1 = completionSorts.OrderByDescending(t => t.CALC).Take(8).ToList(); int i = 1; foreach (var item in completionSorts1) { item.NUM = i; i++; } return completionSorts1; }); } /// /// 首页工作票完成数前八(班组级) /// /// /// [HttpPost, Route("GetJobCompletionSort")] public JsonActionResult> GetJobCompletionSort([FromBody] KeywordFilter filter) { return SafeExecute>(() => { var orgId = APT.Infrastructure.Api.AppContext.CurrentSession.OrgId.Value; var MineType = 30; var departmentIds = new List(); List completionLists = new List(); List completionSorts = new List(); if (string.IsNullOrEmpty(filter.Keyword)) return completionSorts; var departmentInfo = this.GetEntities(t => t.MineType == int.Parse(filter.Keyword.ToString()), new BaseFilter(orgId)); if (departmentInfo == null || !departmentInfo.Any()) return completionSorts; else departmentIds = departmentInfo.Select(t => t.ID).ToList(); var completions = GetEntities(t => !t.IS_DELETED, new BaseFilter(orgId)).ToList(); if (departmentIds !=null && departmentIds.Any()) { completionLists = completions.Where(m => m.TEAM_ID != null && departmentIds.Contains(m.TEAM_ID.Value)).GroupBy(t => new { t.TEAM_ID, t.TEAM_NAME }).Select(group => new GroupbyDepartmentId { departmentId = group.Key.TEAM_ID, departmentName = group.Key.TEAM_NAME, doneCount = group.Where(i => i.TEAM_ID == group.Key.TEAM_ID).Sum(m => m.ONTIME_COUNT), timeOverCount = group.Where(i => i.TEAM_ID == group.Key.TEAM_ID).Sum(m => m.OVER_FINISH_COUNT), TotalCount = group.Where(i => i.TEAM_ID == group.Key.TEAM_ID).Sum(m => m.TOTAL_COUNT), }).ToList(); } if (completionLists != null && completionLists.Any()) { foreach (var item in completionLists) { T_FM_WORK_TICKET_COMPLETION completionSort = new T_FM_WORK_TICKET_COMPLETION(); completionSort.TEAM_ID = item.departmentId; completionSort.TEAM_NAME = item.departmentName; completionSort.FINISH_COUNT = item.doneCount; completionSort.OVER_FINISH_COUNT = item.timeOverCount; completionSort.TOTAL_COUNT = item.TotalCount; completionSort.WAITTING_COUNT = item.TotalCount - item.doneCount - item.timeOverCount; completionSorts.Add(completionSort); } } foreach (var item in completionSorts) { if (item.TOTAL_COUNT == 0) { item.CALC = 0; } else { var tempCalc = ((double)item.FINISH_COUNT + (double)item.OVER_FINISH_COUNT) / (double)item.TOTAL_COUNT; item.CALC = tempCalc; } } List completionSorts1 = completionSorts.OrderByDescending(t => t.CALC).Take(8).ToList(); int i = 1; foreach (var item in completionSorts1) { item.NUM = i; i++; } return completionSorts1; }); } /// /// 首页工作票完成数前八(车间级) /// /// /// [HttpPost, Route("GetJobShopCompletionSort")] public JsonActionResult> GetJobShopCompletionSort([FromBody] KeywordFilter filter) { return SafeExecute>(() => { var orgId = APT.Infrastructure.Api.AppContext.CurrentSession.OrgId.Value; var MineType = 30; var departmentIds = new List(); List completionLists = new List(); List completionSorts = new List(); if (string.IsNullOrEmpty(filter.Keyword)) return completionSorts; var departmentInfo = this.GetEntities(t => t.MineType == int.Parse(filter.Keyword.ToString()), new BaseFilter(orgId)); if (departmentInfo == null || !departmentInfo.Any()) return completionSorts; else departmentIds = departmentInfo.Select(t => t.ID).ToList(); var completions = GetEntities(t => !t.IS_DELETED, new BaseFilter(orgId)).ToList(); if (departmentIds != null && departmentIds.Any()) { completionLists = completions.Where(m => m.SHOP_DEPARTMENT_ID != null && departmentIds.Contains(m.SHOP_DEPARTMENT_ID.Value)).GroupBy(t => new { t.SHOP_DEPARTMENT_ID, t.SHOP_DEPARTMENT_NAME }).Select(group => new GroupbyDepartmentId { departmentId = group.Key.SHOP_DEPARTMENT_ID, departmentName = group.Key.SHOP_DEPARTMENT_NAME, doneCount = group.Where(i => i.TEAM_ID == group.Key.SHOP_DEPARTMENT_ID).Sum(m => m.ONTIME_COUNT), timeOverCount = group.Where(i => i.TEAM_ID == group.Key.SHOP_DEPARTMENT_ID).Sum(m => m.OVER_FINISH_COUNT), TotalCount = group.Where(i => i.TEAM_ID == group.Key.SHOP_DEPARTMENT_ID).Sum(m => m.TOTAL_COUNT), }).ToList(); } if (completionLists != null && completionLists.Any()) { foreach (var item in completionLists) { T_FM_WORK_TICKET_COMPLETION completionSort = new T_FM_WORK_TICKET_COMPLETION(); completionSort.TEAM_ID = item.departmentId; completionSort.TEAM_NAME = item.departmentName; completionSort.FINISH_COUNT = item.doneCount; completionSort.OVER_FINISH_COUNT = item.timeOverCount; completionSort.TOTAL_COUNT = item.TotalCount; completionSort.WAITTING_COUNT = item.TotalCount - item.doneCount - item.timeOverCount; completionSorts.Add(completionSort); } } foreach (var item in completionSorts) { if (item.TOTAL_COUNT == 0) { item.CALC = 0; } else { var tempCalc = ((double)item.FINISH_COUNT + (double)item.OVER_FINISH_COUNT) / (double)item.TOTAL_COUNT; item.CALC = tempCalc; } } List completionSorts1 = completionSorts.OrderByDescending(t => t.CALC).Take(8).ToList(); int i = 1; foreach (var item in completionSorts1) { item.NUM = i; i++; } return completionSorts1; }); } /// /// 首页工作票完成数前八(详情页) /// /// /// [HttpPost, Route("GetJobCompletionDetail")] public JsonActionResult GetJobCompletionDetail([FromBody] KeywordFilter filter) { return SafeExecute(() => { dynamic ret = new System.Dynamic.ExpandoObject(); var orgId = APT.Infrastructure.Api.AppContext.CurrentSession.OrgId.Value; var mineType = 30; var departmentIds = new List(); List completionLists = new List(); List completionSorts = new List(); if (string.IsNullOrEmpty(filter.Keyword)) return ret; var departmentInfo = this.GetEntities(t => t.MineType == int.Parse(filter.Keyword.ToString()), new BaseFilter(orgId)); if (departmentInfo == null || !departmentInfo.Any()) return ret; else departmentIds = departmentInfo.Select(t => t.ID).ToList(); var completions = GetEntities(t => !t.IS_DELETED && t.TEAM_ID != null && departmentIds.Contains(t.TEAM_ID.Value), new BaseFilter(orgId)).ToList(); if (completions != null && completions.Any()) { completionSorts = completions.GroupBy(t => new { t.MONTH, t.MONTHStr }).Select(group => new T_FM_WORK_TICKET_COMPLETION { MONTH = group.Key.MONTH, MONTHStr = group.Key.MONTH.Year +"-"+ group.Key.MONTH.Month, FINISH_COUNT = group.Where(i => i.MONTH == group.Key.MONTH).Sum(m => m.FINISH_COUNT), ONTIME_COUNT = group.Where(i => i.MONTH == group.Key.MONTH).Sum(m => m.ONTIME_COUNT), TOTAL_COUNT = group.Where(i => i.MONTH == group.Key.MONTH).Sum(m => m.TOTAL_COUNT), }).ToList(); completionLists = completions.GroupBy(t => new { t.TEAM_ID, t.TEAM_NAME, t.SHOP_DEPARTMENT_ID, t.SHOP_DEPARTMENT_NAME }).Select(group => new GroupbyDepartmentCompletion { shopId = group.Key.SHOP_DEPARTMENT_ID, shopName = group.Key.SHOP_DEPARTMENT_NAME, teamId = group.Key.TEAM_ID, teamName = group.Key.TEAM_NAME, teamDoneCount = group.Where(i => i.TEAM_ID == group.Key.TEAM_ID && i.SHOP_DEPARTMENT_ID == group.Key.SHOP_DEPARTMENT_ID).Sum(m => m.FINISH_COUNT), teamOntimeCount = group.Where(i => i.TEAM_ID == group.Key.TEAM_ID && i.SHOP_DEPARTMENT_ID == group.Key.SHOP_DEPARTMENT_ID).Sum(m => m.ONTIME_COUNT), teamUndoneCount = group.Where(i => i.TEAM_ID == group.Key.TEAM_ID && i.SHOP_DEPARTMENT_ID == group.Key.SHOP_DEPARTMENT_ID).Sum(m => m.WAITTING_COUNT), teamTotalCount = group.Where(i => i.TEAM_ID == group.Key.TEAM_ID && i.SHOP_DEPARTMENT_ID == group.Key.SHOP_DEPARTMENT_ID).Sum(m => m.TOTAL_COUNT), }).ToList(); } if (completionSorts != null && completionSorts.Any()) { foreach (var item in completionSorts) { if (item.TOTAL_COUNT == 0) { item.FINISH_RATE = 0; item.NORMAL_FINISH_RATE = 0; } else { item.FINISH_RATE = Math.Round((double)item.FINISH_COUNT / (double)item.TOTAL_COUNT * 100, 2); item.NORMAL_FINISH_RATE = Math.Round((double)item.ONTIME_COUNT / (double)item.TOTAL_COUNT * 100, 2); } } ret.rateData = completionSorts.OrderBy(t => t.MONTH).ToList(); } if (completionLists != null && completionLists.Any()) { foreach (var item in completionLists) { item.shopDoneCount = completionLists.Where(i => i.shopId == item.shopId).Sum(m => m.teamDoneCount); item.shopOntimeCount = completionLists.Where(i => i.shopId == item.shopId).Sum(m => m.teamOntimeCount); item.shopTotalCount = completionLists.Where(i => i.shopId == item.shopId).Sum(m => m.teamTotalCount); if (item.shopTotalCount == 0) { item.shopDoneRate = 0; item.shopOverDoneRate = 0; } else { item.shopDoneRate = Math.Round((double)item.shopDoneCount / (double)item.shopTotalCount * 100, 2); item.shopOverDoneRate = Math.Round((double)item.shopOntimeCount / (double)item.shopTotalCount * 100, 2); } if (item.teamTotalCount == 0) { item.teamDoneRate = 0; item.teamOverDoneRate = 0; } else { item.teamDoneRate = Math.Round((double)item.teamDoneCount / (double)item.teamTotalCount * 100, 2); item.teamOverDoneRate = Math.Round((double)item.teamOntimeCount / (double)item.teamTotalCount * 100, 2); } } ret.retData = completionLists.OrderBy(t => t.shopName).ThenByDescending(m => m.teamOverDoneRate).ToList(); } return ret; }); } /// /// 作业完成率前八(除班组级) /// /// /// [HttpPost, Route("GetJobDepartmentCompletionSort")] public JsonActionResult> GetJobDepartmentCompletionSort([FromBody] KeywordFilter filter) { return SafeExecute>(() => { var departmentType = 3; List completionLists = new List(); List completionSorts = new List(); if (string.IsNullOrEmpty(filter.Keyword)) return completionSorts; var departmentInfo = this.GetEntity(t => t.ID == Guid.Parse(filter.Keyword.ToString())); if (departmentInfo == null) return completionSorts; else departmentType = departmentInfo.DEPARTMENT_TYPE; //BaseFilter baseFilter = new BaseFilter(filter.GetOrgId()); var orgId = APT.Infrastructure.Api.AppContext.CurrentSession.OrgId.Value; var completions = GetEntities(t => !t.IS_DELETED, new BaseFilter(orgId)).ToList(); if (departmentType == 3) { completionLists = completions.Where(m => m.SHOP_DEPARTMENT_ID != null).GroupBy(t => new { t.SHOP_DEPARTMENT_ID, t.SHOP_DEPARTMENT_NAME, t.FORM_NAME }).Select(group => new GroupbyDepartmentId { formName = group.Key.FORM_NAME, departmentId = group.Key.SHOP_DEPARTMENT_ID, departmentName = group.Key.SHOP_DEPARTMENT_NAME, doneCount = group.Where(i => i.SHOP_DEPARTMENT_ID == group.Key.SHOP_DEPARTMENT_ID && i.FORM_NAME == group.Key.FORM_NAME).Sum(m => m.FINISH_COUNT), TotalCount = group.Where(i => i.SHOP_DEPARTMENT_ID == group.Key.SHOP_DEPARTMENT_ID && i.FORM_NAME == group.Key.FORM_NAME).Sum(m => m.TOTAL_COUNT), }).ToList(); } if (departmentType == 0) { completionLists = completions.Where(m => m.SHOP_DEPARTMENT_ID != null && m.DEPARTMENT_ID == Guid.Parse(filter.Keyword.ToString())).GroupBy(t => new { t.SHOP_DEPARTMENT_ID, t.SHOP_DEPARTMENT_NAME, t.FORM_NAME }).Select(group => new GroupbyDepartmentId { formName = group.Key.FORM_NAME, departmentId = group.Key.SHOP_DEPARTMENT_ID, departmentName = group.Key.SHOP_DEPARTMENT_NAME, doneCount = group.Where(i => i.SHOP_DEPARTMENT_ID == group.Key.SHOP_DEPARTMENT_ID && i.FORM_NAME == group.Key.FORM_NAME).Sum(m => m.FINISH_COUNT), TotalCount = group.Where(i => i.SHOP_DEPARTMENT_ID == group.Key.SHOP_DEPARTMENT_ID && i.FORM_NAME == group.Key.FORM_NAME).Sum(m => m.TOTAL_COUNT), }).ToList(); } if (departmentType == 1) { completionLists = completions.Where(m => m.TEAM_ID != null && m.SHOP_DEPARTMENT_ID == Guid.Parse(filter.Keyword.ToString())).GroupBy(t => new { t.TEAM_ID, t.TEAM_NAME, t.FORM_NAME }).Select(group => new GroupbyDepartmentId { formName = group.Key.FORM_NAME, departmentId = group.Key.TEAM_ID, departmentName = group.Key.TEAM_NAME, doneCount = group.Where(i => i.TEAM_ID == group.Key.TEAM_ID && i.FORM_NAME == group.Key.FORM_NAME).Sum(m => m.FINISH_COUNT), TotalCount = group.Where(i => i.TEAM_ID == group.Key.TEAM_ID && i.FORM_NAME == group.Key.FORM_NAME).Sum(m => m.TOTAL_COUNT), }).ToList(); } if (departmentType == 2) { completionLists = completions.Where(m => m.TEAM_ID != null && m.SHOP_DEPARTMENT_ID == departmentInfo.PARENT_ID).GroupBy(t => new { t.TEAM_ID, t.TEAM_NAME, t.FORM_NAME }).Select(group => new GroupbyDepartmentId { formName = group.Key.FORM_NAME, departmentId = group.Key.TEAM_ID, departmentName = group.Key.TEAM_NAME, doneCount = group.Where(i => i.TEAM_ID == group.Key.TEAM_ID && i.FORM_NAME == group.Key.FORM_NAME).Sum(m => m.FINISH_COUNT), TotalCount = group.Where(i => i.TEAM_ID == group.Key.TEAM_ID && i.FORM_NAME == group.Key.FORM_NAME).Sum(m => m.TOTAL_COUNT), }).ToList(); } if (completionLists != null && completionLists.Any()) { var groupCompletion = completionLists.GroupBy(t => new { t.departmentId, t.departmentName }).Select(group => new T_FM_DEPARTMENT_COMPLETION_SORT { TEAM_ID = group.Key.departmentId, TEAM_NAME = group.Key.departmentName, TEAM_FINISH_COUNT = group.Where(i => i.departmentId == group.Key.departmentId && i.formName == "一般作业活动记录").Sum(m => m.doneCount), TEAM_TOTAL_COUNT = group.Where(i => i.departmentId == group.Key.departmentId && i.formName == "一般作业活动记录").Sum(m => m.TotalCount), POST_FINISH_COUNT = group.Where(i => i.departmentId == group.Key.departmentId && i.formName == "关键/许可作业活动记录").Sum(m => m.doneCount), POST_TOTAL_COUNT = group.Where(i => i.departmentId == group.Key.departmentId && i.formName == "关键/许可作业活动记录").Sum(m => m.TotalCount), }).ToList(); foreach (var item in groupCompletion) { T_FM_DEPARTMENT_COMPLETION_SORT completionSort = new T_FM_DEPARTMENT_COMPLETION_SORT(); completionSort.TEAM_ID = item.TEAM_ID; completionSort.TEAM_NAME = item.TEAM_NAME; completionSort.TEAM_FINISH_COUNT = item.TEAM_FINISH_COUNT; completionSort.TEAM_TOTAL_COUNT = item.TEAM_TOTAL_COUNT; completionSort.POST_FINISH_COUNT = item.POST_FINISH_COUNT; completionSort.POST_TOTAL_COUNT = item.POST_TOTAL_COUNT; completionSort.HANDOVER_FINISH_COUNT = 0; completionSort.HANDOVER_TOTAL_COUNT = 0; if (item.TEAM_TOTAL_COUNT == 0) { completionSort.CALC = 0; } else { var tempCalc = (double)item.TEAM_FINISH_COUNT / (double)item.TEAM_TOTAL_COUNT; completionSort.CALC = tempCalc; } if (item.POST_TOTAL_COUNT == 0) { completionSort.CALC_LICENSE = 0; } else { var tempCalc = (double)item.POST_FINISH_COUNT / (double)item.POST_TOTAL_COUNT; completionSort.CALC_LICENSE = tempCalc; } completionSorts.Add(completionSort); } } List completionSorts1 = completionSorts.OrderByDescending(t => (t.CALC+ t.CALC_LICENSE)/2).Take(8).ToList(); int i = 1; foreach (var item in completionSorts1) { item.NUM = i; i++; } return completionSorts1; }); } /// /// 作业完成率前八(班组级别) /// /// /// [HttpPost, Route("GetJobClassCompletionSort")] public JsonActionResult> GetJobClassCompletionSort([FromBody] KeywordFilter filter) { return SafeExecute>(() => { List completionLists = new List(); List completionSorts = new List(); var orgId = APT.Infrastructure.Api.AppContext.CurrentSession.OrgId.Value; var completions = GetEntities(t => !t.IS_DELETED && t.TEAM_NAME == filter.Keyword.ToString(), new BaseFilter(orgId)).ToList(); completionLists = completions.GroupBy(t => t.FORM_NAME).Select(group => new GroupbyDepartmentId { formName = group.Key, departmentName = filter.Keyword.ToString(), doneCount = group.Where(i => i.FORM_NAME == group.Key).Sum(m => m.FINISH_COUNT), TotalCount = group.Where(i => i.FORM_NAME == group.Key).Sum(m => m.TOTAL_COUNT), }).ToList(); if (completionLists != null && completionLists.Any()) { var groupCompletion = completionLists.GroupBy(t => t.departmentName ).Select(group => new T_FM_DEPARTMENT_COMPLETION_SORT { TEAM_NAME = group.Key, TEAM_FINISH_COUNT = group.Where(i => i.departmentName == group.Key && i.formName == "一般作业活动记录").Sum(m => m.doneCount), TEAM_TOTAL_COUNT = group.Where(i => i.departmentName == group.Key && i.formName == "一般作业活动记录").Sum(m => m.TotalCount), POST_FINISH_COUNT = group.Where(i => i.departmentName == group.Key && i.formName == "关键/许可作业活动记录").Sum(m => m.doneCount), POST_TOTAL_COUNT = group.Where(i => i.departmentName == group.Key && i.formName == "关键/许可作业活动记录").Sum(m => m.TotalCount), }).ToList(); foreach (var item in groupCompletion) { T_FM_DEPARTMENT_COMPLETION_SORT completionSort = new T_FM_DEPARTMENT_COMPLETION_SORT(); completionSort.TEAM_NAME = item.TEAM_NAME; completionSort.TEAM_FINISH_COUNT = item.TEAM_FINISH_COUNT; completionSort.TEAM_TOTAL_COUNT = item.TEAM_TOTAL_COUNT; completionSort.POST_FINISH_COUNT = item.POST_FINISH_COUNT; completionSort.POST_TOTAL_COUNT = item.POST_TOTAL_COUNT; completionSort.HANDOVER_FINISH_COUNT = 0; completionSort.HANDOVER_TOTAL_COUNT = 0; if (item.TEAM_TOTAL_COUNT == 0) { completionSort.CALC = 0; } else { var tempCalc = (double)item.TEAM_FINISH_COUNT / (double)item.TEAM_TOTAL_COUNT; completionSort.CALC = tempCalc; } if (item.POST_TOTAL_COUNT == 0) { completionSort.CALC_LICENSE = 0; } else { var tempCalc = (double)item.POST_FINISH_COUNT / (double)item.POST_TOTAL_COUNT; completionSort.CALC_LICENSE = tempCalc; } completionSorts.Add(completionSort); } } return completionSorts; }); } /// /// 各部门车间班组负责人、分管领导详情 /// /// /// [HttpPost, Route("GetDepartmentInfos")] public JsonActionResult GetDepartmentInfos([FromBody] KeywordFilter filter) { return SafeExecute(() => { List completionSorts = new List(); dynamic ret = new System.Dynamic.ExpandoObject(); var orgId = APT.Infrastructure.Api.AppContext.CurrentSession.OrgId.Value; var filter = new BaseFilter(orgId); filter.SelectField = new List { "ID","NAME", "DEPARTMENT_TYPE", "Nav_User.NAME","Nav_ChargeUser.NAME"}; var departs = this.GetEntities(t => !t.IS_DELETED, filter); if (departs != null && departs.Any()) { foreach (var depart in departs) { DepartmentInfos info = new DepartmentInfos(); info.NAME = depart.NAME; info.USER_NAME = depart.Nav_User?.NAME; info.CHARGE_NAME = depart.Nav_ChargeUser?.NAME; info.DEPARTMENT_TYPE = depart.DEPARTMENT_TYPE; completionSorts.Add(info); } } List completionSorts1 = completionSorts.Where(t => t.DEPARTMENT_TYPE == 3).ToList(); var temps = completionSorts.Where(t => t.DEPARTMENT_TYPE != 3).OrderBy(m => m.DEPARTMENT_TYPE).ToList(); completionSorts1.AddRange(temps); ret.retData = completionSorts1; List approveUsers = new List(); filter.SelectField = new List { "NAME", "DEPARTMENT_TYPE" }; var approveRoles = this.GetEntities(t => !t.IS_DELETED, filter); var roleIds = approveRoles.Select(t => t.ID).ToList(); filter.SelectField = new List { "NAME", "DEPARTMENT_ID", "Nav_Department.NAME", "Nav_ApproveRole.NAME" }; var userInfos = this.GetEntities(t => !t.IS_DELETED && roleIds.Contains((Guid)t.APPROVE_ROLE_ID), filter); var departIds = departs.Select(t=>t.ID).ToList(); if (approveRoles != null && approveRoles.Any()) { foreach (var role in approveRoles) { ApproveUserInfos info = new ApproveUserInfos(); info.APPROVE_ROLE_NAME = role.NAME; info.DEPARTMENT_TYPE = role.DEPARTMENT_TYPE; info.DEPARTMENT_NAME = Enum.GetName(typeof(FMDepartmentType), role.DEPARTMENT_TYPE); var users = userInfos.Where(t => t.APPROVE_ROLE_ID == role.ID).ToList(); if (users != null && users.Any()) { var userDepartIds = users.Select(t => t.DEPARTMENT_ID).ToList(); foreach (var user in users) { info.USER_INFO = user.Nav_Department?.NAME + ":" + user.NAME + "
" + info.USER_INFO; } var departAnother = departs.Where(t => t.DEPARTMENT_TYPE == role.DEPARTMENT_TYPE && !userDepartIds.Contains(t.ID)).ToList(); if (departAnother != null && departAnother.Any()) { foreach (var other in departAnother) { info.USER_INFO = other.NAME + ":未设置当前角色" + "
" + info.USER_INFO; } } } else { var departAnother = departs.Where(t => t.DEPARTMENT_TYPE == role.DEPARTMENT_TYPE).ToList(); if (departAnother != null && departAnother.Any()) { foreach (var other in departAnother) { info.USER_INFO = other.NAME + ":未设置当前角色" + "
" + info.USER_INFO; } } } approveUsers.Add(info); } } List approveUsers1 = approveUsers.Where(t => t.DEPARTMENT_TYPE == 3).ToList(); var tempApproves = approveUsers.Where(t => t.DEPARTMENT_TYPE != 3).OrderBy(m => m.DEPARTMENT_TYPE).ToList(); approveUsers1.AddRange(tempApproves); ret.retDataApprove = approveUsers1; return ret; }); } /// /// 排序查询所有数据 /// /// 过滤实体 /// [HttpPost, Route("GetEntities")] public JsonActionResult> GetEntities([FromBody] KeywordFilter filter) { return SafeExecute>(() => { List completionLists = new List(); var orgId = APT.Infrastructure.Api.AppContext.CurrentSession.OrgId.Value; var completions = GetEntities(t => !t.IS_DELETED, filter).OrderBy(m=>m.MONTH).ToList(); if (completions != null && completions.Any()) { foreach (var item in completions) { var temp = completions.Where(t => t.MONTH > item.MONTH).Sum(m => decimal.Parse(m.FINISH_RATE)); if (temp == 0) { completions.Where(t => t.MONTH > item.MONTH).ForEach(m => m.FINISH_RATE = item.FINISH_RATE); } var temp2 = completions.Where(t => t.MONTH > item.MONTH).Sum(m => decimal.Parse(m.NORMAL_FINISH_RATE)); if (temp2 == 0) { completions.Where(t => t.MONTH > item.MONTH).ForEach(m => m.NORMAL_FINISH_RATE = item.NORMAL_FINISH_RATE); } } } return completions; }); } } }