|
|
|
@ -94,39 +94,51 @@ public class IndexExplainServiceImpl implements IndexExplainService { |
|
|
|
} |
|
|
|
|
|
|
|
private void setTableData(IndexExplainFormDTO formDTO, Map<String, List<IndexGroupDetailResult>> detailEntityMap, IndexExplainTreeDTO explainDTO, IndexExplainResult result) { |
|
|
|
Integer goDown = explainDTO.getGoDown(); |
|
|
|
if (NumConstant.ONE == explainDTO.getIsSearch()) { |
|
|
|
List<String> tableHeaders = getTableHeaders(explainDTO); |
|
|
|
result.setTableTileList(tableHeaders); |
|
|
|
String type = explainDTO.getType(); |
|
|
|
|
|
|
|
switch (explainDTO.getOrgLevel()) { |
|
|
|
case "grid": |
|
|
|
String type = explainDTO.getType(); |
|
|
|
String allIndexCodePath = null; |
|
|
|
List<IndexScoreDetailResult> tableList = null; |
|
|
|
if (IndexConstant.ZI_SHEN.equals(type)) { |
|
|
|
allIndexCodePath = "wanggexiangguan:dangjiannengli"; |
|
|
|
tableList = setDefaultTableData(detailEntityMap, type, allIndexCodePath); |
|
|
|
result.setTableDataList(tableList); |
|
|
|
} else if (IndexConstant.XIA_JI.equals(type)) { |
|
|
|
allIndexCodePath = "dangyuanxiangguan:lianxiqunzhong"; |
|
|
|
tableList = setDefaultTableData(detailEntityMap, type, allIndexCodePath); |
|
|
|
result.setTableDataList(tableList); |
|
|
|
} |
|
|
|
|
|
|
|
List<IndexScoreResult> scoreList = null; |
|
|
|
//set Target value
|
|
|
|
IndexScoreFormDTO ablityListFormDTO = new IndexScoreFormDTO(); |
|
|
|
ablityListFormDTO.setCustomerId(formDTO.getCustomerId()); |
|
|
|
ablityListFormDTO.setOrgId(formDTO.getOrgId()); |
|
|
|
ablityListFormDTO.setMonthId(DateUtils.getCurrentTimeBeforeMonthId()); |
|
|
|
ablityListFormDTO.setAllParentIndexCode(allIndexCodePath); |
|
|
|
//下钻到党员
|
|
|
|
List<IndexScoreResult> scoreList = null; |
|
|
|
if (goDown == 1) { |
|
|
|
scoreList = factIndexCpcSubScoreDao.selecCpcAvgScore(ablityListFormDTO); |
|
|
|
} else { |
|
|
|
|
|
|
|
|
|
|
|
if (IndexConstant.ZI_SHEN.equals(type)) { |
|
|
|
allIndexCodePath = "wanggexiangguan:dangjiannengli"; |
|
|
|
|
|
|
|
List<String> tableHeaders = getTableHeaders(type, allIndexCodePath, formDTO.getOrgLevel()); |
|
|
|
result.setTableTileList(tableHeaders); |
|
|
|
|
|
|
|
|
|
|
|
tableList = setDefaultTableData(formDTO.getOrgLevel(), type, detailEntityMap, result, allIndexCodePath); |
|
|
|
|
|
|
|
//不下钻
|
|
|
|
ablityListFormDTO.setAllParentIndexCode(allIndexCodePath); |
|
|
|
scoreList = gridSubScoreDao.selectGridSubScore(ablityListFormDTO); |
|
|
|
} else if (IndexConstant.XIA_JI.equals(type)) { |
|
|
|
|
|
|
|
allIndexCodePath = "dangyuanxiangguan:lianxiqunzhong"; |
|
|
|
|
|
|
|
|
|
|
|
List<String> tableHeaders = getTableHeaders(type, allIndexCodePath, formDTO.getOrgLevel()); |
|
|
|
tableHeaders.add(0, "组织内党员的联系群众指数考评分(平均值)"); |
|
|
|
result.setTableTileList(tableHeaders); |
|
|
|
|
|
|
|
tableList = setDefaultTableData(formDTO.getOrgLevel(), type, detailEntityMap, result, allIndexCodePath); |
|
|
|
|
|
|
|
//下钻到党员
|
|
|
|
ablityListFormDTO.setAllParentIndexCode(allIndexCodePath); |
|
|
|
scoreList = factIndexCpcSubScoreDao.selecCpcAvgScore(ablityListFormDTO); |
|
|
|
} |
|
|
|
if (scoreList == null || tableList == null) { |
|
|
|
|
|
|
|
if (scoreList == null) { |
|
|
|
return; |
|
|
|
} |
|
|
|
for (IndexScoreResult score : scoreList) { |
|
|
|
@ -135,12 +147,10 @@ public class IndexExplainServiceImpl implements IndexExplainService { |
|
|
|
tb.setOriginValue(score.getOriginValue()); |
|
|
|
tb.setScore(String.valueOf(score.getScore())); |
|
|
|
tb.setQuantity(score.getQuantity()); |
|
|
|
tb.setWeight(score.getWeight().multiply(new BigDecimal(100)).setScale(NumConstant.TWO, BigDecimal.ROUND_HALF_UP) + "%"); |
|
|
|
tb.setWeight(score.getWeight().multiply(new BigDecimal(NumConstant.ONE_HUNDRED)).setScale(NumConstant.TWO, BigDecimal.ROUND_HALF_UP) + "%"); |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
break; |
|
|
|
default: |
|
|
|
|
|
|
|
@ -148,18 +158,27 @@ public class IndexExplainServiceImpl implements IndexExplainService { |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
private List<IndexScoreDetailResult> setDefaultTableData(Map<String, List<IndexGroupDetailResult>> detailEntityMap, String type, String allIndexCodePath) { |
|
|
|
private List<IndexScoreDetailResult> setDefaultTableData(String orgLevel, String type, Map<String, List<IndexGroupDetailResult>> detailEntityMap, IndexExplainResult result, String allIndexCodePath) { |
|
|
|
List<IndexGroupDetailResult> indexGroupDetailEntities = detailEntityMap.get(allIndexCodePath); |
|
|
|
List<IndexScoreDetailResult> tableList = new ArrayList<>(); |
|
|
|
List<String> threlodList = new ArrayList<>(); |
|
|
|
indexGroupDetailEntities.forEach(index -> { |
|
|
|
IndexScoreDetailResult table = new IndexScoreDetailResult(); |
|
|
|
if ("grid".equals(orgLevel) && IndexConstant.ZI_SHEN.equals(type) && index.getAllIndexCodePath().contains(IndexConstant.XIA_JI)) { |
|
|
|
return; |
|
|
|
} |
|
|
|
table.setIndexCode(index.getIndexCode()); |
|
|
|
table.setIndexName(index.getIndexName()); |
|
|
|
table.setOriginValue(NumConstant.ZERO_STR); |
|
|
|
table.setScore(NumConstant.ZERO_STR); |
|
|
|
table.setWeight(index.getWeight().multiply(new BigDecimal(100)).setScale(NumConstant.TWO, BigDecimal.ROUND_HALF_UP) + "%"); |
|
|
|
tableList.add(table); |
|
|
|
if (new BigDecimal(-1).compareTo(index.getThreshold()) != 0) { |
|
|
|
threlodList.add(index.getIndexName().concat(String.format(IndexConstant.THRESHOLD_TEXT, index.getThreshold().intValue()))); |
|
|
|
} |
|
|
|
}); |
|
|
|
result.setTableDataList(tableList); |
|
|
|
result.setThresholdList(threlodList); |
|
|
|
return tableList; |
|
|
|
} |
|
|
|
|
|
|
|
@ -182,15 +201,20 @@ public class IndexExplainServiceImpl implements IndexExplainService { |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
private List<String> getTableHeaders(IndexExplainTreeDTO explain) { |
|
|
|
String type = explain.getType(); |
|
|
|
private List<String> getTableHeaders(String type, String allIndexCode, String orgLevel) { |
|
|
|
List<String> headers = new ArrayList<>(); |
|
|
|
if ("zishen".equals(type)) { |
|
|
|
headers = IndexConstant.getStandardSelfHeaders(explain.getIndexCode()); |
|
|
|
|
|
|
|
} else if ("xiaji".equals(type)) { |
|
|
|
headers = IndexConstant.getStandardSubHeaders(explain.getIndexCode()); |
|
|
|
switch (orgLevel) { |
|
|
|
case "grid": |
|
|
|
//还没确定怎么搞
|
|
|
|
default: |
|
|
|
if ("zishen".equals(type)) { |
|
|
|
headers = IndexConstant.getStandardSelfHeaders(allIndexCode); |
|
|
|
|
|
|
|
} else if ("xiaji".equals(type)) { |
|
|
|
headers = IndexConstant.getStandardSubHeaders(allIndexCode); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
return headers; |
|
|
|
} |
|
|
|
} |
|
|
|
|