diff --git a/APT.MicroApi/APT.FM.WebApi/Controllers/Api/DepartmentController.cs b/APT.MicroApi/APT.FM.WebApi/Controllers/Api/DepartmentController.cs index 30cf5eb..fc51927 100644 --- a/APT.MicroApi/APT.FM.WebApi/Controllers/Api/DepartmentController.cs +++ b/APT.MicroApi/APT.FM.WebApi/Controllers/Api/DepartmentController.cs @@ -550,12 +550,12 @@ namespace APT.FM.WebApi.Controllers.Api.FM throw new Exception(message); } - var listDepChange = entityUpdateList; + var listDepChange = new List(); if (entityUpdateList != null && entityUpdateList.Count() > 0) { var listDepID = entityUpdateList.Select(e => e.ID); - entityUpdateList = GetEntities(e => listDepID.Contains(e.ID), null).ToList(); - listDepChange = listDepChange.Where(e => !e.IS_DELETED).ToList(); + listDepChange = GetEntities(e => listDepID.Contains(e.ID), null).ToList(); + //listDepChange = listDepChange.Where(e => !e.IS_DELETED).ToList(); } this.UnifiedCommit(() => { @@ -578,10 +578,16 @@ namespace APT.FM.WebApi.Controllers.Api.FM this.BantchUpdateEntity_noneBase(departUpdateList); if (teamInfos != null && teamInfos.Any()) this.BantchUpdateEntity_noneBase(teamInfos); - if (entityUpdateList != null && entityUpdateList.Any()) - this.BantchUpdateEntity_noneBase(entityUpdateList); if (listDepChange != null && listDepChange.Any()) - BantchSaveEntityNoCommit(listDepChange); + { + this.BantchUpdateEntity_noneBase(entityUpdateList); + } + else + { + this.UpdateEntityNoCommit(entity); + } + //if (listDepChange != null && listDepChange.Any()) + // BantchSaveEntityNoCommit(listDepChange); //if (entity != null) // this.UpdateEntityNoCommit(entity); }); diff --git a/APT.MicroApi/APT.PP.WebApi/Controllers/Api/SKController.cs b/APT.MicroApi/APT.PP.WebApi/Controllers/Api/SKController.cs index 6a579db..23e89a0 100644 --- a/APT.MicroApi/APT.PP.WebApi/Controllers/Api/SKController.cs +++ b/APT.MicroApi/APT.PP.WebApi/Controllers/Api/SKController.cs @@ -6781,6 +6781,90 @@ namespace APT.PP.WebApi.Controllers.Api } return true; }); + } + /// + /// 岗位风险辨识结束时间到,提醒本人及上级领导 + /// + /// + /// + [HttpPost, Route("IdentifyNoticeSync")] + public JsonActionResult IdentifyNoticeSync([FromBody] KeywordFilter filter) + { + return SafeExecute(() => + { + try + { + var dt = DateTime.Now; + if (filter.Parameter1 != null) + { + dt = DateTime.Parse(filter.Parameter1); + } + List userIds = new List(); + List userLeaderIds = new List(); + List notices = new List(); + var users = GetEntities(i => i.ENABLE_STATUS == 0, new BaseFilter(filter.OrgId)).ToList(); + var departs = GetEntities(i => i.ENABLE_STATUS == 0, new BaseFilter(filter.OrgId)).ToList(); + var identifys = GetEntities(i => i.END_DATE <= dt, new BaseFilter(filter.OrgId)).ToList(); + var idetifyIds = identifys.Select(t => t.ID).ToList(); + var tasks=this.GetEntities(i => i.SOURCE_DATA_ID!=null &&idetifyIds.Contains((Guid)i.SOURCE_DATA_ID) && i.NOTICE_STATUS == 0, new BaseFilter(filter.OrgId)).ToList(); + userIds = tasks.Select(t => t.USER_ID).Distinct().ToList(); + if (userIds != null && userIds.Any()) + { + //找负责人 + foreach (var user in userIds) + { + var userDepartId = users.FirstOrDefault(t => t.ID == user)?.DEPARTMENT_ID; + var departUserId = departs.FirstOrDefault(t=>t.ID == userDepartId)?.USER_ID; + if (departUserId != null) + { + userLeaderIds.Add((Guid)departUserId); + } + } + } + userIds = userIds.Where(t => t != null).Distinct().ToList(); + userLeaderIds = userLeaderIds.Where(t => t != null).Distinct().ToList(); + if (userIds!=null && userIds.Any() && dt.Hour == 8)//跑批设置每小时执行,每天8点触发一次 + { + foreach (var id in userIds) + { + var user = users.FirstOrDefault(t => t.ID == id); + if (user != null) + { + var sendNotice = NotificationTaskService.InsertUserNoticeTaskModel("你的岗位风险辨识表结束时间已到,请及时到待办处理!", user.ID, user.ORG_ID, user.ID, user.NAME, DateTime.Now, DateTime.Now.AddDays(1), (int)FMNoticeTypeEnum.今日提醒, "PF135"); + notices.Add(sendNotice); + } + } + } + if (userLeaderIds != null && userLeaderIds.Any() && dt.Hour == 8)//跑批设置每小时执行,每天8点触发一次 + { + foreach (var id in userIds) + { + var user = users.FirstOrDefault(t => t.ID == id); + if (user != null) + { + //查出他组织下的没做的人 + var userList = users.Where(t => t.DEPARTMENT_ID == user.DEPARTMENT_ID && userIds.Contains(t.ID)).Select(m=>m.NAME).ToList(); + var userNames = string.Join(",", userList); + var sendNotice = NotificationTaskService.InsertUserNoticeTaskModel("你组织下的成员"+ userNames + ",岗位风险辨识表已到期仍未处理,请及时提醒成员到待办处理!", user.ID, user.ORG_ID, user.ID, user.NAME, DateTime.Now, DateTime.Now.AddDays(1), (int)FMNoticeTypeEnum.今日提醒, "PF135"); + notices.Add(sendNotice); + } + } + } + UnifiedCommit(() => + { + if (notices != null && notices.Any()) + BantchSaveEntityNoCommit(notices); + }); + } + catch (Exception ex) + { + if (!string.IsNullOrEmpty(ex.StackTrace)) + throw new Exception("错误日志:[StackTrace]" + ex.StackTrace); + else + throw new Exception("【" + HttpContext.Request.Path + "】错误日志:[Message]" + ex.Message); + } + return true; + }); } } } diff --git a/APT.MicroApi/APT.SK.WebApi/Controllers/Api/CheckSetController.cs b/APT.MicroApi/APT.SK.WebApi/Controllers/Api/CheckSetController.cs index ec7edad..dea70f1 100644 --- a/APT.MicroApi/APT.SK.WebApi/Controllers/Api/CheckSetController.cs +++ b/APT.MicroApi/APT.SK.WebApi/Controllers/Api/CheckSetController.cs @@ -152,6 +152,10 @@ namespace APT.SK.WebApi.Controllers.Api } } } + else + { + throw new Exception("当前组织没有安全员也没有负责人,请先到用户列表维护!"); + } } } var record = this.GetEntity(t => t.ID != entity.ID && t.PRODUCTION_UNIT_ID == entity.PRODUCTION_UNIT_ID && t.CHECK_TYPE == entity.CHECK_TYPE && t.CHECK_TYPE_ID == entity.CHECK_TYPE_ID && t.CHECK_CYCLE == entity.CHECK_CYCLE && t.DEPARTMENT_ID == entity.DEPARTMENT_ID && t.POST_ID == entity.POST_ID); @@ -208,7 +212,7 @@ namespace APT.SK.WebApi.Controllers.Api } } //同步到企业库 - var checkUserIds = checkUsers.Select(t => t.USER_ID).Distinct().ToList(); + var checkUserIds = checkUsers?.Select(t => t.USER_ID).Distinct().ToList(); var areaIds = details.Select(t => t.AREA_ID).Distinct().ToList(); var riskNames = details.Select(t => t.RISK_NAME).Distinct().ToList(); var measures = details.Select(t => t.MEASURES_NAME).Distinct().ToList(); diff --git a/APT.MicroApi/APT.SK.WebApi/Controllers/Api/EnterpriseLibraryController.cs b/APT.MicroApi/APT.SK.WebApi/Controllers/Api/EnterpriseLibraryController.cs index fac028a..b8eff95 100644 --- a/APT.MicroApi/APT.SK.WebApi/Controllers/Api/EnterpriseLibraryController.cs +++ b/APT.MicroApi/APT.SK.WebApi/Controllers/Api/EnterpriseLibraryController.cs @@ -1,338 +1,338 @@ -using APT.BaseData.Domain.ApiModel; -using APT.BaseData.Domain.Entities.FM; -using APT.BaseData.Domain.Enums; -using APT.Infrastructure.Core; -using APT.MS.Domain.Entities.SC.SC; -using APT.MS.Domain.Entities.SC; -using APT.MS.Domain.Entities.SK; -using APT.MS.Domain.Enums; -using APT.Utility; -using Microsoft.AspNetCore.Mvc; -using System.Data; -using APT.MS.Domain.Entities.HM; -using System.Linq.Expressions; -using APT.MS.Domain.Enums.SK; -using APT.BaseData.Services.Services.FM; -using InfluxData.Net.InfluxDb.Models.Responses; -using APT.BaseData.Domain.IServices.FM; -using APT.BaseData.Domain.IServices.BS; -using APT.BaseData.Domain.IServices; -using APT.BaseData.Services.DomainServices; -using APT.BaseData.Services.Sys; -using NPOI.SS.Formula.Functions; -using APT.MS.Domain.Entities.FO; -using System.Linq; -using Castle.Core.Internal; -using System.Collections.Generic; -using System; -using System.IO; -using Org.BouncyCastle.Utilities; -using Microsoft.Extensions.Logging; -using APT.BaseData.Domain.Enums.PF; -using APT.MS.Data.Mapping; -using Microsoft.CodeAnalysis.CSharp.Syntax; -using log4net.Core; -using System.Reflection.Metadata; -using APT.MS.Domain.Entities.PF; -using Google.Protobuf.Collections; -using Microsoft.Extensions.Hosting; - -namespace APT.SK.WebApi.Controllers.Api -{ - /// - /// 检查清单 - /// - public class CheckListDto - { - public string MineType { get; set; } - - public string CheckType { get; set; } - public string CheckCycle { get; set; } - public string CheckLevel { get; set; } - - public List posts { get; set; } - - public List details { get; set; } - } - public class CheckListPost - { - public string CheckDepart { get; set; } - public string CheckPost { get; set; } - } - public class CheckListDetail - { - public string RISK_NAME { get; set; } - public Guid? RISK_AREA_ID { get; set; } - - public string RISK_AREA_NAME { get; set; } - public Guid? CHECK_CONTENTS_ID { get; set; } - - public string CHECK_CONTENTS_NAME { get; set; } - - public string CHECKPROOF { get; set; } - - public string CHECKSTANDARD { get; set; } - } - - public class CheckListNew - { - public string MineType { get; set; } +using APT.BaseData.Domain.ApiModel; +using APT.BaseData.Domain.Entities.FM; +using APT.BaseData.Domain.Enums; +using APT.Infrastructure.Core; +using APT.MS.Domain.Entities.SC.SC; +using APT.MS.Domain.Entities.SC; +using APT.MS.Domain.Entities.SK; +using APT.MS.Domain.Enums; +using APT.Utility; +using Microsoft.AspNetCore.Mvc; +using System.Data; +using APT.MS.Domain.Entities.HM; +using System.Linq.Expressions; +using APT.MS.Domain.Enums.SK; +using APT.BaseData.Services.Services.FM; +using InfluxData.Net.InfluxDb.Models.Responses; +using APT.BaseData.Domain.IServices.FM; +using APT.BaseData.Domain.IServices.BS; +using APT.BaseData.Domain.IServices; +using APT.BaseData.Services.DomainServices; +using APT.BaseData.Services.Sys; +using NPOI.SS.Formula.Functions; +using APT.MS.Domain.Entities.FO; +using System.Linq; +using Castle.Core.Internal; +using System.Collections.Generic; +using System; +using System.IO; +using Org.BouncyCastle.Utilities; +using Microsoft.Extensions.Logging; +using APT.BaseData.Domain.Enums.PF; +using APT.MS.Data.Mapping; +using Microsoft.CodeAnalysis.CSharp.Syntax; +using log4net.Core; +using System.Reflection.Metadata; +using APT.MS.Domain.Entities.PF; +using Google.Protobuf.Collections; +using Microsoft.Extensions.Hosting; + +namespace APT.SK.WebApi.Controllers.Api +{ + /// + /// 检查清单 + /// + public class CheckListDto + { + public string MineType { get; set; } + + public string CheckType { get; set; } + public string CheckCycle { get; set; } + public string CheckLevel { get; set; } + + public List posts { get; set; } + + public List details { get; set; } + } + public class CheckListPost + { + public string CheckDepart { get; set; } + public string CheckPost { get; set; } + } + public class CheckListDetail + { + public string RISK_NAME { get; set; } + public Guid? RISK_AREA_ID { get; set; } + + public string RISK_AREA_NAME { get; set; } + public Guid? CHECK_CONTENTS_ID { get; set; } + + public string CHECK_CONTENTS_NAME { get; set; } + + public string CHECKPROOF { get; set; } + + public string CHECKSTANDARD { get; set; } + } + + public class CheckListNew + { + public string MineType { get; set; } public Guid? PRODUCTION_UNIT_ID { get; set; } - public Guid? CHECK_TYPE_ID { get; set; } - public string CheckType { get; set; } - public string CheckCycle { get; set; } - public string CheckLevel { get; set; } - public int Num { get; set; } - public string CheckDepart { get; set; } - public string CheckPost { get; set; } - public List details { get; set; } - } - /// - /// 企业库 - /// - [Route("api/SK/SKEnterpriseLibrary")] - public partial class EnterpriseLibraryController : AuthorizeApiController - { - IFMDepartmentService DepartmentService { get; set; } - public EnterpriseLibraryController(IFMDepartmentService departmentService) - { - DepartmentService = departmentService; - } - /// - /// 保存 - /// - /// - /// - [HttpPost, Route("FullUpdate")] - public JsonActionResult FullUpdate([FromBody] T_SK_ENTERPRISE_LIBRARY entity) - { - return SafeExecute(() => - { - var details = entity.Nav_Details; - entity.Nav_Details = null; + public Guid? CHECK_TYPE_ID { get; set; } + public string CheckType { get; set; } + public string CheckCycle { get; set; } + public string CheckLevel { get; set; } + public int Num { get; set; } + public string CheckDepart { get; set; } + public string CheckPost { get; set; } + public List details { get; set; } + } + /// + /// 企业库 + /// + [Route("api/SK/SKEnterpriseLibrary")] + public partial class EnterpriseLibraryController : AuthorizeApiController + { + IFMDepartmentService DepartmentService { get; set; } + public EnterpriseLibraryController(IFMDepartmentService departmentService) + { + DepartmentService = departmentService; + } + /// + /// 保存 + /// + /// + /// + [HttpPost, Route("FullUpdate")] + public JsonActionResult FullUpdate([FromBody] T_SK_ENTERPRISE_LIBRARY entity) + { + return SafeExecute(() => + { + var details = entity.Nav_Details; + entity.Nav_Details = null; if (details != null && details.Any()) { details = details.Where(t => !t.IS_DELETED).ToList(); - } - var departs = entity.Nav_Departs; + } + var departs = entity.Nav_Departs; entity.Nav_Departs = null; if (departs != null && departs.Any()) { departs = departs.Where(t => !t.IS_DELETED).ToList(); - } - var posts = entity.Nav_Posts; + } + var posts = entity.Nav_Posts; entity.Nav_Posts = null; if (posts != null && posts.Any()) { posts = posts.Where(t => !t.IS_DELETED).ToList(); - } - List libraryDepartIds = new List(); - List libraryPostIds = new List(); - List libraryPostDetailIds = new List(); - List detailIds = new List(); - List contentIds = new List(); - List departIds = new List(); - List postIds = new List(); - List hiddenIds = new List(); + } + List libraryDepartIds = new List(); + List libraryPostIds = new List(); + List libraryPostDetailIds = new List(); + List detailIds = new List(); + List contentIds = new List(); + List departIds = new List(); + List postIds = new List(); + List hiddenIds = new List(); List basicIds = new List(); - List checkUserIds = new List(); - List libraryDepart = new List(); - List libraryPost = new List(); - List libraryPostList = new List(); - List libraryDetail = new List(); - List contentList = new List(); - List departList = new List(); - List postList = new List(); - List hiddenList = new List(); + List checkUserIds = new List(); + List libraryDepart = new List(); + List libraryPost = new List(); + List libraryPostList = new List(); + List libraryDetail = new List(); + List contentList = new List(); + List departList = new List(); + List postList = new List(); + List hiddenList = new List(); List basicList = new List(); - List checkUserList = new List(); - var departments = this.GetEntities(t => t.ENABLE_STATUS == 0, new BaseFilter(entity.ORG_ID), "Nav_User").ToList(); - if (departs != null && departs.Any()) - { - libraryDepartIds = this.GetEntities(t => t.ENTERPRISE_LIBRARY_ID == entity.ID, new BaseFilter(entity.ORG_ID)).Select(t => t.ID).ToList(); - foreach (var item in departs.Where(t => !t.IS_DELETED).ToList()) - { - var approve = departments.FirstOrDefault(t => t.ID == item.DEPARTMENT_ID); - T_SK_ENTERPRISE_LIBRARY_DEPART de = new T_SK_ENTERPRISE_LIBRARY_DEPART(); - de.ID = Guid.NewGuid(); - de.ORG_ID = entity.ORG_ID; - de.ENTERPRISE_LIBRARY_ID = entity.ID; - de.DEPARTMENT_TYPE = item.DEPARTMENT_TYPE; - de.USER_ID = item.USER_ID; - de.DEPARTMENT_ID = item.DEPARTMENT_ID; - de.USER_ID = approve?.Nav_User?.ID; - de.APPROVE_ROLE_ID = approve?.Nav_User?.APPROVE_ROLE_ID; - libraryDepart.Add(de); - } - //var departTemp= departs.Where(t=>!t.IS_DELETED).Select(t=>t.DEPARTMENT_TYPE).Distinct().ToList(); - //if (departTemp.Any()) - //{ - // var departType = string.Join("_", departTemp); - // entity.DEPARTMENT_TYPE = "_" + departType + "_"; - //} - } - if (posts != null && posts.Any()) - { - libraryPostIds = this.GetEntities(t => t.ENTERPRISE_LIBRARY_ID == entity.ID, new BaseFilter(entity.ORG_ID)).Select(t => t.ID).ToList(); - libraryPostDetailIds = this.GetEntities(t => libraryPostIds.Contains(t.ENTERPRISE_LIBRARY_POST_ID), new BaseFilter(entity.ORG_ID)).Select(t => t.ID).ToList(); - foreach (var item in posts.Where(t => !t.IS_DELETED).ToList()) - { - T_SK_ENTERPRISE_LIBRARY_POST po = new T_SK_ENTERPRISE_LIBRARY_POST(); - po.ID = Guid.NewGuid(); - po.ORG_ID = entity.ORG_ID; - po.ENTERPRISE_LIBRARY_ID = entity.ID; - po.DEPARTMENT_ID = item.DEPARTMENT_ID; - libraryPost.Add(po); - if (item.Nav_PostDetails != null && item.Nav_PostDetails.Any()) - { - foreach (var item2 in item.Nav_PostDetails.Where(t => !t.IS_DELETED).ToList()) - { - T_SK_ENTERPRISE_LIBRARY_POST_DETAIL detai = new T_SK_ENTERPRISE_LIBRARY_POST_DETAIL(); - detai.ID = Guid.NewGuid(); - detai.ORG_ID = entity.ORG_ID; - detai.ENTERPRISE_LIBRARY_POST_ID = po.ID; - detai.POST_ID = item2.POST_ID; - libraryPostList.Add(detai); - } - } - } - } - if (details != null && details.Any()) + List checkUserList = new List(); + var departments = this.GetEntities(t => t.ENABLE_STATUS == 0, new BaseFilter(entity.ORG_ID), "Nav_User").ToList(); + if (departs != null && departs.Any()) + { + libraryDepartIds = this.GetEntities(t => t.ENTERPRISE_LIBRARY_ID == entity.ID, new BaseFilter(entity.ORG_ID)).Select(t => t.ID).ToList(); + foreach (var item in departs.Where(t => !t.IS_DELETED).ToList()) + { + var approve = departments.FirstOrDefault(t => t.ID == item.DEPARTMENT_ID); + T_SK_ENTERPRISE_LIBRARY_DEPART de = new T_SK_ENTERPRISE_LIBRARY_DEPART(); + de.ID = Guid.NewGuid(); + de.ORG_ID = entity.ORG_ID; + de.ENTERPRISE_LIBRARY_ID = entity.ID; + de.DEPARTMENT_TYPE = item.DEPARTMENT_TYPE; + de.USER_ID = item.USER_ID; + de.DEPARTMENT_ID = item.DEPARTMENT_ID; + de.USER_ID = approve?.Nav_User?.ID; + de.APPROVE_ROLE_ID = approve?.Nav_User?.APPROVE_ROLE_ID; + libraryDepart.Add(de); + } + //var departTemp= departs.Where(t=>!t.IS_DELETED).Select(t=>t.DEPARTMENT_TYPE).Distinct().ToList(); + //if (departTemp.Any()) + //{ + // var departType = string.Join("_", departTemp); + // entity.DEPARTMENT_TYPE = "_" + departType + "_"; + //} + } + if (posts != null && posts.Any()) + { + libraryPostIds = this.GetEntities(t => t.ENTERPRISE_LIBRARY_ID == entity.ID, new BaseFilter(entity.ORG_ID)).Select(t => t.ID).ToList(); + libraryPostDetailIds = this.GetEntities(t => libraryPostIds.Contains(t.ENTERPRISE_LIBRARY_POST_ID), new BaseFilter(entity.ORG_ID)).Select(t => t.ID).ToList(); + foreach (var item in posts.Where(t => !t.IS_DELETED).ToList()) + { + T_SK_ENTERPRISE_LIBRARY_POST po = new T_SK_ENTERPRISE_LIBRARY_POST(); + po.ID = Guid.NewGuid(); + po.ORG_ID = entity.ORG_ID; + po.ENTERPRISE_LIBRARY_ID = entity.ID; + po.DEPARTMENT_ID = item.DEPARTMENT_ID; + libraryPost.Add(po); + if (item.Nav_PostDetails != null && item.Nav_PostDetails.Any()) + { + foreach (var item2 in item.Nav_PostDetails.Where(t => !t.IS_DELETED).ToList()) + { + T_SK_ENTERPRISE_LIBRARY_POST_DETAIL detai = new T_SK_ENTERPRISE_LIBRARY_POST_DETAIL(); + detai.ID = Guid.NewGuid(); + detai.ORG_ID = entity.ORG_ID; + detai.ENTERPRISE_LIBRARY_POST_ID = po.ID; + detai.POST_ID = item2.POST_ID; + libraryPostList.Add(detai); + } + } + } + } + if (details != null && details.Any()) { var numIsNull = details.FirstOrDefault(t => t.NUM == null || t.NUM == 0); if (numIsNull != null) { throw new Exception("管控措施的顺序必须填写"); - } - detailIds = this.GetEntities(t => t.ENTERPRISE_LIBRARY_ID == entity.ID, new BaseFilter(entity.ORG_ID)).Select(t => t.ID).ToList(); - contentIds = this.GetEntities(t => detailIds.Contains(t.ENTERPRISE_LIBRARY_DETAIL_ID), new BaseFilter(entity.ORG_ID)).Select(t => t.ID).ToList(); - basicIds = this.GetEntities(t => contentIds.Contains(t.ENTERPRISE_LIBRARY_DETAIL_CONTENT_ID), new BaseFilter(entity.ORG_ID)).Select(t => t.ID).ToList(); - hiddenIds = this.GetEntities(t => contentIds.Contains(t.ENTERPRISE_LIBRARY_DETAIL_CONTENT_ID), new BaseFilter(entity.ORG_ID)).Select(t => t.ID).ToList(); - departIds = this.GetEntities(t => contentIds.Contains(t.ENTERPRISE_LIBRARY_DETAIL_CONTENT_ID), new BaseFilter(entity.ORG_ID)).Select(t => t.ID).ToList(); + } + detailIds = this.GetEntities(t => t.ENTERPRISE_LIBRARY_ID == entity.ID, new BaseFilter(entity.ORG_ID)).Select(t => t.ID).ToList(); + contentIds = this.GetEntities(t => detailIds.Contains(t.ENTERPRISE_LIBRARY_DETAIL_ID), new BaseFilter(entity.ORG_ID)).Select(t => t.ID).ToList(); + basicIds = this.GetEntities(t => contentIds.Contains(t.ENTERPRISE_LIBRARY_DETAIL_CONTENT_ID), new BaseFilter(entity.ORG_ID)).Select(t => t.ID).ToList(); + hiddenIds = this.GetEntities(t => contentIds.Contains(t.ENTERPRISE_LIBRARY_DETAIL_CONTENT_ID), new BaseFilter(entity.ORG_ID)).Select(t => t.ID).ToList(); + departIds = this.GetEntities(t => contentIds.Contains(t.ENTERPRISE_LIBRARY_DETAIL_CONTENT_ID), new BaseFilter(entity.ORG_ID)).Select(t => t.ID).ToList(); postIds = this.GetEntities(t => departIds.Contains(t.ENTERPRISE_LIBRARY_DETAIL_CONTENT_DEPART_ID), new BaseFilter(entity.ORG_ID)).Select(t => t.ID).ToList(); - checkUserIds = this.GetEntities(t => departIds.Contains(t.ENTERPRISE_LIBRARY_DETAIL_CONTENT_DEPART_ID), new BaseFilter(entity.ORG_ID)).Select(t => t.ID).ToList(); - foreach (var item in details.Where(t => !t.IS_DELETED).ToList()) - { - T_SK_ENTERPRISE_LIBRARY_DETAIL de = new T_SK_ENTERPRISE_LIBRARY_DETAIL(); - de.ID = Guid.NewGuid(); - de.ORG_ID = entity.ORG_ID; - de.ENTERPRISE_LIBRARY_ID = entity.ID; - de.MEASURES_NAME = item.MEASURES_NAME; - de.EMERGENCY = item.EMERGENCY; - de.NUM = (item.NUM == 0 || item.NUM == null) ? item.ROW_NO : item.NUM; - libraryDetail.Add(de); - if (item.Nav_DetailContents != null && item.Nav_DetailContents.Any()) - { - foreach (var item2 in item.Nav_DetailContents.Where(t => !t.IS_DELETED).ToList()) - { - T_SK_ENTERPRISE_LIBRARY_DETAIL_CONTENT con = new T_SK_ENTERPRISE_LIBRARY_DETAIL_CONTENT(); - con.ID = Guid.NewGuid(); - con.ORG_ID = entity.ORG_ID; - con.ENTERPRISE_LIBRARY_DETAIL_ID = de.ID; - con.CHECK_CONTENTS_ID = item2.CHECK_CONTENTS_ID; - con.CHECK_CONTENT = item2.CHECK_CONTENT; - con.CHECK_BASIC = item2.CHECK_BASIC; - con.CHECK_STANDARD = item2.CHECK_STANDARD; - con.NUM = (item2.NUM == 0 || item2.NUM == null) ? item2.ROW_NO : item2.NUM; - contentList.Add(con); - if (item2.Nav_DetailHiddens != null && item2.Nav_DetailHiddens.Any()) - { - foreach (var item3 in item2.Nav_DetailHiddens.Where(t => !t.IS_DELETED).ToList()) - { - T_SK_ENTERPRISE_LIBRARY_DETAIL_CONTENT_HIDDEN hi = new T_SK_ENTERPRISE_LIBRARY_DETAIL_CONTENT_HIDDEN(); - hi.ID = Guid.NewGuid(); - hi.ORG_ID = entity.ORG_ID; - hi.ENTERPRISE_LIBRARY_DETAIL_CONTENT_ID = con.ID; - hi.CHECK_QUESTION_ID = item3.CHECK_QUESTION_ID; - hi.HIDDEN_DESCRIPTION = item3.HIDDEN_DESCRIPTION; - hi.HIDDEN_LEVEL = item3.HIDDEN_LEVEL; - hi.RECTIFICATION_MEASURES = item3.RECTIFICATION_MEASURES; - hi.NUM =(item3.NUM ==0 || item3.NUM == null)?item3.ROW_NO:item3.NUM; - hiddenList.Add(hi); - } - } - if (item2.Nav_DetailBasics != null && item2.Nav_DetailBasics.Any()) - { - foreach (var item3 in item2.Nav_DetailBasics.Where(t => !t.IS_DELETED).ToList()) - { - T_SK_ENTERPRISE_LIBRARY_DETAIL_CONTENT_BASIC ba = new T_SK_ENTERPRISE_LIBRARY_DETAIL_CONTENT_BASIC(); - ba.ID = Guid.NewGuid(); - ba.ORG_ID = entity.ORG_ID; - ba.ENTERPRISE_LIBRARY_DETAIL_CONTENT_ID = con.ID; - ba.LAW_ID = item3.LAW_ID; - basicList.Add(ba); - } + checkUserIds = this.GetEntities(t => departIds.Contains(t.ENTERPRISE_LIBRARY_DETAIL_CONTENT_DEPART_ID), new BaseFilter(entity.ORG_ID)).Select(t => t.ID).ToList(); + foreach (var item in details.Where(t => !t.IS_DELETED).ToList()) + { + T_SK_ENTERPRISE_LIBRARY_DETAIL de = new T_SK_ENTERPRISE_LIBRARY_DETAIL(); + de.ID = Guid.NewGuid(); + de.ORG_ID = entity.ORG_ID; + de.ENTERPRISE_LIBRARY_ID = entity.ID; + de.MEASURES_NAME = item.MEASURES_NAME; + de.EMERGENCY = item.EMERGENCY; + de.NUM = (item.NUM == 0 || item.NUM == null) ? item.ROW_NO : item.NUM; + libraryDetail.Add(de); + if (item.Nav_DetailContents != null && item.Nav_DetailContents.Any()) + { + foreach (var item2 in item.Nav_DetailContents.Where(t => !t.IS_DELETED).ToList()) + { + T_SK_ENTERPRISE_LIBRARY_DETAIL_CONTENT con = new T_SK_ENTERPRISE_LIBRARY_DETAIL_CONTENT(); + con.ID = Guid.NewGuid(); + con.ORG_ID = entity.ORG_ID; + con.ENTERPRISE_LIBRARY_DETAIL_ID = de.ID; + con.CHECK_CONTENTS_ID = item2.CHECK_CONTENTS_ID; + con.CHECK_CONTENT = item2.CHECK_CONTENT; + con.CHECK_BASIC = item2.CHECK_BASIC; + con.CHECK_STANDARD = item2.CHECK_STANDARD; + con.NUM = (item2.NUM == 0 || item2.NUM == null) ? item2.ROW_NO : item2.NUM; + contentList.Add(con); + if (item2.Nav_DetailHiddens != null && item2.Nav_DetailHiddens.Any()) + { + foreach (var item3 in item2.Nav_DetailHiddens.Where(t => !t.IS_DELETED).ToList()) + { + T_SK_ENTERPRISE_LIBRARY_DETAIL_CONTENT_HIDDEN hi = new T_SK_ENTERPRISE_LIBRARY_DETAIL_CONTENT_HIDDEN(); + hi.ID = Guid.NewGuid(); + hi.ORG_ID = entity.ORG_ID; + hi.ENTERPRISE_LIBRARY_DETAIL_CONTENT_ID = con.ID; + hi.CHECK_QUESTION_ID = item3.CHECK_QUESTION_ID; + hi.HIDDEN_DESCRIPTION = item3.HIDDEN_DESCRIPTION; + hi.HIDDEN_LEVEL = item3.HIDDEN_LEVEL; + hi.RECTIFICATION_MEASURES = item3.RECTIFICATION_MEASURES; + hi.NUM =(item3.NUM ==0 || item3.NUM == null)?item3.ROW_NO:item3.NUM; + hiddenList.Add(hi); + } + } + if (item2.Nav_DetailBasics != null && item2.Nav_DetailBasics.Any()) + { + foreach (var item3 in item2.Nav_DetailBasics.Where(t => !t.IS_DELETED).ToList()) + { + T_SK_ENTERPRISE_LIBRARY_DETAIL_CONTENT_BASIC ba = new T_SK_ENTERPRISE_LIBRARY_DETAIL_CONTENT_BASIC(); + ba.ID = Guid.NewGuid(); + ba.ORG_ID = entity.ORG_ID; + ba.ENTERPRISE_LIBRARY_DETAIL_CONTENT_ID = con.ID; + ba.LAW_ID = item3.LAW_ID; + basicList.Add(ba); + } } - if (item2.Nav_DetailDeparts != null && item2.Nav_DetailDeparts.Any()) - { - foreach (var item4 in item2.Nav_DetailDeparts.Where(t => !t.IS_DELETED).ToList()) - { - T_SK_ENTERPRISE_LIBRARY_DETAIL_CONTENT_DEPART pt = new T_SK_ENTERPRISE_LIBRARY_DETAIL_CONTENT_DEPART(); - pt.ID = Guid.NewGuid(); - pt.ORG_ID = entity.ORG_ID; - pt.ENTERPRISE_LIBRARY_DETAIL_CONTENT_ID = con.ID; - pt.CHECK_TYPE = item4.CHECK_TYPE; - pt.DEPARTMENT_ID = item4.DEPARTMENT_ID; - pt.CHECK_TYPE_ID = item4.CHECK_TYPE_ID; - pt.CHECK_CYCLE = item4.CHECK_CYCLE; - pt.NUM = item4.NUM; - departList.Add(pt); - if (item4.Nav_DetailPosts != null && item4.Nav_DetailPosts.Any()) - { - foreach (var item5 in item4.Nav_DetailPosts.Where(t => !t.IS_DELETED).ToList()) - { - T_SK_ENTERPRISE_LIBRARY_DETAIL_CONTENT_POST po = new T_SK_ENTERPRISE_LIBRARY_DETAIL_CONTENT_POST(); - po.ID = Guid.NewGuid(); - po.ORG_ID = entity.ORG_ID; - po.ENTERPRISE_LIBRARY_DETAIL_CONTENT_DEPART_ID = pt.ID; - po.POST_ID = item5.POST_ID; - postList.Add(po); - } + if (item2.Nav_DetailDeparts != null && item2.Nav_DetailDeparts.Any()) + { + foreach (var item4 in item2.Nav_DetailDeparts.Where(t => !t.IS_DELETED).ToList()) + { + T_SK_ENTERPRISE_LIBRARY_DETAIL_CONTENT_DEPART pt = new T_SK_ENTERPRISE_LIBRARY_DETAIL_CONTENT_DEPART(); + pt.ID = Guid.NewGuid(); + pt.ORG_ID = entity.ORG_ID; + pt.ENTERPRISE_LIBRARY_DETAIL_CONTENT_ID = con.ID; + pt.CHECK_TYPE = item4.CHECK_TYPE; + pt.DEPARTMENT_ID = item4.DEPARTMENT_ID; + pt.CHECK_TYPE_ID = item4.CHECK_TYPE_ID; + pt.CHECK_CYCLE = item4.CHECK_CYCLE; + pt.NUM = item4.NUM; + departList.Add(pt); + if (item4.Nav_DetailPosts != null && item4.Nav_DetailPosts.Any()) + { + foreach (var item5 in item4.Nav_DetailPosts.Where(t => !t.IS_DELETED).ToList()) + { + T_SK_ENTERPRISE_LIBRARY_DETAIL_CONTENT_POST po = new T_SK_ENTERPRISE_LIBRARY_DETAIL_CONTENT_POST(); + po.ID = Guid.NewGuid(); + po.ORG_ID = entity.ORG_ID; + po.ENTERPRISE_LIBRARY_DETAIL_CONTENT_DEPART_ID = pt.ID; + po.POST_ID = item5.POST_ID; + postList.Add(po); + } } - if (item4.Nav_DetailUsers != null && item4.Nav_DetailUsers.Any()) - { - foreach (var item5 in item4.Nav_DetailUsers.Where(t => !t.IS_DELETED).ToList()) - { - T_SK_ENTERPRISE_LIBRARY_DETAIL_CONTENT_USER po = new T_SK_ENTERPRISE_LIBRARY_DETAIL_CONTENT_USER(); - po.ID = Guid.NewGuid(); - po.ORG_ID = entity.ORG_ID; - po.ENTERPRISE_LIBRARY_DETAIL_CONTENT_DEPART_ID = pt.ID; - po.USER_ID = item5.USER_ID; - checkUserList.Add(po); - } + if (item4.Nav_DetailUsers != null && item4.Nav_DetailUsers.Any()) + { + foreach (var item5 in item4.Nav_DetailUsers.Where(t => !t.IS_DELETED).ToList()) + { + T_SK_ENTERPRISE_LIBRARY_DETAIL_CONTENT_USER po = new T_SK_ENTERPRISE_LIBRARY_DETAIL_CONTENT_USER(); + po.ID = Guid.NewGuid(); + po.ORG_ID = entity.ORG_ID; + po.ENTERPRISE_LIBRARY_DETAIL_CONTENT_DEPART_ID = pt.ID; + po.USER_ID = item5.USER_ID; + checkUserList.Add(po); + } } - } + } } - } + } } - } - } - var checkTypeId = departList.FirstOrDefault(t => t.CHECK_TYPE_ID == null); + } + } + var checkTypeId = departList.FirstOrDefault(t => t.CHECK_TYPE_ID == null); if (checkTypeId != null) { - throw new Exception("管控措施->检查内容下面存在检查类型为空的数据,请逐一检查维护"); - } - //辨识层级 - var postdepartIds = libraryPost.Select(t => t.DEPARTMENT_ID).Distinct().ToList(); - var identitylLevel = departments.Where(m => postdepartIds.Contains(m.ID)).Select(t => t.DEPARTMENT_TYPE).Distinct().ToList(); - if (identitylLevel != null && identitylLevel.Any()) - { - - } - else - { - throw new Exception("辨识岗位不能为空"); + throw new Exception("管控措施->检查内容下面存在检查类型为空的数据,请逐一检查维护"); + } + //辨识层级 + var postdepartIds = libraryPost.Select(t => t.DEPARTMENT_ID).Distinct().ToList(); + var identitylLevel = departments.Where(m => postdepartIds.Contains(m.ID)).Select(t => t.DEPARTMENT_TYPE).Distinct().ToList(); + if (identitylLevel != null && identitylLevel.Any()) + { + + } + else + { + throw new Exception("辨识岗位不能为空"); } //是否有虚拟组织 - var departVir = departments.FirstOrDefault(m => postdepartIds.Contains(m.ID)&& m.CATEGORY == FMCATEGORY.VIRTUAL); - //管控层级 - var controlLevel = libraryDepart.Select(t => t.DEPARTMENT_TYPE).Distinct().ToList(); - var count = controlLevel.Count(); - //检查层级 - var checkLevel = departList.Select(t => t.CHECK_TYPE).Distinct().ToList(); + var departVir = departments.FirstOrDefault(m => postdepartIds.Contains(m.ID)&& m.CATEGORY == FMCATEGORY.VIRTUAL); + //管控层级 + var controlLevel = libraryDepart.Select(t => t.DEPARTMENT_TYPE).Distinct().ToList(); + var count = controlLevel.Count(); + //检查层级 + var checkLevel = departList.Select(t => t.CHECK_TYPE).Distinct().ToList(); if (departVir == null) { if (entity.EVALUATE_LEVEL == SKEvaluateLevelEnum.重大风险) @@ -404,940 +404,940 @@ namespace APT.SK.WebApi.Controllers.Api } } - } + } } - if (controlLevel != null && controlLevel.Any()) - { - foreach (var level in controlLevel) - { - if (!checkLevel.Contains(level)) - { - throw new Exception("管控层级与检查层级不一致,请添加检查层级:" + level.GetDescription()); - } - } - } - else - { - throw new Exception("管控层级不能为空"); - } - if (checkLevel != null && checkLevel.Any()) - { - foreach (var level in checkLevel) - { - if (!controlLevel.Contains(level)) - { - throw new Exception("检查层级与管控层级不一致,请添加管控层级:" + level.GetDescription()); - } - } - } - else - { - throw new Exception("检查部门不能为空"); - } - //更新岗位清单表的检查内容 - //List setContentList = new List(); - //List setContentHiddenList = new List(); - //var checkType = this.GetEntity(t => t.NAME == "岗位排查"); - //if (checkType == null) - //{ - // throw new Exception("请到系统管理维护检查类型:岗位排查!"); - //} - //var sets = this.GetEntities(t =>t.CHECK_TYPE_ID == checkType.ID, new BaseFilter(entity.ORG_ID)).ToList(); - //var setIds = sets.Select(t=>t.ID).ToList(); - //var setContents = this.GetEntities(t => setIds.Contains(t.CHECK_SET_ID), new BaseFilter(entity.ORG_ID)).ToList(); - //if (postList.Any()) - //{ - // foreach (var item in postList) - // { - // var setFirst = sets.FirstOrDefault(t => t.POST_ID == item.POST_ID && t.CHECK_TYPE_ID == item.Nav_DetailDepart?.CHECK_TYPE_ID); - // if (setFirst != null) - // { - // var contentFirst = setContents.FirstOrDefault(t => t.CHECK_SET_ID == setFirst.ID && t.CHECK_CONTENTS_ID == item.Nav_DetailDepart?.Nav_DetailContent?.CHECK_CONTENTS_ID); - // if (contentFirst == null) - // { - // //添加检查内容 - // T_SK_CHECK_SET_CONTENTS con = new T_SK_CHECK_SET_CONTENTS(); - // con.ORG_ID = setFirst.ORG_ID; - // con.CHECK_CONTENTS_ID = item.Nav_DetailDepart?.Nav_DetailContent?.CHECK_CONTENTS_ID; - // con.CHECK_CONTENT = item.Nav_DetailDepart?.Nav_DetailContent?.CHECK_CONTENT; - // con.CHECK_SET_ID = setFirst.ID; - // setContentList.Add(con); - // if (item.Nav_DetailDepart!=null && item.Nav_DetailDepart.Nav_DetailContent != null && item.Nav_DetailDepart.Nav_DetailContent.Nav_DetailHiddens!=null &&item.Nav_DetailDepart.Nav_DetailContent.Nav_DetailHiddens.Any()) - // { - // foreach (var item2 in item.Nav_DetailDepart.Nav_DetailContent.Nav_DetailHiddens) - // { - // T_SK_CHECK_SET_CONTENTS_HIDDEN hid = new T_SK_CHECK_SET_CONTENTS_HIDDEN(); - // hid.ORG_ID = entity.ORG_ID; - // hid.CHECK_CONTENTS_SET_ID = con.ID; - // hid.CHECK_QUESTION_ID = item2.CHECK_QUESTION_ID; - // hid.RECTIFICATION_MEASURES = item2.RECTIFICATION_MEASURES; - // hid.HIDDEN_DESCRIPTION = item2.HIDDEN_DESCRIPTION; - // hid.HIDDEN_LEVEL = (SKHiddenLevel)item2.HIDDEN_LEVEL; - // setContentHiddenList.Add(hid); - // } - // } - // } - // } - // } - //} - //postList.ForEach(t => t.Nav_DetailDepart = null); - List libraryIds = new List(); - List basicDetailIds = new List(); - List basicContentIds = new List(); - List basicHiddenIds = new List(); - List basicBasicIds = new List(); - T_SK_BASIC_LIBRARY enterpriseLib = null; - List libraryDetailList = new List(); - List libraryContentList = new List(); - List libraryHiddenList = new List(); - List libraryBasicList = new List(); - //同步基础库 - if (entity.PUBLISH != null && entity.PUBLISH.Equals("SaveAndNotify")) - { - var library = this.GetEntity(t => t.MineType == entity.MineType && t.AREA_ID == entity.AREA_ID && t.TYPE_ID == entity.TYPE_ID && t.RISK_NAME == entity.RISK_NAME && t.RISK_DESCRIPTION == entity.RISK_DESCRIPTION); - if (library != null) - { - libraryIds.Add(library.ID); - basicDetailIds = this.GetEntities(t => t.BASIC_LIBRARY_ID == library.ID, new BaseFilter(entity.ORG_ID)).Select(t => t.ID).ToList(); - basicContentIds = this.GetEntities(t => detailIds.Contains(t.BASIC_LIBRARY_DETAIL_ID), new BaseFilter(entity.ORG_ID)).Select(t => t.ID).ToList(); - basicHiddenIds = this.GetEntities(t => contentIds.Contains(t.BASIC_LIBRARY_DETAIL_CONTENT_ID), new BaseFilter(entity.ORG_ID)).Select(t => t.ID).ToList(); - basicBasicIds = this.GetEntities(t => contentIds.Contains(t.BASIC_LIBRARY_DETAIL_CONTENT_ID), new BaseFilter(entity.ORG_ID)).Select(t => t.ID).ToList(); - } - enterpriseLib = new T_SK_BASIC_LIBRARY(); - enterpriseLib.ID = entity.ID; - enterpriseLib.ORG_ID = entity.ORG_ID; - enterpriseLib.ENABLE_STATUS = entity.ENABLE_STATUS; - enterpriseLib.MineType = entity.MineType; - enterpriseLib.MINE_NAME = entity.MINE_NAME; - enterpriseLib.AREA_ID = entity.AREA_ID; - enterpriseLib.AREA_NAME = entity.AREA_NAME; - enterpriseLib.RISK_NAME = entity.RISK_NAME; - enterpriseLib.RISK_DESCRIPTION = entity.RISK_DESCRIPTION; - enterpriseLib.TYPE_ID = entity.TYPE_ID; - enterpriseLib.TYPE_NAME = entity.TYPE_NAME; - enterpriseLib.EVALUATE_L = entity.EVALUATE_L; - enterpriseLib.EVALUATE_E = entity.EVALUATE_E; - enterpriseLib.EVALUATE_C = entity.EVALUATE_C; - enterpriseLib.EVALUATE_SCORE = entity.EVALUATE_SCORE; - enterpriseLib.EVALUATE_LEVEL = entity.EVALUATE_LEVEL; - enterpriseLib.DEPARTMENT_TYPE = entity.DEPARTMENT_TYPE; - enterpriseLib.NUM = entity.NUM; - enterpriseLib.EMERGENCY = entity.EMERGENCY; - if (details != null && details.Any()) - { - foreach (var item in details) - { - T_SK_BASIC_LIBRARY_DETAIL enterDetail = new T_SK_BASIC_LIBRARY_DETAIL(); - enterDetail.ORG_ID = item.ORG_ID; - enterDetail.ID = item.ID; - enterDetail.BASIC_LIBRARY_ID = item.ENTERPRISE_LIBRARY_ID; - enterDetail.MEASURES_NAME = item.MEASURES_NAME; - enterDetail.NUM = item.NUM; - enterDetail.EMERGENCY = item.EMERGENCY; - libraryDetailList.Add(enterDetail); - } - } - if (contentList != null && contentList.Any()) - { - foreach (var item in contentList) - { - T_SK_BASIC_LIBRARY_DETAIL_CONTENT enterDetail = new T_SK_BASIC_LIBRARY_DETAIL_CONTENT(); - enterDetail.ORG_ID = item.ORG_ID; - enterDetail.ID = item.ID; - enterDetail.BASIC_LIBRARY_DETAIL_ID = item.ENTERPRISE_LIBRARY_DETAIL_ID; - enterDetail.CHECK_CONTENT = item.CHECK_CONTENT; - enterDetail.NUM = item.NUM; - enterDetail.CHECK_CONTENTS_ID = item.CHECK_CONTENTS_ID; - enterDetail.CHECK_BASIC = item.CHECK_BASIC; - enterDetail.CHECK_STANDARD = item.CHECK_STANDARD; - enterDetail.CHECK_CONTENTS_ID = item.CHECK_CONTENTS_ID; - enterDetail.CHECK_BASIC = item.CHECK_BASIC; - libraryContentList.Add(enterDetail); - } - } - if (basicList != null && basicList.Any()) - { - foreach (var item in basicList) - { - T_SK_BASIC_LIBRARY_DETAIL_CONTENT_BASIC enterDetail = new T_SK_BASIC_LIBRARY_DETAIL_CONTENT_BASIC(); - enterDetail.ORG_ID = item.ORG_ID; - enterDetail.ID = item.ID; - enterDetail.BASIC_LIBRARY_DETAIL_CONTENT_ID = item.ENTERPRISE_LIBRARY_DETAIL_CONTENT_ID; - enterDetail.LAW_ID = item.LAW_ID; - libraryBasicList.Add(enterDetail); - } - } - if (hiddenList != null && hiddenList.Any()) - { - foreach (var item in hiddenList) - { - T_SK_BASIC_LIBRARY_DETAIL_CONTENT_HIDDEN enterDetail = new T_SK_BASIC_LIBRARY_DETAIL_CONTENT_HIDDEN(); - enterDetail.ORG_ID = item.ORG_ID; - enterDetail.ID = item.ID; - enterDetail.BASIC_LIBRARY_DETAIL_CONTENT_ID = item.ENTERPRISE_LIBRARY_DETAIL_CONTENT_ID; - enterDetail.RECTIFICATION_MEASURES = item.RECTIFICATION_MEASURES; - enterDetail.NUM = item.NUM; - enterDetail.CHECK_QUESTION_ID = item.CHECK_QUESTION_ID; - enterDetail.HIDDEN_DESCRIPTION = item.HIDDEN_DESCRIPTION; - enterDetail.HIDDEN_LEVEL = item.HIDDEN_LEVEL; - libraryHiddenList.Add(enterDetail); - } - } - } - this.UnifiedCommit(() => - { - if (hiddenIds != null && hiddenIds.Any()) - this.BantchDeleteEntityNoCommit(hiddenIds); - if (postIds != null && postIds.Any()) + if (controlLevel != null && controlLevel.Any()) + { + foreach (var level in controlLevel) + { + if (!checkLevel.Contains(level)) + { + throw new Exception("管控层级与检查层级不一致,请添加检查层级:" + level.GetDescription()); + } + } + } + else + { + throw new Exception("管控层级不能为空"); + } + if (checkLevel != null && checkLevel.Any()) + { + foreach (var level in checkLevel) + { + if (!controlLevel.Contains(level)) + { + throw new Exception("检查层级与管控层级不一致,请添加管控层级:" + level.GetDescription()); + } + } + } + else + { + throw new Exception("检查部门不能为空"); + } + //更新岗位清单表的检查内容 + //List setContentList = new List(); + //List setContentHiddenList = new List(); + //var checkType = this.GetEntity(t => t.NAME == "岗位排查"); + //if (checkType == null) + //{ + // throw new Exception("请到系统管理维护检查类型:岗位排查!"); + //} + //var sets = this.GetEntities(t =>t.CHECK_TYPE_ID == checkType.ID, new BaseFilter(entity.ORG_ID)).ToList(); + //var setIds = sets.Select(t=>t.ID).ToList(); + //var setContents = this.GetEntities(t => setIds.Contains(t.CHECK_SET_ID), new BaseFilter(entity.ORG_ID)).ToList(); + //if (postList.Any()) + //{ + // foreach (var item in postList) + // { + // var setFirst = sets.FirstOrDefault(t => t.POST_ID == item.POST_ID && t.CHECK_TYPE_ID == item.Nav_DetailDepart?.CHECK_TYPE_ID); + // if (setFirst != null) + // { + // var contentFirst = setContents.FirstOrDefault(t => t.CHECK_SET_ID == setFirst.ID && t.CHECK_CONTENTS_ID == item.Nav_DetailDepart?.Nav_DetailContent?.CHECK_CONTENTS_ID); + // if (contentFirst == null) + // { + // //添加检查内容 + // T_SK_CHECK_SET_CONTENTS con = new T_SK_CHECK_SET_CONTENTS(); + // con.ORG_ID = setFirst.ORG_ID; + // con.CHECK_CONTENTS_ID = item.Nav_DetailDepart?.Nav_DetailContent?.CHECK_CONTENTS_ID; + // con.CHECK_CONTENT = item.Nav_DetailDepart?.Nav_DetailContent?.CHECK_CONTENT; + // con.CHECK_SET_ID = setFirst.ID; + // setContentList.Add(con); + // if (item.Nav_DetailDepart!=null && item.Nav_DetailDepart.Nav_DetailContent != null && item.Nav_DetailDepart.Nav_DetailContent.Nav_DetailHiddens!=null &&item.Nav_DetailDepart.Nav_DetailContent.Nav_DetailHiddens.Any()) + // { + // foreach (var item2 in item.Nav_DetailDepart.Nav_DetailContent.Nav_DetailHiddens) + // { + // T_SK_CHECK_SET_CONTENTS_HIDDEN hid = new T_SK_CHECK_SET_CONTENTS_HIDDEN(); + // hid.ORG_ID = entity.ORG_ID; + // hid.CHECK_CONTENTS_SET_ID = con.ID; + // hid.CHECK_QUESTION_ID = item2.CHECK_QUESTION_ID; + // hid.RECTIFICATION_MEASURES = item2.RECTIFICATION_MEASURES; + // hid.HIDDEN_DESCRIPTION = item2.HIDDEN_DESCRIPTION; + // hid.HIDDEN_LEVEL = (SKHiddenLevel)item2.HIDDEN_LEVEL; + // setContentHiddenList.Add(hid); + // } + // } + // } + // } + // } + //} + //postList.ForEach(t => t.Nav_DetailDepart = null); + List libraryIds = new List(); + List basicDetailIds = new List(); + List basicContentIds = new List(); + List basicHiddenIds = new List(); + List basicBasicIds = new List(); + T_SK_BASIC_LIBRARY enterpriseLib = null; + List libraryDetailList = new List(); + List libraryContentList = new List(); + List libraryHiddenList = new List(); + List libraryBasicList = new List(); + //同步基础库 + if (entity.PUBLISH != null && entity.PUBLISH.Equals("SaveAndNotify")) + { + var library = this.GetEntity(t => t.MineType == entity.MineType && t.AREA_ID == entity.AREA_ID && t.TYPE_ID == entity.TYPE_ID && t.RISK_NAME == entity.RISK_NAME && t.RISK_DESCRIPTION == entity.RISK_DESCRIPTION); + if (library != null) + { + libraryIds.Add(library.ID); + basicDetailIds = this.GetEntities(t => t.BASIC_LIBRARY_ID == library.ID, new BaseFilter(entity.ORG_ID)).Select(t => t.ID).ToList(); + basicContentIds = this.GetEntities(t => detailIds.Contains(t.BASIC_LIBRARY_DETAIL_ID), new BaseFilter(entity.ORG_ID)).Select(t => t.ID).ToList(); + basicHiddenIds = this.GetEntities(t => contentIds.Contains(t.BASIC_LIBRARY_DETAIL_CONTENT_ID), new BaseFilter(entity.ORG_ID)).Select(t => t.ID).ToList(); + basicBasicIds = this.GetEntities(t => contentIds.Contains(t.BASIC_LIBRARY_DETAIL_CONTENT_ID), new BaseFilter(entity.ORG_ID)).Select(t => t.ID).ToList(); + } + enterpriseLib = new T_SK_BASIC_LIBRARY(); + enterpriseLib.ID = entity.ID; + enterpriseLib.ORG_ID = entity.ORG_ID; + enterpriseLib.ENABLE_STATUS = entity.ENABLE_STATUS; + enterpriseLib.MineType = entity.MineType; + enterpriseLib.MINE_NAME = entity.MINE_NAME; + enterpriseLib.AREA_ID = entity.AREA_ID; + enterpriseLib.AREA_NAME = entity.AREA_NAME; + enterpriseLib.RISK_NAME = entity.RISK_NAME; + enterpriseLib.RISK_DESCRIPTION = entity.RISK_DESCRIPTION; + enterpriseLib.TYPE_ID = entity.TYPE_ID; + enterpriseLib.TYPE_NAME = entity.TYPE_NAME; + enterpriseLib.EVALUATE_L = entity.EVALUATE_L; + enterpriseLib.EVALUATE_E = entity.EVALUATE_E; + enterpriseLib.EVALUATE_C = entity.EVALUATE_C; + enterpriseLib.EVALUATE_SCORE = entity.EVALUATE_SCORE; + enterpriseLib.EVALUATE_LEVEL = entity.EVALUATE_LEVEL; + enterpriseLib.DEPARTMENT_TYPE = entity.DEPARTMENT_TYPE; + enterpriseLib.NUM = entity.NUM; + enterpriseLib.EMERGENCY = entity.EMERGENCY; + if (details != null && details.Any()) + { + foreach (var item in details) + { + T_SK_BASIC_LIBRARY_DETAIL enterDetail = new T_SK_BASIC_LIBRARY_DETAIL(); + enterDetail.ORG_ID = item.ORG_ID; + enterDetail.ID = item.ID; + enterDetail.BASIC_LIBRARY_ID = item.ENTERPRISE_LIBRARY_ID; + enterDetail.MEASURES_NAME = item.MEASURES_NAME; + enterDetail.NUM = item.NUM; + enterDetail.EMERGENCY = item.EMERGENCY; + libraryDetailList.Add(enterDetail); + } + } + if (contentList != null && contentList.Any()) + { + foreach (var item in contentList) + { + T_SK_BASIC_LIBRARY_DETAIL_CONTENT enterDetail = new T_SK_BASIC_LIBRARY_DETAIL_CONTENT(); + enterDetail.ORG_ID = item.ORG_ID; + enterDetail.ID = item.ID; + enterDetail.BASIC_LIBRARY_DETAIL_ID = item.ENTERPRISE_LIBRARY_DETAIL_ID; + enterDetail.CHECK_CONTENT = item.CHECK_CONTENT; + enterDetail.NUM = item.NUM; + enterDetail.CHECK_CONTENTS_ID = item.CHECK_CONTENTS_ID; + enterDetail.CHECK_BASIC = item.CHECK_BASIC; + enterDetail.CHECK_STANDARD = item.CHECK_STANDARD; + enterDetail.CHECK_CONTENTS_ID = item.CHECK_CONTENTS_ID; + enterDetail.CHECK_BASIC = item.CHECK_BASIC; + libraryContentList.Add(enterDetail); + } + } + if (basicList != null && basicList.Any()) + { + foreach (var item in basicList) + { + T_SK_BASIC_LIBRARY_DETAIL_CONTENT_BASIC enterDetail = new T_SK_BASIC_LIBRARY_DETAIL_CONTENT_BASIC(); + enterDetail.ORG_ID = item.ORG_ID; + enterDetail.ID = item.ID; + enterDetail.BASIC_LIBRARY_DETAIL_CONTENT_ID = item.ENTERPRISE_LIBRARY_DETAIL_CONTENT_ID; + enterDetail.LAW_ID = item.LAW_ID; + libraryBasicList.Add(enterDetail); + } + } + if (hiddenList != null && hiddenList.Any()) + { + foreach (var item in hiddenList) + { + T_SK_BASIC_LIBRARY_DETAIL_CONTENT_HIDDEN enterDetail = new T_SK_BASIC_LIBRARY_DETAIL_CONTENT_HIDDEN(); + enterDetail.ORG_ID = item.ORG_ID; + enterDetail.ID = item.ID; + enterDetail.BASIC_LIBRARY_DETAIL_CONTENT_ID = item.ENTERPRISE_LIBRARY_DETAIL_CONTENT_ID; + enterDetail.RECTIFICATION_MEASURES = item.RECTIFICATION_MEASURES; + enterDetail.NUM = item.NUM; + enterDetail.CHECK_QUESTION_ID = item.CHECK_QUESTION_ID; + enterDetail.HIDDEN_DESCRIPTION = item.HIDDEN_DESCRIPTION; + enterDetail.HIDDEN_LEVEL = item.HIDDEN_LEVEL; + libraryHiddenList.Add(enterDetail); + } + } + } + this.UnifiedCommit(() => + { + if (hiddenIds != null && hiddenIds.Any()) + this.BantchDeleteEntityNoCommit(hiddenIds); + if (postIds != null && postIds.Any()) this.BantchDeleteEntityNoCommit(postIds); - if (checkUserIds != null && checkUserIds.Any()) - this.BantchDeleteEntityNoCommit(checkUserIds); - if (departIds != null && departIds.Any()) - this.BantchDeleteEntityNoCommit(departIds); - if (basicIds != null && basicIds.Any()) - this.BantchDeleteEntityNoCommit(basicIds); - if (contentIds != null && contentIds.Any()) - this.BantchDeleteEntityNoCommit(contentIds); - if (detailIds != null && detailIds.Any()) - this.BantchDeleteEntityNoCommit(detailIds); - if (libraryPostDetailIds != null && libraryPostDetailIds.Any()) - this.BantchDeleteEntityNoCommit(libraryPostDetailIds); - if (libraryPostIds != null && libraryPostIds.Any()) - this.BantchDeleteEntityNoCommit(libraryPostIds); - if (libraryDepartIds != null && libraryDepartIds.Any()) - this.BantchDeleteEntityNoCommit(libraryDepartIds); - if (entity != null) - UpdateEntityNoCommit(entity); - if (libraryDetail != null && libraryDetail.Any()) - BantchSaveEntityNoCommit(libraryDetail); - if (libraryDepart != null && libraryDepart.Any()) - BantchSaveEntityNoCommit(libraryDepart); - if (libraryPost != null && libraryPost.Any()) - BantchSaveEntityNoCommit(libraryPost); - if (libraryPostList != null && libraryPostList.Any()) - BantchSaveEntityNoCommit(libraryPostList); - if (contentList != null && contentList.Any()) - BantchSaveEntityNoCommit(contentList); - if (basicList != null && basicList.Any()) - BantchSaveEntityNoCommit(basicList); - if (hiddenList != null && hiddenList.Any()) - BantchSaveEntityNoCommit(hiddenList); - if (departList != null && departList.Any()) - BantchSaveEntityNoCommit(departList); - if (postList != null && postList.Any()) - BantchSaveEntityNoCommit(postList); - if (checkUserList != null && checkUserList.Any()) - BantchSaveEntityNoCommit(checkUserList); - if (basicHiddenIds != null && basicHiddenIds.Any()) - this.BantchDeleteEntityNoCommit(basicHiddenIds); - if (basicBasicIds != null && basicBasicIds.Any()) - this.BantchDeleteEntityNoCommit(basicBasicIds); - if (basicContentIds != null && basicContentIds.Any()) - this.BantchDeleteEntityNoCommit(basicContentIds); - if (basicDetailIds != null && basicDetailIds.Any()) - this.BantchDeleteEntityNoCommit(basicDetailIds); - if (libraryIds != null && libraryIds.Any()) - this.BantchDeleteEntityNoCommit(libraryIds); - if (enterpriseLib != null) - UpdateEntityNoCommit(enterpriseLib); - if (libraryDetailList != null && libraryDetailList.Any()) - BantchSaveEntityNoCommit(libraryDetailList); - if (libraryContentList != null && libraryContentList.Any()) - BantchSaveEntityNoCommit(libraryContentList); - if (libraryHiddenList != null && libraryHiddenList.Any()) - BantchSaveEntityNoCommit(libraryHiddenList); - if (libraryBasicList != null && libraryBasicList.Any()) - BantchSaveEntityNoCommit(libraryBasicList); - //if (setContentList != null && setContentList.Any()) - // BantchSaveEntityNoCommit(setContentList); - //if (setContentHiddenList != null && setContentHiddenList.Any()) - // BantchSaveEntityNoCommit(setContentHiddenList); - }); - return true; - }); - } - /// - /// 排序分页查询数据 - /// - /// 分页过滤实体 - /// - [HttpPost, Route("SKOrderPaged")] - public PagedActionResult SKOrderPaged([FromBody] KeywordPageFilter pageFilter) - { - var mintype = pageFilter.FilterGroup.Rules.FirstOrDefault(t => t.Field == "MineType"); - if (mintype != null && mintype.Value.ToString() == "0") - pageFilter.FilterGroup.Rules.Remove(mintype); - var nullRules = pageFilter.FilterGroup.Rules.Where(t => t.Value == null).ToList(); - if (nullRules.Any()) - { - nullRules.ForEach(t => pageFilter.FilterGroup.Rules.Remove(t)); - } - pageFilter.Include.Add("Nav_RiskName"); - pageFilter.Include.Add("Nav_Details"); + if (checkUserIds != null && checkUserIds.Any()) + this.BantchDeleteEntityNoCommit(checkUserIds); + if (departIds != null && departIds.Any()) + this.BantchDeleteEntityNoCommit(departIds); + if (basicIds != null && basicIds.Any()) + this.BantchDeleteEntityNoCommit(basicIds); + if (contentIds != null && contentIds.Any()) + this.BantchDeleteEntityNoCommit(contentIds); + if (detailIds != null && detailIds.Any()) + this.BantchDeleteEntityNoCommit(detailIds); + if (libraryPostDetailIds != null && libraryPostDetailIds.Any()) + this.BantchDeleteEntityNoCommit(libraryPostDetailIds); + if (libraryPostIds != null && libraryPostIds.Any()) + this.BantchDeleteEntityNoCommit(libraryPostIds); + if (libraryDepartIds != null && libraryDepartIds.Any()) + this.BantchDeleteEntityNoCommit(libraryDepartIds); + if (entity != null) + UpdateEntityNoCommit(entity); + if (libraryDetail != null && libraryDetail.Any()) + BantchSaveEntityNoCommit(libraryDetail); + if (libraryDepart != null && libraryDepart.Any()) + BantchSaveEntityNoCommit(libraryDepart); + if (libraryPost != null && libraryPost.Any()) + BantchSaveEntityNoCommit(libraryPost); + if (libraryPostList != null && libraryPostList.Any()) + BantchSaveEntityNoCommit(libraryPostList); + if (contentList != null && contentList.Any()) + BantchSaveEntityNoCommit(contentList); + if (basicList != null && basicList.Any()) + BantchSaveEntityNoCommit(basicList); + if (hiddenList != null && hiddenList.Any()) + BantchSaveEntityNoCommit(hiddenList); + if (departList != null && departList.Any()) + BantchSaveEntityNoCommit(departList); + if (postList != null && postList.Any()) + BantchSaveEntityNoCommit(postList); + if (checkUserList != null && checkUserList.Any()) + BantchSaveEntityNoCommit(checkUserList); + if (basicHiddenIds != null && basicHiddenIds.Any()) + this.BantchDeleteEntityNoCommit(basicHiddenIds); + if (basicBasicIds != null && basicBasicIds.Any()) + this.BantchDeleteEntityNoCommit(basicBasicIds); + if (basicContentIds != null && basicContentIds.Any()) + this.BantchDeleteEntityNoCommit(basicContentIds); + if (basicDetailIds != null && basicDetailIds.Any()) + this.BantchDeleteEntityNoCommit(basicDetailIds); + if (libraryIds != null && libraryIds.Any()) + this.BantchDeleteEntityNoCommit(libraryIds); + if (enterpriseLib != null) + UpdateEntityNoCommit(enterpriseLib); + if (libraryDetailList != null && libraryDetailList.Any()) + BantchSaveEntityNoCommit(libraryDetailList); + if (libraryContentList != null && libraryContentList.Any()) + BantchSaveEntityNoCommit(libraryContentList); + if (libraryHiddenList != null && libraryHiddenList.Any()) + BantchSaveEntityNoCommit(libraryHiddenList); + if (libraryBasicList != null && libraryBasicList.Any()) + BantchSaveEntityNoCommit(libraryBasicList); + //if (setContentList != null && setContentList.Any()) + // BantchSaveEntityNoCommit(setContentList); + //if (setContentHiddenList != null && setContentHiddenList.Any()) + // BantchSaveEntityNoCommit(setContentHiddenList); + }); + return true; + }); + } + /// + /// 排序分页查询数据 + /// + /// 分页过滤实体 + /// + [HttpPost, Route("SKOrderPaged")] + public PagedActionResult SKOrderPaged([FromBody] KeywordPageFilter pageFilter) + { + var mintype = pageFilter.FilterGroup.Rules.FirstOrDefault(t => t.Field == "MineType"); + if (mintype != null && mintype.Value.ToString() == "0") + pageFilter.FilterGroup.Rules.Remove(mintype); + var nullRules = pageFilter.FilterGroup.Rules.Where(t => t.Value == null).ToList(); + if (nullRules.Any()) + { + nullRules.ForEach(t => pageFilter.FilterGroup.Rules.Remove(t)); + } + pageFilter.Include.Add("Nav_RiskName"); + pageFilter.Include.Add("Nav_Details"); pageFilter.Include.Add("Nav_ProductionUnit"); pageFilter.SelectField.Add("Nav_ProductionUnit.NAME"); - pageFilter.SelectField.Add("Nav_Details.NUM"); - pageFilter.SelectField.Add("Nav_Details.MEASURES_NAME"); - var users = this.GetEntities(t => t.ENABLE_STATUS == 0, new BaseFilter(pageFilter.OrgId), "Nav_Person"); - var userPosts = this.GetEntities(t => !t.IS_DELETED, new BaseFilter(pageFilter.OrgId)); - var departs = this.GetEntities(t => t.ENABLE_STATUS == 0, new BaseFilter(pageFilter.OrgId)); - var result = WitOrderPaged(null, pageFilter); - if (result != null && result.Data != null) - { - if (result.Data != null && result.Data.Any()) - { - foreach (var item in result.Data) - { - //管控措施 + pageFilter.SelectField.Add("Nav_Details.NUM"); + pageFilter.SelectField.Add("Nav_Details.MEASURES_NAME"); + var users = this.GetEntities(t => t.ENABLE_STATUS == 0, new BaseFilter(pageFilter.OrgId), "Nav_Person"); + var userPosts = this.GetEntities(t => !t.IS_DELETED, new BaseFilter(pageFilter.OrgId)); + var departs = this.GetEntities(t => t.ENABLE_STATUS == 0, new BaseFilter(pageFilter.OrgId)); + var result = WitOrderPaged(null, pageFilter); + if (result != null && result.Data != null) + { + if (result.Data != null && result.Data.Any()) + { + foreach (var item in result.Data) + { + //管控措施 var detailStr = new List(); var detailNum = new List(); - if (item.Nav_Details != null && item.Nav_Details.Any()) - { - //var i = 1; - foreach (var item2 in item.Nav_Details.OrderBy(t => t.NUM)) - { - if (item2 != null && !string.IsNullOrEmpty(item2.MEASURES_NAME)) - { - detailStr.Add(item2.MEASURES_NAME); - detailNum.Add(item2.NUM); - var temp = item2.NUM + "、" + item2.MEASURES_NAME + Environment.NewLine; - item.MINE_NAME = item.MINE_NAME + temp; - item.MEASURE = item.MEASURE + temp; - //i++; - } - } - } - //if (detailStr.Any()) - //{ - // detailStr = detailStr.Distinct().ToList(); - // var i = 1; - // foreach (var item2 in detailStr) - // { - // if (!string.IsNullOrEmpty(item2)) - // { - // var temp = i + "、" + item2 + "\r\n"; - // item.MEASURE = item.MEASURE + temp; - // i++; - // } - // } - //} - //辨识层级、部门、岗位 - var levelStr = new List(); - var departIds = new List(); - var postIds = new List(); - if (item.Nav_Posts != null && item.Nav_Posts.Any()) - { - foreach (var item2 in item.Nav_Posts.OrderBy(t => t.DEPARTMENT_ID)) - { - if (item2 != null && item2.DEPARTMENT_ID != null) - { - var first = departs.FirstOrDefault(t => t.ID == item2.DEPARTMENT_ID); - var level = Enum.GetName(typeof(FMDepartmentType), first.DEPARTMENT_TYPE); - levelStr.Add(level); - departIds.Add(first.ID); - } - } - } - if (levelStr.Any()) - { - levelStr = levelStr.Distinct().ToList(); - var i = 1; - foreach (var item2 in levelStr) - { - if (!string.IsNullOrEmpty(item2)) - { - var type = 20; - switch (item2) - { - case "部门": - type = 10; - break; - case "车间": - type = 15; - break; - case "班组": - type = 20; - break; - case "公司": - type = 5; - break; - default: - type = 20; - break; - } - var temp = i + "、" + item2 + Environment.NewLine; - item.CHECKLEVEL = item.CHECKLEVEL + temp; - var departTemps = departs.Where(t => departIds.Contains(t.ID) && t.DEPARTMENT_TYPE == type).ToList(); - var departTempNames = departTemps.Select(m => m.NAME).Distinct().ToList(); - var temp2 = i + "、" + string.Join(",", departTempNames) + Environment.NewLine; - item.CHECKDEPT = item.CHECKDEPT + temp2; - var departTempIds = departTemps.Select(t => t.ID).ToList(); - var postTempIds = users.Where(t => departTempIds.Contains((Guid)t.DEPARTMENT_ID) && t.Nav_Person != null).Select(m => m.Nav_Person.POST_ID).Distinct().ToList(); - var postTemps = userPosts.Where(t => postTempIds.Contains(t.ID)).Select(m => m.NAME).Distinct().ToList(); - var temp3 = i + "、" + string.Join(",", postTemps) + Environment.NewLine; - item.CHECKPOST = item.CHECKPOST + temp3; - i++; - } - } - } - } - result.Data.OrderBy(t => t.EVALUATE_LEVEL); - } - result.Data.OrderBy(t => t.PRODUCTION_UNIT_ID).ThenBy(m => m.EVALUATE_LEVEL); - } - return result; - } - /// - /// 排序查询所有数据 - /// - /// 过滤实体 - /// - - [HttpPost, Route("SKOrderEntities")] - public JsonActionResult> SKOrderEntities([FromBody] KeywordFilter filter) - { - var result = WitOrderEntities(null, filter); - if (result != null && result.Data != null) - { - if (result.Data != null && result.Data.Any()) - { - foreach (var item in result.Data) - { - var detailStr = new List(); - var contentStr = new List(); - var basicStr = new List(); - var standardStr = new List(); - var scripStr = new List(); - var levelStr = new List(); - var measureStr = new List(); - var controlLevelStr = new List(); - var controlDeptStr = new List(); - var controlUserStr = new List(); - var checkLevelStr = new List(); - var checkTypeStr = new List(); - var checkDeptStr = new List(); - var checkPostStr = new List(); - if (item.Nav_Departs != null && item.Nav_Departs.Any()) - { - foreach (var item2 in item.Nav_Departs.OrderBy(t => t.DEPARTMENT_TYPE)) - { - if (item2 != null) - { - if (item2.Nav_Department != null && !string.IsNullOrEmpty(item2.Nav_Department.NAME)) - { - controlDeptStr.Add(item2.Nav_Department.NAME); - } - controlLevelStr.Add(item2.DEPARTMENT_TYPE.GetDescription()); - if (item2.Nav_User != null && !string.IsNullOrEmpty(item2.Nav_User.NAME)) - { - controlUserStr.Add(item2.Nav_User.NAME); - } - } - } - } - if (item.Nav_Details != null && item.Nav_Details.Any()) - { - foreach (var item2 in item.Nav_Details.OrderBy(t => t.NUM)) - { - if (item2 != null && !string.IsNullOrEmpty(item2.MEASURES_NAME)) - { + if (item.Nav_Details != null && item.Nav_Details.Any()) + { + //var i = 1; + foreach (var item2 in item.Nav_Details.OrderBy(t => t.NUM)) + { + if (item2 != null && !string.IsNullOrEmpty(item2.MEASURES_NAME)) + { detailStr.Add(item2.MEASURES_NAME); - var temp = item2.NUM + "、" + item2.MEASURES_NAME + Environment.NewLine; + detailNum.Add(item2.NUM); + var temp = item2.NUM + "、" + item2.MEASURES_NAME + Environment.NewLine; item.MINE_NAME = item.MINE_NAME + temp; - item.MEASURE = item.MEASURE + temp; - } - if (item2 != null && item2.Nav_DetailContents != null && item2.Nav_DetailContents.Any()) - { - foreach (var item3 in item2.Nav_DetailContents.OrderBy(t => t.NUM)) - { - if (item3 != null) - { - if (item3.Nav_Contents != null && !string.IsNullOrEmpty(item3.Nav_Contents.CHECKCONTENT)) - { - contentStr.Add(item3.Nav_Contents.CHECKCONTENT); - } - if (!string.IsNullOrEmpty(item3.CHECK_STANDARD)) - { - standardStr.Add(item3.CHECK_STANDARD); - } - if (item3.Nav_DetailBasics != null && item3.Nav_DetailBasics.Any()) - { - foreach (var item4 in item3.Nav_DetailBasics) - { - if (item4 != null && item4.Nav_Law != null && !string.IsNullOrEmpty(item4.Nav_Law.NAME)) - { - basicStr.Add(item4.Nav_Law.NAME); - } - } - } - if (item3.Nav_DetailHiddens != null && item3.Nav_DetailHiddens.Any()) - { - foreach (var item4 in item3.Nav_DetailHiddens.OrderBy(t => t.NUM)) - { - if (item4 != null) - { - if (item4.Nav_Question != null && !string.IsNullOrEmpty(item4.Nav_Question.DESCREPTION)) - { - scripStr.Add(item4.Nav_Question.DESCREPTION); - } - levelStr.Add(item4.HIDDEN_LEVEL.GetDescription()); - if (!string.IsNullOrEmpty(item4.RECTIFICATION_MEASURES)) - { - measureStr.Add(item4.RECTIFICATION_MEASURES); - } - } - } - } - if (item3.Nav_DetailDeparts != null && item3.Nav_DetailDeparts.Any()) - { - foreach (var item4 in item3.Nav_DetailDeparts.OrderBy(t => t.NUM)) - { - if (item4 != null) - { - if (item4.Nav_Department != null && !string.IsNullOrEmpty(item4.Nav_Department.NAME)) - { - checkDeptStr.Add(item4.Nav_Department.NAME); - } - checkLevelStr.Add(item4.CHECK_TYPE.GetDescription()); - checkTypeStr.Add(item4.Nav_CheckType?.NAME); - if (item4.Nav_DetailPosts != null && item4.Nav_DetailPosts.Any()) - { - foreach (var item5 in item4.Nav_DetailPosts) - { - if (item5 != null && item5.Nav_Post != null && !string.IsNullOrEmpty(item5.Nav_Post.NAME)) - { - checkPostStr.Add(item5.Nav_Post.NAME); - } - } - } - } - } - } - } - } - } - } - } - //if (detailStr.Any()) - //{ - // detailStr = detailStr.Distinct().ToList(); - // var i = 1; - // foreach (var item2 in detailStr) - // { - // if (!string.IsNullOrEmpty(item2)) - // { - // var temp = i + "、" + item2 + "\r\n"; - // item.MEASURE = item.MEASURE + temp; - // i++; - // } - // } - //} - if (contentStr.Any()) - { - contentStr = contentStr.Distinct().ToList(); - var i = 1; - foreach (var item2 in contentStr) - { - if (!string.IsNullOrEmpty(item2)) - { - var temp = i + "、" + item2 + "\r\n"; - item.CHECKCONTENTS = item.CHECKCONTENTS + temp; - i++; - } - } - } - if (basicStr.Any()) - { - basicStr = basicStr.Distinct().ToList(); - var i = 1; - foreach (var item2 in basicStr) - { - if (!string.IsNullOrEmpty(item2)) - { - var temp = i + "、" + item2 + "\r\n"; - item.CHECKBASICS = item.CHECKBASICS + temp; - i++; - } - } - } - if (standardStr.Any()) - { - standardStr = standardStr.Distinct().ToList(); - var i = 1; - foreach (var item2 in standardStr) - { - if (!string.IsNullOrEmpty(item2)) - { - var temp = i + "、" + item2 + "\r\n"; - item.CHECKSTANDARDS = item.CHECKSTANDARDS + temp; - i++; - } - } - } - if (scripStr.Any()) - { - scripStr = scripStr.Distinct().ToList(); - var i = 1; - foreach (var item2 in scripStr) - { - if (!string.IsNullOrEmpty(item2)) - { - var temp = i + "、" + item2 + "\r\n"; - item.HIDDENSCRIPTION = item.HIDDENSCRIPTION + temp; - i++; - } - } - } - if (levelStr.Any()) - { - levelStr = levelStr.Distinct().ToList(); - var i = 1; - foreach (var item2 in levelStr) - { - if (!string.IsNullOrEmpty(item2)) - { - var temp = i + "、" + item2 + "\r\n"; - item.HIDDENLEVEL = item.HIDDENLEVEL + temp; - i++; - } - } - } - if (measureStr.Any()) - { - measureStr = measureStr.Distinct().ToList(); - var i = 1; - foreach (var item2 in measureStr) - { - if (!string.IsNullOrEmpty(item2)) - { - var temp = i + "、" + item2 + "\r\n"; - item.RECIFYMEASURE = item.RECIFYMEASURE + temp; - i++; - } - } + item.MEASURE = item.MEASURE + temp; + //i++; + } + } + } + //if (detailStr.Any()) + //{ + // detailStr = detailStr.Distinct().ToList(); + // var i = 1; + // foreach (var item2 in detailStr) + // { + // if (!string.IsNullOrEmpty(item2)) + // { + // var temp = i + "、" + item2 + "\r\n"; + // item.MEASURE = item.MEASURE + temp; + // i++; + // } + // } + //} + //辨识层级、部门、岗位 + var levelStr = new List(); + var departIds = new List(); + var postIds = new List(); + if (item.Nav_Posts != null && item.Nav_Posts.Any()) + { + foreach (var item2 in item.Nav_Posts.OrderBy(t => t.DEPARTMENT_ID)) + { + if (item2 != null && item2.DEPARTMENT_ID != null) + { + var first = departs.FirstOrDefault(t => t.ID == item2.DEPARTMENT_ID); + var level = Enum.GetName(typeof(FMDepartmentType), first.DEPARTMENT_TYPE); + levelStr.Add(level); + departIds.Add(first.ID); + } + } + } + if (levelStr.Any()) + { + levelStr = levelStr.Distinct().ToList(); + var i = 1; + foreach (var item2 in levelStr) + { + if (!string.IsNullOrEmpty(item2)) + { + var type = 20; + switch (item2) + { + case "部门": + type = 10; + break; + case "车间": + type = 15; + break; + case "班组": + type = 20; + break; + case "公司": + type = 5; + break; + default: + type = 20; + break; + } + var temp = i + "、" + item2 + Environment.NewLine; + item.CHECKLEVEL = item.CHECKLEVEL + temp; + var departTemps = departs.Where(t => departIds.Contains(t.ID) && t.DEPARTMENT_TYPE == type).ToList(); + var departTempNames = departTemps.Select(m => m.NAME).Distinct().ToList(); + var temp2 = i + "、" + string.Join(",", departTempNames) + Environment.NewLine; + item.CHECKDEPT = item.CHECKDEPT + temp2; + var departTempIds = departTemps.Select(t => t.ID).ToList(); + var postTempIds = users.Where(t => departTempIds.Contains((Guid)t.DEPARTMENT_ID) && t.Nav_Person != null).Select(m => m.Nav_Person.POST_ID).Distinct().ToList(); + var postTemps = userPosts.Where(t => postTempIds.Contains(t.ID)).Select(m => m.NAME).Distinct().ToList(); + var temp3 = i + "、" + string.Join(",", postTemps) + Environment.NewLine; + item.CHECKPOST = item.CHECKPOST + temp3; + i++; + } + } + } + } + result.Data.OrderBy(t => t.EVALUATE_LEVEL); + } + result.Data.OrderBy(t => t.PRODUCTION_UNIT_ID).ThenBy(m => m.EVALUATE_LEVEL); + } + return result; + } + /// + /// 排序查询所有数据 + /// + /// 过滤实体 + /// + + [HttpPost, Route("SKOrderEntities")] + public JsonActionResult> SKOrderEntities([FromBody] KeywordFilter filter) + { + var result = WitOrderEntities(null, filter); + if (result != null && result.Data != null) + { + if (result.Data != null && result.Data.Any()) + { + foreach (var item in result.Data) + { + var detailStr = new List(); + var contentStr = new List(); + var basicStr = new List(); + var standardStr = new List(); + var scripStr = new List(); + var levelStr = new List(); + var measureStr = new List(); + var controlLevelStr = new List(); + var controlDeptStr = new List(); + var controlUserStr = new List(); + var checkLevelStr = new List(); + var checkTypeStr = new List(); + var checkDeptStr = new List(); + var checkPostStr = new List(); + if (item.Nav_Departs != null && item.Nav_Departs.Any()) + { + foreach (var item2 in item.Nav_Departs.OrderBy(t => t.DEPARTMENT_TYPE)) + { + if (item2 != null) + { + if (item2.Nav_Department != null && !string.IsNullOrEmpty(item2.Nav_Department.NAME)) + { + controlDeptStr.Add(item2.Nav_Department.NAME); + } + controlLevelStr.Add(item2.DEPARTMENT_TYPE.GetDescription()); + if (item2.Nav_User != null && !string.IsNullOrEmpty(item2.Nav_User.NAME)) + { + controlUserStr.Add(item2.Nav_User.NAME); + } + } + } + } + if (item.Nav_Details != null && item.Nav_Details.Any()) + { + foreach (var item2 in item.Nav_Details.OrderBy(t => t.NUM)) + { + if (item2 != null && !string.IsNullOrEmpty(item2.MEASURES_NAME)) + { + detailStr.Add(item2.MEASURES_NAME); + var temp = item2.NUM + "、" + item2.MEASURES_NAME + Environment.NewLine; + item.MINE_NAME = item.MINE_NAME + temp; + item.MEASURE = item.MEASURE + temp; + } + if (item2 != null && item2.Nav_DetailContents != null && item2.Nav_DetailContents.Any()) + { + foreach (var item3 in item2.Nav_DetailContents.OrderBy(t => t.NUM)) + { + if (item3 != null) + { + if (item3.Nav_Contents != null && !string.IsNullOrEmpty(item3.Nav_Contents.CHECKCONTENT)) + { + contentStr.Add(item3.Nav_Contents.CHECKCONTENT); + } + if (!string.IsNullOrEmpty(item3.CHECK_STANDARD)) + { + standardStr.Add(item3.CHECK_STANDARD); + } + if (item3.Nav_DetailBasics != null && item3.Nav_DetailBasics.Any()) + { + foreach (var item4 in item3.Nav_DetailBasics) + { + if (item4 != null && item4.Nav_Law != null && !string.IsNullOrEmpty(item4.Nav_Law.NAME)) + { + basicStr.Add(item4.Nav_Law.NAME); + } + } + } + if (item3.Nav_DetailHiddens != null && item3.Nav_DetailHiddens.Any()) + { + foreach (var item4 in item3.Nav_DetailHiddens.OrderBy(t => t.NUM)) + { + if (item4 != null) + { + if (item4.Nav_Question != null && !string.IsNullOrEmpty(item4.Nav_Question.DESCREPTION)) + { + scripStr.Add(item4.Nav_Question.DESCREPTION); + } + levelStr.Add(item4.HIDDEN_LEVEL.GetDescription()); + if (!string.IsNullOrEmpty(item4.RECTIFICATION_MEASURES)) + { + measureStr.Add(item4.RECTIFICATION_MEASURES); + } + } + } + } + if (item3.Nav_DetailDeparts != null && item3.Nav_DetailDeparts.Any()) + { + foreach (var item4 in item3.Nav_DetailDeparts.OrderBy(t => t.NUM)) + { + if (item4 != null) + { + if (item4.Nav_Department != null && !string.IsNullOrEmpty(item4.Nav_Department.NAME)) + { + checkDeptStr.Add(item4.Nav_Department.NAME); + } + checkLevelStr.Add(item4.CHECK_TYPE.GetDescription()); + checkTypeStr.Add(item4.Nav_CheckType?.NAME); + if (item4.Nav_DetailPosts != null && item4.Nav_DetailPosts.Any()) + { + foreach (var item5 in item4.Nav_DetailPosts) + { + if (item5 != null && item5.Nav_Post != null && !string.IsNullOrEmpty(item5.Nav_Post.NAME)) + { + checkPostStr.Add(item5.Nav_Post.NAME); + } + } + } + } + } + } + } + } + } + } + } + //if (detailStr.Any()) + //{ + // detailStr = detailStr.Distinct().ToList(); + // var i = 1; + // foreach (var item2 in detailStr) + // { + // if (!string.IsNullOrEmpty(item2)) + // { + // var temp = i + "、" + item2 + "\r\n"; + // item.MEASURE = item.MEASURE + temp; + // i++; + // } + // } + //} + if (contentStr.Any()) + { + contentStr = contentStr.Distinct().ToList(); + var i = 1; + foreach (var item2 in contentStr) + { + if (!string.IsNullOrEmpty(item2)) + { + var temp = i + "、" + item2 + "\r\n"; + item.CHECKCONTENTS = item.CHECKCONTENTS + temp; + i++; + } + } + } + if (basicStr.Any()) + { + basicStr = basicStr.Distinct().ToList(); + var i = 1; + foreach (var item2 in basicStr) + { + if (!string.IsNullOrEmpty(item2)) + { + var temp = i + "、" + item2 + "\r\n"; + item.CHECKBASICS = item.CHECKBASICS + temp; + i++; + } + } + } + if (standardStr.Any()) + { + standardStr = standardStr.Distinct().ToList(); + var i = 1; + foreach (var item2 in standardStr) + { + if (!string.IsNullOrEmpty(item2)) + { + var temp = i + "、" + item2 + "\r\n"; + item.CHECKSTANDARDS = item.CHECKSTANDARDS + temp; + i++; + } + } + } + if (scripStr.Any()) + { + scripStr = scripStr.Distinct().ToList(); + var i = 1; + foreach (var item2 in scripStr) + { + if (!string.IsNullOrEmpty(item2)) + { + var temp = i + "、" + item2 + "\r\n"; + item.HIDDENSCRIPTION = item.HIDDENSCRIPTION + temp; + i++; + } + } + } + if (levelStr.Any()) + { + levelStr = levelStr.Distinct().ToList(); + var i = 1; + foreach (var item2 in levelStr) + { + if (!string.IsNullOrEmpty(item2)) + { + var temp = i + "、" + item2 + "\r\n"; + item.HIDDENLEVEL = item.HIDDENLEVEL + temp; + i++; + } + } + } + if (measureStr.Any()) + { + measureStr = measureStr.Distinct().ToList(); + var i = 1; + foreach (var item2 in measureStr) + { + if (!string.IsNullOrEmpty(item2)) + { + var temp = i + "、" + item2 + "\r\n"; + item.RECIFYMEASURE = item.RECIFYMEASURE + temp; + i++; + } + } } - if (controlLevelStr.Any()) - { - controlLevelStr = controlLevelStr.Distinct().ToList(); - var i = 1; - foreach (var item2 in controlLevelStr) - { - if (!string.IsNullOrEmpty(item2)) - { - var temp = i + "、" + item2 + "\r\n"; - item.CONTROLLEVEL = item.CONTROLLEVEL + temp; - i++; - } - } - } - if (controlDeptStr.Any()) - { - controlDeptStr = controlDeptStr.Distinct().ToList(); - var i = 1; - foreach (var item2 in controlDeptStr) - { - if (!string.IsNullOrEmpty(item2)) - { - var temp = i + "、" + item2 + "\r\n"; - item.CONTROLDEPT = item.CONTROLDEPT + temp; - i++; - } - } - } - if (controlUserStr.Any()) - { - controlUserStr = controlUserStr.Distinct().ToList(); - var i = 1; - foreach (var item2 in controlUserStr) - { - if (!string.IsNullOrEmpty(item2)) - { - var temp = i + "、" + item2 + "\r\n"; - item.CONTROLUSER = item.CONTROLUSER + temp; - i++; - } - } - } - if (checkLevelStr.Any()) - { - checkLevelStr = checkLevelStr.Distinct().ToList(); - var i = 1; - foreach (var item2 in checkLevelStr) - { - if (!string.IsNullOrEmpty(item2)) - { - var temp = i + "、" + item2 + "\r\n"; - item.CHECKLEVEL = item.CHECKLEVEL + temp; - i++; - } - } - } - if (checkTypeStr.Any()) - { - checkTypeStr = checkTypeStr.Distinct().ToList(); - var i = 1; - foreach (var item2 in checkTypeStr) - { - if (!string.IsNullOrEmpty(item2)) - { - var temp = i + "、" + item2 + "\r\n"; - item.CHECKTYPE = item.CHECKTYPE + temp; - i++; - } - } - } - if (checkDeptStr.Any()) - { - checkDeptStr = checkDeptStr.Distinct().ToList(); - var i = 1; - foreach (var item2 in checkDeptStr) - { - if (!string.IsNullOrEmpty(item2)) - { - var temp = i + "、" + item2 + "\r\n"; - item.CHECKDEPT = item.CHECKDEPT + temp; - i++; - } - } - } - if (checkPostStr.Any()) - { - checkPostStr = checkPostStr.Distinct().ToList(); - var i = 1; - foreach (var item2 in checkPostStr) - { - if (!string.IsNullOrEmpty(item2)) - { - var temp = i + "、" + item2 + "\r\n"; - item.CHECKPOST = item.CHECKPOST + temp; - i++; - } - } - } - } - result.Data.OrderBy(t => t.AREA_ID); - } - } - return result; - } - [HttpPost, Route("GetCheckList")] - public JsonActionResult> GetCheckList([FromBody] KeywordFilter filter) - { - var loginDepart = APT.Infrastructure.Api.AppContext.CurrentSession.DepartmentID; - var departs = this.GetEntities(t => t.ENABLE_STATUS == 0, new BaseFilter(filter.OrgId)); - var AHDepart = departs.FirstOrDefault(t => t.NAME.Contains("安全环保")); - if (AHDepart != null && loginDepart == AHDepart.ID) - { - loginDepart = departs.FirstOrDefault(t => t.PARENT_ID == null).ID; - } - List departmentIds = new List() { loginDepart.Value }; - DepartmentService.GetDepartmentIds(filter.OrgId.Value, new List() { loginDepart.Value }, ref departmentIds); - var checkList = new JsonActionResult>(); - var detailContents = this.GetEntities(t => t.DEPARTMENT_ID != null && departmentIds.Contains((Guid)t.DEPARTMENT_ID), new BaseFilter(filter.OrgId), "Nav_DetailContent.Nav_LibraryDetail.Nav_Library.Nav_ProductionUnit", "Nav_CheckType").ToList(); - if (detailContents != null && detailContents.Any()) - { - foreach (var item in detailContents) - { - item.PRODUCTION_UNIT_ID = item.Nav_DetailContent.Nav_LibraryDetail.Nav_Library.PRODUCTION_UNIT_ID; - item.MINE_NAME = item.Nav_DetailContent.Nav_LibraryDetail.Nav_Library.Nav_ProductionUnit.NAME; - } - checkList.Data = detailContents.GroupBy(t => new { t.PRODUCTION_UNIT_ID,t.MINE_NAME, t.CHECK_TYPE_ID, t.CHECK_CYCLE, t.CHECK_TYPE }).Select(m => m.FirstOrDefault()).OrderBy(n => n.MineType).ThenBy(x => x.CHECK_TYPE).ThenBy(y => y.CHECK_TYPE_ID).ToList(); - checkList.TotalCount = checkList.Data.Count; - } - return checkList; - } - [HttpPost, Route("GetCheckDetailList")] - public JsonActionResult> GetCheckDetailList([FromBody] KeywordFilter filter) - { - //if (string.IsNullOrEmpty(filter.Keyword) || string.IsNullOrEmpty(filter.Parameter1) || string.IsNullOrEmpty(filter.Parameter2) || string.IsNullOrEmpty(filter.Parameter3)) - //{ - // throw new Exception("传入参数有误,请联系管理员"); - //} - var loginDepart = APT.Infrastructure.Api.AppContext.CurrentSession.DepartmentID; - var departs = this.GetEntities(t => t.ENABLE_STATUS == 0, new BaseFilter(filter.OrgId)); - var AHDepart = departs.FirstOrDefault(t => t.NAME.Contains("安全环保")); - if (AHDepart != null && loginDepart == AHDepart.ID) - { - loginDepart = departs.FirstOrDefault(t => t.PARENT_ID == null).ID; - } - List departmentIds = new List() { loginDepart.Value }; - DepartmentService.GetDepartmentIds(filter.OrgId.Value, new List() { loginDepart.Value }, ref departmentIds); - var checkList = new JsonActionResult>(); - var checkTempList = new List(); - var detailContents = this.GetEntities(t => t.DEPARTMENT_ID != null && departmentIds.Contains((Guid)t.DEPARTMENT_ID), new BaseFilter(filter.OrgId), "Nav_DetailContent.Nav_LibraryDetail.Nav_Library", "Nav_CheckType", "Nav_Department").ToList(); - if (detailContents != null && detailContents.Any()) - { - foreach (var item in detailContents) - { - item.PRODUCTION_UNIT_ID = item.Nav_DetailContent.Nav_LibraryDetail.Nav_Library.PRODUCTION_UNIT_ID; - } - if (!string.IsNullOrEmpty(filter.Keyword)) - { - detailContents = detailContents.Where(t => t.PRODUCTION_UNIT_ID == Guid.Parse(filter.Keyword)).ToList(); - } - if (!string.IsNullOrEmpty(filter.Parameter1)) - { - detailContents = detailContents.Where(t => t.CHECK_TYPE_ID == Guid.Parse(filter.Parameter1)).ToList(); - } - if (!string.IsNullOrEmpty(filter.Parameter2)) - { - detailContents = detailContents.Where(t => t.CHECK_CYCLE == (SKPLANCHECKFREQUENCYEnum)int.Parse(filter.Parameter2)).ToList(); - } - if (!string.IsNullOrEmpty(filter.Parameter3)) - { - detailContents = detailContents.Where(t => t.CHECK_TYPE == (SKDepartmentTypeEnum)int.Parse(filter.Parameter3)).ToList(); - } - var contentIds = detailContents.Select(t => t.ENTERPRISE_LIBRARY_DETAIL_CONTENT_ID).Distinct().ToList(); - var contentList = this.GetEntities(t => contentIds.Contains(t.ID), new BaseFilter(filter.OrgId), "Nav_LibraryDetail.Nav_Library.Nav_Area", "Nav_Contents", "Nav_DetailBasics.Nav_Law"); - if (contentList.Any()) - { - foreach (var item in contentList) - { - item.PRODUCTION_UNIT_ID = item.Nav_LibraryDetail.Nav_Library.PRODUCTION_UNIT_ID; - item.AREA_NAME = item.Nav_LibraryDetail.Nav_Library.AREA_NAME; - item.AREA_ID = item.Nav_LibraryDetail.Nav_Library.AREA_ID; - item.Nav_Contents = item.Nav_Contents; - item.Nav_Area = item.Nav_LibraryDetail.Nav_Library.Nav_Area; - item.RISK_NAME = item.Nav_LibraryDetail.Nav_Library.RISK_NAME; - } - } - var userPosts = this.GetEntities(t => t.IS_DELETED == false, new BaseFilter(filter.OrgId)).ToList(); - var departIds = detailContents.Select(t => t.ID).ToList(); - var posts = this.GetEntities(t => departIds.Contains(t.ENTERPRISE_LIBRARY_DETAIL_CONTENT_DEPART_ID), new BaseFilter(filter.OrgId), "Nav_DetailDepart.Nav_Department").ToList(); - var tempPosts = posts.GroupBy(t => new { t.Nav_DetailDepart.DEPARTMENT_ID, t.POST_ID }).Select(m => m.FirstOrDefault()).OrderBy(n => n.Nav_DetailDepart.DEPARTMENT_ID).ToList(); - foreach (var item in tempPosts) - { - T_SK_ENTERPRISE_LIBRARY_DETAIL_CONTENT_DEPART item2 = new T_SK_ENTERPRISE_LIBRARY_DETAIL_CONTENT_DEPART(); - item2.DEPARTMENT_ID = item.Nav_DetailDepart.DEPARTMENT_ID; - item2.Nav_Department = item.Nav_DetailDepart.Nav_Department; - item2.POST_NAME = userPosts.FirstOrDefault(t => t.ID == item.POST_ID)?.NAME; - var tempIds = detailContents.Where(t => t.DEPARTMENT_ID == item.Nav_DetailDepart.DEPARTMENT_ID).Select(m => m.ENTERPRISE_LIBRARY_DETAIL_CONTENT_ID).ToList(); - var contentTemps = contentList.Where(t => tempIds.Contains(t.ID)).ToList(); - item2.Nav_ContentDatas = contentTemps.GroupBy(t => new { t.PRODUCTION_UNIT_ID, t.AREA_NAME, t.Nav_Contents?.CHECKCONTENT }).Select(m => m.FirstOrDefault()).OrderBy(n => n.PRODUCTION_UNIT_ID).ThenBy(x => x.AREA_NAME).ToList(); - checkTempList.Add(item2); - } - checkList.Data = checkTempList; - checkList.TotalCount = checkList.Data.Count; - } - return checkList; - } - [HttpPost, Route("GetCheckListContent")] - public JsonActionResult> GetCheckListContent([FromBody] KeywordFilter filter) - { - var mineType = SKProductionUnit.Mine; - if (filter.Parameter1 == "30") - { - mineType = SKProductionUnit.Mine; - } - else if (filter.Parameter1 == "10") - { - mineType = SKProductionUnit.MineChoose; - } - else if (filter.Parameter1 == "20") - { - mineType = SKProductionUnit.Minelast; - } - else if (filter.Parameter1 == "0") - { - mineType = SKProductionUnit.All; - } - else - { - throw new Exception("生产单元错误"); - } - var checkCycle = BSPLANCHECKFREQUENCYEnum.Date; - if (filter.Parameter2 == "0") - { - checkCycle = BSPLANCHECKFREQUENCYEnum.None; - } - else if (filter.Parameter2 == "10") - { - checkCycle = BSPLANCHECKFREQUENCYEnum.Date; - } - else if (filter.Parameter2 == "20") - { - checkCycle = BSPLANCHECKFREQUENCYEnum.Week; - } - else if (filter.Parameter2 == "30") - { - checkCycle = BSPLANCHECKFREQUENCYEnum.Month; - } - else if (filter.Parameter2 == "40") - { - checkCycle = BSPLANCHECKFREQUENCYEnum.Quarter; - } - else if (filter.Parameter2 == "50") - { - checkCycle = BSPLANCHECKFREQUENCYEnum.HalfYear; - } - else if (filter.Parameter2 == "60") - { - checkCycle = BSPLANCHECKFREQUENCYEnum.Year; - } - else - { - throw new Exception("检查周期错误"); - } - var departType = FMDepartmentType.Department; - if (filter.Parameter3 == "10") - { - departType = FMDepartmentType.Department; - } - else if (filter.Parameter3 == "15") - { - departType = FMDepartmentType.Workshop; - } - else if (filter.Parameter3 == "20") - { - departType = FMDepartmentType.Class; - } - else if (filter.Parameter3 == "5") - { - departType = FMDepartmentType.Company; - } - else - { - throw new Exception("检查层级错误"); - } - var checkList = new JsonActionResult>(); - var checkData = new List(); - var libraryIds = this.GetEntities(t => t.MineType == mineType, new BaseFilter(filter.OrgId)).Select(t => t.ID).ToList(); - var detailIds = this.GetEntities(t => libraryIds.Contains(t.ENTERPRISE_LIBRARY_ID), new BaseFilter(filter.OrgId)).Select(t => t.ID).ToList(); - //var detailId2s = this.GetEntities(t => detailIds.Contains(t.ENTERPRISE_LIBRARY_DETAIL_ID) && t.CHECK_CYCLE == checkCycle && t.CHECK_TYPE == departType && t.CHECK_TYPE_ID == Guid.Parse(filter.Parameter4.ToString()), new BaseFilter(filter.OrgId)).Select(m=>m.ENTERPRISE_LIBRARY_DETAIL_ID).ToList(); - //var detailId3s = this.GetEntities(t => detailId2s.Contains(t.ENTERPRISE_LIBRARY_DETAIL_ID) && t.DEPARTMENT_ID == Guid.Parse(filter.Parameter5) && t.POST_ID == Guid.Parse(filter.Parameter6), new BaseFilter(filter.OrgId)).Select(t => t.ENTERPRISE_LIBRARY_DETAIL_ID).ToList(); - //var detailContents = this.GetEntities(t => detailId3s.Contains(t.ENTERPRISE_LIBRARY_DETAIL_ID), new BaseFilter(filter.OrgId), "Nav_LibraryDetail.Nav_Library.Nav_Area", "Nav_Contents").ToList(); - //if (detailContents != null && detailContents.Any()) - //{ - // foreach (var item in detailContents) - // { - // item.AREA_NAME = item.Nav_LibraryDetail?.Nav_Library?.Nav_Area?.NAME; - // } - // checkList.Data = detailContents.ToList(); - // checkList.TotalCount = detailContents.Count; - //} - return checkList; - } - - /// - /// 排序分页查询数据 - /// - /// 分页过滤实体 - /// - [HttpPost, Route("PostOrderPaged")] - public PagedActionResult PostOrderPaged([FromBody] KeywordPageFilter pageFilter) - { - var result = new PagedActionResult(); - var filterValue = ""; - if (pageFilter != null && pageFilter.FilterGroup != null && pageFilter.FilterGroup.Groups != null) - { - foreach (var item in pageFilter.FilterGroup.Groups) - { - var value = item.Rules.FirstOrDefault(t => t.Field == "DEPARTMENT_ID"); - if (value != null) - { - filterValue = value.Value.ToString(); - item.Rules.Remove(value); - } + if (controlLevelStr.Any()) + { + controlLevelStr = controlLevelStr.Distinct().ToList(); + var i = 1; + foreach (var item2 in controlLevelStr) + { + if (!string.IsNullOrEmpty(item2)) + { + var temp = i + "、" + item2 + "\r\n"; + item.CONTROLLEVEL = item.CONTROLLEVEL + temp; + i++; + } + } + } + if (controlDeptStr.Any()) + { + controlDeptStr = controlDeptStr.Distinct().ToList(); + var i = 1; + foreach (var item2 in controlDeptStr) + { + if (!string.IsNullOrEmpty(item2)) + { + var temp = i + "、" + item2 + "\r\n"; + item.CONTROLDEPT = item.CONTROLDEPT + temp; + i++; + } + } + } + if (controlUserStr.Any()) + { + controlUserStr = controlUserStr.Distinct().ToList(); + var i = 1; + foreach (var item2 in controlUserStr) + { + if (!string.IsNullOrEmpty(item2)) + { + var temp = i + "、" + item2 + "\r\n"; + item.CONTROLUSER = item.CONTROLUSER + temp; + i++; + } + } + } + if (checkLevelStr.Any()) + { + checkLevelStr = checkLevelStr.Distinct().ToList(); + var i = 1; + foreach (var item2 in checkLevelStr) + { + if (!string.IsNullOrEmpty(item2)) + { + var temp = i + "、" + item2 + "\r\n"; + item.CHECKLEVEL = item.CHECKLEVEL + temp; + i++; + } + } + } + if (checkTypeStr.Any()) + { + checkTypeStr = checkTypeStr.Distinct().ToList(); + var i = 1; + foreach (var item2 in checkTypeStr) + { + if (!string.IsNullOrEmpty(item2)) + { + var temp = i + "、" + item2 + "\r\n"; + item.CHECKTYPE = item.CHECKTYPE + temp; + i++; + } + } + } + if (checkDeptStr.Any()) + { + checkDeptStr = checkDeptStr.Distinct().ToList(); + var i = 1; + foreach (var item2 in checkDeptStr) + { + if (!string.IsNullOrEmpty(item2)) + { + var temp = i + "、" + item2 + "\r\n"; + item.CHECKDEPT = item.CHECKDEPT + temp; + i++; + } + } + } + if (checkPostStr.Any()) + { + checkPostStr = checkPostStr.Distinct().ToList(); + var i = 1; + foreach (var item2 in checkPostStr) + { + if (!string.IsNullOrEmpty(item2)) + { + var temp = i + "、" + item2 + "\r\n"; + item.CHECKPOST = item.CHECKPOST + temp; + i++; + } + } + } + } + result.Data.OrderBy(t => t.AREA_ID); + } + } + return result; + } + [HttpPost, Route("GetCheckList")] + public JsonActionResult> GetCheckList([FromBody] KeywordFilter filter) + { + var loginDepart = APT.Infrastructure.Api.AppContext.CurrentSession.DepartmentID; + var departs = this.GetEntities(t => t.ENABLE_STATUS == 0, new BaseFilter(filter.OrgId)); + var AHDepart = departs.FirstOrDefault(t => t.NAME.Contains("安全环保")); + if (AHDepart != null && loginDepart == AHDepart.ID) + { + loginDepart = departs.FirstOrDefault(t => t.PARENT_ID == null).ID; + } + List departmentIds = new List() { loginDepart.Value }; + DepartmentService.GetDepartmentIds(filter.OrgId.Value, new List() { loginDepart.Value }, ref departmentIds); + var checkList = new JsonActionResult>(); + var detailContents = this.GetEntities(t => t.DEPARTMENT_ID != null && departmentIds.Contains((Guid)t.DEPARTMENT_ID), new BaseFilter(filter.OrgId), "Nav_DetailContent.Nav_LibraryDetail.Nav_Library.Nav_ProductionUnit", "Nav_CheckType").ToList(); + if (detailContents != null && detailContents.Any()) + { + foreach (var item in detailContents) + { + item.PRODUCTION_UNIT_ID = item.Nav_DetailContent.Nav_LibraryDetail.Nav_Library.PRODUCTION_UNIT_ID; + item.MINE_NAME = item.Nav_DetailContent.Nav_LibraryDetail.Nav_Library.Nav_ProductionUnit.NAME; + } + checkList.Data = detailContents.GroupBy(t => new { t.PRODUCTION_UNIT_ID,t.MINE_NAME, t.CHECK_TYPE_ID, t.CHECK_CYCLE, t.CHECK_TYPE }).Select(m => m.FirstOrDefault()).OrderBy(n => n.MineType).ThenBy(x => x.CHECK_TYPE).ThenBy(y => y.CHECK_TYPE_ID).ToList(); + checkList.TotalCount = checkList.Data.Count; + } + return checkList; + } + [HttpPost, Route("GetCheckDetailList")] + public JsonActionResult> GetCheckDetailList([FromBody] KeywordFilter filter) + { + //if (string.IsNullOrEmpty(filter.Keyword) || string.IsNullOrEmpty(filter.Parameter1) || string.IsNullOrEmpty(filter.Parameter2) || string.IsNullOrEmpty(filter.Parameter3)) + //{ + // throw new Exception("传入参数有误,请联系管理员"); + //} + var loginDepart = APT.Infrastructure.Api.AppContext.CurrentSession.DepartmentID; + var departs = this.GetEntities(t => t.ENABLE_STATUS == 0, new BaseFilter(filter.OrgId)); + var AHDepart = departs.FirstOrDefault(t => t.NAME.Contains("安全环保")); + if (AHDepart != null && loginDepart == AHDepart.ID) + { + loginDepart = departs.FirstOrDefault(t => t.PARENT_ID == null).ID; + } + List departmentIds = new List() { loginDepart.Value }; + DepartmentService.GetDepartmentIds(filter.OrgId.Value, new List() { loginDepart.Value }, ref departmentIds); + var checkList = new JsonActionResult>(); + var checkTempList = new List(); + var detailContents = this.GetEntities(t => t.DEPARTMENT_ID != null && departmentIds.Contains((Guid)t.DEPARTMENT_ID), new BaseFilter(filter.OrgId), "Nav_DetailContent.Nav_LibraryDetail.Nav_Library", "Nav_CheckType", "Nav_Department").ToList(); + if (detailContents != null && detailContents.Any()) + { + foreach (var item in detailContents) + { + item.PRODUCTION_UNIT_ID = item.Nav_DetailContent.Nav_LibraryDetail.Nav_Library.PRODUCTION_UNIT_ID; + } + if (!string.IsNullOrEmpty(filter.Keyword)) + { + detailContents = detailContents.Where(t => t.PRODUCTION_UNIT_ID == Guid.Parse(filter.Keyword)).ToList(); + } + if (!string.IsNullOrEmpty(filter.Parameter1)) + { + detailContents = detailContents.Where(t => t.CHECK_TYPE_ID == Guid.Parse(filter.Parameter1)).ToList(); + } + if (!string.IsNullOrEmpty(filter.Parameter2)) + { + detailContents = detailContents.Where(t => t.CHECK_CYCLE == (SKPLANCHECKFREQUENCYEnum)int.Parse(filter.Parameter2)).ToList(); + } + if (!string.IsNullOrEmpty(filter.Parameter3)) + { + detailContents = detailContents.Where(t => t.CHECK_TYPE == (SKDepartmentTypeEnum)int.Parse(filter.Parameter3)).ToList(); + } + var contentIds = detailContents.Select(t => t.ENTERPRISE_LIBRARY_DETAIL_CONTENT_ID).Distinct().ToList(); + var contentList = this.GetEntities(t => contentIds.Contains(t.ID), new BaseFilter(filter.OrgId), "Nav_LibraryDetail.Nav_Library.Nav_Area", "Nav_Contents", "Nav_DetailBasics.Nav_Law"); + if (contentList.Any()) + { + foreach (var item in contentList) + { + item.PRODUCTION_UNIT_ID = item.Nav_LibraryDetail.Nav_Library.PRODUCTION_UNIT_ID; + item.AREA_NAME = item.Nav_LibraryDetail.Nav_Library.AREA_NAME; + item.AREA_ID = item.Nav_LibraryDetail.Nav_Library.AREA_ID; + item.Nav_Contents = item.Nav_Contents; + item.Nav_Area = item.Nav_LibraryDetail.Nav_Library.Nav_Area; + item.RISK_NAME = item.Nav_LibraryDetail.Nav_Library.RISK_NAME; + } + } + var userPosts = this.GetEntities(t => t.IS_DELETED == false, new BaseFilter(filter.OrgId)).ToList(); + var departIds = detailContents.Select(t => t.ID).ToList(); + var posts = this.GetEntities(t => departIds.Contains(t.ENTERPRISE_LIBRARY_DETAIL_CONTENT_DEPART_ID), new BaseFilter(filter.OrgId), "Nav_DetailDepart.Nav_Department").ToList(); + var tempPosts = posts.GroupBy(t => new { t.Nav_DetailDepart.DEPARTMENT_ID, t.POST_ID }).Select(m => m.FirstOrDefault()).OrderBy(n => n.Nav_DetailDepart.DEPARTMENT_ID).ToList(); + foreach (var item in tempPosts) + { + T_SK_ENTERPRISE_LIBRARY_DETAIL_CONTENT_DEPART item2 = new T_SK_ENTERPRISE_LIBRARY_DETAIL_CONTENT_DEPART(); + item2.DEPARTMENT_ID = item.Nav_DetailDepart.DEPARTMENT_ID; + item2.Nav_Department = item.Nav_DetailDepart.Nav_Department; + item2.POST_NAME = userPosts.FirstOrDefault(t => t.ID == item.POST_ID)?.NAME; + var tempIds = detailContents.Where(t => t.DEPARTMENT_ID == item.Nav_DetailDepart.DEPARTMENT_ID).Select(m => m.ENTERPRISE_LIBRARY_DETAIL_CONTENT_ID).ToList(); + var contentTemps = contentList.Where(t => tempIds.Contains(t.ID)).ToList(); + item2.Nav_ContentDatas = contentTemps.GroupBy(t => new { t.PRODUCTION_UNIT_ID, t.AREA_NAME, t.Nav_Contents?.CHECKCONTENT }).Select(m => m.FirstOrDefault()).OrderBy(n => n.PRODUCTION_UNIT_ID).ThenBy(x => x.AREA_NAME).ToList(); + checkTempList.Add(item2); + } + checkList.Data = checkTempList; + checkList.TotalCount = checkList.Data.Count; + } + return checkList; + } + [HttpPost, Route("GetCheckListContent")] + public JsonActionResult> GetCheckListContent([FromBody] KeywordFilter filter) + { + var mineType = SKProductionUnit.Mine; + if (filter.Parameter1 == "30") + { + mineType = SKProductionUnit.Mine; + } + else if (filter.Parameter1 == "10") + { + mineType = SKProductionUnit.MineChoose; + } + else if (filter.Parameter1 == "20") + { + mineType = SKProductionUnit.Minelast; + } + else if (filter.Parameter1 == "0") + { + mineType = SKProductionUnit.All; + } + else + { + throw new Exception("生产单元错误"); + } + var checkCycle = BSPLANCHECKFREQUENCYEnum.Date; + if (filter.Parameter2 == "0") + { + checkCycle = BSPLANCHECKFREQUENCYEnum.None; + } + else if (filter.Parameter2 == "10") + { + checkCycle = BSPLANCHECKFREQUENCYEnum.Date; + } + else if (filter.Parameter2 == "20") + { + checkCycle = BSPLANCHECKFREQUENCYEnum.Week; + } + else if (filter.Parameter2 == "30") + { + checkCycle = BSPLANCHECKFREQUENCYEnum.Month; + } + else if (filter.Parameter2 == "40") + { + checkCycle = BSPLANCHECKFREQUENCYEnum.Quarter; + } + else if (filter.Parameter2 == "50") + { + checkCycle = BSPLANCHECKFREQUENCYEnum.HalfYear; + } + else if (filter.Parameter2 == "60") + { + checkCycle = BSPLANCHECKFREQUENCYEnum.Year; + } + else + { + throw new Exception("检查周期错误"); + } + var departType = FMDepartmentType.Department; + if (filter.Parameter3 == "10") + { + departType = FMDepartmentType.Department; + } + else if (filter.Parameter3 == "15") + { + departType = FMDepartmentType.Workshop; + } + else if (filter.Parameter3 == "20") + { + departType = FMDepartmentType.Class; + } + else if (filter.Parameter3 == "5") + { + departType = FMDepartmentType.Company; + } + else + { + throw new Exception("检查层级错误"); + } + var checkList = new JsonActionResult>(); + var checkData = new List(); + var libraryIds = this.GetEntities(t => t.MineType == mineType, new BaseFilter(filter.OrgId)).Select(t => t.ID).ToList(); + var detailIds = this.GetEntities(t => libraryIds.Contains(t.ENTERPRISE_LIBRARY_ID), new BaseFilter(filter.OrgId)).Select(t => t.ID).ToList(); + //var detailId2s = this.GetEntities(t => detailIds.Contains(t.ENTERPRISE_LIBRARY_DETAIL_ID) && t.CHECK_CYCLE == checkCycle && t.CHECK_TYPE == departType && t.CHECK_TYPE_ID == Guid.Parse(filter.Parameter4.ToString()), new BaseFilter(filter.OrgId)).Select(m=>m.ENTERPRISE_LIBRARY_DETAIL_ID).ToList(); + //var detailId3s = this.GetEntities(t => detailId2s.Contains(t.ENTERPRISE_LIBRARY_DETAIL_ID) && t.DEPARTMENT_ID == Guid.Parse(filter.Parameter5) && t.POST_ID == Guid.Parse(filter.Parameter6), new BaseFilter(filter.OrgId)).Select(t => t.ENTERPRISE_LIBRARY_DETAIL_ID).ToList(); + //var detailContents = this.GetEntities(t => detailId3s.Contains(t.ENTERPRISE_LIBRARY_DETAIL_ID), new BaseFilter(filter.OrgId), "Nav_LibraryDetail.Nav_Library.Nav_Area", "Nav_Contents").ToList(); + //if (detailContents != null && detailContents.Any()) + //{ + // foreach (var item in detailContents) + // { + // item.AREA_NAME = item.Nav_LibraryDetail?.Nav_Library?.Nav_Area?.NAME; + // } + // checkList.Data = detailContents.ToList(); + // checkList.TotalCount = detailContents.Count; + //} + return checkList; + } + + /// + /// 排序分页查询数据 + /// + /// 分页过滤实体 + /// + [HttpPost, Route("PostOrderPaged")] + public PagedActionResult PostOrderPaged([FromBody] KeywordPageFilter pageFilter) + { + var result = new PagedActionResult(); + var filterValue = ""; + if (pageFilter != null && pageFilter.FilterGroup != null && pageFilter.FilterGroup.Groups != null) + { + foreach (var item in pageFilter.FilterGroup.Groups) + { + var value = item.Rules.FirstOrDefault(t => t.Field == "DEPARTMENT_ID"); + if (value != null) + { + filterValue = value.Value.ToString(); + item.Rules.Remove(value); + } } var rules = pageFilter.FilterGroup.Rules.ToList(); foreach (var item in rules) @@ -1347,1201 +1347,1201 @@ namespace APT.SK.WebApi.Controllers.Api filterValue = item.Value.ToString(); pageFilter.FilterGroup.Rules.Remove(item); } - } - } - if (!string.IsNullOrEmpty(filterValue)) - { - var users = this.GetEntities(t => t.DEPARTMENT_ID == Guid.Parse(filterValue) && t.ENABLE_STATUS == 0 && t.PERSON_ID != null, new BaseFilter(pageFilter.OrgId), "Nav_Person"); - var postIds = users.Where(m => m.Nav_Person != null).Select(t => t.Nav_Person.POST_ID).Distinct().ToList(); - if (postIds.Any()) - { - result = this.GetOrderPageEntities(t => postIds.Contains(t.ID), pageFilter); - } - else - { - result = null;//this.GetOrderPageEntities(null, pageFilter); - } - } - else if (!string.IsNullOrEmpty(pageFilter.Keyword)) - { - var users = this.GetEntities(t => t.DEPARTMENT_ID == Guid.Parse(pageFilter.Keyword) && t.ENABLE_STATUS == 0 && t.PERSON_ID != null, new BaseFilter(pageFilter.OrgId), "Nav_Person"); - var postIds = users.Where(m => m.Nav_Person != null).Select(t => t.Nav_Person.POST_ID).Distinct().ToList(); - if (postIds.Any()) - { - result = this.GetOrderPageEntities(t => postIds.Contains(t.ID), pageFilter); - } - else - { - result = null;//this.GetOrderPageEntities(null, pageFilter); - } - } - else - { - result = null;//this.GetOrderPageEntities(null, pageFilter); - } - return result; - } - /// - /// 获得单条实体数据 - /// - /// 过滤实体 - /// - [HttpPost, Route("PostLevel")] - public JsonActionResult PostLevel([FromBody] T_SK_ENTERPRISE_LIBRARY entity) - { - var result = new JsonActionResult(); - result.Data = new T_SK_ENTERPRISE_LIBRARY(); - var levels = new List(); - if (entity != null && entity.Nav_Posts != null) - { - var temps = new List(); - var departIds = entity.Nav_Posts.Select(t => t.DEPARTMENT_ID).Distinct().ToList(); - if (!departIds.Any()) - { - throw new Exception("请先填写辨识岗位"); - } - var departs = this.GetEntities(t => departIds.Contains(t.ID), new BaseFilter(entity.ORG_ID), "Nav_User"); - if (departs.Any()) - { - foreach (var item in departs) - { - T_SK_ENTERPRISE_LIBRARY_DEPART de = new T_SK_ENTERPRISE_LIBRARY_DEPART(); - de.DEPARTMENT_ID = item.ID; - de.DEPARTMENT_TYPE = item.DEPARTMENT_TYPE == 10 ? SKDepartmentTypeEnum.部门级 : item.DEPARTMENT_TYPE == 5 ? SKDepartmentTypeEnum.公司级 : item.DEPARTMENT_TYPE == 15 ? SKDepartmentTypeEnum.车间级 : SKDepartmentTypeEnum.班组级; - de.Nav_Department = item; - de.USER_ID = item.USER_ID; - de.Nav_User = item.Nav_User; - temps.Add(de); - } - } - if (temps.Any()) - { - var x = temps.Where(t => t.DEPARTMENT_TYPE == SKDepartmentTypeEnum.公司级); - levels.AddRange(x); - var y = temps.Where(t => t.DEPARTMENT_TYPE != SKDepartmentTypeEnum.公司级).OrderBy(m => m.DEPARTMENT_TYPE); - levels.AddRange(y); - result.Data.Nav_Departs = levels; - } - } - return result; - } - /// - /// 获取导入数据 - /// 参考 [Route("api/PF/Import")] - /// - /// - [HttpPost, Route("GetImportData")] - public JsonActionResult GetImportData() - { - return SafeExecute(() => - { - var orgId = APT.Infrastructure.Api.AppContext.CurrentSession.OrgId; - var httpRequest = this.HttpContext.Request; - string orgIdStr = httpRequest.Form["OrgId"];// 获取 组织 - ImportDataModel result = new ImportDataModel(); - var dic = Path.Combine(System.AppContext.BaseDirectory, "tempImportFiles"); - if (!Directory.Exists(dic)) - Directory.CreateDirectory(dic); - foreach (var key in httpRequest.Form.Files) // 文件键 - { - var postedFile = key; // 获取文件键对应的文件对象 - string filePath = Path.Combine(dic, DateTime.Now.ToString("yyyy_MM_dd_hh_mm_ss") + "_" + postedFile.FileName); - Byte[] fileData = new Byte[postedFile.Length]; - Stream sr = postedFile.OpenReadStream();//创建数据流对象 - sr.Read(fileData, 0, (int)postedFile.Length); - using (FileStream fs = new FileStream(filePath, FileMode.CreateNew)) - { - fs.Write(fileData, 0, fileData.Length); - fs.Flush(); - fs.Close(); - } - - //获取数据 - Dictionary startRowIndexs = new Dictionary(); - startRowIndexs.Add(0, 1);//根据Excel格式数据赋值 - var dataTables = FileUtils.ReadExcelByOledb(filePath, startRowIndexs); - string Msg = string.Empty; - bool isOK = InsertModel5(dataTables.Tables[0], orgId, ref Msg); - if (isOK) - { - bool isOK1 = InsertModel8(dataTables.Tables[1], orgId, ref Msg); - if (isOK1) - { - bool isOK2 = InsertModel6(dataTables.Tables[2], orgId, ref Msg); - if (isOK2) - { - bool isOK3 = InsertModel7(dataTables.Tables[3], orgId, ref Msg); - } - } - } - try - { - System.IO.File.Delete(filePath); - } - catch { } - - result.Data = Msg; - result.MessageList = new List { Msg }; - } - - return result; - }); - } - /// - /// 数据插入 - /// - /// - /// - /// - /// - /// - /// - public bool InsertModel(DataTable dtSource, Guid? orgId, ref string Msg, int rowIndex = 1) - { - var userId = APT.Infrastructure.Api.AppContext.CurrentSession.UserID; - if (dtSource == null || dtSource.Rows.Count < rowIndex) - { - Msg = "未获取到导入数据"; - throw new Exception(Msg); - } - int rowAll = dtSource.Rows.Count; - List librarys = new List(); - if (rowAll == 1) - { - throw new Exception("导入必须两条以上,一条请直接新增"); - } - var areas = this.GetEntities(t => t.IS_DELETED == false, new BaseFilter(orgId)); - var types = this.GetEntities(t => t.IS_DELETED == false, new BaseFilter(orgId)); - for (int i = 0; i < rowAll; i++) - { - T_SK_ENTERPRISE_LIBRARY_TEMP temp = new T_SK_ENTERPRISE_LIBRARY_TEMP(); - temp.ID = Guid.NewGuid(); - temp.ORG_ID = orgId; - var num = dtSource.Rows[i][0].ToString().Trim(); - temp.NUM = int.Parse(num); - temp.CODE = num; - var minetype = dtSource.Rows[i][1].ToString().Trim(); - if (!string.IsNullOrEmpty(minetype)) - { - switch (minetype) - { - case "全公司": - temp.MineType = 0; - break; - case "露天矿": - temp.MineType = (FMProductionUnit)30; - break; - case "选矿厂": - temp.MineType = (FMProductionUnit)10; - break; - case "尾矿库": - temp.MineType = (FMProductionUnit)20; - break; - case "职能口": - temp.MineType = (FMProductionUnit)31; - break; - case "非金属": - temp.MineType = (FMProductionUnit)32; - break; - case "地下矿": - temp.MineType = (FMProductionUnit)40; - break; - default: - temp.MineType = 0; - break; - } - } - temp.MINE_NAME = minetype; - var areaName = dtSource.Rows[i][2].ToString().Trim(); - if (!string.IsNullOrEmpty(areaName)) - { - var area = areas.FirstOrDefault(t => t.NAME == areaName); - if (area != null) - { - temp.AREA_ID = area.ID; - } - } - temp.AREA_NAME = areaName; - temp.RISK_NAME = dtSource.Rows[i][3].ToString().Trim(); - temp.RISK_DESCRIPTION = dtSource.Rows[i][4].ToString().Trim(); - var typeName = dtSource.Rows[i][5].ToString().Trim(); - if (!string.IsNullOrEmpty(typeName)) - { - var type = types.FirstOrDefault(t => t.NAME == typeName); - if (type != null) - { - temp.TYPE_ID = type.ID; - } - } - temp.TYPE_NAME = typeName; - var scoreL = dtSource.Rows[i][6].ToString().Trim(); - var scoreE = dtSource.Rows[i][7].ToString().Trim(); - var scoreC = dtSource.Rows[i][8].ToString().Trim(); - var scoreD = dtSource.Rows[i][9].ToString().Trim(); - temp.EVALUATE_L = string.IsNullOrEmpty(scoreL) ? 0 : int.Parse(scoreL); - temp.EVALUATE_E = string.IsNullOrEmpty(scoreE) ? 0 : int.Parse(scoreE); - temp.EVALUATE_C = string.IsNullOrEmpty(scoreC) ? 0 : int.Parse(scoreC); - temp.EVALUATE_SCORE = string.IsNullOrEmpty(scoreD) ? 0 : int.Parse(scoreD); - var riskLevel = dtSource.Rows[i][10].ToString().Trim(); - if (!string.IsNullOrEmpty(riskLevel)) - { - switch (riskLevel) - { - case "重大风险": - temp.EVALUATE_LEVEL = (SKEvaluateLevelEnum)10; - break; - case "较大风险": - temp.EVALUATE_LEVEL = (SKEvaluateLevelEnum)20; - break; - case "一般风险": - temp.EVALUATE_LEVEL = (SKEvaluateLevelEnum)30; - break; - case "低风险": - temp.EVALUATE_LEVEL = (SKEvaluateLevelEnum)40; - break; - default: - temp.EVALUATE_LEVEL = (SKEvaluateLevelEnum)40; - break; - } - } - temp.ENABLE_STATUS = FMEnableStatusEnum.启用; - librarys.Add(temp); - } - if (!string.IsNullOrEmpty(Msg)) - { - throw new Exception(Msg); - } - else - { - UnifiedCommit(() => - { - if (librarys != null && librarys.Any()) - BantchAddEntityNoCommit(librarys); - }); - Msg = "导入成功!"; - } - return true; - } - /// - /// 数据插入 - /// - /// - /// - /// - /// - /// - /// - public bool InsertModel2(DataTable dtSource, Guid? orgId, ref string Msg, int rowIndex = 1) - { - var userId = APT.Infrastructure.Api.AppContext.CurrentSession.UserID; - if (dtSource == null || dtSource.Rows.Count < rowIndex) - { - Msg = "未获取到导入数据"; - throw new Exception(Msg); - } - int rowAll = dtSource.Rows.Count; - List librarys = new List(); - if (rowAll == 1) - { - throw new Exception("导入必须两条以上,一条请直接新增"); - } - for (int i = 0; i < rowAll; i++) - { - T_SK_LIBRARY_IMPORT_TEMP temp = new T_SK_LIBRARY_IMPORT_TEMP(); - temp.ID = Guid.NewGuid(); - temp.ORG_ID = orgId; - var num = dtSource.Rows[i][0].ToString().Trim(); - temp.NUM = int.Parse(num); - temp.MineType = dtSource.Rows[i][1].ToString().Trim(); - temp.AREA_NAME = dtSource.Rows[i][2].ToString().Trim(); - temp.RISK_NAME = dtSource.Rows[i][3].ToString().Trim(); - temp.RISK_DESCRIPTION = dtSource.Rows[i][4].ToString().Trim(); - temp.TYPE_NAME = dtSource.Rows[i][5].ToString().Trim(); - temp.MEASURES_NAME = dtSource.Rows[i][6].ToString().Trim(); - temp.CHECK_CONTENT = dtSource.Rows[i][7].ToString().Trim(); - temp.CHECK_BASIC = dtSource.Rows[i][8].ToString().Trim(); - temp.CHECK_STANDARD = dtSource.Rows[i][9].ToString().Trim(); - temp.CHECK_LEVEL = dtSource.Rows[i][10].ToString().Trim(); - temp.CHECK_DEPARTMENT = dtSource.Rows[i][11].ToString().Trim(); - temp.CHECK_POST = dtSource.Rows[i][12].ToString().Trim(); - temp.CHECK_TYPE = dtSource.Rows[i][13].ToString().Trim(); - temp.CHECK_CYCLE = dtSource.Rows[i][14].ToString().Trim(); - librarys.Add(temp); - } - if (!string.IsNullOrEmpty(Msg)) - { - throw new Exception(Msg); - } - else - { - UnifiedCommit(() => - { - if (librarys != null && librarys.Any()) - BantchAddEntityNoCommit(librarys); - }); - Msg = "导入成功!"; - } - return true; - } - - public bool InsertModel3(DataTable dtSource, Guid? orgId, ref string Msg, int rowIndex = 1) - { - var userId = APT.Infrastructure.Api.AppContext.CurrentSession.UserID; - if (dtSource == null || dtSource.Rows.Count < rowIndex) - { - Msg = "未获取到导入数据"; - throw new Exception(Msg); - } - int rowAll = dtSource.Rows.Count; - List librarys = new List(); - if (rowAll == 1) - { - throw new Exception("导入必须两条以上,一条请直接新增"); - } - for (int i = 0; i < rowAll; i++) - { - T_SK_LIBRARY_IMPORT_TEMP_NEW temp = new T_SK_LIBRARY_IMPORT_TEMP_NEW(); - temp.ID = Guid.NewGuid(); - temp.ORG_ID = orgId; - var num = dtSource.Rows[i][0].ToString().Trim(); - temp.NUM = int.Parse(num); - temp.MineType = dtSource.Rows[i][1].ToString().Trim(); - temp.AREA_NAME = dtSource.Rows[i][2].ToString().Trim(); - temp.RISK_NAME = dtSource.Rows[i][3].ToString().Trim(); - temp.RISK_DESCRIPTION = dtSource.Rows[i][4].ToString().Trim(); - temp.TYPE_NAME = dtSource.Rows[i][5].ToString().Trim(); - temp.EVALUATE_L = dtSource.Rows[i][6].ToString().Trim(); - temp.EVALUATE_E = dtSource.Rows[i][7].ToString().Trim(); - temp.EVALUATE_C = dtSource.Rows[i][8].ToString().Trim(); - temp.EVALUATE_SCORE = dtSource.Rows[i][9].ToString().Trim(); - temp.EVALUATE_LEVEL = dtSource.Rows[i][10].ToString().Trim(); - temp.MEASURES_NAME = dtSource.Rows[i][11].ToString().Trim(); - temp.DEPARTMENT_TYPE = dtSource.Rows[i][12].ToString().Trim(); - temp.DEPARTMENT_NAME = dtSource.Rows[i][13].ToString().Trim(); - temp.DEPARTMENT_USER = dtSource.Rows[i][14].ToString().Trim(); - temp.CHECK_CONTENT = dtSource.Rows[i][15].ToString().Trim(); - temp.CHECK_BASIC = dtSource.Rows[i][16].ToString().Trim(); - temp.CHECK_STANDARD = dtSource.Rows[i][17].ToString().Trim(); - temp.CHECK_LEVEL = dtSource.Rows[i][18].ToString().Trim(); - temp.CHECK_DEPARTMENT = dtSource.Rows[i][19].ToString().Trim(); - temp.CHECK_POST = dtSource.Rows[i][20].ToString().Trim(); - temp.CHECK_TYPE = dtSource.Rows[i][21].ToString().Trim(); - temp.CHECK_OBJECT = dtSource.Rows[i][22].ToString().Trim(); - temp.CHECK_CYCLE = dtSource.Rows[i][23].ToString().Trim(); - temp.HIDDEN_DESCRIPTION = dtSource.Rows[i][24].ToString().Trim(); - temp.HIDDEN_LEVEL = "一般"; - temp.HIDDEN_RECITIFY = dtSource.Rows[i][26].ToString().Trim(); - librarys.Add(temp); - } - if (!string.IsNullOrEmpty(Msg)) - { - throw new Exception(Msg); - } - else - { - UnifiedCommit(() => - { - if (librarys != null && librarys.Any()) - BantchAddEntityNoCommit(librarys); - }); - Msg = "导入成功!"; - } - return true; - } - public bool InsertModel4(DataTable dtSource, Guid? orgId, ref string Msg, int rowIndex = 1) - { - var userId = APT.Infrastructure.Api.AppContext.CurrentSession.UserID; - if (dtSource == null || dtSource.Rows.Count < rowIndex) - { - Msg = "未获取到导入数据"; - throw new Exception(Msg); - } - int rowAll = dtSource.Rows.Count; - List librarys = new List(); - if (rowAll == 1) - { - throw new Exception("导入必须两条以上,一条请直接新增"); - } - for (int i = 0; i < rowAll; i++) - { - T_SK_LIBRARY_IMPORT_POST temp = new T_SK_LIBRARY_IMPORT_POST(); - temp.ID = Guid.NewGuid(); - temp.ORG_ID = orgId; - var num = dtSource.Rows[i][0].ToString().Trim(); - temp.NUM = int.Parse(num); - temp.MineType = dtSource.Rows[i][1].ToString().Trim(); - temp.DEPARTMENT_NAME = dtSource.Rows[i][2].ToString().Trim(); - temp.POST_NAME = dtSource.Rows[i][3].ToString().Trim(); - temp.AREA_NAME1 = dtSource.Rows[i][4].ToString().Trim(); - temp.RISK_NAME1 = dtSource.Rows[i][5].ToString().Trim(); - temp.AREA_NAME2 = dtSource.Rows[i][6].ToString().Trim(); - temp.RISK_NAME2 = dtSource.Rows[i][7].ToString().Trim(); - temp.AREA_NAME3 = dtSource.Rows[i][8].ToString().Trim(); - temp.RISK_NAME3 = dtSource.Rows[i][9].ToString().Trim(); - temp.AREA_NAME4 = dtSource.Rows[i][10].ToString().Trim(); - temp.RISK_NAME4 = dtSource.Rows[i][11].ToString().Trim(); - temp.AREA_NAME5 = dtSource.Rows[i][12].ToString().Trim(); - temp.RISK_NAME5 = dtSource.Rows[i][13].ToString().Trim(); - temp.AREA_NAME6 = dtSource.Rows[i][14].ToString().Trim(); - temp.RISK_NAME6 = dtSource.Rows[i][15].ToString().Trim(); - librarys.Add(temp); - } - if (!string.IsNullOrEmpty(Msg)) - { - throw new Exception(Msg); - } - else - { - UnifiedCommit(() => - { - if (librarys != null && librarys.Any()) - BantchAddEntityNoCommit(librarys); - }); - Msg = "导入成功!"; - } - return true; - } - - /// - /// 辨识部门岗位,对应风险 - /// - /// - /// - [HttpPost, Route("GetPostRiskList")] - public JsonActionResult> GetPostRiskList([FromBody] KeywordFilter filter) - { - var loginDepart = APT.Infrastructure.Api.AppContext.CurrentSession.DepartmentID; - var posts = this.GetEntities(t => t.IS_DELETED == false, new BaseFilter(filter.OrgId)); - var departs = this.GetEntities(t => t.ENABLE_STATUS == 0 && t.CATEGORY == FMCATEGORY.ACTURE, new BaseFilter(filter.OrgId)); - var users = this.GetEntities(t => t.ENABLE_STATUS == 0, new BaseFilter(filter.OrgId)); - var AHDepart = departs.FirstOrDefault(t => t.ID == loginDepart); - //if (AHDepart != null && (AHDepart.DEPARTMENT_TYPE == 5 || AHDepart.DEPARTMENT_TYPE == 2)) - //{ - // loginDepart = departs.FirstOrDefault(t => t.PARENT_ID == null).ID; - //} - //List departmentIds = new List() { loginDepart.Value }; - //DepartmentService.GetDepartmentIds(filter.OrgId.Value, new List() { loginDepart.Value }, ref departmentIds); - List departmentIds = departs.Select(t => t.ID).ToList(); - var checkList = new JsonActionResult>(); - List postLists = new List(); - var detailContents = this.GetEntities(t => t.DEPARTMENT_ID != null && departmentIds.Contains((Guid)t.DEPARTMENT_ID), new BaseFilter(filter.OrgId), "Nav_Library.Nav_ProductionUnit", "Nav_PostDetails", "Nav_Department"); - if (detailContents != null && detailContents.Any()) - { - foreach (var item in detailContents) - { - if (item.Nav_PostDetails != null && item.Nav_PostDetails.Any()) - { - foreach (var item2 in item.Nav_PostDetails) - { - var user = users.FirstOrDefault(t => t.ID == item.Nav_Department?.USER_ID); - T_SK_ENTERPRISE_LIBRARY_POST part = new T_SK_ENTERPRISE_LIBRARY_POST(); - part.DEPARTMENT_ID = item.DEPARTMENT_ID; - part.ORG_ID = item.ORG_ID; - part.ENTERPRISE_LIBRARY_ID = item.ENTERPRISE_LIBRARY_ID; - part.Nav_Library = item.Nav_Library; - part.Nav_Department = item.Nav_Department; - part.POST_NAME = posts.FirstOrDefault(t => t.ID == item2.POST_ID)?.NAME; - part.PHONE = user?.NAME + " " + user?.PHONE; - postLists.Add(part); - } - } - } - checkList.Data = postLists.GroupBy(t => new { t.DEPARTMENT_ID, t.POST_NAME }).Select(m => m.FirstOrDefault()).OrderBy(m => m.DEPARTMENT_ID).ToList(); - if (checkList.Data != null && checkList.Data.Any()) - { - var libraryIds = postLists.Select(m => m.ENTERPRISE_LIBRARY_ID).Distinct().ToList(); - var librarys = this.GetEntities(t => libraryIds.Contains(t.ID), new BaseFilter(filter.OrgId), "Nav_Area", "Nav_Type", "Nav_RiskName", "Nav_Details", "Nav_ProductionUnit"); - foreach (var item in checkList.Data) - { - var tempIds = postLists.Where(t => t.DEPARTMENT_ID == item.DEPARTMENT_ID && t.POST_NAME == item.POST_NAME).Select(m => m.ENTERPRISE_LIBRARY_ID).Distinct().ToList(); - item.Nav_Librarys = librarys.Where(t => tempIds.Contains(t.ID)).OrderBy(m => m.EVALUATE_LEVEL).ToList(); - } - } - checkList.TotalCount = checkList.Data.Count; - } - return checkList; - } - - /// - /// 主表 - /// - /// - /// - /// - /// - /// - /// - public bool InsertModel5(DataTable dtSource, Guid? orgId, ref string Msg, int rowIndex = 1) - { - var userId = APT.Infrastructure.Api.AppContext.CurrentSession.UserID; - if (dtSource == null || dtSource.Rows.Count < rowIndex) - { - Msg = "未获取到导入数据"; - throw new Exception(Msg); - } - int rowAll = dtSource.Rows.Count; - List librarys = new List(); - if (rowAll == 1) - { - throw new Exception("导入必须两条以上,一条请直接新增"); - } - for (int i = 0; i < rowAll; i++) - { - T_SK_LIBRARY_IMPORT_MAIN temp = new T_SK_LIBRARY_IMPORT_MAIN(); - temp.ID = Guid.NewGuid(); - temp.ORG_ID = orgId; - temp.NUM = i + 1; - temp.MineType = dtSource.Rows[i][0].ToString().Trim(); - temp.AREA_NAME = dtSource.Rows[i][1].ToString().Trim(); - temp.RISK_NAME = dtSource.Rows[i][2].ToString().Trim(); - temp.RISK_DESCRIPTION = dtSource.Rows[i][3].ToString().Trim(); - temp.TYPE_NAME = dtSource.Rows[i][4].ToString().Trim(); - temp.EVALUATE_L = dtSource.Rows[i][5].ToString().Trim(); - temp.EVALUATE_E = dtSource.Rows[i][6].ToString().Trim(); - temp.EVALUATE_C = dtSource.Rows[i][7].ToString().Trim(); - temp.EVALUATE_SCORE = dtSource.Rows[i][8].ToString().Trim(); - temp.EVALUATE_LEVEL = dtSource.Rows[i][9].ToString().Trim(); - temp.EMERGENCY = dtSource.Rows[i][10].ToString().Trim(); - temp.DEPARTMENT_NAME = dtSource.Rows[i][11].ToString().Trim(); - librarys.Add(temp); - } - if (!string.IsNullOrEmpty(Msg)) - { - throw new Exception(Msg); - } - else - { - UnifiedCommit(() => - { - if (librarys != null && librarys.Any()) - BantchAddEntityNoCommit(librarys); - }); - Msg = "导入成功!"; - } - return true; - } - - /// - /// 管控措施表 - /// - /// - /// - /// - /// - /// - /// - public bool InsertModel6(DataTable dtSource, Guid? orgId, ref string Msg, int rowIndex = 1) - { - var userId = APT.Infrastructure.Api.AppContext.CurrentSession.UserID; - if (dtSource == null || dtSource.Rows.Count < rowIndex) - { - Msg = "未获取到导入数据"; - throw new Exception(Msg); - } - int rowAll = dtSource.Rows.Count; - List librarys = new List(); - if (rowAll == 1) - { - throw new Exception("导入必须两条以上,一条请直接新增"); - } - for (int i = 0; i < rowAll; i++) - { - T_SK_LIBRARY_IMPORT_MAIN_MEASURES temp = new T_SK_LIBRARY_IMPORT_MAIN_MEASURES(); - temp.ID = Guid.NewGuid(); - temp.ORG_ID = orgId; - temp.NUM = i + 1; - temp.MineType = dtSource.Rows[i][0].ToString().Trim(); - temp.AREA_NAME = dtSource.Rows[i][1].ToString().Trim(); - temp.RISK_NAME = dtSource.Rows[i][2].ToString().Trim(); - temp.RISK_DESCRIPTION = dtSource.Rows[i][3].ToString().Trim(); - temp.TYPE_NAME = dtSource.Rows[i][4].ToString().Trim(); - temp.MEASURES_NAME = dtSource.Rows[i][5].ToString().Trim(); - temp.CHECK_CONTENT = dtSource.Rows[i][6].ToString().Trim(); - temp.CHECK_BASIC = dtSource.Rows[i][7].ToString().Trim(); - temp.CHECK_STANDARD = dtSource.Rows[i][8].ToString().Trim(); - temp.CHECK_LEVEL = dtSource.Rows[i][9].ToString().Trim(); - temp.CHECK_DEPARTMENT = dtSource.Rows[i][10].ToString().Trim(); - temp.CHECK_POST = dtSource.Rows[i][11].ToString().Trim(); - temp.CHECK_TYPE = dtSource.Rows[i][12].ToString().Trim(); - temp.CHECK_OBJECT = dtSource.Rows[i][13].ToString().Trim(); - temp.CHECK_CYCLE = dtSource.Rows[i][14].ToString().Trim(); - librarys.Add(temp); - } - if (!string.IsNullOrEmpty(Msg)) - { - throw new Exception(Msg); - } - else - { - UnifiedCommit(() => - { - if (librarys != null && librarys.Any()) - BantchAddEntityNoCommit(librarys); - }); - Msg = "导入成功!"; - } - return true; - } - - /// - /// 隐患描述表 - /// - /// - /// - /// - /// - /// - /// - public bool InsertModel7(DataTable dtSource, Guid? orgId, ref string Msg, int rowIndex = 1) - { - var userId = APT.Infrastructure.Api.AppContext.CurrentSession.UserID; - if (dtSource == null || dtSource.Rows.Count < rowIndex) - { - Msg = "未获取到导入数据"; - throw new Exception(Msg); - } - int rowAll = dtSource.Rows.Count; - List librarys = new List(); - if (rowAll == 1) - { - throw new Exception("导入必须两条以上,一条请直接新增"); - } - for (int i = 0; i < rowAll; i++) - { - T_SK_LIBRARY_IMPORT_MAIN_HIDDEN temp = new T_SK_LIBRARY_IMPORT_MAIN_HIDDEN(); - temp.ID = Guid.NewGuid(); - temp.ORG_ID = orgId; - temp.NUM = i + 1; - temp.MineType = dtSource.Rows[i][0].ToString().Trim(); - temp.AREA_NAME = dtSource.Rows[i][1].ToString().Trim(); - temp.RISK_NAME = dtSource.Rows[i][2].ToString().Trim(); - temp.RISK_DESCRIPTION = dtSource.Rows[i][3].ToString().Trim(); - temp.TYPE_NAME = dtSource.Rows[i][4].ToString().Trim(); - temp.MEASURES_NAME = dtSource.Rows[i][5].ToString().Trim(); - temp.CHECK_CONTENT = dtSource.Rows[i][6].ToString().Trim(); - temp.HIDDEN_DESCRIPTION = dtSource.Rows[i][7].ToString().Trim(); - temp.HIDDEN_LEVEL = dtSource.Rows[i][8].ToString().Trim(); - temp.HIDDEN_RECITIFY = dtSource.Rows[i][9].ToString().Trim(); - librarys.Add(temp); - } - if (!string.IsNullOrEmpty(Msg)) - { - throw new Exception(Msg); - } - else - { - UnifiedCommit(() => - { - if (librarys != null && librarys.Any()) - BantchAddEntityNoCommit(librarys); - }); - Msg = "导入成功!"; - } - return true; - } - /// - /// 隐患描述表 - /// - /// - /// - /// - /// - /// - /// - public bool InsertModel8(DataTable dtSource, Guid? orgId, ref string Msg, int rowIndex = 1) - { - var userId = APT.Infrastructure.Api.AppContext.CurrentSession.UserID; - if (dtSource == null || dtSource.Rows.Count < rowIndex) - { - Msg = "未获取到导入数据"; - throw new Exception(Msg); - } - int rowAll = dtSource.Rows.Count; - List librarys = new List(); - if (rowAll == 1) - { - throw new Exception("导入必须两条以上,一条请直接新增"); - } - for (int i = 0; i < rowAll; i++) - { - T_SK_LIBRARY_IMPORT_MAIN_POST temp = new T_SK_LIBRARY_IMPORT_MAIN_POST(); - temp.ID = Guid.NewGuid(); - temp.ORG_ID = orgId; - temp.NUM = i + 1; - temp.MineType = dtSource.Rows[i][0].ToString().Trim(); - temp.AREA_NAME = dtSource.Rows[i][1].ToString().Trim(); - temp.RISK_NAME = dtSource.Rows[i][2].ToString().Trim(); - temp.RISK_DESCRIPTION = dtSource.Rows[i][3].ToString().Trim(); - temp.TYPE_NAME = dtSource.Rows[i][4].ToString().Trim(); - temp.DEPARTMENT_NAME = dtSource.Rows[i][5].ToString().Trim(); - temp.POST_NAME = dtSource.Rows[i][6].ToString().Trim(); - librarys.Add(temp); - } - if (!string.IsNullOrEmpty(Msg)) - { - throw new Exception(Msg); - } - else - { - UnifiedCommit(() => - { - if (librarys != null && librarys.Any()) - BantchAddEntityNoCommit(librarys); - }); - Msg = "导入成功!"; - } - return true; - } - /// - /// 获得单条实体数据 - /// - /// 过滤实体 - /// - [HttpPost, Route("SKGetOld")] - public JsonActionResult SKGetOld([FromBody] KeywordFilter filter) - { - var result = WitEntity(null, filter); - if (result != null && result.Data != null) - { - if (result.Data.Nav_Details != null && result.Data.Nav_Details.Any()) - { - foreach (var item in result.Data.Nav_Details) - { - if (item.Nav_DetailContents != null && item.Nav_DetailContents.Any()) - { - item.Nav_DetailContents.ForEach(t => t.Nav_DetailHiddens.OrderBy(m => m.NUM)); - item.Nav_DetailContents.ForEach(t => t.Nav_DetailDeparts.OrderBy(m => m.CHECK_TYPE).ThenBy(t => t.DEPARTMENT_ID)); - item.Nav_DetailContents.OrderBy(t => t.NUM); - } - } - result.Data.Nav_Details.OrderBy(t => t.NUM); - result.Data.Nav_Departs.OrderBy(t => t.DEPARTMENT_TYPE).ThenBy(m => m.DEPARTMENT_ID); - result.Data.Nav_Posts.OrderBy(t => t.DEPARTMENT_ID); - } - - } - return result; - } - - /// - /// 获得单条实体数据 - /// - /// 过滤实体 - /// - [HttpPost, Route("SKGet")] - public JsonActionResult SKGet([FromBody] KeywordFilter filter) - { - return SafeExecute(() => - { - var result = new T_SK_ENTERPRISE_LIBRARY(); - var id = filter.FilterGroup.Rules.FirstOrDefault(t => t.Field == "ID")?.Value.ToString(); - var mineType = filter.FilterGroup.Rules.FirstOrDefault(t => t.Field == "PRODUCTION_UNIT_ID"); - var areaId = filter.FilterGroup.Rules.FirstOrDefault(t => t.Field == "AREA_ID"); - //var typeId = filter.FilterGroup.Rules.FirstOrDefault(t => t.Field == "TYPE_ID"); - var riskName = filter.FilterGroup.Rules.FirstOrDefault(t => t.Field == "RISK_NAME"); - //var riskDes = filter.FilterGroup.Rules.FirstOrDefault(t => t.Field == "RISK_DESCRIPTION"); - filter.IgnoreDataRule = true; - if (!string.IsNullOrEmpty(id)) - { - result = this.GetEntity(id, new string[] { "Nav_Type", "Nav_Area","Nav_RiskName", - "Nav_SCOREL","Nav_SCOREE","Nav_SCOREC","Nav_ProductionUnit"}); - } - else if (mineType != null && areaId != null && riskName != null)//&& typeId != null && riskDes!=null - { - result = this.GetEntity(t => t.PRODUCTION_UNIT_ID == Guid.Parse(mineType.Value.ToString()) && t.AREA_ID == Guid.Parse(areaId.Value.ToString()) && t.RISK_NAME == riskName.Value.ToString(), new string[] { "Nav_Type", "Nav_Area","Nav_RiskName", - "Nav_SCOREL","Nav_SCOREE","Nav_SCOREC","Nav_ProductionUnit"}); - } - if (result != null) - { - var departs = this.GetEntities(t => t.ENTERPRISE_LIBRARY_ID == result.ID, new BaseFilter(filter.OrgId), "Nav_Department", "Nav_User"); - result.Nav_Departs = departs.OrderBy(t => t.DEPARTMENT_TYPE).ThenBy(m => m.DEPARTMENT_ID).ToList(); - var posts = this.GetEntities(t => t.ENTERPRISE_LIBRARY_ID == result.ID, new BaseFilter(filter.OrgId), "Nav_Department", "Nav_PostDetails.Nav_Post"); - result.Nav_Posts = posts.OrderBy(t => t.DEPARTMENT_ID).ToList(); - var details = this.GetEntities(t => t.ENTERPRISE_LIBRARY_ID == result.ID, new BaseFilter(filter.OrgId)); - if (details.Any()) - { - var detailIds = details.Select(t => t.ID).ToList(); - var contents = this.GetEntities(t => detailIds.Contains(t.ENTERPRISE_LIBRARY_DETAIL_ID), new BaseFilter(filter.OrgId), "Nav_Contents"); - var contentIds = contents.Select(t => t.ID).ToList(); - var contentdeparts = this.GetEntities(t => contentIds.Contains(t.ENTERPRISE_LIBRARY_DETAIL_CONTENT_ID), new BaseFilter(filter.OrgId), "Nav_Department", "Nav_CheckType", "Nav_DetailPosts.Nav_Post", "Nav_DetailUsers.Nav_User"); - var contenthiddens = this.GetEntities(t => contentIds.Contains(t.ENTERPRISE_LIBRARY_DETAIL_CONTENT_ID), new BaseFilter(filter.OrgId), "Nav_Question"); - var contentbasics = this.GetEntities(t => contentIds.Contains(t.ENTERPRISE_LIBRARY_DETAIL_CONTENT_ID), new BaseFilter(filter.OrgId), "Nav_Law"); - foreach (var detail in details) - { - var contentTemps = contents.Where(t => t.ENTERPRISE_LIBRARY_DETAIL_ID == detail.ID).ToList(); - detail.Nav_DetailContents = contentTemps.OrderBy(t => t.NUM).ToList(); - foreach (var content in detail.Nav_DetailContents) - { - var departTemps = contentdeparts.Where(t => t.ENTERPRISE_LIBRARY_DETAIL_CONTENT_ID == content.ID).ToList(); - content.Nav_DetailDeparts = departTemps.OrderBy(t => t.CHECK_TYPE).ThenBy(m => m.DEPARTMENT_ID).ToList(); - var hiddenTemps = contenthiddens.Where(t => t.ENTERPRISE_LIBRARY_DETAIL_CONTENT_ID == content.ID).ToList(); - content.Nav_DetailHiddens = hiddenTemps.OrderBy(t => t.NUM).ToList(); - var basicTemps = contentbasics.Where(t => t.ENTERPRISE_LIBRARY_DETAIL_CONTENT_ID == content.ID).ToList(); - content.Nav_DetailBasics = basicTemps.ToList(); - } - } - } - result.Nav_Details = details.OrderBy(t => t.NUM).ToList(); - } - return result; - }); - } - - /// - /// 查询 - /// - /// - /// - [HttpPost, Route("DepartOrderPaged")] - public PagedActionResult DepartOrderPaged([FromBody] KeywordPageFilter pageFilter) - { - var result = new PagedActionResult(); - if (!string.IsNullOrEmpty(pageFilter.Keyword)) - { - if (pageFilter.Keyword == "31") - { - FilterRule order2 = new FilterRule(); - order2.Field = "MineType"; - order2.Value = 0; - pageFilter.FilterGroup.Rules.Add(order2); - } - else - { - FilterRule order2 = new FilterRule(); - order2.Field = "MineType"; - order2.Value = pageFilter.Keyword; - pageFilter.FilterGroup.Rules.Add(order2); - } - } - result = GetOrderPageEntities(null, pageFilter); - return result; - } - [HttpPost, Route("GetCheckListOld")] - public JsonActionResult> GetCheckListOld([FromBody] KeywordFilter filter) - { - var loginDepart = APT.Infrastructure.Api.AppContext.CurrentSession.DepartmentID; - var departs = this.GetEntities(t => t.ENABLE_STATUS == 0, new BaseFilter(filter.OrgId)); - List selectMinetype = new List(); - var minetype = departs.FirstOrDefault(t => t.ID == loginDepart)?.MineType; - switch (minetype) - { - case 0: - selectMinetype.Add(SKProductionUnit.All.GetDescription()); - selectMinetype.Add(SKProductionUnit.MineChoose.GetDescription()); - selectMinetype.Add(SKProductionUnit.MineUnderGround.GetDescription()); - selectMinetype.Add(SKProductionUnit.Minelast.GetDescription()); - selectMinetype.Add(SKProductionUnit.Mine.GetDescription()); - selectMinetype.Add(SKProductionUnit.Department.GetDescription()); - selectMinetype.Add(SKProductionUnit.Nonmetallic.GetDescription()); - break; - case 10: - selectMinetype.Add(SKProductionUnit.MineChoose.GetDescription()); - selectMinetype.Add(SKProductionUnit.Minelast.GetDescription()); - selectMinetype.Add(SKProductionUnit.Nonmetallic.GetDescription()); - break; - case 20: - selectMinetype.Add(SKProductionUnit.Minelast.GetDescription()); - break; - case 30: - selectMinetype.Add(SKProductionUnit.Mine.GetDescription()); - break; - case 40: - selectMinetype.Add(SKProductionUnit.MineUnderGround.GetDescription()); - break; - default: - selectMinetype.Add(SKProductionUnit.All.GetDescription()); - selectMinetype.Add(SKProductionUnit.MineChoose.GetDescription()); - selectMinetype.Add(SKProductionUnit.MineUnderGround.GetDescription()); - selectMinetype.Add(SKProductionUnit.Minelast.GetDescription()); - selectMinetype.Add(SKProductionUnit.Mine.GetDescription()); - selectMinetype.Add(SKProductionUnit.Department.GetDescription()); - selectMinetype.Add(SKProductionUnit.Nonmetallic.GetDescription()); - break; - } - //List departmentIds = new List() { loginDepart.Value }; - //DepartmentService.GetDepartmentIds(filter.OrgId.Value, new List() { loginDepart.Value }, ref departmentIds); - var checkList = new JsonActionResult>(); - List list = new List(); - var checkTypeIds = this.GetEntities(t => t.NAME == "岗位排查", new BaseFilter(filter.OrgId)).Select(m => m.ID).ToList(); - var detailContents = this.GetEntities(t => !t.IS_DELETED, new BaseFilter(filter.OrgId), "Nav_DetailContent.Nav_LibraryDetail.Nav_Library", "Nav_CheckType", "Nav_Department").ToList(); - var contents = this.GetEntities(t => !t.IS_DELETED, new BaseFilter(filter.OrgId), "Nav_LibraryDetail.Nav_Library.Nav_Area", "Nav_Contents").ToList(); - var libraryIds = this.GetEntities(t => !t.IS_DELETED, new BaseFilter(filter.OrgId)).Select(m => m.ENTERPRISE_LIBRARY_ID).ToList(); - var posts = this.GetEntities(t => !t.IS_DELETED, new BaseFilter(filter.OrgId), "Nav_PostDetails.Nav_Post").ToList(); - if (detailContents != null && detailContents.Any()) - { - detailContents.ForEach(t => t.MineType = t.Nav_DetailContent.Nav_LibraryDetail.Nav_Library.MineType); - var group = detailContents.GroupBy(t => new { t.MineType, t.CHECK_TYPE, t.CHECK_CYCLE, t.DEPARTMENT_ID, t.CHECK_TYPE_ID }).ToList(); - foreach (var item in group) - { - var detail = detailContents.FirstOrDefault(t => t.MineType == item.Key.MineType && t.CHECK_CYCLE == item.Key.CHECK_CYCLE && t.CHECK_TYPE == item.Key.CHECK_TYPE && t.CHECK_TYPE_ID == item.Key.CHECK_TYPE_ID && t.DEPARTMENT_ID == item.Key.DEPARTMENT_ID); - CheckListNew listNew = new CheckListNew(); - listNew.MineType = item.Key.MineType.GetDescription(); - listNew.CheckType = detail?.Nav_CheckType?.NAME; - listNew.CheckCycle = item.Key.CHECK_CYCLE.GetDescription(); - listNew.CheckLevel = item.Key.CHECK_TYPE.GetDescription(); - listNew.Num = (int)item.Key.CHECK_TYPE; - listNew.CheckDepart = detail?.Nav_Department?.NAME; - if (checkTypeIds != null && checkTypeIds.Any() && item.Key.CHECK_TYPE_ID != null && checkTypeIds.Contains((Guid)item.Key.CHECK_TYPE_ID)) - { - var itemTemp = posts.FirstOrDefault(t => t.ENTERPRISE_LIBRARY_ID == detail.Nav_DetailContent.Nav_LibraryDetail.Nav_Library.ID && t.DEPARTMENT_ID == item.Key.DEPARTMENT_ID)?.Nav_PostDetails; - if (itemTemp != null && itemTemp.Any()) - { - var lists = itemTemp.Select(t => t.Nav_Post?.NAME).Distinct().ToList(); - listNew.CheckPost = string.Join(",", lists); - } - else - { - listNew.CheckPost = detail?.Nav_Department?.NAME + "辨识岗位未配置"; - } - } - else - { - if (item.Key.CHECK_TYPE == SKDepartmentTypeEnum.班组级) - { - listNew.CheckPost = "班组负责人"; - } - else if (item.Key.CHECK_TYPE == SKDepartmentTypeEnum.车间级) - { - listNew.CheckPost = "车间安全员"; - } - else if (item.Key.CHECK_TYPE == SKDepartmentTypeEnum.部门级) - { - listNew.CheckPost = "部门安全员"; - } - else - { - listNew.CheckPost = "安环部安全员"; - } - } - - var depathaveIds = detailContents.Where(t => t.DEPARTMENT_ID == item.Key.DEPARTMENT_ID && t.CHECK_TYPE_ID == item.Key.CHECK_TYPE_ID && t.CHECK_TYPE == item.Key.CHECK_TYPE && t.CHECK_CYCLE == item.Key.CHECK_CYCLE && t.MineType == item.Key.MineType).Select(m => m.ENTERPRISE_LIBRARY_DETAIL_CONTENT_ID).Distinct().ToList(); - var temps = contents.Where(t => depathaveIds.Contains(t.ID)).ToList(); - if (temps.Any()) - { - List listDetail = new List(); - foreach (var tem in temps) - { - CheckListDetail checkListDetail = new CheckListDetail(); - checkListDetail.CHECK_CONTENTS_ID = tem.CHECK_CONTENTS_ID; - checkListDetail.CHECK_CONTENTS_NAME = tem.Nav_Contents?.CHECKCONTENT; - checkListDetail.RISK_NAME = tem.Nav_LibraryDetail?.Nav_Library?.RISK_NAME; - checkListDetail.RISK_AREA_ID = tem.Nav_LibraryDetail?.Nav_Library?.AREA_ID; - checkListDetail.RISK_AREA_NAME = tem.Nav_LibraryDetail?.Nav_Library?.Nav_Area?.NAME; - checkListDetail.CHECKPROOF = tem.CHECK_BASIC; - checkListDetail.CHECKSTANDARD = tem.CHECK_STANDARD; - listDetail.Add(checkListDetail); - } - listNew.details = listDetail.OrderBy(t => t.RISK_AREA_NAME).ThenBy(m => m.RISK_NAME).ToList(); - } - list.Add(listNew); - } - checkList.Data = list.Where(t => selectMinetype.Contains(t.MineType)).GroupBy(t => new { t.MineType, t.CheckType, t.CheckCycle, t.CheckLevel, t.CheckDepart, t.CheckPost }).Select(m => m.FirstOrDefault()).OrderBy(n => n.MineType).ThenBy(x => x.Num).ThenBy(y => y.CheckType).ToList(); - checkList.TotalCount = checkList.Data.Count; - } - return checkList; - } - [HttpPost, Route("GetCheckListNewX")] - public JsonActionResult> GetCheckListNewX([FromBody] KeywordFilter filter) - { - var loginDepart = APT.Infrastructure.Api.AppContext.CurrentSession.DepartmentID; - var loginUser = APT.Infrastructure.Api.AppContext.CurrentSession.UserID; - var userInfo = this.GetEntity(t => t.ID == loginUser, "Nav_ProdutionUnit"); - List selectMinetype = new List(); - if (userInfo != null && userInfo.Nav_ProdutionUnit != null && userInfo.Nav_ProdutionUnit.Any()) + } + } + if (!string.IsNullOrEmpty(filterValue)) { - selectMinetype = userInfo.Nav_ProdutionUnit.Select(t => t.ID).Distinct().ToList(); - } - //var minetype = departs.FirstOrDefault(t => t.ID == loginDepart)?.MineType; - //switch (minetype) - //{ - // case 0: - // selectMinetype.Add(SKProductionUnit.All.GetDescription()); - // selectMinetype.Add(SKProductionUnit.MineChoose.GetDescription()); - // selectMinetype.Add(SKProductionUnit.MineUnderGround.GetDescription()); - // selectMinetype.Add(SKProductionUnit.Minelast.GetDescription()); - // selectMinetype.Add(SKProductionUnit.Mine.GetDescription()); - // selectMinetype.Add(SKProductionUnit.Department.GetDescription()); - // selectMinetype.Add(SKProductionUnit.Nonmetallic.GetDescription()); - // break; - // case 10: - // selectMinetype.Add(SKProductionUnit.MineChoose.GetDescription()); - // selectMinetype.Add(SKProductionUnit.Minelast.GetDescription()); - // selectMinetype.Add(SKProductionUnit.Nonmetallic.GetDescription()); - // break; - // case 20: - // selectMinetype.Add(SKProductionUnit.Minelast.GetDescription()); - // break; - // case 30: - // selectMinetype.Add(SKProductionUnit.Mine.GetDescription()); - // break; - // case 40: - // selectMinetype.Add(SKProductionUnit.MineUnderGround.GetDescription()); - // break; - // default: - // selectMinetype.Add(SKProductionUnit.All.GetDescription()); - // selectMinetype.Add(SKProductionUnit.MineChoose.GetDescription()); - // selectMinetype.Add(SKProductionUnit.MineUnderGround.GetDescription()); - // selectMinetype.Add(SKProductionUnit.Minelast.GetDescription()); - // selectMinetype.Add(SKProductionUnit.Mine.GetDescription()); - // selectMinetype.Add(SKProductionUnit.Department.GetDescription()); - // selectMinetype.Add(SKProductionUnit.Nonmetallic.GetDescription()); - // break; - //} - //List departmentIds = new List() { loginDepart.Value }; - //DepartmentService.GetDepartmentIds(filter.OrgId.Value, new List() { loginDepart.Value }, ref departmentIds); - var checkList = new JsonActionResult>(); - List list = new List(); - List detailContents = new List(); - var checkTypeIds = this.GetEntities(t => t.NAME == "岗位排查", new BaseFilter(filter.OrgId)).Select(m => m.ID).ToList(); - var users = this.GetEntities(t => !t.IS_DELETED, new BaseFilter(filter.OrgId), "Nav_Person").ToList(); - var librarys = this.GetEntities(t => !t.IS_DELETED, new BaseFilter(filter.OrgId), "Nav_Area", "Nav_ProductionUnit").ToList(); - var libraryDetails = this.GetEntities(t => !t.IS_DELETED, new BaseFilter(filter.OrgId)).ToList(); - var contents = this.GetEntities(t => !t.IS_DELETED, new BaseFilter(filter.OrgId), "Nav_Contents").ToList(); - var contentDeparts = this.GetEntities(t => !t.IS_DELETED, new BaseFilter(filter.OrgId), "Nav_CheckType", "Nav_Department").ToList(); - var posts = this.GetEntities(t => !t.IS_DELETED, new BaseFilter(filter.OrgId), "Nav_PostDetails.Nav_Post").ToList(); - if (librarys != null && librarys.Any()) - { - foreach (var item in librarys) - { - var libraryPost = posts.Where(t => t.ENTERPRISE_LIBRARY_ID == item.ID).ToList(); - var details = libraryDetails.Where(t => t.ENTERPRISE_LIBRARY_ID == item.ID).ToList(); - var detailIds = details.Select(t => t.ID).ToList(); - var contentTemps = contents.Where(t => detailIds.Contains(t.ENTERPRISE_LIBRARY_DETAIL_ID)).ToList(); - var contentTempIds = contentTemps.Select(t => t.ID).ToList(); - var contentDepartTemps = contentDeparts.Where(t => contentTempIds.Contains(t.ENTERPRISE_LIBRARY_DETAIL_CONTENT_ID)).ToList(); - if (contentDepartTemps != null && contentDepartTemps.Any()) - { - foreach (var depart in contentDepartTemps) - { - var first = libraryPost.FirstOrDefault(t => t.DEPARTMENT_ID == depart.DEPARTMENT_ID)?.Nav_PostDetails?.Select(m => m.Nav_Post).OrderBy(n => n?.NAME).ToList(); - var contentFirst = contentTemps.FirstOrDefault(t => t.ID == depart.ENTERPRISE_LIBRARY_DETAIL_CONTENT_ID); - if (first != null && first.Any()) - { - foreach (var post in first) - { - var userRole = users.FirstOrDefault(t => t.Nav_Person != null && t.Nav_Person.POST_ID == post?.ID).APPROVE_ROLE_ID; - if (userRole == null) - { - T_SK_ENTERPRISE_LIBRARY_DETAIL_CONTENT_DEPART de = new T_SK_ENTERPRISE_LIBRARY_DETAIL_CONTENT_DEPART(); - de.POST_NAME = post?.NAME; - de.PRODUCTION_UNIT_ID = item.PRODUCTION_UNIT_ID; - de.MINE_NAME = item.Nav_ProductionUnit?.NAME; - de.AREA_NAME = item.Nav_Area?.NAME; - de.ENTERPRISE_LIBRARY_DETAIL_ID = contentFirst?.ENTERPRISE_LIBRARY_DETAIL_ID; - de.ENTERPRISE_LIBRARY_ID = item.ID; - de.TYPE_NAME = depart.Nav_CheckType?.NAME; - de.DEPART_NAME = depart.Nav_Department?.NAME; - de.ENTERPRISE_LIBRARY_DETAIL_CONTENT_ID = depart.ENTERPRISE_LIBRARY_DETAIL_CONTENT_ID; - de.CHECK_CYCLE = depart.CHECK_CYCLE; - de.CHECK_TYPE_ID = depart.CHECK_TYPE_ID; - de.DEPARTMENT_ID = depart.DEPARTMENT_ID; - de.CHECK_TYPE = depart.CHECK_TYPE; - detailContents.Add(de); - } - } - } - else - { - T_SK_ENTERPRISE_LIBRARY_DETAIL_CONTENT_DEPART de = new T_SK_ENTERPRISE_LIBRARY_DETAIL_CONTENT_DEPART(); - de.POST_NAME = "未配置辨识岗位"; - de.PRODUCTION_UNIT_ID = item.PRODUCTION_UNIT_ID; - de.MINE_NAME = item.Nav_ProductionUnit?.NAME; - de.AREA_NAME = item.Nav_Area?.NAME; - de.ENTERPRISE_LIBRARY_DETAIL_ID = contentFirst?.ENTERPRISE_LIBRARY_DETAIL_ID; - de.ENTERPRISE_LIBRARY_ID = item.ID; - de.TYPE_NAME = depart.Nav_CheckType?.NAME; - de.DEPART_NAME = depart.Nav_Department?.NAME; - de.ENTERPRISE_LIBRARY_DETAIL_CONTENT_ID = depart.ENTERPRISE_LIBRARY_DETAIL_CONTENT_ID; - de.CHECK_CYCLE = depart.CHECK_CYCLE; - de.CHECK_TYPE_ID = depart.CHECK_TYPE_ID; - de.DEPARTMENT_ID = depart.DEPARTMENT_ID; - de.CHECK_TYPE = depart.CHECK_TYPE; - detailContents.Add(de); - } - } - } - } - } - if (detailContents != null && detailContents.Any()) - { - foreach (var item in contents) - { - var detailLib = libraryDetails.FirstOrDefault(t => t.ID == item.ENTERPRISE_LIBRARY_DETAIL_ID); - var lib = librarys.FirstOrDefault(t => t.ID == detailLib?.ENTERPRISE_LIBRARY_ID); - item.RISK_NAME = lib?.RISK_NAME; - item.AREA_ID = lib?.AREA_ID; - item.Nav_Area = lib?.Nav_Area; - } - foreach (var item in detailContents) - { - if (checkTypeIds != null && checkTypeIds.Any() && item.CHECK_TYPE_ID != null && checkTypeIds.Contains((Guid)item.CHECK_TYPE_ID)) - { - - } - else - { - if (item.CHECK_TYPE == SKDepartmentTypeEnum.班组级) - { - item.POST_NAME = "班组负责人"; - } - else if (item.CHECK_TYPE == SKDepartmentTypeEnum.车间级) - { - item.POST_NAME = "车间安全员"; - } - else if (item.CHECK_TYPE == SKDepartmentTypeEnum.部门级) - { - item.POST_NAME = "部门安全员"; - } - else - { - item.POST_NAME = "安环部安全员"; - } - } - } - var group = detailContents.GroupBy(t => new { t.PRODUCTION_UNIT_ID, t.MINE_NAME,t.CHECK_TYPE, t.CHECK_CYCLE, t.DEPART_NAME, t.DEPARTMENT_ID, t.CHECK_TYPE_ID, t.TYPE_NAME, t.POST_NAME }).ToList(); - foreach (var item in group) - { - CheckListNew listNew = new CheckListNew(); - listNew.PRODUCTION_UNIT_ID = item.Key.PRODUCTION_UNIT_ID; - listNew.MineType = item.Key.MINE_NAME; - listNew.CheckType = item.Key.TYPE_NAME; - listNew.CheckCycle = item.Key.CHECK_CYCLE.GetDescription(); - listNew.CheckLevel = item.Key.CHECK_TYPE.GetDescription(); - listNew.Num = (int)item.Key.CHECK_TYPE; - listNew.CheckDepart = item.Key.DEPART_NAME; - listNew.CheckPost = item.Key.POST_NAME; - var depathaveIds = detailContents.Where(t => t.DEPARTMENT_ID == item.Key.DEPARTMENT_ID && t.CHECK_TYPE_ID == item.Key.CHECK_TYPE_ID && t.CHECK_TYPE == item.Key.CHECK_TYPE && t.CHECK_CYCLE == item.Key.CHECK_CYCLE && t.PRODUCTION_UNIT_ID == item.Key.PRODUCTION_UNIT_ID && t.POST_NAME == item.Key.POST_NAME).Select(m => m.ENTERPRISE_LIBRARY_DETAIL_CONTENT_ID).Distinct().ToList(); - var temps = contents.Where(t => depathaveIds.Contains(t.ID)).Distinct().ToList(); - if (temps.Any()) - { - List listDetail = new List(); - foreach (var tem in temps) - { - CheckListDetail checkListDetail = new CheckListDetail(); - checkListDetail.CHECK_CONTENTS_ID = tem.CHECK_CONTENTS_ID; - checkListDetail.CHECK_CONTENTS_NAME = tem.Nav_Contents?.CHECKCONTENT; - checkListDetail.RISK_NAME = tem.RISK_NAME; - checkListDetail.RISK_AREA_ID = tem.AREA_ID; - checkListDetail.RISK_AREA_NAME = tem.Nav_Area?.NAME; - checkListDetail.CHECKPROOF = tem.CHECK_BASIC; - checkListDetail.CHECKSTANDARD = tem.CHECK_STANDARD; - listDetail.Add(checkListDetail); - } - listNew.details = listDetail.OrderBy(t => t.RISK_AREA_NAME).ThenBy(m => m.RISK_NAME).ToList(); - } - list.Add(listNew); - } - if (userInfo != null && userInfo.NAME.Contains("管理员")) + var users = this.GetEntities(t => t.DEPARTMENT_ID == Guid.Parse(filterValue) && t.ENABLE_STATUS == 0 && t.PERSON_ID != null, new BaseFilter(pageFilter.OrgId), "Nav_Person"); + var postIds = users.Where(m => m.Nav_Person != null).Select(t => t.Nav_Person.POST_ID).Distinct().ToList(); + if (postIds.Any()) { - checkList.Data = list.OrderBy(n => n.PRODUCTION_UNIT_ID).ThenBy(x => x.Num).ThenBy(n => n.CheckDepart).ToList(); - } + result = this.GetOrderPageEntities(t => postIds.Contains(t.ID), pageFilter); + } else { - checkList.Data = list.Where(t => t.PRODUCTION_UNIT_ID!=null && selectMinetype.Contains((Guid)t.PRODUCTION_UNIT_ID)).OrderBy(n => n.PRODUCTION_UNIT_ID).ThenBy(x => x.Num).ThenBy(n => n.CheckDepart).ToList(); - } - checkList.TotalCount = checkList.Data.Count; - } - return checkList; + //result = null;//this.GetOrderPageEntities(null, pageFilter); + } + } + else if (!string.IsNullOrEmpty(pageFilter.Keyword)) + { + var users = this.GetEntities(t => t.DEPARTMENT_ID == Guid.Parse(pageFilter.Keyword) && t.ENABLE_STATUS == 0 && t.PERSON_ID != null, new BaseFilter(pageFilter.OrgId), "Nav_Person"); + var postIds = users.Where(m => m.Nav_Person != null).Select(t => t.Nav_Person.POST_ID).Distinct().ToList(); + if (postIds.Any()) + { + result = this.GetOrderPageEntities(t => postIds.Contains(t.ID), pageFilter); + } + else + { + //result = null;//this.GetOrderPageEntities(null, pageFilter); + } + } + else + { + //result = null;//this.GetOrderPageEntities(null, pageFilter); + } + return result; + } + /// + /// 获得单条实体数据 + /// + /// 过滤实体 + /// + [HttpPost, Route("PostLevel")] + public JsonActionResult PostLevel([FromBody] T_SK_ENTERPRISE_LIBRARY entity) + { + var result = new JsonActionResult(); + result.Data = new T_SK_ENTERPRISE_LIBRARY(); + var levels = new List(); + if (entity != null && entity.Nav_Posts != null) + { + var temps = new List(); + var departIds = entity.Nav_Posts.Select(t => t.DEPARTMENT_ID).Distinct().ToList(); + if (!departIds.Any()) + { + throw new Exception("请先填写辨识岗位"); + } + var departs = this.GetEntities(t => departIds.Contains(t.ID), new BaseFilter(entity.ORG_ID), "Nav_User"); + if (departs.Any()) + { + foreach (var item in departs) + { + T_SK_ENTERPRISE_LIBRARY_DEPART de = new T_SK_ENTERPRISE_LIBRARY_DEPART(); + de.DEPARTMENT_ID = item.ID; + de.DEPARTMENT_TYPE = item.DEPARTMENT_TYPE == 10 ? SKDepartmentTypeEnum.部门级 : item.DEPARTMENT_TYPE == 5 ? SKDepartmentTypeEnum.公司级 : item.DEPARTMENT_TYPE == 15 ? SKDepartmentTypeEnum.车间级 : SKDepartmentTypeEnum.班组级; + de.Nav_Department = item; + de.USER_ID = item.USER_ID; + de.Nav_User = item.Nav_User; + temps.Add(de); + } + } + if (temps.Any()) + { + var x = temps.Where(t => t.DEPARTMENT_TYPE == SKDepartmentTypeEnum.公司级); + levels.AddRange(x); + var y = temps.Where(t => t.DEPARTMENT_TYPE != SKDepartmentTypeEnum.公司级).OrderBy(m => m.DEPARTMENT_TYPE); + levels.AddRange(y); + result.Data.Nav_Departs = levels; + } + } + return result; + } + /// + /// 获取导入数据 + /// 参考 [Route("api/PF/Import")] + /// + /// + [HttpPost, Route("GetImportData")] + public JsonActionResult GetImportData() + { + return SafeExecute(() => + { + var orgId = APT.Infrastructure.Api.AppContext.CurrentSession.OrgId; + var httpRequest = this.HttpContext.Request; + string orgIdStr = httpRequest.Form["OrgId"];// 获取 组织 + ImportDataModel result = new ImportDataModel(); + var dic = Path.Combine(System.AppContext.BaseDirectory, "tempImportFiles"); + if (!Directory.Exists(dic)) + Directory.CreateDirectory(dic); + foreach (var key in httpRequest.Form.Files) // 文件键 + { + var postedFile = key; // 获取文件键对应的文件对象 + string filePath = Path.Combine(dic, DateTime.Now.ToString("yyyy_MM_dd_hh_mm_ss") + "_" + postedFile.FileName); + Byte[] fileData = new Byte[postedFile.Length]; + Stream sr = postedFile.OpenReadStream();//创建数据流对象 + sr.Read(fileData, 0, (int)postedFile.Length); + using (FileStream fs = new FileStream(filePath, FileMode.CreateNew)) + { + fs.Write(fileData, 0, fileData.Length); + fs.Flush(); + fs.Close(); + } + + //获取数据 + Dictionary startRowIndexs = new Dictionary(); + startRowIndexs.Add(0, 1);//根据Excel格式数据赋值 + var dataTables = FileUtils.ReadExcelByOledb(filePath, startRowIndexs); + string Msg = string.Empty; + bool isOK = InsertModel5(dataTables.Tables[0], orgId, ref Msg); + if (isOK) + { + bool isOK1 = InsertModel8(dataTables.Tables[1], orgId, ref Msg); + if (isOK1) + { + bool isOK2 = InsertModel6(dataTables.Tables[2], orgId, ref Msg); + if (isOK2) + { + bool isOK3 = InsertModel7(dataTables.Tables[3], orgId, ref Msg); + } + } + } + try + { + System.IO.File.Delete(filePath); + } + catch { } + + result.Data = Msg; + result.MessageList = new List { Msg }; + } + + return result; + }); + } + /// + /// 数据插入 + /// + /// + /// + /// + /// + /// + /// + public bool InsertModel(DataTable dtSource, Guid? orgId, ref string Msg, int rowIndex = 1) + { + var userId = APT.Infrastructure.Api.AppContext.CurrentSession.UserID; + if (dtSource == null || dtSource.Rows.Count < rowIndex) + { + Msg = "未获取到导入数据"; + throw new Exception(Msg); + } + int rowAll = dtSource.Rows.Count; + List librarys = new List(); + if (rowAll == 1) + { + throw new Exception("导入必须两条以上,一条请直接新增"); + } + var areas = this.GetEntities(t => t.IS_DELETED == false, new BaseFilter(orgId)); + var types = this.GetEntities(t => t.IS_DELETED == false, new BaseFilter(orgId)); + for (int i = 0; i < rowAll; i++) + { + T_SK_ENTERPRISE_LIBRARY_TEMP temp = new T_SK_ENTERPRISE_LIBRARY_TEMP(); + temp.ID = Guid.NewGuid(); + temp.ORG_ID = orgId; + var num = dtSource.Rows[i][0].ToString().Trim(); + temp.NUM = int.Parse(num); + temp.CODE = num; + var minetype = dtSource.Rows[i][1].ToString().Trim(); + if (!string.IsNullOrEmpty(minetype)) + { + switch (minetype) + { + case "全公司": + temp.MineType = 0; + break; + case "露天矿": + temp.MineType = (FMProductionUnit)30; + break; + case "选矿厂": + temp.MineType = (FMProductionUnit)10; + break; + case "尾矿库": + temp.MineType = (FMProductionUnit)20; + break; + case "职能口": + temp.MineType = (FMProductionUnit)31; + break; + case "非金属": + temp.MineType = (FMProductionUnit)32; + break; + case "地下矿": + temp.MineType = (FMProductionUnit)40; + break; + default: + temp.MineType = 0; + break; + } + } + temp.MINE_NAME = minetype; + var areaName = dtSource.Rows[i][2].ToString().Trim(); + if (!string.IsNullOrEmpty(areaName)) + { + var area = areas.FirstOrDefault(t => t.NAME == areaName); + if (area != null) + { + temp.AREA_ID = area.ID; + } + } + temp.AREA_NAME = areaName; + temp.RISK_NAME = dtSource.Rows[i][3].ToString().Trim(); + temp.RISK_DESCRIPTION = dtSource.Rows[i][4].ToString().Trim(); + var typeName = dtSource.Rows[i][5].ToString().Trim(); + if (!string.IsNullOrEmpty(typeName)) + { + var type = types.FirstOrDefault(t => t.NAME == typeName); + if (type != null) + { + temp.TYPE_ID = type.ID; + } + } + temp.TYPE_NAME = typeName; + var scoreL = dtSource.Rows[i][6].ToString().Trim(); + var scoreE = dtSource.Rows[i][7].ToString().Trim(); + var scoreC = dtSource.Rows[i][8].ToString().Trim(); + var scoreD = dtSource.Rows[i][9].ToString().Trim(); + temp.EVALUATE_L = string.IsNullOrEmpty(scoreL) ? 0 : int.Parse(scoreL); + temp.EVALUATE_E = string.IsNullOrEmpty(scoreE) ? 0 : int.Parse(scoreE); + temp.EVALUATE_C = string.IsNullOrEmpty(scoreC) ? 0 : int.Parse(scoreC); + temp.EVALUATE_SCORE = string.IsNullOrEmpty(scoreD) ? 0 : int.Parse(scoreD); + var riskLevel = dtSource.Rows[i][10].ToString().Trim(); + if (!string.IsNullOrEmpty(riskLevel)) + { + switch (riskLevel) + { + case "重大风险": + temp.EVALUATE_LEVEL = (SKEvaluateLevelEnum)10; + break; + case "较大风险": + temp.EVALUATE_LEVEL = (SKEvaluateLevelEnum)20; + break; + case "一般风险": + temp.EVALUATE_LEVEL = (SKEvaluateLevelEnum)30; + break; + case "低风险": + temp.EVALUATE_LEVEL = (SKEvaluateLevelEnum)40; + break; + default: + temp.EVALUATE_LEVEL = (SKEvaluateLevelEnum)40; + break; + } + } + temp.ENABLE_STATUS = FMEnableStatusEnum.启用; + librarys.Add(temp); + } + if (!string.IsNullOrEmpty(Msg)) + { + throw new Exception(Msg); + } + else + { + UnifiedCommit(() => + { + if (librarys != null && librarys.Any()) + BantchAddEntityNoCommit(librarys); + }); + Msg = "导入成功!"; + } + return true; + } + /// + /// 数据插入 + /// + /// + /// + /// + /// + /// + /// + public bool InsertModel2(DataTable dtSource, Guid? orgId, ref string Msg, int rowIndex = 1) + { + var userId = APT.Infrastructure.Api.AppContext.CurrentSession.UserID; + if (dtSource == null || dtSource.Rows.Count < rowIndex) + { + Msg = "未获取到导入数据"; + throw new Exception(Msg); + } + int rowAll = dtSource.Rows.Count; + List librarys = new List(); + if (rowAll == 1) + { + throw new Exception("导入必须两条以上,一条请直接新增"); + } + for (int i = 0; i < rowAll; i++) + { + T_SK_LIBRARY_IMPORT_TEMP temp = new T_SK_LIBRARY_IMPORT_TEMP(); + temp.ID = Guid.NewGuid(); + temp.ORG_ID = orgId; + var num = dtSource.Rows[i][0].ToString().Trim(); + temp.NUM = int.Parse(num); + temp.MineType = dtSource.Rows[i][1].ToString().Trim(); + temp.AREA_NAME = dtSource.Rows[i][2].ToString().Trim(); + temp.RISK_NAME = dtSource.Rows[i][3].ToString().Trim(); + temp.RISK_DESCRIPTION = dtSource.Rows[i][4].ToString().Trim(); + temp.TYPE_NAME = dtSource.Rows[i][5].ToString().Trim(); + temp.MEASURES_NAME = dtSource.Rows[i][6].ToString().Trim(); + temp.CHECK_CONTENT = dtSource.Rows[i][7].ToString().Trim(); + temp.CHECK_BASIC = dtSource.Rows[i][8].ToString().Trim(); + temp.CHECK_STANDARD = dtSource.Rows[i][9].ToString().Trim(); + temp.CHECK_LEVEL = dtSource.Rows[i][10].ToString().Trim(); + temp.CHECK_DEPARTMENT = dtSource.Rows[i][11].ToString().Trim(); + temp.CHECK_POST = dtSource.Rows[i][12].ToString().Trim(); + temp.CHECK_TYPE = dtSource.Rows[i][13].ToString().Trim(); + temp.CHECK_CYCLE = dtSource.Rows[i][14].ToString().Trim(); + librarys.Add(temp); + } + if (!string.IsNullOrEmpty(Msg)) + { + throw new Exception(Msg); + } + else + { + UnifiedCommit(() => + { + if (librarys != null && librarys.Any()) + BantchAddEntityNoCommit(librarys); + }); + Msg = "导入成功!"; + } + return true; + } + + public bool InsertModel3(DataTable dtSource, Guid? orgId, ref string Msg, int rowIndex = 1) + { + var userId = APT.Infrastructure.Api.AppContext.CurrentSession.UserID; + if (dtSource == null || dtSource.Rows.Count < rowIndex) + { + Msg = "未获取到导入数据"; + throw new Exception(Msg); + } + int rowAll = dtSource.Rows.Count; + List librarys = new List(); + if (rowAll == 1) + { + throw new Exception("导入必须两条以上,一条请直接新增"); + } + for (int i = 0; i < rowAll; i++) + { + T_SK_LIBRARY_IMPORT_TEMP_NEW temp = new T_SK_LIBRARY_IMPORT_TEMP_NEW(); + temp.ID = Guid.NewGuid(); + temp.ORG_ID = orgId; + var num = dtSource.Rows[i][0].ToString().Trim(); + temp.NUM = int.Parse(num); + temp.MineType = dtSource.Rows[i][1].ToString().Trim(); + temp.AREA_NAME = dtSource.Rows[i][2].ToString().Trim(); + temp.RISK_NAME = dtSource.Rows[i][3].ToString().Trim(); + temp.RISK_DESCRIPTION = dtSource.Rows[i][4].ToString().Trim(); + temp.TYPE_NAME = dtSource.Rows[i][5].ToString().Trim(); + temp.EVALUATE_L = dtSource.Rows[i][6].ToString().Trim(); + temp.EVALUATE_E = dtSource.Rows[i][7].ToString().Trim(); + temp.EVALUATE_C = dtSource.Rows[i][8].ToString().Trim(); + temp.EVALUATE_SCORE = dtSource.Rows[i][9].ToString().Trim(); + temp.EVALUATE_LEVEL = dtSource.Rows[i][10].ToString().Trim(); + temp.MEASURES_NAME = dtSource.Rows[i][11].ToString().Trim(); + temp.DEPARTMENT_TYPE = dtSource.Rows[i][12].ToString().Trim(); + temp.DEPARTMENT_NAME = dtSource.Rows[i][13].ToString().Trim(); + temp.DEPARTMENT_USER = dtSource.Rows[i][14].ToString().Trim(); + temp.CHECK_CONTENT = dtSource.Rows[i][15].ToString().Trim(); + temp.CHECK_BASIC = dtSource.Rows[i][16].ToString().Trim(); + temp.CHECK_STANDARD = dtSource.Rows[i][17].ToString().Trim(); + temp.CHECK_LEVEL = dtSource.Rows[i][18].ToString().Trim(); + temp.CHECK_DEPARTMENT = dtSource.Rows[i][19].ToString().Trim(); + temp.CHECK_POST = dtSource.Rows[i][20].ToString().Trim(); + temp.CHECK_TYPE = dtSource.Rows[i][21].ToString().Trim(); + temp.CHECK_OBJECT = dtSource.Rows[i][22].ToString().Trim(); + temp.CHECK_CYCLE = dtSource.Rows[i][23].ToString().Trim(); + temp.HIDDEN_DESCRIPTION = dtSource.Rows[i][24].ToString().Trim(); + temp.HIDDEN_LEVEL = "一般"; + temp.HIDDEN_RECITIFY = dtSource.Rows[i][26].ToString().Trim(); + librarys.Add(temp); + } + if (!string.IsNullOrEmpty(Msg)) + { + throw new Exception(Msg); + } + else + { + UnifiedCommit(() => + { + if (librarys != null && librarys.Any()) + BantchAddEntityNoCommit(librarys); + }); + Msg = "导入成功!"; + } + return true; + } + public bool InsertModel4(DataTable dtSource, Guid? orgId, ref string Msg, int rowIndex = 1) + { + var userId = APT.Infrastructure.Api.AppContext.CurrentSession.UserID; + if (dtSource == null || dtSource.Rows.Count < rowIndex) + { + Msg = "未获取到导入数据"; + throw new Exception(Msg); + } + int rowAll = dtSource.Rows.Count; + List librarys = new List(); + if (rowAll == 1) + { + throw new Exception("导入必须两条以上,一条请直接新增"); + } + for (int i = 0; i < rowAll; i++) + { + T_SK_LIBRARY_IMPORT_POST temp = new T_SK_LIBRARY_IMPORT_POST(); + temp.ID = Guid.NewGuid(); + temp.ORG_ID = orgId; + var num = dtSource.Rows[i][0].ToString().Trim(); + temp.NUM = int.Parse(num); + temp.MineType = dtSource.Rows[i][1].ToString().Trim(); + temp.DEPARTMENT_NAME = dtSource.Rows[i][2].ToString().Trim(); + temp.POST_NAME = dtSource.Rows[i][3].ToString().Trim(); + temp.AREA_NAME1 = dtSource.Rows[i][4].ToString().Trim(); + temp.RISK_NAME1 = dtSource.Rows[i][5].ToString().Trim(); + temp.AREA_NAME2 = dtSource.Rows[i][6].ToString().Trim(); + temp.RISK_NAME2 = dtSource.Rows[i][7].ToString().Trim(); + temp.AREA_NAME3 = dtSource.Rows[i][8].ToString().Trim(); + temp.RISK_NAME3 = dtSource.Rows[i][9].ToString().Trim(); + temp.AREA_NAME4 = dtSource.Rows[i][10].ToString().Trim(); + temp.RISK_NAME4 = dtSource.Rows[i][11].ToString().Trim(); + temp.AREA_NAME5 = dtSource.Rows[i][12].ToString().Trim(); + temp.RISK_NAME5 = dtSource.Rows[i][13].ToString().Trim(); + temp.AREA_NAME6 = dtSource.Rows[i][14].ToString().Trim(); + temp.RISK_NAME6 = dtSource.Rows[i][15].ToString().Trim(); + librarys.Add(temp); + } + if (!string.IsNullOrEmpty(Msg)) + { + throw new Exception(Msg); + } + else + { + UnifiedCommit(() => + { + if (librarys != null && librarys.Any()) + BantchAddEntityNoCommit(librarys); + }); + Msg = "导入成功!"; + } + return true; + } + + /// + /// 辨识部门岗位,对应风险 + /// + /// + /// + [HttpPost, Route("GetPostRiskList")] + public JsonActionResult> GetPostRiskList([FromBody] KeywordFilter filter) + { + var loginDepart = APT.Infrastructure.Api.AppContext.CurrentSession.DepartmentID; + var posts = this.GetEntities(t => t.IS_DELETED == false, new BaseFilter(filter.OrgId)); + var departs = this.GetEntities(t => t.ENABLE_STATUS == 0 && t.CATEGORY == FMCATEGORY.ACTURE, new BaseFilter(filter.OrgId)); + var users = this.GetEntities(t => t.ENABLE_STATUS == 0, new BaseFilter(filter.OrgId)); + var AHDepart = departs.FirstOrDefault(t => t.ID == loginDepart); + //if (AHDepart != null && (AHDepart.DEPARTMENT_TYPE == 5 || AHDepart.DEPARTMENT_TYPE == 2)) + //{ + // loginDepart = departs.FirstOrDefault(t => t.PARENT_ID == null).ID; + //} + //List departmentIds = new List() { loginDepart.Value }; + //DepartmentService.GetDepartmentIds(filter.OrgId.Value, new List() { loginDepart.Value }, ref departmentIds); + List departmentIds = departs.Select(t => t.ID).ToList(); + var checkList = new JsonActionResult>(); + List postLists = new List(); + var detailContents = this.GetEntities(t => t.DEPARTMENT_ID != null && departmentIds.Contains((Guid)t.DEPARTMENT_ID), new BaseFilter(filter.OrgId), "Nav_Library.Nav_ProductionUnit", "Nav_PostDetails", "Nav_Department"); + if (detailContents != null && detailContents.Any()) + { + foreach (var item in detailContents) + { + if (item.Nav_PostDetails != null && item.Nav_PostDetails.Any()) + { + foreach (var item2 in item.Nav_PostDetails) + { + var user = users.FirstOrDefault(t => t.ID == item.Nav_Department?.USER_ID); + T_SK_ENTERPRISE_LIBRARY_POST part = new T_SK_ENTERPRISE_LIBRARY_POST(); + part.DEPARTMENT_ID = item.DEPARTMENT_ID; + part.ORG_ID = item.ORG_ID; + part.ENTERPRISE_LIBRARY_ID = item.ENTERPRISE_LIBRARY_ID; + part.Nav_Library = item.Nav_Library; + part.Nav_Department = item.Nav_Department; + part.POST_NAME = posts.FirstOrDefault(t => t.ID == item2.POST_ID)?.NAME; + part.PHONE = user?.NAME + " " + user?.PHONE; + postLists.Add(part); + } + } + } + checkList.Data = postLists.GroupBy(t => new { t.DEPARTMENT_ID, t.POST_NAME }).Select(m => m.FirstOrDefault()).OrderBy(m => m.DEPARTMENT_ID).ToList(); + if (checkList.Data != null && checkList.Data.Any()) + { + var libraryIds = postLists.Select(m => m.ENTERPRISE_LIBRARY_ID).Distinct().ToList(); + var librarys = this.GetEntities(t => libraryIds.Contains(t.ID), new BaseFilter(filter.OrgId), "Nav_Area", "Nav_Type", "Nav_RiskName", "Nav_Details", "Nav_ProductionUnit"); + foreach (var item in checkList.Data) + { + var tempIds = postLists.Where(t => t.DEPARTMENT_ID == item.DEPARTMENT_ID && t.POST_NAME == item.POST_NAME).Select(m => m.ENTERPRISE_LIBRARY_ID).Distinct().ToList(); + item.Nav_Librarys = librarys.Where(t => tempIds.Contains(t.ID)).OrderBy(m => m.EVALUATE_LEVEL).ToList(); + } + } + checkList.TotalCount = checkList.Data.Count; + } + return checkList; + } + + /// + /// 主表 + /// + /// + /// + /// + /// + /// + /// + public bool InsertModel5(DataTable dtSource, Guid? orgId, ref string Msg, int rowIndex = 1) + { + var userId = APT.Infrastructure.Api.AppContext.CurrentSession.UserID; + if (dtSource == null || dtSource.Rows.Count < rowIndex) + { + Msg = "未获取到导入数据"; + throw new Exception(Msg); + } + int rowAll = dtSource.Rows.Count; + List librarys = new List(); + if (rowAll == 1) + { + throw new Exception("导入必须两条以上,一条请直接新增"); + } + for (int i = 0; i < rowAll; i++) + { + T_SK_LIBRARY_IMPORT_MAIN temp = new T_SK_LIBRARY_IMPORT_MAIN(); + temp.ID = Guid.NewGuid(); + temp.ORG_ID = orgId; + temp.NUM = i + 1; + temp.MineType = dtSource.Rows[i][0].ToString().Trim(); + temp.AREA_NAME = dtSource.Rows[i][1].ToString().Trim(); + temp.RISK_NAME = dtSource.Rows[i][2].ToString().Trim(); + temp.RISK_DESCRIPTION = dtSource.Rows[i][3].ToString().Trim(); + temp.TYPE_NAME = dtSource.Rows[i][4].ToString().Trim(); + temp.EVALUATE_L = dtSource.Rows[i][5].ToString().Trim(); + temp.EVALUATE_E = dtSource.Rows[i][6].ToString().Trim(); + temp.EVALUATE_C = dtSource.Rows[i][7].ToString().Trim(); + temp.EVALUATE_SCORE = dtSource.Rows[i][8].ToString().Trim(); + temp.EVALUATE_LEVEL = dtSource.Rows[i][9].ToString().Trim(); + temp.EMERGENCY = dtSource.Rows[i][10].ToString().Trim(); + temp.DEPARTMENT_NAME = dtSource.Rows[i][11].ToString().Trim(); + librarys.Add(temp); + } + if (!string.IsNullOrEmpty(Msg)) + { + throw new Exception(Msg); + } + else + { + UnifiedCommit(() => + { + if (librarys != null && librarys.Any()) + BantchAddEntityNoCommit(librarys); + }); + Msg = "导入成功!"; + } + return true; + } + + /// + /// 管控措施表 + /// + /// + /// + /// + /// + /// + /// + public bool InsertModel6(DataTable dtSource, Guid? orgId, ref string Msg, int rowIndex = 1) + { + var userId = APT.Infrastructure.Api.AppContext.CurrentSession.UserID; + if (dtSource == null || dtSource.Rows.Count < rowIndex) + { + Msg = "未获取到导入数据"; + throw new Exception(Msg); + } + int rowAll = dtSource.Rows.Count; + List librarys = new List(); + if (rowAll == 1) + { + throw new Exception("导入必须两条以上,一条请直接新增"); + } + for (int i = 0; i < rowAll; i++) + { + T_SK_LIBRARY_IMPORT_MAIN_MEASURES temp = new T_SK_LIBRARY_IMPORT_MAIN_MEASURES(); + temp.ID = Guid.NewGuid(); + temp.ORG_ID = orgId; + temp.NUM = i + 1; + temp.MineType = dtSource.Rows[i][0].ToString().Trim(); + temp.AREA_NAME = dtSource.Rows[i][1].ToString().Trim(); + temp.RISK_NAME = dtSource.Rows[i][2].ToString().Trim(); + temp.RISK_DESCRIPTION = dtSource.Rows[i][3].ToString().Trim(); + temp.TYPE_NAME = dtSource.Rows[i][4].ToString().Trim(); + temp.MEASURES_NAME = dtSource.Rows[i][5].ToString().Trim(); + temp.CHECK_CONTENT = dtSource.Rows[i][6].ToString().Trim(); + temp.CHECK_BASIC = dtSource.Rows[i][7].ToString().Trim(); + temp.CHECK_STANDARD = dtSource.Rows[i][8].ToString().Trim(); + temp.CHECK_LEVEL = dtSource.Rows[i][9].ToString().Trim(); + temp.CHECK_DEPARTMENT = dtSource.Rows[i][10].ToString().Trim(); + temp.CHECK_POST = dtSource.Rows[i][11].ToString().Trim(); + temp.CHECK_TYPE = dtSource.Rows[i][12].ToString().Trim(); + temp.CHECK_OBJECT = dtSource.Rows[i][13].ToString().Trim(); + temp.CHECK_CYCLE = dtSource.Rows[i][14].ToString().Trim(); + librarys.Add(temp); + } + if (!string.IsNullOrEmpty(Msg)) + { + throw new Exception(Msg); + } + else + { + UnifiedCommit(() => + { + if (librarys != null && librarys.Any()) + BantchAddEntityNoCommit(librarys); + }); + Msg = "导入成功!"; + } + return true; + } + + /// + /// 隐患描述表 + /// + /// + /// + /// + /// + /// + /// + public bool InsertModel7(DataTable dtSource, Guid? orgId, ref string Msg, int rowIndex = 1) + { + var userId = APT.Infrastructure.Api.AppContext.CurrentSession.UserID; + if (dtSource == null || dtSource.Rows.Count < rowIndex) + { + Msg = "未获取到导入数据"; + throw new Exception(Msg); + } + int rowAll = dtSource.Rows.Count; + List librarys = new List(); + if (rowAll == 1) + { + throw new Exception("导入必须两条以上,一条请直接新增"); + } + for (int i = 0; i < rowAll; i++) + { + T_SK_LIBRARY_IMPORT_MAIN_HIDDEN temp = new T_SK_LIBRARY_IMPORT_MAIN_HIDDEN(); + temp.ID = Guid.NewGuid(); + temp.ORG_ID = orgId; + temp.NUM = i + 1; + temp.MineType = dtSource.Rows[i][0].ToString().Trim(); + temp.AREA_NAME = dtSource.Rows[i][1].ToString().Trim(); + temp.RISK_NAME = dtSource.Rows[i][2].ToString().Trim(); + temp.RISK_DESCRIPTION = dtSource.Rows[i][3].ToString().Trim(); + temp.TYPE_NAME = dtSource.Rows[i][4].ToString().Trim(); + temp.MEASURES_NAME = dtSource.Rows[i][5].ToString().Trim(); + temp.CHECK_CONTENT = dtSource.Rows[i][6].ToString().Trim(); + temp.HIDDEN_DESCRIPTION = dtSource.Rows[i][7].ToString().Trim(); + temp.HIDDEN_LEVEL = dtSource.Rows[i][8].ToString().Trim(); + temp.HIDDEN_RECITIFY = dtSource.Rows[i][9].ToString().Trim(); + librarys.Add(temp); + } + if (!string.IsNullOrEmpty(Msg)) + { + throw new Exception(Msg); + } + else + { + UnifiedCommit(() => + { + if (librarys != null && librarys.Any()) + BantchAddEntityNoCommit(librarys); + }); + Msg = "导入成功!"; + } + return true; + } + /// + /// 隐患描述表 + /// + /// + /// + /// + /// + /// + /// + public bool InsertModel8(DataTable dtSource, Guid? orgId, ref string Msg, int rowIndex = 1) + { + var userId = APT.Infrastructure.Api.AppContext.CurrentSession.UserID; + if (dtSource == null || dtSource.Rows.Count < rowIndex) + { + Msg = "未获取到导入数据"; + throw new Exception(Msg); + } + int rowAll = dtSource.Rows.Count; + List librarys = new List(); + if (rowAll == 1) + { + throw new Exception("导入必须两条以上,一条请直接新增"); + } + for (int i = 0; i < rowAll; i++) + { + T_SK_LIBRARY_IMPORT_MAIN_POST temp = new T_SK_LIBRARY_IMPORT_MAIN_POST(); + temp.ID = Guid.NewGuid(); + temp.ORG_ID = orgId; + temp.NUM = i + 1; + temp.MineType = dtSource.Rows[i][0].ToString().Trim(); + temp.AREA_NAME = dtSource.Rows[i][1].ToString().Trim(); + temp.RISK_NAME = dtSource.Rows[i][2].ToString().Trim(); + temp.RISK_DESCRIPTION = dtSource.Rows[i][3].ToString().Trim(); + temp.TYPE_NAME = dtSource.Rows[i][4].ToString().Trim(); + temp.DEPARTMENT_NAME = dtSource.Rows[i][5].ToString().Trim(); + temp.POST_NAME = dtSource.Rows[i][6].ToString().Trim(); + librarys.Add(temp); + } + if (!string.IsNullOrEmpty(Msg)) + { + throw new Exception(Msg); + } + else + { + UnifiedCommit(() => + { + if (librarys != null && librarys.Any()) + BantchAddEntityNoCommit(librarys); + }); + Msg = "导入成功!"; + } + return true; + } + /// + /// 获得单条实体数据 + /// + /// 过滤实体 + /// + [HttpPost, Route("SKGetOld")] + public JsonActionResult SKGetOld([FromBody] KeywordFilter filter) + { + var result = WitEntity(null, filter); + if (result != null && result.Data != null) + { + if (result.Data.Nav_Details != null && result.Data.Nav_Details.Any()) + { + foreach (var item in result.Data.Nav_Details) + { + if (item.Nav_DetailContents != null && item.Nav_DetailContents.Any()) + { + item.Nav_DetailContents.ForEach(t => t.Nav_DetailHiddens.OrderBy(m => m.NUM)); + item.Nav_DetailContents.ForEach(t => t.Nav_DetailDeparts.OrderBy(m => m.CHECK_TYPE).ThenBy(t => t.DEPARTMENT_ID)); + item.Nav_DetailContents.OrderBy(t => t.NUM); + } + } + result.Data.Nav_Details.OrderBy(t => t.NUM); + result.Data.Nav_Departs.OrderBy(t => t.DEPARTMENT_TYPE).ThenBy(m => m.DEPARTMENT_ID); + result.Data.Nav_Posts.OrderBy(t => t.DEPARTMENT_ID); + } + + } + return result; + } + + /// + /// 获得单条实体数据 + /// + /// 过滤实体 + /// + [HttpPost, Route("SKGet")] + public JsonActionResult SKGet([FromBody] KeywordFilter filter) + { + return SafeExecute(() => + { + var result = new T_SK_ENTERPRISE_LIBRARY(); + var id = filter.FilterGroup.Rules.FirstOrDefault(t => t.Field == "ID")?.Value.ToString(); + var mineType = filter.FilterGroup.Rules.FirstOrDefault(t => t.Field == "PRODUCTION_UNIT_ID"); + var areaId = filter.FilterGroup.Rules.FirstOrDefault(t => t.Field == "AREA_ID"); + //var typeId = filter.FilterGroup.Rules.FirstOrDefault(t => t.Field == "TYPE_ID"); + var riskName = filter.FilterGroup.Rules.FirstOrDefault(t => t.Field == "RISK_NAME"); + //var riskDes = filter.FilterGroup.Rules.FirstOrDefault(t => t.Field == "RISK_DESCRIPTION"); + filter.IgnoreDataRule = true; + if (!string.IsNullOrEmpty(id)) + { + result = this.GetEntity(id, new string[] { "Nav_Type", "Nav_Area","Nav_RiskName", + "Nav_SCOREL","Nav_SCOREE","Nav_SCOREC","Nav_ProductionUnit"}); + } + else if (mineType != null && areaId != null && riskName != null)//&& typeId != null && riskDes!=null + { + result = this.GetEntity(t => t.PRODUCTION_UNIT_ID == Guid.Parse(mineType.Value.ToString()) && t.AREA_ID == Guid.Parse(areaId.Value.ToString()) && t.RISK_NAME == riskName.Value.ToString(), new string[] { "Nav_Type", "Nav_Area","Nav_RiskName", + "Nav_SCOREL","Nav_SCOREE","Nav_SCOREC","Nav_ProductionUnit"}); + } + if (result != null) + { + var departs = this.GetEntities(t => t.ENTERPRISE_LIBRARY_ID == result.ID, new BaseFilter(filter.OrgId), "Nav_Department", "Nav_User"); + result.Nav_Departs = departs.OrderBy(t => t.DEPARTMENT_TYPE).ThenBy(m => m.DEPARTMENT_ID).ToList(); + var posts = this.GetEntities(t => t.ENTERPRISE_LIBRARY_ID == result.ID, new BaseFilter(filter.OrgId), "Nav_Department", "Nav_PostDetails.Nav_Post"); + result.Nav_Posts = posts.OrderBy(t => t.DEPARTMENT_ID).ToList(); + var details = this.GetEntities(t => t.ENTERPRISE_LIBRARY_ID == result.ID, new BaseFilter(filter.OrgId)); + if (details.Any()) + { + var detailIds = details.Select(t => t.ID).ToList(); + var contents = this.GetEntities(t => detailIds.Contains(t.ENTERPRISE_LIBRARY_DETAIL_ID), new BaseFilter(filter.OrgId), "Nav_Contents"); + var contentIds = contents.Select(t => t.ID).ToList(); + var contentdeparts = this.GetEntities(t => contentIds.Contains(t.ENTERPRISE_LIBRARY_DETAIL_CONTENT_ID), new BaseFilter(filter.OrgId), "Nav_Department", "Nav_CheckType", "Nav_DetailPosts.Nav_Post", "Nav_DetailUsers.Nav_User"); + var contenthiddens = this.GetEntities(t => contentIds.Contains(t.ENTERPRISE_LIBRARY_DETAIL_CONTENT_ID), new BaseFilter(filter.OrgId), "Nav_Question"); + var contentbasics = this.GetEntities(t => contentIds.Contains(t.ENTERPRISE_LIBRARY_DETAIL_CONTENT_ID), new BaseFilter(filter.OrgId), "Nav_Law"); + foreach (var detail in details) + { + var contentTemps = contents.Where(t => t.ENTERPRISE_LIBRARY_DETAIL_ID == detail.ID).ToList(); + detail.Nav_DetailContents = contentTemps.OrderBy(t => t.NUM).ToList(); + foreach (var content in detail.Nav_DetailContents) + { + var departTemps = contentdeparts.Where(t => t.ENTERPRISE_LIBRARY_DETAIL_CONTENT_ID == content.ID).ToList(); + content.Nav_DetailDeparts = departTemps.OrderBy(t => t.CHECK_TYPE).ThenBy(m => m.DEPARTMENT_ID).ToList(); + var hiddenTemps = contenthiddens.Where(t => t.ENTERPRISE_LIBRARY_DETAIL_CONTENT_ID == content.ID).ToList(); + content.Nav_DetailHiddens = hiddenTemps.OrderBy(t => t.NUM).ToList(); + var basicTemps = contentbasics.Where(t => t.ENTERPRISE_LIBRARY_DETAIL_CONTENT_ID == content.ID).ToList(); + content.Nav_DetailBasics = basicTemps.ToList(); + } + } + } + result.Nav_Details = details.OrderBy(t => t.NUM).ToList(); + } + return result; + }); + } + + /// + /// 查询 + /// + /// + /// + [HttpPost, Route("DepartOrderPaged")] + public PagedActionResult DepartOrderPaged([FromBody] KeywordPageFilter pageFilter) + { + var result = new PagedActionResult(); + if (!string.IsNullOrEmpty(pageFilter.Keyword)) + { + if (pageFilter.Keyword == "31") + { + FilterRule order2 = new FilterRule(); + order2.Field = "MineType"; + order2.Value = 0; + pageFilter.FilterGroup.Rules.Add(order2); + } + else + { + FilterRule order2 = new FilterRule(); + order2.Field = "MineType"; + order2.Value = pageFilter.Keyword; + pageFilter.FilterGroup.Rules.Add(order2); + } + } + result = GetOrderPageEntities(null, pageFilter); + return result; + } + [HttpPost, Route("GetCheckListOld")] + public JsonActionResult> GetCheckListOld([FromBody] KeywordFilter filter) + { + var loginDepart = APT.Infrastructure.Api.AppContext.CurrentSession.DepartmentID; + var departs = this.GetEntities(t => t.ENABLE_STATUS == 0, new BaseFilter(filter.OrgId)); + List selectMinetype = new List(); + var minetype = departs.FirstOrDefault(t => t.ID == loginDepart)?.MineType; + switch (minetype) + { + case 0: + selectMinetype.Add(SKProductionUnit.All.GetDescription()); + selectMinetype.Add(SKProductionUnit.MineChoose.GetDescription()); + selectMinetype.Add(SKProductionUnit.MineUnderGround.GetDescription()); + selectMinetype.Add(SKProductionUnit.Minelast.GetDescription()); + selectMinetype.Add(SKProductionUnit.Mine.GetDescription()); + selectMinetype.Add(SKProductionUnit.Department.GetDescription()); + selectMinetype.Add(SKProductionUnit.Nonmetallic.GetDescription()); + break; + case 10: + selectMinetype.Add(SKProductionUnit.MineChoose.GetDescription()); + selectMinetype.Add(SKProductionUnit.Minelast.GetDescription()); + selectMinetype.Add(SKProductionUnit.Nonmetallic.GetDescription()); + break; + case 20: + selectMinetype.Add(SKProductionUnit.Minelast.GetDescription()); + break; + case 30: + selectMinetype.Add(SKProductionUnit.Mine.GetDescription()); + break; + case 40: + selectMinetype.Add(SKProductionUnit.MineUnderGround.GetDescription()); + break; + default: + selectMinetype.Add(SKProductionUnit.All.GetDescription()); + selectMinetype.Add(SKProductionUnit.MineChoose.GetDescription()); + selectMinetype.Add(SKProductionUnit.MineUnderGround.GetDescription()); + selectMinetype.Add(SKProductionUnit.Minelast.GetDescription()); + selectMinetype.Add(SKProductionUnit.Mine.GetDescription()); + selectMinetype.Add(SKProductionUnit.Department.GetDescription()); + selectMinetype.Add(SKProductionUnit.Nonmetallic.GetDescription()); + break; + } + //List departmentIds = new List() { loginDepart.Value }; + //DepartmentService.GetDepartmentIds(filter.OrgId.Value, new List() { loginDepart.Value }, ref departmentIds); + var checkList = new JsonActionResult>(); + List list = new List(); + var checkTypeIds = this.GetEntities(t => t.NAME == "岗位排查", new BaseFilter(filter.OrgId)).Select(m => m.ID).ToList(); + var detailContents = this.GetEntities(t => !t.IS_DELETED, new BaseFilter(filter.OrgId), "Nav_DetailContent.Nav_LibraryDetail.Nav_Library", "Nav_CheckType", "Nav_Department").ToList(); + var contents = this.GetEntities(t => !t.IS_DELETED, new BaseFilter(filter.OrgId), "Nav_LibraryDetail.Nav_Library.Nav_Area", "Nav_Contents").ToList(); + var libraryIds = this.GetEntities(t => !t.IS_DELETED, new BaseFilter(filter.OrgId)).Select(m => m.ENTERPRISE_LIBRARY_ID).ToList(); + var posts = this.GetEntities(t => !t.IS_DELETED, new BaseFilter(filter.OrgId), "Nav_PostDetails.Nav_Post").ToList(); + if (detailContents != null && detailContents.Any()) + { + detailContents.ForEach(t => t.MineType = t.Nav_DetailContent.Nav_LibraryDetail.Nav_Library.MineType); + var group = detailContents.GroupBy(t => new { t.MineType, t.CHECK_TYPE, t.CHECK_CYCLE, t.DEPARTMENT_ID, t.CHECK_TYPE_ID }).ToList(); + foreach (var item in group) + { + var detail = detailContents.FirstOrDefault(t => t.MineType == item.Key.MineType && t.CHECK_CYCLE == item.Key.CHECK_CYCLE && t.CHECK_TYPE == item.Key.CHECK_TYPE && t.CHECK_TYPE_ID == item.Key.CHECK_TYPE_ID && t.DEPARTMENT_ID == item.Key.DEPARTMENT_ID); + CheckListNew listNew = new CheckListNew(); + listNew.MineType = item.Key.MineType.GetDescription(); + listNew.CheckType = detail?.Nav_CheckType?.NAME; + listNew.CheckCycle = item.Key.CHECK_CYCLE.GetDescription(); + listNew.CheckLevel = item.Key.CHECK_TYPE.GetDescription(); + listNew.Num = (int)item.Key.CHECK_TYPE; + listNew.CheckDepart = detail?.Nav_Department?.NAME; + if (checkTypeIds != null && checkTypeIds.Any() && item.Key.CHECK_TYPE_ID != null && checkTypeIds.Contains((Guid)item.Key.CHECK_TYPE_ID)) + { + var itemTemp = posts.FirstOrDefault(t => t.ENTERPRISE_LIBRARY_ID == detail.Nav_DetailContent.Nav_LibraryDetail.Nav_Library.ID && t.DEPARTMENT_ID == item.Key.DEPARTMENT_ID)?.Nav_PostDetails; + if (itemTemp != null && itemTemp.Any()) + { + var lists = itemTemp.Select(t => t.Nav_Post?.NAME).Distinct().ToList(); + listNew.CheckPost = string.Join(",", lists); + } + else + { + listNew.CheckPost = detail?.Nav_Department?.NAME + "辨识岗位未配置"; + } + } + else + { + if (item.Key.CHECK_TYPE == SKDepartmentTypeEnum.班组级) + { + listNew.CheckPost = "班组负责人"; + } + else if (item.Key.CHECK_TYPE == SKDepartmentTypeEnum.车间级) + { + listNew.CheckPost = "车间安全员"; + } + else if (item.Key.CHECK_TYPE == SKDepartmentTypeEnum.部门级) + { + listNew.CheckPost = "部门安全员"; + } + else + { + listNew.CheckPost = "安环部安全员"; + } + } + + var depathaveIds = detailContents.Where(t => t.DEPARTMENT_ID == item.Key.DEPARTMENT_ID && t.CHECK_TYPE_ID == item.Key.CHECK_TYPE_ID && t.CHECK_TYPE == item.Key.CHECK_TYPE && t.CHECK_CYCLE == item.Key.CHECK_CYCLE && t.MineType == item.Key.MineType).Select(m => m.ENTERPRISE_LIBRARY_DETAIL_CONTENT_ID).Distinct().ToList(); + var temps = contents.Where(t => depathaveIds.Contains(t.ID)).ToList(); + if (temps.Any()) + { + List listDetail = new List(); + foreach (var tem in temps) + { + CheckListDetail checkListDetail = new CheckListDetail(); + checkListDetail.CHECK_CONTENTS_ID = tem.CHECK_CONTENTS_ID; + checkListDetail.CHECK_CONTENTS_NAME = tem.Nav_Contents?.CHECKCONTENT; + checkListDetail.RISK_NAME = tem.Nav_LibraryDetail?.Nav_Library?.RISK_NAME; + checkListDetail.RISK_AREA_ID = tem.Nav_LibraryDetail?.Nav_Library?.AREA_ID; + checkListDetail.RISK_AREA_NAME = tem.Nav_LibraryDetail?.Nav_Library?.Nav_Area?.NAME; + checkListDetail.CHECKPROOF = tem.CHECK_BASIC; + checkListDetail.CHECKSTANDARD = tem.CHECK_STANDARD; + listDetail.Add(checkListDetail); + } + listNew.details = listDetail.OrderBy(t => t.RISK_AREA_NAME).ThenBy(m => m.RISK_NAME).ToList(); + } + list.Add(listNew); + } + checkList.Data = list.Where(t => selectMinetype.Contains(t.MineType)).GroupBy(t => new { t.MineType, t.CheckType, t.CheckCycle, t.CheckLevel, t.CheckDepart, t.CheckPost }).Select(m => m.FirstOrDefault()).OrderBy(n => n.MineType).ThenBy(x => x.Num).ThenBy(y => y.CheckType).ToList(); + checkList.TotalCount = checkList.Data.Count; + } + return checkList; + } + [HttpPost, Route("GetCheckListNewX")] + public JsonActionResult> GetCheckListNewX([FromBody] KeywordFilter filter) + { + var loginDepart = APT.Infrastructure.Api.AppContext.CurrentSession.DepartmentID; + var loginUser = APT.Infrastructure.Api.AppContext.CurrentSession.UserID; + var userInfo = this.GetEntity(t => t.ID == loginUser, "Nav_ProdutionUnit"); + List selectMinetype = new List(); + if (userInfo != null && userInfo.Nav_ProdutionUnit != null && userInfo.Nav_ProdutionUnit.Any()) + { + selectMinetype = userInfo.Nav_ProdutionUnit.Select(t => t.ID).Distinct().ToList(); + } + //var minetype = departs.FirstOrDefault(t => t.ID == loginDepart)?.MineType; + //switch (minetype) + //{ + // case 0: + // selectMinetype.Add(SKProductionUnit.All.GetDescription()); + // selectMinetype.Add(SKProductionUnit.MineChoose.GetDescription()); + // selectMinetype.Add(SKProductionUnit.MineUnderGround.GetDescription()); + // selectMinetype.Add(SKProductionUnit.Minelast.GetDescription()); + // selectMinetype.Add(SKProductionUnit.Mine.GetDescription()); + // selectMinetype.Add(SKProductionUnit.Department.GetDescription()); + // selectMinetype.Add(SKProductionUnit.Nonmetallic.GetDescription()); + // break; + // case 10: + // selectMinetype.Add(SKProductionUnit.MineChoose.GetDescription()); + // selectMinetype.Add(SKProductionUnit.Minelast.GetDescription()); + // selectMinetype.Add(SKProductionUnit.Nonmetallic.GetDescription()); + // break; + // case 20: + // selectMinetype.Add(SKProductionUnit.Minelast.GetDescription()); + // break; + // case 30: + // selectMinetype.Add(SKProductionUnit.Mine.GetDescription()); + // break; + // case 40: + // selectMinetype.Add(SKProductionUnit.MineUnderGround.GetDescription()); + // break; + // default: + // selectMinetype.Add(SKProductionUnit.All.GetDescription()); + // selectMinetype.Add(SKProductionUnit.MineChoose.GetDescription()); + // selectMinetype.Add(SKProductionUnit.MineUnderGround.GetDescription()); + // selectMinetype.Add(SKProductionUnit.Minelast.GetDescription()); + // selectMinetype.Add(SKProductionUnit.Mine.GetDescription()); + // selectMinetype.Add(SKProductionUnit.Department.GetDescription()); + // selectMinetype.Add(SKProductionUnit.Nonmetallic.GetDescription()); + // break; + //} + //List departmentIds = new List() { loginDepart.Value }; + //DepartmentService.GetDepartmentIds(filter.OrgId.Value, new List() { loginDepart.Value }, ref departmentIds); + var checkList = new JsonActionResult>(); + List list = new List(); + List detailContents = new List(); + var checkTypeIds = this.GetEntities(t => t.NAME == "岗位排查", new BaseFilter(filter.OrgId)).Select(m => m.ID).ToList(); + var users = this.GetEntities(t => !t.IS_DELETED, new BaseFilter(filter.OrgId), "Nav_Person").ToList(); + var librarys = this.GetEntities(t => !t.IS_DELETED, new BaseFilter(filter.OrgId), "Nav_Area", "Nav_ProductionUnit").ToList(); + var libraryDetails = this.GetEntities(t => !t.IS_DELETED, new BaseFilter(filter.OrgId)).ToList(); + var contents = this.GetEntities(t => !t.IS_DELETED, new BaseFilter(filter.OrgId), "Nav_Contents").ToList(); + var contentDeparts = this.GetEntities(t => !t.IS_DELETED, new BaseFilter(filter.OrgId), "Nav_CheckType", "Nav_Department").ToList(); + var posts = this.GetEntities(t => !t.IS_DELETED, new BaseFilter(filter.OrgId), "Nav_PostDetails.Nav_Post").ToList(); + if (librarys != null && librarys.Any()) + { + foreach (var item in librarys) + { + var libraryPost = posts.Where(t => t.ENTERPRISE_LIBRARY_ID == item.ID).ToList(); + var details = libraryDetails.Where(t => t.ENTERPRISE_LIBRARY_ID == item.ID).ToList(); + var detailIds = details.Select(t => t.ID).ToList(); + var contentTemps = contents.Where(t => detailIds.Contains(t.ENTERPRISE_LIBRARY_DETAIL_ID)).ToList(); + var contentTempIds = contentTemps.Select(t => t.ID).ToList(); + var contentDepartTemps = contentDeparts.Where(t => contentTempIds.Contains(t.ENTERPRISE_LIBRARY_DETAIL_CONTENT_ID)).ToList(); + if (contentDepartTemps != null && contentDepartTemps.Any()) + { + foreach (var depart in contentDepartTemps) + { + var first = libraryPost.FirstOrDefault(t => t.DEPARTMENT_ID == depart.DEPARTMENT_ID)?.Nav_PostDetails?.Select(m => m.Nav_Post).OrderBy(n => n?.NAME).ToList(); + var contentFirst = contentTemps.FirstOrDefault(t => t.ID == depart.ENTERPRISE_LIBRARY_DETAIL_CONTENT_ID); + if (first != null && first.Any()) + { + foreach (var post in first) + { + var userRole = users.FirstOrDefault(t => t.Nav_Person != null && t.Nav_Person.POST_ID == post?.ID).APPROVE_ROLE_ID; + if (userRole == null) + { + T_SK_ENTERPRISE_LIBRARY_DETAIL_CONTENT_DEPART de = new T_SK_ENTERPRISE_LIBRARY_DETAIL_CONTENT_DEPART(); + de.POST_NAME = post?.NAME; + de.PRODUCTION_UNIT_ID = item.PRODUCTION_UNIT_ID; + de.MINE_NAME = item.Nav_ProductionUnit?.NAME; + de.AREA_NAME = item.Nav_Area?.NAME; + de.ENTERPRISE_LIBRARY_DETAIL_ID = contentFirst?.ENTERPRISE_LIBRARY_DETAIL_ID; + de.ENTERPRISE_LIBRARY_ID = item.ID; + de.TYPE_NAME = depart.Nav_CheckType?.NAME; + de.DEPART_NAME = depart.Nav_Department?.NAME; + de.ENTERPRISE_LIBRARY_DETAIL_CONTENT_ID = depart.ENTERPRISE_LIBRARY_DETAIL_CONTENT_ID; + de.CHECK_CYCLE = depart.CHECK_CYCLE; + de.CHECK_TYPE_ID = depart.CHECK_TYPE_ID; + de.DEPARTMENT_ID = depart.DEPARTMENT_ID; + de.CHECK_TYPE = depart.CHECK_TYPE; + detailContents.Add(de); + } + } + } + else + { + T_SK_ENTERPRISE_LIBRARY_DETAIL_CONTENT_DEPART de = new T_SK_ENTERPRISE_LIBRARY_DETAIL_CONTENT_DEPART(); + de.POST_NAME = "未配置辨识岗位"; + de.PRODUCTION_UNIT_ID = item.PRODUCTION_UNIT_ID; + de.MINE_NAME = item.Nav_ProductionUnit?.NAME; + de.AREA_NAME = item.Nav_Area?.NAME; + de.ENTERPRISE_LIBRARY_DETAIL_ID = contentFirst?.ENTERPRISE_LIBRARY_DETAIL_ID; + de.ENTERPRISE_LIBRARY_ID = item.ID; + de.TYPE_NAME = depart.Nav_CheckType?.NAME; + de.DEPART_NAME = depart.Nav_Department?.NAME; + de.ENTERPRISE_LIBRARY_DETAIL_CONTENT_ID = depart.ENTERPRISE_LIBRARY_DETAIL_CONTENT_ID; + de.CHECK_CYCLE = depart.CHECK_CYCLE; + de.CHECK_TYPE_ID = depart.CHECK_TYPE_ID; + de.DEPARTMENT_ID = depart.DEPARTMENT_ID; + de.CHECK_TYPE = depart.CHECK_TYPE; + detailContents.Add(de); + } + } + } + } + } + if (detailContents != null && detailContents.Any()) + { + foreach (var item in contents) + { + var detailLib = libraryDetails.FirstOrDefault(t => t.ID == item.ENTERPRISE_LIBRARY_DETAIL_ID); + var lib = librarys.FirstOrDefault(t => t.ID == detailLib?.ENTERPRISE_LIBRARY_ID); + item.RISK_NAME = lib?.RISK_NAME; + item.AREA_ID = lib?.AREA_ID; + item.Nav_Area = lib?.Nav_Area; + } + foreach (var item in detailContents) + { + if (checkTypeIds != null && checkTypeIds.Any() && item.CHECK_TYPE_ID != null && checkTypeIds.Contains((Guid)item.CHECK_TYPE_ID)) + { + + } + else + { + if (item.CHECK_TYPE == SKDepartmentTypeEnum.班组级) + { + item.POST_NAME = "班组负责人"; + } + else if (item.CHECK_TYPE == SKDepartmentTypeEnum.车间级) + { + item.POST_NAME = "车间安全员"; + } + else if (item.CHECK_TYPE == SKDepartmentTypeEnum.部门级) + { + item.POST_NAME = "部门安全员"; + } + else + { + item.POST_NAME = "安环部安全员"; + } + } + } + var group = detailContents.GroupBy(t => new { t.PRODUCTION_UNIT_ID, t.MINE_NAME,t.CHECK_TYPE, t.CHECK_CYCLE, t.DEPART_NAME, t.DEPARTMENT_ID, t.CHECK_TYPE_ID, t.TYPE_NAME, t.POST_NAME }).ToList(); + foreach (var item in group) + { + CheckListNew listNew = new CheckListNew(); + listNew.PRODUCTION_UNIT_ID = item.Key.PRODUCTION_UNIT_ID; + listNew.MineType = item.Key.MINE_NAME; + listNew.CheckType = item.Key.TYPE_NAME; + listNew.CheckCycle = item.Key.CHECK_CYCLE.GetDescription(); + listNew.CheckLevel = item.Key.CHECK_TYPE.GetDescription(); + listNew.Num = (int)item.Key.CHECK_TYPE; + listNew.CheckDepart = item.Key.DEPART_NAME; + listNew.CheckPost = item.Key.POST_NAME; + var depathaveIds = detailContents.Where(t => t.DEPARTMENT_ID == item.Key.DEPARTMENT_ID && t.CHECK_TYPE_ID == item.Key.CHECK_TYPE_ID && t.CHECK_TYPE == item.Key.CHECK_TYPE && t.CHECK_CYCLE == item.Key.CHECK_CYCLE && t.PRODUCTION_UNIT_ID == item.Key.PRODUCTION_UNIT_ID && t.POST_NAME == item.Key.POST_NAME).Select(m => m.ENTERPRISE_LIBRARY_DETAIL_CONTENT_ID).Distinct().ToList(); + var temps = contents.Where(t => depathaveIds.Contains(t.ID)).Distinct().ToList(); + if (temps.Any()) + { + List listDetail = new List(); + foreach (var tem in temps) + { + CheckListDetail checkListDetail = new CheckListDetail(); + checkListDetail.CHECK_CONTENTS_ID = tem.CHECK_CONTENTS_ID; + checkListDetail.CHECK_CONTENTS_NAME = tem.Nav_Contents?.CHECKCONTENT; + checkListDetail.RISK_NAME = tem.RISK_NAME; + checkListDetail.RISK_AREA_ID = tem.AREA_ID; + checkListDetail.RISK_AREA_NAME = tem.Nav_Area?.NAME; + checkListDetail.CHECKPROOF = tem.CHECK_BASIC; + checkListDetail.CHECKSTANDARD = tem.CHECK_STANDARD; + listDetail.Add(checkListDetail); + } + listNew.details = listDetail.OrderBy(t => t.RISK_AREA_NAME).ThenBy(m => m.RISK_NAME).ToList(); + } + list.Add(listNew); + } + if (userInfo != null && userInfo.NAME.Contains("管理员")) + { + checkList.Data = list.OrderBy(n => n.PRODUCTION_UNIT_ID).ThenBy(x => x.Num).ThenBy(n => n.CheckDepart).ToList(); + } + else + { + checkList.Data = list.Where(t => t.PRODUCTION_UNIT_ID!=null && selectMinetype.Contains((Guid)t.PRODUCTION_UNIT_ID)).OrderBy(n => n.PRODUCTION_UNIT_ID).ThenBy(x => x.Num).ThenBy(n => n.CheckDepart).ToList(); + } + checkList.TotalCount = checkList.Data.Count; + } + return checkList; } [HttpPost, Route("GetCheckListNew")] public JsonActionResult> GetCheckListNew([FromBody] KeywordFilter filter) @@ -2554,7 +2554,7 @@ namespace APT.SK.WebApi.Controllers.Api var userInfoTemp = users.FirstOrDefault(t => t.ID == loginUser); if (userInfoTemp != null && userInfoTemp.Nav_ProdutionUnit != null && userInfoTemp.Nav_ProdutionUnit.Any()) { - selectMinetype = userInfoTemp.Nav_ProdutionUnit.Where(m=>m.PRODUCTION_UNIT_ID!=null).Select(t => (Guid)t.PRODUCTION_UNIT_ID).Distinct().ToList(); + selectMinetype = userInfoTemp.Nav_ProdutionUnit.Where(m=>m.PRODUCTION_UNIT_ID!=null).Select(t => (Guid)t.PRODUCTION_UNIT_ID).Distinct().ToList(); } //List departmentIds = new List() { loginDepart.Value }; @@ -2687,12 +2687,12 @@ namespace APT.SK.WebApi.Controllers.Api CheckListNew listNew = new CheckListNew(); listNew.PRODUCTION_UNIT_ID = item.Key.PRODUCTION_UNIT_ID; listNew.CHECK_TYPE_ID = item.Key.CHECK_TYPE_ID; - listNew.MineType = item.Key.MINE_NAME; - listNew.CheckType = item.Key.TYPE_NAME; - listNew.CheckCycle = item.Key.CHECK_CYCLE.GetDescription(); - listNew.CheckLevel = item.Key.CHECK_TYPE.GetDescription(); - listNew.Num = (int)item.Key.CHECK_TYPE; - listNew.CheckDepart = item.Key.DEPART_NAME; + listNew.MineType = item.Key.MINE_NAME; + listNew.CheckType = item.Key.TYPE_NAME; + listNew.CheckCycle = item.Key.CHECK_CYCLE.GetDescription(); + listNew.CheckLevel = item.Key.CHECK_TYPE.GetDescription(); + listNew.Num = (int)item.Key.CHECK_TYPE; + listNew.CheckDepart = item.Key.DEPART_NAME; listNew.CheckPost = item.Key.POST_NAME; var depathaveIds = conDepartlist.Where(t => t.DEPARTMENT_ID == item.Key.DEPARTMENT_ID && t.CHECK_TYPE_ID == item.Key.CHECK_TYPE_ID && t.CHECK_TYPE == item.Key.CHECK_TYPE && t.CHECK_CYCLE == item.Key.CHECK_CYCLE && t.PRODUCTION_UNIT_ID == item.Key.PRODUCTION_UNIT_ID && t.POST_NAME == item.Key.POST_NAME).Select(m => m.ENTERPRISE_LIBRARY_DETAIL_CONTENT_ID).Distinct().ToList(); var temps = contents.Where(t => depathaveIds.Contains(t.ID)).Distinct().ToList(); @@ -2719,15 +2719,15 @@ namespace APT.SK.WebApi.Controllers.Api } //if (userInfoTemp != null && userInfoTemp.Nav_Department!=null && (userInfoTemp.NAME.Contains("管理员") || userInfoTemp.Nav_Department.DEPARTMENT_STATUS == 2 || userInfoTemp.Nav_Department.DEPARTMENT_TYPE == 5)) { - checkList.Data = list.OrderBy(n => n.PRODUCTION_UNIT_ID).ThenBy(x => x.Num).ThenBy(n => n.CheckDepart).ToList(); - } + checkList.Data = list.OrderBy(n => n.PRODUCTION_UNIT_ID).ThenBy(x => x.Num).ThenBy(n => n.CheckDepart).ToList(); + } //else //{ - // checkList.Data = list.Where(t => t.PRODUCTION_UNIT_ID != null && selectMinetype.Contains((Guid)t.PRODUCTION_UNIT_ID)).OrderBy(n => n.PRODUCTION_UNIT_ID).ThenBy(x => x.Num).ThenBy(n => n.CheckDepart).ToList(); + // checkList.Data = list.Where(t => t.PRODUCTION_UNIT_ID != null && selectMinetype.Contains((Guid)t.PRODUCTION_UNIT_ID)).OrderBy(n => n.PRODUCTION_UNIT_ID).ThenBy(x => x.Num).ThenBy(n => n.CheckDepart).ToList(); //} checkList.TotalCount = checkList.Data.Count; } return checkList; - } - } -} + } + } +} diff --git a/APT.MicroApi/APT.SK.WebApi/Controllers/Api/RiskEvaluationController.cs b/APT.MicroApi/APT.SK.WebApi/Controllers/Api/RiskEvaluationController.cs index 8bd8e16..6bbb468 100644 --- a/APT.MicroApi/APT.SK.WebApi/Controllers/Api/RiskEvaluationController.cs +++ b/APT.MicroApi/APT.SK.WebApi/Controllers/Api/RiskEvaluationController.cs @@ -133,6 +133,13 @@ namespace APT.SK.WebApi.Controllers.Api de.MARK = item.MARK; de.EMERGENCY = item.EMERGENCY; de.ENTERPRISE_LIBRARY_ID = item.ENTERPRISE_LIBRARY_ID; + de.SCOREL_ID = item.SCOREL_ID; + de.SCOREE_ID = item.SCOREE_ID; + de.SCOREC_ID = item.SCOREC_ID; + if (item.SCOREL_ID == null || item.SCOREE_ID == null || item.SCOREC_ID == null) + { + throw new Exception("第" + item.NUM + "行,LEC都不能为空"); + } if (item.Nav_DetailMeasures != null && item.Nav_DetailMeasures.Any()) { foreach (var mm in item.Nav_DetailMeasures)