mh_jy_safe/APT.MicroApi/APT.SK.WebApi/Controllers/Api/CheckSetController.cs
2025-12-07 12:07:09 +08:00

1896 lines
116 KiB
C#
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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<T_SK_CHECK_SET>
{
/// <summary>
/// 更新或新增数据
/// </summary>
/// <param name="entity">对象实体</param>
/// <returns></returns>
[HttpPost, Route("FullUpdate")]
public JsonActionResult<bool> FullUpdate([FromBody] T_SK_CHECK_SET entity)
{
return SafeExecute<bool>(() =>
{
List<T_SK_CHECK_SET_CONTENTS_HIDDEN> hiddens = new List<T_SK_CHECK_SET_CONTENTS_HIDDEN>();
List<T_SK_CHECK_SET_CONTENTS_BASIC> basics = new List<T_SK_CHECK_SET_CONTENTS_BASIC>();
List<T_SK_CHECK_SET_USER> users = new List<T_SK_CHECK_SET_USER>();
//List<T_SK_CHECK_SET_CONTENTS_AREA> areas = new List<T_SK_CHECK_SET_CONTENTS_AREA>();
//List<T_SK_CHECK_SET_CONTENTS_AREA_RISK> risks = new List<T_SK_CHECK_SET_CONTENTS_AREA_RISK>();
var details = entity.Nav_CheckSetContents;
entity.Nav_CheckSetContents = null;
var checkUsers = entity.Nav_CheckUsers;
entity.Nav_CheckUsers = null;
List<Guid> detailIds = new List<Guid>();
List<Guid> deleteCheckUserIds = new List<Guid>();
List<Guid> basicIds = new List<Guid>();
deleteCheckUserIds = this.GetEntities<T_SK_CHECK_SET_USER>(t => t.CHECK_SET_ID == entity.ID, new BaseFilter(entity.ORG_ID)).Select(t => t.ID).ToList();
detailIds = this.GetEntities<T_SK_CHECK_SET_CONTENTS>(t => t.CHECK_SET_ID == entity.ID, new BaseFilter(entity.ORG_ID)).Select(t => t.ID).ToList();
basicIds = this.GetEntities<T_SK_CHECK_SET_CONTENTS_BASIC>(t => detailIds.Contains(t.CHECK_CONTENTS_SET_ID), new BaseFilter(entity.ORG_ID)).Select(t => t.ID).ToList();
//hiddenIds = this.GetEntities<T_SK_CHECK_SET_CONTENTS_HIDDEN>(t => detailIds.Contains(t.CHECK_CONTENTS_SET_ID), new BaseFilter(entity.ORG_ID)).Select(t => t.ID).ToList();
var record = this.GetEntity<T_SK_CHECK_SET>(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("相同检查已存在,请修改检查信息或回到列表页检索");
}
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_SK_CHECK_QUESTION>(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_SK_ENTERPRISE_LIBRARY>(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_SK_ENTERPRISE_LIBRARY_DEPART>(t => libraryIds.Contains(t.ENTERPRISE_LIBRARY_ID) && t.DEPARTMENT_ID == entity.DEPARTMENT_ID, new BaseFilter(entity.ORG_ID));
var libraryPosts = this.GetEntities<T_SK_ENTERPRISE_LIBRARY_POST>(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_SK_ENTERPRISE_LIBRARY_POST_DETAIL>(t => postIds.Contains(t.ENTERPRISE_LIBRARY_POST_ID) && t.POST_ID == entity.POST_ID, new BaseFilter(entity.ORG_ID));
var libraryDetails = this.GetEntities<T_SK_ENTERPRISE_LIBRARY_DETAIL>(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_SK_ENTERPRISE_LIBRARY_DETAIL_CONTENT>(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_SK_ENTERPRISE_LIBRARY_DETAIL_CONTENT_HIDDEN>(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_SK_ENTERPRISE_LIBRARY_DETAIL_CONTENT_DEPART>(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_SK_ENTERPRISE_LIBRARY_DETAIL_CONTENT_POST>(t => departIds.Contains(t.ENTERPRISE_LIBRARY_DETAIL_CONTENT_DEPART_ID) && t.POST_ID == entity.POST_ID, new BaseFilter(entity.ORG_ID));
//List<T_SK_ENTERPRISE_LIBRARY> libraryList = new List<T_SK_ENTERPRISE_LIBRARY>();
List<T_SK_ENTERPRISE_LIBRARY_DEPART> libraryLevelList = new List<T_SK_ENTERPRISE_LIBRARY_DEPART>();
List<T_SK_ENTERPRISE_LIBRARY_POST> libraryPostList = new List<T_SK_ENTERPRISE_LIBRARY_POST>();
List<T_SK_ENTERPRISE_LIBRARY_POST_DETAIL> libraryPostDetList = new List<T_SK_ENTERPRISE_LIBRARY_POST_DETAIL>();
List<T_SK_ENTERPRISE_LIBRARY_DETAIL> libraryDetailList = new List<T_SK_ENTERPRISE_LIBRARY_DETAIL>();
List<T_SK_ENTERPRISE_LIBRARY_DETAIL_CONTENT> libraryDetailContList = new List<T_SK_ENTERPRISE_LIBRARY_DETAIL_CONTENT>();
List<T_SK_ENTERPRISE_LIBRARY_DETAIL_CONTENT_HIDDEN> libraryDetailHiddList = new List<T_SK_ENTERPRISE_LIBRARY_DETAIL_CONTENT_HIDDEN>();
List<T_SK_ENTERPRISE_LIBRARY_DETAIL_CONTENT_DEPART> libraryDetailDepList = new List<T_SK_ENTERPRISE_LIBRARY_DETAIL_CONTENT_DEPART>();
List<T_SK_ENTERPRISE_LIBRARY_DETAIL_CONTENT_USER> libraryDetailUserList = new List<T_SK_ENTERPRISE_LIBRARY_DETAIL_CONTENT_USER>();
//List<T_SK_ENTERPRISE_LIBRARY_DETAIL_CONTENT_POST> libraryDetailPostList = new List<T_SK_ENTERPRISE_LIBRARY_DETAIL_CONTENT_POST>();
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_SK_RISK_AREA>(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<T_SK_CHECK_SET_CONTENTS_BASIC>(basicIds);
if (deleteCheckUserIds != null && deleteCheckUserIds.Any())
this.BantchDeleteEntityNoCommit<T_SK_CHECK_SET_USER>(deleteCheckUserIds);
if (detailIds != null && detailIds.Any())
this.BantchDeleteEntityNoCommit<T_SK_CHECK_SET_CONTENTS>(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;
});
}
/// <summary>
/// 检查是否重复
/// </summary>
/// <param name="entity">对象实体</param>
/// <returns></returns>
[HttpPost, Route("CheckList")]
public JsonActionResult<bool> CheckList([FromBody] T_SK_CHECK_SET entity)
{
return SafeExecute<bool>(() =>
{
if (entity.PRODUCTION_UNIT_ID == null && entity.CHECK_TYPE_ID == null || entity.CHECK_TYPE == null || entity.DEPARTMENT_ID == null || entity.CHECK_CYCLE == null)
{
throw new Exception("生产单元,检查层级,检查类型,检查周期,检查部门,检查人都不能为空");
}
var record = this.GetEntity<T_SK_CHECK_SET>(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;
});
}
/// <summary>
/// 获取导入数据
/// 参考 [Route("api/PF/Import")]
/// </summary>
/// <returns></returns>
[HttpPost, Route("GetImportData")]
public JsonActionResult<ImportDataModel> GetImportData()
{
return SafeExecute<ImportDataModel>(() =>
{
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<int, int> startRowIndexs = new Dictionary<int, int>();
startRowIndexs.Add(0, 1);//根据Excel格式数据赋值
var dataTables = FileUtils.ReadExcelByOledb(filePath, startRowIndexs);
string Msg = string.Empty;
bool isOK = InsertModel5(dataTables.Tables[0], orgId, ref Msg);
try
{
System.IO.File.Delete(filePath);
}
catch { }
result.Data = Msg;
result.MessageList = new List<string> { Msg };
}
return result;
});
}
/// <summary>
/// 数据插入
/// </summary>
/// <param name="dtSource"></param>
/// <param name="orgId"></param>
/// <param name="Msg"></param>
/// <param name="rowIndex"></param>
/// <returns></returns>
/// <exception cref="Exception"></exception>
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<string> { "NAME" };
var standLaws = this.GetEntities<T_SK_CHECK_SET>(t => !t.IS_DELETED, newFilter);
List<T_SK_CHECK_SET> laws = new List<T_SK_CHECK_SET>();
var checkType = this.GetEntity<T_SK_CHECK_TYPE>(t => t.NAME == "岗位排查");
var checkContents = this.GetEntities<T_SK_CHECK_CONTENTS>(t => t.IS_DELETED == false, new BaseFilter(orgId));
var checkQuestions = this.GetEntities<T_SK_CHECK_QUESTION>(t => t.IS_DELETED == false, new BaseFilter(orgId));
var departments = GetEntities<T_FM_DEPARTMENT>(t => t.IS_DELETED == false, new BaseFilter(orgId));
var librarys = GetEntities<T_SK_ENTERPRISE_LIBRARY>(t => t.IS_DELETED == false, new BaseFilter(orgId));
var areaLists = GetEntities<T_SK_RISK_AREA>(t => t.IS_DELETED == false, new BaseFilter(orgId));
var posts = GetEntities<T_FM_USER_POST>(t => t.IS_DELETED == false, new BaseFilter(orgId));
var riskNames = GetEntities<T_SK_RISK_NAME>(t => t.IS_DELETED == false, new BaseFilter(orgId));
var users = GetEntities<T_FM_USER>(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<T_SK_CHECK_SET> sets = new List<T_SK_CHECK_SET>();
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<T_SK_CHECK_SET> addSets = new List<T_SK_CHECK_SET>();
List<T_SK_CHECK_SET_CONTENTS> addSetContents = new List<T_SK_CHECK_SET_CONTENTS>();
List<T_SK_CHECK_SET_CONTENTS_HIDDEN> addSetHiddens = new List<T_SK_CHECK_SET_CONTENTS_HIDDEN>();
List<T_SK_CHECK_SET_CONTENTS_AREA> addSetAreas = new List<T_SK_CHECK_SET_CONTENTS_AREA>();
List<T_SK_CHECK_SET_CONTENTS_AREA_RISK> addSetAreaRisks = new List<T_SK_CHECK_SET_CONTENTS_AREA_RISK>();
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_SK_ENTERPRISE_LIBRARY>(t => t.IS_DELETED == false, new BaseFilter(orgId));
var checkTypes = this.GetEntities<T_SK_CHECK_TYPE>(t => !t.IS_DELETED, new BaseFilter(orgId));
var checkContents = this.GetEntities<T_SK_CHECK_CONTENTS>(t => t.IS_DELETED == false, new BaseFilter(orgId));
var checkQuestions = this.GetEntities<T_SK_CHECK_QUESTION>(t => t.IS_DELETED == false, new BaseFilter(orgId));
var departments = GetEntities<T_FM_DEPARTMENT>(t => t.IS_DELETED == false, new BaseFilter(orgId));
var areaLists = GetEntities<T_SK_RISK_AREA>(t => t.IS_DELETED == false, new BaseFilter(orgId));
var posts = GetEntities<T_FM_USER_POST>(t => t.IS_DELETED == false, new BaseFilter(orgId));
var riskNames = GetEntities<T_SK_RISK_NAME>(t => t.IS_DELETED == false, new BaseFilter(orgId));
var users = GetEntities<T_FM_USER>(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<ImportDetails> imports = new List<ImportDetails>();
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<T_SK_CHECK_SET> addSets = new List<T_SK_CHECK_SET>();
List<T_SK_CHECK_SET_CONTENTS> addSetContents = new List<T_SK_CHECK_SET_CONTENTS>();
List<T_SK_CHECK_SET_CONTENTS_HIDDEN> addSetHiddens = new List<T_SK_CHECK_SET_CONTENTS_HIDDEN>();
List<T_SK_CHECK_SET_CONTENTS_AREA> addSetAreas = new List<T_SK_CHECK_SET_CONTENTS_AREA>();
List<T_SK_CHECK_SET_CONTENTS_AREA_RISK> addSetAreaRisks = new List<T_SK_CHECK_SET_CONTENTS_AREA_RISK>();
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<string>();
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_SK_CHECK_TYPE>(t => !t.IS_DELETED, new BaseFilter(orgId));
DateTime dtNow = DateTime.Now;
if (dtSource.Rows.Count == 1)
{
throw new Exception("导入必须两条以上,一条请直接新增");
}
List<ImportDetails> imports = new List<ImportDetails>();
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<T_SK_CHECK_TYPE> addSets = new List<T_SK_CHECK_TYPE>();
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_SK_CHECK_CONTENTS>(t => t.IS_DELETED == false, new BaseFilter(orgId));
var checkQuestions = this.GetEntities<T_SK_CHECK_QUESTION>(t => t.IS_DELETED == false, new BaseFilter(orgId));
DateTime dtNow = DateTime.Now;
if (dtSource.Rows.Count == 1)
{
throw new Exception("导入必须两条以上,一条请直接新增");
}
List<ImportDetails> imports = new List<ImportDetails>();
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<T_SK_CHECK_CONTENTS> addSets = new List<T_SK_CHECK_CONTENTS>();
List<T_SK_CHECK_QUESTION> addQues = new List<T_SK_CHECK_QUESTION>();
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;
}
/// <summary>
/// 数据插入
/// </summary>
/// <param name="dtSource"></param>
/// <param name="OrgID"></param>
/// <param name="Msg"></param>
/// <param name="rowIndex"></param>
/// <returns></returns>
/// <exception cref="Exception"></exception>
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_SK_ENTERPRISE_LIBRARY>(t => !t.IS_DELETED && t.ENABLE_STATUS == 0, new BaseFilter(orgId));
var libraryDetails = this.GetEntities<T_SK_ENTERPRISE_LIBRARY_DETAIL>(t => !t.IS_DELETED, new BaseFilter(orgId));
var sets = this.GetEntities<T_SK_CHECK_SET>(t => !t.IS_DELETED, new BaseFilter(orgId));
var checkTypes = this.GetEntities<T_SK_CHECK_TYPE>(t => !t.IS_DELETED, new BaseFilter(orgId));
var productUnits = this.GetEntities<T_FM_USER_PRODUCTION_UNIT_SET>(t => !t.IS_DELETED, new BaseFilter(orgId));
var areas = this.GetEntities<T_SK_RISK_AREA>(t => !t.IS_DELETED, new BaseFilter(orgId));
var contents = this.GetEntities<T_SK_CHECK_CONTENTS>(t => !t.IS_DELETED, new BaseFilter(orgId));
List<T_SK_CHECK_SET> setLists = new List<T_SK_CHECK_SET>();
List<T_SK_CHECK_SET_CONTENTS> setContentLists = new List<T_SK_CHECK_SET_CONTENTS>();
List<T_SK_CHECK_SET_USER> setUserLists = new List<T_SK_CHECK_SET_USER>();
var posts = GetEntities<T_SC_POST>(t => t.IS_DELETED == false, new BaseFilter(orgId));
var departments = GetEntities<T_FM_DEPARTMENT>(t => t.IS_DELETED == false && t.ENABLE_STATUS == 0, new BaseFilter(orgId));
var users = GetEntities<T_FM_USER>(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<string>();
var checkContents = new List<string>();
var riskAreas = new List<string>();
var riskNames = new List<string>();
var measures = new List<string>();
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列:检查部门未填写,此行跳过未导入";
}
}
}
if (!string.IsNullOrEmpty(Msg))
{
throw new Exception(Msg);
}
else
{
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;
}
}
}