Commit 0a793609 by zhangkb

将考核指标计算错误的值统一标识为NaN

parent b96343a4
...@@ -167,11 +167,11 @@ public class DriveIndCalculateActor extends AbstractActor{ ...@@ -167,11 +167,11 @@ public class DriveIndCalculateActor extends AbstractActor{
driveIndCalculateRegionActor.tell(driveIndAverageAndRankMsg,ActorRef.noSender()); driveIndCalculateRegionActor.tell(driveIndAverageAndRankMsg,ActorRef.noSender());
} catch (Exception e) { } catch (Exception e) {
DriveIndCalResultDef driveIndCalResult = new DriveIndCalResultDef(compareId, DriveIndCalResultDef driveIndCalResult = new DriveIndCalResultDef(compareId,
driveIndId,compareObj,date,"0(Error)",unit,"1","0","admin"); driveIndId,compareObj,date,"NaN",unit,"1","0","admin");
driveIndCalResultService.saveOrUpdate(driveIndCalResult); driveIndCalResultService.saveOrUpdate(driveIndCalResult);
DriveIndAverageAndRankMsg driveIndAverageAndRankMsg = DriveIndAverageAndRankMsg driveIndAverageAndRankMsg =
new DriveIndAverageAndRankMsg(driveIndCalResult.getId(), new DriveIndAverageAndRankMsg(driveIndCalResult.getId(),
compareId,driveIndId,compareObj,date,"0(Error)", compareId,driveIndId,compareObj,date,"NaN",
unit,indType,markType,averageDriveIndFormula); unit,indType,markType,averageDriveIndFormula);
driveIndCalculateRegionActor.tell(driveIndAverageAndRankMsg,ActorRef.noSender()); driveIndCalculateRegionActor.tell(driveIndAverageAndRankMsg,ActorRef.noSender());
logger.error("env:"+env+";formula:"+driveIndFormula); logger.error("env:"+env+";formula:"+driveIndFormula);
......
...@@ -126,7 +126,7 @@ public class IndScorecardService { ...@@ -126,7 +126,7 @@ public class IndScorecardService {
Iterator<DriveIndCalResultDef> it=currentDriveResult.iterator(); Iterator<DriveIndCalResultDef> it=currentDriveResult.iterator();
while(it.hasNext()){ while(it.hasNext()){
DriveIndCalResultDef driveCalResult = it.next(); DriveIndCalResultDef driveCalResult = it.next();
if("NaN".equals(driveCalResult.getValue())||"0(Error)".equals(driveCalResult.getValue()) if("NaN".equals(driveCalResult.getValue())
||"0.0000".equals(driveCalResult.getValue())||"0".equals(driveCalResult.getValue())){ ||"0.0000".equals(driveCalResult.getValue())||"0".equals(driveCalResult.getValue())){
it.remove(); it.remove();
} }
...@@ -145,7 +145,7 @@ public class IndScorecardService { ...@@ -145,7 +145,7 @@ public class IndScorecardService {
} }
} }
String value = currentCompareObjResult.getValue(); String value = currentCompareObjResult.getValue();
if(!"NaN".equals(value) && !"0(Error)".equals(value) if(!"NaN".equals(value)
&& !"0.0000".equals(value) && !"0".equals(value)) { && !"0.0000".equals(value) && !"0".equals(value)) {
//综合评价 //综合评价
if("0".equals(scoreCard.getScoreType())) {//定义 if("0".equals(scoreCard.getScoreType())) {//定义
......
...@@ -701,7 +701,7 @@ public class IndicatorsValueService { ...@@ -701,7 +701,7 @@ public class IndicatorsValueService {
Iterator<DriveIndCalResultDef> it=currentDriveResult.iterator(); Iterator<DriveIndCalResultDef> it=currentDriveResult.iterator();
while(it.hasNext()){ while(it.hasNext()){
DriveIndCalResultDef driveCalResult = it.next(); DriveIndCalResultDef driveCalResult = it.next();
if("NaN".equals(driveCalResult.getValue())||"0(Error)".equals(driveCalResult.getValue()) if("NaN".equals(driveCalResult.getValue())
||"0.0000".equals(driveCalResult.getValue())||"0".equals(driveCalResult.getValue())){ ||"0.0000".equals(driveCalResult.getValue())||"0".equals(driveCalResult.getValue())){
it.remove(); it.remove();
} }
...@@ -725,7 +725,7 @@ public class IndicatorsValueService { ...@@ -725,7 +725,7 @@ public class IndicatorsValueService {
Iterator<DriveIndCalResultDef> sit=sameDriveResult.iterator(); Iterator<DriveIndCalResultDef> sit=sameDriveResult.iterator();
while(sit.hasNext()){ while(sit.hasNext()){
DriveIndCalResultDef driveCalResult = sit.next(); DriveIndCalResultDef driveCalResult = sit.next();
if("NaN".equals(driveCalResult.getValue())||"0(Error)".equals(driveCalResult.getValue()) if("NaN".equals(driveCalResult.getValue())
||"0.0000".equals(driveCalResult.getValue())||"0".equals(driveCalResult.getValue())){ ||"0.0000".equals(driveCalResult.getValue())||"0".equals(driveCalResult.getValue())){
sit.remove(); sit.remove();
} }
......
...@@ -110,7 +110,7 @@ public class ScoreRuleService { ...@@ -110,7 +110,7 @@ public class ScoreRuleService {
"1".equals(driveIndDef.getIsUnitCalScore())) { "1".equals(driveIndDef.getIsUnitCalScore())) {
//得分类型:0 指标值直接参与计算 //得分类型:0 指标值直接参与计算
if("0".equals(scoreRule.getScoreType())) { if("0".equals(scoreRule.getScoreType())) {
if(!"NaN".equals(calResult.getValue()) && !"0(Error)".equals(calResult.getValue()) if(!"NaN".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());
} }
...@@ -169,8 +169,7 @@ public class ScoreRuleService { ...@@ -169,8 +169,7 @@ public class ScoreRuleService {
if(calresultOp!=null) { if(calresultOp!=null) {
//得分类型:0 指标值直接参与计算 //得分类型:0 指标值直接参与计算
if("0".equals(scoreRule.getScoreType())) { if("0".equals(scoreRule.getScoreType())) {
if(!"NaN".equals(calresultOp.getValue()) && if(!"NaN".equals(calresultOp.getValue())) {
!"0(Error)".equals(calresultOp.getValue())) {
calFormula = calFormula.replace("["+indId+"]", calresultOp.getValue()); calFormula = calFormula.replace("["+indId+"]", calresultOp.getValue());
}else { }else {
calFormula = calFormula.replace("["+indId+"]", "0.0"); calFormula = calFormula.replace("["+indId+"]", "0.0");
...@@ -270,7 +269,7 @@ public class ScoreRuleService { ...@@ -270,7 +269,7 @@ public class ScoreRuleService {
if(indTypeWeight.getCatalogIdPath().indexOf(catalogIdPath)>=0) { if(indTypeWeight.getCatalogIdPath().indexOf(catalogIdPath)>=0) {
//得分类型:0 指标值直接参与计算 //得分类型:0 指标值直接参与计算
if("0".equals(scoreRule.getScoreType())) { if("0".equals(scoreRule.getScoreType())) {
if(!"NaN".equals(calResult.getValue()) && !"0(Error)".equals(calResult.getValue()) if(!"NaN".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());
} }
......
...@@ -151,7 +151,7 @@ public class ShortboardRuleService { ...@@ -151,7 +151,7 @@ public class ShortboardRuleService {
for(DriveIndCalResultDef calResult : calResults) { for(DriveIndCalResultDef calResult : calResults) {
//判断规则选择是大于还是小于 //判断规则选择是大于还是小于
if("0".equals(shortboardItem.getCalType())) {//大于 if("0".equals(shortboardItem.getCalType())) {//大于
if(!"NaN".equals(calResult.getValue()) && !"0(Error)".equals(calResult.getValue()) if(!"NaN".equals(calResult.getValue())
&& !"0.0000".equals(calResult.getValue()) && !"0".equals(calResult.getValue())) { && !"0.0000".equals(calResult.getValue()) && !"0".equals(calResult.getValue())) {
//判断有没有实际的平均值 //判断有没有实际的平均值
if(!"0.0".equals(calResult.getActualAverage())) { if(!"0.0".equals(calResult.getActualAverage())) {
...@@ -167,7 +167,7 @@ public class ShortboardRuleService { ...@@ -167,7 +167,7 @@ public class ShortboardRuleService {
} }
} }
}else {//小于 }else {//小于
if(!"NaN".equals(calResult.getValue()) && !"0(Error)".equals(calResult.getValue()) if(!"NaN".equals(calResult.getValue())
&& !"0.0000".equals(calResult.getValue()) && !"0".equals(calResult.getValue())) { && !"0.0000".equals(calResult.getValue()) && !"0".equals(calResult.getValue())) {
//判断有没有实际的平均值 //判断有没有实际的平均值
if(!"0.0".equals(calResult.getActualAverage())) { if(!"0.0".equals(calResult.getActualAverage())) {
...@@ -241,7 +241,7 @@ public class ShortboardRuleService { ...@@ -241,7 +241,7 @@ public class ShortboardRuleService {
} }
if(maxValue!=null) { if(maxValue!=null) {
for(DriveIndCalResultDef calResult : calResults) { for(DriveIndCalResultDef calResult : calResults) {
if(!"NaN".equals(calResult.getValue()) && !"0(Error)".equals(calResult.getValue()) if(!"NaN".equals(calResult.getValue())
&& !"0.0000".equals(calResult.getValue()) && !"0".equals(calResult.getValue())) { && !"0.0000".equals(calResult.getValue()) && !"0".equals(calResult.getValue())) {
if(StringUtils.isNotBlank(shortboardItem.getValue())) { if(StringUtils.isNotBlank(shortboardItem.getValue())) {
//判断是比较差还是百分比 //判断是比较差还是百分比
...@@ -278,7 +278,7 @@ public class ShortboardRuleService { ...@@ -278,7 +278,7 @@ public class ShortboardRuleService {
String minValue = null; String minValue = null;
if(!calResults.isEmpty()) { if(!calResults.isEmpty()) {
for(int i=(calResults.size()-1);i>=0;i--) { for(int i=(calResults.size()-1);i>=0;i--) {
if(!"NaN".equals(calResults.get(i).getValue()) && !"0(Error)".equals(calResults.get(i).getValue()) if(!"NaN".equals(calResults.get(i).getValue())
&& !"0.0000".equals(calResults.get(i).getValue()) && !"0".equals(calResults.get(i).getValue())) { && !"0.0000".equals(calResults.get(i).getValue()) && !"0".equals(calResults.get(i).getValue())) {
minValue = calResults.get(i).getValue(); minValue = calResults.get(i).getValue();
} }
...@@ -286,7 +286,7 @@ public class ShortboardRuleService { ...@@ -286,7 +286,7 @@ public class ShortboardRuleService {
} }
if(minValue!=null) { if(minValue!=null) {
for(DriveIndCalResultDef calResult : calResults) { for(DriveIndCalResultDef calResult : calResults) {
if(!"NaN".equals(calResult.getValue()) && !"0(Error)".equals(calResult.getValue()) if(!"NaN".equals(calResult.getValue())
&& !"0.0000".equals(calResult.getValue()) && !"0".equals(calResult.getValue())) { && !"0.0000".equals(calResult.getValue()) && !"0".equals(calResult.getValue())) {
if(StringUtils.isNotBlank(shortboardItem.getValue())) { if(StringUtils.isNotBlank(shortboardItem.getValue())) {
//判断是比较差还是百分比 //判断是比较差还是百分比
...@@ -322,7 +322,7 @@ public class ShortboardRuleService { ...@@ -322,7 +322,7 @@ public class ShortboardRuleService {
findByIndIdAndDateAndCompareObjIn(paramMap);//根据考核指标id,日期和对标对象获取对标结果 findByIndIdAndDateAndCompareObjIn(paramMap);//根据考核指标id,日期和对标对象获取对标结果
if(!calResults.isEmpty()) { if(!calResults.isEmpty()) {
for(DriveIndCalResultDef calResult : calResults) { for(DriveIndCalResultDef calResult : calResults) {
if(!"NaN".equals(calResult.getValue()) && !"0(Error)".equals(calResult.getValue()) if(!"NaN".equals(calResult.getValue())
&& !"0.0000".equals(calResult.getValue()) && !"0".equals(calResult.getValue())) { && !"0.0000".equals(calResult.getValue()) && !"0".equals(calResult.getValue())) {
filterCalResults.add(calResult); filterCalResults.add(calResult);
} }
...@@ -357,11 +357,9 @@ public class ShortboardRuleService { ...@@ -357,11 +357,9 @@ public class ShortboardRuleService {
findByIndIdAndDateAndCompareObj(driveId,(date-100),compareObj); findByIndIdAndDateAndCompareObj(driveId,(date-100),compareObj);
if(currentIndCalResult!=null && sameIndCalResult!=null) { if(currentIndCalResult!=null && sameIndCalResult!=null) {
if(!"NaN".equals(currentIndCalResult.getValue()) && if(!"NaN".equals(currentIndCalResult.getValue()) &&
!"0(Error)".equals(currentIndCalResult.getValue()) &&
!"0.0000".equals(currentIndCalResult.getValue()) && !"0.0000".equals(currentIndCalResult.getValue()) &&
!"0".equals(currentIndCalResult.getValue())) { !"0".equals(currentIndCalResult.getValue())) {
if(!"NaN".equals(sameIndCalResult.getValue()) && if(!"NaN".equals(sameIndCalResult.getValue()) &&
!"0(Error)".equals(sameIndCalResult.getValue()) &&
!"0.0000".equals(sameIndCalResult.getValue()) && !"0.0000".equals(sameIndCalResult.getValue()) &&
!"0".equals(sameIndCalResult.getValue())) { !"0".equals(sameIndCalResult.getValue())) {
if(StringUtils.isNotBlank(shortboardItem.getValue())) { if(StringUtils.isNotBlank(shortboardItem.getValue())) {
......
...@@ -21,8 +21,7 @@ public class CalculateUtils { ...@@ -21,8 +21,7 @@ public class CalculateUtils {
public static String calGowth(String unit,String currentValue,String sameValue,String type) { public static String calGowth(String unit,String currentValue,String sameValue,String type) {
String gowthValue = ""; String gowthValue = "";
StringBuilder formula = new StringBuilder(); StringBuilder formula = new StringBuilder();
if(!"NaN".equals(currentValue)&&!"0(Error)".equals(currentValue)&& if(!"NaN".equals(currentValue) && !"NaN".equals(sameValue)) {
!"NaN".equals(sameValue)&&!"0(Error)".equals(sameValue)) {
Object value = null; Object value = null;
if("0".equals(type)) { if("0".equals(type)) {
if("%".equals(unit)) { if("%".equals(unit)) {
...@@ -55,7 +54,7 @@ public class CalculateUtils { ...@@ -55,7 +54,7 @@ public class CalculateUtils {
Map<String,String> invalidMap = new HashMap<>(); Map<String,String> invalidMap = new HashMap<>();
//将map中的无效值挑出来 //将map中的无效值挑出来
for(Entry<String,String> entry : valueMap.entrySet()) { for(Entry<String,String> entry : valueMap.entrySet()) {
if("NaN".equals(entry.getValue())||"0(Error)".equals(entry.getValue()) if("NaN".equals(entry.getValue())
|| "0.0000".equals(entry.getValue()) || "0".equals(entry.getValue()) || "0.0000".equals(entry.getValue()) || "0".equals(entry.getValue())
|| "".equals(entry.getValue())) { || "".equals(entry.getValue())) {
invalidMap.put(entry.getKey(),entry.getValue()); invalidMap.put(entry.getKey(),entry.getValue());
...@@ -136,14 +135,14 @@ public class CalculateUtils { ...@@ -136,14 +135,14 @@ public class CalculateUtils {
formula.append("("); formula.append("(");
for(int i=0;i<values.size();i++) { for(int i=0;i<values.size();i++) {
if(type==0) { if(type==0) {
if("NaN".equals(values.get(i)) || "0(Error)".equals(values.get(i)) if("NaN".equals(values.get(i))
|| "0.0000".equals(values.get(i)) || "0".equals(values.get(i)) || "0.0000".equals(values.get(i)) || "0".equals(values.get(i))
|| "".equals(values.get(i))) { || "".equals(values.get(i))) {
size -= 1; size -= 1;
continue; continue;
} }
}else { }else {
if("NaN".equals(values.get(i)) || "0(Error)".equals(values.get(i)) if("NaN".equals(values.get(i))
|| "".equals(values.get(i))) { || "".equals(values.get(i))) {
size -= 1; size -= 1;
continue; continue;
......
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