Commit 289a3d00 by zhangkb

优化单位评分规则计算逻辑

parent 2a294a45
......@@ -92,14 +92,19 @@ public class ScoreRuleService {
"1".equals(driveIndDef.getIsUnitCalScore())) {
//得分类型:0 指标值直接参与计算
if("0".equals(scoreRule.getScoreType())) {
if(!"NaN".equals(calResult.getValue()) && !"0(Error)".equals(calResult.getValue())
&& !"0.0000".equals(calResult.getValue()) && !"0".equals(calResult.getValue())) {
values.add(calResult.getValue());
}
}else if("1".equals(scoreRule.getScoreType())) {//1 指标得分分数参与计算(综合评分和改善提升分开算)
values.add(calResult.getScore());
if(!"No".equals(calResult.getImproveScore())) {
if(!"No".equals(calResult.getImproveScore()) &&
StringUtils.isNotBlank(calResult.getImproveScore())) {
improveValues.add(calResult.getImproveScore());
}
}else {//2指标得分分数参与计算(指标分数=综合+改善)
if(!"No".equals(calResult.getImproveScore())) {
if(!"No".equals(calResult.getImproveScore()) &&
StringUtils.isNotBlank(calResult.getImproveScore())) {
double indScore = Double.parseDouble(calResult.getScore());
double improveScore = Double.parseDouble(calResult.getImproveScore());
double sum = indScore+improveScore;
......@@ -146,10 +151,16 @@ public class ScoreRuleService {
if(calresultOp.isPresent()) {
//得分类型:0 指标值直接参与计算
if("0".equals(scoreRule.getScoreType())) {
if(!"NaN".equals(calresultOp.get().getValue()) &&
!"0(Error)".equals(calresultOp.get().getValue())) {
calFormula = calFormula.replace("["+indId+"]", calresultOp.get().getValue());
}else {
calFormula = calFormula.replace("["+indId+"]", "0.0");
}
}else if("1".equals(scoreRule.getScoreType())) {//1 指标得分分数参与计算(综合评分和改善提升分开算)
calFormula = calFormula.replace("["+indId+"]", calresultOp.get().getValue());
if(!"No".equals(calresultOp.get().getImproveScore())) {
if(!"No".equals(calresultOp.get().getImproveScore()) &&
StringUtils.isNotBlank(calresultOp.get().getImproveScore())) {
improveCalFormula = improveCalFormula.replace("["+indId+"]",
calresultOp.get().getImproveScore());
}else {
......@@ -157,7 +168,8 @@ public class ScoreRuleService {
}
}else {//2指标得分分数参与计算(指标分数=综合+改善)
String score = "0.0";
if(!"No".equals(calresultOp.get().getImproveScore())) {
if(!"No".equals(calresultOp.get().getImproveScore()) &&
StringUtils.isNotBlank(calresultOp.get().getImproveScore())) {
double indScore = Double.parseDouble(calresultOp.get().getScore());
double improveScore = Double.parseDouble(calresultOp.get().getImproveScore());
double sum = indScore+improveScore;
......@@ -237,14 +249,19 @@ public class ScoreRuleService {
if(indTypeWeight.getCatalogIdPath().indexOf(catalogIdPath)>=0) {
//得分类型:0 指标值直接参与计算
if("0".equals(scoreRule.getScoreType())) {
if(!"NaN".equals(calResult.getValue()) && !"0(Error)".equals(calResult.getValue())
&& !"0.0000".equals(calResult.getValue()) && !"0".equals(calResult.getValue())) {
values.add(calResult.getValue());
}
}else if("1".equals(scoreRule.getScoreType())) {//1 指标得分分数参与计算(综合评分和改善提升分开算)
values.add(calResult.getScore());
if(!"No".equals(calResult.getImproveScore())) {
if(!"No".equals(calResult.getImproveScore()) &&
StringUtils.isNotBlank(calResult.getImproveScore())) {
improveValues.add(calResult.getImproveScore());
}
}else {//2指标得分分数参与计算(指标分数=综合+改善)
if(!"No".equals(calResult.getImproveScore())) {
if(!"No".equals(calResult.getImproveScore()) &&
StringUtils.isNotBlank(calResult.getImproveScore())) {
double indScore = Double.parseDouble(calResult.getScore());
double improveScore = Double.parseDouble(calResult.getImproveScore());
double sum = indScore+improveScore;
......@@ -276,10 +293,6 @@ public class ScoreRuleService {
ScoreRule scoreRule = this.getById(scoreRuleId);
if(scoreRule!=null) {
for(String compareObj : compareObjs) {
//根据对标对象,日期查找该对标对象对标的所有指标结果
List<DriveIndCalResult> calResults = driveIndCalResultRepo.
findByCompareObjAndDate(compareObj, date);
if(!calResults.isEmpty()) {
Map<String,String> resultMap = new HashMap<>();
//计算类型:0 计算组内所有考核指标平均数
if("0".equals(scoreRule.getCalType())) {
......@@ -293,7 +306,6 @@ public class ScoreRuleService {
resultMap.put("compareId", compareId);
results.add(resultMap);
}
}
}else {
logger.info("单位评分卡id:"+scoreRuleId+" 不存在");
}
......
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