using APT.BaseData.Domain.ApiModel; using APT.BaseData.Domain.Entities.FM; using APT.BaseData.Domain.Enums; using APT.Infrastructure.Core; 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 System.Reflection.Metadata; namespace APT.SK.WebApi.Controllers.Api { public class ImportDetails { public SKProductionUnit MineType { get; set; } public SKDepartmentTypeEnum DepartType { get; set; } public Guid? CheckTypeId { get; set; } public SKPLANCHECKFREQUENCYEnum CheckCycle { get; set; } public string CheckContent { get; set; } public string HiddenScript { get; set; } public string Measure { get; set; } public string Areas { get; set; } public string Risks { get; set; } } [Route("api/SK/SKCheckSet")] public partial class CheckSetController : AuthorizeApiController { /// /// 更新或新增数据 /// /// 对象实体 /// [HttpPost, Route("FullUpdate")] public JsonActionResult FullUpdate([FromBody] T_SK_CHECK_SET entity) { return SafeExecute(() => { List hiddens = new List(); List basics = new List(); List users = new List(); //List areas = new List(); //List risks = new List(); var details = entity.Nav_CheckSetContents; entity.Nav_CheckSetContents = null; var checkUsers = entity.Nav_CheckUsers; entity.Nav_CheckUsers = null; List detailIds = new List(); List deleteCheckUserIds = new List(); List basicIds = new List(); deleteCheckUserIds = this.GetEntities(t => t.CHECK_SET_ID == entity.ID, new BaseFilter(entity.ORG_ID)).Select(t => t.ID).ToList(); detailIds = this.GetEntities(t => t.CHECK_SET_ID == entity.ID, new BaseFilter(entity.ORG_ID)).Select(t => t.ID).ToList(); basicIds = this.GetEntities(t => detailIds.Contains(t.CHECK_CONTENTS_SET_ID), new BaseFilter(entity.ORG_ID)).Select(t => t.ID).ToList(); //hiddenIds = this.GetEntities(t => detailIds.Contains(t.CHECK_CONTENTS_SET_ID), new BaseFilter(entity.ORG_ID)).Select(t => t.ID).ToList(); var record = this.GetEntity(t => t.ID != entity.ID && t.PRODUCTION_UNIT_ID == entity.PRODUCTION_UNIT_ID && t.CHECK_TYPE == entity.CHECK_TYPE && t.CHECK_TYPE_ID == entity.CHECK_TYPE_ID && t.CHECK_CYCLE == entity.CHECK_CYCLE && t.DEPARTMENT_ID == entity.DEPARTMENT_ID && t.POST_ID == entity.POST_ID); if (record != null) { throw new Exception("相同检查已存在,请修改检查信息或回到列表页检索"); } if (checkUsers != null && checkUsers.Any()) { checkUsers = checkUsers.Where(t => !t.IS_DELETED).ToList(); checkUsers.ForEach(t => t.Nav_User = null); } if (details != null && details.Any()) { foreach (var item in details) { item.ORG_ID = entity.ORG_ID; item.CHECK_SET_ID = entity.ID; //if (item.Nav_ContentsHiddens != null && item.Nav_ContentsHiddens.Any()) //{ // foreach (var item2 in item.Nav_ContentsHiddens) // { // item2.ORG_ID = entity.ORG_ID; // item2.CHECK_CONTENTS_SET_ID = item.ID; // hiddens.Add(item2); // //conHiddenIds.Add(item2.CHECK_QUESTION_ID); // } //} if (item.Nav_ContentsBasics != null && item.Nav_ContentsBasics.Any()) { foreach (var item2 in item.Nav_ContentsBasics) { item2.ORG_ID = entity.ORG_ID; item2.CHECK_CONTENTS_SET_ID = item.ID; basics.Add(item2); } } //if (item.Nav_ContentsAreas != null && item.Nav_ContentsAreas.Any()) //{ // foreach (var item2 in item.Nav_ContentsAreas) // { // item2.ORG_ID = entity.ORG_ID; // item2.CHECK_SET_CONTENTS_ID = item.ID; // areas.Add(item2); // if (item2.Nav_ContentsAreaRisks != null && item2.Nav_ContentsAreaRisks.Any()) // { // foreach (var item3 in item2.Nav_ContentsAreaRisks) // { // item3.ORG_ID = entity.ORG_ID; // item3.CHECK_SET_CONTENTS_AREA_ID = item2.ID; // risks.Add(item3); // } // } // item2.Nav_ContentsAreaRisks = null; // } //} //item.Nav_ContentsAreas = null; } } //同步到企业库 var checkUserIds = checkUsers.Select(t => t.USER_ID).Distinct().ToList(); var areaIds = details.Select(t => t.AREA_ID).Distinct().ToList(); var riskNames = details.Select(t => t.RISK_NAME).Distinct().ToList(); var measures = details.Select(t => t.MEASURES_NAME).Distinct().ToList(); var contentIds = details.Select(t => t.CHECK_CONTENTS_ID).Distinct().ToList(); //conHiddenIds = conHiddenIds.Distinct().ToList(); var contentHiddens = this.GetEntities(t => contentIds.Contains(t.CHECK_CONTENTS_ID), new BaseFilter(entity.ORG_ID)); var conHiddenIds = contentHiddens.Select(m => m.ID).ToList(); var librarys = this.GetEntities(t => t.PRODUCTION_UNIT_ID == entity.PRODUCTION_UNIT_ID && riskNames.Contains(t.RISK_NAME) && areaIds.Contains(t.AREA_ID) && t.ENABLE_STATUS == 0, new BaseFilter(entity.ORG_ID)); var libraryIds = librarys.Select(m => m.ID).ToList(); var libraryLevels = this.GetEntities(t => libraryIds.Contains(t.ENTERPRISE_LIBRARY_ID) && t.DEPARTMENT_ID == entity.DEPARTMENT_ID, new BaseFilter(entity.ORG_ID)); var libraryPosts = this.GetEntities(t => libraryIds.Contains(t.ENTERPRISE_LIBRARY_ID) && t.DEPARTMENT_ID == entity.DEPARTMENT_ID, new BaseFilter(entity.ORG_ID)); var postIds = libraryPosts.Select(m => m.ID).ToList(); var libraryPostDetails = this.GetEntities(t => postIds.Contains(t.ENTERPRISE_LIBRARY_POST_ID) && t.POST_ID == entity.POST_ID, new BaseFilter(entity.ORG_ID)); var libraryDetails = this.GetEntities(t => libraryIds.Contains(t.ENTERPRISE_LIBRARY_ID) && measures.Contains(t.MEASURES_NAME), new BaseFilter(entity.ORG_ID)); var detIds = libraryDetails.Select(m => m.ID).ToList(); var libraryContents = this.GetEntities(t => detIds.Contains(t.ENTERPRISE_LIBRARY_DETAIL_ID) && contentIds.Contains(t.CHECK_CONTENTS_ID), new BaseFilter(entity.ORG_ID)); var detailConIds = libraryContents.Select(t => t.ID).ToList(); var libraryHiddens = this.GetEntities(t => detailConIds.Contains(t.ENTERPRISE_LIBRARY_DETAIL_CONTENT_ID) && t.CHECK_QUESTION_ID != null && conHiddenIds.Contains((Guid)t.CHECK_QUESTION_ID), new BaseFilter(entity.ORG_ID)); var libraryDeparts = this.GetEntities(t => detailConIds.Contains(t.ENTERPRISE_LIBRARY_DETAIL_CONTENT_ID) && t.DEPARTMENT_ID == entity.DEPARTMENT_ID, new BaseFilter(entity.ORG_ID)); //var departIds = libraryDetails.Select(m => m.ID).ToList(); //var libraryDepPots = this.GetEntities(t => departIds.Contains(t.ENTERPRISE_LIBRARY_DETAIL_CONTENT_DEPART_ID) && t.POST_ID == entity.POST_ID, new BaseFilter(entity.ORG_ID)); //List libraryList = new List(); List libraryLevelList = new List(); List libraryPostList = new List(); List libraryPostDetList = new List(); List libraryDetailList = new List(); List libraryDetailContList = new List(); List libraryDetailHiddList = new List(); List libraryDetailDepList = new List(); List libraryDetailUserList = new List(); //List libraryDetailPostList = new List(); if (entity.PUBLISH != null && entity.PUBLISH.Equals("SaveAndNotify")) { var riskName = details.FirstOrDefault(t => t.ENTERPRISE_LIBRARY_ID == null); if (riskName != null) { throw new Exception("风险名称不能为空,请排查确认"); } var measure = details.FirstOrDefault(t => t.ENTERPRISE_LIBRARY_DETAIL_ID == null); if (measure != null) { 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); if (areaInfo != null) { throw new Exception("入库区域只能为最小区域,当前区域" + areaInfo.NAME + "仍有下级区域"); } foreach (var item in details) { var libFirst = librarys.FirstOrDefault(t => t.RISK_NAME == item.RISK_NAME && t.AREA_ID == item.AREA_ID); //企业库已有,去更新。未找到,直接添加 if (libFirst != null) { var libDetailFirst = libraryDetails.FirstOrDefault(t => t.MEASURES_NAME == item.MEASURES_NAME && t.ENTERPRISE_LIBRARY_ID == libFirst.ID); //管控措施为空 if (libDetailFirst == null) { //全部添加 T_SK_ENTERPRISE_LIBRARY_DETAIL mes = new T_SK_ENTERPRISE_LIBRARY_DETAIL(); mes.ORG_ID = entity.ORG_ID; mes.ENTERPRISE_LIBRARY_ID = libFirst.ID; mes.MEASURES_NAME = item.MEASURES_NAME; mes.NUM = 99; libraryDetailList.Add(mes); T_SK_ENTERPRISE_LIBRARY_DETAIL_CONTENT con = new T_SK_ENTERPRISE_LIBRARY_DETAIL_CONTENT(); con.ORG_ID = entity.ORG_ID; con.ENTERPRISE_LIBRARY_DETAIL_ID = mes.ID; con.CHECK_CONTENTS_ID = item.CHECK_CONTENTS_ID; con.NUM = 99; libraryDetailContList.Add(con); if (item.Nav_ContentsHiddens != null && item.Nav_ContentsHiddens.Any()) { foreach (var item2 in item.Nav_ContentsHiddens) { T_SK_ENTERPRISE_LIBRARY_DETAIL_CONTENT_HIDDEN hid = new T_SK_ENTERPRISE_LIBRARY_DETAIL_CONTENT_HIDDEN(); hid.ORG_ID = entity.ORG_ID; hid.ENTERPRISE_LIBRARY_DETAIL_CONTENT_ID = con.ID; hid.CHECK_QUESTION_ID = item2.CHECK_QUESTION_ID; hid.NUM = item2.NUM; libraryDetailHiddList.Add(hid); } } T_SK_ENTERPRISE_LIBRARY_DETAIL_CONTENT_DEPART dep = new T_SK_ENTERPRISE_LIBRARY_DETAIL_CONTENT_DEPART(); dep.ORG_ID = entity.ORG_ID; dep.ENTERPRISE_LIBRARY_DETAIL_CONTENT_ID = con.ID; dep.DEPARTMENT_ID = entity.DEPARTMENT_ID; dep.CHECK_TYPE = entity.CHECK_TYPE; dep.CHECK_TYPE_ID = entity.CHECK_TYPE_ID; dep.CHECK_CYCLE = entity.CHECK_CYCLE; dep.NUM = 1; libraryDetailDepList.Add(dep); if (checkUserIds != null && checkUserIds.Any()) { foreach (var userId in checkUserIds) { T_SK_ENTERPRISE_LIBRARY_DETAIL_CONTENT_USER user = new T_SK_ENTERPRISE_LIBRARY_DETAIL_CONTENT_USER(); user.ORG_ID = entity.ORG_ID; user.ENTERPRISE_LIBRARY_DETAIL_CONTENT_DEPART_ID = dep.ID; user.USER_ID = userId; libraryDetailUserList.Add(user); } } //T_SK_ENTERPRISE_LIBRARY_DETAIL_CONTENT_POST pos = new T_SK_ENTERPRISE_LIBRARY_DETAIL_CONTENT_POST(); //pos.ORG_ID = entity.ORG_ID; //pos.ENTERPRISE_LIBRARY_DETAIL_CONTENT_DEPART_ID = dep.ID; //pos.POST_ID = entity.POST_ID; //libraryDetailPostList.Add(pos); } else { //检查内容为空 var libConFirst = libraryContents.FirstOrDefault(t => t.ENTERPRISE_LIBRARY_DETAIL_ID == libDetailFirst.ID && t.CHECK_CONTENTS_ID == item.CHECK_CONTENTS_ID); if (libConFirst == null) { T_SK_ENTERPRISE_LIBRARY_DETAIL_CONTENT con = new T_SK_ENTERPRISE_LIBRARY_DETAIL_CONTENT(); con.ORG_ID = entity.ORG_ID; con.ENTERPRISE_LIBRARY_DETAIL_ID = libDetailFirst.ID; con.CHECK_CONTENTS_ID = item.CHECK_CONTENTS_ID; con.NUM = 99; libraryDetailContList.Add(con); if (item.Nav_ContentsHiddens != null && item.Nav_ContentsHiddens.Any()) { foreach (var item2 in item.Nav_ContentsHiddens) { T_SK_ENTERPRISE_LIBRARY_DETAIL_CONTENT_HIDDEN hid = new T_SK_ENTERPRISE_LIBRARY_DETAIL_CONTENT_HIDDEN(); hid.ORG_ID = entity.ORG_ID; hid.ENTERPRISE_LIBRARY_DETAIL_CONTENT_ID = con.ID; hid.CHECK_QUESTION_ID = item2.CHECK_QUESTION_ID; hid.NUM = item2.NUM; libraryDetailHiddList.Add(hid); } } T_SK_ENTERPRISE_LIBRARY_DETAIL_CONTENT_DEPART dep = new T_SK_ENTERPRISE_LIBRARY_DETAIL_CONTENT_DEPART(); dep.ORG_ID = entity.ORG_ID; dep.ENTERPRISE_LIBRARY_DETAIL_CONTENT_ID = con.ID; dep.DEPARTMENT_ID = entity.DEPARTMENT_ID; dep.CHECK_TYPE = entity.CHECK_TYPE; dep.CHECK_TYPE_ID = entity.CHECK_TYPE_ID; dep.CHECK_CYCLE = entity.CHECK_CYCLE; dep.NUM = 1; libraryDetailDepList.Add(dep); if (checkUserIds != null && checkUserIds.Any()) { foreach (var userId in checkUserIds) { T_SK_ENTERPRISE_LIBRARY_DETAIL_CONTENT_USER user = new T_SK_ENTERPRISE_LIBRARY_DETAIL_CONTENT_USER(); user.ORG_ID = entity.ORG_ID; user.ENTERPRISE_LIBRARY_DETAIL_CONTENT_DEPART_ID = dep.ID; user.USER_ID = userId; libraryDetailUserList.Add(user); } } //T_SK_ENTERPRISE_LIBRARY_DETAIL_CONTENT_POST pos = new T_SK_ENTERPRISE_LIBRARY_DETAIL_CONTENT_POST(); //pos.ORG_ID = entity.ORG_ID; //pos.ENTERPRISE_LIBRARY_DETAIL_CONTENT_DEPART_ID = dep.ID; //pos.POST_ID = entity.POST_ID; //libraryDetailPostList.Add(pos); } else { //检查层级没有就加,有就不处理 var libConDepFirst = libraryDeparts.FirstOrDefault(t => t.ENTERPRISE_LIBRARY_DETAIL_CONTENT_ID == libConFirst.ID && t.DEPARTMENT_ID == entity.DEPARTMENT_ID && t.CHECK_TYPE_ID == entity.CHECK_TYPE_ID && t.CHECK_CYCLE == entity.CHECK_CYCLE); if (libConDepFirst == null) { T_SK_ENTERPRISE_LIBRARY_DETAIL_CONTENT_DEPART dep = new T_SK_ENTERPRISE_LIBRARY_DETAIL_CONTENT_DEPART(); dep.ORG_ID = entity.ORG_ID; dep.ENTERPRISE_LIBRARY_DETAIL_CONTENT_ID = libConFirst.ID; dep.DEPARTMENT_ID = entity.DEPARTMENT_ID; dep.CHECK_TYPE = entity.CHECK_TYPE; dep.CHECK_TYPE_ID = entity.CHECK_TYPE_ID; dep.CHECK_CYCLE = entity.CHECK_CYCLE; dep.NUM = 1; libraryDetailDepList.Add(dep); if (checkUserIds != null && checkUserIds.Any()) { foreach (var userId in checkUserIds) { T_SK_ENTERPRISE_LIBRARY_DETAIL_CONTENT_USER user = new T_SK_ENTERPRISE_LIBRARY_DETAIL_CONTENT_USER(); user.ORG_ID = entity.ORG_ID; user.ENTERPRISE_LIBRARY_DETAIL_CONTENT_DEPART_ID = dep.ID; user.USER_ID = userId; libraryDetailUserList.Add(user); } } //T_SK_ENTERPRISE_LIBRARY_DETAIL_CONTENT_POST pos = new T_SK_ENTERPRISE_LIBRARY_DETAIL_CONTENT_POST(); //pos.ORG_ID = entity.ORG_ID; //pos.ENTERPRISE_LIBRARY_DETAIL_CONTENT_DEPART_ID = dep.ID; //pos.POST_ID = entity.POST_ID; //libraryDetailPostList.Add(pos); } //隐患描述没有就加,有就不处理 var libConHidList = contentHiddens.Where(t => t.CHECK_CONTENTS_ID == item.CHECK_CONTENTS_ID).ToList(); if (libConHidList != null && libConHidList.Any()) { foreach (var item2 in libConHidList) { var libConHidFirst = libraryHiddens.FirstOrDefault(t => t.ENTERPRISE_LIBRARY_DETAIL_CONTENT_ID == libConFirst.ID && t.CHECK_QUESTION_ID == item2.ID); if (libConHidFirst == null) { T_SK_ENTERPRISE_LIBRARY_DETAIL_CONTENT_HIDDEN hid = new T_SK_ENTERPRISE_LIBRARY_DETAIL_CONTENT_HIDDEN(); hid.ORG_ID = entity.ORG_ID; hid.ENTERPRISE_LIBRARY_DETAIL_CONTENT_ID = libConFirst.ID; hid.CHECK_QUESTION_ID = item2.ID; hid.NUM = item2.NUM; hid.HIDDEN_DESCRIPTION = item2.DESCREPTION; hid.HIDDEN_LEVEL = item2.QUESTION_LEVEL; hid.RECTIFICATION_MEASURES = item2.DEMAND; libraryDetailHiddList.Add(hid); } } } } } //管控层级为空就加,有就不处理 var libLevelFirst = libraryLevels.FirstOrDefault(t => t.DEPARTMENT_ID == entity.DEPARTMENT_ID && t.ENTERPRISE_LIBRARY_ID == libFirst.ID); if (libLevelFirst == null) { T_SK_ENTERPRISE_LIBRARY_DEPART lev = new T_SK_ENTERPRISE_LIBRARY_DEPART(); lev.ORG_ID = entity.ORG_ID; lev.ENTERPRISE_LIBRARY_ID = libFirst.ID; lev.DEPARTMENT_ID = entity.DEPARTMENT_ID; libraryLevelList.Add(lev); } //辨识岗位 var libPostFirst = libraryPosts.FirstOrDefault(t => t.DEPARTMENT_ID == entity.DEPARTMENT_ID && t.ENTERPRISE_LIBRARY_ID == libFirst.ID); if (libLevelFirst == null) { T_SK_ENTERPRISE_LIBRARY_POST dep = new T_SK_ENTERPRISE_LIBRARY_POST(); dep.ORG_ID = entity.ORG_ID; dep.ENTERPRISE_LIBRARY_ID = libFirst.ID; dep.DEPARTMENT_ID = entity.DEPARTMENT_ID; libraryPostList.Add(dep); T_SK_ENTERPRISE_LIBRARY_POST_DETAIL pos = new T_SK_ENTERPRISE_LIBRARY_POST_DETAIL(); pos.ORG_ID = entity.ORG_ID; pos.ENTERPRISE_LIBRARY_POST_ID = dep.ID; pos.POST_ID = entity.POST_ID; libraryPostDetList.Add(pos); } else { //辨识岗位为空就加,有就不处理 var libPostDetailFirst = libraryPostDetails.FirstOrDefault(t => t.ENTERPRISE_LIBRARY_POST_ID == libLevelFirst.ID && t.POST_ID == entity.POST_ID); if (libPostDetailFirst == null) { T_SK_ENTERPRISE_LIBRARY_POST_DETAIL pos = new T_SK_ENTERPRISE_LIBRARY_POST_DETAIL(); pos.ORG_ID = entity.ORG_ID; pos.ENTERPRISE_LIBRARY_POST_ID = libLevelFirst.ID; pos.POST_ID = entity.POST_ID; libraryPostDetList.Add(pos); } } } else { //没有先不处理,如果直接加的话,隐患描述,应急处置,LEC怎么填 } } } details.ForEach(t => { t.Nav_ContentsHiddens = null; t.Nav_ContentsBasics = null; }); this.UnifiedCommit(() => { if (basicIds != null && basicIds.Any()) this.BantchDeleteEntityNoCommit(basicIds); if (deleteCheckUserIds != null && deleteCheckUserIds.Any()) this.BantchDeleteEntityNoCommit(deleteCheckUserIds); if (detailIds != null && detailIds.Any()) this.BantchDeleteEntityNoCommit(detailIds); if (entity != null) UpdateEntityNoCommit(entity); if (checkUsers != null && checkUsers.Any()) BantchSaveEntityNoCommit(checkUsers); if (details != null && details.Any()) BantchSaveEntityNoCommit(details); if (hiddens != null && hiddens.Any()) BantchSaveEntityNoCommit(hiddens); if (basics != null && basics.Any()) BantchSaveEntityNoCommit(basics); //if (areas != null && areas.Any()) // BantchSaveEntityNoCommit(areas); //if (risks != null && risks.Any()) // BantchSaveEntityNoCommit(risks); if (libraryLevelList != null && libraryLevelList.Any()) BantchSaveEntityNoCommit(libraryLevelList); if (libraryPostList != null && libraryPostList.Any()) BantchSaveEntityNoCommit(libraryPostList); if (libraryPostDetList != null && libraryPostDetList.Any()) BantchSaveEntityNoCommit(libraryPostDetList); if (libraryDetailList != null && libraryDetailList.Any()) BantchSaveEntityNoCommit(libraryDetailList); if (libraryDetailContList != null && libraryDetailContList.Any()) BantchSaveEntityNoCommit(libraryDetailContList); if (libraryDetailHiddList != null && libraryDetailHiddList.Any()) BantchSaveEntityNoCommit(libraryDetailHiddList); if (libraryDetailDepList != null && libraryDetailDepList.Any()) BantchSaveEntityNoCommit(libraryDetailDepList); if (libraryDetailUserList != null && libraryDetailUserList.Any()) BantchSaveEntityNoCommit(libraryDetailUserList); }); return true; }); } /// /// 检查是否重复 /// /// 对象实体 /// [HttpPost, Route("CheckList")] public JsonActionResult CheckList([FromBody] T_SK_CHECK_SET entity) { 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()) { throw new Exception("生产单元,检查层级,检查类型,检查周期,检查部门,检查人都不能为空"); } var record = this.GetEntity(t => t.ID != entity.ID && t.PRODUCTION_UNIT_ID == entity.PRODUCTION_UNIT_ID && t.CHECK_TYPE == entity.CHECK_TYPE && t.CHECK_TYPE_ID == entity.CHECK_TYPE_ID && t.CHECK_CYCLE == entity.CHECK_CYCLE && t.DEPARTMENT_ID == entity.DEPARTMENT_ID); if (record != null) { throw new Exception("相同检查已存在,请修改检查信息或回到列表页检索"); } else { throw new Exception("当前检查不存在,请放心填写"); } return true; }); } /// /// 获取导入数据 /// 参考 [Route("api/PF/Import")] /// /// [HttpPost, Route("GetImportData")] public JsonActionResult GetImportData() { return SafeExecute(() => { var orgId = APT.Infrastructure.Api.AppContext.CurrentSession.OrgId; var httpRequest = this.HttpContext.Request; string orgIdStr = httpRequest.Form["OrgId"];// 获取 组织 ImportDataModel result = new ImportDataModel(); var dic = Path.Combine(System.AppContext.BaseDirectory, "tempImportFiles"); if (!Directory.Exists(dic)) Directory.CreateDirectory(dic); foreach (var key in httpRequest.Form.Files) // 文件键 { var postedFile = key; // 获取文件键对应的文件对象 string filePath = Path.Combine(dic, DateTime.Now.ToString("yyyy_MM_dd_hh_mm_ss") + "_" + postedFile.FileName); Byte[] fileData = new Byte[postedFile.Length]; Stream sr = postedFile.OpenReadStream();//创建数据流对象 sr.Read(fileData, 0, (int)postedFile.Length); using (FileStream fs = new FileStream(filePath, FileMode.CreateNew)) { fs.Write(fileData, 0, fileData.Length); fs.Flush(); fs.Close(); } //获取数据 Dictionary startRowIndexs = new Dictionary(); startRowIndexs.Add(0, 1);//根据Excel格式数据赋值 var dataTables = FileUtils.ReadExcelByOledb(filePath, startRowIndexs); string Msg = string.Empty; bool isOK = InsertModel2(dataTables.Tables[0], orgId, ref Msg); try { System.IO.File.Delete(filePath); } catch { } result.Data = Msg; result.MessageList = new List { Msg }; } return result; }); } /// /// 数据插入 /// /// /// /// /// /// /// public bool InsertModel(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 newFilter = new BaseFilter(orgId); newFilter.SelectField = new List { "NAME" }; var standLaws = this.GetEntities(t => !t.IS_DELETED, newFilter); List laws = new List(); var checkType = this.GetEntity(t => t.NAME == "岗位排查"); 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 librarys = 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").ToList(); DateTime dtNow = DateTime.Now; KeywordFilter filter = new KeywordFilter(); filter.OrgId = orgId; filter.Keyword = "0"; //if (dtSource.Rows.Count == 1) //{ // throw new Exception("导入必须两条以上,一条请直接新增"); //} int j = 1; for (int i = 0; i < rowAll; i++) { var mintype = SKProductionUnit.All; if (!string.IsNullOrEmpty(dtSource.Rows[i][0].ToString().Trim())) { if (dtSource.Rows[i][0].ToString().Trim() != "全公司" && dtSource.Rows[i][0].ToString().Trim() != "选矿厂" && dtSource.Rows[i][0].ToString().Trim() != "尾矿库" && dtSource.Rows[i][0].ToString().Trim() != "露天矿" && dtSource.Rows[i][0].ToString().Trim() != "非金属" && dtSource.Rows[i][0].ToString().Trim() != "职能口") { if (string.IsNullOrEmpty(Msg)) Msg = "第" + i + "行第2列:生产单元未按规定填写(全公司,露天矿,选矿厂,尾矿库,非金属,职能口)"; else Msg = Msg + "\n" + "第" + i + "行第2列:生产单元未按规定填写(全公司,露天矿,选矿厂,尾矿库,非金属,职能口)"; //throw new Exception("生产单元未按规定填写(全公司,露天矿,选矿厂,尾矿库)"); } else { switch (dtSource.Rows[i][0].ToString().Trim()) { case "全公司": mintype = 0; break; case "露天矿": mintype = SKProductionUnit.Mine; break; case "选矿厂": mintype = SKProductionUnit.MineChoose; break; case "尾矿库": mintype = SKProductionUnit.Minelast; break; case "非金属": mintype = SKProductionUnit.Nonmetallic; break; case "职能口": mintype = SKProductionUnit.Department; break; default: mintype = 0; break; } //law.MineType = (FMProductionUnit)int.Parse(dtSource.Rows[i][1].ToString().Trim()); } } else { if (string.IsNullOrEmpty(Msg)) Msg = "第" + i + "行第1列:生产单元不能为空"; else Msg = Msg + "\n" + "第" + i + "行第1列:生产单元不能为空"; } var depart = dtSource.Rows[i][1].ToString().Trim(); if (string.IsNullOrEmpty(depart)) { if (string.IsNullOrEmpty(Msg)) Msg = "第" + i + "行第2列:班组不能为空"; else Msg = Msg + "\n" + "第" + i + "行第2列:班组不能为空"; } var post = dtSource.Rows[i][2].ToString().Trim(); if (string.IsNullOrEmpty(post)) { if (string.IsNullOrEmpty(Msg)) Msg = "第" + i + "行第3列:岗位不能为空"; else Msg = Msg + "\n" + "第" + i + "行第3列:岗位不能为空"; } var content = dtSource.Rows[i][3].ToString().Trim(); if (string.IsNullOrEmpty(content)) { if (string.IsNullOrEmpty(Msg)) Msg = "第" + i + "行第4列:管控措施/检查内容不能为空"; else Msg = Msg + "\n" + "第" + i + "行第4列:管控措施/检查内容不能为空"; } var hidden = dtSource.Rows[i][4].ToString().Trim(); var measure = dtSource.Rows[i][5].ToString().Trim(); var areaName = dtSource.Rows[i][6].ToString().Trim(); if (string.IsNullOrEmpty(areaName)) { if (string.IsNullOrEmpty(Msg)) Msg = "第" + i + "行第7列:对应区域不能为空"; else Msg = Msg + "\n" + "第" + i + "行第7列:对应区域不能为空"; } var riskName = dtSource.Rows[i][7].ToString().Trim(); if (string.IsNullOrEmpty(riskName)) { if (string.IsNullOrEmpty(Msg)) Msg = "第" + i + "行第8列:对应风险不能为空"; else Msg = Msg + "\n" + "第" + i + "行第8列:对应风险不能为空"; } List sets = new List(); if (depart.Contains("、")) { var temps = depart.Split("、").ToList(); var departTemps = departments.Where(t => temps.Contains(t.NAME)).ToList(); if (departTemps.Any()) { foreach (var de in departTemps) { if (post == "所有岗位") { var postIds = users.Where(t => t.DEPARTMENT_ID == de.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 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); } } } } } } 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 { 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列:检查部门未填写,此行跳过未导入"; } } } 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; } } }