package com.iailab.module.data.influxdb.common.utils; import com.iailab.module.data.common.enums.TagValueTypeConstant; import com.iailab.module.data.channel.tag.dto.TagValueDTO; import com.iailab.module.data.influxdb.pojo.*; import com.iailab.module.data.influxdb.common.enums.DataMeasurement; /** * @author PanZhibao * @Description * @createTime 2023年05月03日 23:00:00 */ public class TagValueUtils { public static Object getByTagType(String type, String value) { switch (type) { case TagValueTypeConstant.BOOLEAN: return Double.parseDouble(value); case TagValueTypeConstant.INT8: return Integer.parseInt(value); case TagValueTypeConstant.INT16: return Integer.parseInt(value); case TagValueTypeConstant.INT32: return Integer.parseInt(value); case TagValueTypeConstant.INT64: return Integer.parseInt(value); case TagValueTypeConstant.UINT8: return Integer.parseInt(value); case TagValueTypeConstant.UINT16: return Double.parseDouble(value); case TagValueTypeConstant.UINT32: return Integer.parseInt(value); case TagValueTypeConstant.UINT64: return Integer.parseInt(value); case TagValueTypeConstant.FLOAT: return Double.parseDouble(value); case TagValueTypeConstant.DOUBLE: return Double.parseDouble(value); default: break; } return value; } public static String getMeasurement(String type) { switch (type) { case TagValueTypeConstant.BOOLEAN: return DataMeasurement.t_tag_bool_value.name(); case TagValueTypeConstant.INT8: return DataMeasurement.t_tag_int_value.name(); case TagValueTypeConstant.INT16: return DataMeasurement.t_tag_int_value.name(); case TagValueTypeConstant.INT32: return DataMeasurement.t_tag_int_value.name(); case TagValueTypeConstant.INT64: return DataMeasurement.t_tag_int_value.name(); case TagValueTypeConstant.UINT8: return DataMeasurement.t_tag_int_value.name(); case TagValueTypeConstant.UINT16: return DataMeasurement.t_tag_int_value.name(); case TagValueTypeConstant.UINT32: return DataMeasurement.t_tag_int_value.name(); case TagValueTypeConstant.UINT64: return DataMeasurement.t_tag_int_value.name(); case TagValueTypeConstant.FLOAT: return DataMeasurement.t_tag_float_value.name(); case TagValueTypeConstant.DOUBLE: return DataMeasurement.t_tag_float_value.name(); default: return DataMeasurement.t_tag_str_value.name(); } } public static InfluxTagValuePOJO getByTag(TagValueDTO dto, String value) { switch (dto.getType()) { case TagValueTypeConstant.BOOLEAN: InfluxTagValuePOJO boolPojo = new InfluxTagValueBoolPOJO(); ((InfluxTagValueBoolPOJO) boolPojo).setValue(Boolean.parseBoolean(value.toString())); return boolPojo; case TagValueTypeConstant.INT8: InfluxTagValuePOJO int8Pojo = new InfluxTagValueIntPOJO(); ((InfluxTagValueIntPOJO) int8Pojo).setValue(Integer.parseInt(value.toString())); return int8Pojo; case TagValueTypeConstant.INT16: InfluxTagValuePOJO int16Pojo = new InfluxTagValueIntPOJO(); ((InfluxTagValueIntPOJO) int16Pojo).setValue(Integer.parseInt(value.toString())); return int16Pojo; case TagValueTypeConstant.INT32: InfluxTagValuePOJO int32Pojo = new InfluxTagValueIntPOJO(); ((InfluxTagValueIntPOJO) int32Pojo).setValue(Integer.parseInt(value.toString())); return int32Pojo; case TagValueTypeConstant.INT64: InfluxTagValuePOJO int64Pojo = new InfluxTagValueIntPOJO(); ((InfluxTagValueIntPOJO) int64Pojo).setValue(Integer.parseInt(value.toString())); return int64Pojo; case TagValueTypeConstant.UINT8: InfluxTagValuePOJO uint8Pojo = new InfluxTagValueIntPOJO(); ((InfluxTagValueIntPOJO) uint8Pojo).setValue(Integer.parseInt(value.toString())); return uint8Pojo; case TagValueTypeConstant.UINT16: InfluxTagValuePOJO uint16Pojo = new InfluxTagValueIntPOJO(); ((InfluxTagValueIntPOJO) uint16Pojo).setValue(Integer.parseInt(value.toString())); return uint16Pojo; case TagValueTypeConstant.UINT32: InfluxTagValuePOJO uint32Pojo = new InfluxTagValueIntPOJO(); ((InfluxTagValueIntPOJO) uint32Pojo).setValue(Integer.parseInt(value.toString())); return uint32Pojo; case TagValueTypeConstant.UINT64: InfluxTagValuePOJO uint64Pojo = new InfluxTagValueIntPOJO(); ((InfluxTagValueIntPOJO) uint64Pojo).setValue(Integer.parseInt(value.toString())); return uint64Pojo; case TagValueTypeConstant.FLOAT: InfluxTagValuePOJO floatPojo = new InfluxTagValueFloatPOJO(); ((InfluxTagValueFloatPOJO) floatPojo).setValue(Double.parseDouble(value.toString())); return floatPojo; case TagValueTypeConstant.DOUBLE: InfluxTagValuePOJO doublePojo = new InfluxTagValueFloatPOJO(); ((InfluxTagValueFloatPOJO) doublePojo).setValue(Double.parseDouble(value.toString())); return doublePojo; default: InfluxTagValuePOJO strPojo = new InfluxTagValueStrPOJO(); ((InfluxTagValueStrPOJO) strPojo).setValue(value.toString()); return strPojo; } } }