From 1214395152601333cbb46d45f61b347afbd54505 Mon Sep 17 00:00:00 2001
From: wyw <571921741@qq.com>
Date: Wed, 20 Mar 2024 17:35:08 +0800
Subject: [PATCH] =?UTF-8?q?=E6=8F=90=E4=BA=A4?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
 APT.MS.Data/Mapping/T4/T4Map.cs               |    6 +
 .../Entities/SC/MEETING/T_SC_MT_MEETING.cs    |    7 +
 APT.MS.Domain/Enums/BS/BSEnums.cs             |  197 ++-
 APT.MS.Domain/Enums/SC/SCEnmus.cs             |  302 +++-
 .../APT.PP.WebApi/APT.PP.WebApi.csproj        |    4 +
 .../Controllers/Api/FMController.cs           | 1541 +++++++++--------
 .../Controllers/Api/SCController.cs           |   24 +-
 APT.MicroApi/APT.PP.WebApi/Program.cs         |   21 +-
 .../Api/MTController/SCMTMeetingController.cs |  192 +-
 9 files changed, 1481 insertions(+), 813 deletions(-)
diff --git a/APT.MS.Data/Mapping/T4/T4Map.cs b/APT.MS.Data/Mapping/T4/T4Map.cs
index f60a1b6..c91278a 100644
--- a/APT.MS.Data/Mapping/T4/T4Map.cs
+++ b/APT.MS.Data/Mapping/T4/T4Map.cs
@@ -210,6 +210,7 @@ builder.Property(t => t.DEMAND).HasMaxLength(500);
 builder.Ignore(t => t.QUESTION_LEVEL_SHOW);
 builder.Ignore(t => t.Nav_Main);
 builder.Ignore(t => t.SERIOUS_RISK);
+builder.Ignore(t => t.LastDateSystem);
 		} 
      }
 	 #endregion
@@ -380,6 +381,10 @@ builder.HasOne(t => t.Nav_CheckProjectProjectCategory).WithMany().HasForeignKey(
 builder.HasOne(t => t.Nav_CheckProjectCategory).WithMany().HasForeignKey(t => t.CHECK_PROJECT_CATEGORY_ID).OnDelete(DeleteBehavior.Restrict);
 builder.Property(t => t.CHECKCONTENT).HasMaxLength(500);
 builder.HasOne(t => t.Nav_Contents).WithMany().HasForeignKey(t => t.CHECK_CONTENTS_ID).OnDelete(DeleteBehavior.Restrict);
+builder.Property(t => t.DESCRIBE).HasMaxLength(500);
+builder.Ignore(t => t.CHECK_TYPE_ID);
+builder.Ignore(t => t.CHECK_TYPE_LEVEL_ID);
+builder.Ignore(t => t.SUBMIT_STATUS);
 		} 
      }
 	 #endregion
@@ -4124,6 +4129,7 @@ builder.Ignore(t => t.STATUSSHOW);
 builder.HasOne(t => t.Nav_Approve).WithMany().HasForeignKey(t => t.APPROVE_ID).OnDelete(DeleteBehavior.Restrict);
 builder.HasOne(t => t.Nav_Enums).WithMany().HasForeignKey(t => t.CheckLevel_ENUMS_ID).OnDelete(DeleteBehavior.Restrict);
 builder.Ignore(t => t.IS_OVERTIME);
+builder.Ignore(t => t.CONTENT32);
 		} 
      }
 	 #endregion
diff --git a/APT.MS.Domain/Entities/SC/MEETING/T_SC_MT_MEETING.cs b/APT.MS.Domain/Entities/SC/MEETING/T_SC_MT_MEETING.cs
index 81d0c63..5855a3c 100644
--- a/APT.MS.Domain/Entities/SC/MEETING/T_SC_MT_MEETING.cs
+++ b/APT.MS.Domain/Entities/SC/MEETING/T_SC_MT_MEETING.cs
@@ -305,5 +305,12 @@ namespace APT.MS.Domain.Entities.SC
         /// 
         [Description("是否已经发送短信")]
         public bool IS_SENDED { get; set; }
+
+        /// 
+        /// 会议内容(普通会议显示再此,为了显示做关联)
+        /// 
+        [Description("会议内容")]
+        [DataFieldIngore]
+        public string CONTENT32 { get; set; }
     }
 }
\ No newline at end of file
diff --git a/APT.MS.Domain/Enums/BS/BSEnums.cs b/APT.MS.Domain/Enums/BS/BSEnums.cs
index dbbd20c..5e86536 100644
--- a/APT.MS.Domain/Enums/BS/BSEnums.cs
+++ b/APT.MS.Domain/Enums/BS/BSEnums.cs
@@ -217,7 +217,7 @@ namespace APT.MS.Domain.Enums
         UserAdd = 20,
 
         /// 
-        /// 危险源辨识触发 30
+        /// 危险源辨识触发 30 ???ToHM062_HM102
         /// 
         [Description("危险源辨识触发")]
         HazardsAdd = 30,
@@ -246,8 +246,203 @@ namespace APT.MS.Domain.Enums
         [Description("标准化系统评审意见")]
         ToOG034Edit = 70,
 
+        /// 
+        /// 安全生产方针征集表 72
+        /// 
+        [Description("安全生产方针征集表")]
+        ToPT014 = 72,
+
+        /// 
+        /// 认可与奖励上报表 74
+        /// 
+        [Description("认可与奖励上报表")]
+        ToOG028 = 74,
+
+        /// 
+        /// 风险评价小组成立 76
+        /// 
+        [Description("风险评价小组成立")]
+        ToHM134 = 76,
+
+        //设备设施维修计划讨论
+        //设备设施维修工作方案讨论
+        //安全投入论证
+
+        /// 
+        /// 应急机构成立及人员任命 84
+        /// 
+        [Description("应急机构成立及人员任命")]
+        ToOG010 = 84,
+
+        //成立矿山救护队
+
+        ///// 
+        ///// 潜在紧急事件讨论 88
+        ///// 
+        //[Description("潜在紧急事件讨论")]
+        //ToCM018 = 88,
+
+        /// 
+        /// 应急能力评估 90
+        /// 
+        [Description("应急能力评估")]
+        ToCM026 = 90,
+
+        /// 
+        /// 应急演练计划讨论 92
+        /// 
+        [Description("应急演练计划讨论")]
+        ToCM002 = 92,
+
+        //应急演练方案讨论
+
+        /// 
+        /// 事故事件上报表 96
+        /// 
+        [Description("事故事件上报表")]
+        ToAE006 = 96,
+
+        /// 
+        /// 事故调查小组成员表 98
+        /// 
+        [Description("事故调查小组成员表")]
+        ToAE008 = 98,
+
+        /// 
+        /// 事故事件调查结果填报 99
+        /// 
+        [Description("事故事件调查结果填报")]
+        ToAE010 = 99,
+
+        /// 
+        /// 勘察记录表 100
+        /// 
+        [Description("勘察记录表")]
+        ToAE018 = 100,
+
+        //事故事件统计分析
+        //事故事件回顾
+
+        /// 
+        /// 安全检查任务制定 106
+        /// 
+        [Description("安全检查任务制定")]
+        ToBS032 = 106,
+
+        /// 
+        /// 《危险源/风险辨识任务》和《职业危害辨识任务》 108
+        /// 
+        [Description("《危险源/风险辨识任务》和《职业危害辨识任务》")]
+        ToHM062_HM102 = 108,
+
+        /// 
+        /// 触发今日提醒:消息类型:文件上传;消息内容:请上传下年度生产作业计划至文件库 110
+        /// 
+        [Description("触发今日提醒:消息类型:文件上传;消息内容:请上传下年度生产作业计划至文件库")]
+        ToNotice = 110,
+
+        /// 
+        /// 变化识别评估表 112
+        /// 
+        [Description("变化识别评估表")]
+        ToPR023 = 112,
+
+        /// 
+        /// 变化识别评估表 113 
+        /// 
+        [Description("变化识别评估表")]
+        PR023ToMeet = 113,
+
+        /// 
+        /// 变化识别评估表 112
+        /// 
+        [Description("安全生产法律法规更新与融入")]
+        ToLR010 = 120,
+
+        /// 
+        /// 员工意见征集表 112
+        /// 
+        [Description("员工意见征集表")]
+        ToOG060 = 122,
+
+        /// 
+        /// 安全标准化内部评价计划 114
+        /// 
+        [Description("安全标准化内部评价计划")]
+        ToPE027 = 124,
+
+        //尾矿-勘察文件评审
+        //尾矿-安全评价文件评审
+
+        /// 
+        /// 回采计划 130
+        /// 
+        [Description("回采计划")]
+        ToTL014 = 130,
+
+        //尾矿-回采安全预评价文件评审
+        //尾矿-闭库安全现状评价文件评审
 
 
+        /// 
+        /// 作业任务识别 136
+        /// 
+        [Description("作业任务识别")]
+        ToHM104 = 136,
+
+        /// 
+        /// 安全生产责任制签订 138
+        /// 
+        [Description("安全生产责任制签订")]
+        ToOG002 = 138,
+
+        //安全评价文件审核
+
+        /// 
+        /// 内部设计文件审核表 142
+        /// 
+        [Description("内部设计文件审核表")]
+        ToPR002 = 142,
+
+        /// 
+        /// 应急预案修订记录 144
+        /// 
+        [Description("应急预案修订记录")]
+        ToSC067 = 144,
+
+        //勘察文件审核(尾矿)
+        //勘察文件审核(露天矿山)
+
+        /// 
+        /// 内部设计文件审核表 150
+        /// 
+        [Description("内部设计文件审核表")]
+        ToPR002_2 = 150,
+
+        //回采勘察文件审核(尾矿)
+        //回采安全预评价文件审核(尾矿)
+
+        /// 
+        /// 内部设计文件审核表 156
+        /// 
+        [Description("内部设计文件审核表")]
+        ToPR002_3 = 156,
+
+        //闭库安全现状评价文件审核(尾矿)
+
+        /// 
+        /// 内部设计文件审核表 156
+        /// 
+        [Description("内部设计文件审核表")]
+        ToPR002_4 = 160,
+
+        //所有的制度文件审核会
+
+        /// 
+        /// 文件审核表 170
+        /// 
+        [Description("文件审核表")]
+        ToWJSH =170,
     }
 
     /// 
diff --git a/APT.MS.Domain/Enums/SC/SCEnmus.cs b/APT.MS.Domain/Enums/SC/SCEnmus.cs
index c6bcfbb..064e123 100644
--- a/APT.MS.Domain/Enums/SC/SCEnmus.cs
+++ b/APT.MS.Domain/Enums/SC/SCEnmus.cs
@@ -386,6 +386,9 @@ namespace APT.MS.Domain.Enums
 
     /// 
     /// 会议关联文本 各自添加 各自处理
+    /// 12-52 普通会议
+    /// 60-80 文件评审会
+    /// 90-112 文件审核会
     /// 
     public enum ConnToOther
     {
@@ -394,6 +397,272 @@ namespace APT.MS.Domain.Enums
         /// 
         [Description("安全生产标准化系统评审")]
         ToOG034EditName = 10,
+
+
+        /// 
+        /// 安全生产方针讨论 12 
+        /// 
+        [Description("安全生产方针讨论")]
+        安全生产方针讨论 = 12,
+
+        /// 
+        /// 认可与奖励评价 14 
+        /// 
+        [Description("认可与奖励评价")]
+        认可与奖励评价 = 14,
+
+        /// 
+        /// 风险评价小组成立 16 
+        /// 
+        [Description("风险评价小组成立")]
+        风险评价小组成立 = 16,
+
+        /// 
+        /// 设备设施维修计划讨论 18 
+        /// 
+        [Description("设备设施维修计划讨论")]
+        设备设施维修计划讨论 = 18,
+
+        /// 
+        /// 设备设施维修工作方案讨论 20 
+        /// 
+        [Description("设备设施维修工作方案讨论")]
+        设备设施维修工作方案讨论 = 20,
+
+        /// 
+        /// 安全投入论证 22 
+        /// 
+        [Description("安全投入论证")]
+        安全投入论证 = 22,
+
+        /// 
+        /// 应急机构成立及人员任命 24 
+        /// 
+        [Description("应急机构成立及人员任命")]
+        应急机构成立及人员任命 = 24,
+
+        /// 
+        /// 成立矿山救护队 26 
+        /// 
+        [Description("成立矿山救护队")]
+        成立矿山救护队 = 26,
+
+        /// 
+        /// 潜在紧急事件讨论 28 
+        /// 
+        [Description("潜在紧急事件讨论")]
+        潜在紧急事件讨论 = 28,
+
+        /// 
+        /// 应急能力评估 30 
+        /// 
+        [Description("应急能力评估")]
+        应急能力评估 = 30,
+
+        /// 
+        /// 应急演练计划讨论 32 
+        /// 
+        [Description("应急演练计划讨论")]
+        应急演练计划讨论 = 32,
+
+        /// 
+        /// 应急演练方案讨论 34 
+        /// 
+        [Description("应急演练方案讨论")]
+        应急演练方案讨论 = 34,
+
+        /// 
+        /// 事故调查小组成立 36 
+        /// 
+        [Description("事故调查小组成立")]
+        事故调查小组成立 = 36,
+
+        /// 
+        /// 事故调查讨论 38 
+        /// 
+        [Description("事故调查讨论")]
+        事故调查讨论 = 38,
+
+        /// 
+        /// 调查报告讨论 40 
+        /// 
+        [Description("调查报告讨论")]
+        调查报告讨论 = 40,
+
+        /// 
+        /// 事故事件统计分析 42 
+        /// 
+        [Description("事故事件统计分析")]
+        事故事件统计分析 = 42,
+
+        /// 
+        /// 事故事件回顾 44 
+        /// 
+        [Description("事故事件回顾")]
+        事故事件回顾 = 44,
+
+        /// 
+        /// 安全检查表的回顾与更新 46 
+        /// 
+        [Description("安全检查表的回顾与更新")]
+        安全检查表的回顾与更新 = 46,
+
+        /// 
+        /// 危险源辨识与风险评价回顾 48 
+        /// 
+        [Description("危险源辨识与风险评价回顾")]
+        危险源辨识与风险评价回顾 = 48,
+
+        /// 
+        /// 年度生产作业计划讨论会 50 
+        /// 
+        [Description("年度生产作业计划讨论会")]
+        年度生产作业计划讨论会 = 50,
+
+        /// 
+        /// 变化管理讨论 52 
+        /// 
+        [Description("变化管理讨论")]
+        变化管理讨论 = 52,
+
+        /// 
+        /// 法律法规更新评审会 60 
+        /// 
+        [Description("法律法规更新评审会")]
+        法律法规更新评审会 = 60,
+
+        /// 
+        /// 合理化建议评审会 62 
+        /// 
+        [Description("合理化建议评审会")]
+        合理化建议评审会 = 62,
+
+        /// 
+        /// 安全标准化评审会 64 
+        /// 
+        [Description("安全标准化评审会")]
+        安全标准化评审会 = 64,
+
+        /// 
+        /// 尾矿-勘察文件评审 66 
+        /// 
+        [Description("尾矿-勘察文件评审")]
+        尾矿勘察文件评审 = 66,
+
+        /// 
+        /// 尾矿-安全评价文件评审 68 
+        /// 
+        [Description("尾矿-安全评价文件评审")]
+        尾矿安全评价文件评审 = 68,
+
+        /// 
+        /// 回采勘察文件评审 70 
+        /// 
+        [Description("回采勘察文件评审")]
+        回采勘察文件评审 = 70,
+
+        /// 
+        /// 尾矿-回采安全预评价文件评审 72 
+        /// 
+        [Description("尾矿-回采安全预评价文件评审")]
+        尾矿回采安全预评价文件评审 = 72,
+
+        /// 
+        /// 尾矿-闭库安全现状评价文件评审 74 
+        /// 
+        [Description("尾矿-闭库安全现状评价文件评审")]
+        尾矿闭库安全现状评价文件评审 = 74,
+
+        /// 
+        /// 许可作业范围评审会 76 
+        /// 
+        [Description("许可作业范围评审会")]
+        许可作业范围评审会 = 76,
+
+        /// 
+        /// 安全生产责任制评审会 78 
+        /// 
+        [Description("安全生产责任制评审会")]
+        安全生产责任制评审会 = 78,
+
+        /// 
+        /// 尾矿-防震技术论证报告评审会 80 
+        /// 
+        [Description("尾矿-防震技术论证报告评审会")]
+        尾矿防震技术论证报告评审会 = 80,
+
+
+        /// 
+        /// 安全评价文件审核 90
+        /// 
+        [Description("安全评价文件审核")]
+        安全评价文件审核 = 90,
+
+        /// 
+        /// 设计文件审核(露天矿山/选厂) 92 
+        /// 
+        [Description("设计文件审核(露天矿山/选厂)")]
+        设计文件审核_露天矿山选厂 = 92,
+
+        /// 
+        /// 应急预案审核 94 
+        /// 
+        [Description("应急预案审核")]
+        应急预案审核 = 94,
+
+        /// 
+        /// 勘察文件审核(尾矿) 96 
+        /// 
+        [Description("勘察文件审核(尾矿)")]
+        勘察文件审核_尾矿 = 96,
+
+        /// 
+        /// 勘察文件审核(露天矿山) 98
+        /// 
+        [Description("勘察文件审核(露天矿山)")]
+        勘察文件审核_露天矿山 = 98,
+
+        /// 
+        /// 设计文件审核(尾矿) 100 
+        /// 
+        [Description("设计文件审核(尾矿)")]
+        设计文件审核_尾矿 = 100,
+
+        /// 
+        /// 回采勘察文件审核(尾矿) 102 
+        /// 
+        [Description("回采勘察文件审核(尾矿)")]
+        回采勘察文件审核_尾矿 = 102,
+
+        /// 
+        /// 回采安全预评价文件审核(尾矿) 104 
+        /// 
+        [Description("回采安全预评价文件审核(尾矿)")]
+        回采安全预评价文件审核_尾矿 = 104,
+
+        /// 
+        /// 回采设计文件审核(尾矿) 106 
+        /// 
+        [Description("回采设计文件审核(尾矿)")]
+        回采设计文件审核_尾矿 = 106,
+
+        /// 
+        /// 闭库安全现状评价文件审核(尾矿) 108 
+        /// 
+        [Description("闭库安全现状评价文件审核(尾矿)")]
+        闭库安全现状评价文件审核_尾矿 = 108,
+
+        /// 
+        /// 闭库安全现状评价文件审核(尾矿) 110 
+        /// 
+        [Description("闭库安全现状评价文件审核(尾矿)")]
+        闭库设计文件审核_尾矿 = 110,
+
+        /// 
+        /// 所有的制度文件审核会 112
+        /// 
+        [Description("所有的制度文件审核会")]
+        所有的制度文件审核会 = 112,
     }
 
     #endregion
@@ -621,10 +890,39 @@ namespace APT.MS.Domain.Enums
     /// 
     public enum SOURCETYPE
     {
+        ///// 
+        ///// 事故事件上报 5 
+        ///// 
+        //[Description("事故事件上报")]
+
         /// 
-        /// 事故事件上报 5 
+        /// 事故调查小组成员 5 
+        /// 
+        [Description("事故调查小组成员")]
+        AE008ToMeet = 5,
+
+        /// 
+        /// 事故事件上报 10 
         /// 
         [Description("事故事件上报")]
-        EventReport = 5,
+        AE006ToMeet = 10,
+
+        /// 
+        /// 勘察记录表 15
+        /// 
+        [Description("勘察记录表")]
+        AE018ToMeet = 15,
+
+        /// 
+        /// 变化识别评估 20
+        /// 
+        [Description("变化识别评估")]
+        PR023ToMeet = 20,
+
+        /// 
+        /// 安全生产方针征集表 25 
+        /// 
+        [Description("安全生产方针征集表")]
+        PT014ToMeet =25,
     }
 }
diff --git a/APT.MicroApi/APT.PP.WebApi/APT.PP.WebApi.csproj b/APT.MicroApi/APT.PP.WebApi/APT.PP.WebApi.csproj
index 25c74dd..e6975d1 100644
--- a/APT.MicroApi/APT.PP.WebApi/APT.PP.WebApi.csproj
+++ b/APT.MicroApi/APT.PP.WebApi/APT.PP.WebApi.csproj
@@ -91,12 +91,16 @@
     
     
     
+    
+    
     
     
     
     
     
     
+    
+    
     
     
     
diff --git a/APT.MicroApi/APT.PP.WebApi/Controllers/Api/FMController.cs b/APT.MicroApi/APT.PP.WebApi/Controllers/Api/FMController.cs
index 57b0a15..e987cd1 100644
--- a/APT.MicroApi/APT.PP.WebApi/Controllers/Api/FMController.cs
+++ b/APT.MicroApi/APT.PP.WebApi/Controllers/Api/FMController.cs
@@ -32,6 +32,7 @@ using MySqlX.XDevAPI.Common;
 using System.Threading.Tasks;
 using NPOI.SS.Formula.Functions;
 using APT.WebApi.Models;
+using Microsoft.Extensions.Logging;
 
 namespace APT.PP.WebApi.Controllers.Api.PP
 {
@@ -45,12 +46,14 @@ namespace APT.PP.WebApi.Controllers.Api.PP
         IFMNotificationTaskService NotificationTaskService { get; set; }
         IPFCodeRuleService CodeRuleService { get; set; }
         IFMNoticeService FMNoticeService { get; set; }
+        private readonly ILogger Logger;
 
-        public FMController(IFMNotificationTaskService notificationTaskService, IPFCodeRuleService codeRuleService, IFMNoticeService noticeService)
+        public FMController(IFMNotificationTaskService notificationTaskService, IPFCodeRuleService codeRuleService, IFMNoticeService noticeService, ILogger logger)
         {
             NotificationTaskService = notificationTaskService;
             this.CodeRuleService = codeRuleService;
             FMNoticeService = noticeService;
+            Logger = logger;
         }
         /// 
         /// 完成情况统计
@@ -1498,525 +1501,542 @@ namespace APT.PP.WebApi.Controllers.Api.PP
         {
             return SafeExecute(() =>
             {
-                int caculate = 6;
-                if (!string.IsNullOrEmpty(filter.Parameter1))
+                try
                 {
+                    int caculate = 6;
+                    if (!string.IsNullOrEmpty(filter.Parameter1))
+                    {
+                        try
+                        {
+                            caculate = int.Parse(filter.Parameter1);  //接收来自页面的参数
+                        }
+                        catch
+                        {
+                            caculate = 6;
+                        }
+                    }
+
+                    DateTime dtMin = Convert.ToDateTime(DateTime.Now.AddMonths(-1 * (caculate - 1)).ToString("yyyy-MM-01 00:00:00"));
+
+                    BaseFilter filterD = new BaseFilter();
+                    filterD.SelectField = new List { "ID", "NAME", "DEPARTMENT_TYPE", "PARENT_ID" };
+                    IEnumerable listDep = null;
                     try
                     {
-                        caculate = int.Parse(filter.Parameter1);  //接收来自页面的参数
+                        //可能会报错
+                        listDep = GetEntities(e => !e.IS_DELETED && e.ENABLE_STATUS == 0, filterD, null);
                     }
-                    catch
+                    catch { }
+
+                    if ((listDep == null || !listDep.Any()))
                     {
-                        caculate = 6;
+                        return true;  //如果 没有部门 或者 为设置隐患原因 一般不会这样
                     }
-                }
 
-                DateTime dtMin = Convert.ToDateTime(DateTime.Now.AddMonths(-1 * (caculate - 1)).ToString("yyyy-MM-01 00:00:00"));
+                    //隐患已上报 统计  有没有处理 处理的及时性
+                    var dtSubmitContent = GetEntities(e => e.DEPARTMENT_ID.HasValue && e.CREATE_TIME.HasValue && e.CREATE_TIME.Value >= dtMin, null, null);
 
-                BaseFilter filterD = new BaseFilter();
-                filterD.SelectField = new List { "ID", "NAME", "DEPARTMENT_TYPE", "PARENT_ID" };
-                var listDep = GetEntities(e => !e.IS_DELETED && e.ENABLE_STATUS == 0, filterD, null);
-
-                if ((listDep == null || !listDep.Any()))
-                {
-                    return true;  //如果 没有部门 或者 为设置隐患原因 一般不会这样
-                }
-
-                //隐患已上报 统计  有没有处理 处理的及时性
-                var dtSubmitContent = GetEntities(e => e.DEPARTMENT_ID.HasValue && e.CREATE_TIME.HasValue && e.CREATE_TIME.Value >= dtMin, null, null);
-
-                var listDetailID = dtSubmitContent.Where(e => e.SAFE_CHECK_DETAIL_ID.HasValue).Select(e => e.SAFE_CHECK_DETAIL_ID.Value);
-                Expression> expression = e => !e.IS_DELETED && e.CHECKRESULT.HasValue && e.CHECKRESULT.Value == 20 && e.CREATE_TIME.HasValue && e.CREATE_TIME.Value >= dtMin && e.DEPARTMENT_ID.HasValue;
-                if (listDetailID != null && listDetailID.Any())
-                {
-                    expression = expression.And(e => !listDetailID.Contains(e.ID));
-                }
-                var listCheck = GetEntities(expression, null, null);//隐患未上报  也就是 未整改的
-
-                //string strCorrectType = DataHelper.EnumToString("BSCorrectType");
-                //var listCorrectType = strCorrectType.Split(',');
-                //List listEnumVal = new List();
-                //List listEnumName = new List();
-                //foreach (var item in listCorrectType)
-                //{
-                //    var perEnum = item.Split(':');
-                //    if (perEnum != null && perEnum.Length == 2)
-                //    {
-                //        listEnumVal.Add(int.Parse(perEnum[0]));
-                //        listEnumName.Add(perEnum[1]);
-                //    }
-                //}
-
-                //枚举动态无效 因为要根据枚举值 做搜索
-                string CODE = DateTime.Now.ToString("yyyyMMddHHmmss");
-                List listEnumVal = new List { 5, 10, 15, 20 };
-                List listEnumName = new List { "按时整改隐患", "超期整改隐患", "未整改隐患", "隐患整改率" };
-
-                var taskSync = GetEntity(filter.Keyword);//跑批待办
-                if (taskSync.SYNC_PARAM != null)
-                {
-                    taskSync.SYNC_PARAM = "";
-                }
-                taskSync.UPDATE_SUCCES_TIME = DateTime.Now;
-
-                //组织 各隐患原因 数量 
-
-                int perVal = 0;
-                int perCount = 0;//组织对应数量
-                int perCountNot = 0;//组织对应数量
-                int perSubCount = 0;//组织对应下级数量
-                int depNum = 0;
-                // 子班组 + 本组织 
-                List listSubDepID = new List();
-                DateTime MODIFY_TIME = DateTime.Now.AddMinutes(1);
-                int enumsCount = listEnumVal.Count;
-                BSCaculateType CaculateType = BSCaculateType.RiskCorrect;
-                var year = dtMin.Year;
-                //更新近期 信息
-                var listResult = GetEntities(e => e.YEAR >= year && e.TYPE == CaculateType, null, null).ToList();
-
-                //List> listDicDate = new List>();
-                List listYear = new List();
-                List listMonth = new List();
-                List listDtMin = new List();
-                DateTime dtTemp = DateTime.Now;
-                for (int i = 0; i < caculate; i++)
-                {
-                    dtTemp = dtMin.AddMonths(i);
-                    listYear.Add(dtTemp.Year);
-                    listMonth.Add(dtTemp.Month);
-                    listDtMin.Add(dtTemp);
-                }
-
-                DateTime dtPerMin = DateTime.Now;
-                DateTime dtPerMax = DateTime.Now;
-
-                //班组
-                depNum = 0;
-                var depB = listDep.Where(e => e.DEPARTMENT_TYPE == 2).OrderBy(e => e.NUM);
-                foreach (var itemD in depB)
-                {
-                    depNum++;
-                    for (int i = 0; i < enumsCount; i++)//listEnumVal.Count;
+                    var listDetailID = dtSubmitContent.Where(e => e.SAFE_CHECK_DETAIL_ID.HasValue).Select(e => e.SAFE_CHECK_DETAIL_ID.Value);
+                    Expression> expression = e => !e.IS_DELETED && e.CHECKRESULT.HasValue && e.CHECKRESULT.Value == 20 && e.CREATE_TIME.HasValue && e.CREATE_TIME.Value >= dtMin && e.DEPARTMENT_ID.HasValue;
+                    if (listDetailID != null && listDetailID.Any())
                     {
-                        perVal = listEnumVal[i];  //{ 5, 10, 15, 20 }; { "按时整改隐患", "超期整改隐患", "未整改隐患", "隐患整改率" };
-                        switch (perVal)
-                        {
-                            case 5:
-                                for (int j = 0; j < caculate; j++)
-                                {
-                                    var perME = listResult.FirstOrDefault(e => e.DEPARTMENT_ID == itemD.ID && e.SOURCEVAL == perVal && e.YEAR == listYear[j] && e.MONTH == listMonth[j]);
-                                    if (perME == null)
-                                    {
-                                        perME = GetRiskReason(itemD.DEPARTMENT_TYPE, listYear[j], itemD.ID, Guid.Empty, 1, filter.OrgId, perVal, listMonth[j], CaculateType);//如果没有 就新建对象
-                                        listResult.Add(perME);//地址引用 应该是支持
-                                    }
-                                    perCount = dtSubmitContent.Where(e => e.ISFINISHINTTIME.HasValue && e.ISFINISHINTTIME.Value && e.DEPARTMENT_ID.Value == itemD.ID && e.CREATE_TIME.HasValue && e.CREATE_TIME.Value.Year == listYear[j] && e.CREATE_TIME.Value.Month == listMonth[j]).Count();//某组织 年 月 按时整改隐患
-                                    perME.DEPARTMENT_TYPE = (FMDepartmentType)itemD.DEPARTMENT_TYPE;
-                                    perME.NUMD = depNum;
-                                    perME.COUNT = perCount;
-                                    perME.CODE = CODE;
-                                }
-                                break;
-                            case 10:
-                                for (int j = 0; j < caculate; j++)
-                                {
-                                    var perME = listResult.FirstOrDefault(e => e.DEPARTMENT_ID == itemD.ID && e.SOURCEVAL == perVal && e.YEAR == listYear[j] && e.MONTH == listMonth[j]);
-                                    if (perME == null)
-                                    {
-                                        perME = GetRiskReason(2, listYear[j], itemD.ID, Guid.Empty, 2, filter.OrgId, perVal, listMonth[j], CaculateType);//如果没有 就新建对象
-                                        listResult.Add(perME);//地址引用 应该是支持
-                                    }
-                                    perCount = dtSubmitContent.Where(e => e.ISFINISHINTTIME.HasValue && !e.ISFINISHINTTIME.Value && e.DEPARTMENT_ID.Value == itemD.ID && e.CREATE_TIME.HasValue && e.CREATE_TIME.Value.Year == listYear[j] && e.CREATE_TIME.Value.Month == listMonth[j]).Count();//某组织 年 月 按时整改隐患
-                                    perME.DEPARTMENT_TYPE = FMDepartmentType.班组;
-                                    perME.NUMD = depNum;
-                                    perME.COUNT = perCount;
-                                    perME.CODE = CODE;
-                                }
-                                break;
-                            case 15:
-                                for (int j = 0; j < caculate; j++)
-                                {
-                                    var perME = listResult.FirstOrDefault(e => e.DEPARTMENT_ID == itemD.ID && e.SOURCEVAL == perVal && e.YEAR == listYear[j] && e.MONTH == listMonth[j]);
-                                    if (perME == null)
-                                    {
-                                        perME = GetRiskReason(2, listYear[j], itemD.ID, Guid.Empty, 3, filter.OrgId, perVal, listMonth[j], CaculateType);//如果没有 就新建对象
-                                        listResult.Add(perME);//地址引用 应该是支持
-                                    }
-                                    perCount = dtSubmitContent.Where(e => !e.ISFINISHINTTIME.HasValue && e.DEPARTMENT_ID.Value == itemD.ID && e.CREATE_TIME.HasValue && e.CREATE_TIME.Value.Year == listYear[j] && e.CREATE_TIME.Value.Month == listMonth[j]).Count();//某组织 年 月 按时整改隐患
-                                    perCountNot = 0;
-                                    if (listCheck != null && listCheck.Any())
-                                    {
-                                        perCountNot = listCheck.Where(e => !e.IS_DELETED && e.DEPARTMENT_ID.HasValue && e.DEPARTMENT_ID.Value == itemD.ID && e.CREATE_TIME.HasValue && e.CREATE_TIME.Value.Year == listYear[j] && e.CREATE_TIME.Value.Month == listMonth[j]).Count();
-                                    }
-
-                                    perME.DEPARTMENT_TYPE = FMDepartmentType.班组;
-                                    perME.NUMD = depNum;
-                                    perME.COUNT = perCount + perCountNot;
-                                    perME.CODE = CODE;
-                                }
-                                break;
-                            case 20://整改率 后续统一计算
-                                break;
-                            default:
-                                break;
-                        }
+                        expression = expression.And(e => !listDetailID.Contains(e.ID));
                     }
-                }
+                    var listCheck = GetEntities(expression, null, null);//隐患未上报  也就是 未整改的
 
-                //车间
-                depNum = 0;
-                var depC = listDep.Where(e => e.DEPARTMENT_TYPE == 1).OrderBy(e => e.NUM);
-                foreach (var itemD in depC)
-                {
-                    depNum++;
-                    listSubDepID = listDep.Where(e => e.PARENT_ID.HasValue && e.PARENT_ID.Value == itemD.ID).Select(e => e.ID).ToList();
-                    for (int i = 0; i < enumsCount; i++)//listEnumVal.Count;
+                    //string strCorrectType = DataHelper.EnumToString("BSCorrectType");
+                    //var listCorrectType = strCorrectType.Split(',');
+                    //List listEnumVal = new List();
+                    //List listEnumName = new List();
+                    //foreach (var item in listCorrectType)
+                    //{
+                    //    var perEnum = item.Split(':');
+                    //    if (perEnum != null && perEnum.Length == 2)
+                    //    {
+                    //        listEnumVal.Add(int.Parse(perEnum[0]));
+                    //        listEnumName.Add(perEnum[1]);
+                    //    }
+                    //}
+
+                    //枚举动态无效 因为要根据枚举值 做搜索
+                    string CODE = DateTime.Now.ToString("yyyyMMddHHmmss");
+                    List listEnumVal = new List { 5, 10, 15, 20 };
+                    List listEnumName = new List { "按时整改隐患", "超期整改隐患", "未整改隐患", "隐患整改率" };
+
+                    var taskSync = GetEntity(filter.Keyword);//跑批待办
+                    if (taskSync.SYNC_PARAM != null)
                     {
-                        perVal = listEnumVal[i];  //{ 5, 10, 15, 20 }; { "按时整改隐患", "超期整改隐患", "未整改隐患", "隐患整改率" };
-                        switch (perVal)
-                        {
-                            case 5:
-                                for (int j = 0; j < caculate; j++)
-                                {
-                                    var perME = listResult.FirstOrDefault(e => e.DEPARTMENT_ID == itemD.ID && e.SOURCEVAL == perVal && e.YEAR == listYear[j] && e.MONTH == listMonth[j]);
-                                    if (perME == null)
-                                    {
-                                        perME = GetRiskReason(itemD.DEPARTMENT_TYPE, listYear[j], itemD.ID, Guid.Empty, 1, filter.OrgId, perVal, listMonth[j], CaculateType);//如果没有 就新建对象
-                                        listResult.Add(perME);//地址引用 应该是支持
-                                    }
-                                    perCount = dtSubmitContent.Where(e => e.ISFINISHINTTIME.HasValue && e.ISFINISHINTTIME.Value && e.DEPARTMENT_ID.Value == itemD.ID && e.CREATE_TIME.HasValue && e.CREATE_TIME.Value.Year == listYear[j] && e.CREATE_TIME.Value.Month == listMonth[j]).Count();//某组织 年 月 按时整改隐患
-
-                                    perSubCount = 0;//每次清零 后相加
-                                    if (listSubDepID != null && listSubDepID.Any())
-                                    {
-                                        //子项数据求和
-                                        var listThisChange = listResult.Where(e => e.CODE == CODE && e.SOURCEVAL == perVal && e.YEAR == listYear[j] && e.MONTH == listMonth[j] && listSubDepID.Contains(e.DEPARTMENT_ID));
-                                        if (listThisChange != null && listThisChange.Any())
-                                        {
-                                            perSubCount = listThisChange.Sum(e => e.COUNT);
-                                        }
-                                    }
-
-                                    perME.DEPARTMENT_TYPE = (FMDepartmentType)itemD.DEPARTMENT_TYPE;
-                                    perME.NUMD = depNum;
-                                    perME.COUNT = perCount + perSubCount;
-                                    perME.CODE = CODE;
-                                }
-                                break;
-                            case 10:
-                                for (int j = 0; j < caculate; j++)
-                                {
-                                    var perME = listResult.FirstOrDefault(e => e.DEPARTMENT_ID == itemD.ID && e.SOURCEVAL == perVal && e.YEAR == listYear[j] && e.MONTH == listMonth[j]);
-                                    if (perME == null)
-                                    {
-                                        perME = GetRiskReason(itemD.DEPARTMENT_TYPE, listYear[j], itemD.ID, Guid.Empty, 2, filter.OrgId, perVal, listMonth[j], CaculateType);//如果没有 就新建对象
-                                        listResult.Add(perME);//地址引用 应该是支持
-                                    }
-                                    perCount = dtSubmitContent.Where(e => e.ISFINISHINTTIME.HasValue && !e.ISFINISHINTTIME.Value && e.DEPARTMENT_ID.Value == itemD.ID && e.CREATE_TIME.HasValue && e.CREATE_TIME.Value.Year == listYear[j] && e.CREATE_TIME.Value.Month == listMonth[j]).Count();//某组织 年 月 按时整改隐患
-
-                                    perSubCount = 0;//每次清零 后相加
-                                    if (listSubDepID != null && listSubDepID.Any())
-                                    {
-                                        //子项数据求和
-                                        var listThisChange = listResult.Where(e => e.CODE == CODE && e.SOURCEVAL == perVal && e.YEAR == listYear[j] && e.MONTH == listMonth[j] && listSubDepID.Contains(e.DEPARTMENT_ID));
-                                        if (listThisChange != null && listThisChange.Any())
-                                        {
-                                            perSubCount = listThisChange.Sum(e => e.COUNT);
-                                        }
-                                    }
-
-                                    perME.DEPARTMENT_TYPE = (FMDepartmentType)itemD.DEPARTMENT_TYPE;
-                                    perME.NUMD = depNum;
-                                    perME.COUNT = perCount + perSubCount;
-                                    perME.CODE = CODE;
-                                }
-                                break;
-                            case 15:
-                                for (int j = 0; j < caculate; j++)
-                                {
-                                    var perME = listResult.FirstOrDefault(e => e.DEPARTMENT_ID == itemD.ID && e.SOURCEVAL == perVal && e.YEAR == listYear[j] && e.MONTH == listMonth[j]);
-                                    if (perME == null)
-                                    {
-                                        perME = GetRiskReason(itemD.DEPARTMENT_TYPE, listYear[j], itemD.ID, Guid.Empty, 3, filter.OrgId, perVal, listMonth[j], CaculateType);//如果没有 就新建对象
-                                        listResult.Add(perME);//地址引用 应该是支持
-                                    }
-                                    perCount = dtSubmitContent.Where(e => !e.ISFINISHINTTIME.HasValue && e.DEPARTMENT_ID.Value == itemD.ID && e.CREATE_TIME.HasValue && e.CREATE_TIME.Value.Year == listYear[j] && e.CREATE_TIME.Value.Month == listMonth[j]).Count();//某组织 年 月 按时整改隐患
-                                    perCountNot = 0;
-                                    if (listCheck != null && listCheck.Any())
-                                    {
-                                        perCountNot = listCheck.Where(e => !e.IS_DELETED && e.DEPARTMENT_ID.HasValue && e.DEPARTMENT_ID.Value == itemD.ID && e.CREATE_TIME.HasValue && e.CREATE_TIME.Value.Year == listYear[j] && e.CREATE_TIME.Value.Month == listMonth[j]).Count();
-                                    }
-
-                                    perSubCount = 0;//每次清零 后相加
-                                    if (listSubDepID != null && listSubDepID.Any())
-                                    {
-                                        //子项数据求和
-                                        var listThisChange = listResult.Where(e => e.CODE == CODE && e.SOURCEVAL == perVal && e.YEAR == listYear[j] && e.MONTH == listMonth[j] && listSubDepID.Contains(e.DEPARTMENT_ID));
-                                        if (listThisChange != null && listThisChange.Any())
-                                        {
-                                            perSubCount = listThisChange.Sum(e => e.COUNT);
-                                        }
-                                    }
-
-                                    perME.DEPARTMENT_TYPE = (FMDepartmentType)itemD.DEPARTMENT_TYPE;
-                                    perME.NUMD = depNum;
-                                    perME.COUNT = perCount + perSubCount + perCountNot;
-                                    perME.CODE = CODE;
-                                }
-                                break;
-                            case 20://整改率 后续统一计算
-                                break;
-                            default:
-                                break;
-                        }
+                        taskSync.SYNC_PARAM = "";
                     }
-                }
+                    taskSync.UPDATE_SUCCES_TIME = DateTime.Now;
 
-                //部门
-                depNum = 0;
-                var depBM = listDep.Where(e => e.DEPARTMENT_TYPE == 0).OrderBy(e => e.NUM);
-                foreach (var itemD in depBM)
-                {
-                    depNum++;
-                    listSubDepID = listDep.Where(e => e.PARENT_ID.HasValue && e.PARENT_ID.Value == itemD.ID).Select(e => e.ID).ToList();
-                    for (int i = 0; i < enumsCount; i++)//listEnumVal.Count;
-                    {
-                        perVal = listEnumVal[i];  //{ 5, 10, 15, 20 }; { "按时整改隐患", "超期整改隐患", "未整改隐患", "隐患整改率" };
-                        switch (perVal)
-                        {
-                            case 5:
-                                for (int j = 0; j < caculate; j++)
-                                {
-                                    var perME = listResult.FirstOrDefault(e => e.DEPARTMENT_ID == itemD.ID && e.SOURCEVAL == perVal && e.YEAR == listYear[j] && e.MONTH == listMonth[j]);
-                                    if (perME == null)
-                                    {
-                                        perME = GetRiskReason(itemD.DEPARTMENT_TYPE, listYear[j], itemD.ID, Guid.Empty, 1, filter.OrgId, perVal, listMonth[j], CaculateType);//如果没有 就新建对象
-                                        listResult.Add(perME);//地址引用 应该是支持
-                                    }
-                                    perCount = dtSubmitContent.Where(e => e.ISFINISHINTTIME.HasValue && e.ISFINISHINTTIME.Value && e.DEPARTMENT_ID.Value == itemD.ID && e.CREATE_TIME.HasValue && e.CREATE_TIME.Value.Year == listYear[j] && e.CREATE_TIME.Value.Month == listMonth[j]).Count();//某组织 年 月 按时整改隐患
+                    //组织 各隐患原因 数量 
 
-                                    perSubCount = 0;//每次清零 后相加
-                                    if (listSubDepID != null && listSubDepID.Any())
-                                    {
-                                        //子项数据求和
-                                        var listThisChange = listResult.Where(e => e.CODE == CODE && e.SOURCEVAL == perVal && e.YEAR == listYear[j] && e.MONTH == listMonth[j] && listSubDepID.Contains(e.DEPARTMENT_ID));
-                                        if (listThisChange != null && listThisChange.Any())
-                                        {
-                                            perSubCount = listThisChange.Sum(e => e.COUNT);
-                                        }
-                                    }
+                    int perVal = 0;
+                    int perCount = 0;//组织对应数量
+                    int perCountNot = 0;//组织对应数量
+                    int perSubCount = 0;//组织对应下级数量
+                    int depNum = 0;
+                    // 子班组 + 本组织 
+                    List listSubDepID = new List();
+                    DateTime MODIFY_TIME = DateTime.Now.AddMinutes(1);
+                    int enumsCount = listEnumVal.Count;
+                    BSCaculateType CaculateType = BSCaculateType.RiskCorrect;
+                    var year = dtMin.Year;
+                    //更新近期 信息
+                    var listResult = GetEntities(e => e.YEAR >= year && e.TYPE == CaculateType, null, null).ToList();
 
-                                    perME.DEPARTMENT_TYPE = (FMDepartmentType)itemD.DEPARTMENT_TYPE;
-                                    perME.NUMD = depNum;
-                                    perME.COUNT = perCount + perSubCount;
-                                    perME.CODE = CODE;
-                                }
-                                break;
-                            case 10:
-                                for (int j = 0; j < caculate; j++)
-                                {
-                                    var perME = listResult.FirstOrDefault(e => e.DEPARTMENT_ID == itemD.ID && e.SOURCEVAL == perVal && e.YEAR == listYear[j] && e.MONTH == listMonth[j]);
-                                    if (perME == null)
-                                    {
-                                        perME = GetRiskReason(itemD.DEPARTMENT_TYPE, listYear[j], itemD.ID, Guid.Empty, 2, filter.OrgId, perVal, listMonth[j], CaculateType);//如果没有 就新建对象
-                                        listResult.Add(perME);//地址引用 应该是支持
-                                    }
-                                    perCount = dtSubmitContent.Where(e => e.ISFINISHINTTIME.HasValue && !e.ISFINISHINTTIME.Value && e.DEPARTMENT_ID.Value == itemD.ID && e.CREATE_TIME.HasValue && e.CREATE_TIME.Value.Year == listYear[j] && e.CREATE_TIME.Value.Month == listMonth[j]).Count();//某组织 年 月 按时整改隐患
-
-                                    perSubCount = 0;//每次清零 后相加
-                                    if (listSubDepID != null && listSubDepID.Any())
-                                    {
-                                        //子项数据求和
-                                        var listThisChange = listResult.Where(e => e.CODE == CODE && e.SOURCEVAL == perVal && e.YEAR == listYear[j] && e.MONTH == listMonth[j] && listSubDepID.Contains(e.DEPARTMENT_ID));
-                                        if (listThisChange != null && listThisChange.Any())
-                                        {
-                                            perSubCount = listThisChange.Sum(e => e.COUNT);
-                                        }
-                                    }
-
-                                    perME.DEPARTMENT_TYPE = (FMDepartmentType)itemD.DEPARTMENT_TYPE;
-                                    perME.NUMD = depNum;
-                                    perME.COUNT = perCount + perSubCount;
-                                    perME.CODE = CODE;
-                                }
-                                break;
-                            case 15:
-                                for (int j = 0; j < caculate; j++)
-                                {
-                                    var perME = listResult.FirstOrDefault(e => e.DEPARTMENT_ID == itemD.ID && e.SOURCEVAL == perVal && e.YEAR == listYear[j] && e.MONTH == listMonth[j]);
-                                    if (perME == null)
-                                    {
-                                        perME = GetRiskReason(itemD.DEPARTMENT_TYPE, listYear[j], itemD.ID, Guid.Empty, 3, filter.OrgId, perVal, listMonth[j], CaculateType);//如果没有 就新建对象
-                                        listResult.Add(perME);//地址引用 应该是支持
-                                    }
-                                    perCount = dtSubmitContent.Where(e => !e.ISFINISHINTTIME.HasValue && e.DEPARTMENT_ID.Value == itemD.ID && e.CREATE_TIME.HasValue && e.CREATE_TIME.Value.Year == listYear[j] && e.CREATE_TIME.Value.Month == listMonth[j]).Count();//某组织 年 月 按时整改隐患
-                                    perCountNot = 0;
-                                    if (listCheck != null && listCheck.Any())
-                                    {
-                                        perCountNot = listCheck.Where(e => !e.IS_DELETED && e.DEPARTMENT_ID.HasValue && e.DEPARTMENT_ID.Value == itemD.ID && e.CREATE_TIME.HasValue && e.CREATE_TIME.Value.Year == listYear[j] && e.CREATE_TIME.Value.Month == listMonth[j]).Count();
-                                    }
-
-                                    perSubCount = 0;//每次清零 后相加
-                                    if (listSubDepID != null && listSubDepID.Any())
-                                    {
-                                        //子项数据求和
-                                        var listThisChange = listResult.Where(e => e.CODE == CODE && e.SOURCEVAL == perVal && e.YEAR == listYear[j] && e.MONTH == listMonth[j] && listSubDepID.Contains(e.DEPARTMENT_ID));
-                                        if (listThisChange != null && listThisChange.Any())
-                                        {
-                                            perSubCount = listThisChange.Sum(e => e.COUNT);
-                                        }
-                                    }
-                                    perME.DEPARTMENT_TYPE = (FMDepartmentType)itemD.DEPARTMENT_TYPE;
-                                    perME.NUMD = depNum;
-                                    perME.COUNT = perCount + perCountNot + perSubCount;
-                                    perME.CODE = CODE;
-                                }
-                                break;
-                            case 20://整改率 后续统一计算
-                                break;
-                            default:
-                                break;
-                        }
-                    }
-                }
-
-                //公司 为了 格式 懒得改  统计所有
-                depNum = 0;
-                var depG = listDep.Where(e => e.DEPARTMENT_TYPE == 3 && !e.PARENT_ID.HasValue);
-                foreach (var itemD in depG)
-                {
-                    depNum++;
-                    for (int i = 0; i < enumsCount; i++)//listEnumVal.Count;
-                    {
-                        perVal = listEnumVal[i];  //{ 5, 10, 15, 20 }; { "按时整改隐患", "超期整改隐患", "未整改隐患", "隐患整改率" };
-                        switch (perVal)
-                        {
-                            case 5:
-                                for (int j = 0; j < caculate; j++)
-                                {
-                                    var perME = listResult.FirstOrDefault(e => e.SOURCEVAL == perVal && e.YEAR == listYear[j] && e.MONTH == listMonth[j] && e.DEPARTMENT_ID == itemD.ID);
-                                    if (perME == null)
-                                    {
-                                        perME = GetRiskReason(itemD.DEPARTMENT_TYPE, listYear[j], itemD.ID, Guid.Empty, 1, filter.OrgId, perVal, listMonth[j], CaculateType);//如果没有 就新建对象
-                                        listResult.Add(perME);//地址引用 应该是支持
-                                    }
-                                    perCount = dtSubmitContent.Where(e => e.ISFINISHINTTIME.HasValue && e.ISFINISHINTTIME.Value && e.CREATE_TIME.HasValue && e.CREATE_TIME.Value.Year == listYear[j] && e.CREATE_TIME.Value.Month == listMonth[j]).Count();//某组织 年 月 按时整改隐患
-                                    perME.DEPARTMENT_TYPE = (FMDepartmentType)itemD.DEPARTMENT_TYPE;
-                                    perME.NUMD = depNum;
-                                    perME.COUNT = perCount;
-                                    perME.CODE = CODE;
-                                }
-                                break;
-                            case 10:
-                                for (int j = 0; j < caculate; j++)
-                                {
-                                    var perME = listResult.FirstOrDefault(e => e.SOURCEVAL == perVal && e.YEAR == listYear[j] && e.MONTH == listMonth[j] && e.DEPARTMENT_ID == itemD.ID);
-                                    if (perME == null)
-                                    {
-                                        perME = GetRiskReason(itemD.DEPARTMENT_TYPE, listYear[j], itemD.ID, Guid.Empty, 2, filter.OrgId, perVal, listMonth[j], CaculateType);//如果没有 就新建对象
-                                        listResult.Add(perME);//地址引用 应该是支持
-                                    }
-                                    perCount = dtSubmitContent.Where(e => e.ISFINISHINTTIME.HasValue && !e.ISFINISHINTTIME.Value && e.CREATE_TIME.HasValue && e.CREATE_TIME.Value.Year == listYear[j] && e.CREATE_TIME.Value.Month == listMonth[j]).Count();//某组织 年 月 按时整改隐患
-                                    perME.DEPARTMENT_TYPE = (FMDepartmentType)itemD.DEPARTMENT_TYPE;
-                                    perME.NUMD = depNum;
-                                    perME.COUNT = perCount;
-                                    perME.CODE = CODE;
-                                }
-                                break;
-                            case 15:
-                                for (int j = 0; j < caculate; j++)
-                                {
-                                    var perME = listResult.FirstOrDefault(e => e.SOURCEVAL == perVal && e.YEAR == listYear[j] && e.MONTH == listMonth[j] && e.DEPARTMENT_ID == itemD.ID);
-                                    if (perME == null)
-                                    {
-                                        perME = GetRiskReason(itemD.DEPARTMENT_TYPE, listYear[j], itemD.ID, Guid.Empty, 3, filter.OrgId, perVal, listMonth[j], CaculateType);//如果没有 就新建对象
-                                        listResult.Add(perME);//地址引用 应该是支持
-                                    }
-                                    perCount = dtSubmitContent.Where(e => !e.ISFINISHINTTIME.HasValue && e.CREATE_TIME.HasValue && e.CREATE_TIME.Value.Year == listYear[j] && e.CREATE_TIME.Value.Month == listMonth[j]).Count();//某组织 年 月 按时整改隐患
-                                    perCountNot = 0;
-                                    if (listCheck != null && listCheck.Any())
-                                    {
-                                        perCountNot = listCheck.Where(e => !e.IS_DELETED && e.CREATE_TIME.HasValue && e.CREATE_TIME.Value.Year == listYear[j] && e.CREATE_TIME.Value.Month == listMonth[j]).Count();
-                                    }
-
-                                    perSubCount = 0;//每次清零 后相加
-                                    if (listSubDepID != null && listSubDepID.Any())
-                                    {
-                                        //子项数据求和
-                                        var listThisChange = listResult.Where(e => e.CODE == CODE && e.SOURCEVAL == perVal && e.YEAR == listYear[j] && e.MONTH == listMonth[j] && listSubDepID.Contains(e.DEPARTMENT_ID));
-                                        if (listThisChange != null && listThisChange.Any())
-                                        {
-                                            perSubCount = listThisChange.Sum(e => e.COUNT);
-                                        }
-                                    }
-                                    perME.DEPARTMENT_TYPE = (FMDepartmentType)itemD.DEPARTMENT_TYPE;
-                                    perME.NUMD = depNum;
-                                    perME.COUNT = perCount + perCountNot + perSubCount;
-                                    perME.CODE = CODE;
-                                }
-                                break;
-                            case 20://整改率 后续统一计算
-                                break;
-                            default:
-                                break;
-                        }
-                    }
-                }
-
-                int all = 0;//已完成
-                int finish = 0;
-                //计算 放在 最后 隐患整改率    组织 + 年 + 月  (按时+超期 / 按时+超期+未整改隐患)
-                foreach (var itemD in listDep)
-                {
+                    //List> listDicDate = new List>();
+                    List listYear = new List();
+                    List listMonth = new List();
+                    List listDtMin = new List();
+                    DateTime dtTemp = DateTime.Now;
                     for (int i = 0; i < caculate; i++)
                     {
-                        var listDYM = listResult.Where(e => e.DEPARTMENT_ID == itemD.ID && e.YEAR == listYear[i] && e.MONTH == listMonth[i]);
-
-                        finish = 0;
-                        all = listDYM.Sum(e => e.COUNT);//所有总和
-                        if (all > 0)
-                            finish = listDYM.Where(e => e.SOURCEVAL != 15).Sum(e => e.COUNT);//按时+超期 
-
-                        var perME = listResult.FirstOrDefault(e => e.DEPARTMENT_ID == itemD.ID && e.SOURCEVAL == perVal && e.YEAR == listYear[i] && e.MONTH == listMonth[i]);
-                        if (perME == null)
-                        {
-                            perME = GetRiskReason(itemD.DEPARTMENT_TYPE, listYear[i], itemD.ID, Guid.Empty, 4, filter.OrgId, perVal, listMonth[i], CaculateType);//如果没有 就新建对象
-                            listResult.Add(perME);//地址引用 应该是支持
-                        }
-
-                        depNum = 0;
-                        foreach (var item in listDYM)
-                        {
-                            if (depNum != 0)
-                                break;
-                            depNum = item.NUMD;
-                        }
-                        perME.DEPARTMENT_TYPE = (FMDepartmentType)itemD.DEPARTMENT_TYPE;
-                        perME.NUMD = depNum;
-                        perME.COUNT = 0;
-                        perME.CODE = CODE;
-
-                        if (all == 0)
-                            perME.PERCENT = 100;
-                        else if (finish == 0)
-                            perME.PERCENT = 0;
-                        else
-                            perME.PERCENT = (decimal)Math.Round(100.00 * finish / all, 2);
+                        dtTemp = dtMin.AddMonths(i);
+                        listYear.Add(dtTemp.Year);
+                        listMonth.Add(dtTemp.Month);
+                        listDtMin.Add(dtTemp);
                     }
-                }
 
-                //找本次有修改的
-                var UpdateResult = listResult.Where(e => e.CODE == CODE);
-                taskSync.TASK_END_TIME = DateTime.Now;
+                    DateTime dtPerMin = DateTime.Now;
+                    DateTime dtPerMax = DateTime.Now;
 
-                this.UnifiedCommit(() =>
-                {
-                    if (taskSync != null) //跑批信息
+                    //班组
+                    depNum = 0;
+                    var depB = listDep.Where(e => e.DEPARTMENT_TYPE == 2).OrderBy(e => e.NUM);
+                    foreach (var itemD in depB)
+                    {
+                        depNum++;
+                        for (int i = 0; i < enumsCount; i++)//listEnumVal.Count;
+                        {
+                            perVal = listEnumVal[i];  //{ 5, 10, 15, 20 }; { "按时整改隐患", "超期整改隐患", "未整改隐患", "隐患整改率" };
+                            switch (perVal)
+                            {
+                                case 5:
+                                    for (int j = 0; j < caculate; j++)
+                                    {
+                                        var perME = listResult.FirstOrDefault(e => e.DEPARTMENT_ID == itemD.ID && e.SOURCEVAL == perVal && e.YEAR == listYear[j] && e.MONTH == listMonth[j]);
+                                        if (perME == null)
+                                        {
+                                            perME = GetRiskReason(itemD.DEPARTMENT_TYPE, listYear[j], itemD.ID, Guid.Empty, 1, filter.OrgId, perVal, listMonth[j], CaculateType);//如果没有 就新建对象
+                                            listResult.Add(perME);//地址引用 应该是支持
+                                        }
+                                        perCount = dtSubmitContent.Where(e => e.ISFINISHINTTIME.HasValue && e.ISFINISHINTTIME.Value && e.DEPARTMENT_ID.Value == itemD.ID && e.CREATE_TIME.HasValue && e.CREATE_TIME.Value.Year == listYear[j] && e.CREATE_TIME.Value.Month == listMonth[j]).Count();//某组织 年 月 按时整改隐患
+                                        perME.DEPARTMENT_TYPE = (FMDepartmentType)itemD.DEPARTMENT_TYPE;
+                                        perME.NUMD = depNum;
+                                        perME.COUNT = perCount;
+                                        perME.CODE = CODE;
+                                    }
+                                    break;
+                                case 10:
+                                    for (int j = 0; j < caculate; j++)
+                                    {
+                                        var perME = listResult.FirstOrDefault(e => e.DEPARTMENT_ID == itemD.ID && e.SOURCEVAL == perVal && e.YEAR == listYear[j] && e.MONTH == listMonth[j]);
+                                        if (perME == null)
+                                        {
+                                            perME = GetRiskReason(2, listYear[j], itemD.ID, Guid.Empty, 2, filter.OrgId, perVal, listMonth[j], CaculateType);//如果没有 就新建对象
+                                            listResult.Add(perME);//地址引用 应该是支持
+                                        }
+                                        perCount = dtSubmitContent.Where(e => e.ISFINISHINTTIME.HasValue && !e.ISFINISHINTTIME.Value && e.DEPARTMENT_ID.Value == itemD.ID && e.CREATE_TIME.HasValue && e.CREATE_TIME.Value.Year == listYear[j] && e.CREATE_TIME.Value.Month == listMonth[j]).Count();//某组织 年 月 按时整改隐患
+                                        perME.DEPARTMENT_TYPE = FMDepartmentType.班组;
+                                        perME.NUMD = depNum;
+                                        perME.COUNT = perCount;
+                                        perME.CODE = CODE;
+                                    }
+                                    break;
+                                case 15:
+                                    for (int j = 0; j < caculate; j++)
+                                    {
+                                        var perME = listResult.FirstOrDefault(e => e.DEPARTMENT_ID == itemD.ID && e.SOURCEVAL == perVal && e.YEAR == listYear[j] && e.MONTH == listMonth[j]);
+                                        if (perME == null)
+                                        {
+                                            perME = GetRiskReason(2, listYear[j], itemD.ID, Guid.Empty, 3, filter.OrgId, perVal, listMonth[j], CaculateType);//如果没有 就新建对象
+                                            listResult.Add(perME);//地址引用 应该是支持
+                                        }
+                                        perCount = dtSubmitContent.Where(e => !e.ISFINISHINTTIME.HasValue && e.DEPARTMENT_ID.Value == itemD.ID && e.CREATE_TIME.HasValue && e.CREATE_TIME.Value.Year == listYear[j] && e.CREATE_TIME.Value.Month == listMonth[j]).Count();//某组织 年 月 按时整改隐患
+                                        perCountNot = 0;
+                                        if (listCheck != null && listCheck.Any())
+                                        {
+                                            perCountNot = listCheck.Where(e => !e.IS_DELETED && e.DEPARTMENT_ID.HasValue && e.DEPARTMENT_ID.Value == itemD.ID && e.CREATE_TIME.HasValue && e.CREATE_TIME.Value.Year == listYear[j] && e.CREATE_TIME.Value.Month == listMonth[j]).Count();
+                                        }
+
+                                        perME.DEPARTMENT_TYPE = FMDepartmentType.班组;
+                                        perME.NUMD = depNum;
+                                        perME.COUNT = perCount + perCountNot;
+                                        perME.CODE = CODE;
+                                    }
+                                    break;
+                                case 20://整改率 后续统一计算
+                                    break;
+                                default:
+                                    break;
+                            }
+                        }
+                    }
+
+                    //车间
+                    depNum = 0;
+                    var depC = listDep.Where(e => e.DEPARTMENT_TYPE == 1).OrderBy(e => e.NUM);
+                    foreach (var itemD in depC)
+                    {
+                        depNum++;
+                        listSubDepID = listDep.Where(e => e.PARENT_ID.HasValue && e.PARENT_ID.Value == itemD.ID).Select(e => e.ID).ToList();
+                        for (int i = 0; i < enumsCount; i++)//listEnumVal.Count;
+                        {
+                            perVal = listEnumVal[i];  //{ 5, 10, 15, 20 }; { "按时整改隐患", "超期整改隐患", "未整改隐患", "隐患整改率" };
+                            switch (perVal)
+                            {
+                                case 5:
+                                    for (int j = 0; j < caculate; j++)
+                                    {
+                                        var perME = listResult.FirstOrDefault(e => e.DEPARTMENT_ID == itemD.ID && e.SOURCEVAL == perVal && e.YEAR == listYear[j] && e.MONTH == listMonth[j]);
+                                        if (perME == null)
+                                        {
+                                            perME = GetRiskReason(itemD.DEPARTMENT_TYPE, listYear[j], itemD.ID, Guid.Empty, 1, filter.OrgId, perVal, listMonth[j], CaculateType);//如果没有 就新建对象
+                                            listResult.Add(perME);//地址引用 应该是支持
+                                        }
+                                        perCount = dtSubmitContent.Where(e => e.ISFINISHINTTIME.HasValue && e.ISFINISHINTTIME.Value && e.DEPARTMENT_ID.Value == itemD.ID && e.CREATE_TIME.HasValue && e.CREATE_TIME.Value.Year == listYear[j] && e.CREATE_TIME.Value.Month == listMonth[j]).Count();//某组织 年 月 按时整改隐患
+
+                                        perSubCount = 0;//每次清零 后相加
+                                        if (listSubDepID != null && listSubDepID.Any())
+                                        {
+                                            //子项数据求和
+                                            var listThisChange = listResult.Where(e => e.CODE == CODE && e.SOURCEVAL == perVal && e.YEAR == listYear[j] && e.MONTH == listMonth[j] && listSubDepID.Contains(e.DEPARTMENT_ID));
+                                            if (listThisChange != null && listThisChange.Any())
+                                            {
+                                                perSubCount = listThisChange.Sum(e => e.COUNT);
+                                            }
+                                        }
+
+                                        perME.DEPARTMENT_TYPE = (FMDepartmentType)itemD.DEPARTMENT_TYPE;
+                                        perME.NUMD = depNum;
+                                        perME.COUNT = perCount + perSubCount;
+                                        perME.CODE = CODE;
+                                    }
+                                    break;
+                                case 10:
+                                    for (int j = 0; j < caculate; j++)
+                                    {
+                                        var perME = listResult.FirstOrDefault(e => e.DEPARTMENT_ID == itemD.ID && e.SOURCEVAL == perVal && e.YEAR == listYear[j] && e.MONTH == listMonth[j]);
+                                        if (perME == null)
+                                        {
+                                            perME = GetRiskReason(itemD.DEPARTMENT_TYPE, listYear[j], itemD.ID, Guid.Empty, 2, filter.OrgId, perVal, listMonth[j], CaculateType);//如果没有 就新建对象
+                                            listResult.Add(perME);//地址引用 应该是支持
+                                        }
+                                        perCount = dtSubmitContent.Where(e => e.ISFINISHINTTIME.HasValue && !e.ISFINISHINTTIME.Value && e.DEPARTMENT_ID.Value == itemD.ID && e.CREATE_TIME.HasValue && e.CREATE_TIME.Value.Year == listYear[j] && e.CREATE_TIME.Value.Month == listMonth[j]).Count();//某组织 年 月 按时整改隐患
+
+                                        perSubCount = 0;//每次清零 后相加
+                                        if (listSubDepID != null && listSubDepID.Any())
+                                        {
+                                            //子项数据求和
+                                            var listThisChange = listResult.Where(e => e.CODE == CODE && e.SOURCEVAL == perVal && e.YEAR == listYear[j] && e.MONTH == listMonth[j] && listSubDepID.Contains(e.DEPARTMENT_ID));
+                                            if (listThisChange != null && listThisChange.Any())
+                                            {
+                                                perSubCount = listThisChange.Sum(e => e.COUNT);
+                                            }
+                                        }
+
+                                        perME.DEPARTMENT_TYPE = (FMDepartmentType)itemD.DEPARTMENT_TYPE;
+                                        perME.NUMD = depNum;
+                                        perME.COUNT = perCount + perSubCount;
+                                        perME.CODE = CODE;
+                                    }
+                                    break;
+                                case 15:
+                                    for (int j = 0; j < caculate; j++)
+                                    {
+                                        var perME = listResult.FirstOrDefault(e => e.DEPARTMENT_ID == itemD.ID && e.SOURCEVAL == perVal && e.YEAR == listYear[j] && e.MONTH == listMonth[j]);
+                                        if (perME == null)
+                                        {
+                                            perME = GetRiskReason(itemD.DEPARTMENT_TYPE, listYear[j], itemD.ID, Guid.Empty, 3, filter.OrgId, perVal, listMonth[j], CaculateType);//如果没有 就新建对象
+                                            listResult.Add(perME);//地址引用 应该是支持
+                                        }
+                                        perCount = dtSubmitContent.Where(e => !e.ISFINISHINTTIME.HasValue && e.DEPARTMENT_ID.Value == itemD.ID && e.CREATE_TIME.HasValue && e.CREATE_TIME.Value.Year == listYear[j] && e.CREATE_TIME.Value.Month == listMonth[j]).Count();//某组织 年 月 按时整改隐患
+                                        perCountNot = 0;
+                                        if (listCheck != null && listCheck.Any())
+                                        {
+                                            perCountNot = listCheck.Where(e => !e.IS_DELETED && e.DEPARTMENT_ID.HasValue && e.DEPARTMENT_ID.Value == itemD.ID && e.CREATE_TIME.HasValue && e.CREATE_TIME.Value.Year == listYear[j] && e.CREATE_TIME.Value.Month == listMonth[j]).Count();
+                                        }
+
+                                        perSubCount = 0;//每次清零 后相加
+                                        if (listSubDepID != null && listSubDepID.Any())
+                                        {
+                                            //子项数据求和
+                                            var listThisChange = listResult.Where(e => e.CODE == CODE && e.SOURCEVAL == perVal && e.YEAR == listYear[j] && e.MONTH == listMonth[j] && listSubDepID.Contains(e.DEPARTMENT_ID));
+                                            if (listThisChange != null && listThisChange.Any())
+                                            {
+                                                perSubCount = listThisChange.Sum(e => e.COUNT);
+                                            }
+                                        }
+
+                                        perME.DEPARTMENT_TYPE = (FMDepartmentType)itemD.DEPARTMENT_TYPE;
+                                        perME.NUMD = depNum;
+                                        perME.COUNT = perCount + perSubCount + perCountNot;
+                                        perME.CODE = CODE;
+                                    }
+                                    break;
+                                case 20://整改率 后续统一计算
+                                    break;
+                                default:
+                                    break;
+                            }
+                        }
+                    }
+
+                    //部门
+                    depNum = 0;
+                    var depBM = listDep.Where(e => e.DEPARTMENT_TYPE == 0).OrderBy(e => e.NUM);
+                    foreach (var itemD in depBM)
+                    {
+                        depNum++;
+                        listSubDepID = listDep.Where(e => e.PARENT_ID.HasValue && e.PARENT_ID.Value == itemD.ID).Select(e => e.ID).ToList();
+                        for (int i = 0; i < enumsCount; i++)//listEnumVal.Count;
+                        {
+                            perVal = listEnumVal[i];  //{ 5, 10, 15, 20 }; { "按时整改隐患", "超期整改隐患", "未整改隐患", "隐患整改率" };
+                            switch (perVal)
+                            {
+                                case 5:
+                                    for (int j = 0; j < caculate; j++)
+                                    {
+                                        var perME = listResult.FirstOrDefault(e => e.DEPARTMENT_ID == itemD.ID && e.SOURCEVAL == perVal && e.YEAR == listYear[j] && e.MONTH == listMonth[j]);
+                                        if (perME == null)
+                                        {
+                                            perME = GetRiskReason(itemD.DEPARTMENT_TYPE, listYear[j], itemD.ID, Guid.Empty, 1, filter.OrgId, perVal, listMonth[j], CaculateType);//如果没有 就新建对象
+                                            listResult.Add(perME);//地址引用 应该是支持
+                                        }
+                                        perCount = dtSubmitContent.Where(e => e.ISFINISHINTTIME.HasValue && e.ISFINISHINTTIME.Value && e.DEPARTMENT_ID.Value == itemD.ID && e.CREATE_TIME.HasValue && e.CREATE_TIME.Value.Year == listYear[j] && e.CREATE_TIME.Value.Month == listMonth[j]).Count();//某组织 年 月 按时整改隐患
+
+                                        perSubCount = 0;//每次清零 后相加
+                                        if (listSubDepID != null && listSubDepID.Any())
+                                        {
+                                            //子项数据求和
+                                            var listThisChange = listResult.Where(e => e.CODE == CODE && e.SOURCEVAL == perVal && e.YEAR == listYear[j] && e.MONTH == listMonth[j] && listSubDepID.Contains(e.DEPARTMENT_ID));
+                                            if (listThisChange != null && listThisChange.Any())
+                                            {
+                                                perSubCount = listThisChange.Sum(e => e.COUNT);
+                                            }
+                                        }
+
+                                        perME.DEPARTMENT_TYPE = (FMDepartmentType)itemD.DEPARTMENT_TYPE;
+                                        perME.NUMD = depNum;
+                                        perME.COUNT = perCount + perSubCount;
+                                        perME.CODE = CODE;
+                                    }
+                                    break;
+                                case 10:
+                                    for (int j = 0; j < caculate; j++)
+                                    {
+                                        var perME = listResult.FirstOrDefault(e => e.DEPARTMENT_ID == itemD.ID && e.SOURCEVAL == perVal && e.YEAR == listYear[j] && e.MONTH == listMonth[j]);
+                                        if (perME == null)
+                                        {
+                                            perME = GetRiskReason(itemD.DEPARTMENT_TYPE, listYear[j], itemD.ID, Guid.Empty, 2, filter.OrgId, perVal, listMonth[j], CaculateType);//如果没有 就新建对象
+                                            listResult.Add(perME);//地址引用 应该是支持
+                                        }
+                                        perCount = dtSubmitContent.Where(e => e.ISFINISHINTTIME.HasValue && !e.ISFINISHINTTIME.Value && e.DEPARTMENT_ID.Value == itemD.ID && e.CREATE_TIME.HasValue && e.CREATE_TIME.Value.Year == listYear[j] && e.CREATE_TIME.Value.Month == listMonth[j]).Count();//某组织 年 月 按时整改隐患
+
+                                        perSubCount = 0;//每次清零 后相加
+                                        if (listSubDepID != null && listSubDepID.Any())
+                                        {
+                                            //子项数据求和
+                                            var listThisChange = listResult.Where(e => e.CODE == CODE && e.SOURCEVAL == perVal && e.YEAR == listYear[j] && e.MONTH == listMonth[j] && listSubDepID.Contains(e.DEPARTMENT_ID));
+                                            if (listThisChange != null && listThisChange.Any())
+                                            {
+                                                perSubCount = listThisChange.Sum(e => e.COUNT);
+                                            }
+                                        }
+
+                                        perME.DEPARTMENT_TYPE = (FMDepartmentType)itemD.DEPARTMENT_TYPE;
+                                        perME.NUMD = depNum;
+                                        perME.COUNT = perCount + perSubCount;
+                                        perME.CODE = CODE;
+                                    }
+                                    break;
+                                case 15:
+                                    for (int j = 0; j < caculate; j++)
+                                    {
+                                        var perME = listResult.FirstOrDefault(e => e.DEPARTMENT_ID == itemD.ID && e.SOURCEVAL == perVal && e.YEAR == listYear[j] && e.MONTH == listMonth[j]);
+                                        if (perME == null)
+                                        {
+                                            perME = GetRiskReason(itemD.DEPARTMENT_TYPE, listYear[j], itemD.ID, Guid.Empty, 3, filter.OrgId, perVal, listMonth[j], CaculateType);//如果没有 就新建对象
+                                            listResult.Add(perME);//地址引用 应该是支持
+                                        }
+                                        perCount = dtSubmitContent.Where(e => !e.ISFINISHINTTIME.HasValue && e.DEPARTMENT_ID.Value == itemD.ID && e.CREATE_TIME.HasValue && e.CREATE_TIME.Value.Year == listYear[j] && e.CREATE_TIME.Value.Month == listMonth[j]).Count();//某组织 年 月 按时整改隐患
+                                        perCountNot = 0;
+                                        if (listCheck != null && listCheck.Any())
+                                        {
+                                            perCountNot = listCheck.Where(e => !e.IS_DELETED && e.DEPARTMENT_ID.HasValue && e.DEPARTMENT_ID.Value == itemD.ID && e.CREATE_TIME.HasValue && e.CREATE_TIME.Value.Year == listYear[j] && e.CREATE_TIME.Value.Month == listMonth[j]).Count();
+                                        }
+
+                                        perSubCount = 0;//每次清零 后相加
+                                        if (listSubDepID != null && listSubDepID.Any())
+                                        {
+                                            //子项数据求和
+                                            var listThisChange = listResult.Where(e => e.CODE == CODE && e.SOURCEVAL == perVal && e.YEAR == listYear[j] && e.MONTH == listMonth[j] && listSubDepID.Contains(e.DEPARTMENT_ID));
+                                            if (listThisChange != null && listThisChange.Any())
+                                            {
+                                                perSubCount = listThisChange.Sum(e => e.COUNT);
+                                            }
+                                        }
+                                        perME.DEPARTMENT_TYPE = (FMDepartmentType)itemD.DEPARTMENT_TYPE;
+                                        perME.NUMD = depNum;
+                                        perME.COUNT = perCount + perCountNot + perSubCount;
+                                        perME.CODE = CODE;
+                                    }
+                                    break;
+                                case 20://整改率 后续统一计算
+                                    break;
+                                default:
+                                    break;
+                            }
+                        }
+                    }
+
+                    //公司 为了 格式 懒得改  统计所有
+                    depNum = 0;
+                    var depG = listDep.Where(e => e.DEPARTMENT_TYPE == 3 && !e.PARENT_ID.HasValue);
+                    foreach (var itemD in depG)
+                    {
+                        depNum++;
+                        for (int i = 0; i < enumsCount; i++)//listEnumVal.Count;
+                        {
+                            perVal = listEnumVal[i];  //{ 5, 10, 15, 20 }; { "按时整改隐患", "超期整改隐患", "未整改隐患", "隐患整改率" };
+                            switch (perVal)
+                            {
+                                case 5:
+                                    for (int j = 0; j < caculate; j++)
+                                    {
+                                        var perME = listResult.FirstOrDefault(e => e.SOURCEVAL == perVal && e.YEAR == listYear[j] && e.MONTH == listMonth[j] && e.DEPARTMENT_ID == itemD.ID);
+                                        if (perME == null)
+                                        {
+                                            perME = GetRiskReason(itemD.DEPARTMENT_TYPE, listYear[j], itemD.ID, Guid.Empty, 1, filter.OrgId, perVal, listMonth[j], CaculateType);//如果没有 就新建对象
+                                            listResult.Add(perME);//地址引用 应该是支持
+                                        }
+                                        perCount = dtSubmitContent.Where(e => e.ISFINISHINTTIME.HasValue && e.ISFINISHINTTIME.Value && e.CREATE_TIME.HasValue && e.CREATE_TIME.Value.Year == listYear[j] && e.CREATE_TIME.Value.Month == listMonth[j]).Count();//某组织 年 月 按时整改隐患
+                                        perME.DEPARTMENT_TYPE = (FMDepartmentType)itemD.DEPARTMENT_TYPE;
+                                        perME.NUMD = depNum;
+                                        perME.COUNT = perCount;
+                                        perME.CODE = CODE;
+                                    }
+                                    break;
+                                case 10:
+                                    for (int j = 0; j < caculate; j++)
+                                    {
+                                        var perME = listResult.FirstOrDefault(e => e.SOURCEVAL == perVal && e.YEAR == listYear[j] && e.MONTH == listMonth[j] && e.DEPARTMENT_ID == itemD.ID);
+                                        if (perME == null)
+                                        {
+                                            perME = GetRiskReason(itemD.DEPARTMENT_TYPE, listYear[j], itemD.ID, Guid.Empty, 2, filter.OrgId, perVal, listMonth[j], CaculateType);//如果没有 就新建对象
+                                            listResult.Add(perME);//地址引用 应该是支持
+                                        }
+                                        perCount = dtSubmitContent.Where(e => e.ISFINISHINTTIME.HasValue && !e.ISFINISHINTTIME.Value && e.CREATE_TIME.HasValue && e.CREATE_TIME.Value.Year == listYear[j] && e.CREATE_TIME.Value.Month == listMonth[j]).Count();//某组织 年 月 按时整改隐患
+                                        perME.DEPARTMENT_TYPE = (FMDepartmentType)itemD.DEPARTMENT_TYPE;
+                                        perME.NUMD = depNum;
+                                        perME.COUNT = perCount;
+                                        perME.CODE = CODE;
+                                    }
+                                    break;
+                                case 15:
+                                    for (int j = 0; j < caculate; j++)
+                                    {
+                                        var perME = listResult.FirstOrDefault(e => e.SOURCEVAL == perVal && e.YEAR == listYear[j] && e.MONTH == listMonth[j] && e.DEPARTMENT_ID == itemD.ID);
+                                        if (perME == null)
+                                        {
+                                            perME = GetRiskReason(itemD.DEPARTMENT_TYPE, listYear[j], itemD.ID, Guid.Empty, 3, filter.OrgId, perVal, listMonth[j], CaculateType);//如果没有 就新建对象
+                                            listResult.Add(perME);//地址引用 应该是支持
+                                        }
+                                        perCount = dtSubmitContent.Where(e => !e.ISFINISHINTTIME.HasValue && e.CREATE_TIME.HasValue && e.CREATE_TIME.Value.Year == listYear[j] && e.CREATE_TIME.Value.Month == listMonth[j]).Count();//某组织 年 月 按时整改隐患
+                                        perCountNot = 0;
+                                        if (listCheck != null && listCheck.Any())
+                                        {
+                                            perCountNot = listCheck.Where(e => !e.IS_DELETED && e.CREATE_TIME.HasValue && e.CREATE_TIME.Value.Year == listYear[j] && e.CREATE_TIME.Value.Month == listMonth[j]).Count();
+                                        }
+
+                                        perSubCount = 0;//每次清零 后相加
+                                        if (listSubDepID != null && listSubDepID.Any())
+                                        {
+                                            //子项数据求和
+                                            var listThisChange = listResult.Where(e => e.CODE == CODE && e.SOURCEVAL == perVal && e.YEAR == listYear[j] && e.MONTH == listMonth[j] && listSubDepID.Contains(e.DEPARTMENT_ID));
+                                            if (listThisChange != null && listThisChange.Any())
+                                            {
+                                                perSubCount = listThisChange.Sum(e => e.COUNT);
+                                            }
+                                        }
+                                        perME.DEPARTMENT_TYPE = (FMDepartmentType)itemD.DEPARTMENT_TYPE;
+                                        perME.NUMD = depNum;
+                                        perME.COUNT = perCount + perCountNot + perSubCount;
+                                        perME.CODE = CODE;
+                                    }
+                                    break;
+                                case 20://整改率 后续统一计算
+                                    break;
+                                default:
+                                    break;
+                            }
+                        }
+                    }
+
+                    int all = 0;//已完成
+                    int finish = 0;
+                    //计算 放在 最后 隐患整改率    组织 + 年 + 月  (按时+超期 / 按时+超期+未整改隐患)
+                    foreach (var itemD in listDep)
+                    {
+                        for (int i = 0; i < caculate; i++)
+                        {
+                            var listDYM = listResult.Where(e => e.DEPARTMENT_ID == itemD.ID && e.YEAR == listYear[i] && e.MONTH == listMonth[i]);
+
+                            finish = 0;
+                            all = listDYM.Sum(e => e.COUNT);//所有总和
+                            if (all > 0)
+                                finish = listDYM.Where(e => e.SOURCEVAL != 15).Sum(e => e.COUNT);//按时+超期 
+
+                            var perME = listResult.FirstOrDefault(e => e.DEPARTMENT_ID == itemD.ID && e.SOURCEVAL == perVal && e.YEAR == listYear[i] && e.MONTH == listMonth[i]);
+                            if (perME == null)
+                            {
+                                perME = GetRiskReason(itemD.DEPARTMENT_TYPE, listYear[i], itemD.ID, Guid.Empty, 4, filter.OrgId, perVal, listMonth[i], CaculateType);//如果没有 就新建对象
+                                listResult.Add(perME);//地址引用 应该是支持
+                            }
+
+                            depNum = 0;
+                            foreach (var item in listDYM)
+                            {
+                                if (depNum != 0)
+                                    break;
+                                depNum = item.NUMD;
+                            }
+                            perME.DEPARTMENT_TYPE = (FMDepartmentType)itemD.DEPARTMENT_TYPE;
+                            perME.NUMD = depNum;
+                            perME.COUNT = 0;
+                            perME.CODE = CODE;
+
+                            if (all == 0)
+                                perME.PERCENT = 100;
+                            else if (finish == 0)
+                                perME.PERCENT = 0;
+                            else
+                                perME.PERCENT = (decimal)Math.Round(100.00 * finish / all, 2);
+                        }
+                    }
+
+                    //找本次有修改的
+                    var UpdateResult = listResult.Where(e => e.CODE == CODE);
+                    taskSync.TASK_END_TIME = DateTime.Now;
+
+                    this.UnifiedCommit(() =>
+                    {
+                        if (taskSync != null) //跑批信息
                         UpdateEntityNoCommit(taskSync);
-                    if (UpdateResult != null && UpdateResult.Any())
-                        BantchSaveEntityNoCommit(UpdateResult);
-                });
+                        if (UpdateResult != null && UpdateResult.Any())
+                            BantchSaveEntityNoCommit(UpdateResult);
+                    });
+                }
+                catch (Exception ex)
+                {
+                    if (!string.IsNullOrEmpty(ex.StackTrace))
+                        Logger.LogError("错误日志:[StackTrace]" + ex.StackTrace);
+                    else
+                        Logger.LogError("【" + HttpContext.Request.Path + "】错误日志:[Message]" + ex.Message);
+                    Logger.LogError("filter:" + filter.ToJson());
+                }
                 return true;
             });
         }
@@ -2066,318 +2086,329 @@ namespace APT.PP.WebApi.Controllers.Api.PP
         {
             return SafeExecute(() =>
             {
-                int caculate = 6;
-                if (!string.IsNullOrEmpty(filter.Parameter1))
+                try
                 {
-                    try
+                    int caculate = 6;
+                    if (!string.IsNullOrEmpty(filter.Parameter1))
                     {
-                        caculate = int.Parse(filter.Parameter1);  //接收来自页面的参数
-                    }
-                    catch
-                    {
-                        caculate = 6;
-                    }
-                }
-
-                DateTime dtMin = Convert.ToDateTime(DateTime.Now.AddMonths(-1 * (caculate - 1)).ToString("yyyy-MM-01 00:00:00"));
-                //按生产单元区分  安全检查  每种检查的数量
-
-                BaseFilter filterD = new BaseFilter();
-                filterD.SelectField = new List { "ID", "NAME", "DEPARTMENT_TYPE", "PARENT_ID" };
-                var listDep = GetEntities(e => !e.IS_DELETED && e.ENABLE_STATUS == 0, filterD, null);
-
-                if ((listDep == null || !listDep.Any()))
-                {
-                    return true;  //如果 没有部门 或者 为设置隐患原因 一般不会这样
-                }
-
-                BaseFilter filterC = new BaseFilter();
-                filterC.SelectField = new List { "ID", "DEPARTMENTID", "CREATE_TIME", "ENABLE_STATUS", "STATUSPLAN", "CHECK_TYPE_ID" };
-                filterC.IgnoreDataRule = true;
-                //隐患已上报 统计  有没有处理 处理的及时性
-                var dtSafeCheck = GetEntities(e => e.CHECK_TYPE_ID.HasValue && e.DEPARTMENTID.HasValue && e.CREATE_TIME.HasValue && e.ENABLE_STATUS == 0 && e.CREATE_TIME.Value >= dtMin, filterC, null); //&& e.STATUSPLAN > 0
-
-                if ((dtSafeCheck == null || !dtSafeCheck.Any()))
-                {
-                    return true;  //如果没有检查信息
-                }
-
-
-
-                BaseFilter filterCT = new BaseFilter();
-                filterCT.SelectField = new List { "ID", "NAME", "IS_DELETED", "ENABLE_STATUS" };
-                var listCheckTypeAll = GetEntities(null, filterCT, null);//
-
-                if ((listCheckTypeAll == null || !listCheckTypeAll.Any()))
-                {
-                    return true;  //如果没有检查信息
-                }
-
-
-
-                //枚举动态无效 因为要根据枚举值 做搜索
-                string CODE = DateTime.Now.ToString("yyyyMMddHHmmss");
-                //List listEnumVal = new List { 5, 10, 15, 20 };
-                //List listEnumName = new List { "按时整改隐患", "超期整改隐患", "未整改隐患", "隐患整改率" };
-
-                var taskSync = GetEntity(filter.Keyword);//跑批待办
-                if (taskSync.SYNC_PARAM != null)
-                {
-                    taskSync.SYNC_PARAM = "";
-                }
-                taskSync.UPDATE_SUCCES_TIME = DateTime.Now;
-
-                //数据类型 
-                BSCaculateType CaculateType = BSCaculateType.SafeCheck;
-                //组织 各隐患原因 数量 
-
-                //int perVal = 0;
-                Guid perSOURCEID = Guid.Empty;
-                int perCount = 0;//组织对应数量
-                int perSubCount = 0;//组织对应下级数量
-                int depNum = 0;
-                int NUMS = 0;
-                // 子班组 + 本组织 
-                List listSubDepID = new List();
-                var year = dtMin.Year;
-                //更新近期 信息
-                var listResult = GetEntities(e => e.YEAR >= year && e.TYPE == CaculateType, null, null).ToList();
-                //List> listDicDate = new List>();
-
-                List listYear = new List();
-                List listMonth = new List();
-                List listDtMin = new List();
-                DateTime dtTemp = DateTime.Now;
-                for (int i = 0; i < caculate; i++)
-                {
-                    dtTemp = dtMin.AddMonths(i);
-                    listYear.Add(dtTemp.Year);
-                    listMonth.Add(dtTemp.Month);
-                    listDtMin.Add(dtTemp);
-                }
-
-                DateTime dtPerMin = DateTime.Now;
-                DateTime dtPerMax = DateTime.Now;
-
-                T_BS_SAFE_CHECK check = null;
-                //班组
-                depNum = 0;
-                NUMS = 0;
-                Guid GUIDZY = new Guid("2897B8B6-FAC2-432B-8324-0208ADB893A8");
-                var depB = listDep.Where(e => e.DEPARTMENT_TYPE == 2).OrderBy(e => e.NUM);
-                foreach (var itemD in depB)
-                {
-                    depNum++;
-                    foreach (var itemCT in listCheckTypeAll)
-                    {
-                        NUMS++;
-                        perSOURCEID = itemCT.ID;
-                        check = dtSafeCheck.FirstOrDefault(e => e.CHECK_TYPE_ID == perSOURCEID && e.DEPARTMENTID == itemD.ID);
-                        if (check == null)
+                        try
                         {
-                            continue;//如果没数据 就过
+                            caculate = int.Parse(filter.Parameter1);  //接收来自页面的参数
                         }
-                        for (int j = 0; j < caculate; j++)
+                        catch
                         {
-                            var perME = listResult.FirstOrDefault(e => e.DEPARTMENT_ID == itemD.ID && e.SOURCEID == perSOURCEID && e.YEAR == listYear[j] && e.MONTH == listMonth[j]);
-                            if (perME == null)
-                            {
-                                perME = GetRiskReason(itemD.DEPARTMENT_TYPE, listYear[j], itemD.ID, perSOURCEID, NUMS, filter.OrgId, 0, listMonth[j], CaculateType);//如果没有 就新建对象
-                                listResult.Add(perME);//地址引用 应该是支持
-                            }
-                            if (GUIDZY == perME.ID)
-                            {
-
-                            }
-                            perCount = dtSafeCheck.Where(e => e.DEPARTMENTID.Value == itemD.ID && e.CHECK_TYPE_ID.HasValue && e.CHECK_TYPE_ID == perSOURCEID && e.CREATE_TIME.HasValue && e.CREATE_TIME.Value.Year == listYear[j] && e.CREATE_TIME.Value.Month == listMonth[j]).Count();//某组织 年 月 按时整改隐患
-                            perME.DEPARTMENT_TYPE = (FMDepartmentType)itemD.DEPARTMENT_TYPE;
-                            perME.NUMD = depNum;
-                            perME.COUNT = perCount;
-                            perME.CODE = CODE;
+                            caculate = 6;
                         }
                     }
-                }
 
-                //车间
-                depNum = 0;
-                NUMS = 0;
-                var depC = listDep.Where(e => e.DEPARTMENT_TYPE == 1).OrderBy(e => e.NUM);
-                foreach (var itemD in depC)
-                {
-                    depNum++;
-                    listSubDepID = listDep.Where(e => e.PARENT_ID.HasValue && e.PARENT_ID.Value == itemD.ID).Select(e => e.ID).ToList();
+                    DateTime dtMin = Convert.ToDateTime(DateTime.Now.AddMonths(-1 * (caculate - 1)).ToString("yyyy-MM-01 00:00:00"));
+                    //按生产单元区分  安全检查  每种检查的数量
 
-                    foreach (var itemCT in listCheckTypeAll)
+                    BaseFilter filterD = new BaseFilter();
+                    filterD.SelectField = new List { "ID", "NAME", "DEPARTMENT_TYPE", "PARENT_ID" };
+                    var listDep = GetEntities(e => !e.IS_DELETED && e.ENABLE_STATUS == 0, filterD, null);
+
+                    if ((listDep == null || !listDep.Any()))
                     {
-                        NUMS++;
-                        perSOURCEID = itemCT.ID;
-                        check = dtSafeCheck.FirstOrDefault(e => e.CHECK_TYPE_ID == perSOURCEID && e.DEPARTMENTID == itemD.ID);
-                        if (check == null)
+                        return true;  //如果 没有部门 或者 为设置隐患原因 一般不会这样
+                    }
+
+                    BaseFilter filterC = new BaseFilter();
+                    filterC.SelectField = new List { "ID", "DEPARTMENTID", "CREATE_TIME", "ENABLE_STATUS", "STATUSPLAN", "CHECK_TYPE_ID" };
+                    filterC.IgnoreDataRule = true;
+                    //隐患已上报 统计  有没有处理 处理的及时性
+                    var dtSafeCheck = GetEntities(e => e.CHECK_TYPE_ID.HasValue && e.DEPARTMENTID.HasValue && e.CREATE_TIME.HasValue && e.ENABLE_STATUS == 0 && e.CREATE_TIME.Value >= dtMin, filterC, null); //&& e.STATUSPLAN > 0
+
+                    if ((dtSafeCheck == null || !dtSafeCheck.Any()))
+                    {
+                        return true;  //如果没有检查信息
+                    }
+
+
+
+                    BaseFilter filterCT = new BaseFilter();
+                    filterCT.SelectField = new List { "ID", "NAME", "IS_DELETED", "ENABLE_STATUS" };
+                    var listCheckTypeAll = GetEntities(null, filterCT, null);//
+
+                    if ((listCheckTypeAll == null || !listCheckTypeAll.Any()))
+                    {
+                        return true;  //如果没有检查信息
+                    }
+
+
+
+                    //枚举动态无效 因为要根据枚举值 做搜索
+                    string CODE = DateTime.Now.ToString("yyyyMMddHHmmss");
+                    //List listEnumVal = new List { 5, 10, 15, 20 };
+                    //List listEnumName = new List { "按时整改隐患", "超期整改隐患", "未整改隐患", "隐患整改率" };
+
+                    var taskSync = GetEntity(filter.Keyword);//跑批待办
+                    if (taskSync.SYNC_PARAM != null)
+                    {
+                        taskSync.SYNC_PARAM = "";
+                    }
+                    taskSync.UPDATE_SUCCES_TIME = DateTime.Now;
+
+                    //数据类型 
+                    BSCaculateType CaculateType = BSCaculateType.SafeCheck;
+                    //组织 各隐患原因 数量 
+
+                    //int perVal = 0;
+                    Guid perSOURCEID = Guid.Empty;
+                    int perCount = 0;//组织对应数量
+                    int perSubCount = 0;//组织对应下级数量
+                    int depNum = 0;
+                    int NUMS = 0;
+                    // 子班组 + 本组织 
+                    List listSubDepID = new List();
+                    var year = dtMin.Year;
+                    //更新近期 信息
+                    var listResult = GetEntities(e => e.YEAR >= year && e.TYPE == CaculateType, null, null).ToList();
+                    //List> listDicDate = new List>();
+
+                    List listYear = new List();
+                    List listMonth = new List();
+                    List listDtMin = new List();
+                    DateTime dtTemp = DateTime.Now;
+                    for (int i = 0; i < caculate; i++)
+                    {
+                        dtTemp = dtMin.AddMonths(i);
+                        listYear.Add(dtTemp.Year);
+                        listMonth.Add(dtTemp.Month);
+                        listDtMin.Add(dtTemp);
+                    }
+
+                    DateTime dtPerMin = DateTime.Now;
+                    DateTime dtPerMax = DateTime.Now;
+
+                    T_BS_SAFE_CHECK check = null;
+                    //班组
+                    depNum = 0;
+                    NUMS = 0;
+                    Guid GUIDZY = new Guid("2897B8B6-FAC2-432B-8324-0208ADB893A8");
+                    var depB = listDep.Where(e => e.DEPARTMENT_TYPE == 2).OrderBy(e => e.NUM);
+                    foreach (var itemD in depB)
+                    {
+                        depNum++;
+                        foreach (var itemCT in listCheckTypeAll)
                         {
-                            if (listSubDepID != null && listSubDepID.Any())
+                            NUMS++;
+                            perSOURCEID = itemCT.ID;
+                            check = dtSafeCheck.FirstOrDefault(e => e.CHECK_TYPE_ID == perSOURCEID && e.DEPARTMENTID == itemD.ID);
+                            if (check == null)
                             {
-                                check = dtSafeCheck.FirstOrDefault(e => e.CHECK_TYPE_ID == perSOURCEID && listSubDepID.Contains(e.DEPARTMENTID.Value));
-                                if (check == null)
+                                continue;//如果没数据 就过
+                            }
+                            for (int j = 0; j < caculate; j++)
+                            {
+                                var perME = listResult.FirstOrDefault(e => e.DEPARTMENT_ID == itemD.ID && e.SOURCEID == perSOURCEID && e.YEAR == listYear[j] && e.MONTH == listMonth[j]);
+                                if (perME == null)
+                                {
+                                    perME = GetRiskReason(itemD.DEPARTMENT_TYPE, listYear[j], itemD.ID, perSOURCEID, NUMS, filter.OrgId, 0, listMonth[j], CaculateType);//如果没有 就新建对象
+                                    listResult.Add(perME);//地址引用 应该是支持
+                                }
+                                if (GUIDZY == perME.ID)
+                                {
+
+                                }
+                                perCount = dtSafeCheck.Where(e => e.DEPARTMENTID.Value == itemD.ID && e.CHECK_TYPE_ID.HasValue && e.CHECK_TYPE_ID == perSOURCEID && e.CREATE_TIME.HasValue && e.CREATE_TIME.Value.Year == listYear[j] && e.CREATE_TIME.Value.Month == listMonth[j]).Count();//某组织 年 月 按时整改隐患
+                                perME.DEPARTMENT_TYPE = (FMDepartmentType)itemD.DEPARTMENT_TYPE;
+                                perME.NUMD = depNum;
+                                perME.COUNT = perCount;
+                                perME.CODE = CODE;
+                            }
+                        }
+                    }
+
+                    //车间
+                    depNum = 0;
+                    NUMS = 0;
+                    var depC = listDep.Where(e => e.DEPARTMENT_TYPE == 1).OrderBy(e => e.NUM);
+                    foreach (var itemD in depC)
+                    {
+                        depNum++;
+                        listSubDepID = listDep.Where(e => e.PARENT_ID.HasValue && e.PARENT_ID.Value == itemD.ID).Select(e => e.ID).ToList();
+
+                        foreach (var itemCT in listCheckTypeAll)
+                        {
+                            NUMS++;
+                            perSOURCEID = itemCT.ID;
+                            check = dtSafeCheck.FirstOrDefault(e => e.CHECK_TYPE_ID == perSOURCEID && e.DEPARTMENTID == itemD.ID);
+                            if (check == null)
+                            {
+                                if (listSubDepID != null && listSubDepID.Any())
+                                {
+                                    check = dtSafeCheck.FirstOrDefault(e => e.CHECK_TYPE_ID == perSOURCEID && listSubDepID.Contains(e.DEPARTMENTID.Value));
+                                    if (check == null)
+                                    {
+                                        continue;
+                                    }
+                                }
+                                else
                                 {
                                     continue;
                                 }
                             }
-                            else
-                            {
-                                continue;
-                            }
-                        }
 
-                        for (int j = 0; j < caculate; j++)
-                        {
-                            var perME = listResult.FirstOrDefault(e => e.DEPARTMENT_ID == itemD.ID && e.SOURCEID == perSOURCEID && e.YEAR == listYear[j] && e.MONTH == listMonth[j]);
-                            if (perME == null)
+                            for (int j = 0; j < caculate; j++)
                             {
-                                perME = GetRiskReason(itemD.DEPARTMENT_TYPE, listYear[j], itemD.ID, perSOURCEID, NUMS, filter.OrgId, 0, listMonth[j], CaculateType);//如果没有 就新建对象
-                                listResult.Add(perME);//地址引用 应该是支持
-                            }
-                            perCount = dtSafeCheck.Where(e => e.DEPARTMENTID.Value == itemD.ID && e.CHECK_TYPE_ID.HasValue && e.CHECK_TYPE_ID == perSOURCEID && e.CREATE_TIME.HasValue && e.CREATE_TIME.Value.Year == listYear[j] && e.CREATE_TIME.Value.Month == listMonth[j]).Count();//某组织 年 月 按时整改隐患
-
-                            perSubCount = 0;//每次清零 后相加
-                            if (listSubDepID != null && listSubDepID.Any())
-                            {
-                                //子项数据求和
-                                var listThisChange = listResult.Where(e => e.CODE == CODE && e.SOURCEID == perSOURCEID && e.YEAR == listYear[j] && e.MONTH == listMonth[j] && listSubDepID.Contains(e.DEPARTMENT_ID));
-                                if (listThisChange != null && listThisChange.Any())
+                                var perME = listResult.FirstOrDefault(e => e.DEPARTMENT_ID == itemD.ID && e.SOURCEID == perSOURCEID && e.YEAR == listYear[j] && e.MONTH == listMonth[j]);
+                                if (perME == null)
                                 {
-                                    perSubCount = listThisChange.Sum(e => e.COUNT);
+                                    perME = GetRiskReason(itemD.DEPARTMENT_TYPE, listYear[j], itemD.ID, perSOURCEID, NUMS, filter.OrgId, 0, listMonth[j], CaculateType);//如果没有 就新建对象
+                                    listResult.Add(perME);//地址引用 应该是支持
                                 }
-                            }
+                                perCount = dtSafeCheck.Where(e => e.DEPARTMENTID.Value == itemD.ID && e.CHECK_TYPE_ID.HasValue && e.CHECK_TYPE_ID == perSOURCEID && e.CREATE_TIME.HasValue && e.CREATE_TIME.Value.Year == listYear[j] && e.CREATE_TIME.Value.Month == listMonth[j]).Count();//某组织 年 月 按时整改隐患
 
-                            perME.DEPARTMENT_TYPE = (FMDepartmentType)itemD.DEPARTMENT_TYPE;
-                            perME.NUMD = depNum;
-                            perME.COUNT = perCount + perSubCount;
-                            perME.CODE = CODE;
+                                perSubCount = 0;//每次清零 后相加
+                                if (listSubDepID != null && listSubDepID.Any())
+                                {
+                                    //子项数据求和
+                                    var listThisChange = listResult.Where(e => e.CODE == CODE && e.SOURCEID == perSOURCEID && e.YEAR == listYear[j] && e.MONTH == listMonth[j] && listSubDepID.Contains(e.DEPARTMENT_ID));
+                                    if (listThisChange != null && listThisChange.Any())
+                                    {
+                                        perSubCount = listThisChange.Sum(e => e.COUNT);
+                                    }
+                                }
+
+                                perME.DEPARTMENT_TYPE = (FMDepartmentType)itemD.DEPARTMENT_TYPE;
+                                perME.NUMD = depNum;
+                                perME.COUNT = perCount + perSubCount;
+                                perME.CODE = CODE;
+                            }
                         }
                     }
-                }
 
-                //部门
-                depNum = 0;
-                NUMS = 0;
-                var depBM = listDep.Where(e => e.DEPARTMENT_TYPE == 0).OrderBy(e => e.NUM);
-                foreach (var itemD in depBM)
-                {
-                    depNum++;
-                    listSubDepID = listDep.Where(e => e.PARENT_ID.HasValue && e.PARENT_ID.Value == itemD.ID).Select(e => e.ID).ToList();
-                    foreach (var itemCT in listCheckTypeAll)
+                    //部门
+                    depNum = 0;
+                    NUMS = 0;
+                    var depBM = listDep.Where(e => e.DEPARTMENT_TYPE == 0).OrderBy(e => e.NUM);
+                    foreach (var itemD in depBM)
                     {
-                        NUMS++;
-                        perSOURCEID = itemCT.ID;
-                        check = dtSafeCheck.FirstOrDefault(e => e.CHECK_TYPE_ID == perSOURCEID && e.DEPARTMENTID == itemD.ID);
-                        if (check == null)
+                        depNum++;
+                        listSubDepID = listDep.Where(e => e.PARENT_ID.HasValue && e.PARENT_ID.Value == itemD.ID).Select(e => e.ID).ToList();
+                        foreach (var itemCT in listCheckTypeAll)
                         {
-                            if (listSubDepID != null && listSubDepID.Any())
+                            NUMS++;
+                            perSOURCEID = itemCT.ID;
+                            check = dtSafeCheck.FirstOrDefault(e => e.CHECK_TYPE_ID == perSOURCEID && e.DEPARTMENTID == itemD.ID);
+                            if (check == null)
                             {
-                                check = dtSafeCheck.FirstOrDefault(e => e.CHECK_TYPE_ID == perSOURCEID && listSubDepID.Contains(e.DEPARTMENTID.Value));
-                                if (check == null)
+                                if (listSubDepID != null && listSubDepID.Any())
+                                {
+                                    check = dtSafeCheck.FirstOrDefault(e => e.CHECK_TYPE_ID == perSOURCEID && listSubDepID.Contains(e.DEPARTMENTID.Value));
+                                    if (check == null)
+                                    {
+                                        continue;
+                                    }
+                                }
+                                else
                                 {
                                     continue;
                                 }
                             }
-                            else
-                            {
-                                continue;
-                            }
-                        }
 
-                        for (int j = 0; j < caculate; j++)
-                        {
-                            var perME = listResult.FirstOrDefault(e => e.DEPARTMENT_ID == itemD.ID && e.SOURCEID == perSOURCEID && e.YEAR == listYear[j] && e.MONTH == listMonth[j]);
-                            if (perME == null)
+                            for (int j = 0; j < caculate; j++)
                             {
-                                perME = GetRiskReason(itemD.DEPARTMENT_TYPE, listYear[j], itemD.ID, perSOURCEID, NUMS, filter.OrgId, 0, listMonth[j], CaculateType);//如果没有 就新建对象
-                                listResult.Add(perME);//地址引用 应该是支持
-                            }
-                            perCount = dtSafeCheck.Where(e => e.DEPARTMENTID.Value == itemD.ID && e.CHECK_TYPE_ID.HasValue && e.CHECK_TYPE_ID == perSOURCEID && e.CREATE_TIME.HasValue && e.CREATE_TIME.Value.Year == listYear[j] && e.CREATE_TIME.Value.Month == listMonth[j]).Count();//某组织 年 月 按时整改隐患
-
-                            perSubCount = 0;//每次清零 后相加
-                            if (listSubDepID != null && listSubDepID.Any())
-                            {
-                                //子项数据求和
-                                var listThisChange = listResult.Where(e => e.CODE == CODE && e.SOURCEID == perSOURCEID && e.YEAR == listYear[j] && e.MONTH == listMonth[j] && listSubDepID.Contains(e.DEPARTMENT_ID));
-                                if (listThisChange != null && listThisChange.Any())
+                                var perME = listResult.FirstOrDefault(e => e.DEPARTMENT_ID == itemD.ID && e.SOURCEID == perSOURCEID && e.YEAR == listYear[j] && e.MONTH == listMonth[j]);
+                                if (perME == null)
                                 {
-                                    perSubCount = listThisChange.Sum(e => e.COUNT);
+                                    perME = GetRiskReason(itemD.DEPARTMENT_TYPE, listYear[j], itemD.ID, perSOURCEID, NUMS, filter.OrgId, 0, listMonth[j], CaculateType);//如果没有 就新建对象
+                                    listResult.Add(perME);//地址引用 应该是支持
                                 }
-                            }
+                                perCount = dtSafeCheck.Where(e => e.DEPARTMENTID.Value == itemD.ID && e.CHECK_TYPE_ID.HasValue && e.CHECK_TYPE_ID == perSOURCEID && e.CREATE_TIME.HasValue && e.CREATE_TIME.Value.Year == listYear[j] && e.CREATE_TIME.Value.Month == listMonth[j]).Count();//某组织 年 月 按时整改隐患
 
-                            perME.DEPARTMENT_TYPE = (FMDepartmentType)itemD.DEPARTMENT_TYPE;
-                            perME.NUMD = depNum;
-                            perME.COUNT = perCount + perSubCount;
-                            perME.CODE = CODE;
+                                perSubCount = 0;//每次清零 后相加
+                                if (listSubDepID != null && listSubDepID.Any())
+                                {
+                                    //子项数据求和
+                                    var listThisChange = listResult.Where(e => e.CODE == CODE && e.SOURCEID == perSOURCEID && e.YEAR == listYear[j] && e.MONTH == listMonth[j] && listSubDepID.Contains(e.DEPARTMENT_ID));
+                                    if (listThisChange != null && listThisChange.Any())
+                                    {
+                                        perSubCount = listThisChange.Sum(e => e.COUNT);
+                                    }
+                                }
+
+                                perME.DEPARTMENT_TYPE = (FMDepartmentType)itemD.DEPARTMENT_TYPE;
+                                perME.NUMD = depNum;
+                                perME.COUNT = perCount + perSubCount;
+                                perME.CODE = CODE;
+                            }
                         }
                     }
-                }
 
-                //公司 为了 格式 懒得改  统计所有
-                depNum = 0;
-                NUMS = 0;
-                var depG = listDep.Where(e => e.DEPARTMENT_TYPE == 3 && !e.PARENT_ID.HasValue);
-                foreach (var itemD in depG)
-                {
-                    depNum++;
-                    listSubDepID = listDep.Where(e => e.PARENT_ID.HasValue && e.PARENT_ID.Value == itemD.ID).Select(e => e.ID).ToList();
-                    foreach (var itemCT in listCheckTypeAll)
+                    //公司 为了 格式 懒得改  统计所有
+                    depNum = 0;
+                    NUMS = 0;
+                    var depG = listDep.Where(e => e.DEPARTMENT_TYPE == 3 && !e.PARENT_ID.HasValue);
+                    foreach (var itemD in depG)
                     {
-                        NUMS++;
-                        perSOURCEID = itemCT.ID;
-                        check = dtSafeCheck.FirstOrDefault(e => e.CHECK_TYPE_ID == perSOURCEID);
-                        if (check == null)
+                        depNum++;
+                        listSubDepID = listDep.Where(e => e.PARENT_ID.HasValue && e.PARENT_ID.Value == itemD.ID).Select(e => e.ID).ToList();
+                        foreach (var itemCT in listCheckTypeAll)
                         {
-                            if (listSubDepID != null && listSubDepID.Any())
+                            NUMS++;
+                            perSOURCEID = itemCT.ID;
+                            check = dtSafeCheck.FirstOrDefault(e => e.CHECK_TYPE_ID == perSOURCEID);
+                            if (check == null)
                             {
-                                check = dtSafeCheck.FirstOrDefault(e => e.CHECK_TYPE_ID == perSOURCEID && listSubDepID.Contains(e.DEPARTMENTID.Value));
-                                if (check == null)
+                                if (listSubDepID != null && listSubDepID.Any())
+                                {
+                                    check = dtSafeCheck.FirstOrDefault(e => e.CHECK_TYPE_ID == perSOURCEID && listSubDepID.Contains(e.DEPARTMENTID.Value));
+                                    if (check == null)
+                                    {
+                                        continue;
+                                    }
+                                }
+                                else
                                 {
                                     continue;
                                 }
                             }
-                            else
-                            {
-                                continue;
-                            }
-                        }
 
-                        for (int j = 0; j < caculate; j++)
-                        {
-                            var perME = listResult.FirstOrDefault(e => e.SOURCEID == perSOURCEID && e.YEAR == listYear[j] && e.MONTH == listMonth[j] && e.DEPARTMENT_ID == itemD.ID);
-                            if (perME == null)
+                            for (int j = 0; j < caculate; j++)
                             {
-                                perME = GetRiskReason(itemD.DEPARTMENT_TYPE, listYear[j], itemD.ID, perSOURCEID, NUMS, filter.OrgId, 0, listMonth[j], CaculateType);//如果没有 就新建对象
-                                listResult.Add(perME);//地址引用 应该是支持
-                            }
+                                var perME = listResult.FirstOrDefault(e => e.SOURCEID == perSOURCEID && e.YEAR == listYear[j] && e.MONTH == listMonth[j] && e.DEPARTMENT_ID == itemD.ID);
+                                if (perME == null)
+                                {
+                                    perME = GetRiskReason(itemD.DEPARTMENT_TYPE, listYear[j], itemD.ID, perSOURCEID, NUMS, filter.OrgId, 0, listMonth[j], CaculateType);//如果没有 就新建对象
+                                    listResult.Add(perME);//地址引用 应该是支持
+                                }
 
-                            if (GUIDZY == perME.ID)
-                            {
+                                if (GUIDZY == perME.ID)
+                                {
 
+                                }
+                                perCount = dtSafeCheck.Where(e => e.CREATE_TIME.HasValue && e.CHECK_TYPE_ID.HasValue && e.CHECK_TYPE_ID == perSOURCEID && e.CREATE_TIME.Value.Year == listYear[j] && e.CREATE_TIME.Value.Month == listMonth[j]).Count();//某组织 年 月 按时整改隐患
+                                perME.DEPARTMENT_TYPE = (FMDepartmentType)itemD.DEPARTMENT_TYPE;
+                                perME.NUMD = depNum;
+                                perME.COUNT = perCount;
+                                perME.CODE = CODE;
                             }
-                            perCount = dtSafeCheck.Where(e => e.CREATE_TIME.HasValue && e.CHECK_TYPE_ID.HasValue && e.CHECK_TYPE_ID == perSOURCEID && e.CREATE_TIME.Value.Year == listYear[j] && e.CREATE_TIME.Value.Month == listMonth[j]).Count();//某组织 年 月 按时整改隐患
-                            perME.DEPARTMENT_TYPE = (FMDepartmentType)itemD.DEPARTMENT_TYPE;
-                            perME.NUMD = depNum;
-                            perME.COUNT = perCount;
-                            perME.CODE = CODE;
                         }
                     }
+
+                    //找本次有修改的
+                    var UpdateResult = listResult.Where(e => e.CODE == CODE);
+                    taskSync.TASK_END_TIME = DateTime.Now;
+                    var ccc = listResult.Where(e => e.ID == GUIDZY);
+
+                    this.UnifiedCommit(() =>
+                    {
+                        if (taskSync != null) //跑批信息
+                            UpdateEntityNoCommit(taskSync);
+                        if (UpdateResult != null && UpdateResult.Any())
+                            BantchSaveEntityNoCommit(UpdateResult);
+                    });
                 }
-
-                //找本次有修改的
-                var UpdateResult = listResult.Where(e => e.CODE == CODE);
-                taskSync.TASK_END_TIME = DateTime.Now;
-                var ccc = listResult.Where(e => e.ID == GUIDZY);
-
-                this.UnifiedCommit(() =>
+                catch (Exception ex)
                 {
-                    if (taskSync != null) //跑批信息
-                        UpdateEntityNoCommit(taskSync);
-                    if (UpdateResult != null && UpdateResult.Any())
-                        BantchSaveEntityNoCommit(UpdateResult);
-                });
+                    if (!string.IsNullOrEmpty(ex.StackTrace))
+                        Logger.LogError("错误日志:[StackTrace]" + ex.StackTrace);
+                    else
+                        Logger.LogError("【" + HttpContext.Request.Path + "】错误日志:[Message]" + ex.Message);
+                    Logger.LogError("filter:" + filter.ToJson());
+                }
                 return true;
             });
         }
diff --git a/APT.MicroApi/APT.PP.WebApi/Controllers/Api/SCController.cs b/APT.MicroApi/APT.PP.WebApi/Controllers/Api/SCController.cs
index ac7a2ee..bd58e68 100644
--- a/APT.MicroApi/APT.PP.WebApi/Controllers/Api/SCController.cs
+++ b/APT.MicroApi/APT.PP.WebApi/Controllers/Api/SCController.cs
@@ -872,19 +872,19 @@ namespace APT.PP.WebApi.Controllers.Api.PP
 
 
                 bool isChange = false;
-                foreach (var item in listMtBegin)
-                {
-                    switch (item.SOURCETYPE)
-                    {
-                        case SOURCETYPE.EventReport:
+                //foreach (var item in listMtBegin)
+                //{
+                //    switch (item.SOURCETYPE)
+                //    {
+                //        case SOURCETYPE.EventReport:
 
-                            if (!isChange)
-                                isChange = true;
-                            break;
-                        default:
-                            break;
-                    }
-                }
+                //            if (!isChange)
+                //                isChange = true;
+                //            break;
+                //        default:
+                //            break;
+                //    }
+                //}
 
                 #endregion
 
diff --git a/APT.MicroApi/APT.PP.WebApi/Program.cs b/APT.MicroApi/APT.PP.WebApi/Program.cs
index f974213..3f3df01 100644
--- a/APT.MicroApi/APT.PP.WebApi/Program.cs
+++ b/APT.MicroApi/APT.PP.WebApi/Program.cs
@@ -1,6 +1,8 @@
 using Microsoft.AspNetCore;
 using Microsoft.AspNetCore.Hosting;
 using Autofac.Extensions.DependencyInjection;
+using Microsoft.Extensions.Hosting;
+using Serilog;
 
 namespace APT.RB.WebApi
 {
@@ -8,12 +10,27 @@ namespace APT.RB.WebApi
     {
         public static void Main(string[] args)
         {
-            CreateWebHostBuilder(args).Build().Run();
+            Log.Logger = new LoggerConfiguration()
+            .MinimumLevel.Override("Microsoft", Serilog.Events.LogEventLevel.Error)
+            .WriteTo.File("logInfo/log-.txt", rollingInterval: RollingInterval.Month)
+            .CreateLogger();
+            try
+            {
+                CreateWebHostBuilder(args).Build().Run();
+            }
+            catch (System.Exception ex)
+            {
+                Log.Fatal(ex, "Host terminated unexpectedly");
+            }
+            finally
+            {
+                Log.CloseAndFlush();
+            }
         }
 
         public static IWebHostBuilder CreateWebHostBuilder(string[] args) =>
             WebHost.CreateDefaultBuilder(args)
             .ConfigureServices(services => services.AddAutofac())
-            .UseStartup();
+            .UseStartup().UseSerilog();//wyw
     }
 }
diff --git a/APT.MicroApi/APT.SC.WebApi/Controllers/Api/MTController/SCMTMeetingController.cs b/APT.MicroApi/APT.SC.WebApi/Controllers/Api/MTController/SCMTMeetingController.cs
index 18499a4..9f575e0 100644
--- a/APT.MicroApi/APT.SC.WebApi/Controllers/Api/MTController/SCMTMeetingController.cs
+++ b/APT.MicroApi/APT.SC.WebApi/Controllers/Api/MTController/SCMTMeetingController.cs
@@ -26,16 +26,14 @@ namespace APT.SC.WebApi.Controllers.Api.SC
         IFMUserService FMUserService { get; set; }
         IPFApproveCallBackService ApproveCallBackService { get; set; }
         IPFCodeRuleService PFCodeRuleService { get; set; }
-        IPFCodeRuleService CodeRuleService { get; set; }
         IFMNotificationTaskService FMNotificActionTaskService { get; set; }
         IFMNoticeService FMNoticeService { get; set; }
-        public SCMTMeetingController(IFMUserService fMUserService, IFMFlowPermitService mFlowPermitService, IPFApproveCallBackService approveCallBackService, IPFCodeRuleService pFCodeRuleService, IPFCodeRuleService codeRuleService, IFMNotificationTaskService fMNotificActionTaskService, IFMNoticeService noticeService)
+        public SCMTMeetingController(IFMUserService fMUserService, IFMFlowPermitService mFlowPermitService, IPFApproveCallBackService approveCallBackService, IPFCodeRuleService pFCodeRuleService, IFMNotificationTaskService fMNotificActionTaskService, IFMNoticeService noticeService)
         {
             FMUserService = fMUserService;
             MFlowPermitService = mFlowPermitService;
             ApproveCallBackService = approveCallBackService;
             PFCodeRuleService = pFCodeRuleService;
-            CodeRuleService = codeRuleService;
             FMNotificActionTaskService = fMNotificActionTaskService;
             FMNoticeService = noticeService;
         }
@@ -247,6 +245,7 @@ namespace APT.SC.WebApi.Controllers.Api.SC
                 {
                     throw new Exception("请选择会议类型!");
                 }
+
                 if (entity.Nav_Department == null)
                 {
                     entity.Nav_Department = GetEntity(entity.DEPARTMENT_ID);
@@ -695,21 +694,23 @@ namespace APT.SC.WebApi.Controllers.Api.SC
                     }
 
                     if (entity.CREACTTYPE == null)
-                    {
                         entity.CREACTTYPE = CREACTTYPEEnum.UserAdd;
-                    }
+
+                    if (string.IsNullOrEmpty(entity.CODE))
+                        entity.CODE = "HY" + DateTime.Now.ToString("yyyyMMddHHmm");
 
                     #region    判断对接模块 修改 CREACTTYPE == CREACTTYPEEnum.
 
-                    if (entity.CREACTTYPE == CREACTTYPEEnum.System || entity.CREACTTYPE == CREACTTYPEEnum.UserAdd)
+                    if ((entity.CREACTTYPE == CREACTTYPEEnum.System || entity.CREACTTYPE == CREACTTYPEEnum.UserAdd) && !string.IsNullOrEmpty(entity.CONTENT32))
                     {
-                        //非特殊触发
-                        if (!string.IsNullOrEmpty(entity.CONTENT) && entity.CONTENT.Contains(ConnToOther.ToOG034EditName.GetDescription()))
+                        //普通会议、文件审核会、文件评审会 会议内容是选择的 
+                        //安委会、基层安全会  会议内容输入
+                        CREACTTYPEEnum? CREACTTYPE = GetCREACTTYPE(entity.MEETINGTYPE, entity.CONTENT32);//根据会议内容 触发对应表单
+                        if (CREACTTYPE != null)
                         {
-                            entity.CREACTTYPE = CREACTTYPEEnum.ToOG034Edit;
+                            entity.CREACTTYPE = CREACTTYPE;
                         }
                     }
-
                     #endregion
 
                     #region    短信发送
@@ -777,39 +778,14 @@ namespace APT.SC.WebApi.Controllers.Api.SC
 
                     // 审批完 回调方法  SC/SCMTMeeting/MeetingNoticeBack 
 
-                    #region     隔离事务 怕受影响
-
-                    try
-                    {
-                        if (entity.CREACTTYPE == CREACTTYPEEnum.System || entity.CREACTTYPE == CREACTTYPEEnum.UserAdd)
-                        {
-                            if (contentName != null && contentName.Any())
-                            {
-                                var connentName = GetEntity(e => e.NAME == ConnToOther.ToOG034EditName.GetDescription());
-                                if (connentName != null)
-                                {
-                                    var check = contentName.FirstOrDefault(e => e.CONTENTNAME_ID == connentName.ID);
-                                    if (check != null)
-                                    {
-                                        entity.CREACTTYPE = CREACTTYPEEnum.ToOG034Edit;
-                                        this.UnifiedCommit(() =>
-                                        {
-                                            if (entity != null)
-                                                UpdateEntityNoCommit(entity);
-                                        });
-                                    }
-                                }
-                            }
-                        }
-                    }
-                    catch { }
-
-                    #endregion
-
                     if (entity.IS_SEND)
                     {
-                        //短信发送
-                        FMNoticeService.SendMsg(NOTICETYPE.Meeting, entity.ID);
+                        try
+                        {
+                            //短信发送
+                            FMNoticeService.SendMsg(NOTICETYPE.Meeting, entity.ID);
+                        }
+                        catch { }
                     }
                 }
                 else
@@ -821,8 +797,142 @@ namespace APT.SC.WebApi.Controllers.Api.SC
             });
         }
 
+        /// 
+        /// 根据检查内容 返回会议生成方式 
+        /// 
+        /// 
+        /// 
+        /// 
+        private CREACTTYPEEnum? GetCREACTTYPE(SCMEETINGTYPE MEETINGTYPE, string CONTENT)
+        {
+            if (string.IsNullOrEmpty(CONTENT))
+                return null;
+            switch (MEETINGTYPE)
+            {
+                case SCMEETINGTYPE.Ordinary:
+                    if (CONTENT.Contains(ConnToOther.ToOG034EditName.GetDescription()))
+                        return CREACTTYPEEnum.ToOG034Edit;
+                    if (CONTENT.Contains(ConnToOther.安全生产方针讨论.GetDescription()))
+                        return CREACTTYPEEnum.ToPT014;
+                    if (CONTENT.Contains(ConnToOther.认可与奖励评价.GetDescription()))
+                        return CREACTTYPEEnum.ToOG028;
+                    if (CONTENT.Contains(ConnToOther.风险评价小组成立.GetDescription()))
+                        return CREACTTYPEEnum.ToHM134;
+                    if (CONTENT.Contains(ConnToOther.设备设施维修计划讨论.GetDescription()))
+                        return null;
+                    if (CONTENT.Contains(ConnToOther.设备设施维修工作方案讨论.GetDescription()))
+                        return null;
+                    if (CONTENT.Contains(ConnToOther.安全投入论证.GetDescription()))
+                        return null;
+                    if (CONTENT.Contains(ConnToOther.应急机构成立及人员任命.GetDescription()))
+                        return CREACTTYPEEnum.ToOG010;
+                    if (CONTENT.Contains(ConnToOther.成立矿山救护队.GetDescription()))
+                        return null;
+                    if (CONTENT.Contains(ConnToOther.潜在紧急事件讨论.GetDescription()))
+                        return CREACTTYPEEnum.ToCM018;
+                    if (CONTENT.Contains(ConnToOther.应急能力评估.GetDescription()))
+                        return CREACTTYPEEnum.ToCM026;
+                    if (CONTENT.Contains(ConnToOther.应急演练计划讨论.GetDescription()))
+                        return CREACTTYPEEnum.ToCM002;
+                    if (CONTENT.Contains(ConnToOther.应急演练方案讨论.GetDescription()))
+                        return CREACTTYPEEnum.ToWJSH;
 
 
+                    //if (CONTENT.Contains(ConnToOther.事故调查小组成立.GetDescription()))
+                    //    return CREACTTYPEEnum.ToAE006;
+                    //if (CONTENT.Contains(ConnToOther.事故调查讨论.GetDescription()))
+                    //    return CREACTTYPEEnum.ToAE008;
+                    //if (CONTENT.Contains(ConnToOther.调查报告讨论.GetDescription()))
+                    //    return CREACTTYPEEnum.ToAE018;
+
+                    //事故事件与会议关联总体流程
+                    //事故事件上报[AE006] => 审批 => 触发【事故调查小组成立】会议 => 【事故调查小组成员AE008】表单=> 触发【事故调查讨论】会议 => 【勘察记录表 AE018】表单  => 触发【调查报告讨论】会议 => 【事故事件调查结果填报表AE010】
+                    if (CONTENT.Contains(ConnToOther.事故调查小组成立.GetDescription()))
+                        return CREACTTYPEEnum.ToAE008;
+                    if (CONTENT.Contains(ConnToOther.事故调查讨论.GetDescription()))
+                        return CREACTTYPEEnum.ToAE018;
+                    if (CONTENT.Contains(ConnToOther.调查报告讨论.GetDescription()))
+                        return CREACTTYPEEnum.ToAE010;
+
+
+                    if (CONTENT.Contains(ConnToOther.事故事件统计分析.GetDescription()))
+                        return null;
+                    if (CONTENT.Contains(ConnToOther.事故事件回顾.GetDescription()))
+                        return null;
+                    if (CONTENT.Contains(ConnToOther.安全检查表的回顾与更新.GetDescription()))
+                        return CREACTTYPEEnum.ToBS032;
+                    if (CONTENT.Contains(ConnToOther.危险源辨识与风险评价回顾.GetDescription()))
+                        return CREACTTYPEEnum.ToHM062_HM102;
+                    if (CONTENT.Contains(ConnToOther.年度生产作业计划讨论会.GetDescription()))
+                        return CREACTTYPEEnum.ToNotice;
+                    if (CONTENT.Contains(ConnToOther.变化管理讨论.GetDescription()))
+                        return CREACTTYPEEnum.ToPR023;
+
+                    break;
+                case SCMEETINGTYPE.FileAudit:
+
+                    if (CONTENT.Contains(ConnToOther.法律法规更新评审会.GetDescription()))
+                        return CREACTTYPEEnum.ToLR010;
+                    if (CONTENT.Contains(ConnToOther.合理化建议评审会.GetDescription()))
+                        return CREACTTYPEEnum.ToOG060;
+                    if (CONTENT.Contains(ConnToOther.安全标准化评审会.GetDescription()))
+                        return CREACTTYPEEnum.ToPE027;
+                    if (CONTENT.Contains(ConnToOther.尾矿勘察文件评审.GetDescription()))
+                        return CREACTTYPEEnum.ToWJSH;
+                    if (CONTENT.Contains(ConnToOther.尾矿安全评价文件评审.GetDescription()))
+                        return CREACTTYPEEnum.ToWJSH;
+                    if (CONTENT.Contains(ConnToOther.回采勘察文件评审.GetDescription()))
+                        return CREACTTYPEEnum.ToTL014;
+                    if (CONTENT.Contains(ConnToOther.尾矿回采安全预评价文件评审.GetDescription()))
+                        return CREACTTYPEEnum.ToWJSH;
+                    if (CONTENT.Contains(ConnToOther.尾矿闭库安全现状评价文件评审.GetDescription()))
+                        return CREACTTYPEEnum.ToWJSH;
+                    if (CONTENT.Contains(ConnToOther.许可作业范围评审会.GetDescription()))
+                        return CREACTTYPEEnum.ToHM104;
+                    if (CONTENT.Contains(ConnToOther.安全生产责任制评审会.GetDescription()))
+                        return CREACTTYPEEnum.ToOG002;
+                    if (CONTENT.Contains(ConnToOther.尾矿防震技术论证报告评审会.GetDescription()))
+                        return CREACTTYPEEnum.ToWJSH;
+                    break;
+
+                case SCMEETINGTYPE.FileReView:
+                    if (CONTENT.Contains(ConnToOther.安全评价文件审核.GetDescription()))
+                        return CREACTTYPEEnum.ToWJSH;
+                    if (CONTENT.Contains(ConnToOther.设计文件审核_露天矿山选厂.GetDescription()))
+                        return CREACTTYPEEnum.ToPR002;
+                    if (CONTENT.Contains(ConnToOther.应急预案审核.GetDescription()))
+                        return CREACTTYPEEnum.ToSC067;
+                    if (CONTENT.Contains(ConnToOther.勘察文件审核_尾矿.GetDescription()))
+                        return CREACTTYPEEnum.ToWJSH;
+                    if (CONTENT.Contains(ConnToOther.勘察文件审核_露天矿山.GetDescription()))
+                        return CREACTTYPEEnum.ToWJSH;
+                    if (CONTENT.Contains(ConnToOther.设计文件审核_尾矿.GetDescription()))
+                        return CREACTTYPEEnum.ToPR002_2;
+                    if (CONTENT.Contains(ConnToOther.回采勘察文件审核_尾矿.GetDescription()))
+                        return CREACTTYPEEnum.ToWJSH;
+                    if (CONTENT.Contains(ConnToOther.回采安全预评价文件审核_尾矿.GetDescription()))
+                        return CREACTTYPEEnum.ToWJSH;
+                    if (CONTENT.Contains(ConnToOther.回采设计文件审核_尾矿.GetDescription()))
+                        return CREACTTYPEEnum.ToPR002_3;
+                    if (CONTENT.Contains(ConnToOther.闭库安全现状评价文件审核_尾矿.GetDescription()))
+                        return CREACTTYPEEnum.ToWJSH;
+                    if (CONTENT.Contains(ConnToOther.闭库设计文件审核_尾矿.GetDescription()))
+                        return CREACTTYPEEnum.ToPR002_4;
+                    if (CONTENT.Contains(ConnToOther.所有的制度文件审核会.GetDescription()))
+                        return null;
+                    break;
+
+                case SCMEETINGTYPE.SafetyBoard:
+                    break;
+                case SCMEETINGTYPE.BasicSecurity:
+                    break;
+                default:
+                    break;
+            }
+
+            return null;
+        }
+
         /// 
         /// 发送短信
         ///