集团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>(() => return SafeExecute<bool>(() =>
{ {
string strConn = OPTenantDBConnService.GetConnByORGID(Guid.Parse("00300000-0000-0000-0000-000000000000")); //string strConn = OPTenantDBConnService.GetConnByORGID(Guid.Parse("00300000-0000-0000-0000-000000000000"));
string dbName = "mh_jy_head"; //string dbName = "mh_jy_head";
// 2. 传入构造函数 //// 2. 传入构造函数
using var db = new CrossDbContext(strConn); //using var db = new CrossDbContext(strConn);
var details = entity.Nav_Details; var details = entity.Nav_Details;
entity.Nav_Details = null; entity.Nav_Details = null;
@ -321,10 +321,46 @@ namespace APT.SK.WebApi.Controllers
{ {
throw new Exception("管控措施的顺序必须填写"); 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; 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 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 (proUnit == null)
{ {
if (jtProUnit != null) if (jtProUnit != null)
@ -348,7 +384,7 @@ namespace APT.SK.WebApi.Controllers
T_SK_RISK_TYPE riskTypeNew = null; T_SK_RISK_TYPE riskTypeNew = null;
//查风险类别 //查风险类别
var riskType = this.GetEntity<T_SK_RISK_TYPE>(t => t.ID == entity.TYPE_ID && t.JT_SYNC); 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 (riskType == null)
{ {
if (jtRiskType != null) if (jtRiskType != null)
@ -371,7 +407,7 @@ namespace APT.SK.WebApi.Controllers
T_SK_SCOREL libLNew = null; T_SK_SCOREL libLNew = null;
//查LEC //查LEC
var libL = this.GetEntity<T_SK_SCOREL>(t => t.ID == entity.SCOREL_ID && t.JT_SYNC); 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 (libL == null)
{ {
if (jtlibL != null) if (jtlibL != null)
@ -397,7 +433,6 @@ namespace APT.SK.WebApi.Controllers
T_SK_SCOREE libENew = null; T_SK_SCOREE libENew = null;
//查生产单元表 //查生产单元表
var libE = this.GetEntity<T_SK_SCOREE>(t => t.ID == entity.SCOREE_ID && t.JT_SYNC); 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)
{ {
if (libE != null) if (libE != null)
@ -423,7 +458,6 @@ namespace APT.SK.WebApi.Controllers
T_SK_SCOREC libCNew = null; T_SK_SCOREC libCNew = null;
//查生产单元表 //查生产单元表
var libC = this.GetEntity<T_SK_SCOREC>(t => t.ID == entity.SCOREC_ID && t.JT_SYNC); 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 (libC == null)
{ {
if (jtlibC != 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>(); 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 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()) 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(); var conExsists = checkConts.Where(t=> conIds.Contains(t.ID) && t.JT_SYNC).ToList();
if (conExsists != null && conExsists.Any()) 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(); var conExsistNews = conIds.Where(t =>t!=null && !conIdNews.Contains(t.Value)).ToList();
if (conExsistNews != null && conExsistNews.Any()) 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> updateCheckLaws = new List<T_LR_LAW>();
List<T_LR_LAW_TYPE> updateCheckLawTypes = new List<T_LR_LAW_TYPE>(); 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>(); 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 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 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 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()) if (basicList != null && basicList.Any())
{ {
var conIds = basicList.Select(t => t.LAW_ID).Distinct().ToList(); 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(); var conExsistNews = conIds.Where(t => t != null && !conIdNews.Contains(t.Value)).ToList();
if (conExsistNews != null && conExsistNews.Any()) 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>(); 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 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()) if (hiddenList != null && hiddenList.Any())
{ {
var conIds = hiddenList.Where(m => m.CHECK_QUESTION_ID != null).Select(t => t.CHECK_QUESTION_ID).Distinct().ToList(); 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(); var conExsistNews = conIds.Where(t =>t!=null&& !conIdNews.Contains(t.Value)).ToList();
if (conExsistNews != null && conExsistNews.Any()) 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>(); 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 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 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()) if (proUnitIds != null && proUnitIds.Any())
{ {
foreach (var id in proUnitIds) 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>(); 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 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 riskTypes = this.GetEntities<T_SK_RISK_TYPE>(t => riskTypeIds.Contains(t.ID), new BaseFilter(orgId));
riskTypeIds = riskTypeIds.Distinct().ToList();
if (riskTypeIds != null && riskTypeIds.Any()) if (riskTypeIds != null && riskTypeIds.Any())
{ {
foreach (var id in riskTypeIds) foreach (var id in riskTypeIds)
@ -2431,6 +2467,7 @@ namespace APT.SK.WebApi.Controllers
List<T_SK_SCOREL> libLList = new List<T_SK_SCOREL>(); 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 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 libLs = this.GetEntities<T_SK_SCOREL>(t => libLIds.Contains(t.ID), new BaseFilter(orgId));
libLIds = libLIds.Distinct().ToList();
if (libLIds != null && libLIds.Any()) if (libLIds != null && libLIds.Any())
{ {
foreach (var id in libLIds) foreach (var id in libLIds)
@ -2466,6 +2503,7 @@ namespace APT.SK.WebApi.Controllers
List<T_SK_SCOREE> libEList = new List<T_SK_SCOREE>(); 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 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 libEs = this.GetEntities<T_SK_SCOREE>(t => libEIds.Contains(t.ID), new BaseFilter(orgId));
libEIds = libEIds.Distinct().ToList();
if (libEIds != null && libEIds.Any()) if (libEIds != null && libEIds.Any())
{ {
foreach (var id in libEIds) foreach (var id in libEIds)
@ -2500,6 +2538,7 @@ namespace APT.SK.WebApi.Controllers
List<T_SK_SCOREC> libCList = new List<T_SK_SCOREC>(); 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 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 libCs = this.GetEntities<T_SK_SCOREC>(t => libCIds.Contains(t.ID), new BaseFilter(orgId));
libCIds = libCIds.Distinct().ToList();
if (libCIds == null && libCIds.Any()) if (libCIds == null && libCIds.Any())
{ {
foreach (var id in libCIds) 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(); var conExsistNews = conIds.Where(t => t != null && !conIdNews.Contains(t.Value)).ToList();
if (conExsistNews != null && conExsistNews.Any()) 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(); var conExsistNews = conIds.Where(t => t != null && !conIdNews.Contains(t.Value)).ToList();
if (conExsistNews != null && conExsistNews.Any()) 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(); var conExsistNews = conIds.Where(t => t != null && !conIdNews.Contains(t.Value)).ToList();
if (conExsistNews != null && conExsistNews.Any()) if (conExsistNews != null && conExsistNews.Any())
{ {