Merge branch 'master' of http://121.41.2.71:3000/wyw/mh_jy_safe
This commit is contained in:
commit
5c7d2a5a0b
@ -195,7 +195,7 @@ namespace APT.HM.WebApi.Controllers.Api
|
||||
{
|
||||
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 + ";";
|
||||
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))
|
||||
{
|
||||
if (safe != null)
|
||||
if (safe != null && !string.IsNullOrEmpty(safe.NAME))
|
||||
{
|
||||
var safeTemp = safe.NUM + "、" + safe.NAME + ";";
|
||||
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))
|
||||
{
|
||||
if (safe != null)
|
||||
if (safe != null && !string.IsNullOrEmpty(safe.NAME))
|
||||
{
|
||||
var safeTemp = safe.NUM + "、" + safe.NAME + ";";
|
||||
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));
|
||||
|
||||
//先做一次非空判断
|
||||
if (!string.IsNullOrEmpty(Msg))
|
||||
{
|
||||
throw new Exception(Msg);
|
||||
}
|
||||
for (int i = 0; i < rowAll; i++)
|
||||
{
|
||||
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) + "行生产单元,作业环节,任务类型,是否关键作业,作业周期,作业许可审批层级,作业许可类别,作业等级存在空数据,请先检查所有字段内容;";
|
||||
}
|
||||
}
|
||||
if (!string.IsNullOrEmpty(Msg))
|
||||
{
|
||||
throw new Exception(Msg);
|
||||
}
|
||||
//基础数据判断
|
||||
for (int i = 0; i < rowAll; i++)
|
||||
{
|
||||
|
||||
@ -10,12 +10,14 @@ using APT.BaseData.Services.Services.OP;
|
||||
using APT.Infrastructure.Api;
|
||||
using APT.Infrastructure.Core;
|
||||
using APT.MS.Domain.Entities.FO;
|
||||
using APT.MS.Domain.Entities.HM;
|
||||
using APT.MS.Domain.Entities.LR;
|
||||
using APT.MS.Domain.Entities.SK;
|
||||
using APT.MS.Domain.Enums;
|
||||
using APT.MS.Domain.Enums.SK;
|
||||
using APT.SK.WebApi.Controllers.Api;
|
||||
using APT.Utility;
|
||||
using Castle.Core.Internal;
|
||||
using Microsoft.AspNetCore.Mvc;
|
||||
using Microsoft.Data.SqlClient;
|
||||
using Microsoft.EntityFrameworkCore;
|
||||
@ -28,6 +30,7 @@ using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Data;
|
||||
using System.DirectoryServices.ActiveDirectory;
|
||||
using System.IO;
|
||||
using System.Linq;
|
||||
using System.Security.Policy;
|
||||
|
||||
@ -966,7 +969,8 @@ namespace APT.SK.WebApi.Controllers
|
||||
pageFilter.Include.Add("Nav_Type");
|
||||
pageFilter.Include.Add("Nav_ProductionUnit");
|
||||
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);
|
||||
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))
|
||||
{
|
||||
var temp = item2.NUM + "、" + item2.MEASURES_NAME + Environment.NewLine;
|
||||
var temp = item2.NUM + "、" + item2.MEASURES_NAME + "。";
|
||||
item.MINE_NAME = item.MINE_NAME + 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;
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -2073,6 +2090,386 @@ namespace APT.SK.WebApi.Controllers
|
||||
});
|
||||
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格式数据赋值
|
||||
var dataTables = FileUtils.ReadExcelByOledb(filePath, startRowIndexs);
|
||||
string Msg = string.Empty;
|
||||
isOK = InsertModel2(dataTables.Tables[0], orgId, ref Msg);
|
||||
isOK = InsertModel3(dataTables.Tables[0], orgId, ref Msg);
|
||||
|
||||
try
|
||||
{
|
||||
@ -565,6 +565,123 @@ namespace APT.SK.WebApi.Controllers.Api
|
||||
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 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