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, Double> calculator; public Double calculate(HashMap 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 map) { AutoAdjustValueRuleEnum rule = AutoAdjustValueRuleEnum.fromCode(code); if (rule == null) { return 0.0; } return rule.calculate(map); } }