| | |
| | | import javax.servlet.http.HttpServletRequest; |
| | | import javax.servlet.http.HttpServletResponse; |
| | | import java.math.BigDecimal; |
| | | import java.text.SimpleDateFormat; |
| | | import java.util.*; |
| | | import java.util.stream.Collectors; |
| | | |
| | | import static com.iailab.framework.common.pojo.CommonResult.success; |
| | | |
| | | /** |
| | | * InfluxDB操作类 |
| | |
| | | |
| | | private InfluxQLQueryApi influxQLQueryApi; |
| | | |
| | | private String VALUE = "value"; |
| | | public static final String VALUE = "value"; |
| | | |
| | | private String TIME = "time"; |
| | | public static final String TIME = "time"; |
| | | |
| | | private int rawOffset = TimeZone.getDefault().getRawOffset(); |
| | | |
| | | private int pas_ms = 1000; |
| | | |
| | | private SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); |
| | | |
| | | @Resource |
| | | private InfluxDBService influxDBService; |
| | | |
| | | @Override |
| | | public void syncWriteFloatValue(String pointNo, String dataValue, long time) { |
| | |
| | | } |
| | | if (!CollectionUtils.isEmpty(pointValues)) { |
| | | pointValues.forEach(item -> { |
| | | writeApi.writeMeasurement(influxDBInstance.bucket, influxDBInstance.org, WritePrecision.MS, item); |
| | | String bucket = influxDBInstance.getBucket(); |
| | | writeApi.writeMeasurement(bucket, influxDBInstance.org, WritePrecision.MS, item); |
| | | }); |
| | | } |
| | | writeApi.flush(); |
| | |
| | | InfluxPointValuePOJO point = influxParams.get(i); |
| | | String measurement = PointValueUtils.getMeasurement(point.getType()); |
| | | StringBuilder sb = new StringBuilder(); |
| | | sb.append("from(bucket:\"" + influxDBInstance.bucket + "\") "); |
| | | sb.append("from(bucket:\"" + influxDBInstance.getBucket() + "\") "); |
| | | sb.append("|> range(start: ").append(start).append(", stop: ").append(stop).append(") "); |
| | | sb.append("|> filter(fn: (r) => r[\"_measurement\"] == \"" + measurement + "\")"); |
| | | sb.append("|> filter(fn: (r) => r[\"_field\"] == \"value\")"); |
| | |
| | | for (FluxRecord record : records) { |
| | | Map<String, Object> dataIem = new HashMap<>(2); |
| | | dataIem.put(VALUE, record.getValueByKey("_value")); |
| | | dataIem.put(TIME, sdf.format(Date.from(record.getTime()))); |
| | | dataIem.put(TIME, DateUtils.format(Date.from(record.getTime()), DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)); |
| | | dataList.add(dataIem); |
| | | } |
| | | } |