mh_sms/APT.MicroApi/APT.BS.WebApi/Controllers/Api/BSCheckMainController.cs
2024-04-12 16:50:28 +08:00

854 lines
36 KiB
C#
Raw Blame History

This file contains ambiguous Unicode characters

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

using APT.BaseData.Domain.ApiModel;
using APT.BaseData.Domain.Entities;
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;
});
}
}
}