|  | @ -94,39 +94,51 @@ public class IndexExplainServiceImpl implements IndexExplainService { | 
			
		
	
		
		
			
				
					|  |  |     } |  |  |     } | 
			
		
	
		
		
			
				
					|  |  | 
 |  |  | 
 | 
			
		
	
		
		
			
				
					|  |  |     private void setTableData(IndexExplainFormDTO formDTO, Map<String, List<IndexGroupDetailResult>> detailEntityMap, IndexExplainTreeDTO explainDTO, IndexExplainResult result) { |  |  |     private void setTableData(IndexExplainFormDTO formDTO, Map<String, List<IndexGroupDetailResult>> detailEntityMap, IndexExplainTreeDTO explainDTO, IndexExplainResult result) { | 
			
		
	
		
		
			
				
					|  |  |         Integer goDown = explainDTO.getGoDown(); |  |  |  | 
			
		
	
		
		
			
				
					|  |  |         if (NumConstant.ONE == explainDTO.getIsSearch()) { |  |  |         if (NumConstant.ONE == explainDTO.getIsSearch()) { | 
			
		
	
		
		
			
				
					
					|  |  |             List<String> tableHeaders = getTableHeaders(explainDTO); |  |  |             String type = explainDTO.getType(); | 
			
				
				
			
		
	
		
		
			
				
					
					|  |  |             result.setTableTileList(tableHeaders); |  |  | 
 | 
			
				
				
			
		
	
		
		
	
		
		
	
		
		
			
				
					|  |  |             switch (explainDTO.getOrgLevel()) { |  |  |             switch (explainDTO.getOrgLevel()) { | 
			
		
	
		
		
			
				
					|  |  |                 case "grid": |  |  |                 case "grid": | 
			
		
	
		
		
			
				
					|  |  |                     String type = explainDTO.getType(); |  |  |  | 
			
		
	
		
		
			
				
					|  |  |                     String allIndexCodePath = null; |  |  |                     String allIndexCodePath = null; | 
			
		
	
		
		
			
				
					|  |  |                     List<IndexScoreDetailResult> tableList = null; |  |  |                     List<IndexScoreDetailResult> tableList = null; | 
			
		
	
		
		
			
				
					
					|  |  |                     if (IndexConstant.ZI_SHEN.equals(type)) { |  |  | 
 | 
			
				
				
			
		
	
		
		
			
				
					
					|  |  |                         allIndexCodePath = "wanggexiangguan:dangjiannengli"; |  |  |                     List<IndexScoreResult> scoreList = null; | 
			
				
				
			
		
	
		
		
			
				
					|  |  |                         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); |  |  |  | 
			
		
	
		
		
			
				
					|  |  |                     } |  |  |  | 
			
		
	
		
		
	
		
		
	
		
		
			
				
					|  |  |                     //set Target value
 |  |  |                     //set Target value
 | 
			
		
	
		
		
			
				
					|  |  |                     IndexScoreFormDTO ablityListFormDTO = new IndexScoreFormDTO(); |  |  |                     IndexScoreFormDTO ablityListFormDTO = new IndexScoreFormDTO(); | 
			
		
	
		
		
			
				
					|  |  |                     ablityListFormDTO.setCustomerId(formDTO.getCustomerId()); |  |  |                     ablityListFormDTO.setCustomerId(formDTO.getCustomerId()); | 
			
		
	
		
		
			
				
					|  |  |                     ablityListFormDTO.setOrgId(formDTO.getOrgId()); |  |  |                     ablityListFormDTO.setOrgId(formDTO.getOrgId()); | 
			
		
	
		
		
			
				
					|  |  |                     ablityListFormDTO.setMonthId(DateUtils.getCurrentTimeBeforeMonthId()); |  |  |                     ablityListFormDTO.setMonthId(DateUtils.getCurrentTimeBeforeMonthId()); | 
			
		
	
		
		
			
				
					
					|  |  |                     ablityListFormDTO.setAllParentIndexCode(allIndexCodePath); |  |  | 
 | 
			
				
				
			
		
	
		
		
			
				
					
					|  |  |                     //下钻到党员
 |  |  | 
 | 
			
				
				
			
		
	
		
		
			
				
					
					|  |  |                     List<IndexScoreResult> scoreList = null; |  |  |                     if (IndexConstant.ZI_SHEN.equals(type)) { | 
			
				
				
			
		
	
		
		
			
				
					
					|  |  |                     if (goDown == 1) { |  |  |                         allIndexCodePath = "wanggexiangguan:dangjiannengli"; | 
			
				
				
			
		
	
		
		
			
				
					
					|  |  |                         scoreList = factIndexCpcSubScoreDao.selecCpcAvgScore(ablityListFormDTO); |  |  | 
 | 
			
				
				
			
		
	
		
		
			
				
					
					|  |  |                     } else { |  |  |                         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); |  |  |                         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; |  |  |                         return; | 
			
		
	
		
		
			
				
					|  |  |                     } |  |  |                     } | 
			
		
	
		
		
			
				
					|  |  |                     for (IndexScoreResult score : scoreList) { |  |  |                     for (IndexScoreResult score : scoreList) { | 
			
		
	
	
		
		
			
				
					|  | @ -135,12 +147,10 @@ public class IndexExplainServiceImpl implements IndexExplainService { | 
			
		
	
		
		
			
				
					|  |  |                                 tb.setOriginValue(score.getOriginValue()); |  |  |                                 tb.setOriginValue(score.getOriginValue()); | 
			
		
	
		
		
			
				
					|  |  |                                 tb.setScore(String.valueOf(score.getScore())); |  |  |                                 tb.setScore(String.valueOf(score.getScore())); | 
			
		
	
		
		
			
				
					|  |  |                                 tb.setQuantity(score.getQuantity()); |  |  |                                 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; |  |  |                     break; | 
			
		
	
		
		
			
				
					|  |  |                 default: |  |  |                 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<IndexGroupDetailResult> indexGroupDetailEntities = detailEntityMap.get(allIndexCodePath); | 
			
		
	
		
		
			
				
					|  |  |         List<IndexScoreDetailResult> tableList = new ArrayList<>(); |  |  |         List<IndexScoreDetailResult> tableList = new ArrayList<>(); | 
			
		
	
		
		
			
				
					|  |  |  |  |  |         List<String> threlodList = new ArrayList<>(); | 
			
		
	
		
		
			
				
					|  |  |         indexGroupDetailEntities.forEach(index -> { |  |  |         indexGroupDetailEntities.forEach(index -> { | 
			
		
	
		
		
			
				
					|  |  |             IndexScoreDetailResult table = new IndexScoreDetailResult(); |  |  |             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.setIndexCode(index.getIndexCode()); | 
			
		
	
		
		
			
				
					|  |  |             table.setIndexName(index.getIndexName()); |  |  |             table.setIndexName(index.getIndexName()); | 
			
		
	
		
		
			
				
					|  |  |             table.setOriginValue(NumConstant.ZERO_STR); |  |  |             table.setOriginValue(NumConstant.ZERO_STR); | 
			
		
	
		
		
			
				
					|  |  |             table.setScore(NumConstant.ZERO_STR); |  |  |             table.setScore(NumConstant.ZERO_STR); | 
			
		
	
		
		
			
				
					|  |  |             table.setWeight(index.getWeight().multiply(new BigDecimal(100)).setScale(NumConstant.TWO, BigDecimal.ROUND_HALF_UP) + "%"); |  |  |             table.setWeight(index.getWeight().multiply(new BigDecimal(100)).setScale(NumConstant.TWO, BigDecimal.ROUND_HALF_UP) + "%"); | 
			
		
	
		
		
			
				
					|  |  |             tableList.add(table); |  |  |             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; |  |  |         return tableList; | 
			
		
	
		
		
			
				
					|  |  |     } |  |  |     } | 
			
		
	
		
		
			
				
					|  |  | 
 |  |  | 
 | 
			
		
	
	
		
		
			
				
					|  | @ -182,15 +201,20 @@ public class IndexExplainServiceImpl implements IndexExplainService { | 
			
		
	
		
		
			
				
					|  |  | 
 |  |  | 
 | 
			
		
	
		
		
			
				
					|  |  |     } |  |  |     } | 
			
		
	
		
		
			
				
					|  |  | 
 |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |     private List<String> getTableHeaders(IndexExplainTreeDTO explain) { |  |  |     private List<String> getTableHeaders(String type, String allIndexCode, String orgLevel) { | 
			
				
				
			
		
	
		
		
			
				
					|  |  |         String type = explain.getType(); |  |  |  | 
			
		
	
		
		
	
		
		
			
				
					|  |  |         List<String> headers = new ArrayList<>(); |  |  |         List<String> headers = new ArrayList<>(); | 
			
		
	
		
		
			
				
					
					|  |  |         if ("zishen".equals(type)) { |  |  |         switch (orgLevel) { | 
			
				
				
			
		
	
		
		
			
				
					
					|  |  |             headers = IndexConstant.getStandardSelfHeaders(explain.getIndexCode()); |  |  |             case "grid": | 
			
				
				
			
		
	
		
		
			
				
					
					|  |  | 
 |  |  |                 //还没确定怎么搞
 | 
			
				
				
			
		
	
		
		
			
				
					
					|  |  |         } else if ("xiaji".equals(type)) { |  |  |             default: | 
			
				
				
			
		
	
		
		
			
				
					
					|  |  |             headers = IndexConstant.getStandardSubHeaders(explain.getIndexCode()); |  |  |                 if ("zishen".equals(type)) { | 
			
				
				
			
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
			
				
					|  |  |  |  |  |                     headers = IndexConstant.getStandardSelfHeaders(allIndexCode); | 
			
		
	
		
		
			
				
					|  |  |  |  |  | 
 | 
			
		
	
		
		
			
				
					|  |  |  |  |  |                 } else if ("xiaji".equals(type)) { | 
			
		
	
		
		
			
				
					|  |  |  |  |  |                     headers = IndexConstant.getStandardSubHeaders(allIndexCode); | 
			
		
	
		
		
			
				
					|  |  |  |  |  |                 } | 
			
		
	
		
		
			
				
					|  |  |         } |  |  |         } | 
			
		
	
		
		
			
				
					|  |  |  |  |  | 
 | 
			
		
	
		
		
			
				
					|  |  |         return headers; |  |  |         return headers; | 
			
		
	
		
		
			
				
					|  |  |     } |  |  |     } | 
			
		
	
		
		
			
				
					|  |  | } |  |  | } | 
			
		
	
	
		
		
			
				
					|  | 
 |