From 91c3c2efa2f9d05171bbdeadee045acdc2b21959 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=E4=BD=95=E7=BE=8E=E8=8D=A3?=
<10755671+mei-rong-he@user.noreply.gitee.com>
Date: Wed, 1 Apr 2026 15:41:24 +0800
Subject: [PATCH] =?UTF-8?q?=E5=9F=BA=E7=A1=80=E5=BA=93=E4=BB=8E=E9=9B=86?=
=?UTF-8?q?=E5=9B=A2=E5=AF=BC=E5=85=A5=E6=8A=A5=E9=94=99=E4=BF=AE=E5=A4=8D?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../Controllers/Api/BasicLibraryController.cs | 865 +++++++++++++++++-
.../Api/CheckContentsController.cs | 23 +-
2 files changed, 867 insertions(+), 21 deletions(-)
diff --git a/APT.MicroApi/APT.SK.WebApi/Controllers/Api/BasicLibraryController.cs b/APT.MicroApi/APT.SK.WebApi/Controllers/Api/BasicLibraryController.cs
index 0037b52..2b1a389 100644
--- a/APT.MicroApi/APT.SK.WebApi/Controllers/Api/BasicLibraryController.cs
+++ b/APT.MicroApi/APT.SK.WebApi/Controllers/Api/BasicLibraryController.cs
@@ -9,9 +9,11 @@ using APT.BaseData.Services.Services.FM;
using APT.BaseData.Services.Services.OP;
using APT.Infrastructure.Api;
using APT.Infrastructure.Core;
+using APT.Migrations;
using APT.MS.Domain.Entities.FO;
using APT.MS.Domain.Entities.HM;
using APT.MS.Domain.Entities.LR;
+using APT.MS.Domain.Entities.SE;
using APT.MS.Domain.Entities.SK;
using APT.MS.Domain.Enums;
using APT.MS.Domain.Enums.SK;
@@ -32,6 +34,7 @@ using System.Data;
using System.DirectoryServices.ActiveDirectory;
using System.IO;
using System.Linq;
+using System.Linq.Expressions;
using System.Security.Policy;
namespace APT.SK.WebApi.Controllers
@@ -1270,13 +1273,13 @@ namespace APT.SK.WebApi.Controllers
}
///
- /// 获取集团基础库
+ /// 获取集团基础库(旧)
///
/// 过滤实体
///
- [HttpPost, Route("JTOrderEntities")]
- public JsonActionResult> JTOrderEntities([FromBody] KeywordFilter filter)
+ [HttpPost, Route("JTOrderEntitiesOld")]
+ public JsonActionResult> JTOrderEntitiesOld([FromBody] KeywordFilter filter)
{
var result = new JsonActionResult>();
string strConn = OPTenantDBConnService.GetConnByORGID(Guid.Parse("00300000-0000-0000-0000-000000000000"));
@@ -1483,12 +1486,209 @@ namespace APT.SK.WebApi.Controllers
return result;
}
///
- /// 从集团导入
+ /// 获取集团基础库
+ ///
+ /// 过滤实体
+ ///
+
+ [HttpPost, Route("JTOrderEntities")]
+ public JsonActionResult> JTOrderEntities([FromBody] KeywordFilter filter)
+ {
+ var result = new JsonActionResult>();
+ string strConn = OPTenantDBConnService.GetConnByORGID(new Guid(FilePathHead.JY.GetDescription()));
+ using (var context = new MigrationContext(strConn))
+ {
+ Expression> expression = e => !e.IS_DELETED;
+ Dictionary orders = new Dictionary();
+ orders.Add("CREATE_TIME", DbOrder.DESC);
+ var temps = context.GetOrderEntities(expression, orders, null, "Nav_ProductionUnit", "Nav_Type", "Nav_SCOREL", "Nav_SCOREE", "Nav_SCOREC", "Nav_Details.Nav_DetailContents.Nav_Contents", "Nav_Details.Nav_DetailContents.Nav_DetailHiddens.Nav_Question", "Nav_Details.Nav_DetailContents.Nav_DetailBasics.Nav_Law");
+ if (temps != null && temps.Any())
+ {
+ result.Data = temps.ToList();
+ }
+ if (result != null && result.Data != null && result.Data.Any())
+ {
+ foreach (var item in result.Data)
+ {
+ var detailStr = new List();
+ var contentStr = new List();
+ var basicStr = new List();
+ var standardStr = new List();
+ var scripStr = new List();
+ var levelStr = new List();
+ var measureStr = new List();
+ 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;
+ }
+ ///
+ /// 从集团导入(旧)
///
///
///
- [HttpPost, Route("ImportFormJT")]
- public JsonActionResult ImportFormJT([FromBody] KeywordFilter filter)
+ [HttpPost, Route("ImportFormJTOld")]
+ public JsonActionResult ImportFormJTOld([FromBody] KeywordFilter filter)
{
return SafeExecute(() =>
{
@@ -2092,6 +2292,645 @@ namespace APT.SK.WebApi.Controllers
return true;
});
}
+ ///
+ /// 从集团导入
+ ///
+ ///
+ ///
+ [HttpPost, Route("ImportFormJT")]
+ public JsonActionResult ImportFormJT([FromBody] KeywordFilter filter)
+ {
+ return SafeExecute(() =>
+ {
+ if (string.IsNullOrEmpty(filter.Keyword))
+ throw new Exception("请先勾选要同步的数据");
+ var ids = new List();
+ var idTemps = filter.Keyword.Split(",").ToList();
+ foreach (var item in idTemps)
+ {
+ if (!string.IsNullOrEmpty(item))
+ {
+ ids.Add(Guid.Parse(item));
+ }
+ }
+
+ var orgId = APT.Infrastructure.Api.AppContext.CurrentSession.OrgId.Value;
+ //删除ID相同的历史数据
+ var libs = this.GetEntities(t => ids.Contains(t.ID), new BaseFilter(orgId));
+ var deleteBasIds = libs.Select(t => t.ID).ToList();
+ var deleteBasDetailIds = this.GetEntities(t => deleteBasIds.Contains(t.BASIC_LIBRARY_ID), new BaseFilter(orgId)).Select(t => t.ID).ToList();
+ var deleteBasConttentIds = this.GetEntities(t => deleteBasDetailIds.Contains(t.BASIC_LIBRARY_DETAIL_ID), new BaseFilter(orgId)).Select(t => t.ID).ToList();
+ var deleteBasBasicIds = this.GetEntities(t => deleteBasConttentIds.Contains(t.BASIC_LIBRARY_DETAIL_CONTENT_ID), new BaseFilter(orgId)).Select(t => t.ID).ToList();
+ var deleteBasHiddenIds = this.GetEntities(t => deleteBasConttentIds.Contains(t.BASIC_LIBRARY_DETAIL_CONTENT_ID), new BaseFilter(orgId)).Select(t => t.ID).ToList();
+ //集团数据
+ var jtLibs = new List();
+ var jtProUnits = new List();
+ var jtRiskTypes = new List();
+ var jtlibLs = new List();
+ var jtlibEs = new List();
+ var jtlibCs = new List();
+ var jtCheckConts = new List();
+ var jtcheckContLawTypes = new List();
+ var jtcheckContLaws = new List();
+ var jtcheckContBas = new List();
+ var jtCheckContHids = new List();
+ string strConn = OPTenantDBConnService.GetConnByORGID(new Guid(FilePathHead.JY.GetDescription()));
+ using (var context = new MigrationContext(strConn))
+ {
+ Expression> expression = e => !e.IS_DELETED && ids.Contains(e.ID);
+ Dictionary orders = new Dictionary();
+ orders.Add("CREATE_TIME", DbOrder.DESC);
+ jtLibs = context.GetOrderEntities(expression, orders, null, "Nav_ProductionUnit", "Nav_Type", "Nav_SCOREL", "Nav_SCOREE", "Nav_SCOREC", "Nav_Details.Nav_DetailContents.Nav_Contents", "Nav_Details.Nav_DetailContents.Nav_DetailHiddens.Nav_Question", "Nav_Details.Nav_DetailContents.Nav_DetailBasics.Nav_Law").ToList();
+ Expression> expressionUnit = e => !e.IS_DELETED ;
+ jtProUnits = context.GetOrderEntities(expressionUnit, orders, null).ToList();
+ Expression> expressionType = e => !e.IS_DELETED;
+ jtRiskTypes = context.GetOrderEntities(expressionType, orders, null).ToList();
+ Expression> expressionL = e => !e.IS_DELETED;
+ jtlibLs = context.GetOrderEntities(expressionL, orders, null).ToList();
+ Expression> expressionE = e => !e.IS_DELETED;
+ jtlibEs = context.GetOrderEntities(expressionE, orders, null).ToList();
+ Expression> expressionC = e => !e.IS_DELETED;
+ jtlibCs = context.GetOrderEntities(expressionC, orders, null).ToList();
+ Expression> expressionCon = e => !e.IS_DELETED;
+ jtCheckConts = context.GetOrderEntities(expressionCon, orders, null).ToList();
+ Expression> expressionLaw = e => !e.IS_DELETED;
+ jtcheckContLaws = context.GetOrderEntities(expressionLaw, orders, null).ToList();
+ Expression> expressionLawType = e => !e.IS_DELETED;
+ jtcheckContLawTypes = context.GetOrderEntities(expressionLawType, orders, null).ToList();
+ Expression> expressionBac = e => !e.IS_DELETED;
+ jtcheckContBas = context.GetOrderEntities(expressionBac, orders, null).ToList();
+ Expression> expressionQue = e => !e.IS_DELETED;
+ jtCheckContHids = context.GetOrderEntities(expressionQue, orders, null).ToList();
+ }
+ //查生产单元表
+ List proUnitList = new List();
+ var proUnitIds = jtLibs.Where(m => m.PRODUCTION_UNIT_ID != null).Select(t => t.PRODUCTION_UNIT_ID).Distinct().ToList();
+ var proUnits = this.GetEntities(t => proUnitIds.Contains(t.ID), new BaseFilter(orgId));
+ 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 riskTypeList = new List();
+ var riskTypeIds = jtLibs.Where(m => m.TYPE_ID != null).Select(t => t.TYPE_ID).Distinct().ToList();
+ var riskTypes = this.GetEntities(t => riskTypeIds.Contains(t.ID), new BaseFilter(orgId));
+ 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 libLList = new List();
+ var libLIds = jtLibs.Where(m => m.SCOREL_ID != null).Select(t => t.SCOREL_ID).Distinct().ToList();
+ var libLs = this.GetEntities(t => libLIds.Contains(t.ID), new BaseFilter(orgId));
+ 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 libEList = new List();
+ var libEIds = jtLibs.Where(m => m.SCOREE_ID != null).Select(t => t.SCOREE_ID).Distinct().ToList();
+ var libEs = this.GetEntities(t => libEIds.Contains(t.ID), new BaseFilter(orgId));
+ 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 libCList = new List();
+ var libCIds = jtLibs.Where(m => m.SCOREC_ID != null).Select(t => t.SCOREC_ID).Distinct().ToList();
+ var libCs = this.GetEntities(t => libCIds.Contains(t.ID), new BaseFilter(orgId));
+ 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 libList = new List();
+ List detailList = new List();
+ List contentList = new List();
+ List hiddenList = new List();
+ List basicList = new List();
+ 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 updateCheckConts = new List();
+ var checkConts = this.GetEntities(t => true, new BaseFilter(orgId));
+ if (contentList != null && contentList.Any())
+ {
+ var conIds = contentList.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())
+ {
+ 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 updateCheckLaws = new List();
+ List updateCheckLawTypes = new List();
+ List updateCheckBas = new List();
+
+ var checkContLawTypes = this.GetEntities(t => true, new BaseFilter(orgId));
+ var checkContLaws = this.GetEntities(t => true, new BaseFilter(orgId));
+
+ var checkContBas = this.GetEntities(t => true, new BaseFilter(orgId));
+
+ 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 updateCheckQues = new List();
+ var checkContHids = this.GetEntities(t => true, new BaseFilter(orgId));
+
+ 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(deleteBasBasicIds);
+ if (deleteBasHiddenIds != null && deleteBasHiddenIds.Any())
+ this.BantchDeleteEntityNoCommit(deleteBasHiddenIds);
+ if (deleteBasConttentIds != null && deleteBasConttentIds.Any())
+ this.BantchDeleteEntityNoCommit(deleteBasConttentIds);
+ if (deleteBasDetailIds != null && deleteBasDetailIds.Any())
+ this.BantchDeleteEntityNoCommit(deleteBasDetailIds);
+ if (deleteBasIds != null && deleteBasIds.Any())
+ this.BantchDeleteEntityNoCommit(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;
+ });
+ }
///
/// 获取导入数据
/// 参考 [Route("api/PF/Import")]
@@ -2296,7 +3135,7 @@ namespace APT.SK.WebApi.Controllers
{
if (con.Contains("*"))
{
- var temp = con.Split("*")[1];
+ var temp = con.Split("*")[1] + "?";
var conFirst = checkCons.FirstOrDefault(t => t.CHECKCONTENT == temp);
if (conFirst == null)
{
@@ -2305,7 +3144,7 @@ namespace APT.SK.WebApi.Controllers
}
else
{
- Msg = Msg + "第" + (i + 3) + "行检查内容" + con + "格式不正确,请检查修改;";
+ Msg = Msg + "第" + (i + 3) + "行检查内容" + con + "?格式不正确,请检查修改;";
}
}
}
@@ -2408,11 +3247,11 @@ namespace APT.SK.WebApi.Controllers
if (item.Contains("*"))
{
var num = item.Split("*")[0];
- var name = item.Split("*")[1];
+ var name = item.Split("*")[1].ToString();
T_SK_BASIC_LIBRARY_DETAIL con = new T_SK_BASIC_LIBRARY_DETAIL();
con.ORG_ID = orgId;
con.BASIC_LIBRARY_ID = lib.ID;
- con.NUM = string.IsNullOrEmpty(num) ? null : int.Parse(num);
+ con.NUM = string.IsNullOrEmpty(num.ToString()) ? null : int.Parse(num.ToString());
con.MEASURES_NAME = name +"。";
libDetList.Add(con);
libDetTemp.Add(con);
@@ -2441,10 +3280,10 @@ namespace APT.SK.WebApi.Controllers
if (item.Contains("*"))
{
var num = item.Split("*")[0];
- var name = item.Split("*")[1];
+ var name = item.Split("*")[1].ToString() + "?";
if (num.Contains("."))
{
- var numTemp = int.Parse(num.Split(".")[0]);
+ var numTemp = int.Parse(num.Split(".")[0].ToString());
var detFirst = libDetTemp.FirstOrDefault(t => t.NUM != null && t.NUM == numTemp);
var conFirst = checkCons.FirstOrDefault(t => t.CHECKCONTENT == name);
if (detFirst != null && conFirst != null)
@@ -2453,7 +3292,7 @@ namespace APT.SK.WebApi.Controllers
con.ORG_ID = orgId;
con.BASIC_LIBRARY_DETAIL_ID = detFirst.ID;
con.NUM = int.Parse(num.Split(".")[1]);
- con.CHECK_CONTENT = name +"?";
+ con.CHECK_CONTENT = name;
con.CHECK_CONTENTS_ID = conFirst.ID;
con.CHECK_STANDARD = conFirst.CHECK_STANDARD;
libConList.Add(con);
diff --git a/APT.MicroApi/APT.SK.WebApi/Controllers/Api/CheckContentsController.cs b/APT.MicroApi/APT.SK.WebApi/Controllers/Api/CheckContentsController.cs
index f36d5de..ddddd8b 100644
--- a/APT.MicroApi/APT.SK.WebApi/Controllers/Api/CheckContentsController.cs
+++ b/APT.MicroApi/APT.SK.WebApi/Controllers/Api/CheckContentsController.cs
@@ -649,10 +649,17 @@ namespace APT.SK.WebApi.Controllers.Api
}
if (!string.IsNullOrEmpty(dtSource.Rows[i][1].ToString().Trim()))
{
- var conFirst = oldContents.FirstOrDefault(t => t.CHECKCONTENT == dtSource.Rows[i][1].ToString().Trim());
- if (conFirst != null)
+ if (!dtSource.Rows[i][1].ToString().Trim().EndsWith("?"))
{
- Msg = Msg + "第" + (i + 3) + "行检查内容" + dtSource.Rows[i][1].ToString().Trim() + "已存在,请勿重复导入;";
+ Msg = Msg + "第" + (i + 3) + "行检查内容" + dtSource.Rows[i][1].ToString().Trim() + "格式不正确,必须以中文问号结尾 ;";
+ }
+ else
+ {
+ var conFirst = oldContents.FirstOrDefault(t => t.CHECKCONTENT == dtSource.Rows[i][1].ToString().Trim());
+ if (conFirst != null)
+ {
+ Msg = Msg + "第" + (i + 3) + "行检查内容" + dtSource.Rows[i][1].ToString().Trim() + "已存在,请勿重复导入;";
+ }
}
}
else
@@ -727,7 +734,7 @@ namespace APT.SK.WebApi.Controllers.Api
}
else
{
- if (item.Split('*')[1] != "一般" && item.Split('*')[1] != "重大")
+ if (item.Split('*')[1].ToString() != "一般" && item.Split('*')[1].ToString() != "重大")
{
Msg = Msg + "第" + (i + 3) + "行隐患等级只能填写一般或重大";
}
@@ -808,10 +815,10 @@ namespace APT.SK.WebApi.Controllers.Api
T_SK_CHECK_QUESTION qu = new T_SK_CHECK_QUESTION();
qu.CHECK_CONTENTS_ID = content.ID;
qu.ORG_ID = orgId;
- qu.DESCREPTION = que.Split('*')[1]+"。";
- qu.DEMAND = mes.Split("*")[1] + "。";
- qu.QUESTION_LEVEL = level != null && level.Split("*")[1] == "重大" ? SKHiddenLevel.Major : SKHiddenLevel.General;
- qu.NUM = int.Parse(que.Split('*')[0]);
+ qu.DESCREPTION = que.Split('*')[1].ToString()+"。";
+ qu.DEMAND = mes.Split("*")[1].ToString() + "。";
+ qu.QUESTION_LEVEL = level != null && level.Split("*")[1].ToString() == "重大" ? SKHiddenLevel.Major : SKHiddenLevel.General;
+ qu.NUM = int.Parse(que.Split('*')[0].ToString());
qustions.Add(qu);
}
}