package com.qianwen.smartman.modules.visual.vo; import java.util.function.Function; import com.qianwen.smartman.modules.system.vo.ChartSeriesDataVO; import com.qianwen.smartman.modules.visual.dto.DynamicCountDateAggregateDTO; import com.qianwen.smartman.modules.visual.wrapper.VisualCountPulseWrapper; public enum VisualUsagePolicyEnum { HOUR("近n小时统计", VisualCountPulseWrapper::visualCountDataByHour), DAY("近n天统计", VisualCountPulseWrapper::visualCountDataByDay), SHIFT("班次统计", VisualCountPulseWrapper::visualCountDataByShift); private String label; private final Function policy; VisualUsagePolicyEnum(String label, Function policy) { this.label = label; this.policy = policy; } /* VisualUsagePolicyEnum(String label, Function policy) { this.label = label; this.policy = policy; }*/ public ChartSeriesDataVO wrapper(DynamicCountDateAggregateDTO aggregateDataDTO) { return this.policy.apply(aggregateDataDTO); } public String getLabel() { return this.label; } }