2025-08-25 09:56:57 +08:00
|
|
|
|
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.SC;
|
|
|
|
|
|
using APT.MS.Domain.Entities.SC;
|
|
|
|
|
|
using APT.MS.Domain.Entities.SK;
|
|
|
|
|
|
using APT.MS.Domain.Enums;
|
|
|
|
|
|
using APT.Utility;
|
|
|
|
|
|
using Microsoft.AspNetCore.Mvc;
|
|
|
|
|
|
using System;
|
|
|
|
|
|
using System.Collections.Generic;
|
|
|
|
|
|
using System.Data;
|
|
|
|
|
|
using System.IO;
|
|
|
|
|
|
using System.Linq;
|
|
|
|
|
|
using APT.MS.Domain.Enums.SK;
|
|
|
|
|
|
using Microsoft.Extensions.Logging;
|
|
|
|
|
|
using Org.BouncyCastle.Utilities;
|
|
|
|
|
|
using System.Reflection.Metadata;
|
|
|
|
|
|
using Microsoft.Extensions.Hosting;
|
|
|
|
|
|
using Microsoft.Extensions.DependencyModel;
|
|
|
|
|
|
|
|
|
|
|
|
namespace APT.SK.WebApi.Controllers.Api
|
|
|
|
|
|
{
|
|
|
|
|
|
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>();
|
2025-09-20 13:03:07 +08:00
|
|
|
|
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>();
|
2025-08-25 09:56:57 +08:00
|
|
|
|
var details = entity.Nav_CheckSetContents;
|
|
|
|
|
|
entity.Nav_CheckSetContents = 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);
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
item.Nav_ContentsHiddens = null;
|
|
|
|
|
|
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);
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
item.Nav_ContentsBasics = null;
|
2025-09-20 13:03:07 +08:00
|
|
|
|
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;
|
2025-08-25 09:56:57 +08:00
|
|
|
|
}
|
2025-09-20 13:03:07 +08:00
|
|
|
|
}
|
|
|
|
|
|
|
2025-08-25 09:56:57 +08:00
|
|
|
|
this.UnifiedCommit(() =>
|
|
|
|
|
|
{
|
|
|
|
|
|
if (entity != null)
|
|
|
|
|
|
UpdateEntityNoCommit(entity);
|
|
|
|
|
|
if (details != null && details.Any())
|
|
|
|
|
|
BantchSaveEntityNoCommit(details);
|
|
|
|
|
|
if (hiddens != null && hiddens.Any())
|
|
|
|
|
|
BantchSaveEntityNoCommit(hiddens);
|
|
|
|
|
|
if (basics != null && basics.Any())
|
|
|
|
|
|
BantchSaveEntityNoCommit(basics);
|
2025-09-20 13:03:07 +08:00
|
|
|
|
if (areas != null && areas.Any())
|
|
|
|
|
|
BantchSaveEntityNoCommit(areas);
|
|
|
|
|
|
if (risks != null && risks.Any())
|
|
|
|
|
|
BantchSaveEntityNoCommit(risks);
|
2025-08-25 09:56:57 +08:00
|
|
|
|
});
|
|
|
|
|
|
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 = InsertModel2(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;
|
2025-09-20 13:03:07 +08:00
|
|
|
|
set.CHECK_CYCLE = SKPLANCHECKFREQUENCYEnum.Date;
|
|
|
|
|
|
set.CHECK_TYPE = SKDepartmentTypeEnum.班组级;
|
2025-08-25 09:56:57 +08:00
|
|
|
|
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;
|
2025-09-20 13:03:07 +08:00
|
|
|
|
set.RISK_NAME = riskName;
|
2025-08-25 09:56:57 +08:00
|
|
|
|
sets.Add(set);
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
else if (post.Contains(","))
|
|
|
|
|
|
{
|
|
|
|
|
|
var temp = post.Split(",").ToList();
|
2025-09-20 13:03:07 +08:00
|
|
|
|
var postIdTemps = posts.Where(t => temp.Contains(t.NAME)).Select(m => m.ID).ToList();
|
2025-08-25 09:56:57 +08:00
|
|
|
|
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;
|
2025-09-20 13:03:07 +08:00
|
|
|
|
set.CHECK_CYCLE = SKPLANCHECKFREQUENCYEnum.Date;
|
|
|
|
|
|
set.CHECK_TYPE = SKDepartmentTypeEnum.班组级;
|
2025-08-25 09:56:57 +08:00
|
|
|
|
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;
|
2025-09-20 13:03:07 +08:00
|
|
|
|
set.CHECK_CYCLE = SKPLANCHECKFREQUENCYEnum.Date;
|
|
|
|
|
|
set.CHECK_TYPE = SKDepartmentTypeEnum.班组级;
|
2025-08-25 09:56:57 +08:00
|
|
|
|
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;
|
2025-09-20 13:03:07 +08:00
|
|
|
|
set.CHECK_CYCLE = SKPLANCHECKFREQUENCYEnum.Date;
|
|
|
|
|
|
set.CHECK_TYPE = SKDepartmentTypeEnum.班组级;
|
2025-08-25 09:56:57 +08:00
|
|
|
|
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;
|
2025-09-20 13:03:07 +08:00
|
|
|
|
set.CHECK_CYCLE = SKPLANCHECKFREQUENCYEnum.Date;
|
|
|
|
|
|
set.CHECK_TYPE = SKDepartmentTypeEnum.班组级;
|
2025-08-25 09:56:57 +08:00
|
|
|
|
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;
|
2025-09-20 13:03:07 +08:00
|
|
|
|
set.CHECK_CYCLE = SKPLANCHECKFREQUENCYEnum.Date;
|
|
|
|
|
|
set.CHECK_TYPE = SKDepartmentTypeEnum.班组级;
|
2025-08-25 09:56:57 +08:00
|
|
|
|
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);
|
2025-09-20 13:03:07 +08:00
|
|
|
|
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();
|
2025-08-25 09:56:57 +08:00
|
|
|
|
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)
|
|
|
|
|
|
{
|
2025-09-20 13:03:07 +08:00
|
|
|
|
if (item3 != null && !string.IsNullOrEmpty(item3.HIDDEN_DESCRIPTION))
|
2025-08-25 09:56:57 +08:00
|
|
|
|
{
|
|
|
|
|
|
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 == "所有风险")
|
|
|
|
|
|
{
|
2025-09-20 13:03:07 +08:00
|
|
|
|
var libraryTempIds = librarys.Where(t => t.MineType == item.Key.MineType && t.AREA_ID == area.ID).Select(t => t.RISK_NAME_ID).Distinct().ToList();
|
2025-08-25 09:56:57 +08:00
|
|
|
|
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);
|
2025-09-20 13:03:07 +08:00
|
|
|
|
}
|
2025-08-25 09:56:57 +08:00
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
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("导入必须两条以上,一条请直接新增");
|
|
|
|
|
|
}
|
2025-09-20 13:03:07 +08:00
|
|
|
|
List<ImportDetails> imports = new List<ImportDetails>();
|
2025-08-25 09:56:57 +08:00
|
|
|
|
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 "岗位级":
|
2025-09-20 13:03:07 +08:00
|
|
|
|
set.DepartType = SKDepartmentTypeEnum.班组级;
|
2025-08-25 09:56:57 +08:00
|
|
|
|
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 "每班":
|
2025-09-20 13:03:07 +08:00
|
|
|
|
set.CheckCycle = SKPLANCHECKFREQUENCYEnum.Date;
|
2025-08-25 09:56:57 +08:00
|
|
|
|
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())
|
|
|
|
|
|
{
|
2025-09-20 13:03:07 +08:00
|
|
|
|
var departLevelGroups = imports.GroupBy(t => new { t.MineType, t.DepartType, t.CheckTypeId, t.CheckCycle }).ToList();
|
2025-08-25 09:56:57 +08:00
|
|
|
|
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();
|
2025-09-20 13:03:07 +08:00
|
|
|
|
var contentGroups = contents.GroupBy(t => new { t.MineType, t.DepartType, t.CheckTypeId, t.CheckCycle, t.CheckContent }).ToList();
|
2025-08-25 09:56:57 +08:00
|
|
|
|
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>();
|
2025-09-20 13:03:07 +08:00
|
|
|
|
var areaTemps = contents.Where(t => t.CheckContent == item2.Key.CheckContent).Select(m => m.Areas).ToList();
|
2025-08-25 09:56:57 +08:00
|
|
|
|
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())
|
|
|
|
|
|
{
|
2025-09-20 13:03:07 +08:00
|
|
|
|
var departLevelGroups = imports.GroupBy(t => new { t.CheckContent }).ToList();
|
2025-08-25 09:56:57 +08:00
|
|
|
|
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;
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|