This commit is contained in:
wyw 2026-03-12 11:20:56 +08:00
commit bdec34e10e
11 changed files with 1642 additions and 274 deletions

View File

@ -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;
@ -68,6 +69,7 @@ namespace APT.MS.Domain.Entities.LR
/// 需求类别
/// </summary>
[Description("需求类别")]
[NotMapped]
public T_LR_LAW_TYPE Nav_LawType { get; set; }
/// <summary>
/// 编制单位
@ -88,18 +90,21 @@ namespace APT.MS.Domain.Entities.LR
/// 导航属性:识别人员
/// </summary>
[Description("导航属性:融入人员")]
[NotMapped]
public T_FM_USER Nav_User { get; set; }
/// <summary>
/// 导航:版本号
/// </summary>
[Description("版本号")]
[FormFieldEdit]
[NotMapped]
public ICollection<T_LR_LAW_VERSION> Nav_LawVersion { get; set; }
/// <summary>
/// 导航:关联标准化制度库
/// </summary>
[Description("标准化制度")]
[FormFieldEdit]
[NotMapped]
public ICollection<T_LR_LAW_SC_SYSTEM> Nav_LawSCSystem { get; set; }
/// <summary>
/// 施行日期

View File

@ -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
/// 导航属性:基础库
/// </summary>
[Description("导航属性:基础库")]
[NotMapped]
public T_SK_BASIC_LIBRARY Nav_Library { get; set; }
/// <summary>
/// 管控措施
@ -42,6 +44,7 @@ namespace APT.MS.Domain.Entities.SK
/// </summary>
[Description("检查内容")]
[FormFieldEdit]
[NotMapped]
public ICollection<T_SK_BASIC_LIBRARY_DETAIL_CONTENT> Nav_DetailContents { get; set; }
[Description("顺序")]

View File

@ -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
/// 导航属性:基础库管控措施表
/// </summary>
[Description("导航属性:基础库管控措施表")]
[NotMapped]
public T_SK_BASIC_LIBRARY_DETAIL Nav_LibraryDetail { get; set; }
/// <summary>
@ -34,6 +36,7 @@ namespace APT.MS.Domain.Entities.SK
/// 检查内容
/// </summary>
[Description("检查内容")]
[NotMapped]
public virtual T_SK_CHECK_CONTENTS Nav_Contents { get; set; }
/// <summary>
/// 检查内容
@ -64,6 +67,7 @@ namespace APT.MS.Domain.Entities.SK
/// </summary>
[Description("隐患表")]
[FormFieldEdit]
[NotMapped]
public ICollection<T_SK_BASIC_LIBRARY_DETAIL_CONTENT_HIDDEN> Nav_DetailHiddens { get; set; }
/// <summary>
@ -71,6 +75,7 @@ namespace APT.MS.Domain.Entities.SK
/// </summary>
[Description("检查依据")]
[FormFieldEdit]
[NotMapped]
public ICollection<T_SK_BASIC_LIBRARY_DETAIL_CONTENT_BASIC> Nav_DetailBasics { get; set; }
[Description("顺序")]

View File

@ -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
/// 导航属性:检查内容
/// </summary>
[Description("导航属性:检查内容")]
[NotMapped]
public T_SK_BASIC_LIBRARY_DETAIL_CONTENT Nav_DetailContent { get; set; }
/// <summary>
@ -34,6 +36,11 @@ namespace APT.MS.Domain.Entities.SK
/// 导航属性:法律法规库
/// </summary>
[Description("导航属性:法律法规库")]
[NotMapped]
public T_LR_LAW Nav_Law { get; set; }
[Description("检查内容")]
[DataFieldIngore]
[NotMapped]
public Guid? CHECK_CONTENTS_ID { get; set; }
}
}

View File

@ -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
/// 导航属性:基础库检查内容表
/// </summary>
[Description("导航属性:基础库检查内容表")]
[NotMapped]
public T_SK_BASIC_LIBRARY_DETAIL_CONTENT Nav_DetailContent { get; set; }
/// <summary>
@ -34,6 +36,7 @@ namespace APT.MS.Domain.Entities.SK
/// 隐患描述
/// </summary>
[Description("隐患描述")]
[NotMapped]
public virtual T_SK_CHECK_QUESTION Nav_Question { get; set; }
/// <summary>
@ -59,5 +62,10 @@ namespace APT.MS.Domain.Entities.SK
public int? NUM { get; set; }
[Description("顺序")]
public int? ROW_NO { get; set; }
[Description("检查内容")]
[DataFieldIngore]
[NotMapped]
public Guid? CHECK_CONTENTS_ID { get; set; }
}
}

View File

@ -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
@ -24,6 +25,7 @@ namespace APT.MS.Domain.Entities.SK
[DataFieldForeignKey("Nav_ProductionUnit")]
public Guid? PRODUCTION_UNIT_ID { get; set; }
[Description("导航属性:生产单元")]
[NotMapped]
public T_FM_USER_PRODUCTION_UNIT_SET Nav_ProductionUnit { get; set; }
/// <summary>
/// 检查内容
@ -40,6 +42,7 @@ namespace APT.MS.Domain.Entities.SK
/// </summary>
[Description("导航:检查问题(描述)")]
[FormFieldEdit]
[NotMapped]
public virtual ICollection<T_SK_CHECK_QUESTION> Nav_ListCheckQuestion { get; set; }
/// <summary>
@ -47,6 +50,7 @@ namespace APT.MS.Domain.Entities.SK
/// </summary>
[Description("导航:检查依据")]
[FormFieldEdit]
[NotMapped]
public virtual ICollection<T_SK_CHECK_CONTENTS_BASIC> Nav_ContentsBasics { get; set; }
/// <summary>
@ -64,6 +68,7 @@ namespace APT.MS.Domain.Entities.SK
/// 导航属性:辨识区域
/// </summary>
[Description("导航属性:辨识区域")]
[NotMapped]
public T_SK_RISK_AREA Nav_Area { get; set; }
}
}

View File

@ -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
@ -26,6 +27,7 @@ namespace APT.MS.Domain.Entities.SK
/// 检查内容
/// </summary>
[Description("检查内容")]
[NotMapped]
public virtual T_SK_CHECK_CONTENTS Nav_Contents { get; set; }
/// <summary>
@ -61,6 +63,7 @@ namespace APT.MS.Domain.Entities.SK
/// </summary>
[Description("问题等级")]
[DataFieldIngore]
[NotMapped]
public string QUESTION_LEVEL_SHOW { get; set; }
/// <summary>
@ -73,10 +76,20 @@ namespace APT.MS.Domain.Entities.SK
[Description("检查内容")]
[DataFieldIngore]
[NotMapped]
public string CHECKCONTENT { get; set; }
[Description("生产单元")]
[DataFieldIngore]
[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; }
}
}

View File

@ -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
@ -38,6 +39,7 @@ namespace APT.MS.Domain.Entities.SK
[DataFieldForeignKey("Nav_ProductionUnit")]
public Guid? PRODUCTION_UNIT_ID { get; set; }
[Description("导航属性:生产单元")]
[NotMapped]
public T_FM_USER_PRODUCTION_UNIT_SET Nav_ProductionUnit { get; set; }
}
}

View File

@ -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(() =>
@ -394,62 +396,110 @@ namespace APT.SK.WebApi.Controllers.Api
}
List<T_SK_CHECK_CONTENTS> contents = new List<T_SK_CHECK_CONTENTS>();
List<T_SK_CHECK_QUESTION> qustions = new List<T_SK_CHECK_QUESTION>();
List<T_SK_CHECK_CONTENTS_BASIC> basics = new List<T_SK_CHECK_CONTENTS_BASIC>();
List<T_SK_CHECK_QUESTION> qustionTemps = new List<T_SK_CHECK_QUESTION>();
var baseFilter = new BaseFilter(orgId);
var lawList = this.GetEntities<T_LR_LAW>(i => i.IS_DELETED == false, baseFilter);
var productionUnits = this.GetEntities<T_FM_USER_PRODUCTION_UNIT_SET>(i => i.IS_DELETED == false, baseFilter);
var oldContents = this.GetEntities<T_SK_CHECK_CONTENTS>(i => i.IS_DELETED == false, baseFilter, "Nav_ListCheckQuestion");
var oldContents = this.GetEntities<T_SK_CHECK_CONTENTS>(i => i.IS_DELETED == false, baseFilter);
var oldHiddens = this.GetEntities<T_SK_CHECK_QUESTION>(i => i.IS_DELETED == false, baseFilter);
var oldbass = this.GetEntities<T_SK_CHECK_CONTENTS_BASIC>(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,14 +508,43 @@ 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 + ",请先到法律法规库添加;";
}
}
}
}
}
}
}

View File

@ -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<T_SK_BASIC_LIBRARY_DETAIL>()
.Ignore(x => x.Nav_Org)
.Ignore(x => x.DbConn)
.Ignore(x => x.TaskID);
modelBuilder.Entity<T_SK_BASIC_LIBRARY_DETAIL_CONTENT>().Ignore(x => x.Nav_Org)
.Ignore(x => x.DbConn)
.Ignore(x => x.TaskID);
modelBuilder.Entity<T_SK_BASIC_LIBRARY_DETAIL_CONTENT_BASIC>().Ignore(x => x.Nav_Org)
.Ignore(x => x.DbConn)
.Ignore(x => x.TaskID);
modelBuilder.Entity<T_SK_BASIC_LIBRARY_DETAIL_CONTENT_HIDDEN>().Ignore(x => x.Nav_Org)
.Ignore(x => x.DbConn)
.Ignore(x => x.TaskID);
modelBuilder.Entity<T_FM_USER_PRODUCTION_UNIT_SET>().Ignore(x => x.Nav_Org)
.Ignore(x => x.DbConn)
.Ignore(x => x.TaskID);
modelBuilder.Entity<T_SK_RISK_TYPE>().Ignore(x => x.Nav_Org)
.Ignore(x => x.DbConn)
.Ignore(x => x.TaskID);
modelBuilder.Entity<T_SK_SCOREL>().Ignore(x => x.Nav_Org)
.Ignore(x => x.DbConn)
.Ignore(x => x.TaskID);
modelBuilder.Entity<T_SK_SCOREE>().Ignore(x => x.Nav_Org)
.Ignore(x => x.DbConn)
.Ignore(x => x.TaskID);
modelBuilder.Entity<T_SK_SCOREC>().Ignore(x => x.Nav_Org)
.Ignore(x => x.DbConn)
.Ignore(x => x.TaskID);
modelBuilder.Entity<T_LR_LAW>().Ignore(x => x.Nav_Org)
.Ignore(x => x.DbConn)
.Ignore(x => x.TaskID);
modelBuilder.Entity<T_LR_LAW_TYPE>().Ignore(x => x.Nav_Org)
.Ignore(x => x.DbConn)
.Ignore(x => x.TaskID);
modelBuilder.Entity<T_SK_CHECK_CONTENTS>().Ignore(x => x.Nav_Org)
.Ignore(x => x.DbConn)
.Ignore(x => x.TaskID);
modelBuilder.Entity<T_SK_CHECK_QUESTION>().Ignore(x => x.Nav_Org)
.Ignore(x => x.DbConn)
.Ignore(x => x.TaskID);
//modelBuilder.Entity<OrgRuleDeptCheck>()
// .Ignore(x => x.departmentCheckedKeys);
}
@ -41,33 +82,133 @@ namespace APT.SK.WebApi.Controllers.Api
/// </summary>
/// <param name="databaseNames">库名列表</param>
/// <returns>跨库合并结果</returns>
public IQueryable<T_SK_BASIC_LIBRARY> QueryCrossDatabases(List<string> databaseNames)
public List<T_SK_BASIC_LIBRARY> QueryCrossDatabases(string dbName)
{
IQueryable<T_SK_BASIC_LIBRARY>? query = null;
List<T_SK_BASIC_LIBRARY> 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<T_SK_BASIC_LIBRARY>().FromSqlRaw(sql);
query = dbSet;
string sql1 = $"SELECT * FROM {dbName}.dbo.T_SK_BASIC_LIBRARY";
var libs = this.Set<T_SK_BASIC_LIBRARY>().FromSqlRaw(sql1).ToList();
string sql2 = $"SELECT * FROM {dbName}.dbo.T_SK_BASIC_LIBRARY_DETAIL";
var libDets = this.Set<T_SK_BASIC_LIBRARY_DETAIL>().FromSqlRaw(sql2).ToList();
string sql3 = $"SELECT * FROM {dbName}.dbo.T_SK_BASIC_LIBRARY_DETAIL_CONTENT";
var libDetConts = this.Set<T_SK_BASIC_LIBRARY_DETAIL_CONTENT>().FromSqlRaw(sql3).ToList();
string sql4 = $"SELECT * FROM {dbName}.dbo.T_SK_BASIC_LIBRARY_DETAIL_CONTENT_BASIC";
var libDetContLaws = this.Set<T_SK_BASIC_LIBRARY_DETAIL_CONTENT_BASIC>().FromSqlRaw(sql4).ToList();
string sql5 = $"SELECT * FROM {dbName}.dbo.T_SK_BASIC_LIBRARY_DETAIL_CONTENT_HIDDEN";
var libDetContHids = this.Set<T_SK_BASIC_LIBRARY_DETAIL_CONTENT_HIDDEN>().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<T_SK_BASIC_LIBRARY>().AsQueryable();
return query;
//return query ?? Enumerable.Empty<T_SK_BASIC_LIBRARY>().AsQueryable();
}
/// <summary>
/// 跨库查询:同服务器,多个库,静态数据库连接时直接给库名称
/// </summary>
/// <returns>跨库合并结果</returns>
// ========== 查询方法:直接跨库合并 ==========
public IQueryable<T_SK_BASIC_LIBRARY> GetAllUserInfos()
{
// 查询库B关键直接修改表名同服务器跨库
var dbBUsers = this.Set<T_SK_BASIC_LIBRARY>()
.FromSqlRaw("SELECT * FROM mh_jy_head.dbo.T_SK_BASIC_LIBRARY");
return dbBUsers;
public List<T_FM_USER_PRODUCTION_UNIT_SET> GetJTProUnits(string dbName)
{
string sql = $"SELECT * FROM {dbName}.dbo.T_FM_USER_PRODUCTION_UNIT_SET";
var proUnits = this.Set<T_FM_USER_PRODUCTION_UNIT_SET>().FromSqlRaw(sql).ToList();
return proUnits;
}
public List<T_SK_RISK_TYPE> GetJTRiskTypes(string dbName)
{
string sql = $"SELECT * FROM {dbName}.dbo.T_SK_RISK_TYPE";
var riskTypes = this.Set<T_SK_RISK_TYPE>().FromSqlRaw(sql).ToList();
return riskTypes;
}
public List<T_SK_SCOREL> GetJTLibLs(string dbName)
{
string sql = $"SELECT * FROM {dbName}.dbo.T_SK_SCOREL";
var libLs = this.Set<T_SK_SCOREL>().FromSqlRaw(sql).ToList();
return libLs;
}
public List<T_SK_SCOREE> GetJTLibEs(string dbName)
{
string sql = $"SELECT * FROM {dbName}.dbo.T_SK_SCOREE";
var libEs = this.Set<T_SK_SCOREE>().FromSqlRaw(sql).ToList();
return libEs;
}
public List<T_SK_SCOREC> GetJTLibCs(string dbName)
{
string sql = $"SELECT * FROM {dbName}.dbo.T_SK_SCOREC";
var libCs = this.Set<T_SK_SCOREC>().FromSqlRaw(sql).ToList();
return libCs;
}
public List<T_LR_LAW> GetJTLaws(string dbName)
{
string sql = $"SELECT * FROM {dbName}.dbo.T_LR_LAW";
var laws = this.Set<T_LR_LAW>().FromSqlRaw(sql).ToList();
return laws;
}
public List<T_LR_LAW_TYPE> GetJTLawTypes(string dbName)
{
string sql = $"SELECT * FROM {dbName}.dbo.T_LR_LAW_TYPE";
var lawTypes = this.Set<T_LR_LAW_TYPE>().FromSqlRaw(sql).ToList();
return lawTypes;
}
public List<T_SK_CHECK_CONTENTS> GetJTCons(string dbName)
{
string sql = $"SELECT * FROM {dbName}.dbo.T_SK_CHECK_CONTENTS";
var cons = this.Set<T_SK_CHECK_CONTENTS>().FromSqlRaw(sql).ToList();
return cons;
}
public List<T_SK_CHECK_QUESTION> GetJTQues(string dbName)
{
string sql = $"SELECT * FROM {dbName}.dbo.T_SK_CHECK_QUESTION";
var ques = this.Set<T_SK_CHECK_QUESTION>().FromSqlRaw(sql).ToList();
return ques;
}
}
}