mh_jy_safe/APT.MicroApi/APT.SK.WebApi/Controllers/Api/EnterpriseLibraryController.cs

1943 lines
103 KiB
C#
Raw Normal View History

2025-08-25 09:56:57 +08:00
using APT.BaseData.Domain.ApiModel;
using APT.BaseData.Domain.Entities.FM;
using APT.BaseData.Domain.Enums;
using APT.Infrastructure.Core;
using APT.MS.Domain.Entities.SC.SC;
using APT.MS.Domain.Entities.SC;
using APT.MS.Domain.Entities.SK;
using APT.MS.Domain.Enums;
using APT.Utility;
using Microsoft.AspNetCore.Mvc;
using System.Data;
using APT.MS.Domain.Entities.HM;
using System.Linq.Expressions;
using APT.MS.Domain.Enums.SK;
using APT.BaseData.Services.Services.FM;
using InfluxData.Net.InfluxDb.Models.Responses;
using APT.BaseData.Domain.IServices.FM;
using APT.BaseData.Domain.IServices.BS;
using APT.BaseData.Domain.IServices;
using APT.BaseData.Services.DomainServices;
using APT.BaseData.Services.Sys;
using NPOI.SS.Formula.Functions;
using APT.MS.Domain.Entities.FO;
using System.Linq;
using Castle.Core.Internal;
using System.Collections.Generic;
using System;
using System.IO;
using Org.BouncyCastle.Utilities;
using Microsoft.Extensions.Logging;
using APT.BaseData.Domain.Enums.PF;
namespace APT.SK.WebApi.Controllers.Api
{
/// <summary>
/// 检查清单
/// </summary>
public class CheckListDto
{
public string MineType { get; set; }
public string CheckType { get; set; }
public string CheckCycle { get; set; }
public string CheckLevel { get; set; }
public List<CheckListPost> posts { get; set; }
public List<CheckListDetail> details { get; set; }
}
public class CheckListPost
{
public string CheckDepart { get; set; }
public string CheckPost { get; set; }
}
public class CheckListDetail
{
public Guid? RISK_AREA_ID { get; set; }
public string RISK_AREA_NAME { get; set; }
public Guid? CHECK_CONTENTS_ID { get; set; }
public string CHECK_CONTENTS_NAME { get; set; }
public string CHECKPROOF { get; set; }
public string CHECKSTANDARD { get; set; }
}
/// <summary>
/// 企业库
/// </summary>
[Route("api/SK/SKEnterpriseLibrary")]
public partial class EnterpriseLibraryController : AuthorizeApiController<T_SK_ENTERPRISE_LIBRARY>
{
IFMDepartmentService DepartmentService { get; set; }
public EnterpriseLibraryController(IFMDepartmentService departmentService)
{
DepartmentService = departmentService;
}
/// <summary>
/// 保存
/// </summary>
/// <param name="entity"></param>
/// <returns></returns>
[HttpPost, Route("FullUpdate")]
public JsonActionResult<bool> FullUpdate([FromBody] T_SK_ENTERPRISE_LIBRARY entity)
{
return SafeExecute<bool>(() =>
{
var details = entity.Nav_Details;
entity.Nav_Details = null;
var departs = entity.Nav_Departs;
entity.Nav_Departs = null;
var posts = entity.Nav_Posts;
entity.Nav_Posts = null;
List<Guid> libraryDepartIds = new List<Guid>();
List<Guid> libraryPostIds = new List<Guid>();
List<Guid> libraryPostDetailIds = new List<Guid>();
List<Guid> detailIds = new List<Guid>();
List<Guid> contentIds = new List<Guid>();
List<Guid> departIds = new List<Guid>();
List<Guid> postIds = new List<Guid>();
List<Guid> hiddenIds = new List<Guid>();
List<Guid> basicIds = new List<Guid>();
List<T_SK_ENTERPRISE_LIBRARY_POST_DETAIL> libraryPostList = new List<T_SK_ENTERPRISE_LIBRARY_POST_DETAIL>();
List<T_SK_ENTERPRISE_LIBRARY_DETAIL_CONTENT> contentList = new List<T_SK_ENTERPRISE_LIBRARY_DETAIL_CONTENT>();
List<T_SK_ENTERPRISE_LIBRARY_DETAIL_CONTENT_DEPART> departList = new List<T_SK_ENTERPRISE_LIBRARY_DETAIL_CONTENT_DEPART>();
List<T_SK_ENTERPRISE_LIBRARY_DETAIL_CONTENT_POST> postList = new List<T_SK_ENTERPRISE_LIBRARY_DETAIL_CONTENT_POST>();
List<T_SK_ENTERPRISE_LIBRARY_DETAIL_CONTENT_HIDDEN> hiddenList = new List<T_SK_ENTERPRISE_LIBRARY_DETAIL_CONTENT_HIDDEN>();
List<T_SK_ENTERPRISE_LIBRARY_DETAIL_CONTENT_BASIC> basicList = new List<T_SK_ENTERPRISE_LIBRARY_DETAIL_CONTENT_BASIC>();
if (departs != null && departs.Any())
{
libraryDepartIds = this.GetEntities<T_SK_ENTERPRISE_LIBRARY_DEPART>(t => t.ENTERPRISE_LIBRARY_ID == entity.ID, new BaseFilter(entity.ORG_ID)).Select(t => t.ID).ToList();
foreach (var item in departs)
{
item.ORG_ID = entity.ORG_ID;
item.ENTERPRISE_LIBRARY_ID = entity.ID;
}
//var departTemp= departs.Where(t=>!t.IS_DELETED).Select(t=>t.DEPARTMENT_TYPE).Distinct().ToList();
//if (departTemp.Any())
//{
// var departType = string.Join("_", departTemp);
// entity.DEPARTMENT_TYPE = "_" + departType + "_";
//}
}
if (posts != null && posts.Any())
{
libraryPostIds = this.GetEntities<T_SK_ENTERPRISE_LIBRARY_POST>(t => t.ENTERPRISE_LIBRARY_ID == entity.ID, new BaseFilter(entity.ORG_ID)).Select(t => t.ID).ToList();
libraryPostDetailIds = this.GetEntities<T_SK_ENTERPRISE_LIBRARY_POST_DETAIL>(t => libraryPostIds.Contains(t.ENTERPRISE_LIBRARY_POST_ID), new BaseFilter(entity.ORG_ID)).Select(t => t.ID).ToList();
foreach (var item in posts)
{
item.ORG_ID = entity.ORG_ID;
item.ENTERPRISE_LIBRARY_ID = entity.ID;
if (item.Nav_PostDetails != null && item.Nav_PostDetails.Any())
{
foreach (var item2 in item.Nav_PostDetails)
{
item2.ORG_ID = entity.ORG_ID;
item2.ENTERPRISE_LIBRARY_POST_ID = item.ID;
item2.Nav_Post = null;
libraryPostList.Add(item2);
}
}
}
}
if (details != null && details.Any())
{
detailIds = this.GetEntities<T_SK_ENTERPRISE_LIBRARY_DETAIL>(t => t.ENTERPRISE_LIBRARY_ID == entity.ID, new BaseFilter(entity.ORG_ID)).Select(t => t.ID).ToList();
contentIds = this.GetEntities<T_SK_ENTERPRISE_LIBRARY_DETAIL_CONTENT>(t => detailIds.Contains(t.ENTERPRISE_LIBRARY_DETAIL_ID), new BaseFilter(entity.ORG_ID)).Select(t => t.ID).ToList();
basicIds = this.GetEntities<T_SK_ENTERPRISE_LIBRARY_DETAIL_CONTENT_BASIC>(t => contentIds.Contains(t.ENTERPRISE_LIBRARY_DETAIL_CONTENT_ID), new BaseFilter(entity.ORG_ID)).Select(t => t.ID).ToList();
hiddenIds = this.GetEntities<T_SK_ENTERPRISE_LIBRARY_DETAIL_CONTENT_HIDDEN>(t => contentIds.Contains(t.ENTERPRISE_LIBRARY_DETAIL_CONTENT_ID), new BaseFilter(entity.ORG_ID)).Select(t => t.ID).ToList();
departIds = this.GetEntities<T_SK_ENTERPRISE_LIBRARY_DETAIL_CONTENT_DEPART>(t => contentIds.Contains(t.ENTERPRISE_LIBRARY_DETAIL_CONTENT_ID), new BaseFilter(entity.ORG_ID)).Select(t => t.ID).ToList();
postIds = this.GetEntities<T_SK_ENTERPRISE_LIBRARY_DETAIL_CONTENT_POST>(t => departIds.Contains(t.ENTERPRISE_LIBRARY_DETAIL_CONTENT_DEPART_ID), new BaseFilter(entity.ORG_ID)).Select(t => t.ID).ToList();
foreach (var item in details)
{
if (item.Nav_DetailContents != null && item.Nav_DetailContents.Any())
{
foreach (var item2 in item.Nav_DetailContents)
{
if (item2.Nav_DetailHiddens != null && item2.Nav_DetailHiddens.Any())
{
foreach (var item3 in item2.Nav_DetailHiddens)
{
item3.ORG_ID = entity.ORG_ID;
item3.ENTERPRISE_LIBRARY_DETAIL_CONTENT_ID = item2.ID;
hiddenList.Add(item3);
}
}
if (item2.Nav_DetailBasics != null && item2.Nav_DetailBasics.Any())
{
foreach (var item3 in item2.Nav_DetailBasics)
{
item3.ORG_ID = entity.ORG_ID;
item3.ENTERPRISE_LIBRARY_DETAIL_CONTENT_ID = item2.ID;
basicList.Add(item3);
}
}
if (item2.Nav_DetailDeparts != null && item2.Nav_DetailDeparts.Any())
{
foreach (var item4 in item2.Nav_DetailDeparts)
{
if (item4.Nav_DetailPosts != null && item4.Nav_DetailPosts.Any())
{
foreach (var item5 in item4.Nav_DetailPosts)
{
item5.ORG_ID = entity.ORG_ID;
item5.ENTERPRISE_LIBRARY_DETAIL_CONTENT_DEPART_ID = item4.ID;
postList.Add(item5);
}
}
item4.ORG_ID = entity.ORG_ID;
item4.ENTERPRISE_LIBRARY_DETAIL_CONTENT_ID = item2.ID;
item4.Nav_DetailPosts = null;
departList.Add(item4);
}
}
item2.ORG_ID = entity.ORG_ID;
item2.ENTERPRISE_LIBRARY_DETAIL_ID = item.ID;
item2.Nav_DetailHiddens = null;
item2.Nav_DetailDeparts = null;
contentList.Add(item2);
}
}
item.ORG_ID = entity.ORG_ID;
item.ENTERPRISE_LIBRARY_ID = entity.ID;
item.Nav_DetailContents = null;
}
}
List<Guid> libraryIds = new List<Guid>();
List<Guid> basicDetailIds = new List<Guid>();
List<Guid> basicContentIds = new List<Guid>();
List<Guid> basicHiddenIds = new List<Guid>();
List<Guid> basicBasicIds = new List<Guid>();
T_SK_BASIC_LIBRARY enterpriseLib = null;
List<T_SK_BASIC_LIBRARY_DETAIL> libraryDetailList = new List<T_SK_BASIC_LIBRARY_DETAIL>();
List<T_SK_BASIC_LIBRARY_DETAIL_CONTENT> libraryContentList = new List<T_SK_BASIC_LIBRARY_DETAIL_CONTENT>();
List<T_SK_BASIC_LIBRARY_DETAIL_CONTENT_HIDDEN> libraryHiddenList = new List<T_SK_BASIC_LIBRARY_DETAIL_CONTENT_HIDDEN>();
List<T_SK_BASIC_LIBRARY_DETAIL_CONTENT_BASIC> libraryBasicList = new List<T_SK_BASIC_LIBRARY_DETAIL_CONTENT_BASIC>();
//同步基础库
if (entity.PUBLISH != null && entity.PUBLISH.Equals("SaveAndNotify"))
{
var library = this.GetEntity<T_SK_BASIC_LIBRARY>(t => t.MineType == entity.MineType && t.AREA_ID == entity.AREA_ID && t.TYPE_ID == entity.TYPE_ID && t.RISK_NAME == entity.RISK_NAME && t.RISK_DESCRIPTION == entity.RISK_DESCRIPTION);
if (library != null)
{
libraryIds.Add(library.ID);
basicDetailIds = this.GetEntities<T_SK_BASIC_LIBRARY_DETAIL>(t => t.BASIC_LIBRARY_ID == library.ID, new BaseFilter(entity.ORG_ID)).Select(t => t.ID).ToList();
basicContentIds = this.GetEntities<T_SK_BASIC_LIBRARY_DETAIL_CONTENT>(t => detailIds.Contains(t.BASIC_LIBRARY_DETAIL_ID), new BaseFilter(entity.ORG_ID)).Select(t => t.ID).ToList();
basicHiddenIds = this.GetEntities<T_SK_BASIC_LIBRARY_DETAIL_CONTENT_HIDDEN>(t => contentIds.Contains(t.BASIC_LIBRARY_DETAIL_CONTENT_ID), new BaseFilter(entity.ORG_ID)).Select(t => t.ID).ToList();
basicBasicIds = this.GetEntities<T_SK_BASIC_LIBRARY_DETAIL_CONTENT_BASIC>(t => contentIds.Contains(t.BASIC_LIBRARY_DETAIL_CONTENT_ID), new BaseFilter(entity.ORG_ID)).Select(t => t.ID).ToList();
}
enterpriseLib = new T_SK_BASIC_LIBRARY();
enterpriseLib.ID = entity.ID;
enterpriseLib.ORG_ID = entity.ORG_ID;
enterpriseLib.ENABLE_STATUS = entity.ENABLE_STATUS;
enterpriseLib.MineType = entity.MineType;
enterpriseLib.MINE_NAME = entity.MINE_NAME;
enterpriseLib.AREA_ID = entity.AREA_ID;
enterpriseLib.AREA_NAME = entity.AREA_NAME;
enterpriseLib.RISK_NAME = entity.RISK_NAME;
enterpriseLib.RISK_DESCRIPTION = entity.RISK_DESCRIPTION;
enterpriseLib.TYPE_ID = entity.TYPE_ID;
enterpriseLib.TYPE_NAME = entity.TYPE_NAME;
enterpriseLib.EVALUATE_L = entity.EVALUATE_L;
enterpriseLib.EVALUATE_E = entity.EVALUATE_E;
enterpriseLib.EVALUATE_C = entity.EVALUATE_C;
enterpriseLib.EVALUATE_SCORE = entity.EVALUATE_SCORE;
enterpriseLib.EVALUATE_LEVEL = entity.EVALUATE_LEVEL;
enterpriseLib.DEPARTMENT_TYPE = entity.DEPARTMENT_TYPE;
enterpriseLib.NUM = entity.NUM;
if (details != null && details.Any())
{
foreach (var item in details)
{
T_SK_BASIC_LIBRARY_DETAIL enterDetail = new T_SK_BASIC_LIBRARY_DETAIL();
enterDetail.ORG_ID = item.ORG_ID;
enterDetail.ID = item.ID;
enterDetail.BASIC_LIBRARY_ID = item.ENTERPRISE_LIBRARY_ID;
enterDetail.MEASURES_NAME = item.MEASURES_NAME;
enterDetail.NUM = item.NUM;
enterDetail.EMERGENCY = item.EMERGENCY;
libraryDetailList.Add(enterDetail);
}
}
if (contentList != null && contentList.Any())
{
foreach (var item in contentList)
{
T_SK_BASIC_LIBRARY_DETAIL_CONTENT enterDetail = new T_SK_BASIC_LIBRARY_DETAIL_CONTENT();
enterDetail.ORG_ID = item.ORG_ID;
enterDetail.ID = item.ID;
enterDetail.BASIC_LIBRARY_DETAIL_ID = item.ENTERPRISE_LIBRARY_DETAIL_ID;
enterDetail.CHECK_CONTENT = item.CHECK_CONTENT;
enterDetail.NUM = item.NUM;
enterDetail.CHECK_CONTENTS_ID = item.CHECK_CONTENTS_ID;
enterDetail.CHECK_BASIC = item.CHECK_BASIC;
enterDetail.CHECK_STANDARD = item.CHECK_STANDARD;
enterDetail.CHECK_CONTENTS_ID = item.CHECK_CONTENTS_ID;
enterDetail.CHECK_BASIC = item.CHECK_BASIC;
libraryContentList.Add(enterDetail);
}
}
if (basicList != null && basicList.Any())
{
foreach (var item in basicList)
{
T_SK_BASIC_LIBRARY_DETAIL_CONTENT_BASIC enterDetail = new T_SK_BASIC_LIBRARY_DETAIL_CONTENT_BASIC();
enterDetail.ORG_ID = item.ORG_ID;
enterDetail.ID = item.ID;
enterDetail.BASIC_LIBRARY_DETAIL_CONTENT_ID = item.ENTERPRISE_LIBRARY_DETAIL_CONTENT_ID;
enterDetail.LAW_ID = item.LAW_ID;
libraryBasicList.Add(enterDetail);
}
}
if (hiddenList != null && hiddenList.Any())
{
foreach (var item in hiddenList)
{
T_SK_BASIC_LIBRARY_DETAIL_CONTENT_HIDDEN enterDetail = new T_SK_BASIC_LIBRARY_DETAIL_CONTENT_HIDDEN();
enterDetail.ORG_ID = item.ORG_ID;
enterDetail.ID = item.ID;
enterDetail.BASIC_LIBRARY_DETAIL_CONTENT_ID = item.ENTERPRISE_LIBRARY_DETAIL_CONTENT_ID;
enterDetail.RECTIFICATION_MEASURES = item.RECTIFICATION_MEASURES;
enterDetail.NUM = item.NUM;
enterDetail.CHECK_QUESTION_ID = item.CHECK_QUESTION_ID;
enterDetail.HIDDEN_DESCRIPTION = item.HIDDEN_DESCRIPTION;
enterDetail.HIDDEN_LEVEL = item.HIDDEN_LEVEL;
libraryHiddenList.Add(enterDetail);
}
}
}
this.UnifiedCommit(() =>
{
if (hiddenIds != null && hiddenIds.Any())
this.BantchDeleteEntityNoCommit<T_SK_ENTERPRISE_LIBRARY_DETAIL_CONTENT_HIDDEN>(hiddenIds);
if (postIds != null && postIds.Any())
this.BantchDeleteEntityNoCommit<T_SK_ENTERPRISE_LIBRARY_DETAIL_CONTENT_POST>(postIds);
if (departIds != null && departIds.Any())
this.BantchDeleteEntityNoCommit<T_SK_ENTERPRISE_LIBRARY_DETAIL_CONTENT_DEPART>(departIds);
if (basicIds != null && basicIds.Any())
this.BantchDeleteEntityNoCommit<T_SK_ENTERPRISE_LIBRARY_DETAIL_CONTENT_BASIC>(basicIds);
if (contentIds != null && contentIds.Any())
this.BantchDeleteEntityNoCommit<T_SK_ENTERPRISE_LIBRARY_DETAIL_CONTENT>(contentIds);
if (detailIds != null && detailIds.Any())
this.BantchDeleteEntityNoCommit<T_SK_ENTERPRISE_LIBRARY_DETAIL>(detailIds);
if (libraryPostDetailIds != null && libraryPostDetailIds.Any())
this.BantchDeleteEntityNoCommit<T_SK_ENTERPRISE_LIBRARY_POST_DETAIL>(libraryPostDetailIds);
if (libraryPostIds != null && libraryPostIds.Any())
this.BantchDeleteEntityNoCommit<T_SK_ENTERPRISE_LIBRARY_POST>(libraryPostIds);
if (libraryDepartIds != null && libraryDepartIds.Any())
this.BantchDeleteEntityNoCommit<T_SK_ENTERPRISE_LIBRARY_DEPART>(libraryDepartIds);
if (entity != null)
UpdateEntityNoCommit(entity);
if (details != null && details.Any())
BantchSaveEntityNoCommit(details);
if (departs != null && departs.Any())
BantchSaveEntityNoCommit(departs);
if (posts != null && posts.Any())
BantchSaveEntityNoCommit(posts);
if (libraryPostList != null && libraryPostList.Any())
BantchSaveEntityNoCommit(libraryPostList);
if (contentList != null && contentList.Any())
BantchSaveEntityNoCommit(contentList);
if (basicList != null && basicList.Any())
BantchSaveEntityNoCommit(basicList);
if (hiddenList != null && hiddenList.Any())
BantchSaveEntityNoCommit(hiddenList);
if (departList != null && departList.Any())
BantchSaveEntityNoCommit(departList);
if (postList != null && postList.Any())
BantchSaveEntityNoCommit(postList);
if (basicHiddenIds != null && basicHiddenIds.Any())
this.BantchDeleteEntityNoCommit<T_SK_BASIC_LIBRARY_DETAIL_CONTENT_HIDDEN>(basicHiddenIds);
if (basicBasicIds != null && basicBasicIds.Any())
this.BantchDeleteEntityNoCommit<T_SK_BASIC_LIBRARY_DETAIL_CONTENT_BASIC>(basicBasicIds);
if (basicContentIds != null && basicContentIds.Any())
this.BantchDeleteEntityNoCommit<T_SK_BASIC_LIBRARY_DETAIL_CONTENT>(basicContentIds);
if (basicDetailIds != null && basicDetailIds.Any())
this.BantchDeleteEntityNoCommit<T_SK_BASIC_LIBRARY_DETAIL>(basicDetailIds);
if (libraryIds != null && libraryIds.Any())
this.BantchDeleteEntityNoCommit<T_SK_BASIC_LIBRARY>(libraryIds);
if (enterpriseLib != null)
UpdateEntityNoCommit(enterpriseLib);
if (libraryDetailList != null && libraryDetailList.Any())
BantchSaveEntityNoCommit(libraryDetailList);
if (libraryContentList != null && libraryContentList.Any())
BantchSaveEntityNoCommit(libraryContentList);
if (libraryHiddenList != null && libraryHiddenList.Any())
BantchSaveEntityNoCommit(libraryHiddenList);
if (libraryBasicList != null && libraryBasicList.Any())
BantchSaveEntityNoCommit(libraryBasicList);
});
return true;
});
}
/// <summary>
/// 排序分页查询数据
/// </summary>
/// <param name="pageFilter">分页过滤实体</param>
/// <returns></returns>
[HttpPost, Route("SKOrderPaged")]
public PagedActionResult<T_SK_ENTERPRISE_LIBRARY> SKOrderPaged([FromBody] KeywordPageFilter pageFilter)
{
var mintype = pageFilter.FilterGroup.Rules.FirstOrDefault(t => t.Field == "MineType");
if (mintype != null && mintype.Value.ToString() == "0")
pageFilter.FilterGroup.Rules.Remove(mintype);
var nullRules = pageFilter.FilterGroup.Rules.Where(t => t.Value == null).ToList();
if (nullRules.Any())
{
nullRules.ForEach(t => pageFilter.FilterGroup.Rules.Remove(t));
}
pageFilter.Include.Add("Nav_RiskName");
pageFilter.Include.Add("Nav_Details");
pageFilter.SelectField.Add("Nav_Details.MEASURES_NAME");
var users = this.GetEntities<T_FM_USER>(t => t.ENABLE_STATUS == 0, new BaseFilter(pageFilter.OrgId), "Nav_Person");
2025-08-25 09:56:57 +08:00
var userPosts = this.GetEntities<T_FM_USER_POST>(t => !t.IS_DELETED, new BaseFilter(pageFilter.OrgId));
var departs = this.GetEntities<T_FM_DEPARTMENT>(t => t.ENABLE_STATUS == 0, new BaseFilter(pageFilter.OrgId));
2025-08-25 09:56:57 +08:00
var result = WitOrderPaged(null, pageFilter);
if (result != null && result.Data != null)
{
if (result.Data != null && result.Data.Any())
{
foreach (var item in result.Data)
{
//管控措施
var detailStr = new List<string>();
2025-08-25 09:56:57 +08:00
if (item.Nav_Details != null && item.Nav_Details.Any())
{
var i = 1;
foreach (var item2 in item.Nav_Details.OrderBy(t => t.NUM))
{
if (item2 != null && !string.IsNullOrEmpty(item2.MEASURES_NAME))
{
detailStr.Add(item2.MEASURES_NAME);
var temp = i + "、" + item2.MEASURES_NAME + Environment.NewLine;
item.MINE_NAME = item.MINE_NAME + temp;
i++;
}
}
}
if (detailStr.Any())
{
detailStr = detailStr.Distinct().ToList();
var i = 1;
foreach (var item2 in detailStr)
{
if (!string.IsNullOrEmpty(item2))
{
var temp = i + "、" + item2 + "\r\n";
item.MEASURE = item.MEASURE + temp;
i++;
}
}
}
//辨识层级、部门、岗位
var levelStr = new List<string>();
var departIds = new List<Guid>();
var postIds = new List<Guid?>();
if (item.Nav_Posts != null && item.Nav_Posts.Any())
{
foreach (var item2 in item.Nav_Posts.OrderBy(t => t.DEPARTMENT_ID))
{
if (item2 != null && item2.DEPARTMENT_ID != null)
{
var first = departs.FirstOrDefault(t => t.ID == item2.DEPARTMENT_ID);
var level = Enum.GetName(typeof(FMDepartmentType), first.DEPARTMENT_TYPE);
levelStr.Add(level);
departIds.Add(first.ID);
}
}
}
if (levelStr.Any())
{
levelStr = levelStr.Distinct().ToList();
var i = 1;
foreach (var item2 in levelStr)
{
if (!string.IsNullOrEmpty(item2))
{
var type = 0;
switch (item2)
{
case "部门":
type = 0;
break;
case "车间":
type = 1;
break;
case "班组":
type = 2;
break;
case "公司":
type = 3;
break;
default:
type = 0;
break;
}
var temp = i + "、" + item2 + Environment.NewLine;
item.CHECKLEVEL = item.CHECKLEVEL + temp;
var departTemps = departs.Where(t => departIds.Contains(t.ID) && t.DEPARTMENT_TYPE == type).ToList();
var departTempNames = departTemps.Select(m => m.NAME).Distinct().ToList();
var temp2 = i + "、" + string.Join(",", departTempNames) + Environment.NewLine;
item.CHECKDEPT = item.CHECKDEPT + temp2;
var departTempIds = departTemps.Select(t => t.ID).ToList();
var postTempIds = users.Where(t => departTempIds.Contains((Guid)t.DEPARTMENT_ID) && t.Nav_Person != null).Select(m => m.Nav_Person.POST_ID).Distinct().ToList();
2025-08-25 09:56:57 +08:00
var postTemps = userPosts.Where(t => postTempIds.Contains(t.ID)).Select(m => m.NAME).Distinct().ToList();
var temp3 = i + "、" + string.Join(",", postTemps) + Environment.NewLine;
item.CHECKPOST = item.CHECKPOST + temp3;
i++;
}
}
}
}
result.Data.OrderBy(t => t.EVALUATE_LEVEL);
}
result.Data.OrderBy(t => t.MineType).ThenBy(m => m.EVALUATE_LEVEL);
}
return result;
}
/// <summary>
/// 排序查询所有数据
/// </summary>
/// <param name="filter">过滤实体</param>
/// <returns></returns>
[HttpPost, Route("SKOrderEntities")]
public JsonActionResult<IEnumerable<T_SK_ENTERPRISE_LIBRARY>> SKOrderEntities([FromBody] KeywordFilter filter)
{
var result = WitOrderEntities(null, filter);
if (result != null && result.Data != null)
{
if (result.Data != null && result.Data.Any())
{
foreach (var item in result.Data)
{
var detailStr = new List<string>();
var contentStr = new List<string>();
var basicStr = new List<string>();
var standardStr = new List<string>();
var scripStr = new List<string>();
var levelStr = new List<string>();
var measureStr = new List<string>();
var controlLevelStr = new List<string>();
var controlDeptStr = new List<string>();
var controlUserStr = new List<string>();
var checkLevelStr = new List<string>();
var checkTypeStr = new List<string>();
var checkDeptStr = new List<string>();
var checkPostStr = new List<string>();
if (item.Nav_Departs != null && item.Nav_Departs.Any())
{
foreach (var item2 in item.Nav_Departs.OrderBy(t => t.DEPARTMENT_TYPE))
{
if (item2 != null)
{
if (item2.Nav_Department != null && !string.IsNullOrEmpty(item2.Nav_Department.NAME))
{
controlDeptStr.Add(item2.Nav_Department.NAME);
}
controlLevelStr.Add(item2.DEPARTMENT_TYPE.GetDescription());
if (item2.Nav_User != null && !string.IsNullOrEmpty(item2.Nav_User.NAME))
{
controlUserStr.Add(item2.Nav_User.NAME);
}
}
}
}
if (item.Nav_Details != null && item.Nav_Details.Any())
{
foreach (var item2 in item.Nav_Details.OrderBy(t => t.NUM))
{
if (item2 != null && !string.IsNullOrEmpty(item2.MEASURES_NAME))
{
detailStr.Add(item2.MEASURES_NAME);
}
if (item2 != null && item2.Nav_DetailContents != null && item2.Nav_DetailContents.Any())
{
foreach (var item3 in item2.Nav_DetailContents.OrderBy(t => t.NUM))
{
if (item3 != null)
{
if (item3.Nav_Contents != null && !string.IsNullOrEmpty(item3.Nav_Contents.CHECKCONTENT))
{
contentStr.Add(item3.Nav_Contents.CHECKCONTENT);
}
if (!string.IsNullOrEmpty(item3.CHECK_STANDARD))
{
standardStr.Add(item3.CHECK_STANDARD);
}
if (item3.Nav_DetailBasics != null && item3.Nav_DetailBasics.Any())
{
foreach (var item4 in item3.Nav_DetailBasics)
{
if (item4 != null && item4.Nav_Law != null && !string.IsNullOrEmpty(item4.Nav_Law.NAME))
{
basicStr.Add(item4.Nav_Law.NAME);
}
}
}
if (item3.Nav_DetailHiddens != null && item3.Nav_DetailHiddens.Any())
{
foreach (var item4 in item3.Nav_DetailHiddens.OrderBy(t => t.NUM))
{
if (item4 != null)
{
if (item4.Nav_Question != null && !string.IsNullOrEmpty(item4.Nav_Question.DESCREPTION))
{
scripStr.Add(item4.Nav_Question.DESCREPTION);
}
levelStr.Add(item4.HIDDEN_LEVEL.GetDescription());
if (!string.IsNullOrEmpty(item4.RECTIFICATION_MEASURES))
{
measureStr.Add(item4.RECTIFICATION_MEASURES);
}
}
}
}
if (item3.Nav_DetailDeparts != null && item3.Nav_DetailDeparts.Any())
{
foreach (var item4 in item3.Nav_DetailDeparts.OrderBy(t => t.NUM))
{
if (item4 != null)
{
if (item4.Nav_Department != null && !string.IsNullOrEmpty(item4.Nav_Department.NAME))
{
checkDeptStr.Add(item4.Nav_Department.NAME);
}
checkLevelStr.Add(item4.CHECK_TYPE.GetDescription());
checkTypeStr.Add(item4.Nav_CheckType?.NAME);
if (item4.Nav_DetailPosts != null && item4.Nav_DetailPosts.Any())
{
foreach (var item5 in item4.Nav_DetailPosts)
{
if (item5 != null && item5.Nav_Post != null && !string.IsNullOrEmpty(item5.Nav_Post.NAME))
{
checkPostStr.Add(item5.Nav_Post.NAME);
}
}
}
}
}
}
}
}
}
}
}
if (detailStr.Any())
{
detailStr = detailStr.Distinct().ToList();
var i = 1;
foreach (var item2 in detailStr)
{
if (!string.IsNullOrEmpty(item2))
{
var temp = i + "、" + item2 + "\r\n";
item.MEASURE = item.MEASURE + temp;
i++;
}
}
}
if (contentStr.Any())
{
contentStr = contentStr.Distinct().ToList();
var i = 1;
foreach (var item2 in contentStr)
{
if (!string.IsNullOrEmpty(item2))
{
var temp = i + "、" + item2 + "\r\n";
item.CHECKCONTENTS = item.CHECKCONTENTS + temp;
i++;
}
}
}
if (basicStr.Any())
{
basicStr = basicStr.Distinct().ToList();
var i = 1;
foreach (var item2 in basicStr)
{
if (!string.IsNullOrEmpty(item2))
{
var temp = i + "、" + item2 + "\r\n";
item.CHECKBASICS = item.CHECKBASICS + temp;
i++;
}
}
}
if (standardStr.Any())
{
standardStr = standardStr.Distinct().ToList();
var i = 1;
foreach (var item2 in standardStr)
{
if (!string.IsNullOrEmpty(item2))
{
var temp = i + "、" + item2 + "\r\n";
item.CHECKSTANDARDS = item.CHECKSTANDARDS + temp;
i++;
}
}
}
if (scripStr.Any())
{
scripStr = scripStr.Distinct().ToList();
var i = 1;
foreach (var item2 in scripStr)
{
if (!string.IsNullOrEmpty(item2))
{
var temp = i + "、" + item2 + "\r\n";
item.HIDDENSCRIPTION = item.HIDDENSCRIPTION + temp;
i++;
}
}
}
if (levelStr.Any())
{
levelStr = levelStr.Distinct().ToList();
var i = 1;
foreach (var item2 in levelStr)
{
if (!string.IsNullOrEmpty(item2))
{
var temp = i + "、" + item2 + "\r\n";
item.HIDDENLEVEL = item.HIDDENLEVEL + temp;
i++;
}
}
}
if (measureStr.Any())
{
measureStr = measureStr.Distinct().ToList();
var i = 1;
foreach (var item2 in measureStr)
{
if (!string.IsNullOrEmpty(item2))
{
var temp = i + "、" + item2 + "\r\n";
item.RECIFYMEASURE = item.RECIFYMEASURE + temp;
i++;
}
}
}
2025-08-25 09:56:57 +08:00
if (controlLevelStr.Any())
{
controlLevelStr = controlLevelStr.Distinct().ToList();
var i = 1;
foreach (var item2 in controlLevelStr)
{
if (!string.IsNullOrEmpty(item2))
{
var temp = i + "、" + item2 + "\r\n";
item.CONTROLLEVEL = item.CONTROLLEVEL + temp;
i++;
}
}
}
if (controlDeptStr.Any())
{
controlDeptStr = controlDeptStr.Distinct().ToList();
var i = 1;
foreach (var item2 in controlDeptStr)
{
if (!string.IsNullOrEmpty(item2))
{
var temp = i + "、" + item2 + "\r\n";
item.CONTROLDEPT = item.CONTROLDEPT + temp;
i++;
}
}
}
if (controlUserStr.Any())
{
controlUserStr = controlUserStr.Distinct().ToList();
var i = 1;
foreach (var item2 in controlUserStr)
{
if (!string.IsNullOrEmpty(item2))
{
var temp = i + "、" + item2 + "\r\n";
item.CONTROLUSER = item.CONTROLUSER + temp;
i++;
}
}
}
if (checkLevelStr.Any())
{
checkLevelStr = checkLevelStr.Distinct().ToList();
var i = 1;
foreach (var item2 in checkLevelStr)
{
if (!string.IsNullOrEmpty(item2))
{
var temp = i + "、" + item2 + "\r\n";
item.CHECKLEVEL = item.CHECKLEVEL + temp;
i++;
}
}
}
if (checkTypeStr.Any())
{
checkTypeStr = checkTypeStr.Distinct().ToList();
var i = 1;
foreach (var item2 in checkTypeStr)
{
if (!string.IsNullOrEmpty(item2))
{
var temp = i + "、" + item2 + "\r\n";
item.CHECKTYPE = item.CHECKTYPE + temp;
i++;
}
}
}
if (checkDeptStr.Any())
{
checkDeptStr = checkDeptStr.Distinct().ToList();
var i = 1;
foreach (var item2 in checkDeptStr)
{
if (!string.IsNullOrEmpty(item2))
{
var temp = i + "、" + item2 + "\r\n";
item.CHECKDEPT = item.CHECKDEPT + temp;
i++;
}
}
}
if (checkPostStr.Any())
{
checkPostStr = checkPostStr.Distinct().ToList();
var i = 1;
foreach (var item2 in checkPostStr)
{
if (!string.IsNullOrEmpty(item2))
{
var temp = i + "、" + item2 + "\r\n";
item.CHECKPOST = item.CHECKPOST + temp;
i++;
}
}
}
}
result.Data.OrderBy(t => t.AREA_ID);
}
}
return result;
}
[HttpPost, Route("GetCheckList")]
public JsonActionResult<List<T_SK_ENTERPRISE_LIBRARY_DETAIL_CONTENT_DEPART>> GetCheckList([FromBody] KeywordFilter filter)
{
var loginDepart = APT.Infrastructure.Api.AppContext.CurrentSession.DepartmentID;
var departs = this.GetEntities<T_FM_DEPARTMENT>(t => t.ENABLE_STATUS == 0, new BaseFilter(filter.OrgId));
var AHDepart = departs.FirstOrDefault(t => t.NAME.Contains("安全环保"));
if (AHDepart != null && loginDepart == AHDepart.ID)
{
loginDepart = departs.FirstOrDefault(t => t.PARENT_ID == null).ID;
}
List<Guid> departmentIds = new List<Guid>() { loginDepart.Value };
DepartmentService.GetDepartmentIds(filter.OrgId.Value, new List<Guid>() { loginDepart.Value }, ref departmentIds);
var checkList = new JsonActionResult<List<T_SK_ENTERPRISE_LIBRARY_DETAIL_CONTENT_DEPART>>();
var detailContents = this.GetEntities<T_SK_ENTERPRISE_LIBRARY_DETAIL_CONTENT_DEPART>(t => t.DEPARTMENT_ID != null && departmentIds.Contains((Guid)t.DEPARTMENT_ID), new BaseFilter(filter.OrgId), "Nav_DetailContent.Nav_LibraryDetail.Nav_Library", "Nav_CheckType").ToList();
if (detailContents != null && detailContents.Any())
{
foreach (var item in detailContents)
{
item.MineType = item.Nav_DetailContent.Nav_LibraryDetail.Nav_Library.MineType;
}
checkList.Data = detailContents.GroupBy(t => new { t.MineType, t.CHECK_TYPE_ID, t.CHECK_CYCLE, t.CHECK_TYPE }).Select(m => m.FirstOrDefault()).OrderBy(n => n.MineType).ThenBy(x => x.CHECK_TYPE).ThenBy(y => y.CHECK_TYPE_ID).ToList();
2025-08-25 09:56:57 +08:00
checkList.TotalCount = checkList.Data.Count;
}
return checkList;
}
[HttpPost, Route("GetCheckDetailList")]
public JsonActionResult<List<T_SK_ENTERPRISE_LIBRARY_DETAIL_CONTENT_DEPART>> GetCheckDetailList([FromBody] KeywordFilter filter)
{
//if (string.IsNullOrEmpty(filter.Keyword) || string.IsNullOrEmpty(filter.Parameter1) || string.IsNullOrEmpty(filter.Parameter2) || string.IsNullOrEmpty(filter.Parameter3))
//{
// throw new Exception("传入参数有误,请联系管理员");
//}
var loginDepart = APT.Infrastructure.Api.AppContext.CurrentSession.DepartmentID;
var departs = this.GetEntities<T_FM_DEPARTMENT>(t => t.ENABLE_STATUS == 0, new BaseFilter(filter.OrgId));
var AHDepart = departs.FirstOrDefault(t => t.NAME.Contains("安全环保"));
if (AHDepart != null && loginDepart == AHDepart.ID)
{
loginDepart = departs.FirstOrDefault(t => t.PARENT_ID == null).ID;
}
List<Guid> departmentIds = new List<Guid>() { loginDepart.Value };
DepartmentService.GetDepartmentIds(filter.OrgId.Value, new List<Guid>() { loginDepart.Value }, ref departmentIds);
var checkList = new JsonActionResult<List<T_SK_ENTERPRISE_LIBRARY_DETAIL_CONTENT_DEPART>>();
var checkTempList = new List<T_SK_ENTERPRISE_LIBRARY_DETAIL_CONTENT_DEPART>();
var detailContents = this.GetEntities<T_SK_ENTERPRISE_LIBRARY_DETAIL_CONTENT_DEPART>(t => t.DEPARTMENT_ID != null && departmentIds.Contains((Guid)t.DEPARTMENT_ID), new BaseFilter(filter.OrgId), "Nav_DetailContent.Nav_LibraryDetail.Nav_Library", "Nav_CheckType", "Nav_Department").ToList();
if (detailContents != null && detailContents.Any())
{
foreach (var item in detailContents)
{
item.MineType = item.Nav_DetailContent.Nav_LibraryDetail.Nav_Library.MineType;
}
if (!string.IsNullOrEmpty(filter.Keyword))
{
detailContents = detailContents.Where(t => t.MineType == (SKProductionUnit)int.Parse(filter.Keyword)).ToList();
}
if (!string.IsNullOrEmpty(filter.Parameter1))
{
detailContents = detailContents.Where(t => t.CHECK_TYPE_ID == Guid.Parse(filter.Parameter1)).ToList();
}
if (!string.IsNullOrEmpty(filter.Parameter2))
{
detailContents = detailContents.Where(t => t.CHECK_CYCLE == (SKPLANCHECKFREQUENCYEnum)int.Parse(filter.Parameter2)).ToList();
}
if (!string.IsNullOrEmpty(filter.Parameter3))
{
detailContents = detailContents.Where(t => t.CHECK_TYPE == (SKDepartmentTypeEnum)int.Parse(filter.Parameter3)).ToList();
}
var contentIds = detailContents.Select(t => t.ENTERPRISE_LIBRARY_DETAIL_CONTENT_ID).Distinct().ToList();
var contentList = this.GetEntities<T_SK_ENTERPRISE_LIBRARY_DETAIL_CONTENT>(t => contentIds.Contains(t.ID), new BaseFilter(filter.OrgId), "Nav_LibraryDetail.Nav_Library.Nav_Area", "Nav_Contents", "Nav_DetailBasics.Nav_Law");
if (contentList.Any())
{
foreach (var item in contentList)
{
item.MineType = item.Nav_LibraryDetail.Nav_Library.MineType;
item.AREA_NAME = item.Nav_LibraryDetail.Nav_Library.AREA_NAME;
item.AREA_ID = item.Nav_LibraryDetail.Nav_Library.AREA_ID;
item.Nav_Contents = item.Nav_Contents;
item.Nav_Area = item.Nav_LibraryDetail.Nav_Library.Nav_Area;
}
}
var userPosts = this.GetEntities<T_FM_USER_POST>(t => t.IS_DELETED == false, new BaseFilter(filter.OrgId)).ToList();
var departIds = detailContents.Select(t => t.ID).ToList();
var posts = this.GetEntities<T_SK_ENTERPRISE_LIBRARY_DETAIL_CONTENT_POST>(t => departIds.Contains(t.ENTERPRISE_LIBRARY_DETAIL_CONTENT_DEPART_ID), new BaseFilter(filter.OrgId), "Nav_DetailDepart.Nav_Department").ToList();
var tempPosts = posts.GroupBy(t => new { t.Nav_DetailDepart.DEPARTMENT_ID, t.POST_ID }).Select(m => m.FirstOrDefault()).OrderBy(n => n.Nav_DetailDepart.DEPARTMENT_ID).ToList();
foreach (var item in tempPosts)
{
T_SK_ENTERPRISE_LIBRARY_DETAIL_CONTENT_DEPART item2 = new T_SK_ENTERPRISE_LIBRARY_DETAIL_CONTENT_DEPART();
item2.DEPARTMENT_ID = item.Nav_DetailDepart.DEPARTMENT_ID;
item2.Nav_Department = item.Nav_DetailDepart.Nav_Department;
item2.POST_NAME = userPosts.FirstOrDefault(t => t.ID == item.POST_ID)?.NAME;
var tempIds = detailContents.Where(t => t.DEPARTMENT_ID == item.Nav_DetailDepart.DEPARTMENT_ID).Select(m => m.ENTERPRISE_LIBRARY_DETAIL_CONTENT_ID).ToList();
2025-08-25 09:56:57 +08:00
var contentTemps = contentList.Where(t => tempIds.Contains(t.ID)).ToList();
item2.Nav_ContentDatas = contentTemps.GroupBy(t => new { t.MineType, t.AREA_NAME, t.CHECK_CONTENT }).Select(m => m.FirstOrDefault()).OrderBy(n => n.MineType).ThenBy(x => x.AREA_NAME).ToList();
2025-08-25 09:56:57 +08:00
checkTempList.Add(item2);
}
checkList.Data = checkTempList;
checkList.TotalCount = checkList.Data.Count;
}
return checkList;
}
[HttpPost, Route("GetCheckListContent")]
public JsonActionResult<List<T_SK_ENTERPRISE_LIBRARY_DETAIL_CONTENT>> GetCheckListContent([FromBody] KeywordFilter filter)
{
var mineType = SKProductionUnit.Mine;
if (filter.Parameter1 == "30")
{
mineType = SKProductionUnit.Mine;
}
else if (filter.Parameter1 == "10")
{
mineType = SKProductionUnit.MineChoose;
}
else if (filter.Parameter1 == "20")
{
mineType = SKProductionUnit.Minelast;
}
else if (filter.Parameter1 == "0")
{
mineType = SKProductionUnit.All;
}
else
{
throw new Exception("生产单元错误");
}
var checkCycle = BSPLANCHECKFREQUENCYEnum.Date;
if (filter.Parameter2 == "0")
{
checkCycle = BSPLANCHECKFREQUENCYEnum.None;
}
else if (filter.Parameter2 == "10")
{
checkCycle = BSPLANCHECKFREQUENCYEnum.Date;
}
else if (filter.Parameter2 == "20")
{
checkCycle = BSPLANCHECKFREQUENCYEnum.Week;
}
else if (filter.Parameter2 == "30")
{
checkCycle = BSPLANCHECKFREQUENCYEnum.Month;
}
else if (filter.Parameter2 == "40")
{
checkCycle = BSPLANCHECKFREQUENCYEnum.Quarter;
}
else if (filter.Parameter2 == "50")
{
checkCycle = BSPLANCHECKFREQUENCYEnum.HalfYear;
}
else if (filter.Parameter2 == "60")
{
checkCycle = BSPLANCHECKFREQUENCYEnum.Year;
}
else
{
throw new Exception("检查周期错误");
}
var departType = FMDepartmentType.Department;
if (filter.Parameter3 == "10")
2025-08-25 09:56:57 +08:00
{
departType = FMDepartmentType.Department;
2025-08-25 09:56:57 +08:00
}
else if (filter.Parameter3 == "15")
2025-08-25 09:56:57 +08:00
{
departType = FMDepartmentType.Workshop;
2025-08-25 09:56:57 +08:00
}
else if (filter.Parameter3 == "20")
2025-08-25 09:56:57 +08:00
{
departType = FMDepartmentType.Class;
2025-08-25 09:56:57 +08:00
}
else if (filter.Parameter3 == "5")
2025-08-25 09:56:57 +08:00
{
departType = FMDepartmentType.Company;
2025-08-25 09:56:57 +08:00
}
else
{
throw new Exception("检查层级错误");
}
var checkList = new JsonActionResult<List<T_SK_ENTERPRISE_LIBRARY_DETAIL_CONTENT>>();
var checkData = new List<T_SK_ENTERPRISE_LIBRARY_DETAIL_CONTENT>();
var libraryIds = this.GetEntities<T_SK_ENTERPRISE_LIBRARY>(t => t.MineType == mineType, new BaseFilter(filter.OrgId)).Select(t => t.ID).ToList();
var detailIds = this.GetEntities<T_SK_ENTERPRISE_LIBRARY_DETAIL>(t => libraryIds.Contains(t.ENTERPRISE_LIBRARY_ID), new BaseFilter(filter.OrgId)).Select(t => t.ID).ToList();
//var detailId2s = this.GetEntities<T_SK_ENTERPRISE_LIBRARY_DETAIL_CONTENT>(t => detailIds.Contains(t.ENTERPRISE_LIBRARY_DETAIL_ID) && t.CHECK_CYCLE == checkCycle && t.CHECK_TYPE == departType && t.CHECK_TYPE_ID == Guid.Parse(filter.Parameter4.ToString()), new BaseFilter(filter.OrgId)).Select(m=>m.ENTERPRISE_LIBRARY_DETAIL_ID).ToList();
//var detailId3s = this.GetEntities<T_SK_ENTERPRISE_LIBRARY_DETAIL_POST>(t => detailId2s.Contains(t.ENTERPRISE_LIBRARY_DETAIL_ID) && t.DEPARTMENT_ID == Guid.Parse(filter.Parameter5) && t.POST_ID == Guid.Parse(filter.Parameter6), new BaseFilter(filter.OrgId)).Select(t => t.ENTERPRISE_LIBRARY_DETAIL_ID).ToList();
//var detailContents = this.GetEntities<T_SK_ENTERPRISE_LIBRARY_DETAIL_CONTENT>(t => detailId3s.Contains(t.ENTERPRISE_LIBRARY_DETAIL_ID), new BaseFilter(filter.OrgId), "Nav_LibraryDetail.Nav_Library.Nav_Area", "Nav_Contents").ToList();
//if (detailContents != null && detailContents.Any())
//{
// foreach (var item in detailContents)
// {
// item.AREA_NAME = item.Nav_LibraryDetail?.Nav_Library?.Nav_Area?.NAME;
// }
// checkList.Data = detailContents.ToList();
// checkList.TotalCount = detailContents.Count;
//}
return checkList;
}
/// <summary>
/// 排序分页查询数据
/// </summary>
/// <param name="pageFilter">分页过滤实体</param>
/// <returns></returns>
[HttpPost, Route("PostOrderPaged")]
public PagedActionResult<T_FM_USER_POST> PostOrderPaged([FromBody] KeywordPageFilter pageFilter)
{
var result = new PagedActionResult<T_FM_USER_POST>();
var filterValue = "";
if (pageFilter != null && pageFilter.FilterGroup != null && pageFilter.FilterGroup.Groups != null)
{
foreach (var item in pageFilter.FilterGroup.Groups)
{
var value = item.Rules.FirstOrDefault(t => t.Field == "DEPARTMENT_ID");
if (value != null)
{
filterValue = value.Value.ToString();
item.Rules.Remove(value);
}
}
}
if (!string.IsNullOrEmpty(filterValue))
{
var users = this.GetEntities<T_FM_USER>(t => t.DEPARTMENT_ID == Guid.Parse(filterValue) && t.ENABLE_STATUS == 0 && t.PERSON_ID != null, new BaseFilter(pageFilter.OrgId), "Nav_Person");
var postIds = users.Where(m => m.Nav_Person != null).Select(t => t.Nav_Person.POST_ID).Distinct().ToList();
if (postIds.Any())
{
result = this.GetOrderPageEntities<T_FM_USER_POST>(t => postIds.Contains(t.ID), pageFilter);
}
else
{
result = this.GetOrderPageEntities<T_FM_USER_POST>(null, pageFilter);
}
}
else if (!string.IsNullOrEmpty(pageFilter.Keyword))
{
var users = this.GetEntities<T_FM_USER>(t => t.DEPARTMENT_ID == Guid.Parse(pageFilter.Keyword) && t.ENABLE_STATUS == 0 && t.PERSON_ID != null, new BaseFilter(pageFilter.OrgId), "Nav_Person");
var postIds = users.Where(m => m.Nav_Person != null).Select(t => t.Nav_Person.POST_ID).Distinct().ToList();
if (postIds.Any())
{
result = this.GetOrderPageEntities<T_FM_USER_POST>(t => postIds.Contains(t.ID), pageFilter);
}
else
{
result = this.GetOrderPageEntities<T_FM_USER_POST>(null, pageFilter);
}
}
else
{
result = this.GetOrderPageEntities<T_FM_USER_POST>(null, pageFilter);
}
return result;
}
/// <summary>
/// 获得单条实体数据
/// </summary>
/// <param name="filter">过滤实体</param>
/// <returns></returns>
[HttpPost, Route("PostLevel")]
public JsonActionResult<T_SK_ENTERPRISE_LIBRARY> PostLevel([FromBody] T_SK_ENTERPRISE_LIBRARY entity)
{
var result = new JsonActionResult<T_SK_ENTERPRISE_LIBRARY>();
result.Data = new T_SK_ENTERPRISE_LIBRARY();
var levels = new List<T_SK_ENTERPRISE_LIBRARY_DEPART>();
if (entity != null && entity.Nav_Posts != null)
{
var temps = new List<T_SK_ENTERPRISE_LIBRARY_DEPART>();
var departIds = entity.Nav_Posts.Select(t => t.DEPARTMENT_ID).Distinct().ToList();
if (!departIds.Any())
{
throw new Exception("请先填写辨识岗位");
}
var departs = this.GetEntities<T_FM_DEPARTMENT>(t => departIds.Contains(t.ID), new BaseFilter(entity.ORG_ID), "Nav_User");
if (departs.Any())
{
foreach (var item in departs)
{
T_SK_ENTERPRISE_LIBRARY_DEPART de = new T_SK_ENTERPRISE_LIBRARY_DEPART();
de.DEPARTMENT_ID = item.ID;
de.DEPARTMENT_TYPE = item.DEPARTMENT_TYPE == 0 ? SKDepartmentTypeEnum. : item.DEPARTMENT_TYPE == 3 ? SKDepartmentTypeEnum. : item.DEPARTMENT_TYPE == 1 ? SKDepartmentTypeEnum. : SKDepartmentTypeEnum.;
2025-08-25 09:56:57 +08:00
de.Nav_Department = item;
de.USER_ID = item.USER_ID;
de.Nav_User = item.Nav_User;
temps.Add(de);
}
}
if (temps.Any())
{
var x = temps.Where(t => t.DEPARTMENT_TYPE == SKDepartmentTypeEnum.);
levels.AddRange(x);
var y = temps.Where(t => t.DEPARTMENT_TYPE != SKDepartmentTypeEnum.).OrderBy(m => m.DEPARTMENT_TYPE);
levels.AddRange(y);
result.Data.Nav_Departs = levels;
}
}
return result;
}
/// <summary>
/// 获取导入数据
/// 参考 [Route("api/PF/Import")]
/// </summary>
/// <returns></returns>
[HttpPost, Route("GetImportData")]
public JsonActionResult<ImportDataModel> GetImportData()
{
return SafeExecute<ImportDataModel>(() =>
{
var orgId = APT.Infrastructure.Api.AppContext.CurrentSession.OrgId;
var httpRequest = this.HttpContext.Request;
string orgIdStr = httpRequest.Form["OrgId"];// 获取 组织
ImportDataModel result = new ImportDataModel();
var dic = Path.Combine(System.AppContext.BaseDirectory, "tempImportFiles");
if (!Directory.Exists(dic))
Directory.CreateDirectory(dic);
foreach (var key in httpRequest.Form.Files) // 文件键
{
var postedFile = key; // 获取文件键对应的文件对象
string filePath = Path.Combine(dic, DateTime.Now.ToString("yyyy_MM_dd_hh_mm_ss") + "_" + postedFile.FileName);
Byte[] fileData = new Byte[postedFile.Length];
Stream sr = postedFile.OpenReadStream();//创建数据流对象
sr.Read(fileData, 0, (int)postedFile.Length);
using (FileStream fs = new FileStream(filePath, FileMode.CreateNew))
{
fs.Write(fileData, 0, fileData.Length);
fs.Flush();
fs.Close();
}
//获取数据
Dictionary<int, int> startRowIndexs = new Dictionary<int, int>();
startRowIndexs.Add(0, 1);//根据Excel格式数据赋值
var dataTables = FileUtils.ReadExcelByOledb(filePath, startRowIndexs);
string Msg = string.Empty;
bool isOK = InsertModel5(dataTables.Tables[0], orgId, ref Msg);
if (isOK)
{
bool isOK1 = InsertModel8(dataTables.Tables[1], orgId, ref Msg);
if (isOK1)
{
bool isOK2 = InsertModel6(dataTables.Tables[2], orgId, ref Msg);
if (isOK2)
{
bool isOK3 = InsertModel7(dataTables.Tables[3], 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;
List<T_SK_ENTERPRISE_LIBRARY_TEMP> librarys = new List<T_SK_ENTERPRISE_LIBRARY_TEMP>();
if (rowAll == 1)
{
throw new Exception("导入必须两条以上,一条请直接新增");
}
var areas = this.GetEntities<T_SK_RISK_AREA>(t => t.IS_DELETED == false, new BaseFilter(orgId));
var types = this.GetEntities<T_SK_RISK_TYPE>(t => t.IS_DELETED == false, new BaseFilter(orgId));
for (int i = 0; i < rowAll; i++)
{
T_SK_ENTERPRISE_LIBRARY_TEMP temp = new T_SK_ENTERPRISE_LIBRARY_TEMP();
temp.ID = Guid.NewGuid();
temp.ORG_ID = orgId;
var num = dtSource.Rows[i][0].ToString().Trim();
temp.NUM = int.Parse(num);
temp.CODE = num;
var minetype = dtSource.Rows[i][1].ToString().Trim();
if (!string.IsNullOrEmpty(minetype))
{
switch (minetype)
{
case "全公司":
temp.MineType = 0;
break;
case "露天矿":
temp.MineType = (FMProductionUnit)30;
break;
case "选矿厂":
temp.MineType = (FMProductionUnit)10;
break;
case "尾矿库":
temp.MineType = (FMProductionUnit)20;
break;
case "职能口":
temp.MineType = (FMProductionUnit)31;
break;
case "非金属":
temp.MineType = (FMProductionUnit)32;
break;
case "地下矿":
temp.MineType = (FMProductionUnit)40;
break;
default:
temp.MineType = 0;
break;
}
}
temp.MINE_NAME = minetype;
var areaName = dtSource.Rows[i][2].ToString().Trim();
if (!string.IsNullOrEmpty(areaName))
{
var area = areas.FirstOrDefault(t => t.NAME == areaName);
2025-08-25 09:56:57 +08:00
if (area != null)
{
temp.AREA_ID = area.ID;
}
}
temp.AREA_NAME = areaName;
temp.RISK_NAME = dtSource.Rows[i][3].ToString().Trim();
temp.RISK_DESCRIPTION = dtSource.Rows[i][4].ToString().Trim();
var typeName = dtSource.Rows[i][5].ToString().Trim();
if (!string.IsNullOrEmpty(typeName))
{
var type = types.FirstOrDefault(t => t.NAME == typeName);
if (type != null)
{
temp.TYPE_ID = type.ID;
}
}
temp.TYPE_NAME = typeName;
var scoreL = dtSource.Rows[i][6].ToString().Trim();
var scoreE = dtSource.Rows[i][7].ToString().Trim();
var scoreC = dtSource.Rows[i][8].ToString().Trim();
var scoreD = dtSource.Rows[i][9].ToString().Trim();
temp.EVALUATE_L = string.IsNullOrEmpty(scoreL) ? 0 : int.Parse(scoreL);
2025-08-25 09:56:57 +08:00
temp.EVALUATE_E = string.IsNullOrEmpty(scoreE) ? 0 : int.Parse(scoreE);
temp.EVALUATE_C = string.IsNullOrEmpty(scoreC) ? 0 : int.Parse(scoreC);
temp.EVALUATE_SCORE = string.IsNullOrEmpty(scoreD) ? 0 : int.Parse(scoreD);
var riskLevel = dtSource.Rows[i][10].ToString().Trim();
if (!string.IsNullOrEmpty(riskLevel))
{
switch (riskLevel)
{
case "重大风险":
temp.EVALUATE_LEVEL = (SKEvaluateLevelEnum)10;
break;
case "较大风险":
temp.EVALUATE_LEVEL = (SKEvaluateLevelEnum)20;
break;
case "一般风险":
temp.EVALUATE_LEVEL = (SKEvaluateLevelEnum)30;
break;
case "低风险":
temp.EVALUATE_LEVEL = (SKEvaluateLevelEnum)40;
break;
default:
temp.EVALUATE_LEVEL = (SKEvaluateLevelEnum)40;
break;
}
}
temp.ENABLE_STATUS = FMEnableStatusEnum.;
librarys.Add(temp);
}
if (!string.IsNullOrEmpty(Msg))
{
throw new Exception(Msg);
}
else
{
UnifiedCommit(() =>
{
if (librarys != null && librarys.Any())
BantchAddEntityNoCommit(librarys);
});
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 InsertModel2(DataTable dtSource, Guid? orgId, ref string Msg, int rowIndex = 1)
{
var userId = APT.Infrastructure.Api.AppContext.CurrentSession.UserID;
if (dtSource == null || dtSource.Rows.Count < rowIndex)
{
Msg = "未获取到导入数据";
throw new Exception(Msg);
}
int rowAll = dtSource.Rows.Count;
List<T_SK_LIBRARY_IMPORT_TEMP> librarys = new List<T_SK_LIBRARY_IMPORT_TEMP>();
if (rowAll == 1)
{
throw new Exception("导入必须两条以上,一条请直接新增");
}
for (int i = 0; i < rowAll; i++)
{
T_SK_LIBRARY_IMPORT_TEMP temp = new T_SK_LIBRARY_IMPORT_TEMP();
temp.ID = Guid.NewGuid();
temp.ORG_ID = orgId;
var num = dtSource.Rows[i][0].ToString().Trim();
temp.NUM = int.Parse(num);
2025-08-25 09:56:57 +08:00
temp.MineType = dtSource.Rows[i][1].ToString().Trim();
temp.AREA_NAME = dtSource.Rows[i][2].ToString().Trim();
temp.RISK_NAME = dtSource.Rows[i][3].ToString().Trim();
temp.RISK_DESCRIPTION = dtSource.Rows[i][4].ToString().Trim();
temp.TYPE_NAME = dtSource.Rows[i][5].ToString().Trim();
temp.MEASURES_NAME = dtSource.Rows[i][6].ToString().Trim();
temp.CHECK_CONTENT = dtSource.Rows[i][7].ToString().Trim();
temp.CHECK_BASIC = dtSource.Rows[i][8].ToString().Trim();
temp.CHECK_STANDARD = dtSource.Rows[i][9].ToString().Trim();
temp.CHECK_LEVEL = dtSource.Rows[i][10].ToString().Trim();
temp.CHECK_DEPARTMENT = dtSource.Rows[i][11].ToString().Trim();
temp.CHECK_POST = dtSource.Rows[i][12].ToString().Trim();
temp.CHECK_TYPE = dtSource.Rows[i][13].ToString().Trim();
temp.CHECK_CYCLE = dtSource.Rows[i][14].ToString().Trim();
librarys.Add(temp);
}
if (!string.IsNullOrEmpty(Msg))
{
throw new Exception(Msg);
}
else
{
UnifiedCommit(() =>
{
if (librarys != null && librarys.Any())
BantchAddEntityNoCommit(librarys);
});
Msg = "导入成功!";
}
return true;
}
public bool InsertModel3(DataTable dtSource, Guid? orgId, ref string Msg, int rowIndex = 1)
{
var userId = APT.Infrastructure.Api.AppContext.CurrentSession.UserID;
if (dtSource == null || dtSource.Rows.Count < rowIndex)
{
Msg = "未获取到导入数据";
throw new Exception(Msg);
}
int rowAll = dtSource.Rows.Count;
List<T_SK_LIBRARY_IMPORT_TEMP_NEW> librarys = new List<T_SK_LIBRARY_IMPORT_TEMP_NEW>();
if (rowAll == 1)
{
throw new Exception("导入必须两条以上,一条请直接新增");
}
for (int i = 0; i < rowAll; i++)
{
T_SK_LIBRARY_IMPORT_TEMP_NEW temp = new T_SK_LIBRARY_IMPORT_TEMP_NEW();
temp.ID = Guid.NewGuid();
temp.ORG_ID = orgId;
var num = dtSource.Rows[i][0].ToString().Trim();
temp.NUM = int.Parse(num);
temp.MineType = dtSource.Rows[i][1].ToString().Trim();
temp.AREA_NAME = dtSource.Rows[i][2].ToString().Trim();
temp.RISK_NAME = dtSource.Rows[i][3].ToString().Trim();
temp.RISK_DESCRIPTION = dtSource.Rows[i][4].ToString().Trim();
temp.TYPE_NAME = dtSource.Rows[i][5].ToString().Trim();
temp.EVALUATE_L = dtSource.Rows[i][6].ToString().Trim();
temp.EVALUATE_E = dtSource.Rows[i][7].ToString().Trim();
temp.EVALUATE_C = dtSource.Rows[i][8].ToString().Trim();
temp.EVALUATE_SCORE = dtSource.Rows[i][9].ToString().Trim();
temp.EVALUATE_LEVEL = dtSource.Rows[i][10].ToString().Trim();
temp.MEASURES_NAME = dtSource.Rows[i][11].ToString().Trim();
temp.DEPARTMENT_TYPE = dtSource.Rows[i][12].ToString().Trim();
temp.DEPARTMENT_NAME = dtSource.Rows[i][13].ToString().Trim();
temp.DEPARTMENT_USER = dtSource.Rows[i][14].ToString().Trim();
temp.CHECK_CONTENT = dtSource.Rows[i][15].ToString().Trim();
temp.CHECK_BASIC = dtSource.Rows[i][16].ToString().Trim();
temp.CHECK_STANDARD = dtSource.Rows[i][17].ToString().Trim();
temp.CHECK_LEVEL = dtSource.Rows[i][18].ToString().Trim();
temp.CHECK_DEPARTMENT = dtSource.Rows[i][19].ToString().Trim();
temp.CHECK_POST = dtSource.Rows[i][20].ToString().Trim();
temp.CHECK_TYPE = dtSource.Rows[i][21].ToString().Trim();
temp.CHECK_OBJECT = dtSource.Rows[i][22].ToString().Trim();
temp.CHECK_CYCLE = dtSource.Rows[i][23].ToString().Trim();
temp.HIDDEN_DESCRIPTION = dtSource.Rows[i][24].ToString().Trim();
temp.HIDDEN_LEVEL = "一般";
temp.HIDDEN_RECITIFY = dtSource.Rows[i][26].ToString().Trim();
librarys.Add(temp);
}
if (!string.IsNullOrEmpty(Msg))
{
throw new Exception(Msg);
}
else
{
UnifiedCommit(() =>
{
if (librarys != null && librarys.Any())
BantchAddEntityNoCommit(librarys);
});
Msg = "导入成功!";
}
return true;
}
public bool InsertModel4(DataTable dtSource, Guid? orgId, ref string Msg, int rowIndex = 1)
{
var userId = APT.Infrastructure.Api.AppContext.CurrentSession.UserID;
if (dtSource == null || dtSource.Rows.Count < rowIndex)
{
Msg = "未获取到导入数据";
throw new Exception(Msg);
}
int rowAll = dtSource.Rows.Count;
List<T_SK_LIBRARY_IMPORT_POST> librarys = new List<T_SK_LIBRARY_IMPORT_POST>();
if (rowAll == 1)
{
throw new Exception("导入必须两条以上,一条请直接新增");
}
for (int i = 0; i < rowAll; i++)
{
T_SK_LIBRARY_IMPORT_POST temp = new T_SK_LIBRARY_IMPORT_POST();
temp.ID = Guid.NewGuid();
temp.ORG_ID = orgId;
var num = dtSource.Rows[i][0].ToString().Trim();
temp.NUM = int.Parse(num);
temp.MineType = dtSource.Rows[i][1].ToString().Trim();
temp.DEPARTMENT_NAME = dtSource.Rows[i][2].ToString().Trim();
temp.POST_NAME = dtSource.Rows[i][3].ToString().Trim();
temp.AREA_NAME1 = dtSource.Rows[i][4].ToString().Trim();
temp.RISK_NAME1 = dtSource.Rows[i][5].ToString().Trim();
temp.AREA_NAME2 = dtSource.Rows[i][6].ToString().Trim();
temp.RISK_NAME2 = dtSource.Rows[i][7].ToString().Trim();
temp.AREA_NAME3 = dtSource.Rows[i][8].ToString().Trim();
temp.RISK_NAME3 = dtSource.Rows[i][9].ToString().Trim();
temp.AREA_NAME4 = dtSource.Rows[i][10].ToString().Trim();
temp.RISK_NAME4 = dtSource.Rows[i][11].ToString().Trim();
temp.AREA_NAME5 = dtSource.Rows[i][12].ToString().Trim();
temp.RISK_NAME5 = dtSource.Rows[i][13].ToString().Trim();
temp.AREA_NAME6 = dtSource.Rows[i][14].ToString().Trim();
temp.RISK_NAME6 = dtSource.Rows[i][15].ToString().Trim();
librarys.Add(temp);
}
if (!string.IsNullOrEmpty(Msg))
{
throw new Exception(Msg);
}
else
{
UnifiedCommit(() =>
{
if (librarys != null && librarys.Any())
BantchAddEntityNoCommit(librarys);
});
Msg = "导入成功!";
}
return true;
}
/// <summary>
/// 辨识部门岗位,对应风险
/// </summary>
/// <param name="filter"></param>
/// <returns></returns>
[HttpPost, Route("GetPostRiskList")]
public JsonActionResult<List<T_SK_ENTERPRISE_LIBRARY_POST>> GetPostRiskList([FromBody] KeywordFilter filter)
{
var loginDepart = APT.Infrastructure.Api.AppContext.CurrentSession.DepartmentID;
var posts = this.GetEntities<T_FM_USER_POST>(t => t.IS_DELETED == false, new BaseFilter(filter.OrgId));
var departs = this.GetEntities<T_FM_DEPARTMENT>(t => t.ENABLE_STATUS == 0, new BaseFilter(filter.OrgId));
var users = this.GetEntities<T_FM_USER>(t => t.ENABLE_STATUS == 0, new BaseFilter(filter.OrgId));
var AHDepart = departs.FirstOrDefault(t => t.NAME.Contains("安全环保"));
if (AHDepart != null && loginDepart == AHDepart.ID)
{
loginDepart = departs.FirstOrDefault(t => t.PARENT_ID == null).ID;
}
List<Guid> departmentIds = new List<Guid>() { loginDepart.Value };
DepartmentService.GetDepartmentIds(filter.OrgId.Value, new List<Guid>() { loginDepart.Value }, ref departmentIds);
var checkList = new JsonActionResult<List<T_SK_ENTERPRISE_LIBRARY_POST>>();
List<T_SK_ENTERPRISE_LIBRARY_POST> postLists = new List<T_SK_ENTERPRISE_LIBRARY_POST>();
var detailContents = this.GetEntities<T_SK_ENTERPRISE_LIBRARY_POST>(t => t.DEPARTMENT_ID != null && departmentIds.Contains((Guid)t.DEPARTMENT_ID), new BaseFilter(filter.OrgId), "Nav_Library", "Nav_PostDetails", "Nav_Department");
if (detailContents != null && detailContents.Any())
{
foreach (var item in detailContents)
{
if (item.Nav_PostDetails != null && item.Nav_PostDetails.Any())
{
foreach (var item2 in item.Nav_PostDetails)
{
var user = users.FirstOrDefault(t => t.ID == item.Nav_Department?.USER_ID);
2025-08-25 09:56:57 +08:00
T_SK_ENTERPRISE_LIBRARY_POST part = new T_SK_ENTERPRISE_LIBRARY_POST();
part.DEPARTMENT_ID = item.DEPARTMENT_ID;
part.ORG_ID = item.ORG_ID;
part.ENTERPRISE_LIBRARY_ID = item.ENTERPRISE_LIBRARY_ID;
part.Nav_Department = item.Nav_Department;
part.POST_NAME = posts.FirstOrDefault(t => t.ID == item2.POST_ID)?.NAME;
part.PHONE = user?.NAME + " " + user?.PHONE;
postLists.Add(part);
}
}
}
checkList.Data = postLists.GroupBy(t => new { t.DEPARTMENT_ID, t.POST_NAME }).Select(m => m.FirstOrDefault()).OrderBy(m => m.DEPARTMENT_ID).ToList();
2025-08-25 09:56:57 +08:00
if (checkList.Data != null && checkList.Data.Any())
{
var libraryIds = postLists.Select(m => m.ENTERPRISE_LIBRARY_ID).Distinct().ToList();
var librarys = this.GetEntities<T_SK_ENTERPRISE_LIBRARY>(t => libraryIds.Contains(t.ID), new BaseFilter(filter.OrgId), "Nav_Area", "Nav_Type", "Nav_RiskName", "Nav_Details");
foreach (var item in checkList.Data)
{
var tempIds = postLists.Where(t => t.DEPARTMENT_ID == item.DEPARTMENT_ID && t.POST_NAME == item.POST_NAME).Select(m => m.ENTERPRISE_LIBRARY_ID).Distinct().ToList();
2025-08-25 09:56:57 +08:00
item.Nav_Librarys = librarys.Where(t => tempIds.Contains(t.ID)).ToList();
}
}
checkList.TotalCount = checkList.Data.Count;
}
return checkList;
}
/// <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 InsertModel5(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;
List<T_SK_LIBRARY_IMPORT_MAIN> librarys = new List<T_SK_LIBRARY_IMPORT_MAIN>();
if (rowAll == 1)
{
throw new Exception("导入必须两条以上,一条请直接新增");
}
for (int i = 0; i < rowAll; i++)
{
T_SK_LIBRARY_IMPORT_MAIN temp = new T_SK_LIBRARY_IMPORT_MAIN();
temp.ID = Guid.NewGuid();
temp.ORG_ID = orgId;
temp.NUM = i + 1;
2025-08-25 09:56:57 +08:00
temp.MineType = dtSource.Rows[i][0].ToString().Trim();
temp.AREA_NAME = dtSource.Rows[i][1].ToString().Trim();
temp.RISK_NAME = dtSource.Rows[i][2].ToString().Trim();
temp.RISK_DESCRIPTION = dtSource.Rows[i][3].ToString().Trim();
temp.TYPE_NAME = dtSource.Rows[i][4].ToString().Trim();
temp.EVALUATE_L = dtSource.Rows[i][5].ToString().Trim();
temp.EVALUATE_E = dtSource.Rows[i][6].ToString().Trim();
temp.EVALUATE_C = dtSource.Rows[i][7].ToString().Trim();
temp.EVALUATE_SCORE = dtSource.Rows[i][8].ToString().Trim();
temp.EVALUATE_LEVEL = dtSource.Rows[i][9].ToString().Trim();
temp.EMERGENCY = dtSource.Rows[i][10].ToString().Trim();
temp.DEPARTMENT_NAME = dtSource.Rows[i][11].ToString().Trim();
librarys.Add(temp);
}
if (!string.IsNullOrEmpty(Msg))
{
throw new Exception(Msg);
}
else
{
UnifiedCommit(() =>
{
if (librarys != null && librarys.Any())
BantchAddEntityNoCommit(librarys);
});
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 InsertModel6(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;
List<T_SK_LIBRARY_IMPORT_MAIN_MEASURES> librarys = new List<T_SK_LIBRARY_IMPORT_MAIN_MEASURES>();
if (rowAll == 1)
{
throw new Exception("导入必须两条以上,一条请直接新增");
}
for (int i = 0; i < rowAll; i++)
{
T_SK_LIBRARY_IMPORT_MAIN_MEASURES temp = new T_SK_LIBRARY_IMPORT_MAIN_MEASURES();
temp.ID = Guid.NewGuid();
temp.ORG_ID = orgId;
temp.NUM = i + 1;
temp.MineType = dtSource.Rows[i][0].ToString().Trim();
temp.AREA_NAME = dtSource.Rows[i][1].ToString().Trim();
temp.RISK_NAME = dtSource.Rows[i][2].ToString().Trim();
temp.RISK_DESCRIPTION = dtSource.Rows[i][3].ToString().Trim();
temp.TYPE_NAME = dtSource.Rows[i][4].ToString().Trim();
temp.MEASURES_NAME = dtSource.Rows[i][5].ToString().Trim();
temp.CHECK_CONTENT = dtSource.Rows[i][6].ToString().Trim();
temp.CHECK_BASIC = dtSource.Rows[i][7].ToString().Trim();
temp.CHECK_STANDARD = dtSource.Rows[i][8].ToString().Trim();
temp.CHECK_LEVEL = dtSource.Rows[i][9].ToString().Trim();
temp.CHECK_DEPARTMENT = dtSource.Rows[i][10].ToString().Trim();
temp.CHECK_POST = dtSource.Rows[i][11].ToString().Trim();
temp.CHECK_TYPE = dtSource.Rows[i][12].ToString().Trim();
temp.CHECK_OBJECT = dtSource.Rows[i][13].ToString().Trim();
temp.CHECK_CYCLE = dtSource.Rows[i][14].ToString().Trim();
librarys.Add(temp);
}
if (!string.IsNullOrEmpty(Msg))
{
throw new Exception(Msg);
}
else
{
UnifiedCommit(() =>
{
if (librarys != null && librarys.Any())
BantchAddEntityNoCommit(librarys);
});
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 InsertModel7(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;
List<T_SK_LIBRARY_IMPORT_MAIN_HIDDEN> librarys = new List<T_SK_LIBRARY_IMPORT_MAIN_HIDDEN>();
if (rowAll == 1)
{
throw new Exception("导入必须两条以上,一条请直接新增");
}
for (int i = 0; i < rowAll; i++)
{
T_SK_LIBRARY_IMPORT_MAIN_HIDDEN temp = new T_SK_LIBRARY_IMPORT_MAIN_HIDDEN();
temp.ID = Guid.NewGuid();
temp.ORG_ID = orgId;
temp.NUM = i + 1;
temp.MineType = dtSource.Rows[i][0].ToString().Trim();
temp.AREA_NAME = dtSource.Rows[i][1].ToString().Trim();
temp.RISK_NAME = dtSource.Rows[i][2].ToString().Trim();
temp.RISK_DESCRIPTION = dtSource.Rows[i][3].ToString().Trim();
temp.TYPE_NAME = dtSource.Rows[i][4].ToString().Trim();
temp.MEASURES_NAME = dtSource.Rows[i][5].ToString().Trim();
temp.CHECK_CONTENT = dtSource.Rows[i][6].ToString().Trim();
temp.HIDDEN_DESCRIPTION = dtSource.Rows[i][7].ToString().Trim();
temp.HIDDEN_LEVEL = dtSource.Rows[i][8].ToString().Trim();
temp.HIDDEN_RECITIFY = dtSource.Rows[i][9].ToString().Trim();
librarys.Add(temp);
}
if (!string.IsNullOrEmpty(Msg))
{
throw new Exception(Msg);
}
else
{
UnifiedCommit(() =>
{
if (librarys != null && librarys.Any())
BantchAddEntityNoCommit(librarys);
});
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 InsertModel8(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;
List<T_SK_LIBRARY_IMPORT_MAIN_POST> librarys = new List<T_SK_LIBRARY_IMPORT_MAIN_POST>();
if (rowAll == 1)
{
throw new Exception("导入必须两条以上,一条请直接新增");
}
for (int i = 0; i < rowAll; i++)
{
T_SK_LIBRARY_IMPORT_MAIN_POST temp = new T_SK_LIBRARY_IMPORT_MAIN_POST();
temp.ID = Guid.NewGuid();
temp.ORG_ID = orgId;
temp.NUM = i + 1;
temp.MineType = dtSource.Rows[i][0].ToString().Trim();
temp.AREA_NAME = dtSource.Rows[i][1].ToString().Trim();
temp.RISK_NAME = dtSource.Rows[i][2].ToString().Trim();
temp.RISK_DESCRIPTION = dtSource.Rows[i][3].ToString().Trim();
temp.TYPE_NAME = dtSource.Rows[i][4].ToString().Trim();
temp.DEPARTMENT_NAME = dtSource.Rows[i][5].ToString().Trim();
temp.POST_NAME = dtSource.Rows[i][6].ToString().Trim();
librarys.Add(temp);
}
if (!string.IsNullOrEmpty(Msg))
{
throw new Exception(Msg);
}
else
{
UnifiedCommit(() =>
{
if (librarys != null && librarys.Any())
BantchAddEntityNoCommit(librarys);
});
Msg = "导入成功!";
}
return true;
}
/// <summary>
/// 获得单条实体数据
/// </summary>
/// <param name="filter">过滤实体</param>
/// <returns></returns>
[HttpPost, Route("SKGetOld")]
public JsonActionResult<T_SK_ENTERPRISE_LIBRARY> SKGetOld([FromBody] KeywordFilter filter)
{
var result = WitEntity(null, filter);
if (result != null && result.Data != null)
{
if (result.Data.Nav_Details != null && result.Data.Nav_Details.Any())
{
foreach (var item in result.Data.Nav_Details)
{
if (item.Nav_DetailContents != null && item.Nav_DetailContents.Any())
{
item.Nav_DetailContents.ForEach(t => t.Nav_DetailHiddens.OrderBy(m => m.NUM));
item.Nav_DetailContents.ForEach(t => t.Nav_DetailDeparts.OrderBy(m => m.CHECK_TYPE).ThenBy(t => t.DEPARTMENT_ID));
item.Nav_DetailContents.OrderBy(t => t.NUM);
}
}
result.Data.Nav_Details.OrderBy(t => t.NUM);
result.Data.Nav_Departs.OrderBy(t => t.DEPARTMENT_TYPE).ThenBy(m => m.DEPARTMENT_ID);
result.Data.Nav_Posts.OrderBy(t => t.DEPARTMENT_ID);
}
}
return result;
}
/// <summary>
/// 获得单条实体数据
/// </summary>
/// <param name="filter">过滤实体</param>
/// <returns></returns>
[HttpPost, Route("SKGet")]
public JsonActionResult<T_SK_ENTERPRISE_LIBRARY> SKGet([FromBody] KeywordFilter filter)
{
return SafeExecute(() =>
{
var result = new T_SK_ENTERPRISE_LIBRARY();
var id = filter.FilterGroup.Rules.FirstOrDefault(t => t.Field == "ID").Value.ToString();
var mineType = filter.FilterGroup.Rules.FirstOrDefault(t => t.Field == "MineType");
var areaId = filter.FilterGroup.Rules.FirstOrDefault(t => t.Field == "AREA_ID");
var typeId = filter.FilterGroup.Rules.FirstOrDefault(t => t.Field == "TYPE_ID");
var riskName = filter.FilterGroup.Rules.FirstOrDefault(t => t.Field == "RISK_NAME");
var riskDes = filter.FilterGroup.Rules.FirstOrDefault(t => t.Field == "RISK_DESCRIPTION");
filter.IgnoreDataRule = true;
if (!string.IsNullOrEmpty(id))
{
result = this.GetEntity<T_SK_ENTERPRISE_LIBRARY>(id, new string[] { "Nav_Type", "Nav_Area","Nav_RiskName",
"Nav_SCOREL","Nav_SCOREE","Nav_SCOREC"});
}
else if (mineType != null && areaId != null && typeId != null && riskName != null && riskDes != null)
2025-08-25 09:56:57 +08:00
{
var temp = SKProductionUnit.All;
switch (mineType.Value)
{
case 0:
temp = SKProductionUnit.All;
2025-08-25 09:56:57 +08:00
break;
case 10:
temp = SKProductionUnit.MineChoose;
2025-08-25 09:56:57 +08:00
break;
case 20:
temp = SKProductionUnit.Minelast;
break;
case 30:
temp = SKProductionUnit.Mine;
break;
case 40:
temp = SKProductionUnit.MineUnderGround;
break;
case 31:
temp = SKProductionUnit.Department;
break;
case 32:
temp = SKProductionUnit.Nonmetallic;
break;
default:
temp = SKProductionUnit.All;
2025-08-25 09:56:57 +08:00
break;
}
result = this.GetEntity<T_SK_ENTERPRISE_LIBRARY>(t => t.MineType == temp && t.AREA_ID == (Guid)areaId.Value && t.TYPE_ID == (Guid)typeId.Value && t.RISK_NAME == riskName.Value.ToString() && t.RISK_DESCRIPTION == riskDes.Value.ToString(), new string[] { "Nav_Type", "Nav_Area","Nav_RiskName",
2025-08-25 09:56:57 +08:00
"Nav_SCOREL","Nav_SCOREE","Nav_SCOREC"});
}
if (result != null)
{
var departs = this.GetEntities<T_SK_ENTERPRISE_LIBRARY_DEPART>(t => t.ENTERPRISE_LIBRARY_ID == result.ID, new BaseFilter(filter.OrgId), "Nav_Department", "Nav_User");
result.Nav_Departs = departs.OrderBy(t => t.DEPARTMENT_TYPE).ThenBy(m => m.DEPARTMENT_ID).ToList();
2025-08-25 09:56:57 +08:00
var posts = this.GetEntities<T_SK_ENTERPRISE_LIBRARY_POST>(t => t.ENTERPRISE_LIBRARY_ID == result.ID, new BaseFilter(filter.OrgId), "Nav_Department", "Nav_PostDetails.Nav_Post");
result.Nav_Posts = posts.OrderBy(t => t.DEPARTMENT_ID).ToList();
var details = this.GetEntities<T_SK_ENTERPRISE_LIBRARY_DETAIL>(t => t.ENTERPRISE_LIBRARY_ID == result.ID, new BaseFilter(filter.OrgId));
if (details.Any())
{
var detailIds = details.Select(t => t.ID).ToList();
var contents = this.GetEntities<T_SK_ENTERPRISE_LIBRARY_DETAIL_CONTENT>(t => detailIds.Contains(t.ENTERPRISE_LIBRARY_DETAIL_ID), new BaseFilter(filter.OrgId), "Nav_Contents");
var contentIds = contents.Select(t => t.ID).ToList();
var contentdeparts = this.GetEntities<T_SK_ENTERPRISE_LIBRARY_DETAIL_CONTENT_DEPART>(t => contentIds.Contains(t.ENTERPRISE_LIBRARY_DETAIL_CONTENT_ID), new BaseFilter(filter.OrgId), "Nav_Department", "Nav_CheckType", "Nav_DetailPosts.Nav_Post");
var contenthiddens = this.GetEntities<T_SK_ENTERPRISE_LIBRARY_DETAIL_CONTENT_HIDDEN>(t => contentIds.Contains(t.ENTERPRISE_LIBRARY_DETAIL_CONTENT_ID), new BaseFilter(filter.OrgId), "Nav_Question");
var contentbasics = this.GetEntities<T_SK_ENTERPRISE_LIBRARY_DETAIL_CONTENT_BASIC>(t => contentIds.Contains(t.ENTERPRISE_LIBRARY_DETAIL_CONTENT_ID), new BaseFilter(filter.OrgId), "Nav_Law");
foreach (var detail in details)
{
var contentTemps = contents.Where(t => t.ENTERPRISE_LIBRARY_DETAIL_ID == detail.ID).ToList();
detail.Nav_DetailContents = contentTemps.OrderBy(t => t.NUM).ToList();
foreach (var content in detail.Nav_DetailContents)
{
var departTemps = contentdeparts.Where(t => t.ENTERPRISE_LIBRARY_DETAIL_CONTENT_ID == content.ID).ToList();
content.Nav_DetailDeparts = departTemps.OrderBy(t => t.CHECK_TYPE).ThenBy(m => m.DEPARTMENT_ID).ToList();
2025-08-25 09:56:57 +08:00
var hiddenTemps = contenthiddens.Where(t => t.ENTERPRISE_LIBRARY_DETAIL_CONTENT_ID == content.ID).ToList();
content.Nav_DetailHiddens = hiddenTemps.OrderBy(t => t.NUM).ToList();
var basicTemps = contentbasics.Where(t => t.ENTERPRISE_LIBRARY_DETAIL_CONTENT_ID == content.ID).ToList();
content.Nav_DetailBasics = basicTemps.ToList();
}
}
}
result.Nav_Details = details.OrderBy(t => t.NUM).ToList();
2025-08-25 09:56:57 +08:00
}
return result;
});
}
/// <summary>
/// 查询
/// </summary>
/// <param name="pageFilter"></param>
/// <returns></returns>
[HttpPost, Route("DepartOrderPaged")]
public PagedActionResult<T_FM_DEPARTMENT> DepartOrderPaged([FromBody] KeywordPageFilter pageFilter)
{
var result = new PagedActionResult<T_FM_DEPARTMENT>();
if (!string.IsNullOrEmpty(pageFilter.Keyword))
{
if (pageFilter.Keyword == "31")
{
FilterRule order2 = new FilterRule();
order2.Field = "MineType";
order2.Value = 0;
pageFilter.FilterGroup.Rules.Add(order2);
}
else
{
FilterRule order2 = new FilterRule();
order2.Field = "MineType";
order2.Value = pageFilter.Keyword;
pageFilter.FilterGroup.Rules.Add(order2);
}
}
result = GetOrderPageEntities<T_FM_DEPARTMENT>(null, pageFilter);
return result;
}
}
}