潘志宝
2025-05-19 aa0b46b6fcf76f4c659e4c8ebfb5ab24731b80f1
iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/influxdb/service/impl/InfluxDBServiceImpl.java
@@ -335,6 +335,30 @@
    }
    @Override
    public Map<String, Object> queryPointMaxTimeValue(InfluxPointValuePOJO point, Date startTime, Date endTime) {
        Map<String, Object> result = new HashMap<>(2);
        List<Map<String, Object>> valueList = this.queryPointValues(point, startTime, endTime);
        if (CollectionUtils.isEmpty(valueList)) {
            return null;
        }
        double valueL = new BigDecimal(valueList.get(0).get(VALUE).toString()).setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue();
        String timeM = valueList.get(0).get(TIME).toString();
        double valueM = valueL;
        for (Map<String, Object> item : valueList) {
            double valueI = new BigDecimal(item.get(VALUE).toString()).setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue();
            if (valueI >= valueL ) {
                valueM = valueI;
                timeM = item.get(TIME).toString();
            }
            valueL = valueI;
        }
        result.put(TIME, timeM);
        result.put(VALUE, valueM);
        return result;
    }
    @Override
    public Object queryPointMaxValueRange(InfluxPointValuePOJO point, Date startTime, Date endTime) {
        if (influxQLQueryApi == null) {
            influxQLQueryApi = influxDBInstance.getClient().getInfluxQLQueryApi();
@@ -352,7 +376,7 @@
        sql.append(measurement);
        sql.append(" WHERE point = '");
        sql.append(point.getPoint());
        sql.append("' AND time >= '" + utsStart + "'");
        sql.append("' AND time >= '" + utsStart);
        sql.append("' AND time <= '" + utsEnd + "'");
        InfluxQLQueryResult data = influxQLQueryApi.query(new InfluxQLQuery(sql.toString(), influxDBInstance.getBucket()));
        if (data == null) {
@@ -379,7 +403,7 @@
        sql.append(measurement);
        sql.append(" WHERE point = '");
        sql.append(point.getPoint());
        sql.append("' AND time >= '" + utsStart + "'");
        sql.append("' AND time >= '" + utsStart);
        sql.append("' AND time <= '" + utsEnd + "'");
        InfluxQLQueryResult data = influxQLQueryApi.query(new InfluxQLQuery(sql.toString(), influxDBInstance.getBucket()));
        if (data == null) {