mh_jy_safe/APT.MicroApi/APT.PP.WebApi/Controllers/Api/BIAnalysisController.cs

4311 lines
250 KiB
C#
Raw Normal View History

2025-08-25 09:56:57 +08:00
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<T_BI_FORM_RUN_ANALYSIS>
{
[HttpPost, Route("AddRiskMoudleInfo")]
public JsonActionResult<bool> AddRiskMoudleInfo([FromBody] KeywordFilter filter)
{
return SafeExecute<bool>(() =>
{
try
{
var sourceIds = new List<Guid>();
List<T_BI_FORM_RUN_ANALYSIS> formAnalysis = new List<T_BI_FORM_RUN_ANALYSIS>();
var newFilter = new BaseFilter(filter.OrgId);
newFilter.SelectField = new List<string> { "ID", "STATUS" };
//风险评价计划审核表
var evalPlan = this.GetEntities<T_HM_EVALUATION_PLAN>(t => true, newFilter);
var evalPlanIds = evalPlan.Select(t => t.ID).ToList();
sourceIds.AddRange(evalPlanIds);
//风险评价计划发布
newFilter.SelectField = new List<string> { "ID", "RELEASE_STATUS" };
var noticeRelease = this.GetEntities<T_HM_NOTICE_RELEASE>(t => true, newFilter);
var noticeReleaseIds = noticeRelease.Select(t => t.ID).ToList();
sourceIds.AddRange(noticeReleaseIds);
//危险源/风险辨识任务
newFilter.SelectField = new List<string> { "ID", "STATUS" };
var riskTask = this.GetEntities<T_HM_RISK_TASK>(t => true, newFilter);
var riskTaskIds = riskTask.Select(t => t.ID).ToList();
sourceIds.AddRange(riskTaskIds);
//危险源/风险辨识记录表
var riskRecord = this.GetEntities<T_HM_RISK_RECORD>(t => true, newFilter);
var riskRecordIds = riskRecord.Select(t => t.ID).ToList();
sourceIds.AddRange(riskRecordIds);
//职业危害辨识任务
var hazardTask = this.GetEntities<T_HM_HAZARD_TASK>(t => true, newFilter);
var hazardTaskIds = hazardTask.Select(t => t.ID).ToList();
sourceIds.AddRange(hazardTaskIds);
//职业危害辨识记录表
var hazardRecord = this.GetEntities<T_HM_HAZARD_RECORD>(t => true, newFilter);
var hazardRecordIds = hazardRecord.Select(t => t.ID).ToList();
sourceIds.AddRange(hazardRecordIds);
//评价结果表
var evalResult = this.GetEntities<T_HM_EVALUATE_RESULT>(t => true, newFilter);
var evalResultIds = evalResult.Select(t => t.ID).ToList();
sourceIds.AddRange(evalResultIds);
//作业任务识别
newFilter.SelectField = new List<string> { "ID", "IS_PUBLISH" };
var taskIdentify = this.GetEntities<T_HM_JOBTASK_IDENTIFY>(t => true, newFilter);
var taskIdentifyIds = taskIdentify.Select(t => t.ID).ToList();
sourceIds.AddRange(taskIdentifyIds);
//作业任务识别分析
var taskAnalysis = this.GetEntities<T_HM_OPERATION_TASK_DISTINGUISH_ANALYZE>(t => true, newFilter);
var taskAnalysisIds = taskAnalysis.Select(t => t.ID).ToList();
sourceIds.AddRange(taskAnalysisIds);
//一般任务分析
var taskOrdinary = this.GetEntities<T_HM_ORDINARY_TASK_ANALYSIS>(t => true, newFilter);
var taskOrdinaryIds = taskOrdinary.Select(t => t.ID).ToList();
sourceIds.AddRange(taskOrdinaryIds);
//关键任务分析
var taskCrucial = this.GetEntities<T_HM_CRUCIAL_TASK_ANALYSIS>(t => true, newFilter);
var taskCrucialIds = taskCrucial.Select(t => t.ID).ToList();
sourceIds.AddRange(taskCrucialIds);
//许可任务分析
var taskLicense = this.GetEntities<T_HM_LICENSE_ANALYSIS>(t => true, newFilter);
var taskLicenseIds = taskLicense.Select(t => t.ID).ToList();
sourceIds.AddRange(taskLicenseIds);
//作业任务分析文件发布
newFilter.SelectField = new List<string> { "ID" };
var filePublish = this.GetEntities<T_HM_FILE_PUBLISH>(t => true, newFilter);
var filePublishIds = filePublish.Select(t => t.ID).ToList();
sourceIds.AddRange(filePublishIds);
//只取待办超期的
newFilter.SelectField = new List<string> { "SOURCE_DATA_ID" };
var tasks = this.GetEntities<T_FM_NOTIFICATION_TASK>(t => t.NOTICE_STATUS == 2, newFilter);
tasks = tasks.Where(t => sourceIds.Contains(t.SOURCE_DATA_ID.Value)).ToList();
//表单运行情况分析表
var allAnalysis = this.GetEntities<T_BI_FORM_RUN_ANALYSIS>(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);
});
}
catch (Exception ex)
{
if (!string.IsNullOrEmpty(ex.StackTrace))
throw new Exception("错误日志:[StackTrace]" + ex.StackTrace);
else
throw new Exception("【" + HttpContext.Request.Path + "】错误日志:[Message]" + ex.Message);
}
return true;
});
}
[HttpPost, Route("AddSafeCheckMoudleInfo")]
public JsonActionResult<bool> AddSafeCheckMoudleInfo([FromBody] KeywordFilter filter)
{
return SafeExecute<bool>(() =>
{
try
{
var sourceIds = new List<Guid>();
List<T_BI_FORM_RUN_ANALYSIS> formAnalysis = new List<T_BI_FORM_RUN_ANALYSIS>();
var newFilter = new BaseFilter(filter.OrgId);
newFilter.SelectField = new List<string> { "ID", "STATUSPLAN", "STATUCHECK" };
//检查任务制定
var evalPlan = this.GetEntities<T_BS_SAFE_CHECK>(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<string> { "ID", "SUBMIT_STATUS" };
var riskTask = this.GetEntities<T_BS_RISK_SUBMIT>(t => true, newFilter);
var riskTaskIds = riskTask.Select(t => t.ID).ToList();
sourceIds.AddRange(riskTaskIds);
//隐患整改记录
newFilter.SelectField = new List<string> { "ID", "DEALSITUATION" };
var riskRecord = this.GetEntities<T_BS_RISK_SUBMIT_CONTENT_DEAL>(t => true, newFilter);
var riskRecordIds = riskRecord.Select(t => t.ID).ToList();
sourceIds.AddRange(riskRecordIds);
//延期整改申请
newFilter.SelectField = new List<string> { "ID" };
var hazardTask = this.GetEntities<T_BS_RISK_SUBMIT_DELAY_APPLY>(t => true, newFilter);
var hazardTaskIds = hazardTask.Select(t => t.ID).ToList();
sourceIds.AddRange(hazardTaskIds);
//只取待办超期的
newFilter.SelectField = new List<string> { "SOURCE_DATA_ID" };
var tasks = this.GetEntities<T_FM_NOTIFICATION_TASK>(t => t.NOTICE_STATUS == 2, newFilter);
tasks = tasks.Where(t => sourceIds.Contains(t.SOURCE_DATA_ID.Value)).ToList();
//表单运行情况分析表
var allAnalysis = this.GetEntities<T_BI_FORM_RUN_ANALYSIS>(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);
});
}
catch (Exception ex)
{
if (!string.IsNullOrEmpty(ex.StackTrace))
throw new Exception("错误日志:[StackTrace]" + ex.StackTrace);
else
throw new Exception("【" + HttpContext.Request.Path + "】错误日志:[Message]" + ex.Message);
}
return true;
});
}
[HttpPost, Route("AddOperationMoudleInfo")]
public JsonActionResult<bool> AddOperationMoudleInfo([FromBody] KeywordFilter filter)
{
return SafeExecute<bool>(() =>
{
try
{
var sourceIds = new List<Guid>();
List<T_BI_FORM_RUN_ANALYSIS> formAnalysis = new List<T_BI_FORM_RUN_ANALYSIS>();
var newFilter = new BaseFilter(filter.OrgId);
newFilter.SelectField = new List<string> { "ID", "SHIFT_STATUS", "OVERTIME" };
//岗位当班工作记录
var evalPlan = this.GetEntities<T_FO_CURRENT_CLASS_RECORD>(t => true, newFilter);
//var evalPlanIds = evalPlan.Select(t => t.ID).ToList();
//sourceIds.AddRange(evalPlanIds);
//岗位交接班记录
var noticeRelease = this.GetEntities<T_FO_CHANGE_SHIFT_RECORD>(t => true, newFilter);
//var noticeReleaseIds = noticeRelease.Select(t => t.ID).ToList();
//sourceIds.AddRange(noticeReleaseIds);
//班组安全活动
newFilter.SelectField = new List<string> { "ID", "TA_STATUS", "OVERTIME" };
var riskTask = this.GetEntities<T_FO_TEAM_ACTIVITY>(t => true, newFilter);
//var riskTaskIds = riskTask.Select(t => t.ID).ToList();
//sourceIds.AddRange(riskTaskIds);
//班前会议记录
newFilter.SelectField = new List<string> { "ID", "PRE_MEETING_STATUS", "OVERTIME" };
var riskRecord = this.GetEntities<T_FO_PRE_SHIFT_MEETING_RECORD>(t => true, newFilter);
//var riskRecordIds = riskRecord.Select(t => t.ID).ToList();
//sourceIds.AddRange(riskRecordIds);
//作业活动记录(一般作业)
newFilter.SelectField = new List<string> { "ID", "FORM_STATUS" };
var hazardTask = this.GetEntities<T_FO_JOB_EVENT_RECORD>(t => true, newFilter);
var hazardTaskIds = hazardTask.Select(t => t.ID).ToList();
sourceIds.AddRange(hazardTaskIds);
//作业方案讨论记录
var hazardRecord = this.GetEntities<T_FO_PRE_OPER_SCH>(t => true, newFilter);
var hazardRecordIds = hazardRecord.Select(t => t.ID).ToList();
sourceIds.AddRange(hazardRecordIds);
//关键作业/许可作业工作票
newFilter.SelectField = new List<string> { "ID", "IS_PUBLISH" };
var evalResult = this.GetEntities<T_FO_CRUCIAL_LICENSE_JOB>(t => true, newFilter);
var evalResultIds = evalResult.Select(t => t.ID).ToList();
sourceIds.AddRange(evalResultIds);
//技术交底表
newFilter.SelectField = new List<string> { "ID", "FORM_STATUS" };
var taskIdentify = this.GetEntities<T_FO_TECH_DISCLOSURE_FROM>(t => true, newFilter);
var taskIdentifyIds = taskIdentify.Select(t => t.ID).ToList();
sourceIds.AddRange(taskIdentifyIds);
//作业活动记录(关键和许可作业)
var taskAnalysis = this.GetEntities<T_FO_JOB_ACTIVITY_RECORD>(t => true, newFilter);
var taskAnalysisIds = taskAnalysis.Select(t => t.ID).ToList();
sourceIds.AddRange(taskAnalysisIds);
//只取待办超期的
newFilter.SelectField = new List<string> { "SOURCE_DATA_ID" };
var tasks = this.GetEntities<T_FM_NOTIFICATION_TASK>(t => t.NOTICE_STATUS == 2, newFilter);
tasks = tasks.Where(t => sourceIds.Contains(t.SOURCE_DATA_ID.Value)).ToList();
//表单运行情况分析表
var allAnalysis = this.GetEntities<T_BI_FORM_RUN_ANALYSIS>(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);
});
}
catch (Exception ex)
{
if (!string.IsNullOrEmpty(ex.StackTrace))
throw new Exception("错误日志:[StackTrace]" + ex.StackTrace);
else
throw new Exception("【" + HttpContext.Request.Path + "】错误日志:[Message]" + ex.Message);
}
return true;
});
}
//#region 年度风险评价计划审核表
//[HttpPost, Route("AddEvalPlanInfo")]
//public JsonActionResult<bool> AddEvalPlanInfo([FromBody] KeywordFilter filter)
//{
// return SafeExecute<bool>(() =>
// {
// var startTime = DateTime.Now.AddMonths(-1);
// if (string.IsNullOrEmpty(filter.Parameter1))
// {
// startTime=Convert.ToDateTime(filter.Parameter1);
// }
// List<T_BI_FORM_RUN_ANALYSIS_DETAIL> formAnalysis = new List<T_BI_FORM_RUN_ANALYSIS_DETAIL>();
// var newFilter = new BaseFilter(filter.OrgId);
// newFilter.SelectField = new List<string> { "ID", "STATUS", "INITIATING_DEPARTMENT" };
// //风险评价计划审核表
// var evalPlan = this.GetEntities<T_HM_EVALUATION_PLAN>(t => t.CREATE_TIME>= startTime && t.INITIATING_DEPARTMENT != null, newFilter);
// var sourceIds = evalPlan.Select(t => t.ID).ToList();
// //只取待办超期的
// newFilter.SelectField = new List<string> { "SOURCE_DATA_ID" };
// var tasks = this.GetEntities<T_FM_NOTIFICATION_TASK>(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<bool> AddNoticeReleaseInfo([FromBody] KeywordFilter filter)
//{
// return SafeExecute<bool>(() =>
// {
// var startTime = DateTime.Now.AddMonths(-1);
// if (string.IsNullOrEmpty(filter.Parameter1))
// {
// startTime = Convert.ToDateTime(filter.Parameter1);
// }
// List<T_BI_FORM_RUN_ANALYSIS_DETAIL> formAnalysis = new List<T_BI_FORM_RUN_ANALYSIS_DETAIL>();
// var newFilter = new BaseFilter(filter.OrgId);
// newFilter.SelectField = new List<string> { "ID", "RELEASE_STATUS", "RELEAS_DEPARTMENT_ID" };
// var noticeRelease = this.GetEntities<T_HM_NOTICE_RELEASE>(t => t.CREATE_TIME >= startTime && t.RELEAS_DEPARTMENT_ID != null, newFilter).ToList();
// var sourceIds = noticeRelease.Select(t => t.ID).ToList();
// //只取待办超期的
// newFilter.SelectField = new List<string> { "SOURCE_DATA_ID" };
// var tasks = this.GetEntities<T_FM_NOTIFICATION_TASK>(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<bool> AddRiskTaskInfo([FromBody] KeywordFilter filter)
//{
// return SafeExecute<bool>(() =>
// {
// var startTime = DateTime.Now.AddMonths(-1);
// if (string.IsNullOrEmpty(filter.Parameter1))
// {
// startTime = Convert.ToDateTime(filter.Parameter1);
// }
// List<T_BI_FORM_RUN_ANALYSIS_DETAIL> formAnalysis = new List<T_BI_FORM_RUN_ANALYSIS_DETAIL>();
// var newFilter = new BaseFilter(filter.OrgId);
// //危险源/风险辨识任务
// newFilter.SelectField = new List<string> { "ID", "STATUS", "INITIATING_DEPARTMENT" };
// var riskTask = this.GetEntities<T_HM_RISK_TASK>(t => t.CREATE_TIME >= startTime && t.INITIATING_DEPARTMENT!=null, newFilter).ToList();
// var sourceIds = riskTask.Select(t => t.ID).ToList();
// //只取待办超期的
// newFilter.SelectField = new List<string> { "SOURCE_DATA_ID" };
// var tasks = this.GetEntities<T_FM_NOTIFICATION_TASK>(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<bool> AddRiskRecordInfo([FromBody] KeywordFilter filter)
//{
// return SafeExecute<bool>(() =>
// {
// var startTime = DateTime.Now.AddMonths(-1);
// if (string.IsNullOrEmpty(filter.Parameter1))
// {
// startTime = Convert.ToDateTime(filter.Parameter1);
// }
// List<T_BI_FORM_RUN_ANALYSIS_DETAIL> formAnalysis = new List<T_BI_FORM_RUN_ANALYSIS_DETAIL>();
// var newFilter = new BaseFilter(filter.OrgId);
// newFilter.SelectField = new List<string> { "ID", "STATUS", "INITIATING_DEPARTMENT" };
// //危险源/风险辨识记录表
// var riskRecord = this.GetEntities<T_HM_RISK_RECORD>(t => t.CREATE_TIME >= startTime && t.INITIATING_DEPARTMENT != null, newFilter).ToList();
// var sourceIds = riskRecord.Select(t => t.ID).ToList();
// //只取待办超期的
// newFilter.SelectField = new List<string> { "SOURCE_DATA_ID" };
// var tasks = this.GetEntities<T_FM_NOTIFICATION_TASK>(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<bool> AddHazardTaskInfo([FromBody] KeywordFilter filter)
//{
// return SafeExecute<bool>(() =>
// {
// var startTime = DateTime.Now.AddMonths(-1);
// if (string.IsNullOrEmpty(filter.Parameter1))
// {
// startTime = Convert.ToDateTime(filter.Parameter1);
// }
// List<T_BI_FORM_RUN_ANALYSIS_DETAIL> formAnalysis = new List<T_BI_FORM_RUN_ANALYSIS_DETAIL>();
// var newFilter = new BaseFilter(filter.OrgId);
// newFilter.SelectField = new List<string> { "ID", "STATUS", "INITIATING_DEPARTMENT" };
// //职业危害辨识任务
// var hazardTask = this.GetEntities<T_HM_HAZARD_TASK>(t => t.CREATE_TIME >= startTime && t.INITIATING_DEPARTMENT != null, newFilter).ToList();
// var sourceIds = hazardTask.Select(t => t.ID).ToList();
// //只取待办超期的
// newFilter.SelectField = new List<string> { "SOURCE_DATA_ID" };
// var tasks = this.GetEntities<T_FM_NOTIFICATION_TASK>(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<bool> AddHazardRecordInfo([FromBody] KeywordFilter filter)
//{
// return SafeExecute<bool>(() =>
// {
// var startTime = DateTime.Now.AddMonths(-1);
// if (string.IsNullOrEmpty(filter.Parameter1))
// {
// startTime = Convert.ToDateTime(filter.Parameter1);
// }
// List<T_BI_FORM_RUN_ANALYSIS_DETAIL> formAnalysis = new List<T_BI_FORM_RUN_ANALYSIS_DETAIL>();
// var newFilter = new BaseFilter(filter.OrgId);
// newFilter.SelectField = new List<string> { "ID", "STATUS", "INITIATING_DEPARTMENT" };
// //职业危害辨识记录表
// var hazardRecord = this.GetEntities<T_HM_HAZARD_RECORD>(t => t.CREATE_TIME >= startTime && t.INITIATING_DEPARTMENT != null, newFilter).ToList();
// var sourceIds = hazardRecord.Select(t => t.ID).ToList();
// //只取待办超期的
// newFilter.SelectField = new List<string> { "SOURCE_DATA_ID" };
// var tasks = this.GetEntities<T_FM_NOTIFICATION_TASK>(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<bool> AddEvalResultInfo([FromBody] KeywordFilter filter)
//{
// return SafeExecute<bool>(() =>
// {
// var startTime = DateTime.Now.AddMonths(-1);
// if (string.IsNullOrEmpty(filter.Parameter1))
// {
// startTime = Convert.ToDateTime(filter.Parameter1);
// }
// List<T_BI_FORM_RUN_ANALYSIS_DETAIL> formAnalysis = new List<T_BI_FORM_RUN_ANALYSIS_DETAIL>();
// var newFilter = new BaseFilter(filter.OrgId);
// newFilter.SelectField = new List<string> { "ID", "STATUS", "INITIATING_DEPARTMENT" };
// //评价结果表
// var evalResult = this.GetEntities<T_HM_EVALUATE_RESULT>(t => t.CREATE_TIME >= startTime && t.INITIATING_DEPARTMENT != null, newFilter).ToList();
// var sourceIds = evalResult.Select(t => t.ID).ToList();
// //只取待办超期的
// newFilter.SelectField = new List<string> { "SOURCE_DATA_ID" };
// var tasks = this.GetEntities<T_FM_NOTIFICATION_TASK>(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<bool> AddTaskIdentifyInfo([FromBody] KeywordFilter filter)
//{
// return SafeExecute<bool>(() =>
// {
// var startTime = DateTime.Now.AddMonths(-1);
// if (string.IsNullOrEmpty(filter.Parameter1))
// {
// startTime = Convert.ToDateTime(filter.Parameter1);
// }
// List<T_BI_FORM_RUN_ANALYSIS_DETAIL> formAnalysis = new List<T_BI_FORM_RUN_ANALYSIS_DETAIL>();
// var newFilter = new BaseFilter(filter.OrgId);
// //作业任务识别
// newFilter.SelectField = new List<string> { "ID", "IS_PUBLISH", "DEPARTMENT_ID" };
// var taskIdentify = this.GetEntities<T_HM_JOBTASK_IDENTIFY>(t => t.CREATE_TIME >= startTime && t.DEPARTMENT_ID != null, newFilter).ToList();
// var sourceIds = taskIdentify.Select(t => t.ID).ToList();
// //只取待办超期的
// newFilter.SelectField = new List<string> { "SOURCE_DATA_ID" };
// var tasks = this.GetEntities<T_FM_NOTIFICATION_TASK>(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<bool> AddTaskAnalysisInfo([FromBody] KeywordFilter filter)
//{
// return SafeExecute<bool>(() =>
// {
// var startTime = DateTime.Now.AddMonths(-1);
// if (string.IsNullOrEmpty(filter.Parameter1))
// {
// startTime = Convert.ToDateTime(filter.Parameter1);
// }
// List<T_BI_FORM_RUN_ANALYSIS_DETAIL> formAnalysis = new List<T_BI_FORM_RUN_ANALYSIS_DETAIL>();
// var newFilter = new BaseFilter(filter.OrgId);
// newFilter.SelectField = new List<string> { "ID", "IS_PUBLISH", "DEPARTMENT_ID" };
// //作业任务识别分析
// var taskAnalysis = this.GetEntities<T_HM_OPERATION_TASK_DISTINGUISH_ANALYZE>(t => t.CREATE_TIME >= startTime && t.DEPARTMENT_ID != null, newFilter).ToList();
// var sourceIds = taskAnalysis.Select(t => t.ID).ToList();
// //只取待办超期的
// newFilter.SelectField = new List<string> { "SOURCE_DATA_ID" };
// var tasks = this.GetEntities<T_FM_NOTIFICATION_TASK>(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<bool> AddTaskOrdinaryInfo([FromBody] KeywordFilter filter)
//{
// return SafeExecute<bool>(() =>
// {
// var startTime = DateTime.Now.AddMonths(-1);
// if (string.IsNullOrEmpty(filter.Parameter1))
// {
// startTime = Convert.ToDateTime(filter.Parameter1);
// }
// List<T_BI_FORM_RUN_ANALYSIS_DETAIL> formAnalysis = new List<T_BI_FORM_RUN_ANALYSIS_DETAIL>();
// var newFilter = new BaseFilter(filter.OrgId);
// newFilter.SelectField = new List<string> { "ID", "IS_PUBLISH", "DEPARTMENT_ID" };
// //一般任务分析
// var taskOrdinary = this.GetEntities<T_HM_ORDINARY_TASK_ANALYSIS>(t => t.CREATE_TIME >= startTime && t.DEPARTMENT_ID != null, newFilter).ToList();
// var sourceIds = taskOrdinary.Select(t => t.ID).ToList();
// //只取待办超期的
// newFilter.SelectField = new List<string> { "SOURCE_DATA_ID" };
// var tasks = this.GetEntities<T_FM_NOTIFICATION_TASK>(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<bool> AddTaskCrucialInfo([FromBody] KeywordFilter filter)
//{
// return SafeExecute<bool>(() =>
// {
// var startTime = DateTime.Now.AddMonths(-1);
// if (string.IsNullOrEmpty(filter.Parameter1))
// {
// startTime = Convert.ToDateTime(filter.Parameter1);
// }
// List<T_BI_FORM_RUN_ANALYSIS_DETAIL> formAnalysis = new List<T_BI_FORM_RUN_ANALYSIS_DETAIL>();
// var newFilter = new BaseFilter(filter.OrgId);
// newFilter.SelectField = new List<string> { "ID", "IS_PUBLISH", "DEPARTMENT_ID" };
// //关键任务分析
// var taskCrucial = this.GetEntities<T_HM_CRUCIAL_TASK_ANALYSIS>(t => t.CREATE_TIME >= startTime && t.DEPARTMENT_ID != null, newFilter).ToList();
// var sourceIds = taskCrucial.Select(t => t.ID).ToList();
// //只取待办超期的
// newFilter.SelectField = new List<string> { "SOURCE_DATA_ID" };
// var tasks = this.GetEntities<T_FM_NOTIFICATION_TASK>(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<bool> AddTaskLicenseInfo([FromBody] KeywordFilter filter)
//{
// return SafeExecute<bool>(() =>
// {
// var startTime = DateTime.Now.AddMonths(-1);
// if (string.IsNullOrEmpty(filter.Parameter1))
// {
// startTime = Convert.ToDateTime(filter.Parameter1);
// }
// List<T_BI_FORM_RUN_ANALYSIS_DETAIL> formAnalysis = new List<T_BI_FORM_RUN_ANALYSIS_DETAIL>();
// var newFilter = new BaseFilter(filter.OrgId);
// newFilter.SelectField = new List<string> { "ID", "IS_PUBLISH", "DEPARTMENT_ID" };
// //许可任务分析
// var taskLicense = this.GetEntities<T_HM_LICENSE_ANALYSIS>(t => t.CREATE_TIME >= startTime && t.DEPARTMENT_ID != null, newFilter).ToList();
// var sourceIds = taskLicense.Select(t => t.ID).ToList();
// //只取待办超期的
// newFilter.SelectField = new List<string> { "SOURCE_DATA_ID" };
// var tasks = this.GetEntities<T_FM_NOTIFICATION_TASK>(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<bool> AddFilePublishInfo([FromBody] KeywordFilter filter)
//{
// return SafeExecute<bool>(() =>
// {
// var startTime = DateTime.Now.AddMonths(-1);
// if (string.IsNullOrEmpty(filter.Parameter1))
// {
// startTime = Convert.ToDateTime(filter.Parameter1);
// }
// List<T_BI_FORM_RUN_ANALYSIS_DETAIL> formAnalysis = new List<T_BI_FORM_RUN_ANALYSIS_DETAIL>();
// var newFilter = new BaseFilter(filter.OrgId);
// //作业任务分析文件发布
// newFilter.SelectField = new List<string> { "ID", "DEPARTMENT_ID" };
// var filePublish = this.GetEntities<T_HM_FILE_PUBLISH>(t => t.CREATE_TIME >= startTime && t.DEPARTMENT_ID != null, newFilter).ToList();
// var sourceIds = filePublish.Select(t => t.ID).ToList();
// //只取待办超期的
// newFilter.SelectField = new List<string> { "SOURCE_DATA_ID" };
// var tasks = this.GetEntities<T_FM_NOTIFICATION_TASK>(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
/// <summary>
/// 获取部门级ID
/// </summary>
/// <returns></returns>
//private T_FM_DEPARTMENT GetDepartmentId(Guid id)
//{
// //var loginUserId = APT.Infrastructure.Api.AppContext.CurrentSession.UserID;
// var department = GetEntity<T_FM_DEPARTMENT>(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 -
/// <summary>
/// 待办汇总跑批(安全事务执行情况汇总)
/// </summary>
/// <param name="pageFilter"></param>
/// <returns></returns>
[HttpPost, Route("AddTaskInfo")]
public JsonActionResult<bool> AddTaskInfo([FromBody] KeywordPageFilter pageFilter)
{
return SafeExecute<bool>(() =>
{
try
{
List<T_BI_SYSTEM_RUN_SUMMARY> departSummary = new List<T_BI_SYSTEM_RUN_SUMMARY>();
List<T_BI_MOULD_RUN_SUMMARY> mouldSummary = new List<T_BI_MOULD_RUN_SUMMARY>();
var dt = DateTime.Now.Date;
//最近一周
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;
dt = Convert.ToDateTime(dt.ToString().Replace("0:00:00", "23:59:59"));
var newFilter = new BaseFilter(pageFilter.OrgId);
var taskYear = this.GetEntities<T_BI_NOTIFICATION_TASK_NEW>(t => t.CREATE_DATE >= year && t.CREATE_DATE <= dt, new BaseFilter(pageFilter.OrgId)).ToList();
newFilter.SelectField = new List<string> { "ID", "PARENT_ID", "NAME", "Nav_Parent", "DEPARTMENT_TYPE" };
var departmentInfos = this.GetEntities<T_FM_DEPARTMENT>(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.Department;
2025-08-25 09:56:57 +08:00
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.Workshop;
2025-08-25 09:56:57 +08:00
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.Class;
2025-08-25 09:56:57 +08:00
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.Department;
2025-08-25 09:56:57 +08:00
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.Workshop;
2025-08-25 09:56:57 +08:00
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.Class;
2025-08-25 09:56:57 +08:00
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.Department;
2025-08-25 09:56:57 +08:00
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.Workshop;
2025-08-25 09:56:57 +08:00
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.Class;
2025-08-25 09:56:57 +08:00
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.Department;
2025-08-25 09:56:57 +08:00
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.Workshop;
2025-08-25 09:56:57 +08:00
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.Class;
2025-08-25 09:56:57 +08:00
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.Department;
2025-08-25 09:56:57 +08:00
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.Workshop;
2025-08-25 09:56:57 +08:00
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.Class;
2025-08-25 09:56:57 +08:00
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<T_BI_DEPARTMENT_MONTH_RUN> monthRuns = new List<T_BI_DEPARTMENT_MONTH_RUN>();
var ksDepartId = departmentInfos.FirstOrDefault(t => t.NAME == "矿山部")?.ID;
var xkDepartId = departmentInfos.FirstOrDefault(t => t.NAME == "选矿部")?.ID;
if (pageFilter.OrgId.ToString() == "d9871ba8-0eec-9e4a-bb87-7d5a540d8913")
{
ksDepartId = departmentInfos.FirstOrDefault(t => t.NAME == "选矿一部")?.ID;
xkDepartId = departmentInfos.FirstOrDefault(t => t.NAME == "选矿二部")?.ID;
}
var currentMonth = DateTime.Now.Month; //获取当月
var currentDay = DateTime.Now.Day; //...........天
for (DateTime i = year; i <= dt; i = i.AddMonths(1)) //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 monthStart = Convert.ToDateTime(i.Year + "-" + i.Month + "-01 00:00:00");
var monthEnd = Convert.ToDateTime(monthStart.AddMonths(1).AddDays(-1).ToString().Replace("0:00:00", "23:59:59"));
if (i.Date == year.Date)
{
monthStart = year;
}
if (i.Date == dt.Date)
{
monthEnd = dt;
}
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_BI_SYSTEM_RUN_SUMMARY>(t => true, new BaseFilter(pageFilter.OrgId)).Select(m => m.ID).ToList();
var deletemouIds = this.GetEntities<T_BI_MOULD_RUN_SUMMARY>(t => true, new BaseFilter(pageFilter.OrgId)).Select(m => m.ID).ToList();
var deletemonthIds = this.GetEntities<T_BI_DEPARTMENT_MONTH_RUN>(t => true, new BaseFilter(pageFilter.OrgId)).Select(m => m.ID).ToList();
this.UnifiedCommit(() =>
{
if (deleteIds != null && deleteIds.Any())
BantchDeleteEntityNoCommit<T_BI_SYSTEM_RUN_SUMMARY>(deleteIds);
if (deleteIds != null && deleteIds.Any())
BantchDeleteEntityNoCommit<T_BI_MOULD_RUN_SUMMARY>(deletemouIds);
if (deleteIds != null && deleteIds.Any())
BantchDeleteEntityNoCommit<T_BI_DEPARTMENT_MONTH_RUN>(deletemonthIds);
if (departSummary != null && departSummary.Any())
BantchSaveEntityNoCommit(departSummary);
if (mouldSummary != null && mouldSummary.Any())
BantchSaveEntityNoCommit(mouldSummary);
if (monthRuns != null && monthRuns.Any())
BantchSaveEntityNoCommit(monthRuns);
});
}
catch (Exception ex)
{
if (!string.IsNullOrEmpty(ex.StackTrace))
throw new Exception("错误日志:[StackTrace]" + ex.StackTrace);
else
throw new Exception("【" + HttpContext.Request.Path + "】错误日志:[Message]" + ex.Message);
}
return true;
});
}
#endregion
#region -
/// <summary>
/// 更新7天所有待办的表名
/// </summary>
/// <param name="pageFilter"></param>
/// <returns></returns>
[HttpPost, Route("UpdateTaskTable")]
public JsonActionResult<bool> UpdateTaskTable([FromBody] KeywordPageFilter pageFilter)
{
return SafeExecute<bool>(() =>
{
try
{
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_PF_FORM>(t => t.TABLE_NAME != null, new BaseFilter(pageFilter.OrgId)).ToList();
var formCodes = formInfos.Select(t => t.CODE).Distinct().ToList();
var taskInfos = this.GetEntities<T_FM_NOTIFICATION_TASK>(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);
});
}
catch (Exception ex)
{
if (!string.IsNullOrEmpty(ex.StackTrace))
throw new Exception("错误日志:[StackTrace]" + ex.StackTrace);
else
throw new Exception("【" + HttpContext.Request.Path + "】错误日志:[Message]" + ex.Message);
}
return true;
});
}
#endregion
#region -7
/// <summary>
/// 更新7天内今日提醒和审批的类型
/// </summary>
/// <param name="pageFilter"></param>
/// <returns></returns>
[HttpPost, Route("UpdateNoticeType")]
public JsonActionResult<bool> UpdateNoticeType([FromBody] KeywordPageFilter pageFilter)
{
return SafeExecute<bool>(() =>
{
try
{
var dt = DateTime.Now;
//最近一周
DateTime week = dt.AddDays(-7).Date;
var taskInfos = this.GetEntities<T_FM_NOTIFICATION_TASK>(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);
});
}
catch (Exception ex)
{
if (!string.IsNullOrEmpty(ex.StackTrace))
throw new Exception("错误日志:[StackTrace]" + ex.StackTrace);
else
throw new Exception("【" + HttpContext.Request.Path + "】错误日志:[Message]" + ex.Message);
}
return true;
});
}
#endregion
#region -
/// <summary>
/// 更新7天内待办中间表
/// </summary>
/// <param name="pageFilter"></param>
/// <returns></returns>
[HttpPost, Route("AddNoticeTask")]
public JsonActionResult<bool> AddNoticeTask([FromBody] KeywordPageFilter pageFilter)
{
return SafeExecute<bool>(() =>
{
try
{
var dt = DateTime.Now;
//最近一周
DateTime week = dt.AddDays(-7).Date;
//最近一年
var taskInfos = new List<T_FM_NOTIFICATION_TASK>();
var biTaskInfos = new List<T_BI_NOTIFICATION_TASK>();
var addTaskInfos = new List<T_BI_NOTIFICATION_TASK>();
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<string> { "SOURCE_DATA_ID" };
biTaskInfos = this.GetEntities<T_BI_NOTIFICATION_TASK>(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<string> { "NOTICE_TITLE", "NOTICE_STATUS", "USER_ID", "SOURCE_FORMCODE", "SOURCE_DATA_ID", "CREATE_TIME", "CREATER_ID" };
taskInfos = this.GetEntities<T_FM_NOTIFICATION_TASK>(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<string> { "SOURCE_DATA_ID" };
biTaskInfos = this.GetEntities<T_BI_NOTIFICATION_TASK>(t => t.CREATE_DATE >= week, newFilter).ToList();
var dataIds = biTaskInfos.Select(t => t.SOURCE_DATA_ID).Distinct().ToList();
newFilter.SelectField = new List<string> { "NOTICE_TITLE", "NOTICE_STATUS", "USER_ID", "SOURCE_FORMCODE", "SOURCE_DATA_ID", "CREATE_TIME", "CREATER_ID" };
taskInfos = this.GetEntities<T_FM_NOTIFICATION_TASK>(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<string> { "ID", "DEPARTMENT_ID" };
var userIds = groupTasks.Select(t => t.USER_ID).Distinct().ToList();
var userInfos = this.GetEntities<T_FM_USER>(t => userIds.Contains(t.ID) && t.ENABLE_STATUS == 0, newFilter).ToList();
//部门表
newFilter.SelectField = new List<string> { "ID", "PARENT_ID", "DEPARTMENT_TYPE", "Nav_Parent" };
var departmentInfos = this.GetEntities<T_FM_DEPARTMENT>(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);
});
}
catch (Exception ex)
{
if (!string.IsNullOrEmpty(ex.StackTrace))
throw new Exception("错误日志:[StackTrace]" + ex.StackTrace);
else
throw new Exception("【" + HttpContext.Request.Path + "】错误日志:[Message]" + ex.Message);
}
return true;
});
}
#endregion
#region -user_id为null的数据
/// <summary>
/// 回调失败log执行
/// </summary>
/// <param name="pageFilter"></param>
/// <returns></returns>
[HttpPost, Route("DeleteJobEventPerson")]
public JsonActionResult<bool> DeleteJobEventPerson([FromBody] KeywordPageFilter pageFilter)
{
return SafeExecute<bool>(() =>
{
try
{
var personIds = this.GetEntities<T_FO_JOB_EVENT_PERSON>(t => t.USER_ID == null, new BaseFilter(pageFilter.OrgId)).Select(m => m.ID).ToList();
var tpersonIds = this.GetEntities<T_FO_TECH_DISCLOSURE_PERSON>(t => t.USER_ID == null, new BaseFilter(pageFilter.OrgId)).Select(m => m.ID).ToList();
this.UnifiedCommit(() =>
{
if (personIds != null && personIds.Any())
{
this.BantchDeleteEntityNoCommit<T_FO_JOB_EVENT_PERSON>(personIds);
}
if (tpersonIds != null && tpersonIds.Any())
{
this.BantchDeleteEntityNoCommit<T_FO_TECH_DISCLOSURE_PERSON>(tpersonIds);
}
});
}
catch (Exception ex)
{
if (!string.IsNullOrEmpty(ex.StackTrace))
throw new Exception("错误日志:[StackTrace]" + ex.StackTrace);
else
throw new Exception("【" + HttpContext.Request.Path + "】错误日志:[Message]" + ex.Message);
}
return true;
});
}
#endregion
/// <summary>
/// 删除一般作业重复的数据(仅限豫鹭)
/// </summary>
[HttpPost, Route("DeleteJobevent")]
public JsonActionResult<bool> DeleteJobevent([FromBody] KeywordFilter filter)
{
return SafeExecute<bool>(() =>
{
try
{
var time = DateTime.Parse("2022-12-01 08:46:10.0000000");
var stepIds = this.GetEntities<T_HM_OPERATION_STEP>(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_FO_JOB_EVENT_RECORD>(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_FO_JOB_EVENT_DETAIL>(t => deleteIds.Contains(t.JOB_EVENT_RECORD_ID), new BaseFilter(filter.OrgId)).Select(m => m.ID).ToList();
var personIds = this.GetEntities<T_FO_JOB_EVENT_PERSON>(t => deleteIds.Contains(t.JOB_EVENT_RECORD_ID), new BaseFilter(filter.OrgId)).Select(m => m.ID).ToList();
var flowIds = this.GetEntities<T_FO_JOB_EVENT_FLOW>(t => deleteIds.Contains(t.JOB_EVENT_RECORD_ID), new BaseFilter(filter.OrgId)).Select(m => m.ID).ToList();
var meaIds = this.GetEntities<T_FO_JOB_EVENT_MEASURE>(t => deleteIds.Contains(t.JOB_EVENT_RECORD_ID), new BaseFilter(filter.OrgId)).Select(m => m.ID).ToList();
var taskIds = this.GetEntities<T_FM_NOTIFICATION_TASK>(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<T_FO_JOB_EVENT_RECORD>(deleteIds);
if (detailIds != null && detailIds.Any())
this.BantchDeleteEntityNoCommit<T_FO_JOB_EVENT_DETAIL>(detailIds);
if (personIds != null && personIds.Any())
this.BantchDeleteEntityNoCommit<T_FO_JOB_EVENT_PERSON>(personIds);
if (flowIds != null && flowIds.Any())
this.BantchDeleteEntityNoCommit<T_FO_JOB_EVENT_FLOW>(flowIds);
if (meaIds != null && meaIds.Any())
this.BantchDeleteEntityNoCommit<T_FO_JOB_EVENT_MEASURE>(meaIds);
if (taskIds != null && taskIds.Any())
this.BantchDeleteEntityNoCommit<T_FM_NOTIFICATION_TASK>(taskIds);
});
}
catch (Exception ex)
{
if (!string.IsNullOrEmpty(ex.StackTrace))
throw new Exception("错误日志:[StackTrace]" + ex.StackTrace);
else
throw new Exception("【" + HttpContext.Request.Path + "】错误日志:[Message]" + ex.Message);
}
return true;
});
}
#region -7
/// <summary>
/// 更新7天内待办中间表
/// </summary>
/// <param name="pageFilter"></param>
/// <returns></returns>
[HttpPost, Route("JobProfile")]
public JsonActionResult<bool> JobProfile([FromBody] KeywordPageFilter pageFilter)
{
return SafeExecute<bool>(() =>
{
try
{
//八大作业
var jobProfiles = new List<T_BI_JOB_PROFILE>();
var enumList = Enum.GetValues(typeof(StepTypeEnum));
var unitList = Enum.GetValues(typeof(FMProductionUnit));
var stepList = this.GetEntities<T_HM_OPERATION_STEP>(t => t.IS_SPECIAL == true, new BaseFilter(pageFilter.OrgId));
var stepIds = stepList.Select(t => t.ID).ToList();
var linkList = this.GetEntities<T_HM_OPERATION_LINK>(t => stepIds.Contains(t.OPERATION_STEP_ID.Value), new BaseFilter(pageFilter.OrgId));
var jobList = this.GetEntities<T_FO_CRUCIAL_LICENSE_JOB>(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_BI_JOB_PROFILE>(t => true, new BaseFilter(pageFilter.OrgId)).Select(m => m.ID).ToList();
this.UnifiedCommit(() =>
{
if (profilesIds != null && profilesIds.Any())
this.BantchDeleteEntityNoCommit<T_BI_JOB_PROFILE>(profilesIds);
if (jobProfiles != null && jobProfiles.Any())
BantchSaveEntityNoCommit(jobProfiles);
});
}
catch (Exception ex)
{
if (!string.IsNullOrEmpty(ex.StackTrace))
throw new Exception("错误日志:[StackTrace]" + ex.StackTrace);
else
throw new Exception("【" + HttpContext.Request.Path + "】错误日志:[Message]" + ex.Message);
}
return true;
});
}
#endregion
#region -
/// <summary>
/// 更新7天内待办中间表
/// </summary>
/// <param name="pageFilter"></param>
/// <returns></returns>
[HttpPost, Route("AddNoticeTaskNew")]
public JsonActionResult<bool> AddNoticeTaskNew([FromBody] KeywordPageFilter pageFilter)
{
return SafeExecute<bool>(() =>
{
try
{
var dt = DateTime.Now;
//最近一天
DateTime week = dt.AddDays(-1).Date;
var taskInfos = new List<T_FM_NOTIFICATION_TASK>();
var biTaskInfos = new List<T_BI_NOTIFICATION_TASK_NEW>();
var addTaskInfos = new List<T_BI_NOTIFICATION_TASK_NEW>();
var updateTaskInfos = new List<T_BI_NOTIFICATION_TASK_NEW>();
var deleteIds = new List<Guid>();
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<string> {"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 taskInfoAllTemps = this.GetEntities<T_FM_NOTIFICATION_TASK>(t => t.MODIFY_TIME >= year && t.MODIFY_TIME <= yearEnd && t.USER_ID != null && t.SOURCE_FORMCODE != null, newFilter);
//&& t.SOURCE_FORMCODE != "PF119" && t.SOURCE_FORMCODE != "PF135"&& t.NOTICE_TYPE != 7 && t.NOTICE_TYPE != 8 && t.NOTICE_TYPE != 2
var taskIdDeletes = taskInfoAllTemps.Where(t => t.IS_DELETED).Select(t => t.ID).ToList();
deleteIds = this.GetEntities<T_BI_NOTIFICATION_TASK_NEW>(t => taskIdDeletes.Contains((Guid)t.TASK_ID), new BaseFilter(pageFilter.OrgId)).Select(m => m.ID).ToList();
var taskInfoTemps = taskInfoAllTemps.Where(t => !t.IS_DELETED).ToList();
var taskInfoIds = taskInfoTemps.Select(t => t.ID).ToList();
biTaskInfos = this.GetEntities<T_BI_NOTIFICATION_TASK_NEW>(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<string> {"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 taskInfoAllTemps = this.GetEntities<T_FM_NOTIFICATION_TASK>(t => 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 taskIdDeletes = taskInfoAllTemps.Where(t => t.IS_DELETED).Select(t => t.ID).ToList();
deleteIds = this.GetEntities<T_BI_NOTIFICATION_TASK_NEW>(t => taskIdDeletes.Contains((Guid)t.TASK_ID), new BaseFilter(pageFilter.OrgId)).Select(m => m.ID).ToList();
var taskInfoTemps = taskInfoAllTemps.Where(t => !t.IS_DELETED).ToList();
var taskInfoIds = taskInfoTemps.Select(t => t.ID).ToList();
biTaskInfos = this.GetEntities<T_BI_NOTIFICATION_TASK_NEW>(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<string> { "ID", "DEPARTMENT_ID" };
var userIds = taskInfos.Select(t => t.USER_ID).Distinct().ToList();
var userInfos = this.GetEntities<T_FM_USER>(t => userIds.Contains(t.ID), newFilter).ToList();
//部门表
newFilter.SelectField = new List<string> { "ID", "PARENT_ID", "DEPARTMENT_TYPE", "Nav_Parent" };
var departmentInfos = this.GetEntities<T_FM_DEPARTMENT>(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<T_BI_NOTIFICATION_TASK_NEW>(deleteIds);
});
}
catch (Exception ex)
{
if (!string.IsNullOrEmpty(ex.StackTrace))
throw new Exception("错误日志:[StackTrace]" + ex.StackTrace);
else
throw new Exception("【" + HttpContext.Request.Path + "】错误日志:[Message]" + ex.Message);
}
return true;
});
}
#endregion
#region -
/// <summary>
/// 更新7天所有待办的表名
/// </summary>
/// <param name="pageFilter"></param>
/// <returns></returns>
[HttpPost, Route("UpdateTaskTableNew")]
public JsonActionResult<bool> UpdateTaskTableNew([FromBody] KeywordPageFilter pageFilter)
{
return SafeExecute<bool>(() =>
{
try
{
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_PF_FORM>(t => t.TABLE_NAME != null, new BaseFilter(pageFilter.OrgId)).ToList();
var formCodes = formInfos.Select(t => t.CODE).Distinct().ToList();
var taskInfos = this.GetEntities<T_FM_NOTIFICATION_TASK>(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_BI_NOTIFICATION_TASK_NEW>(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);
});
}
catch (Exception ex)
{
if (!string.IsNullOrEmpty(ex.StackTrace))
throw new Exception("错误日志:[StackTrace]" + ex.StackTrace);
else
throw new Exception("【" + HttpContext.Request.Path + "】错误日志:[Message]" + ex.Message);
}
return true;
});
}
#endregion
#region
/// <summary>
/// 目标指标细表更新
/// </summary>
/// <param name="pageFilter"></param>
/// <returns></returns>
[HttpPost, Route("updatePT")]
public JsonActionResult<bool> updatePT([FromBody] KeywordPageFilter pageFilter)
{
return SafeExecute<bool>(() =>
{
try
{
List<T_PT_INDICATOR_FORMULATION_DEPARTMENT_DETAIL_CONTENT> departmentContents = new List<T_PT_INDICATOR_FORMULATION_DEPARTMENT_DETAIL_CONTENT>();
List<T_PT_INDICATOR_FORMULATION_DEPARTMENT_TEAM_CONTENT> teamContents = new List<T_PT_INDICATOR_FORMULATION_DEPARTMENT_TEAM_CONTENT>();
List<T_PT_ASSESSMENT_PLAN_AUDIT_DETAIL_CONTENT> contents = new List<T_PT_ASSESSMENT_PLAN_AUDIT_DETAIL_CONTENT>();
var tempDetails = this.GetEntities<T_PT_ASSESSMENT_PLAN_AUDIT_TEMP_DETAIL>(t => !t.IS_DELETED, new BaseFilter(pageFilter.OrgId), new string[] { "Nav_Contents" }).ToList();
//目标指标
var indicator = this.GetEntity<T_PT_INDICATOR_FORMULATION_DEPARTMENT>(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_PT_ASSESSMENT_PLAN_AUDIT>(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);
});
}
catch (Exception ex)
{
if (!string.IsNullOrEmpty(ex.StackTrace))
throw new Exception("错误日志:[StackTrace]" + ex.StackTrace);
else
throw new Exception("【" + HttpContext.Request.Path + "】错误日志:[Message]" + ex.Message);
}
return true;
});
}
#endregion
#region APP角色
/// <summary>
/// 初始化APP角色
/// </summary>
/// <param name="pageFilter"></param>
/// <returns></returns>
[HttpPost, Route("InitAppRole")]
public JsonActionResult<bool> InitAppRole([FromBody] KeywordPageFilter pageFilter)
{
return SafeExecute<bool>(() =>
{
try
{
List<T_FM_USER_BELONG_ROLE> roles = new List<T_FM_USER_BELONG_ROLE>();
var roleInfo = this.GetEntity<T_FM_ROLE>(t => t.CODE == "APP用户");
if (roleInfo != null)
{
var belongRoleInfos = this.GetEntities<T_FM_USER_BELONG_ROLE>(t => !t.IS_DELETED, new BaseFilter(pageFilter.OrgId));
var userInfoIds = this.GetEntities<T_FM_USER>(t => !t.IS_DELETED, new BaseFilter(pageFilter.OrgId)).Select(m => m.ID).ToList();
if (userInfoIds != null && userInfoIds.Any())
{
foreach (var userId in userInfoIds)
{
var userRole = belongRoleInfos.FirstOrDefault(t => t.USER_ID == userId && t.BELONG_ROLE_ID == roleInfo.ID);
if (userRole == null)
{
T_FM_USER_BELONG_ROLE role = new T_FM_USER_BELONG_ROLE();
role.ORG_ID = pageFilter.OrgId;
role.USER_ID = userId;
role.BELONG_ROLE_ID = roleInfo.ID;
roles.Add(role);
}
}
}
}
this.UnifiedCommit(() =>
{
if (roles != null && roles.Any())
BantchSaveEntityNoCommit(roles);
});
}
catch (Exception ex)
{
if (!string.IsNullOrEmpty(ex.StackTrace))
throw new Exception("错误日志:[StackTrace]" + ex.StackTrace);
else
throw new Exception("【" + HttpContext.Request.Path + "】错误日志:[Message]" + ex.Message);
}
return true;
});
}
#endregion
#region
/// <summary>
///
/// </summary>
/// <param name="pageFilter"></param>
/// <returns></returns>
/// <exception cref="Exception"></exception>
[HttpPost, Route("InitAreaRisk")]
public JsonActionResult<bool> InitAreaRisk([FromBody] KeywordPageFilter pageFilter)
{
return SafeExecute<bool>(() =>
{
try
{
List<T_BI_AREA_TREE> areas = new List<T_BI_AREA_TREE>();
var areaInfos = this.GetEntities<T_HM_RISK_AREA>(null,new BaseFilter(pageFilter.OrgId));
if (areaInfos != null && areaInfos.Any())
{
var i = 1;
foreach (var item in areaInfos)
{
T_BI_AREA_TREE area = new T_BI_AREA_TREE();
area.ID = item.ID;
area.ORG_ID = pageFilter.OrgId;
area.DEPARTMENT_ID = item.DEPARTMENT_ID;
area.CODE = item.CODE;
area.NAME = item.NAME;
area.LEVEL = item.LEVEL;
area.NUM = i;
areas.Add(area);
i++;
}
}
this.UnifiedCommit(() =>
{
if (areas != null && areas.Any())
BantchSaveEntityNoCommit(areas);
});
}
catch (Exception ex)
{
if (!string.IsNullOrEmpty(ex.StackTrace))
throw new Exception("错误日志:[StackTrace]" + ex.StackTrace);
else
throw new Exception("【" + HttpContext.Request.Path + "】错误日志:[Message]" + ex.Message);
}
return true;
});
}
#endregion
}
}