| | |
| | | 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; |
| | | |
| | |
| | | private BigDecimal keyTimingAccuracy; |
| | | |
| | | /** |
| | | * 重点指挥图像在线率 |
| | | * 重点指挥图像在线率 |
| | | */ |
| | | @TableField("key_command_image_online") |
| | | private BigDecimal keyCommandImageOnline; |
| | |
| | | @ExcelIgnore |
| | | @TableField(exist = false) |
| | | private List<String> quarter; |
| | | |
| | | //转换成字符串用于excel导出 |
| | | public static CheckIndexVideoVO getExcelVo(@NonNull CheckIndexVideo checkIndexVideo) { |
| | | CheckIndexVideoVO checkIndexVideoVO = new CheckIndexVideoVO(); |
| | | checkIndexVideoVO.setScore(checkIndexVideo.getScore()); |
| | | checkIndexVideoVO.setDeptName(checkIndexVideo.getDeptName()); |
| | | checkIndexVideoVO.setCreateTime(checkIndexVideo.getCreateTime()); |
| | | //避免合计行报错(合计数据 缺少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)+"%"); |
| | | 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) { |
| | | 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) { |
| | | 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()); |
| | | } |
| | | |
| | | // 创建一个新的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)); |
| | | |
| | | return averageVideo; |
| | | } |
| | | } |