|
|
@ -224,27 +224,28 @@ public class IndexCalculateCommunityServiceImpl implements IndexCalculateCommuni |
|
|
|
// 社区名义发文数量
|
|
|
|
List<Map<String, Object>> publishArticleCountList = factIndexPartyAblityOrgMonthlyDao.selectPublishArticleCountMap(customerId, monthId,IndexCalConstant.COMMUNITY_LEVEL); |
|
|
|
if (CollectionUtils.isEmpty(publishArticleCountList)) { |
|
|
|
log.error(IndexCalConstant.COMMUNITY_PUBLISH_ARTICLE_LIST_NULL); |
|
|
|
} |
|
|
|
String fieldNameByIndexCode = indexCodeFieldReService.getFieldNameByIndexCode(detail.getIndexCode()); |
|
|
|
if (StringUtils.isEmpty(fieldNameByIndexCode)) { |
|
|
|
log.error(String.format(IndexCalConstant.INDEX_CODE_NULL, detail.getIndexCode())); |
|
|
|
return; |
|
|
|
log.warn(IndexCalConstant.COMMUNITY_PUBLISH_ARTICLE_LIST_NULL); |
|
|
|
} else { |
|
|
|
List<BigDecimal> decimalList = publishArticleCountList.stream().map(m -> new BigDecimal(m.get(fieldNameByIndexCode).toString())).collect(Collectors.toList()); |
|
|
|
MaxAndMinBigDecimalResultDTO maxAndMinBigDecimal = this.getMaxAndMinBigDecimal(decimalList); |
|
|
|
List<List<Map<String, Object>>> publishArticleList = ListUtils.partition(publishArticleCountList, IndexCalConstant.PAGE_SIZE); |
|
|
|
publishArticleList.forEach(publish -> { |
|
|
|
ScoreCalculator sc1 = new BigDecimalScoreCalculator(maxAndMinBigDecimal.getMin(), maxAndMinBigDecimal.getMax(), ScoreConstants.MIN_SCORE, ScoreConstants.MAX_SCORE, Correlation.getCorrelation(detail.getCorrelation())); |
|
|
|
List<SampleValue> index1SampleValues = new ArrayList<>(); |
|
|
|
publish.forEach(c -> { |
|
|
|
pid.put(c.get(IndexCalConstant.AGENCY_ID).toString(), c.get(IndexCalConstant.PARENT_ID).toString()); |
|
|
|
SampleValue s = new SampleValue((String) c.get(IndexCalConstant.AGENCY_ID), new BigDecimal(String.valueOf(c.get(fieldNameByIndexCode)))); |
|
|
|
index1SampleValues.add(s); |
|
|
|
String fieldNameByIndexCode = indexCodeFieldReService.getFieldNameByIndexCode(detail.getIndexCode()); |
|
|
|
if (StringUtils.isEmpty(fieldNameByIndexCode)) { |
|
|
|
log.error(String.format(IndexCalConstant.INDEX_CODE_NULL, detail.getIndexCode())); |
|
|
|
return; |
|
|
|
} else { |
|
|
|
List<BigDecimal> decimalList = publishArticleCountList.stream().map(m -> new BigDecimal(m.get(fieldNameByIndexCode).toString())).collect(Collectors.toList()); |
|
|
|
MaxAndMinBigDecimalResultDTO maxAndMinBigDecimal = this.getMaxAndMinBigDecimal(decimalList); |
|
|
|
List<List<Map<String, Object>>> publishArticleList = ListUtils.partition(publishArticleCountList, IndexCalConstant.PAGE_SIZE); |
|
|
|
publishArticleList.forEach(publish -> { |
|
|
|
ScoreCalculator sc1 = new BigDecimalScoreCalculator(maxAndMinBigDecimal.getMin(), maxAndMinBigDecimal.getMax(), ScoreConstants.MIN_SCORE, ScoreConstants.MAX_SCORE, Correlation.getCorrelation(detail.getCorrelation())); |
|
|
|
List<SampleValue> index1SampleValues = new ArrayList<>(); |
|
|
|
publish.forEach(c -> { |
|
|
|
pid.put(c.get(IndexCalConstant.AGENCY_ID).toString(), c.get(IndexCalConstant.PARENT_ID).toString()); |
|
|
|
SampleValue s = new SampleValue((String) c.get(IndexCalConstant.AGENCY_ID), new BigDecimal(String.valueOf(c.get(fieldNameByIndexCode)))); |
|
|
|
index1SampleValues.add(s); |
|
|
|
}); |
|
|
|
IndexInputVO index1VO = new IndexInputVO(detail.getIndexCode(), detail.getAllParentIndexCode(), index1SampleValues, detail.getThreshold(), detail.getWeight(), IndexCodeEnum.isAvgIndex(detail.getIndexCode()), sc1); |
|
|
|
indexInputVOS.add(index1VO); |
|
|
|
}); |
|
|
|
IndexInputVO index1VO = new IndexInputVO(detail.getIndexCode(), detail.getAllParentIndexCode(), index1SampleValues, detail.getThreshold(), detail.getWeight(), IndexCodeEnum.isAvgIndex(detail.getIndexCode()), sc1); |
|
|
|
indexInputVOS.add(index1VO); |
|
|
|
}); |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
}); |
|
|
|