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/CheckIndexCar.java | 327 +++++++++++++++++++++-------------------------------- 1 files changed, 131 insertions(+), 196 deletions(-) diff --git a/ycl-pojo/src/main/java/com/ycl/platform/domain/entity/CheckIndexCar.java b/ycl-pojo/src/main/java/com/ycl/platform/domain/entity/CheckIndexCar.java index 224f9e3..1431db4 100644 --- a/ycl-pojo/src/main/java/com/ycl/platform/domain/entity/CheckIndexCar.java +++ b/ycl-pojo/src/main/java/com/ycl/platform/domain/entity/CheckIndexCar.java @@ -1,233 +1,168 @@ package com.ycl.platform.domain.entity; -import annotation.Excel; +import com.alibaba.excel.annotation.ExcelIgnore; +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 constant.CheckConstants; +import lombok.Data; +import org.springframework.lang.NonNull; +import utils.StringUtils; import java.math.BigDecimal; -import java.util.Date; +import java.math.RoundingMode; +import java.text.SimpleDateFormat; +import java.util.List; /** * 杞﹁締鎸囨爣姒傜巼鏁版嵁瀵硅薄 t_check_index_car - * + * * @author ruoyi * @date 2024-04-29 */ - -public class CheckIndexCar extends CheckIndex -{ +@Data +@TableName("t_check_index_car") +public class CheckIndexCar extends CheckIndex { private static final long serialVersionUID = 1L; - - /** 瑙嗗浘搴撳鎺ョǔ瀹氭�� */ - @Excel(name = "瑙嗗浘搴撳鎺ョǔ瀹氭��") + /** + * 瑙嗗浘搴撳鎺ョǔ瀹氭�� + */ + @TableField("view_connect_stability") private BigDecimal viewConnectStability; - /** 鐐逛綅鍦ㄧ嚎鐜� */ - @Excel(name = "鐐逛綅鍦ㄧ嚎鐜�") + /** + * 鐐逛綅鍦ㄧ嚎鐜� + */ + @TableField("site_online") private BigDecimal siteOnline; - /** 鑱旂綉鍗″彛璁惧鐩綍涓�鑷寸巼 */ - @Excel(name = "鑱旂綉鍗″彛璁惧鐩綍涓�鑷寸巼",width = 25) + /** + * 鑱旂綉鍗″彛璁惧鐩綍涓�鑷寸巼 + */ + @TableField("device_directory_consistent") private BigDecimal deviceDirectoryConsistent; - /** 杞﹁締鍗″彛淇℃伅閲囬泦鍑嗙‘鐜� */ - @Excel(name = "杞﹁締鍗″彛淇℃伅閲囬泦鍑嗙‘鐜�",width = 25) + /** + * 杞﹁締鍗″彛淇℃伅閲囬泦鍑嗙‘鐜� + */ + @TableField("vehicle_information_collection_accuracy") private BigDecimal vehicleInformationCollectionAccuracy; - /** 杞﹁締鍗″彛璁惧鎶撴媿鏁版嵁瀹屾暣鎬� */ - @Excel(name = "杞﹁締鍗″彛璁惧鎶撴媿鏁版嵁瀹屾暣鎬�",width = 25) + /** + * 杞﹁締鍗″彛璁惧鎶撴媿鏁版嵁瀹屾暣鎬� + */ + @TableField("vehicle_capture_integrity") private BigDecimal vehicleCaptureIntegrity; - /** 杞﹁締鍗″彛璁惧鎶撴媿鏁版嵁鍑嗙‘鎬� */ - @Excel(name = "杞﹁締鍗″彛璁惧鎶撴媿鏁版嵁鍑嗙‘鎬�",width = 25) + /** + * 杞﹁締鍗″彛璁惧鎶撴媿鏁版嵁鍑嗙‘鎬� + */ + @TableField("vehicle_capture_accuracy") private BigDecimal vehicleCaptureAccuracy; - /** 杞﹁締鍗″彛璁惧鏃堕挓鍑嗙‘鎬� */ - @Excel(name = "杞﹁締鍗″彛璁惧鏃堕挓鍑嗙‘鎬�",width = 25) + /** + * 杞﹁締鍗″彛璁惧鏃堕挓鍑嗙‘鎬� + */ + @TableField("vehicle_timing_accuracy") private BigDecimal vehicleTimingAccuracy; - /** 杞﹁締鍗″彛璁惧鎶撴媿鏁版嵁涓婁紶鍙婃椂鎬� */ - @Excel(name = "杞﹁締鍗″彛璁惧鎶撴媿鏁版嵁涓婁紶鍙婃椂鎬�",width = 25) + /** + * 杞﹁締鍗″彛璁惧鎶撴媿鏁版嵁涓婁紶鍙婃椂鎬� + */ + @TableField("vehicle_upload_timeliness") private BigDecimal vehicleUploadTimeliness; - /** 杞﹁締鍗″彛璁惧url鍙敤鎬� */ - @Excel(name = "杞﹁締鍗″彛璁惧url鍙敤鎬�",width = 25) + /** + * 杞﹁締鍗″彛璁惧url鍙敤鎬� + */ + @TableField("vehicle_url_availability") private BigDecimal vehicleUrlAvailability; - /** 杞﹁締鍗″彛璁惧鎶撴媿鏁版嵁澶у浘鍙敤鎬� */ - @Excel(name = "杞﹁締鍗″彛璁惧鎶撴媿鏁版嵁澶у浘鍙敤鎬�",width = 25) + /** + * 杞﹁締鍗″彛璁惧鎶撴媿鏁版嵁澶у浘鍙敤鎬� + */ + @TableField("vehicle_picture_availability") private BigDecimal vehiclePictureAvailability; - @Override - public Long getId() { - return super.getId(); + @ExcelIgnore + @TableField(exist = false) + private List<String> quarter; + + //杞崲鎴愬瓧绗︿覆鐢ㄤ簬excel瀵煎嚭 + public static CheckIndexCarVO getExcelVo(@NonNull CheckIndexCar checkIndexCar) { + CheckIndexCarVO checkIndexCarVo = new CheckIndexCarVO(); + checkIndexCarVo.setNum(checkIndexCar.getNum()); + checkIndexCarVo.setScore(checkIndexCar.getScore().setScale(2,RoundingMode.HALF_UP)); + checkIndexCarVo.setDeptName(checkIndexCar.getDeptName()); + SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd"); + //閬垮厤鍚堣琛屾姤閿�(鍚堣鏁版嵁 缂哄皯createTimeStr瀛楁 鐩存帴灏哻reateTimeStr璁剧疆涓�"鍚堣") + if (StringUtils.isEmpty(checkIndexCar.getCreateTimeStr())) { + checkIndexCarVo.setCreateTimeStr(format.format(checkIndexCar.getCreateTime())); + }else { + checkIndexCarVo.setCreateTimeStr(checkIndexCar.getCreateTimeStr()); + } + checkIndexCarVo.setExamineTagStr(CheckConstants.Examine_Tag_Province.equals(checkIndexCar.getExamineTag()) ? "鐪佸巺鑰冩牳" : CheckConstants.Examine_Tag_County.equals(checkIndexCar.getExamineTag()) ? "鍖哄幙鑰冩牳" : "鍏畨閮ㄨ�冩牳"); + checkIndexCarVo.setSiteOnlineText(checkIndexCar.getSiteOnline().multiply(new BigDecimal(100)).setScale(2, RoundingMode.HALF_UP) + "%"); + checkIndexCarVo.setVehicleCaptureAccuracyText(checkIndexCar.getVehicleCaptureAccuracy().multiply(new BigDecimal(100)).setScale(2, RoundingMode.HALF_UP) + "%"); + checkIndexCarVo.setDeviceDirectoryConsistentText(checkIndexCar.getDeviceDirectoryConsistent().multiply(new BigDecimal(100)).setScale(2, RoundingMode.HALF_UP) + "%"); + checkIndexCarVo.setVehicleCaptureIntegrityText(checkIndexCar.getVehicleCaptureIntegrity().multiply(new BigDecimal(100)).setScale(2, RoundingMode.HALF_UP) + "%"); + checkIndexCarVo.setVehicleTimingAccuracyText(checkIndexCar.getSiteOnline().multiply(new BigDecimal(100)).setScale(2, RoundingMode.HALF_UP) + "%"); + checkIndexCarVo.setVehicleUploadTimelinessText(checkIndexCar.getSiteOnline().multiply(new BigDecimal(100)).setScale(2, RoundingMode.HALF_UP) + "%"); + checkIndexCarVo.setViewConnectStabilityText(checkIndexCar.getSiteOnline().multiply(new BigDecimal(100)).setScale(2, RoundingMode.HALF_UP) + "%"); + checkIndexCarVo.setVehicleUrlAvailabilityText(checkIndexCar.getSiteOnline().multiply(new BigDecimal(100)).setScale(2, RoundingMode.HALF_UP) + "%"); + checkIndexCarVo.setVehiclePictureAvailabilityText(checkIndexCar.getSiteOnline().multiply(new BigDecimal(100)).setScale(2, RoundingMode.HALF_UP) + "%"); + checkIndexCarVo.setVehicleInformationCollectionAccuracyText(checkIndexCar.getVehicleInformationCollectionAccuracy().multiply(new BigDecimal(100)).setScale(2, RoundingMode.HALF_UP) + "%"); + return checkIndexCarVo; } - @Override - public void setId(Long id) { - super.setId(id); - } - - @Override - public String getDate() { - return super.getDate(); - } - - @Override - public void setDate(String date) { - super.setDate(date); - } - - @Override - public Date getCreateTime() { - return super.getCreateTime(); - } - - @Override - public void setCreateTime(Date createTime) { - super.setCreateTime(createTime); - } - - @Override - public Long getDeptId() { - return super.getDeptId(); - } - - @Override - public void setDeptId(Long deptId) { - super.setDeptId(deptId); - } - - @Override - public String getDeptName() { - return super.getDeptName(); - } - - @Override - public void setDeptName(String deptName) { - super.setDeptName(deptName); - } - - @Override - public Long getExamineTag() { - return super.getExamineTag(); - } - - @Override - public void setExamineTag(Long examineTag) { - super.setExamineTag(examineTag); - } - public void setViewConnectStability(BigDecimal viewConnectStability) - { - this.viewConnectStability = viewConnectStability; - } - - public BigDecimal getViewConnectStability() - { - return viewConnectStability; - } - public void setSiteOnline(BigDecimal siteOnline) - { - this.siteOnline = siteOnline; - } - - public BigDecimal getSiteOnline() - { - return siteOnline; - } - public void setDeviceDirectoryConsistent(BigDecimal deviceDirectoryConsistent) - { - this.deviceDirectoryConsistent = deviceDirectoryConsistent; - } - - public BigDecimal getDeviceDirectoryConsistent() - { - return deviceDirectoryConsistent; - } - public void setVehicleInformationCollectionAccuracy(BigDecimal vehicleInformationCollectionAccuracy) - { - this.vehicleInformationCollectionAccuracy = vehicleInformationCollectionAccuracy; - } - - public BigDecimal getVehicleInformationCollectionAccuracy() - { - return vehicleInformationCollectionAccuracy; - } - public void setVehicleCaptureIntegrity(BigDecimal vehicleCaptureIntegrity) - { - this.vehicleCaptureIntegrity = vehicleCaptureIntegrity; - } - - public BigDecimal getVehicleCaptureIntegrity() - { - return vehicleCaptureIntegrity; - } - public void setVehicleCaptureAccuracy(BigDecimal vehicleCaptureAccuracy) - { - this.vehicleCaptureAccuracy = vehicleCaptureAccuracy; - } - - public BigDecimal getVehicleCaptureAccuracy() - { - return vehicleCaptureAccuracy; - } - public void setVehicleTimingAccuracy(BigDecimal vehicleTimingAccuracy) - { - this.vehicleTimingAccuracy = vehicleTimingAccuracy; - } - - public BigDecimal getVehicleTimingAccuracy() - { - return vehicleTimingAccuracy; - } - public void setVehicleUploadTimeliness(BigDecimal vehicleUploadTimeliness) - { - this.vehicleUploadTimeliness = vehicleUploadTimeliness; - } - - public BigDecimal getVehicleUploadTimeliness() - { - return vehicleUploadTimeliness; - } - public void setVehicleUrlAvailability(BigDecimal vehicleUrlAvailability) - { - this.vehicleUrlAvailability = vehicleUrlAvailability; - } - - public BigDecimal getVehicleUrlAvailability() - { - return vehicleUrlAvailability; - } - public void setVehiclePictureAvailability(BigDecimal vehiclePictureAvailability) - { - this.vehiclePictureAvailability = vehiclePictureAvailability; - } - - - public BigDecimal getVehiclePictureAvailability() - { - return vehiclePictureAvailability; - } - - @Override - public String toString() { - return "CheckIndexCar{" + - "id=" + id + - ", date='" + date + '\'' + - ", createTime=" + createTime + - ", deptId=" + deptId + - ", deptName='" + deptName + '\'' + - ", examineTag=" + examineTag + - ", viewConnectStability=" + viewConnectStability + - ", siteOnline=" + siteOnline + - ", deviceDirectoryConsistent=" + deviceDirectoryConsistent + - ", vehicleInformationCollectionAccuracy=" + vehicleInformationCollectionAccuracy + - ", vehicleCaptureIntegrity=" + vehicleCaptureIntegrity + - ", vehicleCaptureAccuracy=" + vehicleCaptureAccuracy + - ", vehicleTimingAccuracy=" + vehicleTimingAccuracy + - ", vehicleUploadTimeliness=" + vehicleUploadTimeliness + - ", vehicleUrlAvailability=" + vehicleUrlAvailability + - ", vehiclePictureAvailability=" + vehiclePictureAvailability + - '}'; + /** + * 瀵煎嚭鏃剁敤浜庤绠楀钩鍧囧�� + */ + public static CheckIndexCar calculateAverage(List<CheckIndexCar> checkIndexCars) { + Integer numSum = 0; + BigDecimal scoreSum = BigDecimal.ZERO; + BigDecimal viewConnectStabilitySum = BigDecimal.ZERO; + BigDecimal siteOnlineSum = BigDecimal.ZERO; + BigDecimal deviceDirectoryConsistentSum = BigDecimal.ZERO; + BigDecimal vehicleInformationCollectionAccuracySum = BigDecimal.ZERO; + BigDecimal vehicleCaptureIntegritySum = BigDecimal.ZERO; + BigDecimal vehicleCaptureAccuracySum = BigDecimal.ZERO; + BigDecimal vehicleTimingAccuracySum = BigDecimal.ZERO; + BigDecimal vehicleUploadTimelinessSum = BigDecimal.ZERO; + BigDecimal vehicleUrlAvailabilitySum = BigDecimal.ZERO; + BigDecimal vehiclePictureAvailabilitySum = BigDecimal.ZERO; + for (CheckIndexCar car : checkIndexCars) { + numSum = numSum + (car.getNum() == null? 0:car.getNum()); + scoreSum = scoreSum.add(car.getScore() == null ? BigDecimal.ZERO : car.getScore()); + viewConnectStabilitySum = viewConnectStabilitySum.add(car.getViewConnectStability()); + siteOnlineSum = siteOnlineSum.add(car.getSiteOnline()); + deviceDirectoryConsistentSum = deviceDirectoryConsistentSum.add(car.getDeviceDirectoryConsistent()); + vehicleInformationCollectionAccuracySum = vehicleInformationCollectionAccuracySum.add(car.getVehicleInformationCollectionAccuracy()); + vehicleCaptureIntegritySum = vehicleCaptureIntegritySum.add(car.getVehicleCaptureIntegrity()); + vehicleCaptureAccuracySum = vehicleCaptureAccuracySum.add(car.getVehicleCaptureAccuracy()); + vehicleTimingAccuracySum = vehicleTimingAccuracySum.add(car.getVehicleTimingAccuracy()); + vehicleUploadTimelinessSum = vehicleUploadTimelinessSum.add(car.getVehicleUploadTimeliness()); + vehicleUrlAvailabilitySum = vehicleUrlAvailabilitySum.add(car.getVehicleUrlAvailability()); + vehiclePictureAvailabilitySum = vehiclePictureAvailabilitySum.add(car.getVehiclePictureAvailability()); + } + CheckIndexCar checkIndexCar = new CheckIndexCar(); + checkIndexCar.setCreateTimeStr("鍚堣"); + checkIndexCar.setDeptName(checkIndexCars.get(0).getDeptName()); + checkIndexCar.setExamineTag(checkIndexCars.get(0).getExamineTag()); + checkIndexCar.setScore(scoreSum.divide(new BigDecimal(checkIndexCars.size()), 2, RoundingMode.HALF_UP)); + checkIndexCar.setNum(numSum/checkIndexCars.size()); + checkIndexCar.setViewConnectStability(viewConnectStabilitySum.divide(new BigDecimal(checkIndexCars.size()), 2, RoundingMode.HALF_UP)); + checkIndexCar.setSiteOnline(siteOnlineSum.divide(new BigDecimal(checkIndexCars.size()), 2, RoundingMode.HALF_UP)); + checkIndexCar.setDeviceDirectoryConsistent(deviceDirectoryConsistentSum.divide(new BigDecimal(checkIndexCars.size()), 2, RoundingMode.HALF_UP)); + checkIndexCar.setVehicleInformationCollectionAccuracy(vehicleInformationCollectionAccuracySum.divide(new BigDecimal(checkIndexCars.size()), 2, RoundingMode.HALF_UP)); + checkIndexCar.setVehicleCaptureIntegrity(vehicleCaptureIntegritySum.divide(new BigDecimal(checkIndexCars.size()), 2, RoundingMode.HALF_UP)); + checkIndexCar.setVehicleCaptureAccuracy(vehicleCaptureAccuracySum.divide(new BigDecimal(checkIndexCars.size()), 2, RoundingMode.HALF_UP)); + checkIndexCar.setVehicleTimingAccuracy(vehicleTimingAccuracySum.divide(new BigDecimal(checkIndexCars.size()), 2, RoundingMode.HALF_UP)); + checkIndexCar.setVehicleUploadTimeliness(vehicleUploadTimelinessSum.divide(new BigDecimal(checkIndexCars.size()), 2, RoundingMode.HALF_UP)); + checkIndexCar.setVehicleUrlAvailability(vehicleUrlAvailabilitySum.divide(new BigDecimal(checkIndexCars.size()), 2, RoundingMode.HALF_UP)); + checkIndexCar.setVehiclePictureAvailability(vehiclePictureAvailabilitySum.divide(new BigDecimal(checkIndexCars.size()), 2, RoundingMode.HALF_UP)); + return checkIndexCar; } } -- Gitblit v1.8.0