package com.qianwen.smartman.common.enums; import java.util.Arrays; import java.util.List; import java.util.Optional; import com.qianwen.smartman.modules.smis.vo.WorkstationDataTypeExecParamVO; import com.qianwen.smartman.modules.system.constant.FieldConstant; import com.qianwen.smartman.modules.tdengine.mapper.WorkstationAggregateCountMapper; import com.qianwen.smartman.modules.tdengine.mapper.WorkstationAggregatePulseMapper; import com.qianwen.smartman.modules.tdengine.mapper.WorkstationDynamicCollectMapper; public enum DynamicCalculationWcsDataType { COUNT(8, WorkstationAggregateCountMapper.class, null), PULSE(9, WorkstationAggregatePulseMapper.class, Arrays.asList(new WorkstationDataTypeExecParamVO("脉冲计数倍率", FieldConstant.OPTION_KEY, "number"))); private final int code; private final Class> operationMapper; private List params; DynamicCalculationWcsDataType(int code, Class operationMapper, List params) { this.code = code; this.params = params; this.operationMapper = operationMapper; } public static DynamicCalculationWcsDataType of(int code) { return (DynamicCalculationWcsDataType) Arrays.stream(values()).filter(item -> { return item.getCode() == code; }).findFirst().orElse(null); } public static List getParamsByCode(int code) { return (List) Optional.ofNullable(of(code)).map((v0) -> { return v0.getParams(); }).orElse(null); } public int getCode() { return this.code; } public List getParams() { return this.params; } public Class> getOperationMapper() { return this.operationMapper; } }