mh_sms/APT.MicroApi/APT.PP.WebApi/Controllers/Api/BIAnalysisController.cs
2024-04-12 16:50:28 +08:00

4050 lines
237 KiB
C#
Raw Blame History

This file contains ambiguous Unicode characters

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

using APT.BaseData.Domain.Entities.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;
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.;
var temp = sum.TOTAL_QTY == 0 ? 0 : (double)(sum.FINISH_QTY + sum.OVER_FINISH_QTY) / sum.TOTAL_QTY * 100;
sum.FINISH_RATE = temp.ToString("0");
var temp2 = sum.TOTAL_QTY == 0 ? 0 : (double)sum.FINISH_QTY / sum.TOTAL_QTY * 100;
sum.NORMAL_FINISH_RATE = temp2.ToString("0");
departSummary.Add(sum);
});
var groupYearMould = departGroupYear.GroupBy(t => t.MOUDLE_NAME).ToList();
groupYearMould.ForEach(t =>
{
T_BI_MOULD_RUN_SUMMARY sum = new T_BI_MOULD_RUN_SUMMARY();
sum.MOUDLE_NAME = t.Key;
sum.ORG_ID = pageFilter.OrgId;
sum.TYPE = MS.Domain.Enums.BI.BIEnums.FilterTimeType.LastYear;
sum.TOTAL_QTY = t.Where(m => m.MOUDLE_NAME == t.Key).Count();
sum.FINISH_QTY = t.Where(m => m.MOUDLE_NAME == t.Key && m.NOTICE_STATUS == 1).Count();
sum.OVER_FINISH_QTY = t.Where(m => m.MOUDLE_NAME == t.Key && m.NOTICE_STATUS == 2).Count();
sum.UNFINISH_QTY = sum.TOTAL_QTY - sum.FINISH_QTY - sum.OVER_FINISH_QTY;
var temp = sum.TOTAL_QTY == 0 ? 0 : (double)(sum.FINISH_QTY + sum.OVER_FINISH_QTY) / sum.TOTAL_QTY * 100;
sum.FINISH_RATE = temp.ToString("0");
var temp2 = sum.TOTAL_QTY == 0 ? 0 : (double)sum.FINISH_QTY / sum.TOTAL_QTY * 100;
sum.NORMAL_FINISH_RATE = temp2.ToString("0");
mouldSummary.Add(sum);
});
}
if (shopGroupYear.Any())
{
var groupYearDepart = shopGroupYear.GroupBy(t => t.SHOP_DEPARTMENT_ID).ToList();
groupYearDepart.ForEach(t =>
{
T_BI_SYSTEM_RUN_SUMMARY sum = new T_BI_SYSTEM_RUN_SUMMARY();
sum.DEPARTMENT_ID = t.Key.Value;
sum.ORG_ID = pageFilter.OrgId;
var depart = departmentInfos.FirstOrDefault(m => m.ID == t.Key.Value);
sum.DEPARTMENT_NAME = depart?.NAME;
sum.PARENT_DEPARTMENT_ID = depart?.PARENT_ID;
sum.TYPE = MS.Domain.Enums.BI.BIEnums.FilterTimeType.LastYear;
sum.TOTAL_QTY = t.Where(m => m.SHOP_DEPARTMENT_ID == t.Key.Value).Count();
sum.FINISH_QTY = t.Where(m => m.SHOP_DEPARTMENT_ID == t.Key.Value && m.NOTICE_STATUS == 1).Count();
sum.OVER_FINISH_QTY = t.Where(m => m.SHOP_DEPARTMENT_ID == t.Key.Value && m.NOTICE_STATUS == 2).Count();
sum.UNFINISH_QTY = sum.TOTAL_QTY - sum.FINISH_QTY - sum.OVER_FINISH_QTY;
sum.DEPARTMENT_TYPE = FMDepartmentType.;
var temp = sum.TOTAL_QTY == 0 ? 0 : (double)(sum.FINISH_QTY + sum.OVER_FINISH_QTY) / sum.TOTAL_QTY * 100;
sum.FINISH_RATE = temp.ToString("0");
var temp2 = sum.TOTAL_QTY == 0 ? 0 : (double)sum.FINISH_QTY / sum.TOTAL_QTY * 100;
sum.NORMAL_FINISH_RATE = temp2.ToString("0");
departSummary.Add(sum);
});
}
if (classGroupYear.Any())
{
var groupYearDepart = classGroupYear.GroupBy(t => t.CLASS_DEPARTMENT_ID).ToList();
groupYearDepart.ForEach(t =>
{
T_BI_SYSTEM_RUN_SUMMARY sum = new T_BI_SYSTEM_RUN_SUMMARY();
sum.DEPARTMENT_ID = t.Key.Value;
sum.ORG_ID = pageFilter.OrgId;
var depart = departmentInfos.FirstOrDefault(m => m.ID == t.Key.Value);
sum.DEPARTMENT_NAME = depart?.NAME;
sum.PARENT_DEPARTMENT_ID = depart?.PARENT_ID;
sum.TYPE = MS.Domain.Enums.BI.BIEnums.FilterTimeType.LastYear;
sum.TOTAL_QTY = t.Where(m => m.CLASS_DEPARTMENT_ID == t.Key.Value).Count();
sum.FINISH_QTY = t.Where(m => m.CLASS_DEPARTMENT_ID == t.Key.Value && m.NOTICE_STATUS == 1).Count();
sum.OVER_FINISH_QTY = t.Where(m => m.CLASS_DEPARTMENT_ID == t.Key.Value && m.NOTICE_STATUS == 2).Count();
sum.UNFINISH_QTY = sum.TOTAL_QTY - sum.FINISH_QTY - sum.OVER_FINISH_QTY;
sum.DEPARTMENT_TYPE = FMDepartmentType.;
var temp = sum.TOTAL_QTY == 0 ? 0 : (double)(sum.FINISH_QTY + sum.OVER_FINISH_QTY) / sum.TOTAL_QTY * 100;
sum.FINISH_RATE = temp.ToString("0");
var temp2 = sum.TOTAL_QTY == 0 ? 0 : (double)sum.FINISH_QTY / sum.TOTAL_QTY * 100;
sum.NORMAL_FINISH_RATE = temp2.ToString("0");
departSummary.Add(sum);
});
}
//半年度
if (taskSixMonth.Any())
{
var groupYearDepart = taskSixMonth.GroupBy(t => t.DEPT_DEPARTMENT_ID).ToList();
groupYearDepart.ForEach(t =>
{
T_BI_SYSTEM_RUN_SUMMARY sum = new T_BI_SYSTEM_RUN_SUMMARY();
sum.DEPARTMENT_ID = t.Key.Value;
sum.ORG_ID = pageFilter.OrgId;
var depart = departmentInfos.FirstOrDefault(m => m.ID == t.Key.Value);
sum.DEPARTMENT_NAME = depart?.NAME;
sum.TYPE = MS.Domain.Enums.BI.BIEnums.FilterTimeType.LastHalfYear;
sum.TOTAL_QTY = t.Where(m => m.DEPT_DEPARTMENT_ID == t.Key.Value).Count();
sum.FINISH_QTY = t.Where(m => m.DEPT_DEPARTMENT_ID == t.Key.Value && m.NOTICE_STATUS == 1).Count();
sum.OVER_FINISH_QTY = t.Where(m => m.DEPT_DEPARTMENT_ID == t.Key.Value && m.NOTICE_STATUS == 2).Count();
sum.UNFINISH_QTY = sum.TOTAL_QTY - sum.FINISH_QTY - sum.OVER_FINISH_QTY;
sum.DEPARTMENT_TYPE = FMDepartmentType.;
var temp = sum.TOTAL_QTY == 0 ? 0 : (double)(sum.FINISH_QTY + sum.OVER_FINISH_QTY) / sum.TOTAL_QTY * 100;
sum.FINISH_RATE = temp.ToString("0");
var temp2 = sum.TOTAL_QTY == 0 ? 0 : (double)sum.FINISH_QTY / sum.TOTAL_QTY * 100;
sum.NORMAL_FINISH_RATE = temp2.ToString("0");
departSummary.Add(sum);
});
var groupYearMould = taskSixMonth.GroupBy(t => t.MOUDLE_NAME).ToList();
groupYearMould.ForEach(t =>
{
T_BI_MOULD_RUN_SUMMARY sum = new T_BI_MOULD_RUN_SUMMARY();
sum.MOUDLE_NAME = t.Key;
sum.ORG_ID = pageFilter.OrgId;
sum.TYPE = MS.Domain.Enums.BI.BIEnums.FilterTimeType.LastHalfYear;
sum.TOTAL_QTY = t.Where(m => m.MOUDLE_NAME == t.Key).Count();
sum.FINISH_QTY = t.Where(m => m.MOUDLE_NAME == t.Key && m.NOTICE_STATUS == 1).Count();
sum.OVER_FINISH_QTY = t.Where(m => m.MOUDLE_NAME == t.Key && m.NOTICE_STATUS == 2).Count();
sum.UNFINISH_QTY = sum.TOTAL_QTY - sum.FINISH_QTY - sum.OVER_FINISH_QTY;
var temp = sum.TOTAL_QTY == 0 ? 0 : (double)(sum.FINISH_QTY + sum.OVER_FINISH_QTY) / sum.TOTAL_QTY * 100;
sum.FINISH_RATE = temp.ToString("0");
var temp2 = sum.TOTAL_QTY == 0 ? 0 : (double)sum.FINISH_QTY / sum.TOTAL_QTY * 100;
sum.NORMAL_FINISH_RATE = temp2.ToString("0");
mouldSummary.Add(sum);
});
}
if (taskSixMonthShop.Any())
{
var groupYearDepart = taskSixMonthShop.GroupBy(t => t.SHOP_DEPARTMENT_ID).ToList();
groupYearDepart.ForEach(t =>
{
T_BI_SYSTEM_RUN_SUMMARY sum = new T_BI_SYSTEM_RUN_SUMMARY();
sum.DEPARTMENT_ID = t.Key.Value;
sum.ORG_ID = pageFilter.OrgId;
var depart = departmentInfos.FirstOrDefault(m => m.ID == t.Key.Value);
sum.DEPARTMENT_NAME = depart?.NAME;
sum.PARENT_DEPARTMENT_ID = depart?.PARENT_ID;
sum.TYPE = MS.Domain.Enums.BI.BIEnums.FilterTimeType.LastHalfYear;
sum.TOTAL_QTY = t.Where(m => m.SHOP_DEPARTMENT_ID == t.Key.Value).Count();
sum.FINISH_QTY = t.Where(m => m.SHOP_DEPARTMENT_ID == t.Key.Value && m.NOTICE_STATUS == 1).Count();
sum.OVER_FINISH_QTY = t.Where(m => m.SHOP_DEPARTMENT_ID == t.Key.Value && m.NOTICE_STATUS == 2).Count();
sum.UNFINISH_QTY = sum.TOTAL_QTY - sum.FINISH_QTY - sum.OVER_FINISH_QTY;
sum.DEPARTMENT_TYPE = FMDepartmentType.;
var temp = sum.TOTAL_QTY == 0 ? 0 : (double)(sum.FINISH_QTY + sum.OVER_FINISH_QTY) / sum.TOTAL_QTY * 100;
sum.FINISH_RATE = temp.ToString("0");
var temp2 = sum.TOTAL_QTY == 0 ? 0 : (double)sum.FINISH_QTY / sum.TOTAL_QTY * 100;
sum.NORMAL_FINISH_RATE = temp2.ToString("0");
departSummary.Add(sum);
});
}
if (taskSixMonthClass.Any())
{
var groupYearDepart = taskSixMonthClass.GroupBy(t => t.CLASS_DEPARTMENT_ID).ToList();
groupYearDepart.ForEach(t =>
{
T_BI_SYSTEM_RUN_SUMMARY sum = new T_BI_SYSTEM_RUN_SUMMARY();
sum.DEPARTMENT_ID = t.Key.Value;
sum.ORG_ID = pageFilter.OrgId;
var depart = departmentInfos.FirstOrDefault(m => m.ID == t.Key.Value);
sum.DEPARTMENT_NAME = depart?.NAME;
sum.PARENT_DEPARTMENT_ID = depart?.PARENT_ID;
sum.TYPE = MS.Domain.Enums.BI.BIEnums.FilterTimeType.LastHalfYear;
sum.TOTAL_QTY = t.Where(m => m.CLASS_DEPARTMENT_ID == t.Key.Value).Count();
sum.FINISH_QTY = t.Where(m => m.CLASS_DEPARTMENT_ID == t.Key.Value && m.NOTICE_STATUS == 1).Count();
sum.OVER_FINISH_QTY = t.Where(m => m.CLASS_DEPARTMENT_ID == t.Key.Value && m.NOTICE_STATUS == 2).Count();
sum.UNFINISH_QTY = sum.TOTAL_QTY - sum.FINISH_QTY - sum.OVER_FINISH_QTY;
sum.DEPARTMENT_TYPE = FMDepartmentType.;
var temp = sum.TOTAL_QTY == 0 ? 0 : (double)(sum.FINISH_QTY + sum.OVER_FINISH_QTY) / sum.TOTAL_QTY * 100;
sum.FINISH_RATE = temp.ToString("0");
var temp2 = sum.TOTAL_QTY == 0 ? 0 : (double)sum.FINISH_QTY / sum.TOTAL_QTY * 100;
sum.NORMAL_FINISH_RATE = temp2.ToString("0");
departSummary.Add(sum);
});
}
//三个月
if (taskThreeMonth.Any())
{
var groupYearDepart = taskThreeMonth.GroupBy(t => t.DEPT_DEPARTMENT_ID).ToList();
groupYearDepart.ForEach(t =>
{
T_BI_SYSTEM_RUN_SUMMARY sum = new T_BI_SYSTEM_RUN_SUMMARY();
sum.DEPARTMENT_ID = t.Key.Value;
sum.ORG_ID = pageFilter.OrgId;
var depart = departmentInfos.FirstOrDefault(m => m.ID == t.Key.Value);
sum.DEPARTMENT_NAME = depart?.NAME;
sum.TYPE = MS.Domain.Enums.BI.BIEnums.FilterTimeType.LastThreeMonth;
sum.TOTAL_QTY = t.Where(m => m.DEPT_DEPARTMENT_ID == t.Key.Value).Count();
sum.FINISH_QTY = t.Where(m => m.DEPT_DEPARTMENT_ID == t.Key.Value && m.NOTICE_STATUS == 1).Count();
sum.OVER_FINISH_QTY = t.Where(m => m.DEPT_DEPARTMENT_ID == t.Key.Value && m.NOTICE_STATUS == 2).Count();
sum.UNFINISH_QTY = sum.TOTAL_QTY - sum.FINISH_QTY - sum.OVER_FINISH_QTY;
sum.DEPARTMENT_TYPE = FMDepartmentType.;
var temp = sum.TOTAL_QTY == 0 ? 0 : (double)(sum.FINISH_QTY + sum.OVER_FINISH_QTY) / sum.TOTAL_QTY * 100;
sum.FINISH_RATE = temp.ToString("0");
var temp2 = sum.TOTAL_QTY == 0 ? 0 : (double)sum.FINISH_QTY / sum.TOTAL_QTY * 100;
sum.NORMAL_FINISH_RATE = temp2.ToString("0");
departSummary.Add(sum);
});
var groupYearMould = taskThreeMonth.GroupBy(t => t.MOUDLE_NAME).ToList();
groupYearMould.ForEach(t =>
{
T_BI_MOULD_RUN_SUMMARY sum = new T_BI_MOULD_RUN_SUMMARY();
sum.MOUDLE_NAME = t.Key;
sum.ORG_ID = pageFilter.OrgId;
sum.TYPE = MS.Domain.Enums.BI.BIEnums.FilterTimeType.LastThreeMonth;
sum.TOTAL_QTY = t.Where(m => m.MOUDLE_NAME == t.Key).Count();
sum.FINISH_QTY = t.Where(m => m.MOUDLE_NAME == t.Key && m.NOTICE_STATUS == 1).Count();
sum.OVER_FINISH_QTY = t.Where(m => m.MOUDLE_NAME == t.Key && m.NOTICE_STATUS == 2).Count();
sum.UNFINISH_QTY = sum.TOTAL_QTY - sum.FINISH_QTY - sum.OVER_FINISH_QTY;
var temp = sum.TOTAL_QTY == 0 ? 0 : (double)(sum.FINISH_QTY + sum.OVER_FINISH_QTY) / sum.TOTAL_QTY * 100;
sum.FINISH_RATE = temp.ToString("0");
var temp2 = sum.TOTAL_QTY == 0 ? 0 : (double)sum.FINISH_QTY / sum.TOTAL_QTY * 100;
sum.NORMAL_FINISH_RATE = temp2.ToString("0");
mouldSummary.Add(sum);
});
}
if (taskThreeMonthShop.Any())
{
var groupYearDepart = taskThreeMonthShop.GroupBy(t => t.SHOP_DEPARTMENT_ID).ToList();
groupYearDepart.ForEach(t =>
{
T_BI_SYSTEM_RUN_SUMMARY sum = new T_BI_SYSTEM_RUN_SUMMARY();
sum.DEPARTMENT_ID = t.Key.Value;
sum.ORG_ID = pageFilter.OrgId;
var depart = departmentInfos.FirstOrDefault(m => m.ID == t.Key.Value);
sum.DEPARTMENT_NAME = depart?.NAME;
sum.PARENT_DEPARTMENT_ID = depart?.PARENT_ID;
sum.TYPE = MS.Domain.Enums.BI.BIEnums.FilterTimeType.LastThreeMonth;
sum.TOTAL_QTY = t.Where(m => m.SHOP_DEPARTMENT_ID == t.Key.Value).Count();
sum.FINISH_QTY = t.Where(m => m.SHOP_DEPARTMENT_ID == t.Key.Value && m.NOTICE_STATUS == 1).Count();
sum.OVER_FINISH_QTY = t.Where(m => m.SHOP_DEPARTMENT_ID == t.Key.Value && m.NOTICE_STATUS == 2).Count();
sum.UNFINISH_QTY = sum.TOTAL_QTY - sum.FINISH_QTY - sum.OVER_FINISH_QTY;
sum.DEPARTMENT_TYPE = FMDepartmentType.;
var temp = sum.TOTAL_QTY == 0 ? 0 : (double)(sum.FINISH_QTY + sum.OVER_FINISH_QTY) / sum.TOTAL_QTY * 100;
sum.FINISH_RATE = temp.ToString("0");
var temp2 = sum.TOTAL_QTY == 0 ? 0 : (double)sum.FINISH_QTY / sum.TOTAL_QTY * 100;
sum.NORMAL_FINISH_RATE = temp2.ToString("0");
departSummary.Add(sum);
});
}
if (taskThreeMonthClass.Any())
{
var groupYearDepart = taskThreeMonthClass.GroupBy(t => t.CLASS_DEPARTMENT_ID).ToList();
groupYearDepart.ForEach(t =>
{
T_BI_SYSTEM_RUN_SUMMARY sum = new T_BI_SYSTEM_RUN_SUMMARY();
sum.DEPARTMENT_ID = t.Key.Value;
sum.ORG_ID = pageFilter.OrgId;
var depart = departmentInfos.FirstOrDefault(m => m.ID == t.Key.Value);
sum.DEPARTMENT_NAME = depart?.NAME;
sum.PARENT_DEPARTMENT_ID = depart?.PARENT_ID;
sum.TYPE = MS.Domain.Enums.BI.BIEnums.FilterTimeType.LastThreeMonth;
sum.TOTAL_QTY = t.Where(m => m.CLASS_DEPARTMENT_ID == t.Key.Value).Count();
sum.FINISH_QTY = t.Where(m => m.CLASS_DEPARTMENT_ID == t.Key.Value && m.NOTICE_STATUS == 1).Count();
sum.OVER_FINISH_QTY = t.Where(m => m.CLASS_DEPARTMENT_ID == t.Key.Value && m.NOTICE_STATUS == 2).Count();
sum.UNFINISH_QTY = sum.TOTAL_QTY - sum.FINISH_QTY - sum.OVER_FINISH_QTY;
sum.DEPARTMENT_TYPE = FMDepartmentType.;
var temp = sum.TOTAL_QTY == 0 ? 0 : (double)(sum.FINISH_QTY + sum.OVER_FINISH_QTY) / sum.TOTAL_QTY * 100;
sum.FINISH_RATE = temp.ToString("0");
var temp2 = sum.TOTAL_QTY == 0 ? 0 : (double)sum.FINISH_QTY / sum.TOTAL_QTY * 100;
sum.NORMAL_FINISH_RATE = temp2.ToString("0");
departSummary.Add(sum);
});
}
//一个月
if (taskMonth.Any())
{
var groupYearDepart = taskMonth.GroupBy(t => t.DEPT_DEPARTMENT_ID).ToList();
groupYearDepart.ForEach(t =>
{
T_BI_SYSTEM_RUN_SUMMARY sum = new T_BI_SYSTEM_RUN_SUMMARY();
sum.DEPARTMENT_ID = t.Key.Value;
sum.ORG_ID = pageFilter.OrgId;
var depart = departmentInfos.FirstOrDefault(m => m.ID == t.Key.Value);
sum.DEPARTMENT_NAME = depart?.NAME;
sum.TYPE = MS.Domain.Enums.BI.BIEnums.FilterTimeType.LastMonth;
sum.TOTAL_QTY = t.Where(m => m.DEPT_DEPARTMENT_ID == t.Key.Value).Count();
sum.FINISH_QTY = t.Where(m => m.DEPT_DEPARTMENT_ID == t.Key.Value && m.NOTICE_STATUS == 1).Count();
sum.OVER_FINISH_QTY = t.Where(m => m.DEPT_DEPARTMENT_ID == t.Key.Value && m.NOTICE_STATUS == 2).Count();
sum.UNFINISH_QTY = sum.TOTAL_QTY - sum.FINISH_QTY - sum.OVER_FINISH_QTY;
sum.DEPARTMENT_TYPE = FMDepartmentType.;
var temp = sum.TOTAL_QTY == 0 ? 0 : (double)(sum.FINISH_QTY + sum.OVER_FINISH_QTY) / sum.TOTAL_QTY * 100;
sum.FINISH_RATE = temp.ToString("0");
var temp2 = sum.TOTAL_QTY == 0 ? 0 : (double)sum.FINISH_QTY / sum.TOTAL_QTY * 100;
sum.NORMAL_FINISH_RATE = temp2.ToString("0");
departSummary.Add(sum);
});
var groupYearMould = taskMonth.GroupBy(t => t.MOUDLE_NAME).ToList();
groupYearMould.ForEach(t =>
{
T_BI_MOULD_RUN_SUMMARY sum = new T_BI_MOULD_RUN_SUMMARY();
sum.MOUDLE_NAME = t.Key;
sum.ORG_ID = pageFilter.OrgId;
sum.TYPE = MS.Domain.Enums.BI.BIEnums.FilterTimeType.LastMonth;
sum.TOTAL_QTY = t.Where(m => m.MOUDLE_NAME == t.Key).Count();
sum.FINISH_QTY = t.Where(m => m.MOUDLE_NAME == t.Key && m.NOTICE_STATUS == 1).Count();
sum.OVER_FINISH_QTY = t.Where(m => m.MOUDLE_NAME == t.Key && m.NOTICE_STATUS == 2).Count();
sum.UNFINISH_QTY = sum.TOTAL_QTY - sum.FINISH_QTY - sum.OVER_FINISH_QTY;
var temp = sum.TOTAL_QTY == 0 ? 0 : (double)(sum.FINISH_QTY + sum.OVER_FINISH_QTY) / sum.TOTAL_QTY * 100;
sum.FINISH_RATE = temp.ToString("0");
var temp2 = sum.TOTAL_QTY == 0 ? 0 : (double)sum.FINISH_QTY / sum.TOTAL_QTY * 100;
sum.NORMAL_FINISH_RATE = temp2.ToString("0");
mouldSummary.Add(sum);
});
}
if (taskMonthShop.Any())
{
var groupYearDepart = taskMonthShop.GroupBy(t => t.SHOP_DEPARTMENT_ID).ToList();
groupYearDepart.ForEach(t =>
{
T_BI_SYSTEM_RUN_SUMMARY sum = new T_BI_SYSTEM_RUN_SUMMARY();
sum.DEPARTMENT_ID = t.Key.Value;
sum.ORG_ID = pageFilter.OrgId;
var depart = departmentInfos.FirstOrDefault(m => m.ID == t.Key.Value);
sum.DEPARTMENT_NAME = depart?.NAME;
sum.PARENT_DEPARTMENT_ID = depart?.PARENT_ID;
sum.TYPE = MS.Domain.Enums.BI.BIEnums.FilterTimeType.LastMonth;
sum.TOTAL_QTY = t.Where(m => m.SHOP_DEPARTMENT_ID == t.Key.Value).Count();
sum.FINISH_QTY = t.Where(m => m.SHOP_DEPARTMENT_ID == t.Key.Value && m.NOTICE_STATUS == 1).Count();
sum.OVER_FINISH_QTY = t.Where(m => m.SHOP_DEPARTMENT_ID == t.Key.Value && m.NOTICE_STATUS == 2).Count();
sum.UNFINISH_QTY = sum.TOTAL_QTY - sum.FINISH_QTY - sum.OVER_FINISH_QTY;
sum.DEPARTMENT_TYPE = FMDepartmentType.;
var temp = sum.TOTAL_QTY == 0 ? 0 : (double)(sum.FINISH_QTY + sum.OVER_FINISH_QTY) / sum.TOTAL_QTY * 100;
sum.FINISH_RATE = temp.ToString("0");
var temp2 = sum.TOTAL_QTY == 0 ? 0 : (double)sum.FINISH_QTY / sum.TOTAL_QTY * 100;
sum.NORMAL_FINISH_RATE = temp2.ToString("0");
departSummary.Add(sum);
});
}
if (taskMonthClass.Any())
{
var groupYearDepart = taskMonthClass.GroupBy(t => t.CLASS_DEPARTMENT_ID).ToList();
groupYearDepart.ForEach(t =>
{
T_BI_SYSTEM_RUN_SUMMARY sum = new T_BI_SYSTEM_RUN_SUMMARY();
sum.DEPARTMENT_ID = t.Key.Value;
sum.ORG_ID = pageFilter.OrgId;
var depart = departmentInfos.FirstOrDefault(m => m.ID == t.Key.Value);
sum.DEPARTMENT_NAME = depart?.NAME;
sum.PARENT_DEPARTMENT_ID = depart?.PARENT_ID;
sum.TYPE = MS.Domain.Enums.BI.BIEnums.FilterTimeType.LastMonth;
sum.TOTAL_QTY = t.Where(m => m.CLASS_DEPARTMENT_ID == t.Key.Value).Count();
sum.FINISH_QTY = t.Where(m => m.CLASS_DEPARTMENT_ID == t.Key.Value && m.NOTICE_STATUS == 1).Count();
sum.OVER_FINISH_QTY = t.Where(m => m.CLASS_DEPARTMENT_ID == t.Key.Value && m.NOTICE_STATUS == 2).Count();
sum.UNFINISH_QTY = sum.TOTAL_QTY - sum.FINISH_QTY - sum.OVER_FINISH_QTY;
sum.DEPARTMENT_TYPE = FMDepartmentType.;
var temp = sum.TOTAL_QTY == 0 ? 0 : (double)(sum.FINISH_QTY + sum.OVER_FINISH_QTY) / sum.TOTAL_QTY * 100;
sum.FINISH_RATE = temp.ToString("0");
var temp2 = sum.TOTAL_QTY == 0 ? 0 : (double)sum.FINISH_QTY / sum.TOTAL_QTY * 100;
sum.NORMAL_FINISH_RATE = temp2.ToString("0");
departSummary.Add(sum);
});
}
//一周
if (taskWeek.Any())
{
var groupYearDepart = taskWeek.GroupBy(t => t.DEPT_DEPARTMENT_ID).ToList();
groupYearDepart.ForEach(t =>
{
T_BI_SYSTEM_RUN_SUMMARY sum = new T_BI_SYSTEM_RUN_SUMMARY();
sum.DEPARTMENT_ID = t.Key.Value;
sum.ORG_ID = pageFilter.OrgId;
var depart = departmentInfos.FirstOrDefault(m => m.ID == t.Key.Value);
sum.DEPARTMENT_NAME = depart?.NAME;
sum.TYPE = MS.Domain.Enums.BI.BIEnums.FilterTimeType.LastWeek;
sum.TOTAL_QTY = t.Where(m => m.DEPT_DEPARTMENT_ID == t.Key.Value).Count();
sum.FINISH_QTY = t.Where(m => m.DEPT_DEPARTMENT_ID == t.Key.Value && m.NOTICE_STATUS == 1).Count();
sum.OVER_FINISH_QTY = t.Where(m => m.DEPT_DEPARTMENT_ID == t.Key.Value && m.NOTICE_STATUS == 2).Count();
sum.UNFINISH_QTY = sum.TOTAL_QTY - sum.FINISH_QTY - sum.OVER_FINISH_QTY;
sum.DEPARTMENT_TYPE = FMDepartmentType.;
var temp = sum.TOTAL_QTY == 0 ? 0 : (double)(sum.FINISH_QTY + sum.OVER_FINISH_QTY) / sum.TOTAL_QTY * 100;
sum.FINISH_RATE = temp.ToString("0");
var temp2 = sum.TOTAL_QTY == 0 ? 0 : (double)sum.FINISH_QTY / sum.TOTAL_QTY * 100;
sum.NORMAL_FINISH_RATE = temp2.ToString("0");
departSummary.Add(sum);
});
var groupYearMould = taskWeek.GroupBy(t => t.MOUDLE_NAME).ToList();
groupYearMould.ForEach(t =>
{
T_BI_MOULD_RUN_SUMMARY sum = new T_BI_MOULD_RUN_SUMMARY();
sum.MOUDLE_NAME = t.Key;
sum.ORG_ID = pageFilter.OrgId;
sum.TYPE = MS.Domain.Enums.BI.BIEnums.FilterTimeType.LastWeek;
sum.TOTAL_QTY = t.Where(m => m.MOUDLE_NAME == t.Key).Count();
sum.FINISH_QTY = t.Where(m => m.MOUDLE_NAME == t.Key && m.NOTICE_STATUS == 1).Count();
sum.OVER_FINISH_QTY = t.Where(m => m.MOUDLE_NAME == t.Key && m.NOTICE_STATUS == 2).Count();
sum.UNFINISH_QTY = sum.TOTAL_QTY - sum.FINISH_QTY - sum.OVER_FINISH_QTY;
var temp = sum.TOTAL_QTY == 0 ? 0 : (double)(sum.FINISH_QTY + sum.OVER_FINISH_QTY) / sum.TOTAL_QTY * 100;
sum.FINISH_RATE = temp.ToString("0");
var temp2 = sum.TOTAL_QTY == 0 ? 0 : (double)sum.FINISH_QTY / sum.TOTAL_QTY * 100;
sum.NORMAL_FINISH_RATE = temp2.ToString("0");
mouldSummary.Add(sum);
});
}
if (taskWeekShop.Any())
{
var groupYearDepart = taskWeekShop.GroupBy(t => t.SHOP_DEPARTMENT_ID).ToList();
groupYearDepart.ForEach(t =>
{
T_BI_SYSTEM_RUN_SUMMARY sum = new T_BI_SYSTEM_RUN_SUMMARY();
sum.DEPARTMENT_ID = t.Key.Value;
sum.ORG_ID = pageFilter.OrgId;
var depart = departmentInfos.FirstOrDefault(m => m.ID == t.Key.Value);
sum.DEPARTMENT_NAME = depart?.NAME;
sum.PARENT_DEPARTMENT_ID = depart?.PARENT_ID;
sum.TYPE = MS.Domain.Enums.BI.BIEnums.FilterTimeType.LastWeek;
sum.TOTAL_QTY = t.Where(m => m.SHOP_DEPARTMENT_ID == t.Key.Value).Count();
sum.FINISH_QTY = t.Where(m => m.SHOP_DEPARTMENT_ID == t.Key.Value && m.NOTICE_STATUS == 1).Count();
sum.OVER_FINISH_QTY = t.Where(m => m.SHOP_DEPARTMENT_ID == t.Key.Value && m.NOTICE_STATUS == 2).Count();
sum.UNFINISH_QTY = sum.TOTAL_QTY - sum.FINISH_QTY - sum.OVER_FINISH_QTY;
sum.DEPARTMENT_TYPE = FMDepartmentType.;
var temp = sum.TOTAL_QTY == 0 ? 0 : (double)(sum.FINISH_QTY + sum.OVER_FINISH_QTY) / sum.TOTAL_QTY * 100;
sum.FINISH_RATE = temp.ToString("0");
var temp2 = sum.TOTAL_QTY == 0 ? 0 : (double)sum.FINISH_QTY / sum.TOTAL_QTY * 100;
sum.NORMAL_FINISH_RATE = temp2.ToString("0");
departSummary.Add(sum);
});
}
if (taskWeekClass.Any())
{
var groupYearDepart = taskWeekClass.GroupBy(t => t.CLASS_DEPARTMENT_ID).ToList();
groupYearDepart.ForEach(t =>
{
T_BI_SYSTEM_RUN_SUMMARY sum = new T_BI_SYSTEM_RUN_SUMMARY();
sum.DEPARTMENT_ID = t.Key.Value;
sum.ORG_ID = pageFilter.OrgId;
var depart = departmentInfos.FirstOrDefault(m => m.ID == t.Key.Value);
sum.DEPARTMENT_NAME = depart?.NAME;
sum.PARENT_DEPARTMENT_ID = depart?.PARENT_ID;
sum.TYPE = MS.Domain.Enums.BI.BIEnums.FilterTimeType.LastWeek;
sum.TOTAL_QTY = t.Where(m => m.CLASS_DEPARTMENT_ID == t.Key.Value).Count();
sum.FINISH_QTY = t.Where(m => m.CLASS_DEPARTMENT_ID == t.Key.Value && m.NOTICE_STATUS == 1).Count();
sum.OVER_FINISH_QTY = t.Where(m => m.CLASS_DEPARTMENT_ID == t.Key.Value && m.NOTICE_STATUS == 2).Count();
sum.UNFINISH_QTY = sum.TOTAL_QTY - sum.FINISH_QTY - sum.OVER_FINISH_QTY;
sum.DEPARTMENT_TYPE = FMDepartmentType.;
var temp = sum.TOTAL_QTY == 0 ? 0 : (double)(sum.FINISH_QTY + sum.OVER_FINISH_QTY) / sum.TOTAL_QTY * 100;
sum.FINISH_RATE = temp.ToString("0");
var temp2 = sum.TOTAL_QTY == 0 ? 0 : (double)sum.FINISH_QTY / sum.TOTAL_QTY * 100;
sum.NORMAL_FINISH_RATE = temp2.ToString("0");
departSummary.Add(sum);
});
}
//折线图
List<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;
var currentMonth = DateTime.Now.Month; //获取当月
var currentDay = DateTime.Now.Day; //...........天
for (int i = 1; i <= 12; i++)
{
var monthStart = DateTime.Now.AddMonths(i - currentMonth).AddDays(1 - currentDay);
var monthEnd = DateTime.Now.AddMonths(i - currentMonth + 1).AddDays(1 - currentDay - 1);
var ksJantask = taskYear.Where(t => t.CREATE_DATE >= monthStart && t.CREATE_DATE <= monthEnd && t.DEPT_DEPARTMENT_ID == ksDepartId).ToList();
if (ksJantask.Any())
{
T_BI_DEPARTMENT_MONTH_RUN run = new T_BI_DEPARTMENT_MONTH_RUN();
run.DEPARTMENT_ID = ksDepartId.Value;
run.ORG_ID = pageFilter.OrgId;
var depart = departmentInfos.FirstOrDefault(m => m.ID == ksDepartId.Value);
run.DEPARTMENT_NAME = depart?.NAME;
run.MONTH = monthStart;
run.MONTHStr = monthStart.Year + "年" + monthStart.Month + "月";
var total = ksJantask.Count();
var finish = ksJantask.Where(t => t.NOTICE_STATUS == 1).Count();
var overFinish = ksJantask.Where(t => t.NOTICE_STATUS == 2).Count();
var temp = total == 0 ? 0 : (double)(finish + overFinish) / total * 100;
run.FINISH_RATE = temp.ToString("0");
var temp2 = total == 0 ? 0 : (double)finish / total * 100;
run.NORMAL_FINISH_RATE = temp2.ToString("0");
monthRuns.Add(run);
}
else
{
T_BI_DEPARTMENT_MONTH_RUN run = new T_BI_DEPARTMENT_MONTH_RUN();
run.DEPARTMENT_ID = ksDepartId.Value;
run.ORG_ID = pageFilter.OrgId;
var depart = departmentInfos.FirstOrDefault(m => m.ID == ksDepartId.Value);
run.DEPARTMENT_NAME = depart?.NAME;
run.MONTH = monthStart;
run.MONTHStr = monthStart.Year + "年" + monthStart.Month + "月";
run.FINISH_RATE = "0";
run.NORMAL_FINISH_RATE = "0";
if (i == 12)
{
var lastInfo = monthRuns.FirstOrDefault(t => t.DEPARTMENT_ID == ksDepartId.Value && t.MONTHStr == monthStart.Year + "年" + monthStart.AddMonths(-1).Month + "月");
if (lastInfo != null)
{
run.FINISH_RATE = lastInfo.FINISH_RATE;
run.NORMAL_FINISH_RATE = lastInfo.NORMAL_FINISH_RATE;
}
}
monthRuns.Add(run);
}
var xkJantask = taskYear.Where(t => t.CREATE_DATE >= monthStart && t.CREATE_DATE <= monthEnd && t.DEPT_DEPARTMENT_ID == xkDepartId).ToList();
if (xkJantask.Any())
{
T_BI_DEPARTMENT_MONTH_RUN run = new T_BI_DEPARTMENT_MONTH_RUN();
run.DEPARTMENT_ID = xkDepartId.Value;
run.ORG_ID = pageFilter.OrgId;
var depart = departmentInfos.FirstOrDefault(m => m.ID == xkDepartId.Value);
run.DEPARTMENT_NAME = depart?.NAME;
run.MONTH = monthStart;
run.MONTHStr = monthStart.Year + "年" + monthStart.Month + "月";
var total = xkJantask.Count();
var finish = xkJantask.Where(t => t.NOTICE_STATUS == 1).Count();
var overFinish = xkJantask.Where(t => t.NOTICE_STATUS == 2).Count();
var temp = total == 0 ? 0 : (double)(finish + overFinish) / total * 100;
run.FINISH_RATE = temp.ToString("0");
var temp2 = total == 0 ? 0 : (double)finish / total * 100;
run.NORMAL_FINISH_RATE = temp2.ToString("0");
monthRuns.Add(run);
}
else
{
T_BI_DEPARTMENT_MONTH_RUN run = new T_BI_DEPARTMENT_MONTH_RUN();
run.DEPARTMENT_ID = xkDepartId.Value;
run.ORG_ID = pageFilter.OrgId;
var depart = departmentInfos.FirstOrDefault(m => m.ID == xkDepartId.Value);
run.DEPARTMENT_NAME = depart?.NAME;
run.MONTH = monthStart;
run.MONTHStr = monthStart.Year + "年" + monthStart.Month + "月";
run.FINISH_RATE = "0";
run.NORMAL_FINISH_RATE = "0";
if (i == 12)
{
var lastInfo = monthRuns.FirstOrDefault(t => t.DEPARTMENT_ID == xkDepartId.Value && t.MONTHStr == monthStart.Year + "年" + monthStart.AddMonths(-1).Month + "月");
if (lastInfo != null)
{
run.FINISH_RATE = lastInfo.FINISH_RATE;
run.NORMAL_FINISH_RATE = lastInfo.NORMAL_FINISH_RATE;
}
}
monthRuns.Add(run);
}
}
var deleteIds = this.GetEntities<T_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>(() =>
{
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);
}
});
return true;
});
}
#endregion
/// <summary>
/// 删除一般作业重复的数据(仅限豫鹭)
/// </summary>
[HttpPost, Route("DeleteJobevent")]
public JsonActionResult<bool> DeleteJobevent([FromBody] KeywordFilter filter)
{
return SafeExecute<bool>(() =>
{
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);
});
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 taskInfoTemps = this.GetEntities<T_FM_NOTIFICATION_TASK>(t => !t.IS_DELETED && t.MODIFY_TIME >= year && t.MODIFY_TIME < yearEnd && t.USER_ID != null && t.SOURCE_FORMCODE != null, newFilter).ToList();
//&& t.SOURCE_FORMCODE != "PF119" && t.SOURCE_FORMCODE != "PF135"&& t.NOTICE_TYPE != 7 && t.NOTICE_TYPE != 8 && t.NOTICE_TYPE != 2
var taskInfoIds = taskInfoTemps.Select(t => t.ID).ToList();
biTaskInfos = this.GetEntities<T_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 taskInfoTemps = this.GetEntities<T_FM_NOTIFICATION_TASK>(t => !t.IS_DELETED && t.MODIFY_TIME >= week && t.USER_ID != null && t.SOURCE_FORMCODE != null, newFilter).ToList();
//&& t.NOTICE_TYPE != 7 && t.NOTICE_TYPE != 8 && t.NOTICE_TYPE != 2 && t.SOURCE_FORMCODE != "PF135" && t.SOURCE_FORMCODE != "PF119"
var taskInfoIds = taskInfoTemps.Select(t => t.ID).ToList();
biTaskInfos = this.GetEntities<T_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
}
}