Commit 3710b5da by hzc

优化

parent 850f686c
...@@ -407,17 +407,16 @@ public class IndScorecardService { ...@@ -407,17 +407,16 @@ public class IndScorecardService {
//求公式最大值FMAX //求公式最大值FMAX
if(formula.indexOf("FMAX")>=0){ if(formula.indexOf("FMAX")>=0){
int maxIndex = formula.indexOf("FMAX"); int maxIndex = formula.indexOf("FMAX");
String sub = formula.substring(maxIndex);
formulaTmp=sub.substring(0,sub.indexOf(")")+1); formulaTmp = getFun(formula, maxIndex);
//formula公式,currentDriveResult结果,true 最大值 //formula公式,currentDriveResult结果,true 最大值
fValue = getFValue(formulaTmp,currentDriveResult,acsType,true); fValue = getFValue(formulaTmp,currentDriveResult,acsType,true);
formula=formula.replace(formulaTmp,String.valueOf(fValue)); formula=formula.replace(formulaTmp,String.valueOf(fValue));
} }
//求公式最小值FMIN //求公式最小值FMIN
if(formula.indexOf("FMIN")>=0){ if(formula.indexOf("FMIN")>=0){
int maxIndex = formula.indexOf("FMIN"); int minIndex = formula.indexOf("FMIN");
String sub = formula.substring(maxIndex); formulaTmp = getFun(formula, minIndex);
formulaTmp=sub.substring(0,sub.indexOf(")")+1);
//formula公式,currentDriveResult结果,true 最大值 //formula公式,currentDriveResult结果,true 最大值
fValue = getFValue(formulaTmp,currentDriveResult,acsType,false); fValue = getFValue(formulaTmp,currentDriveResult,acsType,false);
formula=formula.replace(formulaTmp,String.valueOf(fValue)); formula=formula.replace(formulaTmp,String.valueOf(fValue));
...@@ -539,7 +538,24 @@ public class IndScorecardService { ...@@ -539,7 +538,24 @@ public class IndScorecardService {
} }
return fValue; return fValue;
} }
//获取要求最大值的公式表达式
private String getFun(String formula,int maxIndex){
String sub = formula.substring(maxIndex);
int tmp = 1,endIndex=sub.indexOf(")");
for(int i=sub.indexOf('(')+1;i<sub.length();i++){
char c = sub.charAt(i);
if(c=='('){
tmp++;
}else if(c==')'){
tmp--;
}
if(tmp==0){
endIndex=i;
}
}
return sub.substring(0,endIndex+1);
}
private IndScorecard changeJson(IndScorecard scorecard) { private IndScorecard changeJson(IndScorecard scorecard) {
Gson gson = new Gson(); Gson gson = new Gson();
if(StringUtils.isNotBlank(scorecard.getAddScoreItemJson())) { if(StringUtils.isNotBlank(scorecard.getAddScoreItemJson())) {
......
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