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