Commit 0a793609 by zhangkb

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

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