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)
{