iailab-module-data/iailab-module-data-biz/db/mysql/tenant.sql
@@ -454,7 +454,7 @@ `moment_point` VARCHAR(36) COMMENT '瞬时测点' , `length` int COMMENT '统计长度', `extremal_unit` varchar(10) DEFAULT 'min' COMMENT '统计单位', `extremal_type` int NOT NULL COMMENT '极值类型(1:最大值,2:最小值)', `extremal_type` varchar(10) NOT NULL COMMENT '极值类型(max:最大值,min:最小值)', PRIMARY KEY (id) USING BTREE, UNIQUE KEY `uk_point_id` (`point_id`) USING BTREE ) ENGINE=InnoDB DEFAULT CHARSET=utf8 ROW_FORMAT=DYNAMIC COMMENT = '实时极值点表'; iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/influxdb/service/impl/InfluxDBServiceImpl.java
@@ -352,7 +352,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 +379,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) { iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/point/collection/handler/ExtremalHandle.java
@@ -91,8 +91,8 @@ private Object singleCompute(DaPointDTO dto, Date collectTime, List<String> listGood, List<String> listBad) { Object value = CommonConstant.BAD_VALUE; ApiPointDTO pointDTO = dataPointApi.getInfoByNo(dto.getMomentPoint()); if (pointDTO == null) { ApiPointDTO momentPoint = dataPointApi.getInfoByNo(dto.getMomentPoint()); if (momentPoint == null) { if (listBad != null) { listBad.add(dto.getPointNo()); } @@ -101,12 +101,11 @@ log.info("极值:" + dto.getPointNo()); // 动态长度 ApiPointDTO momentPoint = dataPointApi.getInfoByNo(dto.getMomentPoint()); Calendar calendar = Calendar.getInstance(); calendar.setTime(collectTime); calendar.add(Calendar.SECOND, -1 * DataPointFreqEnum.getEumByCode(momentPoint.getMinfreqid()).getValue()); Date endTime = calendar.getTime(); Date startTime = ExtremaUnitEnum.getStartTime(calendar, dto.getLength(), dto.getCumulateUnit()); Date startTime = ExtremaUnitEnum.getStartTime(calendar, dto.getLength(), dto.getExtremalUnit()); ApiPointValueQueryDTO queryDto = new ApiPointValueQueryDTO(); queryDto.setPointNo(momentPoint.getPointNo()); queryDto.setStart(startTime); iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/point/common/ExtremalTypeEnum.java
@@ -11,13 +11,13 @@ @Getter @AllArgsConstructor public enum ExtremalTypeEnum { MAX(1, "最大值"), MIN(2, "最小值"); MAX("max", "最大值"), MIN("min", "最小值"); private Integer code; private String code; private String desc; public static ExtremalTypeEnum getEumByCode(Integer code) { public static ExtremalTypeEnum getEumByCode(String code) { if (code == null) { return null; } iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/point/dto/DaExtremalPointDTO.java
@@ -38,5 +38,5 @@ private String extremalUnit; @Schema(description = "极值类型", required = true) private Integer extremalType; private String extremalType; } iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/point/dto/DaPointDTO.java
@@ -127,7 +127,7 @@ private String extremalUnit; @Schema(description = "极值类型") private Integer extremalType; private String extremalType; @Schema(description = "数据源选项") private List<String> sourceOption; iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/point/entity/DaExtremalPointEntity.java
@@ -13,7 +13,7 @@ * @createTime 2025年05月14日 */ @Data @TableName("t_da_cumulate_point") @TableName("t_da_extremal_point") public class DaExtremalPointEntity implements Serializable { private static final long serialVersionUID = 1L; @@ -44,7 +44,7 @@ private String extremalUnit; /** * 极值类型(1:最大值,2:最小值) * 极值类型(max:最大值,min:最小值) */ private Integer extremalType; private String extremalType; } iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/point/service/impl/DaPointServiceImpl.java
@@ -359,9 +359,18 @@ } @Override public List<DaPointDTO> getExtremalPoint(String freq) { public List<DaPointDTO> getCumulatePoint(DaPointPageReqVO reqVO) { Map<String, Object> params = new HashMap<>(3); params.put("pointType", PointTypeEnum.CUMULATE.getCode()); params.put("pointNo", reqVO.getPointNo()); params.put("pointName", reqVO.getPointName()); return daPointDao.getCumulatePoint(params); } @Override public List<DaPointDTO> getExtremalPoint(String freq) { Map<String, Object> params = new HashMap<>(3); params.put("pointType", PointTypeEnum.EXTREMAL.getCode()); params.put("isEnable", CommonConstant.IS_ENABLE); params.put("minfreqid", freq); return daPointDao.getExtremalPoint(params); @@ -370,19 +379,10 @@ @Override public List<DaPointDTO> getExtremalPoint(List<String> pointNos) { Map<String, Object> params = new HashMap<>(3); params.put("pointType", PointTypeEnum.CUMULATE.getCode()); params.put("pointType", PointTypeEnum.EXTREMAL.getCode()); params.put("isEnable", CommonConstant.IS_ENABLE); params.put("pointNos", pointNos); return daPointDao.getExtremalPoint(params); } @Override public List<DaPointDTO> getCumulatePoint(DaPointPageReqVO reqVO) { Map<String, Object> params = new HashMap<>(3); params.put("pointType", PointTypeEnum.CUMULATE.getCode()); params.put("pointNo", reqVO.getPointNo()); params.put("pointName", reqVO.getPointName()); return daPointDao.getCumulatePoint(params); } @Override iailab-module-data/iailab-module-data-biz/src/main/resources/application.yaml
@@ -165,6 +165,7 @@ - t_da_point - t_da_point_value - t_da_sequence_num - t_da_extremal_point - t_http_api - t_http_tag - t_http_token