From 3b0516a2959e25576e4f3fda697a3b025d06c8c9 Mon Sep 17 00:00:00 2001 From: zxl <763096477@qq.com> Date: 星期二, 24 六月 2025 14:09:07 +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..0c3448d 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()) ? "鐪佸巺鑰冩牳" : CheckConstants.Examine_Tag_County.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