Commit 32a957ac by hzc

指标积分最佳最差得分,最大值等于最小值时给零

parent d71e88ee
...@@ -239,9 +239,21 @@ public class IndScorecardService { ...@@ -239,9 +239,21 @@ public class IndScorecardService {
}else {//公式 }else {//公式
int rank = currentCompareObjResult.getRank();//获取排位 int rank = currentCompareObjResult.getRank();//获取排位
if(rank==1 && scoreCard.getBestIndScore()!=null) {//最佳指标 if(rank==1 && scoreCard.getBestIndScore()!=null) {//最佳指标
baseScoreValue = scoreCard.getBestIndScore(); if(checkMaxEqMin(currentDriveResult,acsType)){
//最大值等于最小值直接给零
baseScoreValue = 0;
}else{
baseScoreValue = scoreCard.getBestIndScore();
}
}else if(rank==currentDriveResultSize && scoreCard.getWorstIndScore()!=null) {//最差指标 }else if(rank==currentDriveResultSize && scoreCard.getWorstIndScore()!=null) {//最差指标
baseScoreValue = scoreCard.getWorstIndScore(); if(checkMaxEqMin(currentDriveResult,acsType)){
//最大值等于最小值直接给零
baseScoreValue = 0;
}else{
baseScoreValue = scoreCard.getWorstIndScore();
}
}else {//其他 }else {//其他
if(StringUtils.isNotBlank(scoreCard.getOtherCalFormula())) { if(StringUtils.isNotBlank(scoreCard.getOtherCalFormula())) {
baseScoreValue = this.getValueFromFormula( baseScoreValue = this.getValueFromFormula(
...@@ -313,7 +325,28 @@ public class IndScorecardService { ...@@ -313,7 +325,28 @@ public class IndScorecardService {
} }
return result; return result;
} }
private boolean checkMaxEqMin(List<DriveIndCalResultDef> currentDriveResult,String acsType){
double min = 0;
if("1".equals(acsType)) {
min = Double.valueOf(currentDriveResult.get(0).getValue());
}else {
min = Double.valueOf(currentDriveResult.get(currentDriveResult.size()-1).getValue());
}
//获取组内最大值
double max = 0;
if("1".equals(acsType)) {
max = Double.valueOf(currentDriveResult.get(currentDriveResult.size()-1).getValue());
}else {
max = Double.valueOf(currentDriveResult.get(0).getValue());
}
if(max==min){
return true;
}else{
return false;
}
}
private double calImproveValue(String acsType,String unit,List<ImproveScoreDef> importScoreDefList, private double calImproveValue(String acsType,String unit,List<ImproveScoreDef> importScoreDefList,
DriveIndCalResultDef current,DriveIndCalResultDef same,List<String> compareObjs, DriveIndCalResultDef current,DriveIndCalResultDef same,List<String> compareObjs,
String growCalType,String code) { String growCalType,String code) {
......
...@@ -371,21 +371,29 @@ public class ScoreRuleService { ...@@ -371,21 +371,29 @@ public class ScoreRuleService {
values.add(calResult.getValue()); values.add(calResult.getValue());
} }
}else if("1".equals(scoreRule.getScoreType())) {//1 指标得分分数参与计算(综合评分和改善提升分开算) }else if("1".equals(scoreRule.getScoreType())) {//1 指标得分分数参与计算(综合评分和改善提升分开算)
values.add(calResult.getScore()); if(!"NaN".equals(calResult.getValue()) && !"Infinite".equals(calResult.getValue())
/*&& !"0.0000".equals(calResult.getValue()) && !"0".equals(calResult.getValue())*/) {
values.add(calResult.getScore());
}
if(!"No".equals(calResult.getImproveScore()) && if(!"No".equals(calResult.getImproveScore()) &&
StringUtils.isNotBlank(calResult.getImproveScore())) { StringUtils.isNotBlank(calResult.getImproveScore())) {
improveValues.add(calResult.getImproveScore()); improveValues.add(calResult.getImproveScore());
} }
}else {//2指标得分分数参与计算(指标分数=综合+改善) }else {//2指标得分分数参与计算(指标分数=综合+改善)
if(!"No".equals(calResult.getImproveScore()) && if(!"NaN".equals(calResult.getValue()) && !"Infinite".equals(calResult.getValue())
StringUtils.isNotBlank(calResult.getImproveScore())) { /*&& !"0.0000".equals(calResult.getValue()) && !"0".equals(calResult.getValue())*/) {
double indScore = Double.parseDouble(calResult.getScore()); if(!"No".equals(calResult.getImproveScore()) &&
double improveScore = Double.parseDouble(calResult.getImproveScore()); StringUtils.isNotBlank(calResult.getImproveScore())) {
double sum = indScore+improveScore; double indScore = Double.parseDouble(calResult.getScore());
values.add(String.valueOf(sum)); double improveScore = Double.parseDouble(calResult.getImproveScore());
}else { double sum = indScore+improveScore;
values.add(calResult.getScore()); values.add(String.valueOf(sum));
}else {
values.add(calResult.getScore());
}
} }
} }
} }
} }
......
...@@ -115,25 +115,33 @@ public class TestScoreRuleService { ...@@ -115,25 +115,33 @@ public class TestScoreRuleService {
//得分类型:0 指标值直接参与计算 //得分类型:0 指标值直接参与计算
if("0".equals(scoreRule.getScoreType())) { if("0".equals(scoreRule.getScoreType())) {
if(!"NaN".equals(calResult.getValue()) && !"Infinite".equals(calResult.getValue()) if(!"NaN".equals(calResult.getValue()) && !"Infinite".equals(calResult.getValue())
&& !"0.0000".equals(calResult.getValue()) && !"0".equals(calResult.getValue())) { //&& !"0.0000".equals(calResult.getValue())
&& !"0".equals(calResult.getValue())) {
values.add(calResult.getValue()); values.add(calResult.getValue());
} }
}else if("1".equals(scoreRule.getScoreType())) {//1 指标得分分数参与计算(综合评分和改善提升分开算) }else if("1".equals(scoreRule.getScoreType())) {//1 指标得分分数参与计算(综合评分和改善提升分开算)
values.add(calResult.getScore()); if(!"NaN".equals(calResult.getValue()) && !"Infinite".equals(calResult.getValue())
if(!"No".equals(calResult.getImproveScore()) && && !"0".equals(calResult.getValue())) {
values.add(calResult.getScore());
}
if(!"No".equals(calResult.getImproveScore()) &&
StringUtils.isNotBlank(calResult.getImproveScore())) { StringUtils.isNotBlank(calResult.getImproveScore())) {
improveValues.add(calResult.getImproveScore()); improveValues.add(calResult.getImproveScore());
} }
}else {//2指标得分分数参与计算(指标分数=综合+改善) }else {//2指标得分分数参与计算(指标分数=综合+改善)
if(!"No".equals(calResult.getImproveScore()) && if(!"NaN".equals(calResult.getValue()) && !"Infinite".equals(calResult.getValue())
StringUtils.isNotBlank(calResult.getImproveScore())) { && !"0".equals(calResult.getValue())) {
double indScore = Double.parseDouble(calResult.getScore()); if(!"No".equals(calResult.getImproveScore()) &&
double improveScore = Double.parseDouble(calResult.getImproveScore()); StringUtils.isNotBlank(calResult.getImproveScore())) {
double sum = indScore+improveScore; double indScore = Double.parseDouble(calResult.getScore());
values.add(String.valueOf(sum)); double improveScore = Double.parseDouble(calResult.getImproveScore());
}else { double sum = indScore+improveScore;
values.add(calResult.getScore()); values.add(String.valueOf(sum));
}else {
values.add(calResult.getScore());
}
} }
} }
} }
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment