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