后台绩效报表
This commit is contained in:
parent
5b1e349f4a
commit
7b2e905d50
139860
APT.Data.Migrations/Migrations/20260729040446_hmr2026072901.Designer.cs
generated
Normal file
139860
APT.Data.Migrations/Migrations/20260729040446_hmr2026072901.Designer.cs
generated
Normal file
File diff suppressed because it is too large
Load Diff
@ -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");
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -21081,6 +21081,14 @@ namespace APT.Data.Migrations.Migrations
|
||||
b.Property<Guid?>("FORM_ID")
|
||||
.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")
|
||||
.HasColumnType("bit");
|
||||
|
||||
@ -21094,6 +21102,9 @@ namespace APT.Data.Migrations.Migrations
|
||||
.IsRequired()
|
||||
.HasColumnType("uniqueidentifier");
|
||||
|
||||
b.Property<int>("OVERTIME")
|
||||
.HasColumnType("int");
|
||||
|
||||
b.Property<DateTime>("STARTTIME")
|
||||
.HasColumnType("datetime2");
|
||||
|
||||
|
||||
@ -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_CHARGE_USER).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
|
||||
|
||||
@ -771,7 +771,8 @@ namespace APT.SC.WebApi.Controllers.Api.BI
|
||||
var hazardFilter = new BaseFilter(filter.GetOrgId());
|
||||
riskPerformanceData riskPerformanceData = new riskPerformanceData();
|
||||
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 distinctArea = GetEntities<T_SK_RISK_AREA>(t => t.IS_DELETED == false, new BaseFilter(filter.GetOrgId()));
|
||||
var distinctTeamDepartment = departments.Where(t => t.DEPARTMENT_TYPE == 20);
|
||||
@ -916,13 +917,15 @@ namespace APT.SC.WebApi.Controllers.Api.BI
|
||||
|
||||
#region 8
|
||||
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 templevel1 = 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.较大风险);
|
||||
var templevel3 = 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.低风险);
|
||||
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.较大风险).ToList();
|
||||
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.低风险).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 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
|
||||
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 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 libIds4 = libMeasures.Where(t => t.DEPARTMENT_TYPE.GetInt() == levelArr[3]).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 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 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 templevel3 = allrisk.Where(t => libIds3.Contains(t.ID) && t.EVALUATE_LEVEL == SKEvaluateLevelEnum.一般风险);
|
||||
var templevel4 = allrisk.Where(t => libIds4.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 => libIds1.Contains(t.ID) && t.EVALUATE_LEVEL == SKEvaluateLevelEnum.一般风险);
|
||||
var templevel4 = allrisk.Where(t => libIds1.Contains(t.ID) && t.EVALUATE_LEVEL == SKEvaluateLevelEnum.低风险);
|
||||
|
||||
PerformanceModel modelCJ = new PerformanceModel();
|
||||
modelCJ.NAME = new List<string> { "露天矿", "选矿厂", "地下矿", "全公司" };
|
||||
var minTypeArr = productionUnits.Where(t => modelCJ.NAME.Contains(t.NAME)).Select(m => m.ID).ToList();
|
||||
modelCJ.NAME = new List<string> { "露天矿", "选矿厂", "地下矿", "尾矿库" };
|
||||
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.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]) };
|
||||
@ -960,7 +963,7 @@ namespace APT.SC.WebApi.Controllers.Api.BI
|
||||
#endregion
|
||||
#region 10
|
||||
List<PerformanceModel> SubZRDY = new List<PerformanceModel>();
|
||||
foreach (var id in productIds)
|
||||
foreach (var id in productUnitIds)
|
||||
{
|
||||
PerformanceModel modelSubZRDY = new PerformanceModel();
|
||||
foreach (var department in distinctDepartment)
|
||||
@ -988,7 +991,7 @@ namespace APT.SC.WebApi.Controllers.Api.BI
|
||||
#endregion
|
||||
#region 11
|
||||
List<PerformanceModel> SubQY = new List<PerformanceModel>();
|
||||
foreach (var id in productIds)
|
||||
foreach (var id in productUnitIds)
|
||||
{
|
||||
PerformanceModel modelSubQY = new PerformanceModel();
|
||||
foreach (var area in distinctArea)
|
||||
@ -1015,7 +1018,7 @@ namespace APT.SC.WebApi.Controllers.Api.BI
|
||||
#endregion
|
||||
#region 12
|
||||
List<PerformanceModel> SubFXLB = new List<PerformanceModel>();
|
||||
foreach (var id in productIds)
|
||||
foreach (var id in productUnitIds)
|
||||
{
|
||||
PerformanceModel modelSubFXLB = new PerformanceModel();
|
||||
foreach (var type in distinctType)
|
||||
|
||||
@ -387,7 +387,7 @@ namespace APT.SC.WebApi.Controllers.Api.BI
|
||||
{
|
||||
ModelBI056Main result = new ModelBI056Main();
|
||||
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
|
||||
|
||||
@ -411,10 +411,10 @@ namespace APT.SC.WebApi.Controllers.Api.BI
|
||||
|
||||
#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)
|
||||
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);
|
||||
filterSearch.IgnoreDataRule = true;
|
||||
@ -471,11 +471,9 @@ namespace APT.SC.WebApi.Controllers.Api.BI
|
||||
listCheckTypeID.Add(item.ID);
|
||||
}
|
||||
listSum.Add(guidParent);//有些人直接定义 综合检查
|
||||
|
||||
foreach (var item in enmusMineType)
|
||||
{
|
||||
listCheckTypeCountPer = new List<int>();
|
||||
|
||||
foreach (var itemCheckType in listCheckTypeID)
|
||||
{
|
||||
int count = listSafeCheck.Where(e => e.PRODUCTION_UNIT_ID == item.ID && e.CHECK_TYPE_ID == itemCheckType).Count();
|
||||
@ -494,8 +492,9 @@ 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
|
||||
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");
|
||||
BaseFilter filterSearchC = new BaseFilter(filter.OrgId);
|
||||
filterSearchC.IgnoreDataRule = true;
|
||||
var listContent = GetEntities(expression2_2, filterSearchC, "Nav_Question");
|
||||
|
||||
#region 1_2 各生产单元 隐患数
|
||||
|
||||
@ -525,11 +524,15 @@ namespace APT.SC.WebApi.Controllers.Api.BI
|
||||
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());
|
||||
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++)
|
||||
{
|
||||
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);
|
||||
}
|
||||
@ -839,8 +842,8 @@ namespace APT.SC.WebApi.Controllers.Api.BI
|
||||
/// </summary>
|
||||
/// <param name="filter"></param>
|
||||
/// <returns></returns>
|
||||
[HttpPost, Route("GetBI056_1_1")]
|
||||
public JsonActionResult<ModelBI056_1_1> GetBI056_1_1([FromBody] KeywordFilter filter)
|
||||
[HttpPost, Route("GetBI056_1_1_OLD")]
|
||||
public JsonActionResult<ModelBI056_1_1> GetBI056_1_1_OLD([FromBody] KeywordFilter filter)
|
||||
{
|
||||
return SafeExecute<ModelBI056_1_1>(() =>
|
||||
{
|
||||
@ -957,7 +960,121 @@ namespace APT.SC.WebApi.Controllers.Api.BI
|
||||
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
|
||||
|
||||
#region 1_2 GetBI056_1_2
|
||||
@ -967,8 +1084,8 @@ namespace APT.SC.WebApi.Controllers.Api.BI
|
||||
/// </summary>
|
||||
/// <param name="filter"></param>
|
||||
/// <returns></returns>
|
||||
[HttpPost, Route("GetBI056_1_2")]
|
||||
public JsonActionResult<ModelBI056_1_2> GetBI056_1_2([FromBody] KeywordFilter filter)
|
||||
[HttpPost, Route("GetBI056_1_2_OLD")]
|
||||
public JsonActionResult<ModelBI056_1_2> GetBI056_1_2_OLD([FromBody] KeywordFilter filter)
|
||||
{
|
||||
return SafeExecute<ModelBI056_1_2>(() =>
|
||||
{
|
||||
@ -1024,7 +1141,66 @@ namespace APT.SC.WebApi.Controllers.Api.BI
|
||||
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
|
||||
|
||||
#region 2_1 GetBI056_2_1
|
||||
@ -1034,8 +1210,8 @@ namespace APT.SC.WebApi.Controllers.Api.BI
|
||||
/// </summary>
|
||||
/// <param name="filter"></param>
|
||||
/// <returns></returns>
|
||||
[HttpPost, Route("GetBI056_2_1")]
|
||||
public JsonActionResult<ModelBI056_2_1> GetBI056_2_1([FromBody] KeywordFilter filter)
|
||||
[HttpPost, Route("GetBI056_2_1_OLD")]
|
||||
public JsonActionResult<ModelBI056_2_1> GetBI056_2_1_OLD([FromBody] KeywordFilter filter)
|
||||
{
|
||||
return SafeExecute<ModelBI056_2_1>(() =>
|
||||
{
|
||||
@ -1120,7 +1296,90 @@ namespace APT.SC.WebApi.Controllers.Api.BI
|
||||
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
|
||||
|
||||
#region 2_2 GetBI056_2_2
|
||||
@ -1132,8 +1391,8 @@ namespace APT.SC.WebApi.Controllers.Api.BI
|
||||
/// </summary>
|
||||
/// <param name="filter"></param>
|
||||
/// <returns></returns>
|
||||
[HttpPost, Route("GetBI056_2_2")]
|
||||
public JsonActionResult<ModelBI056_2_2> GetBI056_2_2([FromBody] KeywordFilter filter)
|
||||
[HttpPost, Route("GetBI056_2_2_OLD")]
|
||||
public JsonActionResult<ModelBI056_2_2> GetBI056_2_2_OLD([FromBody] KeywordFilter filter)
|
||||
{
|
||||
return SafeExecute<ModelBI056_2_2>(() =>
|
||||
{
|
||||
@ -1196,7 +1455,71 @@ namespace APT.SC.WebApi.Controllers.Api.BI
|
||||
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
|
||||
|
||||
#region 3_1 GetBI056_3_1
|
||||
@ -1206,8 +1529,8 @@ namespace APT.SC.WebApi.Controllers.Api.BI
|
||||
/// </summary>
|
||||
/// <param name="filter"></param>
|
||||
/// <returns></returns>
|
||||
[HttpPost, Route("GetBI056_3_1")]
|
||||
public JsonActionResult<ModelBI056_3_1> GetBI056_3_1([FromBody] KeywordFilter filter)
|
||||
[HttpPost, Route("GetBI056_3_1_OLD")]
|
||||
public JsonActionResult<ModelBI056_3_1> GetBI056_3_1_OLD([FromBody] KeywordFilter filter)
|
||||
{
|
||||
return SafeExecute<ModelBI056_3_1>(() =>
|
||||
{
|
||||
@ -1335,7 +1658,139 @@ namespace APT.SC.WebApi.Controllers.Api.BI
|
||||
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
|
||||
|
||||
#region 3_2 GetBI056_3_2
|
||||
@ -1345,8 +1800,8 @@ namespace APT.SC.WebApi.Controllers.Api.BI
|
||||
/// </summary>
|
||||
/// <param name="filter"></param>
|
||||
/// <returns></returns>
|
||||
[HttpPost, Route("GetBI056_3_2")]
|
||||
public JsonActionResult<ModelBI056_3_2> GetBI056_3_2([FromBody] KeywordFilter filter)
|
||||
[HttpPost, Route("GetBI056_3_2_OLD")]
|
||||
public JsonActionResult<ModelBI056_3_2> GetBI056_3_2_OLD([FromBody] KeywordFilter filter)
|
||||
{
|
||||
return SafeExecute<ModelBI056_3_2>(() =>
|
||||
{
|
||||
@ -1463,7 +1918,129 @@ namespace APT.SC.WebApi.Controllers.Api.BI
|
||||
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
|
||||
|
||||
Loading…
Reference in New Issue
Block a user