潘志宝
2025-05-21 2bc3ed0691bf942da7c44dea1ffb5747aa9a2fc4
iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/influxdb/service/impl/InfluxDBServiceImpl.java
@@ -335,6 +335,28 @@
    }
    @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;
        }
        String timeM = valueList.get(0).get(TIME).toString();
        double valueM = new BigDecimal(valueList.get(0).get(VALUE).toString()).setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue();
        for (Map<String, Object> item : valueList) {
            double valueI = new BigDecimal(item.get(VALUE).toString()).setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue();
            if (valueI >= valueM ) {
                valueM = valueI;
                timeM = item.get(TIME).toString();
            }
        }
        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 +374,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 +401,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) {