diff --git a/pqs-influx/src/main/java/com/njcn/influx/imapper/CommonMapper.java b/pqs-influx/src/main/java/com/njcn/influx/imapper/CommonMapper.java index 0e89ea005..af195b26f 100644 --- a/pqs-influx/src/main/java/com/njcn/influx/imapper/CommonMapper.java +++ b/pqs-influx/src/main/java/com/njcn/influx/imapper/CommonMapper.java @@ -19,4 +19,6 @@ public interface CommonMapper extends InfluxDbBaseMapper { List getStatistical(InfluxQueryWrapper influxQueryWrapper); + StatisticalDataDTO getLineRtData(InfluxQueryWrapper influxQueryWrapper); + } diff --git a/pqs-influx/src/main/java/com/njcn/influx/pojo/dto/StatisticalDataDTO.java b/pqs-influx/src/main/java/com/njcn/influx/pojo/dto/StatisticalDataDTO.java index ea4a5c7e1..03a2e7db4 100644 --- a/pqs-influx/src/main/java/com/njcn/influx/pojo/dto/StatisticalDataDTO.java +++ b/pqs-influx/src/main/java/com/njcn/influx/pojo/dto/StatisticalDataDTO.java @@ -1,11 +1,15 @@ package com.njcn.influx.pojo.dto; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import com.njcn.common.utils.serializer.InstantDateSerializer; import lombok.Data; import lombok.EqualsAndHashCode; import org.influxdb.annotation.Column; import org.influxdb.annotation.Measurement; import retrofit2.http.Field; +import java.time.Instant; + /** * Description: * Date: 2023/6/5 10:23【需求编号】 @@ -17,6 +21,9 @@ import retrofit2.http.Field; @Data public class StatisticalDataDTO { + @Column(name = "time") + @JsonSerialize(using = InstantDateSerializer.class) + private Instant time; private String LineId; private String Phase; @Column(name = "Stat_Method") diff --git a/pqs-influx/src/main/java/com/njcn/influx/pojo/po/cs/CsDataHarmPowerP.java b/pqs-influx/src/main/java/com/njcn/influx/pojo/po/cs/CsDataHarmPowerP.java new file mode 100644 index 000000000..ad0251e82 --- /dev/null +++ b/pqs-influx/src/main/java/com/njcn/influx/pojo/po/cs/CsDataHarmPowerP.java @@ -0,0 +1,38 @@ +package com.njcn.influx.pojo.po.cs; + +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import com.njcn.common.utils.serializer.InstantDateSerializer; +import lombok.Data; +import org.influxdb.annotation.Column; +import org.influxdb.annotation.Measurement; + +import java.time.Instant; + +/** + * 类的介绍: + * + * @author xuyang + * @version 1.0.0 + * @createTime 2023/6/5 16:09 + */ +@Data +@Measurement(name = "data_harmpower_p") +public class CsDataHarmPowerP { + + @Column(name = "time") + @JsonSerialize(using = InstantDateSerializer.class) + private Instant time; + + @Column(name = "line_id") + private String lineId; + + @Column(name = "phasic_type") + private String phaseType; + + @Column(name = "value_type") + private String valueType; + + @Column(name = "W") + private Double w; + +} diff --git a/pqs-influx/src/main/java/com/njcn/influx/service/CommonService.java b/pqs-influx/src/main/java/com/njcn/influx/service/CommonService.java index 05111013f..790552890 100644 --- a/pqs-influx/src/main/java/com/njcn/influx/service/CommonService.java +++ b/pqs-influx/src/main/java/com/njcn/influx/service/CommonService.java @@ -13,4 +13,15 @@ import java.util.List; */ public interface CommonService { List commonquery(String lineId, String tableName, String columnName); + + /** + * 根据条件获取监测点数据 + * @param lineId 监测点Id + * @param tableName 表名 + * @param columnName 字段名 + * @param phasic 相别 + * @param dataType 数据类型 + * @return + */ + StatisticalDataDTO getLineRtData(String lineId, String tableName, String columnName, String phasic, String dataType); } diff --git a/pqs-influx/src/main/java/com/njcn/influx/service/impl/CommonServiceImpl.java b/pqs-influx/src/main/java/com/njcn/influx/service/impl/CommonServiceImpl.java index 726cf94de..4adb2394b 100644 --- a/pqs-influx/src/main/java/com/njcn/influx/service/impl/CommonServiceImpl.java +++ b/pqs-influx/src/main/java/com/njcn/influx/service/impl/CommonServiceImpl.java @@ -38,4 +38,16 @@ public class CommonServiceImpl implements CommonService { return statistical; } + + @Override + public StatisticalDataDTO getLineRtData(String lineId, String tableName, String columnName, String phasic, String dataType) { + HashMap> entityClassesByAnnotation = ReflectUitl.getEntityClassesByAnnotation(); + Class aClass = entityClassesByAnnotation.get(tableName); + InfluxQueryWrapper influxQueryWrapper = new InfluxQueryWrapper(aClass,StatisticalDataDTO.class); + influxQueryWrapper.eq("line_id",lineId) + .eq("phasic_type",phasic) + .eq("value_type",dataType) + .last(columnName,"statisticalData"); + return commonMapper.getLineRtData(influxQueryWrapper); + } } diff --git a/pqs-influx/src/main/java/com/njcn/influx/utils/ReflectUitl.java b/pqs-influx/src/main/java/com/njcn/influx/utils/ReflectUitl.java index aff77985d..f44b7b191 100644 --- a/pqs-influx/src/main/java/com/njcn/influx/utils/ReflectUitl.java +++ b/pqs-influx/src/main/java/com/njcn/influx/utils/ReflectUitl.java @@ -27,7 +27,7 @@ public class ReflectUitl { */ public static HashMap> getEntityClassesByAnnotation() { HashMap> result = new HashMap<>(); - List> classes = ReflectUitl.getClasses("com.njcn.influx.pojo.po"); + List> classes = ReflectUitl.getClasses("com.njcn.influx.pojo.po.cs"); for (Class clazz : classes) { if (clazz.isAnnotationPresent(Measurement.class)) { Measurement annotation = (Measurement) clazz.getAnnotation(Measurement.class);