From fa074e6bfce456256a4f9aa42c89e69a0582f6e7 Mon Sep 17 00:00:00 2001
From: fuliqi <fuliqi@qq.com>
Date: 星期三, 25 九月 2024 15:05:16 +0800
Subject: [PATCH] 大屏考核分数保留一位数
---
ycl-pojo/src/main/java/com/ycl/platform/domain/entity/CheckIndexVideo.java | 121 +++++++++++++++++++++++++++++++++++-----
1 files changed, 106 insertions(+), 15 deletions(-)
diff --git a/ycl-pojo/src/main/java/com/ycl/platform/domain/entity/CheckIndexVideo.java b/ycl-pojo/src/main/java/com/ycl/platform/domain/entity/CheckIndexVideo.java
index 982515a..bed934e 100644
--- a/ycl-pojo/src/main/java/com/ycl/platform/domain/entity/CheckIndexVideo.java
+++ b/ycl-pojo/src/main/java/com/ycl/platform/domain/entity/CheckIndexVideo.java
@@ -5,9 +5,16 @@
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import com.ycl.platform.base.CheckIndex;
+import com.ycl.platform.domain.vo.CheckIndexCarVO;
+import com.ycl.platform.domain.vo.CheckIndexVideoVO;
+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;
@@ -25,98 +32,84 @@
/**
* 骞冲彴鍦ㄧ嚎鐜�
*/
- @Excel(name = "骞冲彴鍦ㄧ嚎鐜�")
@TableField("platform_online")
private BigDecimal platformOnline;
/**
* 涓�鏈轰竴妗e悎鏍肩巼
*/
- @Excel(name = "涓�鏈轰竴妗e悎鏍肩巼")
@TableField("monitor_qualification")
private BigDecimal monitorQualification;
/**
* 妗f鑰冩牳姣�
*/
- @Excel(name = "涓�鏈轰竴妗f敞鍐岀巼")
@TableField("monitor_registration")
private BigDecimal monitorRegistration;
/**
* 妗f鑰冩牳姣�
*/
- @Excel(name = "妗f鑰冩牳姣�")
@TableField("archives_rate")
private BigDecimal archivesRate;
/**
* 鐐逛綅鍦ㄧ嚎鐜�
*/
- @Excel(name = "鐐逛綅鍦ㄧ嚎鐜�")
@TableField("site_online")
private BigDecimal siteOnline;
/**
* 褰曡薄鍙敤鐜�
*/
- @Excel(name = "褰曡薄鍙敤鐜�")
@TableField("video_available")
private BigDecimal videoAvailable;
/**
* 閮ㄧ骇鐐逛綅鍦ㄧ嚎鐜�
*/
- @Excel(name = "閮ㄧ骇鐐逛綅鍦ㄧ嚎鐜�")
@TableField("ministry_site_online")
private BigDecimal ministrySiteOnline;
/**
* 閮ㄧ骇宸℃褰曞儚鍙敤鐜�
*/
- @Excel(name = "閮ㄧ骇宸℃褰曞儚鍙敤鐜�")
@TableField("ministry_video_available")
private BigDecimal ministryVideoAvailable;
/**
* 閲嶇偣鐐逛綅鍦ㄧ嚎鐜�
*/
- @Excel(name = "閲嶇偣鐐逛綅鍦ㄧ嚎鐜�")
@TableField("key_site_online")
private BigDecimal keySiteOnline;
/**
* 閲嶇偣鐐逛綅褰曡薄鍙敤鐜�
*/
- @Excel(name = "閲嶇偣鐐逛綅褰曡薄鍙敤鐜�", width = 25)
@TableField("key_video_available")
private BigDecimal keyVideoAvailable;
/**
* 閲嶇偣鐐逛綅鏍囨敞姝g‘鐜�
*/
- @Excel(name = "閲嶇偣鐐逛綅鏍囨敞姝g‘鐜�", width = 25)
@TableField("key_annotation_accuracy")
private BigDecimal keyAnnotationAccuracy;
/**
* 閲嶇偣鐐逛綅鎸夋椂姝g‘鐜�
*/
- @Excel(name = "閲嶇偣鐐逛綅鎸夋椂姝g‘鐜�", width = 25)
@TableField("key_timing_accuracy")
private BigDecimal keyTimingAccuracy;
/**
- * 閲嶇偣鎸囨尌鍥惧儚鍦ㄧ嚎鐜�
+ * 閲嶇偣鎸囨尌鍥惧儚鍦ㄧ嚎鐜�
*/
- @Excel(name = "閲嶇偣鎸囨尌鍥惧儚鍦ㄧ嚎鐜�", width = 25)
@TableField("key_command_image_online")
private BigDecimal keyCommandImageOnline;
/**
* 瑙嗛鍥惧儚璧勬簮瀹夊叏绠$悊
*/
- @Excel(name = "瑙嗛鍥惧儚璧勬簮瀹夊叏绠$悊", width = 25)
@TableField("image_resource_security")
private BigDecimal imageResourceSecurity;
@@ -124,4 +117,102 @@
@ExcelIgnore
@TableField(exist = false)
private List<String> quarter;
+
+ //杞崲鎴愬瓧绗︿覆鐢ㄤ簬excel瀵煎嚭
+ public static CheckIndexVideoVO getExcelVo(@NonNull CheckIndexVideo checkIndexVideo) {
+ CheckIndexVideoVO checkIndexVideoVO = new CheckIndexVideoVO();
+ checkIndexVideoVO.setNum(checkIndexVideo.getNum());
+ checkIndexVideoVO.setScore(checkIndexVideo.getScore().setScale(2, RoundingMode.HALF_UP));
+ checkIndexVideoVO.setDeptName(checkIndexVideo.getDeptName());
+ //閬垮厤鍚堣琛屾姤閿�(鍚堣鏁版嵁 缂哄皯createTimeStr瀛楁 鐩存帴灏哻reateTimeStr璁剧疆涓�"鍚堣")
+ if (StringUtils.isEmpty(checkIndexVideo.getCreateTimeStr())) {
+ SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
+ checkIndexVideoVO.setCreateTimeStr(format.format(checkIndexVideo.getCreateTime()));
+ } else {
+ checkIndexVideoVO.setCreateTimeStr(checkIndexVideo.getCreateTimeStr());
+ }
+ checkIndexVideoVO.setExamineTagStr(CheckConstants.Examine_Tag_Province.equals(checkIndexVideo.getExamineTag()) ? "鐪佸巺鑰冩牳" : "鍖哄幙鑰冩牳");
+ checkIndexVideoVO.setSiteOnlineText(checkIndexVideo.getSiteOnline().multiply(new BigDecimal(100)).setScale(2, RoundingMode.HALF_UP) + "%");
+ checkIndexVideoVO.setImageResourceSecurityText(checkIndexVideo.getImageResourceSecurity().multiply(new BigDecimal(100)).setScale(2, RoundingMode.HALF_UP) + "%");
+ checkIndexVideoVO.setArchivesRateText(checkIndexVideo.getArchivesRate().multiply(new BigDecimal(100)).setScale(2, RoundingMode.HALF_UP) + "%");
+ checkIndexVideoVO.setKeyAnnotationAccuracyText(checkIndexVideo.getKeyAnnotationAccuracy().multiply(new BigDecimal(100)).setScale(2, RoundingMode.HALF_UP) + "%");
+ checkIndexVideoVO.setKeyCommandImageOnlineText(checkIndexVideo.getKeyCommandImageOnline().multiply(new BigDecimal(100)).setScale(2, RoundingMode.HALF_UP) + "%");
+ checkIndexVideoVO.setKeyVideoAvailableText(checkIndexVideo.getKeyVideoAvailable().multiply(new BigDecimal(100)).setScale(2, RoundingMode.HALF_UP) + "%");
+ checkIndexVideoVO.setKeySiteOnlineText(checkIndexVideo.getKeySiteOnline().multiply(new BigDecimal(100)).setScale(2, RoundingMode.HALF_UP) + "%");
+ checkIndexVideoVO.setKeyTimingAccuracyText(checkIndexVideo.getKeyTimingAccuracy().multiply(new BigDecimal(100)).setScale(2, RoundingMode.HALF_UP) + "%");
+ checkIndexVideoVO.setMinistryVideoAvailableText(checkIndexVideo.getMinistryVideoAvailable().multiply(new BigDecimal(100)).setScale(2, RoundingMode.HALF_UP) + "%");
+ checkIndexVideoVO.setVideoAvailableText(checkIndexVideo.getVideoAvailable().multiply(new BigDecimal(100)).setScale(2, RoundingMode.HALF_UP) + "%");
+ checkIndexVideoVO.setMinistrySiteOnlineText(checkIndexVideo.getMinistrySiteOnline().multiply(new BigDecimal(100)).setScale(2, RoundingMode.HALF_UP) + "%");
+ checkIndexVideoVO.setPlatformOnlineText(checkIndexVideo.getPlatformOnline().multiply(new BigDecimal(100)).setScale(2, RoundingMode.HALF_UP) + "%");
+ checkIndexVideoVO.setMonitorQualificationText(checkIndexVideo.getMonitorQualification().multiply(new BigDecimal(100)).setScale(2, RoundingMode.HALF_UP) + "%");
+ checkIndexVideoVO.setMonitorRegistrationText(checkIndexVideo.getMonitorRegistration().multiply(new BigDecimal(100)).setScale(2, RoundingMode.HALF_UP) + "%");
+
+ return checkIndexVideoVO;
+ }
+
+ /**
+ * 鐢ㄤ簬瀵煎嚭璁$畻骞冲潎鍊�
+ */
+ public static CheckIndexVideo calculateAverage(List<CheckIndexVideo> videos) {
+ Integer numSum = 0;
+ BigDecimal scoreSum = BigDecimal.ZERO;
+ BigDecimal totalPlatformOnline = BigDecimal.ZERO;
+ BigDecimal totalMonitorQualification = BigDecimal.ZERO;
+ BigDecimal totalMonitorRegistration = BigDecimal.ZERO;
+ BigDecimal totalArchivesRate = BigDecimal.ZERO;
+ BigDecimal totalSiteOnline = BigDecimal.ZERO;
+ BigDecimal totalVideoAvailable = BigDecimal.ZERO;
+ BigDecimal totalMinistrySiteOnline = BigDecimal.ZERO;
+ BigDecimal totalMinistryVideoAvailable = BigDecimal.ZERO;
+ BigDecimal totalKeySiteOnline = BigDecimal.ZERO;
+ BigDecimal totalKeyVideoAvailable = BigDecimal.ZERO;
+ BigDecimal totalKeyAnnotationAccuracy = BigDecimal.ZERO;
+ BigDecimal totalKeyTimingAccuracy = BigDecimal.ZERO;
+ BigDecimal totalKeyCommandImageOnline = BigDecimal.ZERO;
+ BigDecimal totalImageResourceSecurity = BigDecimal.ZERO;
+
+ int count = videos.size();
+ for (CheckIndexVideo video : videos) {
+ numSum = numSum + (video.getNum() == null? 0:video.getNum());
+ scoreSum = scoreSum.add(video.getScore() == null ? BigDecimal.ZERO : video.getScore());
+ totalPlatformOnline = totalPlatformOnline.add(video.getPlatformOnline());
+ totalMonitorQualification = totalMonitorQualification.add(video.getMonitorQualification());
+ totalMonitorRegistration = totalMonitorRegistration.add(video.getMonitorRegistration());
+ totalArchivesRate = totalArchivesRate.add(video.getArchivesRate());
+ totalSiteOnline = totalSiteOnline.add(video.getSiteOnline());
+ totalVideoAvailable = totalVideoAvailable.add(video.getVideoAvailable());
+ totalMinistrySiteOnline = totalMinistrySiteOnline.add(video.getMinistrySiteOnline());
+ totalMinistryVideoAvailable = totalMinistryVideoAvailable.add(video.getMinistryVideoAvailable());
+ totalKeySiteOnline = totalKeySiteOnline.add(video.getKeySiteOnline());
+ totalKeyVideoAvailable = totalKeyVideoAvailable.add(video.getKeyVideoAvailable());
+ totalKeyAnnotationAccuracy = totalKeyAnnotationAccuracy.add(video.getKeyAnnotationAccuracy());
+ totalKeyTimingAccuracy = totalKeyTimingAccuracy.add(video.getKeyTimingAccuracy());
+ totalKeyCommandImageOnline = totalKeyCommandImageOnline.add(video.getKeyCommandImageOnline());
+ totalImageResourceSecurity = totalImageResourceSecurity.add(video.getImageResourceSecurity());
+ }
+
+ // 鍒涘缓涓�涓柊鐨凜heckIndexVideo瀵硅薄骞惰缃钩鍧囧��
+ CheckIndexVideo averageVideo = new CheckIndexVideo();
+ averageVideo.setCreateTimeStr("鍚堣");
+ averageVideo.setDeptName(videos.get(0).getDeptName());
+ averageVideo.setExamineTag(videos.get(0).getExamineTag());
+ averageVideo.setNum(numSum/count);
+ averageVideo.setScore(scoreSum.divide(BigDecimal.valueOf(count), 2, RoundingMode.HALF_UP));
+ averageVideo.setPlatformOnline(totalPlatformOnline.divide(BigDecimal.valueOf(count), 2, RoundingMode.HALF_UP));
+ averageVideo.setMonitorQualification(totalMonitorQualification.divide(BigDecimal.valueOf(count), 2, RoundingMode.HALF_UP));
+ averageVideo.setMonitorRegistration(totalMonitorRegistration.divide(BigDecimal.valueOf(count), 2, RoundingMode.HALF_UP));
+ averageVideo.setArchivesRate(totalArchivesRate.divide(BigDecimal.valueOf(count), 2, RoundingMode.HALF_UP));
+ averageVideo.setSiteOnline(totalSiteOnline.divide(BigDecimal.valueOf(count), 2, RoundingMode.HALF_UP));
+ averageVideo.setVideoAvailable(totalVideoAvailable.divide(BigDecimal.valueOf(count), 2, RoundingMode.HALF_UP));
+ averageVideo.setMinistrySiteOnline(totalMinistrySiteOnline.divide(BigDecimal.valueOf(count), 2, RoundingMode.HALF_UP));
+ averageVideo.setMinistryVideoAvailable(totalMinistryVideoAvailable.divide(BigDecimal.valueOf(count), 2, RoundingMode.HALF_UP));
+ averageVideo.setKeySiteOnline(totalKeySiteOnline.divide(BigDecimal.valueOf(count), 2, RoundingMode.HALF_UP));
+ averageVideo.setKeyVideoAvailable(totalKeyVideoAvailable.divide(BigDecimal.valueOf(count), 2, RoundingMode.HALF_UP));
+ averageVideo.setKeyAnnotationAccuracy(totalKeyAnnotationAccuracy.divide(BigDecimal.valueOf(count), 2, RoundingMode.HALF_UP));
+ averageVideo.setKeyTimingAccuracy(totalKeyTimingAccuracy.divide(BigDecimal.valueOf(count), 2, RoundingMode.HALF_UP));
+ averageVideo.setKeyCommandImageOnline(totalKeyCommandImageOnline.divide(BigDecimal.valueOf(count), 2, RoundingMode.HALF_UP));
+ averageVideo.setImageResourceSecurity(totalImageResourceSecurity.divide(BigDecimal.valueOf(count), 2, RoundingMode.HALF_UP));
+
+ return averageVideo;
+ }
}
--
Gitblit v1.8.0