From 50941d67550e062fe9acf90c22c6f2a575a361b4 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: Tue, 27 Jan 2026 16:40:48 +0800
Subject: [PATCH] =?UTF-8?q?=E7=B3=BB=E7=BB=9F=E8=BF=90=E8=A1=8C=E6=8A=A5?=
=?UTF-8?q?=E8=A1=A8?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../Api/BIController/BIHomeController.cs | 53 +++++++++++++++----
.../BIStatiscialAnalysisController.cs | 4 +-
2 files changed, 45 insertions(+), 12 deletions(-)
diff --git a/APT.MicroApi/APT.SC.WebApi/Controllers/Api/BIController/BIHomeController.cs b/APT.MicroApi/APT.SC.WebApi/Controllers/Api/BIController/BIHomeController.cs
index 4ba9649..2161bf2 100644
--- a/APT.MicroApi/APT.SC.WebApi/Controllers/Api/BIController/BIHomeController.cs
+++ b/APT.MicroApi/APT.SC.WebApi/Controllers/Api/BIController/BIHomeController.cs
@@ -1,15 +1,18 @@
-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.ApiModel.Platform;
+using APT.BaseData.Domain.Entities.FM;
using APT.BaseData.Domain.IServices.BI;
-using APT.BaseData.Domain.ApiModel.Platform;
+using APT.Infrastructure.Api;
using APT.Infrastructure.Api.Redis;
+using APT.Infrastructure.Core;
+using APT.MS.Domain.Entities.BI;
+using APT.MS.Domain.Entities.HM;
+using APT.MS.Domain.Entities.SK;
+using APT.Utility;
+using log4net.Core;
+using Microsoft.AspNetCore.Mvc;
+using System;
+using System.Collections.Generic;
+using System.Linq;
namespace APT.SC.WebApi.Controllers.Api.BI
{
@@ -2113,6 +2116,36 @@ namespace APT.SC.WebApi.Controllers.Api.BI
#endregion
+ return result;
+ });
+ }
+ ///
+ /// 风险等级占比
+ ///
+ /// 过滤实体
+ ///
+ [HttpPost, Route("GetHomeRiskLevel")]
+ public JsonActionResult> GetHomeRiskLevel([FromBody] KeywordFilter filter)
+ {
+ return SafeExecute(() =>
+ {
+
+ List result = new List();
+ BaseFilter baseFilter = new BaseFilter(filter.GetOrgId());
+ baseFilter.SelectField = new string[] { "EVALUATE_LEVEL" };
+ var evaluateRisks = GetEntities(t => t.EVALUATE_LEVEL != null && t.ENABLE_STATUS == 0, baseFilter).OrderBy(i => i.EVALUATE_LEVEL).ToList();
+ var distinctLevelTypes = evaluateRisks.GroupBy(m => new { m.EVALUATE_LEVEL }).Select(group => new { group.Key.EVALUATE_LEVEL, count = group.Count() }).ToList();
+ int i = 1;
+ foreach (var item in distinctLevelTypes)
+ {
+ T_FM_RISK_LEVEL_PROPORTION riskLevelProportion = new T_FM_RISK_LEVEL_PROPORTION();
+ riskLevelProportion.COUNT = item.count;
+ riskLevelProportion.NUM = i;
+ riskLevelProportion.RISK_LEVEL = item.EVALUATE_LEVEL.GetDescription();
+ riskLevelProportion.ORG_ID = filter.GetOrgId();
+ result.Add(riskLevelProportion);
+ i++;
+ }
return result;
});
}
diff --git a/APT.MicroApi/APT.SC.WebApi/Controllers/Api/BIController/BIStatiscialAnalysisController.cs b/APT.MicroApi/APT.SC.WebApi/Controllers/Api/BIController/BIStatiscialAnalysisController.cs
index 0727fa5..be2d778 100644
--- a/APT.MicroApi/APT.SC.WebApi/Controllers/Api/BIController/BIStatiscialAnalysisController.cs
+++ b/APT.MicroApi/APT.SC.WebApi/Controllers/Api/BIController/BIStatiscialAnalysisController.cs
@@ -11241,8 +11241,8 @@ namespace APT.SC.WebApi.Controllers.Api.BIController
info.DOING = details.Count(t => t.NOTICE_STATUS == "0" && t.TASK_ENDDT >= DateTime.Now);
info.UNFINISH = details.Count(t => t.NOTICE_STATUS == "0");
info.OVER_UNFINISH = details.Count(t => t.NOTICE_STATUS == "0" && t.TASK_ENDDT < DateTime.Now);
- info.FINISH_RATE = info.TOTAL_QTY == 0 ? "0" : ((info.NORMAL_FINISH + info.OVER_FINISH) / info.TOTAL_QTY * 100).ToString();
- info.NORMAL_RATE = info.TOTAL_QTY == 0 ? "0" : (info.NORMAL_FINISH / info.TOTAL_QTY * 100).ToString();
+ info.FINISH_RATE = info.TOTAL_QTY == 0 ? "0" : ((double)(info.NORMAL_FINISH + info.OVER_FINISH) / info.TOTAL_QTY * 100).ToString("0.00");
+ info.NORMAL_RATE = info.TOTAL_QTY == 0 ? "0" : ((double)info.NORMAL_FINISH / info.TOTAL_QTY * 100).ToString("0.00");
if (details != null && details.Any())
{
info.details = new List();