using APT.BaseData.Domain.ApiModel; using APT.BaseData.Domain.Entities; using APT.BaseData.Domain.Entities.FM; using APT.BaseData.Domain.Enums; using APT.BaseData.Domain.Enums.PF; using APT.BaseData.Domain.IServices.OP; using APT.BaseData.Services.DomainServices; using APT.BaseData.Services.Services.FM; using APT.BaseData.Services.Services.OP; using APT.Infrastructure.Api; using APT.Infrastructure.Core; using APT.MS.Domain.Entities.FO; using APT.MS.Domain.Entities.LR; using APT.MS.Domain.Entities.SK; using APT.MS.Domain.Enums; using APT.MS.Domain.Enums.SK; using APT.SK.WebApi.Controllers.Api; using APT.Utility; using Microsoft.AspNetCore.Mvc; using Microsoft.Data.SqlClient; using Microsoft.EntityFrameworkCore; using Microsoft.EntityFrameworkCore.Metadata.Internal; using MySqlX.XDevAPI.Common; using NPOI.SS.Formula.Functions; using NPOI.SS.Formula.PTG; using Org.BouncyCastle.Crypto; using System; using System.Collections.Generic; using System.Data; using System.DirectoryServices.ActiveDirectory; using System.Linq; using System.Security.Policy; namespace APT.SK.WebApi.Controllers { /// /// 基础库 /// [Route("api/SK/SKBasicLibrary")] public partial class BasicLibraryController : AuthorizeApiController { IOPTenantDBConnService OPTenantDBConnService { get; set; } public BasicLibraryController(IOPTenantDBConnService opTenantDBConnService) { OPTenantDBConnService = opTenantDBConnService; } /// /// 保存 /// /// /// [HttpPost, Route("FullUpdate")] public JsonActionResult FullUpdate([FromBody] T_SK_BASIC_LIBRARY entity) { return SafeExecute(() => { var details = entity.Nav_Details; entity.Nav_Details = null; if (details != null && details.Any()) { details = details.Where(t => !t.IS_DELETED).ToList(); } var deleteBasDetailIds = this.GetEntities(t =>t.BASIC_LIBRARY_ID == entity.ID, new BaseFilter(entity.ORG_ID)).Select(t => t.ID).ToList(); var deleteBasConttentIds = this.GetEntities(t => deleteBasDetailIds.Contains(t.BASIC_LIBRARY_DETAIL_ID), new BaseFilter(entity.ORG_ID)).Select(t => t.ID).ToList(); var deleteBasBasicIds = this.GetEntities(t => deleteBasConttentIds.Contains(t.BASIC_LIBRARY_DETAIL_CONTENT_ID), new BaseFilter(entity.ORG_ID)).Select(t => t.ID).ToList(); var deleteBasHiddenIds=this.GetEntities< T_SK_BASIC_LIBRARY_DETAIL_CONTENT_HIDDEN >(t=> deleteBasConttentIds.Contains(t.BASIC_LIBRARY_DETAIL_CONTENT_ID), new BaseFilter(entity.ORG_ID)).Select(t => t.ID).ToList(); List contentList = new List(); List hiddenList = new List(); List basicList = new List(); var numIsNull = details.FirstOrDefault(t => t.NUM == null || t.NUM == 0); if (numIsNull != null) { throw new Exception("管控措施的顺序必须填写"); } 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.SCOREL_ID = entity.SCOREL_ID; enterpriseLib.SCOREE_ID = entity.SCOREE_ID; enterpriseLib.SCOREC_ID = entity.SCOREC_ID; 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 (deleteBasBasicIds != null && deleteBasBasicIds.Any()) this.BantchDeleteEntityNoCommit(deleteBasBasicIds); if (deleteBasHiddenIds != null && deleteBasHiddenIds.Any()) this.BantchDeleteEntityNoCommit(deleteBasHiddenIds); if (deleteBasConttentIds != null && deleteBasConttentIds.Any()) this.BantchDeleteEntityNoCommit(deleteBasConttentIds); if (deleteBasDetailIds != null && deleteBasDetailIds.Any()) this.BantchDeleteEntityNoCommit(deleteBasDetailIds); 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("FullUpdateNew")] public JsonActionResult FullUpdateNew([FromBody] T_SK_BASIC_LIBRARY entity) { return SafeExecute(() => { string strConn = OPTenantDBConnService.GetConnByORGID(Guid.Parse("00300000-0000-0000-0000-000000000000")); string dbName = "mh_jy_head"; // 2. 传入构造函数 using var db = new CrossDbContext(strConn); var details = entity.Nav_Details; entity.Nav_Details = null; if (details != null && details.Any()) { details = details.Where(t => !t.IS_DELETED).ToList(); } var deleteBasDetailIds = this.GetEntities(t => t.BASIC_LIBRARY_ID == entity.ID, new BaseFilter(entity.ORG_ID)).Select(t => t.ID).ToList(); var deleteBasConttentIds = this.GetEntities(t => deleteBasDetailIds.Contains(t.BASIC_LIBRARY_DETAIL_ID), new BaseFilter(entity.ORG_ID)).Select(t => t.ID).ToList(); var deleteBasBasicIds = this.GetEntities(t => deleteBasConttentIds.Contains(t.BASIC_LIBRARY_DETAIL_CONTENT_ID), new BaseFilter(entity.ORG_ID)).Select(t => t.ID).ToList(); var deleteBasHiddenIds = this.GetEntities(t => deleteBasConttentIds.Contains(t.BASIC_LIBRARY_DETAIL_CONTENT_ID), new BaseFilter(entity.ORG_ID)).Select(t => t.ID).ToList(); List contentList = new List(); List hiddenList = new List(); List basicList = new List(); var numIsNull = details.FirstOrDefault(t => t.NUM == null || t.NUM == 0); if (numIsNull != null) { throw new Exception("管控措施的顺序必须填写"); } T_FM_USER_PRODUCTION_UNIT_SET proUnitNew = null; //查生产单元表 var proUnit = this.GetEntity(t =>t.ID == entity.PRODUCTION_UNIT_ID); var jtProUnit = db.GetJTProUnits(dbName).FirstOrDefault(t => t.ID == entity.PRODUCTION_UNIT_ID); if (proUnit == null && jtProUnit != null) { //写入 proUnitNew = new T_FM_USER_PRODUCTION_UNIT_SET(); proUnitNew.ORG_ID = entity.ORG_ID; proUnitNew.ID = entity.PRODUCTION_UNIT_ID.Value; proUnitNew.NAME = jtProUnit?.NAME; proUnitNew.CODE = jtProUnit?.CODE; } //else //{ // //更新 // proUnitNew = proUnit; // proUnitNew.NAME = jtProUnit?.NAME; // proUnitNew.CODE = jtProUnit?.CODE; //} T_SK_RISK_TYPE riskTypeNew = null; //查风险类别 var riskType = this.GetEntity(t => t.ID == entity.TYPE_ID); var jtRiskType = db.GetJTRiskTypes(dbName).FirstOrDefault(t => t.ID == entity.TYPE_ID); if (riskType == null && jtRiskType!=null) { riskTypeNew = new T_SK_RISK_TYPE(); riskTypeNew.ORG_ID = entity.ORG_ID; riskTypeNew.ID = entity.TYPE_ID.Value; riskTypeNew.NAME = jtRiskType?.NAME; riskTypeNew.PRODUCTION_UNIT_ID = entity.PRODUCTION_UNIT_ID; } //else //{ // //更新 // riskTypeNew = riskType; // riskTypeNew.NAME = jtRiskType?.NAME; // riskTypeNew.PRODUCTION_UNIT_ID = entity.PRODUCTION_UNIT_ID; //} T_SK_SCOREL libLNew = null; //查生产单元表 var libL = this.GetEntity(t => t.ID == entity.SCOREL_ID); var jtlibL = db.GetJTLibLs(dbName).FirstOrDefault(t => t.ID == entity.SCOREL_ID); if (libL == null && jtlibL != null) { //写入 libLNew = new T_SK_SCOREL(); libLNew.ORG_ID = entity.ORG_ID; libLNew.ID = entity.SCOREL_ID.Value; libLNew.NAME = jtlibL?.NAME; libLNew.CODE = jtlibL?.CODE; libLNew.SCORE = jtlibL==null ?0:jtlibL.SCORE; } T_SK_SCOREE libENew = null; //查生产单元表 var libE = this.GetEntity(t => t.ID == entity.SCOREE_ID); var jtlibE = db.GetJTLibEs(dbName).FirstOrDefault(t => t.ID == entity.SCOREE_ID); if (libE == null && libE != null) { //写入 libENew = new T_SK_SCOREE(); libENew.ORG_ID = entity.ORG_ID; libENew.ID = entity.SCOREE_ID.Value; libENew.NAME = jtlibE?.NAME; libENew.CODE = jtlibE?.CODE; libENew.SCORE = jtlibE == null ? 0 : jtlibE.SCORE; } T_SK_SCOREC libCNew = null; //查生产单元表 var libC = this.GetEntity(t => t.ID == entity.SCOREC_ID); var jtlibC = db.GetJTLibCs(dbName).FirstOrDefault(t => t.ID == entity.SCOREC_ID); if (libC == null && jtlibC != null) { //写入 libCNew = new T_SK_SCOREC(); libCNew.ORG_ID = entity.ORG_ID; libCNew.ID = entity.SCOREC_ID.Value; libCNew.NAME = jtlibC?.NAME; libCNew.CODE = jtlibC?.CODE; libCNew.SCORE = jtlibC == null ? 0 : jtlibC.SCORE; } 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.CHECK_CONTENTS_ID = item2.CHECK_CONTENTS_ID; item3.BASIC_LIBRARY_DETAIL_CONTENT_ID = item2.ID; //item3.Nav_Question = null; 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; item3.CHECK_CONTENTS_ID = item2.CHECK_CONTENTS_ID; //item3.Nav_Law = null; basicList.Add(item3); } } item2.ORG_ID = entity.ORG_ID; item2.BASIC_LIBRARY_DETAIL_ID = item.ID; //item2.Nav_Contents = null; 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 updateCheckConts = new List(); var checkConts = this.GetEntities(t => true, new BaseFilter(entity.ORG_ID)); var jtCheckConts = db.GetJTCons(dbName).ToList(); if (contentList != null && contentList.Any()) { var conIds = contentList.Where(m=>m.CHECK_CONTENTS_ID!=null).Select(t => t.CHECK_CONTENTS_ID).ToList(); //存在,不更新 var conExsists = checkConts.Where(t=> conIds.Contains(t.ID)).ToList(); //if (conExsists != null && conExsists.Any()) //{ // foreach (var conExsist in conExsists) // { // //检查内容 // var first = jtCheckConts.FirstOrDefault(t => t.ID == conExsist.ID); // if (first != null) // { // conExsist.ID = first.ID; // conExsist.ORG_ID = entity.ORG_ID; // conExsist.PRODUCTION_UNIT_ID = entity.PRODUCTION_UNIT_ID; // conExsist.Nav_ListCheckQuestion = null; // conExsist.Nav_ContentsBasics = null; // conExsist.CHECKCONTENT = first.CHECKCONTENT; // conExsist.CHECK_STANDARD = first.CHECK_STANDARD; // updateCheckConts.Add(conExsist); // } // } //} //不存在,写入 var conIdNews = conExsists.Select(t => t.ID).ToList(); var conExsistNews = conIds.Where(t =>t!=null && !conIdNews.Contains(t.Value)).ToList(); if (conExsistNews != null && conExsistNews.Any()) { foreach (var id in conExsistNews) { //检查内容 var first = jtCheckConts.FirstOrDefault(t => t.ID == id); if (first != null) { T_SK_CHECK_CONTENTS conExsist = new T_SK_CHECK_CONTENTS(); conExsist.ID = id.Value; conExsist.ORG_ID = entity.ORG_ID; conExsist.PRODUCTION_UNIT_ID = entity.PRODUCTION_UNIT_ID; conExsist.Nav_ListCheckQuestion = null; conExsist.Nav_ContentsBasics = null; conExsist.CHECKCONTENT = first?.CHECKCONTENT; conExsist.CHECK_STANDARD = first?.CHECK_STANDARD; updateCheckConts.Add(conExsist); } } } } //查检查依据(法律法规) List updateCheckLaws = new List(); List updateCheckLawTypes = new List(); var checkContLaws = this.GetEntities(t => true, new BaseFilter(entity.ORG_ID)); var jtcheckContLaws = db.GetJTLaws(dbName).ToList(); var jtcheckContLawTypes = db.GetJTLawTypes(dbName).ToList(); var checkContLawTypes = this.GetEntities(t => true, new BaseFilter(entity.ORG_ID)); if (basicList != null && basicList.Any()) { var conIds = basicList.Where(m => m.LAW_ID != null).Select(t => t.LAW_ID).Distinct().ToList(); //存在,不更新 var conExsists = checkContLaws.Where(t => conIds.Contains(t.ID)).ToList(); //if (conExsists != null && conExsists.Any()) //{ // foreach (var conExsist in conExsists) // { // //法律法规 // var first = jtcheckContLaws.FirstOrDefault(t => t.ID == conExsist.ID); // if (first != null) // { // var firstType = checkContLawTypes.FirstOrDefault(t => t.ID == first.TYPE_ID); // if (firstType == null) // { // var jtFirstType = jtcheckContLawTypes.FirstOrDefault(t => t.ID == first.TYPE_ID); // if (jtFirstType != null) // { // T_LR_LAW_TYPE lawType = new T_LR_LAW_TYPE(); // lawType.ID = jtFirstType.ID; // lawType.NAME = jtFirstType.NAME; // updateCheckLawTypes.Add(lawType); // conExsist.ID = first.ID; // conExsist.ORG_ID = entity.ORG_ID; // conExsist.CODE = first?.CODE; // conExsist.NAME = first?.NAME; // conExsist.VERSION_NUM = first?.VERSION_NUM; // conExsist.LAW_STATUS = first == null ? BSLawStatusEnum.现行 : first.LAW_STATUS; // conExsist.UPDATE_TIME = first == null ? DateTime.Now : first.UPDATE_TIME; // conExsist.EXECUTE_TIME = first == null ? DateTime.Now : first.EXECUTE_TIME; // conExsist.USER_ID = APT.Infrastructure.Api.AppContext.CurrentSession.UserID.Value; // conExsist.TYPE_ID = first.TYPE_ID; // updateCheckLaws.Add(conExsist); // } // } // else // { // conExsist.ID = first.ID; // conExsist.ORG_ID = entity.ORG_ID; // conExsist.CODE = first?.CODE; // conExsist.NAME = first?.NAME; // conExsist.VERSION_NUM = first?.VERSION_NUM; // conExsist.LAW_STATUS = first == null ? BSLawStatusEnum.现行 : first.LAW_STATUS; // conExsist.UPDATE_TIME = first == null ? DateTime.Now : first.UPDATE_TIME; // conExsist.EXECUTE_TIME = first == null ? DateTime.Now : first.EXECUTE_TIME; // conExsist.USER_ID = APT.Infrastructure.Api.AppContext.CurrentSession.UserID.Value; // conExsist.TYPE_ID = first.TYPE_ID; // updateCheckLaws.Add(conExsist); // } // } // } //} //不存在,写入 var conIdNews = conExsists.Select(t => t.ID).ToList(); var conExsistNews = conIds.Where(t => t != null && !conIdNews.Contains(t.Value)).ToList(); if (conExsistNews != null && conExsistNews.Any()) { foreach (var id in conExsistNews) { //检查依据(法律法规) var first = jtcheckContLaws.FirstOrDefault(t => t.ID == id); if (first!= null) { var firstType = checkContLawTypes.FirstOrDefault(t => t.ID == first.TYPE_ID); if (firstType == null) { var jtFirstType = jtcheckContLawTypes.FirstOrDefault(t => t.ID == first.TYPE_ID); if (jtFirstType != null) { T_LR_LAW_TYPE lawType = new T_LR_LAW_TYPE(); lawType.ID = jtFirstType.ID; lawType.NAME = jtFirstType.NAME; updateCheckLawTypes.Add(lawType); T_LR_LAW conExsist = new T_LR_LAW(); conExsist.ID = id.Value; conExsist.ORG_ID = entity.ORG_ID; conExsist.CODE = first?.CODE; conExsist.NAME = first?.NAME; conExsist.VERSION_NUM = first?.VERSION_NUM; conExsist.LAW_STATUS = first == null ? BSLawStatusEnum.现行 : first.LAW_STATUS; conExsist.UPDATE_TIME = first == null ? DateTime.Now : first.UPDATE_TIME; conExsist.EXECUTE_TIME = first == null ? DateTime.Now : first.EXECUTE_TIME; conExsist.USER_ID = APT.Infrastructure.Api.AppContext.CurrentSession.UserID.Value; conExsist.TYPE_ID = jtFirstType.ID; updateCheckLaws.Add(conExsist); } } else { T_LR_LAW conExsist = new T_LR_LAW(); conExsist.ID = id.Value; conExsist.ORG_ID = entity.ORG_ID; conExsist.CODE = first?.CODE; conExsist.NAME = first?.NAME; conExsist.VERSION_NUM = first?.VERSION_NUM; conExsist.LAW_STATUS = first == null ? BSLawStatusEnum.现行 : first.LAW_STATUS; conExsist.UPDATE_TIME = first == null ? DateTime.Now : first.UPDATE_TIME; conExsist.EXECUTE_TIME = first == null ? DateTime.Now : first.EXECUTE_TIME; conExsist.USER_ID = APT.Infrastructure.Api.AppContext.CurrentSession.UserID.Value; conExsist.TYPE_ID = first.TYPE_ID; updateCheckLaws.Add(conExsist); } } } } } //查隐患描述 List updateCheckQues = new List(); var checkContHids = this.GetEntities(t => true, new BaseFilter(entity.ORG_ID)); var jtCheckContHids = db.GetJTQues(dbName).ToList(); if (hiddenList != null && hiddenList.Any()) { var conIds = hiddenList.Where(m => m.CHECK_QUESTION_ID != null).Select(t => t.CHECK_QUESTION_ID).Distinct().ToList(); //存在,不更新 var conExsists = checkContHids.Where(t => conIds.Contains(t.ID)).ToList(); //if (conExsists != null && conExsists.Any()) //{ // foreach (var conExsist in conExsists) // { // //隐患描述 // var first = jtCheckContHids.FirstOrDefault(t => t.ID == conExsist.ID); // if (first != null) // { // conExsist.ID = first.ID; // conExsist.ORG_ID = entity.ORG_ID; // conExsist.QUESTION_LEVEL = first?.QUESTION_LEVEL; // conExsist.DEMAND = first?.DEMAND; // conExsist.DESCREPTION = first?.DESCREPTION; // conExsist.CHECK_CONTENTS_ID = first?.CHECK_CONTENTS_ID; // updateCheckQues.Add(conExsist); // } // } //} //不存在,写入 var conIdNews = conExsists.Select(t => t.ID).ToList(); var conExsistNews = conIds.Where(t =>t!=null&& !conIdNews.Contains(t.Value)).ToList(); if (conExsistNews != null && conExsistNews.Any()) { foreach (var id in conExsistNews) { //隐患描述 var first = jtCheckContHids.FirstOrDefault(t => t.ID == id); if (first != null) { T_SK_CHECK_QUESTION conExsist = new T_SK_CHECK_QUESTION(); conExsist.ID = id.Value; conExsist.ORG_ID = entity.ORG_ID; conExsist.QUESTION_LEVEL = first?.QUESTION_LEVEL; conExsist.DEMAND = first?.DEMAND; conExsist.DESCREPTION = first?.DESCREPTION; conExsist.CHECK_CONTENTS_ID = first?.CHECK_CONTENTS_ID; updateCheckQues.Add(conExsist); } } } } 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")) { //&& t.PRODUCTION_UNIT_ID == entity.PRODUCTION_UNIT_ID && t.TYPE_ID == entity.TYPE_ID && t.RISK_NAME == entity.RISK_NAME && t.RISK_DESCRIPTION == entity.RISK_DESCRIPTION var library = this.GetEntity(t => t.ID == entity.ID); if (library != null) { //throw new Exception("企业库已经有重复数据"); 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.PRODUCTION_UNIT_ID = entity.PRODUCTION_UNIT_ID; 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.SCOREL_ID = entity.SCOREL_ID; enterpriseLib.SCOREE_ID = entity.SCOREE_ID; enterpriseLib.SCOREC_ID = entity.SCOREC_ID; 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 (proUnitNew != null) UpdateEntityNoCommit(proUnitNew); if (riskTypeNew != null) UpdateEntityNoCommit(riskTypeNew); if (libLNew != null) UpdateEntityNoCommit(libLNew); if (libENew != null) UpdateEntityNoCommit(libENew); if (libCNew != null) UpdateEntityNoCommit(libCNew); if (updateCheckLawTypes != null && updateCheckLawTypes.Any()) BantchSaveEntityNoCommit(updateCheckLawTypes); if (updateCheckLaws != null && updateCheckLaws.Any()) BantchSaveEntityNoCommit(updateCheckLaws); if (updateCheckConts != null && updateCheckConts.Any()) BantchSaveEntityNoCommit(updateCheckConts); if (updateCheckQues != null && updateCheckQues.Any()) BantchSaveEntityNoCommit(updateCheckQues); if (deleteBasBasicIds != null && deleteBasBasicIds.Any()) this.BantchDeleteEntityNoCommit(deleteBasBasicIds); if (deleteBasHiddenIds != null && deleteBasHiddenIds.Any()) this.BantchDeleteEntityNoCommit(deleteBasHiddenIds); if (deleteBasConttentIds != null && deleteBasConttentIds.Any()) this.BantchDeleteEntityNoCommit(deleteBasConttentIds); if (deleteBasDetailIds != null && deleteBasDetailIds.Any()) this.BantchDeleteEntityNoCommit(deleteBasDetailIds); 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()) { 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; item.MEASURE = item.MEASURE + temp; } } } } 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 = item2.NUM + "、" + item2.MEASURES_NAME + Environment.NewLine; item.MINE_NAME = item.MINE_NAME + temp; item.MEASURE = item.MEASURE + 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.OrderBy(t => t.NUM).ToList(); } return result; }); } /// /// 获取集团基础库 /// /// 过滤实体 /// [HttpPost, Route("JTOrderEntities")] public JsonActionResult> JTOrderEntities([FromBody] KeywordFilter filter) { var result = new JsonActionResult>(); string strConn = OPTenantDBConnService.GetConnByORGID(Guid.Parse("00300000-0000-0000-0000-000000000000")); string dbName = "mh_jy_head"; if (!string.IsNullOrEmpty(strConn)) { // 找左边字符串结束位置 int start = strConn.IndexOf("Database="); if (start != -1) { start += "Database=".Length; } // 找右边字符串开始位置 int end = strConn.IndexOf(";uid", start); if (end != -1) { // 截取中间 dbName = strConn.Substring(start, end - start); } } // 2. 传入构造函数 using var db = new CrossDbContext(strConn); // 3. 要跨哪些库?自己定义,指定总部 //var dbNames = new List(); ////{ //// "mh_jy_head", ////}; //dbNames.Add(dbName); result.Data = db.QueryCrossDatabases(dbName); if (result != null && 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 = item2.NUM + "、" + item2.MEASURES_NAME + Environment.NewLine; item.MINE_NAME = item.MINE_NAME + temp; item.MEASURE = item.MEASURE + 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); } result.TotalCount = result.Data.Count(); return result; } /// /// 从集团导入 /// /// /// [HttpPost, Route("ImportFormJT")] public JsonActionResult ImportFormJT([FromBody] KeywordFilter filter) { return SafeExecute(() => { if (string.IsNullOrEmpty(filter.Keyword)) throw new Exception("请先勾选要同步的数据"); var ids = new List(); var idTemps = filter.Keyword.Split(",").ToList(); foreach (var item in idTemps) { if (!string.IsNullOrEmpty(item)) { ids.Add(Guid.Parse(item)); } } string strConn = OPTenantDBConnService.GetConnByORGID(Guid.Parse("00300000-0000-0000-0000-000000000000")); string dbName = "mh_jy_head"; // 2. 传入构造函数 using var db = new CrossDbContext(strConn); var orgId = APT.Infrastructure.Api.AppContext.CurrentSession.OrgId.Value; //删除ID相同的历史数据 var libs = this.GetEntities(t => ids.Contains(t.ID), new BaseFilter(orgId)); var deleteBasIds = libs.Select(t => t.ID).ToList(); var deleteBasDetailIds = this.GetEntities(t => deleteBasIds.Contains(t.BASIC_LIBRARY_ID), new BaseFilter(orgId)).Select(t => t.ID).ToList(); var deleteBasConttentIds = this.GetEntities(t => deleteBasDetailIds.Contains(t.BASIC_LIBRARY_DETAIL_ID), new BaseFilter(orgId)).Select(t => t.ID).ToList(); var deleteBasBasicIds = this.GetEntities(t => deleteBasConttentIds.Contains(t.BASIC_LIBRARY_DETAIL_CONTENT_ID), new BaseFilter(orgId)).Select(t => t.ID).ToList(); var deleteBasHiddenIds = this.GetEntities(t => deleteBasConttentIds.Contains(t.BASIC_LIBRARY_DETAIL_CONTENT_ID), new BaseFilter(orgId)).Select(t => t.ID).ToList(); //集团数据 var jtLibs = db.QueryCrossDatabases(dbName).Where(t=>ids.Contains(t.ID)).ToList(); //查生产单元表 List proUnitList = new List(); var proUnitIds = jtLibs.Where(m=> m.PRODUCTION_UNIT_ID != null).Select(t => t.PRODUCTION_UNIT_ID).Distinct().ToList(); var proUnits = this.GetEntities(t => proUnitIds.Contains(t.ID), new BaseFilter(orgId)); var jtProUnits = db.GetJTProUnits(dbName).ToList(); if (proUnitIds != null && proUnitIds.Any()) { foreach (var id in proUnitIds) { var exsist = proUnits.FirstOrDefault(t => t.ID == id); var jtExsist = jtProUnits.FirstOrDefault(t => t.ID == id); if (exsist != null) { //存在,更新 T_FM_USER_PRODUCTION_UNIT_SET set = new T_FM_USER_PRODUCTION_UNIT_SET(); set = exsist; set.NAME = jtExsist?.NAME; set.CODE = jtExsist?.CODE; proUnitList.Add(set); } else { //不存在,写入 T_FM_USER_PRODUCTION_UNIT_SET set = new T_FM_USER_PRODUCTION_UNIT_SET(); set.ID = id.Value; set.ORG_ID = orgId; set.NAME = jtExsist?.NAME; set.CODE = jtExsist?.CODE; proUnitList.Add(set); } } } //查风险类别 List riskTypeList = new List(); var riskTypeIds = jtLibs.Where(m => m.TYPE_ID != null).Select(t => t.TYPE_ID).Distinct().ToList(); var riskTypes = this.GetEntities(t => riskTypeIds.Contains(t.ID), new BaseFilter(orgId)); var jtRiskTypes = db.GetJTRiskTypes(dbName).ToList(); if (riskTypeIds != null && riskTypeIds.Any()) { foreach (var id in riskTypeIds) { var exsist = riskTypes.FirstOrDefault(t => t.ID == id); var jtExsist = jtRiskTypes.FirstOrDefault(t => t.ID == id); if (exsist != null) { //存在,更新 T_SK_RISK_TYPE riskTypeNew = new T_SK_RISK_TYPE(); riskTypeNew = exsist; riskTypeNew.NAME = jtExsist?.NAME; riskTypeNew.PRODUCTION_UNIT_ID = jtExsist?.PRODUCTION_UNIT_ID; riskTypeList.Add(riskTypeNew); } else { //不存在,写入 T_SK_RISK_TYPE riskTypeNew = new T_SK_RISK_TYPE(); riskTypeNew.ORG_ID = orgId; riskTypeNew.ID = id.Value; riskTypeNew.NAME = jtExsist?.NAME; riskTypeNew.PRODUCTION_UNIT_ID = jtExsist?.PRODUCTION_UNIT_ID; riskTypeList.Add(riskTypeNew); } } } //查LEC List libLList = new List(); var libLIds = jtLibs.Where(m => m.SCOREL_ID != null).Select(t => t.SCOREL_ID).Distinct().ToList(); var libLs = this.GetEntities(t => libLIds.Contains(t.ID), new BaseFilter(orgId)); var jtlibLs = db.GetJTLibLs(dbName).ToList(); if (libLIds != null && libLIds.Any()) { foreach (var id in libLIds) { var exsist = libLs.FirstOrDefault(t => t.ID == id); var jtExsist = jtlibLs.FirstOrDefault(t => t.ID == id); if (exsist != null) { //存在,更新 T_SK_SCOREL libLNew = new T_SK_SCOREL(); libLNew = exsist; libLNew.NAME = jtExsist?.NAME; libLNew.CODE = jtExsist?.CODE; libLNew.SCORE = jtExsist == null ? 0 : jtExsist.SCORE; libLList.Add(libLNew); } else { //不存在,写入 T_SK_SCOREL libLNew = new T_SK_SCOREL(); libLNew.ORG_ID = orgId; libLNew.ID = id.Value; libLNew.NAME = jtExsist?.NAME; libLNew.CODE = jtExsist?.CODE; libLNew.SCORE = jtExsist == null ? 0 : jtExsist.SCORE; libLList.Add(libLNew); } } } //查LEC List libEList = new List(); var libEIds = jtLibs.Where(m => m.SCOREE_ID != null).Select(t => t.SCOREE_ID).Distinct().ToList(); var libEs = this.GetEntities(t => libEIds.Contains(t.ID), new BaseFilter(orgId)); var jtlibEs = db.GetJTLibEs(dbName).ToList(); if (libEIds != null && libEIds.Any()) { foreach (var id in libEIds) { var exsist = libEs.FirstOrDefault(t => t.ID == id); var jtExsist = jtlibEs.FirstOrDefault(t => t.ID == id); if (exsist != null) { //存在,更新 T_SK_SCOREE libENew = new T_SK_SCOREE(); libENew = exsist; libENew.NAME = jtExsist?.NAME; libENew.CODE = jtExsist?.CODE; libENew.SCORE = jtExsist == null ? 0 : jtExsist.SCORE; libEList.Add(libENew); } else { //不存在,写入 T_SK_SCOREE libENew = new T_SK_SCOREE(); libENew.ORG_ID = orgId; libENew.ID = id.Value; libENew.NAME = jtExsist?.NAME; libENew.CODE = jtExsist?.CODE; libENew.SCORE = jtExsist == null ? 0 : jtExsist.SCORE; libEList.Add(libENew); } } } //查LEC List libCList = new List(); var libCIds = jtLibs.Where(m => m.SCOREC_ID != null).Select(t => t.SCOREC_ID).Distinct().ToList(); var libCs = this.GetEntities(t => libCIds.Contains(t.ID), new BaseFilter(orgId)); var jtlibCs = db.GetJTLibCs(dbName).ToList(); if (libCIds == null && libCIds.Any()) { foreach (var id in libCIds) { var exsist = libCs.FirstOrDefault(t => t.ID == id); var jtExsist = jtlibCs.FirstOrDefault(t => t.ID == id); if (exsist != null) { //存在,更新 T_SK_SCOREC libCNew = new T_SK_SCOREC(); libCNew = exsist; libCNew.NAME = jtExsist?.NAME; libCNew.CODE = jtExsist?.CODE; libCNew.SCORE = jtExsist == null ? 0 : jtExsist.SCORE; libCList.Add(libCNew); } else { //不存在,写入 T_SK_SCOREC libCNew = new T_SK_SCOREC(); libCNew.ORG_ID = orgId; libCNew.ID = id.Value; libCNew.NAME = jtExsist?.NAME; libCNew.CODE = jtExsist?.CODE; libCNew.SCORE = jtExsist == null ? 0 : jtExsist.SCORE; libCList.Add(libCNew); } } } //重新写入选中的集团数据 List libList = new List(); List detailList = new List(); List contentList = new List(); List hiddenList = new List(); List basicList = new List(); if (jtLibs != null && jtLibs.Any()) { foreach (var lib in jtLibs) { T_SK_BASIC_LIBRARY libNew = new T_SK_BASIC_LIBRARY(); libNew.ORG_ID = orgId; libNew.ID = lib.ID; libNew.PRODUCTION_UNIT_ID = lib.PRODUCTION_UNIT_ID; libNew.RISK_NAME = lib.RISK_NAME; libNew.RISK_DESCRIPTION = lib.RISK_DESCRIPTION; libNew.TYPE_ID = lib.TYPE_ID; libNew.SCOREC_ID = lib.SCOREC_ID; libNew.SCOREE_ID = lib.SCOREE_ID; libNew.SCOREL_ID = lib.SCOREL_ID; libNew.EVALUATE_SCORE = lib.EVALUATE_SCORE; libNew.EVALUATE_LEVEL = lib.EVALUATE_LEVEL; libNew.DEPARTMENT_TYPE = lib.DEPARTMENT_TYPE; libNew.EMERGENCY = lib.EMERGENCY; libNew.ENABLE_STATUS = lib.ENABLE_STATUS; libList.Add(libNew); if (lib.Nav_Details != null && lib.Nav_Details.Any()) { foreach (var item in lib.Nav_Details) { T_SK_BASIC_LIBRARY_DETAIL de = new T_SK_BASIC_LIBRARY_DETAIL(); de.ORG_ID = orgId; de.ID = item.ID; de.BASIC_LIBRARY_ID = libNew.ID; de.MEASURES_NAME = item.MEASURES_NAME; de.EMERGENCY = item.EMERGENCY; de.NUM = item.NUM; de.ROW_NO = item.ROW_NO; detailList.Add(de); if (item.Nav_DetailContents != null && item.Nav_DetailContents.Any()) { foreach (var item2 in item.Nav_DetailContents) { T_SK_BASIC_LIBRARY_DETAIL_CONTENT con = new T_SK_BASIC_LIBRARY_DETAIL_CONTENT(); con.ORG_ID = orgId; con.ID = item2.ID; con.BASIC_LIBRARY_DETAIL_ID = de.ID; con.CHECK_CONTENTS_ID = item2.CHECK_CONTENTS_ID; con.CHECK_CONTENT = item2.CHECK_CONTENT; con.CHECK_STANDARD = item2.CHECK_STANDARD; con.NUM = item2.NUM; con.ROW_NO = item2.ROW_NO; contentList.Add(con); if (item2.Nav_DetailHiddens != null && item2.Nav_DetailHiddens.Any()) { foreach (var item3 in item2.Nav_DetailHiddens) { T_SK_BASIC_LIBRARY_DETAIL_CONTENT_HIDDEN hid = new T_SK_BASIC_LIBRARY_DETAIL_CONTENT_HIDDEN(); hid.ORG_ID = orgId; hid.ID = item3.ID; hid.BASIC_LIBRARY_DETAIL_CONTENT_ID = con.ID; hid.CHECK_QUESTION_ID = item3.CHECK_QUESTION_ID; hid.HIDDEN_DESCRIPTION = item3.HIDDEN_DESCRIPTION; hid.HIDDEN_LEVEL = item3.HIDDEN_LEVEL; hid.RECTIFICATION_MEASURES = item3.RECTIFICATION_MEASURES; hid.NUM = item3.NUM; hid.ROW_NO = item3.ROW_NO; hid.CHECK_CONTENTS_ID = hid.CHECK_CONTENTS_ID; hiddenList.Add(hid); } } if (item2.Nav_DetailBasics != null && item2.Nav_DetailBasics.Any()) { foreach (var item3 in item2.Nav_DetailBasics) { T_SK_BASIC_LIBRARY_DETAIL_CONTENT_BASIC bas = new T_SK_BASIC_LIBRARY_DETAIL_CONTENT_BASIC(); bas.ORG_ID = orgId; bas.ID = item3.ID; bas.BASIC_LIBRARY_DETAIL_CONTENT_ID = con.ID; bas.LAW_ID = item3.LAW_ID; bas.CHECK_CONTENTS_ID = item3.CHECK_CONTENTS_ID; basicList.Add(bas); } } } } } } } } //查检查内容 List updateCheckConts = new List(); var checkConts = this.GetEntities(t => true, new BaseFilter(orgId)); var jtCheckConts = db.GetJTCons(dbName).ToList(); if (contentList != null && contentList.Any()) { var conIds = contentList.Select(t => t.CHECK_CONTENTS_ID).ToList(); //存在,更新 var conExsists = checkConts.Where(t => conIds.Contains(t.ID)).ToList(); if (conExsists != null && conExsists.Any()) { foreach (var conExsist in conExsists) { //检查内容 var first = jtCheckConts.FirstOrDefault(t => t.ID == conExsist.ID); if (first != null) { conExsist.ID = first.ID; conExsist.ORG_ID = orgId; conExsist.PRODUCTION_UNIT_ID = first.PRODUCTION_UNIT_ID; conExsist.Nav_ListCheckQuestion = null; conExsist.Nav_ContentsBasics = null; conExsist.CHECKCONTENT = first.CHECKCONTENT; conExsist.CHECK_STANDARD = first.CHECK_STANDARD; updateCheckConts.Add(conExsist); } } } //不存在,写入 var conIdNews = conExsists.Select(t => t.ID).ToList(); var conExsistNews = conIds.Where(t => t != null && !conIdNews.Contains(t.Value)).ToList(); if (conExsistNews != null && conExsistNews.Any()) { foreach (var id in conExsistNews) { //检查内容 var first = jtCheckConts.FirstOrDefault(t => t.ID == id); if (first != null) { T_SK_CHECK_CONTENTS conExsist = new T_SK_CHECK_CONTENTS(); conExsist.ID = id.Value; conExsist.ORG_ID = orgId; conExsist.PRODUCTION_UNIT_ID = first.PRODUCTION_UNIT_ID; conExsist.Nav_ListCheckQuestion = null; conExsist.Nav_ContentsBasics = null; conExsist.CHECKCONTENT = first.CHECKCONTENT; conExsist.CHECK_STANDARD = first.CHECK_STANDARD; updateCheckConts.Add(conExsist); } } } } //查检查依据(法律法规) List updateCheckLaws = new List(); List updateCheckLawTypes = new List(); List updateCheckBas = new List(); var jtcheckContLawTypes = db.GetJTLawTypes(dbName).ToList(); var checkContLawTypes = this.GetEntities(t => true, new BaseFilter(orgId)); var checkContLaws = this.GetEntities(t => true, new BaseFilter(orgId)); var jtcheckContLaws = db.GetJTLaws(dbName).ToList(); var checkContBas = this.GetEntities(t => true, new BaseFilter(orgId)); var jtcheckContBas = db.GetJTBas(dbName).ToList(); if (basicList != null && basicList.Any()) { var conIds = basicList.Select(t => t.LAW_ID).Distinct().ToList(); //存在,更新 var conExsists = checkContLaws.Where(t => conIds.Contains(t.ID)).ToList(); if (conExsists != null && conExsists.Any()) { foreach (var conExsist in conExsists) { //法律法规 var first = jtcheckContLaws.FirstOrDefault(t => t.ID == conExsist.ID); if (first != null) { var firstType = checkContLawTypes.FirstOrDefault(t => t.ID == first.TYPE_ID); if (firstType == null) { var jtFirstType = jtcheckContLawTypes.FirstOrDefault(t => t.ID == first.TYPE_ID); if (jtFirstType != null) { T_LR_LAW_TYPE lawType = new T_LR_LAW_TYPE(); lawType.ORG_ID = orgId; lawType.ID = jtFirstType.ID; lawType.NAME = jtFirstType.NAME; updateCheckLawTypes.Add(lawType); conExsist.ID = first.ID; conExsist.ORG_ID = orgId; conExsist.CODE = first?.CODE; conExsist.NAME = first?.NAME; conExsist.VERSION_NUM = first?.VERSION_NUM; conExsist.LAW_STATUS = first == null ? BSLawStatusEnum.现行 : first.LAW_STATUS; conExsist.UPDATE_TIME = first == null ? DateTime.Now : first.UPDATE_TIME; conExsist.EXECUTE_TIME = first == null ? DateTime.Now : first.EXECUTE_TIME; conExsist.USER_ID = APT.Infrastructure.Api.AppContext.CurrentSession.UserID.Value; conExsist.TYPE_ID = first.TYPE_ID; updateCheckLaws.Add(conExsist); } } else { conExsist.ID = first.ID; conExsist.ORG_ID = orgId; conExsist.CODE = first?.CODE; conExsist.NAME = first?.NAME; conExsist.VERSION_NUM = first?.VERSION_NUM; conExsist.LAW_STATUS = first == null ? BSLawStatusEnum.现行 : first.LAW_STATUS; conExsist.UPDATE_TIME = first == null ? DateTime.Now : first.UPDATE_TIME; conExsist.EXECUTE_TIME = first == null ? DateTime.Now : first.EXECUTE_TIME; conExsist.USER_ID = APT.Infrastructure.Api.AppContext.CurrentSession.UserID.Value; conExsist.TYPE_ID = first.TYPE_ID; updateCheckLaws.Add(conExsist); } } } } //不存在,写入 var conIdNews = conExsists.Select(t => t.ID).ToList(); var conExsistNews = conIds.Where(t => t != null && !conIdNews.Contains(t.Value)).ToList(); if (conExsistNews != null && conExsistNews.Any()) { foreach (var id in conExsistNews) { //检查依据(法律法规) var first = jtcheckContLaws.FirstOrDefault(t => t.ID == id); if (first != null) { var firstType = checkContLawTypes.FirstOrDefault(t => t.ID == first.TYPE_ID); if (firstType == null) { var jtFirstType = jtcheckContLawTypes.FirstOrDefault(t => t.ID == first.TYPE_ID); if (jtFirstType != null) { T_LR_LAW_TYPE lawType = new T_LR_LAW_TYPE(); lawType.ORG_ID = orgId; lawType.ID = jtFirstType.ID; lawType.NAME = jtFirstType.NAME; updateCheckLawTypes.Add(lawType); T_LR_LAW conExsist = new T_LR_LAW(); conExsist.ID = id.Value; conExsist.ORG_ID = orgId; conExsist.CODE = first?.CODE; conExsist.NAME = first?.NAME; conExsist.VERSION_NUM = first?.VERSION_NUM; conExsist.LAW_STATUS = first == null ? BSLawStatusEnum.现行 : first.LAW_STATUS; conExsist.UPDATE_TIME = first == null ? DateTime.Now : first.UPDATE_TIME; conExsist.EXECUTE_TIME = first == null ? DateTime.Now : first.EXECUTE_TIME; conExsist.USER_ID = APT.Infrastructure.Api.AppContext.CurrentSession.UserID.Value; conExsist.TYPE_ID = jtFirstType.ID; updateCheckLaws.Add(conExsist); } } else { T_LR_LAW conExsist = new T_LR_LAW(); conExsist.ID = id.Value; conExsist.ORG_ID = orgId; conExsist.CODE = first?.CODE; conExsist.NAME = first?.NAME; conExsist.VERSION_NUM = first?.VERSION_NUM; conExsist.LAW_STATUS = first == null ? BSLawStatusEnum.现行 : first.LAW_STATUS; conExsist.UPDATE_TIME = first == null ? DateTime.Now : first.UPDATE_TIME; conExsist.EXECUTE_TIME = first == null ? DateTime.Now : first.EXECUTE_TIME; conExsist.USER_ID = APT.Infrastructure.Api.AppContext.CurrentSession.UserID.Value; conExsist.TYPE_ID = first.TYPE_ID; updateCheckLaws.Add(conExsist); } } } } //检查内容子表保存 var conBasics = basicList.GroupBy(t => new { t.CHECK_CONTENTS_ID, t.LAW_ID }).ToList(); if (conBasics != null && conBasics.Any()) { foreach (var item in conBasics) { var first = checkContBas.FirstOrDefault(t => t.CHECK_CONTENTS_ID == item.Key.CHECK_CONTENTS_ID && t.LAW_ID == item.Key.LAW_ID); if (first == null) { //写入 var jtFirstType = jtcheckContBas.FirstOrDefault(t => t.CHECK_CONTENTS_ID == item.Key.CHECK_CONTENTS_ID && t.LAW_ID == item.Key.LAW_ID); if (jtFirstType != null) { T_SK_CHECK_CONTENTS_BASIC conBasic = new T_SK_CHECK_CONTENTS_BASIC(); conBasic.CHECK_CONTENTS_ID = item.Key.CHECK_CONTENTS_ID; conBasic.LAW_ID = item.Key.LAW_ID; conBasic.ORG_ID = orgId; conBasic.ID = jtFirstType.ID; updateCheckBas.Add(conBasic); } } else { //更新 T_SK_CHECK_CONTENTS_BASIC conBasic = new T_SK_CHECK_CONTENTS_BASIC(); conBasic.CHECK_CONTENTS_ID = item.Key.CHECK_CONTENTS_ID; conBasic.LAW_ID = item.Key.LAW_ID; conBasic.ORG_ID = orgId; conBasic.ID = first.ID; updateCheckBas.Add(conBasic); } } } } //查隐患描述 List updateCheckQues = new List(); var checkContHids = this.GetEntities(t => true, new BaseFilter(orgId)); var jtCheckContHids = db.GetJTQues(dbName).ToList(); if (hiddenList != null && hiddenList.Any()) { var conIds = hiddenList.Select(t => t.CHECK_QUESTION_ID).Distinct().ToList(); //存在,更新 var conExsists = checkContHids.Where(t => conIds.Contains(t.ID)).ToList(); if (conExsists != null && conExsists.Any()) { foreach (var conExsist in conExsists) { //隐患描述 var first = jtCheckContHids.FirstOrDefault(t => t.ID == conExsist.ID); if (first != null) { conExsist.ID = first.ID; conExsist.ORG_ID = orgId; conExsist.QUESTION_LEVEL = first.QUESTION_LEVEL; conExsist.DEMAND = first.DEMAND; conExsist.DESCREPTION = first.DESCREPTION; conExsist.CHECK_CONTENTS_ID = first.CHECK_CONTENTS_ID; updateCheckQues.Add(conExsist); } } } //不存在,写入 var conIdNews = conExsists.Select(t => t.ID).ToList(); var conExsistNews = conIds.Where(t => t != null && !conIdNews.Contains(t.Value)).ToList(); if (conExsistNews != null && conExsistNews.Any()) { foreach (var id in conExsistNews) { //隐患描述 var first = jtCheckContHids.FirstOrDefault(t => t.ID == id); if (first != null) { T_SK_CHECK_QUESTION conExsist = new T_SK_CHECK_QUESTION(); conExsist.ID = id.Value; conExsist.ORG_ID = orgId; conExsist.QUESTION_LEVEL = first.QUESTION_LEVEL; conExsist.DEMAND = first.DEMAND; conExsist.DESCREPTION = first.DESCREPTION; conExsist.CHECK_CONTENTS_ID = first.CHECK_CONTENTS_ID; updateCheckQues.Add(conExsist); } } } } this.UnifiedCommit(() => { if (proUnitList != null && proUnitList.Any()) BantchSaveEntityNoCommit(proUnitList); if (riskTypeList != null && riskTypeList.Any()) BantchSaveEntityNoCommit(riskTypeList); if (libLList != null && libLList.Any()) BantchSaveEntityNoCommit(libLList); if (libEList != null && libEList.Any()) BantchSaveEntityNoCommit(libEList); if (libCList != null && libCList.Any()) BantchSaveEntityNoCommit(libCList); if (updateCheckLawTypes != null && updateCheckLawTypes.Any()) BantchSaveEntityNoCommit(updateCheckLawTypes); if (updateCheckLaws != null && updateCheckLaws.Any()) BantchSaveEntityNoCommit(updateCheckLaws); if (updateCheckConts != null && updateCheckConts.Any()) BantchSaveEntityNoCommit(updateCheckConts); if (updateCheckQues != null && updateCheckQues.Any()) BantchSaveEntityNoCommit(updateCheckQues); if (updateCheckBas != null && updateCheckBas.Any()) BantchSaveEntityNoCommit(updateCheckBas); if (deleteBasBasicIds != null && deleteBasBasicIds.Any()) this.BantchDeleteEntityNoCommit(deleteBasBasicIds); if (deleteBasHiddenIds != null && deleteBasHiddenIds.Any()) this.BantchDeleteEntityNoCommit(deleteBasHiddenIds); if (deleteBasConttentIds != null && deleteBasConttentIds.Any()) this.BantchDeleteEntityNoCommit(deleteBasConttentIds); if (deleteBasDetailIds != null && deleteBasDetailIds.Any()) this.BantchDeleteEntityNoCommit(deleteBasDetailIds); if (deleteBasIds != null && deleteBasIds.Any()) this.BantchDeleteEntityNoCommit(deleteBasIds); if (libList != null && libList.Any()) BantchSaveEntityNoCommit(libList); if (detailList != null && detailList.Any()) BantchSaveEntityNoCommit(detailList); if (contentList != null && contentList.Any()) BantchSaveEntityNoCommit(contentList); if (hiddenList != null && hiddenList.Any()) BantchSaveEntityNoCommit(hiddenList); if (basicList != null && basicList.Any()) BantchSaveEntityNoCommit(basicList); }); return true; }); } } }