mh_jy_safe/APT.MicroApi/APT.SK.WebApi/Controllers/Api/BasicLibraryController.cs
何美荣 30826e9739 2
2026-03-24 11:37:44 +08:00

2492 lines
147 KiB
C#
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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.HM;
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 Castle.Core.Internal;
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.IO;
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");
pageFilter.SelectField.Add("Nav_Details.Nav_DetailContents.Nav_Contents.CHECKCONTENT");
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 + "。";
item.MINE_NAME = item.MINE_NAME + temp;
item.MEASURE = item.MEASURE + temp;
var conListTemp = "";
if (item2.Nav_DetailContents != null && item2.Nav_DetailContents.Any())
{
foreach (var con in item2.Nav_DetailContents.OrderBy(t => t.NUM))
{
if (con != null && con.Nav_Contents != null)
{
var conTemp = item2.NUM +"."+con.NUM + "*"+con.Nav_Contents?.CHECKCONTENT +"";
conListTemp = conListTemp + conTemp;
}
}
}
item.CHECKCONTENTS = item.CHECKCONTENTS+ conListTemp;
}
}
}
}
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;
});
}
/// <summary>
/// 获取导入数据
/// 参考 [Route("api/PF/Import")]
/// </summary>
/// <returns></returns>
[HttpPost, Route("GetImportData")]
public JsonActionResult<ImportDataModel> GetImportData()
{
return SafeExecute<ImportDataModel>(() =>
{
var orgId = APT.Infrastructure.Api.AppContext.CurrentSession.OrgId;
var httpRequest = this.HttpContext.Request;
string orgIdStr = httpRequest.Form["OrgId"];// 获取 组织
ImportDataModel result = new ImportDataModel();
var dic = Path.Combine(System.AppContext.BaseDirectory, "tempImportFiles");
if (!Directory.Exists(dic))
Directory.CreateDirectory(dic);
foreach (var key in httpRequest.Form.Files) // 文件键
{
var postedFile = key; // 获取文件键对应的文件对象
string filePath = Path.Combine(dic, DateTime.Now.ToString("yyyy_MM_dd_hh_mm_ss") + "_" + postedFile.FileName);
Byte[] fileData = new Byte[postedFile.Length];
Stream sr = postedFile.OpenReadStream();//创建数据流对象
sr.Read(fileData, 0, (int)postedFile.Length);
using (FileStream fs = new FileStream(filePath, FileMode.CreateNew))
{
fs.Write(fileData, 0, fileData.Length);
fs.Flush();
fs.Close();
}
//获取数据
Dictionary<int, int> startRowIndexs = new Dictionary<int, int>();
startRowIndexs.Add(0, 2);//根据Excel格式数据赋值
var dataTables = FileUtils.ReadExcelByOledb(filePath, startRowIndexs);
string Msg = string.Empty;
bool isOK = InsertModel(dataTables.Tables[0], orgId, ref Msg);
try
{
System.IO.File.Delete(filePath);
}
catch { }
result.Data = Msg;
result.MessageList = new List<string> { Msg };
}
return result;
});
}
/// <summary>
/// 数据插入
/// </summary>
/// <param name="dtSource"></param>
/// <param name="OrgID"></param>
/// <param name="Msg"></param>
/// <param name="rowIndex"></param>
/// <returns></returns>
/// <exception cref="Exception"></exception>
public bool InsertModel(DataTable dtSource, Guid? orgId, ref string Msg, int rowIndex = 1)
{
var userId = APT.Infrastructure.Api.AppContext.CurrentSession.UserID;
if (dtSource == null || dtSource.Rows.Count < rowIndex)
{
Msg = "未获取到导入数据";
throw new Exception(Msg);
}
int rowAll = dtSource.Rows.Count;
//基础库
var libs = this.GetEntities<T_SK_BASIC_LIBRARY>(t => !t.IS_DELETED, new BaseFilter(orgId));
//风险类别
var riskTypes = this.GetEntities<T_SK_RISK_TYPE>(t => !t.IS_DELETED, new BaseFilter(orgId));
//LEC
var libLs = this.GetEntities<T_SK_SCOREL>(t => !t.IS_DELETED, new BaseFilter(orgId));
var libEs = this.GetEntities<T_SK_SCOREE>(t => !t.IS_DELETED, new BaseFilter(orgId));
var libCs = this.GetEntities<T_SK_SCOREC>(t => !t.IS_DELETED, new BaseFilter(orgId));
//生产单元
var proUnits = this.GetEntities<T_FM_USER_PRODUCTION_UNIT_SET>(t => !t.IS_DELETED, new BaseFilter(orgId));
//检查内容
var checkCons = this.GetEntities<T_SK_CHECK_CONTENTS>(t => !t.IS_DELETED, new BaseFilter(orgId));
//检查依据
var checkBas = this.GetEntities<T_SK_CHECK_CONTENTS_BASIC>(t => !t.IS_DELETED, new BaseFilter(orgId));
//隐患描述
var checkHids = this.GetEntities<T_SK_CHECK_QUESTION>(t => !t.IS_DELETED, new BaseFilter(orgId));
//先做一次非空判断
for (int i = 0; i < rowAll; i++)
{
if (string.IsNullOrEmpty(dtSource.Rows[i][0].ToString().Trim()) || string.IsNullOrEmpty(dtSource.Rows[i][1].ToString().Trim())
|| string.IsNullOrEmpty(dtSource.Rows[i][2].ToString().Trim()) || string.IsNullOrEmpty(dtSource.Rows[i][3].ToString().Trim())
|| string.IsNullOrEmpty(dtSource.Rows[i][7].ToString().Trim()) || string.IsNullOrEmpty(dtSource.Rows[i][8].ToString().Trim())
)
{
Msg = Msg + "第" + (i + 3) + "行生产单元,风险名称风险描述风险类别风险评价L风险评价E风险评价C风险等级管控层级不能为空请先检查所有字段内容";
}
}
if (!string.IsNullOrEmpty(Msg))
{
throw new Exception(Msg);
}
//基础数据判断
for (int i = 0; i < rowAll; i++)
{
var proUnit = dtSource.Rows[i][0].ToString().Trim();
var proUnitFirst = proUnits.FirstOrDefault(t => t.NAME == proUnit);
if (proUnitFirst == null)
{
Msg = Msg + "第" + (i + 3) + "行生产单元" + proUnit + "不存在,请先到系统管理维护;";
}
var riskType = dtSource.Rows[i][3].ToString().Trim();
var riskTypeFirst = riskTypes.FirstOrDefault(t => t.NAME == riskType);
if (riskTypeFirst == null)
{
Msg = Msg + "第" + (i + 3) + "行风险类别" + riskType + "不存在,请先到系统管理维护;";
}
else
{
var libFirst = libs.FirstOrDefault(t => t.PRODUCTION_UNIT_ID == proUnitFirst.ID && t.TYPE_ID == riskTypeFirst.ID && t.RISK_NAME == dtSource.Rows[i][1].ToString().Trim() && t.RISK_DESCRIPTION == dtSource.Rows[i][2].ToString().Trim());
if (libFirst != null)
{
Msg = Msg + "第" + (i + 3) + "行风险名称" + dtSource.Rows[i][1].ToString().Trim() + "已存在库中,请勿重复导入;";
}
}
var libL = dtSource.Rows[i][4].ToString().Trim();
if (!string.IsNullOrEmpty(libL))
{
var libLFirst = libLs.FirstOrDefault(t => t.SCORE == decimal.Parse(libL));
if (libLFirst == null)
{
Msg = Msg + "第" + (i + 3) + "行风险评价L" + libL + "不存在,请先到系统管理维护;";
}
}
var libE = dtSource.Rows[i][5].ToString().Trim();
if (!string.IsNullOrEmpty(libE))
{
var libEFirst = libEs.FirstOrDefault(t => t.SCORE == decimal.Parse(libE));
if (libEFirst == null)
{
Msg = Msg + "第" + (i + 3) + "行风险评价E" + libE + "不存在,请先到系统管理维护;";
}
}
var libC = dtSource.Rows[i][6].ToString().Trim();
if (!string.IsNullOrEmpty(libC))
{
var libCFirst = libCs.FirstOrDefault(t => t.SCORE == decimal.Parse(libC));
if (libCFirst == null)
{
Msg = Msg + "第" + (i + 3) + "行风险评价C" + libC + "不存在,请先到系统管理维护;";
}
}
var riskLevel = dtSource.Rows[i][7].ToString().Trim();
if (riskLevel != "重大风险" && riskLevel != "较大风险" && riskLevel != "一般风险" && riskLevel != "低风险")
{
Msg = Msg + "第" + (i + 3) + "行风险等级只能填写重大风险、较大风险、一般风险、低风险,请修改" + riskLevel + "";
}
var controlLevel = dtSource.Rows[i][8].ToString().Trim();
if (controlLevel != "_5_" && controlLevel != "_10_" && controlLevel != "_15_" && controlLevel != "_20_"
&& controlLevel != "_5_10_" && controlLevel != "_10_15_" && controlLevel != "_15_20_" && controlLevel != "_5_10_15_"
&& controlLevel != "_10_15_20_" && controlLevel != "_5_10_15_20_")
{
Msg = Msg + "第" + (i + 3) + "行管控层级格式不确,请修改" + controlLevel + "";
}
if (!string.IsNullOrEmpty(dtSource.Rows[i][10].ToString().Trim()))
{
var lists = dtSource.Rows[i][10].ToString().Trim().Split("。").ToList();
if (lists != null && lists.Any())
{
foreach (var item in lists)
{
if (!string.IsNullOrEmpty(item))
{
if (!item.Contains("*"))
{
Msg = Msg + "第" + (i + 3) + "行管控措施" + item + "格式不正确,请检查修改;";
}
}
}
}
}
if (!string.IsNullOrEmpty(dtSource.Rows[i][11].ToString().Trim()))
{
var lists = dtSource.Rows[i][11].ToString().Trim().Split("").ToList();
if (lists != null && lists.Any())
{
foreach (var item in lists)
{
if (!string.IsNullOrEmpty(item))
{
var conTemps = item.Split("").ToList();
if (conTemps != null && conTemps.Any())
{
foreach (var con in conTemps)
{
if (!string.IsNullOrEmpty(con))
{
if (con.Contains("*"))
{
var temp = con.Split("*")[1];
var conFirst = checkCons.FirstOrDefault(t => t.CHECKCONTENT == temp);
if (conFirst == null)
{
Msg = Msg + "第" + (i + 3) + "行检查内容" + temp + "不存在,请先到系统管理维护;";
}
}
else
{
Msg = Msg + "第" + (i + 3) + "行检查内容" + con + "格式不正确,请检查修改;";
}
}
}
}
}
}
}
}
}
if (!string.IsNullOrEmpty(Msg))
{
throw new Exception(Msg);
}
//导入
List<T_SK_BASIC_LIBRARY> libList = new List<T_SK_BASIC_LIBRARY>();
List<T_SK_BASIC_LIBRARY_DETAIL> libDetList = new List<T_SK_BASIC_LIBRARY_DETAIL>();
List<T_SK_BASIC_LIBRARY_DETAIL_CONTENT> libConList = new List<T_SK_BASIC_LIBRARY_DETAIL_CONTENT>();
List<T_SK_BASIC_LIBRARY_DETAIL_CONTENT_BASIC> libBasicList = new List<T_SK_BASIC_LIBRARY_DETAIL_CONTENT_BASIC>();
List<T_SK_BASIC_LIBRARY_DETAIL_CONTENT_HIDDEN> libHidList = new List<T_SK_BASIC_LIBRARY_DETAIL_CONTENT_HIDDEN>();
for (int i = 0; i < rowAll; i++)
{
var proUnit = dtSource.Rows[i][0].ToString().Trim();
var proUnitFirst = proUnits.FirstOrDefault(t => t.NAME == proUnit);
var riskName = dtSource.Rows[i][1].ToString().Trim();
var riskDescript = dtSource.Rows[i][2].ToString().Trim();
var riskType = dtSource.Rows[i][3].ToString().Trim();
var riskTypeFirst = riskTypes.FirstOrDefault(t => t.NAME == riskType);
var libL = dtSource.Rows[i][4].ToString().Trim();
var libLFirst = string.IsNullOrEmpty(libL)?null: libLs.FirstOrDefault(t => t.SCORE == decimal.Parse(libL));
var libE = dtSource.Rows[i][5].ToString().Trim();
var libEFirst = string.IsNullOrEmpty(libE) ? null:libEs.FirstOrDefault(t => t.SCORE == decimal.Parse(libE));
var libC = dtSource.Rows[i][6].ToString().Trim();
var libCFirst = string.IsNullOrEmpty(libC) ? null : libCs.FirstOrDefault(t => t.SCORE == decimal.Parse(libC));
var riskLevel = dtSource.Rows[i][7].ToString().Trim();
var controlLevel = dtSource.Rows[i][8].ToString().Trim();
var emerg = dtSource.Rows[i][9].ToString().Trim();
var mesList = dtSource.Rows[i][10].ToString().Trim();
var conList = dtSource.Rows[i][11].ToString().Trim();
T_SK_BASIC_LIBRARY lib = new T_SK_BASIC_LIBRARY();
lib.ORG_ID = orgId;
lib.PRODUCTION_UNIT_ID = proUnitFirst.ID;
lib.RISK_NAME = riskName;
lib.RISK_DESCRIPTION = riskDescript;
lib.TYPE_ID = riskTypeFirst.ID;
lib.SCOREL_ID = libLFirst?.ID;
lib.SCOREE_ID = libEFirst?.ID;
lib.SCOREC_ID = libCFirst?.ID;
lib.EVALUATE_SCORE = (lib.SCOREL_ID!=null && lib.SCOREE_ID!=null && lib.SCOREC_ID!=null)? Math.Round(libLFirst.SCORE * libEFirst.SCORE* libCFirst.SCORE,2):0;
lib.DEPARTMENT_TYPE = controlLevel;
lib.CODE = DateTime.Now.ToString("yyyyMMddHH") + i.ToString().PadLeft(4, '0');
lib.EMERGENCY = emerg;
lib.ENABLE_STATUS = FMEnableStatusEnum.;
switch (riskLevel)
{
case "重大风险":
lib.EVALUATE_LEVEL = SKEvaluateLevelEnum.;
break;
case "较大风险":
lib.EVALUATE_LEVEL = SKEvaluateLevelEnum.;
break;
case "一般风险":
lib.EVALUATE_LEVEL = SKEvaluateLevelEnum.;
break;
case "低风险":
lib.EVALUATE_LEVEL = SKEvaluateLevelEnum.;
break;
default: break;
}
libList.Add(lib);
List<T_SK_BASIC_LIBRARY_DETAIL> libDetTemp = new List<T_SK_BASIC_LIBRARY_DETAIL>();
if (!string.IsNullOrEmpty(mesList))
{
var lists = mesList.Split("。").ToList();
if (lists != null && lists.Any())
{
foreach (var item in lists)
{
if (!string.IsNullOrEmpty(item))
{
if (item.Contains("*"))
{
var num = item.Split("*")[0];
var name = item.Split("*")[1];
T_SK_BASIC_LIBRARY_DETAIL con = new T_SK_BASIC_LIBRARY_DETAIL();
con.ORG_ID = orgId;
con.BASIC_LIBRARY_ID = lib.ID;
con.NUM = string.IsNullOrEmpty(num) ? null : int.Parse(num);
con.MEASURES_NAME = name;
libDetList.Add(con);
libDetTemp.Add(con);
}
//else
//{
// T_SK_BASIC_LIBRARY_DETAIL con = new T_SK_BASIC_LIBRARY_DETAIL();
// con.ORG_ID = orgId;
// con.BASIC_LIBRARY_ID = lib.ID;
// con.MEASURES_NAME = item;
// libDetList.Add(con);
//}
}
}
}
}
if (!string.IsNullOrEmpty(conList))
{
var lists = conList.Split("").ToList();
if (lists != null && lists.Any())
{
foreach (var item in lists)
{
if (!string.IsNullOrEmpty(item))
{
if (item.Contains("*"))
{
var num = item.Split("*")[0];
var name = item.Split("*")[1];
if (num.Contains("."))
{
var numTemp = int.Parse(num.Split(".")[0]);
var detFirst = libDetTemp.FirstOrDefault(t => t.NUM != null && t.NUM == numTemp);
var conFirst = checkCons.FirstOrDefault(t => t.CHECKCONTENT == name);
if (detFirst != null && conFirst != null)
{
T_SK_BASIC_LIBRARY_DETAIL_CONTENT con = new T_SK_BASIC_LIBRARY_DETAIL_CONTENT();
con.ORG_ID = orgId;
con.BASIC_LIBRARY_DETAIL_ID = detFirst.ID;
con.NUM = int.Parse(num.Split(".")[1]);
con.CHECK_CONTENT = name;
con.CHECK_CONTENTS_ID = conFirst.ID;
con.CHECK_STANDARD = conFirst.CHECK_STANDARD;
libConList.Add(con);
var basTemps = checkBas.Where(t => t.CHECK_CONTENTS_ID == conFirst.ID).ToList();
if (basTemps != null && basTemps.Any())
{
foreach (var bas in basTemps)
{
T_SK_BASIC_LIBRARY_DETAIL_CONTENT_BASIC ba = new T_SK_BASIC_LIBRARY_DETAIL_CONTENT_BASIC();
ba.ORG_ID = orgId;
ba.BASIC_LIBRARY_DETAIL_CONTENT_ID = con.ID;
ba.LAW_ID = bas.LAW_ID;
libBasicList.Add(ba);
}
}
var hidTemps = checkHids.Where(t => t.CHECK_CONTENTS_ID == conFirst.ID).ToList();
if (hidTemps != null && hidTemps.Any())
{
foreach (var hid in hidTemps)
{
T_SK_BASIC_LIBRARY_DETAIL_CONTENT_HIDDEN hi = new T_SK_BASIC_LIBRARY_DETAIL_CONTENT_HIDDEN();
hi.ORG_ID = orgId;
hi.BASIC_LIBRARY_DETAIL_CONTENT_ID = con.ID;
hi.HIDDEN_DESCRIPTION = hid.DESCREPTION;
hi.CHECK_QUESTION_ID = hid.ID;
hi.HIDDEN_LEVEL = hid.QUESTION_LEVEL;
hi.RECTIFICATION_MEASURES = hid.DEMAND;
hi.NUM = hid.NUM;
libHidList.Add(hi);
}
}
}
}
}
}
}
}
}
}
UnifiedCommit(() =>
{
if (libList != null && libList.Any())
BantchAddEntityNoCommit(libList);
if (libDetList != null && libDetList.Any())
BantchAddEntityNoCommit(libDetList);
if (libConList != null && libConList.Any())
BantchAddEntityNoCommit(libConList);
if (libBasicList != null && libBasicList.Any())
BantchAddEntityNoCommit(libBasicList);
if (libHidList != null && libHidList.Any())
BantchAddEntityNoCommit(libHidList);
});
Msg = "导入成功!";
return true;
}
}
}