From d040a7cd419f10a2297f28937860ae32a7d94367 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E4=BD=95=E7=BE=8E=E8=8D=A3?= <10755671+mei-rong-he@user.noreply.gitee.com> Date: Thu, 18 Dec 2025 10:07:37 +0800 Subject: [PATCH] =?UTF-8?q?=E5=8A=A8=E7=81=AB=E4=BD=9C=E4=B8=9A=E8=A7=A6?= =?UTF-8?q?=E5=8F=91=E6=8A=80=E6=9C=AF=E4=BA=A4=E5=BA=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Services/PF/PFApproveCallBackService.cs | 2 + .../Api/BIController/BIController.cs | 323 ++++++++++++++++++ 2 files changed, 325 insertions(+) diff --git a/APT.BaseData.Services/Services/PF/PFApproveCallBackService.cs b/APT.BaseData.Services/Services/PF/PFApproveCallBackService.cs index 4aba1e0..0ebfce5 100644 --- a/APT.BaseData.Services/Services/PF/PFApproveCallBackService.cs +++ b/APT.BaseData.Services/Services/PF/PFApproveCallBackService.cs @@ -2533,6 +2533,8 @@ namespace APT.BaseData.Services.DomainServices BantchSaveEntityNoCommit(listTaskNext); if (entity != null) this.UpdateEntityNoCommit(entity); + if (formSafe != null) + this.UpdateEntityNoCommit(formSafe); if (notice != null) this.UpdateEntityNoCommit(notice); }); diff --git a/APT.MicroApi/APT.SC.WebApi/Controllers/Api/BIController/BIController.cs b/APT.MicroApi/APT.SC.WebApi/Controllers/Api/BIController/BIController.cs index 5cf277a..e638dfd 100644 --- a/APT.MicroApi/APT.SC.WebApi/Controllers/Api/BIController/BIController.cs +++ b/APT.MicroApi/APT.SC.WebApi/Controllers/Api/BIController/BIController.cs @@ -425,6 +425,329 @@ namespace APT.SC.WebApi.Controllers.Api.BI /// /// 返回系统用户数 /// + [HttpPost, Route("getRiskPerformanceDataOld")] + public JsonActionResult getRiskPerformanceDataOld([FromBody] KeywordFilter filter) + { + return SafeExecute(() => + { + var riskFilter = new BaseFilter(filter.GetOrgId()); + riskFilter.SelectField = new string[] { "EVALUATE_LEVEL", "CREATE_TIME", "MineType", "SOURCE_DEPARTMENT_ID", "TYPE_ID", "LEVEL", "AREA_ID", "DEPARTMENT_LIABLE_ID" }; + IEnumerable allrisk = null; + allrisk = GetEntities(t => t.STATUS == (int)HMOperationStepEnum.有效 && t.SOURCE_DEPARTMENT_ID != null, riskFilter); + var hazardFilter = new BaseFilter(filter.GetOrgId()); + hazardFilter.SelectField = new string[] { "CREATE_TIME" }; + var allhazard = GetEntities(t => t.STATUS == (int)HMOperationStepEnum.有效, hazardFilter); + riskPerformanceData riskPerformanceData = new riskPerformanceData(); + List item3s = new List(); + var distinctType = GetEntities(t => t.IS_DELETED == false, new BaseFilter(filter.GetOrgId())); + var distinctDepartment = GetEntities(t => t.DEPARTMENT_TYPE == 10, new BaseFilter(filter.GetOrgId())); + var distinctArea = GetEntities(t => t.IS_DELETED == false, new BaseFilter(filter.GetOrgId())); + var distinctTeamDepartment = GetEntities(t => t.DEPARTMENT_TYPE == 20, new BaseFilter(filter.GetOrgId())); + + #region 1 + PerformanceModel CHARTFXDJ1 = new PerformanceModel(); + CHARTFXDJ1.NAME = new List { "一级", "二级", "三级", "四级" }; + var type1 = allrisk.Count(t => t.EVALUATE_LEVEL == EvaluateLevelEnum.一级); + var type2 = allrisk.Count(t => t.EVALUATE_LEVEL == EvaluateLevelEnum.二级); + var type3 = allrisk.Count(t => t.EVALUATE_LEVEL == EvaluateLevelEnum.三级); + var type4 = allrisk.Count(t => t.EVALUATE_LEVEL == EvaluateLevelEnum.四级); + CHARTFXDJ1.LEVEL1 = new List { type1, type2, type3, type4 }; + riskPerformanceData.CHARTFXDJ1 = CHARTFXDJ1; + #endregion + #region 2 + List model2s = new List { }; + PerformanceModel1 model1 = new PerformanceModel1(); + PerformanceModel1 model2 = new PerformanceModel1(); + PerformanceModel1 model3 = new PerformanceModel1(); + PerformanceModel1 model4 = new PerformanceModel1(); + + model1.name = "一级"; + model1.value = allrisk.Count(t => t.EVALUATE_LEVEL == EvaluateLevelEnum.一级); + model2s.Add(model1); + model2.name = "二级"; + model2.value = allrisk.Count(t => t.EVALUATE_LEVEL == EvaluateLevelEnum.二级); + model2s.Add(model2); + model3.name = "三级"; + model3.value = allrisk.Count(t => t.EVALUATE_LEVEL == EvaluateLevelEnum.三级); + model2s.Add(model3); + model4.name = "四级"; + model4.value = allrisk.Count(t => t.EVALUATE_LEVEL == EvaluateLevelEnum.四级); + model2s.Add(model4); + riskPerformanceData.CHARTFXDJ2 = model2s; + #endregion + + + #region 3 + PerformanceModel modelMineType = new PerformanceModel(); + foreach (FMProductionUnit mineType in Enum.GetValues(typeof(FMProductionUnit))) + { + var mineTypeName = mineType.GetDescription(); + var mineTypeInt = mineType.GetInt(); + modelMineType.NAME.Add(mineTypeName); + modelMineType.LEVEL1.Add(allrisk.Count(t => t.MineType == mineTypeInt && t.EVALUATE_LEVEL == EvaluateLevelEnum.一级)); + modelMineType.LEVEL2.Add(allrisk.Count(t => t.MineType == mineTypeInt && t.EVALUATE_LEVEL == EvaluateLevelEnum.二级)); + modelMineType.LEVEL3.Add(allrisk.Count(t => t.MineType == mineTypeInt && t.EVALUATE_LEVEL == EvaluateLevelEnum.三级)); + modelMineType.LEVEL4.Add(allrisk.Count(t => t.MineType == mineTypeInt && t.EVALUATE_LEVEL == EvaluateLevelEnum.四级)); + } + riskPerformanceData.CHARTLIST.Add(modelMineType); + #endregion + + #region 4 + PerformanceModel modelFXLB = new PerformanceModel(); + foreach (var type in distinctType) + { + var countLevel1 = allrisk.Count(t => t.TYPE_ID == type.ID && t.EVALUATE_LEVEL == EvaluateLevelEnum.一级); + var countLevel2 = allrisk.Count(t => t.TYPE_ID == type.ID && t.EVALUATE_LEVEL == EvaluateLevelEnum.二级); + var countLevel3 = allrisk.Count(t => t.TYPE_ID == type.ID && t.EVALUATE_LEVEL == EvaluateLevelEnum.三级); + var countLevel4 = allrisk.Count(t => t.TYPE_ID == type.ID && t.EVALUATE_LEVEL == EvaluateLevelEnum.四级); + var totalCount = countLevel1 + countLevel2 + countLevel3 + countLevel4; + if (totalCount == 0) + { + continue; + } + modelFXLB.NAME.Add(type.NAME); + modelFXLB.LEVEL1.Add(countLevel1); + modelFXLB.LEVEL2.Add(countLevel2); + modelFXLB.LEVEL3.Add(countLevel3); + modelFXLB.LEVEL4.Add(countLevel4); + modelFXLB.TOTAL.Add(totalCount); + } + var newModelFXLB = SortByTotal(modelFXLB); + riskPerformanceData.CHARTLIST.Add(modelFXLB); + #endregion + + #region 5 + PerformanceModel modelZRDY = new PerformanceModel(); + foreach (var department in distinctDepartment) + { + var countLevel1 = allrisk.Count(t => t.SOURCE_DEPARTMENT_ID == department.ID && t.EVALUATE_LEVEL == EvaluateLevelEnum.一级); + var countLevel2 = allrisk.Count(t => t.SOURCE_DEPARTMENT_ID == department.ID && t.EVALUATE_LEVEL == EvaluateLevelEnum.二级); + var countLevel3 = allrisk.Count(t => t.SOURCE_DEPARTMENT_ID == department.ID && t.EVALUATE_LEVEL == EvaluateLevelEnum.三级); + var countLevel4 = allrisk.Count(t => t.SOURCE_DEPARTMENT_ID == department.ID && t.EVALUATE_LEVEL == EvaluateLevelEnum.四级); + if (countLevel1 + countLevel2 + countLevel3 + countLevel4 == 0) + { + continue; + } + modelZRDY.NAME.Add(department.NAME); + modelZRDY.LEVEL1.Add(countLevel1); + modelZRDY.LEVEL2.Add(countLevel2); + modelZRDY.LEVEL3.Add(countLevel3); + modelZRDY.LEVEL4.Add(countLevel4); + } + riskPerformanceData.CHARTLIST.Add(modelZRDY); + #endregion + + #region 6 + PerformanceModel modelDepartmentType = new PerformanceModel(); + foreach (FMDepartmentType level in Enum.GetValues(typeof(FMDepartmentType))) + { + var levelName = level.GetDescription(); + modelDepartmentType.NAME.Add(levelName); + modelDepartmentType.LEVEL1.Add(allrisk.Count(t => t.LEVEL == level && t.EVALUATE_LEVEL == EvaluateLevelEnum.一级)); + modelDepartmentType.LEVEL2.Add(allrisk.Count(t => t.LEVEL == level && t.EVALUATE_LEVEL == EvaluateLevelEnum.二级)); + modelDepartmentType.LEVEL3.Add(allrisk.Count(t => t.LEVEL == level && t.EVALUATE_LEVEL == EvaluateLevelEnum.三级)); + modelDepartmentType.LEVEL4.Add(allrisk.Count(t => t.LEVEL == level && t.EVALUATE_LEVEL == EvaluateLevelEnum.四级)); + } + riskPerformanceData.CHARTLIST.Add(modelDepartmentType); + #endregion + + #region 7 + PerformanceModel modelArea = new PerformanceModel(); + foreach (var area in distinctArea) + { + var countLevel1 = allrisk.Count(t => t.AREA_ID == area.ID && t.EVALUATE_LEVEL == EvaluateLevelEnum.一级); + var countLevel2 = allrisk.Count(t => t.AREA_ID == area.ID && t.EVALUATE_LEVEL == EvaluateLevelEnum.二级); + var countLevel3 = allrisk.Count(t => t.AREA_ID == area.ID && t.EVALUATE_LEVEL == EvaluateLevelEnum.三级); + var countLevel4 = allrisk.Count(t => t.AREA_ID == area.ID && t.EVALUATE_LEVEL == EvaluateLevelEnum.四级); + var totalArea = countLevel1 + countLevel2 + countLevel3 + countLevel4; + if (totalArea == 0) + { + continue; + } + modelArea.NAME.Add(area.NAME); + modelArea.LEVEL1.Add(countLevel1); + modelArea.LEVEL2.Add(countLevel2); + modelArea.LEVEL3.Add(countLevel3); + modelArea.LEVEL4.Add(countLevel4); + modelArea.TOTAL.Add(totalArea); + } + var newModelArea = SortByTotal(modelArea); + riskPerformanceData.CHARTLIST.Add(newModelArea); + #endregion + + #region 8 + var minTypeArr = new int[] { 30, 10, 20, 0 }; + var levelArr = new int[] { 3, 0, 1, 2 }; + foreach (var minetype in minTypeArr) + { + var templevel1 = allrisk.Where(t => t.MineType == minetype && t.EVALUATE_LEVEL == EvaluateLevelEnum.一级); + var templevel2 = allrisk.Where(t => t.MineType == minetype && t.EVALUATE_LEVEL == EvaluateLevelEnum.二级); + var templevel3 = allrisk.Where(t => t.MineType == minetype && t.EVALUATE_LEVEL == EvaluateLevelEnum.三级); + var templevel4 = allrisk.Where(t => t.MineType == minetype && t.EVALUATE_LEVEL == EvaluateLevelEnum.四级); + + PerformanceModel modelSCDY = new PerformanceModel(); + modelSCDY.NAME = new List { "公司", "部门", "车间", "班组" }; + modelSCDY.LEVEL1 = new List { templevel1.Count(t => (int)t.LEVEL == levelArr[0]), templevel1.Count(t => (int)t.LEVEL == levelArr[1]), templevel1.Count(t => (int)t.LEVEL == levelArr[2]), templevel1.Count(t => (int)t.LEVEL == levelArr[3]) }; + modelSCDY.LEVEL2 = new List { templevel2.Count(t => (int)t.LEVEL == levelArr[0]), templevel2.Count(t => (int)t.LEVEL == levelArr[1]), templevel2.Count(t => (int)t.LEVEL == levelArr[2]), templevel2.Count(t => (int)t.LEVEL == levelArr[3]) }; + modelSCDY.LEVEL3 = new List { templevel3.Count(t => (int)t.LEVEL == levelArr[0]), templevel3.Count(t => (int)t.LEVEL == levelArr[1]), templevel3.Count(t => (int)t.LEVEL == levelArr[2]), templevel3.Count(t => (int)t.LEVEL == levelArr[3]) }; + modelSCDY.LEVEL4 = new List { templevel4.Count(t => (int)t.LEVEL == levelArr[0]), templevel4.Count(t => (int)t.LEVEL == levelArr[1]), templevel4.Count(t => (int)t.LEVEL == levelArr[2]), templevel4.Count(t => (int)t.LEVEL == levelArr[3]) }; + riskPerformanceData.SCDYLIST.Add(modelSCDY); + } + #endregion + #region 9 + foreach (var level in levelArr) + { + var templevel1 = allrisk.Where(t => (int)t.LEVEL == level && t.EVALUATE_LEVEL == EvaluateLevelEnum.一级); + var templevel2 = allrisk.Where(t => (int)t.LEVEL == level && t.EVALUATE_LEVEL == EvaluateLevelEnum.二级); + var templevel3 = allrisk.Where(t => (int)t.LEVEL == level && t.EVALUATE_LEVEL == EvaluateLevelEnum.三级); + var templevel4 = allrisk.Where(t => (int)t.LEVEL == level && t.EVALUATE_LEVEL == EvaluateLevelEnum.四级); + + PerformanceModel modelCJ = new PerformanceModel(); + modelCJ.NAME = new List { "露天矿", "选矿厂", "尾矿厂", "职能部门" }; + modelCJ.LEVEL1 = new List { templevel1.Count(t => (int)t.MineType == minTypeArr[0]), templevel1.Count(t => (int)t.MineType == minTypeArr[1]), templevel1.Count(t => (int)t.MineType == minTypeArr[2]), templevel1.Count(t => (int)t.MineType == minTypeArr[3]) }; + modelCJ.LEVEL2 = new List { templevel2.Count(t => (int)t.MineType == minTypeArr[0]), templevel2.Count(t => (int)t.MineType == minTypeArr[1]), templevel2.Count(t => (int)t.MineType == minTypeArr[2]), templevel2.Count(t => (int)t.MineType == minTypeArr[3]) }; + modelCJ.LEVEL3 = new List { templevel3.Count(t => (int)t.MineType == minTypeArr[0]), templevel3.Count(t => (int)t.MineType == minTypeArr[1]), templevel3.Count(t => (int)t.MineType == minTypeArr[2]), templevel3.Count(t => (int)t.MineType == minTypeArr[3]) }; + modelCJ.LEVEL4 = new List { templevel4.Count(t => (int)t.MineType == minTypeArr[0]), templevel4.Count(t => (int)t.MineType == minTypeArr[1]), templevel4.Count(t => (int)t.MineType == minTypeArr[2]), templevel4.Count(t => (int)t.MineType == minTypeArr[3]) }; + riskPerformanceData.CJLIST.Add(modelCJ); + } + #endregion + #region 10 + List SubZRDY = new List(); + foreach (int minetype in minTypeArr) + { + PerformanceModel modelSubZRDY = new PerformanceModel(); + foreach (var team in distinctTeamDepartment) + { + var countLevel1 = allrisk.Count(t => t.DEPARTMENT_LIABLE_ID == team.ID && t.MineType == minetype && t.EVALUATE_LEVEL == EvaluateLevelEnum.一级); + var countLevel2 = allrisk.Count(t => t.DEPARTMENT_LIABLE_ID == team.ID && t.MineType == minetype && t.EVALUATE_LEVEL == EvaluateLevelEnum.二级); + var countLevel3 = allrisk.Count(t => t.DEPARTMENT_LIABLE_ID == team.ID && t.MineType == minetype && t.EVALUATE_LEVEL == EvaluateLevelEnum.三级); + var countLevel4 = allrisk.Count(t => t.DEPARTMENT_LIABLE_ID == team.ID && t.MineType == minetype && t.EVALUATE_LEVEL == EvaluateLevelEnum.四级); + var totalZRDY = countLevel1 + countLevel2 + countLevel3 + countLevel4; + if (totalZRDY == 0) + { + continue; + } + modelSubZRDY.NAME.Add(team.NAME); + modelSubZRDY.LEVEL1.Add(countLevel1); + modelSubZRDY.LEVEL2.Add(countLevel2); + modelSubZRDY.LEVEL3.Add(countLevel3); + modelSubZRDY.LEVEL4.Add(countLevel4); + modelSubZRDY.TOTAL.Add(totalZRDY); + } + SubZRDY.Add(SortByTotal(modelSubZRDY)); + } + riskPerformanceData.TEAMLIST = SubZRDY; + #endregion + #region 11 + List SubQY = new List(); + foreach (int minetype in minTypeArr) + { + PerformanceModel modelSubQY = new PerformanceModel(); + foreach (var area in distinctArea) + { + var countLevel1 = allrisk.Count(t => t.AREA_ID == area.ID && t.MineType == minetype && t.EVALUATE_LEVEL == EvaluateLevelEnum.一级); + var countLevel2 = allrisk.Count(t => t.AREA_ID == area.ID && t.MineType == minetype && t.EVALUATE_LEVEL == EvaluateLevelEnum.二级); + var countLevel3 = allrisk.Count(t => t.AREA_ID == area.ID && t.MineType == minetype && t.EVALUATE_LEVEL == EvaluateLevelEnum.三级); + var countLevel4 = allrisk.Count(t => t.AREA_ID == area.ID && t.MineType == minetype && t.EVALUATE_LEVEL == EvaluateLevelEnum.四级); + var totalZRDY = countLevel1 + countLevel2 + countLevel3 + countLevel4; + if (totalZRDY == 0) + { + continue; + } + modelSubQY.NAME.Add(area.NAME); + modelSubQY.LEVEL1.Add(countLevel1); + modelSubQY.LEVEL2.Add(countLevel2); + modelSubQY.LEVEL3.Add(countLevel3); + modelSubQY.LEVEL4.Add(countLevel4); + modelSubQY.TOTAL.Add(totalZRDY); + } + SubQY.Add(SortByTotal(modelSubQY)); + } + riskPerformanceData.AREALIST = SubQY; + #endregion + #region 12 + List SubFXLB = new List(); + foreach (int minetype in minTypeArr) + { + PerformanceModel modelSubFXLB = new PerformanceModel(); + foreach (var type in distinctType) + { + var countLevel1 = allrisk.Count(t => t.TYPE_ID == type.ID && t.MineType == minetype && t.EVALUATE_LEVEL == EvaluateLevelEnum.一级); + var countLevel2 = allrisk.Count(t => t.TYPE_ID == type.ID && t.MineType == minetype && t.EVALUATE_LEVEL == EvaluateLevelEnum.二级); + var countLevel3 = allrisk.Count(t => t.TYPE_ID == type.ID && t.MineType == minetype && t.EVALUATE_LEVEL == EvaluateLevelEnum.三级); + var countLevel4 = allrisk.Count(t => t.TYPE_ID == type.ID && t.MineType == minetype && t.EVALUATE_LEVEL == EvaluateLevelEnum.四级); + var totalZRDY = countLevel1 + countLevel2 + countLevel3 + countLevel4; + if (totalZRDY == 0) + { + continue; + } + modelSubFXLB.NAME.Add(type.NAME); + modelSubFXLB.LEVEL1.Add(countLevel1); + modelSubFXLB.LEVEL2.Add(countLevel2); + modelSubFXLB.LEVEL3.Add(countLevel3); + modelSubFXLB.LEVEL4.Add(countLevel4); + modelSubFXLB.TOTAL.Add(totalZRDY); + } + SubFXLB.Add(SortByTotal(modelSubFXLB)); + } + riskPerformanceData.RISKTYPELIST = SubFXLB; + #endregion + #region 13 + + PerformanceModel CHARTZYRW1 = new PerformanceModel(); + var allzyrw = GetEntities(t => t.IS_DELETED == false, new BaseFilter(filter.GetOrgId())); + CHARTZYRW1.NAME = new List { "许可作业", "关键任务", "一般任务" }; + var zy1 = allzyrw.Count(t => t.TASK_LEVEL == 1); + var zy2 = allzyrw.Count(t => t.TASK_LEVEL == 2); + var zy3 = allzyrw.Count(t => t.TASK_LEVEL == 3); + CHARTZYRW1.LEVEL1 = new List { zy1, zy2, zy3 }; + riskPerformanceData.CHARTZYRW1 = CHARTZYRW1; + #endregion + #region 2 + List modelZyrws = new List { }; + PerformanceModel1 modelZyrw1 = new PerformanceModel1(); + PerformanceModel1 modelZyrw2 = new PerformanceModel1(); + PerformanceModel1 modelZyrw3 = new PerformanceModel1(); + + modelZyrw1.name = "许可作业"; + modelZyrw1.value = allzyrw.Count(t => t.TASK_LEVEL == 1); + modelZyrws.Add(modelZyrw1); + modelZyrw2.name = "关键任务"; + modelZyrw2.value = allzyrw.Count(t => t.TASK_LEVEL == 2); + modelZyrws.Add(modelZyrw2); + modelZyrw3.name = "一般任务"; + modelZyrw3.value = allzyrw.Count(t => t.TASK_LEVEL == 3); + modelZyrws.Add(modelZyrw3); + riskPerformanceData.CHARTZYRW2 = modelZyrws; + #endregion + #region + var currMonth = DateTime.Now.Month; + DateTime today = DateTime.Today; + for (var i = 1; i < currMonth + 1; i++) + { + DateTime endOfMonth = new DateTime(today.Year, i, 1).AddMonths(1).AddSeconds(-1); + dateCountModel riskDate = new dateCountModel(); + riskDate.DATE = endOfMonth; + riskDate.COUNT = allrisk.Count(t => t.CREATE_TIME <= endOfMonth); + riskDate.TYPE = 0; + item3s.Add(riskDate); + dateCountModel hazardDate = new dateCountModel(); + hazardDate.DATE = endOfMonth; + hazardDate.COUNT = allhazard.Count(t => t.CREATE_TIME <= endOfMonth); ; + hazardDate.TYPE = 1; + item3s.Add(hazardDate); + } + #endregion + + riskPerformanceData.DATECOUNTS = item3s.OrderBy(t => t.DATE).ToList(); + return riskPerformanceData; + }); + } + /// + /// 风险库统计新 + /// + /// 返回系统用户数 + /// [HttpPost, Route("getRiskPerformanceData")] public JsonActionResult getRiskPerformanceData([FromBody] KeywordFilter filter) {