fuliqi
2024-09-05 46b29175dfdafafd014212be0e340544b8761493
ycl-pojo/src/main/java/com/ycl/platform/domain/entity/CheckIndexVideo.java
@@ -5,8 +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;
@@ -17,383 +25,190 @@
 * @date 2024-04-29
 */
@TableName("t_check_index_video")
public class CheckIndexVideo extends CheckIndex
{
@Data
public class CheckIndexVideo extends CheckIndex {
    private static final long serialVersionUID = 1L;
    /** 平台在线率 */
    @Excel(name = "平台在线率")
    /**
     * 平台在线率
     */
    @TableField("platform_online")
    private BigDecimal platformOnline;
    /** 一机一档合格率 */
    @Excel(name = "一机一档合格率")
    /**
     * 一机一档合格率
     */
    @TableField("monitor_qualification")
    private BigDecimal monitorQualification;
    /** 档案考核比 */
    @Excel(name = "一机一档注册率")
    /**
     * 档案考核比
     */
    @TableField("monitor_registration")
    private BigDecimal monitorRegistration;
    /** 档案考核比 */
    @Excel(name = "档案考核比")
    /**
     * 档案考核比
     */
    @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("annotation_accuracy")
    private BigDecimal annotationAccuracy;
    /**
     * 部级点位在线率
     */
    @TableField("ministry_site_online")
    private BigDecimal ministrySiteOnline;
    /** 校时准确率 */
    @Excel(name = "校时准确率")
    @TableField("timing_accuracy")
    private BigDecimal timingAccuracy;
    /**
     * 部级巡检录像可用率
     */
    @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;
    /** 重点点位标注正确率 */
    @Excel(name = "重点点位标注正确率",width = 25)
    /**
     * 重点点位标注正确率
     */
    @TableField("key_annotation_accuracy")
    private BigDecimal keyAnnotationAccuracy;
    /** 重点点位按时正确率 */
    @Excel(name = "重点点位按时正确率",width = 25)
    /**
     * 重点点位按时正确率
     */
    @TableField("key_timing_accuracy")
    private BigDecimal keyTimingAccuracy;
    /** 重点指挥图像公安部巡检结果 */
    @Excel(name = "重点指挥图像公安部巡检结果",width = 25)
    @TableField("key_command_image_inspection")
    private BigDecimal keyCommandImageInspection;
    /** 重点指挥图像目录树 */
    @Excel(name = "重点指挥图像目录树",width = 25)
    @TableField("key_command_image_directory_tree")
    private BigDecimal keyCommandImageDirectoryTree;
    /** 在线检查平台部署及运行率 */
    @Excel(name = "在线检查平台部署及运行率",width = 25)
    @TableField("online_inspection_platform")
    private BigDecimal onlineInspectionPlatform;
    /** 视频传输网资产准确率 */
    @Excel(name = "视频传输网资产准确率",width = 25)
    @TableField("video_transmission_assets_accuracy")
    private BigDecimal videoTransmissionAssetsAccuracy;
    /** 视频传输网资产弱口令得分比率 */
    @Excel(name = "视频传输网资产弱口令得分比率",width = 25)
    @TableField("video_transmission_assets_weak_password_score")
    private BigDecimal videoTransmissionAssetsWeakPasswordScore;
    /** 视频传输网危险资产得分比重 */
    @Excel(name = "视频传输网危险资产得分比重",width = 25)
    @TableField("video_transmission_dangerous_assets_score")
    private BigDecimal videoTransmissionDangerousAssetsScore;
    /** 视频传输网边界完整性检测扣分项 */
    @Excel(name = "视频传输网边界完整性检测扣分项",width = 25)
    @TableField("video_transmission_boundary_integrity_detection")
    private BigDecimal videoTransmissionBoundaryIntegrityDetection;
    /** 视频传输网边界完整性检测扣分项 */
    @Excel(name = "重点指挥图像在线率",width = 25)
    /**
     * 重点指挥图像在线率
     */
    @TableField("key_command_image_online")
    private BigDecimal keyCommandImageOnline;
    /** 月运行率 */
    @Excel(name = "月运行率")
    @TableField("operating_rate")
    private BigDecimal operatingRate;
    /**
     * 视频图像资源安全管理
     */
    @TableField("image_resource_security")
    private BigDecimal imageResourceSecurity;
    @ExcelIgnore
    @TableField(exist = false)
    private List<String> quarter;
    public List<String> getQuarter() {
        return quarter;
    //转换成字符串用于excel导出
    public static CheckIndexVideoVO getExcelVo(@NonNull CheckIndexVideo checkIndexVideo) {
        CheckIndexVideoVO checkIndexVideoVO = new CheckIndexVideoVO();
        checkIndexVideoVO.setScore(checkIndexVideo.getScore());
        checkIndexVideoVO.setDeptName(checkIndexVideo.getDeptName());
        //避免合计行报错(合计数据 缺少createTimeStr字段 直接将createTimeStr设置为"合计")
        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 void setQuarter(List<String> quarter) {
        this.quarter = quarter;
    }
    /**
     * 用于导出计算平均值
     */
    public static CheckIndexVideo calculateAverage(List<CheckIndexVideo> videos) {
        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;
    public BigDecimal getPlatformOnline() {
        return platformOnline;
    }
        int count = videos.size();
        for (CheckIndexVideo video : videos) {
            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());
        }
    public void setPlatformOnline(BigDecimal platformOnline) {
        this.platformOnline = platformOnline;
    }
        // 创建一个新的CheckIndexVideo对象并设置平均值
        CheckIndexVideo averageVideo = new CheckIndexVideo();
        averageVideo.setCreateTimeStr("合计");
        averageVideo.setDeptName(videos.get(0).getDeptName());
        averageVideo.setExamineTag(videos.get(0).getExamineTag());
        averageVideo.setScore(scoreSum);
        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));
    public BigDecimal getMonitorQualification() {
        return monitorQualification;
    }
    public void setMonitorQualification(BigDecimal monitorQualification) {
        this.monitorQualification = monitorQualification;
    }
    public BigDecimal getMonitorRegistration() {
        return monitorRegistration;
    }
    public void setMonitorRegistration(BigDecimal monitorRegistration) {
        this.monitorRegistration = monitorRegistration;
    }
    public BigDecimal getArchivesRate() {
        return archivesRate;
    }
    public void setArchivesRate(BigDecimal archivesRate) {
        this.archivesRate = archivesRate;
    }
    public BigDecimal getSiteOnline() {
        return siteOnline;
    }
    public void setSiteOnline(BigDecimal siteOnline) {
        this.siteOnline = siteOnline;
    }
    public BigDecimal getVideoAvailable() {
        return videoAvailable;
    }
    public void setVideoAvailable(BigDecimal videoAvailable) {
        this.videoAvailable = videoAvailable;
    }
    public BigDecimal getAnnotationAccuracy() {
        return annotationAccuracy;
    }
    public void setAnnotationAccuracy(BigDecimal annotationAccuracy) {
        this.annotationAccuracy = annotationAccuracy;
    }
    public BigDecimal getTimingAccuracy() {
        return timingAccuracy;
    }
    public void setTimingAccuracy(BigDecimal timingAccuracy) {
        this.timingAccuracy = timingAccuracy;
    }
    public BigDecimal getKeySiteOnline() {
        return keySiteOnline;
    }
    public void setKeySiteOnline(BigDecimal keySiteOnline) {
        this.keySiteOnline = keySiteOnline;
    }
    public BigDecimal getKeyVideoAvailable() {
        return keyVideoAvailable;
    }
    public void setKeyVideoAvailable(BigDecimal keyVideoAvailable) {
        this.keyVideoAvailable = keyVideoAvailable;
    }
    public BigDecimal getKeyAnnotationAccuracy() {
        return keyAnnotationAccuracy;
    }
    public void setKeyAnnotationAccuracy(BigDecimal keyAnnotationAccuracy) {
        this.keyAnnotationAccuracy = keyAnnotationAccuracy;
    }
    public BigDecimal getKeyCommandImageOnline() {
        return keyCommandImageOnline;
    }
    public void setKeyCommandImageOnline(BigDecimal keyCommandImageOnline) {
        this.keyCommandImageOnline = keyCommandImageOnline;
    }
    public BigDecimal getKeyTimingAccuracy() {
        return keyTimingAccuracy;
    }
    public void setKeyTimingAccuracy(BigDecimal keyTimingAccuracy) {
        this.keyTimingAccuracy = keyTimingAccuracy;
    }
    public BigDecimal getKeyCommandImageInspection() {
        return keyCommandImageInspection;
    }
    public void setKeyCommandImageInspection(BigDecimal keyCommandImageInspection) {
        this.keyCommandImageInspection = keyCommandImageInspection;
    }
    public BigDecimal getKeyCommandImageDirectoryTree() {
        return keyCommandImageDirectoryTree;
    }
    public void setKeyCommandImageDirectoryTree(BigDecimal keyCommandImageDirectoryTree) {
        this.keyCommandImageDirectoryTree = keyCommandImageDirectoryTree;
    }
    public BigDecimal getOnlineInspectionPlatform() {
        return onlineInspectionPlatform;
    }
    public void setOnlineInspectionPlatform(BigDecimal onlineInspectionPlatform) {
        this.onlineInspectionPlatform = onlineInspectionPlatform;
    }
    public BigDecimal getVideoTransmissionAssetsAccuracy() {
        return videoTransmissionAssetsAccuracy;
    }
    public void setVideoTransmissionAssetsAccuracy(BigDecimal videoTransmissionAssetsAccuracy) {
        this.videoTransmissionAssetsAccuracy = videoTransmissionAssetsAccuracy;
    }
    public BigDecimal getVideoTransmissionAssetsWeakPasswordScore() {
        return videoTransmissionAssetsWeakPasswordScore;
    }
    public void setVideoTransmissionAssetsWeakPasswordScore(BigDecimal videoTransmissionAssetsWeakPasswordScore) {
        this.videoTransmissionAssetsWeakPasswordScore = videoTransmissionAssetsWeakPasswordScore;
    }
    public BigDecimal getVideoTransmissionDangerousAssetsScore() {
        return videoTransmissionDangerousAssetsScore;
    }
    public void setVideoTransmissionDangerousAssetsScore(BigDecimal videoTransmissionDangerousAssetsScore) {
        this.videoTransmissionDangerousAssetsScore = videoTransmissionDangerousAssetsScore;
    }
    public BigDecimal getVideoTransmissionBoundaryIntegrityDetection() {
        return videoTransmissionBoundaryIntegrityDetection;
    }
    public void setVideoTransmissionBoundaryIntegrityDetection(BigDecimal videoTransmissionBoundaryIntegrityDetection) {
        this.videoTransmissionBoundaryIntegrityDetection = videoTransmissionBoundaryIntegrityDetection;
    }
    public BigDecimal getOperatingRate() {
        return operatingRate;
    }
    public void setOperatingRate(BigDecimal operatingRate) {
        this.operatingRate = operatingRate;
    }
    @Override
    public Long getId() {
        return super.getId();
    }
    @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 Short getExamineTag() {
        return super.getExamineTag();
    }
    @Override
    public void setExamineTag(Short examineTag) {
        super.setExamineTag(examineTag);
    }
    @Override
    public String toString() {
        return "CheckIndexVideo{" +
                "id=" + id +
                ", date='" + date + '\'' +
                ", createTime=" + createTime +
                ", deptId=" + deptId +
                ", deptName='" + deptName + '\'' +
                ", examineTag=" + examineTag +
                ", platformOnline=" + platformOnline +
                ", monitorQualification=" + monitorQualification +
                ", monitorRegistration=" + monitorRegistration +
                ", archivesRate=" + archivesRate +
                ", siteOnline=" + siteOnline +
                ", videoAvailable=" + videoAvailable +
                ", annotationAccuracy=" + annotationAccuracy +
                ", timingAccuracy=" + timingAccuracy +
                ", keySiteOnline=" + keySiteOnline +
                ", keyVideoAvailable=" + keyVideoAvailable +
                ", keyAnnotationAccuracy=" + keyAnnotationAccuracy +
                ", keyTimingAccuracy=" + keyTimingAccuracy +
                ", keyCommandImageInspection=" + keyCommandImageInspection +
                ", keyCommandImageDirectoryTree=" + keyCommandImageDirectoryTree +
                ", onlineInspectionPlatform=" + onlineInspectionPlatform +
                ", videoTransmissionAssetsAccuracy=" + videoTransmissionAssetsAccuracy +
                ", videoTransmissionAssetsWeakPasswordScore=" + videoTransmissionAssetsWeakPasswordScore +
                ", videoTransmissionDangerousAssetsScore=" + videoTransmissionDangerousAssetsScore +
                ", videoTransmissionBoundaryIntegrityDetection=" + videoTransmissionBoundaryIntegrityDetection +
                ", operatingRate=" + operatingRate +
                '}';
        return averageVideo;
    }
}