集团ID重复问题处理

This commit is contained in:
何美荣 2026-04-02 09:46:37 +08:00
parent 6c900b5cc9
commit 7974e8ab9f

View File

@ -298,10 +298,10 @@ namespace APT.SK.WebApi.Controllers
{
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);
//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;
@ -320,11 +320,47 @@ namespace APT.SK.WebApi.Controllers
if (numIsNull != null)
{
throw new Exception("管控措施的顺序必须填写");
}
//集团数据
T_FM_USER_PRODUCTION_UNIT_SET jtProUnit = null;
T_SK_RISK_TYPE jtRiskType = null;
T_SK_SCOREL jtlibL = null;
T_SK_SCOREE jtlibE = null;
T_SK_SCOREC jtlibC = null;
var jtCheckConts = new List<T_SK_CHECK_CONTENTS>();
var jtcheckContLawTypes = new List<T_LR_LAW_TYPE>();
var jtcheckContLaws = new List<T_LR_LAW>();
var jtcheckContBas = new List<T_SK_CHECK_CONTENTS_BASIC>();
var jtCheckContHids = new List<T_SK_CHECK_QUESTION>();
string strConn = OPTenantDBConnService.GetConnByORGID(new Guid(FilePathHead.JY.GetDescription()));
using (var context = new MigrationContext(strConn))
{
Dictionary<string, DbOrder> orders = new Dictionary<string, DbOrder>();
orders.Add("CREATE_TIME", DbOrder.DESC);
Expression<Func<T_FM_USER_PRODUCTION_UNIT_SET, bool>> expressionUnit = e => e.ID == entity.PRODUCTION_UNIT_ID;
jtProUnit = context.GetEntity(expressionUnit,null);
Expression<Func<T_SK_RISK_TYPE, bool>> expressionType = e => e.ID == entity.TYPE_ID;
jtRiskType = context.GetEntity(expressionType, null);
Expression<Func<T_SK_SCOREL, bool>> expressionL = e => e.ID == entity.SCOREL_ID;
jtlibL = context.GetEntity(expressionL, null);
Expression<Func<T_SK_SCOREE, bool>> expressionE = e => e.ID == entity.SCOREE_ID;
jtlibE = context.GetEntity(expressionE, null);
Expression<Func<T_SK_SCOREC, bool>> expressionC = e => e.ID == entity.SCOREC_ID;
jtlibC = context.GetEntity(expressionC, null);
Expression<Func<T_SK_CHECK_CONTENTS, bool>> expressionCon = e => !e.IS_DELETED;
jtCheckConts = context.GetOrderEntities(expressionCon, orders, null).ToList();
Expression<Func<T_LR_LAW, bool>> expressionLaw = e => !e.IS_DELETED;
jtcheckContLaws = context.GetOrderEntities(expressionLaw, orders, null).ToList();
Expression<Func<T_LR_LAW_TYPE, bool>> expressionLawType = e => !e.IS_DELETED;
jtcheckContLawTypes = context.GetOrderEntities(expressionLawType, orders, null).ToList();
Expression<Func<T_SK_CHECK_CONTENTS_BASIC, bool>> expressionBac = e => !e.IS_DELETED;
jtcheckContBas = context.GetOrderEntities(expressionBac, orders, null).ToList();
Expression<Func<T_SK_CHECK_QUESTION, bool>> expressionQue = e => !e.IS_DELETED;
jtCheckContHids = context.GetOrderEntities(expressionQue, orders, null).ToList();
}
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)
@ -348,7 +384,7 @@ namespace APT.SK.WebApi.Controllers
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)
@ -371,7 +407,7 @@ namespace APT.SK.WebApi.Controllers
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)
@ -397,7 +433,6 @@ namespace APT.SK.WebApi.Controllers
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)
@ -423,7 +458,6 @@ namespace APT.SK.WebApi.Controllers
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)
@ -496,10 +530,10 @@ namespace APT.SK.WebApi.Controllers
//查检查内容
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 conIds = contentList.Where(m=>m.CHECK_CONTENTS_ID!=null).Select(t => t.CHECK_CONTENTS_ID).Distinct().ToList();
//存在,更新
var conExsists = checkConts.Where(t=> conIds.Contains(t.ID) && t.JT_SYNC).ToList();
if (conExsists != null && conExsists.Any())
@ -523,7 +557,7 @@ namespace APT.SK.WebApi.Controllers
}
}
//不存在,写入
var conIdNews = conExsists.Select(t => t.ID).ToList();
var conIdNews = conExsists.Select(t => t.ID).Distinct().ToList();
var conExsistNews = conIds.Where(t =>t!=null && !conIdNews.Contains(t.Value)).ToList();
if (conExsistNews != null && conExsistNews.Any())
{
@ -551,12 +585,12 @@ namespace APT.SK.WebApi.Controllers
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();
@ -615,7 +649,7 @@ namespace APT.SK.WebApi.Controllers
}
}
//不存在,写入
var conIdNews = conExsists.Select(t => t.ID).ToList();
var conIdNews = conExsists.Select(t => t.ID).Distinct().ToList();
var conExsistNews = conIds.Where(t => t != null && !conIdNews.Contains(t.Value)).ToList();
if (conExsistNews != null && conExsistNews.Any())
{
@ -711,7 +745,7 @@ namespace APT.SK.WebApi.Controllers
//查隐患描述
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();
@ -737,7 +771,7 @@ namespace APT.SK.WebApi.Controllers
}
}
//不存在,写入
var conIdNews = conExsists.Select(t => t.ID).ToList();
var conIdNews = conExsists.Select(t => t.ID).Distinct().ToList();
var conExsistNews = conIds.Where(t =>t!=null&& !conIdNews.Contains(t.Value)).ToList();
if (conExsistNews != null && conExsistNews.Any())
{
@ -2366,6 +2400,7 @@ namespace APT.SK.WebApi.Controllers
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));
proUnitIds = proUnitIds.Distinct().ToList();
if (proUnitIds != null && proUnitIds.Any())
{
foreach (var id in proUnitIds)
@ -2399,6 +2434,7 @@ namespace APT.SK.WebApi.Controllers
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));
riskTypeIds = riskTypeIds.Distinct().ToList();
if (riskTypeIds != null && riskTypeIds.Any())
{
foreach (var id in riskTypeIds)
@ -2431,6 +2467,7 @@ namespace APT.SK.WebApi.Controllers
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));
libLIds = libLIds.Distinct().ToList();
if (libLIds != null && libLIds.Any())
{
foreach (var id in libLIds)
@ -2466,6 +2503,7 @@ namespace APT.SK.WebApi.Controllers
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));
libEIds = libEIds.Distinct().ToList();
if (libEIds != null && libEIds.Any())
{
foreach (var id in libEIds)
@ -2500,6 +2538,7 @@ namespace APT.SK.WebApi.Controllers
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));
libCIds = libCIds.Distinct().ToList();
if (libCIds == null && libCIds.Any())
{
foreach (var id in libCIds)
@ -2649,7 +2688,7 @@ namespace APT.SK.WebApi.Controllers
}
}
//不存在,写入
var conIdNews = conExsists.Select(t => t.ID).ToList();
var conIdNews = conExsists.Select(t => t.ID).Distinct().ToList();
var conExsistNews = conIds.Where(t => t != null && !conIdNews.Contains(t.Value)).ToList();
if (conExsistNews != null && conExsistNews.Any())
{
@ -2741,7 +2780,7 @@ namespace APT.SK.WebApi.Controllers
}
}
//不存在,写入
var conIdNews = conExsists.Select(t => t.ID).ToList();
var conIdNews = conExsists.Select(t => t.ID).Distinct().ToList();
var conExsistNews = conIds.Where(t => t != null && !conIdNews.Contains(t.Value)).ToList();
if (conExsistNews != null && conExsistNews.Any())
{
@ -2862,7 +2901,7 @@ namespace APT.SK.WebApi.Controllers
}
}
//不存在,写入
var conIdNews = conExsists.Select(t => t.ID).ToList();
var conIdNews = conExsists.Select(t => t.ID).Distinct().ToList();
var conExsistNews = conIds.Where(t => t != null && !conIdNews.Contains(t.Value)).ToList();
if (conExsistNews != null && conExsistNews.Any())
{