package com.iailab.module.model.mcs.pre.enums;
|
|
import lombok.AllArgsConstructor;
|
import lombok.Getter;
|
|
import java.util.Calendar;
|
import java.util.Date;
|
import java.util.HashMap;
|
import java.util.function.Function;
|
|
/**
|
* 自动调整 调整值计算规则
|
*/
|
@Getter
|
@AllArgsConstructor
|
public enum AutoAdjustValueRuleEnum {
|
|
// 均值差
|
AVERAGE_GAP_VALUE("average_gap_value",(map) -> {
|
if (!map.containsKey("startValue") || !map.containsKey("endValue")) {
|
return 0.0;
|
}
|
Double startValue = Double.valueOf(map.get("startValue").toString());
|
Double endValue = Double.valueOf(map.get("endValue").toString());
|
return endValue - startValue;
|
});
|
|
|
private final String code;
|
private final Function<HashMap<String,Object>, Double> calculator;
|
|
public Double calculate(HashMap<String,Object> map) {
|
return calculator.apply(map);
|
}
|
|
public static AutoAdjustValueRuleEnum fromCode(String code) {
|
for (AutoAdjustValueRuleEnum unit : values()) {
|
if (unit.code.equals(code)) {
|
return unit;
|
}
|
}
|
return null;
|
}
|
|
public static Double getAdjustValue(String code,HashMap<String,Object> map) {
|
|
AutoAdjustValueRuleEnum rule = AutoAdjustValueRuleEnum.fromCode(code);
|
|
if (rule == null) {
|
return 0.0;
|
}
|
return rule.calculate(map);
|
}
|
}
|