diff --git a/APT.MS.Domain/Entities/SC/LR/61T_LR_LAW.cs b/APT.MS.Domain/Entities/SC/LR/61T_LR_LAW.cs index 29a5e4c..77f544d 100644 --- a/APT.MS.Domain/Entities/SC/LR/61T_LR_LAW.cs +++ b/APT.MS.Domain/Entities/SC/LR/61T_LR_LAW.cs @@ -5,6 +5,7 @@ using APT.MS.Domain.Enums; using System; using System.Collections.Generic; using System.ComponentModel; +using System.ComponentModel.DataAnnotations.Schema; using System.Linq; using System.Text; using System.Threading.Tasks; @@ -67,7 +68,8 @@ namespace APT.MS.Domain.Entities.LR /// /// 需求类别 /// - [Description("需求类别")] + [Description("需求类别")] + [NotMapped] public T_LR_LAW_TYPE Nav_LawType { get; set; } /// /// 编制单位 @@ -87,19 +89,22 @@ namespace APT.MS.Domain.Entities.LR /// /// 导航属性:识别人员 /// - [Description("导航属性:融入人员")] + [Description("导航属性:融入人员")] + [NotMapped] public T_FM_USER Nav_User { get; set; } /// /// 导航:版本号 /// [Description("版本号")] - [FormFieldEdit] + [FormFieldEdit] + [NotMapped] public ICollection Nav_LawVersion { get; set; } /// /// 导航:关联标准化制度库 /// [Description("标准化制度")] - [FormFieldEdit] + [FormFieldEdit] + [NotMapped] public ICollection Nav_LawSCSystem { get; set; } /// /// 施行日期 diff --git a/APT.MS.Domain/Entities/SK/T_SK_BASIC_LIBRARY_DETAIL.cs b/APT.MS.Domain/Entities/SK/T_SK_BASIC_LIBRARY_DETAIL.cs index 739936d..7d21181 100644 --- a/APT.MS.Domain/Entities/SK/T_SK_BASIC_LIBRARY_DETAIL.cs +++ b/APT.MS.Domain/Entities/SK/T_SK_BASIC_LIBRARY_DETAIL.cs @@ -3,6 +3,7 @@ using APT.MS.Domain.Entities.HM; using System; using System.Collections.Generic; using System.ComponentModel; +using System.ComponentModel.DataAnnotations.Schema; using System.Text; namespace APT.MS.Domain.Entities.SK @@ -21,6 +22,7 @@ namespace APT.MS.Domain.Entities.SK /// 导航属性:基础库 /// [Description("导航属性:基础库")] + [NotMapped] public T_SK_BASIC_LIBRARY Nav_Library { get; set; } /// /// 管控措施 @@ -42,6 +44,7 @@ namespace APT.MS.Domain.Entities.SK /// [Description("检查内容")] [FormFieldEdit] + [NotMapped] public ICollection Nav_DetailContents { get; set; } [Description("顺序")] diff --git a/APT.MS.Domain/Entities/SK/T_SK_BASIC_LIBRARY_DETAIL_CONTENT.cs b/APT.MS.Domain/Entities/SK/T_SK_BASIC_LIBRARY_DETAIL_CONTENT.cs index a67f4c8..800b8b9 100644 --- a/APT.MS.Domain/Entities/SK/T_SK_BASIC_LIBRARY_DETAIL_CONTENT.cs +++ b/APT.MS.Domain/Entities/SK/T_SK_BASIC_LIBRARY_DETAIL_CONTENT.cs @@ -3,6 +3,7 @@ using APT.MS.Domain.Entities.BS; using System; using System.Collections.Generic; using System.ComponentModel; +using System.ComponentModel.DataAnnotations.Schema; using System.Text; namespace APT.MS.Domain.Entities.SK @@ -21,6 +22,7 @@ namespace APT.MS.Domain.Entities.SK /// 导航属性:基础库管控措施表 /// [Description("导航属性:基础库管控措施表")] + [NotMapped] public T_SK_BASIC_LIBRARY_DETAIL Nav_LibraryDetail { get; set; } /// @@ -34,6 +36,7 @@ namespace APT.MS.Domain.Entities.SK /// 检查内容 /// [Description("检查内容")] + [NotMapped] public virtual T_SK_CHECK_CONTENTS Nav_Contents { get; set; } /// /// 检查内容 @@ -64,6 +67,7 @@ namespace APT.MS.Domain.Entities.SK /// [Description("隐患表")] [FormFieldEdit] + [NotMapped] public ICollection Nav_DetailHiddens { get; set; } /// @@ -71,6 +75,7 @@ namespace APT.MS.Domain.Entities.SK /// [Description("检查依据")] [FormFieldEdit] + [NotMapped] public ICollection Nav_DetailBasics { get; set; } [Description("顺序")] diff --git a/APT.MS.Domain/Entities/SK/T_SK_BASIC_LIBRARY_DETAIL_CONTENT_BASIC.cs b/APT.MS.Domain/Entities/SK/T_SK_BASIC_LIBRARY_DETAIL_CONTENT_BASIC.cs index 2a3f9f8..e3036e5 100644 --- a/APT.MS.Domain/Entities/SK/T_SK_BASIC_LIBRARY_DETAIL_CONTENT_BASIC.cs +++ b/APT.MS.Domain/Entities/SK/T_SK_BASIC_LIBRARY_DETAIL_CONTENT_BASIC.cs @@ -3,6 +3,7 @@ using APT.MS.Domain.Entities.LR; using System; using System.Collections.Generic; using System.ComponentModel; +using System.ComponentModel.DataAnnotations.Schema; using System.Text; namespace APT.MS.Domain.Entities.SK @@ -21,6 +22,7 @@ namespace APT.MS.Domain.Entities.SK /// 导航属性:检查内容 /// [Description("导航属性:检查内容")] + [NotMapped] public T_SK_BASIC_LIBRARY_DETAIL_CONTENT Nav_DetailContent { get; set; } /// @@ -34,6 +36,11 @@ namespace APT.MS.Domain.Entities.SK /// 导航属性:法律法规库 /// [Description("导航属性:法律法规库")] - public T_LR_LAW Nav_Law { get; set; } + [NotMapped] + public T_LR_LAW Nav_Law { get; set; } + [Description("检查内容")] + [DataFieldIngore] + [NotMapped] + public Guid? CHECK_CONTENTS_ID { get; set; } } } diff --git a/APT.MS.Domain/Entities/SK/T_SK_BASIC_LIBRARY_DETAIL_CONTENT_HIDDEN.cs b/APT.MS.Domain/Entities/SK/T_SK_BASIC_LIBRARY_DETAIL_CONTENT_HIDDEN.cs index 19744f3..69300d4 100644 --- a/APT.MS.Domain/Entities/SK/T_SK_BASIC_LIBRARY_DETAIL_CONTENT_HIDDEN.cs +++ b/APT.MS.Domain/Entities/SK/T_SK_BASIC_LIBRARY_DETAIL_CONTENT_HIDDEN.cs @@ -3,6 +3,7 @@ using APT.MS.Domain.Enums.SK; using System; using System.Collections.Generic; using System.ComponentModel; +using System.ComponentModel.DataAnnotations.Schema; using System.Text; namespace APT.MS.Domain.Entities.SK @@ -21,6 +22,7 @@ namespace APT.MS.Domain.Entities.SK /// 导航属性:基础库检查内容表 /// [Description("导航属性:基础库检查内容表")] + [NotMapped] public T_SK_BASIC_LIBRARY_DETAIL_CONTENT Nav_DetailContent { get; set; } /// @@ -34,6 +36,7 @@ namespace APT.MS.Domain.Entities.SK /// 隐患描述 /// [Description("隐患描述")] + [NotMapped] public virtual T_SK_CHECK_QUESTION Nav_Question { get; set; } /// @@ -58,6 +61,11 @@ namespace APT.MS.Domain.Entities.SK [Description("顺序")] public int? NUM { get; set; } [Description("顺序")] - public int? ROW_NO { get; set; } + public int? ROW_NO { get; set; } + + [Description("检查内容")] + [DataFieldIngore] + [NotMapped] + public Guid? CHECK_CONTENTS_ID { get; set; } } } diff --git a/APT.MS.Domain/Entities/SK/T_SK_CHECK_CONTENTS.cs b/APT.MS.Domain/Entities/SK/T_SK_CHECK_CONTENTS.cs index 302931c..368963a 100644 --- a/APT.MS.Domain/Entities/SK/T_SK_CHECK_CONTENTS.cs +++ b/APT.MS.Domain/Entities/SK/T_SK_CHECK_CONTENTS.cs @@ -6,6 +6,7 @@ using APT.MS.Domain.Enums.SK; using System; using System.Collections.Generic; using System.ComponentModel; +using System.ComponentModel.DataAnnotations.Schema; using System.Text; namespace APT.MS.Domain.Entities.SK @@ -23,7 +24,8 @@ namespace APT.MS.Domain.Entities.SK [Description("生产单元")] [DataFieldForeignKey("Nav_ProductionUnit")] public Guid? PRODUCTION_UNIT_ID { get; set; } - [Description("导航属性:生产单元")] + [Description("导航属性:生产单元")] + [NotMapped] public T_FM_USER_PRODUCTION_UNIT_SET Nav_ProductionUnit { get; set; } /// /// 检查内容 @@ -39,14 +41,16 @@ namespace APT.MS.Domain.Entities.SK /// 检查问题(描述) /// [Description("导航:检查问题(描述)")] - [FormFieldEdit] + [FormFieldEdit] + [NotMapped] public virtual ICollection Nav_ListCheckQuestion { get; set; } /// /// 检查依据 /// [Description("导航:检查依据")] - [FormFieldEdit] + [FormFieldEdit] + [NotMapped] public virtual ICollection Nav_ContentsBasics { get; set; } /// @@ -63,7 +67,8 @@ namespace APT.MS.Domain.Entities.SK /// /// 导航属性:辨识区域 /// - [Description("导航属性:辨识区域")] + [Description("导航属性:辨识区域")] + [NotMapped] public T_SK_RISK_AREA Nav_Area { get; set; } } } diff --git a/APT.MS.Domain/Entities/SK/T_SK_CHECK_QUESTION.cs b/APT.MS.Domain/Entities/SK/T_SK_CHECK_QUESTION.cs index befd94c..a8ab76a 100644 --- a/APT.MS.Domain/Entities/SK/T_SK_CHECK_QUESTION.cs +++ b/APT.MS.Domain/Entities/SK/T_SK_CHECK_QUESTION.cs @@ -5,6 +5,7 @@ using APT.MS.Domain.Enums.SK; using System; using System.Collections.Generic; using System.ComponentModel; +using System.ComponentModel.DataAnnotations.Schema; using System.Text; namespace APT.MS.Domain.Entities.SK @@ -25,7 +26,8 @@ namespace APT.MS.Domain.Entities.SK /// /// 检查内容 /// - [Description("检查内容")] + [Description("检查内容")] + [NotMapped] public virtual T_SK_CHECK_CONTENTS Nav_Contents { get; set; } /// @@ -60,7 +62,8 @@ namespace APT.MS.Domain.Entities.SK /// 问题等级描述 /// [Description("问题等级")] - [DataFieldIngore] + [DataFieldIngore] + [NotMapped] public string QUESTION_LEVEL_SHOW { get; set; } /// @@ -73,10 +76,20 @@ namespace APT.MS.Domain.Entities.SK [Description("检查内容")] [DataFieldIngore] + [NotMapped] public string CHECKCONTENT { get; set; } [Description("生产单元")] [DataFieldIngore] - public Guid? PRODUCTION_UNIT_ID { get; set; } + [NotMapped] + public Guid? PRODUCTION_UNIT_ID { get; set; } + [Description("检查依据")] + [DataFieldIngore] + [NotMapped] + public string CHECK_BASICS { get; set; } + [Description("判定标准")] + [DataFieldIngore] + [NotMapped] + public string CHECK_STANDARD { get; set; } } } diff --git a/APT.MS.Domain/Entities/SK/T_SK_RISK_TYPE.cs b/APT.MS.Domain/Entities/SK/T_SK_RISK_TYPE.cs index 430348a..306af2e 100644 --- a/APT.MS.Domain/Entities/SK/T_SK_RISK_TYPE.cs +++ b/APT.MS.Domain/Entities/SK/T_SK_RISK_TYPE.cs @@ -4,6 +4,7 @@ using APT.MS.Domain.Enums; using System; using System.Collections.Generic; using System.ComponentModel; +using System.ComponentModel.DataAnnotations.Schema; using System.Text; namespace APT.MS.Domain.Entities.SK @@ -37,7 +38,8 @@ namespace APT.MS.Domain.Entities.SK [Description("生产单元")] [DataFieldForeignKey("Nav_ProductionUnit")] public Guid? PRODUCTION_UNIT_ID { get; set; } - [Description("导航属性:生产单元")] + [Description("导航属性:生产单元")] + [NotMapped] public T_FM_USER_PRODUCTION_UNIT_SET Nav_ProductionUnit { get; set; } } } diff --git a/APT.MicroApi/APT.SK.WebApi/Controllers/Api/BasicLibraryController.cs b/APT.MicroApi/APT.SK.WebApi/Controllers/Api/BasicLibraryController.cs index 67f4ab1..ee874fe 100644 --- a/APT.MicroApi/APT.SK.WebApi/Controllers/Api/BasicLibraryController.cs +++ b/APT.MicroApi/APT.SK.WebApi/Controllers/Api/BasicLibraryController.cs @@ -10,6 +10,7 @@ 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; @@ -20,10 +21,13 @@ 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; @@ -276,6 +280,570 @@ namespace APT.SK.WebApi.Controllers }); } /// + /// 保存 + /// + /// + /// + [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.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; + }); + } + /// /// 排序分页查询数据 /// /// 分页过滤实体 @@ -591,8 +1159,8 @@ namespace APT.SK.WebApi.Controllers public JsonActionResult> JTOrderEntities([FromBody] KeywordFilter filter) { var result = new JsonActionResult>(); - string strConn = OPTenantDBConnService.GetConnByORGID(filter.OrgId.Value); - string name = "mh_jy_head"; + string strConn = OPTenantDBConnService.GetConnByORGID(Guid.Parse("00300000-0000-0000-0000-000000000000")); + string dbName = "mh_jy_head"; if (!string.IsNullOrEmpty(strConn)) { // 找左边字符串结束位置 @@ -605,217 +1173,749 @@ namespace APT.SK.WebApi.Controllers if (end != -1) { // 截取中间 - name = strConn.Substring(start, end - start); + dbName = strConn.Substring(start, end - start); } } // 2. 传入构造函数 using var db = new CrossDbContext(strConn); // 3. 要跨哪些库?自己定义,指定总部 - var dbNames = new List(); - //{ - // "mh_jy_head", - //}; - dbNames.Add(name); - result.Data = db.QueryCrossDatabases(dbNames).ToList(); - //DataTable library = new DataTable(); - //using (SqlConnection connection = new SqlConnection(strConn)) - //{ - // try - // { - // connection.Open(); - // //风险等级占比 - // string sqlRisk = "select * from T_SK_BASIC_LIBRARY "; - // SqlCommand comRisk = new SqlCommand(sqlRisk, connection); - // SqlDataAdapter riskData = new SqlDataAdapter(comRisk); - // riskData.Fill(library); - // connection.Close(); - // } - // catch (Exception ex) - // { - // if (!string.IsNullOrEmpty(ex.StackTrace)) - // throw new Exception("错误日志:[StackTrace]" + ex.StackTrace); - // else - // throw new Exception("【" + HttpContext.Request.Path + "】错误日志:[Message]" + ex.Message); - // } - //} - - 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 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)) { - var temp = i + "、" + item2 + "\r\n"; - item.CHECKCONTENTS = item.CHECKCONTENTS + temp; - i++; - } - } + 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); + } + } + } + } + } } - 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++; - } + } + } + //查检查内容 + 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(); + var checkContLaws = this.GetEntities(t => true, new BaseFilter(orgId)); + var jtcheckContLaws = db.GetJTLaws(dbName).ToList(); + var jtcheckContLawTypes = db.GetJTLawTypes(dbName).ToList(); + var checkContLawTypes = this.GetEntities(t => true, new BaseFilter(orgId)); + 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); + } + } + } + } + } + //查隐患描述 + 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); } } } - result.Data.OrderBy(t => t.AREA_ID); } - } - return result; + 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 (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; + }); } } } diff --git a/APT.MicroApi/APT.SK.WebApi/Controllers/Api/CheckContentsController.cs b/APT.MicroApi/APT.SK.WebApi/Controllers/Api/CheckContentsController.cs index 46764b4..32e9fe9 100644 --- a/APT.MicroApi/APT.SK.WebApi/Controllers/Api/CheckContentsController.cs +++ b/APT.MicroApi/APT.SK.WebApi/Controllers/Api/CheckContentsController.cs @@ -2,6 +2,7 @@ using APT.BaseData.Domain.Entities.FM; using APT.BaseData.Services.Services.FM; using APT.Infrastructure.Core; +using APT.MS.Domain.Entities.LR; using APT.MS.Domain.Entities.SC.PT; using APT.MS.Domain.Entities.SK; using APT.MS.Domain.Enums.SK; @@ -116,6 +117,7 @@ namespace APT.SK.WebApi.Controllers.Api { item.ORG_ID = entity.ORG_ID; item.CHECK_CONTENTS_ID = entity.ID; + item.Nav_Law = null; } } this.UnifiedCommit(() => @@ -393,63 +395,111 @@ namespace APT.SK.WebApi.Controllers.Api throw new Exception("导入必须两条以上,一条请直接新增"); } List contents = new List(); - List qustions = new List(); + List qustions = new List(); + List basics = new List(); + List qustionTemps = new List(); var baseFilter = new BaseFilter(orgId); + var lawList = this.GetEntities(i => i.IS_DELETED == false, baseFilter); var productionUnits = this.GetEntities(i => i.IS_DELETED == false, baseFilter); - var oldContents = this.GetEntities(i => i.IS_DELETED == false, baseFilter, "Nav_ListCheckQuestion"); + var oldContents = this.GetEntities(i => i.IS_DELETED == false, baseFilter); + var oldHiddens = this.GetEntities(i => i.IS_DELETED == false, baseFilter); + var oldbass = this.GetEntities(i => i.IS_DELETED == false, baseFilter); for (int i = 0; i < rowAll; i++) { if (!string.IsNullOrEmpty(dtSource.Rows[i][0].ToString().Trim())) - { - + { var unit = productionUnits.FirstOrDefault(t => t.NAME == dtSource.Rows[i][0].ToString().Trim()); var first = oldContents.FirstOrDefault(x =>x.PRODUCTION_UNIT_ID == unit?.ID && x.CHECKCONTENT == dtSource.Rows[i][1].ToString().Trim()); if (first != null)//旧表已存在数据 { - T_SK_CHECK_QUESTION content = new T_SK_CHECK_QUESTION(); - content.ORG_ID = orgId; - content.CHECKCONTENT = dtSource.Rows[i][1].ToString().Trim(); - content.DESCREPTION = dtSource.Rows[i][2].ToString().Trim(); - content.QUESTION_LEVEL_SHOW = dtSource.Rows[i][3].ToString().Trim(); - content.QUESTION_LEVEL = content.QUESTION_LEVEL_SHOW == "重大" ? SKHiddenLevel.Major : SKHiddenLevel.General; - content.DEMAND = dtSource.Rows[i][4].ToString().Trim(); - content.PRODUCTION_UNIT_ID = unit?.ID; - content.CHECK_CONTENTS_ID = first.ID; - qustions.Add(content); - } + Msg = Msg + "检查内容:" + dtSource.Rows[i][1].ToString().Trim() + "已存在,请直接到系统配置修改;"; + //T_SK_CHECK_QUESTION content = new T_SK_CHECK_QUESTION(); + //content.ORG_ID = orgId; + //content.CHECKCONTENT = dtSource.Rows[i][1].ToString().Trim(); + //content.CHECK_BASICS = dtSource.Rows[i][2].ToString().Trim(); + //content.CHECK_STANDARD = dtSource.Rows[i][3].ToString().Trim(); + //content.DESCREPTION = dtSource.Rows[i][4].ToString().Trim(); + //content.QUESTION_LEVEL_SHOW = dtSource.Rows[i][5].ToString().Trim(); + //content.QUESTION_LEVEL = content.QUESTION_LEVEL_SHOW == "重大" ? SKHiddenLevel.Major : SKHiddenLevel.General; + //content.DEMAND = dtSource.Rows[i][6].ToString().Trim(); + //content.PRODUCTION_UNIT_ID = unit?.ID; + //content.CHECK_CONTENTS_ID = first.ID; + //qustionTemps.Add(content); + //first.CHECK_STANDARD = content.CHECK_STANDARD; + //contents.Add(first); + } else { T_SK_CHECK_QUESTION content = new T_SK_CHECK_QUESTION(); content.ORG_ID = orgId; content.CHECKCONTENT = dtSource.Rows[i][1].ToString().Trim(); - content.DESCREPTION = dtSource.Rows[i][2].ToString().Trim(); - content.QUESTION_LEVEL_SHOW = dtSource.Rows[i][3].ToString().Trim(); + content.CHECK_BASICS = dtSource.Rows[i][2].ToString().Trim(); + content.CHECK_STANDARD = dtSource.Rows[i][3].ToString().Trim(); + content.DESCREPTION = dtSource.Rows[i][4].ToString().Trim(); + content.QUESTION_LEVEL_SHOW = dtSource.Rows[i][5].ToString().Trim(); content.QUESTION_LEVEL = content.QUESTION_LEVEL_SHOW == "重大" ? SKHiddenLevel.Major : SKHiddenLevel.General; - content.DEMAND = dtSource.Rows[i][4].ToString().Trim(); + content.DEMAND = dtSource.Rows[i][6].ToString().Trim(); content.PRODUCTION_UNIT_ID = unit?.ID; - qustions.Add(content); + qustionTemps.Add(content); } - - } } - if (qustions != null && qustions.Any()) + if (qustionTemps != null && qustionTemps.Any()) { - var contentList2 = qustions.Where(m => m.CHECK_CONTENTS_ID != null).GroupBy(t => new { t.CHECK_CONTENTS_ID, t.PRODUCTION_UNIT_ID, t.CHECKCONTENT }).Distinct().ToList(); - if (contentList2 != null && contentList2.Any()) - { - foreach (var item in contentList2) - { - var qus = qustions.Where(t => t.CHECK_CONTENTS_ID == item.Key.CHECK_CONTENTS_ID && t.PRODUCTION_UNIT_ID == item.Key.PRODUCTION_UNIT_ID && t.CHECKCONTENT == item.Key.CHECKCONTENT).ToList(); - var j = 1; - foreach (var qu in qus) - { - qu.NUM = j; - j++; - } - } - } - var contentList = qustions.Where(m=>m.CHECK_CONTENTS_ID==null).GroupBy(t => new { t.PRODUCTION_UNIT_ID, t.CHECKCONTENT }).Distinct().ToList(); + //已有检查内容,隐患描述直接加 + //var contentList2 = qustionTemps.Where(m => m.CHECK_CONTENTS_ID != null).GroupBy(t => new { t.CHECK_CONTENTS_ID, t.PRODUCTION_UNIT_ID, t.CHECKCONTENT }).Distinct().ToList(); + //if (contentList2 != null && contentList2.Any()) + //{ + // foreach (var item in contentList2) + // { + // var qus = qustionTemps.Where(t => t.CHECK_CONTENTS_ID == item.Key.CHECK_CONTENTS_ID && t.PRODUCTION_UNIT_ID == item.Key.PRODUCTION_UNIT_ID && t.CHECKCONTENT == item.Key.CHECKCONTENT).ToList(); + // var j = 1; + // foreach (var que in qus) + // { + // var quFirst = oldHiddens.FirstOrDefault(t =>t.CHECK_CONTENTS_ID== item.Key.CHECK_CONTENTS_ID && t.DESCREPTION == que.DESCREPTION && t.DEMAND == que.DEMAND && t.QUESTION_LEVEL == que.QUESTION_LEVEL); + // if (quFirst == null) + // { + // T_SK_CHECK_QUESTION qu = new T_SK_CHECK_QUESTION(); + // qu.CHECK_CONTENTS_ID = item.Key.CHECK_CONTENTS_ID; + // qu.ORG_ID = orgId; + // qu.DESCREPTION = que.DESCREPTION; + // qu.DEMAND = que.DEMAND; + // qu.QUESTION_LEVEL = que.QUESTION_LEVEL; + // qu.NUM = j; + // qustions.Add(qu); + // j++; + // } + // if (!string.IsNullOrEmpty(que.CHECK_BASICS)) + // { + // var laws=que.CHECK_BASICS.Split(";").ToList(); + // foreach (var law in laws) + // { + // var lawFirst = lawList.FirstOrDefault(t => t.NAME == law); + // if (!string.IsNullOrEmpty(law)) + // { + // if (lawFirst != null) + // { + // var laFirst = oldbass.FirstOrDefault(t => t.CHECK_CONTENTS_ID == item.Key.CHECK_CONTENTS_ID && t.LAW_ID == lawFirst.ID); + // if (laFirst == null) + // { + // T_SK_CHECK_CONTENTS_BASIC bas = new T_SK_CHECK_CONTENTS_BASIC(); + // bas.ORG_ID = orgId; + // bas.LAW_ID = lawFirst.ID; + // basics.Add(bas); + // } + // } + // else + // { + // Msg = Msg + "找不到检查依据:" + law + ",请先到法律法规库添加"; + // } + // } + // } + // } + // } + // } + //} + //新增的检查内容 + var contentList = qustionTemps.Where(m=>m.CHECK_CONTENTS_ID==null).GroupBy(t => new { t.PRODUCTION_UNIT_ID, t.CHECKCONTENT }).Distinct().ToList(); if (contentList != null && contentList.Any()) { foreach (var item in contentList) @@ -458,17 +508,46 @@ namespace APT.SK.WebApi.Controllers.Api content.ORG_ID = orgId; content.PRODUCTION_UNIT_ID = item.Key.PRODUCTION_UNIT_ID; content.CHECKCONTENT = item.Key.CHECKCONTENT; + content.CHECK_STANDARD = qustionTemps.FirstOrDefault(t => t.PRODUCTION_UNIT_ID == item.Key.PRODUCTION_UNIT_ID && t.CHECKCONTENT == item.Key.CHECKCONTENT)?.CHECK_STANDARD; contents.Add(content); - var qus = qustions.Where(t => t.PRODUCTION_UNIT_ID == item.Key.PRODUCTION_UNIT_ID && t.CHECKCONTENT == item.Key.CHECKCONTENT).ToList(); + var qus = qustionTemps.Where(t => t.PRODUCTION_UNIT_ID == item.Key.PRODUCTION_UNIT_ID && t.CHECKCONTENT == item.Key.CHECKCONTENT).ToList(); var j = 1; - foreach (var qu in qus) + foreach (var que in qus) { + T_SK_CHECK_QUESTION qu = new T_SK_CHECK_QUESTION(); qu.CHECK_CONTENTS_ID = content.ID; + qu.ORG_ID = orgId; + qu.DESCREPTION = que.DESCREPTION; + qu.DEMAND = que.DEMAND; + qu.QUESTION_LEVEL = que.QUESTION_LEVEL; qu.NUM = j; + qustions.Add(qu); j++; + if (!string.IsNullOrEmpty(que.CHECK_BASICS)) + { + var laws = que.CHECK_BASICS.Split(";").ToList(); + foreach (var law in laws) + { + var lawFirst = lawList.FirstOrDefault(t => t.NAME == law); + if (!string.IsNullOrEmpty(law)) + { + if (lawFirst != null) + { + T_SK_CHECK_CONTENTS_BASIC bas = new T_SK_CHECK_CONTENTS_BASIC(); + bas.ORG_ID = orgId; + bas.LAW_ID = lawFirst.ID; + basics.Add(bas); + } + else + { + Msg = Msg + "找不到检查依据:" + law + ",请先到法律法规库添加;"; + } + } + } + } } } - } + } } if (!string.IsNullOrEmpty(Msg)) { diff --git a/APT.MicroApi/APT.SK.WebApi/Controllers/Api/CrossDbContext.cs b/APT.MicroApi/APT.SK.WebApi/Controllers/Api/CrossDbContext.cs index e80b500..aa7cf48 100644 --- a/APT.MicroApi/APT.SK.WebApi/Controllers/Api/CrossDbContext.cs +++ b/APT.MicroApi/APT.SK.WebApi/Controllers/Api/CrossDbContext.cs @@ -2,6 +2,7 @@ using APT.BaseData.Domain.ApiModel.PF; using APT.BaseData.Domain.Entities.FM; using APT.BaseData.Domain.IServices.OP; +using APT.MS.Domain.Entities.LR; using APT.MS.Domain.Entities.SK; using Microsoft.EntityFrameworkCore; using System.Collections.Generic; @@ -33,6 +34,46 @@ namespace APT.SK.WebApi.Controllers.Api .Ignore(x => x.Nav_Org) .Ignore(x => x.DbConn) .Ignore(x => x.TaskID); + modelBuilder.Entity() + .Ignore(x => x.Nav_Org) + .Ignore(x => x.DbConn) + .Ignore(x => x.TaskID); + modelBuilder.Entity().Ignore(x => x.Nav_Org) + .Ignore(x => x.DbConn) + .Ignore(x => x.TaskID); + modelBuilder.Entity().Ignore(x => x.Nav_Org) + .Ignore(x => x.DbConn) + .Ignore(x => x.TaskID); + modelBuilder.Entity().Ignore(x => x.Nav_Org) + .Ignore(x => x.DbConn) + .Ignore(x => x.TaskID); + modelBuilder.Entity().Ignore(x => x.Nav_Org) + .Ignore(x => x.DbConn) + .Ignore(x => x.TaskID); + modelBuilder.Entity().Ignore(x => x.Nav_Org) + .Ignore(x => x.DbConn) + .Ignore(x => x.TaskID); + modelBuilder.Entity().Ignore(x => x.Nav_Org) + .Ignore(x => x.DbConn) + .Ignore(x => x.TaskID); + modelBuilder.Entity().Ignore(x => x.Nav_Org) + .Ignore(x => x.DbConn) + .Ignore(x => x.TaskID); + modelBuilder.Entity().Ignore(x => x.Nav_Org) + .Ignore(x => x.DbConn) + .Ignore(x => x.TaskID); + modelBuilder.Entity().Ignore(x => x.Nav_Org) + .Ignore(x => x.DbConn) + .Ignore(x => x.TaskID); + modelBuilder.Entity().Ignore(x => x.Nav_Org) + .Ignore(x => x.DbConn) + .Ignore(x => x.TaskID); + modelBuilder.Entity().Ignore(x => x.Nav_Org) + .Ignore(x => x.DbConn) + .Ignore(x => x.TaskID); + modelBuilder.Entity().Ignore(x => x.Nav_Org) + .Ignore(x => x.DbConn) + .Ignore(x => x.TaskID); //modelBuilder.Entity() // .Ignore(x => x.departmentCheckedKeys); } @@ -41,33 +82,133 @@ namespace APT.SK.WebApi.Controllers.Api /// /// 库名列表 /// 跨库合并结果 - public IQueryable QueryCrossDatabases(List databaseNames) + public List QueryCrossDatabases(string dbName) { - IQueryable? query = null; + List query = null; - foreach (var dbName in databaseNames) + //foreach (var dbName in databaseNames) { // 核心:动态拼接 库名.dbo.表名 - string sql = $"SELECT * FROM {dbName}.dbo.T_SK_BASIC_LIBRARY"; - var dbSet = this.Set().FromSqlRaw(sql); - query = dbSet; + string sql1 = $"SELECT * FROM {dbName}.dbo.T_SK_BASIC_LIBRARY"; + var libs = this.Set().FromSqlRaw(sql1).ToList(); + string sql2 = $"SELECT * FROM {dbName}.dbo.T_SK_BASIC_LIBRARY_DETAIL"; + var libDets = this.Set().FromSqlRaw(sql2).ToList(); + string sql3 = $"SELECT * FROM {dbName}.dbo.T_SK_BASIC_LIBRARY_DETAIL_CONTENT"; + var libDetConts = this.Set().FromSqlRaw(sql3).ToList(); + string sql4 = $"SELECT * FROM {dbName}.dbo.T_SK_BASIC_LIBRARY_DETAIL_CONTENT_BASIC"; + var libDetContLaws = this.Set().FromSqlRaw(sql4).ToList(); + string sql5 = $"SELECT * FROM {dbName}.dbo.T_SK_BASIC_LIBRARY_DETAIL_CONTENT_HIDDEN"; + var libDetContHids = this.Set().FromSqlRaw(sql5).ToList(); + var proUnits = GetJTProUnits(dbName); + var riskTypes = GetJTRiskTypes(dbName); + var libLs = GetJTLibLs(dbName); + var libEs = GetJTLibEs(dbName); + var libCs = GetJTLibCs(dbName); + var laws = GetJTLaws(dbName); + var cons = GetJTCons(dbName); + var ques = GetJTQues(dbName); + if (libs != null && libs.Any()) + { + foreach (var lib in libs) + { + lib.Nav_ProductionUnit = proUnits.FirstOrDefault(t => t.ID == lib.PRODUCTION_UNIT_ID); + lib.Nav_Type = riskTypes.FirstOrDefault(t => t.ID == lib.TYPE_ID); + lib.Nav_SCOREL = libLs.FirstOrDefault(t => t.ID == lib.SCOREL_ID); + lib.Nav_SCOREE = libEs.FirstOrDefault(t => t.ID == lib.SCOREE_ID); + lib.Nav_SCOREC = libCs.FirstOrDefault(t => t.ID == lib.SCOREC_ID); + lib.Nav_Details = libDets.Where(t => t.BASIC_LIBRARY_ID == lib.ID).ToList(); + if (lib.Nav_Details != null && lib.Nav_Details.Any()) + { + foreach (var libDet in lib.Nav_Details) + { + libDet.Nav_DetailContents = libDetConts.Where(t => t.BASIC_LIBRARY_DETAIL_ID == libDet.ID).ToList(); + if (libDet.Nav_DetailContents != null && libDet.Nav_DetailContents.Any()) + { + foreach (var libDetCon in libDet.Nav_DetailContents) + { + libDetCon.Nav_Contents = cons.FirstOrDefault(t => t.ID == libDetCon.CHECK_CONTENTS_ID); + libDetCon.Nav_DetailBasics = libDetContLaws.Where(t => t.BASIC_LIBRARY_DETAIL_CONTENT_ID == libDetCon.ID).ToList(); + if (libDetCon.Nav_DetailBasics != null && libDetCon.Nav_DetailBasics.Any()) + { + foreach (var bas in libDetCon.Nav_DetailBasics) + { + bas.Nav_Law = laws.FirstOrDefault(t => t.ID == bas.LAW_ID); + } + } + libDetCon.Nav_DetailHiddens = libDetContHids.Where(t => t.BASIC_LIBRARY_DETAIL_CONTENT_ID == libDetCon.ID).ToList(); + if (libDetCon.Nav_DetailHiddens != null && libDetCon.Nav_DetailHiddens.Any()) + { + foreach (var hid in libDetCon.Nav_DetailHiddens) + { + hid.Nav_Question = ques.FirstOrDefault(t => t.ID == hid.CHECK_QUESTION_ID); + } + } + } + } + } + } + } + } + query = libs; //query = query == null ? dbSet : query.UnionAll(dbSet); } - - return query ?? Enumerable.Empty().AsQueryable(); + return query; + //return query ?? Enumerable.Empty().AsQueryable(); } - /// - /// 跨库查询:同服务器,多个库,静态数据库连接时直接给库名称 - /// - /// 跨库合并结果 - // ========== 查询方法:直接跨库合并 ========== - public IQueryable GetAllUserInfos() + + public List GetJTProUnits(string dbName) { - // 查询库B(关键:直接修改表名,同服务器跨库) - var dbBUsers = this.Set() - .FromSqlRaw("SELECT * FROM mh_jy_head.dbo.T_SK_BASIC_LIBRARY"); - - return dbBUsers; + string sql = $"SELECT * FROM {dbName}.dbo.T_FM_USER_PRODUCTION_UNIT_SET"; + var proUnits = this.Set().FromSqlRaw(sql).ToList(); + return proUnits; + } + public List GetJTRiskTypes(string dbName) + { + string sql = $"SELECT * FROM {dbName}.dbo.T_SK_RISK_TYPE"; + var riskTypes = this.Set().FromSqlRaw(sql).ToList(); + return riskTypes; + } + public List GetJTLibLs(string dbName) + { + string sql = $"SELECT * FROM {dbName}.dbo.T_SK_SCOREL"; + var libLs = this.Set().FromSqlRaw(sql).ToList(); + return libLs; + } + public List GetJTLibEs(string dbName) + { + string sql = $"SELECT * FROM {dbName}.dbo.T_SK_SCOREE"; + var libEs = this.Set().FromSqlRaw(sql).ToList(); + return libEs; + } + public List GetJTLibCs(string dbName) + { + string sql = $"SELECT * FROM {dbName}.dbo.T_SK_SCOREC"; + var libCs = this.Set().FromSqlRaw(sql).ToList(); + return libCs; + } + public List GetJTLaws(string dbName) + { + string sql = $"SELECT * FROM {dbName}.dbo.T_LR_LAW"; + var laws = this.Set().FromSqlRaw(sql).ToList(); + return laws; + } + public List GetJTLawTypes(string dbName) + { + string sql = $"SELECT * FROM {dbName}.dbo.T_LR_LAW_TYPE"; + var lawTypes = this.Set().FromSqlRaw(sql).ToList(); + return lawTypes; + } + public List GetJTCons(string dbName) + { + string sql = $"SELECT * FROM {dbName}.dbo.T_SK_CHECK_CONTENTS"; + var cons = this.Set().FromSqlRaw(sql).ToList(); + return cons; + } + public List GetJTQues(string dbName) + { + string sql = $"SELECT * FROM {dbName}.dbo.T_SK_CHECK_QUESTION"; + var ques = this.Set().FromSqlRaw(sql).ToList(); + return ques; } } }