| | |
| | | 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.setScore(checkIndexCar.getScore()); |
| | | checkIndexCarVo.setDeptName(checkIndexCar.getDeptName()); |
| | | SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd"); |
| | | //避免合计行报错(合计数据 缺少createTimeStr字段 直接将createTimeStr设置为"合计") |
| | | 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()) ? "省厅考核" : "区县考核"); |
| | | 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) { |
| | | 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) { |
| | | 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); |
| | | 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; |
| | | } |
| | | } |