using APT.BaseData.Domain.Entities.FM; using APT.BaseData.Domain.Entities; using APT.BaseData.Domain.Enums; using APT.BaseData.Services.Services.FM; using APT.Infrastructure.Core; using APT.MS.Domain.Entities.FO; using APT.MS.Domain.Entities.SK; using APT.MS.Domain.Enums; using APT.Utility; using Microsoft.AspNetCore.Mvc; using APT.BaseData.Domain.Enums.PF; using APT.BaseData.Services.DomainServices; using MySqlX.XDevAPI.Common; using System.Security.Policy; using System.Collections.Generic; using System.Linq; using System; using APT.MS.Domain.Enums.SK; namespace APT.SK.WebApi.Controllers { /// /// 基础库 /// [Route("api/SK/SKBasicLibrary")] public partial class BasicLibraryController : AuthorizeApiController { /// /// 保存 /// /// /// [HttpPost, Route("FullUpdate")] public JsonActionResult FullUpdate([FromBody] T_SK_BASIC_LIBRARY entity) { return SafeExecute(() => { var details = entity.Nav_Details; entity.Nav_Details = null; List contentList = new List(); List hiddenList = new List(); List basicList = new List(); if (details != null && details.Any()) { foreach (var item in details) { if (item.Nav_DetailContents != null && item.Nav_DetailContents.Any()) { foreach (var item2 in item.Nav_DetailContents) { if (item2.Nav_DetailHiddens != null && item2.Nav_DetailHiddens.Any()) { foreach (var item3 in item2.Nav_DetailHiddens) { item3.ORG_ID = entity.ORG_ID; item3.BASIC_LIBRARY_DETAIL_CONTENT_ID = item2.ID; item3.NUM = (item3.NUM == 0 || item3.NUM == null) ? item3.ROW_NO : item3.NUM; hiddenList.Add(item3); } } if (item2.Nav_DetailBasics != null && item2.Nav_DetailBasics.Any()) { foreach (var item3 in item2.Nav_DetailBasics) { item3.ORG_ID = entity.ORG_ID; item3.BASIC_LIBRARY_DETAIL_CONTENT_ID = item2.ID; basicList.Add(item3); } } item2.ORG_ID = entity.ORG_ID; item2.BASIC_LIBRARY_DETAIL_ID = item.ID; item2.Nav_DetailHiddens = null; item2.Nav_DetailBasics = null; item2.NUM = (item2.NUM == 0 || item2.NUM == null) ? item2.ROW_NO : item2.NUM; contentList.Add(item2); } } item.ORG_ID = entity.ORG_ID; item.BASIC_LIBRARY_ID = entity.ID; item.Nav_DetailContents = null; item.NUM = (item.NUM == 0 || item.NUM == null) ? item.ROW_NO : item.NUM; } } List libraryIds = 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(); T_SK_ENTERPRISE_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); libraryPostIds = this.GetEntities(t => t.ENTERPRISE_LIBRARY_ID == library.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(); libraryDepartIds = this.GetEntities(t => t.ENTERPRISE_LIBRARY_ID == library.ID, new BaseFilter(entity.ORG_ID)).Select(t => t.ID).ToList(); detailIds = this.GetEntities(t => t.ENTERPRISE_LIBRARY_ID == library.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(); hiddenIds = this.GetEntities(t => contentIds.Contains(t.ENTERPRISE_LIBRARY_DETAIL_CONTENT_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(); 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(); } enterpriseLib = new T_SK_ENTERPRISE_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_ENTERPRISE_LIBRARY_DETAIL enterDetail = new T_SK_ENTERPRISE_LIBRARY_DETAIL(); enterDetail.ORG_ID = item.ORG_ID; enterDetail.ID = item.ID; enterDetail.ENTERPRISE_LIBRARY_ID = item.BASIC_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_ENTERPRISE_LIBRARY_DETAIL_CONTENT enterDetail = new T_SK_ENTERPRISE_LIBRARY_DETAIL_CONTENT(); enterDetail.ORG_ID = item.ORG_ID; enterDetail.ID = item.ID; enterDetail.ENTERPRISE_LIBRARY_DETAIL_ID = item.BASIC_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_ENTERPRISE_LIBRARY_DETAIL_CONTENT_BASIC enterDetail = new T_SK_ENTERPRISE_LIBRARY_DETAIL_CONTENT_BASIC(); enterDetail.ORG_ID = item.ORG_ID; enterDetail.ID = item.ID; enterDetail.ENTERPRISE_LIBRARY_DETAIL_CONTENT_ID = item.BASIC_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_ENTERPRISE_LIBRARY_DETAIL_CONTENT_HIDDEN enterDetail = new T_SK_ENTERPRISE_LIBRARY_DETAIL_CONTENT_HIDDEN(); enterDetail.ORG_ID = item.ORG_ID; enterDetail.ID = item.ID; enterDetail.ENTERPRISE_LIBRARY_DETAIL_CONTENT_ID = item.BASIC_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 (entity != null) UpdateEntityNoCommit(entity); if (details != null && details.Any()) BantchSaveEntityNoCommit(details); if (contentList != null && contentList.Any()) BantchSaveEntityNoCommit(contentList); if (hiddenList != null && hiddenList.Any()) BantchSaveEntityNoCommit(hiddenList); if (basicList != null && basicList.Any()) BantchSaveEntityNoCommit(basicList); 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 (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); }); 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); pageFilter.Include.Add("Nav_Details"); pageFilter.Include.Add("Nav_Details.Nav_DetailContents.Nav_Contents"); pageFilter.Include.Add("Nav_Details.Nav_DetailContents.Nav_DetailHiddens.Nav_Question"); pageFilter.Include.Add("Nav_Details.Nav_DetailContents.Nav_DetailBasics.Nav_Law"); pageFilter.Include.Add("Nav_SCOREL"); pageFilter.Include.Add("Nav_SCOREE"); pageFilter.Include.Add("Nav_SCOREC"); pageFilter.Include.Add("Nav_Type"); pageFilter.Include.Add("Nav_ProductionUnit"); pageFilter.SelectField.Add("Nav_Details.NUM"); pageFilter.SelectField.Add("Nav_Details.MEASURES_NAME"); var result = WitOrderPaged(null, pageFilter); if (result != null && 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)) { var temp = item2.NUM + "、" + item2.MEASURES_NAME + Environment.NewLine; item.MINE_NAME = item.MINE_NAME + temp; i++; } } } } 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(); if (item.Nav_Details != null && item.Nav_Details.Any()) { foreach (var item2 in item.Nav_Details.OrderBy(t => t.NUM)) { var i = 1; 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 (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 (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++; } } } } result.Data.OrderBy(t => t.AREA_ID); } } return result; } /// /// 获得单条实体数据 /// /// 过滤实体 /// [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.OrderBy(t => t.NUM); } } result.Data.Nav_Details.OrderBy(t => t.NUM); } } return result; } /// /// 获得单条实体数据 /// /// 过滤实体 /// [HttpPost, Route("SKGet")] public JsonActionResult SKGet([FromBody] KeywordFilter filter) { return SafeExecute(() => { var result = new T_SK_BASIC_LIBRARY(); var id = filter.FilterGroup.Rules.FirstOrDefault(t => t.Field == "ID").Value.ToString(); 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"}); } if (result != null) { var details = this.GetEntities(t => t.BASIC_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.BASIC_LIBRARY_DETAIL_ID), new BaseFilter(filter.OrgId), "Nav_Contents"); var contentIds = contents.Select(t => t.ID).ToList(); var contenthiddens = this.GetEntities(t => contentIds.Contains(t.BASIC_LIBRARY_DETAIL_CONTENT_ID), new BaseFilter(filter.OrgId), "Nav_Question"); var contentbasics = this.GetEntities(t => contentIds.Contains(t.BASIC_LIBRARY_DETAIL_CONTENT_ID), new BaseFilter(filter.OrgId), "Nav_Law"); foreach (var detail in details) { var contentTemps = contents.Where(t => t.BASIC_LIBRARY_DETAIL_ID == detail.ID).ToList(); detail.Nav_DetailContents = contentTemps.OrderBy(t => t.NUM).ToList(); foreach (var content in detail.Nav_DetailContents) { var hiddenTemps = contenthiddens.Where(t => t.BASIC_LIBRARY_DETAIL_CONTENT_ID == content.ID).ToList(); content.Nav_DetailHiddens = hiddenTemps.OrderBy(t => t.NUM).ToList(); var basicTemps = contentbasics.Where(t => t.BASIC_LIBRARY_DETAIL_CONTENT_ID == content.ID).ToList(); content.Nav_DetailBasics = basicTemps.ToList(); } } } result.Nav_Details = details.ToList(); } return result; }); } } }