mh_jy_safe/APT.MicroApi/APT.SK.WebApi/Controllers/Api/BasicLibraryController.cs
2026-03-13 15:17:35 +08:00

2079 lines
123 KiB
C#

using APT.BaseData.Domain.ApiModel;
using APT.BaseData.Domain.Entities;
using APT.BaseData.Domain.Entities.FM;
using APT.BaseData.Domain.Enums;
using APT.BaseData.Domain.Enums.PF;
using APT.BaseData.Domain.IServices.OP;
using APT.BaseData.Services.DomainServices;
using APT.BaseData.Services.Services.FM;
using APT.BaseData.Services.Services.OP;
using APT.Infrastructure.Api;
using APT.Infrastructure.Core;
using APT.MS.Domain.Entities.FO;
using APT.MS.Domain.Entities.LR;
using APT.MS.Domain.Entities.SK;
using APT.MS.Domain.Enums;
using APT.MS.Domain.Enums.SK;
using APT.SK.WebApi.Controllers.Api;
using APT.Utility;
using Microsoft.AspNetCore.Mvc;
using Microsoft.Data.SqlClient;
using Microsoft.EntityFrameworkCore;
using Microsoft.EntityFrameworkCore.Metadata.Internal;
using MySqlX.XDevAPI.Common;
using NPOI.SS.Formula.Functions;
using NPOI.SS.Formula.PTG;
using Org.BouncyCastle.Crypto;
using System;
using System.Collections.Generic;
using System.Data;
using System.DirectoryServices.ActiveDirectory;
using System.Linq;
using System.Security.Policy;
namespace APT.SK.WebApi.Controllers
{
/// <summary>
/// 基础库
/// </summary>
[Route("api/SK/SKBasicLibrary")]
public partial class BasicLibraryController : AuthorizeApiController<T_SK_BASIC_LIBRARY>
{
IOPTenantDBConnService OPTenantDBConnService { get; set; }
public BasicLibraryController(IOPTenantDBConnService opTenantDBConnService)
{
OPTenantDBConnService = opTenantDBConnService;
}
/// <summary>
/// 保存
/// </summary>
/// <param name="entity"></param>
/// <returns></returns>
[HttpPost, Route("FullUpdate")]
public JsonActionResult<bool> FullUpdate([FromBody] T_SK_BASIC_LIBRARY entity)
{
return SafeExecute<bool>(() =>
{
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_SK_BASIC_LIBRARY_DETAIL>(t =>t.BASIC_LIBRARY_ID == entity.ID, new BaseFilter(entity.ORG_ID)).Select(t => t.ID).ToList();
var deleteBasConttentIds = this.GetEntities<T_SK_BASIC_LIBRARY_DETAIL_CONTENT>(t => deleteBasDetailIds.Contains(t.BASIC_LIBRARY_DETAIL_ID), new BaseFilter(entity.ORG_ID)).Select(t => t.ID).ToList();
var deleteBasBasicIds = this.GetEntities<T_SK_BASIC_LIBRARY_DETAIL_CONTENT_BASIC>(t => deleteBasConttentIds.Contains(t.BASIC_LIBRARY_DETAIL_CONTENT_ID), new BaseFilter(entity.ORG_ID)).Select(t => t.ID).ToList();
var deleteBasHiddenIds=this.GetEntities< T_SK_BASIC_LIBRARY_DETAIL_CONTENT_HIDDEN >(t=> deleteBasConttentIds.Contains(t.BASIC_LIBRARY_DETAIL_CONTENT_ID), new BaseFilter(entity.ORG_ID)).Select(t => t.ID).ToList();
List<T_SK_BASIC_LIBRARY_DETAIL_CONTENT> contentList = new List<T_SK_BASIC_LIBRARY_DETAIL_CONTENT>();
List<T_SK_BASIC_LIBRARY_DETAIL_CONTENT_HIDDEN> hiddenList = new List<T_SK_BASIC_LIBRARY_DETAIL_CONTENT_HIDDEN>();
List<T_SK_BASIC_LIBRARY_DETAIL_CONTENT_BASIC> basicList = new List<T_SK_BASIC_LIBRARY_DETAIL_CONTENT_BASIC>();
var numIsNull = details.FirstOrDefault(t => t.NUM == null || t.NUM == 0);
if (numIsNull != null)
{
throw new Exception("管控措施的顺序必须填写");
}
if (details != null && details.Any())
{
foreach (var item in details)
{
if (item.Nav_DetailContents != null && item.Nav_DetailContents.Any())
{
foreach (var item2 in item.Nav_DetailContents)
{
if (item2.Nav_DetailHiddens != null && item2.Nav_DetailHiddens.Any())
{
foreach (var item3 in item2.Nav_DetailHiddens)
{
item3.ORG_ID = entity.ORG_ID;
item3.BASIC_LIBRARY_DETAIL_CONTENT_ID = item2.ID;
item3.NUM = (item3.NUM == 0 || item3.NUM == null) ? item3.ROW_NO : item3.NUM;
hiddenList.Add(item3);
}
}
if (item2.Nav_DetailBasics != null && item2.Nav_DetailBasics.Any())
{
foreach (var item3 in item2.Nav_DetailBasics)
{
item3.ORG_ID = entity.ORG_ID;
item3.BASIC_LIBRARY_DETAIL_CONTENT_ID = item2.ID;
basicList.Add(item3);
}
}
item2.ORG_ID = entity.ORG_ID;
item2.BASIC_LIBRARY_DETAIL_ID = item.ID;
item2.Nav_DetailHiddens = null;
item2.Nav_DetailBasics = null;
item2.NUM = (item2.NUM == 0 || item2.NUM == null) ? item2.ROW_NO : item2.NUM;
contentList.Add(item2);
}
}
item.ORG_ID = entity.ORG_ID;
item.BASIC_LIBRARY_ID = entity.ID;
item.Nav_DetailContents = null;
item.NUM = (item.NUM == 0 || item.NUM == null) ? item.ROW_NO : item.NUM;
}
}
List<Guid> libraryIds = new List<Guid>();
List<Guid> libraryDepartIds = new List<Guid>();
List<Guid> libraryPostIds = new List<Guid>();
List<Guid> libraryPostDetailIds = new List<Guid>();
List<Guid> detailIds = new List<Guid>();
List<Guid> contentIds = new List<Guid>();
List<Guid> departIds = new List<Guid>();
List<Guid> postIds = new List<Guid>();
List<Guid> hiddenIds = new List<Guid>();
List<Guid> basicIds = new List<Guid>();
T_SK_ENTERPRISE_LIBRARY enterpriseLib = null;
List<T_SK_ENTERPRISE_LIBRARY_DETAIL> libraryDetailList = new List<T_SK_ENTERPRISE_LIBRARY_DETAIL>();
List<T_SK_ENTERPRISE_LIBRARY_DETAIL_CONTENT> libraryContentList = new List<T_SK_ENTERPRISE_LIBRARY_DETAIL_CONTENT>();
List<T_SK_ENTERPRISE_LIBRARY_DETAIL_CONTENT_HIDDEN> libraryHiddenList = new List<T_SK_ENTERPRISE_LIBRARY_DETAIL_CONTENT_HIDDEN>();
List<T_SK_ENTERPRISE_LIBRARY_DETAIL_CONTENT_BASIC> libraryBasicList = new List<T_SK_ENTERPRISE_LIBRARY_DETAIL_CONTENT_BASIC>();
//同步企业库
if (entity.PUBLISH != null && entity.PUBLISH.Equals("SaveAndNotify"))
{
var library = this.GetEntity<T_SK_ENTERPRISE_LIBRARY>(t => t.MineType == entity.MineType && t.AREA_ID == entity.AREA_ID && t.TYPE_ID == entity.TYPE_ID && t.RISK_NAME == entity.RISK_NAME && t.RISK_DESCRIPTION == entity.RISK_DESCRIPTION);
if (library != null)
{
libraryIds.Add(library.ID);
libraryPostIds = this.GetEntities<T_SK_ENTERPRISE_LIBRARY_POST>(t => t.ENTERPRISE_LIBRARY_ID == library.ID, new BaseFilter(entity.ORG_ID)).Select(t => t.ID).ToList();
libraryPostDetailIds = this.GetEntities<T_SK_ENTERPRISE_LIBRARY_POST_DETAIL>(t => libraryPostIds.Contains(t.ENTERPRISE_LIBRARY_POST_ID), new BaseFilter(entity.ORG_ID)).Select(t => t.ID).ToList();
libraryDepartIds = this.GetEntities<T_SK_ENTERPRISE_LIBRARY_DEPART>(t => t.ENTERPRISE_LIBRARY_ID == library.ID, new BaseFilter(entity.ORG_ID)).Select(t => t.ID).ToList();
detailIds = this.GetEntities<T_SK_ENTERPRISE_LIBRARY_DETAIL>(t => t.ENTERPRISE_LIBRARY_ID == library.ID, new BaseFilter(entity.ORG_ID)).Select(t => t.ID).ToList();
contentIds = this.GetEntities<T_SK_ENTERPRISE_LIBRARY_DETAIL_CONTENT>(t => detailIds.Contains(t.ENTERPRISE_LIBRARY_DETAIL_ID), new BaseFilter(entity.ORG_ID)).Select(t => t.ID).ToList();
hiddenIds = this.GetEntities<T_SK_ENTERPRISE_LIBRARY_DETAIL_CONTENT_HIDDEN>(t => contentIds.Contains(t.ENTERPRISE_LIBRARY_DETAIL_CONTENT_ID), new BaseFilter(entity.ORG_ID)).Select(t => t.ID).ToList();
basicIds = this.GetEntities<T_SK_ENTERPRISE_LIBRARY_DETAIL_CONTENT_BASIC>(t => contentIds.Contains(t.ENTERPRISE_LIBRARY_DETAIL_CONTENT_ID), new BaseFilter(entity.ORG_ID)).Select(t => t.ID).ToList();
departIds = this.GetEntities<T_SK_ENTERPRISE_LIBRARY_DETAIL_CONTENT_DEPART>(t => contentIds.Contains(t.ENTERPRISE_LIBRARY_DETAIL_CONTENT_ID), new BaseFilter(entity.ORG_ID)).Select(t => t.ID).ToList();
postIds = this.GetEntities<T_SK_ENTERPRISE_LIBRARY_DETAIL_CONTENT_POST>(t => departIds.Contains(t.ENTERPRISE_LIBRARY_DETAIL_CONTENT_DEPART_ID), new BaseFilter(entity.ORG_ID)).Select(t => t.ID).ToList();
}
enterpriseLib = new T_SK_ENTERPRISE_LIBRARY();
enterpriseLib.ID = entity.ID;
enterpriseLib.ORG_ID = entity.ORG_ID;
enterpriseLib.ENABLE_STATUS = entity.ENABLE_STATUS;
enterpriseLib.MineType = entity.MineType;
enterpriseLib.MINE_NAME = entity.MINE_NAME;
enterpriseLib.AREA_ID = entity.AREA_ID;
enterpriseLib.AREA_NAME = entity.AREA_NAME;
enterpriseLib.RISK_NAME = entity.RISK_NAME;
enterpriseLib.RISK_DESCRIPTION = entity.RISK_DESCRIPTION;
enterpriseLib.TYPE_ID = entity.TYPE_ID;
enterpriseLib.TYPE_NAME = entity.TYPE_NAME;
enterpriseLib.EVALUATE_L = entity.EVALUATE_L;
enterpriseLib.EVALUATE_E = entity.EVALUATE_E;
enterpriseLib.EVALUATE_C = entity.EVALUATE_C;
enterpriseLib.SCOREL_ID = entity.SCOREL_ID;
enterpriseLib.SCOREE_ID = entity.SCOREE_ID;
enterpriseLib.SCOREC_ID = entity.SCOREC_ID;
enterpriseLib.EVALUATE_SCORE = entity.EVALUATE_SCORE;
enterpriseLib.EVALUATE_LEVEL = entity.EVALUATE_LEVEL;
enterpriseLib.DEPARTMENT_TYPE = entity.DEPARTMENT_TYPE;
enterpriseLib.NUM = entity.NUM;
if (details != null && details.Any())
{
foreach (var item in details)
{
T_SK_ENTERPRISE_LIBRARY_DETAIL enterDetail = new T_SK_ENTERPRISE_LIBRARY_DETAIL();
enterDetail.ORG_ID = item.ORG_ID;
enterDetail.ID = item.ID;
enterDetail.ENTERPRISE_LIBRARY_ID = item.BASIC_LIBRARY_ID;
enterDetail.MEASURES_NAME = item.MEASURES_NAME;
enterDetail.NUM = item.NUM;
enterDetail.EMERGENCY = item.EMERGENCY;
libraryDetailList.Add(enterDetail);
}
}
if (contentList != null && contentList.Any())
{
foreach (var item in contentList)
{
T_SK_ENTERPRISE_LIBRARY_DETAIL_CONTENT enterDetail = new T_SK_ENTERPRISE_LIBRARY_DETAIL_CONTENT();
enterDetail.ORG_ID = item.ORG_ID;
enterDetail.ID = item.ID;
enterDetail.ENTERPRISE_LIBRARY_DETAIL_ID = item.BASIC_LIBRARY_DETAIL_ID;
enterDetail.CHECK_CONTENT = item.CHECK_CONTENT;
enterDetail.NUM = item.NUM;
enterDetail.CHECK_CONTENTS_ID = item.CHECK_CONTENTS_ID;
enterDetail.CHECK_BASIC = item.CHECK_BASIC;
enterDetail.CHECK_STANDARD = item.CHECK_STANDARD;
enterDetail.CHECK_CONTENTS_ID = item.CHECK_CONTENTS_ID;
enterDetail.CHECK_BASIC = item.CHECK_BASIC;
libraryContentList.Add(enterDetail);
}
}
if (basicList != null && basicList.Any())
{
foreach (var item in basicList)
{
T_SK_ENTERPRISE_LIBRARY_DETAIL_CONTENT_BASIC enterDetail = new T_SK_ENTERPRISE_LIBRARY_DETAIL_CONTENT_BASIC();
enterDetail.ORG_ID = item.ORG_ID;
enterDetail.ID = item.ID;
enterDetail.ENTERPRISE_LIBRARY_DETAIL_CONTENT_ID = item.BASIC_LIBRARY_DETAIL_CONTENT_ID;
enterDetail.LAW_ID = item.LAW_ID;
libraryBasicList.Add(enterDetail);
}
}
if (hiddenList != null && hiddenList.Any())
{
foreach (var item in hiddenList)
{
T_SK_ENTERPRISE_LIBRARY_DETAIL_CONTENT_HIDDEN enterDetail = new T_SK_ENTERPRISE_LIBRARY_DETAIL_CONTENT_HIDDEN();
enterDetail.ORG_ID = item.ORG_ID;
enterDetail.ID = item.ID;
enterDetail.ENTERPRISE_LIBRARY_DETAIL_CONTENT_ID = item.BASIC_LIBRARY_DETAIL_CONTENT_ID;
enterDetail.RECTIFICATION_MEASURES = item.RECTIFICATION_MEASURES;
enterDetail.NUM = item.NUM;
enterDetail.CHECK_QUESTION_ID = item.CHECK_QUESTION_ID;
enterDetail.HIDDEN_DESCRIPTION = item.HIDDEN_DESCRIPTION;
enterDetail.HIDDEN_LEVEL = item.HIDDEN_LEVEL;
libraryHiddenList.Add(enterDetail);
}
}
}
this.UnifiedCommit(() =>
{
if (deleteBasBasicIds != null && deleteBasBasicIds.Any())
this.BantchDeleteEntityNoCommit<T_SK_BASIC_LIBRARY_DETAIL_CONTENT_BASIC>(deleteBasBasicIds);
if (deleteBasHiddenIds != null && deleteBasHiddenIds.Any())
this.BantchDeleteEntityNoCommit<T_SK_BASIC_LIBRARY_DETAIL_CONTENT_HIDDEN>(deleteBasHiddenIds);
if (deleteBasConttentIds != null && deleteBasConttentIds.Any())
this.BantchDeleteEntityNoCommit<T_SK_BASIC_LIBRARY_DETAIL_CONTENT>(deleteBasConttentIds);
if (deleteBasDetailIds != null && deleteBasDetailIds.Any())
this.BantchDeleteEntityNoCommit<T_SK_BASIC_LIBRARY_DETAIL>(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<T_SK_ENTERPRISE_LIBRARY_DETAIL_CONTENT_HIDDEN>(hiddenIds);
if (postIds != null && postIds.Any())
this.BantchDeleteEntityNoCommit<T_SK_ENTERPRISE_LIBRARY_DETAIL_CONTENT_POST>(postIds);
if (departIds != null && departIds.Any())
this.BantchDeleteEntityNoCommit<T_SK_ENTERPRISE_LIBRARY_DETAIL_CONTENT_DEPART>(departIds);
if (basicIds != null && basicIds.Any())
this.BantchDeleteEntityNoCommit<T_SK_ENTERPRISE_LIBRARY_DETAIL_CONTENT_BASIC>(basicIds);
if (contentIds != null && contentIds.Any())
this.BantchDeleteEntityNoCommit<T_SK_ENTERPRISE_LIBRARY_DETAIL_CONTENT>(contentIds);
if (detailIds != null && detailIds.Any())
this.BantchDeleteEntityNoCommit<T_SK_ENTERPRISE_LIBRARY_DETAIL>(detailIds);
if (libraryPostDetailIds != null && libraryPostDetailIds.Any())
this.BantchDeleteEntityNoCommit<T_SK_ENTERPRISE_LIBRARY_POST_DETAIL>(libraryPostDetailIds);
if (libraryPostIds != null && libraryPostIds.Any())
this.BantchDeleteEntityNoCommit<T_SK_ENTERPRISE_LIBRARY_POST>(libraryPostIds);
if (libraryDepartIds != null && libraryDepartIds.Any())
this.BantchDeleteEntityNoCommit<T_SK_ENTERPRISE_LIBRARY_DEPART>(libraryDepartIds);
if (libraryIds != null && libraryIds.Any())
this.BantchDeleteEntityNoCommit<T_SK_ENTERPRISE_LIBRARY>(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;
});
}
/// <summary>
/// 保存
/// </summary>
/// <param name="entity"></param>
/// <returns></returns>
[HttpPost, Route("FullUpdateNew")]
public JsonActionResult<bool> FullUpdateNew([FromBody] T_SK_BASIC_LIBRARY entity)
{
return SafeExecute<bool>(() =>
{
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_SK_BASIC_LIBRARY_DETAIL>(t => t.BASIC_LIBRARY_ID == entity.ID, new BaseFilter(entity.ORG_ID)).Select(t => t.ID).ToList();
var deleteBasConttentIds = this.GetEntities<T_SK_BASIC_LIBRARY_DETAIL_CONTENT>(t => deleteBasDetailIds.Contains(t.BASIC_LIBRARY_DETAIL_ID), new BaseFilter(entity.ORG_ID)).Select(t => t.ID).ToList();
var deleteBasBasicIds = this.GetEntities<T_SK_BASIC_LIBRARY_DETAIL_CONTENT_BASIC>(t => deleteBasConttentIds.Contains(t.BASIC_LIBRARY_DETAIL_CONTENT_ID), new BaseFilter(entity.ORG_ID)).Select(t => t.ID).ToList();
var deleteBasHiddenIds = this.GetEntities<T_SK_BASIC_LIBRARY_DETAIL_CONTENT_HIDDEN>(t => deleteBasConttentIds.Contains(t.BASIC_LIBRARY_DETAIL_CONTENT_ID), new BaseFilter(entity.ORG_ID)).Select(t => t.ID).ToList();
List<T_SK_BASIC_LIBRARY_DETAIL_CONTENT> contentList = new List<T_SK_BASIC_LIBRARY_DETAIL_CONTENT>();
List<T_SK_BASIC_LIBRARY_DETAIL_CONTENT_HIDDEN> hiddenList = new List<T_SK_BASIC_LIBRARY_DETAIL_CONTENT_HIDDEN>();
List<T_SK_BASIC_LIBRARY_DETAIL_CONTENT_BASIC> basicList = new List<T_SK_BASIC_LIBRARY_DETAIL_CONTENT_BASIC>();
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_FM_USER_PRODUCTION_UNIT_SET>(t =>t.ID == entity.PRODUCTION_UNIT_ID && t.JT_SYNC);
var jtProUnit = db.GetJTProUnits(dbName).FirstOrDefault(t => t.ID == entity.PRODUCTION_UNIT_ID);
if (proUnit == null)
{
if (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;
proUnitNew.JT_SYNC = true;
}
}
else
{
//更新
proUnitNew = proUnit;
proUnitNew.NAME = jtProUnit?.NAME;
proUnitNew.CODE = jtProUnit?.CODE;
}
T_SK_RISK_TYPE riskTypeNew = null;
//查风险类别
var riskType = this.GetEntity<T_SK_RISK_TYPE>(t => t.ID == entity.TYPE_ID && t.JT_SYNC);
var jtRiskType = db.GetJTRiskTypes(dbName).FirstOrDefault(t => t.ID == entity.TYPE_ID);
if (riskType == null)
{
if (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.JT_SYNC = true;
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;
//查LEC
var libL = this.GetEntity<T_SK_SCOREL>(t => t.ID == entity.SCOREL_ID && t.JT_SYNC);
var jtlibL = db.GetJTLibLs(dbName).FirstOrDefault(t => t.ID == entity.SCOREL_ID);
if (libL == null)
{
if (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.JT_SYNC = true;
libLNew.SCORE = jtlibL == null ? 0 : jtlibL.SCORE;
}
}
else
{
//更新
libLNew = libL;
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_SK_SCOREE>(t => t.ID == entity.SCOREE_ID && t.JT_SYNC);
var jtlibE = db.GetJTLibEs(dbName).FirstOrDefault(t => t.ID == entity.SCOREE_ID);
if (libE == null)
{
if (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;
libENew.JT_SYNC = true;
}
}
else
{
//更新
libENew = libE;
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_SK_SCOREC>(t => t.ID == entity.SCOREC_ID && t.JT_SYNC);
var jtlibC = db.GetJTLibCs(dbName).FirstOrDefault(t => t.ID == entity.SCOREC_ID);
if (libC == null)
{
if (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.JT_SYNC = true;
libCNew.SCORE = jtlibC == null ? 0 : jtlibC.SCORE;
}
}
else
{
//更新
libCNew = libC;
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<T_SK_CHECK_CONTENTS> updateCheckConts = new List<T_SK_CHECK_CONTENTS>();
var checkConts = this.GetEntities<T_SK_CHECK_CONTENTS>(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) && t.JT_SYNC).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;
conExsist.JT_SYNC = true;
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;
conExsist.JT_SYNC = true;
updateCheckConts.Add(conExsist);
}
}
}
}
//查检查依据(法律法规)
List<T_LR_LAW> updateCheckLaws = new List<T_LR_LAW>();
List<T_LR_LAW_TYPE> updateCheckLawTypes = new List<T_LR_LAW_TYPE>();
List<T_SK_CHECK_CONTENTS_BASIC> updateCheckBas = new List<T_SK_CHECK_CONTENTS_BASIC>();
var jtcheckContLawTypes = db.GetJTLawTypes(dbName).ToList();
var checkContLawTypes = this.GetEntities<T_LR_LAW_TYPE>(t => true, new BaseFilter(entity.ORG_ID));
var checkContLaws = this.GetEntities<T_LR_LAW>(t => true, new BaseFilter(entity.ORG_ID));
var jtcheckContLaws = db.GetJTLaws(dbName).ToList();
var checkContBas = this.GetEntities<T_SK_CHECK_CONTENTS_BASIC>(t => true, new BaseFilter(entity.ORG_ID));
var jtcheckContBas = db.GetJTBas(dbName).ToList();
if (basicList != null && basicList.Any())
{
var conIds = basicList.Select(t => t.LAW_ID).Distinct().ToList();
//存在,更新
var conExsists = checkContLaws.Where(t => conIds.Contains(t.ID) && t.JT_SYNC).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 && t.JT_SYNC);
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 = entity.ORG_ID;
lawType.ID = jtFirstType.ID;
lawType.NAME = jtFirstType.NAME;
lawType.JT_SYNC = true;
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;
conExsist.JT_SYNC = true;
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;
conExsist.JT_SYNC = true;
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 = entity.ORG_ID;
lawType.ID = jtFirstType.ID;
lawType.NAME = jtFirstType.NAME;
lawType.JT_SYNC = true;
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;
conExsist.JT_SYNC = true;
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;
conExsist.JT_SYNC = true;
updateCheckLaws.Add(conExsist);
}
}
}
}
//检查内容子表保存
var conBasics = basicList.GroupBy(t => new { t.CHECK_CONTENTS_ID, t.LAW_ID }).ToList();
if (conBasics != null && conBasics.Any())
{
foreach (var item in conBasics)
{
var first = checkContBas.FirstOrDefault(t => t.CHECK_CONTENTS_ID == item.Key.CHECK_CONTENTS_ID && t.LAW_ID == item.Key.LAW_ID && t.JT_SYNC);
if (first == null)
{
//写入
var jtFirstType = jtcheckContBas.FirstOrDefault(t => t.CHECK_CONTENTS_ID == item.Key.CHECK_CONTENTS_ID && t.LAW_ID == item.Key.LAW_ID);
if (jtFirstType != null)
{
T_SK_CHECK_CONTENTS_BASIC conBasic = new T_SK_CHECK_CONTENTS_BASIC();
conBasic.CHECK_CONTENTS_ID = item.Key.CHECK_CONTENTS_ID;
conBasic.LAW_ID = item.Key.LAW_ID;
conBasic.ORG_ID = entity.ORG_ID;
conBasic.ID = jtFirstType.ID;
conBasic.JT_SYNC = true;
updateCheckBas.Add(conBasic);
}
}
else
{
//更新
T_SK_CHECK_CONTENTS_BASIC conBasic = new T_SK_CHECK_CONTENTS_BASIC();
conBasic.CHECK_CONTENTS_ID = item.Key.CHECK_CONTENTS_ID;
conBasic.LAW_ID = item.Key.LAW_ID;
conBasic.ORG_ID = entity.ORG_ID;
conBasic.ID = first.ID;
conBasic.JT_SYNC = true;
updateCheckBas.Add(conBasic);
}
}
}
}
//查隐患描述
List<T_SK_CHECK_QUESTION> updateCheckQues = new List<T_SK_CHECK_QUESTION>();
var checkContHids = this.GetEntities<T_SK_CHECK_QUESTION>(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) && t.JT_SYNC).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;
conExsist.JT_SYNC = true;
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;
conExsist.JT_SYNC = true;
updateCheckQues.Add(conExsist);
}
}
}
}
List<Guid> libraryIds = new List<Guid>();
List<Guid> libraryDepartIds = new List<Guid>();
List<Guid> libraryPostIds = new List<Guid>();
List<Guid> libraryPostDetailIds = new List<Guid>();
List<Guid> detailIds = new List<Guid>();
List<Guid> contentIds = new List<Guid>();
List<Guid> departIds = new List<Guid>();
List<Guid> postIds = new List<Guid>();
List<Guid> hiddenIds = new List<Guid>();
List<Guid> basicIds = new List<Guid>();
T_SK_ENTERPRISE_LIBRARY enterpriseLib = null;
List<T_SK_ENTERPRISE_LIBRARY_DETAIL> libraryDetailList = new List<T_SK_ENTERPRISE_LIBRARY_DETAIL>();
List<T_SK_ENTERPRISE_LIBRARY_DETAIL_CONTENT> libraryContentList = new List<T_SK_ENTERPRISE_LIBRARY_DETAIL_CONTENT>();
List<T_SK_ENTERPRISE_LIBRARY_DETAIL_CONTENT_HIDDEN> libraryHiddenList = new List<T_SK_ENTERPRISE_LIBRARY_DETAIL_CONTENT_HIDDEN>();
List<T_SK_ENTERPRISE_LIBRARY_DETAIL_CONTENT_BASIC> libraryBasicList = new List<T_SK_ENTERPRISE_LIBRARY_DETAIL_CONTENT_BASIC>();
//同步企业库
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_SK_ENTERPRISE_LIBRARY>(t => t.ID == entity.ID);
if (library != null)
{
//throw new Exception("企业库已经有重复数据");
libraryIds.Add(library.ID);
libraryPostIds = this.GetEntities<T_SK_ENTERPRISE_LIBRARY_POST>(t => t.ENTERPRISE_LIBRARY_ID == library.ID, new BaseFilter(entity.ORG_ID)).Select(t => t.ID).ToList();
libraryPostDetailIds = this.GetEntities<T_SK_ENTERPRISE_LIBRARY_POST_DETAIL>(t => libraryPostIds.Contains(t.ENTERPRISE_LIBRARY_POST_ID), new BaseFilter(entity.ORG_ID)).Select(t => t.ID).ToList();
libraryDepartIds = this.GetEntities<T_SK_ENTERPRISE_LIBRARY_DEPART>(t => t.ENTERPRISE_LIBRARY_ID == library.ID, new BaseFilter(entity.ORG_ID)).Select(t => t.ID).ToList();
detailIds = this.GetEntities<T_SK_ENTERPRISE_LIBRARY_DETAIL>(t => t.ENTERPRISE_LIBRARY_ID == library.ID, new BaseFilter(entity.ORG_ID)).Select(t => t.ID).ToList();
contentIds = this.GetEntities<T_SK_ENTERPRISE_LIBRARY_DETAIL_CONTENT>(t => detailIds.Contains(t.ENTERPRISE_LIBRARY_DETAIL_ID), new BaseFilter(entity.ORG_ID)).Select(t => t.ID).ToList();
hiddenIds = this.GetEntities<T_SK_ENTERPRISE_LIBRARY_DETAIL_CONTENT_HIDDEN>(t => contentIds.Contains(t.ENTERPRISE_LIBRARY_DETAIL_CONTENT_ID), new BaseFilter(entity.ORG_ID)).Select(t => t.ID).ToList();
basicIds = this.GetEntities<T_SK_ENTERPRISE_LIBRARY_DETAIL_CONTENT_BASIC>(t => contentIds.Contains(t.ENTERPRISE_LIBRARY_DETAIL_CONTENT_ID), new BaseFilter(entity.ORG_ID)).Select(t => t.ID).ToList();
departIds = this.GetEntities<T_SK_ENTERPRISE_LIBRARY_DETAIL_CONTENT_DEPART>(t => contentIds.Contains(t.ENTERPRISE_LIBRARY_DETAIL_CONTENT_ID), new BaseFilter(entity.ORG_ID)).Select(t => t.ID).ToList();
postIds = this.GetEntities<T_SK_ENTERPRISE_LIBRARY_DETAIL_CONTENT_POST>(t => departIds.Contains(t.ENTERPRISE_LIBRARY_DETAIL_CONTENT_DEPART_ID), new BaseFilter(entity.ORG_ID)).Select(t => t.ID).ToList();
}
enterpriseLib = new T_SK_ENTERPRISE_LIBRARY();
enterpriseLib.ID = entity.ID;
enterpriseLib.ORG_ID = entity.ORG_ID;
enterpriseLib.ENABLE_STATUS = entity.ENABLE_STATUS;
enterpriseLib.PRODUCTION_UNIT_ID = entity.PRODUCTION_UNIT_ID;
enterpriseLib.MINE_NAME = entity.MINE_NAME;
enterpriseLib.AREA_ID = entity.AREA_ID;
enterpriseLib.AREA_NAME = entity.AREA_NAME;
enterpriseLib.RISK_NAME = entity.RISK_NAME;
enterpriseLib.RISK_DESCRIPTION = entity.RISK_DESCRIPTION;
enterpriseLib.TYPE_ID = entity.TYPE_ID;
enterpriseLib.TYPE_NAME = entity.TYPE_NAME;
enterpriseLib.EVALUATE_L = entity.EVALUATE_L;
enterpriseLib.EVALUATE_E = entity.EVALUATE_E;
enterpriseLib.EVALUATE_C = entity.EVALUATE_C;
enterpriseLib.SCOREL_ID = entity.SCOREL_ID;
enterpriseLib.SCOREE_ID = entity.SCOREE_ID;
enterpriseLib.SCOREC_ID = entity.SCOREC_ID;
enterpriseLib.EVALUATE_SCORE = entity.EVALUATE_SCORE;
enterpriseLib.EVALUATE_LEVEL = entity.EVALUATE_LEVEL;
enterpriseLib.DEPARTMENT_TYPE = entity.DEPARTMENT_TYPE;
enterpriseLib.NUM = entity.NUM;
if (details != null && details.Any())
{
foreach (var item in details)
{
T_SK_ENTERPRISE_LIBRARY_DETAIL enterDetail = new T_SK_ENTERPRISE_LIBRARY_DETAIL();
enterDetail.ORG_ID = item.ORG_ID;
enterDetail.ID = item.ID;
enterDetail.ENTERPRISE_LIBRARY_ID = item.BASIC_LIBRARY_ID;
enterDetail.MEASURES_NAME = item.MEASURES_NAME;
enterDetail.NUM = item.NUM;
enterDetail.EMERGENCY = item.EMERGENCY;
libraryDetailList.Add(enterDetail);
}
}
if (contentList != null && contentList.Any())
{
foreach (var item in contentList)
{
T_SK_ENTERPRISE_LIBRARY_DETAIL_CONTENT enterDetail = new T_SK_ENTERPRISE_LIBRARY_DETAIL_CONTENT();
enterDetail.ORG_ID = item.ORG_ID;
enterDetail.ID = item.ID;
enterDetail.ENTERPRISE_LIBRARY_DETAIL_ID = item.BASIC_LIBRARY_DETAIL_ID;
enterDetail.CHECK_CONTENT = item.CHECK_CONTENT;
enterDetail.NUM = item.NUM;
enterDetail.CHECK_CONTENTS_ID = item.CHECK_CONTENTS_ID;
enterDetail.CHECK_BASIC = item.CHECK_BASIC;
enterDetail.CHECK_STANDARD = item.CHECK_STANDARD;
enterDetail.CHECK_CONTENTS_ID = item.CHECK_CONTENTS_ID;
enterDetail.CHECK_BASIC = item.CHECK_BASIC;
libraryContentList.Add(enterDetail);
}
}
if (basicList != null && basicList.Any())
{
foreach (var item in basicList)
{
T_SK_ENTERPRISE_LIBRARY_DETAIL_CONTENT_BASIC enterDetail = new T_SK_ENTERPRISE_LIBRARY_DETAIL_CONTENT_BASIC();
enterDetail.ORG_ID = item.ORG_ID;
enterDetail.ID = item.ID;
enterDetail.ENTERPRISE_LIBRARY_DETAIL_CONTENT_ID = item.BASIC_LIBRARY_DETAIL_CONTENT_ID;
enterDetail.LAW_ID = item.LAW_ID;
libraryBasicList.Add(enterDetail);
}
}
if (hiddenList != null && hiddenList.Any())
{
foreach (var item in hiddenList)
{
T_SK_ENTERPRISE_LIBRARY_DETAIL_CONTENT_HIDDEN enterDetail = new T_SK_ENTERPRISE_LIBRARY_DETAIL_CONTENT_HIDDEN();
enterDetail.ORG_ID = item.ORG_ID;
enterDetail.ID = item.ID;
enterDetail.ENTERPRISE_LIBRARY_DETAIL_CONTENT_ID = item.BASIC_LIBRARY_DETAIL_CONTENT_ID;
enterDetail.RECTIFICATION_MEASURES = item.RECTIFICATION_MEASURES;
enterDetail.NUM = item.NUM;
enterDetail.CHECK_QUESTION_ID = item.CHECK_QUESTION_ID;
enterDetail.HIDDEN_DESCRIPTION = item.HIDDEN_DESCRIPTION;
enterDetail.HIDDEN_LEVEL = item.HIDDEN_LEVEL;
libraryHiddenList.Add(enterDetail);
}
}
}
this.UnifiedCommit(() =>
{
if (proUnitNew != null)
UpdateEntityNoCommit(proUnitNew);
if (riskTypeNew != null)
UpdateEntityNoCommit(riskTypeNew);
if (libLNew != null)
UpdateEntityNoCommit(libLNew);
if (libENew != null)
UpdateEntityNoCommit(libENew);
if (libCNew != null)
UpdateEntityNoCommit(libCNew);
if (updateCheckLawTypes != null && updateCheckLawTypes.Any())
BantchSaveEntityNoCommit(updateCheckLawTypes);
if (updateCheckLaws != null && updateCheckLaws.Any())
BantchSaveEntityNoCommit(updateCheckLaws);
if (updateCheckConts != null && updateCheckConts.Any())
BantchSaveEntityNoCommit(updateCheckConts);
if (updateCheckQues != null && updateCheckQues.Any())
BantchSaveEntityNoCommit(updateCheckQues);
if (updateCheckBas != null && updateCheckBas.Any())
BantchSaveEntityNoCommit(updateCheckBas);
if (deleteBasBasicIds != null && deleteBasBasicIds.Any())
this.BantchDeleteEntityNoCommit<T_SK_BASIC_LIBRARY_DETAIL_CONTENT_BASIC>(deleteBasBasicIds);
if (deleteBasHiddenIds != null && deleteBasHiddenIds.Any())
this.BantchDeleteEntityNoCommit<T_SK_BASIC_LIBRARY_DETAIL_CONTENT_HIDDEN>(deleteBasHiddenIds);
if (deleteBasConttentIds != null && deleteBasConttentIds.Any())
this.BantchDeleteEntityNoCommit<T_SK_BASIC_LIBRARY_DETAIL_CONTENT>(deleteBasConttentIds);
if (deleteBasDetailIds != null && deleteBasDetailIds.Any())
this.BantchDeleteEntityNoCommit<T_SK_BASIC_LIBRARY_DETAIL>(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<T_SK_ENTERPRISE_LIBRARY_DETAIL_CONTENT_HIDDEN>(hiddenIds);
if (postIds != null && postIds.Any())
this.BantchDeleteEntityNoCommit<T_SK_ENTERPRISE_LIBRARY_DETAIL_CONTENT_POST>(postIds);
if (departIds != null && departIds.Any())
this.BantchDeleteEntityNoCommit<T_SK_ENTERPRISE_LIBRARY_DETAIL_CONTENT_DEPART>(departIds);
if (basicIds != null && basicIds.Any())
this.BantchDeleteEntityNoCommit<T_SK_ENTERPRISE_LIBRARY_DETAIL_CONTENT_BASIC>(basicIds);
if (contentIds != null && contentIds.Any())
this.BantchDeleteEntityNoCommit<T_SK_ENTERPRISE_LIBRARY_DETAIL_CONTENT>(contentIds);
if (detailIds != null && detailIds.Any())
this.BantchDeleteEntityNoCommit<T_SK_ENTERPRISE_LIBRARY_DETAIL>(detailIds);
if (libraryPostDetailIds != null && libraryPostDetailIds.Any())
this.BantchDeleteEntityNoCommit<T_SK_ENTERPRISE_LIBRARY_POST_DETAIL>(libraryPostDetailIds);
if (libraryPostIds != null && libraryPostIds.Any())
this.BantchDeleteEntityNoCommit<T_SK_ENTERPRISE_LIBRARY_POST>(libraryPostIds);
if (libraryDepartIds != null && libraryDepartIds.Any())
this.BantchDeleteEntityNoCommit<T_SK_ENTERPRISE_LIBRARY_DEPART>(libraryDepartIds);
if (libraryIds != null && libraryIds.Any())
this.BantchDeleteEntityNoCommit<T_SK_ENTERPRISE_LIBRARY>(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;
});
}
/// <summary>
/// 排序分页查询数据
/// </summary>
/// <param name="pageFilter">分页过滤实体</param>
/// <returns></returns>
[HttpPost, Route("SKOrderPaged")]
public PagedActionResult<T_SK_BASIC_LIBRARY> SKOrderPaged([FromBody] KeywordPageFilter pageFilter)
{
var mintype = pageFilter.FilterGroup.Rules.FirstOrDefault(t => t.Field == "MineType");
if (mintype != null && mintype.Value.ToString() == "0")
pageFilter.FilterGroup.Rules.Remove(mintype);
pageFilter.Include.Add("Nav_Details");
pageFilter.Include.Add("Nav_Details.Nav_DetailContents.Nav_Contents");
pageFilter.Include.Add("Nav_Details.Nav_DetailContents.Nav_DetailHiddens.Nav_Question");
pageFilter.Include.Add("Nav_Details.Nav_DetailContents.Nav_DetailBasics.Nav_Law");
pageFilter.Include.Add("Nav_SCOREL");
pageFilter.Include.Add("Nav_SCOREE");
pageFilter.Include.Add("Nav_SCOREC");
pageFilter.Include.Add("Nav_Type");
pageFilter.Include.Add("Nav_ProductionUnit");
pageFilter.SelectField.Add("Nav_Details.NUM");
pageFilter.SelectField.Add("Nav_Details.MEASURES_NAME");
var result = WitOrderPaged(null, pageFilter);
if (result != null && result.Data != null && result.Data.Any())
{
foreach (var item in result.Data)
{
//管控措施
var detailStr = new List<string>();
if (item.Nav_Details != null && item.Nav_Details.Any())
{
foreach (var item2 in item.Nav_Details.OrderBy(t => t.NUM))
{
if (item2 != null && !string.IsNullOrEmpty(item2.MEASURES_NAME))
{
var temp = item2.NUM + "、" + item2.MEASURES_NAME + Environment.NewLine;
item.MINE_NAME = item.MINE_NAME + temp;
item.MEASURE = item.MEASURE + temp;
}
}
}
}
result.Data.OrderBy(t => t.PRODUCTION_UNIT_ID).ThenBy(m => m.EVALUATE_LEVEL);
}
return result;
}
/// <summary>
/// 排序查询所有数据
/// </summary>
/// <param name="filter">过滤实体</param>
/// <returns></returns>
[HttpPost, Route("SKOrderEntities")]
public JsonActionResult<IEnumerable<T_SK_BASIC_LIBRARY>> SKOrderEntities([FromBody] KeywordFilter filter)
{
var result = WitOrderEntities(null, filter);
if (result != null && result.Data != null)
{
if (result.Data != null && result.Data.Any())
{
foreach (var item in result.Data)
{
var detailStr = new List<string>();
var contentStr = new List<string>();
var basicStr = new List<string>();
var standardStr = new List<string>();
var scripStr = new List<string>();
var levelStr = new List<string>();
var measureStr = new List<string>();
if (item.Nav_Details != null && item.Nav_Details.Any())
{
foreach (var item2 in item.Nav_Details.OrderBy(t => t.NUM))
{
//var i = 1;
if (item2 != null && !string.IsNullOrEmpty(item2.MEASURES_NAME))
{
detailStr.Add(item2.MEASURES_NAME);
var temp = item2.NUM + "、" + item2.MEASURES_NAME + Environment.NewLine;
item.MINE_NAME = item.MINE_NAME + temp;
item.MEASURE = item.MEASURE + temp;
//i++;
}
if (item2 != null && item2.Nav_DetailContents != null && item2.Nav_DetailContents.Any())
{
foreach (var item3 in item2.Nav_DetailContents.OrderBy(t => t.NUM))
{
if (item3 != null)
{
if (item3.Nav_Contents != null && !string.IsNullOrEmpty(item3.Nav_Contents.CHECKCONTENT))
{
contentStr.Add(item3.Nav_Contents.CHECKCONTENT);
}
if (!string.IsNullOrEmpty(item3.CHECK_STANDARD))
{
standardStr.Add(item3.CHECK_STANDARD);
}
if (item3.Nav_DetailBasics != null && item3.Nav_DetailBasics.Any())
{
foreach (var item4 in item3.Nav_DetailBasics)
{
if (item4 != null && item4.Nav_Law != null && !string.IsNullOrEmpty(item4.Nav_Law.NAME))
{
basicStr.Add(item4.Nav_Law.NAME);
}
}
}
if (item3.Nav_DetailHiddens != null && item3.Nav_DetailHiddens.Any())
{
foreach (var item4 in item3.Nav_DetailHiddens.OrderBy(t => t.NUM))
{
if (item4 != null)
{
if (item4.Nav_Question != null && !string.IsNullOrEmpty(item4.Nav_Question.DESCREPTION))
{
scripStr.Add(item4.Nav_Question.DESCREPTION);
}
levelStr.Add(item4.HIDDEN_LEVEL.GetDescription());
if (!string.IsNullOrEmpty(item4.RECTIFICATION_MEASURES))
{
measureStr.Add(item4.RECTIFICATION_MEASURES);
}
}
}
}
}
}
}
}
}
//if (detailStr.Any())
//{
// detailStr = detailStr.Distinct().ToList();
// var i = 1;
// foreach (var item2 in detailStr)
// {
// if (!string.IsNullOrEmpty(item2))
// {
// var temp = i + "、" + item2 + "\r\n";
// item.MEASURE = item.MEASURE + temp;
// i++;
// }
// }
//}
if (contentStr.Any())
{
contentStr = contentStr.Distinct().ToList();
var i = 1;
foreach (var item2 in contentStr)
{
if (!string.IsNullOrEmpty(item2))
{
var temp = i + "、" + item2 + "\r\n";
item.CHECKCONTENTS = item.CHECKCONTENTS + temp;
i++;
}
}
}
if (basicStr.Any())
{
basicStr = basicStr.Distinct().ToList();
var i = 1;
foreach (var item2 in basicStr)
{
if (!string.IsNullOrEmpty(item2))
{
var temp = i + "、" + item2 + "\r\n";
item.CHECKBASICS = item.CHECKBASICS + temp;
i++;
}
}
}
if (standardStr.Any())
{
standardStr = standardStr.Distinct().ToList();
var i = 1;
foreach (var item2 in standardStr)
{
if (!string.IsNullOrEmpty(item2))
{
var temp = i + "、" + item2 + "\r\n";
item.CHECKSTANDARDS = item.CHECKSTANDARDS + temp;
i++;
}
}
}
if (scripStr.Any())
{
scripStr = scripStr.Distinct().ToList();
var i = 1;
foreach (var item2 in scripStr)
{
if (!string.IsNullOrEmpty(item2))
{
var temp = i + "、" + item2 + "\r\n";
item.HIDDENSCRIPTION = item.HIDDENSCRIPTION + temp;
i++;
}
}
}
if (levelStr.Any())
{
levelStr = levelStr.Distinct().ToList();
var i = 1;
foreach (var item2 in levelStr)
{
if (!string.IsNullOrEmpty(item2))
{
var temp = i + "、" + item2 + "\r\n";
item.HIDDENLEVEL = item.HIDDENLEVEL + temp;
i++;
}
}
}
if (measureStr.Any())
{
measureStr = measureStr.Distinct().ToList();
var i = 1;
foreach (var item2 in measureStr)
{
if (!string.IsNullOrEmpty(item2))
{
var temp = i + "、" + item2 + "\r\n";
item.RECIFYMEASURE = item.RECIFYMEASURE + temp;
i++;
}
}
}
}
result.Data.OrderBy(t => t.AREA_ID);
}
}
return result;
}
/// <summary>
/// 获得单条实体数据
/// </summary>
/// <param name="filter">过滤实体</param>
/// <returns></returns>
[HttpPost, Route("SKGetOld")]
public JsonActionResult<T_SK_BASIC_LIBRARY> SKGetOld([FromBody] KeywordFilter filter)
{
var result = WitEntity(null, filter);
if (result != null && result.Data != null)
{
if (result.Data.Nav_Details != null && result.Data.Nav_Details.Any())
{
foreach (var item in result.Data.Nav_Details)
{
if (item.Nav_DetailContents != null && item.Nav_DetailContents.Any())
{
item.Nav_DetailContents.ForEach(t => t.Nav_DetailHiddens.OrderBy(m => m.NUM));
item.Nav_DetailContents.OrderBy(t => t.NUM);
}
}
result.Data.Nav_Details.OrderBy(t => t.NUM);
}
}
return result;
}
/// <summary>
/// 获得单条实体数据
/// </summary>
/// <param name="filter">过滤实体</param>
/// <returns></returns>
[HttpPost, Route("SKGet")]
public JsonActionResult<T_SK_BASIC_LIBRARY> SKGet([FromBody] KeywordFilter filter)
{
return SafeExecute(() =>
{
var result = new T_SK_BASIC_LIBRARY();
var id = filter.FilterGroup.Rules.FirstOrDefault(t => t.Field == "ID").Value.ToString();
filter.IgnoreDataRule = true;
if (!string.IsNullOrEmpty(id))
{
result = this.GetEntity<T_SK_BASIC_LIBRARY>(id, new string[] { "Nav_Type", "Nav_Area","Nav_RiskName",
"Nav_SCOREL","Nav_SCOREE","Nav_SCOREC","Nav_ProductionUnit"});
}
if (result != null)
{
var details = this.GetEntities<T_SK_BASIC_LIBRARY_DETAIL>(t => t.BASIC_LIBRARY_ID == result.ID, new BaseFilter(filter.OrgId));
if (details.Any())
{
var detailIds = details.Select(t => t.ID).ToList();
var contents = this.GetEntities<T_SK_BASIC_LIBRARY_DETAIL_CONTENT>(t => detailIds.Contains(t.BASIC_LIBRARY_DETAIL_ID), new BaseFilter(filter.OrgId), "Nav_Contents");
var contentIds = contents.Select(t => t.ID).ToList();
var contenthiddens = this.GetEntities<T_SK_BASIC_LIBRARY_DETAIL_CONTENT_HIDDEN>(t => contentIds.Contains(t.BASIC_LIBRARY_DETAIL_CONTENT_ID), new BaseFilter(filter.OrgId), "Nav_Question");
var contentbasics = this.GetEntities<T_SK_BASIC_LIBRARY_DETAIL_CONTENT_BASIC>(t => contentIds.Contains(t.BASIC_LIBRARY_DETAIL_CONTENT_ID), new BaseFilter(filter.OrgId), "Nav_Law");
foreach (var detail in details)
{
var contentTemps = contents.Where(t => t.BASIC_LIBRARY_DETAIL_ID == detail.ID).ToList();
detail.Nav_DetailContents = contentTemps.OrderBy(t => t.NUM).ToList();
foreach (var content in detail.Nav_DetailContents)
{
var hiddenTemps = contenthiddens.Where(t => t.BASIC_LIBRARY_DETAIL_CONTENT_ID == content.ID).ToList();
content.Nav_DetailHiddens = hiddenTemps.OrderBy(t => t.NUM).ToList();
var basicTemps = contentbasics.Where(t => t.BASIC_LIBRARY_DETAIL_CONTENT_ID == content.ID).ToList();
content.Nav_DetailBasics = basicTemps.ToList();
}
}
}
result.Nav_Details = details.OrderBy(t => t.NUM).ToList();
}
return result;
});
}
/// <summary>
/// 获取集团基础库
/// </summary>
/// <param name="filter">过滤实体</param>
/// <returns></returns>
[HttpPost, Route("JTOrderEntities")]
public JsonActionResult<IEnumerable<T_SK_BASIC_LIBRARY>> JTOrderEntities([FromBody] KeywordFilter filter)
{
var result = new JsonActionResult<IEnumerable<T_SK_BASIC_LIBRARY>>();
string strConn = OPTenantDBConnService.GetConnByORGID(Guid.Parse("00300000-0000-0000-0000-000000000000"));
string dbName = "mh_jy_head";
if (!string.IsNullOrEmpty(strConn))
{
// 找左边字符串结束位置
int start = strConn.IndexOf("Database=");
if (start != -1) {
start += "Database=".Length;
}
// 找右边字符串开始位置
int end = strConn.IndexOf(";uid", start);
if (end != -1)
{
// 截取中间
dbName = strConn.Substring(start, end - start);
}
}
// 2. 传入构造函数
using var db = new CrossDbContext(strConn);
// 3. 要跨哪些库?自己定义,指定总部
//var dbNames = new List<string>();
////{
//// "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<string>();
var contentStr = new List<string>();
var basicStr = new List<string>();
var standardStr = new List<string>();
var scripStr = new List<string>();
var levelStr = new List<string>();
var measureStr = new List<string>();
if (item.Nav_Details != null && item.Nav_Details.Any())
{
foreach (var item2 in item.Nav_Details.OrderBy(t => t.NUM))
{
//var i = 1;
if (item2 != null && !string.IsNullOrEmpty(item2.MEASURES_NAME))
{
detailStr.Add(item2.MEASURES_NAME);
var temp = item2.NUM + "、" + item2.MEASURES_NAME + Environment.NewLine;
item.MINE_NAME = item.MINE_NAME + temp;
item.MEASURE = item.MEASURE + temp;
//i++;
}
if (item2 != null && item2.Nav_DetailContents != null && item2.Nav_DetailContents.Any())
{
foreach (var item3 in item2.Nav_DetailContents.OrderBy(t => t.NUM))
{
if (item3 != null)
{
if (item3.Nav_Contents != null && !string.IsNullOrEmpty(item3.Nav_Contents.CHECKCONTENT))
{
contentStr.Add(item3.Nav_Contents.CHECKCONTENT);
}
if (!string.IsNullOrEmpty(item3.CHECK_STANDARD))
{
standardStr.Add(item3.CHECK_STANDARD);
}
if (item3.Nav_DetailBasics != null && item3.Nav_DetailBasics.Any())
{
foreach (var item4 in item3.Nav_DetailBasics)
{
if (item4 != null && item4.Nav_Law != null && !string.IsNullOrEmpty(item4.Nav_Law.NAME))
{
basicStr.Add(item4.Nav_Law.NAME);
}
}
}
if (item3.Nav_DetailHiddens != null && item3.Nav_DetailHiddens.Any())
{
foreach (var item4 in item3.Nav_DetailHiddens.OrderBy(t => t.NUM))
{
if (item4 != null)
{
if (item4.Nav_Question != null && !string.IsNullOrEmpty(item4.Nav_Question.DESCREPTION))
{
scripStr.Add(item4.Nav_Question.DESCREPTION);
}
levelStr.Add(item4.HIDDEN_LEVEL.GetDescription());
if (!string.IsNullOrEmpty(item4.RECTIFICATION_MEASURES))
{
measureStr.Add(item4.RECTIFICATION_MEASURES);
}
}
}
}
}
}
}
}
}
//if (detailStr.Any())
//{
// detailStr = detailStr.Distinct().ToList();
// var i = 1;
// foreach (var item2 in detailStr)
// {
// if (!string.IsNullOrEmpty(item2))
// {
// var temp = i + "、" + item2 + "\r\n";
// item.MEASURE = item.MEASURE + temp;
// i++;
// }
// }
//}
if (contentStr.Any())
{
contentStr = contentStr.Distinct().ToList();
var i = 1;
foreach (var item2 in contentStr)
{
if (!string.IsNullOrEmpty(item2))
{
var temp = i + "、" + item2 + "\r\n";
item.CHECKCONTENTS = item.CHECKCONTENTS + temp;
i++;
}
}
}
if (basicStr.Any())
{
basicStr = basicStr.Distinct().ToList();
var i = 1;
foreach (var item2 in basicStr)
{
if (!string.IsNullOrEmpty(item2))
{
var temp = i + "、" + item2 + "\r\n";
item.CHECKBASICS = item.CHECKBASICS + temp;
i++;
}
}
}
if (standardStr.Any())
{
standardStr = standardStr.Distinct().ToList();
var i = 1;
foreach (var item2 in standardStr)
{
if (!string.IsNullOrEmpty(item2))
{
var temp = i + "、" + item2 + "\r\n";
item.CHECKSTANDARDS = item.CHECKSTANDARDS + temp;
i++;
}
}
}
if (scripStr.Any())
{
scripStr = scripStr.Distinct().ToList();
var i = 1;
foreach (var item2 in scripStr)
{
if (!string.IsNullOrEmpty(item2))
{
var temp = i + "、" + item2 + "\r\n";
item.HIDDENSCRIPTION = item.HIDDENSCRIPTION + temp;
i++;
}
}
}
if (levelStr.Any())
{
levelStr = levelStr.Distinct().ToList();
var i = 1;
foreach (var item2 in levelStr)
{
if (!string.IsNullOrEmpty(item2))
{
var temp = i + "、" + item2 + "\r\n";
item.HIDDENLEVEL = item.HIDDENLEVEL + temp;
i++;
}
}
}
if (measureStr.Any())
{
measureStr = measureStr.Distinct().ToList();
var i = 1;
foreach (var item2 in measureStr)
{
if (!string.IsNullOrEmpty(item2))
{
var temp = i + "、" + item2 + "\r\n";
item.RECIFYMEASURE = item.RECIFYMEASURE + temp;
i++;
}
}
}
}
result.Data.OrderBy(t => t.AREA_ID);
}
result.TotalCount = result.Data.Count();
return result;
}
/// <summary>
/// 从集团导入
/// </summary>
/// <param name="entity"></param>
/// <returns></returns>
[HttpPost, Route("ImportFormJT")]
public JsonActionResult<bool> ImportFormJT([FromBody] KeywordFilter filter)
{
return SafeExecute<bool>(() =>
{
if (string.IsNullOrEmpty(filter.Keyword))
throw new Exception("请先勾选要同步的数据");
var ids = new List<Guid>();
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_SK_BASIC_LIBRARY>(t => ids.Contains(t.ID), new BaseFilter(orgId));
var deleteBasIds = libs.Select(t => t.ID).ToList();
var deleteBasDetailIds = this.GetEntities<T_SK_BASIC_LIBRARY_DETAIL>(t => deleteBasIds.Contains(t.BASIC_LIBRARY_ID), new BaseFilter(orgId)).Select(t => t.ID).ToList();
var deleteBasConttentIds = this.GetEntities<T_SK_BASIC_LIBRARY_DETAIL_CONTENT>(t => deleteBasDetailIds.Contains(t.BASIC_LIBRARY_DETAIL_ID), new BaseFilter(orgId)).Select(t => t.ID).ToList();
var deleteBasBasicIds = this.GetEntities<T_SK_BASIC_LIBRARY_DETAIL_CONTENT_BASIC>(t => deleteBasConttentIds.Contains(t.BASIC_LIBRARY_DETAIL_CONTENT_ID), new BaseFilter(orgId)).Select(t => t.ID).ToList();
var deleteBasHiddenIds = this.GetEntities<T_SK_BASIC_LIBRARY_DETAIL_CONTENT_HIDDEN>(t => deleteBasConttentIds.Contains(t.BASIC_LIBRARY_DETAIL_CONTENT_ID), new BaseFilter(orgId)).Select(t => t.ID).ToList();
//集团数据
var jtLibs = db.QueryCrossDatabases(dbName).Where(t=>ids.Contains(t.ID)).ToList();
//查生产单元表
List<T_FM_USER_PRODUCTION_UNIT_SET> proUnitList = new List<T_FM_USER_PRODUCTION_UNIT_SET>();
var proUnitIds = jtLibs.Where(m=> m.PRODUCTION_UNIT_ID != null).Select(t => t.PRODUCTION_UNIT_ID).Distinct().ToList();
var proUnits = this.GetEntities<T_FM_USER_PRODUCTION_UNIT_SET>(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 && t.JT_SYNC);
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;
set.JT_SYNC = true;
proUnitList.Add(set);
}
}
}
//查风险类别
List<T_SK_RISK_TYPE> riskTypeList = new List<T_SK_RISK_TYPE>();
var riskTypeIds = jtLibs.Where(m => m.TYPE_ID != null).Select(t => t.TYPE_ID).Distinct().ToList();
var riskTypes = this.GetEntities<T_SK_RISK_TYPE>(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 && t.JT_SYNC);
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;
riskTypeNew.JT_SYNC = true;
riskTypeList.Add(riskTypeNew);
}
}
}
//查LEC
List<T_SK_SCOREL> libLList = new List<T_SK_SCOREL>();
var libLIds = jtLibs.Where(m => m.SCOREL_ID != null).Select(t => t.SCOREL_ID).Distinct().ToList();
var libLs = this.GetEntities<T_SK_SCOREL>(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 && t.JT_SYNC);
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.JT_SYNC = true;
libLNew.SCORE = jtExsist == null ? 0 : jtExsist.SCORE;
libLList.Add(libLNew);
}
}
}
//查LEC
List<T_SK_SCOREE> libEList = new List<T_SK_SCOREE>();
var libEIds = jtLibs.Where(m => m.SCOREE_ID != null).Select(t => t.SCOREE_ID).Distinct().ToList();
var libEs = this.GetEntities<T_SK_SCOREE>(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 && t.JT_SYNC);
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.JT_SYNC = true;
libENew.SCORE = jtExsist == null ? 0 : jtExsist.SCORE;
libEList.Add(libENew);
}
}
}
//查LEC
List<T_SK_SCOREC> libCList = new List<T_SK_SCOREC>();
var libCIds = jtLibs.Where(m => m.SCOREC_ID != null).Select(t => t.SCOREC_ID).Distinct().ToList();
var libCs = this.GetEntities<T_SK_SCOREC>(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 && t.JT_SYNC);
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;
libCNew.JT_SYNC = true;
libCList.Add(libCNew);
}
}
}
//重新写入选中的集团数据
List<T_SK_BASIC_LIBRARY> libList = new List<T_SK_BASIC_LIBRARY>();
List<T_SK_BASIC_LIBRARY_DETAIL> detailList = new List<T_SK_BASIC_LIBRARY_DETAIL>();
List<T_SK_BASIC_LIBRARY_DETAIL_CONTENT> contentList = new List<T_SK_BASIC_LIBRARY_DETAIL_CONTENT>();
List<T_SK_BASIC_LIBRARY_DETAIL_CONTENT_HIDDEN> hiddenList = new List<T_SK_BASIC_LIBRARY_DETAIL_CONTENT_HIDDEN>();
List<T_SK_BASIC_LIBRARY_DETAIL_CONTENT_BASIC> basicList = new List<T_SK_BASIC_LIBRARY_DETAIL_CONTENT_BASIC>();
if (jtLibs != null && jtLibs.Any())
{
foreach (var lib in jtLibs)
{
T_SK_BASIC_LIBRARY libNew = new T_SK_BASIC_LIBRARY();
libNew.ORG_ID = orgId;
libNew.ID = lib.ID;
libNew.PRODUCTION_UNIT_ID = lib.PRODUCTION_UNIT_ID;
libNew.RISK_NAME = lib.RISK_NAME;
libNew.RISK_DESCRIPTION = lib.RISK_DESCRIPTION;
libNew.TYPE_ID = lib.TYPE_ID;
libNew.SCOREC_ID = lib.SCOREC_ID;
libNew.SCOREE_ID = lib.SCOREE_ID;
libNew.SCOREL_ID = lib.SCOREL_ID;
libNew.EVALUATE_SCORE = lib.EVALUATE_SCORE;
libNew.EVALUATE_LEVEL = lib.EVALUATE_LEVEL;
libNew.DEPARTMENT_TYPE = lib.DEPARTMENT_TYPE;
libNew.EMERGENCY = lib.EMERGENCY;
libNew.ENABLE_STATUS = lib.ENABLE_STATUS;
libList.Add(libNew);
if (lib.Nav_Details != null && lib.Nav_Details.Any())
{
foreach (var item in lib.Nav_Details)
{
T_SK_BASIC_LIBRARY_DETAIL de = new T_SK_BASIC_LIBRARY_DETAIL();
de.ORG_ID = orgId;
de.ID = item.ID;
de.BASIC_LIBRARY_ID = libNew.ID;
de.MEASURES_NAME = item.MEASURES_NAME;
de.EMERGENCY = item.EMERGENCY;
de.NUM = item.NUM;
de.ROW_NO = item.ROW_NO;
detailList.Add(de);
if (item.Nav_DetailContents != null && item.Nav_DetailContents.Any())
{
foreach (var item2 in item.Nav_DetailContents)
{
T_SK_BASIC_LIBRARY_DETAIL_CONTENT con = new T_SK_BASIC_LIBRARY_DETAIL_CONTENT();
con.ORG_ID = orgId;
con.ID = item2.ID;
con.BASIC_LIBRARY_DETAIL_ID = de.ID;
con.CHECK_CONTENTS_ID = item2.CHECK_CONTENTS_ID;
con.CHECK_CONTENT = item2.CHECK_CONTENT;
con.CHECK_STANDARD = item2.CHECK_STANDARD;
con.NUM = item2.NUM;
con.ROW_NO = item2.ROW_NO;
contentList.Add(con);
if (item2.Nav_DetailHiddens != null && item2.Nav_DetailHiddens.Any())
{
foreach (var item3 in item2.Nav_DetailHiddens)
{
T_SK_BASIC_LIBRARY_DETAIL_CONTENT_HIDDEN hid = new T_SK_BASIC_LIBRARY_DETAIL_CONTENT_HIDDEN();
hid.ORG_ID = orgId;
hid.ID = item3.ID;
hid.BASIC_LIBRARY_DETAIL_CONTENT_ID = con.ID;
hid.CHECK_QUESTION_ID = item3.CHECK_QUESTION_ID;
hid.HIDDEN_DESCRIPTION = item3.HIDDEN_DESCRIPTION;
hid.HIDDEN_LEVEL = item3.HIDDEN_LEVEL;
hid.RECTIFICATION_MEASURES = item3.RECTIFICATION_MEASURES;
hid.NUM = item3.NUM;
hid.ROW_NO = item3.ROW_NO;
hid.CHECK_CONTENTS_ID = hid.CHECK_CONTENTS_ID;
hiddenList.Add(hid);
}
}
if (item2.Nav_DetailBasics != null && item2.Nav_DetailBasics.Any())
{
foreach (var item3 in item2.Nav_DetailBasics)
{
T_SK_BASIC_LIBRARY_DETAIL_CONTENT_BASIC bas = new T_SK_BASIC_LIBRARY_DETAIL_CONTENT_BASIC();
bas.ORG_ID = orgId;
bas.ID = item3.ID;
bas.BASIC_LIBRARY_DETAIL_CONTENT_ID = con.ID;
bas.LAW_ID = item3.LAW_ID;
bas.CHECK_CONTENTS_ID = item3.CHECK_CONTENTS_ID;
basicList.Add(bas);
}
}
}
}
}
}
}
}
//查检查内容
List<T_SK_CHECK_CONTENTS> updateCheckConts = new List<T_SK_CHECK_CONTENTS>();
var checkConts = this.GetEntities<T_SK_CHECK_CONTENTS>(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) && t.JT_SYNC).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;
conExsist.JT_SYNC = true;
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;
conExsist.JT_SYNC = true;
updateCheckConts.Add(conExsist);
}
}
}
}
//查检查依据(法律法规)
List<T_LR_LAW> updateCheckLaws = new List<T_LR_LAW>();
List<T_LR_LAW_TYPE> updateCheckLawTypes = new List<T_LR_LAW_TYPE>();
List<T_SK_CHECK_CONTENTS_BASIC> updateCheckBas = new List<T_SK_CHECK_CONTENTS_BASIC>();
var jtcheckContLawTypes = db.GetJTLawTypes(dbName).ToList();
var checkContLawTypes = this.GetEntities<T_LR_LAW_TYPE>(t => true, new BaseFilter(orgId));
var checkContLaws = this.GetEntities<T_LR_LAW>(t => true, new BaseFilter(orgId));
var jtcheckContLaws = db.GetJTLaws(dbName).ToList();
var checkContBas = this.GetEntities<T_SK_CHECK_CONTENTS_BASIC>(t => true, new BaseFilter(orgId));
var jtcheckContBas = db.GetJTBas(dbName).ToList();
if (basicList != null && basicList.Any())
{
var conIds = basicList.Select(t => t.LAW_ID).Distinct().ToList();
//存在,更新
var conExsists = checkContLaws.Where(t => conIds.Contains(t.ID) && t.JT_SYNC).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 && t.JT_SYNC);
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;
lawType.JT_SYNC = true;
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;
conExsist.JT_SYNC = true;
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;
conExsist.JT_SYNC = true;
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;
lawType.JT_SYNC = true;
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;
conExsist.JT_SYNC = true;
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;
conExsist.JT_SYNC = true;
updateCheckLaws.Add(conExsist);
}
}
}
}
//检查内容子表保存
var conBasics = basicList.GroupBy(t => new { t.CHECK_CONTENTS_ID, t.LAW_ID }).ToList();
if (conBasics != null && conBasics.Any())
{
foreach (var item in conBasics)
{
var first = checkContBas.FirstOrDefault(t => t.CHECK_CONTENTS_ID == item.Key.CHECK_CONTENTS_ID && t.LAW_ID == item.Key.LAW_ID && t.JT_SYNC);
if (first == null)
{
//写入
var jtFirstType = jtcheckContBas.FirstOrDefault(t => t.CHECK_CONTENTS_ID == item.Key.CHECK_CONTENTS_ID && t.LAW_ID == item.Key.LAW_ID);
if (jtFirstType != null)
{
T_SK_CHECK_CONTENTS_BASIC conBasic = new T_SK_CHECK_CONTENTS_BASIC();
conBasic.CHECK_CONTENTS_ID = item.Key.CHECK_CONTENTS_ID;
conBasic.LAW_ID = item.Key.LAW_ID;
conBasic.ORG_ID = orgId;
conBasic.ID = jtFirstType.ID;
conBasic.JT_SYNC = true;
updateCheckBas.Add(conBasic);
}
}
else
{
//更新
T_SK_CHECK_CONTENTS_BASIC conBasic = new T_SK_CHECK_CONTENTS_BASIC();
conBasic.CHECK_CONTENTS_ID = item.Key.CHECK_CONTENTS_ID;
conBasic.LAW_ID = item.Key.LAW_ID;
conBasic.ORG_ID = orgId;
conBasic.ID = first.ID;
conBasic.JT_SYNC = true;
updateCheckBas.Add(conBasic);
}
}
}
}
//查隐患描述
List<T_SK_CHECK_QUESTION> updateCheckQues = new List<T_SK_CHECK_QUESTION>();
var checkContHids = this.GetEntities<T_SK_CHECK_QUESTION>(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) && t.JT_SYNC).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;
conExsist.JT_SYNC = true;
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;
conExsist.JT_SYNC = true;
updateCheckQues.Add(conExsist);
}
}
}
}
this.UnifiedCommit(() =>
{
if (proUnitList != null && proUnitList.Any())
BantchSaveEntityNoCommit(proUnitList);
if (riskTypeList != null && riskTypeList.Any())
BantchSaveEntityNoCommit(riskTypeList);
if (libLList != null && libLList.Any())
BantchSaveEntityNoCommit(libLList);
if (libEList != null && libEList.Any())
BantchSaveEntityNoCommit(libEList);
if (libCList != null && libCList.Any())
BantchSaveEntityNoCommit(libCList);
if (updateCheckLawTypes != null && updateCheckLawTypes.Any())
BantchSaveEntityNoCommit(updateCheckLawTypes);
if (updateCheckLaws != null && updateCheckLaws.Any())
BantchSaveEntityNoCommit(updateCheckLaws);
if (updateCheckConts != null && updateCheckConts.Any())
BantchSaveEntityNoCommit(updateCheckConts);
if (updateCheckQues != null && updateCheckQues.Any())
BantchSaveEntityNoCommit(updateCheckQues);
if (updateCheckBas != null && updateCheckBas.Any())
BantchSaveEntityNoCommit(updateCheckBas);
if (deleteBasBasicIds != null && deleteBasBasicIds.Any())
this.BantchDeleteEntityNoCommit<T_SK_BASIC_LIBRARY_DETAIL_CONTENT_BASIC>(deleteBasBasicIds);
if (deleteBasHiddenIds != null && deleteBasHiddenIds.Any())
this.BantchDeleteEntityNoCommit<T_SK_BASIC_LIBRARY_DETAIL_CONTENT_HIDDEN>(deleteBasHiddenIds);
if (deleteBasConttentIds != null && deleteBasConttentIds.Any())
this.BantchDeleteEntityNoCommit<T_SK_BASIC_LIBRARY_DETAIL_CONTENT>(deleteBasConttentIds);
if (deleteBasDetailIds != null && deleteBasDetailIds.Any())
this.BantchDeleteEntityNoCommit<T_SK_BASIC_LIBRARY_DETAIL>(deleteBasDetailIds);
if (deleteBasIds != null && deleteBasIds.Any())
this.BantchDeleteEntityNoCommit<T_SK_BASIC_LIBRARY>(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;
});
}
}
}