| | |
| | | //根据模板的考核标签查各区县对应省厅或市局人脸数据 |
| | | List<CheckIndexFace> checkIndexFaces = faceService.selectCheckIndexFaceList(checkIndexFace); |
| | | for (CheckIndexFace indexFace : checkIndexFaces) { |
| | | addToList(templateId, checkTemplate, examineTag, templateRuleList, scoreList, indexFace, CheckConstants.Rule_Category_Face); |
| | | addToList(templateId, checkTemplate, examineTag, templateRuleList, scoreList, indexFace,CheckConstants.Rule_Category_Face); |
| | | } |
| | | } |
| | | |
| | | //储存分数 |
| | | scoreMapper.saveBatch(scoreList); |
| | | //TODO:根据报警分数阈值,添加报警信息 |
| | | |
| | | |
| | | log.info("模板执行完成"); |
| | | } |
| | | log.info("定时任务执行完成"); |
| | | } |
| | | |
| | | |
| | | //查mongo数据归档到mysql |
| | | public void dataArchiving() { |
| | | //TODO:归档check_index_car,区分省厅市局,每个区县一条数据 |
| | | CheckIndexCar checkIndexCar = new CheckIndexCar(); |
| | | //TODO:归档check_index_face |
| | | CheckIndexFace checkIndexFace = new CheckIndexFace(); |
| | | //TODO:归档check_index_video |
| | | CheckIndexVideo checkIndexVideo = new CheckIndexVideo(); |
| | | |
| | | } |
| | | |
| | | private <T extends CheckIndex> void addToList(Integer templateId, CheckTemplate checkTemplate, Short examineTag, List<CheckTemplateRule> templateRuleList, List<CheckScore> scoreList, T indexObject, Short checkCategory) { |
| | | private <T extends CheckIndex>void addToList(Integer templateId, CheckTemplate checkTemplate, Short examineTag, List<CheckTemplateRule> templateRuleList, List<CheckScore> scoreList, T indexObject,Short checkCategory) { |
| | | CheckScore checkScore = new CheckScore(); |
| | | BigDecimal scoreFinal = BigDecimal.ZERO; |
| | | BigDecimal alarmScore = checkTemplate.getAlarmScore(); |
| | | for (CheckTemplateRule templateRule : templateRuleList) { |
| | | //计算分数 |
| | | scoreFinal = getScoreFinal(indexObject, scoreFinal, templateRule); |
| | | //TODO:根据报警分数阈值,添加报警信息 |
| | | if(scoreFinal.compareTo(alarmScore)<0){ |
| | | |
| | | } |
| | | } |
| | | //补充checkScore |
| | | fillCheckScore(templateId, checkTemplate, examineTag, indexObject, checkScore, scoreFinal, checkCategory); |
| | | fillCheckScore(templateId, checkTemplate, examineTag, indexObject, checkScore, scoreFinal,checkCategory); |
| | | scoreList.add(checkScore); |
| | | } |
| | | |
| | | //通用方法计算分数 |
| | | private <T> BigDecimal getScoreFinal(T object, BigDecimal scoreFinal, CheckTemplateRule templateRule) { |
| | | private <T>BigDecimal getScoreFinal(T object, BigDecimal scoreFinal, CheckTemplateRule templateRule) { |
| | | String ruleIndex = templateRule.getRuleIndex(); |
| | | //将a_b_c转换为aBC |
| | | String camelRuleIndex = CaseFormat.LOWER_UNDERSCORE.to(CaseFormat.LOWER_CAMEL, ruleIndex); |
| | |
| | | BigDecimal score = index.multiply(templateRule.getWeight()); |
| | | scoreFinal = scoreFinal.add(score); |
| | | } catch (Exception e) { |
| | | log.info("反射异常", e); |
| | | log.info("反射异常",e); |
| | | } |
| | | return scoreFinal; |
| | | } |
| | | |
| | | //设置checkScore对象 |
| | | private void fillCheckScore(Integer templateId, CheckTemplate checkTemplate, Short examineTag, CheckIndex checkIndex, CheckScore checkScore, BigDecimal scoreFinal, Short checkCategory) { |
| | | private void fillCheckScore(Integer templateId, CheckTemplate checkTemplate, Short examineTag, CheckIndex checkIndex, CheckScore checkScore, BigDecimal scoreFinal,Short checkCategory) { |
| | | //根据调整系数调整最终分数大小 |
| | | String adjustWay = checkTemplate.getAdjustWay(); |
| | | BigDecimal adjustCoefficient = checkTemplate.getAdjustCoefficient(); |
| | | if (CheckConstants.Multiply.equals(adjustWay)) { |
| | | if(CheckConstants.Multiply.equals(adjustWay)){ |
| | | scoreFinal = adjustCoefficient.multiply(scoreFinal).multiply(new BigDecimal(100)); |
| | | } else if (CheckConstants.Divided.equals(adjustWay)) { |
| | | }else if(CheckConstants.Divided.equals(adjustWay)){ |
| | | //四舍五入保留小数后四位 |
| | | scoreFinal = scoreFinal.divide(adjustCoefficient, 4, RoundingMode.HALF_UP).multiply(new BigDecimal(100)); |
| | | scoreFinal = scoreFinal.divide(adjustCoefficient,4, RoundingMode.HALF_UP).multiply(new BigDecimal(100)); |
| | | } |
| | | checkScore.setCreateTime(new Date()); |
| | | checkScore.setExamineTag(Integer.parseInt(examineTag + "")); |
| | | checkScore.setExamineTag(Integer.parseInt(examineTag +"")); |
| | | checkScore.setExamineCategory(checkCategory); |
| | | checkScore.setDeptId(checkIndex.getDeptId()); |
| | | checkScore.setTemplateId(templateId); |
| | | checkScore.setScore(scoreFinal); |
| | | } |
| | | |
| | | //查mongo数据归档到mysql |
| | | public void dataArchiving() { |
| | | //TODO:归档check_index_car,区分省厅市局,每个区县一条数据 |
| | | CheckIndexCar checkIndexCar = new CheckIndexCar(); |
| | | //TODO:归档check_index_face |
| | | CheckIndexFace checkIndexFace = new CheckIndexFace(); |
| | | //TODO:归档check_index_video |
| | | CheckIndexVideo checkIndexVideo = new CheckIndexVideo(); |
| | | |
| | | } |
| | | } |