d_sms_service/APT.MicroApi/APT.SC.WebApi/Controllers/Api/BIController/BISafeController.cs
2024-10-28 13:45:58 +08:00

1338 lines
59 KiB
C#
Raw Permalink Blame History

This file contains ambiguous Unicode characters

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

using APT.BaseData.Domain.Entities.FM;
using APT.Infrastructure.Core;
using Microsoft.AspNetCore.Mvc;
using APT.Infrastructure.Api;
using System.Collections.Generic;
using System.Linq.Expressions;
using System;
using System.Linq;
using APT.BaseData.Domain.ApiModel;
using Ubiety.Dns.Core;
using System.Security.AccessControl;
using APT.MS.Domain.Entities.FO;
using APT.BaseData.Domain.Entities;
using APT.MS.Domain.Enums;
using APT.MS.Domain.Entities.BI;
using static APT.MS.Domain.Enums.BI.BIEnums;
using APT.Utility;
using APT.MS.Domain.Entities.BS;
namespace APT.SC.WebApi.Controllers.Api.BI
{
/// <summary>
/// 年度监测汇总
/// </summary>
[Route("api/BI/BISafe")]
public class BISafeController : AuthorizeApiController<T_BI_BSSAFECHECK>
{
//IBIBSSafeCheckService BIBSSafeCheckService { get; set; }
//public BISafeController(IBIBSSafeCheckService bIBSSafeCheckService)
//{
// BIBSSafeCheckService = bIBSSafeCheckService;
//}
/// <summary>
/// 显示
/// </summary>
/// <param name="filter"></param>
/// <returns></returns>
[HttpPost, Route("GetShow")]
public JsonActionResult<BISafe> GetShow([FromBody] KeywordFilter filter)
{
return SafeExecute<BISafe>(() =>
{
BISafe result = new BISafe();
string Parameter1 = string.Empty;
string Parameter2 = string.Empty;
if (filter.FilterGroup.Rules.Count == 2)
{
foreach (var item in filter.FilterGroup.Rules)
{
if (item.Field == "Parameter1")
{
Parameter1 = item.Value.ToString();
}
else if (item.Field == "Parameter2")
{
if (item.Value == null)
{
throw new Exception("参数2为空");
}
else
{
Parameter2 = item.Value.ToString();
}
}
}
}
if (!string.IsNullOrEmpty(Parameter1) || !string.IsNullOrEmpty(Parameter2))
{
string Code = "BI002_BSSAFECHECK"; //编码
FilterTimeType? timeType = null;
BSMineTypeEditEnum? mineType = null;
try
{
timeType = (FilterTimeType)(int.Parse(Parameter1));
}
catch { }
try
{
mineType = (BSMineTypeEditEnum)(int.Parse(Parameter2));
}
catch { }
if (timeType != null && mineType != null)
{
var listSafeCheck = GetEntities<T_BI_BSSAFECHECK>(e => e.ORG_ID == filter.OrgId.Value && e.TimeType == timeType.Value && e.MineType == mineType.Value, null).OrderBy(e => e.TEAMNAME).ToList();
var listCheckType = GetEntities<T_BI_BSCHECKTYPE>(e => e.ORG_ID == filter.OrgId.Value && e.TimeType == timeType.Value && e.MineType == mineType.Value, null).OrderBy(e => e.name).ToList();
var summary = GetEntity<T_BI_SUMMARY>(e => e.ORG_ID == filter.OrgId.Value && e.TimeType == timeType.Value && e.MineType == mineType.Value && e.CODE == Code);
result.listSafeCheck = listSafeCheck;
result.listCheckType = listCheckType;
result.summary = summary;
}
}
return result;
});
}
#region
#region
/// <summary>
/// 显示
/// </summary>
/// <param name="filter"></param>
/// <returns></returns>
[HttpPost, Route("GetBI056Main")]
public JsonActionResult<ModelBI056Main> GetBI056Main([FromBody] KeywordFilter filter)
{
return SafeExecute<ModelBI056Main>(() =>
{
ModelBI056Main result = new ModelBI056Main();
DateTime dtStart = Convert.ToDateTime(DateTime.Now.Year.ToString() + "-01-01 00:00:00");
DateTime? dtEnd = null;
#region enmusLevel=> lisLevelOrder enmusMineType=>lisMineTypeOrder
//var enmus = GetEntities<T_FM_ENUMS>(e => !e.IS_DELETED, null, "ID", "VALUE", "NUM", "CODE", "NAME");
var enmus = GetEntities<T_FM_ENUMS>(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>();
var enmusLevel = enmus.Where(e => e.CODE == "HMLevleEnum").OrderBy(e => e.NUM).ToList();
var enmusMineType = enmus.Where(e => e.CODE == "BSMineTypeEnum").OrderBy(e => e.NUM).ToList();
if (enmusLevel == null || !enmusLevel.Any())
throw new Exception("获取组织层级枚举信息失败!");
else
{
foreach (var item in enmusLevel)
{
lisLevelOrder.Add(item.NAME);
}
}
if (enmusMineType == null || !enmusMineType.Any())
throw new Exception("获取生成单元枚举信息失败!");
else
{
foreach (var item in enmusMineType)
{
lisMineTypeOrder.Add(item.NAME);
}
}
#endregion
#region listSafeCheck
Expression<Func<T_BS_SAFE_CHECK, bool>> expression = e => !e.IS_DELETED && e.CHECKOBJECT.HasValue && e.CHECK_TYPE_LEVEL_ID.HasValue && e.CHECKTIME.HasValue && dtStart <= e.CHECKTIME.Value;
if (dtEnd.HasValue)
expression = expression.And(e => e.CHECKTIME.HasValue && dtEnd.Value >= e.CHECKTIME.Value);
BaseFilter filterSearch = new BaseFilter(filter.OrgId);
filterSearch.IgnoreDataRule = true;
filterSearch.Include.Add("Nav_CheckTypeLevel");
filterSearch.SelectField = new List<string>() { "ID", "CHECKOBJECT", "CHECK_TYPE_ID", "IS_DELETED", "CHECKTIME", "Nav_CheckTypeLevel.CheckLevel_ENUMS_ID" };
//var listSafeCheck = GetEntities(expression, null, "Nav_CheckTypeLevel");
var listSafeCheck = GetEntities(expression, filterSearch, "Nav_CheckTypeLevel");
#endregion
#region 1_1
List<List<int>> listCheckCount = new List<List<int>>();
List<int> listCheckLevelCount = null;
foreach (var item in enmusLevel)
{
//mineTypeName: ["露天矿", "选矿厂", "尾矿库", "职能部门"],
//legendName: ["公司级", "部门级", "车间级", "班组级"],
//checkCount: [[3, 3, 3, 3], [12, 12, 12, 6], [24, 24, 24, 12], [90, 90, 120, 36]],
listCheckLevelCount = new List<int>();
//选矿 10, 尾矿 20, 矿山 30, 地下矿 40,
foreach (var itemMine in enmusMineType)
{
int count = listSafeCheck.Where(e => e.CHECKOBJECT == itemMine.VALUE && e.Nav_CheckTypeLevel.CheckLevel_ENUMS_ID == item.ID).Count();
listCheckLevelCount.Add(count);
}
listCheckCount.Add(listCheckLevelCount);
}
//数据组装
result.Count1_1 = listCheckCount;
result.lisMineTypeOrder = lisMineTypeOrder;
result.lisLevelOrder = lisLevelOrder;
#endregion
#region 3_1
List<List<int>> listCheckTypeCount = new List<List<int>>();
List<int> listCheckTypeCountPer = null;
var listCheckType = GetEntities<T_BS_CHECK_TYPE>(e => !e.IS_DELETED, null).OrderBy(e => e.PARENT_ID).ThenBy(e => e.NUM);
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);
foreach (var item in enmusMineType)
{
listCheckTypeCountPer = new List<int>();
foreach (var itemCheckType in listCheckTypeID)
{
//检查类型
if (itemCheckType == guidParent)
{
int count = listSafeCheck.Where(e => e.CHECKOBJECT == item.VALUE && listSum.Contains(e.CHECK_TYPE_ID.Value)).Count();
listCheckTypeCountPer.Add(count);
}
else
{
int count = listSafeCheck.Where(e => e.CHECKOBJECT == item.VALUE && e.CHECK_TYPE_ID == itemCheckType).Count();
listCheckTypeCountPer.Add(count);
}
}
listCheckTypeCount.Add(listCheckTypeCountPer);
}
//数据组装
result.Count3_1 = listCheckTypeCount;
result.lisCheckTypeName = listCheckTypeName;
#endregion
#region 1_2 2_1 2_2 3_2
Expression<Func<T_BS_RISK_SUBMIT_CONTENT, bool>> expression2_2 = e => !e.IS_DELETED && e.CREATE_TIME.HasValue && e.CREATE_TIME.Value >= dtStart && e.RiskContentState.HasValue && !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_Submit");
#region 1_2
List<int> listRiskMineCount1_2 = new List<int>();
foreach (var item in enmusMineType)
{
listRiskMineCount1_2.Add(listContent.Where(e => e.Nav_Submit != null && e.Nav_Submit.CHECKOBJECT.HasValue && e.Nav_Submit.CHECKOBJECT.Value == (BSMineTypeEnum)item.VALUE).Count());
}
result.listRiskMineCount1_2 = listRiskMineCount1_2;
#endregion
#region 2_1
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> listFinish2_1 = new List<int>();
List<int> listNotFinish2_1 = new List<int>();
List<decimal> listFinish2_1Percent = new List<decimal>();
foreach (var item in listMonth)
{
listFinish2_1.Add(listContent.Where(e => e.CREATE_TIME.HasValue && e.CREATE_TIME.Value.Month == item && (e.RiskContentState.Value == 60 || e.RiskContentState.Value == 80)).Count());
listNotFinish2_1.Add(listContent.Where(e => e.CREATE_TIME.HasValue && e.CREATE_TIME.Value.Month == item && e.RiskContentState.Value != 60 && e.RiskContentState.Value != 80).Count());
}
for (int i = 0; i < listMonth.Count; i++)
{
if (listNotFinish2_1[i] == 0)
{
listFinish2_1Percent.Add(100);
}
else if (listFinish2_1[i] == 0)
{
listFinish2_1Percent.Add(0);
}
else
{
listFinish2_1Percent.Add((decimal)Math.Round((listFinish2_1[i] * 100.0 / (listNotFinish2_1[i] + listFinish2_1[i])), 2));
}
}
//result.listMonth = listMonth;
result.listFinish2_1 = listFinish2_1;
result.listNotFinish2_1 = listNotFinish2_1;
result.listFinish2_1Percent = listFinish2_1Percent;
#endregion
#region 2_2 Top
var query = listContent.GroupBy(e => e.DESCREPTION).Select(e => new
{
DESCREPTION = e.Key,
Count = e.Count()
}).OrderByDescending(e => e.Count).Take(6);
if (query != null && query.Any())
{
List<string> ListDescreption2_2 = new List<string>();
List<int> Count2_2 = new List<int>();
foreach (var item in query)
{
Count2_2.Add(item.Count);
ListDescreption2_2.Add(item.DESCREPTION);
}
result.Count2_2 = Count2_2;
result.ListDescreption2_2 = ListDescreption2_2;
}
else
{
result.Count2_2 = new List<int>();
result.ListDescreption2_2 = new List<string>();
}
#endregion
#region 3_2
List<List<int>> listRiskMoneCheckType = new List<List<int>>();
foreach (var item in enmusMineType)
{
listCheckTypeCountPer = new List<int>();
foreach (var itemCheckType in listCheckTypeID)
{
//检查类型
if (itemCheckType == guidParent)
{
int count = listContent.Where(e => e.Nav_Submit != null && e.Nav_Submit.CHECK_TYPE_ID.HasValue && e.Nav_Submit.CHECKOBJECT.HasValue && e.Nav_Submit.CHECKOBJECT == (BSMineTypeEnum)item.VALUE && listSum.Contains(e.Nav_Submit.CHECK_TYPE_ID.Value)).Count();
listCheckTypeCountPer.Add(count);
}
else
{
int count = listContent.Where(e => e.Nav_Submit != null && e.Nav_Submit.CHECK_TYPE_ID.HasValue && e.Nav_Submit.CHECKOBJECT.HasValue && e.Nav_Submit.CHECKOBJECT == (BSMineTypeEnum)item.VALUE && e.Nav_Submit.CHECK_TYPE_ID == itemCheckType).Count();
listCheckTypeCountPer.Add(count);
}
}
listRiskMoneCheckType.Add(listCheckTypeCountPer);
}
result.Count3_2 = listRiskMoneCheckType;
#endregion
#endregion
return result;
});
}
//#region 旧版直接查询 count
///// <summary>
///// 显示
///// </summary>
///// <param name="filter"></param>
///// <returns></returns>
//[HttpPost, Route("GetBI056Main")]
//public JsonActionResult<ModelBI056Main> GetBI056Main([FromBody] KeywordFilter filter)
//{
// return SafeExecute<ModelBI056Main>(() =>
// {
// ModelBI056Main result = new ModelBI056Main();
// DateTime dtStart = Convert.ToDateTime(DateTime.Now.Year.ToString() + "-01-01 00:00:00");
// DateTime? dtEnd = null;
// #region enmusLevel=> lisLevelOrder enmusMineType=>lisMineTypeOrder
// //var enmus = GetEntities<T_FM_ENUMS>(e => !e.IS_DELETED, null, "ID", "VALUE", "NUM", "CODE", "NAME");
// var enmus = GetEntities<T_FM_ENUMS>(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>();
// var enmusLevel = enmus.Where(e => e.CODE == "HMLevleEnum").OrderBy(e => e.NUM).ToList();
// var enmusMineType = enmus.Where(e => e.CODE == "BSMineTypeEnum").OrderBy(e => e.NUM).ToList();
// if (enmusLevel == null || !enmusLevel.Any())
// throw new Exception("获取组织层级枚举信息失败!");
// else
// {
// foreach (var item in enmusLevel)
// {
// lisLevelOrder.Add(item.NAME);
// }
// }
// if (enmusMineType == null || !enmusMineType.Any())
// throw new Exception("获取生成单元枚举信息失败!");
// else
// {
// foreach (var item in enmusMineType)
// {
// lisMineTypeOrder.Add(item.NAME);
// }
// }
// #endregion
// #region 1_1 listCheckCount(List<List<int>>)
// Expression<Func<T_BS_SAFE_CHECK, bool>> expression = e => !e.IS_DELETED && e.CHECKOBJECT.HasValue && e.CHECK_TYPE_LEVEL_ID.HasValue && e.CHECKTIME.HasValue && dtStart <= e.CHECKTIME.Value;
// if (dtEnd.HasValue)
// expression = expression.And(e => e.CHECKTIME.HasValue && dtEnd.Value >= e.CHECKTIME.Value);
// //BSMineTypeEditEnum 选矿 10, 尾矿 20, 矿山 30, 地下矿 40,
// //FMDepartmentType 层级 3公司级 0部门级 1车间级 2班组级
// //expression 不能组合
// //公司级 部门级 车间级 班组级 用filter过滤
// BaseFilter filterSearch1_1 = new BaseFilter(filter.OrgId);
// filterSearch1_1.IgnoreDataRule = true;
// filterSearch1_1.Include.Add("Nav_CheckTypeLevel");
// FilterGroup filterGroup = new FilterGroup();
// filterGroup.IsAnd = true;
// FilterRule filterGroupRule = new FilterRule();
// filterGroupRule.Field = "Nav_CheckTypeLevel.CheckLevel_ENUMS_ID";
// FilterRule filterGroupMineRule = new FilterRule();
// filterGroupMineRule.Field = "CHECKOBJECT";
// List<List<int>> listCheckCount = new List<List<int>>();
// List<int> listCheckLevelCount = null;
// foreach (var item in enmusLevel)
// {
// //mineTypeName: ["露天矿", "选矿厂", "尾矿库", "职能部门"],
// //legendName: ["公司级", "部门级", "车间级", "班组级"],
// //checkCount: [[3, 3, 3, 3], [12, 12, 12, 6], [24, 24, 24, 12], [90, 90, 120, 36]],
// listCheckLevelCount = new List<int>();
// //选矿 10, 尾矿 20, 矿山 30, 地下矿 40,
// foreach (var itemMine in enmusMineType)
// {
// if (filterGroup.Rules != null && filterGroup.Rules.Any())
// filterGroup.Rules.Clear();
// filterGroupRule.Value = item.ID;
// filterGroup.Rules.Add(filterGroupRule);
// filterGroupMineRule.Value = itemMine.VALUE;
// filterGroup.Rules.Add(filterGroupMineRule);
// filterSearch1_1.FilterGroup = filterGroup;
// int count = GetCount(expression, filterSearch1_1);
// listCheckLevelCount.Add(count);
// }
// listCheckCount.Add(listCheckLevelCount);
// }
// //数据组装
// result.Count1_1 = listCheckCount;
// result.lisMineTypeOrder = lisMineTypeOrder;
// result.lisLevelOrder = lisLevelOrder;
// #endregion
// #region 3_1
// List<List<int>> listCheckTypeCount = new List<List<int>>();
// List<int> listCheckTypeCountPer = null;
// var listCheckType = GetEntities<T_BS_CHECK_TYPE>(e => !e.IS_DELETED, null).OrderBy(e => e.PARENT_ID).ThenBy(e => e.NUM);
// 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);
// Expression<Func<T_BS_SAFE_CHECK, bool>> expression3_1 = e => !e.IS_DELETED && e.CHECKOBJECT.HasValue && e.CHECK_TYPE_ID.HasValue && e.CHECKTIME.HasValue && dtStart <= e.CHECKTIME.Value;
// if (dtEnd.HasValue)
// expression3_1 = expression3_1.And(e => e.CHECKTIME.HasValue && dtEnd.Value >= e.CHECKTIME.Value);
// Expression<Func<T_BS_SAFE_CHECK, bool>> expression3_1_Contains = expression3_1.And(e => listSum.Contains(e.CHECK_TYPE_ID.Value));
// BaseFilter filterSearch3_1 = new BaseFilter(filter.OrgId);
// filterSearch3_1.IgnoreDataRule = true;
// filterGroupRule = new FilterRule();
// filterGroupRule.Field = "CHECK_TYPE_ID";
// filterGroupMineRule = new FilterRule();
// filterGroupMineRule.Field = "CHECKOBJECT";
// foreach (var item in enmusMineType)
// {
// listCheckTypeCountPer = new List<int>();
// foreach (var itemCheckType in listCheckTypeID)
// {
// if (filterGroup.Rules != null && filterGroup.Rules.Any())
// filterGroup.Rules.Clear();
// //检查类型
// if (itemCheckType == guidParent)
// {
// //报错 expression3_1 => expression3_1_Contains
// //filterGroupRule.Operate = FilterOperate.Contains;
// //filterGroupRule.Value = listSum;
// //生产单元
// filterGroupMineRule.Value = item.VALUE;
// filterGroup.Rules.Add(filterGroupMineRule);
// filterSearch3_1.FilterGroup = filterGroup;
// int count = GetCount(expression3_1_Contains, filterSearch3_1);
// listCheckTypeCountPer.Add(count);
// }
// else
// {
// filterGroupRule.Value = itemCheckType;
// filterGroup.Rules.Add(filterGroupRule);
// //生产单元
// filterGroupMineRule.Value = item.VALUE;
// filterGroup.Rules.Add(filterGroupMineRule);
// filterSearch3_1.FilterGroup = filterGroup;
// int count = GetCount(expression3_1, filterSearch3_1);
// listCheckTypeCountPer.Add(count);
// }
// //filterGroup.Rules.Add(filterGroupRule);
// ////生产单元
// //filterGroupMineRule.Value = item.VALUE;
// //filterGroup.Rules.Add(filterGroupMineRule);
// //filterSearch3_1.FilterGroup = filterGroup;
// //int count = GetCount(expression3_1, filterSearch3_1);
// //listCheckTypeCountPer.Add(count);
// }
// listCheckTypeCount.Add(listCheckTypeCountPer);
// }
// result.Count3_1 = listCheckTypeCount;
// result.lisCheckTypeName = listCheckTypeName;
// #endregion
// return result;
// });
//}
//#endregion
#region
#region 1_1 GetBI056_1_1
/// <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_ENUMS>(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>();
var enmusLevel = enmus.Where(e => e.CODE == "HMLevleEnum").OrderBy(e => e.NUM).ToList();
var enmusMineType = enmus.Where(e => e.CODE == "BSMineTypeEnum").OrderBy(e => e.NUM).ToList();
if (enmusLevel == null || !enmusLevel.Any())
throw new Exception("获取组织层级枚举信息失败!");
else
{
foreach (var item in enmusLevel)
{
lisLevelOrder.Add(item.NAME);
}
}
if (enmusMineType == null || !enmusMineType.Any())
throw new Exception("获取生成单元枚举信息失败!");
else
{
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_BS_SAFE_CHECK, bool>> expression = e => !e.IS_DELETED && e.CHECKOBJECT.HasValue && e.CHECK_TYPE_LEVEL_ID.HasValue && e.CHECKTIME.HasValue && dtStart <= e.CHECKTIME.Value;
if (dtEnd.HasValue)
expression = expression.And(e => e.CHECKTIME.HasValue && dtEnd.Value >= e.CHECKTIME.Value);
BaseFilter filterSearch = new BaseFilter(filter.OrgId);
filterSearch.IgnoreDataRule = true;
filterSearch.Include.Add("Nav_CheckTypeLevel");
filterSearch.SelectField = new List<string>() { "ID", "CHECKOBJECT", "CHECK_TYPE_ID", "IS_DELETED", "CHECKTIME", "Nav_CheckTypeLevel.CheckLevel_ENUMS_ID" };
//var listSafeCheck = GetEntities(expression, null, "Nav_CheckTypeLevel");
var listSafeCheck = GetEntities(expression, filterSearch, "Nav_CheckTypeLevel");
#endregion
foreach (var item in enmusLevel)
{
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.CHECKOBJECT == itemMine.VALUE && e.Nav_CheckTypeLevel.CheckLevel_ENUMS_ID == item.ID && e.CHECKTIME.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
/// <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_ENUMS>(e => !e.IS_DELETED && e.CODE == "BSMineTypeEnum", null, null).OrderBy(e => e.NUM).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_BS_RISK_SUBMIT_CONTENT, bool>> expression = e => !e.IS_DELETED && e.CREATE_TIME.HasValue && e.CREATE_TIME.Value >= dtStart;//&& 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_Submit");
BSMineTypeEnum? mineType = null;
List<int> ListCountPer = null;
foreach (var item in enmusMineType)
{
mineType = (BSMineTypeEnum)item.VALUE;
ListCountPer = new List<int>();
foreach (var itemMonth in listMonth)
{
ListCountPer.Add(listContent.Count(e => e.Nav_Submit.CHECKOBJECT.HasValue && e.Nav_Submit.CHECKOBJECT.Value == mineType && e.CREATE_TIME.Value.Month == itemMonth));
}
ListCount.Add(ListCountPer);
}
//数据组装
result.lisMineTypeOrder = lisMineTypeOrder;
result.ListCount = ListCount;
return result;
});
}
#endregion
#region 2_1 GetBI056_2_1
/// <summary>
/// 显示
/// </summary>
/// <param name="filter"></param>
/// <returns></returns>
[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_ENUMS>(e => !e.IS_DELETED && e.CODE == "BSMineTypeEnum", null, null).OrderBy(e => e.NUM).ToList();
if (enmusMineType == null || !enmusMineType.Any())
throw new Exception("获取生成单元枚举信息失败!");
else
{
foreach (var item in enmusMineType)
{
lisMineTypeOrder.Add(item.NAME);
}
}
Expression<Func<T_BS_RISK_SUBMIT_CONTENT, bool>> expression2_2 = e => !e.IS_DELETED && e.CREATE_TIME.HasValue && e.CREATE_TIME.Value >= dtStart && e.RiskContentState.HasValue && !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_Submit");
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>>();
BSMineTypeEnum? CHECKOBJECT = null;
foreach (var itemEnums in enmusMineType)
{
CHECKOBJECT = (BSMineTypeEnum)itemEnums.VALUE;
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.Nav_Submit.CHECKOBJECT.HasValue && e.Nav_Submit.CHECKOBJECT.Value == CHECKOBJECT && e.CREATE_TIME.HasValue && e.CREATE_TIME.Value.Month == item && (e.RiskContentState.Value == 60 || e.RiskContentState.Value == 80)));
listNotFinishPer2_1.Add(listContent.Count(e => e.Nav_Submit.CHECKOBJECT.HasValue && e.Nav_Submit.CHECKOBJECT.Value == CHECKOBJECT && e.CREATE_TIME.HasValue && e.CREATE_TIME.Value.Month == item && e.RiskContentState.Value != 60 && e.RiskContentState.Value != 80));
}
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
/// <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_ENUMS>(e => !e.IS_DELETED && e.CODE == "BSMineTypeEnum", null, null).OrderBy(e => e.NUM).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_BS_RISK_SUBMIT_CONTENT, bool>> expression2_2 = e => !e.IS_DELETED && e.CREATE_TIME.HasValue && e.CREATE_TIME.Value >= dtStart;//&& e.DESCREPTION != null&& e.RiskContentState.HasValue && (e.RiskContentState.Value == 60 || e.RiskContentState.Value == 80)
if (dtEnd.HasValue)
expression2_2 = expression2_2.And(e => e.CREATE_TIME.HasValue && dtEnd.Value >= e.CREATE_TIME.Value);
BSMineTypeEnum? mineType = null;
List<int> ListCountPer = null;
List<string> ListDescreptionPer = null;
foreach (var item in enmusMineType)
{
mineType = (BSMineTypeEnum)item.VALUE;
Expression<Func<T_BS_RISK_SUBMIT_CONTENT, bool>> expression2_2Mine = expression2_2.And(e => e.Nav_Submit.CHECKOBJECT.HasValue && e.Nav_Submit.CHECKOBJECT.Value == mineType);
var listContent = GetEntities(expression2_2Mine, null, "Nav_Submit");
var query = listContent.GroupBy(e => e.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
/// <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_ENUMS>(e => !e.IS_DELETED && e.CODE == "BSMineTypeEnum", null, null).OrderBy(e => e.NUM).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_BS_CHECK_TYPE>(e => !e.IS_DELETED, null, "Nav_ListMineType").OrderBy(e => e.PARENT_ID).ThenBy(e => e.NUM).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_BS_CHECK_TYPE>> listCheckTypes = new List<List<T_BS_CHECK_TYPE>>();
foreach (var item in enmusMineType)
{
listCheckTypes.Add(listCheckType.Where(e => e.Nav_ListMineType.Where(e => e.MINETYPE_ENUMS_ID == item.ID).Any()).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_BS_SAFE_CHECK, bool>> expression = e => !e.IS_DELETED && e.CHECKOBJECT.HasValue && e.CHECK_TYPE_LEVEL_ID.HasValue && e.CHECKTIME.HasValue && dtStart <= e.CHECKTIME.Value;
if (dtEnd.HasValue)
expression = expression.And(e => e.CHECKTIME.HasValue && dtEnd.Value >= e.CHECKTIME.Value);
BaseFilter filterSearch = new BaseFilter(filter.OrgId);
filterSearch.IgnoreDataRule = true;
filterSearch.Include.Add("Nav_CheckTypeLevel");
filterSearch.SelectField = new List<string>() { "ID", "CHECKOBJECT", "CHECK_TYPE_ID", "IS_DELETED", "CHECKTIME", "Nav_CheckTypeLevel.CheckLevel_ENUMS_ID" };
//var listSafeCheck = GetEntities(expression, null, "Nav_CheckTypeLevel");
var listSafeCheck = GetEntities(expression, filterSearch, "Nav_CheckTypeLevel");
#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.CHECKOBJECT == enmusMineType[i].VALUE && e.CHECKTIME.Value.Month == itemMonth && listSum.Contains(e.CHECK_TYPE_ID.Value)).Count();
listCheckTypeCountPer.Add(count);
}
else
{
int count = listSafeCheck.Where(e => e.CHECKOBJECT == enmusMineType[i].VALUE && e.CHECKTIME.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
/// <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_ENUMS>(e => !e.IS_DELETED && e.CODE == "BSMineTypeEnum", null, null).OrderBy(e => e.NUM).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_BS_CHECK_TYPE>(e => !e.IS_DELETED, null, "Nav_ListMineType").OrderBy(e => e.PARENT_ID).ThenBy(e => e.NUM);
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_BS_CHECK_TYPE>> listCheckTypes = new List<List<T_BS_CHECK_TYPE>>();
foreach (var item in enmusMineType)
{
listCheckTypes.Add(listCheckType.Where(e => e.Nav_ListMineType.Where(e => e.MINETYPE_ENUMS_ID == item.ID).Any()).ToList());
}
Expression<Func<T_BS_RISK_SUBMIT_CONTENT, bool>> expression = e => !e.IS_DELETED && e.CREATE_TIME.HasValue && e.CREATE_TIME.Value >= dtStart && e.RiskContentState.HasValue && !e.IS_DELETED;
if (dtEnd.HasValue)
expression = expression.And(e => e.CREATE_TIME.HasValue && dtEnd.Value >= e.CREATE_TIME.Value);
var listContent = GetEntities(expression, null, "Nav_Submit").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.Nav_Submit != null && e.Nav_Submit.CHECK_TYPE_ID.HasValue && listSum.Contains(e.Nav_Submit.CHECK_TYPE_ID.Value) && e.CREATE_TIME.HasValue && e.CREATE_TIME.Value.Month == itemMonth && e.Nav_Submit.CHECKOBJECT.HasValue && e.Nav_Submit.CHECKOBJECT == (BSMineTypeEnum)item.VALUE && listSum.Contains(e.Nav_Submit.CHECK_TYPE_ID.Value));
listCheckTypeCountPer.Add(count);
}
else
{
int count = listContent.Count(e => e.Nav_Submit != null && e.Nav_Submit.CHECK_TYPE_ID.HasValue && e.Nav_Submit.CHECK_TYPE_ID == itemCheckType.ID && e.CREATE_TIME.HasValue && e.CREATE_TIME.Value.Month == itemMonth && e.Nav_Submit.CHECKOBJECT.HasValue && e.Nav_Submit.CHECKOBJECT == (BSMineTypeEnum)item.VALUE && e.Nav_Submit.CHECK_TYPE_ID == itemCheckType.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
#region model
public class ModelBI056Main
{
public List<string> lisMineTypeOrder { get; set; }
public List<string> lisLevelOrder { get; set; }
public List<List<int>> Count1_1 { get; set; }
public List<int> listRiskMineCount1_2 { get; set; }
public List<int> listFinish2_1 { get; set; }
public List<int> listMonth { get; set; }
public List<int> listNotFinish2_1 { get; set; }
public List<decimal> listFinish2_1Percent { get; set; }
public List<string> ListDescreption2_2 { get; set; }
public List<int> Count2_2 { get; set; }
public List<List<int>> Count3_1 { get; set; }
public List<string> lisCheckTypeName { get; set; }
public List<List<int>> Count3_2 { get; set; }
}
public class ModelBI056_1_1
{
public List<string> lisMineTypeOrder { get; set; }
public List<string> lisLevelOrder { get; set; }
public List<List<int>> Count { get; set; }
}
public class ModelBI056_1_2
{
public List<string> lisMineTypeOrder { get; set; }
public List<List<int>> ListCount { get; set; }
}
public class ModelBI056_2_1
{
public List<string> lisMineTypeOrder { get; set; }
public List<List<int>> listFinish2_1 { get; set; }
public List<List<int>> listNotFinish2_1 { get; set; }
public List<List<decimal>> listFinish2_1Percent { get; set; }
}
public class ModelBI056_2_2
{
public List<string> lisMineTypeOrder { get; set; }
public List<List<int>> ListCount { get; set; }
public List<List<string>> ListDescreption { get; set; }
}
public class ModelBI056_3_1
{
/// <summary>
/// 生产单元
/// </summary>
public List<string> lisMineTypeOrder { get; set; }
/// <summary>
/// 生产单元 检查类型
/// </summary>
public List<List<string>> lisMineCheckTypeOrder { get; set; }
/// <summary>
/// 检查数量
/// </summary>
public List<List<List<int>>> Count3_1 { get; set; }
}
public class ModelBI056_3_2
{
/// <summary>
/// 生产单元
/// </summary>
public List<string> lisMineTypeOrder { get; set; }
/// <summary>
/// 生产单元 检查类型
/// </summary>
public List<List<string>> lisMineCheckType { get; set; }
/// <summary>
/// 检查数量
/// </summary>
public List<List<List<int>>> Count3_1 { get; set; }
}
#endregion
#endregion
}
public class BISafe
{
public List<T_BI_BSSAFECHECK> listSafeCheck { get; set; }
public List<T_BI_BSCHECKTYPE> listCheckType { get; set; }
public T_BI_SUMMARY summary { get; set; }
}
}