工业互联网平台2.0版本后端代码
dengzedong
2025-04-07 77894e68af1bffbcc73150dc56f969fda0b31d7e
累计测点 添加累计单位
已修改8个文件
已添加1个文件
106 ■■■■■ 文件已修改
iailab-module-data/iailab-module-data-biz/db/mysql/tenant.sql 4 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/point/collection/handler/CumulateHandle.java 10 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/point/common/PointCumulateUnitEnum.java 73 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/point/dto/DaCumulatePointDTO.java 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/point/dto/DaPointDTO.java 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/point/entity/DaCumulatePointEntity.java 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/point/vo/DaPointExcelVO.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/point/vo/PointImportExcelVO.java 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
iailab-module-data/iailab-module-data-biz/src/main/resources/mapper/point/DaPointDao.xml 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
iailab-module-data/iailab-module-data-biz/db/mysql/tenant.sql
@@ -442,4 +442,6 @@
                                 `update_time` datetime DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
                                 PRIMARY KEY (`id`),
                                 UNIQUE KEY `uk_code` (`code`) USING BTREE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci ROW_FORMAT=DYNAMIC COMMENT='定时归档设置表';
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci ROW_FORMAT=DYNAMIC COMMENT='定时归档设置表';
ALTER TABLE `t_da_cumulate_point` ADD COLUMN `cumulate_unit` varchar(10) DEFAULT 'min' COMMENT '累计单位';
iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/point/collection/handler/CumulateHandle.java
@@ -9,6 +9,7 @@
import com.iailab.module.data.influxdb.pojo.InfluxPointValuePOJO;
import com.iailab.module.data.point.collection.PointCollector;
import com.iailab.module.data.point.collection.utils.GenInfluxPointValueUtils;
import com.iailab.module.data.point.common.PointCumulateUnitEnum;
import com.iailab.module.data.point.dto.DaPointDTO;
import com.iailab.module.data.point.service.DaPointService;
import lombok.extern.slf4j.Slf4j;
@@ -101,12 +102,15 @@
            }
            return CommonConstant.BAD_VALUE;
        }
        // 动态长度
        Calendar calendar = Calendar.getInstance();
        calendar.setTime(collectTime);
        calendar.add(Calendar.MINUTE, -1);
        calendar.add(Calendar.SECOND, -1 * DataPointFreqEnum.getEumByCode(dto.getMinfreqid()).getValue());
        Date endTime = calendar.getTime();
        calendar.add(Calendar.MINUTE, dto.getLength() * -1);
        Date startTime = calendar.getTime();
        Date startTime = PointCumulateUnitEnum.getStartTime(calendar,dto.getLength(),dto.getCumulateUnit());
        ApiPointValueQueryDTO queryDto = new ApiPointValueQueryDTO();
        queryDto.setStart(startTime);
        queryDto.setEnd(endTime);
iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/point/common/PointCumulateUnitEnum.java
对比新文件
@@ -0,0 +1,73 @@
package com.iailab.module.data.point.common;
import com.iailab.framework.common.util.date.DateUtils;
import lombok.AllArgsConstructor;
import lombok.Getter;
import java.util.Calendar;
import java.util.Date;
import java.util.function.BiFunction;
/**
 * 累计测点累计单位
 */
@Getter
@AllArgsConstructor
public enum PointCumulateUnitEnum {
    MIN("min", (end, length) -> {
        Calendar cal = (Calendar) end.clone();
        cal.add(Calendar.MINUTE, -length);
        return cal;
    }),
    HOUR("hour", (end, length) -> {
        Calendar cal = (Calendar) end.clone();
        cal.add(Calendar.HOUR_OF_DAY, -length);
        return cal;
    }),
    DAY("day", (end, length) -> {
        Calendar cal = (Calendar) end.clone();
        cal.add(Calendar.DAY_OF_MONTH, -length);
        return cal;
    }),
    THIS_MONTH("this_month", (end, length) -> {
        Calendar cal = (Calendar) end.clone();
        cal.set(Calendar.DAY_OF_MONTH, 1);
        cal.set(Calendar.HOUR_OF_DAY, 0);
        cal.set(Calendar.MINUTE, 0);
        cal.set(Calendar.SECOND, 0);
        cal.set(Calendar.MILLISECOND, 0);
        return cal;
    });
    private final String code;
    private final BiFunction<Calendar, Integer, Calendar> calculator;
    public Calendar calculate(Calendar endTime, Integer length) {
        return calculator.apply(endTime, length);
    }
    public static PointCumulateUnitEnum fromCode(String code) {
        for (PointCumulateUnitEnum unit : values()) {
            if (unit.code.equals(code)) {
                return unit;
            }
        }
        return null;
    }
    public static Date getStartTime(Calendar endTime, Integer length, String cumulateUnit) {
        PointCumulateUnitEnum unit = PointCumulateUnitEnum.fromCode(cumulateUnit);
        if (unit == null) {
            return endTime.getTime();
        }else if (unit != THIS_MONTH) {
            if (length == null || length <= 0) {
                return endTime.getTime();
            }
        }
        Calendar startCal = unit.calculate(endTime, length);
        return startCal.getTime();
    }
}
iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/point/dto/DaCumulatePointDTO.java
@@ -34,6 +34,9 @@
    @Schema(description = "累计长度", required = true)
    private Integer length;
    @Schema(description = "累计单位", required = true)
    private String cumulateUnit;
    @Schema(description = "除数", required = true)
    private Integer divisor;
}
iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/point/dto/DaPointDTO.java
@@ -114,6 +114,9 @@
    @Schema(description = "累计长度")
    private Integer length;
    @Schema(description = "累计单位")
    private String cumulateUnit;
    @Schema(description = "除数")
    private Integer divisor;
iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/point/entity/DaCumulatePointEntity.java
@@ -41,6 +41,11 @@
    private Integer length;
    /**
     * 累计单位
     */
    private String cumulateUnit;
    /**
     * 除数
     */
    private Integer divisor;
iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/point/vo/DaPointExcelVO.java
@@ -93,6 +93,10 @@
    @ExcelProperty("累计长度")
    private Integer length;
    @Schema(description = "累计单位")
    @ExcelProperty("累计单位")
    private String cumulateUnit;
    @Schema(description = "除数")
    @ExcelProperty("除数")
    private Integer divisor;
iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/point/vo/PointImportExcelVO.java
@@ -92,6 +92,9 @@
    @ExcelProperty("累计长度")
    private Integer length;
    @ExcelProperty("累计单位")
    private String cumulateUnit;
    @ExcelProperty("除数")
    private Integer divisor;
iailab-module-data/iailab-module-data-biz/src/main/resources/mapper/point/DaPointDao.xml
@@ -274,6 +274,7 @@
        t1.minfreqid,
        t2.moment_point,
        t2.length,
        t2.cumulate_unit,
        t2.divisor
        FROM t_da_point t1
        LEFT JOIN t_da_cumulate_point t2 ON t2.point_id = t1.id