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 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; var departs = entity.Nav_Departs; entity.Nav_Departs = null; var posts = entity.Nav_Posts; entity.Nav_Posts = null; 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 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(); 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()) { 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(); 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; 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; 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; 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); } } } } } } } } //辨识层级 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 controlLevel = libraryDepart.Select(t => t.DEPARTMENT_TYPE).Distinct().ToList(); var count = controlLevel.Count(); //检查层级 var checkLevel = departList.Select(t => t.CHECK_TYPE).Distinct().ToList(); if (entity.EVALUATE_LEVEL == SKEvaluateLevelEnum.重大风险) { if (count >= 4 && controlLevel.Contains(SKDepartmentTypeEnum.公司级)) { //重大风险管控层级必须有四个层级,并且要有公司级 } else { foreach (var level in identitylLevel) { if (!controlLevel.Contains((SKDepartmentTypeEnum)level)) { throw new Exception("缺少管控层级,请添加管控层级:" + ((SKDepartmentTypeEnum)level).GetDescription()); } } } } if (entity.EVALUATE_LEVEL == SKEvaluateLevelEnum.较大风险) { if (count >= 3 && controlLevel.Contains(SKDepartmentTypeEnum.部门级)) { //较大风险管控层级必须有三个层级,并且要有部门级 } else { foreach (var level in identitylLevel) { if (!controlLevel.Contains((SKDepartmentTypeEnum)level)) { throw new Exception("缺少管控层级,请添加管控层级:" + ((SKDepartmentTypeEnum)level).GetDescription()); } } } } if (entity.EVALUATE_LEVEL == SKEvaluateLevelEnum.一般风险) { if (count >= 2 && controlLevel.Contains(SKDepartmentTypeEnum.车间级)) { //一般风险管控层级必须有两个层级,并且要有车间级 } else { foreach (var level in identitylLevel) { if (!controlLevel.Contains((SKDepartmentTypeEnum)level)) { throw new Exception("缺少管控层级,请添加管控层级:" + ((SKDepartmentTypeEnum)level).GetDescription()); } } } } if (entity.EVALUATE_LEVEL == SKEvaluateLevelEnum.低风险) { if (count >= 1 && controlLevel.Contains(SKDepartmentTypeEnum.班组级)) { //低风险管控层级必须有一个层级,并且要有班组级 } else { foreach (var level in identitylLevel) { if (!controlLevel.Contains((SKDepartmentTypeEnum)level)) { throw new Exception("缺少管控层级,请添加管控层级:" + ((SKDepartmentTypeEnum)level).GetDescription()); } } } } 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; 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 (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 (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.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(); 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 = i + "、" + item2.MEASURES_NAME + Environment.NewLine; item.MINE_NAME = item.MINE_NAME + 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 = 0; switch (item2) { case "部门": type = 0; break; case "车间": type = 1; break; case "班组": type = 2; break; case "公司": type = 3; break; default: type = 0; 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.MineType).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); } 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_CheckType").ToList(); if (detailContents != null && detailContents.Any()) { foreach (var item in detailContents) { item.MineType = item.Nav_DetailContent.Nav_LibraryDetail.Nav_Library.MineType; } checkList.Data = detailContents.GroupBy(t => new { t.MineType, 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.MineType = item.Nav_DetailContent.Nav_LibraryDetail.Nav_Library.MineType; } if (!string.IsNullOrEmpty(filter.Keyword)) { detailContents = detailContents.Where(t => t.MineType == (SKProductionUnit)int.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.MineType = item.Nav_LibraryDetail.Nav_Library.MineType; 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.MineType, t.AREA_NAME, t.Nav_Contents?.CHECKCONTENT }).Select(m => m.FirstOrDefault()).OrderBy(n => n.MineType).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 (!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 = 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 = this.GetOrderPageEntities(null, pageFilter); } } else { result = 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 == 0 ? SKDepartmentTypeEnum.部门级 : item.DEPARTMENT_TYPE == 3 ? SKDepartmentTypeEnum.公司级 : item.DEPARTMENT_TYPE == 1 ? 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, new BaseFilter(filter.OrgId)); var users = 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>(); 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_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_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_Photo.Nav_ImgFile"); 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 == "MineType"); 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"}); } else if (mineType != null && areaId != null && riskName != null)//&& typeId != null && riskDes!=null { var temp = SKProductionUnit.All; switch (mineType.Value.ToString()) { case "0": temp = SKProductionUnit.All; break; case "10": temp = SKProductionUnit.MineChoose; break; case "20": temp = SKProductionUnit.Minelast; break; case "30": temp = SKProductionUnit.Mine; break; case "40": temp = SKProductionUnit.MineUnderGround; break; case "31": temp = SKProductionUnit.Department; break; case "32": temp = SKProductionUnit.Nonmetallic; break; default: temp = SKProductionUnit.All; break; } result = this.GetEntity(t => t.MineType == temp && 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"}); } 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"); 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("GetCheckListNew")] public JsonActionResult> GetCheckListNew([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); 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(); 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").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.MineType = item.MineType; 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.MineType = item.MineType; 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.MineType, 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.MineType = item.Key.MineType.GetDescription(); 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.MineType == item.Key.MineType && 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.MineType).ThenBy(x => x.Num).ThenBy(n => n.CheckDepart).ToList(); } else { checkList.Data = list.Where(t => selectMinetype.Contains(t.MineType)).OrderBy(n => n.MineType).ThenBy(x => x.Num).ThenBy(n => n.CheckDepart).ToList(); } checkList.TotalCount = checkList.Data.Count; } return checkList; } } }