From f0f1669d2a0262a78d50c28f8c3609e371ff65b9 Mon Sep 17 00:00:00 2001
From: wyw <571921741@qq.com>
Date: Tue, 9 Apr 2024 13:56:33 +0800
Subject: [PATCH] =?UTF-8?q?=E4=BB=A3=E7=A0=81=E5=90=88=E5=B9=B6=20=20T=5FF?=
 =?UTF-8?q?M=5FSYNC=5FLOG=20=E6=B7=BB=E5=8A=A0=20=E6=97=B6=E9=97=B4?=
 =?UTF-8?q?=E9=99=90=E5=88=B6=E6=89=8D=E5=85=A5=E5=BA=93=20log4Net=20?=
 =?UTF-8?q?=E5=B9=B4=E6=9C=88=20=E6=B7=BB=E5=8A=A0=20=E8=B7=91=E6=89=B9=20?=
 =?UTF-8?q?=E9=83=A8=E5=88=86=E6=B7=BB=E5=8A=A0=20try=20catch=20=E8=AE=B0?=
 =?UTF-8?q?=E5=BD=95=E9=94=99=E8=AF=AF=EF=BC=88=E5=A4=A7=E6=A6=82=E7=8E=87?=
 =?UTF-8?q?=E6=AF=94=E8=BE=83=E5=B0=91=E9=94=99=E8=AF=AF=E4=BA=86=E6=87=92?=
 =?UTF-8?q?=E5=BE=97=E5=85=A8=E9=83=A8=E6=B7=BB=E5=8A=A0=E8=BF=87=E6=9D=A5?=
 =?UTF-8?q?=EF=BC=89=20=E9=9A=90=E6=82=A3=E6=95=B4=E6=94=B9=E5=8D=95=20?=
 =?UTF-8?q?=E8=8E=B7=E5=8F=96=E6=95=B0=E6=8D=AE=E6=94=B9=E8=BF=9B=20?=
 =?UTF-8?q?=EF=BC=88=E6=A3=80=E6=9F=A5=E5=BA=93=20=E6=B7=BB=E5=8A=A0=20?=
 =?UTF-8?q?=E6=95=B4=E6=94=B9=E5=8D=95=20=E6=9F=A5=E7=9C=8B=EF=BC=89=20FMF?=
 =?UTF-8?q?lowPermitService=20=E6=B7=BB=E5=8A=A0=20=E8=AE=B0=E5=BD=95?=
 =?UTF-8?q?=E4=BF=A1=E6=81=AF=20=E9=98=B2=E6=AD=A2=20=E5=85=A8=E9=83=A8?=
 =?UTF-8?q?=E6=B3=A8=E5=85=A5=E4=BE=9D=E8=B5=96?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
 .../Services/FM/FMFlowPermitService.cs        |  158 +-
 APT.MS.Data/Mapping/T4/T4Map.cs               |    1 +
 APT.MS.Domain/Entities/BS/T_BS_RISK_SUBMIT.cs |   13 +
 .../Entities/BS/T_BS_RISK_SUBMIT_CONTENT.cs   |    1 +
 .../IServices/BS/IBSOperateLogService.cs      |    7 +-
 .../SC/MEETING/IPFApproveCallBackService.cs   |    2 +-
 .../Services/BS/BSOperateLogService.cs        |    4 +-
 .../Services/SC/MEETING/SCMTMeetingService.cs |    7 +-
 .../Models/APIAttributeActionFilter.cs        |   97 +-
 APT.MicroApi/APT.BD.WebApi/log4net.config     |    2 +-
 .../Api/BSRiskSubmitContentDealController.cs  |   10 +-
 .../Controllers/Api/BSRiskSubmitController.cs |   22 +-
 .../Controllers/Api/BSSafeCheckController.cs  |   24 +-
 .../Models/APIAttributeActionFilter.cs        |  115 +-
 APT.MicroApi/APT.BS.WebApi/Startup.cs         |    1 +
 APT.MicroApi/APT.BS.WebApi/log4net.config     |    2 +-
 .../Models/APIAttributeActionFilter.cs        |   95 +-
 APT.MicroApi/APT.FM.WebApi/log4net.config     |    2 +-
 .../Models/APIAttributeActionFilter.cs        |   95 +-
 APT.MicroApi/APT.FO.WebApi/log4net.config     |    2 +-
 .../Models/APIAttributeActionFilter.cs        |   95 +-
 APT.MicroApi/APT.HM.WebApi/log4net.config     |    2 +-
 .../Models/APIAttributeActionFilter.cs        |   95 +-
 APT.MicroApi/APT.LG.WebApi/log4net.config     |    2 +-
 .../Models/APIAttributeActionFilter.cs        |   95 +-
 APT.MicroApi/APT.NW.WebApi/log4net.config     |    2 +-
 .../Models/APIAttributeActionFilter.cs        |   95 +-
 APT.MicroApi/APT.PF.WebApi/log4net.config     |    2 +-
 .../Controllers/Api/BIAnalysisController.cs   | 5401 +++++++++--------
 .../Controllers/Api/BSController.cs           | 2313 +++----
 .../Controllers/Api/FMController.cs           | 2305 +++----
 .../Models/SimpleAsyncActionFilter.cs         |    8 +-
 APT.MicroApi/APT.PP.WebApi/log4net.config     |    2 +-
 .../APT.SC.WebApi/App_Start/DIConfig.cs       |    1 -
 .../CMAbilityEvaluateController.cs            |   12 +
 .../Api/CMController/CMDrillPlanController.cs |   27 +-
 .../CMController/CMUrgentEventController.cs   |    4 +
 .../Models/APIAttributeActionFilter.cs        |   95 +-
 APT.MicroApi/APT.SC.WebApi/log4net.config     |    2 +-
 APT.MicroApi/APT.UT.WebApi/log4net.config     |    2 +-
 40 files changed, 5907 insertions(+), 5313 deletions(-)
diff --git a/APT.BaseData.Services/Services/FM/FMFlowPermitService.cs b/APT.BaseData.Services/Services/FM/FMFlowPermitService.cs
index 169d254..35ee093 100644
--- a/APT.BaseData.Services/Services/FM/FMFlowPermitService.cs
+++ b/APT.BaseData.Services/Services/FM/FMFlowPermitService.cs
@@ -21,6 +21,7 @@ namespace APT.BaseData.Services.Services.FM
 {
     /// 
     /// 送审后,单据特殊处理
+    /// wyw:此文件如果引入别的service 可能导致整个服务 都要依赖注入(引用依赖)
     /// 
     public class FMFlowPermitService : CommonService, IFMFlowPermitService
     {
@@ -28,16 +29,13 @@ namespace APT.BaseData.Services.Services.FM
         IFMNotificationTaskService NotificationTaskService { get; set; }
         IPFSysLogService SysLogService { get; set; }
         IPFApproveCallBackService ApproveCallBackService { get; set; }
-        IBSOperateLogService BSOperateLogService { get; set; }
-
-        public FMFlowPermitService(IRepository repository, IPFCodeRuleService codeRuleService, IFMNotificationTaskService notificationTaskService, IPFSysLogService sysLogService, IPFApproveCallBackService approveCallBackService, IBSOperateLogService bsOperateLogService)
+        public FMFlowPermitService(IRepository repository, IPFCodeRuleService codeRuleService, IFMNotificationTaskService notificationTaskService, IPFSysLogService sysLogService, IPFApproveCallBackService approveCallBackService)
             : base(repository)
         {
             CodeRuleService = codeRuleService;
             NotificationTaskService = notificationTaskService;
             SysLogService = sysLogService;
             ApproveCallBackService = approveCallBackService;
-            BSOperateLogService = bsOperateLogService;
         }
 
         /// 
@@ -590,7 +588,7 @@ namespace APT.BaseData.Services.Services.FM
                             }
                         }
 
-                        listBSLog = BSOperateLogService.GetListOperateLog(OPERATEPOINT, id, APT.Infrastructure.Api.AppContext.CurrentSession.UserID.Value, null, ListUserID, ListUserName, approve.ORG_ID, null, null);
+                        listBSLog = GetListOperateLog(OPERATEPOINT, id, APT.Infrastructure.Api.AppContext.CurrentSession.UserID.Value, null, ListUserID, ListUserName, approve.ORG_ID, null, null);
                     }
                     catch { }
                 }
@@ -1954,5 +1952,155 @@ namespace APT.BaseData.Services.Services.FM
         //#endregion
 
         //#endregion
+
+
+        #region      方法重复写 如有修改 需同步修改  BSOperateLogService  对应方法
+
+        public List GetListOperateLog(OPERATEPOINT_Enums OPERATEPOINT, Guid DATA_ID, Guid UserIDLogin, List ListDATA_ID, List ListUserID, List ListUserName, Guid? ORG_ID, Guid? DATA_ID_SUB = null, List ListUserIDDone = null, bool isEnd = true)
+        {
+            List listResult = new List();
+            T_BS_OPERATE_LOG modelLogUpdate = null;
+            switch (OPERATEPOINT)
+            {
+                case OPERATEPOINT_Enums.GotCheck:
+                    //系统触发 只是新增
+                    if (ListUserID != null && ListUserName != null)
+                        for (int i = 0; i < ListUserID.Count; i++)
+                            listResult.Add(AddModel(OPERATEPOINT, ListDATA_ID[i], ListUserID[i], ListUserName[i], ORG_ID, i));
+                    break;
+                case OPERATEPOINT_Enums.CheckForm:
+                    //BS032保存并发送 到审批流
+                    modelLogUpdate = GetUpdateDeal(OPERATEPOINT_Enums.GotCheck, DATA_ID, UserIDLogin);
+                    if (modelLogUpdate != null)
+                        listResult.Add(modelLogUpdate);
+                    if (ListUserID != null && ListUserName != null)
+                        for (int i = 0; i < ListUserID.Count; i++)
+                            listResult.Add(AddModel(OPERATEPOINT, DATA_ID, ListUserID[i], ListUserName[i], ORG_ID, i));
+                    break;
+                case OPERATEPOINT_Enums.CheckAudit:
+                    modelLogUpdate = GetUpdateDeal(OPERATEPOINT, DATA_ID, UserIDLogin);//处理自己的待办日志
+                    if (modelLogUpdate != null)
+                        listResult.Add(modelLogUpdate);
+                    if (ListUserID != null && ListUserName != null)
+                        for (int i = 0; i < ListUserID.Count; i++)//最后一个审批人 添加 通知
+                            listResult.Add(AddModel(OPERATEPOINT_Enums.CheckerCheck, DATA_ID, ListUserID[i], ListUserName[i], ORG_ID, i));
+                    break;
+                case OPERATEPOINT_Enums.CheckerCheck:
+                    modelLogUpdate = GetUpdateDeal(OPERATEPOINT, DATA_ID, UserIDLogin);//处理自己的
+                    if (modelLogUpdate != null)
+                        listResult.Add(modelLogUpdate);
+                    break;
+                case OPERATEPOINT_Enums.CheckRegister:
+                    //检查登记
+                    modelLogUpdate = GetUpdateDeal(OPERATEPOINT, DATA_ID, UserIDLogin);//处理自己的
+                    if (modelLogUpdate != null)
+                        listResult.Add(modelLogUpdate);
+                    if (ListUserID != null && ListUserName != null)
+                        for (int i = 0; i < ListUserID.Count; i++) //发起检查结果确认
+                            listResult.Add(AddModel(OPERATEPOINT_Enums.CheckAgree, DATA_ID, ListUserID[i], ListUserName[i], ORG_ID, i));
+                    break;
+                case OPERATEPOINT_Enums.CheckAgree:
+                    modelLogUpdate = GetUpdateDeal(OPERATEPOINT, DATA_ID, UserIDLogin);//处理自己的
+                    if (modelLogUpdate != null)
+                        listResult.Add(modelLogUpdate);
+                    if (ListUserID != null && ListUserName != null)
+                        for (int i = 0; i < ListUserID.Count; i++) //检查结果确认完 直接到审批
+                            listResult.Add(AddModel(OPERATEPOINT_Enums.CheckResultAudit, DATA_ID, ListUserID[i], ListUserName[i], ORG_ID, i));
+                    break;
+                case OPERATEPOINT_Enums.CheckResultAudit:
+                    modelLogUpdate = GetUpdateDeal(OPERATEPOINT, DATA_ID, UserIDLogin);//处理自己的
+                    if (modelLogUpdate != null)
+                        listResult.Add(modelLogUpdate);
+                    if (isEnd) //最后一个审批就归档
+                    {
+                        listResult.Add(AddModel(OPERATEPOINT_Enums.CheckEnd, DATA_ID, UserIDLogin, APT.Infrastructure.Api.AppContext.CurrentSession.UserName, ORG_ID));
+                    }
+                    break;
+                case OPERATEPOINT_Enums.CheckEnd:
+                    //此处没操作
+                    break;
+                case OPERATEPOINT_Enums.RiskNoticeSD:
+                    break;
+                case OPERATEPOINT_Enums.RiskUpSD:
+                    break;
+                case OPERATEPOINT_Enums.RiskInfoCompleteSD:
+                    break;
+                case OPERATEPOINT_Enums.RiskGet:
+                    //审批结束后 如果有隐患 
+                    if (ListUserID != null && ListUserName != null)
+                        for (int i = 0; i < ListUserID.Count; i++)
+                            listResult.Add(AddModel(OPERATEPOINT, DATA_ID, ListUserID[i], ListUserName[i], ORG_ID, i));
+                    break;
+                case OPERATEPOINT_Enums.RiskSend:
+                    break;
+                default:
+                    break;
+            }
+            if (ListUserIDDone != null && ListUserIDDone.Count > 0)
+            {
+                //除了登陆者 需要默认操作的
+                listResult.ForEach(e =>
+                {
+                    if (ListUserIDDone.Contains(e.USER_ID))
+                        e.OPERTETIME = DateTime.Now;
+                });
+            }
+            return listResult;
+        }
+
+
+        /// 
+        /// 获取新记录
+        /// 
+        /// 
+        /// 
+        /// 
+        /// 
+        /// 
+        /// 
+        private T_BS_OPERATE_LOG AddModel(OPERATEPOINT_Enums OPERATEPOINT, Guid DATA_ID, Guid UserID, string UserName, Guid? ORG_ID, int ORDERNO = 0)
+        {
+            T_BS_OPERATE_LOG ModelAdd = new T_BS_OPERATE_LOG()
+            {
+                ID = Guid.NewGuid(),
+                ORG_ID = ORG_ID,
+                LOGTYPE = ((int)OPERATEPOINT) > 80 ? LOGTYPE_Enums.RiskSubmit : LOGTYPE_Enums.SafeCheck,
+                DATA_ID = DATA_ID,
+                //DATA_ID_SUB = null,
+                OPERATEPOINT = OPERATEPOINT,
+                USER_ID = UserID,
+                USRTNAME = UserName,
+                ORDERNO = ORDERNO,
+                //OPERTETIME = null,
+                ISINTTIME = false,
+                CREATE_TIME = DateTime.Now,
+                CREATER_ID = APT.Infrastructure.Api.AppContext.CurrentSession.UserID
+            };
+            if (APT.Infrastructure.Api.AppContext.CurrentSession.UserID.HasValue && APT.Infrastructure.Api.AppContext.CurrentSession.UserID.Value == UserID)
+            {
+                ModelAdd.OPERTETIME = DateTime.Now;//默认通过
+            }
+            return ModelAdd;
+        }
+
+        /// 
+        /// 获取需要修改的Model
+        /// 
+        /// 操作节点
+        /// 
+        /// 
+        /// 
+        /// 
+        private T_BS_OPERATE_LOG GetUpdateDeal(OPERATEPOINT_Enums OPERATEPOINT, Guid DATA_ID, Guid UserID, Guid? DATA_ID_SUB = null)
+        {
+            Expression> expression = e => e.DATA_ID == DATA_ID && e.OPERATEPOINT == OPERATEPOINT && e.USER_ID == UserID;
+            if (DATA_ID_SUB.HasValue)
+                expression = expression.And(e => e.DATA_ID_SUB.HasValue && e.DATA_ID_SUB == DATA_ID_SUB);
+            var model = GetEntity(expression);
+            if (model != null)
+                model.OPERTETIME = DateTime.Now;
+            return model;
+        }
+        #endregion
     }
 }
diff --git a/APT.MS.Data/Mapping/T4/T4Map.cs b/APT.MS.Data/Mapping/T4/T4Map.cs
index 772f2cf..21ad25e 100644
--- a/APT.MS.Data/Mapping/T4/T4Map.cs
+++ b/APT.MS.Data/Mapping/T4/T4Map.cs
@@ -352,6 +352,7 @@ builder.HasOne(t => t.Nav_Department).WithMany().HasForeignKey(t => t.DEPARTMENT
 builder.HasOne(t => t.Nav_ApproveCheckAudit).WithMany().HasForeignKey(t => t.APPROVE_ID).OnDelete(DeleteBehavior.Restrict);
 builder.Ignore(t => t.FORM_CODE);
 builder.Ignore(t => t.IS_OVERTIME);
+builder.Ignore(t => t.CREATE_NAME);
 		} 
      }
 	 #endregion
diff --git a/APT.MS.Domain/Entities/BS/T_BS_RISK_SUBMIT.cs b/APT.MS.Domain/Entities/BS/T_BS_RISK_SUBMIT.cs
index d1b4c48..6ee8281 100644
--- a/APT.MS.Domain/Entities/BS/T_BS_RISK_SUBMIT.cs
+++ b/APT.MS.Domain/Entities/BS/T_BS_RISK_SUBMIT.cs
@@ -207,5 +207,18 @@ namespace APT.MS.Domain.Entities.BS
         public bool? ISFINISHINTTIME { get; set; }
         [DataFieldIngore]
         public int IS_OVERTIME { get; set; }
+
+
+        /// 
+        /// 外界ID(TPM)
+        /// 
+        public Guid? DATAID { get; set; }
+
+        /// 
+        /// 完善人
+        /// 
+        [Description("完善人")]
+        [DataFieldIngore]
+        public string CREATE_NAME { get; set; }
     }
 }
\ No newline at end of file
diff --git a/APT.MS.Domain/Entities/BS/T_BS_RISK_SUBMIT_CONTENT.cs b/APT.MS.Domain/Entities/BS/T_BS_RISK_SUBMIT_CONTENT.cs
index 54fc21c..4cd936e 100644
--- a/APT.MS.Domain/Entities/BS/T_BS_RISK_SUBMIT_CONTENT.cs
+++ b/APT.MS.Domain/Entities/BS/T_BS_RISK_SUBMIT_CONTENT.cs
@@ -13,6 +13,7 @@ namespace APT.MS.Domain.Entities.BS
     /// 隐患上报明细 隐患上报子表(关联检查内容)
     /// 
     [Description("隐患上报明细")]
+    [DataRuleField("DEPARTMENT_ID")]
     public class T_BS_RISK_SUBMIT_CONTENT : MesEntityBase
     {
         /// 
diff --git a/APT.MS.Domain/IServices/BS/IBSOperateLogService.cs b/APT.MS.Domain/IServices/BS/IBSOperateLogService.cs
index 6167bcd..e25767e 100644
--- a/APT.MS.Domain/IServices/BS/IBSOperateLogService.cs
+++ b/APT.MS.Domain/IServices/BS/IBSOperateLogService.cs
@@ -1,11 +1,12 @@
-using APT.MS.Domain.Entities.BS;
+using APT.Infrastructure.Api;
+using APT.MS.Domain.Entities.BS;
 using APT.MS.Domain.Enums;
 using System;
 using System.Collections.Generic;
 
-namespace APT.BaseData.Domain.IServices.BS
+namespace APT.BaseData.Domain.IServices
 {
-    public interface IBSOperateLogService
+    public interface IBSOperateLogService 
     {
         ///   
         /// 直接添加多个操作
diff --git a/APT.MS.Domain/IServices/SC/MEETING/IPFApproveCallBackService.cs b/APT.MS.Domain/IServices/SC/MEETING/IPFApproveCallBackService.cs
index 0ab435b..6115e99 100644
--- a/APT.MS.Domain/IServices/SC/MEETING/IPFApproveCallBackService.cs
+++ b/APT.MS.Domain/IServices/SC/MEETING/IPFApproveCallBackService.cs
@@ -25,6 +25,6 @@ namespace APT.BaseData.Domain.IServices
         /// 
         /// 
         /// 
-        void GetEntityInfo(Guid MEETINGID, string NAME, string THEME, string CODE, Guid? ORG_ID, Guid DEPARTMENT_ID, int? DEPARTMENT_TYPE, Guid USER_ID_ORIGINATOR, CREACTTYPEEnum CREACTTYPE, SCMEETINGTYPE MEETINGTYPE, IEnumerable listUserID, out T_SC_MT_MEETING entity, out List listAllUser);
+        List GetEntityInfo(Guid MEETINGID, string NAME, string THEME, string CODE, Guid? ORG_ID, Guid DEPARTMENT_ID, int? DEPARTMENT_TYPE, Guid USER_ID_ORIGINATOR, CREACTTYPEEnum CREACTTYPE, SCMEETINGTYPE MEETINGTYPE, IEnumerable listUserID, out T_SC_MT_MEETING entity);
     }
 }
diff --git a/APT.MS.Services/Services/BS/BSOperateLogService.cs b/APT.MS.Services/Services/BS/BSOperateLogService.cs
index b667b24..2ca3dea 100644
--- a/APT.MS.Services/Services/BS/BSOperateLogService.cs
+++ b/APT.MS.Services/Services/BS/BSOperateLogService.cs
@@ -16,7 +16,7 @@ using APT.BaseData.Domain.IServices.BS;
 using APT.MS.Domain.Entities.BS;
 
 
-namespace APT.BaseData.Services.Services.BS
+namespace APT.BaseData.Services.DomainServices
 {
     /// 
     /// 安全检查
@@ -185,9 +185,7 @@ namespace APT.BaseData.Services.Services.BS
                 expression = expression.And(e => e.DATA_ID_SUB.HasValue && e.DATA_ID_SUB == DATA_ID_SUB);
             var model = GetEntity(expression);
             if (model != null)
-            {
                 model.OPERTETIME = DateTime.Now;
-            }
             return model;
         }
 
diff --git a/APT.MS.Services/Services/SC/MEETING/SCMTMeetingService.cs b/APT.MS.Services/Services/SC/MEETING/SCMTMeetingService.cs
index bc70e8b..8d56010 100644
--- a/APT.MS.Services/Services/SC/MEETING/SCMTMeetingService.cs
+++ b/APT.MS.Services/Services/SC/MEETING/SCMTMeetingService.cs
@@ -48,13 +48,13 @@ namespace APT.BaseData.Services.DomainServices
         /// 
         /// 
         /// 
-        public void GetEntityInfo(Guid MEETINGID, string NAME, string THEME, string CODE, Guid? ORG_ID, Guid DEPARTMENT_ID, int? DEPARTMENT_TYPE, Guid USER_ID_ORIGINATOR, CREACTTYPEEnum CREACTTYPE, SCMEETINGTYPE MEETINGTYPE, IEnumerable listUserID, out T_SC_MT_MEETING entity, out List listAllUser)
+        public List GetEntityInfo(Guid MEETINGID, string NAME, string THEME, string CODE, Guid? ORG_ID, Guid DEPARTMENT_ID, int? DEPARTMENT_TYPE, Guid USER_ID_ORIGINATOR, CREACTTYPEEnum CREACTTYPE, SCMEETINGTYPE MEETINGTYPE, IEnumerable listUserID, out T_SC_MT_MEETING entity)
         {
-            listAllUser = new List();
+            var listAllUser = new List();
             entity = new T_SC_MT_MEETING();
             if (listUserID == null || !listUserID.Any())
             {
-                return;
+                return listAllUser;
             }
             if (listUserID != null && listUserID.Any())
             {
@@ -119,6 +119,7 @@ namespace APT.BaseData.Services.DomainServices
                 modelUser.PERSONNATURE = PersonNature.JOIN;
                 listAllUser.Add(modelUser);
             }
+            return listAllUser;
         }
     }
 }
diff --git a/APT.MicroApi/APT.BD.WebApi/Models/APIAttributeActionFilter.cs b/APT.MicroApi/APT.BD.WebApi/Models/APIAttributeActionFilter.cs
index efc0869..816c04e 100644
--- a/APT.MicroApi/APT.BD.WebApi/Models/APIAttributeActionFilter.cs
+++ b/APT.MicroApi/APT.BD.WebApi/Models/APIAttributeActionFilter.cs
@@ -65,58 +65,59 @@ namespace APT.WebApi.Models
                         }
                     }
 
-                    var TalSeconds = (DateTime.Now - START_TIME).TotalSeconds;
-                    //if (TalSeconds > 1)
-                    //{
-                    T_FM_SYNC_LOG log = new T_FM_SYNC_LOG()
+                    double TalSeconds = (DateTime.Now - START_TIME).TotalSeconds;
+                    if (TalSeconds > 0.8)
                     {
-                        ID = Guid.NewGuid(),
-                        START_TIME = START_TIME,
-                        END_TIME = DateTime.Now,
-                        API_NAME = context.HttpContext.Request.Path,
-                        DATA_COUNT = 0,
-                        IS_SUCCESS = true,
-                        IS_DELETED = false,
-                        ORG_ID = APT.Infrastructure.Api.AppContext.CurrentSession.OrgId,
-                        ENTITY_ORG_TPYE = 0,
-                        FLOW_STATUS = 0,
-                        FLOW_SEND_STATUS = 0,
-                        //CREATE_TIME = DateTime.Now,
-                        //MODIFY_TIME = DateTime.Now,
-                        TRACEIDENTIFIER = TRACEIDENTIFIER,
-                        TRACEIDENTIFIERED = context.HttpContext.TraceIdentifier,
-                        ISINSERT = false,
-                        LOGTYPE = DataHelper.GetRequestType(context.HttpContext.Request.Headers) == 2 ? SyncLogType.APITimeResponsenAPP : SyncLogType.APITimeResponsen,
-                        //FLOW_ID = ID,
-                        //FORM_ID = ID,
-                        CREATER_ID = APT.Infrastructure.Api.AppContext.CurrentSession.UserID,
-                        //MODIFIER_ID = ID,
-                        //SYNC_PARAM = SYNC_PARAM,
-                        //LOGTYPE = ID,
-                        SYNC_PARAM = TalSeconds.ToString()
-                    };
-
-
-                    Infrastructure.Core.IUnitOfWork UnitOfWork = UserService.UnitWork();
-                    Type TUnitOfWork = UnitOfWork.GetType();
-                    PropertyInfo[] props = TUnitOfWork.GetProperties(BindingFlags.Instance | BindingFlags.Public | BindingFlags.NonPublic);
-                    List listInfo = new List();
-                    TenantInfo tenantInfo = null;
-                    foreach (var prop in props)
-                    {
-                        if (prop.Name == "TenantInfo")
+                        T_FM_SYNC_LOG log = new T_FM_SYNC_LOG()
                         {
-                            var fdsafd = prop.GetValue(UnitOfWork);
-                            tenantInfo = (TenantInfo)fdsafd;
-                            break;
+                            ID = Guid.NewGuid(),
+                            START_TIME = START_TIME,
+                            END_TIME = DateTime.Now,
+                            API_NAME = context.HttpContext.Request.Path,
+                            DATA_COUNT = 0,
+                            IS_SUCCESS = true,
+                            IS_DELETED = false,
+                            ORG_ID = APT.Infrastructure.Api.AppContext.CurrentSession.OrgId,
+                            ENTITY_ORG_TPYE = 0,
+                            FLOW_STATUS = 0,
+                            FLOW_SEND_STATUS = 0,
+                            //CREATE_TIME = DateTime.Now,
+                            //MODIFY_TIME = DateTime.Now,
+                            TRACEIDENTIFIER = TRACEIDENTIFIER,
+                            TRACEIDENTIFIERED = context.HttpContext.TraceIdentifier,
+                            ISINSERT = false,
+                            LOGTYPE = DataHelper.GetRequestType(context.HttpContext.Request.Headers) == 2 ? SyncLogType.APITimeResponsenAPP : SyncLogType.APITimeResponsen,
+                            //FLOW_ID = ID,
+                            //FORM_ID = ID,
+                            CREATER_ID = APT.Infrastructure.Api.AppContext.CurrentSession.UserID,
+                            //MODIFIER_ID = ID,
+                            //SYNC_PARAM = SYNC_PARAM,
+                            //LOGTYPE = ID,
+                            SYNC_PARAM = TalSeconds.ToString()
+                        };
+
+
+                        Infrastructure.Core.IUnitOfWork UnitOfWork = UserService.UnitWork();
+                        Type TUnitOfWork = UnitOfWork.GetType();
+                        PropertyInfo[] props = TUnitOfWork.GetProperties(BindingFlags.Instance | BindingFlags.Public | BindingFlags.NonPublic);
+                        List listInfo = new List();
+                        TenantInfo tenantInfo = null;
+                        foreach (var prop in props)
+                        {
+                            if (prop.Name == "TenantInfo")
+                            {
+                                var fdsafd = prop.GetValue(UnitOfWork);
+                                tenantInfo = (TenantInfo)fdsafd;
+                                break;
+                            }
                         }
-                    }
-                    if (!string.IsNullOrEmpty(tenantInfo.Conn))
-                    {
-                        using (var contextCnn = new MigrationContext(tenantInfo.Conn))
+                        if (!string.IsNullOrEmpty(tenantInfo.Conn))
                         {
-                            contextCnn.AddEntity(log);
-                            contextCnn.SaveChanges();
+                            using (var contextCnn = new MigrationContext(tenantInfo.Conn))
+                            {
+                                contextCnn.AddEntity(log);
+                                contextCnn.SaveChanges();
+                            }
                         }
                     }
                 }
diff --git a/APT.MicroApi/APT.BD.WebApi/log4net.config b/APT.MicroApi/APT.BD.WebApi/log4net.config
index 3164cc4..b3f1a07 100644
--- a/APT.MicroApi/APT.BD.WebApi/log4net.config
+++ b/APT.MicroApi/APT.BD.WebApi/log4net.config
@@ -19,7 +19,7 @@
       
       
       
-      
+      
       
       
       
diff --git a/APT.MicroApi/APT.BS.WebApi/Controllers/Api/BSRiskSubmitContentDealController.cs b/APT.MicroApi/APT.BS.WebApi/Controllers/Api/BSRiskSubmitContentDealController.cs
index 683d7d5..57abc8d 100644
--- a/APT.MicroApi/APT.BS.WebApi/Controllers/Api/BSRiskSubmitContentDealController.cs
+++ b/APT.MicroApi/APT.BS.WebApi/Controllers/Api/BSRiskSubmitContentDealController.cs
@@ -56,11 +56,11 @@ namespace APT.BS.WebApi.Controllers.Api
                     }
                 }
                 filter.Include = Include;
-
-                List filterRules = filter.FilterGroup.Rules.ToList();
-                var guid = new Guid(filterRules[0].Value.ToString());
-                var modelSubConDel = GetEntity(e => e.ID == guid, filter);
-
+                var modelSubConDel = GetEntity(null, filter);
+                if (modelSubConDel == null)
+                {
+                    throw new Exception("获取整改单信息失败!");
+                }
                 List listUserID = new List();
                 if (modelSubConDel.DEAL_USER_ID.HasValue)
                     listUserID.Add(modelSubConDel.DEAL_USER_ID.Value);
diff --git a/APT.MicroApi/APT.BS.WebApi/Controllers/Api/BSRiskSubmitController.cs b/APT.MicroApi/APT.BS.WebApi/Controllers/Api/BSRiskSubmitController.cs
index e750d25..2ac93ec 100644
--- a/APT.MicroApi/APT.BS.WebApi/Controllers/Api/BSRiskSubmitController.cs
+++ b/APT.MicroApi/APT.BS.WebApi/Controllers/Api/BSRiskSubmitController.cs
@@ -4099,6 +4099,21 @@ namespace APT.BS.WebApi.Controllers.Api
                 //Expression> expression = e => !e.IS_DELETED && e.DEPARTMENT_ID.HasValue && departmentIds.Contains(e.DEPARTMENT_ID.Value);
 
                 PagedActionResult orderPageEntities = GetOrderPageEntities(expression, pageFilter, null);
+                if (orderPageEntities.TotalCount > 0)
+                {
+                    var listCreateID = orderPageEntities.Data.Where(e => e.CREATER_ID.HasValue).Select(e => e.CREATER_ID.Value).Distinct();
+                    if (listCreateID != null && listCreateID.Any())
+                    {
+                        var listUser = GetEntities(e => listCreateID.Contains(e.ID), null, null);
+                        foreach (var item in orderPageEntities.Data)
+                        {
+                            if (!item.CREATER_ID.HasValue)
+                                continue;
+                            item.CREATE_NAME = listUser.FirstOrDefault(e => e.ID == item.CREATER_ID.Value)?.NAME;
+                        }
+                    }
+                }
+
                 result.Data = orderPageEntities.Data;
                 result.TotalCount = orderPageEntities.TotalCount;
             });
@@ -4854,8 +4869,9 @@ namespace APT.BS.WebApi.Controllers.Api
                     }
                 }
 
-                BaseFilter filterRiskContent = new BaseFilter();
+                BaseFilter filterRiskContent = new BaseFilter(pageFilter.OrgId);
                 filterRiskContent.SelectField = new List { "ID", "QUESTION_LEVEL", "RISK_AREA_ID", "CHECKCONTENT", "DESCREPTION" };
+                filterRiskContent.IgnoreDataRule = true;
                 var IlistRiskContent = GetEntities(expressionSC, filterRiskContent);
 
                 BaseFilter filterArea = new BaseFilter();
@@ -5579,6 +5595,7 @@ namespace APT.BS.WebApi.Controllers.Api
         #endregion
 
 
+
         #region     隐患上报 新版 
 
 
@@ -6131,6 +6148,9 @@ namespace APT.BS.WebApi.Controllers.Api
                     entity.STARTTIME = task.CREATE_TIME;
                 }
 
+                //记录完善人信息
+                entity.CREATER_ID = APT.Infrastructure.Api.AppContext.CurrentSession.UserID;
+                entity.CREATE_TIME = DateTime.Now;
                 if (entity.SUBMIT_STATUS == (int)BSSubmitStatusEnum.Temp)
                 {
                     this.UnifiedCommit(() =>
diff --git a/APT.MicroApi/APT.BS.WebApi/Controllers/Api/BSSafeCheckController.cs b/APT.MicroApi/APT.BS.WebApi/Controllers/Api/BSSafeCheckController.cs
index e76b7c4..4a79776 100644
--- a/APT.MicroApi/APT.BS.WebApi/Controllers/Api/BSSafeCheckController.cs
+++ b/APT.MicroApi/APT.BS.WebApi/Controllers/Api/BSSafeCheckController.cs
@@ -1879,23 +1879,26 @@ namespace APT.BS.WebApi.Controllers.Api
                         item.Nav_Standard = null;
                     }
                 }
-                if (DataHelper.GetRequestType(HttpContext.Response.Headers) == 2)
+                //var requestType = DataHelper.GetRequestType(HttpContext.Response.Headers);
+                //if (DataHelper.GetRequestType(HttpContext.Response.Headers) == 2)
+                //{
+                if (listDetail != null && listDetail.Count > 0)
                 {
                     foreach (var item in listDetail)
                     {
                         if (item.Nav_SafeCheck != null)
-                        {
                             item.Nav_SafeCheck = null;
-                        }
-                    }
-                    if (listDetailLaw != null && listDetailLaw.Count > 0)
-                    {
-                        foreach (var item in listDetailLaw)
-                        {
-                            item.Nav_Standard = null;
-                        }
                     }
                 }
+                if (listDetailLaw != null && listDetailLaw.Count > 0)
+                {
+                    foreach (var item in listDetailLaw)
+                    {
+                        if (item.Nav_Standard != null)
+                            item.Nav_Standard = null;
+                    }
+                }
+                //}
 
                 if (entity.STATUSPLAN == 0)
                 {
@@ -7285,6 +7288,7 @@ namespace APT.BS.WebApi.Controllers.Api
                         break;
                 }
 
+
                 //var iListCheck = GetEntities(expressionCheck, null, "Nav_Department", "Nav_CheckType", "Nav_CheckTypeLevel.Nav_Enums").Select(e => new T_BS_SAFE_CHECK_SUM()
                 //{
                 //    ID = e.ID.ToString() + "_",
diff --git a/APT.MicroApi/APT.BS.WebApi/Models/APIAttributeActionFilter.cs b/APT.MicroApi/APT.BS.WebApi/Models/APIAttributeActionFilter.cs
index 866a8fd..b7db671 100644
--- a/APT.MicroApi/APT.BS.WebApi/Models/APIAttributeActionFilter.cs
+++ b/APT.MicroApi/APT.BS.WebApi/Models/APIAttributeActionFilter.cs
@@ -45,6 +45,53 @@ namespace APT.WebApi.Models//APT.BS.WebApi.Models
         {
             try
             {
+                #region     操作记录
+
+                //var API_NAME = context.HttpContext.Request.Path;
+                //bool isRecord = false;
+                ////switch (API_NAME)
+                ////{
+                ////    case "":
+                ////        isRecord = true;
+                ////        break;
+                ////    default:
+                ////        break;
+                ////}
+                ////isRecord = true;
+                //if (isRecord)
+                //{
+                //    //避免不需要的反射
+
+                //    //bool? IsSuccessful = null;
+                //    //try
+                //    //{
+                //    //    IsSuccessful = ((APT.Infrastructure.Core.JsonActionResult`1[System.Boolean])((Microsoft.AspNetCore.Mvc.ObjectResult)context.Result).Value).IsSuccessful;
+                //    //}
+                //    //catch { }
+                //    var ResultValue = ((Microsoft.AspNetCore.Mvc.ObjectResult)context.Result).Value;
+                //    Type TResultValue = ResultValue.GetType();
+                //    bool? IsSuccessful = null;
+                //    PropertyInfo[] propsVal = TResultValue.GetProperties(BindingFlags.Instance | BindingFlags.Public | BindingFlags.NonPublic);
+                //    foreach (var prop in propsVal)
+                //    {
+                //        if (prop.Name == "IsSuccessful")
+                //        {
+                //            var fdsafd = prop.GetValue(ResultValue);
+                //            IsSuccessful = (bool)fdsafd;
+                //            break;
+                //        }
+                //    }
+                //    if (IsSuccessful.HasValue && IsSuccessful.Value)
+                //    {
+                //        //执行成功记录操作结果
+
+                //    }
+                //}
+
+                #endregion
+                #region     T_FM_SYNC_LOG 获取
+
+                T_FM_SYNC_LOG log = null;
                 if (context.HttpContext.Items != null && context.HttpContext.Items.ContainsKey("1"))
                 {
                     DateTime START_TIME = DateTime.Now;
@@ -64,37 +111,47 @@ namespace APT.WebApi.Models//APT.BS.WebApi.Models
                         }
                     }
                     double SYNC_PARAM = (DateTime.Now - START_TIME).TotalSeconds;
-                    T_FM_SYNC_LOG log = new T_FM_SYNC_LOG()
+                    if (SYNC_PARAM > 0.8)
                     {
-                        ID = Guid.NewGuid(),
-                        START_TIME = START_TIME,
-                        END_TIME = DateTime.Now,
-                        API_NAME = context.HttpContext.Request.Path,
-                        DATA_COUNT = 0,
-                        IS_SUCCESS = true,
-                        IS_DELETED = false,
-                        ORG_ID = APT.Infrastructure.Api.AppContext.CurrentSession.OrgId,
-                        ENTITY_ORG_TPYE = 0,
-                        FLOW_STATUS = 0,
-                        FLOW_SEND_STATUS = 0,
-                        //CREATE_TIME = DateTime.Now,
-                        //MODIFY_TIME = DateTime.Now,
-                        TRACEIDENTIFIER = TRACEIDENTIFIER,
-                        TRACEIDENTIFIERED = context.HttpContext.TraceIdentifier,
-                        ISINSERT = false,
-                        LOGTYPE = DataHelper.GetRequestType(context.HttpContext.Request.Headers) == 2 ? SyncLogType.APITimeResponsenAPP : SyncLogType.APITimeResponsen,
-                        //FLOW_ID = ID,
-                        //FORM_ID = ID,
-                        CREATER_ID = APT.Infrastructure.Api.AppContext.CurrentSession.UserID,
-                        //MODIFIER_ID = ID,
-                        //SYNC_PARAM = SYNC_PARAM,
-                        //LOGTYPE = ID,
-                        SYNC_PARAM = SYNC_PARAM.ToString()
-                    };
+                        log = new T_FM_SYNC_LOG()
+                        {
+                            ID = Guid.NewGuid(),
+                            START_TIME = START_TIME,
+                            END_TIME = DateTime.Now,
+                            API_NAME = context.HttpContext.Request.Path,
+                            DATA_COUNT = 0,
+                            IS_SUCCESS = true,
+                            IS_DELETED = false,
+                            ORG_ID = APT.Infrastructure.Api.AppContext.CurrentSession.OrgId,
+                            ENTITY_ORG_TPYE = 0,
+                            FLOW_STATUS = 0,
+                            FLOW_SEND_STATUS = 0,
+                            //CREATE_TIME = DateTime.Now,
+                            //MODIFY_TIME = DateTime.Now,
+                            TRACEIDENTIFIER = TRACEIDENTIFIER,
+                            TRACEIDENTIFIERED = context.HttpContext.TraceIdentifier,
+                            ISINSERT = false,
+                            LOGTYPE = DataHelper.GetRequestType(context.HttpContext.Request.Headers) == 2 ? SyncLogType.APITimeResponsenAPP : SyncLogType.APITimeResponsen,
+                            //FLOW_ID = ID,
+                            //FORM_ID = ID,
+                            CREATER_ID = APT.Infrastructure.Api.AppContext.CurrentSession.UserID,
+                            //MODIFIER_ID = ID,
+                            //SYNC_PARAM = SYNC_PARAM,
+                            //LOGTYPE = ID,
+                            SYNC_PARAM = SYNC_PARAM.ToString()
+                        };
 
-                    //var commonService = APT.Infrastructure.Api.ServiceLocator.Instance.GetService();
-                    //commonService.AddEntity(log);
+                        //var commonService = APT.Infrastructure.Api.ServiceLocator.Instance.GetService();
+                        //commonService.AddEntity(log);
 
+                    }
+                }
+
+                #endregion
+                #region    数据库操作
+
+                if (log != null)//增加别的判断 (log != null||(isRecord&& !=null  ))
+                {
                     Infrastructure.Core.IUnitOfWork UnitOfWork = UserService.UnitWork();
                     Type TUnitOfWork = UnitOfWork.GetType();
                     PropertyInfo[] props = TUnitOfWork.GetProperties(BindingFlags.Instance | BindingFlags.Public | BindingFlags.NonPublic);
@@ -118,6 +175,8 @@ namespace APT.WebApi.Models//APT.BS.WebApi.Models
                         }
                     }
                 }
+
+                #endregion
             }
             catch
             {
diff --git a/APT.MicroApi/APT.BS.WebApi/Startup.cs b/APT.MicroApi/APT.BS.WebApi/Startup.cs
index 5d3a004..ae47b47 100644
--- a/APT.MicroApi/APT.BS.WebApi/Startup.cs
+++ b/APT.MicroApi/APT.BS.WebApi/Startup.cs
@@ -99,6 +99,7 @@ namespace APT.BS.WebApi
             services.AddSingleton(HtmlEncoder.Create(UnicodeRanges.All));
             //UpdateDatabase();
             services.RegisterBearAuth();
+            services.AddControllers(o => o.Filters.Add(typeof(APIAttributeActionFilter)));
         }
 
         // This method gets called by the runtime. Use this method to configure the HTTP request pipeline.
diff --git a/APT.MicroApi/APT.BS.WebApi/log4net.config b/APT.MicroApi/APT.BS.WebApi/log4net.config
index 3164cc4..b3f1a07 100644
--- a/APT.MicroApi/APT.BS.WebApi/log4net.config
+++ b/APT.MicroApi/APT.BS.WebApi/log4net.config
@@ -19,7 +19,7 @@
       
       
       
-      
+      
       
       
       
diff --git a/APT.MicroApi/APT.FM.WebApi/Models/APIAttributeActionFilter.cs b/APT.MicroApi/APT.FM.WebApi/Models/APIAttributeActionFilter.cs
index efc0869..59c1096 100644
--- a/APT.MicroApi/APT.FM.WebApi/Models/APIAttributeActionFilter.cs
+++ b/APT.MicroApi/APT.FM.WebApi/Models/APIAttributeActionFilter.cs
@@ -66,57 +66,58 @@ namespace APT.WebApi.Models
                     }
 
                     var TalSeconds = (DateTime.Now - START_TIME).TotalSeconds;
-                    //if (TalSeconds > 1)
-                    //{
-                    T_FM_SYNC_LOG log = new T_FM_SYNC_LOG()
+                    if (TalSeconds > 0.8)
                     {
-                        ID = Guid.NewGuid(),
-                        START_TIME = START_TIME,
-                        END_TIME = DateTime.Now,
-                        API_NAME = context.HttpContext.Request.Path,
-                        DATA_COUNT = 0,
-                        IS_SUCCESS = true,
-                        IS_DELETED = false,
-                        ORG_ID = APT.Infrastructure.Api.AppContext.CurrentSession.OrgId,
-                        ENTITY_ORG_TPYE = 0,
-                        FLOW_STATUS = 0,
-                        FLOW_SEND_STATUS = 0,
-                        //CREATE_TIME = DateTime.Now,
-                        //MODIFY_TIME = DateTime.Now,
-                        TRACEIDENTIFIER = TRACEIDENTIFIER,
-                        TRACEIDENTIFIERED = context.HttpContext.TraceIdentifier,
-                        ISINSERT = false,
-                        LOGTYPE = DataHelper.GetRequestType(context.HttpContext.Request.Headers) == 2 ? SyncLogType.APITimeResponsenAPP : SyncLogType.APITimeResponsen,
-                        //FLOW_ID = ID,
-                        //FORM_ID = ID,
-                        CREATER_ID = APT.Infrastructure.Api.AppContext.CurrentSession.UserID,
-                        //MODIFIER_ID = ID,
-                        //SYNC_PARAM = SYNC_PARAM,
-                        //LOGTYPE = ID,
-                        SYNC_PARAM = TalSeconds.ToString()
-                    };
-
-
-                    Infrastructure.Core.IUnitOfWork UnitOfWork = UserService.UnitWork();
-                    Type TUnitOfWork = UnitOfWork.GetType();
-                    PropertyInfo[] props = TUnitOfWork.GetProperties(BindingFlags.Instance | BindingFlags.Public | BindingFlags.NonPublic);
-                    List listInfo = new List();
-                    TenantInfo tenantInfo = null;
-                    foreach (var prop in props)
-                    {
-                        if (prop.Name == "TenantInfo")
+                        T_FM_SYNC_LOG log = new T_FM_SYNC_LOG()
                         {
-                            var fdsafd = prop.GetValue(UnitOfWork);
-                            tenantInfo = (TenantInfo)fdsafd;
-                            break;
+                            ID = Guid.NewGuid(),
+                            START_TIME = START_TIME,
+                            END_TIME = DateTime.Now,
+                            API_NAME = context.HttpContext.Request.Path,
+                            DATA_COUNT = 0,
+                            IS_SUCCESS = true,
+                            IS_DELETED = false,
+                            ORG_ID = APT.Infrastructure.Api.AppContext.CurrentSession.OrgId,
+                            ENTITY_ORG_TPYE = 0,
+                            FLOW_STATUS = 0,
+                            FLOW_SEND_STATUS = 0,
+                            //CREATE_TIME = DateTime.Now,
+                            //MODIFY_TIME = DateTime.Now,
+                            TRACEIDENTIFIER = TRACEIDENTIFIER,
+                            TRACEIDENTIFIERED = context.HttpContext.TraceIdentifier,
+                            ISINSERT = false,
+                            LOGTYPE = DataHelper.GetRequestType(context.HttpContext.Request.Headers) == 2 ? SyncLogType.APITimeResponsenAPP : SyncLogType.APITimeResponsen,
+                            //FLOW_ID = ID,
+                            //FORM_ID = ID,
+                            CREATER_ID = APT.Infrastructure.Api.AppContext.CurrentSession.UserID,
+                            //MODIFIER_ID = ID,
+                            //SYNC_PARAM = SYNC_PARAM,
+                            //LOGTYPE = ID,
+                            SYNC_PARAM = TalSeconds.ToString()
+                        };
+
+
+                        Infrastructure.Core.IUnitOfWork UnitOfWork = UserService.UnitWork();
+                        Type TUnitOfWork = UnitOfWork.GetType();
+                        PropertyInfo[] props = TUnitOfWork.GetProperties(BindingFlags.Instance | BindingFlags.Public | BindingFlags.NonPublic);
+                        List listInfo = new List();
+                        TenantInfo tenantInfo = null;
+                        foreach (var prop in props)
+                        {
+                            if (prop.Name == "TenantInfo")
+                            {
+                                var fdsafd = prop.GetValue(UnitOfWork);
+                                tenantInfo = (TenantInfo)fdsafd;
+                                break;
+                            }
                         }
-                    }
-                    if (!string.IsNullOrEmpty(tenantInfo.Conn))
-                    {
-                        using (var contextCnn = new MigrationContext(tenantInfo.Conn))
+                        if (!string.IsNullOrEmpty(tenantInfo.Conn))
                         {
-                            contextCnn.AddEntity(log);
-                            contextCnn.SaveChanges();
+                            using (var contextCnn = new MigrationContext(tenantInfo.Conn))
+                            {
+                                contextCnn.AddEntity(log);
+                                contextCnn.SaveChanges();
+                            }
                         }
                     }
                 }
diff --git a/APT.MicroApi/APT.FM.WebApi/log4net.config b/APT.MicroApi/APT.FM.WebApi/log4net.config
index 3164cc4..b3f1a07 100644
--- a/APT.MicroApi/APT.FM.WebApi/log4net.config
+++ b/APT.MicroApi/APT.FM.WebApi/log4net.config
@@ -19,7 +19,7 @@
       
       
       
-      
+      
       
       
       
diff --git a/APT.MicroApi/APT.FO.WebApi/Models/APIAttributeActionFilter.cs b/APT.MicroApi/APT.FO.WebApi/Models/APIAttributeActionFilter.cs
index efc0869..59c1096 100644
--- a/APT.MicroApi/APT.FO.WebApi/Models/APIAttributeActionFilter.cs
+++ b/APT.MicroApi/APT.FO.WebApi/Models/APIAttributeActionFilter.cs
@@ -66,57 +66,58 @@ namespace APT.WebApi.Models
                     }
 
                     var TalSeconds = (DateTime.Now - START_TIME).TotalSeconds;
-                    //if (TalSeconds > 1)
-                    //{
-                    T_FM_SYNC_LOG log = new T_FM_SYNC_LOG()
+                    if (TalSeconds > 0.8)
                     {
-                        ID = Guid.NewGuid(),
-                        START_TIME = START_TIME,
-                        END_TIME = DateTime.Now,
-                        API_NAME = context.HttpContext.Request.Path,
-                        DATA_COUNT = 0,
-                        IS_SUCCESS = true,
-                        IS_DELETED = false,
-                        ORG_ID = APT.Infrastructure.Api.AppContext.CurrentSession.OrgId,
-                        ENTITY_ORG_TPYE = 0,
-                        FLOW_STATUS = 0,
-                        FLOW_SEND_STATUS = 0,
-                        //CREATE_TIME = DateTime.Now,
-                        //MODIFY_TIME = DateTime.Now,
-                        TRACEIDENTIFIER = TRACEIDENTIFIER,
-                        TRACEIDENTIFIERED = context.HttpContext.TraceIdentifier,
-                        ISINSERT = false,
-                        LOGTYPE = DataHelper.GetRequestType(context.HttpContext.Request.Headers) == 2 ? SyncLogType.APITimeResponsenAPP : SyncLogType.APITimeResponsen,
-                        //FLOW_ID = ID,
-                        //FORM_ID = ID,
-                        CREATER_ID = APT.Infrastructure.Api.AppContext.CurrentSession.UserID,
-                        //MODIFIER_ID = ID,
-                        //SYNC_PARAM = SYNC_PARAM,
-                        //LOGTYPE = ID,
-                        SYNC_PARAM = TalSeconds.ToString()
-                    };
-
-
-                    Infrastructure.Core.IUnitOfWork UnitOfWork = UserService.UnitWork();
-                    Type TUnitOfWork = UnitOfWork.GetType();
-                    PropertyInfo[] props = TUnitOfWork.GetProperties(BindingFlags.Instance | BindingFlags.Public | BindingFlags.NonPublic);
-                    List listInfo = new List();
-                    TenantInfo tenantInfo = null;
-                    foreach (var prop in props)
-                    {
-                        if (prop.Name == "TenantInfo")
+                        T_FM_SYNC_LOG log = new T_FM_SYNC_LOG()
                         {
-                            var fdsafd = prop.GetValue(UnitOfWork);
-                            tenantInfo = (TenantInfo)fdsafd;
-                            break;
+                            ID = Guid.NewGuid(),
+                            START_TIME = START_TIME,
+                            END_TIME = DateTime.Now,
+                            API_NAME = context.HttpContext.Request.Path,
+                            DATA_COUNT = 0,
+                            IS_SUCCESS = true,
+                            IS_DELETED = false,
+                            ORG_ID = APT.Infrastructure.Api.AppContext.CurrentSession.OrgId,
+                            ENTITY_ORG_TPYE = 0,
+                            FLOW_STATUS = 0,
+                            FLOW_SEND_STATUS = 0,
+                            //CREATE_TIME = DateTime.Now,
+                            //MODIFY_TIME = DateTime.Now,
+                            TRACEIDENTIFIER = TRACEIDENTIFIER,
+                            TRACEIDENTIFIERED = context.HttpContext.TraceIdentifier,
+                            ISINSERT = false,
+                            LOGTYPE = DataHelper.GetRequestType(context.HttpContext.Request.Headers) == 2 ? SyncLogType.APITimeResponsenAPP : SyncLogType.APITimeResponsen,
+                            //FLOW_ID = ID,
+                            //FORM_ID = ID,
+                            CREATER_ID = APT.Infrastructure.Api.AppContext.CurrentSession.UserID,
+                            //MODIFIER_ID = ID,
+                            //SYNC_PARAM = SYNC_PARAM,
+                            //LOGTYPE = ID,
+                            SYNC_PARAM = TalSeconds.ToString()
+                        };
+
+
+                        Infrastructure.Core.IUnitOfWork UnitOfWork = UserService.UnitWork();
+                        Type TUnitOfWork = UnitOfWork.GetType();
+                        PropertyInfo[] props = TUnitOfWork.GetProperties(BindingFlags.Instance | BindingFlags.Public | BindingFlags.NonPublic);
+                        List listInfo = new List();
+                        TenantInfo tenantInfo = null;
+                        foreach (var prop in props)
+                        {
+                            if (prop.Name == "TenantInfo")
+                            {
+                                var fdsafd = prop.GetValue(UnitOfWork);
+                                tenantInfo = (TenantInfo)fdsafd;
+                                break;
+                            }
                         }
-                    }
-                    if (!string.IsNullOrEmpty(tenantInfo.Conn))
-                    {
-                        using (var contextCnn = new MigrationContext(tenantInfo.Conn))
+                        if (!string.IsNullOrEmpty(tenantInfo.Conn))
                         {
-                            contextCnn.AddEntity(log);
-                            contextCnn.SaveChanges();
+                            using (var contextCnn = new MigrationContext(tenantInfo.Conn))
+                            {
+                                contextCnn.AddEntity(log);
+                                contextCnn.SaveChanges();
+                            }
                         }
                     }
                 }
diff --git a/APT.MicroApi/APT.FO.WebApi/log4net.config b/APT.MicroApi/APT.FO.WebApi/log4net.config
index 3164cc4..b3f1a07 100644
--- a/APT.MicroApi/APT.FO.WebApi/log4net.config
+++ b/APT.MicroApi/APT.FO.WebApi/log4net.config
@@ -19,7 +19,7 @@
       
       
       
-      
+      
       
       
       
diff --git a/APT.MicroApi/APT.HM.WebApi/Models/APIAttributeActionFilter.cs b/APT.MicroApi/APT.HM.WebApi/Models/APIAttributeActionFilter.cs
index efc0869..59c1096 100644
--- a/APT.MicroApi/APT.HM.WebApi/Models/APIAttributeActionFilter.cs
+++ b/APT.MicroApi/APT.HM.WebApi/Models/APIAttributeActionFilter.cs
@@ -66,57 +66,58 @@ namespace APT.WebApi.Models
                     }
 
                     var TalSeconds = (DateTime.Now - START_TIME).TotalSeconds;
-                    //if (TalSeconds > 1)
-                    //{
-                    T_FM_SYNC_LOG log = new T_FM_SYNC_LOG()
+                    if (TalSeconds > 0.8)
                     {
-                        ID = Guid.NewGuid(),
-                        START_TIME = START_TIME,
-                        END_TIME = DateTime.Now,
-                        API_NAME = context.HttpContext.Request.Path,
-                        DATA_COUNT = 0,
-                        IS_SUCCESS = true,
-                        IS_DELETED = false,
-                        ORG_ID = APT.Infrastructure.Api.AppContext.CurrentSession.OrgId,
-                        ENTITY_ORG_TPYE = 0,
-                        FLOW_STATUS = 0,
-                        FLOW_SEND_STATUS = 0,
-                        //CREATE_TIME = DateTime.Now,
-                        //MODIFY_TIME = DateTime.Now,
-                        TRACEIDENTIFIER = TRACEIDENTIFIER,
-                        TRACEIDENTIFIERED = context.HttpContext.TraceIdentifier,
-                        ISINSERT = false,
-                        LOGTYPE = DataHelper.GetRequestType(context.HttpContext.Request.Headers) == 2 ? SyncLogType.APITimeResponsenAPP : SyncLogType.APITimeResponsen,
-                        //FLOW_ID = ID,
-                        //FORM_ID = ID,
-                        CREATER_ID = APT.Infrastructure.Api.AppContext.CurrentSession.UserID,
-                        //MODIFIER_ID = ID,
-                        //SYNC_PARAM = SYNC_PARAM,
-                        //LOGTYPE = ID,
-                        SYNC_PARAM = TalSeconds.ToString()
-                    };
-
-
-                    Infrastructure.Core.IUnitOfWork UnitOfWork = UserService.UnitWork();
-                    Type TUnitOfWork = UnitOfWork.GetType();
-                    PropertyInfo[] props = TUnitOfWork.GetProperties(BindingFlags.Instance | BindingFlags.Public | BindingFlags.NonPublic);
-                    List listInfo = new List();
-                    TenantInfo tenantInfo = null;
-                    foreach (var prop in props)
-                    {
-                        if (prop.Name == "TenantInfo")
+                        T_FM_SYNC_LOG log = new T_FM_SYNC_LOG()
                         {
-                            var fdsafd = prop.GetValue(UnitOfWork);
-                            tenantInfo = (TenantInfo)fdsafd;
-                            break;
+                            ID = Guid.NewGuid(),
+                            START_TIME = START_TIME,
+                            END_TIME = DateTime.Now,
+                            API_NAME = context.HttpContext.Request.Path,
+                            DATA_COUNT = 0,
+                            IS_SUCCESS = true,
+                            IS_DELETED = false,
+                            ORG_ID = APT.Infrastructure.Api.AppContext.CurrentSession.OrgId,
+                            ENTITY_ORG_TPYE = 0,
+                            FLOW_STATUS = 0,
+                            FLOW_SEND_STATUS = 0,
+                            //CREATE_TIME = DateTime.Now,
+                            //MODIFY_TIME = DateTime.Now,
+                            TRACEIDENTIFIER = TRACEIDENTIFIER,
+                            TRACEIDENTIFIERED = context.HttpContext.TraceIdentifier,
+                            ISINSERT = false,
+                            LOGTYPE = DataHelper.GetRequestType(context.HttpContext.Request.Headers) == 2 ? SyncLogType.APITimeResponsenAPP : SyncLogType.APITimeResponsen,
+                            //FLOW_ID = ID,
+                            //FORM_ID = ID,
+                            CREATER_ID = APT.Infrastructure.Api.AppContext.CurrentSession.UserID,
+                            //MODIFIER_ID = ID,
+                            //SYNC_PARAM = SYNC_PARAM,
+                            //LOGTYPE = ID,
+                            SYNC_PARAM = TalSeconds.ToString()
+                        };
+
+
+                        Infrastructure.Core.IUnitOfWork UnitOfWork = UserService.UnitWork();
+                        Type TUnitOfWork = UnitOfWork.GetType();
+                        PropertyInfo[] props = TUnitOfWork.GetProperties(BindingFlags.Instance | BindingFlags.Public | BindingFlags.NonPublic);
+                        List listInfo = new List();
+                        TenantInfo tenantInfo = null;
+                        foreach (var prop in props)
+                        {
+                            if (prop.Name == "TenantInfo")
+                            {
+                                var fdsafd = prop.GetValue(UnitOfWork);
+                                tenantInfo = (TenantInfo)fdsafd;
+                                break;
+                            }
                         }
-                    }
-                    if (!string.IsNullOrEmpty(tenantInfo.Conn))
-                    {
-                        using (var contextCnn = new MigrationContext(tenantInfo.Conn))
+                        if (!string.IsNullOrEmpty(tenantInfo.Conn))
                         {
-                            contextCnn.AddEntity(log);
-                            contextCnn.SaveChanges();
+                            using (var contextCnn = new MigrationContext(tenantInfo.Conn))
+                            {
+                                contextCnn.AddEntity(log);
+                                contextCnn.SaveChanges();
+                            }
                         }
                     }
                 }
diff --git a/APT.MicroApi/APT.HM.WebApi/log4net.config b/APT.MicroApi/APT.HM.WebApi/log4net.config
index 3164cc4..b3f1a07 100644
--- a/APT.MicroApi/APT.HM.WebApi/log4net.config
+++ b/APT.MicroApi/APT.HM.WebApi/log4net.config
@@ -19,7 +19,7 @@
       
       
       
-      
+      
       
       
       
diff --git a/APT.MicroApi/APT.LG.WebApi/Models/APIAttributeActionFilter.cs b/APT.MicroApi/APT.LG.WebApi/Models/APIAttributeActionFilter.cs
index efc0869..59c1096 100644
--- a/APT.MicroApi/APT.LG.WebApi/Models/APIAttributeActionFilter.cs
+++ b/APT.MicroApi/APT.LG.WebApi/Models/APIAttributeActionFilter.cs
@@ -66,57 +66,58 @@ namespace APT.WebApi.Models
                     }
 
                     var TalSeconds = (DateTime.Now - START_TIME).TotalSeconds;
-                    //if (TalSeconds > 1)
-                    //{
-                    T_FM_SYNC_LOG log = new T_FM_SYNC_LOG()
+                    if (TalSeconds > 0.8)
                     {
-                        ID = Guid.NewGuid(),
-                        START_TIME = START_TIME,
-                        END_TIME = DateTime.Now,
-                        API_NAME = context.HttpContext.Request.Path,
-                        DATA_COUNT = 0,
-                        IS_SUCCESS = true,
-                        IS_DELETED = false,
-                        ORG_ID = APT.Infrastructure.Api.AppContext.CurrentSession.OrgId,
-                        ENTITY_ORG_TPYE = 0,
-                        FLOW_STATUS = 0,
-                        FLOW_SEND_STATUS = 0,
-                        //CREATE_TIME = DateTime.Now,
-                        //MODIFY_TIME = DateTime.Now,
-                        TRACEIDENTIFIER = TRACEIDENTIFIER,
-                        TRACEIDENTIFIERED = context.HttpContext.TraceIdentifier,
-                        ISINSERT = false,
-                        LOGTYPE = DataHelper.GetRequestType(context.HttpContext.Request.Headers) == 2 ? SyncLogType.APITimeResponsenAPP : SyncLogType.APITimeResponsen,
-                        //FLOW_ID = ID,
-                        //FORM_ID = ID,
-                        CREATER_ID = APT.Infrastructure.Api.AppContext.CurrentSession.UserID,
-                        //MODIFIER_ID = ID,
-                        //SYNC_PARAM = SYNC_PARAM,
-                        //LOGTYPE = ID,
-                        SYNC_PARAM = TalSeconds.ToString()
-                    };
-
-
-                    Infrastructure.Core.IUnitOfWork UnitOfWork = UserService.UnitWork();
-                    Type TUnitOfWork = UnitOfWork.GetType();
-                    PropertyInfo[] props = TUnitOfWork.GetProperties(BindingFlags.Instance | BindingFlags.Public | BindingFlags.NonPublic);
-                    List listInfo = new List();
-                    TenantInfo tenantInfo = null;
-                    foreach (var prop in props)
-                    {
-                        if (prop.Name == "TenantInfo")
+                        T_FM_SYNC_LOG log = new T_FM_SYNC_LOG()
                         {
-                            var fdsafd = prop.GetValue(UnitOfWork);
-                            tenantInfo = (TenantInfo)fdsafd;
-                            break;
+                            ID = Guid.NewGuid(),
+                            START_TIME = START_TIME,
+                            END_TIME = DateTime.Now,
+                            API_NAME = context.HttpContext.Request.Path,
+                            DATA_COUNT = 0,
+                            IS_SUCCESS = true,
+                            IS_DELETED = false,
+                            ORG_ID = APT.Infrastructure.Api.AppContext.CurrentSession.OrgId,
+                            ENTITY_ORG_TPYE = 0,
+                            FLOW_STATUS = 0,
+                            FLOW_SEND_STATUS = 0,
+                            //CREATE_TIME = DateTime.Now,
+                            //MODIFY_TIME = DateTime.Now,
+                            TRACEIDENTIFIER = TRACEIDENTIFIER,
+                            TRACEIDENTIFIERED = context.HttpContext.TraceIdentifier,
+                            ISINSERT = false,
+                            LOGTYPE = DataHelper.GetRequestType(context.HttpContext.Request.Headers) == 2 ? SyncLogType.APITimeResponsenAPP : SyncLogType.APITimeResponsen,
+                            //FLOW_ID = ID,
+                            //FORM_ID = ID,
+                            CREATER_ID = APT.Infrastructure.Api.AppContext.CurrentSession.UserID,
+                            //MODIFIER_ID = ID,
+                            //SYNC_PARAM = SYNC_PARAM,
+                            //LOGTYPE = ID,
+                            SYNC_PARAM = TalSeconds.ToString()
+                        };
+
+
+                        Infrastructure.Core.IUnitOfWork UnitOfWork = UserService.UnitWork();
+                        Type TUnitOfWork = UnitOfWork.GetType();
+                        PropertyInfo[] props = TUnitOfWork.GetProperties(BindingFlags.Instance | BindingFlags.Public | BindingFlags.NonPublic);
+                        List listInfo = new List();
+                        TenantInfo tenantInfo = null;
+                        foreach (var prop in props)
+                        {
+                            if (prop.Name == "TenantInfo")
+                            {
+                                var fdsafd = prop.GetValue(UnitOfWork);
+                                tenantInfo = (TenantInfo)fdsafd;
+                                break;
+                            }
                         }
-                    }
-                    if (!string.IsNullOrEmpty(tenantInfo.Conn))
-                    {
-                        using (var contextCnn = new MigrationContext(tenantInfo.Conn))
+                        if (!string.IsNullOrEmpty(tenantInfo.Conn))
                         {
-                            contextCnn.AddEntity(log);
-                            contextCnn.SaveChanges();
+                            using (var contextCnn = new MigrationContext(tenantInfo.Conn))
+                            {
+                                contextCnn.AddEntity(log);
+                                contextCnn.SaveChanges();
+                            }
                         }
                     }
                 }
diff --git a/APT.MicroApi/APT.LG.WebApi/log4net.config b/APT.MicroApi/APT.LG.WebApi/log4net.config
index 3164cc4..b3f1a07 100644
--- a/APT.MicroApi/APT.LG.WebApi/log4net.config
+++ b/APT.MicroApi/APT.LG.WebApi/log4net.config
@@ -19,7 +19,7 @@
       
       
       
-      
+      
       
       
       
diff --git a/APT.MicroApi/APT.NW.WebApi/Models/APIAttributeActionFilter.cs b/APT.MicroApi/APT.NW.WebApi/Models/APIAttributeActionFilter.cs
index efc0869..59c1096 100644
--- a/APT.MicroApi/APT.NW.WebApi/Models/APIAttributeActionFilter.cs
+++ b/APT.MicroApi/APT.NW.WebApi/Models/APIAttributeActionFilter.cs
@@ -66,57 +66,58 @@ namespace APT.WebApi.Models
                     }
 
                     var TalSeconds = (DateTime.Now - START_TIME).TotalSeconds;
-                    //if (TalSeconds > 1)
-                    //{
-                    T_FM_SYNC_LOG log = new T_FM_SYNC_LOG()
+                    if (TalSeconds > 0.8)
                     {
-                        ID = Guid.NewGuid(),
-                        START_TIME = START_TIME,
-                        END_TIME = DateTime.Now,
-                        API_NAME = context.HttpContext.Request.Path,
-                        DATA_COUNT = 0,
-                        IS_SUCCESS = true,
-                        IS_DELETED = false,
-                        ORG_ID = APT.Infrastructure.Api.AppContext.CurrentSession.OrgId,
-                        ENTITY_ORG_TPYE = 0,
-                        FLOW_STATUS = 0,
-                        FLOW_SEND_STATUS = 0,
-                        //CREATE_TIME = DateTime.Now,
-                        //MODIFY_TIME = DateTime.Now,
-                        TRACEIDENTIFIER = TRACEIDENTIFIER,
-                        TRACEIDENTIFIERED = context.HttpContext.TraceIdentifier,
-                        ISINSERT = false,
-                        LOGTYPE = DataHelper.GetRequestType(context.HttpContext.Request.Headers) == 2 ? SyncLogType.APITimeResponsenAPP : SyncLogType.APITimeResponsen,
-                        //FLOW_ID = ID,
-                        //FORM_ID = ID,
-                        CREATER_ID = APT.Infrastructure.Api.AppContext.CurrentSession.UserID,
-                        //MODIFIER_ID = ID,
-                        //SYNC_PARAM = SYNC_PARAM,
-                        //LOGTYPE = ID,
-                        SYNC_PARAM = TalSeconds.ToString()
-                    };
-
-
-                    Infrastructure.Core.IUnitOfWork UnitOfWork = UserService.UnitWork();
-                    Type TUnitOfWork = UnitOfWork.GetType();
-                    PropertyInfo[] props = TUnitOfWork.GetProperties(BindingFlags.Instance | BindingFlags.Public | BindingFlags.NonPublic);
-                    List listInfo = new List();
-                    TenantInfo tenantInfo = null;
-                    foreach (var prop in props)
-                    {
-                        if (prop.Name == "TenantInfo")
+                        T_FM_SYNC_LOG log = new T_FM_SYNC_LOG()
                         {
-                            var fdsafd = prop.GetValue(UnitOfWork);
-                            tenantInfo = (TenantInfo)fdsafd;
-                            break;
+                            ID = Guid.NewGuid(),
+                            START_TIME = START_TIME,
+                            END_TIME = DateTime.Now,
+                            API_NAME = context.HttpContext.Request.Path,
+                            DATA_COUNT = 0,
+                            IS_SUCCESS = true,
+                            IS_DELETED = false,
+                            ORG_ID = APT.Infrastructure.Api.AppContext.CurrentSession.OrgId,
+                            ENTITY_ORG_TPYE = 0,
+                            FLOW_STATUS = 0,
+                            FLOW_SEND_STATUS = 0,
+                            //CREATE_TIME = DateTime.Now,
+                            //MODIFY_TIME = DateTime.Now,
+                            TRACEIDENTIFIER = TRACEIDENTIFIER,
+                            TRACEIDENTIFIERED = context.HttpContext.TraceIdentifier,
+                            ISINSERT = false,
+                            LOGTYPE = DataHelper.GetRequestType(context.HttpContext.Request.Headers) == 2 ? SyncLogType.APITimeResponsenAPP : SyncLogType.APITimeResponsen,
+                            //FLOW_ID = ID,
+                            //FORM_ID = ID,
+                            CREATER_ID = APT.Infrastructure.Api.AppContext.CurrentSession.UserID,
+                            //MODIFIER_ID = ID,
+                            //SYNC_PARAM = SYNC_PARAM,
+                            //LOGTYPE = ID,
+                            SYNC_PARAM = TalSeconds.ToString()
+                        };
+
+
+                        Infrastructure.Core.IUnitOfWork UnitOfWork = UserService.UnitWork();
+                        Type TUnitOfWork = UnitOfWork.GetType();
+                        PropertyInfo[] props = TUnitOfWork.GetProperties(BindingFlags.Instance | BindingFlags.Public | BindingFlags.NonPublic);
+                        List listInfo = new List();
+                        TenantInfo tenantInfo = null;
+                        foreach (var prop in props)
+                        {
+                            if (prop.Name == "TenantInfo")
+                            {
+                                var fdsafd = prop.GetValue(UnitOfWork);
+                                tenantInfo = (TenantInfo)fdsafd;
+                                break;
+                            }
                         }
-                    }
-                    if (!string.IsNullOrEmpty(tenantInfo.Conn))
-                    {
-                        using (var contextCnn = new MigrationContext(tenantInfo.Conn))
+                        if (!string.IsNullOrEmpty(tenantInfo.Conn))
                         {
-                            contextCnn.AddEntity(log);
-                            contextCnn.SaveChanges();
+                            using (var contextCnn = new MigrationContext(tenantInfo.Conn))
+                            {
+                                contextCnn.AddEntity(log);
+                                contextCnn.SaveChanges();
+                            }
                         }
                     }
                 }
diff --git a/APT.MicroApi/APT.NW.WebApi/log4net.config b/APT.MicroApi/APT.NW.WebApi/log4net.config
index 3164cc4..b3f1a07 100644
--- a/APT.MicroApi/APT.NW.WebApi/log4net.config
+++ b/APT.MicroApi/APT.NW.WebApi/log4net.config
@@ -19,7 +19,7 @@
       
       
       
-      
+      
       
       
       
diff --git a/APT.MicroApi/APT.PF.WebApi/Models/APIAttributeActionFilter.cs b/APT.MicroApi/APT.PF.WebApi/Models/APIAttributeActionFilter.cs
index efc0869..59c1096 100644
--- a/APT.MicroApi/APT.PF.WebApi/Models/APIAttributeActionFilter.cs
+++ b/APT.MicroApi/APT.PF.WebApi/Models/APIAttributeActionFilter.cs
@@ -66,57 +66,58 @@ namespace APT.WebApi.Models
                     }
 
                     var TalSeconds = (DateTime.Now - START_TIME).TotalSeconds;
-                    //if (TalSeconds > 1)
-                    //{
-                    T_FM_SYNC_LOG log = new T_FM_SYNC_LOG()
+                    if (TalSeconds > 0.8)
                     {
-                        ID = Guid.NewGuid(),
-                        START_TIME = START_TIME,
-                        END_TIME = DateTime.Now,
-                        API_NAME = context.HttpContext.Request.Path,
-                        DATA_COUNT = 0,
-                        IS_SUCCESS = true,
-                        IS_DELETED = false,
-                        ORG_ID = APT.Infrastructure.Api.AppContext.CurrentSession.OrgId,
-                        ENTITY_ORG_TPYE = 0,
-                        FLOW_STATUS = 0,
-                        FLOW_SEND_STATUS = 0,
-                        //CREATE_TIME = DateTime.Now,
-                        //MODIFY_TIME = DateTime.Now,
-                        TRACEIDENTIFIER = TRACEIDENTIFIER,
-                        TRACEIDENTIFIERED = context.HttpContext.TraceIdentifier,
-                        ISINSERT = false,
-                        LOGTYPE = DataHelper.GetRequestType(context.HttpContext.Request.Headers) == 2 ? SyncLogType.APITimeResponsenAPP : SyncLogType.APITimeResponsen,
-                        //FLOW_ID = ID,
-                        //FORM_ID = ID,
-                        CREATER_ID = APT.Infrastructure.Api.AppContext.CurrentSession.UserID,
-                        //MODIFIER_ID = ID,
-                        //SYNC_PARAM = SYNC_PARAM,
-                        //LOGTYPE = ID,
-                        SYNC_PARAM = TalSeconds.ToString()
-                    };
-
-
-                    Infrastructure.Core.IUnitOfWork UnitOfWork = UserService.UnitWork();
-                    Type TUnitOfWork = UnitOfWork.GetType();
-                    PropertyInfo[] props = TUnitOfWork.GetProperties(BindingFlags.Instance | BindingFlags.Public | BindingFlags.NonPublic);
-                    List listInfo = new List();
-                    TenantInfo tenantInfo = null;
-                    foreach (var prop in props)
-                    {
-                        if (prop.Name == "TenantInfo")
+                        T_FM_SYNC_LOG log = new T_FM_SYNC_LOG()
                         {
-                            var fdsafd = prop.GetValue(UnitOfWork);
-                            tenantInfo = (TenantInfo)fdsafd;
-                            break;
+                            ID = Guid.NewGuid(),
+                            START_TIME = START_TIME,
+                            END_TIME = DateTime.Now,
+                            API_NAME = context.HttpContext.Request.Path,
+                            DATA_COUNT = 0,
+                            IS_SUCCESS = true,
+                            IS_DELETED = false,
+                            ORG_ID = APT.Infrastructure.Api.AppContext.CurrentSession.OrgId,
+                            ENTITY_ORG_TPYE = 0,
+                            FLOW_STATUS = 0,
+                            FLOW_SEND_STATUS = 0,
+                            //CREATE_TIME = DateTime.Now,
+                            //MODIFY_TIME = DateTime.Now,
+                            TRACEIDENTIFIER = TRACEIDENTIFIER,
+                            TRACEIDENTIFIERED = context.HttpContext.TraceIdentifier,
+                            ISINSERT = false,
+                            LOGTYPE = DataHelper.GetRequestType(context.HttpContext.Request.Headers) == 2 ? SyncLogType.APITimeResponsenAPP : SyncLogType.APITimeResponsen,
+                            //FLOW_ID = ID,
+                            //FORM_ID = ID,
+                            CREATER_ID = APT.Infrastructure.Api.AppContext.CurrentSession.UserID,
+                            //MODIFIER_ID = ID,
+                            //SYNC_PARAM = SYNC_PARAM,
+                            //LOGTYPE = ID,
+                            SYNC_PARAM = TalSeconds.ToString()
+                        };
+
+
+                        Infrastructure.Core.IUnitOfWork UnitOfWork = UserService.UnitWork();
+                        Type TUnitOfWork = UnitOfWork.GetType();
+                        PropertyInfo[] props = TUnitOfWork.GetProperties(BindingFlags.Instance | BindingFlags.Public | BindingFlags.NonPublic);
+                        List listInfo = new List();
+                        TenantInfo tenantInfo = null;
+                        foreach (var prop in props)
+                        {
+                            if (prop.Name == "TenantInfo")
+                            {
+                                var fdsafd = prop.GetValue(UnitOfWork);
+                                tenantInfo = (TenantInfo)fdsafd;
+                                break;
+                            }
                         }
-                    }
-                    if (!string.IsNullOrEmpty(tenantInfo.Conn))
-                    {
-                        using (var contextCnn = new MigrationContext(tenantInfo.Conn))
+                        if (!string.IsNullOrEmpty(tenantInfo.Conn))
                         {
-                            contextCnn.AddEntity(log);
-                            contextCnn.SaveChanges();
+                            using (var contextCnn = new MigrationContext(tenantInfo.Conn))
+                            {
+                                contextCnn.AddEntity(log);
+                                contextCnn.SaveChanges();
+                            }
                         }
                     }
                 }
diff --git a/APT.MicroApi/APT.PF.WebApi/log4net.config b/APT.MicroApi/APT.PF.WebApi/log4net.config
index 3164cc4..b3f1a07 100644
--- a/APT.MicroApi/APT.PF.WebApi/log4net.config
+++ b/APT.MicroApi/APT.PF.WebApi/log4net.config
@@ -19,7 +19,7 @@
       
       
       
-      
+      
       
       
       
diff --git a/APT.MicroApi/APT.PP.WebApi/Controllers/Api/BIAnalysisController.cs b/APT.MicroApi/APT.PP.WebApi/Controllers/Api/BIAnalysisController.cs
index 898f215..4e1b6e1 100644
--- a/APT.MicroApi/APT.PP.WebApi/Controllers/Api/BIAnalysisController.cs
+++ b/APT.MicroApi/APT.PP.WebApi/Controllers/Api/BIAnalysisController.cs
@@ -32,818 +32,828 @@ namespace APT.PP.WebApi.Controllers.Api.PP
         {
             return SafeExecute(() =>
             {
-                var sourceIds = new List();
-                List formAnalysis=new List();
-                var newFilter = new BaseFilter(filter.OrgId);
-                newFilter.SelectField = new List { "ID", "STATUS" };
-                //风险评价计划审核表
-                var evalPlan= this.GetEntities(t => true, newFilter);
-                var evalPlanIds = evalPlan.Select(t => t.ID).ToList();
-                sourceIds.AddRange(evalPlanIds);
-                //风险评价计划发布
-                newFilter.SelectField = new List { "ID", "RELEASE_STATUS" };
-                var noticeRelease = this.GetEntities(t => true, newFilter);
-                var noticeReleaseIds = noticeRelease.Select(t => t.ID).ToList();
-                sourceIds.AddRange(noticeReleaseIds);
-                //危险源/风险辨识任务
-                newFilter.SelectField = new List { "ID", "STATUS" };
-                var riskTask = this.GetEntities(t => true, newFilter);
-                var riskTaskIds = riskTask.Select(t => t.ID).ToList();
-                sourceIds.AddRange(riskTaskIds);
-                //危险源/风险辨识记录表
-                var riskRecord = this.GetEntities(t => true, newFilter);
-                var riskRecordIds = riskRecord.Select(t => t.ID).ToList();
-                sourceIds.AddRange(riskRecordIds);
-                //职业危害辨识任务
-                var hazardTask = this.GetEntities(t => true, newFilter);
-                var hazardTaskIds = hazardTask.Select(t => t.ID).ToList();
-                sourceIds.AddRange(hazardTaskIds);
-                //职业危害辨识记录表
-                var hazardRecord = this.GetEntities(t => true, newFilter);
-                var hazardRecordIds = hazardRecord.Select(t => t.ID).ToList();
-                sourceIds.AddRange(hazardRecordIds);
-                //评价结果表
-                var evalResult = this.GetEntities(t => true, newFilter);
-                var evalResultIds = evalResult.Select(t => t.ID).ToList();
-                sourceIds.AddRange(evalResultIds);
-                //作业任务识别
-                newFilter.SelectField = new List { "ID", "IS_PUBLISH" };
-                var taskIdentify = this.GetEntities(t => true, newFilter);
-                var taskIdentifyIds = taskIdentify.Select(t => t.ID).ToList();
-                sourceIds.AddRange(taskIdentifyIds);
-                //作业任务识别分析
-                var taskAnalysis = this.GetEntities(t => true, newFilter);
-                var taskAnalysisIds = taskAnalysis.Select(t => t.ID).ToList();
-                sourceIds.AddRange(taskAnalysisIds);
-                //一般任务分析
-                var taskOrdinary = this.GetEntities(t => true, newFilter);
-                var taskOrdinaryIds = taskOrdinary.Select(t => t.ID).ToList();
-                sourceIds.AddRange(taskOrdinaryIds);
-                //关键任务分析
-                var taskCrucial = this.GetEntities(t => true, newFilter);
-                var taskCrucialIds = taskCrucial.Select(t => t.ID).ToList();
-                sourceIds.AddRange(taskCrucialIds);
-                //许可任务分析
-                var taskLicense = this.GetEntities(t => true, newFilter);
-                var taskLicenseIds = taskLicense.Select(t => t.ID).ToList();
-                sourceIds.AddRange(taskLicenseIds);
-                //作业任务分析文件发布
-                newFilter.SelectField = new List { "ID" };
-                var filePublish = this.GetEntities(t => true, newFilter);
-                var filePublishIds = filePublish.Select(t => t.ID).ToList();
-                sourceIds.AddRange(filePublishIds);
-                //只取待办超期的
-                newFilter.SelectField = new List { "SOURCE_DATA_ID" };
-                var tasks = this.GetEntities(t => t.NOTICE_STATUS == 2, newFilter);
-                tasks = tasks.Where(t => sourceIds.Contains(t.SOURCE_DATA_ID.Value)).ToList();
-                //表单运行情况分析表
-                var allAnalysis = this.GetEntities(t => true, new BaseFilter(filter.OrgId));
-                #region 风险评价计划审核表
-                if (evalPlan.Any())
+                try
                 {
-                    foreach (var item in evalPlan)
+                    var sourceIds = new List();
+                    List formAnalysis = new List();
+                    var newFilter = new BaseFilter(filter.OrgId);
+                    newFilter.SelectField = new List { "ID", "STATUS" };
+                    //风险评价计划审核表
+                    var evalPlan = this.GetEntities(t => true, newFilter);
+                    var evalPlanIds = evalPlan.Select(t => t.ID).ToList();
+                    sourceIds.AddRange(evalPlanIds);
+                    //风险评价计划发布
+                    newFilter.SelectField = new List { "ID", "RELEASE_STATUS" };
+                    var noticeRelease = this.GetEntities(t => true, newFilter);
+                    var noticeReleaseIds = noticeRelease.Select(t => t.ID).ToList();
+                    sourceIds.AddRange(noticeReleaseIds);
+                    //危险源/风险辨识任务
+                    newFilter.SelectField = new List { "ID", "STATUS" };
+                    var riskTask = this.GetEntities(t => true, newFilter);
+                    var riskTaskIds = riskTask.Select(t => t.ID).ToList();
+                    sourceIds.AddRange(riskTaskIds);
+                    //危险源/风险辨识记录表
+                    var riskRecord = this.GetEntities(t => true, newFilter);
+                    var riskRecordIds = riskRecord.Select(t => t.ID).ToList();
+                    sourceIds.AddRange(riskRecordIds);
+                    //职业危害辨识任务
+                    var hazardTask = this.GetEntities(t => true, newFilter);
+                    var hazardTaskIds = hazardTask.Select(t => t.ID).ToList();
+                    sourceIds.AddRange(hazardTaskIds);
+                    //职业危害辨识记录表
+                    var hazardRecord = this.GetEntities(t => true, newFilter);
+                    var hazardRecordIds = hazardRecord.Select(t => t.ID).ToList();
+                    sourceIds.AddRange(hazardRecordIds);
+                    //评价结果表
+                    var evalResult = this.GetEntities(t => true, newFilter);
+                    var evalResultIds = evalResult.Select(t => t.ID).ToList();
+                    sourceIds.AddRange(evalResultIds);
+                    //作业任务识别
+                    newFilter.SelectField = new List { "ID", "IS_PUBLISH" };
+                    var taskIdentify = this.GetEntities(t => true, newFilter);
+                    var taskIdentifyIds = taskIdentify.Select(t => t.ID).ToList();
+                    sourceIds.AddRange(taskIdentifyIds);
+                    //作业任务识别分析
+                    var taskAnalysis = this.GetEntities(t => true, newFilter);
+                    var taskAnalysisIds = taskAnalysis.Select(t => t.ID).ToList();
+                    sourceIds.AddRange(taskAnalysisIds);
+                    //一般任务分析
+                    var taskOrdinary = this.GetEntities(t => true, newFilter);
+                    var taskOrdinaryIds = taskOrdinary.Select(t => t.ID).ToList();
+                    sourceIds.AddRange(taskOrdinaryIds);
+                    //关键任务分析
+                    var taskCrucial = this.GetEntities(t => true, newFilter);
+                    var taskCrucialIds = taskCrucial.Select(t => t.ID).ToList();
+                    sourceIds.AddRange(taskCrucialIds);
+                    //许可任务分析
+                    var taskLicense = this.GetEntities(t => true, newFilter);
+                    var taskLicenseIds = taskLicense.Select(t => t.ID).ToList();
+                    sourceIds.AddRange(taskLicenseIds);
+                    //作业任务分析文件发布
+                    newFilter.SelectField = new List { "ID" };
+                    var filePublish = this.GetEntities(t => true, newFilter);
+                    var filePublishIds = filePublish.Select(t => t.ID).ToList();
+                    sourceIds.AddRange(filePublishIds);
+                    //只取待办超期的
+                    newFilter.SelectField = new List { "SOURCE_DATA_ID" };
+                    var tasks = this.GetEntities(t => t.NOTICE_STATUS == 2, newFilter);
+                    tasks = tasks.Where(t => sourceIds.Contains(t.SOURCE_DATA_ID.Value)).ToList();
+                    //表单运行情况分析表
+                    var allAnalysis = this.GetEntities(t => true, new BaseFilter(filter.OrgId));
+                    #region 风险评价计划审核表
+                    if (evalPlan.Any())
                     {
-                        var task = tasks.FirstOrDefault(t => t.SOURCE_DATA_ID == item.ID);
-                        if (task == null)
-                            item.IS_OVERTIME = 0;
-                        else
-                            item.IS_OVERTIME = 1;
+                        foreach (var item in evalPlan)
+                        {
+                            var task = tasks.FirstOrDefault(t => t.SOURCE_DATA_ID == item.ID);
+                            if (task == null)
+                                item.IS_OVERTIME = 0;
+                            else
+                                item.IS_OVERTIME = 1;
+                        }
+                        var count = evalPlan.Count();
+                        var finish = evalPlan.Count(t => t.IS_OVERTIME == 0 && t.STATUS == MS.Domain.Enums.FOPreMeetingStatusEnum.归档);
+                        var overfinish = evalPlan.Count(t => t.IS_OVERTIME == 1 && t.STATUS == MS.Domain.Enums.FOPreMeetingStatusEnum.归档);
+                        var unfinish = count - finish - overfinish;
+                        var temp = count == 0 ? 0 : (double)(finish + overfinish) / count * 100;
+                        var finishRate = temp.ToString("0") + "%";
+                        var temp2 = count == 0 ? 0 : (double)finish / count * 100;
+                        var normalFinishRate = temp2.ToString("0") + "%";
+                        var analysis = allAnalysis.FirstOrDefault(t => t.MOUDLE_NAME == "风险管理" && t.FORM_NAME == "年度风险评价计划审核表");
+                        if (analysis == null)
+                        {
+                            analysis = new T_BI_FORM_RUN_ANALYSIS();
+                            analysis.MOUDLE_NAME = "风险管理";
+                            analysis.FORM_NAME = "年度风险评价计划审核表";
+                            analysis.NUM = 1;
+                            analysis.ORG_ID = filter.OrgId;
+                        }
+                        analysis.TOTAL_QTY = count;
+                        analysis.FINISH_QTY = finish;
+                        analysis.OVER_FINISH_QTY = overfinish;
+                        analysis.UNFINISH_QTY = unfinish;
+                        analysis.FINISH_RATE = finishRate;
+                        analysis.NORMAL_FINISH_RATE = normalFinishRate;
+                        formAnalysis.Add(analysis);
                     }
-                    var count = evalPlan.Count();
-                    var finish = evalPlan.Count(t => t.IS_OVERTIME == 0 && t.STATUS == MS.Domain.Enums.FOPreMeetingStatusEnum.归档);
-                    var overfinish = evalPlan.Count(t => t.IS_OVERTIME == 1 && t.STATUS == MS.Domain.Enums.FOPreMeetingStatusEnum.归档);
-                    var unfinish = count - finish - overfinish;
-                    var temp = count == 0 ? 0 : (double)(finish + overfinish) / count * 100;
-                    var finishRate = temp.ToString("0") + "%";
-                    var temp2 = count == 0 ? 0 : (double)finish / count * 100;
-                    var normalFinishRate = temp2.ToString("0") + "%";
-                    var analysis = allAnalysis.FirstOrDefault(t => t.MOUDLE_NAME == "风险管理" && t.FORM_NAME == "年度风险评价计划审核表");
-                    if (analysis == null)
+                    else
                     {
-                        analysis = new T_BI_FORM_RUN_ANALYSIS();
-                        analysis.MOUDLE_NAME = "风险管理";
-                        analysis.FORM_NAME = "年度风险评价计划审核表";
-                        analysis.NUM = 1;
-                        analysis.ORG_ID = filter.OrgId;
+                        var analysis = allAnalysis.FirstOrDefault(t => t.MOUDLE_NAME == "风险管理" && t.FORM_NAME == "年度风险评价计划审核表");
+                        if (analysis == null)
+                        {
+                            analysis = new T_BI_FORM_RUN_ANALYSIS();
+                            analysis.MOUDLE_NAME = "风险管理";
+                            analysis.FORM_NAME = "年度风险评价计划审核表";
+                            analysis.NUM = 1;
+                            analysis.ORG_ID = filter.OrgId;
+                        }
+                        analysis.TOTAL_QTY = 0;
+                        analysis.FINISH_QTY = 0;
+                        analysis.OVER_FINISH_QTY = 0;
+                        analysis.UNFINISH_QTY = 0;
+                        analysis.FINISH_RATE = "0%";
+                        analysis.NORMAL_FINISH_RATE = "0%";
+                        formAnalysis.Add(analysis);
                     }
-                    analysis.TOTAL_QTY = count;
-                    analysis.FINISH_QTY = finish;
-                    analysis.OVER_FINISH_QTY = overfinish;
-                    analysis.UNFINISH_QTY = unfinish;
-                    analysis.FINISH_RATE = finishRate;
-                    analysis.NORMAL_FINISH_RATE = normalFinishRate;
-                    formAnalysis.Add(analysis);
-                }
-                else
-                {
-                    var analysis = allAnalysis.FirstOrDefault(t => t.MOUDLE_NAME == "风险管理" && t.FORM_NAME == "年度风险评价计划审核表");
-                    if (analysis == null)
-                    {
-                        analysis = new T_BI_FORM_RUN_ANALYSIS();
-                        analysis.MOUDLE_NAME = "风险管理";
-                        analysis.FORM_NAME = "年度风险评价计划审核表";
-                        analysis.NUM = 1;
-                        analysis.ORG_ID = filter.OrgId;
-                    }
-                    analysis.TOTAL_QTY = 0;
-                    analysis.FINISH_QTY = 0;
-                    analysis.OVER_FINISH_QTY = 0;
-                    analysis.UNFINISH_QTY = 0;
-                    analysis.FINISH_RATE = "0%";
-                    analysis.NORMAL_FINISH_RATE = "0%";
-                    formAnalysis.Add(analysis);
-                }
-                #endregion
+                    #endregion
 
-                #region 风险评价计划发布
-                if (noticeRelease.Any())
-                {
-                    foreach (var item in noticeRelease)
+                    #region 风险评价计划发布
+                    if (noticeRelease.Any())
                     {
-                        var task = tasks.FirstOrDefault(t => t.SOURCE_DATA_ID == item.ID);
-                        if (task == null)
-                            item.IS_OVERTIME = 0;
-                        else
-                            item.IS_OVERTIME = 1;
+                        foreach (var item in noticeRelease)
+                        {
+                            var task = tasks.FirstOrDefault(t => t.SOURCE_DATA_ID == item.ID);
+                            if (task == null)
+                                item.IS_OVERTIME = 0;
+                            else
+                                item.IS_OVERTIME = 1;
+                        }
+                        var count = noticeRelease.Count();
+                        var finish = noticeRelease.Count(t => t.IS_OVERTIME == 0 && t.RELEASE_STATUS == MS.Domain.Enums.FOPreMeetingStatusEnum.归档);
+                        var overfinish = noticeRelease.Count(t => t.IS_OVERTIME == 1 && t.RELEASE_STATUS == MS.Domain.Enums.FOPreMeetingStatusEnum.归档);
+                        var unfinish = count - finish - overfinish;
+                        var temp = count == 0 ? 0 : (double)(finish + overfinish) / count * 100;
+                        var finishRate = temp.ToString("0") + "%";
+                        var temp2 = count == 0 ? 0 : (double)finish / count * 100;
+                        var normalFinishRate = temp2.ToString("0") + "%";
+                        var analysis = allAnalysis.FirstOrDefault(t => t.MOUDLE_NAME == "风险管理" && t.FORM_NAME == "风险评价计划发布");
+                        if (analysis == null)
+                        {
+                            analysis = new T_BI_FORM_RUN_ANALYSIS();
+                            analysis.MOUDLE_NAME = "风险管理";
+                            analysis.FORM_NAME = "风险评价计划发布";
+                            analysis.NUM = 2;
+                            analysis.ORG_ID = filter.OrgId;
+                        }
+                        analysis.TOTAL_QTY = count;
+                        analysis.FINISH_QTY = finish;
+                        analysis.OVER_FINISH_QTY = overfinish;
+                        analysis.UNFINISH_QTY = unfinish;
+                        analysis.FINISH_RATE = finishRate;
+                        analysis.NORMAL_FINISH_RATE = normalFinishRate;
+                        formAnalysis.Add(analysis);
                     }
-                    var count = noticeRelease.Count();
-                    var finish = noticeRelease.Count(t => t.IS_OVERTIME == 0 && t.RELEASE_STATUS == MS.Domain.Enums.FOPreMeetingStatusEnum.归档);
-                    var overfinish = noticeRelease.Count(t => t.IS_OVERTIME == 1 && t.RELEASE_STATUS == MS.Domain.Enums.FOPreMeetingStatusEnum.归档);
-                    var unfinish = count - finish - overfinish;
-                    var temp = count == 0 ? 0 : (double)(finish + overfinish) / count * 100;
-                    var finishRate = temp.ToString("0") + "%";
-                    var temp2 = count == 0 ? 0 : (double)finish / count * 100;
-                    var normalFinishRate = temp2.ToString("0") + "%";
-                    var analysis = allAnalysis.FirstOrDefault(t => t.MOUDLE_NAME == "风险管理" && t.FORM_NAME == "风险评价计划发布");
-                    if (analysis == null)
+                    else
                     {
-                        analysis = new T_BI_FORM_RUN_ANALYSIS();
-                        analysis.MOUDLE_NAME = "风险管理";
-                        analysis.FORM_NAME = "风险评价计划发布";
-                        analysis.NUM = 2;
-                        analysis.ORG_ID = filter.OrgId;
+                        var analysis = allAnalysis.FirstOrDefault(t => t.MOUDLE_NAME == "风险管理" && t.FORM_NAME == "风险评价计划发布");
+                        if (analysis == null)
+                        {
+                            analysis = new T_BI_FORM_RUN_ANALYSIS();
+                            analysis.MOUDLE_NAME = "风险管理";
+                            analysis.FORM_NAME = "风险评价计划发布";
+                            analysis.NUM = 2;
+                            analysis.ORG_ID = filter.OrgId;
+                        }
+                        analysis.TOTAL_QTY = 0;
+                        analysis.FINISH_QTY = 0;
+                        analysis.OVER_FINISH_QTY = 0;
+                        analysis.UNFINISH_QTY = 0;
+                        analysis.FINISH_RATE = "0%";
+                        analysis.NORMAL_FINISH_RATE = "0%";
+                        formAnalysis.Add(analysis);
                     }
-                    analysis.TOTAL_QTY = count;
-                    analysis.FINISH_QTY = finish;
-                    analysis.OVER_FINISH_QTY = overfinish;
-                    analysis.UNFINISH_QTY = unfinish;
-                    analysis.FINISH_RATE = finishRate;
-                    analysis.NORMAL_FINISH_RATE = normalFinishRate;
-                    formAnalysis.Add(analysis);
-                }
-                else
-                {
-                    var analysis = allAnalysis.FirstOrDefault(t => t.MOUDLE_NAME == "风险管理" && t.FORM_NAME == "风险评价计划发布");
-                    if (analysis == null)
-                    {
-                        analysis = new T_BI_FORM_RUN_ANALYSIS();
-                        analysis.MOUDLE_NAME = "风险管理";
-                        analysis.FORM_NAME = "风险评价计划发布";
-                        analysis.NUM = 2;
-                        analysis.ORG_ID = filter.OrgId;
-                    }
-                    analysis.TOTAL_QTY = 0;
-                    analysis.FINISH_QTY = 0;
-                    analysis.OVER_FINISH_QTY = 0;
-                    analysis.UNFINISH_QTY = 0;
-                    analysis.FINISH_RATE = "0%";
-                    analysis.NORMAL_FINISH_RATE = "0%";
-                    formAnalysis.Add(analysis);
-                }
-                #endregion
+                    #endregion
 
-                #region 危险源/风险辨识任务
-                if (riskTask.Any())
-                {
-                    foreach (var item in riskTask)
+                    #region 危险源/风险辨识任务
+                    if (riskTask.Any())
                     {
-                        var task = tasks.FirstOrDefault(t => t.SOURCE_DATA_ID == item.ID);
-                        if (task == null)
-                            item.IS_OVERTIME = 0;
-                        else
-                            item.IS_OVERTIME = 1;
+                        foreach (var item in riskTask)
+                        {
+                            var task = tasks.FirstOrDefault(t => t.SOURCE_DATA_ID == item.ID);
+                            if (task == null)
+                                item.IS_OVERTIME = 0;
+                            else
+                                item.IS_OVERTIME = 1;
+                        }
+                        var count = riskTask.Count();
+                        var finish = riskTask.Count(t => t.IS_OVERTIME == 0 && t.STATUS == MS.Domain.Enums.FOPreMeetingStatusEnum.归档);
+                        var overfinish = riskTask.Count(t => t.IS_OVERTIME == 1 && t.STATUS == MS.Domain.Enums.FOPreMeetingStatusEnum.归档);
+                        var unfinish = count - finish - overfinish;
+                        var temp = count == 0 ? 0 : (double)(finish + overfinish) / count * 100;
+                        var finishRate = temp.ToString("0") + "%";
+                        var temp2 = count == 0 ? 0 : (double)finish / count * 100;
+                        var normalFinishRate = temp2.ToString("0") + "%";
+                        var analysis = allAnalysis.FirstOrDefault(t => t.MOUDLE_NAME == "风险管理" && t.FORM_NAME == "危险源/风险辨识任务");
+                        if (analysis == null)
+                        {
+                            analysis = new T_BI_FORM_RUN_ANALYSIS();
+                            analysis.MOUDLE_NAME = "风险管理";
+                            analysis.FORM_NAME = "危险源/风险辨识任务";
+                            analysis.NUM = 3;
+                            analysis.ORG_ID = filter.OrgId;
+                        }
+                        analysis.TOTAL_QTY = count;
+                        analysis.FINISH_QTY = finish;
+                        analysis.OVER_FINISH_QTY = overfinish;
+                        analysis.UNFINISH_QTY = unfinish;
+                        analysis.FINISH_RATE = finishRate;
+                        analysis.NORMAL_FINISH_RATE = normalFinishRate;
+                        formAnalysis.Add(analysis);
                     }
-                    var count = riskTask.Count();
-                    var finish = riskTask.Count(t => t.IS_OVERTIME == 0 && t.STATUS == MS.Domain.Enums.FOPreMeetingStatusEnum.归档);
-                    var overfinish = riskTask.Count(t => t.IS_OVERTIME == 1 && t.STATUS == MS.Domain.Enums.FOPreMeetingStatusEnum.归档);
-                    var unfinish = count - finish - overfinish;
-                    var temp = count == 0 ? 0 : (double)(finish + overfinish) / count * 100;
-                    var finishRate = temp.ToString("0") + "%";
-                    var temp2 = count == 0 ? 0 : (double)finish / count * 100;
-                    var normalFinishRate = temp2.ToString("0") + "%";
-                    var analysis = allAnalysis.FirstOrDefault(t => t.MOUDLE_NAME == "风险管理" && t.FORM_NAME == "危险源/风险辨识任务");
-                    if (analysis == null)
+                    else
                     {
-                        analysis = new T_BI_FORM_RUN_ANALYSIS();
-                        analysis.MOUDLE_NAME = "风险管理";
-                        analysis.FORM_NAME = "危险源/风险辨识任务";
-                        analysis.NUM = 3;
-                        analysis.ORG_ID = filter.OrgId;
+                        var analysis = allAnalysis.FirstOrDefault(t => t.MOUDLE_NAME == "风险管理" && t.FORM_NAME == "危险源/风险辨识任务");
+                        if (analysis == null)
+                        {
+                            analysis = new T_BI_FORM_RUN_ANALYSIS();
+                            analysis.MOUDLE_NAME = "风险管理";
+                            analysis.FORM_NAME = "危险源/风险辨识任务";
+                            analysis.NUM = 3;
+                            analysis.ORG_ID = filter.OrgId;
+                        }
+                        analysis.TOTAL_QTY = 0;
+                        analysis.FINISH_QTY = 0;
+                        analysis.OVER_FINISH_QTY = 0;
+                        analysis.UNFINISH_QTY = 0;
+                        analysis.FINISH_RATE = "0%";
+                        analysis.NORMAL_FINISH_RATE = "0%";
+                        formAnalysis.Add(analysis);
                     }
-                    analysis.TOTAL_QTY = count;
-                    analysis.FINISH_QTY = finish;
-                    analysis.OVER_FINISH_QTY = overfinish;
-                    analysis.UNFINISH_QTY = unfinish;
-                    analysis.FINISH_RATE = finishRate;
-                    analysis.NORMAL_FINISH_RATE = normalFinishRate;
-                    formAnalysis.Add(analysis);
-                }
-                else
-                {
-                    var analysis = allAnalysis.FirstOrDefault(t => t.MOUDLE_NAME == "风险管理" && t.FORM_NAME == "危险源/风险辨识任务");
-                    if (analysis == null)
-                    {
-                        analysis = new T_BI_FORM_RUN_ANALYSIS();
-                        analysis.MOUDLE_NAME = "风险管理";
-                        analysis.FORM_NAME = "危险源/风险辨识任务";
-                        analysis.NUM = 3;
-                        analysis.ORG_ID = filter.OrgId;
-                    }
-                    analysis.TOTAL_QTY = 0;
-                    analysis.FINISH_QTY = 0;
-                    analysis.OVER_FINISH_QTY = 0;
-                    analysis.UNFINISH_QTY = 0;
-                    analysis.FINISH_RATE = "0%";
-                    analysis.NORMAL_FINISH_RATE = "0%";
-                    formAnalysis.Add(analysis);
-                }
-                #endregion
+                    #endregion
 
-                #region 危险源/风险辨识记录表
-                if (riskRecord.Any())
-                {
-                    foreach (var item in riskRecord)
+                    #region 危险源/风险辨识记录表
+                    if (riskRecord.Any())
                     {
-                        var task = tasks.FirstOrDefault(t => t.SOURCE_DATA_ID == item.ID);
-                        if (task == null)
-                            item.IS_OVERTIME = 0;
-                        else
-                            item.IS_OVERTIME = 1;
+                        foreach (var item in riskRecord)
+                        {
+                            var task = tasks.FirstOrDefault(t => t.SOURCE_DATA_ID == item.ID);
+                            if (task == null)
+                                item.IS_OVERTIME = 0;
+                            else
+                                item.IS_OVERTIME = 1;
+                        }
+                        var count = riskRecord.Count();
+                        var finish = riskRecord.Count(t => t.IS_OVERTIME == 0 && t.STATUS == MS.Domain.Enums.FOPreMeetingStatusEnum.归档);
+                        var overfinish = riskRecord.Count(t => t.IS_OVERTIME == 1 && t.STATUS == MS.Domain.Enums.FOPreMeetingStatusEnum.归档);
+                        var unfinish = count - finish - overfinish;
+                        var temp = count == 0 ? 0 : (double)(finish + overfinish) / count * 100;
+                        var finishRate = temp.ToString("0") + "%";
+                        var temp2 = count == 0 ? 0 : (double)finish / count * 100;
+                        var normalFinishRate = temp2.ToString("0") + "%";
+                        var analysis = allAnalysis.FirstOrDefault(t => t.MOUDLE_NAME == "风险管理" && t.FORM_NAME == "危险源/风险辨识记录表");
+                        if (analysis == null)
+                        {
+                            analysis = new T_BI_FORM_RUN_ANALYSIS();
+                            analysis.MOUDLE_NAME = "风险管理";
+                            analysis.FORM_NAME = "危险源/风险辨识记录表";
+                            analysis.NUM = 4;
+                            analysis.ORG_ID = filter.OrgId;
+                        }
+                        analysis.TOTAL_QTY = count;
+                        analysis.FINISH_QTY = finish;
+                        analysis.OVER_FINISH_QTY = overfinish;
+                        analysis.UNFINISH_QTY = unfinish;
+                        analysis.FINISH_RATE = finishRate;
+                        analysis.NORMAL_FINISH_RATE = normalFinishRate;
+                        formAnalysis.Add(analysis);
                     }
-                    var count = riskRecord.Count();
-                    var finish = riskRecord.Count(t => t.IS_OVERTIME == 0 && t.STATUS == MS.Domain.Enums.FOPreMeetingStatusEnum.归档);
-                    var overfinish = riskRecord.Count(t => t.IS_OVERTIME == 1 && t.STATUS == MS.Domain.Enums.FOPreMeetingStatusEnum.归档);
-                    var unfinish = count - finish - overfinish;
-                    var temp = count == 0 ? 0 : (double)(finish + overfinish) / count * 100;
-                    var finishRate = temp.ToString("0") + "%";
-                    var temp2 = count == 0 ? 0 : (double)finish / count * 100;
-                    var normalFinishRate = temp2.ToString("0") + "%";
-                    var analysis = allAnalysis.FirstOrDefault(t => t.MOUDLE_NAME == "风险管理" && t.FORM_NAME == "危险源/风险辨识记录表");
-                    if (analysis == null)
+                    else
                     {
-                        analysis = new T_BI_FORM_RUN_ANALYSIS();
-                        analysis.MOUDLE_NAME = "风险管理";
-                        analysis.FORM_NAME = "危险源/风险辨识记录表";
-                        analysis.NUM = 4;
-                        analysis.ORG_ID = filter.OrgId;
+                        var analysis = allAnalysis.FirstOrDefault(t => t.MOUDLE_NAME == "风险管理" && t.FORM_NAME == "危险源/风险辨识记录表");
+                        if (analysis == null)
+                        {
+                            analysis = new T_BI_FORM_RUN_ANALYSIS();
+                            analysis.MOUDLE_NAME = "风险管理";
+                            analysis.FORM_NAME = "危险源/风险辨识记录表";
+                            analysis.NUM = 4;
+                            analysis.ORG_ID = filter.OrgId;
+                        }
+                        analysis.TOTAL_QTY = 0;
+                        analysis.FINISH_QTY = 0;
+                        analysis.OVER_FINISH_QTY = 0;
+                        analysis.UNFINISH_QTY = 0;
+                        analysis.FINISH_RATE = "0%";
+                        analysis.NORMAL_FINISH_RATE = "0%";
+                        formAnalysis.Add(analysis);
                     }
-                    analysis.TOTAL_QTY = count;
-                    analysis.FINISH_QTY = finish;
-                    analysis.OVER_FINISH_QTY = overfinish;
-                    analysis.UNFINISH_QTY = unfinish;
-                    analysis.FINISH_RATE = finishRate;
-                    analysis.NORMAL_FINISH_RATE = normalFinishRate;
-                    formAnalysis.Add(analysis);
-                }
-                else
-                {
-                    var analysis = allAnalysis.FirstOrDefault(t => t.MOUDLE_NAME == "风险管理" && t.FORM_NAME == "危险源/风险辨识记录表");
-                    if (analysis == null)
-                    {
-                        analysis = new T_BI_FORM_RUN_ANALYSIS();
-                        analysis.MOUDLE_NAME = "风险管理";
-                        analysis.FORM_NAME = "危险源/风险辨识记录表";
-                        analysis.NUM = 4;
-                        analysis.ORG_ID = filter.OrgId;
-                    }
-                    analysis.TOTAL_QTY = 0;
-                    analysis.FINISH_QTY = 0;
-                    analysis.OVER_FINISH_QTY = 0;
-                    analysis.UNFINISH_QTY = 0;
-                    analysis.FINISH_RATE = "0%";
-                    analysis.NORMAL_FINISH_RATE = "0%";
-                    formAnalysis.Add(analysis);
-                }
-                #endregion
+                    #endregion
 
-                #region 职业危害辨识任务
-                if (hazardTask.Any())
-                {
-                    foreach (var item in hazardTask)
+                    #region 职业危害辨识任务
+                    if (hazardTask.Any())
                     {
-                        var task = tasks.FirstOrDefault(t => t.SOURCE_DATA_ID == item.ID);
-                        if (task == null)
-                            item.IS_OVERTIME = 0;
-                        else
-                            item.IS_OVERTIME = 1;
+                        foreach (var item in hazardTask)
+                        {
+                            var task = tasks.FirstOrDefault(t => t.SOURCE_DATA_ID == item.ID);
+                            if (task == null)
+                                item.IS_OVERTIME = 0;
+                            else
+                                item.IS_OVERTIME = 1;
+                        }
+                        var count = hazardTask.Count();
+                        var finish = hazardTask.Count(t => t.IS_OVERTIME == 0 && t.STATUS == MS.Domain.Enums.FOPreMeetingStatusEnum.归档);
+                        var overfinish = hazardTask.Count(t => t.IS_OVERTIME == 1 && t.STATUS == MS.Domain.Enums.FOPreMeetingStatusEnum.归档);
+                        var unfinish = count - finish - overfinish;
+                        var temp = count == 0 ? 0 : (double)(finish + overfinish) / count * 100;
+                        var finishRate = temp.ToString("0") + "%";
+                        var temp2 = count == 0 ? 0 : (double)finish / count * 100;
+                        var normalFinishRate = temp2.ToString("0") + "%";
+                        var analysis = allAnalysis.FirstOrDefault(t => t.MOUDLE_NAME == "风险管理" && t.FORM_NAME == "职业危害辨识任务");
+                        if (analysis == null)
+                        {
+                            analysis = new T_BI_FORM_RUN_ANALYSIS();
+                            analysis.MOUDLE_NAME = "风险管理";
+                            analysis.FORM_NAME = "职业危害辨识任务";
+                            analysis.NUM = 5;
+                            analysis.ORG_ID = filter.OrgId;
+                        }
+                        analysis.TOTAL_QTY = count;
+                        analysis.FINISH_QTY = finish;
+                        analysis.OVER_FINISH_QTY = overfinish;
+                        analysis.UNFINISH_QTY = unfinish;
+                        analysis.FINISH_RATE = finishRate;
+                        analysis.NORMAL_FINISH_RATE = normalFinishRate;
+                        formAnalysis.Add(analysis);
                     }
-                    var count = hazardTask.Count();
-                    var finish = hazardTask.Count(t => t.IS_OVERTIME == 0 && t.STATUS == MS.Domain.Enums.FOPreMeetingStatusEnum.归档);
-                    var overfinish = hazardTask.Count(t => t.IS_OVERTIME == 1 && t.STATUS == MS.Domain.Enums.FOPreMeetingStatusEnum.归档);
-                    var unfinish = count - finish - overfinish;
-                    var temp = count == 0 ? 0 : (double)(finish + overfinish) / count * 100;
-                    var finishRate = temp.ToString("0") + "%";
-                    var temp2 = count == 0 ? 0 : (double)finish / count * 100;
-                    var normalFinishRate = temp2.ToString("0") + "%";
-                    var analysis = allAnalysis.FirstOrDefault(t => t.MOUDLE_NAME == "风险管理" && t.FORM_NAME == "职业危害辨识任务");
-                    if (analysis == null)
+                    else
                     {
-                        analysis = new T_BI_FORM_RUN_ANALYSIS();
-                        analysis.MOUDLE_NAME = "风险管理";
-                        analysis.FORM_NAME = "职业危害辨识任务";
-                        analysis.NUM = 5;
-                        analysis.ORG_ID = filter.OrgId;
+                        var analysis = allAnalysis.FirstOrDefault(t => t.MOUDLE_NAME == "风险管理" && t.FORM_NAME == "职业危害辨识任务");
+                        if (analysis == null)
+                        {
+                            analysis = new T_BI_FORM_RUN_ANALYSIS();
+                            analysis.MOUDLE_NAME = "风险管理";
+                            analysis.FORM_NAME = "职业危害辨识任务";
+                            analysis.NUM = 5;
+                            analysis.ORG_ID = filter.OrgId;
+                        }
+                        analysis.TOTAL_QTY = 0;
+                        analysis.FINISH_QTY = 0;
+                        analysis.OVER_FINISH_QTY = 0;
+                        analysis.UNFINISH_QTY = 0;
+                        analysis.FINISH_RATE = "0%";
+                        analysis.NORMAL_FINISH_RATE = "0%";
+                        formAnalysis.Add(analysis);
                     }
-                    analysis.TOTAL_QTY = count;
-                    analysis.FINISH_QTY = finish;
-                    analysis.OVER_FINISH_QTY = overfinish;
-                    analysis.UNFINISH_QTY = unfinish;
-                    analysis.FINISH_RATE = finishRate;
-                    analysis.NORMAL_FINISH_RATE = normalFinishRate;
-                    formAnalysis.Add(analysis);
-                }
-                else
-                {
-                    var analysis = allAnalysis.FirstOrDefault(t => t.MOUDLE_NAME == "风险管理" && t.FORM_NAME == "职业危害辨识任务");
-                    if (analysis == null)
-                    {
-                        analysis = new T_BI_FORM_RUN_ANALYSIS();
-                        analysis.MOUDLE_NAME = "风险管理";
-                        analysis.FORM_NAME = "职业危害辨识任务";
-                        analysis.NUM = 5;
-                        analysis.ORG_ID = filter.OrgId;
-                    }
-                    analysis.TOTAL_QTY = 0;
-                    analysis.FINISH_QTY = 0;
-                    analysis.OVER_FINISH_QTY = 0;
-                    analysis.UNFINISH_QTY = 0;
-                    analysis.FINISH_RATE = "0%";
-                    analysis.NORMAL_FINISH_RATE = "0%";
-                    formAnalysis.Add(analysis);
-                }
-                #endregion
+                    #endregion
 
-                #region 职业危害辨识记录表
-                if (hazardRecord.Any())
-                {
-                    foreach (var item in hazardRecord)
+                    #region 职业危害辨识记录表
+                    if (hazardRecord.Any())
                     {
-                        var task = tasks.FirstOrDefault(t => t.SOURCE_DATA_ID == item.ID);
-                        if (task == null)
-                            item.IS_OVERTIME = 0;
-                        else
-                            item.IS_OVERTIME = 1;
+                        foreach (var item in hazardRecord)
+                        {
+                            var task = tasks.FirstOrDefault(t => t.SOURCE_DATA_ID == item.ID);
+                            if (task == null)
+                                item.IS_OVERTIME = 0;
+                            else
+                                item.IS_OVERTIME = 1;
+                        }
+                        var count = hazardRecord.Count();
+                        var finish = hazardRecord.Count(t => t.IS_OVERTIME == 0 && t.STATUS == MS.Domain.Enums.FOPreMeetingStatusEnum.归档);
+                        var overfinish = hazardRecord.Count(t => t.IS_OVERTIME == 1 && t.STATUS == MS.Domain.Enums.FOPreMeetingStatusEnum.归档);
+                        var unfinish = count - finish - overfinish;
+                        var temp = count == 0 ? 0 : (double)(finish + overfinish) / count * 100;
+                        var finishRate = temp.ToString("0") + "%";
+                        var temp2 = count == 0 ? 0 : (double)finish / count * 100;
+                        var normalFinishRate = temp2.ToString("0") + "%";
+                        var analysis = allAnalysis.FirstOrDefault(t => t.MOUDLE_NAME == "风险管理" && t.FORM_NAME == "职业危害辨识记录表");
+                        if (analysis == null)
+                        {
+                            analysis = new T_BI_FORM_RUN_ANALYSIS();
+                            analysis.MOUDLE_NAME = "风险管理";
+                            analysis.FORM_NAME = "职业危害辨识记录表";
+                            analysis.NUM = 6;
+                            analysis.ORG_ID = filter.OrgId;
+                        }
+                        analysis.TOTAL_QTY = count;
+                        analysis.FINISH_QTY = finish;
+                        analysis.OVER_FINISH_QTY = overfinish;
+                        analysis.UNFINISH_QTY = unfinish;
+                        analysis.FINISH_RATE = finishRate;
+                        analysis.NORMAL_FINISH_RATE = normalFinishRate;
+                        formAnalysis.Add(analysis);
                     }
-                    var count = hazardRecord.Count();
-                    var finish = hazardRecord.Count(t => t.IS_OVERTIME == 0 && t.STATUS == MS.Domain.Enums.FOPreMeetingStatusEnum.归档);
-                    var overfinish = hazardRecord.Count(t => t.IS_OVERTIME == 1 && t.STATUS == MS.Domain.Enums.FOPreMeetingStatusEnum.归档);
-                    var unfinish = count - finish - overfinish;
-                    var temp = count == 0 ? 0 : (double)(finish + overfinish) / count * 100;
-                    var finishRate = temp.ToString("0") + "%";
-                    var temp2 = count == 0 ? 0 : (double)finish / count * 100;
-                    var normalFinishRate = temp2.ToString("0") + "%";
-                    var analysis = allAnalysis.FirstOrDefault(t => t.MOUDLE_NAME == "风险管理" && t.FORM_NAME == "职业危害辨识记录表");
-                    if (analysis == null)
+                    else
                     {
-                        analysis = new T_BI_FORM_RUN_ANALYSIS();
-                        analysis.MOUDLE_NAME = "风险管理";
-                        analysis.FORM_NAME = "职业危害辨识记录表";
-                        analysis.NUM = 6;
-                        analysis.ORG_ID = filter.OrgId;
+                        var analysis = allAnalysis.FirstOrDefault(t => t.MOUDLE_NAME == "风险管理" && t.FORM_NAME == "职业危害辨识记录表");
+                        if (analysis == null)
+                        {
+                            analysis = new T_BI_FORM_RUN_ANALYSIS();
+                            analysis.MOUDLE_NAME = "风险管理";
+                            analysis.FORM_NAME = "职业危害辨识记录表";
+                            analysis.NUM = 6;
+                            analysis.ORG_ID = filter.OrgId;
+                        }
+                        analysis.TOTAL_QTY = 0;
+                        analysis.FINISH_QTY = 0;
+                        analysis.OVER_FINISH_QTY = 0;
+                        analysis.UNFINISH_QTY = 0;
+                        analysis.FINISH_RATE = "0%";
+                        analysis.NORMAL_FINISH_RATE = "0%";
+                        formAnalysis.Add(analysis);
                     }
-                    analysis.TOTAL_QTY = count;
-                    analysis.FINISH_QTY = finish;
-                    analysis.OVER_FINISH_QTY = overfinish;
-                    analysis.UNFINISH_QTY = unfinish;
-                    analysis.FINISH_RATE = finishRate;
-                    analysis.NORMAL_FINISH_RATE = normalFinishRate;
-                    formAnalysis.Add(analysis);
-                }
-                else
-                {
-                    var analysis = allAnalysis.FirstOrDefault(t => t.MOUDLE_NAME == "风险管理" && t.FORM_NAME == "职业危害辨识记录表");
-                    if (analysis == null)
-                    {
-                        analysis = new T_BI_FORM_RUN_ANALYSIS();
-                        analysis.MOUDLE_NAME = "风险管理";
-                        analysis.FORM_NAME = "职业危害辨识记录表";
-                        analysis.NUM = 6;
-                        analysis.ORG_ID = filter.OrgId;
-                    }
-                    analysis.TOTAL_QTY = 0;
-                    analysis.FINISH_QTY = 0;
-                    analysis.OVER_FINISH_QTY = 0;
-                    analysis.UNFINISH_QTY = 0;
-                    analysis.FINISH_RATE = "0%";
-                    analysis.NORMAL_FINISH_RATE = "0%";
-                    formAnalysis.Add(analysis);
-                }
-                #endregion
+                    #endregion
 
-                #region 评价结果表
-                if (evalResult.Any())
-                {
-                    foreach (var item in evalResult)
+                    #region 评价结果表
+                    if (evalResult.Any())
                     {
-                        var task = tasks.FirstOrDefault(t => t.SOURCE_DATA_ID == item.ID);
-                        if (task == null)
-                            item.IS_OVERTIME = 0;
-                        else
-                            item.IS_OVERTIME = 1;
+                        foreach (var item in evalResult)
+                        {
+                            var task = tasks.FirstOrDefault(t => t.SOURCE_DATA_ID == item.ID);
+                            if (task == null)
+                                item.IS_OVERTIME = 0;
+                            else
+                                item.IS_OVERTIME = 1;
+                        }
+                        var count = evalResult.Count();
+                        var finish = evalResult.Count(t => t.IS_OVERTIME == 0 && t.STATUS == MS.Domain.Enums.FOPreMeetingStatusEnum.归档);
+                        var overfinish = evalResult.Count(t => t.IS_OVERTIME == 1 && t.STATUS == MS.Domain.Enums.FOPreMeetingStatusEnum.归档);
+                        var unfinish = count - finish - overfinish;
+                        var temp = count == 0 ? 0 : (double)(finish + overfinish) / count * 100;
+                        var finishRate = temp.ToString("0") + "%";
+                        var temp2 = count == 0 ? 0 : (double)finish / count * 100;
+                        var normalFinishRate = temp2.ToString("0") + "%";
+                        var analysis = allAnalysis.FirstOrDefault(t => t.MOUDLE_NAME == "风险管理" && t.FORM_NAME == "评价结果表");
+                        if (analysis == null)
+                        {
+                            analysis = new T_BI_FORM_RUN_ANALYSIS();
+                            analysis.MOUDLE_NAME = "风险管理";
+                            analysis.FORM_NAME = "评价结果表";
+                            analysis.NUM = 7;
+                            analysis.ORG_ID = filter.OrgId;
+                        }
+                        analysis.TOTAL_QTY = count;
+                        analysis.FINISH_QTY = finish;
+                        analysis.OVER_FINISH_QTY = overfinish;
+                        analysis.UNFINISH_QTY = unfinish;
+                        analysis.FINISH_RATE = finishRate;
+                        analysis.NORMAL_FINISH_RATE = normalFinishRate;
+                        formAnalysis.Add(analysis);
                     }
-                    var count = evalResult.Count();
-                    var finish = evalResult.Count(t => t.IS_OVERTIME == 0 && t.STATUS == MS.Domain.Enums.FOPreMeetingStatusEnum.归档);
-                    var overfinish = evalResult.Count(t => t.IS_OVERTIME == 1 && t.STATUS == MS.Domain.Enums.FOPreMeetingStatusEnum.归档);
-                    var unfinish = count - finish - overfinish;
-                    var temp = count == 0 ? 0 : (double)(finish + overfinish) / count * 100;
-                    var finishRate = temp.ToString("0") + "%";
-                    var temp2 = count == 0 ? 0 : (double)finish / count * 100;
-                    var normalFinishRate = temp2.ToString("0") + "%";
-                    var analysis = allAnalysis.FirstOrDefault(t => t.MOUDLE_NAME == "风险管理" && t.FORM_NAME == "评价结果表");
-                    if (analysis == null)
+                    else
                     {
-                        analysis = new T_BI_FORM_RUN_ANALYSIS();
-                        analysis.MOUDLE_NAME = "风险管理";
-                        analysis.FORM_NAME = "评价结果表";
-                        analysis.NUM = 7;
-                        analysis.ORG_ID = filter.OrgId;
+                        var analysis = allAnalysis.FirstOrDefault(t => t.MOUDLE_NAME == "风险管理" && t.FORM_NAME == "评价结果表");
+                        if (analysis == null)
+                        {
+                            analysis = new T_BI_FORM_RUN_ANALYSIS();
+                            analysis.MOUDLE_NAME = "风险管理";
+                            analysis.FORM_NAME = "评价结果表";
+                            analysis.NUM = 7;
+                            analysis.ORG_ID = filter.OrgId;
+                        }
+                        analysis.TOTAL_QTY = 0;
+                        analysis.FINISH_QTY = 0;
+                        analysis.OVER_FINISH_QTY = 0;
+                        analysis.UNFINISH_QTY = 0;
+                        analysis.FINISH_RATE = "0%";
+                        analysis.NORMAL_FINISH_RATE = "0%";
+                        formAnalysis.Add(analysis);
                     }
-                    analysis.TOTAL_QTY = count;
-                    analysis.FINISH_QTY = finish;
-                    analysis.OVER_FINISH_QTY = overfinish;
-                    analysis.UNFINISH_QTY = unfinish;
-                    analysis.FINISH_RATE = finishRate;
-                    analysis.NORMAL_FINISH_RATE = normalFinishRate;
-                    formAnalysis.Add(analysis);
-                }
-                else
-                {
-                    var analysis = allAnalysis.FirstOrDefault(t => t.MOUDLE_NAME == "风险管理" && t.FORM_NAME == "评价结果表");
-                    if (analysis == null)
-                    {
-                        analysis = new T_BI_FORM_RUN_ANALYSIS();
-                        analysis.MOUDLE_NAME = "风险管理";
-                        analysis.FORM_NAME = "评价结果表";
-                        analysis.NUM = 7;
-                        analysis.ORG_ID = filter.OrgId;
-                    }
-                    analysis.TOTAL_QTY = 0;
-                    analysis.FINISH_QTY = 0;
-                    analysis.OVER_FINISH_QTY = 0;
-                    analysis.UNFINISH_QTY = 0;
-                    analysis.FINISH_RATE = "0%";
-                    analysis.NORMAL_FINISH_RATE = "0%";
-                    formAnalysis.Add(analysis);
-                }
-                #endregion
+                    #endregion
 
-                #region 作业任务识别
-                if (taskIdentify.Any())
-                {
-                    foreach (var item in taskIdentify)
+                    #region 作业任务识别
+                    if (taskIdentify.Any())
                     {
-                        var task = tasks.FirstOrDefault(t => t.SOURCE_DATA_ID == item.ID);
-                        if (task == null)
-                            item.IS_OVERTIME = 0;
-                        else
-                            item.IS_OVERTIME = 1;
+                        foreach (var item in taskIdentify)
+                        {
+                            var task = tasks.FirstOrDefault(t => t.SOURCE_DATA_ID == item.ID);
+                            if (task == null)
+                                item.IS_OVERTIME = 0;
+                            else
+                                item.IS_OVERTIME = 1;
+                        }
+                        var count = taskIdentify.Count();
+                        var finish = taskIdentify.Count(t => t.IS_OVERTIME == 0 && t.IS_PUBLISH == MS.Domain.Enums.FOPreMeetingStatusEnum.归档);
+                        var overfinish = taskIdentify.Count(t => t.IS_OVERTIME == 1 && t.IS_PUBLISH == MS.Domain.Enums.FOPreMeetingStatusEnum.归档);
+                        var unfinish = count - finish - overfinish;
+                        var temp = count == 0 ? 0 : (double)(finish + overfinish) / count * 100;
+                        var finishRate = temp.ToString("0") + "%";
+                        var temp2 = count == 0 ? 0 : (double)finish / count * 100;
+                        var normalFinishRate = temp2.ToString("0") + "%";
+                        var analysis = allAnalysis.FirstOrDefault(t => t.MOUDLE_NAME == "风险管理" && t.FORM_NAME == "作业任务识别");
+                        if (analysis == null)
+                        {
+                            analysis = new T_BI_FORM_RUN_ANALYSIS();
+                            analysis.MOUDLE_NAME = "风险管理";
+                            analysis.FORM_NAME = "作业任务识别";
+                            analysis.NUM = 8;
+                            analysis.ORG_ID = filter.OrgId;
+                        }
+                        analysis.TOTAL_QTY = count;
+                        analysis.FINISH_QTY = finish;
+                        analysis.OVER_FINISH_QTY = overfinish;
+                        analysis.UNFINISH_QTY = unfinish;
+                        analysis.FINISH_RATE = finishRate;
+                        analysis.NORMAL_FINISH_RATE = normalFinishRate;
+                        formAnalysis.Add(analysis);
                     }
-                    var count = taskIdentify.Count();
-                    var finish = taskIdentify.Count(t => t.IS_OVERTIME == 0 && t.IS_PUBLISH == MS.Domain.Enums.FOPreMeetingStatusEnum.归档);
-                    var overfinish = taskIdentify.Count(t => t.IS_OVERTIME == 1 && t.IS_PUBLISH == MS.Domain.Enums.FOPreMeetingStatusEnum.归档);
-                    var unfinish = count - finish - overfinish;
-                    var temp = count == 0 ? 0 : (double)(finish + overfinish) / count * 100;
-                    var finishRate = temp.ToString("0") + "%";
-                    var temp2 = count == 0 ? 0 : (double)finish / count * 100;
-                    var normalFinishRate = temp2.ToString("0") + "%";
-                    var analysis = allAnalysis.FirstOrDefault(t => t.MOUDLE_NAME == "风险管理" && t.FORM_NAME == "作业任务识别");
-                    if (analysis == null)
+                    else
                     {
-                        analysis = new T_BI_FORM_RUN_ANALYSIS();
-                        analysis.MOUDLE_NAME = "风险管理";
-                        analysis.FORM_NAME = "作业任务识别";
-                        analysis.NUM = 8;
-                        analysis.ORG_ID = filter.OrgId;
+                        var analysis = allAnalysis.FirstOrDefault(t => t.MOUDLE_NAME == "风险管理" && t.FORM_NAME == "作业任务识别");
+                        if (analysis == null)
+                        {
+                            analysis = new T_BI_FORM_RUN_ANALYSIS();
+                            analysis.MOUDLE_NAME = "风险管理";
+                            analysis.FORM_NAME = "作业任务识别";
+                            analysis.NUM = 8;
+                            analysis.ORG_ID = filter.OrgId;
+                        }
+                        analysis.TOTAL_QTY = 0;
+                        analysis.FINISH_QTY = 0;
+                        analysis.OVER_FINISH_QTY = 0;
+                        analysis.UNFINISH_QTY = 0;
+                        analysis.FINISH_RATE = "0%";
+                        analysis.NORMAL_FINISH_RATE = "0%";
+                        formAnalysis.Add(analysis);
                     }
-                    analysis.TOTAL_QTY = count;
-                    analysis.FINISH_QTY = finish;
-                    analysis.OVER_FINISH_QTY = overfinish;
-                    analysis.UNFINISH_QTY = unfinish;
-                    analysis.FINISH_RATE = finishRate;
-                    analysis.NORMAL_FINISH_RATE = normalFinishRate;
-                    formAnalysis.Add(analysis);
-                }
-                else
-                {
-                    var analysis = allAnalysis.FirstOrDefault(t => t.MOUDLE_NAME == "风险管理" && t.FORM_NAME == "作业任务识别");
-                    if (analysis == null)
-                    {
-                        analysis = new T_BI_FORM_RUN_ANALYSIS();
-                        analysis.MOUDLE_NAME = "风险管理";
-                        analysis.FORM_NAME = "作业任务识别";
-                        analysis.NUM = 8;
-                        analysis.ORG_ID = filter.OrgId;
-                    }
-                    analysis.TOTAL_QTY = 0;
-                    analysis.FINISH_QTY = 0;
-                    analysis.OVER_FINISH_QTY = 0;
-                    analysis.UNFINISH_QTY = 0;
-                    analysis.FINISH_RATE = "0%";
-                    analysis.NORMAL_FINISH_RATE = "0%";
-                    formAnalysis.Add(analysis);
-                }
-                #endregion
+                    #endregion
 
-                #region 作业任务识别分析
-                if (taskAnalysis.Any())
-                {
-                    foreach (var item in taskAnalysis)
+                    #region 作业任务识别分析
+                    if (taskAnalysis.Any())
                     {
-                        var task = tasks.FirstOrDefault(t => t.SOURCE_DATA_ID == item.ID);
-                        if (task == null)
-                            item.IS_OVERTIME = 0;
-                        else
-                            item.IS_OVERTIME = 1;
+                        foreach (var item in taskAnalysis)
+                        {
+                            var task = tasks.FirstOrDefault(t => t.SOURCE_DATA_ID == item.ID);
+                            if (task == null)
+                                item.IS_OVERTIME = 0;
+                            else
+                                item.IS_OVERTIME = 1;
+                        }
+                        var count = taskAnalysis.Count();
+                        var finish = taskAnalysis.Count(t => t.IS_OVERTIME == 0 && t.IS_PUBLISH == MS.Domain.Enums.FOPreMeetingStatusEnum.归档);
+                        var overfinish = taskAnalysis.Count(t => t.IS_OVERTIME == 1 && t.IS_PUBLISH == MS.Domain.Enums.FOPreMeetingStatusEnum.归档);
+                        var unfinish = count - finish - overfinish;
+                        var temp = count == 0 ? 0 : (double)(finish + overfinish) / count * 100;
+                        var finishRate = temp.ToString("0") + "%";
+                        var temp2 = count == 0 ? 0 : (double)finish / count * 100;
+                        var normalFinishRate = temp2.ToString("0") + "%";
+                        var analysis = allAnalysis.FirstOrDefault(t => t.MOUDLE_NAME == "风险管理" && t.FORM_NAME == "作业任务识别分析");
+                        if (analysis == null)
+                        {
+                            analysis = new T_BI_FORM_RUN_ANALYSIS();
+                            analysis.MOUDLE_NAME = "风险管理";
+                            analysis.FORM_NAME = "作业任务识别分析";
+                            analysis.NUM = 9;
+                            analysis.ORG_ID = filter.OrgId;
+                        }
+                        analysis.TOTAL_QTY = count;
+                        analysis.FINISH_QTY = finish;
+                        analysis.OVER_FINISH_QTY = overfinish;
+                        analysis.UNFINISH_QTY = unfinish;
+                        analysis.FINISH_RATE = finishRate;
+                        analysis.NORMAL_FINISH_RATE = normalFinishRate;
+                        formAnalysis.Add(analysis);
                     }
-                    var count = taskAnalysis.Count();
-                    var finish = taskAnalysis.Count(t => t.IS_OVERTIME == 0 && t.IS_PUBLISH == MS.Domain.Enums.FOPreMeetingStatusEnum.归档);
-                    var overfinish = taskAnalysis.Count(t => t.IS_OVERTIME == 1 && t.IS_PUBLISH == MS.Domain.Enums.FOPreMeetingStatusEnum.归档);
-                    var unfinish = count - finish - overfinish;
-                    var temp = count == 0 ? 0 : (double)(finish + overfinish) / count * 100;
-                    var finishRate = temp.ToString("0") + "%";
-                    var temp2 = count == 0 ? 0 : (double)finish / count * 100;
-                    var normalFinishRate = temp2.ToString("0") + "%";
-                    var analysis = allAnalysis.FirstOrDefault(t => t.MOUDLE_NAME == "风险管理" && t.FORM_NAME == "作业任务识别分析");
-                    if (analysis == null)
+                    else
                     {
-                        analysis = new T_BI_FORM_RUN_ANALYSIS();
-                        analysis.MOUDLE_NAME = "风险管理";
-                        analysis.FORM_NAME = "作业任务识别分析";
-                        analysis.NUM = 9;
-                        analysis.ORG_ID = filter.OrgId;
+                        var analysis = allAnalysis.FirstOrDefault(t => t.MOUDLE_NAME == "风险管理" && t.FORM_NAME == "作业任务识别分析");
+                        if (analysis == null)
+                        {
+                            analysis = new T_BI_FORM_RUN_ANALYSIS();
+                            analysis.MOUDLE_NAME = "风险管理";
+                            analysis.FORM_NAME = "作业任务识别分析";
+                            analysis.NUM = 9;
+                            analysis.ORG_ID = filter.OrgId;
+                        }
+                        analysis.TOTAL_QTY = 0;
+                        analysis.FINISH_QTY = 0;
+                        analysis.OVER_FINISH_QTY = 0;
+                        analysis.UNFINISH_QTY = 0;
+                        analysis.FINISH_RATE = "0%";
+                        analysis.NORMAL_FINISH_RATE = "0%";
+                        formAnalysis.Add(analysis);
                     }
-                    analysis.TOTAL_QTY = count;
-                    analysis.FINISH_QTY = finish;
-                    analysis.OVER_FINISH_QTY = overfinish;
-                    analysis.UNFINISH_QTY = unfinish;
-                    analysis.FINISH_RATE = finishRate;
-                    analysis.NORMAL_FINISH_RATE = normalFinishRate;
-                    formAnalysis.Add(analysis);
-                }
-                else
-                {
-                    var analysis = allAnalysis.FirstOrDefault(t => t.MOUDLE_NAME == "风险管理" && t.FORM_NAME == "作业任务识别分析");
-                    if (analysis == null)
-                    {
-                        analysis = new T_BI_FORM_RUN_ANALYSIS();
-                        analysis.MOUDLE_NAME = "风险管理";
-                        analysis.FORM_NAME = "作业任务识别分析";
-                        analysis.NUM = 9;
-                        analysis.ORG_ID = filter.OrgId;
-                    }
-                    analysis.TOTAL_QTY = 0;
-                    analysis.FINISH_QTY = 0;
-                    analysis.OVER_FINISH_QTY = 0;
-                    analysis.UNFINISH_QTY = 0;
-                    analysis.FINISH_RATE = "0%";
-                    analysis.NORMAL_FINISH_RATE = "0%";
-                    formAnalysis.Add(analysis);
-                }
-                #endregion
+                    #endregion
 
-                #region 一般任务分析
-                if (taskOrdinary.Any())
-                {
-                    foreach (var item in taskOrdinary)
+                    #region 一般任务分析
+                    if (taskOrdinary.Any())
                     {
-                        var task = tasks.FirstOrDefault(t => t.SOURCE_DATA_ID == item.ID);
-                        if (task == null)
-                            item.IS_OVERTIME = 0;
-                        else
-                            item.IS_OVERTIME = 1;
+                        foreach (var item in taskOrdinary)
+                        {
+                            var task = tasks.FirstOrDefault(t => t.SOURCE_DATA_ID == item.ID);
+                            if (task == null)
+                                item.IS_OVERTIME = 0;
+                            else
+                                item.IS_OVERTIME = 1;
+                        }
+                        var count = taskOrdinary.Count();
+                        var finish = taskOrdinary.Count(t => t.IS_OVERTIME == 0 && t.IS_PUBLISH == MS.Domain.Enums.FOPreMeetingStatusEnum.归档);
+                        var overfinish = taskOrdinary.Count(t => t.IS_OVERTIME == 1 && t.IS_PUBLISH == MS.Domain.Enums.FOPreMeetingStatusEnum.归档);
+                        var unfinish = count - finish - overfinish;
+                        var temp = count == 0 ? 0 : (double)(finish + overfinish) / count * 100;
+                        var finishRate = temp.ToString("0") + "%";
+                        var temp2 = count == 0 ? 0 : (double)finish / count * 100;
+                        var normalFinishRate = temp2.ToString("0") + "%";
+                        var analysis = allAnalysis.FirstOrDefault(t => t.MOUDLE_NAME == "风险管理" && t.FORM_NAME == "一般任务分析");
+                        if (analysis == null)
+                        {
+                            analysis = new T_BI_FORM_RUN_ANALYSIS();
+                            analysis.MOUDLE_NAME = "风险管理";
+                            analysis.FORM_NAME = "一般任务分析";
+                            analysis.NUM = 10;
+                            analysis.ORG_ID = filter.OrgId;
+                        }
+                        analysis.TOTAL_QTY = count;
+                        analysis.FINISH_QTY = finish;
+                        analysis.OVER_FINISH_QTY = overfinish;
+                        analysis.UNFINISH_QTY = unfinish;
+                        analysis.FINISH_RATE = finishRate;
+                        analysis.NORMAL_FINISH_RATE = normalFinishRate;
+                        formAnalysis.Add(analysis);
                     }
-                    var count = taskOrdinary.Count();
-                    var finish = taskOrdinary.Count(t => t.IS_OVERTIME == 0 && t.IS_PUBLISH == MS.Domain.Enums.FOPreMeetingStatusEnum.归档);
-                    var overfinish = taskOrdinary.Count(t => t.IS_OVERTIME == 1 && t.IS_PUBLISH == MS.Domain.Enums.FOPreMeetingStatusEnum.归档);
-                    var unfinish = count - finish - overfinish;
-                    var temp = count == 0 ? 0 : (double)(finish + overfinish) / count * 100;
-                    var finishRate = temp.ToString("0") + "%";
-                    var temp2 = count == 0 ? 0 : (double)finish / count * 100;
-                    var normalFinishRate = temp2.ToString("0") + "%";
-                    var analysis = allAnalysis.FirstOrDefault(t => t.MOUDLE_NAME == "风险管理" && t.FORM_NAME == "一般任务分析");
-                    if (analysis == null)
+                    else
                     {
-                        analysis = new T_BI_FORM_RUN_ANALYSIS();
-                        analysis.MOUDLE_NAME = "风险管理";
-                        analysis.FORM_NAME = "一般任务分析";
-                        analysis.NUM = 10;
-                        analysis.ORG_ID = filter.OrgId;
+                        var analysis = allAnalysis.FirstOrDefault(t => t.MOUDLE_NAME == "风险管理" && t.FORM_NAME == "一般任务分析");
+                        if (analysis == null)
+                        {
+                            analysis = new T_BI_FORM_RUN_ANALYSIS();
+                            analysis.MOUDLE_NAME = "风险管理";
+                            analysis.FORM_NAME = "一般任务分析";
+                            analysis.NUM = 10;
+                            analysis.ORG_ID = filter.OrgId;
+                        }
+                        analysis.TOTAL_QTY = 0;
+                        analysis.FINISH_QTY = 0;
+                        analysis.OVER_FINISH_QTY = 0;
+                        analysis.UNFINISH_QTY = 0;
+                        analysis.FINISH_RATE = "0%";
+                        analysis.NORMAL_FINISH_RATE = "0%";
+                        formAnalysis.Add(analysis);
                     }
-                    analysis.TOTAL_QTY = count;
-                    analysis.FINISH_QTY = finish;
-                    analysis.OVER_FINISH_QTY = overfinish;
-                    analysis.UNFINISH_QTY = unfinish;
-                    analysis.FINISH_RATE = finishRate;
-                    analysis.NORMAL_FINISH_RATE = normalFinishRate;
-                    formAnalysis.Add(analysis);
-                }
-                else
-                {
-                    var analysis = allAnalysis.FirstOrDefault(t => t.MOUDLE_NAME == "风险管理" && t.FORM_NAME == "一般任务分析");
-                    if (analysis == null)
-                    {
-                        analysis = new T_BI_FORM_RUN_ANALYSIS();
-                        analysis.MOUDLE_NAME = "风险管理";
-                        analysis.FORM_NAME = "一般任务分析";
-                        analysis.NUM = 10;
-                        analysis.ORG_ID = filter.OrgId;
-                    }
-                    analysis.TOTAL_QTY = 0;
-                    analysis.FINISH_QTY = 0;
-                    analysis.OVER_FINISH_QTY = 0;
-                    analysis.UNFINISH_QTY = 0;
-                    analysis.FINISH_RATE = "0%";
-                    analysis.NORMAL_FINISH_RATE = "0%";
-                    formAnalysis.Add(analysis);
-                }
-                #endregion
+                    #endregion
 
-                #region 关键任务分析
-                if (taskCrucial.Any())
-                {
-                    foreach (var item in taskCrucial)
+                    #region 关键任务分析
+                    if (taskCrucial.Any())
                     {
-                        var task = tasks.FirstOrDefault(t => t.SOURCE_DATA_ID == item.ID);
-                        if (task == null)
-                            item.IS_OVERTIME = 0;
-                        else
-                            item.IS_OVERTIME = 1;
+                        foreach (var item in taskCrucial)
+                        {
+                            var task = tasks.FirstOrDefault(t => t.SOURCE_DATA_ID == item.ID);
+                            if (task == null)
+                                item.IS_OVERTIME = 0;
+                            else
+                                item.IS_OVERTIME = 1;
+                        }
+                        var count = taskCrucial.Count();
+                        var finish = taskCrucial.Count(t => t.IS_OVERTIME == 0 && t.IS_PUBLISH == MS.Domain.Enums.FOPreMeetingStatusEnum.归档);
+                        var overfinish = taskCrucial.Count(t => t.IS_OVERTIME == 1 && t.IS_PUBLISH == MS.Domain.Enums.FOPreMeetingStatusEnum.归档);
+                        var unfinish = count - finish - overfinish;
+                        var temp = count == 0 ? 0 : (double)(finish + overfinish) / count * 100;
+                        var finishRate = temp.ToString("0") + "%";
+                        var temp2 = count == 0 ? 0 : (double)finish / count * 100;
+                        var normalFinishRate = temp2.ToString("0") + "%";
+                        var analysis = allAnalysis.FirstOrDefault(t => t.MOUDLE_NAME == "风险管理" && t.FORM_NAME == "关键任务分析");
+                        if (analysis == null)
+                        {
+                            analysis = new T_BI_FORM_RUN_ANALYSIS();
+                            analysis.MOUDLE_NAME = "风险管理";
+                            analysis.FORM_NAME = "关键任务分析";
+                            analysis.NUM = 11;
+                            analysis.ORG_ID = filter.OrgId;
+                        }
+                        analysis.TOTAL_QTY = count;
+                        analysis.FINISH_QTY = finish;
+                        analysis.OVER_FINISH_QTY = overfinish;
+                        analysis.UNFINISH_QTY = unfinish;
+                        analysis.FINISH_RATE = finishRate;
+                        analysis.NORMAL_FINISH_RATE = normalFinishRate;
+                        formAnalysis.Add(analysis);
                     }
-                    var count = taskCrucial.Count();
-                    var finish = taskCrucial.Count(t => t.IS_OVERTIME == 0 && t.IS_PUBLISH == MS.Domain.Enums.FOPreMeetingStatusEnum.归档);
-                    var overfinish = taskCrucial.Count(t => t.IS_OVERTIME == 1 && t.IS_PUBLISH == MS.Domain.Enums.FOPreMeetingStatusEnum.归档);
-                    var unfinish = count - finish - overfinish;
-                    var temp = count == 0 ? 0 : (double)(finish + overfinish) / count * 100;
-                    var finishRate = temp.ToString("0") + "%";
-                    var temp2 = count == 0 ? 0 : (double)finish / count * 100;
-                    var normalFinishRate = temp2.ToString("0") + "%";
-                    var analysis = allAnalysis.FirstOrDefault(t => t.MOUDLE_NAME == "风险管理" && t.FORM_NAME == "关键任务分析");
-                    if (analysis == null)
+                    else
                     {
-                        analysis = new T_BI_FORM_RUN_ANALYSIS();
-                        analysis.MOUDLE_NAME = "风险管理";
-                        analysis.FORM_NAME = "关键任务分析";
-                        analysis.NUM = 11;
-                        analysis.ORG_ID = filter.OrgId;
+                        var analysis = allAnalysis.FirstOrDefault(t => t.MOUDLE_NAME == "风险管理" && t.FORM_NAME == "关键任务分析");
+                        if (analysis == null)
+                        {
+                            analysis = new T_BI_FORM_RUN_ANALYSIS();
+                            analysis.MOUDLE_NAME = "风险管理";
+                            analysis.FORM_NAME = "关键任务分析";
+                            analysis.NUM = 11;
+                            analysis.ORG_ID = filter.OrgId;
+                        }
+                        analysis.TOTAL_QTY = 0;
+                        analysis.FINISH_QTY = 0;
+                        analysis.OVER_FINISH_QTY = 0;
+                        analysis.UNFINISH_QTY = 0;
+                        analysis.FINISH_RATE = "0%";
+                        analysis.NORMAL_FINISH_RATE = "0%";
+                        formAnalysis.Add(analysis);
                     }
-                    analysis.TOTAL_QTY = count;
-                    analysis.FINISH_QTY = finish;
-                    analysis.OVER_FINISH_QTY = overfinish;
-                    analysis.UNFINISH_QTY = unfinish;
-                    analysis.FINISH_RATE = finishRate;
-                    analysis.NORMAL_FINISH_RATE = normalFinishRate;
-                    formAnalysis.Add(analysis);
-                }
-                else
-                {
-                    var analysis = allAnalysis.FirstOrDefault(t => t.MOUDLE_NAME == "风险管理" && t.FORM_NAME == "关键任务分析");
-                    if (analysis == null)
-                    {
-                        analysis = new T_BI_FORM_RUN_ANALYSIS();
-                        analysis.MOUDLE_NAME = "风险管理";
-                        analysis.FORM_NAME = "关键任务分析";
-                        analysis.NUM = 11;
-                        analysis.ORG_ID = filter.OrgId;
-                    }
-                    analysis.TOTAL_QTY = 0;
-                    analysis.FINISH_QTY = 0;
-                    analysis.OVER_FINISH_QTY = 0;
-                    analysis.UNFINISH_QTY = 0;
-                    analysis.FINISH_RATE = "0%";
-                    analysis.NORMAL_FINISH_RATE = "0%";
-                    formAnalysis.Add(analysis);
-                }
-                #endregion
+                    #endregion
 
-                #region 许可任务分析
-                if (taskLicense.Any())
-                {
-                    foreach (var item in taskLicense)
+                    #region 许可任务分析
+                    if (taskLicense.Any())
                     {
-                        var task = tasks.FirstOrDefault(t => t.SOURCE_DATA_ID == item.ID);
-                        if (task == null)
-                            item.IS_OVERTIME = 0;
-                        else
-                            item.IS_OVERTIME = 1;
+                        foreach (var item in taskLicense)
+                        {
+                            var task = tasks.FirstOrDefault(t => t.SOURCE_DATA_ID == item.ID);
+                            if (task == null)
+                                item.IS_OVERTIME = 0;
+                            else
+                                item.IS_OVERTIME = 1;
+                        }
+                        var count = taskLicense.Count();
+                        var finish = taskLicense.Count(t => t.IS_OVERTIME == 0 && t.IS_PUBLISH == MS.Domain.Enums.FOPreMeetingStatusEnum.归档);
+                        var overfinish = taskLicense.Count(t => t.IS_OVERTIME == 1 && t.IS_PUBLISH == MS.Domain.Enums.FOPreMeetingStatusEnum.归档);
+                        var unfinish = count - finish - overfinish;
+                        var temp = count == 0 ? 0 : (double)(finish + overfinish) / count * 100;
+                        var finishRate = temp.ToString("0") + "%";
+                        var temp2 = count == 0 ? 0 : (double)finish / count * 100;
+                        var normalFinishRate = temp2.ToString("0") + "%";
+                        var analysis = allAnalysis.FirstOrDefault(t => t.MOUDLE_NAME == "风险管理" && t.FORM_NAME == "许可任务分析");
+                        if (analysis == null)
+                        {
+                            analysis = new T_BI_FORM_RUN_ANALYSIS();
+                            analysis.MOUDLE_NAME = "风险管理";
+                            analysis.FORM_NAME = "许可任务分析";
+                            analysis.NUM = 12;
+                            analysis.ORG_ID = filter.OrgId;
+                        }
+                        analysis.TOTAL_QTY = count;
+                        analysis.FINISH_QTY = finish;
+                        analysis.OVER_FINISH_QTY = overfinish;
+                        analysis.UNFINISH_QTY = unfinish;
+                        analysis.FINISH_RATE = finishRate;
+                        analysis.NORMAL_FINISH_RATE = normalFinishRate;
+                        formAnalysis.Add(analysis);
                     }
-                    var count = taskLicense.Count();
-                    var finish = taskLicense.Count(t => t.IS_OVERTIME == 0 && t.IS_PUBLISH == MS.Domain.Enums.FOPreMeetingStatusEnum.归档);
-                    var overfinish = taskLicense.Count(t => t.IS_OVERTIME == 1 && t.IS_PUBLISH == MS.Domain.Enums.FOPreMeetingStatusEnum.归档);
-                    var unfinish = count - finish - overfinish;
-                    var temp = count == 0 ? 0 : (double)(finish + overfinish) / count * 100;
-                    var finishRate = temp.ToString("0") + "%";
-                    var temp2 = count == 0 ? 0 : (double)finish / count * 100;
-                    var normalFinishRate = temp2.ToString("0") + "%";
-                    var analysis = allAnalysis.FirstOrDefault(t => t.MOUDLE_NAME == "风险管理" && t.FORM_NAME == "许可任务分析");
-                    if (analysis == null)
+                    else
                     {
-                        analysis = new T_BI_FORM_RUN_ANALYSIS();
-                        analysis.MOUDLE_NAME = "风险管理";
-                        analysis.FORM_NAME = "许可任务分析";
-                        analysis.NUM = 12;
-                        analysis.ORG_ID = filter.OrgId;
+                        var analysis = allAnalysis.FirstOrDefault(t => t.MOUDLE_NAME == "风险管理" && t.FORM_NAME == "许可任务分析");
+                        if (analysis == null)
+                        {
+                            analysis = new T_BI_FORM_RUN_ANALYSIS();
+                            analysis.MOUDLE_NAME = "风险管理";
+                            analysis.FORM_NAME = "许可任务分析";
+                            analysis.NUM = 12;
+                            analysis.ORG_ID = filter.OrgId;
+                        }
+                        analysis.TOTAL_QTY = 0;
+                        analysis.FINISH_QTY = 0;
+                        analysis.OVER_FINISH_QTY = 0;
+                        analysis.UNFINISH_QTY = 0;
+                        analysis.FINISH_RATE = "0%";
+                        analysis.NORMAL_FINISH_RATE = "0%";
+                        formAnalysis.Add(analysis);
                     }
-                    analysis.TOTAL_QTY = count;
-                    analysis.FINISH_QTY = finish;
-                    analysis.OVER_FINISH_QTY = overfinish;
-                    analysis.UNFINISH_QTY = unfinish;
-                    analysis.FINISH_RATE = finishRate;
-                    analysis.NORMAL_FINISH_RATE = normalFinishRate;
-                    formAnalysis.Add(analysis);
-                }
-                else
-                {
-                    var analysis = allAnalysis.FirstOrDefault(t => t.MOUDLE_NAME == "风险管理" && t.FORM_NAME == "许可任务分析");
-                    if (analysis == null)
-                    {
-                        analysis = new T_BI_FORM_RUN_ANALYSIS();
-                        analysis.MOUDLE_NAME = "风险管理";
-                        analysis.FORM_NAME = "许可任务分析";
-                        analysis.NUM = 12;
-                        analysis.ORG_ID = filter.OrgId;
-                    }
-                    analysis.TOTAL_QTY = 0;
-                    analysis.FINISH_QTY = 0;
-                    analysis.OVER_FINISH_QTY = 0;
-                    analysis.UNFINISH_QTY = 0;
-                    analysis.FINISH_RATE = "0%";
-                    analysis.NORMAL_FINISH_RATE = "0%";
-                    formAnalysis.Add(analysis);
-                }
-                #endregion
+                    #endregion
 
-                #region 作业任务分析文件发布
-                if (filePublish.Any())
-                {
-                    foreach (var item in filePublish)
+                    #region 作业任务分析文件发布
+                    if (filePublish.Any())
                     {
-                        var task = tasks.FirstOrDefault(t => t.SOURCE_DATA_ID == item.ID);
-                        if (task == null)
-                            item.IS_OVERTIME = 0;
-                        else
-                            item.IS_OVERTIME = 1;
+                        foreach (var item in filePublish)
+                        {
+                            var task = tasks.FirstOrDefault(t => t.SOURCE_DATA_ID == item.ID);
+                            if (task == null)
+                                item.IS_OVERTIME = 0;
+                            else
+                                item.IS_OVERTIME = 1;
+                        }
+                        var count = filePublish.Count();
+                        var finish = filePublish.Count(t => t.IS_OVERTIME == 0);
+                        var overfinish = filePublish.Count(t => t.IS_OVERTIME == 1);
+                        var unfinish = count - finish - overfinish;
+                        var temp = count == 0 ? 0 : (double)(finish + overfinish) / count * 100;
+                        var finishRate = temp.ToString("0") + "%";
+                        var temp2 = count == 0 ? 0 : (double)finish / count * 100;
+                        var normalFinishRate = temp2.ToString("0") + "%";
+                        var analysis = allAnalysis.FirstOrDefault(t => t.MOUDLE_NAME == "风险管理" && t.FORM_NAME == "作业任务分析文件发布");
+                        if (analysis == null)
+                        {
+                            analysis = new T_BI_FORM_RUN_ANALYSIS();
+                            analysis.MOUDLE_NAME = "风险管理";
+                            analysis.FORM_NAME = "作业任务分析文件发布";
+                            analysis.NUM = 13;
+                            analysis.ORG_ID = filter.OrgId;
+                        }
+                        analysis.TOTAL_QTY = count;
+                        analysis.FINISH_QTY = finish;
+                        analysis.OVER_FINISH_QTY = overfinish;
+                        analysis.UNFINISH_QTY = unfinish;
+                        analysis.FINISH_RATE = finishRate;
+                        analysis.NORMAL_FINISH_RATE = normalFinishRate;
+                        formAnalysis.Add(analysis);
                     }
-                    var count = filePublish.Count();
-                    var finish = filePublish.Count(t => t.IS_OVERTIME == 0);
-                    var overfinish = filePublish.Count(t => t.IS_OVERTIME == 1);
-                    var unfinish = count - finish - overfinish;
-                    var temp = count == 0 ? 0 : (double)(finish + overfinish) / count * 100;
-                    var finishRate = temp.ToString("0") + "%";
-                    var temp2 = count == 0 ? 0 : (double)finish / count * 100;
-                    var normalFinishRate = temp2.ToString("0") + "%";
-                    var analysis = allAnalysis.FirstOrDefault(t => t.MOUDLE_NAME == "风险管理" && t.FORM_NAME == "作业任务分析文件发布");
-                    if (analysis == null)
+                    else
                     {
-                        analysis = new T_BI_FORM_RUN_ANALYSIS();
-                        analysis.MOUDLE_NAME = "风险管理";
-                        analysis.FORM_NAME = "作业任务分析文件发布";
-                        analysis.NUM = 13;
-                        analysis.ORG_ID = filter.OrgId;
+                        var analysis = allAnalysis.FirstOrDefault(t => t.MOUDLE_NAME == "风险管理" && t.FORM_NAME == "作业任务分析文件发布");
+                        if (analysis == null)
+                        {
+                            analysis = new T_BI_FORM_RUN_ANALYSIS();
+                            analysis.MOUDLE_NAME = "风险管理";
+                            analysis.FORM_NAME = "作业任务分析文件发布";
+                            analysis.NUM = 13;
+                            analysis.ORG_ID = filter.OrgId;
+                        }
+                        analysis.TOTAL_QTY = 0;
+                        analysis.FINISH_QTY = 0;
+                        analysis.OVER_FINISH_QTY = 0;
+                        analysis.UNFINISH_QTY = 0;
+                        analysis.FINISH_RATE = "0%";
+                        analysis.NORMAL_FINISH_RATE = "0%";
+                        formAnalysis.Add(analysis);
                     }
-                    analysis.TOTAL_QTY = count;
-                    analysis.FINISH_QTY = finish;
-                    analysis.OVER_FINISH_QTY = overfinish;
-                    analysis.UNFINISH_QTY = unfinish;
-                    analysis.FINISH_RATE = finishRate;
-                    analysis.NORMAL_FINISH_RATE = normalFinishRate;
-                    formAnalysis.Add(analysis);
-                }
-                else
-                {
-                    var analysis = allAnalysis.FirstOrDefault(t => t.MOUDLE_NAME == "风险管理" && t.FORM_NAME == "作业任务分析文件发布");
-                    if (analysis == null)
-                    {
-                        analysis = new T_BI_FORM_RUN_ANALYSIS();
-                        analysis.MOUDLE_NAME = "风险管理";
-                        analysis.FORM_NAME = "作业任务分析文件发布";
-                        analysis.NUM = 13;
-                        analysis.ORG_ID = filter.OrgId;
-                    }
-                    analysis.TOTAL_QTY = 0;
-                    analysis.FINISH_QTY = 0;
-                    analysis.OVER_FINISH_QTY = 0;
-                    analysis.UNFINISH_QTY = 0;
-                    analysis.FINISH_RATE = "0%";
-                    analysis.NORMAL_FINISH_RATE = "0%";
-                    formAnalysis.Add(analysis);
-                }
-                #endregion
+                    #endregion
 
-                this.UnifiedCommit(() =>
+                    this.UnifiedCommit(() =>
+                    {
+                        if (formAnalysis != null && formAnalysis.Any())
+                            BantchSaveEntityNoCommit(formAnalysis);
+                    });
+                }
+                catch (Exception ex)
                 {
-                    if(formAnalysis != null && formAnalysis.Any())
-                        BantchSaveEntityNoCommit(formAnalysis);
-                });
+                    if (!string.IsNullOrEmpty(ex.StackTrace))
+                        throw new Exception("错误日志:[StackTrace]" + ex.StackTrace);
+                    else
+                        throw new Exception("【" + HttpContext.Request.Path + "】错误日志:[Message]" + ex.Message);
+                }
                 return true;
             });
         }
@@ -853,329 +863,339 @@ namespace APT.PP.WebApi.Controllers.Api.PP
         {
             return SafeExecute(() =>
             {
-                var sourceIds = new List();
-                List formAnalysis = new List();
-                var newFilter = new BaseFilter(filter.OrgId);
-                newFilter.SelectField = new List { "ID", "STATUSPLAN", "STATUCHECK" };
-                //检查任务制定
-                var evalPlan = this.GetEntities(t => true, newFilter);
-                var evalPlanIds = evalPlan.Select(t => t.ID).ToList();
-                sourceIds.AddRange(evalPlanIds);
-                //检查记录
-                var noticeRelease = evalPlan.Where(t => t.STATUSPLAN == (int)HMAuditStatusEnmu.归档).ToList();
-                var noticeReleaseIds = noticeRelease.Select(t => t.ID).ToList();
-                sourceIds.AddRange(noticeReleaseIds);
-                //隐患上报
-                newFilter.SelectField = new List { "ID", "SUBMIT_STATUS" };
-                var riskTask = this.GetEntities(t => true, newFilter);
-                var riskTaskIds = riskTask.Select(t => t.ID).ToList();
-                sourceIds.AddRange(riskTaskIds);
-                //隐患整改记录
-                newFilter.SelectField = new List { "ID", "DEALSITUATION" };
-                var riskRecord = this.GetEntities(t => true, newFilter);
-                var riskRecordIds = riskRecord.Select(t => t.ID).ToList();
-                sourceIds.AddRange(riskRecordIds);
-                //延期整改申请
-                newFilter.SelectField = new List { "ID" };
-                var hazardTask = this.GetEntities(t => true, newFilter);
-                var hazardTaskIds = hazardTask.Select(t => t.ID).ToList();
-                sourceIds.AddRange(hazardTaskIds);
-                //只取待办超期的
-                newFilter.SelectField = new List { "SOURCE_DATA_ID" };
-                var tasks = this.GetEntities(t => t.NOTICE_STATUS == 2, newFilter);
-                tasks = tasks.Where(t => sourceIds.Contains(t.SOURCE_DATA_ID.Value)).ToList();
-                //表单运行情况分析表
-                var allAnalysis = this.GetEntities(t => true, new BaseFilter(filter.OrgId));
-                #region 检查任务制定
-                if (evalPlan.Any())
+                try
                 {
-                    foreach (var item in evalPlan)
+                    var sourceIds = new List();
+                    List formAnalysis = new List();
+                    var newFilter = new BaseFilter(filter.OrgId);
+                    newFilter.SelectField = new List { "ID", "STATUSPLAN", "STATUCHECK" };
+                    //检查任务制定
+                    var evalPlan = this.GetEntities(t => true, newFilter);
+                    var evalPlanIds = evalPlan.Select(t => t.ID).ToList();
+                    sourceIds.AddRange(evalPlanIds);
+                    //检查记录
+                    var noticeRelease = evalPlan.Where(t => t.STATUSPLAN == (int)HMAuditStatusEnmu.归档).ToList();
+                    var noticeReleaseIds = noticeRelease.Select(t => t.ID).ToList();
+                    sourceIds.AddRange(noticeReleaseIds);
+                    //隐患上报
+                    newFilter.SelectField = new List { "ID", "SUBMIT_STATUS" };
+                    var riskTask = this.GetEntities(t => true, newFilter);
+                    var riskTaskIds = riskTask.Select(t => t.ID).ToList();
+                    sourceIds.AddRange(riskTaskIds);
+                    //隐患整改记录
+                    newFilter.SelectField = new List { "ID", "DEALSITUATION" };
+                    var riskRecord = this.GetEntities(t => true, newFilter);
+                    var riskRecordIds = riskRecord.Select(t => t.ID).ToList();
+                    sourceIds.AddRange(riskRecordIds);
+                    //延期整改申请
+                    newFilter.SelectField = new List { "ID" };
+                    var hazardTask = this.GetEntities(t => true, newFilter);
+                    var hazardTaskIds = hazardTask.Select(t => t.ID).ToList();
+                    sourceIds.AddRange(hazardTaskIds);
+                    //只取待办超期的
+                    newFilter.SelectField = new List { "SOURCE_DATA_ID" };
+                    var tasks = this.GetEntities(t => t.NOTICE_STATUS == 2, newFilter);
+                    tasks = tasks.Where(t => sourceIds.Contains(t.SOURCE_DATA_ID.Value)).ToList();
+                    //表单运行情况分析表
+                    var allAnalysis = this.GetEntities(t => true, new BaseFilter(filter.OrgId));
+                    #region 检查任务制定
+                    if (evalPlan.Any())
                     {
-                        var task = tasks.FirstOrDefault(t => t.SOURCE_DATA_ID == item.ID);
-                        if (task == null)
-                            item.IS_OVERTIME = 0;
-                        else
-                            item.IS_OVERTIME = 1;
+                        foreach (var item in evalPlan)
+                        {
+                            var task = tasks.FirstOrDefault(t => t.SOURCE_DATA_ID == item.ID);
+                            if (task == null)
+                                item.IS_OVERTIME = 0;
+                            else
+                                item.IS_OVERTIME = 1;
+                        }
+                        var count = evalPlan.Count();
+                        var finish = evalPlan.Count(t => t.IS_OVERTIME == 0 && t.STATUSPLAN == (int)HMAuditStatusEnmu.归档);
+                        var overfinish = evalPlan.Count(t => t.IS_OVERTIME == 1 && t.STATUSPLAN == (int)HMAuditStatusEnmu.归档);
+                        var unfinish = count - finish - overfinish;
+                        var temp = count == 0 ? 0 : (double)(finish + overfinish) / count * 100;
+                        var finishRate = temp.ToString("0") + "%";
+                        var temp2 = count == 0 ? 0 : (double)finish / count * 100;
+                        var normalFinishRate = temp2.ToString("0") + "%";
+                        var analysis = allAnalysis.FirstOrDefault(t => t.MOUDLE_NAME == "安全检查" && t.FORM_NAME == "检查任务制定");
+                        if (analysis == null)
+                        {
+                            analysis = new T_BI_FORM_RUN_ANALYSIS();
+                            analysis.MOUDLE_NAME = "安全检查";
+                            analysis.FORM_NAME = "检查任务制定";
+                            analysis.NUM = 20;
+                            analysis.ORG_ID = filter.OrgId;
+                        }
+                        analysis.TOTAL_QTY = count;
+                        analysis.FINISH_QTY = finish;
+                        analysis.OVER_FINISH_QTY = overfinish;
+                        analysis.UNFINISH_QTY = unfinish;
+                        analysis.FINISH_RATE = finishRate;
+                        analysis.NORMAL_FINISH_RATE = normalFinishRate;
+                        formAnalysis.Add(analysis);
                     }
-                    var count = evalPlan.Count();
-                    var finish = evalPlan.Count(t => t.IS_OVERTIME == 0 && t.STATUSPLAN == (int)HMAuditStatusEnmu.归档);
-                    var overfinish = evalPlan.Count(t => t.IS_OVERTIME == 1 && t.STATUSPLAN == (int)HMAuditStatusEnmu.归档);
-                    var unfinish = count - finish - overfinish;
-                    var temp = count == 0 ? 0 : (double)(finish + overfinish) / count * 100;
-                    var finishRate = temp.ToString("0") + "%";
-                    var temp2 = count == 0 ? 0 : (double)finish / count * 100;
-                    var normalFinishRate = temp2.ToString("0") + "%";
-                    var analysis = allAnalysis.FirstOrDefault(t => t.MOUDLE_NAME == "安全检查" && t.FORM_NAME == "检查任务制定");
-                    if (analysis == null)
+                    else
                     {
-                        analysis = new T_BI_FORM_RUN_ANALYSIS();
-                        analysis.MOUDLE_NAME = "安全检查";
-                        analysis.FORM_NAME = "检查任务制定";
-                        analysis.NUM = 20;
-                        analysis.ORG_ID = filter.OrgId;
+                        var analysis = allAnalysis.FirstOrDefault(t => t.MOUDLE_NAME == "安全检查" && t.FORM_NAME == "检查任务制定");
+                        if (analysis == null)
+                        {
+                            analysis = new T_BI_FORM_RUN_ANALYSIS();
+                            analysis.MOUDLE_NAME = "安全检查";
+                            analysis.FORM_NAME = "检查任务制定";
+                            analysis.NUM = 20;
+                            analysis.ORG_ID = filter.OrgId;
+                        }
+                        analysis.TOTAL_QTY = 0;
+                        analysis.FINISH_QTY = 0;
+                        analysis.OVER_FINISH_QTY = 0;
+                        analysis.UNFINISH_QTY = 0;
+                        analysis.FINISH_RATE = "0%";
+                        analysis.NORMAL_FINISH_RATE = "0%";
+                        formAnalysis.Add(analysis);
                     }
-                    analysis.TOTAL_QTY = count;
-                    analysis.FINISH_QTY = finish;
-                    analysis.OVER_FINISH_QTY = overfinish;
-                    analysis.UNFINISH_QTY = unfinish;
-                    analysis.FINISH_RATE = finishRate;
-                    analysis.NORMAL_FINISH_RATE = normalFinishRate;
-                    formAnalysis.Add(analysis);
-                }
-                else
-                {
-                    var analysis = allAnalysis.FirstOrDefault(t => t.MOUDLE_NAME == "安全检查" && t.FORM_NAME == "检查任务制定");
-                    if (analysis == null)
-                    {
-                        analysis = new T_BI_FORM_RUN_ANALYSIS();
-                        analysis.MOUDLE_NAME = "安全检查";
-                        analysis.FORM_NAME = "检查任务制定";
-                        analysis.NUM = 20;
-                        analysis.ORG_ID = filter.OrgId;
-                    }
-                    analysis.TOTAL_QTY = 0;
-                    analysis.FINISH_QTY = 0;
-                    analysis.OVER_FINISH_QTY = 0;
-                    analysis.UNFINISH_QTY = 0;
-                    analysis.FINISH_RATE = "0%";
-                    analysis.NORMAL_FINISH_RATE = "0%";
-                    formAnalysis.Add(analysis);
-                }
-                #endregion
+                    #endregion
 
-                #region 检查记录
-                if (noticeRelease.Any())
-                {
-                    foreach (var item in noticeRelease)
+                    #region 检查记录
+                    if (noticeRelease.Any())
                     {
-                        var task = tasks.FirstOrDefault(t => t.SOURCE_DATA_ID == item.ID);
-                        if (task == null)
-                            item.IS_OVERTIME = 0;
-                        else
-                            item.IS_OVERTIME = 1;
+                        foreach (var item in noticeRelease)
+                        {
+                            var task = tasks.FirstOrDefault(t => t.SOURCE_DATA_ID == item.ID);
+                            if (task == null)
+                                item.IS_OVERTIME = 0;
+                            else
+                                item.IS_OVERTIME = 1;
+                        }
+                        var count = noticeRelease.Count();
+                        var finish = noticeRelease.Count(t => t.IS_OVERTIME == 0 && t.STATUCHECK == (int)HMAuditStatusEnmu.归档);
+                        var overfinish = noticeRelease.Count(t => t.IS_OVERTIME == 1 && t.STATUCHECK == (int)HMAuditStatusEnmu.归档);
+                        var unfinish = count - finish - overfinish;
+                        var temp = count == 0 ? 0 : (double)(finish + overfinish) / count * 100;
+                        var finishRate = temp.ToString("0") + "%";
+                        var temp2 = count == 0 ? 0 : (double)finish / count * 100;
+                        var normalFinishRate = temp2.ToString("0") + "%";
+                        var analysis = allAnalysis.FirstOrDefault(t => t.MOUDLE_NAME == "安全检查" && t.FORM_NAME == "检查记录");
+                        if (analysis == null)
+                        {
+                            analysis = new T_BI_FORM_RUN_ANALYSIS();
+                            analysis.MOUDLE_NAME = "安全检查";
+                            analysis.FORM_NAME = "检查记录";
+                            analysis.NUM = 21;
+                            analysis.ORG_ID = filter.OrgId;
+                        }
+                        analysis.TOTAL_QTY = count;
+                        analysis.FINISH_QTY = finish;
+                        analysis.OVER_FINISH_QTY = overfinish;
+                        analysis.UNFINISH_QTY = unfinish;
+                        analysis.FINISH_RATE = finishRate;
+                        analysis.NORMAL_FINISH_RATE = normalFinishRate;
+                        formAnalysis.Add(analysis);
                     }
-                    var count = noticeRelease.Count();
-                    var finish = noticeRelease.Count(t => t.IS_OVERTIME == 0 && t.STATUCHECK == (int)HMAuditStatusEnmu.归档);
-                    var overfinish = noticeRelease.Count(t => t.IS_OVERTIME == 1 && t.STATUCHECK == (int)HMAuditStatusEnmu.归档);
-                    var unfinish = count - finish - overfinish;
-                    var temp = count == 0 ? 0 : (double)(finish + overfinish) / count * 100;
-                    var finishRate = temp.ToString("0") + "%";
-                    var temp2 = count == 0 ? 0 : (double)finish / count * 100;
-                    var normalFinishRate = temp2.ToString("0") + "%";
-                    var analysis = allAnalysis.FirstOrDefault(t => t.MOUDLE_NAME == "安全检查" && t.FORM_NAME == "检查记录");
-                    if (analysis == null)
+                    else
                     {
-                        analysis = new T_BI_FORM_RUN_ANALYSIS();
-                        analysis.MOUDLE_NAME = "安全检查";
-                        analysis.FORM_NAME = "检查记录";
-                        analysis.NUM = 21;
-                        analysis.ORG_ID = filter.OrgId;
+                        var analysis = allAnalysis.FirstOrDefault(t => t.MOUDLE_NAME == "安全检查" && t.FORM_NAME == "检查记录");
+                        if (analysis == null)
+                        {
+                            analysis = new T_BI_FORM_RUN_ANALYSIS();
+                            analysis.MOUDLE_NAME = "安全检查";
+                            analysis.FORM_NAME = "检查记录";
+                            analysis.NUM = 21;
+                            analysis.ORG_ID = filter.OrgId;
+                        }
+                        analysis.TOTAL_QTY = 0;
+                        analysis.FINISH_QTY = 0;
+                        analysis.OVER_FINISH_QTY = 0;
+                        analysis.UNFINISH_QTY = 0;
+                        analysis.FINISH_RATE = "0%";
+                        analysis.NORMAL_FINISH_RATE = "0%";
+                        formAnalysis.Add(analysis);
                     }
-                    analysis.TOTAL_QTY = count;
-                    analysis.FINISH_QTY = finish;
-                    analysis.OVER_FINISH_QTY = overfinish;
-                    analysis.UNFINISH_QTY = unfinish;
-                    analysis.FINISH_RATE = finishRate;
-                    analysis.NORMAL_FINISH_RATE = normalFinishRate;
-                    formAnalysis.Add(analysis);
-                }
-                else
-                {
-                    var analysis = allAnalysis.FirstOrDefault(t => t.MOUDLE_NAME == "安全检查" && t.FORM_NAME == "检查记录");
-                    if (analysis == null)
-                    {
-                        analysis = new T_BI_FORM_RUN_ANALYSIS();
-                        analysis.MOUDLE_NAME = "安全检查";
-                        analysis.FORM_NAME = "检查记录";
-                        analysis.NUM = 21;
-                        analysis.ORG_ID = filter.OrgId;
-                    }
-                    analysis.TOTAL_QTY = 0;
-                    analysis.FINISH_QTY = 0;
-                    analysis.OVER_FINISH_QTY = 0;
-                    analysis.UNFINISH_QTY = 0;
-                    analysis.FINISH_RATE = "0%";
-                    analysis.NORMAL_FINISH_RATE = "0%";
-                    formAnalysis.Add(analysis);
-                }
-                #endregion
+                    #endregion
 
-                #region 隐患上报
-                if (riskTask.Any())
-                {
-                    foreach (var item in riskTask)
+                    #region 隐患上报
+                    if (riskTask.Any())
                     {
-                        var task = tasks.FirstOrDefault(t => t.SOURCE_DATA_ID == item.ID);
-                        if (task == null)
-                            item.IS_OVERTIME = 0;
-                        else
-                            item.IS_OVERTIME = 1;
+                        foreach (var item in riskTask)
+                        {
+                            var task = tasks.FirstOrDefault(t => t.SOURCE_DATA_ID == item.ID);
+                            if (task == null)
+                                item.IS_OVERTIME = 0;
+                            else
+                                item.IS_OVERTIME = 1;
+                        }
+                        var count = riskTask.Count();
+                        var finish = riskTask.Count(t => t.IS_OVERTIME == 0 && t.SUBMIT_STATUS == (int)BSSubmitStatusEnum.AuditOK);
+                        var overfinish = riskTask.Count(t => t.IS_OVERTIME == 1 && t.SUBMIT_STATUS == (int)BSSubmitStatusEnum.AuditOK);
+                        var unfinish = count - finish - overfinish;
+                        var temp = count == 0 ? 0 : (double)(finish + overfinish) / count * 100;
+                        var finishRate = temp.ToString("0") + "%";
+                        var temp2 = count == 0 ? 0 : (double)finish / count * 100;
+                        var normalFinishRate = temp2.ToString("0") + "%";
+                        var analysis = allAnalysis.FirstOrDefault(t => t.MOUDLE_NAME == "安全检查" && t.FORM_NAME == "隐患上报");
+                        if (analysis == null)
+                        {
+                            analysis = new T_BI_FORM_RUN_ANALYSIS();
+                            analysis.MOUDLE_NAME = "安全检查";
+                            analysis.FORM_NAME = "隐患上报";
+                            analysis.NUM = 22;
+                            analysis.ORG_ID = filter.OrgId;
+                        }
+                        analysis.TOTAL_QTY = count;
+                        analysis.FINISH_QTY = finish;
+                        analysis.OVER_FINISH_QTY = overfinish;
+                        analysis.UNFINISH_QTY = unfinish;
+                        analysis.FINISH_RATE = finishRate;
+                        analysis.NORMAL_FINISH_RATE = normalFinishRate;
+                        formAnalysis.Add(analysis);
                     }
-                    var count = riskTask.Count();
-                    var finish = riskTask.Count(t => t.IS_OVERTIME == 0 && t.SUBMIT_STATUS == (int)BSSubmitStatusEnum.AuditOK);
-                    var overfinish = riskTask.Count(t => t.IS_OVERTIME == 1 && t.SUBMIT_STATUS == (int)BSSubmitStatusEnum.AuditOK);
-                    var unfinish = count - finish - overfinish;
-                    var temp = count == 0 ? 0 : (double)(finish + overfinish) / count * 100;
-                    var finishRate = temp.ToString("0") + "%";
-                    var temp2 = count == 0 ? 0 : (double)finish / count * 100;
-                    var normalFinishRate = temp2.ToString("0") + "%";
-                    var analysis = allAnalysis.FirstOrDefault(t => t.MOUDLE_NAME == "安全检查" && t.FORM_NAME == "隐患上报");
-                    if (analysis == null)
+                    else
                     {
-                        analysis = new T_BI_FORM_RUN_ANALYSIS();
-                        analysis.MOUDLE_NAME = "安全检查";
-                        analysis.FORM_NAME = "隐患上报";
-                        analysis.NUM = 22;
-                        analysis.ORG_ID = filter.OrgId;
+                        var analysis = allAnalysis.FirstOrDefault(t => t.MOUDLE_NAME == "安全检查" && t.FORM_NAME == "隐患上报");
+                        if (analysis == null)
+                        {
+                            analysis = new T_BI_FORM_RUN_ANALYSIS();
+                            analysis.MOUDLE_NAME = "安全检查";
+                            analysis.FORM_NAME = "隐患上报";
+                            analysis.NUM = 22;
+                            analysis.ORG_ID = filter.OrgId;
+                        }
+                        analysis.TOTAL_QTY = 0;
+                        analysis.FINISH_QTY = 0;
+                        analysis.OVER_FINISH_QTY = 0;
+                        analysis.UNFINISH_QTY = 0;
+                        analysis.FINISH_RATE = "0%";
+                        analysis.NORMAL_FINISH_RATE = "0%";
+                        formAnalysis.Add(analysis);
                     }
-                    analysis.TOTAL_QTY = count;
-                    analysis.FINISH_QTY = finish;
-                    analysis.OVER_FINISH_QTY = overfinish;
-                    analysis.UNFINISH_QTY = unfinish;
-                    analysis.FINISH_RATE = finishRate;
-                    analysis.NORMAL_FINISH_RATE = normalFinishRate;
-                    formAnalysis.Add(analysis);
-                }
-                else
-                {
-                    var analysis = allAnalysis.FirstOrDefault(t => t.MOUDLE_NAME == "安全检查" && t.FORM_NAME == "隐患上报");
-                    if (analysis == null)
-                    {
-                        analysis = new T_BI_FORM_RUN_ANALYSIS();
-                        analysis.MOUDLE_NAME = "安全检查";
-                        analysis.FORM_NAME = "隐患上报";
-                        analysis.NUM = 22;
-                        analysis.ORG_ID = filter.OrgId;
-                    }
-                    analysis.TOTAL_QTY = 0;
-                    analysis.FINISH_QTY = 0;
-                    analysis.OVER_FINISH_QTY = 0;
-                    analysis.UNFINISH_QTY = 0;
-                    analysis.FINISH_RATE = "0%";
-                    analysis.NORMAL_FINISH_RATE = "0%";
-                    formAnalysis.Add(analysis);
-                }
-                #endregion
+                    #endregion
 
-                #region 隐患整改记录
-                if (riskRecord.Any())
-                {
-                    foreach (var item in riskRecord)
+                    #region 隐患整改记录
+                    if (riskRecord.Any())
                     {
-                        var task = tasks.FirstOrDefault(t => t.SOURCE_DATA_ID == item.ID);
-                        if (task == null)
-                            item.IS_OVERTIME = 0;
-                        else
-                            item.IS_OVERTIME = 1;
+                        foreach (var item in riskRecord)
+                        {
+                            var task = tasks.FirstOrDefault(t => t.SOURCE_DATA_ID == item.ID);
+                            if (task == null)
+                                item.IS_OVERTIME = 0;
+                            else
+                                item.IS_OVERTIME = 1;
+                        }
+                        var count = riskRecord.Count();
+                        var finish = riskRecord.Count(t => t.IS_OVERTIME == 0 && t.DEALSITUATION == (int)DealSituation.OK);
+                        var overfinish = riskRecord.Count(t => t.IS_OVERTIME == 1 && t.DEALSITUATION == (int)DealSituation.OK);
+                        var unfinish = count - finish - overfinish;
+                        var temp = count == 0 ? 0 : (double)(finish + overfinish) / count * 100;
+                        var finishRate = temp.ToString("0") + "%";
+                        var temp2 = count == 0 ? 0 : (double)finish / count * 100;
+                        var normalFinishRate = temp2.ToString("0") + "%";
+                        var analysis = allAnalysis.FirstOrDefault(t => t.MOUDLE_NAME == "安全检查" && t.FORM_NAME == "隐患整改记录");
+                        if (analysis == null)
+                        {
+                            analysis = new T_BI_FORM_RUN_ANALYSIS();
+                            analysis.MOUDLE_NAME = "安全检查";
+                            analysis.FORM_NAME = "隐患整改记录";
+                            analysis.NUM = 23;
+                            analysis.ORG_ID = filter.OrgId;
+                        }
+                        analysis.TOTAL_QTY = count;
+                        analysis.FINISH_QTY = finish;
+                        analysis.OVER_FINISH_QTY = overfinish;
+                        analysis.UNFINISH_QTY = unfinish;
+                        analysis.FINISH_RATE = finishRate;
+                        analysis.NORMAL_FINISH_RATE = normalFinishRate;
+                        formAnalysis.Add(analysis);
                     }
-                    var count = riskRecord.Count();
-                    var finish = riskRecord.Count(t => t.IS_OVERTIME == 0 && t.DEALSITUATION == (int)DealSituation.OK);
-                    var overfinish = riskRecord.Count(t => t.IS_OVERTIME == 1 && t.DEALSITUATION == (int)DealSituation.OK);
-                    var unfinish = count - finish - overfinish;
-                    var temp = count == 0 ? 0 : (double)(finish + overfinish) / count * 100;
-                    var finishRate = temp.ToString("0") + "%";
-                    var temp2 = count == 0 ? 0 : (double)finish / count * 100;
-                    var normalFinishRate = temp2.ToString("0") + "%";
-                    var analysis = allAnalysis.FirstOrDefault(t => t.MOUDLE_NAME == "安全检查" && t.FORM_NAME == "隐患整改记录");
-                    if (analysis == null)
+                    else
                     {
-                        analysis = new T_BI_FORM_RUN_ANALYSIS();
-                        analysis.MOUDLE_NAME = "安全检查";
-                        analysis.FORM_NAME = "隐患整改记录";
-                        analysis.NUM = 23;
-                        analysis.ORG_ID = filter.OrgId;
+                        var analysis = allAnalysis.FirstOrDefault(t => t.MOUDLE_NAME == "安全检查" && t.FORM_NAME == "隐患整改记录");
+                        if (analysis == null)
+                        {
+                            analysis = new T_BI_FORM_RUN_ANALYSIS();
+                            analysis.MOUDLE_NAME = "安全检查";
+                            analysis.FORM_NAME = "隐患整改记录";
+                            analysis.NUM = 23;
+                            analysis.ORG_ID = filter.OrgId;
+                        }
+                        analysis.TOTAL_QTY = 0;
+                        analysis.FINISH_QTY = 0;
+                        analysis.OVER_FINISH_QTY = 0;
+                        analysis.UNFINISH_QTY = 0;
+                        analysis.FINISH_RATE = "0%";
+                        analysis.NORMAL_FINISH_RATE = "0%";
+                        formAnalysis.Add(analysis);
                     }
-                    analysis.TOTAL_QTY = count;
-                    analysis.FINISH_QTY = finish;
-                    analysis.OVER_FINISH_QTY = overfinish;
-                    analysis.UNFINISH_QTY = unfinish;
-                    analysis.FINISH_RATE = finishRate;
-                    analysis.NORMAL_FINISH_RATE = normalFinishRate;
-                    formAnalysis.Add(analysis);
-                }
-                else
-                {
-                    var analysis = allAnalysis.FirstOrDefault(t => t.MOUDLE_NAME == "安全检查" && t.FORM_NAME == "隐患整改记录");
-                    if (analysis == null)
-                    {
-                        analysis = new T_BI_FORM_RUN_ANALYSIS();
-                        analysis.MOUDLE_NAME = "安全检查";
-                        analysis.FORM_NAME = "隐患整改记录";
-                        analysis.NUM = 23;
-                        analysis.ORG_ID = filter.OrgId;
-                    }
-                    analysis.TOTAL_QTY = 0;
-                    analysis.FINISH_QTY = 0;
-                    analysis.OVER_FINISH_QTY = 0;
-                    analysis.UNFINISH_QTY = 0;
-                    analysis.FINISH_RATE = "0%";
-                    analysis.NORMAL_FINISH_RATE = "0%";
-                    formAnalysis.Add(analysis);
-                }
-                #endregion
+                    #endregion
 
-                #region 延期整改申请
-                if (hazardTask.Any())
-                {
-                    foreach (var item in hazardTask)
+                    #region 延期整改申请
+                    if (hazardTask.Any())
                     {
-                        var task = tasks.FirstOrDefault(t => t.SOURCE_DATA_ID == item.ID);
-                        if (task == null)
-                            item.IS_OVERTIME = 0;
-                        else
-                            item.IS_OVERTIME = 1;
+                        foreach (var item in hazardTask)
+                        {
+                            var task = tasks.FirstOrDefault(t => t.SOURCE_DATA_ID == item.ID);
+                            if (task == null)
+                                item.IS_OVERTIME = 0;
+                            else
+                                item.IS_OVERTIME = 1;
+                        }
+                        var count = hazardTask.Count();
+                        var finish = hazardTask.Count(t => t.IS_OVERTIME == 0);
+                        var overfinish = hazardTask.Count(t => t.IS_OVERTIME == 1);
+                        var unfinish = count - finish - overfinish;
+                        var temp = count == 0 ? 0 : (double)(finish + overfinish) / count * 100;
+                        var finishRate = temp.ToString("0") + "%";
+                        var temp2 = count == 0 ? 0 : (double)finish / count * 100;
+                        var normalFinishRate = temp2.ToString("0") + "%";
+                        var analysis = allAnalysis.FirstOrDefault(t => t.MOUDLE_NAME == "安全检查" && t.FORM_NAME == "延期整改申请");
+                        if (analysis == null)
+                        {
+                            analysis = new T_BI_FORM_RUN_ANALYSIS();
+                            analysis.MOUDLE_NAME = "安全检查";
+                            analysis.FORM_NAME = "延期整改申请";
+                            analysis.NUM = 24;
+                            analysis.ORG_ID = filter.OrgId;
+                        }
+                        analysis.TOTAL_QTY = count;
+                        analysis.FINISH_QTY = finish;
+                        analysis.OVER_FINISH_QTY = overfinish;
+                        analysis.UNFINISH_QTY = unfinish;
+                        analysis.FINISH_RATE = finishRate;
+                        analysis.NORMAL_FINISH_RATE = normalFinishRate;
+                        formAnalysis.Add(analysis);
                     }
-                    var count = hazardTask.Count();
-                    var finish = hazardTask.Count(t => t.IS_OVERTIME == 0);
-                    var overfinish = hazardTask.Count(t => t.IS_OVERTIME == 1);
-                    var unfinish = count - finish - overfinish;
-                    var temp = count == 0 ? 0 : (double)(finish + overfinish) / count * 100;
-                    var finishRate = temp.ToString("0") + "%";
-                    var temp2 = count == 0 ? 0 : (double)finish / count * 100;
-                    var normalFinishRate = temp2.ToString("0") + "%";
-                    var analysis = allAnalysis.FirstOrDefault(t => t.MOUDLE_NAME == "安全检查" && t.FORM_NAME == "延期整改申请");
-                    if (analysis == null)
+                    else
                     {
-                        analysis = new T_BI_FORM_RUN_ANALYSIS();
-                        analysis.MOUDLE_NAME = "安全检查";
-                        analysis.FORM_NAME = "延期整改申请";
-                        analysis.NUM = 24;
-                        analysis.ORG_ID = filter.OrgId;
+                        var analysis = allAnalysis.FirstOrDefault(t => t.MOUDLE_NAME == "安全检查" && t.FORM_NAME == "延期整改申请");
+                        if (analysis == null)
+                        {
+                            analysis = new T_BI_FORM_RUN_ANALYSIS();
+                            analysis.MOUDLE_NAME = "安全检查";
+                            analysis.FORM_NAME = "延期整改申请";
+                            analysis.NUM = 24;
+                            analysis.ORG_ID = filter.OrgId;
+                        }
+                        analysis.TOTAL_QTY = 0;
+                        analysis.FINISH_QTY = 0;
+                        analysis.OVER_FINISH_QTY = 0;
+                        analysis.UNFINISH_QTY = 0;
+                        analysis.FINISH_RATE = "0%";
+                        analysis.NORMAL_FINISH_RATE = "0%";
+                        formAnalysis.Add(analysis);
                     }
-                    analysis.TOTAL_QTY = count;
-                    analysis.FINISH_QTY = finish;
-                    analysis.OVER_FINISH_QTY = overfinish;
-                    analysis.UNFINISH_QTY = unfinish;
-                    analysis.FINISH_RATE = finishRate;
-                    analysis.NORMAL_FINISH_RATE = normalFinishRate;
-                    formAnalysis.Add(analysis);
-                }
-                else
-                {
-                    var analysis = allAnalysis.FirstOrDefault(t => t.MOUDLE_NAME == "安全检查" && t.FORM_NAME == "延期整改申请");
-                    if (analysis == null)
-                    {
-                        analysis = new T_BI_FORM_RUN_ANALYSIS();
-                        analysis.MOUDLE_NAME = "安全检查";
-                        analysis.FORM_NAME = "延期整改申请";
-                        analysis.NUM = 24;
-                        analysis.ORG_ID = filter.OrgId;
-                    }
-                    analysis.TOTAL_QTY = 0;
-                    analysis.FINISH_QTY = 0;
-                    analysis.OVER_FINISH_QTY = 0;
-                    analysis.UNFINISH_QTY = 0;
-                    analysis.FINISH_RATE = "0%";
-                    analysis.NORMAL_FINISH_RATE = "0%";
-                    formAnalysis.Add(analysis);
-                }
-                #endregion
+                    #endregion
 
-                this.UnifiedCommit(() =>
+                    this.UnifiedCommit(() =>
+                    {
+                        if (formAnalysis != null && formAnalysis.Any())
+                            BantchSaveEntityNoCommit(formAnalysis);
+                    });
+                }
+                catch (Exception ex)
                 {
-                    if (formAnalysis != null && formAnalysis.Any())
-                        BantchSaveEntityNoCommit(formAnalysis);
-                });
+                    if (!string.IsNullOrEmpty(ex.StackTrace))
+                        throw new Exception("错误日志:[StackTrace]" + ex.StackTrace);
+                    else
+                        throw new Exception("【" + HttpContext.Request.Path + "】错误日志:[Message]" + ex.Message);
+                }
                 return true;
             });
         }
@@ -1184,575 +1204,585 @@ namespace APT.PP.WebApi.Controllers.Api.PP
         {
             return SafeExecute(() =>
             {
-                var sourceIds = new List();
-                List formAnalysis = new List();
-                var newFilter = new BaseFilter(filter.OrgId);
-                newFilter.SelectField = new List { "ID", "SHIFT_STATUS", "OVERTIME" };
-                //岗位当班工作记录
-                var evalPlan = this.GetEntities(t => true, newFilter);
-                //var evalPlanIds = evalPlan.Select(t => t.ID).ToList();
-                //sourceIds.AddRange(evalPlanIds);
-                //岗位交接班记录
-                var noticeRelease = this.GetEntities(t => true, newFilter);
-                //var noticeReleaseIds = noticeRelease.Select(t => t.ID).ToList();
-                //sourceIds.AddRange(noticeReleaseIds);
-                //班组安全活动
-                newFilter.SelectField = new List { "ID", "TA_STATUS", "OVERTIME" };
-                var riskTask = this.GetEntities(t => true, newFilter);
-                //var riskTaskIds = riskTask.Select(t => t.ID).ToList();
-                //sourceIds.AddRange(riskTaskIds);
-                //班前会议记录
-                newFilter.SelectField = new List { "ID", "PRE_MEETING_STATUS", "OVERTIME" };
-                var riskRecord = this.GetEntities(t => true, newFilter);
-                //var riskRecordIds = riskRecord.Select(t => t.ID).ToList();
-                //sourceIds.AddRange(riskRecordIds);
-                //作业活动记录(一般作业)
-                newFilter.SelectField = new List { "ID", "FORM_STATUS" };
-                var hazardTask = this.GetEntities(t => true, newFilter);
-                var hazardTaskIds = hazardTask.Select(t => t.ID).ToList();
-                sourceIds.AddRange(hazardTaskIds);
-                //作业方案讨论记录
-                var hazardRecord = this.GetEntities(t => true, newFilter);
-                var hazardRecordIds = hazardRecord.Select(t => t.ID).ToList();
-                sourceIds.AddRange(hazardRecordIds);
-                //关键作业/许可作业工作票
-                newFilter.SelectField = new List { "ID", "IS_PUBLISH" }; 
-                var evalResult = this.GetEntities(t => true, newFilter);
-                var evalResultIds = evalResult.Select(t => t.ID).ToList();
-                sourceIds.AddRange(evalResultIds);
-                //技术交底表
-                newFilter.SelectField = new List { "ID", "FORM_STATUS" };
-                var taskIdentify = this.GetEntities(t => true, newFilter);
-                var taskIdentifyIds = taskIdentify.Select(t => t.ID).ToList();
-                sourceIds.AddRange(taskIdentifyIds);
-                //作业活动记录(关键和许可作业)
-                var taskAnalysis = this.GetEntities(t => true, newFilter);
-                var taskAnalysisIds = taskAnalysis.Select(t => t.ID).ToList();
-                sourceIds.AddRange(taskAnalysisIds);
-                //只取待办超期的
-                newFilter.SelectField = new List { "SOURCE_DATA_ID" };
-                var tasks = this.GetEntities(t => t.NOTICE_STATUS == 2, newFilter);
-                tasks = tasks.Where(t => sourceIds.Contains(t.SOURCE_DATA_ID.Value)).ToList();
-                //表单运行情况分析表
-                var allAnalysis = this.GetEntities(t => true, new BaseFilter(filter.OrgId));
-                #region 岗位当班工作记录
-                if (evalPlan.Any())
+                try
                 {
-                    //foreach (var item in evalPlan)
-                    //{
-                    //    var task = tasks.FirstOrDefault(t => t.SOURCE_DATA_ID == item.ID);
-                    //    if (task == null)
-                    //        item.IS_OVERTIME = 0;//不存在为正常已办
-                    //    else
-                    //        item.IS_OVERTIME = 1;//只要存在就超期
-                    //}
-                    var count = evalPlan.Count();
-                    var finish = evalPlan.Count(t => t.OVERTIME == FOISOVERTIME.未超时 && t.SHIFT_STATUS == (int)FOShiftStatusEnum.归档);
-                    var overfinish = evalPlan.Count(t => t.OVERTIME == FOISOVERTIME.超时 && t.SHIFT_STATUS == (int)FOShiftStatusEnum.归档);
-                    var unfinish = count - finish - overfinish;
-                    var temp = count == 0 ? 0 : (double)(finish + overfinish) / count * 100;
-                    var finishRate = temp.ToString("0") + "%";
-                    var temp2 = count == 0 ? 0 : (double)finish / count * 100;
-                    var normalFinishRate = temp2.ToString("0") + "%";
-                    var analysis = allAnalysis.FirstOrDefault(t => t.MOUDLE_NAME == "作业现场管理" && t.FORM_NAME == "岗位当班工作记录");
-                    if (analysis == null)
+                    var sourceIds = new List();
+                    List formAnalysis = new List();
+                    var newFilter = new BaseFilter(filter.OrgId);
+                    newFilter.SelectField = new List { "ID", "SHIFT_STATUS", "OVERTIME" };
+                    //岗位当班工作记录
+                    var evalPlan = this.GetEntities(t => true, newFilter);
+                    //var evalPlanIds = evalPlan.Select(t => t.ID).ToList();
+                    //sourceIds.AddRange(evalPlanIds);
+                    //岗位交接班记录
+                    var noticeRelease = this.GetEntities(t => true, newFilter);
+                    //var noticeReleaseIds = noticeRelease.Select(t => t.ID).ToList();
+                    //sourceIds.AddRange(noticeReleaseIds);
+                    //班组安全活动
+                    newFilter.SelectField = new List { "ID", "TA_STATUS", "OVERTIME" };
+                    var riskTask = this.GetEntities(t => true, newFilter);
+                    //var riskTaskIds = riskTask.Select(t => t.ID).ToList();
+                    //sourceIds.AddRange(riskTaskIds);
+                    //班前会议记录
+                    newFilter.SelectField = new List { "ID", "PRE_MEETING_STATUS", "OVERTIME" };
+                    var riskRecord = this.GetEntities(t => true, newFilter);
+                    //var riskRecordIds = riskRecord.Select(t => t.ID).ToList();
+                    //sourceIds.AddRange(riskRecordIds);
+                    //作业活动记录(一般作业)
+                    newFilter.SelectField = new List { "ID", "FORM_STATUS" };
+                    var hazardTask = this.GetEntities(t => true, newFilter);
+                    var hazardTaskIds = hazardTask.Select(t => t.ID).ToList();
+                    sourceIds.AddRange(hazardTaskIds);
+                    //作业方案讨论记录
+                    var hazardRecord = this.GetEntities(t => true, newFilter);
+                    var hazardRecordIds = hazardRecord.Select(t => t.ID).ToList();
+                    sourceIds.AddRange(hazardRecordIds);
+                    //关键作业/许可作业工作票
+                    newFilter.SelectField = new List { "ID", "IS_PUBLISH" };
+                    var evalResult = this.GetEntities(t => true, newFilter);
+                    var evalResultIds = evalResult.Select(t => t.ID).ToList();
+                    sourceIds.AddRange(evalResultIds);
+                    //技术交底表
+                    newFilter.SelectField = new List { "ID", "FORM_STATUS" };
+                    var taskIdentify = this.GetEntities(t => true, newFilter);
+                    var taskIdentifyIds = taskIdentify.Select(t => t.ID).ToList();
+                    sourceIds.AddRange(taskIdentifyIds);
+                    //作业活动记录(关键和许可作业)
+                    var taskAnalysis = this.GetEntities(t => true, newFilter);
+                    var taskAnalysisIds = taskAnalysis.Select(t => t.ID).ToList();
+                    sourceIds.AddRange(taskAnalysisIds);
+                    //只取待办超期的
+                    newFilter.SelectField = new List { "SOURCE_DATA_ID" };
+                    var tasks = this.GetEntities(t => t.NOTICE_STATUS == 2, newFilter);
+                    tasks = tasks.Where(t => sourceIds.Contains(t.SOURCE_DATA_ID.Value)).ToList();
+                    //表单运行情况分析表
+                    var allAnalysis = this.GetEntities(t => true, new BaseFilter(filter.OrgId));
+                    #region 岗位当班工作记录
+                    if (evalPlan.Any())
                     {
-                        analysis = new T_BI_FORM_RUN_ANALYSIS();
-                        analysis.MOUDLE_NAME = "作业现场管理";
-                        analysis.FORM_NAME = "岗位当班工作记录";
-                        analysis.NUM = 30;
-                        analysis.ORG_ID = filter.OrgId;
+                        //foreach (var item in evalPlan)
+                        //{
+                        //    var task = tasks.FirstOrDefault(t => t.SOURCE_DATA_ID == item.ID);
+                        //    if (task == null)
+                        //        item.IS_OVERTIME = 0;//不存在为正常已办
+                        //    else
+                        //        item.IS_OVERTIME = 1;//只要存在就超期
+                        //}
+                        var count = evalPlan.Count();
+                        var finish = evalPlan.Count(t => t.OVERTIME == FOISOVERTIME.未超时 && t.SHIFT_STATUS == (int)FOShiftStatusEnum.归档);
+                        var overfinish = evalPlan.Count(t => t.OVERTIME == FOISOVERTIME.超时 && t.SHIFT_STATUS == (int)FOShiftStatusEnum.归档);
+                        var unfinish = count - finish - overfinish;
+                        var temp = count == 0 ? 0 : (double)(finish + overfinish) / count * 100;
+                        var finishRate = temp.ToString("0") + "%";
+                        var temp2 = count == 0 ? 0 : (double)finish / count * 100;
+                        var normalFinishRate = temp2.ToString("0") + "%";
+                        var analysis = allAnalysis.FirstOrDefault(t => t.MOUDLE_NAME == "作业现场管理" && t.FORM_NAME == "岗位当班工作记录");
+                        if (analysis == null)
+                        {
+                            analysis = new T_BI_FORM_RUN_ANALYSIS();
+                            analysis.MOUDLE_NAME = "作业现场管理";
+                            analysis.FORM_NAME = "岗位当班工作记录";
+                            analysis.NUM = 30;
+                            analysis.ORG_ID = filter.OrgId;
+                        }
+                        analysis.TOTAL_QTY = count;
+                        analysis.FINISH_QTY = finish;
+                        analysis.OVER_FINISH_QTY = overfinish;
+                        analysis.UNFINISH_QTY = unfinish;
+                        analysis.FINISH_RATE = finishRate;
+                        analysis.NORMAL_FINISH_RATE = normalFinishRate;
+                        formAnalysis.Add(analysis);
                     }
-                    analysis.TOTAL_QTY = count;
-                    analysis.FINISH_QTY = finish;
-                    analysis.OVER_FINISH_QTY = overfinish;
-                    analysis.UNFINISH_QTY = unfinish;
-                    analysis.FINISH_RATE = finishRate;
-                    analysis.NORMAL_FINISH_RATE = normalFinishRate;
-                    formAnalysis.Add(analysis);
-                }
-                else
-                {
-                    var analysis = allAnalysis.FirstOrDefault(t => t.MOUDLE_NAME == "作业现场管理" && t.FORM_NAME == "岗位当班工作记录");
-                    if (analysis == null)
+                    else
                     {
-                        analysis = new T_BI_FORM_RUN_ANALYSIS();
-                        analysis.MOUDLE_NAME = "作业现场管理";
-                        analysis.FORM_NAME = "岗位当班工作记录";
-                        analysis.NUM = 30;
-                        analysis.ORG_ID = filter.OrgId;
+                        var analysis = allAnalysis.FirstOrDefault(t => t.MOUDLE_NAME == "作业现场管理" && t.FORM_NAME == "岗位当班工作记录");
+                        if (analysis == null)
+                        {
+                            analysis = new T_BI_FORM_RUN_ANALYSIS();
+                            analysis.MOUDLE_NAME = "作业现场管理";
+                            analysis.FORM_NAME = "岗位当班工作记录";
+                            analysis.NUM = 30;
+                            analysis.ORG_ID = filter.OrgId;
+                        }
+                        analysis.TOTAL_QTY = 0;
+                        analysis.FINISH_QTY = 0;
+                        analysis.OVER_FINISH_QTY = 0;
+                        analysis.UNFINISH_QTY = 0;
+                        analysis.FINISH_RATE = "0%";
+                        analysis.NORMAL_FINISH_RATE = "0%";
+                        formAnalysis.Add(analysis);
                     }
-                    analysis.TOTAL_QTY = 0;
-                    analysis.FINISH_QTY = 0;
-                    analysis.OVER_FINISH_QTY = 0;
-                    analysis.UNFINISH_QTY = 0;
-                    analysis.FINISH_RATE = "0%";
-                    analysis.NORMAL_FINISH_RATE = "0%";
-                    formAnalysis.Add(analysis);
-                }
-                #endregion
+                    #endregion
 
-                #region 岗位交接班记录
-                if (noticeRelease.Any())
-                {
-                    //foreach (var item in noticeRelease)
-                    //{
-                    //    var task = tasks.FirstOrDefault(t => t.SOURCE_DATA_ID == item.ID && t.NOTICE_STATUS == 2);
-                    //    if (task == null)
-                    //        item.IS_OVERTIME = 0;
-                    //    else
-                    //        item.IS_OVERTIME = 1;
-                    //}
-                    var count = noticeRelease.Count();
-                    var finish = evalPlan.Count(t => t.OVERTIME == FOISOVERTIME.未超时 && t.SHIFT_STATUS == (int)FOChangeShiftStatusEnum.归档);
-                    var overfinish = evalPlan.Count(t => t.OVERTIME == FOISOVERTIME.超时 && t.SHIFT_STATUS == (int)FOChangeShiftStatusEnum.归档);
-                    var unfinish = count - finish - overfinish;
-                    var temp = count == 0 ? 0 : (double)(finish + overfinish) / count * 100;
-                    var finishRate = temp.ToString("0") + "%";
-                    var temp2 = count == 0 ? 0 : (double)finish / count * 100;
-                    var normalFinishRate = temp2.ToString("0") + "%";
-                    var analysis = allAnalysis.FirstOrDefault(t => t.MOUDLE_NAME == "作业现场管理" && t.FORM_NAME == "岗位交接班记录");
-                    if (analysis == null)
+                    #region 岗位交接班记录
+                    if (noticeRelease.Any())
                     {
-                        analysis = new T_BI_FORM_RUN_ANALYSIS();
-                        analysis.MOUDLE_NAME = "作业现场管理";
-                        analysis.FORM_NAME = "岗位交接班记录";
-                        analysis.NUM = 31;
-                        analysis.ORG_ID = filter.OrgId;
+                        //foreach (var item in noticeRelease)
+                        //{
+                        //    var task = tasks.FirstOrDefault(t => t.SOURCE_DATA_ID == item.ID && t.NOTICE_STATUS == 2);
+                        //    if (task == null)
+                        //        item.IS_OVERTIME = 0;
+                        //    else
+                        //        item.IS_OVERTIME = 1;
+                        //}
+                        var count = noticeRelease.Count();
+                        var finish = evalPlan.Count(t => t.OVERTIME == FOISOVERTIME.未超时 && t.SHIFT_STATUS == (int)FOChangeShiftStatusEnum.归档);
+                        var overfinish = evalPlan.Count(t => t.OVERTIME == FOISOVERTIME.超时 && t.SHIFT_STATUS == (int)FOChangeShiftStatusEnum.归档);
+                        var unfinish = count - finish - overfinish;
+                        var temp = count == 0 ? 0 : (double)(finish + overfinish) / count * 100;
+                        var finishRate = temp.ToString("0") + "%";
+                        var temp2 = count == 0 ? 0 : (double)finish / count * 100;
+                        var normalFinishRate = temp2.ToString("0") + "%";
+                        var analysis = allAnalysis.FirstOrDefault(t => t.MOUDLE_NAME == "作业现场管理" && t.FORM_NAME == "岗位交接班记录");
+                        if (analysis == null)
+                        {
+                            analysis = new T_BI_FORM_RUN_ANALYSIS();
+                            analysis.MOUDLE_NAME = "作业现场管理";
+                            analysis.FORM_NAME = "岗位交接班记录";
+                            analysis.NUM = 31;
+                            analysis.ORG_ID = filter.OrgId;
+                        }
+                        analysis.TOTAL_QTY = count;
+                        analysis.FINISH_QTY = finish;
+                        analysis.OVER_FINISH_QTY = overfinish;
+                        analysis.UNFINISH_QTY = unfinish;
+                        analysis.FINISH_RATE = finishRate;
+                        analysis.NORMAL_FINISH_RATE = normalFinishRate;
+                        formAnalysis.Add(analysis);
                     }
-                    analysis.TOTAL_QTY = count;
-                    analysis.FINISH_QTY = finish;
-                    analysis.OVER_FINISH_QTY = overfinish;
-                    analysis.UNFINISH_QTY = unfinish;
-                    analysis.FINISH_RATE = finishRate;
-                    analysis.NORMAL_FINISH_RATE = normalFinishRate;
-                    formAnalysis.Add(analysis);
-                }
-                else
-                {
-                    var analysis = allAnalysis.FirstOrDefault(t => t.MOUDLE_NAME == "作业现场管理" && t.FORM_NAME == "岗位交接班记录");
-                    if (analysis == null)
+                    else
                     {
-                        analysis = new T_BI_FORM_RUN_ANALYSIS();
-                        analysis.MOUDLE_NAME = "作业现场管理";
-                        analysis.FORM_NAME = "岗位交接班记录";
-                        analysis.NUM = 31;
-                        analysis.ORG_ID = filter.OrgId;
+                        var analysis = allAnalysis.FirstOrDefault(t => t.MOUDLE_NAME == "作业现场管理" && t.FORM_NAME == "岗位交接班记录");
+                        if (analysis == null)
+                        {
+                            analysis = new T_BI_FORM_RUN_ANALYSIS();
+                            analysis.MOUDLE_NAME = "作业现场管理";
+                            analysis.FORM_NAME = "岗位交接班记录";
+                            analysis.NUM = 31;
+                            analysis.ORG_ID = filter.OrgId;
+                        }
+                        analysis.TOTAL_QTY = 0;
+                        analysis.FINISH_QTY = 0;
+                        analysis.OVER_FINISH_QTY = 0;
+                        analysis.UNFINISH_QTY = 0;
+                        analysis.FINISH_RATE = "0%";
+                        analysis.NORMAL_FINISH_RATE = "0%";
+                        formAnalysis.Add(analysis);
                     }
-                    analysis.TOTAL_QTY = 0;
-                    analysis.FINISH_QTY = 0;
-                    analysis.OVER_FINISH_QTY = 0;
-                    analysis.UNFINISH_QTY = 0;
-                    analysis.FINISH_RATE = "0%";
-                    analysis.NORMAL_FINISH_RATE = "0%";
-                    formAnalysis.Add(analysis);
-                }
-                #endregion
+                    #endregion
 
-                #region 班组安全活动
-                if (riskTask.Any())
-                {
-                    //foreach (var item in riskTask)
-                    //{
-                    //    var task = tasks.FirstOrDefault(t => t.SOURCE_DATA_ID == item.ID && t.NOTICE_STATUS == 2);
-                    //    if (task == null)
-                    //        item.IS_OVERTIME = 0;
-                    //    else
-                    //        item.IS_OVERTIME = 1;
-                    //}
-                    var count = riskTask.Count();
-                    var finish = riskTask.Count(t => t.OVERTIME == FOISOVERTIME.未超时 && t.TA_STATUS == (int)FOTeamActivityState.已归档);
-                    var overfinish = riskTask.Count(t => t.OVERTIME == FOISOVERTIME.超时 && t.TA_STATUS == (int)FOTeamActivityState.已归档);
-                    var unfinish = count - finish - overfinish;
-                    var temp = count == 0 ? 0 : (double)(finish + overfinish) / count * 100;
-                    var finishRate = temp.ToString("0") + "%";
-                    var temp2 = count == 0 ? 0 : (double)finish / count * 100;
-                    var normalFinishRate = temp2.ToString("0") + "%";
-                    var analysis = allAnalysis.FirstOrDefault(t => t.MOUDLE_NAME == "作业现场管理" && t.FORM_NAME == "班组安全活动");
-                    if (analysis == null)
+                    #region 班组安全活动
+                    if (riskTask.Any())
                     {
-                        analysis = new T_BI_FORM_RUN_ANALYSIS();
-                        analysis.MOUDLE_NAME = "作业现场管理";
-                        analysis.FORM_NAME = "班组安全活动";
-                        analysis.NUM = 32;
-                        analysis.ORG_ID = filter.OrgId;
+                        //foreach (var item in riskTask)
+                        //{
+                        //    var task = tasks.FirstOrDefault(t => t.SOURCE_DATA_ID == item.ID && t.NOTICE_STATUS == 2);
+                        //    if (task == null)
+                        //        item.IS_OVERTIME = 0;
+                        //    else
+                        //        item.IS_OVERTIME = 1;
+                        //}
+                        var count = riskTask.Count();
+                        var finish = riskTask.Count(t => t.OVERTIME == FOISOVERTIME.未超时 && t.TA_STATUS == (int)FOTeamActivityState.已归档);
+                        var overfinish = riskTask.Count(t => t.OVERTIME == FOISOVERTIME.超时 && t.TA_STATUS == (int)FOTeamActivityState.已归档);
+                        var unfinish = count - finish - overfinish;
+                        var temp = count == 0 ? 0 : (double)(finish + overfinish) / count * 100;
+                        var finishRate = temp.ToString("0") + "%";
+                        var temp2 = count == 0 ? 0 : (double)finish / count * 100;
+                        var normalFinishRate = temp2.ToString("0") + "%";
+                        var analysis = allAnalysis.FirstOrDefault(t => t.MOUDLE_NAME == "作业现场管理" && t.FORM_NAME == "班组安全活动");
+                        if (analysis == null)
+                        {
+                            analysis = new T_BI_FORM_RUN_ANALYSIS();
+                            analysis.MOUDLE_NAME = "作业现场管理";
+                            analysis.FORM_NAME = "班组安全活动";
+                            analysis.NUM = 32;
+                            analysis.ORG_ID = filter.OrgId;
+                        }
+                        analysis.TOTAL_QTY = count;
+                        analysis.FINISH_QTY = finish;
+                        analysis.OVER_FINISH_QTY = overfinish;
+                        analysis.UNFINISH_QTY = unfinish;
+                        analysis.FINISH_RATE = finishRate;
+                        analysis.NORMAL_FINISH_RATE = normalFinishRate;
+                        formAnalysis.Add(analysis);
                     }
-                    analysis.TOTAL_QTY = count;
-                    analysis.FINISH_QTY = finish;
-                    analysis.OVER_FINISH_QTY = overfinish;
-                    analysis.UNFINISH_QTY = unfinish;
-                    analysis.FINISH_RATE = finishRate;
-                    analysis.NORMAL_FINISH_RATE = normalFinishRate;
-                    formAnalysis.Add(analysis);
-                }
-                else
-                {
-                    var analysis = allAnalysis.FirstOrDefault(t => t.MOUDLE_NAME == "作业现场管理" && t.FORM_NAME == "班组安全活动");
-                    if (analysis == null)
+                    else
                     {
-                        analysis = new T_BI_FORM_RUN_ANALYSIS();
-                        analysis.MOUDLE_NAME = "作业现场管理";
-                        analysis.FORM_NAME = "班组安全活动";
-                        analysis.NUM = 32;
-                        analysis.ORG_ID = filter.OrgId;
+                        var analysis = allAnalysis.FirstOrDefault(t => t.MOUDLE_NAME == "作业现场管理" && t.FORM_NAME == "班组安全活动");
+                        if (analysis == null)
+                        {
+                            analysis = new T_BI_FORM_RUN_ANALYSIS();
+                            analysis.MOUDLE_NAME = "作业现场管理";
+                            analysis.FORM_NAME = "班组安全活动";
+                            analysis.NUM = 32;
+                            analysis.ORG_ID = filter.OrgId;
+                        }
+                        analysis.TOTAL_QTY = 0;
+                        analysis.FINISH_QTY = 0;
+                        analysis.OVER_FINISH_QTY = 0;
+                        analysis.UNFINISH_QTY = 0;
+                        analysis.FINISH_RATE = "0%";
+                        analysis.NORMAL_FINISH_RATE = "0%";
+                        formAnalysis.Add(analysis);
                     }
-                    analysis.TOTAL_QTY = 0;
-                    analysis.FINISH_QTY = 0;
-                    analysis.OVER_FINISH_QTY = 0;
-                    analysis.UNFINISH_QTY = 0;
-                    analysis.FINISH_RATE = "0%";
-                    analysis.NORMAL_FINISH_RATE = "0%";
-                    formAnalysis.Add(analysis);
-                }
-                #endregion
+                    #endregion
 
-                #region 班前会议记录
-                if (riskRecord.Any())
-                {
-                    //foreach (var item in riskRecord)
-                    //{
-                    //    var task = tasks.FirstOrDefault(t => t.SOURCE_DATA_ID == item.ID && t.NOTICE_STATUS == 2);
-                    //    if (task == null)
-                    //        item.IS_OVERTIME = 0;
-                    //    else
-                    //        item.IS_OVERTIME = 1;
-                    //}
-                    var count = riskRecord.Count();
-                    var finish = riskRecord.Count(t => t.OVERTIME == FOISOVERTIME.未超时 && t.PRE_MEETING_STATUS == FOPreMeetingStatusEnum.归档);
-                    var overfinish = riskRecord.Count(t => t.OVERTIME == FOISOVERTIME.超时 && t.PRE_MEETING_STATUS == FOPreMeetingStatusEnum.归档);
-                    var unfinish = count - finish - overfinish;
-                    var temp = count == 0 ? 0 : (double)(finish + overfinish) / count * 100;
-                    var finishRate = temp.ToString("0") + "%";
-                    var temp2 = count == 0 ? 0 : (double)finish / count * 100;
-                    var normalFinishRate = temp2.ToString("0") + "%";
-                    var analysis = allAnalysis.FirstOrDefault(t => t.MOUDLE_NAME == "作业现场管理" && t.FORM_NAME == "班前会议记录");
-                    if (analysis == null)
+                    #region 班前会议记录
+                    if (riskRecord.Any())
                     {
-                        analysis = new T_BI_FORM_RUN_ANALYSIS();
-                        analysis.MOUDLE_NAME = "作业现场管理";
-                        analysis.FORM_NAME = "班前会议记录";
-                        analysis.NUM = 33;
-                        analysis.ORG_ID = filter.OrgId;
+                        //foreach (var item in riskRecord)
+                        //{
+                        //    var task = tasks.FirstOrDefault(t => t.SOURCE_DATA_ID == item.ID && t.NOTICE_STATUS == 2);
+                        //    if (task == null)
+                        //        item.IS_OVERTIME = 0;
+                        //    else
+                        //        item.IS_OVERTIME = 1;
+                        //}
+                        var count = riskRecord.Count();
+                        var finish = riskRecord.Count(t => t.OVERTIME == FOISOVERTIME.未超时 && t.PRE_MEETING_STATUS == FOPreMeetingStatusEnum.归档);
+                        var overfinish = riskRecord.Count(t => t.OVERTIME == FOISOVERTIME.超时 && t.PRE_MEETING_STATUS == FOPreMeetingStatusEnum.归档);
+                        var unfinish = count - finish - overfinish;
+                        var temp = count == 0 ? 0 : (double)(finish + overfinish) / count * 100;
+                        var finishRate = temp.ToString("0") + "%";
+                        var temp2 = count == 0 ? 0 : (double)finish / count * 100;
+                        var normalFinishRate = temp2.ToString("0") + "%";
+                        var analysis = allAnalysis.FirstOrDefault(t => t.MOUDLE_NAME == "作业现场管理" && t.FORM_NAME == "班前会议记录");
+                        if (analysis == null)
+                        {
+                            analysis = new T_BI_FORM_RUN_ANALYSIS();
+                            analysis.MOUDLE_NAME = "作业现场管理";
+                            analysis.FORM_NAME = "班前会议记录";
+                            analysis.NUM = 33;
+                            analysis.ORG_ID = filter.OrgId;
+                        }
+                        analysis.TOTAL_QTY = count;
+                        analysis.FINISH_QTY = finish;
+                        analysis.OVER_FINISH_QTY = overfinish;
+                        analysis.UNFINISH_QTY = unfinish;
+                        analysis.FINISH_RATE = finishRate;
+                        analysis.NORMAL_FINISH_RATE = normalFinishRate;
+                        formAnalysis.Add(analysis);
                     }
-                    analysis.TOTAL_QTY = count;
-                    analysis.FINISH_QTY = finish;
-                    analysis.OVER_FINISH_QTY = overfinish;
-                    analysis.UNFINISH_QTY = unfinish;
-                    analysis.FINISH_RATE = finishRate;
-                    analysis.NORMAL_FINISH_RATE = normalFinishRate;
-                    formAnalysis.Add(analysis);
-                }
-                else
-                {
-                    var analysis = allAnalysis.FirstOrDefault(t => t.MOUDLE_NAME == "作业现场管理" && t.FORM_NAME == "班前会议记录");
-                    if (analysis == null)
+                    else
                     {
-                        analysis = new T_BI_FORM_RUN_ANALYSIS();
-                        analysis.MOUDLE_NAME = "作业现场管理";
-                        analysis.FORM_NAME = "班前会议记录";
-                        analysis.NUM = 33;
-                        analysis.ORG_ID = filter.OrgId;
+                        var analysis = allAnalysis.FirstOrDefault(t => t.MOUDLE_NAME == "作业现场管理" && t.FORM_NAME == "班前会议记录");
+                        if (analysis == null)
+                        {
+                            analysis = new T_BI_FORM_RUN_ANALYSIS();
+                            analysis.MOUDLE_NAME = "作业现场管理";
+                            analysis.FORM_NAME = "班前会议记录";
+                            analysis.NUM = 33;
+                            analysis.ORG_ID = filter.OrgId;
+                        }
+                        analysis.TOTAL_QTY = 0;
+                        analysis.FINISH_QTY = 0;
+                        analysis.OVER_FINISH_QTY = 0;
+                        analysis.UNFINISH_QTY = 0;
+                        analysis.FINISH_RATE = "0%";
+                        analysis.NORMAL_FINISH_RATE = "0%";
+                        formAnalysis.Add(analysis);
                     }
-                    analysis.TOTAL_QTY = 0;
-                    analysis.FINISH_QTY = 0;
-                    analysis.OVER_FINISH_QTY = 0;
-                    analysis.UNFINISH_QTY = 0;
-                    analysis.FINISH_RATE = "0%";
-                    analysis.NORMAL_FINISH_RATE = "0%";
-                    formAnalysis.Add(analysis);
-                }
-                #endregion
+                    #endregion
 
-                #region 作业活动记录(一般作业)
-                if (hazardTask.Any())
-                {
-                    foreach (var item in hazardTask)
+                    #region 作业活动记录(一般作业)
+                    if (hazardTask.Any())
                     {
-                        var task = tasks.FirstOrDefault(t => t.SOURCE_DATA_ID == item.ID);
-                        if (task == null)
-                            item.IS_OVERTIME = 0;
-                        else
-                            item.IS_OVERTIME = 1;
+                        foreach (var item in hazardTask)
+                        {
+                            var task = tasks.FirstOrDefault(t => t.SOURCE_DATA_ID == item.ID);
+                            if (task == null)
+                                item.IS_OVERTIME = 0;
+                            else
+                                item.IS_OVERTIME = 1;
+                        }
+                        var count = hazardTask.Count();
+                        var finish = hazardTask.Count(t => t.IS_OVERTIME == 0 && t.FORM_STATUS == (int)FOTeamActivityState.已归档);
+                        var overfinish = hazardTask.Count(t => t.IS_OVERTIME == 1 && t.FORM_STATUS == (int)FOTeamActivityState.已归档);
+                        var unfinish = count - finish - overfinish;
+                        var temp = count == 0 ? 0 : (double)(finish + overfinish) / count * 100;
+                        var finishRate = temp.ToString("0") + "%";
+                        var temp2 = count == 0 ? 0 : (double)finish / count * 100;
+                        var normalFinishRate = temp2.ToString("0") + "%";
+                        var analysis = allAnalysis.FirstOrDefault(t => t.MOUDLE_NAME == "作业现场管理" && t.FORM_NAME == "作业活动记录(一般作业)");
+                        if (analysis == null)
+                        {
+                            analysis = new T_BI_FORM_RUN_ANALYSIS();
+                            analysis.MOUDLE_NAME = "作业现场管理";
+                            analysis.FORM_NAME = "作业活动记录(一般作业)";
+                            analysis.NUM = 34;
+                            analysis.ORG_ID = filter.OrgId;
+                        }
+                        analysis.TOTAL_QTY = count;
+                        analysis.FINISH_QTY = finish;
+                        analysis.OVER_FINISH_QTY = overfinish;
+                        analysis.UNFINISH_QTY = unfinish;
+                        analysis.FINISH_RATE = finishRate;
+                        analysis.NORMAL_FINISH_RATE = normalFinishRate;
+                        formAnalysis.Add(analysis);
                     }
-                    var count = hazardTask.Count();
-                    var finish = hazardTask.Count(t => t.IS_OVERTIME == 0 && t.FORM_STATUS == (int)FOTeamActivityState.已归档);
-                    var overfinish = hazardTask.Count(t => t.IS_OVERTIME == 1 && t.FORM_STATUS == (int)FOTeamActivityState.已归档);
-                    var unfinish = count - finish - overfinish;
-                    var temp = count == 0 ? 0 : (double)(finish + overfinish) / count * 100;
-                    var finishRate = temp.ToString("0") + "%";
-                    var temp2 = count == 0 ? 0 : (double)finish / count * 100;
-                    var normalFinishRate = temp2.ToString("0") + "%";
-                    var analysis = allAnalysis.FirstOrDefault(t => t.MOUDLE_NAME == "作业现场管理" && t.FORM_NAME == "作业活动记录(一般作业)");
-                    if (analysis == null)
+                    else
                     {
-                        analysis = new T_BI_FORM_RUN_ANALYSIS();
-                        analysis.MOUDLE_NAME = "作业现场管理";
-                        analysis.FORM_NAME = "作业活动记录(一般作业)";
-                        analysis.NUM = 34;
-                        analysis.ORG_ID = filter.OrgId;
+                        var analysis = allAnalysis.FirstOrDefault(t => t.MOUDLE_NAME == "作业现场管理" && t.FORM_NAME == "作业活动记录(一般作业)");
+                        if (analysis == null)
+                        {
+                            analysis = new T_BI_FORM_RUN_ANALYSIS();
+                            analysis.MOUDLE_NAME = "作业现场管理";
+                            analysis.FORM_NAME = "作业活动记录(一般作业)";
+                            analysis.NUM = 34;
+                            analysis.ORG_ID = filter.OrgId;
+                        }
+                        analysis.TOTAL_QTY = 0;
+                        analysis.FINISH_QTY = 0;
+                        analysis.OVER_FINISH_QTY = 0;
+                        analysis.UNFINISH_QTY = 0;
+                        analysis.FINISH_RATE = "0%";
+                        analysis.NORMAL_FINISH_RATE = "0%";
+                        formAnalysis.Add(analysis);
                     }
-                    analysis.TOTAL_QTY = count;
-                    analysis.FINISH_QTY = finish;
-                    analysis.OVER_FINISH_QTY = overfinish;
-                    analysis.UNFINISH_QTY = unfinish;
-                    analysis.FINISH_RATE = finishRate;
-                    analysis.NORMAL_FINISH_RATE = normalFinishRate;
-                    formAnalysis.Add(analysis);
-                }
-                else
-                {
-                    var analysis = allAnalysis.FirstOrDefault(t => t.MOUDLE_NAME == "作业现场管理" && t.FORM_NAME == "作业活动记录(一般作业)");
-                    if (analysis == null)
-                    {
-                        analysis = new T_BI_FORM_RUN_ANALYSIS();
-                        analysis.MOUDLE_NAME = "作业现场管理";
-                        analysis.FORM_NAME = "作业活动记录(一般作业)";
-                        analysis.NUM = 34;
-                        analysis.ORG_ID = filter.OrgId;
-                    }
-                    analysis.TOTAL_QTY = 0;
-                    analysis.FINISH_QTY = 0;
-                    analysis.OVER_FINISH_QTY = 0;
-                    analysis.UNFINISH_QTY = 0;
-                    analysis.FINISH_RATE = "0%";
-                    analysis.NORMAL_FINISH_RATE = "0%";
-                    formAnalysis.Add(analysis);
-                }
-                #endregion
+                    #endregion
 
-                #region 作业方案讨论记录
-                if (hazardRecord.Any())
-                {
-                    foreach (var item in hazardRecord)
+                    #region 作业方案讨论记录
+                    if (hazardRecord.Any())
                     {
-                        var task = tasks.FirstOrDefault(t => t.SOURCE_DATA_ID == item.ID);
-                        if (task == null)
-                            item.IS_OVERTIME = 0;
-                        else
-                            item.IS_OVERTIME = 1;
+                        foreach (var item in hazardRecord)
+                        {
+                            var task = tasks.FirstOrDefault(t => t.SOURCE_DATA_ID == item.ID);
+                            if (task == null)
+                                item.IS_OVERTIME = 0;
+                            else
+                                item.IS_OVERTIME = 1;
+                        }
+                        var count = hazardRecord.Count();
+                        var finish = hazardRecord.Count(t => t.IS_OVERTIME == 0 && t.FORM_STATUS == (int)FOTeamActivityState.已归档);
+                        var overfinish = hazardRecord.Count(t => t.IS_OVERTIME == 1 && t.FORM_STATUS == (int)FOTeamActivityState.已归档);
+                        var unfinish = count - finish - overfinish;
+                        var temp = count == 0 ? 0 : (double)(finish + overfinish) / count * 100;
+                        var finishRate = temp.ToString("0") + "%";
+                        var temp2 = count == 0 ? 0 : (double)finish / count * 100;
+                        var normalFinishRate = temp2.ToString("0") + "%";
+                        var analysis = allAnalysis.FirstOrDefault(t => t.MOUDLE_NAME == "作业现场管理" && t.FORM_NAME == "作业方案讨论记录");
+                        if (analysis == null)
+                        {
+                            analysis = new T_BI_FORM_RUN_ANALYSIS();
+                            analysis.MOUDLE_NAME = "作业现场管理";
+                            analysis.FORM_NAME = "作业方案讨论记录";
+                            analysis.NUM = 35;
+                            analysis.ORG_ID = filter.OrgId;
+                        }
+                        analysis.TOTAL_QTY = count;
+                        analysis.FINISH_QTY = finish;
+                        analysis.OVER_FINISH_QTY = overfinish;
+                        analysis.UNFINISH_QTY = unfinish;
+                        analysis.FINISH_RATE = finishRate;
+                        analysis.NORMAL_FINISH_RATE = normalFinishRate;
+                        formAnalysis.Add(analysis);
                     }
-                    var count = hazardRecord.Count();
-                    var finish = hazardRecord.Count(t => t.IS_OVERTIME == 0 && t.FORM_STATUS == (int)FOTeamActivityState.已归档);
-                    var overfinish = hazardRecord.Count(t => t.IS_OVERTIME == 1 && t.FORM_STATUS == (int)FOTeamActivityState.已归档);
-                    var unfinish = count - finish - overfinish;
-                    var temp = count == 0 ? 0 : (double)(finish + overfinish) / count * 100;
-                    var finishRate = temp.ToString("0") + "%";
-                    var temp2 = count == 0 ? 0 : (double)finish / count * 100;
-                    var normalFinishRate = temp2.ToString("0") + "%";
-                    var analysis = allAnalysis.FirstOrDefault(t => t.MOUDLE_NAME == "作业现场管理" && t.FORM_NAME == "作业方案讨论记录");
-                    if (analysis == null)
+                    else
                     {
-                        analysis = new T_BI_FORM_RUN_ANALYSIS();
-                        analysis.MOUDLE_NAME = "作业现场管理";
-                        analysis.FORM_NAME = "作业方案讨论记录";
-                        analysis.NUM = 35;
-                        analysis.ORG_ID = filter.OrgId;
+                        var analysis = allAnalysis.FirstOrDefault(t => t.MOUDLE_NAME == "作业现场管理" && t.FORM_NAME == "作业方案讨论记录");
+                        if (analysis == null)
+                        {
+                            analysis = new T_BI_FORM_RUN_ANALYSIS();
+                            analysis.MOUDLE_NAME = "作业现场管理";
+                            analysis.FORM_NAME = "作业方案讨论记录";
+                            analysis.NUM = 35;
+                            analysis.ORG_ID = filter.OrgId;
+                        }
+                        analysis.TOTAL_QTY = 0;
+                        analysis.FINISH_QTY = 0;
+                        analysis.OVER_FINISH_QTY = 0;
+                        analysis.UNFINISH_QTY = 0;
+                        analysis.FINISH_RATE = "0%";
+                        analysis.NORMAL_FINISH_RATE = "0%";
+                        formAnalysis.Add(analysis);
                     }
-                    analysis.TOTAL_QTY = count;
-                    analysis.FINISH_QTY = finish;
-                    analysis.OVER_FINISH_QTY = overfinish;
-                    analysis.UNFINISH_QTY = unfinish;
-                    analysis.FINISH_RATE = finishRate;
-                    analysis.NORMAL_FINISH_RATE = normalFinishRate;
-                    formAnalysis.Add(analysis);
-                }
-                else
-                {
-                    var analysis = allAnalysis.FirstOrDefault(t => t.MOUDLE_NAME == "作业现场管理" && t.FORM_NAME == "作业方案讨论记录");
-                    if (analysis == null)
-                    {
-                        analysis = new T_BI_FORM_RUN_ANALYSIS();
-                        analysis.MOUDLE_NAME = "作业现场管理";
-                        analysis.FORM_NAME = "作业方案讨论记录";
-                        analysis.NUM = 35;
-                        analysis.ORG_ID = filter.OrgId;
-                    }
-                    analysis.TOTAL_QTY = 0;
-                    analysis.FINISH_QTY = 0;
-                    analysis.OVER_FINISH_QTY = 0;
-                    analysis.UNFINISH_QTY = 0;
-                    analysis.FINISH_RATE = "0%";
-                    analysis.NORMAL_FINISH_RATE = "0%";
-                    formAnalysis.Add(analysis);
-                }
-                #endregion
+                    #endregion
 
-                #region 关键作业/许可作业工作票
-                if (evalResult.Any())
-                {
-                    foreach (var item in evalResult)
+                    #region 关键作业/许可作业工作票
+                    if (evalResult.Any())
                     {
-                        var task = tasks.FirstOrDefault(t => t.SOURCE_DATA_ID == item.ID);
-                        if (task == null)
-                            item.IS_OVERTIME = 0;
-                        else
-                            item.IS_OVERTIME = 1;
+                        foreach (var item in evalResult)
+                        {
+                            var task = tasks.FirstOrDefault(t => t.SOURCE_DATA_ID == item.ID);
+                            if (task == null)
+                                item.IS_OVERTIME = 0;
+                            else
+                                item.IS_OVERTIME = 1;
+                        }
+                        var count = evalResult.Count();
+                        var finish = evalResult.Count(t => t.IS_OVERTIME == 0 && t.IS_PUBLISH == (int)FOPreMeetingStatusEnum.归档);
+                        var overfinish = evalResult.Count(t => t.IS_OVERTIME == 1 && t.IS_PUBLISH == (int)FOPreMeetingStatusEnum.归档);
+                        var unfinish = count - finish - overfinish;
+                        var temp = count == 0 ? 0 : (double)(finish + overfinish) / count * 100;
+                        var finishRate = temp.ToString("0") + "%";
+                        var temp2 = count == 0 ? 0 : (double)finish / count * 100;
+                        var normalFinishRate = temp2.ToString("0") + "%";
+                        var analysis = allAnalysis.FirstOrDefault(t => t.MOUDLE_NAME == "作业现场管理" && t.FORM_NAME == "关键作业/许可作业工作票");
+                        if (analysis == null)
+                        {
+                            analysis = new T_BI_FORM_RUN_ANALYSIS();
+                            analysis.MOUDLE_NAME = "作业现场管理";
+                            analysis.FORM_NAME = "关键作业/许可作业工作票";
+                            analysis.NUM = 36;
+                            analysis.ORG_ID = filter.OrgId;
+                        }
+                        analysis.TOTAL_QTY = count;
+                        analysis.FINISH_QTY = finish;
+                        analysis.OVER_FINISH_QTY = overfinish;
+                        analysis.UNFINISH_QTY = unfinish;
+                        analysis.FINISH_RATE = finishRate;
+                        analysis.NORMAL_FINISH_RATE = normalFinishRate;
+                        formAnalysis.Add(analysis);
                     }
-                    var count = evalResult.Count();
-                    var finish = evalResult.Count(t => t.IS_OVERTIME == 0 && t.IS_PUBLISH ==(int)FOPreMeetingStatusEnum.归档);
-                    var overfinish = evalResult.Count(t => t.IS_OVERTIME == 1 && t.IS_PUBLISH == (int)FOPreMeetingStatusEnum.归档);
-                    var unfinish = count - finish - overfinish;
-                    var temp = count == 0 ? 0 : (double)(finish + overfinish) / count * 100;
-                    var finishRate = temp.ToString("0") + "%";
-                    var temp2 = count == 0 ? 0 : (double)finish / count * 100;
-                    var normalFinishRate = temp2.ToString("0") + "%";
-                    var analysis = allAnalysis.FirstOrDefault(t => t.MOUDLE_NAME == "作业现场管理" && t.FORM_NAME == "关键作业/许可作业工作票");
-                    if (analysis == null)
+                    else
                     {
-                        analysis = new T_BI_FORM_RUN_ANALYSIS();
-                        analysis.MOUDLE_NAME = "作业现场管理";
-                        analysis.FORM_NAME = "关键作业/许可作业工作票";
-                        analysis.NUM = 36;
-                        analysis.ORG_ID = filter.OrgId;
+                        var analysis = allAnalysis.FirstOrDefault(t => t.MOUDLE_NAME == "作业现场管理" && t.FORM_NAME == "关键作业/许可作业工作票");
+                        if (analysis == null)
+                        {
+                            analysis = new T_BI_FORM_RUN_ANALYSIS();
+                            analysis.MOUDLE_NAME = "作业现场管理";
+                            analysis.FORM_NAME = "关键作业/许可作业工作票";
+                            analysis.NUM = 36;
+                            analysis.ORG_ID = filter.OrgId;
+                        }
+                        analysis.TOTAL_QTY = 0;
+                        analysis.FINISH_QTY = 0;
+                        analysis.OVER_FINISH_QTY = 0;
+                        analysis.UNFINISH_QTY = 0;
+                        analysis.FINISH_RATE = "0%";
+                        analysis.NORMAL_FINISH_RATE = "0%";
+                        formAnalysis.Add(analysis);
                     }
-                    analysis.TOTAL_QTY = count;
-                    analysis.FINISH_QTY = finish;
-                    analysis.OVER_FINISH_QTY = overfinish;
-                    analysis.UNFINISH_QTY = unfinish;
-                    analysis.FINISH_RATE = finishRate;
-                    analysis.NORMAL_FINISH_RATE = normalFinishRate;
-                    formAnalysis.Add(analysis);
-                }
-                else
-                {
-                    var analysis = allAnalysis.FirstOrDefault(t => t.MOUDLE_NAME == "作业现场管理" && t.FORM_NAME == "关键作业/许可作业工作票");
-                    if (analysis == null)
-                    {
-                        analysis = new T_BI_FORM_RUN_ANALYSIS();
-                        analysis.MOUDLE_NAME = "作业现场管理";
-                        analysis.FORM_NAME = "关键作业/许可作业工作票";
-                        analysis.NUM = 36;
-                        analysis.ORG_ID = filter.OrgId;
-                    }
-                    analysis.TOTAL_QTY = 0;
-                    analysis.FINISH_QTY = 0;
-                    analysis.OVER_FINISH_QTY = 0;
-                    analysis.UNFINISH_QTY = 0;
-                    analysis.FINISH_RATE = "0%";
-                    analysis.NORMAL_FINISH_RATE = "0%";
-                    formAnalysis.Add(analysis);
-                }
-                #endregion
+                    #endregion
 
-                #region 技术交底表
-                if (taskIdentify.Any())
-                {
-                    foreach (var item in taskIdentify)
+                    #region 技术交底表
+                    if (taskIdentify.Any())
                     {
-                        var task = tasks.FirstOrDefault(t => t.SOURCE_DATA_ID == item.ID);
-                        if (task == null)
-                            item.IS_OVERTIME = 0;
-                        else
-                            item.IS_OVERTIME = 1;
+                        foreach (var item in taskIdentify)
+                        {
+                            var task = tasks.FirstOrDefault(t => t.SOURCE_DATA_ID == item.ID);
+                            if (task == null)
+                                item.IS_OVERTIME = 0;
+                            else
+                                item.IS_OVERTIME = 1;
+                        }
+                        var count = taskIdentify.Count();
+                        var finish = taskIdentify.Count(t => t.IS_OVERTIME == 0 && t.FORM_STATUS == (int)FOTeamActivityState.已归档);
+                        var overfinish = taskIdentify.Count(t => t.IS_OVERTIME == 1 && t.FORM_STATUS == (int)FOTeamActivityState.已归档);
+                        var unfinish = count - finish - overfinish;
+                        var temp = count == 0 ? 0 : (double)(finish + overfinish) / count * 100;
+                        var finishRate = temp.ToString("0") + "%";
+                        var temp2 = count == 0 ? 0 : (double)finish / count * 100;
+                        var normalFinishRate = temp2.ToString("0") + "%";
+                        var analysis = allAnalysis.FirstOrDefault(t => t.MOUDLE_NAME == "作业现场管理" && t.FORM_NAME == "技术交底表");
+                        if (analysis == null)
+                        {
+                            analysis = new T_BI_FORM_RUN_ANALYSIS();
+                            analysis.MOUDLE_NAME = "作业现场管理";
+                            analysis.FORM_NAME = "技术交底表";
+                            analysis.NUM = 37;
+                            analysis.ORG_ID = filter.OrgId;
+                        }
+                        analysis.TOTAL_QTY = count;
+                        analysis.FINISH_QTY = finish;
+                        analysis.OVER_FINISH_QTY = overfinish;
+                        analysis.UNFINISH_QTY = unfinish;
+                        analysis.FINISH_RATE = finishRate;
+                        analysis.NORMAL_FINISH_RATE = normalFinishRate;
+                        formAnalysis.Add(analysis);
                     }
-                    var count = taskIdentify.Count();
-                    var finish = taskIdentify.Count(t => t.IS_OVERTIME == 0 && t.FORM_STATUS == (int)FOTeamActivityState.已归档);
-                    var overfinish = taskIdentify.Count(t => t.IS_OVERTIME == 1 && t.FORM_STATUS == (int)FOTeamActivityState.已归档);
-                    var unfinish = count - finish - overfinish;
-                    var temp = count == 0 ? 0 : (double)(finish + overfinish) / count * 100;
-                    var finishRate = temp.ToString("0") + "%";
-                    var temp2 = count == 0 ? 0 : (double)finish / count * 100;
-                    var normalFinishRate = temp2.ToString("0") + "%";
-                    var analysis = allAnalysis.FirstOrDefault(t => t.MOUDLE_NAME == "作业现场管理" && t.FORM_NAME == "技术交底表");
-                    if (analysis == null)
+                    else
                     {
-                        analysis = new T_BI_FORM_RUN_ANALYSIS();
-                        analysis.MOUDLE_NAME = "作业现场管理";
-                        analysis.FORM_NAME = "技术交底表";
-                        analysis.NUM = 37;
-                        analysis.ORG_ID = filter.OrgId;
+                        var analysis = allAnalysis.FirstOrDefault(t => t.MOUDLE_NAME == "作业现场管理" && t.FORM_NAME == "技术交底表");
+                        if (analysis == null)
+                        {
+                            analysis = new T_BI_FORM_RUN_ANALYSIS();
+                            analysis.MOUDLE_NAME = "作业现场管理";
+                            analysis.FORM_NAME = "技术交底表";
+                            analysis.NUM = 37;
+                            analysis.ORG_ID = filter.OrgId;
+                        }
+                        analysis.TOTAL_QTY = 0;
+                        analysis.FINISH_QTY = 0;
+                        analysis.OVER_FINISH_QTY = 0;
+                        analysis.UNFINISH_QTY = 0;
+                        analysis.FINISH_RATE = "0%";
+                        analysis.NORMAL_FINISH_RATE = "0%";
+                        formAnalysis.Add(analysis);
                     }
-                    analysis.TOTAL_QTY = count;
-                    analysis.FINISH_QTY = finish;
-                    analysis.OVER_FINISH_QTY = overfinish;
-                    analysis.UNFINISH_QTY = unfinish;
-                    analysis.FINISH_RATE = finishRate;
-                    analysis.NORMAL_FINISH_RATE = normalFinishRate;
-                    formAnalysis.Add(analysis);
-                }
-                else
-                {
-                    var analysis = allAnalysis.FirstOrDefault(t => t.MOUDLE_NAME == "作业现场管理" && t.FORM_NAME == "技术交底表");
-                    if (analysis == null)
-                    {
-                        analysis = new T_BI_FORM_RUN_ANALYSIS();
-                        analysis.MOUDLE_NAME = "作业现场管理";
-                        analysis.FORM_NAME = "技术交底表";
-                        analysis.NUM = 37;
-                        analysis.ORG_ID = filter.OrgId;
-                    }
-                    analysis.TOTAL_QTY = 0;
-                    analysis.FINISH_QTY = 0;
-                    analysis.OVER_FINISH_QTY = 0;
-                    analysis.UNFINISH_QTY = 0;
-                    analysis.FINISH_RATE = "0%";
-                    analysis.NORMAL_FINISH_RATE = "0%";
-                    formAnalysis.Add(analysis);
-                }
-                #endregion
+                    #endregion
 
-                #region 作业活动记录(关键和许可作业)
-                if (taskAnalysis.Any())
-                {
-                    foreach (var item in taskAnalysis)
+                    #region 作业活动记录(关键和许可作业)
+                    if (taskAnalysis.Any())
                     {
-                        var task = tasks.FirstOrDefault(t => t.SOURCE_DATA_ID == item.ID);
-                        if (task == null)
-                            item.IS_OVERTIME = 0;
-                        else
-                            item.IS_OVERTIME = 1;
+                        foreach (var item in taskAnalysis)
+                        {
+                            var task = tasks.FirstOrDefault(t => t.SOURCE_DATA_ID == item.ID);
+                            if (task == null)
+                                item.IS_OVERTIME = 0;
+                            else
+                                item.IS_OVERTIME = 1;
+                        }
+                        var count = taskAnalysis.Count();
+                        var finish = taskAnalysis.Count(t => t.IS_OVERTIME == 0 && t.FORM_STATUS == (int)FOTeamActivityState.已归档);
+                        var overfinish = taskAnalysis.Count(t => t.IS_OVERTIME == 1 && t.FORM_STATUS == (int)FOTeamActivityState.已归档);
+                        var unfinish = count - finish - overfinish;
+                        var temp = count == 0 ? 0 : (double)(finish + overfinish) / count * 100;
+                        var finishRate = temp.ToString("0") + "%";
+                        var temp2 = count == 0 ? 0 : (double)finish / count * 100;
+                        var normalFinishRate = temp2.ToString("0") + "%";
+                        var analysis = allAnalysis.FirstOrDefault(t => t.MOUDLE_NAME == "作业现场管理" && t.FORM_NAME == "作业活动记录(关键和许可作业)");
+                        if (analysis == null)
+                        {
+                            analysis = new T_BI_FORM_RUN_ANALYSIS();
+                            analysis.MOUDLE_NAME = "作业现场管理";
+                            analysis.FORM_NAME = "作业活动记录(关键和许可作业)";
+                            analysis.NUM = 38;
+                            analysis.ORG_ID = filter.OrgId;
+                        }
+                        analysis.TOTAL_QTY = count;
+                        analysis.FINISH_QTY = finish;
+                        analysis.OVER_FINISH_QTY = overfinish;
+                        analysis.UNFINISH_QTY = unfinish;
+                        analysis.FINISH_RATE = finishRate;
+                        analysis.NORMAL_FINISH_RATE = normalFinishRate;
+                        formAnalysis.Add(analysis);
                     }
-                    var count = taskAnalysis.Count();
-                    var finish = taskAnalysis.Count(t => t.IS_OVERTIME == 0 && t.FORM_STATUS == (int)FOTeamActivityState.已归档);
-                    var overfinish = taskAnalysis.Count(t => t.IS_OVERTIME == 1 && t.FORM_STATUS == (int)FOTeamActivityState.已归档);
-                    var unfinish = count - finish - overfinish;
-                    var temp = count == 0 ? 0 : (double)(finish + overfinish) / count * 100;
-                    var finishRate = temp.ToString("0") + "%";
-                    var temp2 = count == 0 ? 0 : (double)finish / count * 100;
-                    var normalFinishRate = temp2.ToString("0") + "%";
-                    var analysis = allAnalysis.FirstOrDefault(t => t.MOUDLE_NAME == "作业现场管理" && t.FORM_NAME == "作业活动记录(关键和许可作业)");
-                    if (analysis == null)
+                    else
                     {
-                        analysis = new T_BI_FORM_RUN_ANALYSIS();
-                        analysis.MOUDLE_NAME = "作业现场管理";
-                        analysis.FORM_NAME = "作业活动记录(关键和许可作业)";
-                        analysis.NUM = 38;
-                        analysis.ORG_ID = filter.OrgId;
+                        var analysis = allAnalysis.FirstOrDefault(t => t.MOUDLE_NAME == "作业现场管理" && t.FORM_NAME == "作业活动记录(关键和许可作业)");
+                        if (analysis == null)
+                        {
+                            analysis = new T_BI_FORM_RUN_ANALYSIS();
+                            analysis.MOUDLE_NAME = "作业现场管理";
+                            analysis.FORM_NAME = "作业活动记录(关键和许可作业)";
+                            analysis.NUM = 38;
+                            analysis.ORG_ID = filter.OrgId;
+                        }
+                        analysis.TOTAL_QTY = 0;
+                        analysis.FINISH_QTY = 0;
+                        analysis.OVER_FINISH_QTY = 0;
+                        analysis.UNFINISH_QTY = 0;
+                        analysis.FINISH_RATE = "0%";
+                        analysis.NORMAL_FINISH_RATE = "0%";
+                        formAnalysis.Add(analysis);
                     }
-                    analysis.TOTAL_QTY = count;
-                    analysis.FINISH_QTY = finish;
-                    analysis.OVER_FINISH_QTY = overfinish;
-                    analysis.UNFINISH_QTY = unfinish;
-                    analysis.FINISH_RATE = finishRate;
-                    analysis.NORMAL_FINISH_RATE = normalFinishRate;
-                    formAnalysis.Add(analysis);
-                }
-                else
-                {
-                    var analysis = allAnalysis.FirstOrDefault(t => t.MOUDLE_NAME == "作业现场管理" && t.FORM_NAME == "作业活动记录(关键和许可作业)");
-                    if (analysis == null)
-                    {
-                        analysis = new T_BI_FORM_RUN_ANALYSIS();
-                        analysis.MOUDLE_NAME = "作业现场管理";
-                        analysis.FORM_NAME = "作业活动记录(关键和许可作业)";
-                        analysis.NUM = 38;
-                        analysis.ORG_ID = filter.OrgId;
-                    }
-                    analysis.TOTAL_QTY = 0;
-                    analysis.FINISH_QTY = 0;
-                    analysis.OVER_FINISH_QTY = 0;
-                    analysis.UNFINISH_QTY = 0;
-                    analysis.FINISH_RATE = "0%";
-                    analysis.NORMAL_FINISH_RATE = "0%";
-                    formAnalysis.Add(analysis);
-                }
-                #endregion
+                    #endregion
 
-                this.UnifiedCommit(() =>
+                    this.UnifiedCommit(() =>
+                    {
+                        if (formAnalysis != null && formAnalysis.Any())
+                            BantchSaveEntityNoCommit(formAnalysis);
+                    });
+                }
+                catch (Exception ex)
                 {
-                    if (formAnalysis != null && formAnalysis.Any())
-                        BantchSaveEntityNoCommit(formAnalysis);
-                });
+                    if (!string.IsNullOrEmpty(ex.StackTrace))
+                        throw new Exception("错误日志:[StackTrace]" + ex.StackTrace);
+                    else
+                        throw new Exception("【" + HttpContext.Request.Path + "】错误日志:[Message]" + ex.Message);
+                }
                 return true;
             });
         }
@@ -2631,593 +2661,609 @@ namespace APT.PP.WebApi.Controllers.Api.PP
         {
             return SafeExecute(() =>
             {
-                List departSummary = new List();
-                List mouldSummary = new List();
-                var dt = DateTime.Now;
-                //最近一周
-                DateTime week = dt.AddDays(-7).Date;
-                //最近一月
-                DateTime month = dt.AddMonths(-1).Date;
-                //最近三月
-                DateTime threeMonth = dt.AddMonths(-3).Date;
-                //最近半年
-                DateTime sixMonth = dt.AddMonths(-6).Date;
-                //最近一年
-                DateTime year = dt.AddYears(-1).Date;
-                var newFilter = new BaseFilter(pageFilter.OrgId);
-                var taskYear = this.GetEntities(t => t.CREATE_DATE >= year, new BaseFilter(pageFilter.OrgId)).ToList();
-                newFilter.SelectField = new List { "ID", "PARENT_ID", "NAME", "Nav_Parent", "DEPARTMENT_TYPE" };
-                var departmentInfos = this.GetEntities(t => !t.IS_DELETED && t.ENABLE_STATUS == 0, newFilter).ToList();
-                //部门级
-                var departGroupYear = taskYear.Where(t => t.DEPT_DEPARTMENT_ID != null && t.MOUDLE_NAME != null).ToList();
-                var taskSixMonth = departGroupYear.Where(t => t.CREATE_DATE >= sixMonth).ToList();
-                var taskThreeMonth = departGroupYear.Where(t => t.CREATE_DATE >= threeMonth).ToList();
-                var taskMonth = departGroupYear.Where(t => t.CREATE_DATE >= month).ToList();
-                var taskWeek = departGroupYear.Where(t => t.CREATE_DATE >= week).ToList();
-                //车间级
-                var shopGroupYear = taskYear.Where(t => t.SHOP_DEPARTMENT_ID != null && t.MOUDLE_NAME != null).ToList();
-                var taskSixMonthShop = shopGroupYear.Where(t => t.CREATE_DATE >= sixMonth).ToList();
-                var taskThreeMonthShop = shopGroupYear.Where(t => t.CREATE_DATE >= threeMonth).ToList();
-                var taskMonthShop = shopGroupYear.Where(t => t.CREATE_DATE >= month).ToList();
-                var taskWeekShop = shopGroupYear.Where(t => t.CREATE_DATE >= week).ToList();
-                //班组级
-                var classGroupYear = taskYear.Where(t => t.CLASS_DEPARTMENT_ID != null).ToList();
-                var taskSixMonthClass = classGroupYear.Where(t => t.CREATE_DATE >= sixMonth).ToList();
-                var taskThreeMonthClass = classGroupYear.Where(t => t.CREATE_DATE >= threeMonth).ToList();
-                var taskMonthClass = classGroupYear.Where(t => t.CREATE_DATE >= month).ToList();
-                var taskWeekClass = classGroupYear.Where(t => t.CREATE_DATE >= week).ToList();
-                //年度
-                if (departGroupYear.Any())
+                try
                 {
-                    var groupYearDepart = departGroupYear.GroupBy(t => t.DEPT_DEPARTMENT_ID).ToList();
-                    groupYearDepart.ForEach(t =>
+                    List departSummary = new List();
+                    List mouldSummary = new List();
+                    var dt = DateTime.Now.Date;
+                    //最近一周
+                    DateTime week = dt.AddDays(-7).Date;
+                    //最近一月
+                    DateTime month = dt.AddMonths(-1).Date;
+                    //最近三月
+                    DateTime threeMonth = dt.AddMonths(-3).Date;
+                    //最近半年
+                    DateTime sixMonth = dt.AddMonths(-6).Date;
+                    //最近一年
+                    DateTime year = dt.AddYears(-1).Date;
+                    dt = Convert.ToDateTime(dt.ToString().Replace("0:00:00", "23:59:59"));
+                    var newFilter = new BaseFilter(pageFilter.OrgId);
+                    var taskYear = this.GetEntities(t => t.CREATE_DATE >= year && t.CREATE_DATE <= dt, new BaseFilter(pageFilter.OrgId)).ToList();
+                    newFilter.SelectField = new List { "ID", "PARENT_ID", "NAME", "Nav_Parent", "DEPARTMENT_TYPE" };
+                    var departmentInfos = this.GetEntities(t => !t.IS_DELETED && t.ENABLE_STATUS == 0, newFilter).ToList();
+                    //部门级
+                    var departGroupYear = taskYear.Where(t => t.DEPT_DEPARTMENT_ID != null && t.MOUDLE_NAME != null).ToList();
+                    var taskSixMonth = departGroupYear.Where(t => t.CREATE_DATE >= sixMonth).ToList();
+                    var taskThreeMonth = departGroupYear.Where(t => t.CREATE_DATE >= threeMonth).ToList();
+                    var taskMonth = departGroupYear.Where(t => t.CREATE_DATE >= month).ToList();
+                    var taskWeek = departGroupYear.Where(t => t.CREATE_DATE >= week).ToList();
+                    //车间级
+                    var shopGroupYear = taskYear.Where(t => t.SHOP_DEPARTMENT_ID != null && t.MOUDLE_NAME != null).ToList();
+                    var taskSixMonthShop = shopGroupYear.Where(t => t.CREATE_DATE >= sixMonth).ToList();
+                    var taskThreeMonthShop = shopGroupYear.Where(t => t.CREATE_DATE >= threeMonth).ToList();
+                    var taskMonthShop = shopGroupYear.Where(t => t.CREATE_DATE >= month).ToList();
+                    var taskWeekShop = shopGroupYear.Where(t => t.CREATE_DATE >= week).ToList();
+                    //班组级
+                    var classGroupYear = taskYear.Where(t => t.CLASS_DEPARTMENT_ID != null).ToList();
+                    var taskSixMonthClass = classGroupYear.Where(t => t.CREATE_DATE >= sixMonth).ToList();
+                    var taskThreeMonthClass = classGroupYear.Where(t => t.CREATE_DATE >= threeMonth).ToList();
+                    var taskMonthClass = classGroupYear.Where(t => t.CREATE_DATE >= month).ToList();
+                    var taskWeekClass = classGroupYear.Where(t => t.CREATE_DATE >= week).ToList();
+                    //年度
+                    if (departGroupYear.Any())
                     {
-                        T_BI_SYSTEM_RUN_SUMMARY sum = new T_BI_SYSTEM_RUN_SUMMARY();
-                        sum.DEPARTMENT_ID = t.Key.Value;
-                        sum.ORG_ID = pageFilter.OrgId;
-                        var depart = departmentInfos.FirstOrDefault(m => m.ID == t.Key.Value);
-                        sum.DEPARTMENT_NAME = depart?.NAME;
-                        sum.TYPE = MS.Domain.Enums.BI.BIEnums.FilterTimeType.LastYear;
-                        sum.TOTAL_QTY = t.Where(m => m.DEPT_DEPARTMENT_ID == t.Key.Value).Count();
-                        sum.FINISH_QTY = t.Where(m => m.DEPT_DEPARTMENT_ID == t.Key.Value && m.NOTICE_STATUS == 1).Count();
-                        sum.OVER_FINISH_QTY = t.Where(m => m.DEPT_DEPARTMENT_ID == t.Key.Value && m.NOTICE_STATUS == 2).Count();
-                        sum.UNFINISH_QTY = sum.TOTAL_QTY - sum.FINISH_QTY - sum.OVER_FINISH_QTY;
-                        sum.DEPARTMENT_TYPE = FMDepartmentType.部门;
-                        var temp = sum.TOTAL_QTY == 0 ? 0 : (double)(sum.FINISH_QTY + sum.OVER_FINISH_QTY) / sum.TOTAL_QTY * 100;
-                        sum.FINISH_RATE = temp.ToString("0");
-                        var temp2 = sum.TOTAL_QTY == 0 ? 0 : (double)sum.FINISH_QTY / sum.TOTAL_QTY * 100;
-                        sum.NORMAL_FINISH_RATE = temp2.ToString("0");
-                        departSummary.Add(sum);
-                    });
-                    var groupYearMould = departGroupYear.GroupBy(t => t.MOUDLE_NAME).ToList();
-                    groupYearMould.ForEach(t => {
-                        T_BI_MOULD_RUN_SUMMARY sum = new T_BI_MOULD_RUN_SUMMARY();
-                        sum.MOUDLE_NAME = t.Key;
-                        sum.ORG_ID = pageFilter.OrgId;
-                        sum.TYPE = MS.Domain.Enums.BI.BIEnums.FilterTimeType.LastYear;
-                        sum.TOTAL_QTY = t.Where(m => m.MOUDLE_NAME == t.Key).Count();
-                        sum.FINISH_QTY = t.Where(m => m.MOUDLE_NAME == t.Key && m.NOTICE_STATUS == 1).Count();
-                        sum.OVER_FINISH_QTY = t.Where(m => m.MOUDLE_NAME == t.Key && m.NOTICE_STATUS == 2).Count();
-                        sum.UNFINISH_QTY = sum.TOTAL_QTY - sum.FINISH_QTY - sum.OVER_FINISH_QTY;
-                        var temp = sum.TOTAL_QTY == 0 ? 0 : (double)(sum.FINISH_QTY + sum.OVER_FINISH_QTY) / sum.TOTAL_QTY * 100;
-                        sum.FINISH_RATE = temp.ToString("0");
-                        var temp2 = sum.TOTAL_QTY == 0 ? 0 : (double)sum.FINISH_QTY / sum.TOTAL_QTY * 100;
-                        sum.NORMAL_FINISH_RATE = temp2.ToString("0");
-                        mouldSummary.Add(sum);
-                    });
-                }
-                if (shopGroupYear.Any())
-                {
-                    var groupYearDepart = shopGroupYear.GroupBy(t => t.SHOP_DEPARTMENT_ID).ToList();
-                    groupYearDepart.ForEach(t =>
+                        var groupYearDepart = departGroupYear.GroupBy(t => t.DEPT_DEPARTMENT_ID).ToList();
+                        groupYearDepart.ForEach(t =>
+                        {
+                            T_BI_SYSTEM_RUN_SUMMARY sum = new T_BI_SYSTEM_RUN_SUMMARY();
+                            sum.DEPARTMENT_ID = t.Key.Value;
+                            sum.ORG_ID = pageFilter.OrgId;
+                            var depart = departmentInfos.FirstOrDefault(m => m.ID == t.Key.Value);
+                            sum.DEPARTMENT_NAME = depart?.NAME;
+                            sum.TYPE = MS.Domain.Enums.BI.BIEnums.FilterTimeType.LastYear;
+                            sum.TOTAL_QTY = t.Where(m => m.DEPT_DEPARTMENT_ID == t.Key.Value).Count();
+                            sum.FINISH_QTY = t.Where(m => m.DEPT_DEPARTMENT_ID == t.Key.Value && m.NOTICE_STATUS == 1).Count();
+                            sum.OVER_FINISH_QTY = t.Where(m => m.DEPT_DEPARTMENT_ID == t.Key.Value && m.NOTICE_STATUS == 2).Count();
+                            sum.UNFINISH_QTY = sum.TOTAL_QTY - sum.FINISH_QTY - sum.OVER_FINISH_QTY;
+                            sum.DEPARTMENT_TYPE = FMDepartmentType.部门;
+                            var temp = sum.TOTAL_QTY == 0 ? 0 : (double)(sum.FINISH_QTY + sum.OVER_FINISH_QTY) / sum.TOTAL_QTY * 100;
+                            sum.FINISH_RATE = temp.ToString("0");
+                            var temp2 = sum.TOTAL_QTY == 0 ? 0 : (double)sum.FINISH_QTY / sum.TOTAL_QTY * 100;
+                            sum.NORMAL_FINISH_RATE = temp2.ToString("0");
+                            departSummary.Add(sum);
+                        });
+                        var groupYearMould = departGroupYear.GroupBy(t => t.MOUDLE_NAME).ToList();
+                        groupYearMould.ForEach(t =>
+                        {
+                            T_BI_MOULD_RUN_SUMMARY sum = new T_BI_MOULD_RUN_SUMMARY();
+                            sum.MOUDLE_NAME = t.Key;
+                            sum.ORG_ID = pageFilter.OrgId;
+                            sum.TYPE = MS.Domain.Enums.BI.BIEnums.FilterTimeType.LastYear;
+                            sum.TOTAL_QTY = t.Where(m => m.MOUDLE_NAME == t.Key).Count();
+                            sum.FINISH_QTY = t.Where(m => m.MOUDLE_NAME == t.Key && m.NOTICE_STATUS == 1).Count();
+                            sum.OVER_FINISH_QTY = t.Where(m => m.MOUDLE_NAME == t.Key && m.NOTICE_STATUS == 2).Count();
+                            sum.UNFINISH_QTY = sum.TOTAL_QTY - sum.FINISH_QTY - sum.OVER_FINISH_QTY;
+                            var temp = sum.TOTAL_QTY == 0 ? 0 : (double)(sum.FINISH_QTY + sum.OVER_FINISH_QTY) / sum.TOTAL_QTY * 100;
+                            sum.FINISH_RATE = temp.ToString("0");
+                            var temp2 = sum.TOTAL_QTY == 0 ? 0 : (double)sum.FINISH_QTY / sum.TOTAL_QTY * 100;
+                            sum.NORMAL_FINISH_RATE = temp2.ToString("0");
+                            mouldSummary.Add(sum);
+                        });
+                    }
+                    if (shopGroupYear.Any())
                     {
-                        T_BI_SYSTEM_RUN_SUMMARY sum = new T_BI_SYSTEM_RUN_SUMMARY();
-                        sum.DEPARTMENT_ID = t.Key.Value;
-                        sum.ORG_ID = pageFilter.OrgId;
-                        var depart = departmentInfos.FirstOrDefault(m => m.ID == t.Key.Value);
-                        sum.DEPARTMENT_NAME = depart?.NAME;
-                        sum.PARENT_DEPARTMENT_ID = depart?.PARENT_ID;
-                        sum.TYPE = MS.Domain.Enums.BI.BIEnums.FilterTimeType.LastYear;
-                        sum.TOTAL_QTY = t.Where(m => m.SHOP_DEPARTMENT_ID == t.Key.Value).Count();
-                        sum.FINISH_QTY = t.Where(m => m.SHOP_DEPARTMENT_ID == t.Key.Value && m.NOTICE_STATUS == 1).Count();
-                        sum.OVER_FINISH_QTY = t.Where(m => m.SHOP_DEPARTMENT_ID == t.Key.Value && m.NOTICE_STATUS == 2).Count();
-                        sum.UNFINISH_QTY = sum.TOTAL_QTY - sum.FINISH_QTY - sum.OVER_FINISH_QTY;
-                        sum.DEPARTMENT_TYPE = FMDepartmentType.车间;
-                        var temp = sum.TOTAL_QTY == 0 ? 0 : (double)(sum.FINISH_QTY + sum.OVER_FINISH_QTY) / sum.TOTAL_QTY * 100;
-                        sum.FINISH_RATE = temp.ToString("0");
-                        var temp2 = sum.TOTAL_QTY == 0 ? 0 : (double)sum.FINISH_QTY / sum.TOTAL_QTY * 100;
-                        sum.NORMAL_FINISH_RATE = temp2.ToString("0");
-                        departSummary.Add(sum);
-                    });
-                }
-                if (classGroupYear.Any())
-                {
-                    var groupYearDepart = classGroupYear.GroupBy(t => t.CLASS_DEPARTMENT_ID).ToList();
-                    groupYearDepart.ForEach(t =>
+                        var groupYearDepart = shopGroupYear.GroupBy(t => t.SHOP_DEPARTMENT_ID).ToList();
+                        groupYearDepart.ForEach(t =>
+                        {
+                            T_BI_SYSTEM_RUN_SUMMARY sum = new T_BI_SYSTEM_RUN_SUMMARY();
+                            sum.DEPARTMENT_ID = t.Key.Value;
+                            sum.ORG_ID = pageFilter.OrgId;
+                            var depart = departmentInfos.FirstOrDefault(m => m.ID == t.Key.Value);
+                            sum.DEPARTMENT_NAME = depart?.NAME;
+                            sum.PARENT_DEPARTMENT_ID = depart?.PARENT_ID;
+                            sum.TYPE = MS.Domain.Enums.BI.BIEnums.FilterTimeType.LastYear;
+                            sum.TOTAL_QTY = t.Where(m => m.SHOP_DEPARTMENT_ID == t.Key.Value).Count();
+                            sum.FINISH_QTY = t.Where(m => m.SHOP_DEPARTMENT_ID == t.Key.Value && m.NOTICE_STATUS == 1).Count();
+                            sum.OVER_FINISH_QTY = t.Where(m => m.SHOP_DEPARTMENT_ID == t.Key.Value && m.NOTICE_STATUS == 2).Count();
+                            sum.UNFINISH_QTY = sum.TOTAL_QTY - sum.FINISH_QTY - sum.OVER_FINISH_QTY;
+                            sum.DEPARTMENT_TYPE = FMDepartmentType.车间;
+                            var temp = sum.TOTAL_QTY == 0 ? 0 : (double)(sum.FINISH_QTY + sum.OVER_FINISH_QTY) / sum.TOTAL_QTY * 100;
+                            sum.FINISH_RATE = temp.ToString("0");
+                            var temp2 = sum.TOTAL_QTY == 0 ? 0 : (double)sum.FINISH_QTY / sum.TOTAL_QTY * 100;
+                            sum.NORMAL_FINISH_RATE = temp2.ToString("0");
+                            departSummary.Add(sum);
+                        });
+                    }
+                    if (classGroupYear.Any())
                     {
-                        T_BI_SYSTEM_RUN_SUMMARY sum = new T_BI_SYSTEM_RUN_SUMMARY();
-                        sum.DEPARTMENT_ID = t.Key.Value;
-                        sum.ORG_ID = pageFilter.OrgId;
-                        var depart = departmentInfos.FirstOrDefault(m => m.ID == t.Key.Value);
-                        sum.DEPARTMENT_NAME = depart?.NAME;
-                        sum.PARENT_DEPARTMENT_ID = depart?.PARENT_ID;
-                        sum.TYPE = MS.Domain.Enums.BI.BIEnums.FilterTimeType.LastYear;
-                        sum.TOTAL_QTY = t.Where(m => m.CLASS_DEPARTMENT_ID == t.Key.Value).Count();
-                        sum.FINISH_QTY = t.Where(m => m.CLASS_DEPARTMENT_ID == t.Key.Value && m.NOTICE_STATUS == 1).Count();
-                        sum.OVER_FINISH_QTY = t.Where(m => m.CLASS_DEPARTMENT_ID == t.Key.Value && m.NOTICE_STATUS == 2).Count();
-                        sum.UNFINISH_QTY = sum.TOTAL_QTY - sum.FINISH_QTY - sum.OVER_FINISH_QTY;
-                        sum.DEPARTMENT_TYPE = FMDepartmentType.班组;
-                        var temp = sum.TOTAL_QTY == 0 ? 0 : (double)(sum.FINISH_QTY + sum.OVER_FINISH_QTY) / sum.TOTAL_QTY * 100;
-                        sum.FINISH_RATE = temp.ToString("0");
-                        var temp2 = sum.TOTAL_QTY == 0 ? 0 : (double)sum.FINISH_QTY / sum.TOTAL_QTY * 100;
-                        sum.NORMAL_FINISH_RATE = temp2.ToString("0");
-                        departSummary.Add(sum);
-                    });
-                }
-                //半年度
-                if (taskSixMonth.Any())
-                {
-                    var groupYearDepart = taskSixMonth.GroupBy(t => t.DEPT_DEPARTMENT_ID).ToList();
-                    groupYearDepart.ForEach(t =>
+                        var groupYearDepart = classGroupYear.GroupBy(t => t.CLASS_DEPARTMENT_ID).ToList();
+                        groupYearDepart.ForEach(t =>
+                        {
+                            T_BI_SYSTEM_RUN_SUMMARY sum = new T_BI_SYSTEM_RUN_SUMMARY();
+                            sum.DEPARTMENT_ID = t.Key.Value;
+                            sum.ORG_ID = pageFilter.OrgId;
+                            var depart = departmentInfos.FirstOrDefault(m => m.ID == t.Key.Value);
+                            sum.DEPARTMENT_NAME = depart?.NAME;
+                            sum.PARENT_DEPARTMENT_ID = depart?.PARENT_ID;
+                            sum.TYPE = MS.Domain.Enums.BI.BIEnums.FilterTimeType.LastYear;
+                            sum.TOTAL_QTY = t.Where(m => m.CLASS_DEPARTMENT_ID == t.Key.Value).Count();
+                            sum.FINISH_QTY = t.Where(m => m.CLASS_DEPARTMENT_ID == t.Key.Value && m.NOTICE_STATUS == 1).Count();
+                            sum.OVER_FINISH_QTY = t.Where(m => m.CLASS_DEPARTMENT_ID == t.Key.Value && m.NOTICE_STATUS == 2).Count();
+                            sum.UNFINISH_QTY = sum.TOTAL_QTY - sum.FINISH_QTY - sum.OVER_FINISH_QTY;
+                            sum.DEPARTMENT_TYPE = FMDepartmentType.班组;
+                            var temp = sum.TOTAL_QTY == 0 ? 0 : (double)(sum.FINISH_QTY + sum.OVER_FINISH_QTY) / sum.TOTAL_QTY * 100;
+                            sum.FINISH_RATE = temp.ToString("0");
+                            var temp2 = sum.TOTAL_QTY == 0 ? 0 : (double)sum.FINISH_QTY / sum.TOTAL_QTY * 100;
+                            sum.NORMAL_FINISH_RATE = temp2.ToString("0");
+                            departSummary.Add(sum);
+                        });
+                    }
+                    //半年度
+                    if (taskSixMonth.Any())
                     {
-                        T_BI_SYSTEM_RUN_SUMMARY sum = new T_BI_SYSTEM_RUN_SUMMARY();
-                        sum.DEPARTMENT_ID = t.Key.Value;
-                        sum.ORG_ID = pageFilter.OrgId;
-                        var depart = departmentInfos.FirstOrDefault(m => m.ID == t.Key.Value);
-                        sum.DEPARTMENT_NAME = depart?.NAME;
-                        sum.TYPE = MS.Domain.Enums.BI.BIEnums.FilterTimeType.LastHalfYear;
-                        sum.TOTAL_QTY = t.Where(m => m.DEPT_DEPARTMENT_ID == t.Key.Value).Count();
-                        sum.FINISH_QTY = t.Where(m => m.DEPT_DEPARTMENT_ID == t.Key.Value && m.NOTICE_STATUS == 1).Count();
-                        sum.OVER_FINISH_QTY = t.Where(m => m.DEPT_DEPARTMENT_ID == t.Key.Value && m.NOTICE_STATUS == 2).Count();
-                        sum.UNFINISH_QTY = sum.TOTAL_QTY - sum.FINISH_QTY - sum.OVER_FINISH_QTY;
-                        sum.DEPARTMENT_TYPE = FMDepartmentType.部门;
-                        var temp = sum.TOTAL_QTY == 0 ? 0 : (double)(sum.FINISH_QTY + sum.OVER_FINISH_QTY) / sum.TOTAL_QTY * 100;
-                        sum.FINISH_RATE = temp.ToString("0");
-                        var temp2 = sum.TOTAL_QTY == 0 ? 0 : (double)sum.FINISH_QTY / sum.TOTAL_QTY * 100;
-                        sum.NORMAL_FINISH_RATE = temp2.ToString("0");
-                        departSummary.Add(sum);
-                    });
-                    var groupYearMould = taskSixMonth.GroupBy(t => t.MOUDLE_NAME).ToList();
-                    groupYearMould.ForEach(t => {
-                        T_BI_MOULD_RUN_SUMMARY sum = new T_BI_MOULD_RUN_SUMMARY();
-                        sum.MOUDLE_NAME = t.Key;
-                        sum.ORG_ID = pageFilter.OrgId;
-                        sum.TYPE = MS.Domain.Enums.BI.BIEnums.FilterTimeType.LastHalfYear;
-                        sum.TOTAL_QTY = t.Where(m => m.MOUDLE_NAME == t.Key).Count();
-                        sum.FINISH_QTY = t.Where(m => m.MOUDLE_NAME == t.Key && m.NOTICE_STATUS == 1).Count();
-                        sum.OVER_FINISH_QTY = t.Where(m => m.MOUDLE_NAME == t.Key && m.NOTICE_STATUS == 2).Count();
-                        sum.UNFINISH_QTY = sum.TOTAL_QTY - sum.FINISH_QTY - sum.OVER_FINISH_QTY;
-                        var temp = sum.TOTAL_QTY == 0 ? 0 : (double)(sum.FINISH_QTY + sum.OVER_FINISH_QTY) / sum.TOTAL_QTY * 100;
-                        sum.FINISH_RATE = temp.ToString("0");
-                        var temp2 = sum.TOTAL_QTY == 0 ? 0 : (double)sum.FINISH_QTY / sum.TOTAL_QTY * 100;
-                        sum.NORMAL_FINISH_RATE = temp2.ToString("0");
-                        mouldSummary.Add(sum);
-                    });
-                }
-                if (taskSixMonthShop.Any())
-                {
-                    var groupYearDepart = taskSixMonthShop.GroupBy(t => t.SHOP_DEPARTMENT_ID).ToList();
-                    groupYearDepart.ForEach(t =>
+                        var groupYearDepart = taskSixMonth.GroupBy(t => t.DEPT_DEPARTMENT_ID).ToList();
+                        groupYearDepart.ForEach(t =>
+                        {
+                            T_BI_SYSTEM_RUN_SUMMARY sum = new T_BI_SYSTEM_RUN_SUMMARY();
+                            sum.DEPARTMENT_ID = t.Key.Value;
+                            sum.ORG_ID = pageFilter.OrgId;
+                            var depart = departmentInfos.FirstOrDefault(m => m.ID == t.Key.Value);
+                            sum.DEPARTMENT_NAME = depart?.NAME;
+                            sum.TYPE = MS.Domain.Enums.BI.BIEnums.FilterTimeType.LastHalfYear;
+                            sum.TOTAL_QTY = t.Where(m => m.DEPT_DEPARTMENT_ID == t.Key.Value).Count();
+                            sum.FINISH_QTY = t.Where(m => m.DEPT_DEPARTMENT_ID == t.Key.Value && m.NOTICE_STATUS == 1).Count();
+                            sum.OVER_FINISH_QTY = t.Where(m => m.DEPT_DEPARTMENT_ID == t.Key.Value && m.NOTICE_STATUS == 2).Count();
+                            sum.UNFINISH_QTY = sum.TOTAL_QTY - sum.FINISH_QTY - sum.OVER_FINISH_QTY;
+                            sum.DEPARTMENT_TYPE = FMDepartmentType.部门;
+                            var temp = sum.TOTAL_QTY == 0 ? 0 : (double)(sum.FINISH_QTY + sum.OVER_FINISH_QTY) / sum.TOTAL_QTY * 100;
+                            sum.FINISH_RATE = temp.ToString("0");
+                            var temp2 = sum.TOTAL_QTY == 0 ? 0 : (double)sum.FINISH_QTY / sum.TOTAL_QTY * 100;
+                            sum.NORMAL_FINISH_RATE = temp2.ToString("0");
+                            departSummary.Add(sum);
+                        });
+                        var groupYearMould = taskSixMonth.GroupBy(t => t.MOUDLE_NAME).ToList();
+                        groupYearMould.ForEach(t =>
+                        {
+                            T_BI_MOULD_RUN_SUMMARY sum = new T_BI_MOULD_RUN_SUMMARY();
+                            sum.MOUDLE_NAME = t.Key;
+                            sum.ORG_ID = pageFilter.OrgId;
+                            sum.TYPE = MS.Domain.Enums.BI.BIEnums.FilterTimeType.LastHalfYear;
+                            sum.TOTAL_QTY = t.Where(m => m.MOUDLE_NAME == t.Key).Count();
+                            sum.FINISH_QTY = t.Where(m => m.MOUDLE_NAME == t.Key && m.NOTICE_STATUS == 1).Count();
+                            sum.OVER_FINISH_QTY = t.Where(m => m.MOUDLE_NAME == t.Key && m.NOTICE_STATUS == 2).Count();
+                            sum.UNFINISH_QTY = sum.TOTAL_QTY - sum.FINISH_QTY - sum.OVER_FINISH_QTY;
+                            var temp = sum.TOTAL_QTY == 0 ? 0 : (double)(sum.FINISH_QTY + sum.OVER_FINISH_QTY) / sum.TOTAL_QTY * 100;
+                            sum.FINISH_RATE = temp.ToString("0");
+                            var temp2 = sum.TOTAL_QTY == 0 ? 0 : (double)sum.FINISH_QTY / sum.TOTAL_QTY * 100;
+                            sum.NORMAL_FINISH_RATE = temp2.ToString("0");
+                            mouldSummary.Add(sum);
+                        });
+                    }
+                    if (taskSixMonthShop.Any())
                     {
-                        T_BI_SYSTEM_RUN_SUMMARY sum = new T_BI_SYSTEM_RUN_SUMMARY();
-                        sum.DEPARTMENT_ID = t.Key.Value;
-                        sum.ORG_ID = pageFilter.OrgId;
-                        var depart = departmentInfos.FirstOrDefault(m => m.ID == t.Key.Value);
-                        sum.DEPARTMENT_NAME = depart?.NAME;
-                        sum.PARENT_DEPARTMENT_ID = depart?.PARENT_ID;
-                        sum.TYPE = MS.Domain.Enums.BI.BIEnums.FilterTimeType.LastHalfYear;
-                        sum.TOTAL_QTY = t.Where(m => m.SHOP_DEPARTMENT_ID == t.Key.Value).Count();
-                        sum.FINISH_QTY = t.Where(m => m.SHOP_DEPARTMENT_ID == t.Key.Value && m.NOTICE_STATUS == 1).Count();
-                        sum.OVER_FINISH_QTY = t.Where(m => m.SHOP_DEPARTMENT_ID == t.Key.Value && m.NOTICE_STATUS == 2).Count();
-                        sum.UNFINISH_QTY = sum.TOTAL_QTY - sum.FINISH_QTY - sum.OVER_FINISH_QTY;
-                        sum.DEPARTMENT_TYPE = FMDepartmentType.车间;
-                        var temp = sum.TOTAL_QTY == 0 ? 0 : (double)(sum.FINISH_QTY + sum.OVER_FINISH_QTY) / sum.TOTAL_QTY * 100;
-                        sum.FINISH_RATE = temp.ToString("0");
-                        var temp2 = sum.TOTAL_QTY == 0 ? 0 : (double)sum.FINISH_QTY / sum.TOTAL_QTY * 100;
-                        sum.NORMAL_FINISH_RATE = temp2.ToString("0");
-                        departSummary.Add(sum);
-                    });
-                }
-                if (taskSixMonthClass.Any())
-                {
-                    var groupYearDepart = taskSixMonthClass.GroupBy(t => t.CLASS_DEPARTMENT_ID).ToList();
-                    groupYearDepart.ForEach(t =>
+                        var groupYearDepart = taskSixMonthShop.GroupBy(t => t.SHOP_DEPARTMENT_ID).ToList();
+                        groupYearDepart.ForEach(t =>
+                        {
+                            T_BI_SYSTEM_RUN_SUMMARY sum = new T_BI_SYSTEM_RUN_SUMMARY();
+                            sum.DEPARTMENT_ID = t.Key.Value;
+                            sum.ORG_ID = pageFilter.OrgId;
+                            var depart = departmentInfos.FirstOrDefault(m => m.ID == t.Key.Value);
+                            sum.DEPARTMENT_NAME = depart?.NAME;
+                            sum.PARENT_DEPARTMENT_ID = depart?.PARENT_ID;
+                            sum.TYPE = MS.Domain.Enums.BI.BIEnums.FilterTimeType.LastHalfYear;
+                            sum.TOTAL_QTY = t.Where(m => m.SHOP_DEPARTMENT_ID == t.Key.Value).Count();
+                            sum.FINISH_QTY = t.Where(m => m.SHOP_DEPARTMENT_ID == t.Key.Value && m.NOTICE_STATUS == 1).Count();
+                            sum.OVER_FINISH_QTY = t.Where(m => m.SHOP_DEPARTMENT_ID == t.Key.Value && m.NOTICE_STATUS == 2).Count();
+                            sum.UNFINISH_QTY = sum.TOTAL_QTY - sum.FINISH_QTY - sum.OVER_FINISH_QTY;
+                            sum.DEPARTMENT_TYPE = FMDepartmentType.车间;
+                            var temp = sum.TOTAL_QTY == 0 ? 0 : (double)(sum.FINISH_QTY + sum.OVER_FINISH_QTY) / sum.TOTAL_QTY * 100;
+                            sum.FINISH_RATE = temp.ToString("0");
+                            var temp2 = sum.TOTAL_QTY == 0 ? 0 : (double)sum.FINISH_QTY / sum.TOTAL_QTY * 100;
+                            sum.NORMAL_FINISH_RATE = temp2.ToString("0");
+                            departSummary.Add(sum);
+                        });
+                    }
+                    if (taskSixMonthClass.Any())
                     {
-                        T_BI_SYSTEM_RUN_SUMMARY sum = new T_BI_SYSTEM_RUN_SUMMARY();
-                        sum.DEPARTMENT_ID = t.Key.Value;
-                        sum.ORG_ID = pageFilter.OrgId;
-                        var depart = departmentInfos.FirstOrDefault(m => m.ID == t.Key.Value);
-                        sum.DEPARTMENT_NAME = depart?.NAME;
-                        sum.PARENT_DEPARTMENT_ID = depart?.PARENT_ID;
-                        sum.TYPE = MS.Domain.Enums.BI.BIEnums.FilterTimeType.LastHalfYear;
-                        sum.TOTAL_QTY = t.Where(m => m.CLASS_DEPARTMENT_ID == t.Key.Value).Count();
-                        sum.FINISH_QTY = t.Where(m => m.CLASS_DEPARTMENT_ID == t.Key.Value && m.NOTICE_STATUS == 1).Count();
-                        sum.OVER_FINISH_QTY = t.Where(m => m.CLASS_DEPARTMENT_ID == t.Key.Value && m.NOTICE_STATUS == 2).Count();
-                        sum.UNFINISH_QTY = sum.TOTAL_QTY - sum.FINISH_QTY - sum.OVER_FINISH_QTY;
-                        sum.DEPARTMENT_TYPE = FMDepartmentType.班组;
-                        var temp = sum.TOTAL_QTY == 0 ? 0 : (double)(sum.FINISH_QTY + sum.OVER_FINISH_QTY) / sum.TOTAL_QTY * 100;
-                        sum.FINISH_RATE = temp.ToString("0");
-                        var temp2 = sum.TOTAL_QTY == 0 ? 0 : (double)sum.FINISH_QTY / sum.TOTAL_QTY * 100;
-                        sum.NORMAL_FINISH_RATE = temp2.ToString("0");
-                        departSummary.Add(sum);
-                    });
-                }
-                //三个月
-                if (taskThreeMonth.Any())
-                {
-                    var groupYearDepart = taskThreeMonth.GroupBy(t => t.DEPT_DEPARTMENT_ID).ToList();
-                    groupYearDepart.ForEach(t =>
+                        var groupYearDepart = taskSixMonthClass.GroupBy(t => t.CLASS_DEPARTMENT_ID).ToList();
+                        groupYearDepart.ForEach(t =>
+                        {
+                            T_BI_SYSTEM_RUN_SUMMARY sum = new T_BI_SYSTEM_RUN_SUMMARY();
+                            sum.DEPARTMENT_ID = t.Key.Value;
+                            sum.ORG_ID = pageFilter.OrgId;
+                            var depart = departmentInfos.FirstOrDefault(m => m.ID == t.Key.Value);
+                            sum.DEPARTMENT_NAME = depart?.NAME;
+                            sum.PARENT_DEPARTMENT_ID = depart?.PARENT_ID;
+                            sum.TYPE = MS.Domain.Enums.BI.BIEnums.FilterTimeType.LastHalfYear;
+                            sum.TOTAL_QTY = t.Where(m => m.CLASS_DEPARTMENT_ID == t.Key.Value).Count();
+                            sum.FINISH_QTY = t.Where(m => m.CLASS_DEPARTMENT_ID == t.Key.Value && m.NOTICE_STATUS == 1).Count();
+                            sum.OVER_FINISH_QTY = t.Where(m => m.CLASS_DEPARTMENT_ID == t.Key.Value && m.NOTICE_STATUS == 2).Count();
+                            sum.UNFINISH_QTY = sum.TOTAL_QTY - sum.FINISH_QTY - sum.OVER_FINISH_QTY;
+                            sum.DEPARTMENT_TYPE = FMDepartmentType.班组;
+                            var temp = sum.TOTAL_QTY == 0 ? 0 : (double)(sum.FINISH_QTY + sum.OVER_FINISH_QTY) / sum.TOTAL_QTY * 100;
+                            sum.FINISH_RATE = temp.ToString("0");
+                            var temp2 = sum.TOTAL_QTY == 0 ? 0 : (double)sum.FINISH_QTY / sum.TOTAL_QTY * 100;
+                            sum.NORMAL_FINISH_RATE = temp2.ToString("0");
+                            departSummary.Add(sum);
+                        });
+                    }
+                    //三个月
+                    if (taskThreeMonth.Any())
                     {
-                        T_BI_SYSTEM_RUN_SUMMARY sum = new T_BI_SYSTEM_RUN_SUMMARY();
-                        sum.DEPARTMENT_ID = t.Key.Value;
-                        sum.ORG_ID = pageFilter.OrgId;
-                        var depart = departmentInfos.FirstOrDefault(m => m.ID == t.Key.Value);
-                        sum.DEPARTMENT_NAME = depart?.NAME;
-                        sum.TYPE = MS.Domain.Enums.BI.BIEnums.FilterTimeType.LastThreeMonth;
-                        sum.TOTAL_QTY = t.Where(m => m.DEPT_DEPARTMENT_ID == t.Key.Value).Count();
-                        sum.FINISH_QTY = t.Where(m => m.DEPT_DEPARTMENT_ID == t.Key.Value && m.NOTICE_STATUS == 1).Count();
-                        sum.OVER_FINISH_QTY = t.Where(m => m.DEPT_DEPARTMENT_ID == t.Key.Value && m.NOTICE_STATUS == 2).Count();
-                        sum.UNFINISH_QTY = sum.TOTAL_QTY - sum.FINISH_QTY - sum.OVER_FINISH_QTY;
-                        sum.DEPARTMENT_TYPE = FMDepartmentType.部门;
-                        var temp = sum.TOTAL_QTY == 0 ? 0 : (double)(sum.FINISH_QTY + sum.OVER_FINISH_QTY) / sum.TOTAL_QTY * 100;
-                        sum.FINISH_RATE = temp.ToString("0");
-                        var temp2 = sum.TOTAL_QTY == 0 ? 0 : (double)sum.FINISH_QTY / sum.TOTAL_QTY * 100;
-                        sum.NORMAL_FINISH_RATE = temp2.ToString("0");
-                        departSummary.Add(sum);
-                    });
-                    var groupYearMould = taskThreeMonth.GroupBy(t => t.MOUDLE_NAME).ToList();
-                    groupYearMould.ForEach(t => {
-                        T_BI_MOULD_RUN_SUMMARY sum = new T_BI_MOULD_RUN_SUMMARY();
-                        sum.MOUDLE_NAME = t.Key;
-                        sum.ORG_ID = pageFilter.OrgId;
-                        sum.TYPE = MS.Domain.Enums.BI.BIEnums.FilterTimeType.LastThreeMonth;
-                        sum.TOTAL_QTY = t.Where(m => m.MOUDLE_NAME == t.Key).Count();
-                        sum.FINISH_QTY = t.Where(m => m.MOUDLE_NAME == t.Key && m.NOTICE_STATUS == 1).Count();
-                        sum.OVER_FINISH_QTY = t.Where(m => m.MOUDLE_NAME == t.Key && m.NOTICE_STATUS == 2).Count();
-                        sum.UNFINISH_QTY = sum.TOTAL_QTY - sum.FINISH_QTY - sum.OVER_FINISH_QTY;
-                        var temp = sum.TOTAL_QTY == 0 ? 0 : (double)(sum.FINISH_QTY + sum.OVER_FINISH_QTY) / sum.TOTAL_QTY * 100;
-                        sum.FINISH_RATE = temp.ToString("0");
-                        var temp2 = sum.TOTAL_QTY == 0 ? 0 : (double)sum.FINISH_QTY / sum.TOTAL_QTY * 100;
-                        sum.NORMAL_FINISH_RATE = temp2.ToString("0");
-                        mouldSummary.Add(sum);
-                    });
-                }
-                if (taskThreeMonthShop.Any())
-                {
-                    var groupYearDepart = taskThreeMonthShop.GroupBy(t => t.SHOP_DEPARTMENT_ID).ToList();
-                    groupYearDepart.ForEach(t =>
+                        var groupYearDepart = taskThreeMonth.GroupBy(t => t.DEPT_DEPARTMENT_ID).ToList();
+                        groupYearDepart.ForEach(t =>
+                        {
+                            T_BI_SYSTEM_RUN_SUMMARY sum = new T_BI_SYSTEM_RUN_SUMMARY();
+                            sum.DEPARTMENT_ID = t.Key.Value;
+                            sum.ORG_ID = pageFilter.OrgId;
+                            var depart = departmentInfos.FirstOrDefault(m => m.ID == t.Key.Value);
+                            sum.DEPARTMENT_NAME = depart?.NAME;
+                            sum.TYPE = MS.Domain.Enums.BI.BIEnums.FilterTimeType.LastThreeMonth;
+                            sum.TOTAL_QTY = t.Where(m => m.DEPT_DEPARTMENT_ID == t.Key.Value).Count();
+                            sum.FINISH_QTY = t.Where(m => m.DEPT_DEPARTMENT_ID == t.Key.Value && m.NOTICE_STATUS == 1).Count();
+                            sum.OVER_FINISH_QTY = t.Where(m => m.DEPT_DEPARTMENT_ID == t.Key.Value && m.NOTICE_STATUS == 2).Count();
+                            sum.UNFINISH_QTY = sum.TOTAL_QTY - sum.FINISH_QTY - sum.OVER_FINISH_QTY;
+                            sum.DEPARTMENT_TYPE = FMDepartmentType.部门;
+                            var temp = sum.TOTAL_QTY == 0 ? 0 : (double)(sum.FINISH_QTY + sum.OVER_FINISH_QTY) / sum.TOTAL_QTY * 100;
+                            sum.FINISH_RATE = temp.ToString("0");
+                            var temp2 = sum.TOTAL_QTY == 0 ? 0 : (double)sum.FINISH_QTY / sum.TOTAL_QTY * 100;
+                            sum.NORMAL_FINISH_RATE = temp2.ToString("0");
+                            departSummary.Add(sum);
+                        });
+                        var groupYearMould = taskThreeMonth.GroupBy(t => t.MOUDLE_NAME).ToList();
+                        groupYearMould.ForEach(t =>
+                        {
+                            T_BI_MOULD_RUN_SUMMARY sum = new T_BI_MOULD_RUN_SUMMARY();
+                            sum.MOUDLE_NAME = t.Key;
+                            sum.ORG_ID = pageFilter.OrgId;
+                            sum.TYPE = MS.Domain.Enums.BI.BIEnums.FilterTimeType.LastThreeMonth;
+                            sum.TOTAL_QTY = t.Where(m => m.MOUDLE_NAME == t.Key).Count();
+                            sum.FINISH_QTY = t.Where(m => m.MOUDLE_NAME == t.Key && m.NOTICE_STATUS == 1).Count();
+                            sum.OVER_FINISH_QTY = t.Where(m => m.MOUDLE_NAME == t.Key && m.NOTICE_STATUS == 2).Count();
+                            sum.UNFINISH_QTY = sum.TOTAL_QTY - sum.FINISH_QTY - sum.OVER_FINISH_QTY;
+                            var temp = sum.TOTAL_QTY == 0 ? 0 : (double)(sum.FINISH_QTY + sum.OVER_FINISH_QTY) / sum.TOTAL_QTY * 100;
+                            sum.FINISH_RATE = temp.ToString("0");
+                            var temp2 = sum.TOTAL_QTY == 0 ? 0 : (double)sum.FINISH_QTY / sum.TOTAL_QTY * 100;
+                            sum.NORMAL_FINISH_RATE = temp2.ToString("0");
+                            mouldSummary.Add(sum);
+                        });
+                    }
+                    if (taskThreeMonthShop.Any())
                     {
-                        T_BI_SYSTEM_RUN_SUMMARY sum = new T_BI_SYSTEM_RUN_SUMMARY();
-                        sum.DEPARTMENT_ID = t.Key.Value;
-                        sum.ORG_ID = pageFilter.OrgId;
-                        var depart = departmentInfos.FirstOrDefault(m => m.ID == t.Key.Value);
-                        sum.DEPARTMENT_NAME = depart?.NAME;
-                        sum.PARENT_DEPARTMENT_ID = depart?.PARENT_ID;
-                        sum.TYPE = MS.Domain.Enums.BI.BIEnums.FilterTimeType.LastThreeMonth;
-                        sum.TOTAL_QTY = t.Where(m => m.SHOP_DEPARTMENT_ID == t.Key.Value).Count();
-                        sum.FINISH_QTY = t.Where(m => m.SHOP_DEPARTMENT_ID == t.Key.Value && m.NOTICE_STATUS == 1).Count();
-                        sum.OVER_FINISH_QTY = t.Where(m => m.SHOP_DEPARTMENT_ID == t.Key.Value && m.NOTICE_STATUS == 2).Count();
-                        sum.UNFINISH_QTY = sum.TOTAL_QTY - sum.FINISH_QTY - sum.OVER_FINISH_QTY;
-                        sum.DEPARTMENT_TYPE = FMDepartmentType.车间;
-                        var temp = sum.TOTAL_QTY == 0 ? 0 : (double)(sum.FINISH_QTY + sum.OVER_FINISH_QTY) / sum.TOTAL_QTY * 100;
-                        sum.FINISH_RATE = temp.ToString("0");
-                        var temp2 = sum.TOTAL_QTY == 0 ? 0 : (double)sum.FINISH_QTY / sum.TOTAL_QTY * 100;
-                        sum.NORMAL_FINISH_RATE = temp2.ToString("0");
-                        departSummary.Add(sum);
-                    });
-                }
-                if (taskThreeMonthClass.Any())
-                {
-                    var groupYearDepart = taskThreeMonthClass.GroupBy(t => t.CLASS_DEPARTMENT_ID).ToList();
-                    groupYearDepart.ForEach(t =>
+                        var groupYearDepart = taskThreeMonthShop.GroupBy(t => t.SHOP_DEPARTMENT_ID).ToList();
+                        groupYearDepart.ForEach(t =>
+                        {
+                            T_BI_SYSTEM_RUN_SUMMARY sum = new T_BI_SYSTEM_RUN_SUMMARY();
+                            sum.DEPARTMENT_ID = t.Key.Value;
+                            sum.ORG_ID = pageFilter.OrgId;
+                            var depart = departmentInfos.FirstOrDefault(m => m.ID == t.Key.Value);
+                            sum.DEPARTMENT_NAME = depart?.NAME;
+                            sum.PARENT_DEPARTMENT_ID = depart?.PARENT_ID;
+                            sum.TYPE = MS.Domain.Enums.BI.BIEnums.FilterTimeType.LastThreeMonth;
+                            sum.TOTAL_QTY = t.Where(m => m.SHOP_DEPARTMENT_ID == t.Key.Value).Count();
+                            sum.FINISH_QTY = t.Where(m => m.SHOP_DEPARTMENT_ID == t.Key.Value && m.NOTICE_STATUS == 1).Count();
+                            sum.OVER_FINISH_QTY = t.Where(m => m.SHOP_DEPARTMENT_ID == t.Key.Value && m.NOTICE_STATUS == 2).Count();
+                            sum.UNFINISH_QTY = sum.TOTAL_QTY - sum.FINISH_QTY - sum.OVER_FINISH_QTY;
+                            sum.DEPARTMENT_TYPE = FMDepartmentType.车间;
+                            var temp = sum.TOTAL_QTY == 0 ? 0 : (double)(sum.FINISH_QTY + sum.OVER_FINISH_QTY) / sum.TOTAL_QTY * 100;
+                            sum.FINISH_RATE = temp.ToString("0");
+                            var temp2 = sum.TOTAL_QTY == 0 ? 0 : (double)sum.FINISH_QTY / sum.TOTAL_QTY * 100;
+                            sum.NORMAL_FINISH_RATE = temp2.ToString("0");
+                            departSummary.Add(sum);
+                        });
+                    }
+                    if (taskThreeMonthClass.Any())
                     {
-                        T_BI_SYSTEM_RUN_SUMMARY sum = new T_BI_SYSTEM_RUN_SUMMARY();
-                        sum.DEPARTMENT_ID = t.Key.Value;
-                        sum.ORG_ID = pageFilter.OrgId;
-                        var depart = departmentInfos.FirstOrDefault(m => m.ID == t.Key.Value);
-                        sum.DEPARTMENT_NAME = depart?.NAME;
-                        sum.PARENT_DEPARTMENT_ID = depart?.PARENT_ID;
-                        sum.TYPE = MS.Domain.Enums.BI.BIEnums.FilterTimeType.LastThreeMonth;
-                        sum.TOTAL_QTY = t.Where(m => m.CLASS_DEPARTMENT_ID == t.Key.Value).Count();
-                        sum.FINISH_QTY = t.Where(m => m.CLASS_DEPARTMENT_ID == t.Key.Value && m.NOTICE_STATUS == 1).Count();
-                        sum.OVER_FINISH_QTY = t.Where(m => m.CLASS_DEPARTMENT_ID == t.Key.Value && m.NOTICE_STATUS == 2).Count();
-                        sum.UNFINISH_QTY = sum.TOTAL_QTY - sum.FINISH_QTY - sum.OVER_FINISH_QTY;
-                        sum.DEPARTMENT_TYPE = FMDepartmentType.班组;
-                        var temp = sum.TOTAL_QTY == 0 ? 0 : (double)(sum.FINISH_QTY + sum.OVER_FINISH_QTY) / sum.TOTAL_QTY * 100;
-                        sum.FINISH_RATE = temp.ToString("0");
-                        var temp2 = sum.TOTAL_QTY == 0 ? 0 : (double)sum.FINISH_QTY / sum.TOTAL_QTY * 100;
-                        sum.NORMAL_FINISH_RATE = temp2.ToString("0");
-                        departSummary.Add(sum);
-                    });
-                }
-                //一个月
-                if (taskMonth.Any())
-                {
-                    var groupYearDepart = taskMonth.GroupBy(t => t.DEPT_DEPARTMENT_ID).ToList();
-                    groupYearDepart.ForEach(t =>
+                        var groupYearDepart = taskThreeMonthClass.GroupBy(t => t.CLASS_DEPARTMENT_ID).ToList();
+                        groupYearDepart.ForEach(t =>
+                        {
+                            T_BI_SYSTEM_RUN_SUMMARY sum = new T_BI_SYSTEM_RUN_SUMMARY();
+                            sum.DEPARTMENT_ID = t.Key.Value;
+                            sum.ORG_ID = pageFilter.OrgId;
+                            var depart = departmentInfos.FirstOrDefault(m => m.ID == t.Key.Value);
+                            sum.DEPARTMENT_NAME = depart?.NAME;
+                            sum.PARENT_DEPARTMENT_ID = depart?.PARENT_ID;
+                            sum.TYPE = MS.Domain.Enums.BI.BIEnums.FilterTimeType.LastThreeMonth;
+                            sum.TOTAL_QTY = t.Where(m => m.CLASS_DEPARTMENT_ID == t.Key.Value).Count();
+                            sum.FINISH_QTY = t.Where(m => m.CLASS_DEPARTMENT_ID == t.Key.Value && m.NOTICE_STATUS == 1).Count();
+                            sum.OVER_FINISH_QTY = t.Where(m => m.CLASS_DEPARTMENT_ID == t.Key.Value && m.NOTICE_STATUS == 2).Count();
+                            sum.UNFINISH_QTY = sum.TOTAL_QTY - sum.FINISH_QTY - sum.OVER_FINISH_QTY;
+                            sum.DEPARTMENT_TYPE = FMDepartmentType.班组;
+                            var temp = sum.TOTAL_QTY == 0 ? 0 : (double)(sum.FINISH_QTY + sum.OVER_FINISH_QTY) / sum.TOTAL_QTY * 100;
+                            sum.FINISH_RATE = temp.ToString("0");
+                            var temp2 = sum.TOTAL_QTY == 0 ? 0 : (double)sum.FINISH_QTY / sum.TOTAL_QTY * 100;
+                            sum.NORMAL_FINISH_RATE = temp2.ToString("0");
+                            departSummary.Add(sum);
+                        });
+                    }
+                    //一个月
+                    if (taskMonth.Any())
                     {
-                        T_BI_SYSTEM_RUN_SUMMARY sum = new T_BI_SYSTEM_RUN_SUMMARY();
-                        sum.DEPARTMENT_ID = t.Key.Value;
-                        sum.ORG_ID = pageFilter.OrgId;
-                        var depart = departmentInfos.FirstOrDefault(m => m.ID == t.Key.Value);
-                        sum.DEPARTMENT_NAME = depart?.NAME;
-                        sum.TYPE = MS.Domain.Enums.BI.BIEnums.FilterTimeType.LastMonth;
-                        sum.TOTAL_QTY = t.Where(m => m.DEPT_DEPARTMENT_ID == t.Key.Value).Count();
-                        sum.FINISH_QTY = t.Where(m => m.DEPT_DEPARTMENT_ID == t.Key.Value && m.NOTICE_STATUS == 1).Count();
-                        sum.OVER_FINISH_QTY = t.Where(m => m.DEPT_DEPARTMENT_ID == t.Key.Value && m.NOTICE_STATUS == 2).Count();
-                        sum.UNFINISH_QTY = sum.TOTAL_QTY - sum.FINISH_QTY - sum.OVER_FINISH_QTY;
-                        sum.DEPARTMENT_TYPE = FMDepartmentType.部门;
-                        var temp = sum.TOTAL_QTY == 0 ? 0 : (double)(sum.FINISH_QTY + sum.OVER_FINISH_QTY) / sum.TOTAL_QTY * 100;
-                        sum.FINISH_RATE = temp.ToString("0");
-                        var temp2 = sum.TOTAL_QTY == 0 ? 0 : (double)sum.FINISH_QTY / sum.TOTAL_QTY * 100;
-                        sum.NORMAL_FINISH_RATE = temp2.ToString("0");
-                        departSummary.Add(sum);
-                    });
-                    var groupYearMould = taskMonth.GroupBy(t => t.MOUDLE_NAME).ToList();
-                    groupYearMould.ForEach(t => {
-                        T_BI_MOULD_RUN_SUMMARY sum = new T_BI_MOULD_RUN_SUMMARY();
-                        sum.MOUDLE_NAME = t.Key;
-                        sum.ORG_ID = pageFilter.OrgId;
-                        sum.TYPE = MS.Domain.Enums.BI.BIEnums.FilterTimeType.LastMonth;
-                        sum.TOTAL_QTY = t.Where(m => m.MOUDLE_NAME == t.Key).Count();
-                        sum.FINISH_QTY = t.Where(m => m.MOUDLE_NAME == t.Key && m.NOTICE_STATUS == 1).Count();
-                        sum.OVER_FINISH_QTY = t.Where(m => m.MOUDLE_NAME == t.Key && m.NOTICE_STATUS == 2).Count();
-                        sum.UNFINISH_QTY = sum.TOTAL_QTY - sum.FINISH_QTY - sum.OVER_FINISH_QTY;
-                        var temp = sum.TOTAL_QTY == 0 ? 0 : (double)(sum.FINISH_QTY + sum.OVER_FINISH_QTY) / sum.TOTAL_QTY * 100;
-                        sum.FINISH_RATE = temp.ToString("0");
-                        var temp2 = sum.TOTAL_QTY == 0 ? 0 : (double)sum.FINISH_QTY / sum.TOTAL_QTY * 100;
-                        sum.NORMAL_FINISH_RATE = temp2.ToString("0");
-                        mouldSummary.Add(sum);
-                    });
-                }
-                if (taskMonthShop.Any())
-                {
-                    var groupYearDepart = taskMonthShop.GroupBy(t => t.SHOP_DEPARTMENT_ID).ToList();
-                    groupYearDepart.ForEach(t =>
+                        var groupYearDepart = taskMonth.GroupBy(t => t.DEPT_DEPARTMENT_ID).ToList();
+                        groupYearDepart.ForEach(t =>
+                        {
+                            T_BI_SYSTEM_RUN_SUMMARY sum = new T_BI_SYSTEM_RUN_SUMMARY();
+                            sum.DEPARTMENT_ID = t.Key.Value;
+                            sum.ORG_ID = pageFilter.OrgId;
+                            var depart = departmentInfos.FirstOrDefault(m => m.ID == t.Key.Value);
+                            sum.DEPARTMENT_NAME = depart?.NAME;
+                            sum.TYPE = MS.Domain.Enums.BI.BIEnums.FilterTimeType.LastMonth;
+                            sum.TOTAL_QTY = t.Where(m => m.DEPT_DEPARTMENT_ID == t.Key.Value).Count();
+                            sum.FINISH_QTY = t.Where(m => m.DEPT_DEPARTMENT_ID == t.Key.Value && m.NOTICE_STATUS == 1).Count();
+                            sum.OVER_FINISH_QTY = t.Where(m => m.DEPT_DEPARTMENT_ID == t.Key.Value && m.NOTICE_STATUS == 2).Count();
+                            sum.UNFINISH_QTY = sum.TOTAL_QTY - sum.FINISH_QTY - sum.OVER_FINISH_QTY;
+                            sum.DEPARTMENT_TYPE = FMDepartmentType.部门;
+                            var temp = sum.TOTAL_QTY == 0 ? 0 : (double)(sum.FINISH_QTY + sum.OVER_FINISH_QTY) / sum.TOTAL_QTY * 100;
+                            sum.FINISH_RATE = temp.ToString("0");
+                            var temp2 = sum.TOTAL_QTY == 0 ? 0 : (double)sum.FINISH_QTY / sum.TOTAL_QTY * 100;
+                            sum.NORMAL_FINISH_RATE = temp2.ToString("0");
+                            departSummary.Add(sum);
+                        });
+                        var groupYearMould = taskMonth.GroupBy(t => t.MOUDLE_NAME).ToList();
+                        groupYearMould.ForEach(t =>
+                        {
+                            T_BI_MOULD_RUN_SUMMARY sum = new T_BI_MOULD_RUN_SUMMARY();
+                            sum.MOUDLE_NAME = t.Key;
+                            sum.ORG_ID = pageFilter.OrgId;
+                            sum.TYPE = MS.Domain.Enums.BI.BIEnums.FilterTimeType.LastMonth;
+                            sum.TOTAL_QTY = t.Where(m => m.MOUDLE_NAME == t.Key).Count();
+                            sum.FINISH_QTY = t.Where(m => m.MOUDLE_NAME == t.Key && m.NOTICE_STATUS == 1).Count();
+                            sum.OVER_FINISH_QTY = t.Where(m => m.MOUDLE_NAME == t.Key && m.NOTICE_STATUS == 2).Count();
+                            sum.UNFINISH_QTY = sum.TOTAL_QTY - sum.FINISH_QTY - sum.OVER_FINISH_QTY;
+                            var temp = sum.TOTAL_QTY == 0 ? 0 : (double)(sum.FINISH_QTY + sum.OVER_FINISH_QTY) / sum.TOTAL_QTY * 100;
+                            sum.FINISH_RATE = temp.ToString("0");
+                            var temp2 = sum.TOTAL_QTY == 0 ? 0 : (double)sum.FINISH_QTY / sum.TOTAL_QTY * 100;
+                            sum.NORMAL_FINISH_RATE = temp2.ToString("0");
+                            mouldSummary.Add(sum);
+                        });
+                    }
+                    if (taskMonthShop.Any())
                     {
-                        T_BI_SYSTEM_RUN_SUMMARY sum = new T_BI_SYSTEM_RUN_SUMMARY();
-                        sum.DEPARTMENT_ID = t.Key.Value;
-                        sum.ORG_ID = pageFilter.OrgId;
-                        var depart = departmentInfos.FirstOrDefault(m => m.ID == t.Key.Value);
-                        sum.DEPARTMENT_NAME = depart?.NAME;
-                        sum.PARENT_DEPARTMENT_ID = depart?.PARENT_ID;
-                        sum.TYPE = MS.Domain.Enums.BI.BIEnums.FilterTimeType.LastMonth;
-                        sum.TOTAL_QTY = t.Where(m => m.SHOP_DEPARTMENT_ID == t.Key.Value).Count();
-                        sum.FINISH_QTY = t.Where(m => m.SHOP_DEPARTMENT_ID == t.Key.Value && m.NOTICE_STATUS == 1).Count();
-                        sum.OVER_FINISH_QTY = t.Where(m => m.SHOP_DEPARTMENT_ID == t.Key.Value && m.NOTICE_STATUS == 2).Count();
-                        sum.UNFINISH_QTY = sum.TOTAL_QTY - sum.FINISH_QTY - sum.OVER_FINISH_QTY;
-                        sum.DEPARTMENT_TYPE = FMDepartmentType.车间;
-                        var temp = sum.TOTAL_QTY == 0 ? 0 : (double)(sum.FINISH_QTY + sum.OVER_FINISH_QTY) / sum.TOTAL_QTY * 100;
-                        sum.FINISH_RATE = temp.ToString("0");
-                        var temp2 = sum.TOTAL_QTY == 0 ? 0 : (double)sum.FINISH_QTY / sum.TOTAL_QTY * 100;
-                        sum.NORMAL_FINISH_RATE = temp2.ToString("0");
-                        departSummary.Add(sum);
-                    });
-                }
-                if (taskMonthClass.Any())
-                {
-                    var groupYearDepart = taskMonthClass.GroupBy(t => t.CLASS_DEPARTMENT_ID).ToList();
-                    groupYearDepart.ForEach(t =>
+                        var groupYearDepart = taskMonthShop.GroupBy(t => t.SHOP_DEPARTMENT_ID).ToList();
+                        groupYearDepart.ForEach(t =>
+                        {
+                            T_BI_SYSTEM_RUN_SUMMARY sum = new T_BI_SYSTEM_RUN_SUMMARY();
+                            sum.DEPARTMENT_ID = t.Key.Value;
+                            sum.ORG_ID = pageFilter.OrgId;
+                            var depart = departmentInfos.FirstOrDefault(m => m.ID == t.Key.Value);
+                            sum.DEPARTMENT_NAME = depart?.NAME;
+                            sum.PARENT_DEPARTMENT_ID = depart?.PARENT_ID;
+                            sum.TYPE = MS.Domain.Enums.BI.BIEnums.FilterTimeType.LastMonth;
+                            sum.TOTAL_QTY = t.Where(m => m.SHOP_DEPARTMENT_ID == t.Key.Value).Count();
+                            sum.FINISH_QTY = t.Where(m => m.SHOP_DEPARTMENT_ID == t.Key.Value && m.NOTICE_STATUS == 1).Count();
+                            sum.OVER_FINISH_QTY = t.Where(m => m.SHOP_DEPARTMENT_ID == t.Key.Value && m.NOTICE_STATUS == 2).Count();
+                            sum.UNFINISH_QTY = sum.TOTAL_QTY - sum.FINISH_QTY - sum.OVER_FINISH_QTY;
+                            sum.DEPARTMENT_TYPE = FMDepartmentType.车间;
+                            var temp = sum.TOTAL_QTY == 0 ? 0 : (double)(sum.FINISH_QTY + sum.OVER_FINISH_QTY) / sum.TOTAL_QTY * 100;
+                            sum.FINISH_RATE = temp.ToString("0");
+                            var temp2 = sum.TOTAL_QTY == 0 ? 0 : (double)sum.FINISH_QTY / sum.TOTAL_QTY * 100;
+                            sum.NORMAL_FINISH_RATE = temp2.ToString("0");
+                            departSummary.Add(sum);
+                        });
+                    }
+                    if (taskMonthClass.Any())
                     {
-                        T_BI_SYSTEM_RUN_SUMMARY sum = new T_BI_SYSTEM_RUN_SUMMARY();
-                        sum.DEPARTMENT_ID = t.Key.Value;
-                        sum.ORG_ID = pageFilter.OrgId;
-                        var depart = departmentInfos.FirstOrDefault(m => m.ID == t.Key.Value);
-                        sum.DEPARTMENT_NAME = depart?.NAME;
-                        sum.PARENT_DEPARTMENT_ID = depart?.PARENT_ID;
-                        sum.TYPE = MS.Domain.Enums.BI.BIEnums.FilterTimeType.LastMonth;
-                        sum.TOTAL_QTY = t.Where(m => m.CLASS_DEPARTMENT_ID == t.Key.Value).Count();
-                        sum.FINISH_QTY = t.Where(m => m.CLASS_DEPARTMENT_ID == t.Key.Value && m.NOTICE_STATUS == 1).Count();
-                        sum.OVER_FINISH_QTY = t.Where(m => m.CLASS_DEPARTMENT_ID == t.Key.Value && m.NOTICE_STATUS == 2).Count();
-                        sum.UNFINISH_QTY = sum.TOTAL_QTY - sum.FINISH_QTY - sum.OVER_FINISH_QTY;
-                        sum.DEPARTMENT_TYPE = FMDepartmentType.班组;
-                        var temp = sum.TOTAL_QTY == 0 ? 0 : (double)(sum.FINISH_QTY + sum.OVER_FINISH_QTY) / sum.TOTAL_QTY * 100;
-                        sum.FINISH_RATE = temp.ToString("0");
-                        var temp2 = sum.TOTAL_QTY == 0 ? 0 : (double)sum.FINISH_QTY / sum.TOTAL_QTY * 100;
-                        sum.NORMAL_FINISH_RATE = temp2.ToString("0");
-                        departSummary.Add(sum);
-                    });
-                }
-                //一周
-                if (taskWeek.Any())
-                {
-                    var groupYearDepart = taskWeek.GroupBy(t => t.DEPT_DEPARTMENT_ID).ToList();
-                    groupYearDepart.ForEach(t =>
+                        var groupYearDepart = taskMonthClass.GroupBy(t => t.CLASS_DEPARTMENT_ID).ToList();
+                        groupYearDepart.ForEach(t =>
+                        {
+                            T_BI_SYSTEM_RUN_SUMMARY sum = new T_BI_SYSTEM_RUN_SUMMARY();
+                            sum.DEPARTMENT_ID = t.Key.Value;
+                            sum.ORG_ID = pageFilter.OrgId;
+                            var depart = departmentInfos.FirstOrDefault(m => m.ID == t.Key.Value);
+                            sum.DEPARTMENT_NAME = depart?.NAME;
+                            sum.PARENT_DEPARTMENT_ID = depart?.PARENT_ID;
+                            sum.TYPE = MS.Domain.Enums.BI.BIEnums.FilterTimeType.LastMonth;
+                            sum.TOTAL_QTY = t.Where(m => m.CLASS_DEPARTMENT_ID == t.Key.Value).Count();
+                            sum.FINISH_QTY = t.Where(m => m.CLASS_DEPARTMENT_ID == t.Key.Value && m.NOTICE_STATUS == 1).Count();
+                            sum.OVER_FINISH_QTY = t.Where(m => m.CLASS_DEPARTMENT_ID == t.Key.Value && m.NOTICE_STATUS == 2).Count();
+                            sum.UNFINISH_QTY = sum.TOTAL_QTY - sum.FINISH_QTY - sum.OVER_FINISH_QTY;
+                            sum.DEPARTMENT_TYPE = FMDepartmentType.班组;
+                            var temp = sum.TOTAL_QTY == 0 ? 0 : (double)(sum.FINISH_QTY + sum.OVER_FINISH_QTY) / sum.TOTAL_QTY * 100;
+                            sum.FINISH_RATE = temp.ToString("0");
+                            var temp2 = sum.TOTAL_QTY == 0 ? 0 : (double)sum.FINISH_QTY / sum.TOTAL_QTY * 100;
+                            sum.NORMAL_FINISH_RATE = temp2.ToString("0");
+                            departSummary.Add(sum);
+                        });
+                    }
+                    //一周
+                    if (taskWeek.Any())
                     {
-                        T_BI_SYSTEM_RUN_SUMMARY sum = new T_BI_SYSTEM_RUN_SUMMARY();
-                        sum.DEPARTMENT_ID = t.Key.Value;
-                        sum.ORG_ID = pageFilter.OrgId;
-                        var depart = departmentInfos.FirstOrDefault(m => m.ID == t.Key.Value);
-                        sum.DEPARTMENT_NAME = depart?.NAME;
-                        sum.TYPE = MS.Domain.Enums.BI.BIEnums.FilterTimeType.LastWeek;
-                        sum.TOTAL_QTY = t.Where(m => m.DEPT_DEPARTMENT_ID == t.Key.Value).Count();
-                        sum.FINISH_QTY = t.Where(m => m.DEPT_DEPARTMENT_ID == t.Key.Value && m.NOTICE_STATUS == 1).Count();
-                        sum.OVER_FINISH_QTY = t.Where(m => m.DEPT_DEPARTMENT_ID == t.Key.Value && m.NOTICE_STATUS == 2).Count();
-                        sum.UNFINISH_QTY = sum.TOTAL_QTY - sum.FINISH_QTY - sum.OVER_FINISH_QTY;
-                        sum.DEPARTMENT_TYPE = FMDepartmentType.部门;
-                        var temp = sum.TOTAL_QTY == 0 ? 0 : (double)(sum.FINISH_QTY + sum.OVER_FINISH_QTY) / sum.TOTAL_QTY * 100;
-                        sum.FINISH_RATE = temp.ToString("0");
-                        var temp2 = sum.TOTAL_QTY == 0 ? 0 : (double)sum.FINISH_QTY / sum.TOTAL_QTY * 100;
-                        sum.NORMAL_FINISH_RATE = temp2.ToString("0");
-                        departSummary.Add(sum);
-                    });
-                    var groupYearMould = taskWeek.GroupBy(t => t.MOUDLE_NAME).ToList();
-                    groupYearMould.ForEach(t => {
-                        T_BI_MOULD_RUN_SUMMARY sum = new T_BI_MOULD_RUN_SUMMARY();
-                        sum.MOUDLE_NAME = t.Key;
-                        sum.ORG_ID = pageFilter.OrgId;
-                        sum.TYPE = MS.Domain.Enums.BI.BIEnums.FilterTimeType.LastWeek;
-                        sum.TOTAL_QTY = t.Where(m => m.MOUDLE_NAME == t.Key).Count();
-                        sum.FINISH_QTY = t.Where(m => m.MOUDLE_NAME == t.Key && m.NOTICE_STATUS == 1).Count();
-                        sum.OVER_FINISH_QTY = t.Where(m => m.MOUDLE_NAME == t.Key && m.NOTICE_STATUS == 2).Count();
-                        sum.UNFINISH_QTY = sum.TOTAL_QTY - sum.FINISH_QTY - sum.OVER_FINISH_QTY;
-                        var temp = sum.TOTAL_QTY == 0 ? 0 : (double)(sum.FINISH_QTY + sum.OVER_FINISH_QTY) / sum.TOTAL_QTY * 100;
-                        sum.FINISH_RATE = temp.ToString("0");
-                        var temp2 = sum.TOTAL_QTY == 0 ? 0 : (double)sum.FINISH_QTY / sum.TOTAL_QTY * 100;
-                        sum.NORMAL_FINISH_RATE = temp2.ToString("0");
-                        mouldSummary.Add(sum);
-                    });
-                }
-                if (taskWeekShop.Any())
-                {
-                    var groupYearDepart = taskWeekShop.GroupBy(t => t.SHOP_DEPARTMENT_ID).ToList();
-                    groupYearDepart.ForEach(t =>
+                        var groupYearDepart = taskWeek.GroupBy(t => t.DEPT_DEPARTMENT_ID).ToList();
+                        groupYearDepart.ForEach(t =>
+                        {
+                            T_BI_SYSTEM_RUN_SUMMARY sum = new T_BI_SYSTEM_RUN_SUMMARY();
+                            sum.DEPARTMENT_ID = t.Key.Value;
+                            sum.ORG_ID = pageFilter.OrgId;
+                            var depart = departmentInfos.FirstOrDefault(m => m.ID == t.Key.Value);
+                            sum.DEPARTMENT_NAME = depart?.NAME;
+                            sum.TYPE = MS.Domain.Enums.BI.BIEnums.FilterTimeType.LastWeek;
+                            sum.TOTAL_QTY = t.Where(m => m.DEPT_DEPARTMENT_ID == t.Key.Value).Count();
+                            sum.FINISH_QTY = t.Where(m => m.DEPT_DEPARTMENT_ID == t.Key.Value && m.NOTICE_STATUS == 1).Count();
+                            sum.OVER_FINISH_QTY = t.Where(m => m.DEPT_DEPARTMENT_ID == t.Key.Value && m.NOTICE_STATUS == 2).Count();
+                            sum.UNFINISH_QTY = sum.TOTAL_QTY - sum.FINISH_QTY - sum.OVER_FINISH_QTY;
+                            sum.DEPARTMENT_TYPE = FMDepartmentType.部门;
+                            var temp = sum.TOTAL_QTY == 0 ? 0 : (double)(sum.FINISH_QTY + sum.OVER_FINISH_QTY) / sum.TOTAL_QTY * 100;
+                            sum.FINISH_RATE = temp.ToString("0");
+                            var temp2 = sum.TOTAL_QTY == 0 ? 0 : (double)sum.FINISH_QTY / sum.TOTAL_QTY * 100;
+                            sum.NORMAL_FINISH_RATE = temp2.ToString("0");
+                            departSummary.Add(sum);
+                        });
+                        var groupYearMould = taskWeek.GroupBy(t => t.MOUDLE_NAME).ToList();
+                        groupYearMould.ForEach(t =>
+                        {
+                            T_BI_MOULD_RUN_SUMMARY sum = new T_BI_MOULD_RUN_SUMMARY();
+                            sum.MOUDLE_NAME = t.Key;
+                            sum.ORG_ID = pageFilter.OrgId;
+                            sum.TYPE = MS.Domain.Enums.BI.BIEnums.FilterTimeType.LastWeek;
+                            sum.TOTAL_QTY = t.Where(m => m.MOUDLE_NAME == t.Key).Count();
+                            sum.FINISH_QTY = t.Where(m => m.MOUDLE_NAME == t.Key && m.NOTICE_STATUS == 1).Count();
+                            sum.OVER_FINISH_QTY = t.Where(m => m.MOUDLE_NAME == t.Key && m.NOTICE_STATUS == 2).Count();
+                            sum.UNFINISH_QTY = sum.TOTAL_QTY - sum.FINISH_QTY - sum.OVER_FINISH_QTY;
+                            var temp = sum.TOTAL_QTY == 0 ? 0 : (double)(sum.FINISH_QTY + sum.OVER_FINISH_QTY) / sum.TOTAL_QTY * 100;
+                            sum.FINISH_RATE = temp.ToString("0");
+                            var temp2 = sum.TOTAL_QTY == 0 ? 0 : (double)sum.FINISH_QTY / sum.TOTAL_QTY * 100;
+                            sum.NORMAL_FINISH_RATE = temp2.ToString("0");
+                            mouldSummary.Add(sum);
+                        });
+                    }
+                    if (taskWeekShop.Any())
                     {
-                        T_BI_SYSTEM_RUN_SUMMARY sum = new T_BI_SYSTEM_RUN_SUMMARY();
-                        sum.DEPARTMENT_ID = t.Key.Value;
-                        sum.ORG_ID = pageFilter.OrgId;
-                        var depart = departmentInfos.FirstOrDefault(m => m.ID == t.Key.Value);
-                        sum.DEPARTMENT_NAME = depart?.NAME;
-                        sum.PARENT_DEPARTMENT_ID = depart?.PARENT_ID;
-                        sum.TYPE = MS.Domain.Enums.BI.BIEnums.FilterTimeType.LastWeek;
-                        sum.TOTAL_QTY = t.Where(m => m.SHOP_DEPARTMENT_ID == t.Key.Value).Count();
-                        sum.FINISH_QTY = t.Where(m => m.SHOP_DEPARTMENT_ID == t.Key.Value && m.NOTICE_STATUS == 1).Count();
-                        sum.OVER_FINISH_QTY = t.Where(m => m.SHOP_DEPARTMENT_ID == t.Key.Value && m.NOTICE_STATUS == 2).Count();
-                        sum.UNFINISH_QTY = sum.TOTAL_QTY - sum.FINISH_QTY - sum.OVER_FINISH_QTY;
-                        sum.DEPARTMENT_TYPE = FMDepartmentType.车间;
-                        var temp = sum.TOTAL_QTY == 0 ? 0 : (double)(sum.FINISH_QTY + sum.OVER_FINISH_QTY) / sum.TOTAL_QTY * 100;
-                        sum.FINISH_RATE = temp.ToString("0");
-                        var temp2 = sum.TOTAL_QTY == 0 ? 0 : (double)sum.FINISH_QTY / sum.TOTAL_QTY * 100;
-                        sum.NORMAL_FINISH_RATE = temp2.ToString("0");
-                        departSummary.Add(sum);
-                    });
-                }
-                if (taskWeekClass.Any())
-                {
-                    var groupYearDepart = taskWeekClass.GroupBy(t => t.CLASS_DEPARTMENT_ID).ToList();
-                    groupYearDepart.ForEach(t =>
+                        var groupYearDepart = taskWeekShop.GroupBy(t => t.SHOP_DEPARTMENT_ID).ToList();
+                        groupYearDepart.ForEach(t =>
+                        {
+                            T_BI_SYSTEM_RUN_SUMMARY sum = new T_BI_SYSTEM_RUN_SUMMARY();
+                            sum.DEPARTMENT_ID = t.Key.Value;
+                            sum.ORG_ID = pageFilter.OrgId;
+                            var depart = departmentInfos.FirstOrDefault(m => m.ID == t.Key.Value);
+                            sum.DEPARTMENT_NAME = depart?.NAME;
+                            sum.PARENT_DEPARTMENT_ID = depart?.PARENT_ID;
+                            sum.TYPE = MS.Domain.Enums.BI.BIEnums.FilterTimeType.LastWeek;
+                            sum.TOTAL_QTY = t.Where(m => m.SHOP_DEPARTMENT_ID == t.Key.Value).Count();
+                            sum.FINISH_QTY = t.Where(m => m.SHOP_DEPARTMENT_ID == t.Key.Value && m.NOTICE_STATUS == 1).Count();
+                            sum.OVER_FINISH_QTY = t.Where(m => m.SHOP_DEPARTMENT_ID == t.Key.Value && m.NOTICE_STATUS == 2).Count();
+                            sum.UNFINISH_QTY = sum.TOTAL_QTY - sum.FINISH_QTY - sum.OVER_FINISH_QTY;
+                            sum.DEPARTMENT_TYPE = FMDepartmentType.车间;
+                            var temp = sum.TOTAL_QTY == 0 ? 0 : (double)(sum.FINISH_QTY + sum.OVER_FINISH_QTY) / sum.TOTAL_QTY * 100;
+                            sum.FINISH_RATE = temp.ToString("0");
+                            var temp2 = sum.TOTAL_QTY == 0 ? 0 : (double)sum.FINISH_QTY / sum.TOTAL_QTY * 100;
+                            sum.NORMAL_FINISH_RATE = temp2.ToString("0");
+                            departSummary.Add(sum);
+                        });
+                    }
+                    if (taskWeekClass.Any())
                     {
-                        T_BI_SYSTEM_RUN_SUMMARY sum = new T_BI_SYSTEM_RUN_SUMMARY();
-                        sum.DEPARTMENT_ID = t.Key.Value;
-                        sum.ORG_ID = pageFilter.OrgId;
-                        var depart = departmentInfos.FirstOrDefault(m => m.ID == t.Key.Value);
-                        sum.DEPARTMENT_NAME = depart?.NAME;
-                        sum.PARENT_DEPARTMENT_ID = depart?.PARENT_ID;
-                        sum.TYPE = MS.Domain.Enums.BI.BIEnums.FilterTimeType.LastWeek;
-                        sum.TOTAL_QTY = t.Where(m => m.CLASS_DEPARTMENT_ID == t.Key.Value).Count();
-                        sum.FINISH_QTY = t.Where(m => m.CLASS_DEPARTMENT_ID == t.Key.Value && m.NOTICE_STATUS == 1).Count();
-                        sum.OVER_FINISH_QTY = t.Where(m => m.CLASS_DEPARTMENT_ID == t.Key.Value && m.NOTICE_STATUS == 2).Count();
-                        sum.UNFINISH_QTY = sum.TOTAL_QTY - sum.FINISH_QTY - sum.OVER_FINISH_QTY;
-                        sum.DEPARTMENT_TYPE = FMDepartmentType.班组;
-                        var temp = sum.TOTAL_QTY == 0 ? 0 : (double)(sum.FINISH_QTY + sum.OVER_FINISH_QTY) / sum.TOTAL_QTY * 100;
-                        sum.FINISH_RATE = temp.ToString("0");
-                        var temp2 = sum.TOTAL_QTY == 0 ? 0 : (double)sum.FINISH_QTY / sum.TOTAL_QTY * 100;
-                        sum.NORMAL_FINISH_RATE = temp2.ToString("0");
-                        departSummary.Add(sum);
-                    });
-                }
-                //折线图
-                List monthRuns = new List();
-                var ksDepartId = departmentInfos.FirstOrDefault(t => t.NAME == "矿山部")?.ID;
-                var xkDepartId = departmentInfos.FirstOrDefault(t => t.NAME == "选矿部")?.ID;
-                var currentMonth = DateTime.Now.Month;                       //获取当月
-                var currentDay = DateTime.Now.Day;                              //...........天
+                        var groupYearDepart = taskWeekClass.GroupBy(t => t.CLASS_DEPARTMENT_ID).ToList();
+                        groupYearDepart.ForEach(t =>
+                        {
+                            T_BI_SYSTEM_RUN_SUMMARY sum = new T_BI_SYSTEM_RUN_SUMMARY();
+                            sum.DEPARTMENT_ID = t.Key.Value;
+                            sum.ORG_ID = pageFilter.OrgId;
+                            var depart = departmentInfos.FirstOrDefault(m => m.ID == t.Key.Value);
+                            sum.DEPARTMENT_NAME = depart?.NAME;
+                            sum.PARENT_DEPARTMENT_ID = depart?.PARENT_ID;
+                            sum.TYPE = MS.Domain.Enums.BI.BIEnums.FilterTimeType.LastWeek;
+                            sum.TOTAL_QTY = t.Where(m => m.CLASS_DEPARTMENT_ID == t.Key.Value).Count();
+                            sum.FINISH_QTY = t.Where(m => m.CLASS_DEPARTMENT_ID == t.Key.Value && m.NOTICE_STATUS == 1).Count();
+                            sum.OVER_FINISH_QTY = t.Where(m => m.CLASS_DEPARTMENT_ID == t.Key.Value && m.NOTICE_STATUS == 2).Count();
+                            sum.UNFINISH_QTY = sum.TOTAL_QTY - sum.FINISH_QTY - sum.OVER_FINISH_QTY;
+                            sum.DEPARTMENT_TYPE = FMDepartmentType.班组;
+                            var temp = sum.TOTAL_QTY == 0 ? 0 : (double)(sum.FINISH_QTY + sum.OVER_FINISH_QTY) / sum.TOTAL_QTY * 100;
+                            sum.FINISH_RATE = temp.ToString("0");
+                            var temp2 = sum.TOTAL_QTY == 0 ? 0 : (double)sum.FINISH_QTY / sum.TOTAL_QTY * 100;
+                            sum.NORMAL_FINISH_RATE = temp2.ToString("0");
+                            departSummary.Add(sum);
+                        });
+                    }
+                    //折线图
+                    List monthRuns = new List();
+                    var ksDepartId = departmentInfos.FirstOrDefault(t => t.NAME == "矿山部")?.ID;
+                    var xkDepartId = departmentInfos.FirstOrDefault(t => t.NAME == "选矿部")?.ID;
+                    var currentMonth = DateTime.Now.Month;                       //获取当月
+                    var currentDay = DateTime.Now.Day;                              //...........天
 
-                for (int i = 1; i <= 12; i++)
-                {
-                    var monthStart = DateTime.Now.AddMonths(i - currentMonth).AddDays(1 - currentDay);
-                    var monthEnd = DateTime.Now.AddMonths(i - currentMonth + 1).AddDays(1 - currentDay - 1);
-                    var ksJantask = taskYear.Where(t => t.CREATE_DATE >= monthStart && t.CREATE_DATE <= monthEnd && t.DEPT_DEPARTMENT_ID == ksDepartId).ToList();
-                    if (ksJantask.Any())
+                    for (int i = 1; i <= 12; i++)
                     {
-                        T_BI_DEPARTMENT_MONTH_RUN run = new T_BI_DEPARTMENT_MONTH_RUN();
-                        run.DEPARTMENT_ID = ksDepartId.Value;
-                        run.ORG_ID = pageFilter.OrgId;
-                        var depart = departmentInfos.FirstOrDefault(m => m.ID == ksDepartId.Value);
-                        run.DEPARTMENT_NAME = depart?.NAME;
-                        run.MONTH = monthStart;
-                        run.MONTHStr = monthStart.Year + "年" + monthStart.Month + "月";
-                        var total = ksJantask.Count();
-                        var finish = ksJantask.Where(t => t.NOTICE_STATUS == 1).Count();
-                        var overFinish = ksJantask.Where(t => t.NOTICE_STATUS == 2).Count();
-                        var temp = total == 0 ? 0 : (double)(finish + overFinish) / total * 100;
-                        run.FINISH_RATE = temp.ToString("0");
-                        var temp2 = total == 0 ? 0 : (double)finish / total * 100;
-                        run.NORMAL_FINISH_RATE = temp2.ToString("0");
-                        monthRuns.Add(run);
-                    }
-                    else
-                    {
-                        T_BI_DEPARTMENT_MONTH_RUN run = new T_BI_DEPARTMENT_MONTH_RUN();
-                        run.DEPARTMENT_ID = ksDepartId.Value;
-                        run.ORG_ID = pageFilter.OrgId;
-                        var depart = departmentInfos.FirstOrDefault(m => m.ID == ksDepartId.Value);
-                        run.DEPARTMENT_NAME = depart?.NAME;
-                        run.MONTH = monthStart;
-                        run.MONTHStr = monthStart.Year + "年" + monthStart.Month + "月";
-                        run.FINISH_RATE = "0";
-                        run.NORMAL_FINISH_RATE = "0";
-                        if (i == 12)
+                        var monthStart = DateTime.Now.AddMonths(i - currentMonth).AddDays(1 - currentDay);
+                        var monthEnd = DateTime.Now.AddMonths(i - currentMonth + 1).AddDays(1 - currentDay - 1);
+                        var ksJantask = taskYear.Where(t => t.CREATE_DATE >= monthStart && t.CREATE_DATE <= monthEnd && t.DEPT_DEPARTMENT_ID == ksDepartId).ToList();
+                        if (ksJantask.Any())
                         {
-                            var lastInfo = monthRuns.FirstOrDefault(t => t.DEPARTMENT_ID == ksDepartId.Value && t.MONTHStr == monthStart.Year + "年" + monthStart.AddMonths(-1).Month + "月");
-                            if (lastInfo != null)
-                            {
-                               run.FINISH_RATE = lastInfo.FINISH_RATE;
-                               run.NORMAL_FINISH_RATE = lastInfo.NORMAL_FINISH_RATE;
-                            }
+                            T_BI_DEPARTMENT_MONTH_RUN run = new T_BI_DEPARTMENT_MONTH_RUN();
+                            run.DEPARTMENT_ID = ksDepartId.Value;
+                            run.ORG_ID = pageFilter.OrgId;
+                            var depart = departmentInfos.FirstOrDefault(m => m.ID == ksDepartId.Value);
+                            run.DEPARTMENT_NAME = depart?.NAME;
+                            run.MONTH = monthStart;
+                            run.MONTHStr = monthStart.Year + "年" + monthStart.Month + "月";
+                            var total = ksJantask.Count();
+                            var finish = ksJantask.Where(t => t.NOTICE_STATUS == 1).Count();
+                            var overFinish = ksJantask.Where(t => t.NOTICE_STATUS == 2).Count();
+                            var temp = total == 0 ? 0 : (double)(finish + overFinish) / total * 100;
+                            run.FINISH_RATE = temp.ToString("0");
+                            var temp2 = total == 0 ? 0 : (double)finish / total * 100;
+                            run.NORMAL_FINISH_RATE = temp2.ToString("0");
+                            monthRuns.Add(run);
                         }
-                        monthRuns.Add(run);
-                    }
-                    var xkJantask = taskYear.Where(t => t.CREATE_DATE >= monthStart && t.CREATE_DATE <= monthEnd && t.DEPT_DEPARTMENT_ID == xkDepartId).ToList();
-                    if (xkJantask.Any())
-                    {
-                        T_BI_DEPARTMENT_MONTH_RUN run = new T_BI_DEPARTMENT_MONTH_RUN();
-                        run.DEPARTMENT_ID = xkDepartId.Value;
-                        run.ORG_ID = pageFilter.OrgId;
-                        var depart = departmentInfos.FirstOrDefault(m => m.ID == xkDepartId.Value);
-                        run.DEPARTMENT_NAME = depart?.NAME;
-                        run.MONTH = monthStart;
-                        run.MONTHStr = monthStart.Year + "年" + monthStart.Month + "月";
-                        var total = xkJantask.Count();
-                        var finish = xkJantask.Where(t => t.NOTICE_STATUS == 1).Count();
-                        var overFinish = xkJantask.Where(t => t.NOTICE_STATUS == 2).Count();
-                        var temp = total == 0 ? 0 : (double)(finish + overFinish) / total * 100;
-                        run.FINISH_RATE = temp.ToString("0");
-                        var temp2 = total == 0 ? 0 : (double)finish / total * 100;
-                        run.NORMAL_FINISH_RATE = temp2.ToString("0");
-                        monthRuns.Add(run);
-                    }
-                    else
-                    {
-                        T_BI_DEPARTMENT_MONTH_RUN run = new T_BI_DEPARTMENT_MONTH_RUN();
-                        run.DEPARTMENT_ID = xkDepartId.Value;
-                        run.ORG_ID = pageFilter.OrgId;
-                        var depart = departmentInfos.FirstOrDefault(m => m.ID == xkDepartId.Value);
-                        run.DEPARTMENT_NAME = depart?.NAME;
-                        run.MONTH = monthStart;
-                        run.MONTHStr = monthStart.Year + "年" + monthStart.Month + "月";
-                        run.FINISH_RATE = "0";
-                        run.NORMAL_FINISH_RATE = "0";
-                        if (i == 12)
+                        else
                         {
-                            var lastInfo = monthRuns.FirstOrDefault(t => t.DEPARTMENT_ID == xkDepartId.Value && t.MONTHStr == monthStart.Year + "年" + monthStart.AddMonths(-1).Month + "月");
-                            if (lastInfo != null)
+                            T_BI_DEPARTMENT_MONTH_RUN run = new T_BI_DEPARTMENT_MONTH_RUN();
+                            run.DEPARTMENT_ID = ksDepartId.Value;
+                            run.ORG_ID = pageFilter.OrgId;
+                            var depart = departmentInfos.FirstOrDefault(m => m.ID == ksDepartId.Value);
+                            run.DEPARTMENT_NAME = depart?.NAME;
+                            run.MONTH = monthStart;
+                            run.MONTHStr = monthStart.Year + "年" + monthStart.Month + "月";
+                            run.FINISH_RATE = "0";
+                            run.NORMAL_FINISH_RATE = "0";
+                            if (i == 12)
                             {
-                                run.FINISH_RATE = lastInfo.FINISH_RATE;
-                                run.NORMAL_FINISH_RATE = lastInfo.NORMAL_FINISH_RATE;
+                                var lastInfo = monthRuns.FirstOrDefault(t => t.DEPARTMENT_ID == ksDepartId.Value && t.MONTHStr == monthStart.Year + "年" + monthStart.AddMonths(-1).Month + "月");
+                                if (lastInfo != null)
+                                {
+                                    run.FINISH_RATE = lastInfo.FINISH_RATE;
+                                    run.NORMAL_FINISH_RATE = lastInfo.NORMAL_FINISH_RATE;
+                                }
                             }
+                            monthRuns.Add(run);
+                        }
+                        var xkJantask = taskYear.Where(t => t.CREATE_DATE >= monthStart && t.CREATE_DATE <= monthEnd && t.DEPT_DEPARTMENT_ID == xkDepartId).ToList();
+                        if (xkJantask.Any())
+                        {
+                            T_BI_DEPARTMENT_MONTH_RUN run = new T_BI_DEPARTMENT_MONTH_RUN();
+                            run.DEPARTMENT_ID = xkDepartId.Value;
+                            run.ORG_ID = pageFilter.OrgId;
+                            var depart = departmentInfos.FirstOrDefault(m => m.ID == xkDepartId.Value);
+                            run.DEPARTMENT_NAME = depart?.NAME;
+                            run.MONTH = monthStart;
+                            run.MONTHStr = monthStart.Year + "年" + monthStart.Month + "月";
+                            var total = xkJantask.Count();
+                            var finish = xkJantask.Where(t => t.NOTICE_STATUS == 1).Count();
+                            var overFinish = xkJantask.Where(t => t.NOTICE_STATUS == 2).Count();
+                            var temp = total == 0 ? 0 : (double)(finish + overFinish) / total * 100;
+                            run.FINISH_RATE = temp.ToString("0");
+                            var temp2 = total == 0 ? 0 : (double)finish / total * 100;
+                            run.NORMAL_FINISH_RATE = temp2.ToString("0");
+                            monthRuns.Add(run);
+                        }
+                        else
+                        {
+                            T_BI_DEPARTMENT_MONTH_RUN run = new T_BI_DEPARTMENT_MONTH_RUN();
+                            run.DEPARTMENT_ID = xkDepartId.Value;
+                            run.ORG_ID = pageFilter.OrgId;
+                            var depart = departmentInfos.FirstOrDefault(m => m.ID == xkDepartId.Value);
+                            run.DEPARTMENT_NAME = depart?.NAME;
+                            run.MONTH = monthStart;
+                            run.MONTHStr = monthStart.Year + "年" + monthStart.Month + "月";
+                            run.FINISH_RATE = "0";
+                            run.NORMAL_FINISH_RATE = "0";
+                            if (i == 12)
+                            {
+                                var lastInfo = monthRuns.FirstOrDefault(t => t.DEPARTMENT_ID == xkDepartId.Value && t.MONTHStr == monthStart.Year + "年" + monthStart.AddMonths(-1).Month + "月");
+                                if (lastInfo != null)
+                                {
+                                    run.FINISH_RATE = lastInfo.FINISH_RATE;
+                                    run.NORMAL_FINISH_RATE = lastInfo.NORMAL_FINISH_RATE;
+                                }
+                            }
+                            monthRuns.Add(run);
                         }
-                        monthRuns.Add(run);
                     }
+                    var deleteIds = this.GetEntities(t => true, new BaseFilter(pageFilter.OrgId)).Select(m => m.ID).ToList();
+                    var deletemouIds = this.GetEntities(t => true, new BaseFilter(pageFilter.OrgId)).Select(m => m.ID).ToList();
+                    var deletemonthIds = this.GetEntities(t => true, new BaseFilter(pageFilter.OrgId)).Select(m => m.ID).ToList();
+                    this.UnifiedCommit(() =>
+                    {
+                        if (deleteIds != null && deleteIds.Any())
+                            BantchDeleteEntityNoCommit(deleteIds);
+                        if (deleteIds != null && deleteIds.Any())
+                            BantchDeleteEntityNoCommit(deletemouIds);
+                        if (deleteIds != null && deleteIds.Any())
+                            BantchDeleteEntityNoCommit(deletemonthIds);
+                        if (departSummary != null && departSummary.Any())
+                            BantchSaveEntityNoCommit(departSummary);
+                        if (mouldSummary != null && mouldSummary.Any())
+                            BantchSaveEntityNoCommit(mouldSummary);
+                        if (monthRuns != null && monthRuns.Any())
+                            BantchSaveEntityNoCommit(monthRuns);
+                    });
                 }
-                var deleteIds = this.GetEntities(t => true, new BaseFilter(pageFilter.OrgId)).Select(m => m.ID).ToList();
-                var deletemouIds = this.GetEntities(t => true, new BaseFilter(pageFilter.OrgId)).Select(m => m.ID).ToList();
-                var deletemonthIds = this.GetEntities(t => true, new BaseFilter(pageFilter.OrgId)).Select(m => m.ID).ToList();
-                this.UnifiedCommit(() =>
+                catch (Exception ex)
                 {
-                    if (deleteIds != null && deleteIds.Any())
-                        BantchDeleteEntityNoCommit(deleteIds);
-                    if (deleteIds != null && deleteIds.Any())
-                        BantchDeleteEntityNoCommit(deletemouIds);
-                    if (deleteIds != null && deleteIds.Any())
-                        BantchDeleteEntityNoCommit(deletemonthIds);
-                    if (departSummary != null && departSummary.Any())
-                        BantchSaveEntityNoCommit(departSummary);
-                    if (mouldSummary != null && mouldSummary.Any())
-                        BantchSaveEntityNoCommit(mouldSummary);
-                    if (monthRuns != null && monthRuns.Any())
-                        BantchSaveEntityNoCommit(monthRuns);
-                });
+                    if (!string.IsNullOrEmpty(ex.StackTrace))
+                        throw new Exception("错误日志:[StackTrace]" + ex.StackTrace);
+                    else
+                        throw new Exception("【" + HttpContext.Request.Path + "】错误日志:[Message]" + ex.Message);
+                }
                 return true;
             });
         }
@@ -3234,42 +3280,52 @@ namespace APT.PP.WebApi.Controllers.Api.PP
         {
             return SafeExecute(() =>
             {
-                var dt = DateTime.Now;
-                //最近一天
-                DateTime week = dt.AddDays(-1).Date;
-                if (!string.IsNullOrEmpty(pageFilter.Parameter1))
+                try
                 {
-                    if (!pageFilter.Parameter1.Contains("|"))
-                        throw new Exception("必须传入开始日期和结束日期,以|符号分隔");
-                    var temp = pageFilter.Parameter1.Split("|");
-                    if (temp[1].Length == 0)
-                        throw new Exception("必须传入开始日期和结束日期,以|符号分隔");
-                    week = DateTime.Parse(temp[0]);
-                    dt = DateTime.Parse(temp[1]);
+                    var dt = DateTime.Now;
+                    //最近一天
+                    DateTime week = dt.AddDays(-1).Date;
+                    if (!string.IsNullOrEmpty(pageFilter.Parameter1))
+                    {
+                        if (!pageFilter.Parameter1.Contains("|"))
+                            throw new Exception("必须传入开始日期和结束日期,以|符号分隔");
+                        var temp = pageFilter.Parameter1.Split("|");
+                        if (temp[1].Length == 0)
+                            throw new Exception("必须传入开始日期和结束日期,以|符号分隔");
+                        week = DateTime.Parse(temp[0]);
+                        dt = DateTime.Parse(temp[1]);
+                    }
+                    var formInfos = this.GetEntities(t => t.TABLE_NAME != null, new BaseFilter(pageFilter.OrgId)).ToList();
+                    var formCodes = formInfos.Select(t => t.CODE).Distinct().ToList();
+                    var taskInfos = this.GetEntities(t => t.CREATE_TIME >= week && t.CREATE_TIME <= dt && t.SOURCE_FORMCODE != "PF135" && t.SOURCE_FORMCODE != "PF119" && t.NOTICE_TYPE != 7 && t.NOTICE_TYPE != 8 && t.NOTICE_TYPE != 2 && t.SOURCE_FORMCODE != null && t.TABLE_NAME == null, new BaseFilter(pageFilter.OrgId)).ToList();
+                    taskInfos.ForEach(t =>
+                    {
+                        if (t.SOURCE_FORMCODE.Contains("_SHOWPRINT"))
+                        {
+                            var table = formInfos.FirstOrDefault(m => m.CODE == t.SOURCE_FORMCODE.Split('_')[0]);
+                            if (table != null)
+                                t.TABLE_NAME = table.TABLE_NAME;
+                        }
+                        else
+                        {
+                            var table = formInfos.FirstOrDefault(m => m.CODE == t.SOURCE_FORMCODE);
+                            if (table != null)
+                                t.TABLE_NAME = table.TABLE_NAME;
+                        }
+                    });
+                    this.UnifiedCommit(() =>
+                    {
+                        if (taskInfos != null && taskInfos.Any())
+                            BantchSaveEntityNoCommit(taskInfos);
+                    });
                 }
-                var formInfos = this.GetEntities(t => t.TABLE_NAME != null, new BaseFilter(pageFilter.OrgId)).ToList();
-                var formCodes = formInfos.Select(t => t.CODE).Distinct().ToList();
-                var taskInfos = this.GetEntities(t => t.CREATE_TIME >= week && t.CREATE_TIME <= dt && t.SOURCE_FORMCODE != "PF135" && t.SOURCE_FORMCODE != "PF119" && t.NOTICE_TYPE != 7 && t.NOTICE_TYPE != 8 && t.NOTICE_TYPE != 2 && t.SOURCE_FORMCODE != null && t.TABLE_NAME == null, new BaseFilter(pageFilter.OrgId)).ToList();
-                taskInfos.ForEach(t =>
+                catch (Exception ex)
                 {
-                    if (t.SOURCE_FORMCODE.Contains("_SHOWPRINT"))
-                    {
-                        var table = formInfos.FirstOrDefault(m => m.CODE == t.SOURCE_FORMCODE.Split('_')[0]);
-                        if (table != null)
-                            t.TABLE_NAME = table.TABLE_NAME;
-                    }
+                    if (!string.IsNullOrEmpty(ex.StackTrace))
+                        throw new Exception("错误日志:[StackTrace]" + ex.StackTrace);
                     else
-                    {
-                        var table = formInfos.FirstOrDefault(m => m.CODE == t.SOURCE_FORMCODE);
-                        if (table != null)
-                            t.TABLE_NAME = table.TABLE_NAME;
-                    }
-                });
-                this.UnifiedCommit(() =>
-                {
-                    if (taskInfos != null && taskInfos.Any())
-                        BantchSaveEntityNoCommit(taskInfos);
-                });
+                        throw new Exception("【" + HttpContext.Request.Path + "】错误日志:[Message]" + ex.Message);
+                }
                 return true;
             });
         }
@@ -3286,27 +3342,38 @@ namespace APT.PP.WebApi.Controllers.Api.PP
         {
             return SafeExecute(() =>
             {
-                var dt = DateTime.Now;
-                //最近一周
-                DateTime week = dt.AddDays(-7).Date;
-                var taskInfos = this.GetEntities(t => t.CREATE_TIME >= week && (t.SOURCE_FORMCODE == "PF135" || t.SOURCE_FORMCODE == "PF119" || t.NOTICE_TITLE.Contains("审核")), new BaseFilter(pageFilter.OrgId)).ToList();
-                if (taskInfos.Any())
+                try
                 {
-                    taskInfos.ForEach(t =>
+                    var dt = DateTime.Now;
+                    //最近一周
+                    DateTime week = dt.AddDays(-7).Date;
+                    var taskInfos = this.GetEntities(t => t.CREATE_TIME >= week && (t.SOURCE_FORMCODE == "PF135" || t.SOURCE_FORMCODE == "PF119" || t.NOTICE_TITLE.Contains("审核")), new BaseFilter(pageFilter.OrgId)).ToList();
+                    if (taskInfos.Any())
                     {
-                        if (t.SOURCE_FORMCODE == "PF135")
-                            t.NOTICE_TYPE = 7;
-                        if (t.SOURCE_FORMCODE == "PF119")
-                            t.NOTICE_TYPE = 8;
-                        if (t.SOURCE_FORMCODE != "PF119" && t.NOTICE_TITLE.Contains("审核"))
-                            t.NOTICE_TYPE = 8;
+                        taskInfos.ForEach(t =>
+                        {
+                            if (t.SOURCE_FORMCODE == "PF135")
+                                t.NOTICE_TYPE = 7;
+                            if (t.SOURCE_FORMCODE == "PF119")
+                                t.NOTICE_TYPE = 8;
+                            if (t.SOURCE_FORMCODE != "PF119" && t.NOTICE_TITLE.Contains("审核"))
+                                t.NOTICE_TYPE = 8;
+                        });
+                    }
+                    this.UnifiedCommit(() =>
+                    {
+                        if (taskInfos != null && taskInfos.Any())
+                            BantchSaveEntityNoCommit(taskInfos);
                     });
+
                 }
-                this.UnifiedCommit(() =>
+                catch (Exception ex)
                 {
-                    if (taskInfos != null && taskInfos.Any())
-                        BantchSaveEntityNoCommit(taskInfos);
-                });
+                    if (!string.IsNullOrEmpty(ex.StackTrace))
+                        throw new Exception("错误日志:[StackTrace]" + ex.StackTrace);
+                    else
+                        throw new Exception("【" + HttpContext.Request.Path + "】错误日志:[Message]" + ex.Message);
+                }
                 return true;
             });
         }
@@ -3323,164 +3390,174 @@ namespace APT.PP.WebApi.Controllers.Api.PP
         {
             return SafeExecute(() =>
             {
-                var dt = DateTime.Now;
-                //最近一周
-                DateTime week = dt.AddDays(-7).Date;
-                //最近一年
-                var taskInfos = new List();
-                var biTaskInfos = new List();
-                var addTaskInfos = new List();
-                var newFilter = new BaseFilter(pageFilter.OrgId);
-                if (!string.IsNullOrEmpty(pageFilter.Parameter1))
+                try
                 {
-                    if (!pageFilter.Parameter1.Contains("|"))
-                        throw new Exception("必须传入开始日期和结束日期,以|符号分隔");
-                    var temp = pageFilter.Parameter1.Split("|");
-                    if (temp[1].Length == 0)
-                        throw new Exception("必须传入开始日期和结束日期,以|符号分隔");
-                    DateTime year = DateTime.Parse(temp[0]);
-                    DateTime yearEnd = DateTime.Parse(temp[1]);
-                    newFilter.SelectField = new List { "SOURCE_DATA_ID" };
-                    biTaskInfos = this.GetEntities(t => t.CREATE_DATE >= year && t.CREATE_DATE < yearEnd, newFilter).ToList();
-                    var dataIds = biTaskInfos.Select(t => t.SOURCE_DATA_ID).Distinct().ToList();
-                    newFilter.SelectField = new List { "NOTICE_TITLE", "NOTICE_STATUS", "USER_ID", "SOURCE_FORMCODE", "SOURCE_DATA_ID", "CREATE_TIME", "CREATER_ID" };
-                    taskInfos = this.GetEntities(t => t.CREATE_TIME >= year && t.CREATE_TIME < yearEnd && t.NOTICE_TYPE != 7 && t.NOTICE_TYPE != 8 && t.USER_ID != null, newFilter).ToList();
-                    taskInfos = taskInfos.Where(t => !dataIds.Contains(t.SOURCE_DATA_ID) && !t.NOTICE_TITLE.Contains("审核") && t.SOURCE_FORMCODE != "PF135" && t.SOURCE_FORMCODE != "PF119").ToList();
-                }
-                else
-                {
-                    newFilter.SelectField = new List { "SOURCE_DATA_ID" };
-                    biTaskInfos = this.GetEntities(t => t.CREATE_DATE >= week, newFilter).ToList();
-                    var dataIds = biTaskInfos.Select(t => t.SOURCE_DATA_ID).Distinct().ToList();
-                    newFilter.SelectField = new List { "NOTICE_TITLE", "NOTICE_STATUS", "USER_ID", "SOURCE_FORMCODE", "SOURCE_DATA_ID", "CREATE_TIME", "CREATER_ID" };
-                    taskInfos = this.GetEntities(t => t.CREATE_TIME >= week && t.NOTICE_TYPE != 7 && t.NOTICE_TYPE != 8 && t.USER_ID != null, newFilter).ToList();
-                    taskInfos = taskInfos.Where(t => !dataIds.Contains(t.SOURCE_DATA_ID) && !t.NOTICE_TITLE.Contains("审核") && t.SOURCE_FORMCODE != "PF135" && t.SOURCE_FORMCODE != "PF119").ToList();
-                }
-                //按sourcedataid分类
-                var groupTasks = taskInfos.GroupBy(t => t.SOURCE_DATA_ID).Select(p => new T_FM_NOTIFICATION_TASK
-                {
-                    SOURCE_DATA_ID = p.Key,
-                    NOTICE_TITLE = p.Where(q => q.SOURCE_DATA_ID == p.Key).OrderBy(g => g.CREATE_TIME).FirstOrDefault().NOTICE_TITLE,
-                    USER_ID = p.Where(q => q.SOURCE_DATA_ID == p.Key).OrderBy(g => g.CREATE_TIME).FirstOrDefault().USER_ID,
-                    CREATER_ID = p.Where(q => q.SOURCE_DATA_ID == p.Key).OrderBy(g => g.CREATE_TIME).FirstOrDefault().CREATER_ID,
-                    CREATE_TIME = p.Where(q => q.SOURCE_DATA_ID == p.Key).OrderBy(g => g.CREATE_TIME).FirstOrDefault().CREATE_TIME,
-                    SOURCE_FORMCODE = p.Where(q => q.SOURCE_DATA_ID == p.Key).OrderBy(g => g.CREATE_TIME).FirstOrDefault().SOURCE_FORMCODE,
-                    NOTICE_STATUS = p.Where(q => q.SOURCE_DATA_ID == p.Key && q.NOTICE_STATUS == 0).FirstOrDefault() != null ? 0 : (p.Where(q => q.SOURCE_DATA_ID == p.Key && q.NOTICE_STATUS == 2).FirstOrDefault() != null ? 2 : 1),
-                }).ToList();
-                //人员表
-                newFilter.SelectField = new List { "ID", "DEPARTMENT_ID" };
-                var userIds = groupTasks.Select(t => t.USER_ID).Distinct().ToList();
-                var userInfos = this.GetEntities(t => userIds.Contains(t.ID) && t.ENABLE_STATUS == 0, newFilter).ToList();
-                //部门表
-                newFilter.SelectField = new List { "ID", "PARENT_ID", "DEPARTMENT_TYPE", "Nav_Parent" };
-                var departmentInfos = this.GetEntities(t => t.ENABLE_STATUS == 0, newFilter).ToList();
-                if (groupTasks.Any())
-                {
-                    groupTasks.ForEach(t =>
+                    var dt = DateTime.Now;
+                    //最近一周
+                    DateTime week = dt.AddDays(-7).Date;
+                    //最近一年
+                    var taskInfos = new List();
+                    var biTaskInfos = new List();
+                    var addTaskInfos = new List();
+                    var newFilter = new BaseFilter(pageFilter.OrgId);
+                    if (!string.IsNullOrEmpty(pageFilter.Parameter1))
                     {
-                        T_BI_NOTIFICATION_TASK task = new T_BI_NOTIFICATION_TASK();
-                        task.ORG_ID = pageFilter.OrgId;
-                        task.SOURCE_DATA_ID = t.SOURCE_DATA_ID;
-                        task.CREATE_USER_ID = t.CREATER_ID;
-                        task.NOTICE_STATUS = t.NOTICE_STATUS;
-                        task.NOTICE_TITLE = t.NOTICE_TITLE;
-                        task.SOURCE_FORMCODE = t.SOURCE_FORMCODE;
-                        task.CREATE_DATE = t.CREATE_TIME;
-                        var user = userInfos.FirstOrDefault(m => m.ID == t.USER_ID);
-                        if (user != null)
+                        if (!pageFilter.Parameter1.Contains("|"))
+                            throw new Exception("必须传入开始日期和结束日期,以|符号分隔");
+                        var temp = pageFilter.Parameter1.Split("|");
+                        if (temp[1].Length == 0)
+                            throw new Exception("必须传入开始日期和结束日期,以|符号分隔");
+                        DateTime year = DateTime.Parse(temp[0]);
+                        DateTime yearEnd = DateTime.Parse(temp[1]);
+                        newFilter.SelectField = new List { "SOURCE_DATA_ID" };
+                        biTaskInfos = this.GetEntities(t => t.CREATE_DATE >= year && t.CREATE_DATE < yearEnd, newFilter).ToList();
+                        var dataIds = biTaskInfos.Select(t => t.SOURCE_DATA_ID).Distinct().ToList();
+                        newFilter.SelectField = new List { "NOTICE_TITLE", "NOTICE_STATUS", "USER_ID", "SOURCE_FORMCODE", "SOURCE_DATA_ID", "CREATE_TIME", "CREATER_ID" };
+                        taskInfos = this.GetEntities(t => t.CREATE_TIME >= year && t.CREATE_TIME < yearEnd && t.NOTICE_TYPE != 7 && t.NOTICE_TYPE != 8 && t.USER_ID != null, newFilter).ToList();
+                        taskInfos = taskInfos.Where(t => !dataIds.Contains(t.SOURCE_DATA_ID) && !t.NOTICE_TITLE.Contains("审核") && t.SOURCE_FORMCODE != "PF135" && t.SOURCE_FORMCODE != "PF119").ToList();
+                    }
+                    else
+                    {
+                        newFilter.SelectField = new List { "SOURCE_DATA_ID" };
+                        biTaskInfos = this.GetEntities(t => t.CREATE_DATE >= week, newFilter).ToList();
+                        var dataIds = biTaskInfos.Select(t => t.SOURCE_DATA_ID).Distinct().ToList();
+                        newFilter.SelectField = new List { "NOTICE_TITLE", "NOTICE_STATUS", "USER_ID", "SOURCE_FORMCODE", "SOURCE_DATA_ID", "CREATE_TIME", "CREATER_ID" };
+                        taskInfos = this.GetEntities(t => t.CREATE_TIME >= week && t.NOTICE_TYPE != 7 && t.NOTICE_TYPE != 8 && t.USER_ID != null, newFilter).ToList();
+                        taskInfos = taskInfos.Where(t => !dataIds.Contains(t.SOURCE_DATA_ID) && !t.NOTICE_TITLE.Contains("审核") && t.SOURCE_FORMCODE != "PF135" && t.SOURCE_FORMCODE != "PF119").ToList();
+                    }
+                    //按sourcedataid分类
+                    var groupTasks = taskInfos.GroupBy(t => t.SOURCE_DATA_ID).Select(p => new T_FM_NOTIFICATION_TASK
+                    {
+                        SOURCE_DATA_ID = p.Key,
+                        NOTICE_TITLE = p.Where(q => q.SOURCE_DATA_ID == p.Key).OrderBy(g => g.CREATE_TIME).FirstOrDefault().NOTICE_TITLE,
+                        USER_ID = p.Where(q => q.SOURCE_DATA_ID == p.Key).OrderBy(g => g.CREATE_TIME).FirstOrDefault().USER_ID,
+                        CREATER_ID = p.Where(q => q.SOURCE_DATA_ID == p.Key).OrderBy(g => g.CREATE_TIME).FirstOrDefault().CREATER_ID,
+                        CREATE_TIME = p.Where(q => q.SOURCE_DATA_ID == p.Key).OrderBy(g => g.CREATE_TIME).FirstOrDefault().CREATE_TIME,
+                        SOURCE_FORMCODE = p.Where(q => q.SOURCE_DATA_ID == p.Key).OrderBy(g => g.CREATE_TIME).FirstOrDefault().SOURCE_FORMCODE,
+                        NOTICE_STATUS = p.Where(q => q.SOURCE_DATA_ID == p.Key && q.NOTICE_STATUS == 0).FirstOrDefault() != null ? 0 : (p.Where(q => q.SOURCE_DATA_ID == p.Key && q.NOTICE_STATUS == 2).FirstOrDefault() != null ? 2 : 1),
+                    }).ToList();
+                    //人员表
+                    newFilter.SelectField = new List { "ID", "DEPARTMENT_ID" };
+                    var userIds = groupTasks.Select(t => t.USER_ID).Distinct().ToList();
+                    var userInfos = this.GetEntities(t => userIds.Contains(t.ID) && t.ENABLE_STATUS == 0, newFilter).ToList();
+                    //部门表
+                    newFilter.SelectField = new List { "ID", "PARENT_ID", "DEPARTMENT_TYPE", "Nav_Parent" };
+                    var departmentInfos = this.GetEntities(t => t.ENABLE_STATUS == 0, newFilter).ToList();
+                    if (groupTasks.Any())
+                    {
+                        groupTasks.ForEach(t =>
                         {
-                            var depart = departmentInfos.FirstOrDefault(m => m.ID == user.DEPARTMENT_ID);
-                            if (depart != null)
+                            T_BI_NOTIFICATION_TASK task = new T_BI_NOTIFICATION_TASK();
+                            task.ORG_ID = pageFilter.OrgId;
+                            task.SOURCE_DATA_ID = t.SOURCE_DATA_ID;
+                            task.CREATE_USER_ID = t.CREATER_ID;
+                            task.NOTICE_STATUS = t.NOTICE_STATUS;
+                            task.NOTICE_TITLE = t.NOTICE_TITLE;
+                            task.SOURCE_FORMCODE = t.SOURCE_FORMCODE;
+                            task.CREATE_DATE = t.CREATE_TIME;
+                            var user = userInfos.FirstOrDefault(m => m.ID == t.USER_ID);
+                            if (user != null)
                             {
-                                task.DEPARTMENT_ID = depart.ID;
-                                if (depart.DEPARTMENT_TYPE == 2)
+                                var depart = departmentInfos.FirstOrDefault(m => m.ID == user.DEPARTMENT_ID);
+                                if (depart != null)
                                 {
-                                    task.CLASS_DEPARTMENT_ID = depart.ID;
-                                    task.SHOP_DEPARTMENT_ID = depart.PARENT_ID;
-                                    task.DEPT_DEPARTMENT_ID = depart.Nav_Parent?.PARENT_ID;
-                                }
-                                else if (depart.DEPARTMENT_TYPE == 1)
-                                {
-                                    task.SHOP_DEPARTMENT_ID = depart.ID;
-                                    task.DEPT_DEPARTMENT_ID = depart.PARENT_ID;
-                                }
-                                else if (depart.DEPARTMENT_TYPE == 0)
-                                {
-                                    task.DEPT_DEPARTMENT_ID = depart.ID;
+                                    task.DEPARTMENT_ID = depart.ID;
+                                    if (depart.DEPARTMENT_TYPE == 2)
+                                    {
+                                        task.CLASS_DEPARTMENT_ID = depart.ID;
+                                        task.SHOP_DEPARTMENT_ID = depart.PARENT_ID;
+                                        task.DEPT_DEPARTMENT_ID = depart.Nav_Parent?.PARENT_ID;
+                                    }
+                                    else if (depart.DEPARTMENT_TYPE == 1)
+                                    {
+                                        task.SHOP_DEPARTMENT_ID = depart.ID;
+                                        task.DEPT_DEPARTMENT_ID = depart.PARENT_ID;
+                                    }
+                                    else if (depart.DEPARTMENT_TYPE == 0)
+                                    {
+                                        task.DEPT_DEPARTMENT_ID = depart.ID;
+                                    }
                                 }
                             }
-                        }
-                        if (t.SOURCE_FORMCODE.StartsWith("HM") || t.SOURCE_FORMCODE.StartsWith("hm"))
-                        {
-                            task.MOUDLE_NAME = "风险管理";
-                        }
-                        if (t.SOURCE_FORMCODE.StartsWith("FO") || t.SOURCE_FORMCODE.StartsWith("fo"))
-                        {
-                            task.MOUDLE_NAME = "作业现场管理";
-                        }
-                        if (t.SOURCE_FORMCODE.StartsWith("BS") || t.SOURCE_FORMCODE.StartsWith("bs"))
-                        {
-                            task.MOUDLE_NAME = "安全检查";
-                        }
-                        if (t.SOURCE_FORMCODE.StartsWith("LR") || t.SOURCE_FORMCODE.StartsWith("lr"))
-                        {
-                            task.MOUDLE_NAME = "法律法规与其他要求";
-                        }
-                        if (t.SOURCE_FORMCODE.StartsWith("SE") || t.SOURCE_FORMCODE.StartsWith("se"))
-                        {
-                            task.MOUDLE_NAME = "安全教育培训";
-                        }
-                        if (t.SOURCE_FORMCODE.StartsWith("PT") || t.SOURCE_FORMCODE.StartsWith("pt"))
-                        {
-                            task.MOUDLE_NAME = "方针与目标管理";
-                        }
-                        if (t.SOURCE_FORMCODE.StartsWith("PE") || t.SOURCE_FORMCODE.StartsWith("pe"))
-                        {
-                            task.MOUDLE_NAME = "绩效测量与评价";
-                        }
-                        if (t.SOURCE_FORMCODE.StartsWith("PR") || t.SOURCE_FORMCODE.StartsWith("pr"))
-                        {
-                            task.MOUDLE_NAME = "生产工艺管理";
-                        }
-                        if (t.SOURCE_FORMCODE.StartsWith("AE") || t.SOURCE_FORMCODE.StartsWith("ae"))
-                        {
-                            task.MOUDLE_NAME = "事故事件";
-                        }
-                        if (t.SOURCE_FORMCODE.StartsWith("OG") || t.SOURCE_FORMCODE.StartsWith("og"))
-                        {
-                            task.MOUDLE_NAME = "安全生产组织保障";
-                        }
-                        if (t.SOURCE_FORMCODE.StartsWith("TI") || t.SOURCE_FORMCODE.StartsWith("ti"))
-                        {
-                            task.MOUDLE_NAME = "安全投入、科技与工伤";
-                        }
-                        if (t.SOURCE_FORMCODE.StartsWith("OH") || t.SOURCE_FORMCODE.StartsWith("oh"))
-                        {
-                            task.MOUDLE_NAME = "职业卫生";
-                        }
-                        if (t.SOURCE_FORMCODE.StartsWith("CM") || t.SOURCE_FORMCODE.StartsWith("cm"))
-                        {
-                            task.MOUDLE_NAME = "应急管理";
-                        }
-                        if (t.SOURCE_FORMCODE.StartsWith("DM") || t.SOURCE_FORMCODE.StartsWith("dm"))
-                        {
-                            task.MOUDLE_NAME = "机电安全管理";
-                        }
-                        if (t.SOURCE_FORMCODE.StartsWith("SC") || t.SOURCE_FORMCODE.StartsWith("sc"))
-                        {
-                            if (t.TABLE_NAME != null && t.TABLE_NAME.StartsWith("T_SC_MT"))
-                                task.MOUDLE_NAME = "会议管理";
-                            else
-                                task.MOUDLE_NAME = "标准化创建";
-                        }
-                        addTaskInfos.Add(task);
+                            if (t.SOURCE_FORMCODE.StartsWith("HM") || t.SOURCE_FORMCODE.StartsWith("hm"))
+                            {
+                                task.MOUDLE_NAME = "风险管理";
+                            }
+                            if (t.SOURCE_FORMCODE.StartsWith("FO") || t.SOURCE_FORMCODE.StartsWith("fo"))
+                            {
+                                task.MOUDLE_NAME = "作业现场管理";
+                            }
+                            if (t.SOURCE_FORMCODE.StartsWith("BS") || t.SOURCE_FORMCODE.StartsWith("bs"))
+                            {
+                                task.MOUDLE_NAME = "安全检查";
+                            }
+                            if (t.SOURCE_FORMCODE.StartsWith("LR") || t.SOURCE_FORMCODE.StartsWith("lr"))
+                            {
+                                task.MOUDLE_NAME = "法律法规与其他要求";
+                            }
+                            if (t.SOURCE_FORMCODE.StartsWith("SE") || t.SOURCE_FORMCODE.StartsWith("se"))
+                            {
+                                task.MOUDLE_NAME = "安全教育培训";
+                            }
+                            if (t.SOURCE_FORMCODE.StartsWith("PT") || t.SOURCE_FORMCODE.StartsWith("pt"))
+                            {
+                                task.MOUDLE_NAME = "方针与目标管理";
+                            }
+                            if (t.SOURCE_FORMCODE.StartsWith("PE") || t.SOURCE_FORMCODE.StartsWith("pe"))
+                            {
+                                task.MOUDLE_NAME = "绩效测量与评价";
+                            }
+                            if (t.SOURCE_FORMCODE.StartsWith("PR") || t.SOURCE_FORMCODE.StartsWith("pr"))
+                            {
+                                task.MOUDLE_NAME = "生产工艺管理";
+                            }
+                            if (t.SOURCE_FORMCODE.StartsWith("AE") || t.SOURCE_FORMCODE.StartsWith("ae"))
+                            {
+                                task.MOUDLE_NAME = "事故事件";
+                            }
+                            if (t.SOURCE_FORMCODE.StartsWith("OG") || t.SOURCE_FORMCODE.StartsWith("og"))
+                            {
+                                task.MOUDLE_NAME = "安全生产组织保障";
+                            }
+                            if (t.SOURCE_FORMCODE.StartsWith("TI") || t.SOURCE_FORMCODE.StartsWith("ti"))
+                            {
+                                task.MOUDLE_NAME = "安全投入、科技与工伤";
+                            }
+                            if (t.SOURCE_FORMCODE.StartsWith("OH") || t.SOURCE_FORMCODE.StartsWith("oh"))
+                            {
+                                task.MOUDLE_NAME = "职业卫生";
+                            }
+                            if (t.SOURCE_FORMCODE.StartsWith("CM") || t.SOURCE_FORMCODE.StartsWith("cm"))
+                            {
+                                task.MOUDLE_NAME = "应急管理";
+                            }
+                            if (t.SOURCE_FORMCODE.StartsWith("DM") || t.SOURCE_FORMCODE.StartsWith("dm"))
+                            {
+                                task.MOUDLE_NAME = "机电安全管理";
+                            }
+                            if (t.SOURCE_FORMCODE.StartsWith("SC") || t.SOURCE_FORMCODE.StartsWith("sc"))
+                            {
+                                if (t.TABLE_NAME != null && t.TABLE_NAME.StartsWith("T_SC_MT"))
+                                    task.MOUDLE_NAME = "会议管理";
+                                else
+                                    task.MOUDLE_NAME = "标准化创建";
+                            }
+                            addTaskInfos.Add(task);
+                        });
+                    }
+                    this.UnifiedCommit(() =>
+                    {
+                        if (addTaskInfos != null && addTaskInfos.Any())
+                            BantchAddEntityNoCommit(addTaskInfos);
                     });
                 }
-                this.UnifiedCommit(() =>
+                catch (Exception ex)
                 {
-                    if (addTaskInfos != null && addTaskInfos.Any())
-                        BantchAddEntityNoCommit(addTaskInfos);
-                });
+                    if (!string.IsNullOrEmpty(ex.StackTrace))
+                        throw new Exception("错误日志:[StackTrace]" + ex.StackTrace);
+                    else
+                        throw new Exception("【" + HttpContext.Request.Path + "】错误日志:[Message]" + ex.Message);
+                }
                 return true;
             });
         }
@@ -3533,22 +3610,22 @@ namespace APT.PP.WebApi.Controllers.Api.PP
                 var personIds = this.GetEntities(t => deleteIds.Contains(t.JOB_EVENT_RECORD_ID), new BaseFilter(filter.OrgId)).Select(m => m.ID).ToList();
                 var flowIds = this.GetEntities