From d1c4b4e46596c62e269e43d466ec179f330281f6 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: Sun, 23 Nov 2025 19:34:58 +0800 Subject: [PATCH] =?UTF-8?q?=E6=A3=80=E6=9F=A5=E6=B8=85=E5=8D=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Controllers/FireJobController.cs | 2 +- .../Controllers/Api/FOController.cs | 7 +- .../Controllers/Api/CheckSetController.cs | 1955 ++++++++++------- 3 files changed, 1207 insertions(+), 757 deletions(-) diff --git a/APT.MicroApi/APT.FO.WebApi/Controllers/FireJobController.cs b/APT.MicroApi/APT.FO.WebApi/Controllers/FireJobController.cs index a8181e5..a6f399e 100644 --- a/APT.MicroApi/APT.FO.WebApi/Controllers/FireJobController.cs +++ b/APT.MicroApi/APT.FO.WebApi/Controllers/FireJobController.cs @@ -49,7 +49,7 @@ namespace APT.FO.WebApi.Controllers if (string.IsNullOrEmpty(id)) this.ThrowError("060010"); var entity = this.GetEntity(id, "Nav_ApplyUser", "Nav_Company", "Nav_ApplyDepartment", "Nav_OperationStep", "Nav_ProductionUnit", "Nav_FireUser.Nav_UserSignFiles.Nav_ImgFile", "Nav_FireDepartment", - "Nav_SafeUser.Nav_UserSignFiles.Nav_ImgFile", "Nav_Area", "Nav_Type", "Nav_MonitorUser.Nav_UserSignFiles.Nav_ImgFile", "Nav_Risks", "Nav_Files.Nav_ImgFile", "Nav_Users.Nav_UserType", "Nav_Users.Nav_User.Nav_UserSignFiles.Nav_ImgFile", "Nav_Users.Nav_UserFiles.Nav_ImgFile", + "Nav_SafeUser.Nav_UserSignFiles.Nav_ImgFile", "Nav_Area", "Nav_Type", "Nav_MonitorUser.Nav_UserSignFiles.Nav_ImgFile", "Nav_Risks", "Nav_Files.Nav_ImgFile", "Nav_Users.Nav_UserType", "Nav_Users.Nav_UserFiles.Nav_ImgFile", "Nav_FireFiles.Nav_ImgFile", "Nav_MonitorFiles.Nav_ImgFile", "Nav_DispatchUser.Nav_UserSignFiles.Nav_ImgFile"); if (entity != null) { diff --git a/APT.MicroApi/APT.PP.WebApi/Controllers/Api/FOController.cs b/APT.MicroApi/APT.PP.WebApi/Controllers/Api/FOController.cs index e89b934..326345b 100644 --- a/APT.MicroApi/APT.PP.WebApi/Controllers/Api/FOController.cs +++ b/APT.MicroApi/APT.PP.WebApi/Controllers/Api/FOController.cs @@ -1912,12 +1912,11 @@ namespace APT.PP.WebApi.Controllers.Api.PP try { var notices = new List(); - var dt = DateTime.Now.AddMinutes(-60); - var dtEnd = DateTime.Now.AddMinutes(-30); + var dt = DateTime.Now; var userType = this.GetEntity(t => t.NAME == "动火操作人员"); var steps = this.GetEntities(t =>t.IS_DELETED ==false, new BaseFilter(filter.OrgId)); var users = this.GetEntities(t => t.ENABLE_STATUS == 0 && !t.CODE.Contains("admin"), new BaseFilter(filter.OrgId)); - var jobs = this.GetEntities(t => t.STATUS == BaseData.Domain.Enums.PF.PFStandardStatus.Archived && t.JOB_DATE >= dt && t.JOB_DATE <= dtEnd && t.IS_RUN == false, new BaseFilter(filter.OrgId), "Nav_Users"); + var jobs = this.GetEntities(t => t.STATUS == BaseData.Domain.Enums.PF.PFStandardStatus.Archived && t.JOB_DATE.Value.AddMinutes(-30) <= dt && dt (t => t.STATUS == BaseData.Domain.Enums.PF.PFStandardStatus.Archived && t.JOB_DATE >= dt && t.JOB_DATE <= dtEnd && t.IS_RUN == false, new BaseFilter(filter.OrgId), "Nav_Users"); + var jobWbs = this.GetEntities(t => t.STATUS == BaseData.Domain.Enums.PF.PFStandardStatus.Archived && t.JOB_DATE.Value.AddMinutes(-30) <= dt && dt < t.JOB_DATE && t.IS_RUN == false, new BaseFilter(filter.OrgId), "Nav_Users"); if (userType != null && jobWbs != null && jobWbs.Any()) { foreach (var item in jobWbs) diff --git a/APT.MicroApi/APT.SK.WebApi/Controllers/Api/CheckSetController.cs b/APT.MicroApi/APT.SK.WebApi/Controllers/Api/CheckSetController.cs index 7fcd9bf..51949c2 100644 --- a/APT.MicroApi/APT.SK.WebApi/Controllers/Api/CheckSetController.cs +++ b/APT.MicroApi/APT.SK.WebApi/Controllers/Api/CheckSetController.cs @@ -2,23 +2,25 @@ using APT.BaseData.Domain.Entities.FM; using APT.BaseData.Domain.Enums; using APT.Infrastructure.Core; -using APT.MS.Domain.Entities.SC.SC; using APT.MS.Domain.Entities.SC; +using APT.MS.Domain.Entities.SC.PT; +using APT.MS.Domain.Entities.SC.SC; using APT.MS.Domain.Entities.SK; using APT.MS.Domain.Enums; +using APT.MS.Domain.Enums.SK; using APT.Utility; using Microsoft.AspNetCore.Mvc; +using Microsoft.Extensions.DependencyModel; +using Microsoft.Extensions.Hosting; +using Microsoft.Extensions.Logging; +using Org.BouncyCastle.Asn1.Ess; +using Org.BouncyCastle.Utilities; using System; using System.Collections.Generic; using System.Data; using System.IO; using System.Linq; -using APT.MS.Domain.Enums.SK; -using Microsoft.Extensions.Logging; -using Org.BouncyCastle.Utilities; using System.Reflection.Metadata; -using Microsoft.Extensions.Hosting; -using Microsoft.Extensions.DependencyModel; namespace APT.SK.WebApi.Controllers.Api { @@ -173,10 +175,10 @@ namespace APT.SK.WebApi.Controllers.Api throw new Exception("管控措施不能为空,请排查确认"); } var detAreaIds = details.Select(t => t.AREA_ID).Distinct().ToList(); - var areaInfo = this.GetEntity(t => detAreaIds.Contains(t.ID) && t.PARENT_ID !=null); + var areaInfo = this.GetEntity(t => detAreaIds.Contains(t.ID) && t.PARENT_ID != null); if (areaInfo != null) { - throw new Exception("入库区域只能为最小区域,当前区域"+ areaInfo.NAME + "仍有下级区域"); + throw new Exception("入库区域只能为最小区域,当前区域" + areaInfo.NAME + "仍有下级区域"); } foreach (var item in details) { @@ -443,7 +445,7 @@ namespace APT.SK.WebApi.Controllers.Api { return SafeExecute(() => { - if (entity.PRODUCTION_UNIT_ID == null && entity.CHECK_TYPE_ID == null || entity.CHECK_TYPE == null || entity.DEPARTMENT_ID == null || entity.Nav_CheckUsers == null||!entity.Nav_CheckUsers.Any()) + if (entity.PRODUCTION_UNIT_ID == null && entity.CHECK_TYPE_ID == null || entity.CHECK_TYPE == null || entity.DEPARTMENT_ID == null || entity.Nav_CheckUsers == null || !entity.Nav_CheckUsers.Any()) { throw new Exception("生产单元,检查层级,检查类型,检查周期,检查部门,检查人都不能为空"); } @@ -683,754 +685,1203 @@ namespace APT.SK.WebApi.Controllers.Api } } else if (post.Contains(",")) - { - var temp = post.Split(",").ToList(); - var postIdTemps = posts.Where(t => temp.Contains(t.NAME)).Select(m => m.ID).ToList(); - var postIds = users.Where(t => t.DEPARTMENT_ID == de.ID && postIdTemps.Contains((Guid)t.Nav_Person.POST_ID)).Select(m => m.Nav_Person.POST_ID).Distinct().ToList(); - if (postIds.Any()) - { - foreach (var po in postIds) - { - T_SK_CHECK_SET set = new T_SK_CHECK_SET(); - set.ORG_ID = orgId; - set.ID = Guid.NewGuid(); - set.MineType = mintype; - set.CHECK_CYCLE = SKPLANCHECKFREQUENCYEnum.Date; - set.CHECK_TYPE = SKDepartmentTypeEnum.班组级; - set.CHECK_TYPE_ID = checkType?.ID; - set.DEPARTMENT_ID = de.ID; - set.POST_ID = po; - set.CHECK_CONTENT = content; - set.HIDDEN_DESCRIPTION = hidden; - set.RECTIFICATION_MEASURES = measure; - set.AREA_NAME = areaName; - set.RISK_NAME = riskName; - sets.Add(set); - } - } - } - else - { - var postIdTemp = posts.FirstOrDefault(t => t.NAME == post); - if (postIdTemp != null) - { - var postId = users.FirstOrDefault(t => t.DEPARTMENT_ID == de.ID && t.Nav_Person.POST_ID == postIdTemp.ID); - if (postId != null) - { - T_SK_CHECK_SET set = new T_SK_CHECK_SET(); - set.ORG_ID = orgId; - set.ID = Guid.NewGuid(); - set.MineType = mintype; - set.CHECK_CYCLE = SKPLANCHECKFREQUENCYEnum.Date; - set.CHECK_TYPE = SKDepartmentTypeEnum.班组级; - set.CHECK_TYPE_ID = checkType?.ID; - set.DEPARTMENT_ID = de.ID; - set.POST_ID = postId.Nav_Person.POST_ID; - set.CHECK_CONTENT = content; - set.HIDDEN_DESCRIPTION = hidden; - set.RECTIFICATION_MEASURES = measure; - set.AREA_NAME = areaName; - set.RISK_NAME = riskName; - sets.Add(set); - } - } - } - } - } + { + var temp = post.Split(",").ToList(); + var postIdTemps = posts.Where(t => temp.Contains(t.NAME)).Select(m => m.ID).ToList(); + var postIds = users.Where(t => t.DEPARTMENT_ID == de.ID && postIdTemps.Contains((Guid)t.Nav_Person.POST_ID)).Select(m => m.Nav_Person.POST_ID).Distinct().ToList(); + if (postIds.Any()) + { + foreach (var po in postIds) + { + T_SK_CHECK_SET set = new T_SK_CHECK_SET(); + set.ORG_ID = orgId; + set.ID = Guid.NewGuid(); + set.MineType = mintype; + set.CHECK_CYCLE = SKPLANCHECKFREQUENCYEnum.Date; + set.CHECK_TYPE = SKDepartmentTypeEnum.班组级; + set.CHECK_TYPE_ID = checkType?.ID; + set.DEPARTMENT_ID = de.ID; + set.POST_ID = po; + set.CHECK_CONTENT = content; + set.HIDDEN_DESCRIPTION = hidden; + set.RECTIFICATION_MEASURES = measure; + set.AREA_NAME = areaName; + set.RISK_NAME = riskName; + sets.Add(set); + } + } + } + else + { + var postIdTemp = posts.FirstOrDefault(t => t.NAME == post); + if (postIdTemp != null) + { + var postId = users.FirstOrDefault(t => t.DEPARTMENT_ID == de.ID && t.Nav_Person.POST_ID == postIdTemp.ID); + if (postId != null) + { + T_SK_CHECK_SET set = new T_SK_CHECK_SET(); + set.ORG_ID = orgId; + set.ID = Guid.NewGuid(); + set.MineType = mintype; + set.CHECK_CYCLE = SKPLANCHECKFREQUENCYEnum.Date; + set.CHECK_TYPE = SKDepartmentTypeEnum.班组级; + set.CHECK_TYPE_ID = checkType?.ID; + set.DEPARTMENT_ID = de.ID; + set.POST_ID = postId.Nav_Person.POST_ID; + set.CHECK_CONTENT = content; + set.HIDDEN_DESCRIPTION = hidden; + set.RECTIFICATION_MEASURES = measure; + set.AREA_NAME = areaName; + set.RISK_NAME = riskName; + sets.Add(set); + } + } + } + } + } + } + else + { + var departTemp = departments.FirstOrDefault(t => depart == t.NAME); + if (departTemp != null) + { + if (post == "所有岗位") + { + var postIds = users.Where(t => t.DEPARTMENT_ID == departTemp.ID).Select(m => m.Nav_Person.POST_ID).Distinct().ToList(); + if (postIds.Any()) + { + foreach (var po in postIds) + { + T_SK_CHECK_SET set = new T_SK_CHECK_SET(); + set.ORG_ID = orgId; + set.ID = Guid.NewGuid(); + set.MineType = mintype; + set.CHECK_CYCLE = SKPLANCHECKFREQUENCYEnum.Date; + set.CHECK_TYPE = SKDepartmentTypeEnum.班组级; + set.CHECK_TYPE_ID = checkType?.ID; + set.DEPARTMENT_ID = departTemp.ID; + set.POST_ID = po; + set.CHECK_CONTENT = content; + set.HIDDEN_DESCRIPTION = hidden; + set.RECTIFICATION_MEASURES = measure; + set.AREA_NAME = areaName; + set.RISK_NAME = riskName; + sets.Add(set); + } + } + } + else if (post.Contains(",")) + { + var temp = post.Split(",").ToList(); + var postIdTemps = posts.Where(t => temp.Contains(t.NAME)).Select(m => m.ID).ToList(); + var postIds = users.Where(t => t.DEPARTMENT_ID == departTemp.ID && postIdTemps.Contains((Guid)t.Nav_Person.POST_ID)).Select(m => m.Nav_Person.POST_ID).Distinct().ToList(); + if (postIds.Any()) + { + foreach (var po in postIds) + { + T_SK_CHECK_SET set = new T_SK_CHECK_SET(); + set.ORG_ID = orgId; + set.ID = Guid.NewGuid(); + set.MineType = mintype; + set.CHECK_CYCLE = SKPLANCHECKFREQUENCYEnum.Date; + set.CHECK_TYPE = SKDepartmentTypeEnum.班组级; + set.CHECK_TYPE_ID = checkType?.ID; + set.DEPARTMENT_ID = departTemp.ID; + set.POST_ID = po; + set.CHECK_CONTENT = content; + set.HIDDEN_DESCRIPTION = hidden; + set.RECTIFICATION_MEASURES = measure; + set.AREA_NAME = areaName; + set.RISK_NAME = riskName; + sets.Add(set); + } + } + } + else + { + var postIdTemp = posts.FirstOrDefault(t => t.NAME == post); + if (postIdTemp != null) + { + var postId = users.FirstOrDefault(t => t.DEPARTMENT_ID == departTemp.ID && t.Nav_Person.POST_ID == postIdTemp.ID); + if (postId != null) + { + T_SK_CHECK_SET set = new T_SK_CHECK_SET(); + set.ORG_ID = orgId; + set.ID = Guid.NewGuid(); + set.MineType = mintype; + set.CHECK_CYCLE = SKPLANCHECKFREQUENCYEnum.Date; + set.CHECK_TYPE = SKDepartmentTypeEnum.班组级; + set.CHECK_TYPE_ID = checkType?.ID; + set.DEPARTMENT_ID = departTemp.ID; + set.POST_ID = postId.Nav_Person.POST_ID; + set.CHECK_CONTENT = content; + set.HIDDEN_DESCRIPTION = hidden; + set.RECTIFICATION_MEASURES = measure; + set.AREA_NAME = areaName; + set.RISK_NAME = riskName; + sets.Add(set); + } + } + } + } + } + laws.AddRange(sets); + } + List addSets = new List(); + List addSetContents = new List(); + List addSetHiddens = new List(); + List addSetAreas = new List(); + List addSetAreaRisks = new List(); + if (laws.Any()) + { + var list = laws.GroupBy(t => new { t.MineType, t.DEPARTMENT_ID, t.POST_ID, t.CHECK_CYCLE, t.CHECK_TYPE_ID, t.CHECK_TYPE }).ToList(); + if (list.Any()) + { + foreach (var item in list) + { + var exsist = standLaws.FirstOrDefault(t => t.MineType == item.Key.MineType && t.DEPARTMENT_ID == item.Key.DEPARTMENT_ID && t.POST_ID == item.Key.POST_ID && t.CHECK_CYCLE == item.Key.CHECK_CYCLE && t.CHECK_TYPE_ID == item.Key.CHECK_TYPE_ID && t.CHECK_TYPE == item.Key.CHECK_TYPE); + if (exsist == null) + { + T_SK_CHECK_SET set = new T_SK_CHECK_SET(); + set.ORG_ID = orgId; + set.ID = Guid.NewGuid(); + set.MineType = item.Key.MineType; + set.CHECK_CYCLE = item.Key.CHECK_CYCLE; + set.CHECK_TYPE = item.Key.CHECK_TYPE; + set.CHECK_TYPE_ID = item.Key.CHECK_TYPE_ID; + set.DEPARTMENT_ID = item.Key.DEPARTMENT_ID; + set.POST_ID = item.Key.POST_ID; + addSets.Add(set); + var contentsTemps = laws.Where(t => t.MineType == item.Key.MineType && t.DEPARTMENT_ID == item.Key.DEPARTMENT_ID && t.POST_ID == item.Key.POST_ID && t.CHECK_CYCLE == item.Key.CHECK_CYCLE && t.CHECK_TYPE_ID == item.Key.CHECK_TYPE_ID && t.CHECK_TYPE == item.Key.CHECK_TYPE).ToList(); + if (contentsTemps.Any()) + { + var distinctContents = contentsTemps.Select(t => t.CHECK_CONTENT).Distinct().ToList(); + if (distinctContents.Any()) + { + foreach (var item2 in distinctContents) + { + var content = checkContents.FirstOrDefault(t => t.CHECKCONTENT == item2); + T_SK_CHECK_SET_CONTENTS con = new T_SK_CHECK_SET_CONTENTS(); + con.ORG_ID = orgId; + con.ID = Guid.NewGuid(); + con.CHECK_SET_ID = set.ID; + con.CHECK_CONTENT = item2; + con.CHECK_CONTENTS_ID = content?.ID; + addSetContents.Add(con); + var hiddenTemps = contentsTemps.Where(t => t.CHECK_CONTENT == item2).ToList(); + if (hiddenTemps.Any()) + { + foreach (var item3 in hiddenTemps) + { + if (item3 != null && !string.IsNullOrEmpty(item3.HIDDEN_DESCRIPTION)) + { + var ques = checkQuestions.FirstOrDefault(t => t.DESCREPTION == item3.HIDDEN_DESCRIPTION); + T_SK_CHECK_SET_CONTENTS_HIDDEN hid = new T_SK_CHECK_SET_CONTENTS_HIDDEN(); + hid.ORG_ID = orgId; + hid.ID = Guid.NewGuid(); + hid.CHECK_CONTENTS_SET_ID = con.ID; + hid.CHECK_QUESTION_ID = ques?.ID; + hid.HIDDEN_DESCRIPTION = item3.HIDDEN_DESCRIPTION; + hid.RECTIFICATION_MEASURES = item3.RECTIFICATION_MEASURES; + addSetHiddens.Add(hid); + } + } + var distinctAreas = hiddenTemps.Select(t => t.AREA_NAME).Distinct().ToList(); + if (distinctAreas.Any()) + { + foreach (var item3 in distinctAreas) + { + var area = areaLists.FirstOrDefault(t => t.NAME == item3); + if (area != null) + { + T_SK_CHECK_SET_CONTENTS_AREA are = new T_SK_CHECK_SET_CONTENTS_AREA(); + are.ORG_ID = orgId; + are.ID = Guid.NewGuid(); + are.CHECK_SET_CONTENTS_ID = con.ID; + are.AREA_ID = area.ID; + addSetAreas.Add(are); + var riskNameTemps = hiddenTemps.Where(t => t.AREA_NAME == item3).Select(m => m.RISK_NAME).Distinct().ToList(); + if (riskNameTemps.Any()) + { + foreach (var item4 in riskNameTemps) + { + if (item4 == "所有风险") + { + var libraryTempIds = librarys.Where(t => t.MineType == item.Key.MineType && t.AREA_ID == area.ID).Select(t => t.RISK_NAME_ID).Distinct().ToList(); + if (libraryTempIds.Any()) + { + foreach (var item5 in libraryTempIds) + { + var exsistRisk = addSetAreaRisks.FirstOrDefault(t => t.CHECK_SET_CONTENTS_AREA_ID == are.ID && t.RISK_NAME_ID == item5); + if (exsistRisk == null) + { + T_SK_CHECK_SET_CONTENTS_AREA_RISK risk = new T_SK_CHECK_SET_CONTENTS_AREA_RISK(); + risk.ORG_ID = orgId; + risk.ID = Guid.NewGuid(); + risk.CHECK_SET_CONTENTS_AREA_ID = are.ID; + risk.RISK_NAME_ID = item5; + addSetAreaRisks.Add(risk); + } + } + } + } + else if (item4.Contains("、")) + { + var temp = item4.Split("、").ToList(); + var riskTemps = riskNames.Where(t => temp.Contains(t.NAME)).ToList(); + if (riskTemps.Any()) + { + foreach (var item5 in riskTemps) + { + var exsistRisk = addSetAreaRisks.FirstOrDefault(t => t.CHECK_SET_CONTENTS_AREA_ID == are.ID && t.RISK_NAME_ID == item5.ID); + if (exsistRisk == null) + { + T_SK_CHECK_SET_CONTENTS_AREA_RISK risk = new T_SK_CHECK_SET_CONTENTS_AREA_RISK(); + risk.ORG_ID = orgId; + risk.ID = Guid.NewGuid(); + risk.CHECK_SET_CONTENTS_AREA_ID = are.ID; + risk.RISK_NAME_ID = item5.ID; + addSetAreaRisks.Add(risk); + } + } + } + } + else + { + var riskTemp = riskNames.FirstOrDefault(t => item4 == t.NAME); + if (riskTemp != null) + { + var exsistRisk = addSetAreaRisks.FirstOrDefault(t => t.CHECK_SET_CONTENTS_AREA_ID == are.ID && t.RISK_NAME_ID == riskTemp.ID); + if (exsistRisk == null) + { + T_SK_CHECK_SET_CONTENTS_AREA_RISK risk = new T_SK_CHECK_SET_CONTENTS_AREA_RISK(); + risk.ORG_ID = orgId; + risk.ID = Guid.NewGuid(); + risk.CHECK_SET_CONTENTS_AREA_ID = are.ID; + risk.RISK_NAME_ID = riskTemp.ID; + addSetAreaRisks.Add(risk); + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + if (!string.IsNullOrEmpty(Msg)) + { + throw new Exception(Msg); + } + else + { + UnifiedCommit(() => + { + if (addSets != null && addSets.Any()) + BantchAddEntityNoCommit(addSets); + if (addSetContents != null && addSetContents.Any()) + BantchAddEntityNoCommit(addSetContents); + if (addSetHiddens != null && addSetHiddens.Any()) + BantchAddEntityNoCommit(addSetHiddens); + if (addSetAreas != null && addSetAreas.Any()) + BantchAddEntityNoCommit(addSetAreas); + if (addSetAreaRisks != null && addSetAreaRisks.Any()) + BantchAddEntityNoCommit(addSetAreaRisks); + }); + Msg = "导入成功!"; + } + return true; + } + + public bool InsertModel2(DataTable dtSource, Guid? orgId, ref string Msg, int rowIndex = 1) + { + var userId = APT.Infrastructure.Api.AppContext.CurrentSession.UserID; + if (dtSource == null || dtSource.Rows.Count < rowIndex) + { + Msg = "未获取到导入数据"; + throw new Exception(Msg); + } + int rowAll = dtSource.Rows.Count; + if (!string.IsNullOrEmpty(Msg)) + { + throw new Exception(Msg); + } + var librarys = GetEntities(t => t.IS_DELETED == false, new BaseFilter(orgId)); + var checkTypes = this.GetEntities(t => !t.IS_DELETED, new BaseFilter(orgId)); + var checkContents = this.GetEntities(t => t.IS_DELETED == false, new BaseFilter(orgId)); + var checkQuestions = this.GetEntities(t => t.IS_DELETED == false, new BaseFilter(orgId)); + var departments = GetEntities(t => t.IS_DELETED == false, new BaseFilter(orgId)); + var areaLists = GetEntities(t => t.IS_DELETED == false, new BaseFilter(orgId)); + var posts = GetEntities(t => t.IS_DELETED == false, new BaseFilter(orgId)); + var riskNames = GetEntities(t => t.IS_DELETED == false, new BaseFilter(orgId)); + var users = GetEntities(i => i.Nav_Person != null, new BaseFilter(orgId), "Nav_Person", "Nav_ApproveRole").ToList(); + DateTime dtNow = DateTime.Now; + KeywordFilter filter = new KeywordFilter(); + filter.OrgId = orgId; + filter.Keyword = "0"; + if (dtSource.Rows.Count == 1) + { + throw new Exception("导入必须两条以上,一条请直接新增"); + } + List imports = new List(); + int j = 1; + for (int i = 0; i < rowAll; i++) + { + ImportDetails set = new ImportDetails(); + var minetype = dtSource.Rows[i][0].ToString().Trim(); + if (!string.IsNullOrEmpty(minetype)) + { + switch (minetype) + { + case "全公司": + set.MineType = SKProductionUnit.All; + break; + case "露天矿": + set.MineType = SKProductionUnit.Mine; + break; + case "选矿厂": + set.MineType = SKProductionUnit.MineChoose; + break; + case "尾矿库": + set.MineType = SKProductionUnit.Minelast; + break; + case "职能口": + set.MineType = SKProductionUnit.Department; + break; + case "非金属": + set.MineType = SKProductionUnit.Nonmetallic; + break; + case "地下矿": + set.MineType = SKProductionUnit.MineUnderGround; + break; + default: + set.MineType = SKProductionUnit.All; + break; + } + } + var departType = dtSource.Rows[i][1].ToString().Trim(); + if (!string.IsNullOrEmpty(departType)) + { + switch (departType) + { + case "部门级": + set.DepartType = SKDepartmentTypeEnum.部门级; + break; + case "车间级": + set.DepartType = SKDepartmentTypeEnum.车间级; + break; + case "班组级": + set.DepartType = SKDepartmentTypeEnum.班组级; + break; + case "公司级": + set.DepartType = SKDepartmentTypeEnum.公司级; + break; + case "岗位级": + set.DepartType = SKDepartmentTypeEnum.班组级; + break; + default: + set.DepartType = SKDepartmentTypeEnum.公司级; + break; + } + } + var checkType = dtSource.Rows[i][2].ToString().Trim(); + if (!string.IsNullOrEmpty(checkType)) + { + var type = checkTypes.FirstOrDefault(t => t.NAME == checkType); + if (type != null) + { + set.CheckTypeId = type.ID; + } + } + var checkCycle = dtSource.Rows[i][3].ToString().Trim(); + if (!string.IsNullOrEmpty(checkCycle)) + { + switch (checkCycle) + { + case "每班": + set.CheckCycle = SKPLANCHECKFREQUENCYEnum.Date; + break; + case "每天": + set.CheckCycle = SKPLANCHECKFREQUENCYEnum.Date; + break; + case "每周": + set.CheckCycle = SKPLANCHECKFREQUENCYEnum.Week; + break; + case "每月": + set.CheckCycle = SKPLANCHECKFREQUENCYEnum.Month; + break; + case "每年": + set.CheckCycle = SKPLANCHECKFREQUENCYEnum.Year; + break; + default: + set.CheckCycle = SKPLANCHECKFREQUENCYEnum.Date; + break; + } + } + set.CheckContent = dtSource.Rows[i][4].ToString().Trim(); + set.HiddenScript = dtSource.Rows[i][5].ToString().Trim(); + set.Measure = dtSource.Rows[i][6].ToString().Trim(); + set.Areas = dtSource.Rows[i][7].ToString().Trim(); + set.Risks = dtSource.Rows[i][8].ToString().Trim(); + imports.Add(set); + } + List addSets = new List(); + List addSetContents = new List(); + List addSetHiddens = new List(); + List addSetAreas = new List(); + List addSetAreaRisks = new List(); + if (imports.Any()) + { + var departLevelGroups = imports.GroupBy(t => new { t.MineType, t.DepartType, t.CheckTypeId, t.CheckCycle }).ToList(); + if (departLevelGroups.Any()) + { + foreach (var item in departLevelGroups) + { + T_SK_CHECK_SET set = new T_SK_CHECK_SET(); + set.ORG_ID = orgId; + set.ID = Guid.NewGuid(); + set.MineType = item.Key.MineType; + set.CHECK_CYCLE = item.Key.CheckCycle; + set.CHECK_TYPE = item.Key.DepartType; + set.CHECK_TYPE_ID = item.Key.CheckTypeId; + addSets.Add(set); + var contents = imports.Where(t => t.MineType == item.Key.MineType && t.DepartType == item.Key.DepartType && t.CheckCycle == item.Key.CheckCycle && t.CheckTypeId == item.Key.CheckTypeId).ToList(); + var contentGroups = contents.GroupBy(t => new { t.MineType, t.DepartType, t.CheckTypeId, t.CheckCycle, t.CheckContent }).ToList(); + if (contentGroups.Any()) + { + foreach (var item2 in contentGroups) + { + var content = checkContents.FirstOrDefault(t => t.CHECKCONTENT == item2.Key.CheckContent); + T_SK_CHECK_SET_CONTENTS con = new T_SK_CHECK_SET_CONTENTS(); + con.ORG_ID = orgId; + con.ID = Guid.NewGuid(); + con.CHECK_SET_ID = set.ID; + con.CHECK_CONTENT = item2.Key.CheckContent; + con.CHECK_CONTENTS_ID = content?.ID; + addSetContents.Add(con); + var hiddenTemps = contents.Where(t => t.CheckContent == item2.Key.CheckContent).ToList(); + if (hiddenTemps.Any()) + { + foreach (var item3 in hiddenTemps) + { + var ques = checkQuestions.FirstOrDefault(t => t.DESCREPTION == item3.HiddenScript && t.CHECK_CONTENTS_ID == con.CHECK_CONTENTS_ID); + T_SK_CHECK_SET_CONTENTS_HIDDEN hid = new T_SK_CHECK_SET_CONTENTS_HIDDEN(); + hid.ORG_ID = orgId; + hid.ID = Guid.NewGuid(); + hid.CHECK_CONTENTS_SET_ID = con.ID; + hid.CHECK_QUESTION_ID = ques?.ID; + hid.HIDDEN_DESCRIPTION = item3.HiddenScript; + hid.RECTIFICATION_MEASURES = item3.Measure; + addSetHiddens.Add(hid); + } + } + var areaList = new List(); + var areaTemps = contents.Where(t => t.CheckContent == item2.Key.CheckContent).Select(m => m.Areas).ToList(); + if (areaTemps.Any()) + { + foreach (var item3 in areaTemps) + { + if (item3.Contains(",")) + { + var temp = item3.Split(",").ToList(); + areaList.AddRange(temp); + } + else + { + areaList.Add(item3); + } + } + } + areaList = areaList.Distinct().ToList(); + if (areaList.Any()) + { + foreach (var item3 in areaList) + { + if (!string.IsNullOrEmpty(item3)) + { + var area = areaLists.FirstOrDefault(t => t.NAME == item3); + T_SK_CHECK_SET_CONTENTS_AREA are = new T_SK_CHECK_SET_CONTENTS_AREA(); + are.ORG_ID = orgId; + are.ID = Guid.NewGuid(); + are.CHECK_SET_CONTENTS_ID = con.ID; + are.AREA_ID = area.ID; + addSetAreas.Add(are); + var libraryTempIds = librarys.Where(t => t.MineType == item.Key.MineType && t.AREA_ID == area.ID).Select(t => t.RISK_NAME_ID).Distinct().ToList(); + if (libraryTempIds.Any()) + { + foreach (var item5 in libraryTempIds) + { + var exsistRisk = addSetAreaRisks.FirstOrDefault(t => t.CHECK_SET_CONTENTS_AREA_ID == are.ID && t.RISK_NAME_ID == item5); + if (exsistRisk == null) + { + T_SK_CHECK_SET_CONTENTS_AREA_RISK risk = new T_SK_CHECK_SET_CONTENTS_AREA_RISK(); + risk.ORG_ID = orgId; + risk.ID = Guid.NewGuid(); + risk.CHECK_SET_CONTENTS_AREA_ID = are.ID; + risk.RISK_NAME_ID = item5; + addSetAreaRisks.Add(risk); + } + } + } + } + } + } + } + } + } + } + } + if (!string.IsNullOrEmpty(Msg)) + { + throw new Exception(Msg); + } + else + { + UnifiedCommit(() => + { + if (addSets != null && addSets.Any()) + BantchAddEntityNoCommit(addSets); + if (addSetContents != null && addSetContents.Any()) + BantchAddEntityNoCommit(addSetContents); + if (addSetHiddens != null && addSetHiddens.Any()) + { + addSetHiddens = addSetHiddens.Distinct(t => new { t.CHECK_CONTENTS_SET_ID, t.CHECK_QUESTION_ID, t.HIDDEN_DESCRIPTION, t.HIDDEN_LEVEL, t.RECTIFICATION_MEASURES }).ToList(); + BantchAddEntityNoCommit(addSetHiddens); + } + if (addSetAreas != null && addSetAreas.Any()) + BantchAddEntityNoCommit(addSetAreas); + if (addSetAreaRisks != null && addSetAreaRisks.Any()) + BantchAddEntityNoCommit(addSetAreaRisks); + }); + Msg = "导入成功!"; + } + return true; + } + + public bool InsertModel3(DataTable dtSource, Guid? orgId, ref string Msg, int rowIndex = 1) + { + var userId = APT.Infrastructure.Api.AppContext.CurrentSession.UserID; + if (dtSource == null || dtSource.Rows.Count < rowIndex) + { + Msg = "未获取到导入数据"; + throw new Exception(Msg); + } + int rowAll = dtSource.Rows.Count; + if (!string.IsNullOrEmpty(Msg)) + { + throw new Exception(Msg); + } + var checkTypes = this.GetEntities(t => !t.IS_DELETED, new BaseFilter(orgId)); + DateTime dtNow = DateTime.Now; + if (dtSource.Rows.Count == 1) + { + throw new Exception("导入必须两条以上,一条请直接新增"); + } + List imports = new List(); + int j = 1; + for (int i = 0; i < rowAll; i++) + { + ImportDetails set = new ImportDetails(); + set.CheckContent = dtSource.Rows[i][2].ToString().Trim(); + imports.Add(set); + } + List addSets = new List(); + if (imports.Any()) + { + var departLevelGroups = imports.GroupBy(t => new { t.CheckContent }).ToList(); + if (departLevelGroups.Any()) + { + foreach (var item in departLevelGroups) + { + var type = checkTypes.FirstOrDefault(t => t.NAME == item.Key.CheckContent); + if (type == null) + { + T_SK_CHECK_TYPE set = new T_SK_CHECK_TYPE(); + set.ORG_ID = orgId; + set.ID = Guid.NewGuid(); + set.MineType = SKProductionUnit.Minelast; + set.NAME = item.Key.CheckContent; + addSets.Add(set); + } + } + } + } + if (!string.IsNullOrEmpty(Msg)) + { + throw new Exception(Msg); + } + else + { + UnifiedCommit(() => + { + if (addSets != null && addSets.Any()) + BantchAddEntityNoCommit(addSets); + }); + Msg = "导入成功!"; + } + return true; + } + + public bool InsertModel4(DataTable dtSource, Guid? orgId, ref string Msg, int rowIndex = 1) + { + var userId = APT.Infrastructure.Api.AppContext.CurrentSession.UserID; + if (dtSource == null || dtSource.Rows.Count < rowIndex) + { + Msg = "未获取到导入数据"; + throw new Exception(Msg); + } + int rowAll = dtSource.Rows.Count; + if (!string.IsNullOrEmpty(Msg)) + { + throw new Exception(Msg); + } + var checkContents = this.GetEntities(t => t.IS_DELETED == false, new BaseFilter(orgId)); + var checkQuestions = this.GetEntities(t => t.IS_DELETED == false, new BaseFilter(orgId)); + DateTime dtNow = DateTime.Now; + if (dtSource.Rows.Count == 1) + { + throw new Exception("导入必须两条以上,一条请直接新增"); + } + List imports = new List(); + int j = 1; + for (int i = 0; i < rowAll; i++) + { + ImportDetails set = new ImportDetails(); + set.CheckContent = dtSource.Rows[i][4].ToString().Trim(); + set.HiddenScript = dtSource.Rows[i][5].ToString().Trim(); + set.Measure = dtSource.Rows[i][6].ToString().Trim(); + imports.Add(set); + } + List addSets = new List(); + List addQues = new List(); + if (imports.Any()) + { + var departLevelGroups = imports.GroupBy(t => new { t.CheckContent }).ToList(); + if (departLevelGroups.Any()) + { + foreach (var item in departLevelGroups) + { + var type = checkContents.FirstOrDefault(t => t.CHECKCONTENT == item.Key.CheckContent); + if (type == null) + { + T_SK_CHECK_CONTENTS set = new T_SK_CHECK_CONTENTS(); + set.ORG_ID = orgId; + set.ID = Guid.NewGuid(); + set.MineType = SKProductionUnit.Minelast; + set.CHECKCONTENT = item.Key.CheckContent; + addSets.Add(set); + var contents = imports.Where(t => t.CheckContent == item.Key.CheckContent).ToList(); + if (contents.Any()) + { + foreach (var item2 in contents) + { + T_SK_CHECK_QUESTION qu = new T_SK_CHECK_QUESTION(); + qu.ORG_ID = orgId; + qu.ID = Guid.NewGuid(); + qu.CHECK_CONTENTS_ID = set.ID; + qu.DESCREPTION = item2.HiddenScript; + qu.QUESTION_LEVEL = SKHiddenLevel.General; + qu.DEMAND = item2.Measure; + addQues.Add(qu); + } + } + } + else + { + var contents = imports.Where(t => t.CheckContent == item.Key.CheckContent).ToList(); + if (contents.Any()) + { + foreach (var item2 in contents) + { + var que = checkQuestions.FirstOrDefault(t => t.CHECK_CONTENTS_ID == type.ID && t.DESCREPTION == item2.HiddenScript); + if (que == null) + { + T_SK_CHECK_QUESTION qu = new T_SK_CHECK_QUESTION(); + qu.ORG_ID = orgId; + qu.ID = Guid.NewGuid(); + qu.CHECK_CONTENTS_ID = type.ID; + qu.DESCREPTION = item2.HiddenScript; + qu.QUESTION_LEVEL = SKHiddenLevel.General; + qu.DEMAND = item2.Measure; + addQues.Add(qu); + } + } + } + } + } + } + } + if (!string.IsNullOrEmpty(Msg)) + { + throw new Exception(Msg); + } + else + { + UnifiedCommit(() => + { + if (addSets != null && addSets.Any()) + BantchAddEntityNoCommit(addSets); + if (addQues != null && addQues.Any()) + BantchAddEntityNoCommit(addQues); + }); + Msg = "导入成功!"; + } + return true; + } + /// + /// 数据插入 + /// + /// + /// + /// + /// + /// + /// + public bool InsertModel5(DataTable dtSource, Guid? orgId, ref string Msg, int rowIndex = 1) + { + var userId = APT.Infrastructure.Api.AppContext.CurrentSession.UserID; + if (dtSource == null || dtSource.Rows.Count < rowIndex) + { + Msg = "未获取到导入数据"; + throw new Exception(Msg); + } + int rowAll = dtSource.Rows.Count; + if (!string.IsNullOrEmpty(Msg)) + { + throw new Exception(Msg); + } + var librarys = this.GetEntities(t => !t.IS_DELETED && t.ENABLE_STATUS == 0, new BaseFilter(orgId)); + var libraryDetails = this.GetEntities(t => !t.IS_DELETED, new BaseFilter(orgId)); + var sets = this.GetEntities(t => !t.IS_DELETED, new BaseFilter(orgId)); + var checkTypes = this.GetEntities(t => !t.IS_DELETED, new BaseFilter(orgId)); + var productUnits = this.GetEntities(t => !t.IS_DELETED, new BaseFilter(orgId)); + var areas = this.GetEntities(t => !t.IS_DELETED, new BaseFilter(orgId)); + var contents = this.GetEntities(t => !t.IS_DELETED, new BaseFilter(orgId)); + List setLists = new List(); + List setContentLists = new List(); + List setUserLists = new List(); + var posts = GetEntities(t => t.IS_DELETED == false, new BaseFilter(orgId)); + var departments = GetEntities(t => t.IS_DELETED == false && t.ENABLE_STATUS == 0, new BaseFilter(orgId)); + var users = GetEntities(t => t.IS_DELETED == false && t.ENABLE_STATUS == 0, new BaseFilter(orgId)); + int j = 1; + for (int i = 0; i < rowAll; i++) + { + var row1 = dtSource.Rows[i][0].ToString().Trim(); + var row2 = dtSource.Rows[i][1].ToString().Trim(); + var row3 = dtSource.Rows[i][2].ToString().Trim(); + var row4 = dtSource.Rows[i][3].ToString().Trim(); + var row5 = dtSource.Rows[i][4].ToString().Trim(); + var row6 = dtSource.Rows[i][5].ToString().Trim(); + var row7 = dtSource.Rows[i][6].ToString().Trim(); + var row8 = dtSource.Rows[i][7].ToString().Trim(); + var row9 = dtSource.Rows[i][8].ToString().Trim(); + var row10 = dtSource.Rows[i][9].ToString().Trim(); + Guid? productUnitId = null; + SKDepartmentTypeEnum departType = SKDepartmentTypeEnum.班组级; + Guid? checkTypeId = null; + Guid? departId = null; + SKPLANCHECKFREQUENCYEnum checkCycle = SKPLANCHECKFREQUENCYEnum.Date; + bool isJump = false; + if (!string.IsNullOrEmpty(row1) && !string.IsNullOrEmpty(row2) && !string.IsNullOrEmpty(row3) && !string.IsNullOrEmpty(row4) && !string.IsNullOrEmpty(row5)) + { + var proFirst = productUnits.FirstOrDefault(t => t.NAME == row1); + if (proFirst == null) + { + isJump = true; + if (string.IsNullOrEmpty(Msg)) + Msg = "第" + (i + 2) + "行第1列:生产单元" + row1 + "未配置,请先到系统管理维护,此行跳过未导入"; + else + Msg = Msg + "\n" + "第" + (i + 2) + "行第1列:生产单元" + row1 + "未配置,请先到系统管理维护,此行跳过未导入"; + } + else + { + productUnitId = proFirst.ID; + var checkTypeFirst = checkTypes.FirstOrDefault(t => t.PRODUCTION_UNIT_ID == proFirst.ID && t.NAME == row3); + if (checkTypeFirst == null) + { + isJump = true; + if (string.IsNullOrEmpty(Msg)) + Msg = "第" + (i + 2) + "行第3列:生产单元" + row1 + "未找到名为" + row3 + "检查类型,请先到系统管理维护,此行跳过未导入"; + else + Msg = Msg + "\n" + "第" + (i + 2) + "行第3列:生产单元" + row1 + "未找到名为" + row3 + "检查类型,请先到系统管理维护,此行跳过未导入"; + } + else + { + checkTypeId = checkTypeFirst.ID; + } + } + if (row2 != "公司级" && row2 != "部门级" && row2 != "车间级" && row2 != "班组级") + { + isJump = true; + if (string.IsNullOrEmpty(Msg)) + Msg = "第" + (i + 2) + "行第2列:检查层级未按规定填写(公司级,部门级,车间级,班组级),此行跳过未导入"; + else + Msg = Msg + "\n" + "第" + (i + 2) + "行第2列:检查层级未按规定填写(公司级,部门级,车间级,班组级),此行跳过未导入"; + } + else + { + switch (row2) + { + case "公司级": + departType = SKDepartmentTypeEnum.公司级; + break; + case "部门级": + departType = SKDepartmentTypeEnum.部门级; + break; + case "车间级": + departType = SKDepartmentTypeEnum.车间级; + break; + case "班组级": + departType = SKDepartmentTypeEnum.班组级; + break; + default: + departType = SKDepartmentTypeEnum.班组级; + break; + } + } + if (row4 != "每天" && row4 != "每周" && row4 != "每月" && row4 != "每季度" && row4 != "每年") + { + isJump = true; + if (string.IsNullOrEmpty(Msg)) + Msg = "第" + (i + 2) + "行第4列:检查周期未按规定填写(每天,每周,每月,每季度,每年),此行跳过未导入"; + else + Msg = Msg + "\n" + "第" + (i + 2) + "行第4列:检查周期未按规定填写(每天,每周,每月,每季度,每年),此行跳过未导入"; + } + else + { + switch (row4) + { + case "每天": + checkCycle = SKPLANCHECKFREQUENCYEnum.Date; + break; + case "每周": + checkCycle = SKPLANCHECKFREQUENCYEnum.Week; + break; + case "每月": + checkCycle = SKPLANCHECKFREQUENCYEnum.Month; + break; + case "每季度": + checkCycle = SKPLANCHECKFREQUENCYEnum.Quarter; + break; + case "每年": + checkCycle = SKPLANCHECKFREQUENCYEnum.Year; + break; + default: + checkCycle = SKPLANCHECKFREQUENCYEnum.Date; + break; + } + } + var departFirt = departments.FirstOrDefault(t => t.NAME == row5); + if (departFirt == null) + { + isJump = true; + if (string.IsNullOrEmpty(Msg)) + Msg = "第" + (i + 2) + "行第5列:检查部门" + row5 + "未找到,请先到组织架构维护,此行跳过未导入"; + else + Msg = Msg + "\n" + "第" + (i + 2) + "行第5列:检查部门" + row5 + "未找到,请先到组织架构维护,此行跳过未导入"; + } + else + { + departId = departFirt.ID; + } + if (isJump == false) + { + var setFirst = sets.FirstOrDefault(t => t.PRODUCTION_UNIT_ID == productUnitId && t.DEPARTMENT_ID == departId && t.CHECK_TYPE_ID == checkTypeId && t.CHECK_TYPE == departType && t.CHECK_CYCLE == checkCycle); + if (setFirst != null) + { + if (string.IsNullOrEmpty(Msg)) + Msg = "第" + (i + 2) + "行:生产单元" + row1 + ",检查层级" + row2 + ",检查类型" + row3 + ",检查周期" + row4 + ",检查部门" + row5 + "已存在,请直接到系统修改,此行跳过未导入"; + else + Msg = Msg + "\n" + "第" + (i + 2) + "行:生产单元" + row1 + ",检查层级" + row2 + ",检查类型" + row3 + ",检查周期" + row4 + ",检查部门" + row5 + "已存在,请直接到系统修改,此行跳过未导入"; + } + else + { + T_SK_CHECK_SET assess = new T_SK_CHECK_SET(); + assess.ID = Guid.NewGuid(); + assess.ORG_ID = orgId; + assess.PRODUCTION_UNIT_ID = productUnitId; + assess.DEPARTMENT_ID = departId; + assess.CHECK_TYPE_ID = checkTypeId; + assess.CHECK_TYPE = departType; + assess.CHECK_CYCLE = checkCycle; + var checkUsers = new List(); + var checkContents = new List(); + var riskAreas = new List(); + var riskNames = new List(); + var measures = new List(); + var checkUserLists = string.IsNullOrEmpty(row6) ? null : row6.Split(";").ToList(); + var contentLists = string.IsNullOrEmpty(row7) ? null : row7.Split(";").ToList(); + var areaLists = string.IsNullOrEmpty(row8) ? null : row8.Split(";").ToList(); + var riskNameLists = string.IsNullOrEmpty(row9) ? null : row9.Split(";").ToList(); + var mesureLists = string.IsNullOrEmpty(row10) ? null : row10.Split(";").ToList(); + if (checkUserLists != null) + { + foreach (var ite in checkUserLists) + { + if (!string.IsNullOrEmpty(ite)) + checkUsers.Add(ite); + } + } + if (checkUsers.Any()) + { + foreach (var item in checkUsers) + { + var itemArr = item.Split("、"); + if (itemArr.Length != 2) + { + var userFirst = users.FirstOrDefault(t => t.NAME == item); + if (userFirst != null) + { + T_SK_CHECK_SET_USER content = new T_SK_CHECK_SET_USER(); + content.CHECK_SET_ID = assess.ID; + content.ORG_ID = orgId; + content.USER_ID = userFirst.ID; + setUserLists.Add(content); + } + } + else + { + var userFirst = users.FirstOrDefault(t => t.NAME == itemArr[1].ToString()); + if (userFirst != null) + { + T_SK_CHECK_SET_USER content = new T_SK_CHECK_SET_USER(); + content.CHECK_SET_ID = assess.ID; + content.ORG_ID = orgId; + content.USER_ID = userFirst.ID; + setUserLists.Add(content); + } + } + } + } + if (contentLists != null) + { + foreach (var ite in contentLists) + { + if (!string.IsNullOrEmpty(ite)) + checkContents.Add(ite); + } + if (areaLists != null) + { + foreach (var ite in areaLists) + { + if (!string.IsNullOrEmpty(ite)) + riskAreas.Add(ite); + } + } + if (riskNameLists != null) + { + foreach (var ite in riskNameLists) + { + if (!string.IsNullOrEmpty(ite)) + riskNames.Add(ite); + } + } + if (mesureLists != null) + { + foreach (var ite in mesureLists) + { + if (!string.IsNullOrEmpty(ite)) + measures.Add(ite); + } + } + if (riskAreas.Any() && checkContents.Any() && riskAreas.Count() != checkContents.Count()) + throw new Exception("第" + (i + 2) + "行,辨识区域与检查内容数量不匹配"); + if (riskNames.Any() && checkContents.Any() && riskNames.Count() != checkContents.Count()) + throw new Exception("第" + (i + 2) + "行,风险名称与检查内容数量不匹配"); + if (measures.Any() && checkContents.Any() && measures.Count() != checkContents.Count()) + throw new Exception("第" + (i + 2) + "行,风险名称与检查内容数量不匹配"); + if (checkContents.Any()) + { + var NO = 1; + foreach (var item in checkContents) + { + T_SK_CHECK_SET_CONTENTS content = new T_SK_CHECK_SET_CONTENTS(); + content.CHECK_SET_ID = assess.ID; + content.ORG_ID = orgId; + var itemArr = item.Split("、"); + if (itemArr.Length != 2) + { + var conFirst = contents.FirstOrDefault(t => t.CHECKCONTENT == item.ToString()); + if (conFirst != null) + { + content.NUM = NO; + content.CHECK_CONTENTS_ID = conFirst.ID; + content.CHECK_CONTENT = conFirst.CHECKCONTENT; + setContentLists.Add(content); + } + } + else + { + var conFirst = contents.FirstOrDefault(t => t.CHECKCONTENT == itemArr[1].ToString()); + if (conFirst != null) + { + content.NUM = int.Parse(itemArr[0]); + content.CHECK_CONTENTS_ID = conFirst.ID; + content.CHECK_CONTENT = conFirst.CHECKCONTENT; + setContentLists.Add(content); + } + } + NO++; + } + } + if (riskAreas.Any()) + { + var NO = 1; + foreach (var item in riskAreas) + { + var itemArr = item.Split("、"); + if (itemArr.Length != 2) + { + var areaFirst = areas.FirstOrDefault(t => t.NAME == item.ToString()); + var content = setContentLists.FirstOrDefault(t => t.CHECK_SET_ID == assess.ID && t.NUM == NO); + if (content != null && areaFirst != null) + content.AREA_ID = areaFirst.ID; + } + else + { + var areaFirst = areas.FirstOrDefault(t => t.NAME == itemArr[1]); + var content = setContentLists.FirstOrDefault(t => t.CHECK_SET_ID == assess.ID && t.NUM == int.Parse(itemArr[0])); + if (content != null && areaFirst != null) + content.AREA_ID = areaFirst.ID; + } + NO++; + } + } + if (riskNames != null && riskNames.Any()) + { + var NO = 1; + foreach (var item in riskNames) + { + var itemArr = item.Split("、"); + if (itemArr.Length != 2) + { + var content = setContentLists.FirstOrDefault(t => t.CHECK_SET_ID == assess.ID && t.NUM == NO); + if (content != null) + { + var libFirst = librarys.FirstOrDefault(t => t.PRODUCTION_UNIT_ID == productUnitId && t.AREA_ID == content.AREA_ID && t.RISK_NAME == item); + if (libFirst !=null) + { + content.ENTERPRISE_LIBRARY_ID = libFirst.ID; + content.RISK_NAME = item; + } + } + } + else + { + var content = setContentLists.FirstOrDefault(t => t.CHECK_SET_ID == assess.ID && t.NUM == int.Parse(itemArr[0])); + if (content != null) + { + var libFirst = librarys.FirstOrDefault(t => t.PRODUCTION_UNIT_ID == productUnitId && t.AREA_ID == content.AREA_ID && t.RISK_NAME == itemArr[1].ToString()); + if (libFirst != null) + { + content.ENTERPRISE_LIBRARY_ID = libFirst.ID; + content.RISK_NAME = itemArr[1]; + } + } + } + NO++; + } + } + if (measures != null && measures.Any()) + { + var NO = 1; + foreach (var item in measures) + { + var itemArr = item.Split("、"); + if (itemArr.Length != 2) + { + var content = setContentLists.FirstOrDefault(t => t.CHECK_SET_ID == assess.ID && t.NUM == NO); + if (content != null) + { + var libFirst = libraryDetails.FirstOrDefault(t => t.ENTERPRISE_LIBRARY_ID == content.ENTERPRISE_LIBRARY_ID && t.MEASURES_NAME == item); + if (libFirst != null) + { + content.ENTERPRISE_LIBRARY_DETAIL_ID = libFirst.ID; + content.MEASURES_NAME = item; + } + } + } + else + { + var content = setContentLists.FirstOrDefault(t => t.CHECK_SET_ID == assess.ID && t.NUM == int.Parse(itemArr[0])); + if (content != null) + { + var libFirst = libraryDetails.FirstOrDefault(t => t.ENTERPRISE_LIBRARY_ID == content.ENTERPRISE_LIBRARY_ID && t.MEASURES_NAME == itemArr[1].ToString()); + if (libFirst != null) + { + content.ENTERPRISE_LIBRARY_DETAIL_ID = libFirst.ID; + content.MEASURES_NAME = itemArr[1]; + } + } + } + NO++; + } + } + } + else + { + throw new Exception("第" + (i + 2) + "行,检查内容必须填写"); + } + setLists.Add(assess); + } + } } else - { - var departTemp = departments.FirstOrDefault(t => depart == t.NAME); - if (departTemp != null) - { - if (post == "所有岗位") - { - var postIds = users.Where(t => t.DEPARTMENT_ID == departTemp.ID).Select(m => m.Nav_Person.POST_ID).Distinct().ToList(); - if (postIds.Any()) - { - foreach (var po in postIds) - { - T_SK_CHECK_SET set = new T_SK_CHECK_SET(); - set.ORG_ID = orgId; - set.ID = Guid.NewGuid(); - set.MineType = mintype; - set.CHECK_CYCLE = SKPLANCHECKFREQUENCYEnum.Date; - set.CHECK_TYPE = SKDepartmentTypeEnum.班组级; - set.CHECK_TYPE_ID = checkType?.ID; - set.DEPARTMENT_ID = departTemp.ID; - set.POST_ID = po; - set.CHECK_CONTENT = content; - set.HIDDEN_DESCRIPTION = hidden; - set.RECTIFICATION_MEASURES = measure; - set.AREA_NAME = areaName; - set.RISK_NAME = riskName; - sets.Add(set); - } - } - } - else if (post.Contains(",")) - { - var temp = post.Split(",").ToList(); - var postIdTemps = posts.Where(t => temp.Contains(t.NAME)).Select(m => m.ID).ToList(); - var postIds = users.Where(t => t.DEPARTMENT_ID == departTemp.ID && postIdTemps.Contains((Guid)t.Nav_Person.POST_ID)).Select(m => m.Nav_Person.POST_ID).Distinct().ToList(); - if (postIds.Any()) - { - foreach (var po in postIds) - { - T_SK_CHECK_SET set = new T_SK_CHECK_SET(); - set.ORG_ID = orgId; - set.ID = Guid.NewGuid(); - set.MineType = mintype; - set.CHECK_CYCLE = SKPLANCHECKFREQUENCYEnum.Date; - set.CHECK_TYPE = SKDepartmentTypeEnum.班组级; - set.CHECK_TYPE_ID = checkType?.ID; - set.DEPARTMENT_ID = departTemp.ID; - set.POST_ID = po; - set.CHECK_CONTENT = content; - set.HIDDEN_DESCRIPTION = hidden; - set.RECTIFICATION_MEASURES = measure; - set.AREA_NAME = areaName; - set.RISK_NAME = riskName; - sets.Add(set); - } - } - } - else - { - var postIdTemp = posts.FirstOrDefault(t => t.NAME == post); - if (postIdTemp != null) - { - var postId = users.FirstOrDefault(t => t.DEPARTMENT_ID == departTemp.ID && t.Nav_Person.POST_ID == postIdTemp.ID); - if (postId != null) - { - T_SK_CHECK_SET set = new T_SK_CHECK_SET(); - set.ORG_ID = orgId; - set.ID = Guid.NewGuid(); - set.MineType = mintype; - set.CHECK_CYCLE = SKPLANCHECKFREQUENCYEnum.Date; - set.CHECK_TYPE = SKDepartmentTypeEnum.班组级; - set.CHECK_TYPE_ID = checkType?.ID; - set.DEPARTMENT_ID = departTemp.ID; - set.POST_ID = postId.Nav_Person.POST_ID; - set.CHECK_CONTENT = content; - set.HIDDEN_DESCRIPTION = hidden; - set.RECTIFICATION_MEASURES = measure; - set.AREA_NAME = areaName; - set.RISK_NAME = riskName; - sets.Add(set); - } - } - } - } - } - laws.AddRange(sets); - } - List addSets = new List(); - List addSetContents = new List(); - List addSetHiddens = new List(); - List addSetAreas = new List(); - List addSetAreaRisks = new List(); - if (laws.Any()) - { - var list = laws.GroupBy(t => new { t.MineType, t.DEPARTMENT_ID, t.POST_ID, t.CHECK_CYCLE, t.CHECK_TYPE_ID, t.CHECK_TYPE }).ToList(); - if (list.Any()) - { - foreach (var item in list) - { - var exsist = standLaws.FirstOrDefault(t => t.MineType == item.Key.MineType && t.DEPARTMENT_ID == item.Key.DEPARTMENT_ID && t.POST_ID == item.Key.POST_ID && t.CHECK_CYCLE == item.Key.CHECK_CYCLE && t.CHECK_TYPE_ID == item.Key.CHECK_TYPE_ID && t.CHECK_TYPE == item.Key.CHECK_TYPE); - if (exsist == null) - { - T_SK_CHECK_SET set = new T_SK_CHECK_SET(); - set.ORG_ID = orgId; - set.ID = Guid.NewGuid(); - set.MineType = item.Key.MineType; - set.CHECK_CYCLE = item.Key.CHECK_CYCLE; - set.CHECK_TYPE = item.Key.CHECK_TYPE; - set.CHECK_TYPE_ID = item.Key.CHECK_TYPE_ID; - set.DEPARTMENT_ID = item.Key.DEPARTMENT_ID; - set.POST_ID = item.Key.POST_ID; - addSets.Add(set); - var contentsTemps = laws.Where(t => t.MineType == item.Key.MineType && t.DEPARTMENT_ID == item.Key.DEPARTMENT_ID && t.POST_ID == item.Key.POST_ID && t.CHECK_CYCLE == item.Key.CHECK_CYCLE && t.CHECK_TYPE_ID == item.Key.CHECK_TYPE_ID && t.CHECK_TYPE == item.Key.CHECK_TYPE).ToList(); - if (contentsTemps.Any()) - { - var distinctContents = contentsTemps.Select(t => t.CHECK_CONTENT).Distinct().ToList(); - if (distinctContents.Any()) - { - foreach (var item2 in distinctContents) - { - var content = checkContents.FirstOrDefault(t => t.CHECKCONTENT == item2); - T_SK_CHECK_SET_CONTENTS con = new T_SK_CHECK_SET_CONTENTS(); - con.ORG_ID = orgId; - con.ID = Guid.NewGuid(); - con.CHECK_SET_ID = set.ID; - con.CHECK_CONTENT = item2; - con.CHECK_CONTENTS_ID = content?.ID; - addSetContents.Add(con); - var hiddenTemps = contentsTemps.Where(t => t.CHECK_CONTENT == item2).ToList(); - if (hiddenTemps.Any()) - { - foreach (var item3 in hiddenTemps) - { - if (item3 != null && !string.IsNullOrEmpty(item3.HIDDEN_DESCRIPTION)) - { - var ques = checkQuestions.FirstOrDefault(t => t.DESCREPTION == item3.HIDDEN_DESCRIPTION); - T_SK_CHECK_SET_CONTENTS_HIDDEN hid = new T_SK_CHECK_SET_CONTENTS_HIDDEN(); - hid.ORG_ID = orgId; - hid.ID = Guid.NewGuid(); - hid.CHECK_CONTENTS_SET_ID = con.ID; - hid.CHECK_QUESTION_ID = ques?.ID; - hid.HIDDEN_DESCRIPTION = item3.HIDDEN_DESCRIPTION; - hid.RECTIFICATION_MEASURES = item3.RECTIFICATION_MEASURES; - addSetHiddens.Add(hid); - } - } - var distinctAreas = hiddenTemps.Select(t => t.AREA_NAME).Distinct().ToList(); - if (distinctAreas.Any()) - { - foreach (var item3 in distinctAreas) - { - var area = areaLists.FirstOrDefault(t => t.NAME == item3); - if (area != null) - { - T_SK_CHECK_SET_CONTENTS_AREA are = new T_SK_CHECK_SET_CONTENTS_AREA(); - are.ORG_ID = orgId; - are.ID = Guid.NewGuid(); - are.CHECK_SET_CONTENTS_ID = con.ID; - are.AREA_ID = area.ID; - addSetAreas.Add(are); - var riskNameTemps = hiddenTemps.Where(t => t.AREA_NAME == item3).Select(m => m.RISK_NAME).Distinct().ToList(); - if (riskNameTemps.Any()) - { - foreach (var item4 in riskNameTemps) - { - if (item4 == "所有风险") - { - var libraryTempIds = librarys.Where(t => t.MineType == item.Key.MineType && t.AREA_ID == area.ID).Select(t => t.RISK_NAME_ID).Distinct().ToList(); - if (libraryTempIds.Any()) - { - foreach (var item5 in libraryTempIds) - { - var exsistRisk = addSetAreaRisks.FirstOrDefault(t => t.CHECK_SET_CONTENTS_AREA_ID == are.ID && t.RISK_NAME_ID == item5); - if (exsistRisk == null) - { - T_SK_CHECK_SET_CONTENTS_AREA_RISK risk = new T_SK_CHECK_SET_CONTENTS_AREA_RISK(); - risk.ORG_ID = orgId; - risk.ID = Guid.NewGuid(); - risk.CHECK_SET_CONTENTS_AREA_ID = are.ID; - risk.RISK_NAME_ID = item5; - addSetAreaRisks.Add(risk); - } - } - } - } - else if (item4.Contains("、")) - { - var temp = item4.Split("、").ToList(); - var riskTemps = riskNames.Where(t => temp.Contains(t.NAME)).ToList(); - if (riskTemps.Any()) - { - foreach (var item5 in riskTemps) - { - var exsistRisk = addSetAreaRisks.FirstOrDefault(t => t.CHECK_SET_CONTENTS_AREA_ID == are.ID && t.RISK_NAME_ID == item5.ID); - if (exsistRisk == null) - { - T_SK_CHECK_SET_CONTENTS_AREA_RISK risk = new T_SK_CHECK_SET_CONTENTS_AREA_RISK(); - risk.ORG_ID = orgId; - risk.ID = Guid.NewGuid(); - risk.CHECK_SET_CONTENTS_AREA_ID = are.ID; - risk.RISK_NAME_ID = item5.ID; - addSetAreaRisks.Add(risk); - } - } - } - } - else - { - var riskTemp = riskNames.FirstOrDefault(t => item4 == t.NAME); - if (riskTemp != null) - { - var exsistRisk = addSetAreaRisks.FirstOrDefault(t => t.CHECK_SET_CONTENTS_AREA_ID == are.ID && t.RISK_NAME_ID == riskTemp.ID); - if (exsistRisk == null) - { - T_SK_CHECK_SET_CONTENTS_AREA_RISK risk = new T_SK_CHECK_SET_CONTENTS_AREA_RISK(); - risk.ORG_ID = orgId; - risk.ID = Guid.NewGuid(); - risk.CHECK_SET_CONTENTS_AREA_ID = are.ID; - risk.RISK_NAME_ID = riskTemp.ID; - addSetAreaRisks.Add(risk); - } - } - } - } - } - } - } - } - } - } - } - } - } + { + if (string.IsNullOrEmpty(row1)) + { + if (string.IsNullOrEmpty(Msg)) + Msg = "第" + i + "行第1列:生产单元未填写,此行跳过未导入"; + else + Msg = Msg + "\n" + "第" + i + "行第1列:生产单元未填写,此行跳过未导入"; + } + if (string.IsNullOrEmpty(row2)) + { + if (string.IsNullOrEmpty(Msg)) + Msg = "第" + i + "行第2列:检查层级未填写,此行跳过未导入"; + else + Msg = Msg + "\n" + "第" + i + "行第2列:检查层级未填写,此行跳过未导入"; + } + if (string.IsNullOrEmpty(row3)) + { + if (string.IsNullOrEmpty(Msg)) + Msg = "第" + i + "行第3列:检查类型未填写,此行跳过未导入"; + else + Msg = Msg + "\n" + "第" + i + "行第3列:检查类型未填写,此行跳过未导入"; + } + if (string.IsNullOrEmpty(row4)) + { + if (string.IsNullOrEmpty(Msg)) + Msg = "第" + i + "行第4列:检查周期未填写,此行跳过未导入"; + else + Msg = Msg + "\n" + "第" + i + "行第4列:检查周期未填写,此行跳过未导入"; + } + if (string.IsNullOrEmpty(row5)) + { + if (string.IsNullOrEmpty(Msg)) + Msg = "第" + i + "行第5列:检查部门未填写,此行跳过未导入"; + else + Msg = Msg + "\n" + "第" + i + "行第5列:检查部门未填写,此行跳过未导入"; } } } - if (!string.IsNullOrEmpty(Msg)) - { - throw new Exception(Msg); - } - else - { - UnifiedCommit(() => - { - if (addSets != null && addSets.Any()) - BantchAddEntityNoCommit(addSets); - if (addSetContents != null && addSetContents.Any()) - BantchAddEntityNoCommit(addSetContents); - if (addSetHiddens != null && addSetHiddens.Any()) - BantchAddEntityNoCommit(addSetHiddens); - if (addSetAreas != null && addSetAreas.Any()) - BantchAddEntityNoCommit(addSetAreas); - if (addSetAreaRisks != null && addSetAreaRisks.Any()) - BantchAddEntityNoCommit(addSetAreaRisks); - }); - Msg = "导入成功!"; - } - return true; - } - - public bool InsertModel2(DataTable dtSource, Guid? orgId, ref string Msg, int rowIndex = 1) - { - var userId = APT.Infrastructure.Api.AppContext.CurrentSession.UserID; - if (dtSource == null || dtSource.Rows.Count < rowIndex) - { - Msg = "未获取到导入数据"; - throw new Exception(Msg); - } - int rowAll = dtSource.Rows.Count; - if (!string.IsNullOrEmpty(Msg)) - { - throw new Exception(Msg); - } - var librarys = GetEntities(t => t.IS_DELETED == false, new BaseFilter(orgId)); - var checkTypes = this.GetEntities(t => !t.IS_DELETED, new BaseFilter(orgId)); - var checkContents = this.GetEntities(t => t.IS_DELETED == false, new BaseFilter(orgId)); - var checkQuestions = this.GetEntities(t => t.IS_DELETED == false, new BaseFilter(orgId)); - var departments = GetEntities(t => t.IS_DELETED == false, new BaseFilter(orgId)); - var areaLists = GetEntities(t => t.IS_DELETED == false, new BaseFilter(orgId)); - var posts = GetEntities(t => t.IS_DELETED == false, new BaseFilter(orgId)); - var riskNames = GetEntities(t => t.IS_DELETED == false, new BaseFilter(orgId)); - var users = GetEntities(i => i.Nav_Person != null, new BaseFilter(orgId), "Nav_Person", "Nav_ApproveRole").ToList(); - DateTime dtNow = DateTime.Now; - KeywordFilter filter = new KeywordFilter(); - filter.OrgId = orgId; - filter.Keyword = "0"; - if (dtSource.Rows.Count == 1) - { - throw new Exception("导入必须两条以上,一条请直接新增"); - } - List imports = new List(); - int j = 1; - for (int i = 0; i < rowAll; i++) - { - ImportDetails set = new ImportDetails(); - var minetype = dtSource.Rows[i][0].ToString().Trim(); - if (!string.IsNullOrEmpty(minetype)) - { - switch (minetype) - { - case "全公司": - set.MineType = SKProductionUnit.All; - break; - case "露天矿": - set.MineType = SKProductionUnit.Mine; - break; - case "选矿厂": - set.MineType = SKProductionUnit.MineChoose; - break; - case "尾矿库": - set.MineType = SKProductionUnit.Minelast; - break; - case "职能口": - set.MineType = SKProductionUnit.Department; - break; - case "非金属": - set.MineType = SKProductionUnit.Nonmetallic; - break; - case "地下矿": - set.MineType = SKProductionUnit.MineUnderGround; - break; - default: - set.MineType = SKProductionUnit.All; - break; - } - } - var departType = dtSource.Rows[i][1].ToString().Trim(); - if (!string.IsNullOrEmpty(departType)) - { - switch (departType) - { - case "部门级": - set.DepartType = SKDepartmentTypeEnum.部门级; - break; - case "车间级": - set.DepartType = SKDepartmentTypeEnum.车间级; - break; - case "班组级": - set.DepartType = SKDepartmentTypeEnum.班组级; - break; - case "公司级": - set.DepartType = SKDepartmentTypeEnum.公司级; - break; - case "岗位级": - set.DepartType = SKDepartmentTypeEnum.班组级; - break; - default: - set.DepartType = SKDepartmentTypeEnum.公司级; - break; - } - } - var checkType = dtSource.Rows[i][2].ToString().Trim(); - if (!string.IsNullOrEmpty(checkType)) - { - var type = checkTypes.FirstOrDefault(t => t.NAME == checkType); - if (type != null) - { - set.CheckTypeId = type.ID; - } - } - var checkCycle = dtSource.Rows[i][3].ToString().Trim(); - if (!string.IsNullOrEmpty(checkCycle)) - { - switch (checkCycle) - { - case "每班": - set.CheckCycle = SKPLANCHECKFREQUENCYEnum.Date; - break; - case "每天": - set.CheckCycle = SKPLANCHECKFREQUENCYEnum.Date; - break; - case "每周": - set.CheckCycle = SKPLANCHECKFREQUENCYEnum.Week; - break; - case "每月": - set.CheckCycle = SKPLANCHECKFREQUENCYEnum.Month; - break; - case "每年": - set.CheckCycle = SKPLANCHECKFREQUENCYEnum.Year; - break; - default: - set.CheckCycle = SKPLANCHECKFREQUENCYEnum.Date; - break; - } - } - set.CheckContent = dtSource.Rows[i][4].ToString().Trim(); - set.HiddenScript = dtSource.Rows[i][5].ToString().Trim(); - set.Measure = dtSource.Rows[i][6].ToString().Trim(); - set.Areas = dtSource.Rows[i][7].ToString().Trim(); - set.Risks = dtSource.Rows[i][8].ToString().Trim(); - imports.Add(set); - } - List addSets = new List(); - List addSetContents = new List(); - List addSetHiddens = new List(); - List addSetAreas = new List(); - List addSetAreaRisks = new List(); - if (imports.Any()) - { - var departLevelGroups = imports.GroupBy(t => new { t.MineType, t.DepartType, t.CheckTypeId, t.CheckCycle }).ToList(); - if (departLevelGroups.Any()) - { - foreach (var item in departLevelGroups) - { - T_SK_CHECK_SET set = new T_SK_CHECK_SET(); - set.ORG_ID = orgId; - set.ID = Guid.NewGuid(); - set.MineType = item.Key.MineType; - set.CHECK_CYCLE = item.Key.CheckCycle; - set.CHECK_TYPE = item.Key.DepartType; - set.CHECK_TYPE_ID = item.Key.CheckTypeId; - addSets.Add(set); - var contents = imports.Where(t => t.MineType == item.Key.MineType && t.DepartType == item.Key.DepartType && t.CheckCycle == item.Key.CheckCycle && t.CheckTypeId == item.Key.CheckTypeId).ToList(); - var contentGroups = contents.GroupBy(t => new { t.MineType, t.DepartType, t.CheckTypeId, t.CheckCycle, t.CheckContent }).ToList(); - if (contentGroups.Any()) - { - foreach (var item2 in contentGroups) - { - var content = checkContents.FirstOrDefault(t => t.CHECKCONTENT == item2.Key.CheckContent); - T_SK_CHECK_SET_CONTENTS con = new T_SK_CHECK_SET_CONTENTS(); - con.ORG_ID = orgId; - con.ID = Guid.NewGuid(); - con.CHECK_SET_ID = set.ID; - con.CHECK_CONTENT = item2.Key.CheckContent; - con.CHECK_CONTENTS_ID = content?.ID; - addSetContents.Add(con); - var hiddenTemps = contents.Where(t => t.CheckContent == item2.Key.CheckContent).ToList(); - if (hiddenTemps.Any()) - { - foreach (var item3 in hiddenTemps) - { - var ques = checkQuestions.FirstOrDefault(t => t.DESCREPTION == item3.HiddenScript && t.CHECK_CONTENTS_ID == con.CHECK_CONTENTS_ID); - T_SK_CHECK_SET_CONTENTS_HIDDEN hid = new T_SK_CHECK_SET_CONTENTS_HIDDEN(); - hid.ORG_ID = orgId; - hid.ID = Guid.NewGuid(); - hid.CHECK_CONTENTS_SET_ID = con.ID; - hid.CHECK_QUESTION_ID = ques?.ID; - hid.HIDDEN_DESCRIPTION = item3.HiddenScript; - hid.RECTIFICATION_MEASURES = item3.Measure; - addSetHiddens.Add(hid); - } - } - var areaList = new List(); - var areaTemps = contents.Where(t => t.CheckContent == item2.Key.CheckContent).Select(m => m.Areas).ToList(); - if (areaTemps.Any()) - { - foreach (var item3 in areaTemps) - { - if (item3.Contains(",")) - { - var temp = item3.Split(",").ToList(); - areaList.AddRange(temp); - } - else - { - areaList.Add(item3); - } - } - } - areaList = areaList.Distinct().ToList(); - if (areaList.Any()) - { - foreach (var item3 in areaList) - { - if (!string.IsNullOrEmpty(item3)) - { - var area = areaLists.FirstOrDefault(t => t.NAME == item3); - T_SK_CHECK_SET_CONTENTS_AREA are = new T_SK_CHECK_SET_CONTENTS_AREA(); - are.ORG_ID = orgId; - are.ID = Guid.NewGuid(); - are.CHECK_SET_CONTENTS_ID = con.ID; - are.AREA_ID = area.ID; - addSetAreas.Add(are); - var libraryTempIds = librarys.Where(t => t.MineType == item.Key.MineType && t.AREA_ID == area.ID).Select(t => t.RISK_NAME_ID).Distinct().ToList(); - if (libraryTempIds.Any()) - { - foreach (var item5 in libraryTempIds) - { - var exsistRisk = addSetAreaRisks.FirstOrDefault(t => t.CHECK_SET_CONTENTS_AREA_ID == are.ID && t.RISK_NAME_ID == item5); - if (exsistRisk == null) - { - T_SK_CHECK_SET_CONTENTS_AREA_RISK risk = new T_SK_CHECK_SET_CONTENTS_AREA_RISK(); - risk.ORG_ID = orgId; - risk.ID = Guid.NewGuid(); - risk.CHECK_SET_CONTENTS_AREA_ID = are.ID; - risk.RISK_NAME_ID = item5; - addSetAreaRisks.Add(risk); - } - } - } - } - } - } - } - } - } - } - } - if (!string.IsNullOrEmpty(Msg)) - { - throw new Exception(Msg); - } - else - { - UnifiedCommit(() => - { - if (addSets != null && addSets.Any()) - BantchAddEntityNoCommit(addSets); - if (addSetContents != null && addSetContents.Any()) - BantchAddEntityNoCommit(addSetContents); - if (addSetHiddens != null && addSetHiddens.Any()) - { - addSetHiddens = addSetHiddens.Distinct(t => new { t.CHECK_CONTENTS_SET_ID, t.CHECK_QUESTION_ID, t.HIDDEN_DESCRIPTION, t.HIDDEN_LEVEL, t.RECTIFICATION_MEASURES }).ToList(); - BantchAddEntityNoCommit(addSetHiddens); - } - if (addSetAreas != null && addSetAreas.Any()) - BantchAddEntityNoCommit(addSetAreas); - if (addSetAreaRisks != null && addSetAreaRisks.Any()) - BantchAddEntityNoCommit(addSetAreaRisks); - }); - Msg = "导入成功!"; - } - return true; - } - - public bool InsertModel3(DataTable dtSource, Guid? orgId, ref string Msg, int rowIndex = 1) - { - var userId = APT.Infrastructure.Api.AppContext.CurrentSession.UserID; - if (dtSource == null || dtSource.Rows.Count < rowIndex) - { - Msg = "未获取到导入数据"; - throw new Exception(Msg); - } - int rowAll = dtSource.Rows.Count; - if (!string.IsNullOrEmpty(Msg)) - { - throw new Exception(Msg); - } - var checkTypes = this.GetEntities(t => !t.IS_DELETED, new BaseFilter(orgId)); - DateTime dtNow = DateTime.Now; - if (dtSource.Rows.Count == 1) - { - throw new Exception("导入必须两条以上,一条请直接新增"); - } - List imports = new List(); - int j = 1; - for (int i = 0; i < rowAll; i++) - { - ImportDetails set = new ImportDetails(); - set.CheckContent = dtSource.Rows[i][2].ToString().Trim(); - imports.Add(set); - } - List addSets = new List(); - if (imports.Any()) - { - var departLevelGroups = imports.GroupBy(t => new { t.CheckContent }).ToList(); - if (departLevelGroups.Any()) - { - foreach (var item in departLevelGroups) - { - var type = checkTypes.FirstOrDefault(t => t.NAME == item.Key.CheckContent); - if (type == null) - { - T_SK_CHECK_TYPE set = new T_SK_CHECK_TYPE(); - set.ORG_ID = orgId; - set.ID = Guid.NewGuid(); - set.MineType = SKProductionUnit.Minelast; - set.NAME = item.Key.CheckContent; - addSets.Add(set); - } - } - } - } - if (!string.IsNullOrEmpty(Msg)) - { - throw new Exception(Msg); - } - else - { - UnifiedCommit(() => - { - if (addSets != null && addSets.Any()) - BantchAddEntityNoCommit(addSets); - }); - Msg = "导入成功!"; - } - return true; - } - - public bool InsertModel4(DataTable dtSource, Guid? orgId, ref string Msg, int rowIndex = 1) - { - var userId = APT.Infrastructure.Api.AppContext.CurrentSession.UserID; - if (dtSource == null || dtSource.Rows.Count < rowIndex) - { - Msg = "未获取到导入数据"; - throw new Exception(Msg); - } - int rowAll = dtSource.Rows.Count; - if (!string.IsNullOrEmpty(Msg)) - { - throw new Exception(Msg); - } - var checkContents = this.GetEntities(t => t.IS_DELETED == false, new BaseFilter(orgId)); - var checkQuestions = this.GetEntities(t => t.IS_DELETED == false, new BaseFilter(orgId)); - DateTime dtNow = DateTime.Now; - if (dtSource.Rows.Count == 1) - { - throw new Exception("导入必须两条以上,一条请直接新增"); - } - List imports = new List(); - int j = 1; - for (int i = 0; i < rowAll; i++) - { - ImportDetails set = new ImportDetails(); - set.CheckContent = dtSource.Rows[i][4].ToString().Trim(); - set.HiddenScript = dtSource.Rows[i][5].ToString().Trim(); - set.Measure = dtSource.Rows[i][6].ToString().Trim(); - imports.Add(set); - } - List addSets = new List(); - List addQues = new List(); - if (imports.Any()) - { - var departLevelGroups = imports.GroupBy(t => new { t.CheckContent }).ToList(); - if (departLevelGroups.Any()) - { - foreach (var item in departLevelGroups) - { - var type = checkContents.FirstOrDefault(t => t.CHECKCONTENT == item.Key.CheckContent); - if (type == null) - { - T_SK_CHECK_CONTENTS set = new T_SK_CHECK_CONTENTS(); - set.ORG_ID = orgId; - set.ID = Guid.NewGuid(); - set.MineType = SKProductionUnit.Minelast; - set.CHECKCONTENT = item.Key.CheckContent; - addSets.Add(set); - var contents = imports.Where(t => t.CheckContent == item.Key.CheckContent).ToList(); - if (contents.Any()) - { - foreach (var item2 in contents) - { - T_SK_CHECK_QUESTION qu = new T_SK_CHECK_QUESTION(); - qu.ORG_ID = orgId; - qu.ID = Guid.NewGuid(); - qu.CHECK_CONTENTS_ID = set.ID; - qu.DESCREPTION = item2.HiddenScript; - qu.QUESTION_LEVEL = SKHiddenLevel.General; - qu.DEMAND = item2.Measure; - addQues.Add(qu); - } - } - } - else - { - var contents = imports.Where(t => t.CheckContent == item.Key.CheckContent).ToList(); - if (contents.Any()) - { - foreach (var item2 in contents) - { - var que = checkQuestions.FirstOrDefault(t => t.CHECK_CONTENTS_ID == type.ID && t.DESCREPTION == item2.HiddenScript); - if (que == null) - { - T_SK_CHECK_QUESTION qu = new T_SK_CHECK_QUESTION(); - qu.ORG_ID = orgId; - qu.ID = Guid.NewGuid(); - qu.CHECK_CONTENTS_ID = type.ID; - qu.DESCREPTION = item2.HiddenScript; - qu.QUESTION_LEVEL = SKHiddenLevel.General; - qu.DEMAND = item2.Measure; - addQues.Add(qu); - } - } - } - } - } - } - } - if (!string.IsNullOrEmpty(Msg)) - { - throw new Exception(Msg); - } - else - { - UnifiedCommit(() => - { - if (addSets != null && addSets.Any()) - BantchAddEntityNoCommit(addSets); - if (addQues != null && addQues.Any()) - BantchAddEntityNoCommit(addQues); - }); - Msg = "导入成功!"; - } + UnifiedCommit(() => + { + if (setLists != null && setLists.Any()) + BantchAddEntityNoCommit(setLists); + if (setContentLists != null && setContentLists.Any()) + BantchAddEntityNoCommit(setContentLists); + if (setUserLists != null && setUserLists.Any()) + BantchAddEntityNoCommit(setUserLists); + }); + Msg = "导入成功!"; return true; } }