Commit 2b10bafe authored by duanruiming's avatar duanruiming

Merge remote-tracking branch 'origin/master'

parents 39ac121a 170f2203
......@@ -11,7 +11,10 @@ import net.wanji.common.enums.TurnConvertEnum;
import net.wanji.common.utils.tool.CrossUtil;
import net.wanji.common.utils.tool.TimeArrayUtil;
import net.wanji.databus.bo.CrossIdBO;
import net.wanji.databus.dao.entity.*;
import net.wanji.databus.dao.entity.BaseCrossSchedulesPO;
import net.wanji.databus.dao.entity.BaseCrossSchedulesPlanPO;
import net.wanji.databus.dao.entity.BaseCrossSchemePO;
import net.wanji.databus.dao.entity.CrossSectionPO;
import net.wanji.databus.dao.mapper.*;
import net.wanji.databus.po.*;
import net.wanji.opt.bo.CrossSchemeListBO;
......@@ -33,6 +36,8 @@ import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.stereotype.Service;
import java.lang.reflect.Field;
import java.math.BigDecimal;
import java.math.RoundingMode;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.*;
......@@ -396,14 +401,18 @@ public class SchemeEvaluateServiceImpl implements SchemeEvaluateService {
declaredField.setAccessible(true);
if (CollectionUtil.isNotEmpty(poList)) {
int metricSum = 0;
double metricSum = 0;
for (CrossDirDataHistPOExt crossDirDataHistPOExt : poList) {
Integer intValue = getDirInteger(crossDirDataHistPOExt, declaredField);
metricSum += intValue;
Double doubleValue = getDirDouble(crossDirDataHistPOExt, declaredField);
metricSum += doubleValue;
}
int size = poList.size();
vo.setMetricValue(metricSum / size);
double v = metricSum / size;
BigDecimal bd = new BigDecimal(v);
bd = bd.setScale(2, RoundingMode.HALF_UP);
double roundedValue = bd.doubleValue();
vo.setMetricValue(roundedValue);
}
res.add(vo);
}
......@@ -446,14 +455,18 @@ public class SchemeEvaluateServiceImpl implements SchemeEvaluateService {
declaredField.setAccessible(true);
if (CollectionUtil.isNotEmpty(poList)) {
int metricSum = 0;
double metricSum = 0;
for (CrossTurnDataHistPOExt crossTurnDataHistPOExt : poList) {
Integer intValue = getTurnInteger(crossTurnDataHistPOExt, declaredField);
metricSum += intValue;
Double doubleValue = getTurnDouble(crossTurnDataHistPOExt, declaredField);
metricSum += doubleValue;
}
int size = poList.size();
vo.setMetricValue(metricSum / size);
double v = metricSum / size;
BigDecimal bd = new BigDecimal(v);
bd = bd.setScale(2, RoundingMode.HALF_UP);
double roundedValue = bd.doubleValue();
vo.setMetricValue(roundedValue);
}
res.add(vo);
}
......@@ -473,34 +486,34 @@ public class SchemeEvaluateServiceImpl implements SchemeEvaluateService {
SPECIAL_METRICS.add(StrategyAndMetricsEnum.Metrics.CLEAR_RATE.getField());
}
private Integer getIntegerFromObject(Object object, Field declaredField) throws IllegalAccessException {
private Double getDoubleFromObject(Object object, Field declaredField) throws IllegalAccessException {
Object objValue = declaredField.get(object);
if (ObjectUtil.isEmpty(objValue)) {
objValue = 0;
}
String fieldName = declaredField.getName();
if (SPECIAL_METRICS.contains(fieldName) && objValue instanceof Double) {
objValue = (int) Math.round((Double) objValue * 100);
objValue = (double) Math.round((Double) objValue * 100);
}
if (objValue instanceof Integer) {
return (Integer) objValue;
return (double) objValue;
} else if (objValue instanceof Double) {
return (int) Math.round((Double) objValue);
BigDecimal bd = BigDecimal.valueOf((double) objValue);
bd = bd.setScale(2, RoundingMode.HALF_UP);
return bd.doubleValue();
} else {
throw new IllegalArgumentException("字段值不是 int 或 double");
}
}
@NotNull
private Integer getTurnInteger(CrossTurnDataHistPOExt crossTurnDataHistPO, Field declaredField)
private Double getTurnDouble(CrossTurnDataHistPOExt crossTurnDataHistPO, Field declaredField)
throws IllegalAccessException {
return getIntegerFromObject(crossTurnDataHistPO, declaredField);
return getDoubleFromObject(crossTurnDataHistPO, declaredField);
}
@NotNull
private Integer getDirInteger(CrossDirDataHistPOExt crossDirDataHistPO, Field declaredField)
private Double getDirDouble(CrossDirDataHistPOExt crossDirDataHistPO, Field declaredField)
throws IllegalAccessException {
return getIntegerFromObject(crossDirDataHistPO, declaredField);
return getDoubleFromObject(crossDirDataHistPO, declaredField);
}
private void buildSecurityDetailVO(List<CrossDirDataHistPO> crossDirDataHistPOList,
......
......@@ -23,5 +23,5 @@ public class SchemeEvaluateCurveChartVO {
private String metricTime;
@ApiModelProperty(value = "指标数值")
private Integer metricValue;
private Double metricValue;
}
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