using APT.BaseData.Domain.Entities.FM; using APT.BaseData.Services.Services.BS; using APT.Infrastructure.Core; using APT.MS.Domain.Entities.BI; using APT.MS.Domain.Entities.SC.BI; using APT.Utility; using Microsoft.AspNetCore.Mvc; using System.Collections.Generic; using System.Linq; using System; using APT.MS.Domain.Entities.HM; using APT.BaseData.Domain.Entities; using System.Threading.Tasks; using APT.MS.Domain.Entities.BS; using APT.MS.Domain.Enums; using APT.MS.Domain.Entities.FO; using NPOI.SS.Formula.Functions; using static NPOI.HSSF.Util.HSSFColor; using APT.BaseData.Domain.Enums; using APT.BaseData.Domain.IServices; using NPOI.Util; using APT.WebApi.Models; using APT.MS.Domain.Entities.SC.PT; namespace APT.PP.WebApi.Controllers.Api.PP { [Route("api/PP/BIAnalysis")] [TypeFilter(typeof(CustomActionFilterAttribute))] public class BIAnalysisController : AuthorizeApiController { [HttpPost, Route("AddRiskMoudleInfo")] public JsonActionResult AddRiskMoudleInfo([FromBody] KeywordFilter filter) { return SafeExecute(() => { var sourceIds = new List(); List formAnalysis=new List(); var newFilter = new BaseFilter(filter.OrgId); newFilter.SelectField = new List { "ID", "STATUS" }; //风险评价计划审核表 var evalPlan= this.GetEntities(t => true, newFilter); var evalPlanIds = evalPlan.Select(t => t.ID).ToList(); sourceIds.AddRange(evalPlanIds); //风险评价计划发布 newFilter.SelectField = new List { "ID", "RELEASE_STATUS" }; var noticeRelease = this.GetEntities(t => true, newFilter); var noticeReleaseIds = noticeRelease.Select(t => t.ID).ToList(); sourceIds.AddRange(noticeReleaseIds); //危险源/风险辨识任务 newFilter.SelectField = new List { "ID", "STATUS" }; var riskTask = this.GetEntities(t => true, newFilter); var riskTaskIds = riskTask.Select(t => t.ID).ToList(); sourceIds.AddRange(riskTaskIds); //危险源/风险辨识记录表 var riskRecord = this.GetEntities(t => true, newFilter); var riskRecordIds = riskRecord.Select(t => t.ID).ToList(); sourceIds.AddRange(riskRecordIds); //职业危害辨识任务 var hazardTask = this.GetEntities(t => true, newFilter); var hazardTaskIds = hazardTask.Select(t => t.ID).ToList(); sourceIds.AddRange(hazardTaskIds); //职业危害辨识记录表 var hazardRecord = this.GetEntities(t => true, newFilter); var hazardRecordIds = hazardRecord.Select(t => t.ID).ToList(); sourceIds.AddRange(hazardRecordIds); //评价结果表 var evalResult = this.GetEntities(t => true, newFilter); var evalResultIds = evalResult.Select(t => t.ID).ToList(); sourceIds.AddRange(evalResultIds); //作业任务识别 newFilter.SelectField = new List { "ID", "IS_PUBLISH" }; var taskIdentify = this.GetEntities(t => true, newFilter); var taskIdentifyIds = taskIdentify.Select(t => t.ID).ToList(); sourceIds.AddRange(taskIdentifyIds); //作业任务识别分析 var taskAnalysis = this.GetEntities(t => true, newFilter); var taskAnalysisIds = taskAnalysis.Select(t => t.ID).ToList(); sourceIds.AddRange(taskAnalysisIds); //一般任务分析 var taskOrdinary = this.GetEntities(t => true, newFilter); var taskOrdinaryIds = taskOrdinary.Select(t => t.ID).ToList(); sourceIds.AddRange(taskOrdinaryIds); //关键任务分析 var taskCrucial = this.GetEntities(t => true, newFilter); var taskCrucialIds = taskCrucial.Select(t => t.ID).ToList(); sourceIds.AddRange(taskCrucialIds); //许可任务分析 var taskLicense = this.GetEntities(t => true, newFilter); var taskLicenseIds = taskLicense.Select(t => t.ID).ToList(); sourceIds.AddRange(taskLicenseIds); //作业任务分析文件发布 newFilter.SelectField = new List { "ID" }; var filePublish = this.GetEntities(t => true, newFilter); var filePublishIds = filePublish.Select(t => t.ID).ToList(); sourceIds.AddRange(filePublishIds); //只取待办超期的 newFilter.SelectField = new List { "SOURCE_DATA_ID" }; var tasks = this.GetEntities(t => t.NOTICE_STATUS == 2, newFilter); tasks = tasks.Where(t => sourceIds.Contains(t.SOURCE_DATA_ID.Value)).ToList(); //表单运行情况分析表 var allAnalysis = this.GetEntities(t => true, new BaseFilter(filter.OrgId)); #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 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") + "%"; var analysis = allAnalysis.FirstOrDefault(t => t.MOUDLE_NAME == "风险管理" && t.FORM_NAME == "年度风险评价计划审核表"); if (analysis == null) { 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); } else { var analysis = allAnalysis.FirstOrDefault(t => t.MOUDLE_NAME == "风险管理" && t.FORM_NAME == "年度风险评价计划审核表"); if (analysis == null) { analysis = new T_BI_FORM_RUN_ANALYSIS(); analysis.MOUDLE_NAME = "风险管理"; analysis.FORM_NAME = "年度风险评价计划审核表"; analysis.NUM = 1; analysis.ORG_ID = filter.OrgId; } analysis.TOTAL_QTY = 0; analysis.FINISH_QTY = 0; analysis.OVER_FINISH_QTY = 0; analysis.UNFINISH_QTY = 0; analysis.FINISH_RATE = "0%"; analysis.NORMAL_FINISH_RATE = "0%"; 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 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") + "%"; var analysis = allAnalysis.FirstOrDefault(t => t.MOUDLE_NAME == "风险管理" && t.FORM_NAME == "风险评价计划发布"); if (analysis == null) { 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); } else { var analysis = allAnalysis.FirstOrDefault(t => t.MOUDLE_NAME == "风险管理" && t.FORM_NAME == "风险评价计划发布"); if (analysis == null) { analysis = new T_BI_FORM_RUN_ANALYSIS(); analysis.MOUDLE_NAME = "风险管理"; analysis.FORM_NAME = "风险评价计划发布"; analysis.NUM = 2; analysis.ORG_ID = filter.OrgId; } analysis.TOTAL_QTY = 0; analysis.FINISH_QTY = 0; analysis.OVER_FINISH_QTY = 0; analysis.UNFINISH_QTY = 0; analysis.FINISH_RATE = "0%"; analysis.NORMAL_FINISH_RATE = "0%"; 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 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") + "%"; var analysis = allAnalysis.FirstOrDefault(t => t.MOUDLE_NAME == "风险管理" && t.FORM_NAME == "危险源/风险辨识任务"); if (analysis == null) { 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); } else { var analysis = allAnalysis.FirstOrDefault(t => t.MOUDLE_NAME == "风险管理" && t.FORM_NAME == "危险源/风险辨识任务"); if (analysis == null) { analysis = new T_BI_FORM_RUN_ANALYSIS(); analysis.MOUDLE_NAME = "风险管理"; analysis.FORM_NAME = "危险源/风险辨识任务"; analysis.NUM = 3; analysis.ORG_ID = filter.OrgId; } analysis.TOTAL_QTY = 0; analysis.FINISH_QTY = 0; analysis.OVER_FINISH_QTY = 0; analysis.UNFINISH_QTY = 0; analysis.FINISH_RATE = "0%"; analysis.NORMAL_FINISH_RATE = "0%"; 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 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") + "%"; var analysis = allAnalysis.FirstOrDefault(t => t.MOUDLE_NAME == "风险管理" && t.FORM_NAME == "危险源/风险辨识记录表"); if (analysis == null) { 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); } else { var analysis = allAnalysis.FirstOrDefault(t => t.MOUDLE_NAME == "风险管理" && t.FORM_NAME == "危险源/风险辨识记录表"); if (analysis == null) { analysis = new T_BI_FORM_RUN_ANALYSIS(); analysis.MOUDLE_NAME = "风险管理"; analysis.FORM_NAME = "危险源/风险辨识记录表"; analysis.NUM = 4; analysis.ORG_ID = filter.OrgId; } analysis.TOTAL_QTY = 0; analysis.FINISH_QTY = 0; analysis.OVER_FINISH_QTY = 0; analysis.UNFINISH_QTY = 0; analysis.FINISH_RATE = "0%"; analysis.NORMAL_FINISH_RATE = "0%"; 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 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") + "%"; var analysis = allAnalysis.FirstOrDefault(t => t.MOUDLE_NAME == "风险管理" && t.FORM_NAME == "职业危害辨识任务"); if (analysis == null) { 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); } else { var analysis = allAnalysis.FirstOrDefault(t => t.MOUDLE_NAME == "风险管理" && t.FORM_NAME == "职业危害辨识任务"); if (analysis == null) { analysis = new T_BI_FORM_RUN_ANALYSIS(); analysis.MOUDLE_NAME = "风险管理"; analysis.FORM_NAME = "职业危害辨识任务"; analysis.NUM = 5; analysis.ORG_ID = filter.OrgId; } analysis.TOTAL_QTY = 0; analysis.FINISH_QTY = 0; analysis.OVER_FINISH_QTY = 0; analysis.UNFINISH_QTY = 0; analysis.FINISH_RATE = "0%"; analysis.NORMAL_FINISH_RATE = "0%"; 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 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") + "%"; var analysis = allAnalysis.FirstOrDefault(t => t.MOUDLE_NAME == "风险管理" && t.FORM_NAME == "职业危害辨识记录表"); if (analysis == null) { 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); } else { var analysis = allAnalysis.FirstOrDefault(t => t.MOUDLE_NAME == "风险管理" && t.FORM_NAME == "职业危害辨识记录表"); if (analysis == null) { analysis = new T_BI_FORM_RUN_ANALYSIS(); analysis.MOUDLE_NAME = "风险管理"; analysis.FORM_NAME = "职业危害辨识记录表"; analysis.NUM = 6; analysis.ORG_ID = filter.OrgId; } analysis.TOTAL_QTY = 0; analysis.FINISH_QTY = 0; analysis.OVER_FINISH_QTY = 0; analysis.UNFINISH_QTY = 0; analysis.FINISH_RATE = "0%"; analysis.NORMAL_FINISH_RATE = "0%"; 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 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") + "%"; var analysis = allAnalysis.FirstOrDefault(t => t.MOUDLE_NAME == "风险管理" && t.FORM_NAME == "评价结果表"); if (analysis == null) { 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); } else { var analysis = allAnalysis.FirstOrDefault(t => t.MOUDLE_NAME == "风险管理" && t.FORM_NAME == "评价结果表"); if (analysis == null) { analysis = new T_BI_FORM_RUN_ANALYSIS(); analysis.MOUDLE_NAME = "风险管理"; analysis.FORM_NAME = "评价结果表"; analysis.NUM = 7; analysis.ORG_ID = filter.OrgId; } analysis.TOTAL_QTY = 0; analysis.FINISH_QTY = 0; analysis.OVER_FINISH_QTY = 0; analysis.UNFINISH_QTY = 0; analysis.FINISH_RATE = "0%"; analysis.NORMAL_FINISH_RATE = "0%"; 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 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") + "%"; var analysis = allAnalysis.FirstOrDefault(t => t.MOUDLE_NAME == "风险管理" && t.FORM_NAME == "作业任务识别"); if (analysis == null) { 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); } else { var analysis = allAnalysis.FirstOrDefault(t => t.MOUDLE_NAME == "风险管理" && t.FORM_NAME == "作业任务识别"); if (analysis == null) { analysis = new T_BI_FORM_RUN_ANALYSIS(); analysis.MOUDLE_NAME = "风险管理"; analysis.FORM_NAME = "作业任务识别"; analysis.NUM = 8; analysis.ORG_ID = filter.OrgId; } analysis.TOTAL_QTY = 0; analysis.FINISH_QTY = 0; analysis.OVER_FINISH_QTY = 0; analysis.UNFINISH_QTY = 0; analysis.FINISH_RATE = "0%"; analysis.NORMAL_FINISH_RATE = "0%"; 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 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") + "%"; var analysis = allAnalysis.FirstOrDefault(t => t.MOUDLE_NAME == "风险管理" && t.FORM_NAME == "作业任务识别分析"); if (analysis == null) { 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); } else { var analysis = allAnalysis.FirstOrDefault(t => t.MOUDLE_NAME == "风险管理" && t.FORM_NAME == "作业任务识别分析"); if (analysis == null) { analysis = new T_BI_FORM_RUN_ANALYSIS(); analysis.MOUDLE_NAME = "风险管理"; analysis.FORM_NAME = "作业任务识别分析"; analysis.NUM = 9; analysis.ORG_ID = filter.OrgId; } analysis.TOTAL_QTY = 0; analysis.FINISH_QTY = 0; analysis.OVER_FINISH_QTY = 0; analysis.UNFINISH_QTY = 0; analysis.FINISH_RATE = "0%"; analysis.NORMAL_FINISH_RATE = "0%"; 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 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") + "%"; var analysis = allAnalysis.FirstOrDefault(t => t.MOUDLE_NAME == "风险管理" && t.FORM_NAME == "一般任务分析"); if (analysis == null) { 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); } else { var analysis = allAnalysis.FirstOrDefault(t => t.MOUDLE_NAME == "风险管理" && t.FORM_NAME == "一般任务分析"); if (analysis == null) { analysis = new T_BI_FORM_RUN_ANALYSIS(); analysis.MOUDLE_NAME = "风险管理"; analysis.FORM_NAME = "一般任务分析"; analysis.NUM = 10; analysis.ORG_ID = filter.OrgId; } analysis.TOTAL_QTY = 0; analysis.FINISH_QTY = 0; analysis.OVER_FINISH_QTY = 0; analysis.UNFINISH_QTY = 0; analysis.FINISH_RATE = "0%"; analysis.NORMAL_FINISH_RATE = "0%"; 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 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") + "%"; var analysis = allAnalysis.FirstOrDefault(t => t.MOUDLE_NAME == "风险管理" && t.FORM_NAME == "关键任务分析"); if (analysis == null) { 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); } else { var analysis = allAnalysis.FirstOrDefault(t => t.MOUDLE_NAME == "风险管理" && t.FORM_NAME == "关键任务分析"); if (analysis == null) { analysis = new T_BI_FORM_RUN_ANALYSIS(); analysis.MOUDLE_NAME = "风险管理"; analysis.FORM_NAME = "关键任务分析"; analysis.NUM = 11; analysis.ORG_ID = filter.OrgId; } analysis.TOTAL_QTY = 0; analysis.FINISH_QTY = 0; analysis.OVER_FINISH_QTY = 0; analysis.UNFINISH_QTY = 0; analysis.FINISH_RATE = "0%"; analysis.NORMAL_FINISH_RATE = "0%"; 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 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") + "%"; var analysis = allAnalysis.FirstOrDefault(t => t.MOUDLE_NAME == "风险管理" && t.FORM_NAME == "许可任务分析"); if (analysis == null) { 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); } else { var analysis = allAnalysis.FirstOrDefault(t => t.MOUDLE_NAME == "风险管理" && t.FORM_NAME == "许可任务分析"); if (analysis == null) { analysis = new T_BI_FORM_RUN_ANALYSIS(); analysis.MOUDLE_NAME = "风险管理"; analysis.FORM_NAME = "许可任务分析"; analysis.NUM = 12; analysis.ORG_ID = filter.OrgId; } analysis.TOTAL_QTY = 0; analysis.FINISH_QTY = 0; analysis.OVER_FINISH_QTY = 0; analysis.UNFINISH_QTY = 0; analysis.FINISH_RATE = "0%"; analysis.NORMAL_FINISH_RATE = "0%"; 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 count = filePublish.Count(); var finish = filePublish.Count(t => t.IS_OVERTIME == 0); var overfinish = filePublish.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") + "%"; var analysis = allAnalysis.FirstOrDefault(t => t.MOUDLE_NAME == "风险管理" && t.FORM_NAME == "作业任务分析文件发布"); if (analysis == null) { 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); } else { var analysis = allAnalysis.FirstOrDefault(t => t.MOUDLE_NAME == "风险管理" && t.FORM_NAME == "作业任务分析文件发布"); if (analysis == null) { analysis = new T_BI_FORM_RUN_ANALYSIS(); analysis.MOUDLE_NAME = "风险管理"; analysis.FORM_NAME = "作业任务分析文件发布"; analysis.NUM = 13; analysis.ORG_ID = filter.OrgId; } analysis.TOTAL_QTY = 0; analysis.FINISH_QTY = 0; analysis.OVER_FINISH_QTY = 0; analysis.UNFINISH_QTY = 0; analysis.FINISH_RATE = "0%"; analysis.NORMAL_FINISH_RATE = "0%"; formAnalysis.Add(analysis); } #endregion this.UnifiedCommit(() => { if(formAnalysis != null && formAnalysis.Any()) BantchSaveEntityNoCommit(formAnalysis); }); return true; }); } [HttpPost, Route("AddSafeCheckMoudleInfo")] public JsonActionResult AddSafeCheckMoudleInfo([FromBody] KeywordFilter filter) { return SafeExecute(() => { var sourceIds = new List(); List formAnalysis = new List(); var newFilter = new BaseFilter(filter.OrgId); newFilter.SelectField = new List { "ID", "STATUSPLAN", "STATUCHECK" }; //检查任务制定 var evalPlan = this.GetEntities(t => true, newFilter); var evalPlanIds = evalPlan.Select(t => t.ID).ToList(); sourceIds.AddRange(evalPlanIds); //检查记录 var noticeRelease = evalPlan.Where(t => t.STATUSPLAN == (int)HMAuditStatusEnmu.归档).ToList(); var noticeReleaseIds = noticeRelease.Select(t => t.ID).ToList(); sourceIds.AddRange(noticeReleaseIds); //隐患上报 newFilter.SelectField = new List { "ID", "SUBMIT_STATUS" }; var riskTask = this.GetEntities(t => true, newFilter); var riskTaskIds = riskTask.Select(t => t.ID).ToList(); sourceIds.AddRange(riskTaskIds); //隐患整改记录 newFilter.SelectField = new List { "ID", "DEALSITUATION" }; var riskRecord = this.GetEntities(t => true, newFilter); var riskRecordIds = riskRecord.Select(t => t.ID).ToList(); sourceIds.AddRange(riskRecordIds); //延期整改申请 newFilter.SelectField = new List { "ID" }; var hazardTask = this.GetEntities(t => true, newFilter); var hazardTaskIds = hazardTask.Select(t => t.ID).ToList(); sourceIds.AddRange(hazardTaskIds); //只取待办超期的 newFilter.SelectField = new List { "SOURCE_DATA_ID" }; var tasks = this.GetEntities(t => t.NOTICE_STATUS == 2, newFilter); tasks = tasks.Where(t => sourceIds.Contains(t.SOURCE_DATA_ID.Value)).ToList(); //表单运行情况分析表 var allAnalysis = this.GetEntities(t => true, new BaseFilter(filter.OrgId)); #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 count = evalPlan.Count(); var finish = evalPlan.Count(t => t.IS_OVERTIME == 0 && t.STATUSPLAN == (int)HMAuditStatusEnmu.归档); var overfinish = evalPlan.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") + "%"; var analysis = allAnalysis.FirstOrDefault(t => t.MOUDLE_NAME == "安全检查" && t.FORM_NAME == "检查任务制定"); if (analysis == null) { 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); } else { var analysis = allAnalysis.FirstOrDefault(t => t.MOUDLE_NAME == "安全检查" && t.FORM_NAME == "检查任务制定"); if (analysis == null) { analysis = new T_BI_FORM_RUN_ANALYSIS(); analysis.MOUDLE_NAME = "安全检查"; analysis.FORM_NAME = "检查任务制定"; analysis.NUM = 20; analysis.ORG_ID = filter.OrgId; } analysis.TOTAL_QTY = 0; analysis.FINISH_QTY = 0; analysis.OVER_FINISH_QTY = 0; analysis.UNFINISH_QTY = 0; analysis.FINISH_RATE = "0%"; analysis.NORMAL_FINISH_RATE = "0%"; 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 count = noticeRelease.Count(); var finish = noticeRelease.Count(t => t.IS_OVERTIME == 0 && t.STATUCHECK == (int)HMAuditStatusEnmu.归档); var overfinish = noticeRelease.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") + "%"; var analysis = allAnalysis.FirstOrDefault(t => t.MOUDLE_NAME == "安全检查" && t.FORM_NAME == "检查记录"); if (analysis == null) { 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); } else { var analysis = allAnalysis.FirstOrDefault(t => t.MOUDLE_NAME == "安全检查" && t.FORM_NAME == "检查记录"); if (analysis == null) { analysis = new T_BI_FORM_RUN_ANALYSIS(); analysis.MOUDLE_NAME = "安全检查"; analysis.FORM_NAME = "检查记录"; analysis.NUM = 21; analysis.ORG_ID = filter.OrgId; } analysis.TOTAL_QTY = 0; analysis.FINISH_QTY = 0; analysis.OVER_FINISH_QTY = 0; analysis.UNFINISH_QTY = 0; analysis.FINISH_RATE = "0%"; analysis.NORMAL_FINISH_RATE = "0%"; 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 count = riskTask.Count(); var finish = riskTask.Count(t => t.IS_OVERTIME == 0 && t.SUBMIT_STATUS == (int)BSSubmitStatusEnum.AuditOK); var overfinish = riskTask.Count(t => t.IS_OVERTIME == 1 && t.SUBMIT_STATUS == (int)BSSubmitStatusEnum.AuditOK); 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") + "%"; var analysis = allAnalysis.FirstOrDefault(t => t.MOUDLE_NAME == "安全检查" && t.FORM_NAME == "隐患上报"); if (analysis == null) { 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); } else { var analysis = allAnalysis.FirstOrDefault(t => t.MOUDLE_NAME == "安全检查" && t.FORM_NAME == "隐患上报"); if (analysis == null) { analysis = new T_BI_FORM_RUN_ANALYSIS(); analysis.MOUDLE_NAME = "安全检查"; analysis.FORM_NAME = "隐患上报"; analysis.NUM = 22; analysis.ORG_ID = filter.OrgId; } analysis.TOTAL_QTY = 0; analysis.FINISH_QTY = 0; analysis.OVER_FINISH_QTY = 0; analysis.UNFINISH_QTY = 0; analysis.FINISH_RATE = "0%"; analysis.NORMAL_FINISH_RATE = "0%"; 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 count = riskRecord.Count(); var finish = riskRecord.Count(t => t.IS_OVERTIME == 0 && t.DEALSITUATION == (int)DealSituation.OK); var overfinish = riskRecord.Count(t => t.IS_OVERTIME == 1 && t.DEALSITUATION == (int)DealSituation.OK); 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") + "%"; var analysis = allAnalysis.FirstOrDefault(t => t.MOUDLE_NAME == "安全检查" && t.FORM_NAME == "隐患整改记录"); if (analysis == null) { 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); } else { var analysis = allAnalysis.FirstOrDefault(t => t.MOUDLE_NAME == "安全检查" && t.FORM_NAME == "隐患整改记录"); if (analysis == null) { analysis = new T_BI_FORM_RUN_ANALYSIS(); analysis.MOUDLE_NAME = "安全检查"; analysis.FORM_NAME = "隐患整改记录"; analysis.NUM = 23; analysis.ORG_ID = filter.OrgId; } analysis.TOTAL_QTY = 0; analysis.FINISH_QTY = 0; analysis.OVER_FINISH_QTY = 0; analysis.UNFINISH_QTY = 0; analysis.FINISH_RATE = "0%"; analysis.NORMAL_FINISH_RATE = "0%"; 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 count = hazardTask.Count(); var finish = hazardTask.Count(t => t.IS_OVERTIME == 0); var overfinish = hazardTask.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") + "%"; var analysis = allAnalysis.FirstOrDefault(t => t.MOUDLE_NAME == "安全检查" && t.FORM_NAME == "延期整改申请"); if (analysis == null) { 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); } else { var analysis = allAnalysis.FirstOrDefault(t => t.MOUDLE_NAME == "安全检查" && t.FORM_NAME == "延期整改申请"); if (analysis == null) { analysis = new T_BI_FORM_RUN_ANALYSIS(); analysis.MOUDLE_NAME = "安全检查"; analysis.FORM_NAME = "延期整改申请"; analysis.NUM = 24; analysis.ORG_ID = filter.OrgId; } analysis.TOTAL_QTY = 0; analysis.FINISH_QTY = 0; analysis.OVER_FINISH_QTY = 0; analysis.UNFINISH_QTY = 0; analysis.FINISH_RATE = "0%"; analysis.NORMAL_FINISH_RATE = "0%"; formAnalysis.Add(analysis); } #endregion this.UnifiedCommit(() => { if (formAnalysis != null && formAnalysis.Any()) BantchSaveEntityNoCommit(formAnalysis); }); return true; }); } [HttpPost, Route("AddOperationMoudleInfo")] public JsonActionResult AddOperationMoudleInfo([FromBody] KeywordFilter filter) { return SafeExecute(() => { var sourceIds = new List(); List formAnalysis = new List(); var newFilter = new BaseFilter(filter.OrgId); newFilter.SelectField = new List { "ID", "SHIFT_STATUS", "OVERTIME" }; //岗位当班工作记录 var evalPlan = this.GetEntities(t => true, newFilter); //var evalPlanIds = evalPlan.Select(t => t.ID).ToList(); //sourceIds.AddRange(evalPlanIds); //岗位交接班记录 var noticeRelease = this.GetEntities(t => true, newFilter); //var noticeReleaseIds = noticeRelease.Select(t => t.ID).ToList(); //sourceIds.AddRange(noticeReleaseIds); //班组安全活动 newFilter.SelectField = new List { "ID", "TA_STATUS", "OVERTIME" }; var riskTask = this.GetEntities(t => true, newFilter); //var riskTaskIds = riskTask.Select(t => t.ID).ToList(); //sourceIds.AddRange(riskTaskIds); //班前会议记录 newFilter.SelectField = new List { "ID", "PRE_MEETING_STATUS", "OVERTIME" }; var riskRecord = this.GetEntities(t => true, newFilter); //var riskRecordIds = riskRecord.Select(t => t.ID).ToList(); //sourceIds.AddRange(riskRecordIds); //作业活动记录(一般作业) newFilter.SelectField = new List { "ID", "FORM_STATUS" }; var hazardTask = this.GetEntities(t => true, newFilter); var hazardTaskIds = hazardTask.Select(t => t.ID).ToList(); sourceIds.AddRange(hazardTaskIds); //作业方案讨论记录 var hazardRecord = this.GetEntities(t => true, newFilter); var hazardRecordIds = hazardRecord.Select(t => t.ID).ToList(); sourceIds.AddRange(hazardRecordIds); //关键作业/许可作业工作票 newFilter.SelectField = new List { "ID", "IS_PUBLISH" }; var evalResult = this.GetEntities(t => true, newFilter); var evalResultIds = evalResult.Select(t => t.ID).ToList(); sourceIds.AddRange(evalResultIds); //技术交底表 newFilter.SelectField = new List { "ID", "FORM_STATUS" }; var taskIdentify = this.GetEntities(t => true, newFilter); var taskIdentifyIds = taskIdentify.Select(t => t.ID).ToList(); sourceIds.AddRange(taskIdentifyIds); //作业活动记录(关键和许可作业) var taskAnalysis = this.GetEntities(t => true, newFilter); var taskAnalysisIds = taskAnalysis.Select(t => t.ID).ToList(); sourceIds.AddRange(taskAnalysisIds); //只取待办超期的 newFilter.SelectField = new List { "SOURCE_DATA_ID" }; var tasks = this.GetEntities(t => t.NOTICE_STATUS == 2, newFilter); tasks = tasks.Where(t => sourceIds.Contains(t.SOURCE_DATA_ID.Value)).ToList(); //表单运行情况分析表 var allAnalysis = this.GetEntities(t => true, new BaseFilter(filter.OrgId)); #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 count = evalPlan.Count(); var finish = evalPlan.Count(t => t.OVERTIME == FOISOVERTIME.未超时 && t.SHIFT_STATUS == (int)FOShiftStatusEnum.归档); var overfinish = evalPlan.Count(t => t.OVERTIME == FOISOVERTIME.超时 && 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") + "%"; var analysis = allAnalysis.FirstOrDefault(t => t.MOUDLE_NAME == "作业现场管理" && t.FORM_NAME == "岗位当班工作记录"); if (analysis == null) { 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); } else { var analysis = allAnalysis.FirstOrDefault(t => t.MOUDLE_NAME == "作业现场管理" && t.FORM_NAME == "岗位当班工作记录"); if (analysis == null) { analysis = new T_BI_FORM_RUN_ANALYSIS(); analysis.MOUDLE_NAME = "作业现场管理"; analysis.FORM_NAME = "岗位当班工作记录"; analysis.NUM = 30; analysis.ORG_ID = filter.OrgId; } analysis.TOTAL_QTY = 0; analysis.FINISH_QTY = 0; analysis.OVER_FINISH_QTY = 0; analysis.UNFINISH_QTY = 0; analysis.FINISH_RATE = "0%"; analysis.NORMAL_FINISH_RATE = "0%"; formAnalysis.Add(analysis); } #endregion #region 岗位交接班记录 if (noticeRelease.Any()) { //foreach (var item in noticeRelease) //{ // var task = tasks.FirstOrDefault(t => t.SOURCE_DATA_ID == item.ID && t.NOTICE_STATUS == 2); // if (task == null) // item.IS_OVERTIME = 0; // else // item.IS_OVERTIME = 1; //} var count = noticeRelease.Count(); var finish = evalPlan.Count(t => t.OVERTIME == FOISOVERTIME.未超时 && t.SHIFT_STATUS == (int)FOChangeShiftStatusEnum.归档); var overfinish = evalPlan.Count(t => t.OVERTIME == FOISOVERTIME.超时 && 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") + "%"; var analysis = allAnalysis.FirstOrDefault(t => t.MOUDLE_NAME == "作业现场管理" && t.FORM_NAME == "岗位交接班记录"); if (analysis == null) { 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); } else { var analysis = allAnalysis.FirstOrDefault(t => t.MOUDLE_NAME == "作业现场管理" && t.FORM_NAME == "岗位交接班记录"); if (analysis == null) { analysis = new T_BI_FORM_RUN_ANALYSIS(); analysis.MOUDLE_NAME = "作业现场管理"; analysis.FORM_NAME = "岗位交接班记录"; analysis.NUM = 31; analysis.ORG_ID = filter.OrgId; } analysis.TOTAL_QTY = 0; analysis.FINISH_QTY = 0; analysis.OVER_FINISH_QTY = 0; analysis.UNFINISH_QTY = 0; analysis.FINISH_RATE = "0%"; analysis.NORMAL_FINISH_RATE = "0%"; formAnalysis.Add(analysis); } #endregion #region 班组安全活动 if (riskTask.Any()) { //foreach (var item in riskTask) //{ // var task = tasks.FirstOrDefault(t => t.SOURCE_DATA_ID == item.ID && t.NOTICE_STATUS == 2); // if (task == null) // item.IS_OVERTIME = 0; // else // item.IS_OVERTIME = 1; //} var count = riskTask.Count(); var finish = riskTask.Count(t => t.OVERTIME == FOISOVERTIME.未超时 && t.TA_STATUS == (int)FOTeamActivityState.已归档); var overfinish = riskTask.Count(t => t.OVERTIME == FOISOVERTIME.超时 && 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") + "%"; var analysis = allAnalysis.FirstOrDefault(t => t.MOUDLE_NAME == "作业现场管理" && t.FORM_NAME == "班组安全活动"); if (analysis == null) { 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); } else { var analysis = allAnalysis.FirstOrDefault(t => t.MOUDLE_NAME == "作业现场管理" && t.FORM_NAME == "班组安全活动"); if (analysis == null) { analysis = new T_BI_FORM_RUN_ANALYSIS(); analysis.MOUDLE_NAME = "作业现场管理"; analysis.FORM_NAME = "班组安全活动"; analysis.NUM = 32; analysis.ORG_ID = filter.OrgId; } analysis.TOTAL_QTY = 0; analysis.FINISH_QTY = 0; analysis.OVER_FINISH_QTY = 0; analysis.UNFINISH_QTY = 0; analysis.FINISH_RATE = "0%"; analysis.NORMAL_FINISH_RATE = "0%"; formAnalysis.Add(analysis); } #endregion #region 班前会议记录 if (riskRecord.Any()) { //foreach (var item in riskRecord) //{ // var task = tasks.FirstOrDefault(t => t.SOURCE_DATA_ID == item.ID && t.NOTICE_STATUS == 2); // if (task == null) // item.IS_OVERTIME = 0; // else // item.IS_OVERTIME = 1; //} var count = riskRecord.Count(); var finish = riskRecord.Count(t => t.OVERTIME == FOISOVERTIME.未超时 && t.PRE_MEETING_STATUS == FOPreMeetingStatusEnum.归档); var overfinish = riskRecord.Count(t => t.OVERTIME == FOISOVERTIME.超时 && 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") + "%"; var analysis = allAnalysis.FirstOrDefault(t => t.MOUDLE_NAME == "作业现场管理" && t.FORM_NAME == "班前会议记录"); if (analysis == null) { 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); } else { var analysis = allAnalysis.FirstOrDefault(t => t.MOUDLE_NAME == "作业现场管理" && t.FORM_NAME == "班前会议记录"); if (analysis == null) { analysis = new T_BI_FORM_RUN_ANALYSIS(); analysis.MOUDLE_NAME = "作业现场管理"; analysis.FORM_NAME = "班前会议记录"; analysis.NUM = 33; analysis.ORG_ID = filter.OrgId; } analysis.TOTAL_QTY = 0; analysis.FINISH_QTY = 0; analysis.OVER_FINISH_QTY = 0; analysis.UNFINISH_QTY = 0; analysis.FINISH_RATE = "0%"; analysis.NORMAL_FINISH_RATE = "0%"; 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 count = hazardTask.Count(); var finish = hazardTask.Count(t => t.IS_OVERTIME == 0 && t.FORM_STATUS == (int)FOTeamActivityState.已归档); var overfinish = hazardTask.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") + "%"; var analysis = allAnalysis.FirstOrDefault(t => t.MOUDLE_NAME == "作业现场管理" && t.FORM_NAME == "作业活动记录(一般作业)"); if (analysis == null) { 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); } else { var analysis = allAnalysis.FirstOrDefault(t => t.MOUDLE_NAME == "作业现场管理" && t.FORM_NAME == "作业活动记录(一般作业)"); if (analysis == null) { analysis = new T_BI_FORM_RUN_ANALYSIS(); analysis.MOUDLE_NAME = "作业现场管理"; analysis.FORM_NAME = "作业活动记录(一般作业)"; analysis.NUM = 34; analysis.ORG_ID = filter.OrgId; } analysis.TOTAL_QTY = 0; analysis.FINISH_QTY = 0; analysis.OVER_FINISH_QTY = 0; analysis.UNFINISH_QTY = 0; analysis.FINISH_RATE = "0%"; analysis.NORMAL_FINISH_RATE = "0%"; 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 count = hazardRecord.Count(); var finish = hazardRecord.Count(t => t.IS_OVERTIME == 0 && t.FORM_STATUS == (int)FOTeamActivityState.已归档); var overfinish = hazardRecord.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") + "%"; var analysis = allAnalysis.FirstOrDefault(t => t.MOUDLE_NAME == "作业现场管理" && t.FORM_NAME == "作业方案讨论记录"); if (analysis == null) { 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); } else { var analysis = allAnalysis.FirstOrDefault(t => t.MOUDLE_NAME == "作业现场管理" && t.FORM_NAME == "作业方案讨论记录"); if (analysis == null) { analysis = new T_BI_FORM_RUN_ANALYSIS(); analysis.MOUDLE_NAME = "作业现场管理"; analysis.FORM_NAME = "作业方案讨论记录"; analysis.NUM = 35; analysis.ORG_ID = filter.OrgId; } analysis.TOTAL_QTY = 0; analysis.FINISH_QTY = 0; analysis.OVER_FINISH_QTY = 0; analysis.UNFINISH_QTY = 0; analysis.FINISH_RATE = "0%"; analysis.NORMAL_FINISH_RATE = "0%"; 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 count = evalResult.Count(); var finish = evalResult.Count(t => t.IS_OVERTIME == 0 && t.IS_PUBLISH ==(int)FOPreMeetingStatusEnum.归档); var overfinish = evalResult.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") + "%"; var analysis = allAnalysis.FirstOrDefault(t => t.MOUDLE_NAME == "作业现场管理" && t.FORM_NAME == "关键作业/许可作业工作票"); if (analysis == null) { 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); } else { var analysis = allAnalysis.FirstOrDefault(t => t.MOUDLE_NAME == "作业现场管理" && t.FORM_NAME == "关键作业/许可作业工作票"); if (analysis == null) { analysis = new T_BI_FORM_RUN_ANALYSIS(); analysis.MOUDLE_NAME = "作业现场管理"; analysis.FORM_NAME = "关键作业/许可作业工作票"; analysis.NUM = 36; analysis.ORG_ID = filter.OrgId; } analysis.TOTAL_QTY = 0; analysis.FINISH_QTY = 0; analysis.OVER_FINISH_QTY = 0; analysis.UNFINISH_QTY = 0; analysis.FINISH_RATE = "0%"; analysis.NORMAL_FINISH_RATE = "0%"; 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 count = taskIdentify.Count(); var finish = taskIdentify.Count(t => t.IS_OVERTIME == 0 && t.FORM_STATUS == (int)FOTeamActivityState.已归档); var overfinish = taskIdentify.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") + "%"; var analysis = allAnalysis.FirstOrDefault(t => t.MOUDLE_NAME == "作业现场管理" && t.FORM_NAME == "技术交底表"); if (analysis == null) { 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); } else { var analysis = allAnalysis.FirstOrDefault(t => t.MOUDLE_NAME == "作业现场管理" && t.FORM_NAME == "技术交底表"); if (analysis == null) { analysis = new T_BI_FORM_RUN_ANALYSIS(); analysis.MOUDLE_NAME = "作业现场管理"; analysis.FORM_NAME = "技术交底表"; analysis.NUM = 37; analysis.ORG_ID = filter.OrgId; } analysis.TOTAL_QTY = 0; analysis.FINISH_QTY = 0; analysis.OVER_FINISH_QTY = 0; analysis.UNFINISH_QTY = 0; analysis.FINISH_RATE = "0%"; analysis.NORMAL_FINISH_RATE = "0%"; 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 count = taskAnalysis.Count(); var finish = taskAnalysis.Count(t => t.IS_OVERTIME == 0 && t.FORM_STATUS == (int)FOTeamActivityState.已归档); var overfinish = taskAnalysis.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") + "%"; var analysis = allAnalysis.FirstOrDefault(t => t.MOUDLE_NAME == "作业现场管理" && t.FORM_NAME == "作业活动记录(关键和许可作业)"); if (analysis == null) { 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); } else { var analysis = allAnalysis.FirstOrDefault(t => t.MOUDLE_NAME == "作业现场管理" && t.FORM_NAME == "作业活动记录(关键和许可作业)"); if (analysis == null) { analysis = new T_BI_FORM_RUN_ANALYSIS(); analysis.MOUDLE_NAME = "作业现场管理"; analysis.FORM_NAME = "作业活动记录(关键和许可作业)"; analysis.NUM = 38; analysis.ORG_ID = filter.OrgId; } analysis.TOTAL_QTY = 0; analysis.FINISH_QTY = 0; analysis.OVER_FINISH_QTY = 0; analysis.UNFINISH_QTY = 0; analysis.FINISH_RATE = "0%"; analysis.NORMAL_FINISH_RATE = "0%"; formAnalysis.Add(analysis); } #endregion this.UnifiedCommit(() => { if (formAnalysis != null && formAnalysis.Any()) BantchSaveEntityNoCommit(formAnalysis); }); return true; }); } //#region 年度风险评价计划审核表 //[HttpPost, Route("AddEvalPlanInfo")] //public JsonActionResult AddEvalPlanInfo([FromBody] KeywordFilter filter) //{ // return SafeExecute(() => // { // var startTime = DateTime.Now.AddMonths(-1); // if (string.IsNullOrEmpty(filter.Parameter1)) // { // startTime=Convert.ToDateTime(filter.Parameter1); // } // List formAnalysis = new List(); // var newFilter = new BaseFilter(filter.OrgId); // newFilter.SelectField = new List { "ID", "STATUS", "INITIATING_DEPARTMENT" }; // //风险评价计划审核表 // var evalPlan = this.GetEntities(t => t.CREATE_TIME>= startTime && t.INITIATING_DEPARTMENT != null, newFilter); // var sourceIds = evalPlan.Select(t => t.ID).ToList(); // //只取待办超期的 // newFilter.SelectField = new List { "SOURCE_DATA_ID" }; // var tasks = this.GetEntities(t => t.NOTICE_STATUS == 2 && t.CREATE_TIME >= startTime, newFilter); // 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; // var status = 0; // if(item.STATUS == FOPreMeetingStatusEnum.归档) // { // if(item.IS_OVERTIME == 0) // status = 1; // else // status = 2; // } // var department = GetDepartmentId(item.INITIATING_DEPARTMENT.Value); // T_BI_FORM_RUN_ANALYSIS_DETAIL analysis = new T_BI_FORM_RUN_ANALYSIS_DETAIL(); // analysis.ID = item.ID; // analysis.ORG_ID= filter.OrgId; // analysis.MOUDLE_NAME = "风险管理"; // analysis.FORM_NAME = "年度风险评价计划审核表"; // analysis.NUM = 1; // analysis.FORM_CREATE_TIME = item.CREATE_TIME; // analysis.DEPARTMENT_ID = department == null ? null : department.ID; // analysis.DEPARTMENT_NAME = department == null ? null : department.NAME; // analysis.STATUS = status; // formAnalysis.Add(analysis); // } // } // #endregion // this.UnifiedCommit(() => // { // if (formAnalysis != null && formAnalysis.Any()) // BantchSaveEntityNoCommit(formAnalysis); // }); // return true; // }); //} //#endregion //#region 风险评价计划发布 //[HttpPost, Route("AddNoticeReleaseInfo")] //public JsonActionResult AddNoticeReleaseInfo([FromBody] KeywordFilter filter) //{ // return SafeExecute(() => // { // var startTime = DateTime.Now.AddMonths(-1); // if (string.IsNullOrEmpty(filter.Parameter1)) // { // startTime = Convert.ToDateTime(filter.Parameter1); // } // List formAnalysis = new List(); // var newFilter = new BaseFilter(filter.OrgId); // newFilter.SelectField = new List { "ID", "RELEASE_STATUS", "RELEAS_DEPARTMENT_ID" }; // var noticeRelease = this.GetEntities(t => t.CREATE_TIME >= startTime && t.RELEAS_DEPARTMENT_ID != null, newFilter).ToList(); // var sourceIds = noticeRelease.Select(t => t.ID).ToList(); // //只取待办超期的 // newFilter.SelectField = new List { "SOURCE_DATA_ID" }; // var tasks = this.GetEntities(t => t.NOTICE_STATUS == 2 && t.CREATE_TIME >= startTime, newFilter); // tasks = tasks.Where(t => sourceIds.Contains(t.SOURCE_DATA_ID.Value)).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; // var status = 0; // if (item.RELEASE_STATUS == FOPreMeetingStatusEnum.归档) // { // if (item.IS_OVERTIME == 0) // status = 1; // else // status = 2; // } // var department = GetDepartmentId(item.RELEAS_DEPARTMENT_ID.Value); // T_BI_FORM_RUN_ANALYSIS_DETAIL analysis = new T_BI_FORM_RUN_ANALYSIS_DETAIL(); // analysis.ID = item.ID; // analysis.ORG_ID = filter.OrgId; // analysis.MOUDLE_NAME = "风险管理"; // analysis.FORM_NAME = "风险评价计划发布"; // analysis.NUM = 2; // analysis.FORM_CREATE_TIME = item.CREATE_TIME; // analysis.DEPARTMENT_ID = department == null ? null : department.ID; // analysis.DEPARTMENT_NAME = department == null ? null : department.NAME; // analysis.STATUS = status; // formAnalysis.Add(analysis); // } // } // #endregion // this.UnifiedCommit(() => // { // if (formAnalysis != null && formAnalysis.Any()) // BantchSaveEntityNoCommit(formAnalysis); // }); // return true; // }); //} //#endregion //#region 危险源/风险辨识任务 //[HttpPost, Route("AddRiskTaskInfo")] //public JsonActionResult AddRiskTaskInfo([FromBody] KeywordFilter filter) //{ // return SafeExecute(() => // { // var startTime = DateTime.Now.AddMonths(-1); // if (string.IsNullOrEmpty(filter.Parameter1)) // { // startTime = Convert.ToDateTime(filter.Parameter1); // } // List formAnalysis = new List(); // var newFilter = new BaseFilter(filter.OrgId); // //危险源/风险辨识任务 // newFilter.SelectField = new List { "ID", "STATUS", "INITIATING_DEPARTMENT" }; // var riskTask = this.GetEntities(t => t.CREATE_TIME >= startTime && t.INITIATING_DEPARTMENT!=null, newFilter).ToList(); // var sourceIds = riskTask.Select(t => t.ID).ToList(); // //只取待办超期的 // newFilter.SelectField = new List { "SOURCE_DATA_ID" }; // var tasks = this.GetEntities(t => t.NOTICE_STATUS == 2 && t.CREATE_TIME >= startTime, newFilter); // tasks = tasks.Where(t => sourceIds.Contains(t.SOURCE_DATA_ID.Value)).ToList(); // #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 status = 0; // if (item.STATUS == FOPreMeetingStatusEnum.归档) // { // if (item.IS_OVERTIME == 0) // status = 1; // else // status = 2; // } // var department = GetDepartmentId(item.INITIATING_DEPARTMENT.Value); // T_BI_FORM_RUN_ANALYSIS_DETAIL analysis = new T_BI_FORM_RUN_ANALYSIS_DETAIL(); // analysis.ID = item.ID; // analysis.ORG_ID = filter.OrgId; // analysis.MOUDLE_NAME = "风险管理"; // analysis.FORM_NAME = "危险源/风险辨识任务"; // analysis.NUM = 3; // analysis.FORM_CREATE_TIME = item.CREATE_TIME; // analysis.DEPARTMENT_ID = department == null ? null : department.ID; // analysis.DEPARTMENT_NAME = department == null ? null : department.NAME; // analysis.STATUS = status; // formAnalysis.Add(analysis); // } // } // #endregion // this.UnifiedCommit(() => // { // if (formAnalysis != null && formAnalysis.Any()) // BantchSaveEntityNoCommit(formAnalysis); // }); // return true; // }); //} //#endregion //#region 危险源/风险辨识记录表 //[HttpPost, Route("AddRiskRecordInfo")] //public JsonActionResult AddRiskRecordInfo([FromBody] KeywordFilter filter) //{ // return SafeExecute(() => // { // var startTime = DateTime.Now.AddMonths(-1); // if (string.IsNullOrEmpty(filter.Parameter1)) // { // startTime = Convert.ToDateTime(filter.Parameter1); // } // List formAnalysis = new List(); // var newFilter = new BaseFilter(filter.OrgId); // newFilter.SelectField = new List { "ID", "STATUS", "INITIATING_DEPARTMENT" }; // //危险源/风险辨识记录表 // var riskRecord = this.GetEntities(t => t.CREATE_TIME >= startTime && t.INITIATING_DEPARTMENT != null, newFilter).ToList(); // var sourceIds = riskRecord.Select(t => t.ID).ToList(); // //只取待办超期的 // newFilter.SelectField = new List { "SOURCE_DATA_ID" }; // var tasks = this.GetEntities(t => t.NOTICE_STATUS == 2 && t.CREATE_TIME >= startTime, newFilter); // tasks = tasks.Where(t => sourceIds.Contains(t.SOURCE_DATA_ID.Value)).ToList(); // #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 status = 0; // if (item.STATUS == FOPreMeetingStatusEnum.归档) // { // if (item.IS_OVERTIME == 0) // status = 1; // else // status = 2; // } // var department = GetDepartmentId(item.INITIATING_DEPARTMENT.Value); // T_BI_FORM_RUN_ANALYSIS_DETAIL analysis = new T_BI_FORM_RUN_ANALYSIS_DETAIL(); // analysis.ID = item.ID; // analysis.ORG_ID = filter.OrgId; // analysis.MOUDLE_NAME = "风险管理"; // analysis.FORM_NAME = "危险源/风险辨识记录表"; // analysis.NUM = 4; // analysis.FORM_CREATE_TIME = item.CREATE_TIME; // analysis.DEPARTMENT_ID = department == null ? null : department.ID; // analysis.DEPARTMENT_NAME = department == null ? null : department.NAME; // analysis.STATUS = status; // formAnalysis.Add(analysis); // } // } // #endregion // this.UnifiedCommit(() => // { // if (formAnalysis != null && formAnalysis.Any()) // BantchSaveEntityNoCommit(formAnalysis); // }); // return true; // }); //} //#endregion //#region 职业危害辨识任务 //[HttpPost, Route("AddHazardTaskInfo")] //public JsonActionResult AddHazardTaskInfo([FromBody] KeywordFilter filter) //{ // return SafeExecute(() => // { // var startTime = DateTime.Now.AddMonths(-1); // if (string.IsNullOrEmpty(filter.Parameter1)) // { // startTime = Convert.ToDateTime(filter.Parameter1); // } // List formAnalysis = new List(); // var newFilter = new BaseFilter(filter.OrgId); // newFilter.SelectField = new List { "ID", "STATUS", "INITIATING_DEPARTMENT" }; // //职业危害辨识任务 // var hazardTask = this.GetEntities(t => t.CREATE_TIME >= startTime && t.INITIATING_DEPARTMENT != null, newFilter).ToList(); // var sourceIds = hazardTask.Select(t => t.ID).ToList(); // //只取待办超期的 // newFilter.SelectField = new List { "SOURCE_DATA_ID" }; // var tasks = this.GetEntities(t => t.NOTICE_STATUS == 2 && t.CREATE_TIME >= startTime, newFilter); // tasks = tasks.Where(t => sourceIds.Contains(t.SOURCE_DATA_ID.Value)).ToList(); // #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 status = 0; // if (item.STATUS == FOPreMeetingStatusEnum.归档) // { // if (item.IS_OVERTIME == 0) // status = 1; // else // status = 2; // } // var department = GetDepartmentId(item.INITIATING_DEPARTMENT.Value); // T_BI_FORM_RUN_ANALYSIS_DETAIL analysis = new T_BI_FORM_RUN_ANALYSIS_DETAIL(); // analysis.ID = item.ID; // analysis.ORG_ID = filter.OrgId; // analysis.MOUDLE_NAME = "风险管理"; // analysis.FORM_NAME = "职业危害辨识任务"; // analysis.NUM = 5; // analysis.FORM_CREATE_TIME = item.CREATE_TIME; // analysis.DEPARTMENT_ID = department == null ? null : department.ID; // analysis.DEPARTMENT_NAME = department == null ? null : department.NAME; // analysis.STATUS = status; // formAnalysis.Add(analysis); // } // } // #endregion // this.UnifiedCommit(() => // { // if (formAnalysis != null && formAnalysis.Any()) // BantchSaveEntityNoCommit(formAnalysis); // }); // return true; // }); //} //#endregion //#region 职业危害辨识记录表 //[HttpPost, Route("AddHazardRecordInfo")] //public JsonActionResult AddHazardRecordInfo([FromBody] KeywordFilter filter) //{ // return SafeExecute(() => // { // var startTime = DateTime.Now.AddMonths(-1); // if (string.IsNullOrEmpty(filter.Parameter1)) // { // startTime = Convert.ToDateTime(filter.Parameter1); // } // List formAnalysis = new List(); // var newFilter = new BaseFilter(filter.OrgId); // newFilter.SelectField = new List { "ID", "STATUS", "INITIATING_DEPARTMENT" }; // //职业危害辨识记录表 // var hazardRecord = this.GetEntities(t => t.CREATE_TIME >= startTime && t.INITIATING_DEPARTMENT != null, newFilter).ToList(); // var sourceIds = hazardRecord.Select(t => t.ID).ToList(); // //只取待办超期的 // newFilter.SelectField = new List { "SOURCE_DATA_ID" }; // var tasks = this.GetEntities(t => t.NOTICE_STATUS == 2 && t.CREATE_TIME >= startTime, newFilter); // tasks = tasks.Where(t => sourceIds.Contains(t.SOURCE_DATA_ID.Value)).ToList(); // #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 status = 0; // if (item.STATUS == FOPreMeetingStatusEnum.归档) // { // if (item.IS_OVERTIME == 0) // status = 1; // else // status = 2; // } // var department = GetDepartmentId(item.INITIATING_DEPARTMENT.Value); // T_BI_FORM_RUN_ANALYSIS_DETAIL analysis = new T_BI_FORM_RUN_ANALYSIS_DETAIL(); // analysis.ID = item.ID; // analysis.ORG_ID = filter.OrgId; // analysis.MOUDLE_NAME = "风险管理"; // analysis.FORM_NAME = "职业危害辨识记录表"; // analysis.NUM = 6; // analysis.FORM_CREATE_TIME = item.CREATE_TIME; // analysis.DEPARTMENT_ID = department == null ? null : department.ID; // analysis.DEPARTMENT_NAME = department == null ? null : department.NAME; // analysis.STATUS = status; // formAnalysis.Add(analysis); // } // } // #endregion // this.UnifiedCommit(() => // { // if (formAnalysis != null && formAnalysis.Any()) // BantchSaveEntityNoCommit(formAnalysis); // }); // return true; // }); //} //#endregion //#region 评价结果表 //[HttpPost, Route("AddEvalResultInfo")] //public JsonActionResult AddEvalResultInfo([FromBody] KeywordFilter filter) //{ // return SafeExecute(() => // { // var startTime = DateTime.Now.AddMonths(-1); // if (string.IsNullOrEmpty(filter.Parameter1)) // { // startTime = Convert.ToDateTime(filter.Parameter1); // } // List formAnalysis = new List(); // var newFilter = new BaseFilter(filter.OrgId); // newFilter.SelectField = new List { "ID", "STATUS", "INITIATING_DEPARTMENT" }; // //评价结果表 // var evalResult = this.GetEntities(t => t.CREATE_TIME >= startTime && t.INITIATING_DEPARTMENT != null, newFilter).ToList(); // var sourceIds = evalResult.Select(t => t.ID).ToList(); // //只取待办超期的 // newFilter.SelectField = new List { "SOURCE_DATA_ID" }; // var tasks = this.GetEntities(t => t.NOTICE_STATUS == 2 && t.CREATE_TIME >= startTime, newFilter); // tasks = tasks.Where(t => sourceIds.Contains(t.SOURCE_DATA_ID.Value)).ToList(); // #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 status = 0; // if (item.STATUS == FOPreMeetingStatusEnum.归档) // { // if (item.IS_OVERTIME == 0) // status = 1; // else // status = 2; // } // var department = GetDepartmentId(item.INITIATING_DEPARTMENT.Value); // T_BI_FORM_RUN_ANALYSIS_DETAIL analysis = new T_BI_FORM_RUN_ANALYSIS_DETAIL(); // analysis.ID = item.ID; // analysis.ORG_ID = filter.OrgId; // analysis.MOUDLE_NAME = "风险管理"; // analysis.FORM_NAME = "评价结果表"; // analysis.NUM = 7; // analysis.FORM_CREATE_TIME = item.CREATE_TIME; // analysis.DEPARTMENT_ID = department == null ? null : department.ID; // analysis.DEPARTMENT_NAME = department == null ? null : department.NAME; // analysis.STATUS = status; // formAnalysis.Add(analysis); // } // } // #endregion // this.UnifiedCommit(() => // { // if (formAnalysis != null && formAnalysis.Any()) // BantchSaveEntityNoCommit(formAnalysis); // }); // return true; // }); //} //#endregion //#region 作业任务识别 //[HttpPost, Route("AddTaskIdentifyInfo")] //public JsonActionResult AddTaskIdentifyInfo([FromBody] KeywordFilter filter) //{ // return SafeExecute(() => // { // var startTime = DateTime.Now.AddMonths(-1); // if (string.IsNullOrEmpty(filter.Parameter1)) // { // startTime = Convert.ToDateTime(filter.Parameter1); // } // List formAnalysis = new List(); // var newFilter = new BaseFilter(filter.OrgId); // //作业任务识别 // newFilter.SelectField = new List { "ID", "IS_PUBLISH", "DEPARTMENT_ID" }; // var taskIdentify = this.GetEntities(t => t.CREATE_TIME >= startTime && t.DEPARTMENT_ID != null, newFilter).ToList(); // var sourceIds = taskIdentify.Select(t => t.ID).ToList(); // //只取待办超期的 // newFilter.SelectField = new List { "SOURCE_DATA_ID" }; // var tasks = this.GetEntities(t => t.NOTICE_STATUS == 2 && t.CREATE_TIME >= startTime, newFilter); // tasks = tasks.Where(t => sourceIds.Contains(t.SOURCE_DATA_ID.Value)).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; // var status = 0; // if (item.IS_PUBLISH == FOPreMeetingStatusEnum.归档) // { // if (item.IS_OVERTIME == 0) // status = 1; // else // status = 2; // } // var department = GetDepartmentId(item.DEPARTMENT_ID.Value); // T_BI_FORM_RUN_ANALYSIS_DETAIL analysis = new T_BI_FORM_RUN_ANALYSIS_DETAIL(); // analysis.ID = item.ID; // analysis.ORG_ID = filter.OrgId; // analysis.MOUDLE_NAME = "风险管理"; // analysis.FORM_NAME = "作业任务识别"; // analysis.NUM = 8; // analysis.FORM_CREATE_TIME = item.CREATE_TIME; // analysis.DEPARTMENT_ID = department == null ? null : department.ID; // analysis.DEPARTMENT_NAME = department == null ? null : department.NAME; // analysis.STATUS = status; // formAnalysis.Add(analysis); // } // } // #endregion // this.UnifiedCommit(() => // { // if (formAnalysis != null && formAnalysis.Any()) // BantchSaveEntityNoCommit(formAnalysis); // }); // return true; // }); //} //#endregion //#region 作业任务识别分析 //[HttpPost, Route("AddTaskAnalysisInfo")] //public JsonActionResult AddTaskAnalysisInfo([FromBody] KeywordFilter filter) //{ // return SafeExecute(() => // { // var startTime = DateTime.Now.AddMonths(-1); // if (string.IsNullOrEmpty(filter.Parameter1)) // { // startTime = Convert.ToDateTime(filter.Parameter1); // } // List formAnalysis = new List(); // var newFilter = new BaseFilter(filter.OrgId); // newFilter.SelectField = new List { "ID", "IS_PUBLISH", "DEPARTMENT_ID" }; // //作业任务识别分析 // var taskAnalysis = this.GetEntities(t => t.CREATE_TIME >= startTime && t.DEPARTMENT_ID != null, newFilter).ToList(); // var sourceIds = taskAnalysis.Select(t => t.ID).ToList(); // //只取待办超期的 // newFilter.SelectField = new List { "SOURCE_DATA_ID" }; // var tasks = this.GetEntities(t => t.NOTICE_STATUS == 2 && t.CREATE_TIME >= startTime, newFilter); // tasks = tasks.Where(t => sourceIds.Contains(t.SOURCE_DATA_ID.Value)).ToList(); // #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 status = 0; // if (item.IS_PUBLISH == FOPreMeetingStatusEnum.归档) // { // if (item.IS_OVERTIME == 0) // status = 1; // else // status = 2; // } // var department = GetDepartmentId(item.DEPARTMENT_ID.Value); // T_BI_FORM_RUN_ANALYSIS_DETAIL analysis = new T_BI_FORM_RUN_ANALYSIS_DETAIL(); // analysis.ID = item.ID; // analysis.ORG_ID = filter.OrgId; // analysis.MOUDLE_NAME = "风险管理"; // analysis.FORM_NAME = "作业任务识别分析"; // analysis.NUM = 9; // analysis.FORM_CREATE_TIME = item.CREATE_TIME; // analysis.DEPARTMENT_ID = department == null ? null : department.ID; // analysis.DEPARTMENT_NAME = department == null ? null : department.NAME; // analysis.STATUS = status; // formAnalysis.Add(analysis); // } // } // #endregion // this.UnifiedCommit(() => // { // if (formAnalysis != null && formAnalysis.Any()) // BantchSaveEntityNoCommit(formAnalysis); // }); // return true; // }); //} //#endregion //#region 一般任务分析 //[HttpPost, Route("AddTaskOrdinaryInfo")] //public JsonActionResult AddTaskOrdinaryInfo([FromBody] KeywordFilter filter) //{ // return SafeExecute(() => // { // var startTime = DateTime.Now.AddMonths(-1); // if (string.IsNullOrEmpty(filter.Parameter1)) // { // startTime = Convert.ToDateTime(filter.Parameter1); // } // List formAnalysis = new List(); // var newFilter = new BaseFilter(filter.OrgId); // newFilter.SelectField = new List { "ID", "IS_PUBLISH", "DEPARTMENT_ID" }; // //一般任务分析 // var taskOrdinary = this.GetEntities(t => t.CREATE_TIME >= startTime && t.DEPARTMENT_ID != null, newFilter).ToList(); // var sourceIds = taskOrdinary.Select(t => t.ID).ToList(); // //只取待办超期的 // newFilter.SelectField = new List { "SOURCE_DATA_ID" }; // var tasks = this.GetEntities(t => t.NOTICE_STATUS == 2 && t.CREATE_TIME >= startTime, newFilter); // tasks = tasks.Where(t => sourceIds.Contains(t.SOURCE_DATA_ID.Value)).ToList(); // #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 status = 0; // if (item.IS_PUBLISH == FOPreMeetingStatusEnum.归档) // { // if (item.IS_OVERTIME == 0) // status = 1; // else // status = 2; // } // var department = GetDepartmentId(item.DEPARTMENT_ID.Value); // T_BI_FORM_RUN_ANALYSIS_DETAIL analysis = new T_BI_FORM_RUN_ANALYSIS_DETAIL(); // analysis.ID = item.ID; // analysis.ORG_ID = filter.OrgId; // analysis.MOUDLE_NAME = "风险管理"; // analysis.FORM_NAME = "一般任务分析"; // analysis.NUM = 10; // analysis.FORM_CREATE_TIME = item.CREATE_TIME; // analysis.DEPARTMENT_ID = department == null ? null : department.ID; // analysis.DEPARTMENT_NAME = department == null ? null : department.NAME; // analysis.STATUS = status; // formAnalysis.Add(analysis); // } // } // #endregion // this.UnifiedCommit(() => // { // if (formAnalysis != null && formAnalysis.Any()) // BantchSaveEntityNoCommit(formAnalysis); // }); // return true; // }); //} //#endregion //#region 关键任务分析 //[HttpPost, Route("AddTaskCrucialInfo")] //public JsonActionResult AddTaskCrucialInfo([FromBody] KeywordFilter filter) //{ // return SafeExecute(() => // { // var startTime = DateTime.Now.AddMonths(-1); // if (string.IsNullOrEmpty(filter.Parameter1)) // { // startTime = Convert.ToDateTime(filter.Parameter1); // } // List formAnalysis = new List(); // var newFilter = new BaseFilter(filter.OrgId); // newFilter.SelectField = new List { "ID", "IS_PUBLISH", "DEPARTMENT_ID" }; // //关键任务分析 // var taskCrucial = this.GetEntities(t => t.CREATE_TIME >= startTime && t.DEPARTMENT_ID != null, newFilter).ToList(); // var sourceIds = taskCrucial.Select(t => t.ID).ToList(); // //只取待办超期的 // newFilter.SelectField = new List { "SOURCE_DATA_ID" }; // var tasks = this.GetEntities(t => t.NOTICE_STATUS == 2 && t.CREATE_TIME >= startTime, newFilter); // tasks = tasks.Where(t => sourceIds.Contains(t.SOURCE_DATA_ID.Value)).ToList(); // #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 status = 0; // if (item.IS_PUBLISH == FOPreMeetingStatusEnum.归档) // { // if (item.IS_OVERTIME == 0) // status = 1; // else // status = 2; // } // var department = GetDepartmentId(item.DEPARTMENT_ID.Value); // T_BI_FORM_RUN_ANALYSIS_DETAIL analysis = new T_BI_FORM_RUN_ANALYSIS_DETAIL(); // analysis.ID = item.ID; // analysis.ORG_ID = filter.OrgId; // analysis.MOUDLE_NAME = "风险管理"; // analysis.FORM_NAME = "关键任务分析"; // analysis.NUM = 11; // analysis.FORM_CREATE_TIME = item.CREATE_TIME; // analysis.DEPARTMENT_ID = department == null ? null : department.ID; // analysis.DEPARTMENT_NAME = department == null ? null : department.NAME; // analysis.STATUS = status; // formAnalysis.Add(analysis); // } // } // #endregion // this.UnifiedCommit(() => // { // if (formAnalysis != null && formAnalysis.Any()) // BantchSaveEntityNoCommit(formAnalysis); // }); // return true; // }); //} //#endregion //#region 许可任务分析 //[HttpPost, Route("AddTaskLicenseInfo")] //public JsonActionResult AddTaskLicenseInfo([FromBody] KeywordFilter filter) //{ // return SafeExecute(() => // { // var startTime = DateTime.Now.AddMonths(-1); // if (string.IsNullOrEmpty(filter.Parameter1)) // { // startTime = Convert.ToDateTime(filter.Parameter1); // } // List formAnalysis = new List(); // var newFilter = new BaseFilter(filter.OrgId); // newFilter.SelectField = new List { "ID", "IS_PUBLISH", "DEPARTMENT_ID" }; // //许可任务分析 // var taskLicense = this.GetEntities(t => t.CREATE_TIME >= startTime && t.DEPARTMENT_ID != null, newFilter).ToList(); // var sourceIds = taskLicense.Select(t => t.ID).ToList(); // //只取待办超期的 // newFilter.SelectField = new List { "SOURCE_DATA_ID" }; // var tasks = this.GetEntities(t => t.NOTICE_STATUS == 2 && t.CREATE_TIME >= startTime, newFilter); // tasks = tasks.Where(t => sourceIds.Contains(t.SOURCE_DATA_ID.Value)).ToList(); // #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 status = 0; // if (item.IS_PUBLISH == FOPreMeetingStatusEnum.归档) // { // if (item.IS_OVERTIME == 0) // status = 1; // else // status = 2; // } // var department = GetDepartmentId(item.DEPARTMENT_ID.Value); // T_BI_FORM_RUN_ANALYSIS_DETAIL analysis = new T_BI_FORM_RUN_ANALYSIS_DETAIL(); // analysis.ID = item.ID; // analysis.ORG_ID = filter.OrgId; // analysis.MOUDLE_NAME = "风险管理"; // analysis.FORM_NAME = "许可任务分析"; // analysis.NUM = 12; // analysis.FORM_CREATE_TIME = item.CREATE_TIME; // analysis.DEPARTMENT_ID = department == null ? null : department.ID; // analysis.DEPARTMENT_NAME = department == null ? null : department.NAME; // analysis.STATUS = status; // formAnalysis.Add(analysis); // } // } // #endregion // this.UnifiedCommit(() => // { // if (formAnalysis != null && formAnalysis.Any()) // BantchSaveEntityNoCommit(formAnalysis); // }); // return true; // }); //} //#endregion //#region 作业任务分析文件发布 //[HttpPost, Route("AddFilePublishInfo")] //public JsonActionResult AddFilePublishInfo([FromBody] KeywordFilter filter) //{ // return SafeExecute(() => // { // var startTime = DateTime.Now.AddMonths(-1); // if (string.IsNullOrEmpty(filter.Parameter1)) // { // startTime = Convert.ToDateTime(filter.Parameter1); // } // List formAnalysis = new List(); // var newFilter = new BaseFilter(filter.OrgId); // //作业任务分析文件发布 // newFilter.SelectField = new List { "ID", "DEPARTMENT_ID" }; // var filePublish = this.GetEntities(t => t.CREATE_TIME >= startTime && t.DEPARTMENT_ID != null, newFilter).ToList(); // var sourceIds = filePublish.Select(t => t.ID).ToList(); // //只取待办超期的 // newFilter.SelectField = new List { "SOURCE_DATA_ID" }; // var tasks = this.GetEntities(t => t.NOTICE_STATUS == 2 && t.CREATE_TIME >= startTime, newFilter); // tasks = tasks.Where(t => sourceIds.Contains(t.SOURCE_DATA_ID.Value)).ToList(); // #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 status = 0; // if (item.IS_PUBLISH == FOPreMeetingStatusEnum.归档) // { // if (item.IS_OVERTIME == 0) // status = 1; // else // status = 2; // } // var department = GetDepartmentId(item.DEPARTMENT_ID.Value); // T_BI_FORM_RUN_ANALYSIS_DETAIL analysis = new T_BI_FORM_RUN_ANALYSIS_DETAIL(); // analysis.ID = item.ID; // analysis.ORG_ID = filter.OrgId; // analysis.MOUDLE_NAME = "风险管理"; // analysis.FORM_NAME = "作业任务分析文件发布"; // analysis.NUM = 13; // analysis.FORM_CREATE_TIME = item.CREATE_TIME; // analysis.DEPARTMENT_ID = department == null ? null : department.ID; // analysis.DEPARTMENT_NAME = department == null ? null : department.NAME; // analysis.STATUS = status; // formAnalysis.Add(analysis); // } // } // #endregion // this.UnifiedCommit(() => // { // if (formAnalysis != null && formAnalysis.Any()) // BantchSaveEntityNoCommit(formAnalysis); // }); // return true; // }); //} //#endregion /// /// 获取部门级ID /// /// //private 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.部门 || department.DEPARTMENT_TYPE == (int)FMDepartmentType.公司) // { // return department; // } // else // { // department = GetDepartmentId(department.PARENT_ID.Value); // } // return department; //} #region 跑批-安全事务执行情况汇总 /// /// 待办汇总跑批(安全事务执行情况汇总) /// /// /// [HttpPost, Route("AddTaskInfo")] public JsonActionResult AddTaskInfo([FromBody] KeywordPageFilter pageFilter) { return SafeExecute(() => { List departSummary = new List(); List mouldSummary = new List(); var dt = DateTime.Now; //最近一周 DateTime week = dt.AddDays(-7).Date; //最近一月 DateTime month = dt.AddMonths(-1).Date; //最近三月 DateTime threeMonth = dt.AddMonths(-3).Date; //最近半年 DateTime sixMonth = dt.AddMonths(-6).Date; //最近一年 DateTime year = dt.AddYears(-1).Date; var newFilter = new BaseFilter(pageFilter.OrgId); var taskYear = this.GetEntities(t => t.CREATE_DATE >= year, 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 taskSixMonth = departGroupYear.Where(t => t.CREATE_DATE >= sixMonth).ToList(); var taskThreeMonth = departGroupYear.Where(t => t.CREATE_DATE >= threeMonth).ToList(); var taskMonth = departGroupYear.Where(t => t.CREATE_DATE >= month).ToList(); var taskWeek = departGroupYear.Where(t => t.CREATE_DATE >= week).ToList(); //车间级 var shopGroupYear = taskYear.Where(t => t.SHOP_DEPARTMENT_ID != null && t.MOUDLE_NAME != null).ToList(); var taskSixMonthShop = shopGroupYear.Where(t => t.CREATE_DATE >= sixMonth).ToList(); var taskThreeMonthShop = shopGroupYear.Where(t => t.CREATE_DATE >= threeMonth).ToList(); var taskMonthShop = shopGroupYear.Where(t => t.CREATE_DATE >= month).ToList(); var taskWeekShop = shopGroupYear.Where(t => t.CREATE_DATE >= week).ToList(); //班组级 var classGroupYear = taskYear.Where(t => t.CLASS_DEPARTMENT_ID != null).ToList(); var taskSixMonthClass = classGroupYear.Where(t => t.CREATE_DATE >= sixMonth).ToList(); var taskThreeMonthClass = classGroupYear.Where(t => t.CREATE_DATE >= threeMonth).ToList(); var taskMonthClass = classGroupYear.Where(t => t.CREATE_DATE >= month).ToList(); var taskWeekClass = classGroupYear.Where(t => t.CREATE_DATE >= week).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); }); var groupYearMould = departGroupYear.GroupBy(t => t.MOUDLE_NAME).ToList(); groupYearMould.ForEach(t => { T_BI_MOULD_RUN_SUMMARY sum = new T_BI_MOULD_RUN_SUMMARY(); sum.MOUDLE_NAME = t.Key; sum.ORG_ID = pageFilter.OrgId; sum.TYPE = MS.Domain.Enums.BI.BIEnums.FilterTimeType.LastYear; sum.TOTAL_QTY = t.Where(m => m.MOUDLE_NAME == t.Key).Count(); sum.FINISH_QTY = t.Where(m => m.MOUDLE_NAME == t.Key && m.NOTICE_STATUS == 1).Count(); sum.OVER_FINISH_QTY = t.Where(m => m.MOUDLE_NAME == t.Key && m.NOTICE_STATUS == 2).Count(); sum.UNFINISH_QTY = sum.TOTAL_QTY - sum.FINISH_QTY - sum.OVER_FINISH_QTY; 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"); mouldSummary.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); }); } //半年度 if (taskSixMonth.Any()) { var groupYearDepart = taskSixMonth.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.LastHalfYear; 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); }); var groupYearMould = taskSixMonth.GroupBy(t => t.MOUDLE_NAME).ToList(); groupYearMould.ForEach(t => { T_BI_MOULD_RUN_SUMMARY sum = new T_BI_MOULD_RUN_SUMMARY(); sum.MOUDLE_NAME = t.Key; sum.ORG_ID = pageFilter.OrgId; sum.TYPE = MS.Domain.Enums.BI.BIEnums.FilterTimeType.LastHalfYear; sum.TOTAL_QTY = t.Where(m => m.MOUDLE_NAME == t.Key).Count(); sum.FINISH_QTY = t.Where(m => m.MOUDLE_NAME == t.Key && m.NOTICE_STATUS == 1).Count(); sum.OVER_FINISH_QTY = t.Where(m => m.MOUDLE_NAME == t.Key && m.NOTICE_STATUS == 2).Count(); sum.UNFINISH_QTY = sum.TOTAL_QTY - sum.FINISH_QTY - sum.OVER_FINISH_QTY; 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"); mouldSummary.Add(sum); }); } if (taskSixMonthShop.Any()) { var groupYearDepart = taskSixMonthShop.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.LastHalfYear; 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 (taskSixMonthClass.Any()) { var groupYearDepart = taskSixMonthClass.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.LastHalfYear; 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); }); } //三个月 if (taskThreeMonth.Any()) { var groupYearDepart = taskThreeMonth.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.LastThreeMonth; 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); }); var groupYearMould = taskThreeMonth.GroupBy(t => t.MOUDLE_NAME).ToList(); groupYearMould.ForEach(t => { T_BI_MOULD_RUN_SUMMARY sum = new T_BI_MOULD_RUN_SUMMARY(); sum.MOUDLE_NAME = t.Key; sum.ORG_ID = pageFilter.OrgId; sum.TYPE = MS.Domain.Enums.BI.BIEnums.FilterTimeType.LastThreeMonth; sum.TOTAL_QTY = t.Where(m => m.MOUDLE_NAME == t.Key).Count(); sum.FINISH_QTY = t.Where(m => m.MOUDLE_NAME == t.Key && m.NOTICE_STATUS == 1).Count(); sum.OVER_FINISH_QTY = t.Where(m => m.MOUDLE_NAME == t.Key && m.NOTICE_STATUS == 2).Count(); sum.UNFINISH_QTY = sum.TOTAL_QTY - sum.FINISH_QTY - sum.OVER_FINISH_QTY; 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"); mouldSummary.Add(sum); }); } if (taskThreeMonthShop.Any()) { var groupYearDepart = taskThreeMonthShop.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.LastThreeMonth; 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 (taskThreeMonthClass.Any()) { var groupYearDepart = taskThreeMonthClass.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.LastThreeMonth; 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); }); } //一个月 if (taskMonth.Any()) { var groupYearDepart = taskMonth.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.LastMonth; 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); }); var groupYearMould = taskMonth.GroupBy(t => t.MOUDLE_NAME).ToList(); groupYearMould.ForEach(t => { T_BI_MOULD_RUN_SUMMARY sum = new T_BI_MOULD_RUN_SUMMARY(); sum.MOUDLE_NAME = t.Key; sum.ORG_ID = pageFilter.OrgId; sum.TYPE = MS.Domain.Enums.BI.BIEnums.FilterTimeType.LastMonth; sum.TOTAL_QTY = t.Where(m => m.MOUDLE_NAME == t.Key).Count(); sum.FINISH_QTY = t.Where(m => m.MOUDLE_NAME == t.Key && m.NOTICE_STATUS == 1).Count(); sum.OVER_FINISH_QTY = t.Where(m => m.MOUDLE_NAME == t.Key && m.NOTICE_STATUS == 2).Count(); sum.UNFINISH_QTY = sum.TOTAL_QTY - sum.FINISH_QTY - sum.OVER_FINISH_QTY; 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"); mouldSummary.Add(sum); }); } if (taskMonthShop.Any()) { var groupYearDepart = taskMonthShop.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.LastMonth; 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 (taskMonthClass.Any()) { var groupYearDepart = taskMonthClass.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.LastMonth; 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); }); } //一周 if (taskWeek.Any()) { var groupYearDepart = taskWeek.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.LastWeek; 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); }); var groupYearMould = taskWeek.GroupBy(t => t.MOUDLE_NAME).ToList(); groupYearMould.ForEach(t => { T_BI_MOULD_RUN_SUMMARY sum = new T_BI_MOULD_RUN_SUMMARY(); sum.MOUDLE_NAME = t.Key; sum.ORG_ID = pageFilter.OrgId; sum.TYPE = MS.Domain.Enums.BI.BIEnums.FilterTimeType.LastWeek; sum.TOTAL_QTY = t.Where(m => m.MOUDLE_NAME == t.Key).Count(); sum.FINISH_QTY = t.Where(m => m.MOUDLE_NAME == t.Key && m.NOTICE_STATUS == 1).Count(); sum.OVER_FINISH_QTY = t.Where(m => m.MOUDLE_NAME == t.Key && m.NOTICE_STATUS == 2).Count(); sum.UNFINISH_QTY = sum.TOTAL_QTY - sum.FINISH_QTY - sum.OVER_FINISH_QTY; 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"); mouldSummary.Add(sum); }); } if (taskWeekShop.Any()) { var groupYearDepart = taskWeekShop.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.LastWeek; 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 (taskWeekClass.Any()) { var groupYearDepart = taskWeekClass.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.LastWeek; 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); }); } //折线图 List monthRuns = new List(); var ksDepartId = departmentInfos.FirstOrDefault(t => t.NAME == "矿山部")?.ID; var xkDepartId = departmentInfos.FirstOrDefault(t => t.NAME == "选矿部")?.ID; var currentMonth = DateTime.Now.Month; //获取当月 var currentDay = DateTime.Now.Day; //...........天 for (int i = 1; i <= 12; i++) { var monthStart = DateTime.Now.AddMonths(i - currentMonth).AddDays(1 - currentDay); var monthEnd = DateTime.Now.AddMonths(i - currentMonth + 1).AddDays(1 - currentDay - 1); var ksJantask = taskYear.Where(t => t.CREATE_DATE >= monthStart && t.CREATE_DATE <= monthEnd && t.DEPT_DEPARTMENT_ID == ksDepartId).ToList(); if (ksJantask.Any()) { T_BI_DEPARTMENT_MONTH_RUN run = new T_BI_DEPARTMENT_MONTH_RUN(); run.DEPARTMENT_ID = ksDepartId.Value; run.ORG_ID = pageFilter.OrgId; var depart = departmentInfos.FirstOrDefault(m => m.ID == ksDepartId.Value); run.DEPARTMENT_NAME = depart?.NAME; run.MONTH = monthStart; run.MONTHStr = monthStart.Year + "年" + monthStart.Month + "月"; var total = ksJantask.Count(); var finish = ksJantask.Where(t => t.NOTICE_STATUS == 1).Count(); var overFinish = ksJantask.Where(t => t.NOTICE_STATUS == 2).Count(); 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"); monthRuns.Add(run); } else { T_BI_DEPARTMENT_MONTH_RUN run = new T_BI_DEPARTMENT_MONTH_RUN(); run.DEPARTMENT_ID = ksDepartId.Value; run.ORG_ID = pageFilter.OrgId; var depart = departmentInfos.FirstOrDefault(m => m.ID == ksDepartId.Value); run.DEPARTMENT_NAME = depart?.NAME; run.MONTH = monthStart; run.MONTHStr = monthStart.Year + "年" + monthStart.Month + "月"; run.FINISH_RATE = "0"; run.NORMAL_FINISH_RATE = "0"; if (i == 12) { var lastInfo = monthRuns.FirstOrDefault(t => t.DEPARTMENT_ID == ksDepartId.Value && t.MONTHStr == monthStart.Year + "年" + monthStart.AddMonths(-1).Month + "月"); if (lastInfo != null) { run.FINISH_RATE = lastInfo.FINISH_RATE; run.NORMAL_FINISH_RATE = lastInfo.NORMAL_FINISH_RATE; } } monthRuns.Add(run); } var xkJantask = taskYear.Where(t => t.CREATE_DATE >= monthStart && t.CREATE_DATE <= monthEnd && t.DEPT_DEPARTMENT_ID == xkDepartId).ToList(); if (xkJantask.Any()) { T_BI_DEPARTMENT_MONTH_RUN run = new T_BI_DEPARTMENT_MONTH_RUN(); run.DEPARTMENT_ID = xkDepartId.Value; run.ORG_ID = pageFilter.OrgId; var depart = departmentInfos.FirstOrDefault(m => m.ID == xkDepartId.Value); run.DEPARTMENT_NAME = depart?.NAME; run.MONTH = monthStart; run.MONTHStr = monthStart.Year + "年" + monthStart.Month + "月"; var total = xkJantask.Count(); var finish = xkJantask.Where(t => t.NOTICE_STATUS == 1).Count(); var overFinish = xkJantask.Where(t => t.NOTICE_STATUS == 2).Count(); 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"); monthRuns.Add(run); } else { T_BI_DEPARTMENT_MONTH_RUN run = new T_BI_DEPARTMENT_MONTH_RUN(); run.DEPARTMENT_ID = xkDepartId.Value; run.ORG_ID = pageFilter.OrgId; var depart = departmentInfos.FirstOrDefault(m => m.ID == xkDepartId.Value); run.DEPARTMENT_NAME = depart?.NAME; run.MONTH = monthStart; run.MONTHStr = monthStart.Year + "年" + monthStart.Month + "月"; run.FINISH_RATE = "0"; run.NORMAL_FINISH_RATE = "0"; if (i == 12) { var lastInfo = monthRuns.FirstOrDefault(t => t.DEPARTMENT_ID == xkDepartId.Value && t.MONTHStr == monthStart.Year + "年" + monthStart.AddMonths(-1).Month + "月"); if (lastInfo != null) { run.FINISH_RATE = lastInfo.FINISH_RATE; run.NORMAL_FINISH_RATE = lastInfo.NORMAL_FINISH_RATE; } } monthRuns.Add(run); } } var deleteIds = this.GetEntities(t => true, new BaseFilter(pageFilter.OrgId)).Select(m => m.ID).ToList(); var deletemouIds = this.GetEntities(t => true, new BaseFilter(pageFilter.OrgId)).Select(m => m.ID).ToList(); var deletemonthIds = this.GetEntities(t => true, new BaseFilter(pageFilter.OrgId)).Select(m => m.ID).ToList(); this.UnifiedCommit(() => { if (deleteIds != null && deleteIds.Any()) BantchDeleteEntityNoCommit(deleteIds); if (deleteIds != null && deleteIds.Any()) BantchDeleteEntityNoCommit(deletemouIds); if (deleteIds != null && deleteIds.Any()) BantchDeleteEntityNoCommit(deletemonthIds); if (departSummary != null && departSummary.Any()) BantchSaveEntityNoCommit(departSummary); if (mouldSummary != null && mouldSummary.Any()) BantchSaveEntityNoCommit(mouldSummary); if (monthRuns != null && monthRuns.Any()) BantchSaveEntityNoCommit(monthRuns); }); return true; }); } #endregion #region 跑批-更新所有待办的表名 /// /// 更新7天所有待办的表名 /// /// /// [HttpPost, Route("UpdateTaskTable")] public JsonActionResult UpdateTaskTable([FromBody] KeywordPageFilter pageFilter) { return SafeExecute(() => { var dt = DateTime.Now; //最近一天 DateTime week = dt.AddDays(-1).Date; if (!string.IsNullOrEmpty(pageFilter.Parameter1)) { if (!pageFilter.Parameter1.Contains("|")) throw new Exception("必须传入开始日期和结束日期,以|符号分隔"); var temp = pageFilter.Parameter1.Split("|"); if (temp[1].Length == 0) throw new Exception("必须传入开始日期和结束日期,以|符号分隔"); week = DateTime.Parse(temp[0]); dt = DateTime.Parse(temp[1]); } var formInfos = this.GetEntities(t => t.TABLE_NAME != null, new BaseFilter(pageFilter.OrgId)).ToList(); var formCodes = formInfos.Select(t => t.CODE).Distinct().ToList(); var taskInfos = this.GetEntities(t => t.CREATE_TIME >= week && t.CREATE_TIME <= dt && t.SOURCE_FORMCODE != "PF135" && t.SOURCE_FORMCODE != "PF119" && t.NOTICE_TYPE != 7 && t.NOTICE_TYPE != 8 && t.NOTICE_TYPE != 2 && t.SOURCE_FORMCODE != null && t.TABLE_NAME == null, new BaseFilter(pageFilter.OrgId)).ToList(); taskInfos.ForEach(t => { if (t.SOURCE_FORMCODE.Contains("_SHOWPRINT")) { var table = formInfos.FirstOrDefault(m => m.CODE == t.SOURCE_FORMCODE.Split('_')[0]); if (table != null) t.TABLE_NAME = table.TABLE_NAME; } else { var table = formInfos.FirstOrDefault(m => m.CODE == t.SOURCE_FORMCODE); if (table != null) t.TABLE_NAME = table.TABLE_NAME; } }); this.UnifiedCommit(() => { if (taskInfos != null && taskInfos.Any()) BantchSaveEntityNoCommit(taskInfos); }); return true; }); } #endregion #region 跑批-更新7天内今日提醒和审批的类型 /// /// 更新7天内今日提醒和审批的类型 /// /// /// [HttpPost, Route("UpdateNoticeType")] public JsonActionResult UpdateNoticeType([FromBody] KeywordPageFilter pageFilter) { return SafeExecute(() => { var dt = DateTime.Now; //最近一周 DateTime week = dt.AddDays(-7).Date; var taskInfos = this.GetEntities(t => t.CREATE_TIME >= week && (t.SOURCE_FORMCODE == "PF135" || t.SOURCE_FORMCODE == "PF119" || t.NOTICE_TITLE.Contains("审核")), new BaseFilter(pageFilter.OrgId)).ToList(); if (taskInfos.Any()) { taskInfos.ForEach(t => { if (t.SOURCE_FORMCODE == "PF135") t.NOTICE_TYPE = 7; if (t.SOURCE_FORMCODE == "PF119") t.NOTICE_TYPE = 8; if (t.SOURCE_FORMCODE != "PF119" && t.NOTICE_TITLE.Contains("审核")) t.NOTICE_TYPE = 8; }); } this.UnifiedCommit(() => { if (taskInfos != null && taskInfos.Any()) BantchSaveEntityNoCommit(taskInfos); }); return true; }); } #endregion #region 跑批-待办中间表 /// /// 更新7天内待办中间表 /// /// /// [HttpPost, Route("AddNoticeTask")] public JsonActionResult AddNoticeTask([FromBody] KeywordPageFilter pageFilter) { return SafeExecute(() => { var dt = DateTime.Now; //最近一周 DateTime week = dt.AddDays(-7).Date; //最近一年 var taskInfos = new List(); var biTaskInfos = new List(); var addTaskInfos = new List(); var newFilter = new BaseFilter(pageFilter.OrgId); if (!string.IsNullOrEmpty(pageFilter.Parameter1)) { if (!pageFilter.Parameter1.Contains("|")) throw new Exception("必须传入开始日期和结束日期,以|符号分隔"); var temp = pageFilter.Parameter1.Split("|"); if (temp[1].Length == 0) throw new Exception("必须传入开始日期和结束日期,以|符号分隔"); DateTime year = DateTime.Parse(temp[0]); DateTime yearEnd = DateTime.Parse(temp[1]); newFilter.SelectField = new List { "SOURCE_DATA_ID" }; biTaskInfos = this.GetEntities(t => t.CREATE_DATE >= year && t.CREATE_DATE < yearEnd, newFilter).ToList(); var dataIds = biTaskInfos.Select(t => t.SOURCE_DATA_ID).Distinct().ToList(); newFilter.SelectField = new List { "NOTICE_TITLE", "NOTICE_STATUS", "USER_ID", "SOURCE_FORMCODE", "SOURCE_DATA_ID", "CREATE_TIME", "CREATER_ID" }; taskInfos = this.GetEntities(t => t.CREATE_TIME >= year && t.CREATE_TIME < yearEnd && t.NOTICE_TYPE != 7 && t.NOTICE_TYPE != 8 && t.USER_ID != null, newFilter).ToList(); taskInfos = taskInfos.Where(t => !dataIds.Contains(t.SOURCE_DATA_ID) && !t.NOTICE_TITLE.Contains("审核") && t.SOURCE_FORMCODE != "PF135" && t.SOURCE_FORMCODE != "PF119").ToList(); } else { newFilter.SelectField = new List { "SOURCE_DATA_ID" }; biTaskInfos = this.GetEntities(t => t.CREATE_DATE >= week, newFilter).ToList(); var dataIds = biTaskInfos.Select(t => t.SOURCE_DATA_ID).Distinct().ToList(); newFilter.SelectField = new List { "NOTICE_TITLE", "NOTICE_STATUS", "USER_ID", "SOURCE_FORMCODE", "SOURCE_DATA_ID", "CREATE_TIME", "CREATER_ID" }; taskInfos = this.GetEntities(t => t.CREATE_TIME >= week && t.NOTICE_TYPE != 7 && t.NOTICE_TYPE != 8 && t.USER_ID != null, newFilter).ToList(); taskInfos = taskInfos.Where(t => !dataIds.Contains(t.SOURCE_DATA_ID) && !t.NOTICE_TITLE.Contains("审核") && t.SOURCE_FORMCODE != "PF135" && t.SOURCE_FORMCODE != "PF119").ToList(); } //按sourcedataid分类 var groupTasks = taskInfos.GroupBy(t => t.SOURCE_DATA_ID).Select(p => new T_FM_NOTIFICATION_TASK { SOURCE_DATA_ID = p.Key, NOTICE_TITLE = p.Where(q => q.SOURCE_DATA_ID == p.Key).OrderBy(g => g.CREATE_TIME).FirstOrDefault().NOTICE_TITLE, USER_ID = p.Where(q => q.SOURCE_DATA_ID == p.Key).OrderBy(g => g.CREATE_TIME).FirstOrDefault().USER_ID, CREATER_ID = p.Where(q => q.SOURCE_DATA_ID == p.Key).OrderBy(g => g.CREATE_TIME).FirstOrDefault().CREATER_ID, CREATE_TIME = p.Where(q => q.SOURCE_DATA_ID == p.Key).OrderBy(g => g.CREATE_TIME).FirstOrDefault().CREATE_TIME, SOURCE_FORMCODE = p.Where(q => q.SOURCE_DATA_ID == p.Key).OrderBy(g => g.CREATE_TIME).FirstOrDefault().SOURCE_FORMCODE, NOTICE_STATUS = p.Where(q => q.SOURCE_DATA_ID == p.Key && q.NOTICE_STATUS == 0).FirstOrDefault() != null ? 0 : (p.Where(q => q.SOURCE_DATA_ID == p.Key && q.NOTICE_STATUS == 2).FirstOrDefault() != null ? 2 : 1), }).ToList(); //人员表 newFilter.SelectField = new List { "ID", "DEPARTMENT_ID" }; var userIds = groupTasks.Select(t => t.USER_ID).Distinct().ToList(); var userInfos = this.GetEntities(t => userIds.Contains(t.ID) && t.ENABLE_STATUS == 0, newFilter).ToList(); //部门表 newFilter.SelectField = new List { "ID", "PARENT_ID", "DEPARTMENT_TYPE", "Nav_Parent" }; var departmentInfos = this.GetEntities(t => t.ENABLE_STATUS == 0, newFilter).ToList(); if (groupTasks.Any()) { groupTasks.ForEach(t => { T_BI_NOTIFICATION_TASK task = new T_BI_NOTIFICATION_TASK(); task.ORG_ID = pageFilter.OrgId; task.SOURCE_DATA_ID = t.SOURCE_DATA_ID; task.CREATE_USER_ID = t.CREATER_ID; task.NOTICE_STATUS = t.NOTICE_STATUS; task.NOTICE_TITLE = t.NOTICE_TITLE; task.SOURCE_FORMCODE = t.SOURCE_FORMCODE; task.CREATE_DATE = t.CREATE_TIME; var user = userInfos.FirstOrDefault(m => m.ID == t.USER_ID); if (user != null) { var depart = departmentInfos.FirstOrDefault(m => m.ID == user.DEPARTMENT_ID); if (depart != null) { task.DEPARTMENT_ID = depart.ID; if (depart.DEPARTMENT_TYPE == 2) { task.CLASS_DEPARTMENT_ID = depart.ID; task.SHOP_DEPARTMENT_ID = depart.PARENT_ID; task.DEPT_DEPARTMENT_ID = depart.Nav_Parent?.PARENT_ID; } else if (depart.DEPARTMENT_TYPE == 1) { task.SHOP_DEPARTMENT_ID = depart.ID; task.DEPT_DEPARTMENT_ID = depart.PARENT_ID; } else if (depart.DEPARTMENT_TYPE == 0) { task.DEPT_DEPARTMENT_ID = depart.ID; } } } if (t.SOURCE_FORMCODE.StartsWith("HM") || t.SOURCE_FORMCODE.StartsWith("hm")) { task.MOUDLE_NAME = "风险管理"; } if (t.SOURCE_FORMCODE.StartsWith("FO") || t.SOURCE_FORMCODE.StartsWith("fo")) { task.MOUDLE_NAME = "作业现场管理"; } if (t.SOURCE_FORMCODE.StartsWith("BS") || t.SOURCE_FORMCODE.StartsWith("bs")) { task.MOUDLE_NAME = "安全检查"; } if (t.SOURCE_FORMCODE.StartsWith("LR") || t.SOURCE_FORMCODE.StartsWith("lr")) { task.MOUDLE_NAME = "法律法规与其他要求"; } if (t.SOURCE_FORMCODE.StartsWith("SE") || t.SOURCE_FORMCODE.StartsWith("se")) { task.MOUDLE_NAME = "安全教育培训"; } if (t.SOURCE_FORMCODE.StartsWith("PT") || t.SOURCE_FORMCODE.StartsWith("pt")) { task.MOUDLE_NAME = "方针与目标管理"; } if (t.SOURCE_FORMCODE.StartsWith("PE") || t.SOURCE_FORMCODE.StartsWith("pe")) { task.MOUDLE_NAME = "绩效测量与评价"; } if (t.SOURCE_FORMCODE.StartsWith("PR") || t.SOURCE_FORMCODE.StartsWith("pr")) { task.MOUDLE_NAME = "生产工艺管理"; } if (t.SOURCE_FORMCODE.StartsWith("AE") || t.SOURCE_FORMCODE.StartsWith("ae")) { task.MOUDLE_NAME = "事故事件"; } if (t.SOURCE_FORMCODE.StartsWith("OG") || t.SOURCE_FORMCODE.StartsWith("og")) { task.MOUDLE_NAME = "安全生产组织保障"; } if (t.SOURCE_FORMCODE.StartsWith("TI") || t.SOURCE_FORMCODE.StartsWith("ti")) { task.MOUDLE_NAME = "安全投入、科技与工伤"; } if (t.SOURCE_FORMCODE.StartsWith("OH") || t.SOURCE_FORMCODE.StartsWith("oh")) { task.MOUDLE_NAME = "职业卫生"; } if (t.SOURCE_FORMCODE.StartsWith("CM") || t.SOURCE_FORMCODE.StartsWith("cm")) { task.MOUDLE_NAME = "应急管理"; } if (t.SOURCE_FORMCODE.StartsWith("DM") || t.SOURCE_FORMCODE.StartsWith("dm")) { task.MOUDLE_NAME = "机电安全管理"; } if (t.SOURCE_FORMCODE.StartsWith("SC") || t.SOURCE_FORMCODE.StartsWith("sc")) { if (t.TABLE_NAME != null && t.TABLE_NAME.StartsWith("T_SC_MT")) task.MOUDLE_NAME = "会议管理"; else task.MOUDLE_NAME = "标准化创建"; } addTaskInfos.Add(task); }); } this.UnifiedCommit(() => { if (addTaskInfos != null && addTaskInfos.Any()) BantchAddEntityNoCommit(addTaskInfos); }); return true; }); } #endregion #region 跑批-删除一般作业user_id为null的数据 /// /// 回调失败log执行 /// /// /// [HttpPost, Route("DeleteJobEventPerson")] public JsonActionResult DeleteJobEventPerson([FromBody] KeywordPageFilter pageFilter) { return SafeExecute(() => { var personIds = this.GetEntities(t => t.USER_ID == null, new BaseFilter(pageFilter.OrgId)).Select(m => m.ID).ToList(); var tpersonIds = this.GetEntities(t => t.USER_ID == null, new BaseFilter(pageFilter.OrgId)).Select(m => m.ID).ToList(); this.UnifiedCommit(() => { if (personIds != null && personIds.Any()) { this.BantchDeleteEntityNoCommit(personIds); } if (tpersonIds != null && tpersonIds.Any()) { this.BantchDeleteEntityNoCommit(tpersonIds); } }); return true; }); } #endregion /// /// 删除一般作业重复的数据(仅限豫鹭) /// [HttpPost, Route("DeleteJobevent")] public JsonActionResult DeleteJobevent([FromBody] KeywordFilter filter) { return SafeExecute(() => { var time = DateTime.Parse("2022-12-01 08:46:10.0000000"); var stepIds = this.GetEntities(t => t.NAME.Contains("食堂") && t.ID != Guid.Parse("5E7C0BC3-F7DB-4452-BB13-BD4D4BB0900A") && t.ID != Guid.Parse("AC2BAD62-77C5-4366-B2DB-0B2633979978"), new BaseFilter(filter.OrgId)).Select(m => m.ID).ToList(); var jobEventRecord = this.GetEntities(t => t.CREATE_TIME >= time && t.OPERATION_STEP_ID != null && stepIds.Contains((Guid)t.OPERATION_STEP_ID), new BaseFilter(filter.OrgId)).ToList(); var groupRecord = jobEventRecord.GroupBy(t => new { t.OPERATION_STEP_ID, t.CREATE_TIME }).Select(m => m.OrderBy(m => m.MODIFY_TIME).FirstOrDefault()).ToList(); var ids = groupRecord.Select(t => t.ID).ToList(); var deleteIds = jobEventRecord.Where(m => !ids.Contains(m.ID)).Select(t => t.ID).ToList(); var detailIds = this.GetEntities(t => deleteIds.Contains(t.JOB_EVENT_RECORD_ID), new BaseFilter(filter.OrgId)).Select(m => m.ID).ToList(); var personIds = this.GetEntities(t => deleteIds.Contains(t.JOB_EVENT_RECORD_ID), new BaseFilter(filter.OrgId)).Select(m => m.ID).ToList(); var flowIds = this.GetEntities(t => deleteIds.Contains(t.JOB_EVENT_RECORD_ID), new BaseFilter(filter.OrgId)).Select(m => m.ID).ToList(); var meaIds = this.GetEntities(t => deleteIds.Contains(t.JOB_EVENT_RECORD_ID), new BaseFilter(filter.OrgId)).Select(m => m.ID).ToList(); var taskIds= this.GetEntities(t => deleteIds.Contains((Guid)t.SOURCE_DATA_ID), new BaseFilter(filter.OrgId)).Select(m => m.ID).ToList(); UnifiedCommit(() => { if (deleteIds != null && deleteIds.Any()) this.BantchDeleteEntityNoCommit(deleteIds); if (detailIds != null && detailIds.Any()) this.BantchDeleteEntityNoCommit(detailIds); if (personIds != null && personIds.Any()) this.BantchDeleteEntityNoCommit(personIds); if (flowIds != null && flowIds.Any()) this.BantchDeleteEntityNoCommit(flowIds); if (meaIds != null && meaIds.Any()) this.BantchDeleteEntityNoCommit(meaIds); if (taskIds != null && taskIds.Any()) this.BantchDeleteEntityNoCommit(taskIds); }); return true; }); } #region 跑批-7大作业分布情况 /// /// 更新7天内待办中间表 /// /// /// [HttpPost, Route("JobProfile")] public JsonActionResult JobProfile([FromBody] KeywordPageFilter pageFilter) { return SafeExecute(() => { //八大作业 var jobProfiles = new List(); var enumList = Enum.GetValues(typeof(StepTypeEnum)); var unitList = Enum.GetValues(typeof(FMProductionUnit)); var stepList = this.GetEntities(t => t.IS_SPECIAL==true, new BaseFilter(pageFilter.OrgId)); var stepIds = stepList.Select(t => t.ID).ToList(); var linkList = this.GetEntities(t => stepIds.Contains(t.OPERATION_STEP_ID.Value), new BaseFilter(pageFilter.OrgId)); var jobList = this.GetEntities(t => stepIds.Contains(t.OPERATION_STEP_ID.Value), new BaseFilter(pageFilter.OrgId)).Select(m =>new { m.ID,m.OPERATION_STEP_ID }).ToList(); var stepTyes= stepList.Select(t => t.STEP_TYPE).Distinct().ToList(); foreach (FMProductionUnit unit in unitList) { foreach (StepTypeEnum level in enumList) { var fitstStep = stepList.Where(m => m.STEP_TYPE == level); var stepItems = fitstStep.Select(m => m.ID).ToList(); var firstLink = linkList.FirstOrDefault(m => stepItems.Contains(m.OPERATION_STEP_ID.Value) && m.MineType.Value == unit.GetInt()); var jobCount = jobList.Where(m => stepItems.Contains(m.OPERATION_STEP_ID.Value)).Count(); T_BI_JOB_PROFILE job = new T_BI_JOB_PROFILE(); job.ORG_ID = pageFilter.OrgId; job.MineType = unit; job.JobName = level.GetDescription(); job.RiskCount = jobCount; jobProfiles.Add(job); }; } var profilesIds = this.GetEntities(t => true, new BaseFilter(pageFilter.OrgId)).Select(m => m.ID).ToList(); this.UnifiedCommit(() => { if (profilesIds != null && profilesIds.Any()) this.BantchDeleteEntityNoCommit(profilesIds); if (jobProfiles != null && jobProfiles.Any()) BantchSaveEntityNoCommit(jobProfiles); }); return true; }); } #endregion #region 跑批-待办中间表 /// /// 更新7天内待办中间表 /// /// /// [HttpPost, Route("AddNoticeTaskNew")] public JsonActionResult AddNoticeTaskNew([FromBody] KeywordPageFilter pageFilter) { return SafeExecute(() => { var dt = DateTime.Now; //最近一天 DateTime week = dt.AddDays(-1).Date; var taskInfos = new List(); var biTaskInfos = new List(); var addTaskInfos = new List(); var updateTaskInfos = new List(); var deleteIds = new List(); var newFilter = new BaseFilter(pageFilter.OrgId); if (!string.IsNullOrEmpty(pageFilter.Parameter1)) { if (!pageFilter.Parameter1.Contains("|")) throw new Exception("必须传入开始日期和结束日期,以|符号分隔"); var temp = pageFilter.Parameter1.Split("|"); if (temp[1].Length == 0) throw new Exception("必须传入开始日期和结束日期,以|符号分隔"); DateTime year = DateTime.Parse(temp[0] + " 00:00:00"); DateTime yearEnd = DateTime.Parse(temp[1] + " 23:59:59"); newFilter.SelectField = new List {"ID", "NOTICE_TITLE", "NOTICE_STATUS", "USER_ID", "SOURCE_FORMCODE", "SOURCE_DATA_ID", "CREATE_TIME", "CREATER_ID", "CODE","NOTICE_TYPE","TASK_DT","USER_NAME","TASK_STARTDT","TASK_ENDDT","FORM_TYPE","TABLE_NAME","IS_DELETED","ISCANCEL","SENDTIME" }; var taskInfoTemps = this.GetEntities(t => !t.IS_DELETED && t.MODIFY_TIME >= year && t.MODIFY_TIME < yearEnd && t.USER_ID != null && t.SOURCE_FORMCODE != null, newFilter).ToList(); //&& t.SOURCE_FORMCODE != "PF119" && t.SOURCE_FORMCODE != "PF135"&& t.NOTICE_TYPE != 7 && t.NOTICE_TYPE != 8 && t.NOTICE_TYPE != 2 var taskInfoIds = taskInfoTemps.Select(t => t.ID).ToList(); biTaskInfos = this.GetEntities(t=> taskInfoIds.Contains((Guid)t.TASK_ID), new BaseFilter(pageFilter.OrgId)).ToList(); var dataIds = biTaskInfos.Select(t => t.TASK_ID).Distinct(); taskInfos = taskInfoTemps.Where(t => !dataIds.Contains(t.ID)).ToList();//&& !t.NOTICE_TITLE.Contains("审核") updateTaskInfos = biTaskInfos.Where(t => t.NOTICE_STATUS == 0).ToList(); updateTaskInfos.ForEach(t => { var item = taskInfoTemps.FirstOrDefault(m => m.ID == t.TASK_ID); if (item != null) { t.NOTICE_STATUS = item.NOTICE_STATUS; t.TABLE_NAME = item.TABLE_NAME; t.IS_DELETED = item.IS_DELETED; t.ISCANCEL = item.ISCANCEL; t.SENDTIME = item.SENDTIME; } }); } else { newFilter.SelectField = new List {"ID", "NOTICE_TITLE", "NOTICE_STATUS", "USER_ID", "SOURCE_FORMCODE", "SOURCE_DATA_ID", "CREATE_TIME", "CREATER_ID", "CODE","NOTICE_TYPE","TASK_DT","USER_NAME","TASK_STARTDT","TASK_ENDDT","FORM_TYPE","TABLE_NAME","IS_DELETED","ISCANCEL","SENDTIME" }; var taskInfoTemps = this.GetEntities(t => !t.IS_DELETED && t.MODIFY_TIME >= week && t.USER_ID != null && t.SOURCE_FORMCODE != null, newFilter).ToList(); //&& t.NOTICE_TYPE != 7 && t.NOTICE_TYPE != 8 && t.NOTICE_TYPE != 2 && t.SOURCE_FORMCODE != "PF135" && t.SOURCE_FORMCODE != "PF119" var taskInfoIds = taskInfoTemps.Select(t => t.ID).ToList(); biTaskInfos = this.GetEntities(t => taskInfoIds.Contains((Guid)t.TASK_ID), new BaseFilter(pageFilter.OrgId)).ToList(); var dataIds = biTaskInfos.Select(t => t.TASK_ID).Distinct().ToList(); taskInfos = taskInfoTemps.Where(t => !dataIds.Contains(t.ID)).ToList();//&& !t.NOTICE_TITLE.Contains("审核") updateTaskInfos = biTaskInfos.Where(t => t.NOTICE_STATUS == 0).ToList(); updateTaskInfos.ForEach(t => { var item = taskInfoTemps.FirstOrDefault(m => m.ID == t.TASK_ID); if (item != null) { t.NOTICE_STATUS = item.NOTICE_STATUS; t.TABLE_NAME = item.TABLE_NAME; t.IS_DELETED = item.IS_DELETED; t.ISCANCEL = item.ISCANCEL; t.SENDTIME = item.SENDTIME; } }); } //人员表 newFilter.SelectField = new List { "ID", "DEPARTMENT_ID" }; var userIds = taskInfos.Select(t => t.USER_ID).Distinct().ToList(); var userInfos = this.GetEntities(t => userIds.Contains(t.ID), newFilter).ToList(); //部门表 newFilter.SelectField = new List { "ID", "PARENT_ID", "DEPARTMENT_TYPE", "Nav_Parent" }; var departmentInfos = this.GetEntities(t => t.ENABLE_STATUS == 0, newFilter).ToList(); if (taskInfos.Any()) { taskInfos.ForEach(t => { T_BI_NOTIFICATION_TASK_NEW task = new T_BI_NOTIFICATION_TASK_NEW(); task.ORG_ID = pageFilter.OrgId; task.TASK_ID = t.ID; task.SOURCE_DATA_ID = t.SOURCE_DATA_ID; task.CREATER_ID = t.CREATER_ID; task.NOTICE_STATUS = t.NOTICE_STATUS; task.NOTICE_TITLE = t.NOTICE_TITLE; task.SOURCE_FORMCODE = t.SOURCE_FORMCODE; task.CREATE_DATE = t.CREATE_TIME; task.USER_ID = t.USER_ID; task.CODE = t.CODE; task.NOTICE_TYPE = t.NOTICE_TYPE; task.TASK_DT = t.TASK_DT; task.USER_NAME = t.USER_NAME; task.TASK_STARTDT = t.TASK_STARTDT; task.TASK_ENDDT = t.TASK_ENDDT; task.FORM_TYPE = t.FORM_TYPE; task.TABLE_NAME = t.TABLE_NAME; task.IS_DELETED = t.IS_DELETED; task.ISCANCEL = t.ISCANCEL; task.SENDTIME = t.SENDTIME; var user = userInfos.FirstOrDefault(m => m.ID == t.USER_ID); if (user != null) { var depart = departmentInfos.FirstOrDefault(m => m.ID == user.DEPARTMENT_ID); if (depart != null) { if (depart.DEPARTMENT_TYPE == 2) { task.CLASS_DEPARTMENT_ID = depart.ID; task.SHOP_DEPARTMENT_ID = depart.PARENT_ID; task.DEPT_DEPARTMENT_ID = depart.Nav_Parent?.PARENT_ID; } else if (depart.DEPARTMENT_TYPE == 1) { task.CLASS_DEPARTMENT_ID = null; task.SHOP_DEPARTMENT_ID = depart.ID; task.DEPT_DEPARTMENT_ID = depart.PARENT_ID; } else if (depart.DEPARTMENT_TYPE == 0) { task.CLASS_DEPARTMENT_ID = null; task.SHOP_DEPARTMENT_ID = null; task.DEPT_DEPARTMENT_ID = depart.ID; } } } if (t.SOURCE_FORMCODE == "PF119") { task.MOUDLE_NAME = "审批管理"; } if (t.SOURCE_FORMCODE == "PF135") { task.MOUDLE_NAME = "今日提醒"; } if (t.SOURCE_FORMCODE.StartsWith("HM") || t.SOURCE_FORMCODE.StartsWith("hm")) { task.MOUDLE_NAME = "风险管理"; } if (t.SOURCE_FORMCODE.StartsWith("FO") || t.SOURCE_FORMCODE.StartsWith("fo")) { task.MOUDLE_NAME = "作业现场管理"; } if (t.SOURCE_FORMCODE.StartsWith("BS") || t.SOURCE_FORMCODE.StartsWith("bs")) { task.MOUDLE_NAME = "安全检查"; } if (t.SOURCE_FORMCODE.StartsWith("LR") || t.SOURCE_FORMCODE.StartsWith("lr")) { task.MOUDLE_NAME = "法律法规与其他要求"; } if (t.SOURCE_FORMCODE.StartsWith("SE") || t.SOURCE_FORMCODE.StartsWith("se")) { task.MOUDLE_NAME = "安全教育培训"; } if (t.SOURCE_FORMCODE.StartsWith("PT") || t.SOURCE_FORMCODE.StartsWith("pt")) { task.MOUDLE_NAME = "方针与目标管理"; } if (t.SOURCE_FORMCODE.StartsWith("PE") || t.SOURCE_FORMCODE.StartsWith("pe")) { task.MOUDLE_NAME = "绩效测量与评价"; } if (t.SOURCE_FORMCODE.StartsWith("PR") || t.SOURCE_FORMCODE.StartsWith("pr")) { task.MOUDLE_NAME = "生产工艺管理"; } if (t.SOURCE_FORMCODE.StartsWith("AE") || t.SOURCE_FORMCODE.StartsWith("ae")) { task.MOUDLE_NAME = "事故事件"; } if (t.SOURCE_FORMCODE.StartsWith("OG") || t.SOURCE_FORMCODE.StartsWith("og")) { task.MOUDLE_NAME = "安全生产组织保障"; } if (t.SOURCE_FORMCODE.StartsWith("TI") || t.SOURCE_FORMCODE.StartsWith("ti")) { task.MOUDLE_NAME = "安全投入、科技与工伤"; } if (t.SOURCE_FORMCODE.StartsWith("OH") || t.SOURCE_FORMCODE.StartsWith("oh")) { task.MOUDLE_NAME = "职业卫生"; } if (t.SOURCE_FORMCODE.StartsWith("CM") || t.SOURCE_FORMCODE.StartsWith("cm")) { task.MOUDLE_NAME = "应急管理"; } if (t.SOURCE_FORMCODE.StartsWith("DM") || t.SOURCE_FORMCODE.StartsWith("dm")) { task.MOUDLE_NAME = "机电安全管理"; } if (t.SOURCE_FORMCODE.StartsWith("SC") || t.SOURCE_FORMCODE.StartsWith("sc")) { if (t.TABLE_NAME != null && t.TABLE_NAME.StartsWith("T_SC_MT")) task.MOUDLE_NAME = "会议管理"; else task.MOUDLE_NAME = "标准化创建"; } addTaskInfos.Add(task); }); } this.UnifiedCommit(() => { if (addTaskInfos != null && addTaskInfos.Any()) BantchAddEntityNoCommit(addTaskInfos); if (updateTaskInfos != null && updateTaskInfos.Any()) BantchUpdateEntityNoCommit(updateTaskInfos); //if (deleteIds != null && deleteIds.Any()) // BantchDeleteEntityNoCommit(deleteIds); }); return true; }); } #endregion #region 跑批-更新跑批中间表的表名 /// /// 更新7天所有待办的表名 /// /// /// [HttpPost, Route("UpdateTaskTableNew")] public JsonActionResult UpdateTaskTableNew([FromBody] KeywordPageFilter pageFilter) { return SafeExecute(() => { var dt = DateTime.Now; //最近一周 DateTime week = dt.AddDays(-1).Date; if (!string.IsNullOrEmpty(pageFilter.Parameter1)) { if (!pageFilter.Parameter1.Contains("|")) throw new Exception("必须传入开始日期和结束日期,以|符号分隔"); var temp = pageFilter.Parameter1.Split("|"); if (temp[1].Length == 0) throw new Exception("必须传入开始日期和结束日期,以|符号分隔"); week = DateTime.Parse(temp[0]); dt = DateTime.Parse(temp[1]); } var formInfos = this.GetEntities(t => t.TABLE_NAME != null, new BaseFilter(pageFilter.OrgId)).ToList(); var formCodes = formInfos.Select(t => t.CODE).Distinct().ToList(); var taskInfos = this.GetEntities(t => t.CREATE_TIME >= week && t.CREATE_TIME <= dt && t.SOURCE_FORMCODE != "PF135" && t.SOURCE_FORMCODE != "PF119" && t.NOTICE_TYPE != 7 && t.NOTICE_TYPE != 8 && t.NOTICE_TYPE != 2 && t.SOURCE_FORMCODE != null && t.TABLE_NAME != null, new BaseFilter(pageFilter.OrgId)).ToList(); var taskIds = taskInfos.Select(t => t.ID).ToList(); var biTaskInfos = this.GetEntities(t => t.CREATE_DATE >= week && t.CREATE_DATE <= dt, new BaseFilter(pageFilter.OrgId)).ToList(); biTaskInfos = biTaskInfos.Where(t => t.TASK_ID != null && taskIds.Contains((Guid)t.TASK_ID)).ToList(); if (biTaskInfos != null && biTaskInfos.Any()) { foreach (var item in biTaskInfos) { var taskFirst = taskInfos.FirstOrDefault(t=>t.ID == item.TASK_ID); if (taskFirst != null) { item.TABLE_NAME = taskFirst.TABLE_NAME; item.SOURCE_FORMCODE = taskFirst.SOURCE_FORMCODE; if (item.SOURCE_FORMCODE.StartsWith("HM") || item.SOURCE_FORMCODE.StartsWith("hm")) { item.MOUDLE_NAME = "风险管理"; } if (item.SOURCE_FORMCODE.StartsWith("FO") || item.SOURCE_FORMCODE.StartsWith("fo")) { item.MOUDLE_NAME = "作业现场管理"; } if (item.SOURCE_FORMCODE.StartsWith("BS") || item.SOURCE_FORMCODE.StartsWith("bs")) { item.MOUDLE_NAME = "安全检查"; } if (item.SOURCE_FORMCODE.StartsWith("LR") || item.SOURCE_FORMCODE.StartsWith("lr")) { item.MOUDLE_NAME = "法律法规与其他要求"; } if (item.SOURCE_FORMCODE.StartsWith("SE") || item.SOURCE_FORMCODE.StartsWith("se")) { item.MOUDLE_NAME = "安全教育培训"; } if (item.SOURCE_FORMCODE.StartsWith("PT") || item.SOURCE_FORMCODE.StartsWith("pt")) { item.MOUDLE_NAME = "方针与目标管理"; } if (item.SOURCE_FORMCODE.StartsWith("PE") || item.SOURCE_FORMCODE.StartsWith("pe")) { item.MOUDLE_NAME = "绩效测量与评价"; } if (item.SOURCE_FORMCODE.StartsWith("PR") || item.SOURCE_FORMCODE.StartsWith("pr")) { item.MOUDLE_NAME = "生产工艺管理"; } if (item.SOURCE_FORMCODE.StartsWith("AE") || item.SOURCE_FORMCODE.StartsWith("ae")) { item.MOUDLE_NAME = "事故事件"; } if (item.SOURCE_FORMCODE.StartsWith("OG") || item.SOURCE_FORMCODE.StartsWith("og")) { item.MOUDLE_NAME = "安全生产组织保障"; } if (item.SOURCE_FORMCODE.StartsWith("TI") || item.SOURCE_FORMCODE.StartsWith("ti")) { item.MOUDLE_NAME = "安全投入、科技与工伤"; } if (item.SOURCE_FORMCODE.StartsWith("OH") || item.SOURCE_FORMCODE.StartsWith("oh")) { item.MOUDLE_NAME = "职业卫生"; } if (item.SOURCE_FORMCODE.StartsWith("CM") || item.SOURCE_FORMCODE.StartsWith("cm")) { item.MOUDLE_NAME = "应急管理"; } if (item.SOURCE_FORMCODE.StartsWith("DM") || item.SOURCE_FORMCODE.StartsWith("dm")) { item.MOUDLE_NAME = "机电安全管理"; } if (item.SOURCE_FORMCODE.StartsWith("SC") || item.SOURCE_FORMCODE.StartsWith("sc")) { if (item.TABLE_NAME != null && item.TABLE_NAME.StartsWith("T_SC_MT")) item.MOUDLE_NAME = "会议管理"; else item.MOUDLE_NAME = "标准化创建"; } } } } this.UnifiedCommit(() => { if (biTaskInfos != null && biTaskInfos.Any()) BantchSaveEntityNoCommit(biTaskInfos); }); return true; }); } #endregion #region 目标指标细表更新 /// /// 目标指标细表更新 /// /// /// [HttpPost, Route("updatePT")] public JsonActionResult updatePT([FromBody] KeywordPageFilter pageFilter) { return SafeExecute(() => { List departmentContents = new List(); List teamContents = new List(); List contents = new List(); var tempDetails = this.GetEntities(t => !t.IS_DELETED, new BaseFilter(pageFilter.OrgId), new string[] { "Nav_Contents" }).ToList(); //目标指标 var indicator = this.GetEntity(t =>t.ID == Guid.Parse("6524ABBF-F435-43FD-8103-61AA59D66D5F"), "Nav_DepartmentDetail", "Nav_TeamDetail"); if (indicator != null) { if (indicator.Nav_DepartmentDetail != null && indicator.Nav_DepartmentDetail.Any()) { foreach (var auditDs in indicator.Nav_DepartmentDetail) { var tempCurrent = tempDetails.FirstOrDefault(t => t.DEPARTMENT_ID == auditDs.DEPARTMENT_ID && t.USER_ID == null); if (tempCurrent != null) { if (tempCurrent.Nav_Contents != null && tempCurrent.Nav_Contents.Any()) { tempCurrent.Nav_Contents.ForEach(t => { T_PT_INDICATOR_FORMULATION_DEPARTMENT_DETAIL_CONTENT content = new T_PT_INDICATOR_FORMULATION_DEPARTMENT_DETAIL_CONTENT(); content.ORG_ID = t.ORG_ID; content.INDICATOR_FORMULATION_DEPARTMENT_DETAIL_ID = auditDs.ID; content.NAME = t.NAME; content.ROW_NO = t.ROW_NO; departmentContents.Add(content); }); } } } } if (indicator.Nav_TeamDetail != null && indicator.Nav_TeamDetail.Any()) { foreach (var auditDs in indicator.Nav_TeamDetail) { var tempCurrent = tempDetails.FirstOrDefault(t => t.USER_ID == auditDs.USER_ID); if (tempCurrent != null) { if (tempCurrent.Nav_Contents != null && tempCurrent.Nav_Contents.Any()) { tempCurrent.Nav_Contents.ForEach(t => { T_PT_INDICATOR_FORMULATION_DEPARTMENT_TEAM_CONTENT content = new T_PT_INDICATOR_FORMULATION_DEPARTMENT_TEAM_CONTENT(); content.ORG_ID = t.ORG_ID; content.INDICATOR_FORMULATION_DEPARTMENT_TEAM_ID = auditDs.ID; content.NAME = t.NAME; content.ROW_NO = t.ROW_NO; teamContents.Add(content); }); } } } } } //考核方案 var audit = this.GetEntity(t => t.ID == Guid.Parse("92AD87FE-EB5E-4F01-8F68-63E28ED7D670"), "Nav_Details"); if (audit != null && audit.Nav_Details != null && audit.Nav_Details.Any()) { foreach (var auditDs in audit.Nav_Details) { var tempCurrent = tempDetails.FirstOrDefault(t => t.DEPARTMENT_ID == auditDs.DEPARTMENT_ID && t.USER_ID == auditDs.USER_ID); if (tempCurrent != null) { auditDs.ASSESSMENT_CYCLE = tempCurrent.ASSESSMENT_CYCLE; if (tempCurrent.Nav_Contents != null && tempCurrent.Nav_Contents.Any()) { tempCurrent.Nav_Contents.ForEach(t => { T_PT_ASSESSMENT_PLAN_AUDIT_DETAIL_CONTENT content = new T_PT_ASSESSMENT_PLAN_AUDIT_DETAIL_CONTENT(); content.ORG_ID = t.ORG_ID; content.PLAN_AUDIT_DETAIL_ID = auditDs.ID; content.NAME = t.NAME; content.SCORE = t.SCORE; content.METHOD = t.METHOD; contents.Add(content); }); } } } } this.UnifiedCommit(() => { if (departmentContents != null && departmentContents.Any()) BantchSaveEntityNoCommit(departmentContents); if (teamContents != null && teamContents.Any()) BantchSaveEntityNoCommit(teamContents); if (contents != null && contents.Any()) BantchSaveEntityNoCommit(contents); }); return true; }); } #endregion } }