using APT.BaseData.Domain.Entities.FM; using APT.Infrastructure.Core; using Microsoft.AspNetCore.Mvc; using APT.Infrastructure.Api; using System.Collections.Generic; using System; using System.Linq; using APT.Utility; using APT.MS.Domain.Entities.BI; using APT.BaseData.Domain.IServices.BI; namespace APT.SC.WebApi.Controllers.Api.BI { /// /// 首页图表 /// [Route("api/BI/BIHome")] public class BIHomeController : AuthorizeApiController { IBIHomeService BIHomeService { get; set; } public BIHomeController(IBIHomeService biHomeService) { BIHomeService = biHomeService; } /// /// 查询所有数据 /// /// 过滤实体 /// [HttpPost, Route("GetHomeInfo1")] public JsonActionResult GetHomeInfo1([FromBody] KeywordFilter filter) { return SafeExecute(() => { //全部 改成 看自己 所在组织 //安环 取公司 //班组 取 车间 HomeResult result = new HomeResult(); List listDep = new List(); DateTime dtNow = DateTime.Now; Guid? depID = APT.Infrastructure.Api.AppContext.CurrentSession.DepartmentID; if (!depID.HasValue) { return result; } var depLogin = GetEntity(APT.Infrastructure.Api.AppContext.CurrentSession.DepartmentID.Value); ////FMDepartmentType 部门=0, 车间=1, 班组=2, 公司=3 //if (depLogin.DEPARTMENT_TYPE == 2) //{ // //班组级 因数据少不好看 显示车间信息(功能需求变更) // listDep = GetEntities(e => e.PARENT_ID.HasValue && e.PARENT_ID.Value == depLogin.PARENT_ID, null, null).ToList(); //} //else //{ // listDep = GetEntities(e => e.PARENT_ID.HasValue && e.PARENT_ID.Value == depID, null, null).ToList(); //} if (depLogin.DEPARTMENT_TYPE == 2) { //班组级 因数据少不好看 显示车间信息(功能需求变更) listDep = GetEntities(e => e.ID == depLogin.PARENT_ID.Value, null, null).ToList(); } else { if (depLogin.DEPARTMENT_STATUS == 2)//安环 看公司级 { listDep.Add(GetEntity(e => e.DEPARTMENT_TYPE == 3 && !e.IS_DELETED)); } else { listDep.Add(depLogin); } } if (!listDep.Any()) { return result; } #region //隐患原因 List listReasonT = BIHomeService.GetHomeReasons(filter.OrgId, listDep).ToList(); List listReason = new List(); int reasonMax = listReasonT.Max(e => e.NUMS); //List listEnumVal = new List { 5, 10, 15, 20 }; List LISTNAME = new List();// { "按时整改隐患", "超期整改隐患", "未整改隐患", "隐患整改率" }; HomeRISKREASON model = null; List LISVALUE = null; for (int i = 0; i < listReasonT.Count; i++) { if (i == 0 || listReasonT[i].DEPARTMENT_ID != listReasonT[i - 1].DEPARTMENT_ID) { model = new HomeRISKREASON(); model.DEPARTMENTNAME = listReasonT[i].DEPARTMENTNAME; model.YEAR = listReasonT[i].YEAR; model.SOURCENAME = listReasonT[i].SOURCENAME; LISVALUE = new List(); } LISVALUE.Add(listReasonT[i].COUNT); if (LISTNAME.Count < reasonMax) { LISTNAME.Add(listReasonT[i].SOURCENAME); } if (listReasonT[i].NUMS == 1) { model.NAME1 = listReasonT[i].SOURCENAME; model.COUNT1 = listReasonT[i].COUNT; } if (listReasonT[i].NUMS == 2) { model.NAME2 = listReasonT[i].SOURCENAME; model.COUNT2 = listReasonT[i].COUNT; } if (listReasonT[i].NUMS == 3) { model.NAME3 = listReasonT[i].SOURCENAME; model.COUNT3 = listReasonT[i].COUNT; } if (listReasonT[i].NUMS == 4) { model.NAME4 = listReasonT[i].SOURCENAME; model.COUNT4 = listReasonT[i].COUNT; } if (listReasonT[i].NUMS == 5) { model.NAME5 = listReasonT[i].SOURCENAME; model.COUNT5 = listReasonT[i].COUNT; } if (reasonMax == listReasonT[i].NUMS) { model.LISVALUE = LISVALUE; model.LISTNAME = LISTNAME; listReason.Add(model); } } result.ListR = listReason; #endregion #region //月度 隐患整改情况 //List listLoginDep = new List(); //if (APT.Infrastructure.Api.AppContext.CurrentSession.DepartmentID.HasValue) //{ // listLoginDep.Add(depLogin); //} //else //{ // //公司级 // //listLoginDep = listDep; // listLoginDep = GetEntities(e => e.DEPARTMENT_TYPE == 3 && !e.IS_DELETED && e.ENABLE_STATUS == 0, null, null).ToList(); //} //List listCorrectT = BIHomeService.GetHomeCorrect(filter.OrgId, listLoginDep).ToList(); //月度 整改情况 //公司/部门/车间 显示本组织 的数据 //班组 显示 车间的数据 //List listDepC = new List(); //if (depLogin.DEPARTMENT_TYPE == 2) //{ // //depLogin // listDepC.Add(GetEntity(e => e.ID == depLogin.PARENT_ID.Value)); //} //else //{ // if (depLogin.DEPARTMENT_STATUS == 2)//安环 看公司级 // { // listDepC.Add(GetEntity(e => e.DEPARTMENT_TYPE == 3 && !e.IS_DELETED)); // } // else // { // listDepC.Add(depLogin); // } //} //List listCorrectT = BIHomeService.GetHomeCorrect(filter.OrgId, listDepC).ToList(); ////List listCorrectT = BIHomeService.GetHomeCorrect(filter.OrgId, listDep).ToList(); List listCorrectT = BIHomeService.GetHomeCorrect(filter.OrgId, listDep).ToList(); string Val = string.Empty;// 0 ,1,2,3 string NameMonth = dtNow.AddMonths(-5).Month.ToString() + "月," + dtNow.AddMonths(-4).Month.ToString() + "月," + dtNow.AddMonths(-3).Month.ToString() + "月," + dtNow.AddMonths(-2).Month.ToString() + "月," + dtNow.AddMonths(-1).Month.ToString() + "月," + dtNow.Month.ToString() + "月"; List listC = new List(); HomeCorrect modelC = null; for (int i = 0; i < listCorrectT.Count; i++) { if (i == 0 || listCorrectT[i].DEPARTMENT_ID != listCorrectT[i - 1].DEPARTMENT_ID || listCorrectT[i].SOURCEVAL != listCorrectT[i - 1].SOURCEVAL) { modelC = new HomeCorrect(); modelC.DEPARTMENTNAME = listCorrectT[i].DEPARTMENTNAME; modelC.DEPARTMENT_ID = listCorrectT[i].DEPARTMENT_ID; modelC.SOURCENAME = listCorrectT[i].SOURCENAME; modelC.YEAR = listCorrectT[i].YEAR; modelC.NAME = NameMonth; Val = ""; } if (listCorrectT[i].MONTH == 1) { if (listCorrectT[i].SOURCEVAL == 20) { modelC.M1 = listCorrectT[i].PERCENT.ToString("0.00"); } else { modelC.M1 = listCorrectT[i].COUNT.ToString(); } Val += modelC.M1 + ","; } if (listCorrectT[i].MONTH == 2) { if (listCorrectT[i].SOURCEVAL == 20) { modelC.M2 = listCorrectT[i].PERCENT.ToString("0.00"); } else { modelC.M2 = listCorrectT[i].COUNT.ToString(); } Val += modelC.M2 + ","; } if (listCorrectT[i].MONTH == 3) { if (listCorrectT[i].SOURCEVAL == 20) { modelC.M3 = listCorrectT[i].PERCENT.ToString("0.00"); } else { modelC.M3 = listCorrectT[i].COUNT.ToString(); } Val += modelC.M3 + ","; } if (listCorrectT[i].MONTH == 4) { if (listCorrectT[i].SOURCEVAL == 20) { modelC.M4 = listCorrectT[i].PERCENT.ToString("0.00"); } else { modelC.M4 = listCorrectT[i].COUNT.ToString(); } Val += modelC.M4 + ","; } if (listCorrectT[i].MONTH == 5) { if (listCorrectT[i].SOURCEVAL == 20) { modelC.M5 = listCorrectT[i].PERCENT.ToString("0.00"); } else { modelC.M5 = listCorrectT[i].COUNT.ToString(); } Val += modelC.M5 + ","; } if (listCorrectT[i].MONTH == 6) { if (listCorrectT[i].SOURCEVAL == 20) { modelC.M6 = listCorrectT[i].PERCENT.ToString("0.00"); } else { modelC.M6 = listCorrectT[i].COUNT.ToString(); } Val += modelC.M6 + ","; } if (listCorrectT[i].MONTH == 7) { if (listCorrectT[i].SOURCEVAL == 20) { modelC.M7 = listCorrectT[i].PERCENT.ToString("0.00"); } else { modelC.M7 = listCorrectT[i].COUNT.ToString(); } Val += modelC.M7 + ","; } if (listCorrectT[i].MONTH == 8) { if (listCorrectT[i].SOURCEVAL == 20) { modelC.M8 = listCorrectT[i].PERCENT.ToString("0.00"); } else { modelC.M8 = listCorrectT[i].COUNT.ToString(); } Val += modelC.M8 + ","; } if (listCorrectT[i].MONTH == 9) { if (listCorrectT[i].SOURCEVAL == 20) { modelC.M9 = listCorrectT[i].PERCENT.ToString("0.00"); } else { modelC.M9 = listCorrectT[i].COUNT.ToString(); } Val += modelC.M9 + ","; } if (listCorrectT[i].MONTH == 10) { if (listCorrectT[i].SOURCEVAL == 20) { modelC.M10 = listCorrectT[i].PERCENT.ToString("0.00"); } else { modelC.M10 = listCorrectT[i].COUNT.ToString(); } Val += modelC.M10 + ","; } if (listCorrectT[i].MONTH == 11) { if (listCorrectT[i].SOURCEVAL == 20) { modelC.M11 = listCorrectT[i].PERCENT.ToString("0.00"); } else { modelC.M11 = listCorrectT[i].COUNT.ToString(); } Val += modelC.M11 + ","; } if (listCorrectT[i].MONTH == 12) { if (listCorrectT[i].SOURCEVAL == 20) { modelC.M12 = listCorrectT[i].PERCENT.ToString("0.00"); } else { modelC.M12 = listCorrectT[i].COUNT.ToString(); } Val += modelC.M12 + ","; } if (listCorrectT[i].MONTH == dtNow.Month) { modelC.Val = Val.Substring(0, Val.Length - 1); listC.Add(modelC); } } result.ListC = listC; #endregion #region 年度 各下属组织 隐患整改情况 List listReasonYearT = BIHomeService.GetHomeCorrectYear(filter.OrgId, listDep).ToList(); List ListCYear = new List(); HomeCorrectYear modelCY = null; int CountYearT = listReasonYearT.Count; for (int i = 0; i < CountYearT; i++) { if (i == 0 || listReasonYearT[i].DEPARTMENT_ID != listReasonYearT[i - 1].DEPARTMENT_ID) { modelCY = new HomeCorrectYear(); modelCY.DEPARTMENTNAME = listReasonYearT[i].DEPARTMENTNAME; modelCY.DEPARTMENT_ID = listReasonYearT[i].DEPARTMENT_ID; modelCY.YEAR = listReasonYearT[i].YEAR; } // 按时整改隐患 5 超期整改隐患 10 未整改隐患 15 if (listReasonYearT[i].SOURCEVAL == 5) { modelCY.CountIn += listReasonYearT[i].COUNT; } else if (listReasonYearT[i].SOURCEVAL == 10) { modelCY.CountOut += listReasonYearT[i].COUNT; } else if (listReasonYearT[i].SOURCEVAL == 15) { modelCY.CountNot += listReasonYearT[i].COUNT; } if (i == CountYearT - 1 || listReasonYearT[i].DEPARTMENT_ID != listReasonYearT[i + 1].DEPARTMENT_ID) { modelCY.Count = modelCY.CountIn + modelCY.CountOut + modelCY.CountNot; ListCYear.Add(modelCY); } } result.ListCYear = ListCYear; #endregion #region 月度 6 个月 安全检查、检查类型 数量 //按生产单元 获取 if (!string.IsNullOrEmpty(filter.Keyword)) { int MineType = int.Parse(filter.Keyword.ToString()); BaseFilter filterD = new BaseFilter(filter.OrgId); filterD.SelectField = new List { "ID", "NAME", "DEPARTMENT_TYPE", "PARENT_ID" }; var listDep1MineType = GetEntities(t => t.MineType.HasValue && t.MineType == MineType && t.DEPARTMENT_TYPE == 0, filterD, null);//部门就可以了 因为都相向 统计了 if (listDep1MineType != null && listDep1MineType.Any()) { List ListSafeCheckYearMonth = new List(); int befoMonth = 12; List ListSafeCheckYearMonthT = BIHomeService.GetHomeCheckCountMonth(filter.OrgId, listDep1MineType.ToList(), befoMonth).ToList(); var listCheckTypeIDT = ListSafeCheckYearMonthT.Select(e => e.SOURCEID).Distinct().ToList(); var enums = GetEntity(e => e.VALUE == MineType && e.CODE == "BSMineTypeEnum"); if (enums != null) { var listTypeMine = GetEntities(e => e.MINETYPE_ENUMS_ID == enums.ID, null, null); if (listTypeMine != null && listTypeMine.Any()) { var listMineCheckTypeID = listTypeMine.Where(e => e.CHECK_TYPE_ID.HasValue).Select(e => e.CHECK_TYPE_ID.Value); for (int i = 0; i < listCheckTypeIDT.Count; i++) { if (!listMineCheckTypeID.Contains(listCheckTypeIDT[i])) { listCheckTypeIDT.RemoveAt(i); i--; } } } } var listCheckType = GetEntities(e => listCheckTypeIDT.Contains(e.ID), null, null).OrderBy(e => e.PARENT_ID).ThenBy(e => e.NUM).ToList(); List listCheckTypeID = new List(); List listCheckTypeNAME = new List(); Guid IDZH = Guid.Empty;//综合检查(只有一个) List listGUID = new List();//综合检查子集 for (int i = 0; i < listCheckType.Count; i++) { if (listCheckType[i].PARENT_ID.HasValue) { if (IDZH == Guid.Empty) { IDZH = listCheckType[i].PARENT_ID.Value; listCheckTypeID.Add(IDZH); var checkTypeP = GetEntity(IDZH); listCheckTypeNAME.Add(checkTypeP.NAME); } listGUID.Add(listCheckType[i].ID); } else { listCheckTypeID.Add(listCheckType[i].ID); listCheckTypeNAME.Add(listCheckType[i].NAME); } } int year = DateTime.Now.Year; int Month = DateTime.Now.Month; DateTime dtTemp = DateTime.Now; IEnumerable listPerChearch = null; IEnumerable listPerChearchPer = null; //List listListCount = null; for (int i = 0; i < befoMonth; i++) { dtTemp = dtNow.AddMonths(-1 * i); year = dtTemp.Year; Month = dtTemp.Month; listPerChearch = ListSafeCheckYearMonthT.Where(e => e.YEAR == year && e.MONTH == Month); HomeSafeCheckCountMonth modelper = new HomeSafeCheckCountMonth(); modelper.Total = listPerChearch.Count(); modelper.listSOURCENAME = listCheckTypeNAME; modelper.YEAR = year; modelper.MONTH = Month; List listListCount = new List(); for (int j = 0; j < listCheckTypeID.Count; j++) { if (listCheckTypeID[j] != IDZH) { listPerChearchPer = listPerChearch.Where(e => e.YEAR == year && e.MONTH == Month && e.SOURCEID == listCheckTypeID[j]);//各个检查 } else { listPerChearchPer = listPerChearch.Where(e => e.YEAR == year && e.MONTH == Month && listGUID.Contains(e.SOURCEID));//综合检查 } if (listPerChearchPer == null || !listPerChearchPer.Any()) { listListCount.Add(0); } else { listListCount.Add(listPerChearchPer.Sum(e => e.COUNT)); } } modelper.listListCount = listListCount; ListSafeCheckYearMonth.Add(modelper); } result.ListSafeCheckYearMonth = ListSafeCheckYearMonth.OrderBy(e => e.YEAR).ThenBy(e => e.MONTH).ToList(); } } #endregion return result; }); } /// /// 查询所有数据 /// /// 过滤实体 /// [HttpPost, Route("GetHomeInfo")] public JsonActionResult GetHomeInfo([FromBody] KeywordFilter filter) { return SafeExecute(() => { //按生产单元 获取数据 HomeResult result = new HomeResult(); //if (string.IsNullOrEmpty(filter.Keyword)) //{ // return result; //} //int MineType = int.Parse(filter.Keyword); #region Collection was modified, enumeration operation may not execute(foreach) 不要 SelectField 看看结果 如果继续报错 返回来 //TODO wyw SelectField //BaseFilter filterD = new BaseFilter(); //filterD.SelectField = new List { "ID", "NAME", "DEPARTMENT_TYPE", "PARENT_ID", "MineType" }; //var listDep1MineType = GetEntities(t => t.MineType.HasValue && t.MineType == MineType && t.DEPARTMENT_TYPE == 0, filterD, null);//部门就可以了 因为都相向 统计了 var listDep1MineType = GetEntities(t => t.DEPARTMENT_TYPE == 0, null, null);//t.MineType.HasValue && t.MineType == MineType && //部门就可以了 因为都相向 统计了 #endregion //if (listDep1MineType == null || !listDep1MineType.Any()) //{ // return result; //} List listDep = new List(); DateTime dtNow = DateTime.Now; listDep = listDep1MineType.ToList(); #region //////隐患原因( 不需要了 ) //List listReasonT = BIHomeService.GetHomeReasons(filter.OrgId, listDep).ToList(); //List listReason = new List(); //int reasonMax = listReasonT.Max(e => e.NUMS); ////List listEnumVal = new List { 5, 10, 15, 20 }; //List LISTNAME = new List();// { "按时整改隐患", "超期整改隐患", "未整改隐患", "隐患整改率" }; //HomeRISKREASON model = null; //List LISVALUE = null; //for (int i = 0; i < listReasonT.Count; i++) //{ // if (i == 0 || listReasonT[i].DEPARTMENT_ID != listReasonT[i - 1].DEPARTMENT_ID) // { // model = new HomeRISKREASON(); // model.DEPARTMENTNAME = listReasonT[i].DEPARTMENTNAME; // model.YEAR = listReasonT[i].YEAR; // model.SOURCENAME = listReasonT[i].SOURCENAME; // LISVALUE = new List(); // } // LISVALUE.Add(listReasonT[i].COUNT); // if (LISTNAME.Count < reasonMax) // { // LISTNAME.Add(listReasonT[i].SOURCENAME); // } // if (listReasonT[i].NUMS == 1) // { // model.NAME1 = listReasonT[i].SOURCENAME; // model.COUNT1 = listReasonT[i].COUNT; // } // if (listReasonT[i].NUMS == 2) // { // model.NAME2 = listReasonT[i].SOURCENAME; // model.COUNT2 = listReasonT[i].COUNT; // } // if (listReasonT[i].NUMS == 3) // { // model.NAME3 = listReasonT[i].SOURCENAME; // model.COUNT3 = listReasonT[i].COUNT; // } // if (listReasonT[i].NUMS == 4) // { // model.NAME4 = listReasonT[i].SOURCENAME; // model.COUNT4 = listReasonT[i].COUNT; // } // if (listReasonT[i].NUMS == 5) // { // model.NAME5 = listReasonT[i].SOURCENAME; // model.COUNT5 = listReasonT[i].COUNT; // } // if (reasonMax == listReasonT[i].NUMS) // { // model.LISVALUE = LISVALUE; // model.LISTNAME = LISTNAME; // listReason.Add(model); // } //} //result.ListR = listReason; #endregion #region //月度 隐患整改情况 List listCorrectT = BIHomeService.GetHomeCorrect(filter.OrgId, listDep).ToList(); string Val = string.Empty;// 0 ,1,2,3 //string NameMonth = dtNow.AddMonths(-5).Month.ToString() + "月," + dtNow.AddMonths(-4).Month.ToString() + "月," + dtNow.AddMonths(-3).Month.ToString() + "月," + dtNow.AddMonths(-2).Month.ToString() + "月," + dtNow.AddMonths(-1).Month.ToString() + "月," + dtNow.Month.ToString() + "月"; string NameMonth = dtNow.AddMonths(-5).ToString("yyyy-MM") + "," + dtNow.AddMonths(-4).ToString("yyyy-MM") + "," + dtNow.AddMonths(-3).ToString("yyyy-MM") + "," + dtNow.AddMonths(-2).ToString("yyyy-MM") + "," + dtNow.AddMonths(-1).ToString("yyyy-MM") + "," + dtNow.ToString("yyyy-MM"); List listC = new List(); HomeCorrect modelC = null; bool isNormal = true;//数据是否正常 var modelCorr = listCorrectT.Where(e => e.YEAR == dtNow.Year && e.MONTH == dtNow.Month); if (modelCorr == null) { isNormal = false; } for (int i = 0; i < listCorrectT.Count; i++) { if (i == 0 || listCorrectT[i].DEPARTMENT_ID != listCorrectT[i - 1].DEPARTMENT_ID || listCorrectT[i].SOURCEVAL != listCorrectT[i - 1].SOURCEVAL) { if (!isNormal && !string.IsNullOrEmpty(Val) && modelC != null) { modelC.Val = Val + "0"; listC.Add(modelC); } modelC = new HomeCorrect(); modelC.DEPARTMENTNAME = listCorrectT[i].DEPARTMENTNAME; modelC.DEPARTMENT_ID = listCorrectT[i].DEPARTMENT_ID; modelC.SOURCENAME = listCorrectT[i].SOURCENAME; modelC.YEAR = listCorrectT[i].YEAR; modelC.NAME = NameMonth; Val = ""; } if (listCorrectT[i].MONTH == 1) { if (listCorrectT[i].SOURCEVAL == 20) { modelC.M1 = listCorrectT[i].PERCENT.ToString("0.00"); } else { modelC.M1 = listCorrectT[i].COUNT.ToString(); } Val += modelC.M1 + ","; } if (listCorrectT[i].MONTH == 2) { if (listCorrectT[i].SOURCEVAL == 20) { modelC.M2 = listCorrectT[i].PERCENT.ToString("0.00"); } else { modelC.M2 = listCorrectT[i].COUNT.ToString(); } Val += modelC.M2 + ","; } if (listCorrectT[i].MONTH == 3) { if (listCorrectT[i].SOURCEVAL == 20) { modelC.M3 = listCorrectT[i].PERCENT.ToString("0.00"); } else { modelC.M3 = listCorrectT[i].COUNT.ToString(); } Val += modelC.M3 + ","; } if (listCorrectT[i].MONTH == 4) { if (listCorrectT[i].SOURCEVAL == 20) { modelC.M4 = listCorrectT[i].PERCENT.ToString("0.00"); } else { modelC.M4 = listCorrectT[i].COUNT.ToString(); } Val += modelC.M4 + ","; } if (listCorrectT[i].MONTH == 5) { if (listCorrectT[i].SOURCEVAL == 20) { modelC.M5 = listCorrectT[i].PERCENT.ToString("0.00"); } else { modelC.M5 = listCorrectT[i].COUNT.ToString(); } Val += modelC.M5 + ","; } if (listCorrectT[i].MONTH == 6) { if (listCorrectT[i].SOURCEVAL == 20) { modelC.M6 = listCorrectT[i].PERCENT.ToString("0.00"); } else { modelC.M6 = listCorrectT[i].COUNT.ToString(); } Val += modelC.M6 + ","; } if (listCorrectT[i].MONTH == 7) { if (listCorrectT[i].SOURCEVAL == 20) { modelC.M7 = listCorrectT[i].PERCENT.ToString("0.00"); } else { modelC.M7 = listCorrectT[i].COUNT.ToString(); } Val += modelC.M7 + ","; } if (listCorrectT[i].MONTH == 8) { if (listCorrectT[i].SOURCEVAL == 20) { modelC.M8 = listCorrectT[i].PERCENT.ToString("0.00"); } else { modelC.M8 = listCorrectT[i].COUNT.ToString(); } Val += modelC.M8 + ","; } if (listCorrectT[i].MONTH == 9) { if (listCorrectT[i].SOURCEVAL == 20) { modelC.M9 = listCorrectT[i].PERCENT.ToString("0.00"); } else { modelC.M9 = listCorrectT[i].COUNT.ToString(); } Val += modelC.M9 + ","; } if (listCorrectT[i].MONTH == 10) { if (listCorrectT[i].SOURCEVAL == 20) { modelC.M10 = listCorrectT[i].PERCENT.ToString("0.00"); } else { modelC.M10 = listCorrectT[i].COUNT.ToString(); } Val += modelC.M10 + ","; } if (listCorrectT[i].MONTH == 11) { if (listCorrectT[i].SOURCEVAL == 20) { modelC.M11 = listCorrectT[i].PERCENT.ToString("0.00"); } else { modelC.M11 = listCorrectT[i].COUNT.ToString(); } Val += modelC.M11 + ","; } if (listCorrectT[i].MONTH == 12) { if (listCorrectT[i].SOURCEVAL == 20) { modelC.M12 = listCorrectT[i].PERCENT.ToString("0.00"); } else { modelC.M12 = listCorrectT[i].COUNT.ToString(); } Val += modelC.M12 + ","; } if (isNormal && listCorrectT[i].MONTH == dtNow.Month && listCorrectT[i].YEAR == dtNow.Year) { //有当月数据 是当前月的时候 放入数据 modelC.Val = Val.Substring(0, Val.Length - 1); listC.Add(modelC); } } result.ListC = listC; #endregion #region 年度 各下属组织 隐患整改情况 List listReasonYearT = BIHomeService.GetHomeCorrectYear(filter.OrgId, listDep).ToList(); List ListCYear = new List(); HomeCorrectYear modelCY = null; int CountYearT = listReasonYearT.Count; for (int i = 0; i < CountYearT; i++) { if (i == 0 || listReasonYearT[i].DEPARTMENT_ID != listReasonYearT[i - 1].DEPARTMENT_ID) { modelCY = new HomeCorrectYear(); modelCY.DEPARTMENTNAME = listReasonYearT[i].DEPARTMENTNAME; modelCY.DEPARTMENT_ID = listReasonYearT[i].DEPARTMENT_ID; modelCY.YEAR = listReasonYearT[i].YEAR; } // 按时整改隐患 5 超期整改隐患 10 未整改隐患 15 if (listReasonYearT[i].SOURCEVAL == 5) { modelCY.CountIn += listReasonYearT[i].COUNT; } else if (listReasonYearT[i].SOURCEVAL == 10) { modelCY.CountOut += listReasonYearT[i].COUNT; } else if (listReasonYearT[i].SOURCEVAL == 15) { modelCY.CountNot += listReasonYearT[i].COUNT; } if (i == CountYearT - 1 || listReasonYearT[i].DEPARTMENT_ID != listReasonYearT[i + 1].DEPARTMENT_ID) { modelCY.Count = modelCY.CountIn + modelCY.CountOut + modelCY.CountNot; ListCYear.Add(modelCY); } } result.ListCYear = ListCYear; #endregion #region 月度 6 个月 安全检查、检查类型 数量 //按生产单元 获取 if (!string.IsNullOrEmpty(filter.Keyword)) { //int MineType = int.Parse(filter.Keyword.ToString()); //BaseFilter filterD = new BaseFilter(); //filterD.SelectField = new List { "ID", "NAME", "DEPARTMENT_TYPE", "PARENT_ID" }; //var listDep1MineType = GetEntities(t => t.MineType.HasValue && t.MineType == MineType && t.DEPARTMENT_TYPE == 0, filterD, null);//部门就可以了 因为都相向 统计了 if (listDep != null && listDep.Any()) { List ListSafeCheckYearMonth = new List(); int befoMonth = 12; List ListSafeCheckYearMonthT = BIHomeService.GetHomeCheckCountMonth(filter.OrgId, listDep.ToList(), befoMonth).ToList(); var listCheckTypeIDT = ListSafeCheckYearMonthT.Select(e => e.SOURCEID).Distinct().ToList(); //var enums = GetEntity(e => e.VALUE == MineType && e.CODE == "BSMineTypeEnum"); //if (enums != null) //{ //var listTypeMine = GetEntities(e => e.MINETYPE_ENUMS_ID == enums.ID, null, null); var listTypeMine = GetEntities(e => 1 == 1, null, null); if (listTypeMine != null && listTypeMine.Any()) { var listMineCheckTypeID = listTypeMine.Where(e => e.CHECK_TYPE_ID.HasValue).Select(e => e.CHECK_TYPE_ID.Value); for (int i = 0; i < listCheckTypeIDT.Count; i++) { if (!listMineCheckTypeID.Contains(listCheckTypeIDT[i])) { listCheckTypeIDT.RemoveAt(i); i--; } } } //} var listCheckType = GetEntities(e => listCheckTypeIDT.Contains(e.ID), null, null).OrderBy(e => e.PARENT_ID).ThenBy(e => e.NUM).ToList(); List listCheckTypeID = new List(); List listCheckTypeNAME = new List(); Guid IDZH = Guid.Empty;//综合检查(只有一个) List listGUID = new List();//综合检查子集 for (int i = 0; i < listCheckType.Count; i++) { if (listCheckType[i].PARENT_ID.HasValue) { if (IDZH == Guid.Empty) { IDZH = listCheckType[i].PARENT_ID.Value; listCheckTypeID.Add(IDZH); var checkTypeP = GetEntity(IDZH); listCheckTypeNAME.Add(checkTypeP.NAME); } listGUID.Add(listCheckType[i].ID); } else { listCheckTypeID.Add(listCheckType[i].ID); listCheckTypeNAME.Add(listCheckType[i].NAME); } } int year = DateTime.Now.Year; int Month = DateTime.Now.Month; DateTime dtTemp = DateTime.Now; IEnumerable listPerChearch = null; IEnumerable listPerChearchPer = null; //List listListCount = null; for (int i = 0; i < befoMonth; i++) { dtTemp = dtNow.AddMonths(-1 * i); year = dtTemp.Year; Month = dtTemp.Month; listPerChearch = ListSafeCheckYearMonthT.Where(e => e.YEAR == year && e.MONTH == Month); HomeSafeCheckCountMonth modelper = new HomeSafeCheckCountMonth(); modelper.Total = listPerChearch.Count(); modelper.listSOURCENAME = listCheckTypeNAME; modelper.YEAR = year; modelper.MONTH = Month; List listListCount = new List(); for (int j = 0; j < listCheckTypeID.Count; j++) { if (listCheckTypeID[j] != IDZH) { listPerChearchPer = listPerChearch.Where(e => e.YEAR == year && e.MONTH == Month && e.SOURCEID == listCheckTypeID[j]);//各个检查 } else { listPerChearchPer = listPerChearch.Where(e => e.YEAR == year && e.MONTH == Month && listGUID.Contains(e.SOURCEID));//综合检查 } if (listPerChearchPer == null || !listPerChearchPer.Any()) { listListCount.Add(0); } else { listListCount.Add(listPerChearchPer.Sum(e => e.COUNT)); } } modelper.listListCount = listListCount; ListSafeCheckYearMonth.Add(modelper); } result.ListSafeCheckYearMonth = ListSafeCheckYearMonth.OrderBy(e => e.YEAR).ThenBy(e => e.MONTH).ToList(); } } #endregion return result; }); } /// /// 首页 安全检查次数统计明细(BI054HomeDetail) /// /// 过滤实体 /// [HttpPost, Route("GetHomeDetailMonthCheckType")] public JsonActionResult GetHomeDetailMonthCheckType([FromBody] KeywordFilter filter) { return SafeExecute(() => { //按生产单元 获取数据 HomeDetailSafeCheckCountMonth result = new HomeDetailSafeCheckCountMonth(); if (string.IsNullOrEmpty(filter.Keyword)) { return result; } int MineType = int.Parse(filter.Keyword); BaseFilter filterD = new BaseFilter(filter.OrgId); filterD.SelectField = new List { "ID", "NAME", "DEPARTMENT_TYPE", "PARENT_ID" }; var listDep1MineType = GetEntities(t => t.MineType.HasValue && t.MineType == MineType && (t.DEPARTMENT_TYPE == 1 || t.DEPARTMENT_TYPE == 2), filterD, null); //FMDepartmentType 部门=0, 车间=1, 班组=2, 公司=3 if (listDep1MineType == null || !listDep1MineType.Any()) { return result; } List listDepIDCJ = listDep1MineType.Where(e => e.DEPARTMENT_TYPE == 1).Select(e => e.ID).ToList();//车间ID 用于 统计 每个月各类型的检查数量 DateTime dtNow = DateTime.Now; List listDepCJ = new List(); List listDepBZ = new List(); listDepCJ = listDep1MineType.Where(e => e.DEPARTMENT_TYPE == 1).OrderBy(e => e.NUM).ToList(); listDepBZ = listDep1MineType.Where(e => e.DEPARTMENT_TYPE == 2).OrderBy(e => e.NUM).ToList(); T_FM_ENUMS enums = null; #region 月度 12 个月 安全检查、检查类型 数量 if (listDepCJ == null || listDepCJ.Count < 1 || listDepBZ == null || listDepBZ.Count < 1) { //深度查找 部门 MineType 只能存一个值 enums = GetEntity(e => e.VALUE == MineType && e.CODE == "BSMineTypeEnum"); if (enums == null) { throw new Exception("获取生产类型失败"); } var listDepID = GetEntities(e => e.ENUMS_ID == enums.ID, null, null).Select(e => e.DEPARTMENT_ID); if (listDepID != null && listDepID.Any()) { listDep1MineType = GetEntities(t => listDepID.Contains(t.ID) && (t.DEPARTMENT_TYPE == 1 || t.DEPARTMENT_TYPE == 2), filterD, null); if (listDep1MineType != null && listDep1MineType.Any()) { listDepCJ = listDep1MineType.Where(e => e.DEPARTMENT_TYPE == 1).ToList(); listDepBZ = listDep1MineType.Where(e => e.DEPARTMENT_TYPE == 2).ToList(); } } } if (listDepCJ == null || listDepCJ.Count < 1 || listDepBZ == null || listDepBZ.Count < 1) { throw new Exception("获取生产单元组织信息失败!"); } List ListSafeCheckYearMonth = new List(); int befoMonth = 11;//计算 12 个月 就是提前 11个月 List ListSafeCheckYearMonthT = BIHomeService.GetHomeCheckCountMonth(filter.OrgId, listDep1MineType.ToList(), befoMonth).ToList(); var listCheckTypeIDT = ListSafeCheckYearMonthT.Select(e => e.SOURCEID).Distinct().ToList(); if (enums == null) { enums = GetEntity(e => e.VALUE == MineType && e.CODE == "BSMineTypeEnum"); } if (enums != null) { var listTypeMine = GetEntities(e => e.MINETYPE_ENUMS_ID == enums.ID, null, null); if (listTypeMine != null && listTypeMine.Any()) { var listMineCheckTypeID = listTypeMine.Where(e => e.CHECK_TYPE_ID.HasValue).Select(e => e.CHECK_TYPE_ID.Value); for (int i = 0; i < listCheckTypeIDT.Count; i++) { if (!listMineCheckTypeID.Contains(listCheckTypeIDT[i])) { listCheckTypeIDT.RemoveAt(i); i--; } } } } var listCheckType = GetEntities(e => listCheckTypeIDT.Contains(e.ID), null, null).OrderBy(e => e.PARENT_ID).ThenBy(e => e.NUM).ToList(); List listCheckTypeID = new List(); List listCheckTypeNAME = new List(); Guid IDZH = Guid.Empty;//综合检查(只有一个) List listGUID = new List();//综合检查子集 for (int i = 0; i < listCheckType.Count; i++) { if (listCheckType[i].PARENT_ID.HasValue) { if (IDZH == Guid.Empty) { IDZH = listCheckType[i].PARENT_ID.Value; listCheckTypeID.Add(IDZH); var checkTypeP = GetEntity(IDZH); listCheckTypeNAME.Add(checkTypeP.NAME); } listGUID.Add(listCheckType[i].ID); } else { listCheckTypeID.Add(listCheckType[i].ID); listCheckTypeNAME.Add(listCheckType[i].NAME); } } int year = DateTime.Now.Year; int Month = DateTime.Now.Month; DateTime dtTemp = DateTime.Now; IEnumerable listPerChearch = null; IEnumerable listPerChearchPer = null; for (int i = 0; i <= befoMonth; i++) { dtTemp = dtNow.AddMonths(-1 * i); year = dtTemp.Year; Month = dtTemp.Month; listPerChearch = ListSafeCheckYearMonthT.Where(e => e.YEAR == year && e.MONTH == Month && listDepIDCJ.Contains(e.DEPARTMENT_ID));//只统计到车间 HomeSafeCheckCountMonth modelper = new HomeSafeCheckCountMonth(); modelper.Total = listPerChearch.Count(); modelper.listSOURCENAME = listCheckTypeNAME; modelper.YEAR = year; modelper.MONTH = Month; List listListCount = new List(); for (int j = 0; j < listCheckTypeID.Count; j++) { if (listCheckTypeID[j] != IDZH) { listPerChearchPer = listPerChearch.Where(e => e.YEAR == year && e.MONTH == Month && e.SOURCEID == listCheckTypeID[j]);//各个检查 } else { listPerChearchPer = listPerChearch.Where(e => e.YEAR == year && e.MONTH == Month && listGUID.Contains(e.SOURCEID));//综合检查 } if (listPerChearchPer == null || !listPerChearchPer.Any()) { listListCount.Add(0); } else { listListCount.Add(listPerChearchPer.Sum(e => e.COUNT)); } } modelper.listListCount = listListCount; ListSafeCheckYearMonth.Add(modelper); } #endregion result.ListSafeCheckYearMonth = ListSafeCheckYearMonth.OrderBy(e => e.YEAR).ThenBy(e => e.MONTH).ToList(); #region 表数据 List listCheckDepCountCJ = new List(); List listCheckDepCountBZ = new List(); List listCheckTypeCount = null; DetailSafeCheckCountDepartment modelCountDep = null; int checkTypeCount = listCheckTypeID.Count; foreach (var item in listDepCJ) { modelCountDep = new DetailSafeCheckCountDepartment(); modelCountDep.listName = listCheckTypeNAME; modelCountDep.PARENT_ID = item.PARENT_ID.Value; modelCountDep.Department_ID = item.ID; modelCountDep.NUM = item.NUM; modelCountDep.RowCount = listDepBZ.Where(e => e.PARENT_ID.HasValue && e.PARENT_ID.Value == item.ID).Count(); modelCountDep.DepartmentName = item.NAME; modelCountDep.DepartmentType = item.DEPARTMENT_TYPE; listCheckTypeCount = new List(); for (int i = 0; i < checkTypeCount; i++) { listCheckTypeCount.Add(ListSafeCheckYearMonthT.Where(e => e.SOURCEID == listCheckTypeID[i] && e.DEPARTMENT_ID == item.ID).Sum(e => e.COUNT)); } modelCountDep.listCount = listCheckTypeCount; listCheckDepCountCJ.Add(modelCountDep); } foreach (var item in listDepBZ) { modelCountDep = new DetailSafeCheckCountDepartment(); modelCountDep.listName = listCheckTypeNAME; modelCountDep.PARENT_ID = item.PARENT_ID.Value; modelCountDep.Department_ID = item.ID; modelCountDep.NUM = item.NUM; modelCountDep.RowCount = 1; modelCountDep.DepartmentName = item.NAME; modelCountDep.DepartmentType = item.DEPARTMENT_TYPE; listCheckTypeCount = new List(); for (int i = 0; i < checkTypeCount; i++) { listCheckTypeCount.Add(ListSafeCheckYearMonthT.Where(e => e.SOURCEID == listCheckTypeID[i] && e.DEPARTMENT_ID == item.ID).Sum(e => e.COUNT)); } modelCountDep.listCount = listCheckTypeCount; listCheckDepCountBZ.Add(modelCountDep); } //result.ListSafeCheckCountDepartmentBZ = listCheckDepCountBZ; foreach (var item in listCheckDepCountCJ) { item.listChild = listCheckDepCountBZ.Where(e => e.PARENT_ID == item.Department_ID).OrderBy(e => e.NUM).ToList(); } #endregion //result.ListSafeCheckCountDepartment = listCheckDepCountCJ; //取明细 List ListSafeCheckYearMonthLast = new List(); int allIndex = 0; foreach (var item in listCheckDepCountCJ) { foreach (var itemC in item.listChild) { allIndex++; itemC.NUM = allIndex; itemC.Parent = item; ListSafeCheckYearMonthLast.Add(itemC); } } result.ListSafeCheckCountDepartment = ListSafeCheckYearMonthLast; return result; }); } /// /// 月度隐患整改情况(BI055HomeDetail) /// /// 过滤实体 /// [HttpPost, Route("GetHomeDetailMonthRisk")] public JsonActionResult GetHomeDetailMonthRisk([FromBody] KeywordFilter filter) { return SafeExecute(() => { //按生产单元 获取数据 HomeDetailRiskCountMonth result = new HomeDetailRiskCountMonth(); if (string.IsNullOrEmpty(filter.Keyword)) { return result; } int MineType = int.Parse(filter.Keyword); BaseFilter filterD = new BaseFilter(filter.OrgId); filterD.SelectField = new List { "ID", "NAME", "DEPARTMENT_TYPE", "PARENT_ID" }; ///部门 //var listDep1MineTypeSum = GetEntities(t => t.MineType.HasValue && t.MineType == MineType && t.DEPARTMENT_TYPE == 0, filterD, null); ///车间 班组 var listDep1MineType = GetEntities(t => t.MineType.HasValue && t.MineType == MineType && (t.DEPARTMENT_TYPE == 1 || t.DEPARTMENT_TYPE == 2 || t.DEPARTMENT_TYPE == 0), filterD, null); //FMDepartmentType 部门=0, 车间=1, 班组=2, 公司=3 if (listDep1MineType == null || !listDep1MineType.Any()) { return result; } DateTime dtNow = DateTime.Now; List listDepCJ = new List(); List listDepBZ = new List(); listDepCJ = listDep1MineType.Where(e => e.DEPARTMENT_TYPE == 1).OrderBy(e => e.NUM).ToList(); listDepBZ = listDep1MineType.Where(e => e.DEPARTMENT_TYPE == 2).OrderBy(e => e.NUM).ToList(); #region //月度 隐患整改情况 int MonthBefo = 11;//计算12个月 就是提前 11个月 List listCorrectT = BIHomeService.GetHomeCorrect(filter.OrgId, listDep1MineType.ToList(), MonthBefo).ToList(); string Val = string.Empty;// 0 ,1,2,3 //string NameMonth = dtNow.AddMonths(-5).Month.ToString() + "月," + dtNow.AddMonths(-4).Month.ToString() + "月," + dtNow.AddMonths(-3).Month.ToString() + "月," + dtNow.AddMonths(-2).Month.ToString() + "月," + dtNow.AddMonths(-1).Month.ToString() + "月," + dtNow.Month.ToString() + "月"; string NameMonth = String.Empty; for (int i = MonthBefo; i > -1; i--) { NameMonth += dtNow.AddMonths(-1 * i).ToString("yy-MM") + ","; } NameMonth = NameMonth.Substring(0, NameMonth.Length - 1); List listC = new List(); HomeCorrect modelC = null; bool isNormal = true;//数据是否正常 var modelCorr = listCorrectT.Where(e => e.YEAR == dtNow.Year && e.MONTH == dtNow.Month); if (modelCorr == null) { isNormal = false; } for (int i = 0; i < listCorrectT.Count; i++) { if (i == 0 || listCorrectT[i].DEPARTMENT_ID != listCorrectT[i - 1].DEPARTMENT_ID || listCorrectT[i].SOURCEVAL != listCorrectT[i - 1].SOURCEVAL) { if (!isNormal && !string.IsNullOrEmpty(Val) && modelC != null) { modelC.Val = Val + "0"; listC.Add(modelC); } modelC = new HomeCorrect(); modelC.DEPARTMENTNAME = listCorrectT[i].DEPARTMENTNAME; modelC.DEPARTMENT_ID = listCorrectT[i].DEPARTMENT_ID; modelC.SOURCENAME = listCorrectT[i].SOURCENAME; modelC.YEAR = listCorrectT[i].YEAR; modelC.NAME = NameMonth; Val = ""; } if (listCorrectT[i].MONTH == 1) { if (listCorrectT[i].SOURCEVAL == 20) { modelC.M1 = listCorrectT[i].PERCENT.ToString("0.00"); } else { modelC.M1 = listCorrectT[i].COUNT.ToString(); } Val += modelC.M1 + ","; } if (listCorrectT[i].MONTH == 2) { if (listCorrectT[i].SOURCEVAL == 20) { modelC.M2 = listCorrectT[i].PERCENT.ToString("0.00"); } else { modelC.M2 = listCorrectT[i].COUNT.ToString(); } Val += modelC.M2 + ","; } if (listCorrectT[i].MONTH == 3) { if (listCorrectT[i].SOURCEVAL == 20) { modelC.M3 = listCorrectT[i].PERCENT.ToString("0.00"); } else { modelC.M3 = listCorrectT[i].COUNT.ToString(); } Val += modelC.M3 + ","; } if (listCorrectT[i].MONTH == 4) { if (listCorrectT[i].SOURCEVAL == 20) { modelC.M4 = listCorrectT[i].PERCENT.ToString("0.00"); } else { modelC.M4 = listCorrectT[i].COUNT.ToString(); } Val += modelC.M4 + ","; } if (listCorrectT[i].MONTH == 5) { if (listCorrectT[i].SOURCEVAL == 20) { modelC.M5 = listCorrectT[i].PERCENT.ToString("0.00"); } else { modelC.M5 = listCorrectT[i].COUNT.ToString(); } Val += modelC.M5 + ","; } if (listCorrectT[i].MONTH == 6) { if (listCorrectT[i].SOURCEVAL == 20) { modelC.M6 = listCorrectT[i].PERCENT.ToString("0.00"); } else { modelC.M6 = listCorrectT[i].COUNT.ToString(); } Val += modelC.M6 + ","; } if (listCorrectT[i].MONTH == 7) { if (listCorrectT[i].SOURCEVAL == 20) { modelC.M7 = listCorrectT[i].PERCENT.ToString("0.00"); } else { modelC.M7 = listCorrectT[i].COUNT.ToString(); } Val += modelC.M7 + ","; } if (listCorrectT[i].MONTH == 8) { if (listCorrectT[i].SOURCEVAL == 20) { modelC.M8 = listCorrectT[i].PERCENT.ToString("0.00"); } else { modelC.M8 = listCorrectT[i].COUNT.ToString(); } Val += modelC.M8 + ","; } if (listCorrectT[i].MONTH == 9) { if (listCorrectT[i].SOURCEVAL == 20) { modelC.M9 = listCorrectT[i].PERCENT.ToString("0.00"); } else { modelC.M9 = listCorrectT[i].COUNT.ToString(); } Val += modelC.M9 + ","; } if (listCorrectT[i].MONTH == 10) { if (listCorrectT[i].SOURCEVAL == 20) { modelC.M10 = listCorrectT[i].PERCENT.ToString("0.00"); } else { modelC.M10 = listCorrectT[i].COUNT.ToString(); } Val += modelC.M10 + ","; } if (listCorrectT[i].MONTH == 11) { if (listCorrectT[i].SOURCEVAL == 20) { modelC.M11 = listCorrectT[i].PERCENT.ToString("0.00"); } else { modelC.M11 = listCorrectT[i].COUNT.ToString(); } Val += modelC.M11 + ","; } if (listCorrectT[i].MONTH == 12) { if (listCorrectT[i].SOURCEVAL == 20) { modelC.M12 = listCorrectT[i].PERCENT.ToString("0.00"); } else { modelC.M12 = listCorrectT[i].COUNT.ToString(); } Val += modelC.M12 + ","; } if (isNormal && listCorrectT[i].MONTH == dtNow.Month && listCorrectT[i].YEAR == dtNow.Year) { //有当月数据 是当前月的时候 放入数据 modelC.Val = Val.Substring(0, Val.Length - 1); listC.Add(modelC); } } #endregion var listDepID = listDep1MineType.Where(e => e.DEPARTMENT_TYPE == 0).Select(e => e.ID);//部门ID result.ListC = listC.Where(e => listDepID.Contains(e.DEPARTMENT_ID)).ToList(); #region 子表信息 //BSCorrectType List enums = DataHelper.GetEnum("BSCorrectType"); List listName = new List(); List listVal = new List(); foreach (var item in enums) { listVal.Add(item.ID); listName.Add(item.NAME); } List listCheckDepCountCJ = new List(); List listCheckDepCountBZ = new List(); List listCheckTypeCount = null; DetailSafeCheckCountDepartment modelCountDep = null; int checkTypeCount = listVal.Count; int Percent = 3;//第4项 是辈分比 int All = 0; foreach (var item in listDepCJ) { modelCountDep = new DetailSafeCheckCountDepartment(); modelCountDep.listName = listName; modelCountDep.PARENT_ID = item.PARENT_ID.Value; modelCountDep.Department_ID = item.ID; modelCountDep.NUM = item.NUM; modelCountDep.RowCount = listDepBZ.Where(e => e.PARENT_ID.HasValue && e.PARENT_ID.Value == item.ID).Count(); modelCountDep.DepartmentName = item.NAME; modelCountDep.DepartmentType = item.DEPARTMENT_TYPE; listCheckTypeCount = new List(); for (int i = 0; i < checkTypeCount; i++) { if (Percent == i) { All = listCheckTypeCount[0] + listCheckTypeCount[1] + listCheckTypeCount[2]; if (All == 0) { listCheckTypeCount.Add(10000); } else { listCheckTypeCount.Add((int)(10000 * (listCheckTypeCount[0] + listCheckTypeCount[1]) / All)); } } else { listCheckTypeCount.Add(listCorrectT.Where(e => e.SOURCEVAL == listVal[i] && e.DEPARTMENT_ID == item.ID).Sum(e => e.COUNT)); } } modelCountDep.listCount = listCheckTypeCount; listCheckDepCountCJ.Add(modelCountDep); } foreach (var item in listDepBZ) { modelCountDep = new DetailSafeCheckCountDepartment(); modelCountDep.listName = listName; modelCountDep.PARENT_ID = item.PARENT_ID.Value; modelCountDep.Department_ID = item.ID; modelCountDep.NUM = item.NUM; modelCountDep.RowCount = 1; modelCountDep.DepartmentName = item.NAME; modelCountDep.DepartmentType = item.DEPARTMENT_TYPE; listCheckTypeCount = new List(); for (int i = 0; i < checkTypeCount; i++) { if (Percent == i) { All = listCheckTypeCount[0] + listCheckTypeCount[1] + listCheckTypeCount[2]; if (All == 0) { listCheckTypeCount.Add(10000); } else { listCheckTypeCount.Add((int)(10000 * (listCheckTypeCount[0] + listCheckTypeCount[1]) / All)); } } else { listCheckTypeCount.Add(listCorrectT.Where(e => e.SOURCEVAL == listVal[i] && e.DEPARTMENT_ID == item.ID).Sum(e => e.COUNT)); } } modelCountDep.listCount = listCheckTypeCount; listCheckDepCountBZ.Add(modelCountDep); } foreach (var item in listCheckDepCountCJ) { item.listChild = listCheckDepCountBZ.Where(e => e.PARENT_ID == item.Department_ID).OrderBy(e => e.NUM).ToList(); } //result.ListSafeCheckYearMonth = listCheckDepCountCJ; //取明细 List ListSafeCheckYearMonth = new List(); int allIndex = 0; foreach (var item in listCheckDepCountCJ) { foreach (var itemC in item.listChild) { allIndex++; itemC.NUM = allIndex; itemC.Parent = item; ListSafeCheckYearMonth.Add(itemC); } } result.ListSafeCheckYearMonth = ListSafeCheckYearMonth; #endregion return result; }); } } /// /// 隐患原因 数据 /// public class HomeRISKREASON { /// /// 年 /// public int YEAR { get; set; } /// /// 组织ID /// public Guid DEPARTMENT_ID { get; set; } /// /// 组织ID /// public string DEPARTMENTNAME { get; set; } /// /// 类型 /// public string SOURCENAME { get; set; } /// /// 隐患原因 /// public List LISTNAME { get; set; } /// /// 隐患原因数量 /// public List LISVALUE { get; set; } /// /// 数据源排序 /// public int NUMS { get; set; } /// /// 数据1 /// public int COUNT1 { get; set; } /// /// 名称1 /// public string NAME1 { get; set; } /// /// 数据2 /// public int COUNT2 { get; set; } /// /// 名称2 /// public string NAME2 { get; set; } /// /// 数据3 /// public int COUNT3 { get; set; } /// /// 名称3 /// public string NAME3 { get; set; } /// /// 数据4 /// public int COUNT4 { get; set; } /// /// 名称4 /// public string NAME4 { get; set; } /// /// 数据5 /// public int COUNT5 { get; set; } /// /// 名称5 /// public string NAME5 { get; set; } } /// /// 整改情况 /// public class HomeCorrect { /// /// 年 /// public int YEAR { get; set; } /// /// 月 /// public int MONTH { get; set; } /// /// 组织ID /// public Guid DEPARTMENT_ID { get; set; } /// /// 组织ID /// public string DEPARTMENTNAME { get; set; } /// /// 类型 /// public string SOURCENAME { get; set; } /// /// 1月 /// public string M1 { get; set; } /// /// 1月 /// public string M2 { get; set; } /// /// 1月 /// public string M3 { get; set; } /// /// 1月 /// public string M4 { get; set; } /// /// 1月 /// public string M5 { get; set; } /// /// 1月 /// public string M6 { get; set; } /// /// 1月 /// public string M7 { get; set; } /// /// 1月 /// public string M8 { get; set; } /// /// 1月 /// public string M9 { get; set; } /// /// 1月 /// public string M10 { get; set; } /// /// 1月 /// public string M11 { get; set; } /// /// 1月 /// public string M12 { get; set; } public string Val { get; set; } public string NAME { get; set; } } /// /// 组织 年度 隐患整改情况 /// public class HomeCorrectYear { /// /// 年 /// public int YEAR { get; set; } /// /// 组织ID /// public Guid DEPARTMENT_ID { get; set; } /// /// 组织名称 /// public string DEPARTMENTNAME { get; set; } /// /// 按时整改 /// public int CountIn { get; set; } /// /// 超时整改 /// public int CountOut { get; set; } /// /// 未整改 /// public int CountNot { get; set; } /// /// 未整改 /// public int Count { get; set; } } /// /// 安全检查 月度 检查类型 数量 /// public class HomeSafeCheckCountMonth { /// /// 年 /// public int YEAR { get; set; } /// /// 月 /// public int MONTH { get; set; } /// /// 总数 /// public int Total { get; set; } public List listListCount { get; set; } public List listSOURCENAME { get; set; } } /// /// 首页数据组合 /// public class HomeResult { /// /// 隐患原因 /// public List ListR { get; set; } /// /// 月度隐患整改情况 /// public List ListC { get; set; } /// /// 年度隐患整改情况 /// public List ListCYear { get; set; } /// /// 安全检查 月度 数量 /// public List ListSafeCheckYearMonth { get; set; } } /// /// 组织 安全检查类型 对应次数 /// public class DetailSafeCheckCountDepartment { /// /// 组织名称 /// public string DepartmentName { get; set; } /// /// 父级ID /// public Guid PARENT_ID { get; set; } /// /// 部门ID /// public Guid Department_ID { get; set; } /// /// 排序 /// public int NUM { get; set; } /// /// 组织类型 /// public int DepartmentType { get; set; } /// /// 数据占行数(班组为1 车间为下一级班组数量) /// public int RowCount { get; set; } = 1; /// /// 数量集合(每次传参 集合顺序一致) /// public List listCount { get; set; } /// /// 隐患整改率(月度隐患整改情况明细 专属) /// public decimal Percent { get; set; } /// /// 名称集合 (每次传参 集合顺序一致) /// public List listName { get; set; } /// /// 子信息 /// public List listChild { get; set; } /// /// 父项 /// public DetailSafeCheckCountDepartment Parent { get; set; } } /// /// 安全检查次数统计 /// public class HomeDetailSafeCheckCountMonth { /// /// 安全检查 月度 数量 /// public List ListSafeCheckYearMonth { get; set; } /// /// 每个组织 每种检查 对应次数 /// public List ListSafeCheckCountDepartment { get; set; } } /// /// 安全检查次数统计 /// public class HomeDetailRiskCountMonth { /// /// 月度隐患整改情况 /// public List ListC { get; set; } /// /// 安全检查 月度 数量 /// public List ListSafeCheckYearMonth { get; set; } } }