Browse Source

总分计算错误

dev_shibei_match
jianjun 5 years ago
parent
commit
e8c33cf1fe
  1. 48
      epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/model/IndexExcelDataListener.java
  2. 5
      epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/indexcal/impl/CpcIndexCalculateServiceImpl.java

48
epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/model/IndexExcelDataListener.java

@ -123,49 +123,49 @@ public class IndexExcelDataListener extends AnalysisEventListener<IndexModel> {
group1.setIndexId(indexDictEntity.getId());
group1.setParentIndexGroupId("0");
group1.setId(UniqueIdGenerator.generate());
group1.setIndexCode(Pinyin4jUtil.getSpellPinYin(indexDictEntity.getIndexName(),true,4));
group1.setIndexCode(Pinyin4jUtil.getSpellPinYin(indexDictEntity.getIndexName(), true, 4));
indexGroupMap.put(index.getLevel1Index(), group1);
}
StringBuilder allIndexCodeSb = new StringBuilder(group1.getIndexCode());
String level4Index = index.getLevel4Index();
indexDictEntity = indexDicMap.get(level4Index);
IndexGroupTemplateEntity group2 = indexGroupMap.get(index.getLevel1Index()+level4Index);
IndexGroupTemplateEntity group2 = indexGroupMap.get(index.getLevel1Index() + level4Index);
IndexGroupDetailTemplateEntity templateEntity = null;
if (group2 == null) {
group2 = new IndexGroupTemplateEntity();
group2.setIndexId(indexDictEntity.getId());
group2.setParentIndexGroupId(group1.getId());
group2.setId(UniqueIdGenerator.generate());
group2.setIndexCode(Pinyin4jUtil.getSpellPinYin(indexDictEntity.getIndexName(),false,4 ));
indexGroupMap.put(index.getLevel1Index()+level4Index, group2);
group2.setIndexCode(Pinyin4jUtil.getSpellPinYin(indexDictEntity.getIndexName(), false, 4));
indexGroupMap.put(index.getLevel1Index() + level4Index, group2);
//构建 分组明细
templateEntity = indexGroupDetailMap.get(index.getLevel1Index()+level4Index);
templateEntity = indexGroupDetailMap.get(index.getLevel1Index() + level4Index);
if (templateEntity == null) {
templateEntity = new IndexGroupDetailTemplateEntity();
templateEntity = new IndexGroupDetailTemplateEntity();
templateEntity.setIndexGroupId(group1.getId());
templateEntity.setIndexId(indexDictEntity.getId());
templateEntity.setAllParentIndexCode(allIndexCodeSb.toString());
templateEntity.setId(UniqueIdGenerator.generate());
templateEntity.setCorrelation(index.getCorrelation());
buildIndexGroupDetail(templateEntity,indexDictEntity, index, group1, 2);
indexGroupDetailMap.put(index.getLevel1Index()+level4Index,templateEntity);
buildIndexGroupDetail(templateEntity, indexDictEntity, index, 2);
indexGroupDetailMap.put(index.getLevel1Index() + level4Index, templateEntity);
}
}
indexDictEntity = indexDicMap.get(index.getLevel5Index());
allIndexCodeSb.append(StrConstant.COLON);
allIndexCodeSb.append(group2.getIndexCode());
templateEntity = indexGroupDetailMap.get(index.getLevel1Index()+index.getLevel5Index());
templateEntity = indexGroupDetailMap.get(index.getLevel1Index() + index.getLevel5Index());
if (templateEntity == null) {
templateEntity = new IndexGroupDetailTemplateEntity();
templateEntity = new IndexGroupDetailTemplateEntity();
templateEntity.setIndexGroupId(group2.getId());
templateEntity.setIndexId(indexDictEntity.getId());
templateEntity.setAllParentIndexCode(allIndexCodeSb.toString());
templateEntity.setId(UniqueIdGenerator.generate());
templateEntity.setCorrelation(index.getCorrelation());
buildIndexGroupDetail(templateEntity,indexDictEntity, index, group2, 5);
indexGroupDetailMap.put(index.getLevel1Index()+index.getLevel5Index(),templateEntity);
buildIndexGroupDetail(templateEntity, indexDictEntity, index, 5);
indexGroupDetailMap.put(index.getLevel1Index() + index.getLevel5Index(), templateEntity);
}
} else {
//todo 测试完去掉
@ -177,7 +177,7 @@ public class IndexExcelDataListener extends AnalysisEventListener<IndexModel> {
group1.setIndexId(indexDictEntity.getId());
group1.setParentIndexGroupId("0");
group1.setId(UniqueIdGenerator.generate());
group1.setIndexCode(Pinyin4jUtil.getSpellPinYin(indexDictEntity.getIndexName(),false,4 ));
group1.setIndexCode(Pinyin4jUtil.getSpellPinYin(indexDictEntity.getIndexName(), false, 4));
indexGroupMap.put(index.getLevel1Index(), group1);
}
StringBuilder allIndexCodeSb = new StringBuilder(group1.getIndexCode());
@ -191,35 +191,35 @@ public class IndexExcelDataListener extends AnalysisEventListener<IndexModel> {
group2.setIndexId(indexDictEntity.getId());
group2.setParentIndexGroupId(group1.getId());
group2.setId(UniqueIdGenerator.generate());
group2.setIndexCode(Pinyin4jUtil.getSpellPinYin(indexDictEntity.getIndexName(),false,4 ));
group2.setIndexCode(Pinyin4jUtil.getSpellPinYin(indexDictEntity.getIndexName(), false, 4));
indexGroupMap.put(groupMapKey, group2);
//构建 分组明细
templateEntity = indexGroupDetailMap.get(level2Index);
if (templateEntity == null) {
templateEntity = new IndexGroupDetailTemplateEntity();
templateEntity = new IndexGroupDetailTemplateEntity();
templateEntity.setIndexGroupId(group2.getId());
templateEntity.setIndexId(indexDictEntity.getId());
templateEntity.setAllParentIndexCode(allIndexCodeSb.toString());
templateEntity.setId(UniqueIdGenerator.generate());
templateEntity.setCorrelation(index.getCorrelation());
buildIndexGroupDetail(templateEntity,indexDictEntity, index, group1, 2);
indexGroupDetailMap.put(level2Index,templateEntity);
buildIndexGroupDetail(templateEntity, indexDictEntity, index, 2);
indexGroupDetailMap.put(groupMapKey, templateEntity);
}
}
indexDictEntity = indexDicMap.get(index.getLevel5Index());
allIndexCodeSb.append(StrConstant.COLON);
allIndexCodeSb.append(group2.getIndexCode());
templateEntity = indexGroupDetailMap.get(index.getLevel1Index()+index.getLevel5Index());
templateEntity = indexGroupDetailMap.get(index.getLevel1Index() + index.getLevel5Index());
if (templateEntity == null) {
templateEntity = new IndexGroupDetailTemplateEntity();
templateEntity = new IndexGroupDetailTemplateEntity();
templateEntity.setIndexGroupId(group2.getId());
templateEntity.setIndexId(indexDictEntity.getId());
templateEntity.setAllParentIndexCode(allIndexCodeSb.toString());
templateEntity.setId(UniqueIdGenerator.generate());
templateEntity.setCorrelation(index.getCorrelation());
buildIndexGroupDetail(templateEntity, indexDictEntity, index, group2, 5);
indexGroupDetailMap.put(index.getLevel1Index()+index.getLevel5Index(),templateEntity);
buildIndexGroupDetail(templateEntity, indexDictEntity, index, 5);
indexGroupDetailMap.put(index.getLevel1Index() + index.getLevel5Index(), templateEntity);
}
}
//}
@ -228,13 +228,13 @@ public class IndexExcelDataListener extends AnalysisEventListener<IndexModel> {
LOGGER.info("所有指标分组明细数据解析完成:{}", JSON.toJSONString(indexGroupDetailMap.values()));
}
private void buildIndexGroupDetail( IndexGroupDetailTemplateEntity templateEntity,IndexDictEntity indexDictEntity, IndexModel index, IndexGroupTemplateEntity parentGroup, Integer level) {
private void buildIndexGroupDetail(IndexGroupDetailTemplateEntity templateEntity, IndexDictEntity indexDictEntity, IndexModel index, Integer level) {
if (level == 5) {
templateEntity.setIndexCode(Pinyin4jUtil.getSpellPinYin(index.getLevel5Index(),false,4 ));
templateEntity.setIndexCode(Pinyin4jUtil.getSpellPinYin(index.getLevel5Index(), false, 4));
String level5WeightStr = index.getLevel5Weight().replace("%", "");
templateEntity.setWeight(new BigDecimal(level5WeightStr).divide(new BigDecimal(100), 4, RoundingMode.HALF_UP));
} else {
templateEntity.setIndexCode(Pinyin4jUtil.getSpellPinYin(indexDictEntity.getIndexName(),false,4 ));
templateEntity.setIndexCode(Pinyin4jUtil.getSpellPinYin(indexDictEntity.getIndexName(), false, 4));
templateEntity.setWeight(new BigDecimal(index.getWeight()).divide(new BigDecimal(100), 4, RoundingMode.HALF_UP));
}

5
epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/indexcal/impl/CpcIndexCalculateServiceImpl.java

@ -84,11 +84,12 @@ public class CpcIndexCalculateServiceImpl implements CpcIndexCalculateService {
totalEntity = ConvertUtils.sourceToTarget(part, CpcScoreEntity.class);
totalEntity.setIsTotal(NumConstant.ONE_STR);
totalEntity.setIndexCode(indexGroupDetailEntity.getIndexCode());
totalEntity.setScore(new BigDecimal(0));
cpcScoreTotalMap.put(userId, totalEntity);
}
//todo 自建群活跃度——议题转项目率 有阈值 >60%按60%算
BigDecimal total = part.getScore().multiply(indexGroupDetailEntity.getWeight());
log.debug("userId:{},分数:{},权重:{},total:{}", userId, part.getScore(), indexGroupDetailEntity.getWeight(), total);
log.info("userId:{},分数:{},权重:{},total:{}", userId, part.getScore(), indexGroupDetailEntity.getWeight(), total);
totalEntity.setScore(totalEntity.getScore().add(total));
}
});
@ -225,6 +226,8 @@ public class CpcIndexCalculateServiceImpl implements CpcIndexCalculateService {
indexInputVO.setIndexId(index.getIndexCode());
//权重
indexInputVO.setWeight(index.getWeight());
//阈值
indexInputVO.setThreshold(index.getThreshold());
BigDecimal minValue = null;
BigDecimal maxValue = null;

Loading…
Cancel
Save