use of com.netsteadfast.greenstep.bsc.model.BscMeasureData in project bamboobsc by billchen198318.
the class AggregationMethod method average.
public float average(KpiVO kpi) throws Exception {
List<BbMeasureData> measureDatas = kpi.getMeasureDatas();
// init zero
float score = 0.0f;
int size = 0;
for (BbMeasureData measureData : measureDatas) {
BscMeasureData data = new BscMeasureData();
data.setActual(measureData.getActual());
data.setTarget(measureData.getTarget());
try {
Object value = BscFormulaUtils.parse(kpi.getFormula(), data);
if (value == null) {
continue;
}
if (!NumberUtils.isNumber(String.valueOf(value))) {
continue;
}
score += NumberUtils.toFloat(String.valueOf(value), 0.0f);
size++;
} catch (Exception e) {
e.printStackTrace();
}
}
if (score != 0.0f && size > 0) {
score = score / size;
}
return score;
}
use of com.netsteadfast.greenstep.bsc.model.BscMeasureData in project bamboobsc by billchen198318.
the class AggregationMethod method sumDistinctDateRange.
public void sumDistinctDateRange(KpiVO kpi, String frequency) throws Exception {
BscReportSupportUtils.loadExpression();
for (DateRangeScoreVO dateScore : kpi.getDateRangeScores()) {
List<Float> scores = new ArrayList<Float>();
float score = 0.0f;
//int size = 0;
for (BbMeasureData measureData : kpi.getMeasureDatas()) {
String date = dateScore.getDate().replaceAll("/", "");
if (!this.isDateRange(date, frequency, measureData)) {
continue;
}
BscMeasureData data = new BscMeasureData();
data.setActual(measureData.getActual());
data.setTarget(measureData.getTarget());
try {
Object value = BscFormulaUtils.parse(kpi.getFormula(), data);
if (value == null) {
continue;
}
if (!NumberUtils.isNumber(String.valueOf(value))) {
continue;
}
float nowScore = NumberUtils.toFloat(String.valueOf(value), 0.0f);
if (!scores.contains(nowScore)) {
scores.add(nowScore);
//size++;
score += nowScore;
}
} catch (Exception e) {
e.printStackTrace();
}
}
dateScore.setScore(score);
dateScore.setFontColor(BscScoreColorUtils.getFontColor(score));
dateScore.setBgColor(BscScoreColorUtils.getBackgroundColor(score));
dateScore.setImgIcon(BscReportSupportUtils.getHtmlIcon(kpi, score));
}
}
use of com.netsteadfast.greenstep.bsc.model.BscMeasureData in project bamboobsc by billchen198318.
the class PersonalAndOrganizationReportDateRangeScoreCommand method setDateRangeScore.
private void setDateRangeScore(KpiVO kpi, String dateType, String year) throws Exception {
float score = 0.0f;
// year
String date = year + "0101";
if ("2".equals(dateType)) {
// second helf-year
date = year + "0701";
}
for (BbMeasureData measureData : kpi.getMeasureDatas()) {
if (date.equals(measureData.getDate())) {
BscMeasureData data = new BscMeasureData();
data.setActual(measureData.getActual());
data.setTarget(measureData.getTarget());
Object value = BscFormulaUtils.parse(kpi.getFormula(), data);
// 2016-07-01
if (NumberUtils.isNumber(String.valueOf(value))) {
score = NumberUtils.toFloat(String.valueOf(value), 0.0f);
}
}
}
DateRangeScoreVO dateRangeScore = new DateRangeScoreVO();
dateRangeScore.setDate(date);
dateRangeScore.setBgColor(BscScoreColorUtils.getBackgroundColor(score));
dateRangeScore.setFontColor(BscScoreColorUtils.getFontColor(score));
dateRangeScore.setTarget(kpi.getTarget());
dateRangeScore.setMin(kpi.getMin());
dateRangeScore.setScore(score);
dateRangeScore.setImgIcon("");
kpi.getDateRangeScores().add(dateRangeScore);
}
use of com.netsteadfast.greenstep.bsc.model.BscMeasureData in project bamboobsc by billchen198318.
the class AggregationMethod method sumDateRange.
public void sumDateRange(KpiVO kpi, String frequency) throws Exception {
BscReportSupportUtils.loadExpression();
for (DateRangeScoreVO dateScore : kpi.getDateRangeScores()) {
float score = 0.0f;
//int size = 0;
for (BbMeasureData measureData : kpi.getMeasureDatas()) {
String date = dateScore.getDate().replaceAll("/", "");
if (!this.isDateRange(date, frequency, measureData)) {
continue;
}
BscMeasureData data = new BscMeasureData();
data.setActual(measureData.getActual());
data.setTarget(measureData.getTarget());
try {
Object value = BscFormulaUtils.parse(kpi.getFormula(), data);
if (value == null) {
continue;
}
if (!NumberUtils.isNumber(String.valueOf(value))) {
continue;
}
score += NumberUtils.toFloat(String.valueOf(value), 0.0f);
//size++;
} catch (Exception e) {
e.printStackTrace();
}
}
dateScore.setScore(score);
dateScore.setFontColor(BscScoreColorUtils.getFontColor(score));
dateScore.setBgColor(BscScoreColorUtils.getBackgroundColor(score));
dateScore.setImgIcon(BscReportSupportUtils.getHtmlIcon(kpi, score));
}
}
use of com.netsteadfast.greenstep.bsc.model.BscMeasureData in project bamboobsc by billchen198318.
the class AggregationMethod method countDistinctDateRange.
public void countDistinctDateRange(KpiVO kpi, String frequency) throws Exception {
BscReportSupportUtils.loadExpression();
for (DateRangeScoreVO dateScore : kpi.getDateRangeScores()) {
List<Float> scores = new ArrayList<Float>();
float score = 0.0f;
//int size = 0;
for (BbMeasureData measureData : kpi.getMeasureDatas()) {
String date = dateScore.getDate().replaceAll("/", "");
if (!this.isDateRange(date, frequency, measureData)) {
continue;
}
BscMeasureData data = new BscMeasureData();
data.setActual(measureData.getActual());
data.setTarget(measureData.getTarget());
try {
Object value = BscFormulaUtils.parse(kpi.getFormula(), data);
if (value == null) {
continue;
}
if (!NumberUtils.isNumber(String.valueOf(value))) {
continue;
}
float nowScore = NumberUtils.toFloat(String.valueOf(value), 0.0f);
if (!scores.contains(nowScore)) {
scores.add(nowScore);
}
} catch (Exception e) {
e.printStackTrace();
}
}
score = Float.valueOf(scores.size());
dateScore.setScore(score);
dateScore.setFontColor(BscScoreColorUtils.getFontColor(score));
dateScore.setBgColor(BscScoreColorUtils.getBackgroundColor(score));
dateScore.setImgIcon(BscReportSupportUtils.getHtmlIcon(kpi, score));
}
}
Aggregations