2514 lines
148 KiB
C#
2514 lines
148 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.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.NUM");
|
||
pageFilter.SelectField.Add("Nav_Details.Nav_DetailContents.Nav_Contents.CHECKCONTENT");
|
||
var result = GetOrderPageEntities<T_SK_BASIC_LIBRARY>(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][4].ToString().Trim())
|
||
|| string.IsNullOrEmpty(dtSource.Rows[i][5].ToString().Trim())
|
||
|| string.IsNullOrEmpty(dtSource.Rows[i][6].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][8].ToString().Trim();
|
||
//if (riskLevel != "重大风险" && riskLevel != "较大风险" && riskLevel != "一般风险" && riskLevel != "低风险")
|
||
//{
|
||
// Msg = Msg + "第" + (i + 3) + "行风险等级只能填写重大风险、较大风险、一般风险、低风险,请修改" + riskLevel + ";";
|
||
//}
|
||
//var controlLevel = dtSource.Rows[i][9].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][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))
|
||
{
|
||
if (!item.Contains("*"))
|
||
{
|
||
Msg = Msg + "第" + (i + 3) + "行管控措施" + item + "格式不正确,请检查修改;";
|
||
}
|
||
}
|
||
}
|
||
}
|
||
}
|
||
if (!string.IsNullOrEmpty(dtSource.Rows[i][12].ToString().Trim()))
|
||
{
|
||
var lists = dtSource.Rows[i][12].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][8].ToString().Trim();
|
||
//var controlLevel = dtSource.Rows[i][9].ToString().Trim();
|
||
var emerg = dtSource.Rows[i][10].ToString().Trim();
|
||
var mesList = dtSource.Rows[i][11].ToString().Trim();
|
||
var conList = dtSource.Rows[i][12].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.CODE = DateTime.Now.ToString("yyyyMMddHH") + i.ToString().PadLeft(4, '0');
|
||
lib.EMERGENCY = emerg;
|
||
lib.ENABLE_STATUS = FMEnableStatusEnum.启用;
|
||
if (lib.EVALUATE_SCORE > 320)
|
||
{
|
||
lib.EVALUATE_LEVEL = SKEvaluateLevelEnum.重大风险;
|
||
lib.DEPARTMENT_TYPE = "_5_10_15_20_";
|
||
}
|
||
else if (lib.EVALUATE_SCORE >= 160 && lib.EVALUATE_SCORE < 320)
|
||
{
|
||
lib.EVALUATE_LEVEL = SKEvaluateLevelEnum.较大风险;
|
||
lib.DEPARTMENT_TYPE = "_10_15_20_";
|
||
}
|
||
else if (lib.EVALUATE_SCORE >= 70 && lib.EVALUATE_SCORE < 160)
|
||
{
|
||
lib.EVALUATE_LEVEL = SKEvaluateLevelEnum.一般风险;
|
||
lib.DEPARTMENT_TYPE = "_15_20_";
|
||
}
|
||
else
|
||
{
|
||
lib.EVALUATE_LEVEL = SKEvaluateLevelEnum.低风险;
|
||
lib.DEPARTMENT_TYPE = "_20_";
|
||
}
|
||
//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;
|
||
}
|
||
}
|
||
}
|