后台绩效报表

This commit is contained in:
何美荣 2026-07-29 14:00:18 +08:00
parent 5b1e349f4a
commit 7b2e905d50
6 changed files with 140547 additions and 48 deletions

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,46 @@
using Microsoft.EntityFrameworkCore.Migrations;
namespace APT.Data.Migrations.Migrations
{
public partial class hmr2026072901 : Migration
{
protected override void Up(MigrationBuilder migrationBuilder)
{
migrationBuilder.AddColumn<string>(
name: "FORM_NAME",
table: "T_BI_SAFETASK_FINISH",
type: "nvarchar(500)",
maxLength: 500,
nullable: true);
migrationBuilder.AddColumn<string>(
name: "FORM_STATUS",
table: "T_BI_SAFETASK_FINISH",
type: "nvarchar(500)",
maxLength: 500,
nullable: true);
migrationBuilder.AddColumn<int>(
name: "OVERTIME",
table: "T_BI_SAFETASK_FINISH",
type: "int",
nullable: false,
defaultValue: 0);
}
protected override void Down(MigrationBuilder migrationBuilder)
{
migrationBuilder.DropColumn(
name: "FORM_NAME",
table: "T_BI_SAFETASK_FINISH");
migrationBuilder.DropColumn(
name: "FORM_STATUS",
table: "T_BI_SAFETASK_FINISH");
migrationBuilder.DropColumn(
name: "OVERTIME",
table: "T_BI_SAFETASK_FINISH");
}
}
}

View File

@ -21081,6 +21081,14 @@ namespace APT.Data.Migrations.Migrations
b.Property<Guid?>("FORM_ID") b.Property<Guid?>("FORM_ID")
.HasColumnType("uniqueidentifier"); .HasColumnType("uniqueidentifier");
b.Property<string>("FORM_NAME")
.HasMaxLength(500)
.HasColumnType("nvarchar(500)");
b.Property<string>("FORM_STATUS")
.HasMaxLength(500)
.HasColumnType("nvarchar(500)");
b.Property<bool>("IS_DELETED") b.Property<bool>("IS_DELETED")
.HasColumnType("bit"); .HasColumnType("bit");
@ -21094,6 +21102,9 @@ namespace APT.Data.Migrations.Migrations
.IsRequired() .IsRequired()
.HasColumnType("uniqueidentifier"); .HasColumnType("uniqueidentifier");
b.Property<int>("OVERTIME")
.HasColumnType("int");
b.Property<DateTime>("STARTTIME") b.Property<DateTime>("STARTTIME")
.HasColumnType("datetime2"); .HasColumnType("datetime2");

View File

@ -4566,6 +4566,8 @@ builder.HasOne(t => t.Nav_ImgFile).WithMany().HasForeignKey(t => t.IMG_FILE_ID).
builder.Property(t => t.TEAM_NAME).HasMaxLength(50); builder.Property(t => t.TEAM_NAME).HasMaxLength(50);
builder.Property(t => t.TEAM_CHARGE_USER).HasMaxLength(50); builder.Property(t => t.TEAM_CHARGE_USER).HasMaxLength(50);
builder.Property(t => t.DEPARTMENT_NAME).HasMaxLength(50); builder.Property(t => t.DEPARTMENT_NAME).HasMaxLength(50);
builder.Property(t => t.FORM_NAME).HasMaxLength(500);
builder.Property(t => t.FORM_STATUS).HasMaxLength(500);
} }
} }
#endregion #endregion

View File

@ -770,8 +770,9 @@ namespace APT.SC.WebApi.Controllers.Api.BI
var checkIds = detailContentChecks.Select(t => t.CHECK_TYPE_ID).Distinct(); var checkIds = detailContentChecks.Select(t => t.CHECK_TYPE_ID).Distinct();
var hazardFilter = new BaseFilter(filter.GetOrgId()); var hazardFilter = new BaseFilter(filter.GetOrgId());
riskPerformanceData riskPerformanceData = new riskPerformanceData(); riskPerformanceData riskPerformanceData = new riskPerformanceData();
List<dateCountModel> item3s = new List<dateCountModel>(); List<dateCountModel> item3s = new List<dateCountModel>();
var distinctType = GetEntities<T_SK_RISK_TYPE>(t => checkIds.Contains(t.ID), new BaseFilter(filter.GetOrgId())); var libType = allrisk.Select(t => t.TYPE_ID).Distinct().ToList();
var distinctType = GetEntities<T_SK_RISK_TYPE>(t => libType.Contains(t.ID), new BaseFilter(filter.GetOrgId()));
var departments = GetEntities<T_FM_DEPARTMENT>(t => t.ENABLE_STATUS == 0, new BaseFilter(filter.GetOrgId())); var departments = GetEntities<T_FM_DEPARTMENT>(t => t.ENABLE_STATUS == 0, new BaseFilter(filter.GetOrgId()));
var distinctArea = GetEntities<T_SK_RISK_AREA>(t => t.IS_DELETED == false, new BaseFilter(filter.GetOrgId())); var distinctArea = GetEntities<T_SK_RISK_AREA>(t => t.IS_DELETED == false, new BaseFilter(filter.GetOrgId()));
var distinctTeamDepartment = departments.Where(t => t.DEPARTMENT_TYPE == 20); var distinctTeamDepartment = departments.Where(t => t.DEPARTMENT_TYPE == 20);
@ -916,13 +917,15 @@ namespace APT.SC.WebApi.Controllers.Api.BI
#region 8 #region 8
var levelArr = new int[] { 5, 10, 15, 20 }; var levelArr = new int[] { 5, 10, 15, 20 };
foreach (var id in productIds) var names= new string[] { "露天矿", "选矿厂", "地下矿", "尾矿库" }.ToList();
var productUnitIds = productionUnits.Where(t => names.Contains(t.NAME)).OrderBy(t=>t.NAME == "尾矿库").ThenBy(t => t.NAME == "地下矿").ThenBy(t => t.NAME == "选矿厂").ThenBy(t => t.NAME == "露天矿").Select(m => m.ID).ToList();
foreach (var id in productUnitIds)
{ {
var mineTypeName = productionUnits.FirstOrDefault(t => t.ID == id)?.NAME; var mineTypeName = productionUnits.FirstOrDefault(t => t.ID == id)?.NAME;
var templevel1 = allrisk.Where(t => t.PRODUCTION_UNIT_ID == id && t.EVALUATE_LEVEL == SKEvaluateLevelEnum.); var templevel1 = allrisk.Where(t => t.PRODUCTION_UNIT_ID == id && t.EVALUATE_LEVEL == SKEvaluateLevelEnum.).ToList();
var templevel2 = allrisk.Where(t => t.PRODUCTION_UNIT_ID == id && t.EVALUATE_LEVEL == SKEvaluateLevelEnum.); var templevel2 = allrisk.Where(t => t.PRODUCTION_UNIT_ID == id && t.EVALUATE_LEVEL == SKEvaluateLevelEnum.).ToList();
var templevel3 = allrisk.Where(t => t.PRODUCTION_UNIT_ID == id && t.EVALUATE_LEVEL == SKEvaluateLevelEnum.); var templevel3 = allrisk.Where(t => t.PRODUCTION_UNIT_ID == id && t.EVALUATE_LEVEL == SKEvaluateLevelEnum.).ToList();
var templevel4 = allrisk.Where(t => t.PRODUCTION_UNIT_ID == id && t.EVALUATE_LEVEL == SKEvaluateLevelEnum.); var templevel4 = allrisk.Where(t => t.PRODUCTION_UNIT_ID == id && t.EVALUATE_LEVEL == SKEvaluateLevelEnum.).ToList();
var libIds1 = libMeasures.Where(t => t.DEPARTMENT_TYPE.GetInt() == levelArr[0]).Select(m => m.ENTERPRISE_LIBRARY_ID).Distinct().ToList(); var libIds1 = libMeasures.Where(t => t.DEPARTMENT_TYPE.GetInt() == levelArr[0]).Select(m => m.ENTERPRISE_LIBRARY_ID).Distinct().ToList();
var libIds2 = libMeasures.Where(t => t.DEPARTMENT_TYPE.GetInt() == levelArr[1]).Select(m => m.ENTERPRISE_LIBRARY_ID).Distinct().ToList(); var libIds2 = libMeasures.Where(t => t.DEPARTMENT_TYPE.GetInt() == levelArr[1]).Select(m => m.ENTERPRISE_LIBRARY_ID).Distinct().ToList();
var libIds3 = libMeasures.Where(t => t.DEPARTMENT_TYPE.GetInt() == levelArr[2]).Select(m => m.ENTERPRISE_LIBRARY_ID).Distinct().ToList(); var libIds3 = libMeasures.Where(t => t.DEPARTMENT_TYPE.GetInt() == levelArr[2]).Select(m => m.ENTERPRISE_LIBRARY_ID).Distinct().ToList();
@ -939,18 +942,18 @@ namespace APT.SC.WebApi.Controllers.Api.BI
#region 9 #region 9
foreach (var level in levelArr) foreach (var level in levelArr)
{ {
var libIds1 = libMeasures.Where(t => t.DEPARTMENT_TYPE.GetInt() == levelArr[0]).Select(m => m.ENTERPRISE_LIBRARY_ID).Distinct().ToList(); var libIds1 = libMeasures.Where(t => t.DEPARTMENT_TYPE.GetInt() == level).Select(m => m.ENTERPRISE_LIBRARY_ID).Distinct().ToList();
var libIds2 = libMeasures.Where(t => t.DEPARTMENT_TYPE.GetInt() == levelArr[1]).Select(m => m.ENTERPRISE_LIBRARY_ID).Distinct().ToList(); //var libIds2 = libMeasures.Where(t => t.DEPARTMENT_TYPE.GetInt() == levelArr[1]).Select(m => m.ENTERPRISE_LIBRARY_ID).Distinct().ToList();
var libIds3 = libMeasures.Where(t => t.DEPARTMENT_TYPE.GetInt() == levelArr[2]).Select(m => m.ENTERPRISE_LIBRARY_ID).Distinct().ToList(); //var libIds3 = libMeasures.Where(t => t.DEPARTMENT_TYPE.GetInt() == levelArr[2]).Select(m => m.ENTERPRISE_LIBRARY_ID).Distinct().ToList();
var libIds4 = libMeasures.Where(t => t.DEPARTMENT_TYPE.GetInt() == levelArr[3]).Select(m => m.ENTERPRISE_LIBRARY_ID).Distinct().ToList(); //var libIds4 = libMeasures.Where(t => t.DEPARTMENT_TYPE.GetInt() == levelArr[3]).Select(m => m.ENTERPRISE_LIBRARY_ID).Distinct().ToList();
var templevel1 = allrisk.Where(t => libIds1.Contains(t.ID) && t.EVALUATE_LEVEL == SKEvaluateLevelEnum.); var templevel1 = allrisk.Where(t => libIds1.Contains(t.ID) && t.EVALUATE_LEVEL == SKEvaluateLevelEnum.);
var templevel2 = allrisk.Where(t => libIds2.Contains(t.ID) && t.EVALUATE_LEVEL == SKEvaluateLevelEnum.); var templevel2 = allrisk.Where(t => libIds1.Contains(t.ID) && t.EVALUATE_LEVEL == SKEvaluateLevelEnum.);
var templevel3 = allrisk.Where(t => libIds3.Contains(t.ID) && t.EVALUATE_LEVEL == SKEvaluateLevelEnum.); var templevel3 = allrisk.Where(t => libIds1.Contains(t.ID) && t.EVALUATE_LEVEL == SKEvaluateLevelEnum.);
var templevel4 = allrisk.Where(t => libIds4.Contains(t.ID) && t.EVALUATE_LEVEL == SKEvaluateLevelEnum.); var templevel4 = allrisk.Where(t => libIds1.Contains(t.ID) && t.EVALUATE_LEVEL == SKEvaluateLevelEnum.);
PerformanceModel modelCJ = new PerformanceModel(); PerformanceModel modelCJ = new PerformanceModel();
modelCJ.NAME = new List<string> { "露天矿", "选矿厂", "地下矿", "全公司" }; modelCJ.NAME = new List<string> { "露天矿", "选矿厂", "地下矿", "尾矿库" };
var minTypeArr = productionUnits.Where(t => modelCJ.NAME.Contains(t.NAME)).Select(m => m.ID).ToList(); var minTypeArr = productionUnits.Where(t => modelCJ.NAME.Contains(t.NAME)).OrderBy(t => t.NAME == "尾矿库").ThenBy(t => t.NAME == "地下矿").ThenBy(t => t.NAME == "选矿厂").ThenBy(t => t.NAME == "露天矿").Select(m => m.ID).ToList();
modelCJ.LEVEL1 = new List<int> { templevel1.Count(t => t.PRODUCTION_UNIT_ID == minTypeArr[0]), templevel1.Count(t => t.PRODUCTION_UNIT_ID == minTypeArr[1]), templevel1.Count(t => t.PRODUCTION_UNIT_ID == minTypeArr[2]), templevel1.Count(t => t.PRODUCTION_UNIT_ID == minTypeArr[3]) }; modelCJ.LEVEL1 = new List<int> { templevel1.Count(t => t.PRODUCTION_UNIT_ID == minTypeArr[0]), templevel1.Count(t => t.PRODUCTION_UNIT_ID == minTypeArr[1]), templevel1.Count(t => t.PRODUCTION_UNIT_ID == minTypeArr[2]), templevel1.Count(t => t.PRODUCTION_UNIT_ID == minTypeArr[3]) };
modelCJ.LEVEL2 = new List<int> { templevel2.Count(t => t.PRODUCTION_UNIT_ID == minTypeArr[0]), templevel2.Count(t => t.PRODUCTION_UNIT_ID == minTypeArr[1]), templevel2.Count(t => t.PRODUCTION_UNIT_ID == minTypeArr[2]), templevel2.Count(t => t.PRODUCTION_UNIT_ID == minTypeArr[3]) }; modelCJ.LEVEL2 = new List<int> { templevel2.Count(t => t.PRODUCTION_UNIT_ID == minTypeArr[0]), templevel2.Count(t => t.PRODUCTION_UNIT_ID == minTypeArr[1]), templevel2.Count(t => t.PRODUCTION_UNIT_ID == minTypeArr[2]), templevel2.Count(t => t.PRODUCTION_UNIT_ID == minTypeArr[3]) };
modelCJ.LEVEL3 = new List<int> { templevel3.Count(t => t.PRODUCTION_UNIT_ID == minTypeArr[0]), templevel3.Count(t => t.PRODUCTION_UNIT_ID == minTypeArr[1]), templevel3.Count(t => t.PRODUCTION_UNIT_ID == minTypeArr[2]), templevel3.Count(t => t.PRODUCTION_UNIT_ID == minTypeArr[3]) }; modelCJ.LEVEL3 = new List<int> { templevel3.Count(t => t.PRODUCTION_UNIT_ID == minTypeArr[0]), templevel3.Count(t => t.PRODUCTION_UNIT_ID == minTypeArr[1]), templevel3.Count(t => t.PRODUCTION_UNIT_ID == minTypeArr[2]), templevel3.Count(t => t.PRODUCTION_UNIT_ID == minTypeArr[3]) };
@ -960,7 +963,7 @@ namespace APT.SC.WebApi.Controllers.Api.BI
#endregion #endregion
#region 10 #region 10
List<PerformanceModel> SubZRDY = new List<PerformanceModel>(); List<PerformanceModel> SubZRDY = new List<PerformanceModel>();
foreach (var id in productIds) foreach (var id in productUnitIds)
{ {
PerformanceModel modelSubZRDY = new PerformanceModel(); PerformanceModel modelSubZRDY = new PerformanceModel();
foreach (var department in distinctDepartment) foreach (var department in distinctDepartment)
@ -988,7 +991,7 @@ namespace APT.SC.WebApi.Controllers.Api.BI
#endregion #endregion
#region 11 #region 11
List<PerformanceModel> SubQY = new List<PerformanceModel>(); List<PerformanceModel> SubQY = new List<PerformanceModel>();
foreach (var id in productIds) foreach (var id in productUnitIds)
{ {
PerformanceModel modelSubQY = new PerformanceModel(); PerformanceModel modelSubQY = new PerformanceModel();
foreach (var area in distinctArea) foreach (var area in distinctArea)
@ -1015,7 +1018,7 @@ namespace APT.SC.WebApi.Controllers.Api.BI
#endregion #endregion
#region 12 #region 12
List<PerformanceModel> SubFXLB = new List<PerformanceModel>(); List<PerformanceModel> SubFXLB = new List<PerformanceModel>();
foreach (var id in productIds) foreach (var id in productUnitIds)
{ {
PerformanceModel modelSubFXLB = new PerformanceModel(); PerformanceModel modelSubFXLB = new PerformanceModel();
foreach (var type in distinctType) foreach (var type in distinctType)

View File

@ -387,7 +387,7 @@ namespace APT.SC.WebApi.Controllers.Api.BI
{ {
ModelBI056Main result = new ModelBI056Main(); ModelBI056Main result = new ModelBI056Main();
DateTime dtStart = Convert.ToDateTime(DateTime.Now.Year.ToString() + "-01-01 00:00:00"); DateTime dtStart = Convert.ToDateTime(DateTime.Now.Year.ToString() + "-01-01 00:00:00");
DateTime? dtEnd = null; DateTime? dtEnd = DateTime.Now;
#region enmusLevel=> lisLevelOrder enmusMineType=>lisMineTypeOrder #region enmusLevel=> lisLevelOrder enmusMineType=>lisMineTypeOrder
@ -411,10 +411,10 @@ namespace APT.SC.WebApi.Controllers.Api.BI
#region listSafeCheck #region listSafeCheck
Expression<Func<T_SK_SECURITY_INSPECTION_NOTICE, bool>> expression = e => !e.IS_DELETED && e.APPLY_USER_ID.HasValue && e.CHECK_TIME.HasValue && dtStart <= e.CHECK_TIME.Value; Expression<Func<T_SK_SECURITY_INSPECTION_RECORD_SUMMARY, bool>> expression = e => !e.IS_DELETED && e.APPLY_USER_ID.HasValue && e.CREATE_TIME.HasValue && dtStart <= e.CREATE_TIME.Value;
if (dtEnd.HasValue) if (dtEnd.HasValue)
expression = expression.And(e => e.CHECK_TIME.HasValue && dtEnd.Value >= e.CHECK_TIME.Value); expression = expression.And(e => e.CREATE_TIME.HasValue && dtEnd.Value >= e.CREATE_TIME.Value);
BaseFilter filterSearch = new BaseFilter(filter.OrgId); BaseFilter filterSearch = new BaseFilter(filter.OrgId);
filterSearch.IgnoreDataRule = true; filterSearch.IgnoreDataRule = true;
@ -471,11 +471,9 @@ namespace APT.SC.WebApi.Controllers.Api.BI
listCheckTypeID.Add(item.ID); listCheckTypeID.Add(item.ID);
} }
listSum.Add(guidParent);//有些人直接定义 综合检查 listSum.Add(guidParent);//有些人直接定义 综合检查
foreach (var item in enmusMineType) foreach (var item in enmusMineType)
{ {
listCheckTypeCountPer = new List<int>(); listCheckTypeCountPer = new List<int>();
foreach (var itemCheckType in listCheckTypeID) foreach (var itemCheckType in listCheckTypeID)
{ {
int count = listSafeCheck.Where(e => e.PRODUCTION_UNIT_ID == item.ID && e.CHECK_TYPE_ID == itemCheckType).Count(); int count = listSafeCheck.Where(e => e.PRODUCTION_UNIT_ID == item.ID && e.CHECK_TYPE_ID == itemCheckType).Count();
@ -493,9 +491,10 @@ namespace APT.SC.WebApi.Controllers.Api.BI
Expression<Func<T_SK_HIDDEN_DANGER_RECTIFY_RECORD, bool>> expression2_2 = e => !e.IS_DELETED && e.CREATE_TIME.HasValue && e.CREATE_TIME.Value >= dtStart && !e.IS_DELETED;// && (e.RiskContentState.Value == 60 || e.RiskContentState.Value == 80)&& e.DESCREPTION != null Expression<Func<T_SK_HIDDEN_DANGER_RECTIFY_RECORD, bool>> expression2_2 = e => !e.IS_DELETED && e.CREATE_TIME.HasValue && e.CREATE_TIME.Value >= dtStart && !e.IS_DELETED;// && (e.RiskContentState.Value == 60 || e.RiskContentState.Value == 80)&& e.DESCREPTION != null
if (dtEnd.HasValue) if (dtEnd.HasValue)
expression2_2 = expression2_2.And(e => e.CREATE_TIME.HasValue && dtEnd.Value >= e.CREATE_TIME.Value); expression2_2 = expression2_2.And(e => e.CREATE_TIME.HasValue && dtEnd.Value >= e.CREATE_TIME.Value);
BaseFilter filterSearchC = new BaseFilter(filter.OrgId);
var listContent = GetEntities(expression2_2, null, "Nav_Question"); filterSearchC.IgnoreDataRule = true;
var listContent = GetEntities(expression2_2, filterSearchC, "Nav_Question");
#region 1_2 #region 1_2
@ -525,11 +524,15 @@ namespace APT.SC.WebApi.Controllers.Api.BI
foreach (var item in listMonth) foreach (var item in listMonth)
{ {
listFinish2_1.Add(listContent.Where(e => e.CREATE_TIME.HasValue && e.CREATE_TIME.Value.Month == item && e.STATUS == BaseData.Domain.Enums.PF.PFStandardStatus.Archived).Count()); listFinish2_1.Add(listContent.Where(e => e.CREATE_TIME.HasValue && e.CREATE_TIME.Value.Month == item && e.STATUS == BaseData.Domain.Enums.PF.PFStandardStatus.Archived).Count());
listNotFinish2_1.Add(listContent.Where(e => e.PRODUCTION_UNIT_ID.HasValue && e.CREATE_TIME.HasValue && e.CREATE_TIME.Value.Month == item && e.STATUS != BaseData.Domain.Enums.PF.PFStandardStatus.Archived).Count());//只是上报 没有检查范围 不计算在内 不然与后面的弹窗不对等 listNotFinish2_1.Add(listContent.Where(e => e.CREATE_TIME.HasValue && e.CREATE_TIME.Value.Month == item && e.STATUS != BaseData.Domain.Enums.PF.PFStandardStatus.Archived).Count());//只是上报 没有检查范围 不计算在内 不然与后面的弹窗不对等
} }
for (int i = 0; i < listMonth.Count; i++) for (int i = 0; i < listMonth.Count; i++)
{ {
if (listNotFinish2_1[i] == 0) if (listNotFinish2_1[i] + listFinish2_1[i] == 0)
{
listFinish2_1Percent.Add(100);
}
else if (listNotFinish2_1[i] == 0)
{ {
listFinish2_1Percent.Add(100); listFinish2_1Percent.Add(100);
} }
@ -597,7 +600,7 @@ namespace APT.SC.WebApi.Controllers.Api.BI
int count = listContent.Where(e => e.CHECK_TYPE_ID.HasValue && e.PRODUCTION_UNIT_ID.HasValue && e.PRODUCTION_UNIT_ID == item.ID && e.CHECK_TYPE_ID == itemCheckType).Count(); int count = listContent.Where(e => e.CHECK_TYPE_ID.HasValue && e.PRODUCTION_UNIT_ID.HasValue && e.PRODUCTION_UNIT_ID == item.ID && e.CHECK_TYPE_ID == itemCheckType).Count();
listCheckTypeCountPer.Add(count); listCheckTypeCountPer.Add(count);
} }
} }
listRiskMoneCheckType.Add(listCheckTypeCountPer); listRiskMoneCheckType.Add(listCheckTypeCountPer);
} }
result.Count3_2 = listRiskMoneCheckType; result.Count3_2 = listRiskMoneCheckType;
@ -839,8 +842,8 @@ namespace APT.SC.WebApi.Controllers.Api.BI
/// </summary> /// </summary>
/// <param name="filter"></param> /// <param name="filter"></param>
/// <returns></returns> /// <returns></returns>
[HttpPost, Route("GetBI056_1_1")] [HttpPost, Route("GetBI056_1_1_OLD")]
public JsonActionResult<ModelBI056_1_1> GetBI056_1_1([FromBody] KeywordFilter filter) public JsonActionResult<ModelBI056_1_1> GetBI056_1_1_OLD([FromBody] KeywordFilter filter)
{ {
return SafeExecute<ModelBI056_1_1>(() => return SafeExecute<ModelBI056_1_1>(() =>
{ {
@ -956,8 +959,122 @@ namespace APT.SC.WebApi.Controllers.Api.BI
return result; return result;
}); });
} }
/// <summary>
/// 显示
/// </summary>
/// <param name="filter"></param>
/// <returns></returns>
[HttpPost, Route("GetBI056_1_1")]
public JsonActionResult<ModelBI056_1_1> GetBI056_1_1([FromBody] KeywordFilter filter)
{
return SafeExecute<ModelBI056_1_1>(() =>
{
ModelBI056_1_1 result = new ModelBI056_1_1();
int year = DateTime.Now.Year;
int month = DateTime.Now.Month;
List<int> listMonth = null;
DateTime dtStart = Convert.ToDateTime(DateTime.Now.Year.ToString() + "-01-01 00:00:00");
DateTime? dtEnd = null;
if (!string.IsNullOrEmpty(filter.Keyword))
{
var season = int.Parse(filter.Keyword);
switch (season)
{
case 1:
listMonth = new List<int>() { 1, 2, 3 };
break;
case 2:
listMonth = new List<int>() { 4, 5, 6 };
break;
case 3:
listMonth = new List<int>() { 7, 8, 9 };
break;
case 4:
listMonth = new List<int>() { 10, 11, 12 };
break;
default:
break;
}
dtStart = dtStart.AddMonths(3 * (season - 1));
dtEnd = dtStart.AddMonths(3).AddSeconds(-1);
}
#region enmusLevel=> lisLevelOrder enmusMineType=>lisMineTypeOrder
var enmus = GetEntities<T_FM_USER_PRODUCTION_UNIT_SET>(e => !e.IS_DELETED, null, null);
if (enmus == null || !enmus.Any())
throw new Exception("获取生产单元信息失败!");
List<string> lisLevelOrder = new List<string>();
List<string> lisMineTypeOrder = new List<string>();
foreach (SKDepartmentTypeEnum level in Enum.GetValues(typeof(SKDepartmentTypeEnum)))
{
lisLevelOrder.Add(level.GetDescription());
}
var enmusMineType = enmus.ToList();
foreach (var item in enmusMineType)
{
lisMineTypeOrder.Add(item.NAME);
}
#endregion
List<List<int>> listResult = new List<List<int>>();
List<int> listResultPer = null;
int count = 0;
#region listSafeCheck
Expression<Func<T_SK_SECURITY_INSPECTION_RECORD_SUMMARY, bool>> expression = e => !e.IS_DELETED && e.APPLY_USER_ID.HasValue && e.CREATE_TIME.HasValue && dtStart <= e.CREATE_TIME.Value;
if (dtEnd.HasValue)
expression = expression.And(e => e.CREATE_TIME.HasValue && dtEnd.Value >= e.CREATE_TIME.Value);
BaseFilter filterSearch = new BaseFilter(filter.OrgId);
filterSearch.IgnoreDataRule = true;
//filterSearch.Include.Add("Nav_CheckTypeLevel");
filterSearch.SelectField = new List<string>() { "ID", "APPLY_USER_ID", "PRODUCTION_UNIT_ID", "CHECK_TYPE_ID", "IS_DELETED", "CHECK_TIME", "DEPARTMENT_TYPE" };
//var listSafeCheck = GetEntities(expression, null, "Nav_CheckTypeLevel");
var listSafeCheck = GetEntities(expression, filterSearch, null);
#endregion
#region listSafeCheck
#endregion
foreach (SKDepartmentTypeEnum item in Enum.GetValues(typeof(SKDepartmentTypeEnum)))
{
listResultPer = new List<int>();
foreach (var itemMonth in listMonth)
{
if (itemMonth > month && dtStart.Year == year)//同年 如果月份 大于当前月 直接跳出计算
{
break;
}
//层级 各 生产单元 几月到几月 安全检查数量
foreach (var itemMine in enmusMineType)
{
count = listSafeCheck.Where(e => e.PRODUCTION_UNIT_ID == itemMine.ID && e.DEPARTMENT_TYPE == item && e.CREATE_TIME.Value.Month == itemMonth).Count();
listResultPer.Add(count);
}
}
listResult.Add(listResultPer);
}
//数据组装
result.Count = listResult;
result.lisMineTypeOrder = lisMineTypeOrder;
result.lisLevelOrder = lisLevelOrder;
return result;
});
}
#endregion #endregion
#region 1_2 GetBI056_1_2 #region 1_2 GetBI056_1_2
@ -967,8 +1084,8 @@ namespace APT.SC.WebApi.Controllers.Api.BI
/// </summary> /// </summary>
/// <param name="filter"></param> /// <param name="filter"></param>
/// <returns></returns> /// <returns></returns>
[HttpPost, Route("GetBI056_1_2")] [HttpPost, Route("GetBI056_1_2_OLD")]
public JsonActionResult<ModelBI056_1_2> GetBI056_1_2([FromBody] KeywordFilter filter) public JsonActionResult<ModelBI056_1_2> GetBI056_1_2_OLD([FromBody] KeywordFilter filter)
{ {
return SafeExecute<ModelBI056_1_2>(() => return SafeExecute<ModelBI056_1_2>(() =>
{ {
@ -1023,8 +1140,67 @@ namespace APT.SC.WebApi.Controllers.Api.BI
result.ListCount = ListCount; result.ListCount = ListCount;
return result; return result;
}); });
} }
/// <summary>
/// 显示
/// </summary>
/// <param name="filter"></param>
/// <returns></returns>
[HttpPost, Route("GetBI056_1_2")]
public JsonActionResult<ModelBI056_1_2> GetBI056_1_2([FromBody] KeywordFilter filter)
{
return SafeExecute<ModelBI056_1_2>(() =>
{
ModelBI056_1_2 result = new ModelBI056_1_2();
DateTime dtStart = Convert.ToDateTime(DateTime.Now.Year.ToString() + "-01-01 00:00:00");
DateTime? dtEnd = null;
List<string> lisMineTypeOrder = new List<string>();
var enmusMineType = GetEntities<T_FM_USER_PRODUCTION_UNIT_SET>(e => !e.IS_DELETED, null, null).ToList();
if (enmusMineType == null || !enmusMineType.Any())
throw new Exception("获取生成单元信息失败!");
else
{
foreach (var item in enmusMineType)
{
lisMineTypeOrder.Add(item.NAME);
}
}
List<int> listMonth = new List<int>() { 1, 2, 3, 4, 5, 6, 7, 8, 10, 11, 12 };
if (dtStart.Year > DateTime.Now.Year)
{
listMonth.Clear();
}
else if (dtStart.Year == DateTime.Now.Year)
{
listMonth = listMonth.Where(e => e <= DateTime.Now.Month).OrderBy(e => e).ToList();
}
List<List<int>> ListCount = new List<List<int>>();
Expression<Func<T_SK_HIDDEN_DANGER_RECTIFY_RECORD, bool>> expression = e => !e.IS_DELETED && e.CREATE_TIME.HasValue && e.CREATE_TIME.Value >= dtStart && !e.IS_DELETED;// && (e.RiskContentState.Value == 60 || e.RiskContentState.Value == 80)&& e.DESCREPTION != null
if (dtEnd.HasValue)
expression = expression.And(e => e.CREATE_TIME.HasValue && dtEnd.Value >= e.CREATE_TIME.Value);
var listContent = GetEntities(expression, null, "Nav_Question");
List<int> ListCountPer = null;
foreach (var item in enmusMineType)
{
ListCountPer = new List<int>();
foreach (var itemMonth in listMonth)
{
ListCountPer.Add(listContent.Count(e => e.PRODUCTION_UNIT_ID == item.ID && e.CREATE_TIME.Value.Month == itemMonth));
}
ListCount.Add(ListCountPer);
}
//数据组装
result.lisMineTypeOrder = lisMineTypeOrder;
result.ListCount = ListCount;
return result;
});
}
#endregion #endregion
#region 2_1 GetBI056_2_1 #region 2_1 GetBI056_2_1
@ -1034,8 +1210,8 @@ namespace APT.SC.WebApi.Controllers.Api.BI
/// </summary> /// </summary>
/// <param name="filter"></param> /// <param name="filter"></param>
/// <returns></returns> /// <returns></returns>
[HttpPost, Route("GetBI056_2_1")] [HttpPost, Route("GetBI056_2_1_OLD")]
public JsonActionResult<ModelBI056_2_1> GetBI056_2_1([FromBody] KeywordFilter filter) public JsonActionResult<ModelBI056_2_1> GetBI056_2_1_OLD([FromBody] KeywordFilter filter)
{ {
return SafeExecute<ModelBI056_2_1>(() => return SafeExecute<ModelBI056_2_1>(() =>
{ {
@ -1119,8 +1295,91 @@ namespace APT.SC.WebApi.Controllers.Api.BI
return result; return result;
}); });
} }
[HttpPost, Route("GetBI056_2_1")]
public JsonActionResult<ModelBI056_2_1> GetBI056_2_1([FromBody] KeywordFilter filter)
{
return SafeExecute<ModelBI056_2_1>(() =>
{
ModelBI056_2_1 result = new ModelBI056_2_1();
DateTime dtStart = Convert.ToDateTime(DateTime.Now.Year.ToString() + "-01-01 00:00:00");
DateTime? dtEnd = null;
List<string> lisMineTypeOrder = new List<string>();
var enmusMineType = GetEntities<T_FM_USER_PRODUCTION_UNIT_SET>(e => !e.IS_DELETED, null, null).ToList();
if (enmusMineType == null || !enmusMineType.Any())
throw new Exception("获取生成单元信息失败!");
else
{
foreach (var item in enmusMineType)
{
lisMineTypeOrder.Add(item.NAME);
}
}
Expression<Func<T_SK_HIDDEN_DANGER_RECTIFY_RECORD, bool>> expression2_2 = e => !e.IS_DELETED && e.CREATE_TIME.HasValue && e.CREATE_TIME.Value >= dtStart && !e.IS_DELETED;//&& e.DESCREPTION != null
if (dtEnd.HasValue)
expression2_2 = expression2_2.And(e => e.CREATE_TIME.HasValue && dtEnd.Value >= e.CREATE_TIME.Value);
var listContent = GetEntities(expression2_2, null, "Nav_Question");
List<int> listMonth = new List<int>() { 1, 2, 3, 4, 5, 6, 7, 8, 10, 11, 12 };
if (dtStart.Year > DateTime.Now.Year)
{
listMonth.Clear();
}
else if (dtStart.Year == DateTime.Now.Year)
{
listMonth = listMonth.Where(e => e <= DateTime.Now.Month).OrderBy(e => e).ToList();
}
List<int> listFinishPer2_1 = null;
List<int> listNotFinishPer2_1 = null;
List<decimal> listFinishPer2_1Percent = null;
List<List<int>> listFinish2_1 = new List<List<int>>();
List<List<int>> listNotFinish2_1 = new List<List<int>>();
List<List<decimal>> listFinish2_1Percent = new List<List<decimal>>();
foreach (var itemEnums in enmusMineType)
{
listFinishPer2_1 = new List<int>();
listNotFinishPer2_1 = new List<int>();
listFinishPer2_1Percent = new List<decimal>();
foreach (var item in listMonth)
{
listFinishPer2_1.Add(listContent.Count(e => e.PRODUCTION_UNIT_ID.HasValue && e.PRODUCTION_UNIT_ID == itemEnums.ID && e.CREATE_TIME.HasValue && e.CREATE_TIME.Value.Month == item));
listNotFinishPer2_1.Add(listContent.Count(e => e.PRODUCTION_UNIT_ID.HasValue && e.PRODUCTION_UNIT_ID == itemEnums.ID && e.CREATE_TIME.HasValue && e.CREATE_TIME.Value.Month == item));
}
for (int i = 0; i < listMonth.Count; i++)
{
if (listNotFinishPer2_1[i] == 0)
{
listFinishPer2_1Percent.Add(100);
}
else if (listFinishPer2_1[i] == 0)
{
listFinishPer2_1Percent.Add(0);
}
else
{
listFinishPer2_1Percent.Add((decimal)Math.Round((listFinishPer2_1[i] * 100.0 / (listNotFinishPer2_1[i] + listFinishPer2_1[i])), 2));
}
}
listFinish2_1.Add(listFinishPer2_1);
listNotFinish2_1.Add(listNotFinishPer2_1);
listFinish2_1Percent.Add(listFinishPer2_1Percent);
}
result.lisMineTypeOrder = lisMineTypeOrder;
result.listFinish2_1 = listFinish2_1;
result.listNotFinish2_1 = listNotFinish2_1;
result.listFinish2_1Percent = listFinish2_1Percent;
return result;
});
}
#endregion #endregion
#region 2_2 GetBI056_2_2 #region 2_2 GetBI056_2_2
@ -1132,8 +1391,8 @@ namespace APT.SC.WebApi.Controllers.Api.BI
/// </summary> /// </summary>
/// <param name="filter"></param> /// <param name="filter"></param>
/// <returns></returns> /// <returns></returns>
[HttpPost, Route("GetBI056_2_2")] [HttpPost, Route("GetBI056_2_2_OLD")]
public JsonActionResult<ModelBI056_2_2> GetBI056_2_2([FromBody] KeywordFilter filter) public JsonActionResult<ModelBI056_2_2> GetBI056_2_2_OLD([FromBody] KeywordFilter filter)
{ {
return SafeExecute<ModelBI056_2_2>(() => return SafeExecute<ModelBI056_2_2>(() =>
{ {
@ -1195,8 +1454,72 @@ namespace APT.SC.WebApi.Controllers.Api.BI
result.ListDescreption = ListDescreption; result.ListDescreption = ListDescreption;
return result; return result;
}); });
} }
/// <summary>
/// 显示
/// </summary>
/// <param name="filter"></param>
/// <returns></returns>
[HttpPost, Route("GetBI056_2_2")]
public JsonActionResult<ModelBI056_2_2> GetBI056_2_2([FromBody] KeywordFilter filter)
{
return SafeExecute<ModelBI056_2_2>(() =>
{
ModelBI056_2_2 result = new ModelBI056_2_2();
DateTime dtStart = Convert.ToDateTime(DateTime.Now.Year.ToString() + "-01-01 00:00:00");
DateTime? dtEnd = null;
List<string> lisMineTypeOrder = new List<string>();
var enmusMineType = GetEntities<T_FM_USER_PRODUCTION_UNIT_SET>(e => !e.IS_DELETED, null, null).ToList();
if (enmusMineType == null || !enmusMineType.Any())
throw new Exception("获取生成单元信息失败!");
else
{
foreach (var item in enmusMineType)
{
lisMineTypeOrder.Add(item.NAME);
}
}
List<List<int>> ListCount = new List<List<int>>();
List<List<string>> ListDescreption = new List<List<string>>();
Expression<Func<T_SK_HIDDEN_DANGER_RECTIFY_RECORD, bool>> expression2_2 = e => !e.IS_DELETED && e.CREATE_TIME.HasValue && e.CREATE_TIME.Value >= dtStart;//&& e.RiskContentState.HasValue && (e.RiskContentState.Value == 60 || e.RiskContentState.Value == 80) 名称不能为null
if (dtEnd.HasValue)
expression2_2 = expression2_2.And(e => e.CREATE_TIME.HasValue && dtEnd.Value >= e.CREATE_TIME.Value);
var listContent = GetEntities(expression2_2, null, "Nav_Question");
List<int> ListCountPer = null;
List<string> ListDescreptionPer = null;
foreach (var item in enmusMineType)
{
var query = listContent.Where(t=>t.PRODUCTION_UNIT_ID == item.ID && t.Nav_Question!=null).GroupBy(e => e.Nav_Question.DESCREPTION).Select(e => new
{
DESCREPTION = e.Key,
Count = e.Count()
}).OrderByDescending(e => e.Count).Take(6);
ListCountPer = new List<int>();
ListDescreptionPer = new List<string>();
if (query != null && query.Any())
{
foreach (var itemVal in query)
{
ListCountPer.Add(itemVal.Count);
ListDescreptionPer.Add(itemVal.DESCREPTION);
}
}
ListCount.Add(ListCountPer);
ListDescreption.Add(ListDescreptionPer);
}
//数据组装
result.lisMineTypeOrder = lisMineTypeOrder;
result.ListCount = ListCount;
result.ListDescreption = ListDescreption;
return result;
});
}
#endregion #endregion
#region 3_1 GetBI056_3_1 #region 3_1 GetBI056_3_1
@ -1206,8 +1529,8 @@ namespace APT.SC.WebApi.Controllers.Api.BI
/// </summary> /// </summary>
/// <param name="filter"></param> /// <param name="filter"></param>
/// <returns></returns> /// <returns></returns>
[HttpPost, Route("GetBI056_3_1")] [HttpPost, Route("GetBI056_3_1_OLD")]
public JsonActionResult<ModelBI056_3_1> GetBI056_3_1([FromBody] KeywordFilter filter) public JsonActionResult<ModelBI056_3_1> GetBI056_3_1_OLD([FromBody] KeywordFilter filter)
{ {
return SafeExecute<ModelBI056_3_1>(() => return SafeExecute<ModelBI056_3_1>(() =>
{ {
@ -1334,8 +1657,140 @@ namespace APT.SC.WebApi.Controllers.Api.BI
return result; return result;
}); });
} }
/// <summary>
/// 各生产单元 各月 各检查类型数量
/// </summary>
/// <param name="filter"></param>
/// <returns></returns>
[HttpPost, Route("GetBI056_3_1")]
public JsonActionResult<ModelBI056_3_1> GetBI056_3_1([FromBody] KeywordFilter filter)
{
return SafeExecute<ModelBI056_3_1>(() =>
{
ModelBI056_3_1 result = new ModelBI056_3_1();
DateTime dtStart = Convert.ToDateTime(DateTime.Now.Year.ToString() + "-01-01 00:00:00");
DateTime? dtEnd = null;
var enmusMineType = GetEntities<T_FM_USER_PRODUCTION_UNIT_SET>(e => !e.IS_DELETED, null, null).ToList();
List<string> lisMineTypeOrder = new List<string>();
if (enmusMineType == null || !enmusMineType.Any())
throw new Exception("获取生成单元信息失败!");
else
{
foreach (var item in enmusMineType)
{
lisMineTypeOrder.Add(item.NAME);
}
}
var listCheckType = GetEntities<T_SK_CHECK_TYPE>(e => !e.IS_DELETED, null, "Nav_ProductionUnit").OrderBy(e => e.PRODUCTION_UNIT_ID).ToList();
Dictionary<Guid, List<Guid>> dicParent = new Dictionary<Guid, List<Guid>>();
List<Guid> listSum = new List<Guid>();
Guid guidParent = Guid.Empty;
//foreach (var item in listCheckType)
//{
// if (item.PARENT_ID.HasValue)
// {
// if (guidParent != Guid.Empty)
// {
// guidParent = item.PARENT_ID.Value;
// }
// listSum.Add(item.ID);
// }
//}
listSum.Add(guidParent);//有些人直接定义 综合检查
dicParent.Add(guidParent, listSum);
List<List<T_SK_CHECK_TYPE>> listCheckTypes = new List<List<T_SK_CHECK_TYPE>>();
foreach (var item in enmusMineType)
{
listCheckTypes.Add(listCheckType.Where(e => e.PRODUCTION_UNIT_ID == item.ID).ToList());
}
List<List<string>> lisMineCheckTypeOrder = new List<List<string>>();
List<string> lisMineCheckTypeOrderPer = null;
foreach (var item in listCheckTypes)
{
lisMineCheckTypeOrderPer = new List<string>();
foreach (var itemCheckType in item)
{
lisMineCheckTypeOrderPer.Add(itemCheckType.NAME);
}
lisMineCheckTypeOrder.Add(lisMineCheckTypeOrderPer);
}
#region listSafeCheck
Expression<Func<T_SK_SECURITY_INSPECTION_RECORD_SUMMARY, bool>> expression = e => !e.IS_DELETED && e.APPLY_USER_ID.HasValue && e.CREATE_TIME.HasValue && dtStart <= e.CREATE_TIME.Value;
if (dtEnd.HasValue)
expression = expression.And(e => e.CREATE_TIME.HasValue && dtEnd.Value >= e.CREATE_TIME.Value);
BaseFilter filterSearch = new BaseFilter(filter.OrgId);
filterSearch.IgnoreDataRule = true;
filterSearch.SelectField = new List<string>() { "ID", "APPLY_USER_ID", "PRODUCTION_UNIT_ID", "CHECK_TYPE_ID", "IS_DELETED", "CHECK_TIME", "DEPARTMENT_TYPE" };
//var listSafeCheck = GetEntities(expression, null, "Nav_CheckTypeLevel");
var listSafeCheck = GetEntities(expression, filterSearch, null);
#endregion
#region 3_1
List<List<List<int>>> listCheckTypeMonthCount = new List<List<List<int>>>();
List<List<int>> listCheckTypeCount = null;
List<int> listCheckTypeCountPer = null;
List<int> listMonth = new List<int>() { 1, 2, 3, 4, 5, 6, 7, 8, 10, 11, 12 };
if (dtStart.Year > DateTime.Now.Year)
{
listMonth.Clear();
}
else if (dtStart.Year == DateTime.Now.Year)
{
listMonth = listMonth.Where(e => e <= DateTime.Now.Month).OrderBy(e => e).ToList();
}
var enmusMineTypeCount = enmusMineType.Count();
for (int i = 0; i < enmusMineTypeCount; i++)
{
listCheckTypeCount = new List<List<int>>();
int MineCheckTypeCount = listCheckTypes[i].Count;
for (int j = 0; j < MineCheckTypeCount; j++)
{
listCheckTypeCountPer = new List<int>();
foreach (int itemMonth in listMonth)
{
//检查类型
if (listCheckTypes[i][j].ID == guidParent)
{
int count = listSafeCheck.Where(e => e.PRODUCTION_UNIT_ID == enmusMineType[i].ID && e.CREATE_TIME.Value.Month == itemMonth && listSum.Contains(e.CHECK_TYPE_ID.Value)).Count();
listCheckTypeCountPer.Add(count);
}
else
{
int count = listSafeCheck.Where(e => e.PRODUCTION_UNIT_ID == enmusMineType[i].ID && e.CREATE_TIME.Value.Month == itemMonth && e.CHECK_TYPE_ID == listCheckTypes[i][j].ID).Count();
listCheckTypeCountPer.Add(count);
}
}
listCheckTypeCount.Add(listCheckTypeCountPer);
}
listCheckTypeMonthCount.Add(listCheckTypeCount);
}
//数据组装
result.lisMineTypeOrder = lisMineTypeOrder;
result.lisMineCheckTypeOrder = lisMineCheckTypeOrder;
result.Count3_1 = listCheckTypeMonthCount;
#endregion
return result;
});
}
#endregion #endregion
#region 3_2 GetBI056_3_2 #region 3_2 GetBI056_3_2
@ -1345,8 +1800,8 @@ namespace APT.SC.WebApi.Controllers.Api.BI
/// </summary> /// </summary>
/// <param name="filter"></param> /// <param name="filter"></param>
/// <returns></returns> /// <returns></returns>
[HttpPost, Route("GetBI056_3_2")] [HttpPost, Route("GetBI056_3_2_OLD")]
public JsonActionResult<ModelBI056_3_2> GetBI056_3_2([FromBody] KeywordFilter filter) public JsonActionResult<ModelBI056_3_2> GetBI056_3_2_OLD([FromBody] KeywordFilter filter)
{ {
return SafeExecute<ModelBI056_3_2>(() => return SafeExecute<ModelBI056_3_2>(() =>
{ {
@ -1462,8 +1917,130 @@ namespace APT.SC.WebApi.Controllers.Api.BI
result.Count3_1 = listRisk; result.Count3_1 = listRisk;
return result; return result;
}); });
} }
/// <summary>
/// 各生产单元 各月 各检查类型数量
/// </summary>
/// <param name="filter"></param>
/// <returns></returns>
[HttpPost, Route("GetBI056_3_2")]
public JsonActionResult<ModelBI056_3_2> GetBI056_3_2([FromBody] KeywordFilter filter)
{
return SafeExecute<ModelBI056_3_2>(() =>
{
ModelBI056_3_2 result = new ModelBI056_3_2();
DateTime dtStart = Convert.ToDateTime(DateTime.Now.Year.ToString() + "-01-01 00:00:00");
DateTime? dtEnd = null;
List<int> listMonth = new List<int>() { 1, 2, 3, 4, 5, 6, 7, 8, 10, 11, 12 };
if (dtStart.Year > DateTime.Now.Year)
{
listMonth.Clear();
}
else if (dtStart.Year == DateTime.Now.Year)
{
listMonth = listMonth.Where(e => e <= DateTime.Now.Month).OrderBy(e => e).ToList();
}
var enmusMineType = GetEntities<T_FM_USER_PRODUCTION_UNIT_SET>(e => !e.IS_DELETED, null, null).ToList();
List<string> lisMineTypeOrder = new List<string>();
if (enmusMineType == null || !enmusMineType.Any())
throw new Exception("获取生成单元信息失败!");
else
{
foreach (var item in enmusMineType)
{
lisMineTypeOrder.Add(item.NAME);
}
}
var listCheckType = GetEntities<T_SK_CHECK_TYPE>(e => !e.IS_DELETED, null, "Nav_ProductionUnit").OrderBy(e => e.PRODUCTION_UNIT_ID);
List<string> listCheckTypeName = new List<string>();
List<Guid> listCheckTypeID = new List<Guid>();
Dictionary<Guid, List<Guid>> dicParent = new Dictionary<Guid, List<Guid>>();
List<Guid> listSum = new List<Guid>();
Guid guidParent = Guid.Empty;
foreach (var item in listCheckType)
{
//if (item.PARENT_ID.HasValue)
//{
// if (!listCheckTypeName.Contains(item.NAME))
// {
// listCheckTypeName.Add(item.NAME);
// listCheckTypeID.Add(item.ID);
// guidParent = item.PARENT_ID.Value;
// }
// listSum.Add(item.ID);
//}
//else
{
listCheckTypeName.Add(item.NAME);
listCheckTypeID.Add(item.ID);
}
}
listSum.Add(guidParent);//有些人直接定义 综合检查
dicParent.Add(guidParent, listSum);
List<List<T_SK_CHECK_TYPE>> listCheckTypes = new List<List<T_SK_CHECK_TYPE>>();
foreach (var item in enmusMineType)
{
listCheckTypes.Add(listCheckType.Where(e =>e.PRODUCTION_UNIT_ID == item.ID).ToList());
}
Expression<Func<T_SK_HIDDEN_DANGER_RECTIFY_RECORD, bool>> expression = e => !e.IS_DELETED && e.CREATE_TIME.HasValue && e.CREATE_TIME.Value >= dtStart && !e.IS_DELETED;//&& e.DESCREPTION != null
if (dtEnd.HasValue)
expression = expression.And(e => e.CREATE_TIME.HasValue && dtEnd.Value >= e.CREATE_TIME.Value);
var listContent = GetEntities(expression, null, "Nav_Question").ToList();
List<List<string>> lisMineCheckTypeOrder = new List<List<string>>();
List<string> lisMineCheckTypeOrderPer = null;
foreach (var item in listCheckTypes)
{
lisMineCheckTypeOrderPer = new List<string>();
foreach (var itemCheckType in item)
{
lisMineCheckTypeOrderPer.Add(itemCheckType.NAME);
}
lisMineCheckTypeOrder.Add(lisMineCheckTypeOrderPer);
}
List<List<List<int>>> listRisk = new List<List<List<int>>>();
List<List<int>> listRiskMoneCheckType = null;
List<int> listCheckTypeCountPer = null;
int MintTypeIndex = -1;
foreach (var item in enmusMineType)
{
MintTypeIndex++;
listRiskMoneCheckType = new List<List<int>>();
foreach (var itemCheckType in listCheckTypes[MintTypeIndex])
{
listCheckTypeCountPer = new List<int>();
foreach (var itemMonth in listMonth)
{
//检查类型
if (itemCheckType.ID == guidParent)
{
int count = listContent.Count(e => e.CHECK_TYPE_ID.HasValue && listSum.Contains(e.CHECK_TYPE_ID.Value) && e.CREATE_TIME.HasValue && e.CREATE_TIME.Value.Month == itemMonth && e.PRODUCTION_UNIT_ID == item.ID);
listCheckTypeCountPer.Add(count);
}
else
{
int count = listContent.Count(e => e.CHECK_TYPE_ID.HasValue && e.CHECK_TYPE_ID == itemCheckType.ID && e.CREATE_TIME.HasValue && e.CREATE_TIME.Value.Month == itemMonth && e.PRODUCTION_UNIT_ID == item.ID);
listCheckTypeCountPer.Add(count);
}
}
listRiskMoneCheckType.Add(listCheckTypeCountPer);
}
listRisk.Add(listRiskMoneCheckType);
}
result.lisMineTypeOrder = lisMineTypeOrder;
result.lisMineCheckType = lisMineCheckTypeOrder;
result.Count3_1 = listRisk;
return result;
});
}
#endregion #endregion
#endregion #endregion