| | |
| | | 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; |
| | | |
| | |
| | | //转换成字符串用于excel导出 |
| | | public static CheckIndexFaceVO getExcelVo(@NonNull CheckIndexFace checkIndexFace) { |
| | | CheckIndexFaceVO checkIndexFaceVo = new CheckIndexFaceVO(); |
| | | checkIndexFaceVo.setScore(checkIndexFace.getScore()); |
| | | SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd"); |
| | | //避免合计行报错(合计数据 缺少createTimeStr字段 直接将createTimeStr设置为"合计") |
| | | if (StringUtils.isEmpty(checkIndexFace.getCreateTimeStr())) { |
| | | checkIndexFaceVo.setCreateTimeStr(format.format(checkIndexFace.getCreateTime())); |
| | | }else { |
| | | checkIndexFaceVo.setCreateTimeStr(checkIndexFace.getCreateTimeStr()); |
| | | } |
| | | checkIndexFaceVo.setDeptName(checkIndexFace.getDeptName()); |
| | | checkIndexFaceVo.setCreateTime(checkIndexFace.getCreateTime()); |
| | | checkIndexFaceVo.setExamineTagStr(CheckConstants.Examine_Tag_Province.equals(checkIndexFace.getExamineTag()) ? "省厅考核" : "区县考核"); |
| | | checkIndexFaceVo.setSiteOnlineText(checkIndexFace.getSiteOnline().multiply(new BigDecimal(100)).setScale(2, RoundingMode.HALF_UP) + "%"); |
| | | checkIndexFaceVo.setFaceInformationCollectionAccuracyText(checkIndexFace.getFaceInformationCollectionAccuracy().multiply(new BigDecimal(100)).setScale(2, RoundingMode.HALF_UP) + "%"); |
| | |
| | | |
| | | return checkIndexFaceVo; |
| | | } |
| | | /** 用于导出计算平均值 */ |
| | | public static CheckIndexFace calculateAverage(List<CheckIndexFace> checkIndexFaces) { |
| | | BigDecimal scoreSum = BigDecimal.ZERO; |
| | | BigDecimal totalViewConnectStability = BigDecimal.ZERO; |
| | | BigDecimal totalSiteOnline = BigDecimal.ZERO; |
| | | BigDecimal totalDeviceDirectoryConsistent = BigDecimal.ZERO; |
| | | BigDecimal totalFaceInformationCollectionAccuracy = BigDecimal.ZERO; |
| | | BigDecimal totalFacePictureQualification = BigDecimal.ZERO; |
| | | BigDecimal totalFaceTimingAccuracy = BigDecimal.ZERO; |
| | | BigDecimal totalFaceUploadTimeliness = BigDecimal.ZERO; |
| | | BigDecimal totalFacePictureAvailability = BigDecimal.ZERO; |
| | | |
| | | int count = checkIndexFaces.size(); |
| | | |
| | | for (CheckIndexFace indexFace : checkIndexFaces) { |
| | | scoreSum = scoreSum.add(indexFace.getScore() == null ? BigDecimal.ZERO : indexFace.getScore()); |
| | | totalViewConnectStability = totalViewConnectStability.add(indexFace.getViewConnectStability()); |
| | | totalSiteOnline = totalSiteOnline.add(indexFace.getSiteOnline()); |
| | | totalDeviceDirectoryConsistent = totalDeviceDirectoryConsistent.add(indexFace.getDeviceDirectoryConsistent()); |
| | | totalFaceInformationCollectionAccuracy = totalFaceInformationCollectionAccuracy.add(indexFace.getFaceInformationCollectionAccuracy()); |
| | | totalFacePictureQualification = totalFacePictureQualification.add(indexFace.getFacePictureQualification()); |
| | | totalFaceTimingAccuracy = totalFaceTimingAccuracy.add(indexFace.getFaceTimingAccuracy()); |
| | | totalFaceUploadTimeliness = totalFaceUploadTimeliness.add(indexFace.getFaceUploadTimeliness()); |
| | | totalFacePictureAvailability = totalFacePictureAvailability.add(indexFace.getFacePictureAvailability()); |
| | | } |
| | | CheckIndexFace result = new CheckIndexFace(); |
| | | result.setCreateTimeStr("合计"); |
| | | result.setDeptName(checkIndexFaces.get(0).getDeptName()); |
| | | result.setExamineTag(checkIndexFaces.get(0).getExamineTag()); |
| | | result.setScore(scoreSum); |
| | | result.setViewConnectStability(totalViewConnectStability.divide(BigDecimal.valueOf(count), 2, RoundingMode.HALF_UP)); |
| | | result.setSiteOnline(totalSiteOnline.divide(BigDecimal.valueOf(count), 2, RoundingMode.HALF_UP)); |
| | | result.setDeviceDirectoryConsistent(totalDeviceDirectoryConsistent.divide(BigDecimal.valueOf(count), 2, RoundingMode.HALF_UP)); |
| | | result.setFaceInformationCollectionAccuracy(totalFaceInformationCollectionAccuracy.divide(BigDecimal.valueOf(count), 2, RoundingMode.HALF_UP)); |
| | | result.setFacePictureQualification(totalFacePictureQualification.divide(BigDecimal.valueOf(count), 2, RoundingMode.HALF_UP)); |
| | | result.setFaceTimingAccuracy(totalFaceTimingAccuracy.divide(BigDecimal.valueOf(count), 2, RoundingMode.HALF_UP)); |
| | | result.setFaceUploadTimeliness(totalFaceUploadTimeliness.divide(BigDecimal.valueOf(count), 2, RoundingMode.HALF_UP)); |
| | | result.setFacePictureAvailability(totalFacePictureAvailability.divide(BigDecimal.valueOf(count), 2, RoundingMode.HALF_UP)); |
| | | return result; |
| | | } |
| | | } |