mh_sms/APT.MicroApi/APT.BS.WebApi/Controllers/Api/BSCheckMainController.cs

854 lines
36 KiB
C#
Raw Normal View History

2024-04-12 16:50:28 +08:00
using APT.BaseData.Domain.ApiModel;
using APT.BaseData.Domain.Entities;
using APT.BaseData.Domain.Entities.FM;
using APT.BaseData.Domain.IServices.FM;
using APT.Infrastructure.Core;
using APT.MS.Domain.Entities.BS;
using APT.MS.Domain.Entities.HM;
using APT.MS.Domain.Enums;
using APT.Utility;
using APT.WebApi.Models;
using Microsoft.AspNetCore.Mvc;
using System;
using System.Collections.Generic;
using System.Data;
using System.IO;
using System.Linq;
namespace APT.BS.WebApi.Controllers.Api
{
[Route("api/BS/BSCheckMain")]
public partial class BSCheckMainController : AuthorizeApiController<T_BS_CHECK_MAIN>
{
[HttpPost, Route("Get")]
public JsonActionResult<T_BS_CHECK_MAIN> Get([FromBody] KeywordFilter filter)
{
return SafeExecute<T_BS_CHECK_MAIN>(() =>
{
filter.IgnoreDataRule = true;
var result = this.ActionOrderEntities<T_BS_CHECK_MAIN>(null, null, filter).FirstOrDefault();
//result.Nav_CheckTypeLevel.CheckLevelDescription = ((HMLevleEnum)(result.Nav_CheckTypeLevel.CheckLevel)).GetDescription();
result.CHECKOBJECT_DESCRIPTION = ((BSMineTypeEnum)(result.CHECKOBJECT)).GetDescription();
result.QUESTION_LEVE_DESCRIPTION = ((BSQuestionLevelEnum)(result.QUESTION_LEVEL)).GetDescription();//问题等级
result.SERIOUS_RISK_DESCRIPTION = ((BSSeriousRiskEnum)(result.SERIOUS_RISK)).GetDescription();//是否重大隐患
return result;
});
}
/// <summary>
/// 获取导入数据
/// 参考 [Route("api/PF/Import")]
/// </summary>
/// <returns></returns>
[HttpPost, Route("GetImportData")]
public JsonActionResult<ImportDataModel> GetImportData()
{
return SafeExecute<ImportDataModel>(() =>
{
var httpRequest = this.HttpContext.Request;
string orgIdStr = httpRequest.Form["OrgId"];// 获取 组织
Guid? orgId = null;
if (!string.IsNullOrEmpty(orgIdStr))
orgId = new Guid(orgIdStr);
else
return null;
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 = InsertModel(dataTables.Tables[0], orgId.Value, ref Msg);
try
{
System.IO.File.Delete(filePath);
}
catch { }
result.Data = Msg;
result.MessageList = new List<string> { Msg };
}
return result;
});
}
/// <summary>
/// 获取责任对象
/// </summary>
/// <param name="isClass"></param>
/// <param name="strObj"></param>
/// <returns></returns>
public BSPLANCHECKOBJECTEnum GetBSPLANCHECKOBJECTEnum(string strObj, bool? isClass)
{
BSPLANCHECKOBJECTEnum result = BSPLANCHECKOBJECTEnum.Head;
if (string.IsNullOrEmpty(strObj))
{
if (isClass.HasValue && isClass.Value)
{
result = BSPLANCHECKOBJECTEnum.ClassMonitor;
}
}
else
{
var enumsObjV = Enum.GetValues<BSPLANCHECKOBJECTEnum>();
foreach (var item in enumsObjV)
{
if (item.GetDescription() == strObj)
{
result = item;
}
}
}
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 = 2)
{
//检查对象0 检查区域1 检查类型2 检查项目分类3 检查层级4 责任单位5 检查周期6 检查项目7 检查内容8 检查依据9 检查问题描述10 检查问题等级11 重大隐患类别12 整改建议与措施13 责任人14
//只有检查依据可以为空
if (dtSource == null || dtSource.Rows.Count < 0)
{
Msg = "未获取到导入数据";
throw new Exception(Msg);
}
List<int> listNotEmpty = new List<int>() { 0, 1, 2, 3, 4, 5, 7, 8, 10, 11, 12, 13 };
//BSMineTypeEnum
#region
Dictionary<int, List<int>> dicIndexEmpty = new Dictionary<int, List<int>>();
//检查对象0
int ICheckObject = 0;
string strCheckObject = string.Empty;
//检查区域 1
//List<int> listArea = new List<int>();
var listModelArea = GetEntities<T_HM_RISK_AREA>(e => !e.IS_DELETED, null, null).ToList();
string strArea = string.Empty;
T_HM_RISK_AREA modelArea = new T_HM_RISK_AREA();
//检查类型 2
List<int> listType = new List<int>();
List<string> listStrType = new List<string>();
var listModelType = GetEntities<T_BS_CHECK_TYPE>(e => !e.IS_DELETED, null, null).ToList();
string strType = string.Empty;
T_BS_CHECK_TYPE modelType = new T_BS_CHECK_TYPE();
//检查项目分类 3
List<int> listProjCate = new List<int>();
List<string> listStrProjCate = new List<string>();
var listModelProjCate = GetEntities<T_BS_CHECK_PROJECT_CATEGORY>(e => !e.IS_DELETED, null, null);
string strProjCate = string.Empty;
T_BS_CHECK_PROJECT_CATEGORY modelProjCate = new T_BS_CHECK_PROJECT_CATEGORY();
//检查层级 4
List<int> listTypeLevel = new List<int>();
List<string> listStrTypeLevel = new List<string>();
var listModelTypeLevel = GetEntities<T_BS_CHECK_TYPE_LEVEL>(e => !e.IS_DELETED, null, new string[] { "Nav_Enums", "Nav_CheckType" }).ToList();
List<T_FM_ENUMS> listCheckTypeLevelEnums = null;
T_FM_ENUMS TypeLevelEnumsTemp = null;
string strTypeLevel = string.Empty;
T_BS_CHECK_TYPE_LEVEL modelTypeLevel = new T_BS_CHECK_TYPE_LEVEL();
//责任单位5
List<T_FM_DEPARTMENT> ListModelDepartment = null;
List<string> listStrDepartmentName = new List<string>();
char[] charSplit = new char[] { '、', '' };
string strDepName = string.Empty;
List<string> listDepName = new List<string>();
List<int> listDepartment = new List<int>();
//检查项目 7
//List<int> listProject = new List<int>();
var listModelProject = GetEntities<T_BS_CHECK_PROJECT>(e => !e.IS_DELETED, null, null).ToList();
string strProject = string.Empty;
T_BS_CHECK_PROJECT modelProject = new T_BS_CHECK_PROJECT();
//检查内容 8
var listModelContents = GetEntities<T_BS_CHECK_CONTENTS>(e => !e.IS_DELETED, null, null).ToList();
string strContents = string.Empty;
T_BS_CHECK_CONTENTS modelContents = new T_BS_CHECK_CONTENTS();
List<T_BS_CHECK_CONTENTS> listModelContentsAdd = new List<T_BS_CHECK_CONTENTS>();
//检查问题描述10 整改建议与措施13 一个问题描述 有且仅有一个整改建议与措施 和问题等级
List<T_BS_CHECK_QUESTION> listCheckQuestion = GetEntities<T_BS_CHECK_QUESTION>(e => !e.IS_DELETED, null, null).ToList();
string strDescreption = string.Empty;//检查问题描述10
string strDemand = string.Empty;//整改建议与措施13
T_BS_CHECK_QUESTION modelQuestion = new T_BS_CHECK_QUESTION();
//检查问题等级11
List<string> listStrQuestionLevel = new List<string>() { "重大", "A", "B", "C", "D", };
string strQuestionLevel = string.Empty;
List<int> listQuestionLevel = new List<int>();
int iQuestionLevel = 0;
//责任人14
BSPLANCHECKOBJECTEnum? RESPONOBJECT = null;
string strResponObject = string.Empty;
#endregion
//安全检查库
List<T_BS_CHECK_MAIN> listMain = new List<T_BS_CHECK_MAIN>();
List<T_BS_CHECK_CONTENT_MAIN_DEPARTMENT> listMainDep = new List<T_BS_CHECK_CONTENT_MAIN_DEPARTMENT>();
List<T_BS_CHECK_PROJECT> listProjectAdd = new List<T_BS_CHECK_PROJECT>();
List<T_BS_CHECK_QUESTION> listCheckQuestionAdd = new List<T_BS_CHECK_QUESTION>();
List<T_HM_RISK_AREA> listAreaAdd = new List<T_HM_RISK_AREA>();
List<T_BS_CHECK_TYPE> listCheckType = new List<T_BS_CHECK_TYPE>();
List<T_BS_CHECK_TYPE_LEVEL> listCheckTypeLevel = new List<T_BS_CHECK_TYPE_LEVEL>();
DateTime dtNow = new DateTime();
List<T_FM_DEPARTMENT> listDep = GetEntities<T_FM_DEPARTMENT>(null, null).ToList();
#region
//第一行是标题 跳过
int rowAll = dtSource.Rows.Count;
for (int i = 0; i < rowAll; i++)
{
#region
List<int> listi = null;
for (int j = 0; j < 16; j++)
{
if (!listNotEmpty.Contains(j))
continue;
if (string.IsNullOrEmpty(dtSource.Rows[i][j].ToString().Trim()))
{
if (listi == null)
{
listi = new List<int>();
}
listi.Add(j);
}
}
if (listi != null)
dicIndexEmpty.Add(i + rowIndex, listi);//有空的 直接添加
#endregion
#region 0
strCheckObject = dtSource.Rows[i][0].ToString().Trim();
ICheckObject = 0;
switch (strCheckObject)
{
case "全公司":
ICheckObject = 0;
break;
case "选矿":
ICheckObject = 10;
break;
case "尾矿":
ICheckObject = 20;
break;
case "矿山":
ICheckObject = 30;
break;
case "地下矿":
ICheckObject = 40;
break;
default:
break;
}
#endregion
#region 1
strArea = dtSource.Rows[i][1].ToString().Trim();
modelArea = listModelArea.FirstOrDefault(e => e.NAME == strArea);
if (modelArea == null && dicIndexEmpty.Count < 1 && listType.Count < 1 && listProjCate.Count < 1 && listTypeLevel.Count < 1 && listQuestionLevel.Count < 1)
{
//检查区域
modelArea = new T_HM_RISK_AREA();
modelArea.ID = Guid.NewGuid();
modelArea.CODE = "CheckAdd";
modelArea.NAME = strArea;
modelArea.IS_DELETED = false;
modelArea.ORG_ID = OrgID;
//modelArea.ENTITY_ORG_TPYE =;
//modelArea.FORM_ID =;
//modelArea.FLOW_STATUS =;
//modelArea.FLOW_SEND_STATUS =;
//modelArea.FLOW_ID =;
modelArea.CREATE_TIME = dtNow;
modelArea.MODIFY_TIME = dtNow;
//modelArea.CREATER_ID =;
//modelArea.MODIFIER_ID =;
modelArea.STATUS = STATUSEnum.;
//modelArea.DEPARTMENT_ID =;
modelArea.LEVEL = BaseData.Domain.Enums.FMDepartmentType.;
modelArea.LEVEL = BaseData.Domain.Enums.FMDepartmentType.;
listModelArea.Add(modelArea);
listAreaAdd.Add(modelArea);
}
#endregion
#region 2
strType = dtSource.Rows[i][2].ToString().Trim();
modelType = listModelType.FirstOrDefault(e => e.NAME == strType);
if (modelType == null)
{
////检查类型
//listType.Add(i);
//if (!listStrType.Contains(strType))
// listStrType.Add(strType);
modelType = new T_BS_CHECK_TYPE()
{
ID = Guid.NewGuid(),
CODE = strType,
NAME = strType,
ENABLE_STATUS = 0,
NUM = listModelType.Count() + 1,
REMARK = "导入添加",
IS_DELETED = false,
ORG_ID = OrgID,
//ENTITY_ORG_TPYE
//FORM_ID
//FLOW_STATUS
//FLOW_SEND_STATUS
//FLOW_ID
//CREATE_TIME
//MODIFY_TIME
//CREATER_ID
//MODIFIER_ID
PARENT_ID = null,
//TEXT=
IS_LEAF = false,
};
listCheckType.Add(modelType);
listModelType.Add(modelType);
}
#endregion
#region 3
strProjCate = dtSource.Rows[i][3].ToString().Trim();
modelProjCate = listModelProjCate.FirstOrDefault(e => e.NAME == strProjCate);
if (modelProjCate == null)
{
//检查项目分类
listProjCate.Add(i);
if (!listStrProjCate.Contains(strProjCate))
listStrProjCate.Add(strProjCate);
}
#endregion
#region 4
strTypeLevel = dtSource.Rows[i][4].ToString().Trim();
modelTypeLevel = listModelTypeLevel.FirstOrDefault(e => e.Nav_Enums.NAME == strTypeLevel && e.Nav_CheckType.NAME == strType);
if (modelTypeLevel == null)
{
//检查层级
//listTypeLevel.Add(i);
//if (!listStrTypeLevel.Contains(strType + "-" + strTypeLevel))
// listStrTypeLevel.Add(strType + "-" + strTypeLevel);
if (listCheckTypeLevelEnums == null)
listCheckTypeLevelEnums = GetEntities<T_FM_ENUMS>(null, null).ToList();
TypeLevelEnumsTemp = listCheckTypeLevelEnums.FirstOrDefault(e => e.NAME == strTypeLevel);
if (TypeLevelEnumsTemp == null)
{
listTypeLevel.Add(i);
if (!listStrTypeLevel.Contains(strType + "-" + strTypeLevel))
listStrTypeLevel.Add(strType + "-" + strTypeLevel);
}
else
{
modelTypeLevel = new T_BS_CHECK_TYPE_LEVEL()
{
ID = Guid.NewGuid(),
CHECK_TYPE_ID = modelType.ID,
IS_DELETED = false,
ORG_ID = OrgID,
//ENTITY_ORG_TPYE
//FORM_ID
//FLOW_STATUS
//FLOW_SEND_STATUS
//FLOW_ID
//CREATE_TIME
//MODIFY_TIME
//CREATER_ID
//MODIFIER_ID
CheckLevel_ENUMS_ID = TypeLevelEnumsTemp.ID,
CODE = strTypeLevel
};
listCheckTypeLevel.Add(modelTypeLevel);
//modelTypeLevel.Nav_Enums = TypeLevelEnumsTemp;
//modelTypeLevel.Nav_CheckType = modelType;
listModelTypeLevel.Add(
new T_BS_CHECK_TYPE_LEVEL()
{
ID = modelTypeLevel.ID,
CHECK_TYPE_ID = modelType.ID,
IS_DELETED = false,
ORG_ID = OrgID,
//ENTITY_ORG_TPYE
//FORM_ID
//FLOW_STATUS
//FLOW_SEND_STATUS
//FLOW_ID
//CREATE_TIME
//MODIFY_TIME
//CREATER_ID
//MODIFIER_ID
CheckLevel_ENUMS_ID = TypeLevelEnumsTemp.ID,
CODE = strTypeLevel,
Nav_Enums = TypeLevelEnumsTemp,
Nav_CheckType = modelType,
});
}
}
#endregion
#region 5
strDepName = dtSource.Rows[i][5].ToString().Trim();
listDepName = strDepName.Split(charSplit, StringSplitOptions.RemoveEmptyEntries).ToList();
ListModelDepartment = listDep.FindAll(e => listDepName.Contains(e.NAME));
if (ListModelDepartment == null || ListModelDepartment.Count == 0)
{
listDepartment.Add(i);
if (!listStrDepartmentName.Contains(strDepName))
{
listStrDepartmentName.Add(strDepName);
}
}
else if (ListModelDepartment.Count != listDepName.Count)
{
listDepartment.Add(i);
if (!listStrDepartmentName.Contains(strDepName))
{
listStrDepartmentName.Add(strDepName);
}
}
#endregion
#region 7
strProject = dtSource.Rows[i][7].ToString().Trim();
modelProject = listModelProject.FirstOrDefault(e => e.NAME == strProject);
if (modelProject == null && dicIndexEmpty.Count < 1 && listType.Count < 1 && listProjCate.Count < 1 && listTypeLevel.Count < 1 && listQuestionLevel.Count < 1)
{
//检查项目 listProject.Add(i);
modelProject = new T_BS_CHECK_PROJECT();
modelProject.ID = Guid.NewGuid();
modelProject.NAME = strProject;
modelProject.ENABLE_STATUS = 0;
modelProject.NUM = i;
//modelProject.REMARK =;
modelProject.IS_DELETED = false;
modelProject.ORG_ID = OrgID;
//modelProject.ENTITY_ORG_TPYE =;
//modelProject.FORM_ID =;
//modelProject.FLOW_STATUS =;
//modelProject.FLOW_SEND_STATUS =;
//modelProject.FLOW_ID =;
modelProject.CREATE_TIME = dtNow;
modelProject.MODIFY_TIME = dtNow;
//modelProject.CREATER_ID =;
//modelProject.MODIFIER_ID =;
listProjectAdd.Add(modelProject);
listModelProject.Add(modelProject);
}
#endregion
#region 8
strContents = dtSource.Rows[i][8].ToString().Trim();
modelContents = listModelContents.FirstOrDefault(e => e.CHECKCONTENT == strContents && (BSMineTypeEnum)ICheckObject == e.CHECKOBJECT);
if (modelContents == null)
{
modelContents = new T_BS_CHECK_CONTENTS();
modelContents.ID = Guid.NewGuid();
modelContents.CHECKCONTENT = strContents;
modelContents.IS_DELETED = false;
modelContents.ORG_ID = OrgID;
//modelContents.ENTITY_ORG_TPYE =;
//modelContents.FORM_ID =;
//modelContents.FLOW_STATUS =;
//modelContents.FLOW_SEND_STATUS =;
//modelContents.FLOW_ID =;
modelContents.CREATE_TIME = dtNow;
modelContents.MODIFY_TIME = dtNow;
//modelContents.CREATER_ID =;
//modelContents.MODIFIER_ID =;
modelContents.CHECKOBJECT = (BSMineTypeEnum)ICheckObject;
listModelContents.Add(modelContents);
listModelContentsAdd.Add(modelContents);
}
#endregion
#region 11
strQuestionLevel = dtSource.Rows[i][11].ToString().Trim();
if (listStrQuestionLevel.Contains(strQuestionLevel))
{
iQuestionLevel = 0;
switch (strQuestionLevel)
{
case "重大":
iQuestionLevel = 10;
break;
case "A":
iQuestionLevel = 20;
break;
case "B":
iQuestionLevel = 30;
break;
case "C":
iQuestionLevel = 40;
break;
case "D":
iQuestionLevel = 50;
break;
default:
break;
}
}
else
{
//检查问题等级
listQuestionLevel.Add(i);
}
#endregion
#region
strDescreption = dtSource.Rows[i][10].ToString().Trim();
modelQuestion = listCheckQuestion.FirstOrDefault(e => !e.IS_DELETED && e.DESCREPTION == strDescreption);// && e.DEMAND == strDemand 不报错
if (modelQuestion == null && dicIndexEmpty.Count < 1 && listType.Count < 1 && listProjCate.Count < 1 && listTypeLevel.Count < 1 && listQuestionLevel.Count < 1)
{
strDemand = dtSource.Rows[i][13].ToString().Trim();
modelQuestion = new T_BS_CHECK_QUESTION();
modelQuestion.ID = Guid.NewGuid();
modelQuestion.DESCREPTION = strDescreption;
modelQuestion.DEMAND = strDemand;
modelQuestion.NUM = i;
modelQuestion.ENABLE_STATUS = 0;
modelQuestion.IS_DELETED = false;
modelQuestion.ORG_ID = OrgID;
modelQuestion.QUESTION_LEVEL = (BSQuestionLevelEnum)iQuestionLevel;
modelQuestion.CHECK_CONTENTS_ID = modelContents.ID;
//modelQuestion.ENTITY_ORG_TPYE =;
//modelQuestion.FORM_ID =;
//modelQuestion.FLOW_STATUS =;
//modelQuestion.FLOW_SEND_STATUS =;
//modelQuestion.FLOW_ID =;
modelQuestion.CREATE_TIME = dtNow;
modelQuestion.MODIFY_TIME = dtNow;
//modelQuestion.CREATER_ID =;
//modelQuestion.MODIFIER_ID =;
listCheckQuestion.Add(modelQuestion);//以便下次使用
listCheckQuestionAdd.Add(modelQuestion);//添加到数据库
}
#endregion
#region 14
strResponObject = dtSource.Rows[i][14].ToString().Trim();
RESPONOBJECT = GetBSPLANCHECKOBJECTEnum(strResponObject, strTypeLevel.Contains("班") ? true : false);
#endregion
#region listMain
if (dicIndexEmpty.Count < 1 && listType.Count < 1 && listProjCate.Count < 1 && listTypeLevel.Count < 1 && listQuestionLevel.Count < 1 && listDepartment.Count < 1)
{
T_BS_CHECK_MAIN modelAdd = new T_BS_CHECK_MAIN();
modelAdd.ID = Guid.NewGuid();
modelAdd.CHECKOBJECT = ICheckObject;
modelAdd.CHECK_PROJECT_ID = modelProject.ID;
modelAdd.CHECK_QUESTION_ID = modelQuestion.ID;
modelAdd.CHECKCONTENT = dtSource.Rows[i][8].ToString().Trim();
modelAdd.CHECKPROOF = dtSource.Rows[i][9].ToString().Trim();
modelAdd.QUESTION_LEVEL = iQuestionLevel;
modelAdd.SERIOUS_RISK = iQuestionLevel == 10 ? 1 : 0;
modelAdd.CHECK_TYPE_ID = modelType.ID;
modelAdd.CHECK_TYPE_LEVEL_ID = modelTypeLevel.ID;
modelAdd.RISK_AREA_ID = modelArea.ID;
modelAdd.ENABLE_STATUS = 0;
modelAdd.NUM = i;
modelAdd.IS_DELETED = false;
modelAdd.ORG_ID = OrgID;
//modelAdd.ENTITY_ORG_TPYE = ;
//modelAdd.FORM_ID = ;
//modelAdd.FLOW_STATUS = ;
//modelAdd.FLOW_SEND_STATUS = ;
//modelAdd.FLOW_ID = ;
modelAdd.CREATE_TIME = dtNow;
modelAdd.MODIFY_TIME = dtNow;
//modelAdd.CREATER_ID = ;
//modelAdd.MODIFIER_ID = ;
modelAdd.ISRISK = false;
modelAdd.CHECK_PROJECT_CATEGORY_ID = modelProjCate.ID;
//modelAdd.CHECK_PROJECT_PROJECT_CATEGORY_ID = ;
//wyw1114-1
//modelAdd.RESPONOBJECT = RESPONOBJECT.Value;
//modelAdd.DEPARTMENT_ID = item.ID;
modelAdd.CHECK_CONTENTS_ID = modelContents.ID;
listMain.Add(modelAdd);
//责任部门 可能多个
foreach (var item in ListModelDepartment)
{
listMainDep.Add(new T_BS_CHECK_CONTENT_MAIN_DEPARTMENT()
{
ID = Guid.NewGuid(),
MAIN_ID = modelAdd.ID,
ORG_ID = modelAdd.ORG_ID,
DEPARTMENT_ID = item.ID,
RESPONOBJECT = RESPONOBJECT.Value
});
}
}
#endregion
}
#endregion
#region
// 行12、3、421 不能为空!
string strEmptyError = string.Empty;
if (dicIndexEmpty.Count > 0)
{
int colIndex = 0;
foreach (var item in dicIndexEmpty)
{
strEmptyError += "行:" + item.Key + ",列:";
colIndex = 0;
foreach (var itemVal in item.Value)
{
strEmptyError += (colIndex > 0 ? "、" : "") + itemVal;
colIndex++;
}
strEmptyError += "";
}
strEmptyError = strEmptyError.Substring(0, strEmptyError.Length - 1) + "不能为空!";
}
//string strAreaError = string.Empty;
//if (listArea != null && listArea.Count > 0)
//{
// strAreaError = "未找到检查区域" + string.Join(',', listArea);
//}
string strTypeError = string.Empty;
if (listType != null && listType.Count > 0)
{
strTypeError = "未找到检查类型:" + string.Join(",", listStrType) + ",行:" + string.Join(',', listType);
}
string strProjCateError = string.Empty;
if (listProjCate != null && listProjCate.Count > 0)
{
strProjCateError = "未找到检查项目分类:" + string.Join(",", listStrProjCate) + ",行:" + string.Join(',', listProjCate);
}
//listStrProjCate listStrTypeLevel
string strTypeLevelError = string.Empty;
if (listTypeLevel != null && listTypeLevel.Count > 0)
{
strTypeLevelError = "未找到检查层级:" + string.Join(",", listStrTypeLevel) + ",行:" + string.Join(',', listTypeLevel);
}
//string strProjectError = string.Empty;
//if (listProject != null && listProject.Count > 0)
//{
// strProjectError = "未找到检查项目" + string.Join(',', listProject);
//}
string strQuestionLevelError = string.Empty;
if (listQuestionLevel != null && listQuestionLevel.Count > 0)
{
strQuestionLevelError = "未找到问题等级,行:" + string.Join(',', listQuestionLevel);
}
string strDepartmentError = string.Empty;
if (listDepartment != null && listDepartment.Count > 0)
{
strDepartmentError += "未找到责任单位" + string.Join(',', listStrDepartmentName) + ",行:" + string.Join(',', listDepartment);
}
if (!string.IsNullOrEmpty(strEmptyError))
{
Msg += strEmptyError;
}
//if (!string.IsNullOrEmpty(strAreaError))
//{
// Msg += (Msg.Length > 0 ? "、\r\n" : "") + strAreaError;
//}
if (!string.IsNullOrEmpty(strTypeError))
{
Msg += (Msg.Length > 0 ? "、\r\n" : "") + strTypeError;
}
if (!string.IsNullOrEmpty(strProjCateError))
{
Msg += (Msg.Length > 0 ? "、\r\n" : "") + strProjCateError;
}
if (!string.IsNullOrEmpty(strTypeLevelError))
{
Msg += (Msg.Length > 0 ? "、\r\n" : "") + strTypeLevelError;
}
//if (!string.IsNullOrEmpty(strProjectError))
//{
// Msg += (Msg.Length > 0 ? "、\r\n" : "") + strProjectError;
//}
if (!string.IsNullOrEmpty(strQuestionLevelError))
{
Msg += (Msg.Length > 0 ? "、\r\n" : "") + strQuestionLevelError;
}
if (!string.IsNullOrEmpty(strDepartmentError))
{
Msg += (Msg.Length > 0 ? "、\r\n" : "") + strDepartmentError;
}
if (!string.IsNullOrEmpty(Msg))
{
throw new Exception(Msg);
}
#endregion
this.UnifiedCommit(() =>
{
if (listModelContentsAdd != null && listModelContentsAdd.Any())
BantchSaveEntityNoCommit(listModelContentsAdd);
if (listMain != null && listMain.Any())
BantchSaveEntityNoCommit(listMain);
if (listCheckQuestionAdd != null && listCheckQuestionAdd.Any())
BantchSaveEntityNoCommit(listCheckQuestionAdd);
if (listAreaAdd != null && listAreaAdd.Any())
BantchSaveEntityNoCommit(listAreaAdd);
if (listProjectAdd != null && listProjectAdd.Any())
BantchSaveEntityNoCommit(listProjectAdd);
if (listCheckType != null && listCheckType.Any())
BantchSaveEntityNoCommit(listCheckType);
if (listCheckTypeLevel != null && listCheckTypeLevel.Any())
BantchSaveEntityNoCommit(listCheckTypeLevel);
if (listMainDep != null && listMainDep.Any())
BantchSaveEntityNoCommit(listMainDep);
});
Msg = "导入成功!\r\n检查库" + listMain.Count + "条" + (listModelContentsAdd.Count > 0 ? ("、检查内容:" + listModelContentsAdd.Count + "条") : "") + (listCheckQuestionAdd.Count > 0 ? ("、检查问题:" + listCheckQuestionAdd.Count + "条") : "") + (listAreaAdd.Count > 0 ? ("、检查区域:" + listAreaAdd.Count + "条、") : "") + (listProjectAdd.Count > 0 ? ("检查项目:" + listProjectAdd.Count + "条") : "") + (listCheckType.Count > 0 ? ("检查类型:" + listCheckType.Count + "条") : "") + (listCheckTypeLevel.Count > 0 ? ("检查类型等级:" + listCheckTypeLevel.Count + "条") : "") + "";
return true;
}
/// <summary>
/// 更新或新增数据
/// </summary>
/// <param name="entity">对象实体</param>
/// <returns></returns>
[HttpPost, Route("FullUpdate")]
public JsonActionResult<bool> FullUpdate([FromBody] T_BS_CHECK_MAIN entity)
{
return SafeExecute(() =>
{
var listMainDep = entity.Nav_ListMainDep;
entity.Nav_ListMainDep = null;
var listLaw = entity.Nav_ListLaw;
entity.Nav_ListLaw = null;
if (listMainDep != null && !listMainDep.Any())
{
foreach (var item in listMainDep)
{
item.Nav_Department = null;
}
}
entity.CHECKPROOF = "";
if (listLaw != null || !listLaw.Any())
{
foreach (var item in listLaw)
{
//entity.CHECKPROOF += (string.IsNullOrEmpty(entity.CHECKPROOF) ? "" : "") + item.Nav_Law.NAME;
//item.Nav_Law = null;
entity.CHECKPROOF += (string.IsNullOrEmpty(entity.CHECKPROOF) ? "" : "") + item.Nav_Standard.NAME;
item.Nav_Standard = null;
}
}
if (entity.CHECKPROOF != null && entity.CHECKPROOF.Length > 500)
{
entity.CHECKPROOF = entity.CHECKPROOF.Substring(0, 490);
}
this.UnifiedCommit(() =>
{
if (entity != null)
UpdateEntity(entity);
if (listMainDep != null && listMainDep.Any())
BantchSaveEntityNoCommit(listMainDep);
if (listLaw != null && listLaw.Any())
BantchSaveEntityNoCommit(listLaw);
});
return true;
});
}
}
}