基础库导入
This commit is contained in:
parent
78f03f78c3
commit
26a9c2ed37
@ -195,7 +195,7 @@ namespace APT.HM.WebApi.Controllers.Api
|
|||||||
{
|
{
|
||||||
foreach (var safe in t.Nav_SafeConfirms.OrderBy(m=>m.NUM))
|
foreach (var safe in t.Nav_SafeConfirms.OrderBy(m=>m.NUM))
|
||||||
{
|
{
|
||||||
if (safe!=null)
|
if (safe!=null && !string.IsNullOrEmpty(safe.NAME))
|
||||||
{
|
{
|
||||||
var safeTemp = safe.NUM + "、" + safe.NAME + ";";
|
var safeTemp = safe.NUM + "、" + safe.NAME + ";";
|
||||||
t.SafeConfirmsStr = t.SafeConfirmsStr + safeTemp;
|
t.SafeConfirmsStr = t.SafeConfirmsStr + safeTemp;
|
||||||
@ -206,7 +206,7 @@ namespace APT.HM.WebApi.Controllers.Api
|
|||||||
{
|
{
|
||||||
foreach (var safe in t.Nav_SafeMeasures.OrderBy(m => m.NUM))
|
foreach (var safe in t.Nav_SafeMeasures.OrderBy(m => m.NUM))
|
||||||
{
|
{
|
||||||
if (safe != null)
|
if (safe != null && !string.IsNullOrEmpty(safe.NAME))
|
||||||
{
|
{
|
||||||
var safeTemp = safe.NUM + "、" + safe.NAME + ";";
|
var safeTemp = safe.NUM + "、" + safe.NAME + ";";
|
||||||
t.SafeMeasuresStr = t.SafeMeasuresStr + safeTemp;
|
t.SafeMeasuresStr = t.SafeMeasuresStr + safeTemp;
|
||||||
@ -217,7 +217,7 @@ namespace APT.HM.WebApi.Controllers.Api
|
|||||||
{
|
{
|
||||||
foreach (var safe in t.Nav_DealMeasures.OrderBy(m => m.NUM))
|
foreach (var safe in t.Nav_DealMeasures.OrderBy(m => m.NUM))
|
||||||
{
|
{
|
||||||
if (safe != null)
|
if (safe != null && !string.IsNullOrEmpty(safe.NAME))
|
||||||
{
|
{
|
||||||
var safeTemp = safe.NUM + "、" + safe.NAME + ";";
|
var safeTemp = safe.NUM + "、" + safe.NAME + ";";
|
||||||
t.DealMeasuresStr = t.DealMeasuresStr + safeTemp;
|
t.DealMeasuresStr = t.DealMeasuresStr + safeTemp;
|
||||||
@ -316,10 +316,6 @@ namespace APT.HM.WebApi.Controllers.Api
|
|||||||
var posts = this.GetEntities<T_FM_USER_POST>(t => !t.IS_DELETED, new BaseFilter(orgId));
|
var posts = this.GetEntities<T_FM_USER_POST>(t => !t.IS_DELETED, new BaseFilter(orgId));
|
||||||
|
|
||||||
//先做一次非空判断
|
//先做一次非空判断
|
||||||
if (!string.IsNullOrEmpty(Msg))
|
|
||||||
{
|
|
||||||
throw new Exception(Msg);
|
|
||||||
}
|
|
||||||
for (int i = 0; i < rowAll; i++)
|
for (int i = 0; i < rowAll; i++)
|
||||||
{
|
{
|
||||||
if (string.IsNullOrEmpty(dtSource.Rows[i][0].ToString().Trim()) || string.IsNullOrEmpty(dtSource.Rows[i][1].ToString().Trim())
|
if (string.IsNullOrEmpty(dtSource.Rows[i][0].ToString().Trim()) || string.IsNullOrEmpty(dtSource.Rows[i][1].ToString().Trim())
|
||||||
@ -330,6 +326,10 @@ namespace APT.HM.WebApi.Controllers.Api
|
|||||||
Msg = Msg + "第" + (i + 3) + "行生产单元,作业环节,任务类型,是否关键作业,作业周期,作业许可审批层级,作业许可类别,作业等级存在空数据,请先检查所有字段内容;";
|
Msg = Msg + "第" + (i + 3) + "行生产单元,作业环节,任务类型,是否关键作业,作业周期,作业许可审批层级,作业许可类别,作业等级存在空数据,请先检查所有字段内容;";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
if (!string.IsNullOrEmpty(Msg))
|
||||||
|
{
|
||||||
|
throw new Exception(Msg);
|
||||||
|
}
|
||||||
//基础数据判断
|
//基础数据判断
|
||||||
for (int i = 0; i < rowAll; i++)
|
for (int i = 0; i < rowAll; i++)
|
||||||
{
|
{
|
||||||
|
|||||||
@ -10,12 +10,14 @@ using APT.BaseData.Services.Services.OP;
|
|||||||
using APT.Infrastructure.Api;
|
using APT.Infrastructure.Api;
|
||||||
using APT.Infrastructure.Core;
|
using APT.Infrastructure.Core;
|
||||||
using APT.MS.Domain.Entities.FO;
|
using APT.MS.Domain.Entities.FO;
|
||||||
|
using APT.MS.Domain.Entities.HM;
|
||||||
using APT.MS.Domain.Entities.LR;
|
using APT.MS.Domain.Entities.LR;
|
||||||
using APT.MS.Domain.Entities.SK;
|
using APT.MS.Domain.Entities.SK;
|
||||||
using APT.MS.Domain.Enums;
|
using APT.MS.Domain.Enums;
|
||||||
using APT.MS.Domain.Enums.SK;
|
using APT.MS.Domain.Enums.SK;
|
||||||
using APT.SK.WebApi.Controllers.Api;
|
using APT.SK.WebApi.Controllers.Api;
|
||||||
using APT.Utility;
|
using APT.Utility;
|
||||||
|
using Castle.Core.Internal;
|
||||||
using Microsoft.AspNetCore.Mvc;
|
using Microsoft.AspNetCore.Mvc;
|
||||||
using Microsoft.Data.SqlClient;
|
using Microsoft.Data.SqlClient;
|
||||||
using Microsoft.EntityFrameworkCore;
|
using Microsoft.EntityFrameworkCore;
|
||||||
@ -28,6 +30,7 @@ using System;
|
|||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using System.Data;
|
using System.Data;
|
||||||
using System.DirectoryServices.ActiveDirectory;
|
using System.DirectoryServices.ActiveDirectory;
|
||||||
|
using System.IO;
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
using System.Security.Policy;
|
using System.Security.Policy;
|
||||||
|
|
||||||
@ -967,6 +970,7 @@ namespace APT.SK.WebApi.Controllers
|
|||||||
pageFilter.Include.Add("Nav_ProductionUnit");
|
pageFilter.Include.Add("Nav_ProductionUnit");
|
||||||
pageFilter.SelectField.Add("Nav_Details.NUM");
|
pageFilter.SelectField.Add("Nav_Details.NUM");
|
||||||
pageFilter.SelectField.Add("Nav_Details.MEASURES_NAME");
|
pageFilter.SelectField.Add("Nav_Details.MEASURES_NAME");
|
||||||
|
pageFilter.SelectField.Add("Nav_Details.Nav_DetailContents.Nav_Contents.CHECKCONTENT");
|
||||||
var result = WitOrderPaged(null, pageFilter);
|
var result = WitOrderPaged(null, pageFilter);
|
||||||
if (result != null && result.Data != null && result.Data.Any())
|
if (result != null && result.Data != null && result.Data.Any())
|
||||||
{
|
{
|
||||||
@ -980,9 +984,22 @@ namespace APT.SK.WebApi.Controllers
|
|||||||
{
|
{
|
||||||
if (item2 != null && !string.IsNullOrEmpty(item2.MEASURES_NAME))
|
if (item2 != null && !string.IsNullOrEmpty(item2.MEASURES_NAME))
|
||||||
{
|
{
|
||||||
var temp = item2.NUM + "、" + item2.MEASURES_NAME + Environment.NewLine;
|
var temp = item2.NUM + "、" + item2.MEASURES_NAME + "。";
|
||||||
item.MINE_NAME = item.MINE_NAME + temp;
|
item.MINE_NAME = item.MINE_NAME + temp;
|
||||||
item.MEASURE = item.MEASURE + temp;
|
item.MEASURE = item.MEASURE + temp;
|
||||||
|
var conListTemp = "";
|
||||||
|
if (item2.Nav_DetailContents != null && item2.Nav_DetailContents.Any())
|
||||||
|
{
|
||||||
|
foreach (var con in item2.Nav_DetailContents.OrderBy(t => t.NUM))
|
||||||
|
{
|
||||||
|
if (con != null && con.Nav_Contents != null)
|
||||||
|
{
|
||||||
|
var conTemp = item2.NUM +"."+con.NUM + "、"+con.Nav_Contents?.CHECKCONTENT +"?";
|
||||||
|
conListTemp = conListTemp + conTemp;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
item.CHECKCONTENTS = item.CHECKCONTENTS+ conListTemp;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -2074,5 +2091,385 @@ namespace APT.SK.WebApi.Controllers
|
|||||||
return true;
|
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, 2);//根据Excel格式数据赋值
|
||||||
|
var dataTables = FileUtils.ReadExcelByOledb(filePath, startRowIndexs);
|
||||||
|
string Msg = string.Empty;
|
||||||
|
|
||||||
|
bool isOK = InsertModel(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;
|
||||||
|
|
||||||
|
//基础库
|
||||||
|
var libs = this.GetEntities<T_SK_BASIC_LIBRARY>(t => !t.IS_DELETED, new BaseFilter(orgId));
|
||||||
|
//风险类别
|
||||||
|
var riskTypes = this.GetEntities<T_SK_RISK_TYPE>(t => !t.IS_DELETED, new BaseFilter(orgId));
|
||||||
|
//LEC
|
||||||
|
var libLs = this.GetEntities<T_SK_SCOREL>(t => !t.IS_DELETED, new BaseFilter(orgId));
|
||||||
|
var libEs = this.GetEntities<T_SK_SCOREE>(t => !t.IS_DELETED, new BaseFilter(orgId));
|
||||||
|
var libCs = this.GetEntities<T_SK_SCOREC>(t => !t.IS_DELETED, new BaseFilter(orgId));
|
||||||
|
//生产单元
|
||||||
|
var proUnits = this.GetEntities<T_FM_USER_PRODUCTION_UNIT_SET>(t => !t.IS_DELETED, new BaseFilter(orgId));
|
||||||
|
//检查内容
|
||||||
|
var checkCons = this.GetEntities<T_SK_CHECK_CONTENTS>(t => !t.IS_DELETED, new BaseFilter(orgId));
|
||||||
|
//检查依据
|
||||||
|
var checkBas = this.GetEntities<T_SK_CHECK_CONTENTS_BASIC>(t => !t.IS_DELETED, new BaseFilter(orgId));
|
||||||
|
//隐患描述
|
||||||
|
var checkHids = this.GetEntities<T_SK_CHECK_QUESTION>(t => !t.IS_DELETED, new BaseFilter(orgId));
|
||||||
|
//先做一次非空判断
|
||||||
|
for (int i = 0; i < rowAll; i++)
|
||||||
|
{
|
||||||
|
if (string.IsNullOrEmpty(dtSource.Rows[i][0].ToString().Trim()) || string.IsNullOrEmpty(dtSource.Rows[i][1].ToString().Trim())
|
||||||
|
|| string.IsNullOrEmpty(dtSource.Rows[i][2].ToString().Trim()) || string.IsNullOrEmpty(dtSource.Rows[i][3].ToString().Trim())
|
||||||
|
|| string.IsNullOrEmpty(dtSource.Rows[i][7].ToString().Trim()) || string.IsNullOrEmpty(dtSource.Rows[i][8].ToString().Trim())
|
||||||
|
)
|
||||||
|
{
|
||||||
|
Msg = Msg + "第" + (i + 3) + "行生产单元,风险名称,风险描述,风险类别,风险评价L,风险评价E,风险评价C,风险等级,管控层级不能为空,请先检查所有字段内容;";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (!string.IsNullOrEmpty(Msg))
|
||||||
|
{
|
||||||
|
throw new Exception(Msg);
|
||||||
|
}
|
||||||
|
//基础数据判断
|
||||||
|
for (int i = 0; i < rowAll; i++)
|
||||||
|
{
|
||||||
|
var proUnit = dtSource.Rows[i][0].ToString().Trim();
|
||||||
|
var proUnitFirst = proUnits.FirstOrDefault(t => t.NAME == proUnit);
|
||||||
|
if (proUnitFirst == null)
|
||||||
|
{
|
||||||
|
Msg = Msg + "第" + (i + 3) + "行生产单元" + proUnit + "不存在,请先到系统管理维护;";
|
||||||
|
}
|
||||||
|
var riskType = dtSource.Rows[i][3].ToString().Trim();
|
||||||
|
var riskTypeFirst = riskTypes.FirstOrDefault(t => t.NAME == riskType);
|
||||||
|
if (riskTypeFirst == null)
|
||||||
|
{
|
||||||
|
Msg = Msg + "第" + (i + 3) + "行风险类别" + riskType + "不存在,请先到系统管理维护;";
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
var libFirst = libs.FirstOrDefault(t => t.PRODUCTION_UNIT_ID == proUnitFirst.ID && t.TYPE_ID == riskTypeFirst.ID && t.RISK_NAME == dtSource.Rows[i][1].ToString().Trim() && t.RISK_DESCRIPTION == dtSource.Rows[i][2].ToString().Trim());
|
||||||
|
if (libFirst != null)
|
||||||
|
{
|
||||||
|
Msg = Msg + "第" + (i + 3) + "行风险名称" + dtSource.Rows[i][1].ToString().Trim() + "已存在库中,请勿重复导入;";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
var libL = dtSource.Rows[i][4].ToString().Trim();
|
||||||
|
if (!string.IsNullOrEmpty(libL))
|
||||||
|
{
|
||||||
|
var libLFirst = libLs.FirstOrDefault(t => t.SCORE == decimal.Parse(libL));
|
||||||
|
if (libLFirst == null)
|
||||||
|
{
|
||||||
|
Msg = Msg + "第" + (i + 3) + "行风险评价L" + libL + "不存在,请先到系统管理维护;";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
var libE = dtSource.Rows[i][5].ToString().Trim();
|
||||||
|
if (!string.IsNullOrEmpty(libE))
|
||||||
|
{
|
||||||
|
var libEFirst = libEs.FirstOrDefault(t => t.SCORE == decimal.Parse(libE));
|
||||||
|
if (libEFirst == null)
|
||||||
|
{
|
||||||
|
Msg = Msg + "第" + (i + 3) + "行风险评价E" + libE + "不存在,请先到系统管理维护;";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
var libC = dtSource.Rows[i][6].ToString().Trim();
|
||||||
|
if (!string.IsNullOrEmpty(libC))
|
||||||
|
{
|
||||||
|
var libCFirst = libCs.FirstOrDefault(t => t.SCORE == decimal.Parse(libC));
|
||||||
|
if (libCFirst == null)
|
||||||
|
{
|
||||||
|
Msg = Msg + "第" + (i + 3) + "行风险评价C" + libC + "不存在,请先到系统管理维护;";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
var riskLevel = dtSource.Rows[i][7].ToString().Trim();
|
||||||
|
if (riskLevel != "重大风险" && riskLevel != "较大风险" && riskLevel != "一般风险" && riskLevel != "低风险")
|
||||||
|
{
|
||||||
|
Msg = Msg + "第" + (i + 3) + "行风险等级只能填写重大风险、较大风险、一般风险、低风险,请修改" + riskLevel + ";";
|
||||||
|
}
|
||||||
|
var controlLevel = dtSource.Rows[i][8].ToString().Trim();
|
||||||
|
if (controlLevel != "_5_" && controlLevel != "_10_" && controlLevel != "_15_" && controlLevel != "_20_"
|
||||||
|
&& controlLevel != "_5_10_" && controlLevel != "_10_15_" && controlLevel != "_15_20_" && controlLevel != "_5_10_15_"
|
||||||
|
&& controlLevel != "_10_15_20_" && controlLevel != "_5_10_15_20_")
|
||||||
|
{
|
||||||
|
Msg = Msg + "第" + (i + 3) + "行管控层级格式不确,请修改" + controlLevel + ";";
|
||||||
|
}
|
||||||
|
if (!string.IsNullOrEmpty(dtSource.Rows[i][11].ToString().Trim()))
|
||||||
|
{
|
||||||
|
var lists = dtSource.Rows[i][11].ToString().Trim().Split("。").ToList();
|
||||||
|
if (lists != null && lists.Any())
|
||||||
|
{
|
||||||
|
foreach (var item in lists)
|
||||||
|
{
|
||||||
|
if (!string.IsNullOrEmpty(item))
|
||||||
|
{
|
||||||
|
var conTemps = item.Split("?").ToList();
|
||||||
|
if (conTemps != null && conTemps.Any())
|
||||||
|
{
|
||||||
|
foreach (var con in conTemps)
|
||||||
|
{
|
||||||
|
if (!string.IsNullOrEmpty(con))
|
||||||
|
{
|
||||||
|
if (con.Contains("*"))
|
||||||
|
{
|
||||||
|
var temp = con.Split("*")[1];
|
||||||
|
var conFirst = checkCons.FirstOrDefault(t => t.CHECKCONTENT == temp);
|
||||||
|
if (conFirst == null)
|
||||||
|
{
|
||||||
|
Msg = Msg + "第" + (i + 3) + "行检查内容" + temp + "不存在,请先到系统管理维护;";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
var conFirst = checkCons.FirstOrDefault(t => t.CHECKCONTENT == con);
|
||||||
|
if (conFirst == null)
|
||||||
|
{
|
||||||
|
Msg = Msg + "第" + (i + 3) + "行检查内容" + con + "不存在,请先到系统管理维护;";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
if (!string.IsNullOrEmpty(Msg))
|
||||||
|
{
|
||||||
|
throw new Exception(Msg);
|
||||||
|
}
|
||||||
|
//导入
|
||||||
|
List<T_SK_BASIC_LIBRARY> libList = new List<T_SK_BASIC_LIBRARY>();
|
||||||
|
List<T_SK_BASIC_LIBRARY_DETAIL> libDetList = new List<T_SK_BASIC_LIBRARY_DETAIL>();
|
||||||
|
List<T_SK_BASIC_LIBRARY_DETAIL_CONTENT> libConList = new List<T_SK_BASIC_LIBRARY_DETAIL_CONTENT>();
|
||||||
|
List<T_SK_BASIC_LIBRARY_DETAIL_CONTENT_BASIC> libBasicList = new List<T_SK_BASIC_LIBRARY_DETAIL_CONTENT_BASIC>();
|
||||||
|
List<T_SK_BASIC_LIBRARY_DETAIL_CONTENT_HIDDEN> libHidList = new List<T_SK_BASIC_LIBRARY_DETAIL_CONTENT_HIDDEN>();
|
||||||
|
for (int i = 0; i < rowAll; i++)
|
||||||
|
{
|
||||||
|
var proUnit = dtSource.Rows[i][0].ToString().Trim();
|
||||||
|
var proUnitFirst = proUnits.FirstOrDefault(t => t.NAME == proUnit);
|
||||||
|
var riskName = dtSource.Rows[i][1].ToString().Trim();
|
||||||
|
var riskDescript = dtSource.Rows[i][2].ToString().Trim();
|
||||||
|
var riskType = dtSource.Rows[i][3].ToString().Trim();
|
||||||
|
var riskTypeFirst = riskTypes.FirstOrDefault(t => t.NAME == riskType);
|
||||||
|
var libL = dtSource.Rows[i][4].ToString().Trim();
|
||||||
|
var libLFirst = string.IsNullOrEmpty(libL)?null: libLs.FirstOrDefault(t => t.SCORE == decimal.Parse(libL));
|
||||||
|
var libE = dtSource.Rows[i][5].ToString().Trim();
|
||||||
|
var libEFirst = string.IsNullOrEmpty(libE) ? null:libEs.FirstOrDefault(t => t.SCORE == decimal.Parse(libE));
|
||||||
|
var libC = dtSource.Rows[i][6].ToString().Trim();
|
||||||
|
var libCFirst = string.IsNullOrEmpty(libC) ? null : libCs.FirstOrDefault(t => t.SCORE == decimal.Parse(libC));
|
||||||
|
var riskLevel = dtSource.Rows[i][7].ToString().Trim();
|
||||||
|
var controlLevel = dtSource.Rows[i][8].ToString().Trim();
|
||||||
|
var emerg = dtSource.Rows[i][9].ToString().Trim();
|
||||||
|
var mesList = dtSource.Rows[i][10].ToString().Trim();
|
||||||
|
var conList = dtSource.Rows[i][11].ToString().Trim();
|
||||||
|
T_SK_BASIC_LIBRARY lib = new T_SK_BASIC_LIBRARY();
|
||||||
|
lib.ORG_ID = orgId;
|
||||||
|
lib.PRODUCTION_UNIT_ID = proUnitFirst.ID;
|
||||||
|
lib.RISK_NAME = riskName;
|
||||||
|
lib.RISK_DESCRIPTION = riskDescript;
|
||||||
|
lib.TYPE_ID = riskTypeFirst.ID;
|
||||||
|
lib.SCOREL_ID = libLFirst?.ID;
|
||||||
|
lib.SCOREE_ID = libEFirst?.ID;
|
||||||
|
lib.SCOREC_ID = libCFirst?.ID;
|
||||||
|
lib.EVALUATE_SCORE = (lib.SCOREL_ID!=null && lib.SCOREE_ID!=null && lib.SCOREC_ID!=null)? Math.Round(libLFirst.SCORE * libEFirst.SCORE* libCFirst.SCORE,2):0;
|
||||||
|
lib.DEPARTMENT_TYPE = controlLevel;
|
||||||
|
lib.CODE = DateTime.Now.ToString("yyyyMMddHH") + i.ToString().PadLeft(4, '0');
|
||||||
|
lib.EMERGENCY = emerg;
|
||||||
|
lib.ENABLE_STATUS = FMEnableStatusEnum.启用;
|
||||||
|
switch (riskLevel)
|
||||||
|
{
|
||||||
|
case "重大风险":
|
||||||
|
lib.EVALUATE_LEVEL = SKEvaluateLevelEnum.重大风险;
|
||||||
|
break;
|
||||||
|
case "较大风险":
|
||||||
|
lib.EVALUATE_LEVEL = SKEvaluateLevelEnum.较大风险;
|
||||||
|
break;
|
||||||
|
case "一般风险":
|
||||||
|
lib.EVALUATE_LEVEL = SKEvaluateLevelEnum.一般风险;
|
||||||
|
break;
|
||||||
|
case "低风险":
|
||||||
|
lib.EVALUATE_LEVEL = SKEvaluateLevelEnum.低风险;
|
||||||
|
break;
|
||||||
|
default: break;
|
||||||
|
}
|
||||||
|
libList.Add(lib);
|
||||||
|
if (!string.IsNullOrEmpty(mesList))
|
||||||
|
{
|
||||||
|
var lists = mesList.Split("。").ToList();
|
||||||
|
if (lists != null && lists.Any())
|
||||||
|
{
|
||||||
|
foreach (var item in lists)
|
||||||
|
{
|
||||||
|
if (!string.IsNullOrEmpty(item))
|
||||||
|
{
|
||||||
|
if (item.Contains("*"))
|
||||||
|
{
|
||||||
|
var num = item.Split("*")[0];
|
||||||
|
var name = item.Split("*")[1];
|
||||||
|
T_SK_BASIC_LIBRARY_DETAIL con = new T_SK_BASIC_LIBRARY_DETAIL();
|
||||||
|
con.ORG_ID = orgId;
|
||||||
|
con.BASIC_LIBRARY_ID = lib.ID;
|
||||||
|
con.NUM = string.IsNullOrEmpty(num) ? null : int.Parse(num);
|
||||||
|
con.MEASURES_NAME = name;
|
||||||
|
libDetList.Add(con);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
T_SK_BASIC_LIBRARY_DETAIL con = new T_SK_BASIC_LIBRARY_DETAIL();
|
||||||
|
con.ORG_ID = orgId;
|
||||||
|
con.BASIC_LIBRARY_ID = lib.ID;
|
||||||
|
con.MEASURES_NAME = item;
|
||||||
|
libDetList.Add(con);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (!string.IsNullOrEmpty(conList))
|
||||||
|
{
|
||||||
|
var lists = conList.Split("?").ToList();
|
||||||
|
if (lists != null && lists.Any())
|
||||||
|
{
|
||||||
|
foreach (var item in lists)
|
||||||
|
{
|
||||||
|
if (!string.IsNullOrEmpty(item))
|
||||||
|
{
|
||||||
|
if (item.Contains("*"))
|
||||||
|
{
|
||||||
|
var num = item.Split("*")[0];
|
||||||
|
var name = item.Split("*")[1];
|
||||||
|
if (num.Contains("."))
|
||||||
|
{
|
||||||
|
var numTemp = int.Parse(num.Split(".")[0]);
|
||||||
|
var detFirst = libDetList.FirstOrDefault(t => t.NUM != null && t.NUM == numTemp);
|
||||||
|
var conFirst = checkCons.FirstOrDefault(t => t.CHECKCONTENT == name);
|
||||||
|
if (detFirst != null && conFirst != null)
|
||||||
|
{
|
||||||
|
T_SK_BASIC_LIBRARY_DETAIL_CONTENT con = new T_SK_BASIC_LIBRARY_DETAIL_CONTENT();
|
||||||
|
con.ORG_ID = orgId;
|
||||||
|
con.BASIC_LIBRARY_DETAIL_ID = detFirst.ID;
|
||||||
|
con.NUM = numTemp;
|
||||||
|
con.CHECK_CONTENT = name;
|
||||||
|
con.CHECK_CONTENTS_ID = conFirst.ID;
|
||||||
|
con.CHECK_STANDARD = conFirst.CHECK_STANDARD;
|
||||||
|
libConList.Add(con);
|
||||||
|
var basTemps = checkBas.Where(t => t.CHECK_CONTENTS_ID == conFirst.ID).ToList();
|
||||||
|
if (basTemps != null && basTemps.Any())
|
||||||
|
{
|
||||||
|
foreach (var bas in basTemps)
|
||||||
|
{
|
||||||
|
T_SK_BASIC_LIBRARY_DETAIL_CONTENT_BASIC ba = new T_SK_BASIC_LIBRARY_DETAIL_CONTENT_BASIC();
|
||||||
|
ba.ORG_ID = orgId;
|
||||||
|
ba.BASIC_LIBRARY_DETAIL_CONTENT_ID = con.ID;
|
||||||
|
ba.LAW_ID = bas.LAW_ID;
|
||||||
|
libBasicList.Add(ba);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
var hidTemps = checkHids.Where(t => t.CHECK_CONTENTS_ID == conFirst.ID).ToList();
|
||||||
|
if (hidTemps != null && hidTemps.Any())
|
||||||
|
{
|
||||||
|
foreach (var hid in hidTemps)
|
||||||
|
{
|
||||||
|
T_SK_BASIC_LIBRARY_DETAIL_CONTENT_HIDDEN hi = new T_SK_BASIC_LIBRARY_DETAIL_CONTENT_HIDDEN();
|
||||||
|
hi.ORG_ID = orgId;
|
||||||
|
hi.BASIC_LIBRARY_DETAIL_CONTENT_ID = con.ID;
|
||||||
|
hi.HIDDEN_DESCRIPTION = hid.DESCREPTION;
|
||||||
|
hi.CHECK_QUESTION_ID = hid.ID;
|
||||||
|
hi.HIDDEN_LEVEL = hid.QUESTION_LEVEL;
|
||||||
|
hi.RECTIFICATION_MEASURES = hid.DEMAND;
|
||||||
|
libHidList.Add(hi);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
UnifiedCommit(() =>
|
||||||
|
{
|
||||||
|
if (libList != null && libList.Any())
|
||||||
|
BantchAddEntityNoCommit(libList);
|
||||||
|
if (libDetList != null && libDetList.Any())
|
||||||
|
BantchAddEntityNoCommit(libDetList);
|
||||||
|
if (libConList != null && libConList.Any())
|
||||||
|
BantchAddEntityNoCommit(libConList);
|
||||||
|
if (libBasicList != null && libBasicList.Any())
|
||||||
|
BantchAddEntityNoCommit(libBasicList);
|
||||||
|
if (libHidList != null && libHidList.Any())
|
||||||
|
BantchAddEntityNoCommit(libHidList);
|
||||||
|
});
|
||||||
|
Msg = "导入成功!";
|
||||||
|
return true;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -195,7 +195,7 @@ namespace APT.SK.WebApi.Controllers.Api
|
|||||||
startRowIndexs.Add(0, 1);//根据Excel格式数据赋值
|
startRowIndexs.Add(0, 1);//根据Excel格式数据赋值
|
||||||
var dataTables = FileUtils.ReadExcelByOledb(filePath, startRowIndexs);
|
var dataTables = FileUtils.ReadExcelByOledb(filePath, startRowIndexs);
|
||||||
string Msg = string.Empty;
|
string Msg = string.Empty;
|
||||||
isOK = InsertModel2(dataTables.Tables[0], orgId, ref Msg);
|
isOK = InsertModel3(dataTables.Tables[0], orgId, ref Msg);
|
||||||
|
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
@ -566,5 +566,122 @@ namespace APT.SK.WebApi.Controllers.Api
|
|||||||
}
|
}
|
||||||
return true;
|
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 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 (rowAll == 1)
|
||||||
|
{
|
||||||
|
throw new Exception("导入必须两条以上,一条请直接新增");
|
||||||
|
}
|
||||||
|
List<T_SK_CHECK_CONTENTS> contents = new List<T_SK_CHECK_CONTENTS>();
|
||||||
|
List<T_SK_CHECK_QUESTION> qustions = new List<T_SK_CHECK_QUESTION>();
|
||||||
|
List<T_SK_CHECK_QUESTION> qustionTemps = new List<T_SK_CHECK_QUESTION>();
|
||||||
|
var baseFilter = new BaseFilter(orgId);
|
||||||
|
var productionUnits = this.GetEntities<T_FM_USER_PRODUCTION_UNIT_SET>(i => i.IS_DELETED == false, baseFilter);
|
||||||
|
var oldContents = this.GetEntities<T_SK_CHECK_CONTENTS>(i => i.IS_DELETED == false, baseFilter);
|
||||||
|
var oldHiddens = this.GetEntities<T_SK_CHECK_QUESTION>(i => i.IS_DELETED == false, baseFilter);
|
||||||
|
|
||||||
|
for (int i = 0; i < rowAll; i++)
|
||||||
|
{
|
||||||
|
if (!string.IsNullOrEmpty(dtSource.Rows[i][0].ToString().Trim()))
|
||||||
|
{
|
||||||
|
var unit = productionUnits.FirstOrDefault(t => t.NAME == dtSource.Rows[i][0].ToString().Trim());
|
||||||
|
if (unit == null)//旧表已存在数据
|
||||||
|
{
|
||||||
|
Msg = Msg + "生产单元:" + dtSource.Rows[i][0].ToString().Trim() + "不存在,请先到系统管理添加;";
|
||||||
|
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
T_SK_CHECK_QUESTION content = new T_SK_CHECK_QUESTION();
|
||||||
|
content.ORG_ID = orgId;
|
||||||
|
content.CHECKCONTENT = dtSource.Rows[i][1].ToString().Replace("\n","").Trim();
|
||||||
|
content.CHECK_BASICS = dtSource.Rows[i][2].ToString().Replace("\n", "").Trim();
|
||||||
|
content.CHECK_STANDARD = dtSource.Rows[i][3].ToString().Replace("\n", "").Trim();
|
||||||
|
content.DESCREPTION = dtSource.Rows[i][4].ToString().Replace("\n", "").Trim();
|
||||||
|
content.QUESTION_LEVEL = SKHiddenLevel.General;
|
||||||
|
content.DEMAND = dtSource.Rows[i][6].ToString().Replace("\n", "").Trim();
|
||||||
|
content.PRODUCTION_UNIT_ID = unit?.ID;
|
||||||
|
qustionTemps.Add(content);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (qustionTemps != null && qustionTemps.Any())
|
||||||
|
{
|
||||||
|
foreach (var item in qustionTemps)
|
||||||
|
{
|
||||||
|
var conFirsts = item.CHECKCONTENT.Split("?").ToList();
|
||||||
|
var queFirsts = item.DESCREPTION.Split("。").ToList();
|
||||||
|
var mesFirsts = item.DEMAND.Split("。").ToList();
|
||||||
|
if (conFirsts != null && conFirsts.Any())
|
||||||
|
{
|
||||||
|
foreach (var first in conFirsts)
|
||||||
|
{
|
||||||
|
if (!string.IsNullOrEmpty(first))
|
||||||
|
{
|
||||||
|
var num = first.Split("*")[0];
|
||||||
|
var con = first.Split("*")[1];
|
||||||
|
T_SK_CHECK_CONTENTS content = new T_SK_CHECK_CONTENTS();
|
||||||
|
content.ORG_ID = orgId;
|
||||||
|
content.PRODUCTION_UNIT_ID = item.PRODUCTION_UNIT_ID;
|
||||||
|
content.CHECKCONTENT = con;
|
||||||
|
contents.Add(content);
|
||||||
|
var ques = queFirsts.Where(t => t.StartsWith(num)).ToList();
|
||||||
|
if (ques != null && ques.Any())
|
||||||
|
{
|
||||||
|
var j = 0;
|
||||||
|
foreach (var que in ques)
|
||||||
|
{
|
||||||
|
var quNum = que.Split("*")[0];
|
||||||
|
var mes = mesFirsts.FirstOrDefault(t => t.StartsWith(quNum));
|
||||||
|
T_SK_CHECK_QUESTION qu = new T_SK_CHECK_QUESTION();
|
||||||
|
qu.CHECK_CONTENTS_ID = content.ID;
|
||||||
|
qu.ORG_ID = orgId;
|
||||||
|
qu.DESCREPTION = que.Split('*')[1];
|
||||||
|
qu.DEMAND = mes.Split("*")[1];
|
||||||
|
qu.QUESTION_LEVEL = item.QUESTION_LEVEL;
|
||||||
|
qu.NUM = j;
|
||||||
|
qustions.Add(qu);
|
||||||
|
j++;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
if (!string.IsNullOrEmpty(Msg))
|
||||||
|
{
|
||||||
|
throw new Exception(Msg);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
UnifiedCommit(() =>
|
||||||
|
{
|
||||||
|
if (contents != null && contents.Any())
|
||||||
|
BantchSaveEntityNoCommit(contents);
|
||||||
|
if (qustions != null && qustions.Any())
|
||||||
|
BantchSaveEntityNoCommit(qustions);
|
||||||
|
});
|
||||||
|
Msg = "导入成功!";
|
||||||
|
}
|
||||||
|
return true;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user