From 46b29175dfdafafd014212be0e340544b8761493 Mon Sep 17 00:00:00 2001
From: fuliqi <fuliqi@qq.com>
Date: 星期四, 05 九月 2024 21:52:06 +0800
Subject: [PATCH] 考核结果导出优化

---
 ycl-pojo/src/main/java/com/ycl/platform/domain/entity/CheckIndexFace.java |   51 ++++++++++++++++++++++++++++++++++++++++++++++++++-
 1 files changed, 50 insertions(+), 1 deletions(-)

diff --git a/ycl-pojo/src/main/java/com/ycl/platform/domain/entity/CheckIndexFace.java b/ycl-pojo/src/main/java/com/ycl/platform/domain/entity/CheckIndexFace.java
index 3ae107b..0c80fc1 100644
--- a/ycl-pojo/src/main/java/com/ycl/platform/domain/entity/CheckIndexFace.java
+++ b/ycl-pojo/src/main/java/com/ycl/platform/domain/entity/CheckIndexFace.java
@@ -10,9 +10,11 @@
 import constant.CheckConstants;
 import lombok.Data;
 import org.springframework.lang.NonNull;
+import utils.StringUtils;
 
 import java.math.BigDecimal;
 import java.math.RoundingMode;
+import java.text.SimpleDateFormat;
 import java.util.Date;
 import java.util.List;
 
@@ -81,8 +83,15 @@
     //杞崲鎴愬瓧绗︿覆鐢ㄤ簬excel瀵煎嚭
     public static CheckIndexFaceVO getExcelVo(@NonNull CheckIndexFace checkIndexFace) {
         CheckIndexFaceVO checkIndexFaceVo = new CheckIndexFaceVO();
+        checkIndexFaceVo.setScore(checkIndexFace.getScore());
+        SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
+        //閬垮厤鍚堣琛屾姤閿�(鍚堣鏁版嵁 缂哄皯createTimeStr瀛楁 鐩存帴灏哻reateTimeStr璁剧疆涓�"鍚堣")
+        if (StringUtils.isEmpty(checkIndexFace.getCreateTimeStr())) {
+            checkIndexFaceVo.setCreateTimeStr(format.format(checkIndexFace.getCreateTime()));
+        }else {
+            checkIndexFaceVo.setCreateTimeStr(checkIndexFace.getCreateTimeStr());
+        }
         checkIndexFaceVo.setDeptName(checkIndexFace.getDeptName());
-        checkIndexFaceVo.setCreateTime(checkIndexFace.getCreateTime());
         checkIndexFaceVo.setExamineTagStr(CheckConstants.Examine_Tag_Province.equals(checkIndexFace.getExamineTag()) ? "鐪佸巺鑰冩牳" : "鍖哄幙鑰冩牳");
         checkIndexFaceVo.setSiteOnlineText(checkIndexFace.getSiteOnline().multiply(new BigDecimal(100)).setScale(2, RoundingMode.HALF_UP) + "%");
         checkIndexFaceVo.setFaceInformationCollectionAccuracyText(checkIndexFace.getFaceInformationCollectionAccuracy().multiply(new BigDecimal(100)).setScale(2, RoundingMode.HALF_UP) + "%");
@@ -95,4 +104,44 @@
 
         return checkIndexFaceVo;
     }
+    /** 鐢ㄤ簬瀵煎嚭璁$畻骞冲潎鍊� */
+    public static CheckIndexFace calculateAverage(List<CheckIndexFace> checkIndexFaces) {
+        BigDecimal scoreSum = BigDecimal.ZERO;
+        BigDecimal totalViewConnectStability = BigDecimal.ZERO;
+        BigDecimal totalSiteOnline = BigDecimal.ZERO;
+        BigDecimal totalDeviceDirectoryConsistent = BigDecimal.ZERO;
+        BigDecimal totalFaceInformationCollectionAccuracy = BigDecimal.ZERO;
+        BigDecimal totalFacePictureQualification = BigDecimal.ZERO;
+        BigDecimal totalFaceTimingAccuracy = BigDecimal.ZERO;
+        BigDecimal totalFaceUploadTimeliness = BigDecimal.ZERO;
+        BigDecimal totalFacePictureAvailability = BigDecimal.ZERO;
+
+        int count = checkIndexFaces.size();
+
+        for (CheckIndexFace indexFace : checkIndexFaces) {
+            scoreSum = scoreSum.add(indexFace.getScore() == null ? BigDecimal.ZERO : indexFace.getScore());
+            totalViewConnectStability = totalViewConnectStability.add(indexFace.getViewConnectStability());
+            totalSiteOnline = totalSiteOnline.add(indexFace.getSiteOnline());
+            totalDeviceDirectoryConsistent = totalDeviceDirectoryConsistent.add(indexFace.getDeviceDirectoryConsistent());
+            totalFaceInformationCollectionAccuracy = totalFaceInformationCollectionAccuracy.add(indexFace.getFaceInformationCollectionAccuracy());
+            totalFacePictureQualification = totalFacePictureQualification.add(indexFace.getFacePictureQualification());
+            totalFaceTimingAccuracy = totalFaceTimingAccuracy.add(indexFace.getFaceTimingAccuracy());
+            totalFaceUploadTimeliness = totalFaceUploadTimeliness.add(indexFace.getFaceUploadTimeliness());
+            totalFacePictureAvailability = totalFacePictureAvailability.add(indexFace.getFacePictureAvailability());
+        }
+        CheckIndexFace result = new CheckIndexFace();
+        result.setCreateTimeStr("鍚堣");
+        result.setDeptName(checkIndexFaces.get(0).getDeptName());
+        result.setExamineTag(checkIndexFaces.get(0).getExamineTag());
+        result.setScore(scoreSum);
+        result.setViewConnectStability(totalViewConnectStability.divide(BigDecimal.valueOf(count), 2, RoundingMode.HALF_UP));
+        result.setSiteOnline(totalSiteOnline.divide(BigDecimal.valueOf(count), 2, RoundingMode.HALF_UP));
+        result.setDeviceDirectoryConsistent(totalDeviceDirectoryConsistent.divide(BigDecimal.valueOf(count), 2, RoundingMode.HALF_UP));
+        result.setFaceInformationCollectionAccuracy(totalFaceInformationCollectionAccuracy.divide(BigDecimal.valueOf(count), 2, RoundingMode.HALF_UP));
+        result.setFacePictureQualification(totalFacePictureQualification.divide(BigDecimal.valueOf(count), 2, RoundingMode.HALF_UP));
+        result.setFaceTimingAccuracy(totalFaceTimingAccuracy.divide(BigDecimal.valueOf(count), 2, RoundingMode.HALF_UP));
+        result.setFaceUploadTimeliness(totalFaceUploadTimeliness.divide(BigDecimal.valueOf(count), 2, RoundingMode.HALF_UP));
+        result.setFacePictureAvailability(totalFacePictureAvailability.divide(BigDecimal.valueOf(count), 2, RoundingMode.HALF_UP));
+        return result;
+    }
 }

--
Gitblit v1.8.0