@ -82,7 +82,6 @@ public class IndexExplainServiceImpl implements IndexExplainService {
private FactIndexAgencyScoreDao agencyScoreDao ;
private FactIndexAgencyScoreDao agencyScoreDao ;
@Override
@Override
public List < IndexExplainResult > getScoreDetail ( IndexExplainFormDTO formDTO ) {
public List < IndexExplainResult > getScoreDetail ( IndexExplainFormDTO formDTO ) {
List < IndexExplainResult > results = new ArrayList < > ( ) ;
List < IndexExplainResult > results = new ArrayList < > ( ) ;
@ -91,7 +90,7 @@ public class IndexExplainServiceImpl implements IndexExplainService {
first . setMeaning ( IndexConstant . INDEX_SCORE_DESC ) ;
first . setMeaning ( IndexConstant . INDEX_SCORE_DESC ) ;
results . add ( first ) ;
results . add ( first ) ;
//获取该等级的分数及权重
//获取该等级的分数及权重
setCurrentMonthScore ( formDTO , first ) ;
List < IndexExplainTreeDTO > explainDTOList = indexExplainDao . getIndexExplainTreeByOrgType ( formDTO . getOrgLevel ( ) ) ;
List < IndexExplainTreeDTO > explainDTOList = indexExplainDao . getIndexExplainTreeByOrgType ( formDTO . getOrgLevel ( ) ) ;
if ( CollectionUtils . isEmpty ( explainDTOList ) ) {
if ( CollectionUtils . isEmpty ( explainDTOList ) ) {
return null ;
return null ;
@ -109,6 +108,7 @@ public class IndexExplainServiceImpl implements IndexExplainService {
results . add ( result ) ;
results . add ( result ) ;
result . setTitle ( explainDTO . getTitle ( ) ) ;
result . setTitle ( explainDTO . getTitle ( ) ) ;
result . setMeaning ( explainDTO . getMeaning ( ) ) ;
result . setMeaning ( explainDTO . getMeaning ( ) ) ;
result . setIndexCode ( explainDTO . getIndexCode ( ) ) ;
//全区相关的服务能力的含义中 有权重 所以特殊处理下
//全区相关的服务能力的含义中 有权重 所以特殊处理下
if ( explainDTO . getOrgLevel ( ) . equals ( OrgLevelEnum . DISTRICT . getCode ( ) ) & & IndexConstant . ZLZS_CN . equals ( explainDTO . getTitle ( ) ) ) {
if ( explainDTO . getOrgLevel ( ) . equals ( OrgLevelEnum . DISTRICT . getCode ( ) ) & & IndexConstant . ZLZS_CN . equals ( explainDTO . getTitle ( ) ) ) {
@ -123,6 +123,9 @@ public class IndexExplainServiceImpl implements IndexExplainService {
setTableData ( formDTO , detailEntityMap , explainDTO , result ) ;
setTableData ( formDTO , detailEntityMap , explainDTO , result ) ;
//子节点
//子节点
setChildren ( formDTO , detailEntityMap , result , explainDTO , explainDTO . getChildren ( ) ) ;
setChildren ( formDTO , detailEntityMap , result , explainDTO , explainDTO . getChildren ( ) ) ;
//设置 新的含义 带分数的
System . out . println ( result . getIndexCode ( ) + "=============" ) ;
setCurrentMonthScore ( formDTO , first , result ) ;
}
}
return results ;
return results ;
@ -133,38 +136,53 @@ public class IndexExplainServiceImpl implements IndexExplainService {
return indexDictDao . selectIndexDict ( formDTO . getIndexCode ( ) ) ;
return indexDictDao . selectIndexDict ( formDTO . getIndexCode ( ) ) ;
}
}
private void setCurrentMonthScore ( IndexExplainFormDTO formDTO , IndexExplainResult first ) {
private void setCurrentMonthScore ( IndexExplainFormDTO formDTO , IndexExplainResult first , IndexExplainResult second ) {
String orgLevel = formDTO . getOrgLevel ( ) ;
String orgLevel = formDTO . getOrgLevel ( ) ;
String orgId = formDTO . getOrgId ( ) ;
OrgLevelEnum anEnum = OrgLevelEnum . getEnum ( orgLevel ) ;
OrgLevelEnum anEnum = OrgLevelEnum . getEnum ( orgLevel ) ;
List < IndexScoreResult > list = null ;
switch ( anEnum ) {
switch ( anEnum ) {
case GRID :
case GRID :
List < IndexScoreResult > list = gridScoreDao . selectGridScoreList ( formDTO . getCustomerId ( ) , formDTO . getOrgId ( ) , formDTO . getMonthId ( ) ) ;
list = gridScoreDao . selectGridScoreList ( formDTO . getCustomerId ( ) , formDTO . getOrgId ( ) , formDTO . getMonthId ( ) ) ;
String meaning = first . getMeaning ( ) ;
for ( IndexScoreResult score : list ) {
String indexCode = score . getIndexCode ( ) ;
if ( score . getIsTotal ( ) ) {
meaning = meaning . replaceFirst ( IndexConstant . PATTERN_TOTAL , score . getScore ( ) . toString ( ) ) ;
continue ;
}
meaning = meaning . replaceFirst ( indexCode , score . getScore ( ) . toString ( ) ) . replaceFirst ( indexCode . concat ( IndexConstant . PATTERN_WEIGHT ) , score . getWeight ( ) + "%" ) ;
}
first . setMeaning ( meaning ) ;
break ;
break ;
case COMMUNITY :
case COMMUNITY :
list = communityScoreDao . selectComunityScoreList ( formDTO . getCustomerId ( ) , formDTO . getOrgId ( ) , formDTO . getMonthId ( ) ) ;
break ;
break ;
case STREET :
case STREET :
list = agencyScoreDao . selectAgencyScoreList ( formDTO . getCustomerId ( ) , formDTO . getOrgId ( ) , formDTO . getMonthId ( ) ) ;
break ;
break ;
case DISTRICT :
case DISTRICT :
list = agencyScoreDao . selectAgencyScoreList ( formDTO . getCustomerId ( ) , formDTO . getOrgId ( ) , formDTO . getMonthId ( ) ) ;
break ;
break ;
default :
default :
log . error ( "暂不支持更高级别的查询,level:{}" , orgLevel ) ;
log . error ( "暂不支持更高级别的查询,level:{}" , orgLevel ) ;
}
}
if ( CollectionUtils . isNotEmpty ( list ) ) {
setNewMeaningWithScore ( list , first , second ) ;
}
}
private void setNewMeaningWithScore ( List < IndexScoreResult > list , IndexExplainResult first , IndexExplainResult second ) {
String firstMeaning = first . getMeaning ( ) ;
String secondMeaning = second . getMeaning ( ) ;
for ( IndexScoreResult score : list ) {
String indexCode = score . getIndexCode ( ) ;
if ( score . getIsTotal ( ) ) {
firstMeaning = firstMeaning . replaceFirst ( IndexConstant . PATTERN_TOTAL , score . getScore ( ) . toString ( ) ) ;
continue ;
}
firstMeaning = firstMeaning . replaceFirst ( indexCode , score . getScore ( ) . toString ( ) ) . replaceFirst ( indexCode . concat ( IndexConstant . PATTERN_WEIGHT ) , score . getWeight ( ) . multiply ( new BigDecimal ( NumConstant . ONE_HUNDRED ) ) . setScale ( NumConstant . ZERO , BigDecimal . ROUND_HALF_UP ) . toString ( ) + "%" ) ;
if ( score . getIndexCode ( ) . equals ( second . getIndexCode ( ) ) ) {
secondMeaning = secondMeaning . replaceFirst ( IndexConstant . PATTERN_TOTAL , score . getScore ( ) . toString ( ) )
. replaceFirst ( IndexConstant . BEN_JI_EN , score . getSelfScore ( ) . toString ( ) )
. replaceFirst ( IndexConstant . XIA_JI_EN , score . getSubScore ( ) . toString ( ) ) ;
}
}
first . setMeaning ( firstMeaning ) ;
second . setMeaning ( secondMeaning ) ;
}
}
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 ) {