潘志宝
2 天以前 c7ec0ceff9cf30cabbd8d071c1ef75d20d04548f
Day频率数据采集时分秒置0 getByMin
已修改5个文件
40 ■■■■ 文件已修改
iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/point/collection/handler/CalculateHandle.java 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/point/collection/handler/ConstantHandle.java 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/point/collection/handler/CumulateHandle.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/point/collection/handler/MeasureHandle.java 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/point/collection/utils/GenInfluxPointValueUtils.java 27 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/point/collection/handler/CalculateHandle.java
@@ -6,6 +6,7 @@
import com.iailab.module.data.common.enums.DataTypeEnum;
import com.iailab.module.data.common.enums.JsErrorCode;
import com.iailab.module.data.common.utils.JavaScriptHandler;
import com.iailab.module.data.enums.DataPointFreqEnum;
import com.iailab.module.data.point.collection.PointCollector;
import com.iailab.module.data.point.collection.utils.GenInfluxPointValueUtils;
import com.iailab.module.data.point.dto.DaPointDTO;
@@ -67,7 +68,7 @@
                    BigDecimal coefficient = dto.getUnittransfactor() == null ? BigDecimal.ONE : dto.getUnittransfactor();
                    BigDecimal calValue = new BigDecimal(rawValue.toString()).multiply(coefficient);
                    InfluxPointValuePOJO pojo = GenInfluxPointValueUtils.getByPoint(dto, calValue);
                    pojo.setTimestamp(collectTime.toInstant());
                    pojo.setTimestamp(GenInfluxPointValueUtils.getByMin(collectTime, DataPointFreqEnum.getEumByCode(dto.getMinfreqid())));
                    result.add(pojo);
                } catch (Exception ex) {
                    ex.printStackTrace();
iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/point/collection/handler/ConstantHandle.java
@@ -1,5 +1,6 @@
package com.iailab.module.data.point.collection.handler;
import com.iailab.module.data.enums.DataPointFreqEnum;
import com.iailab.module.data.point.collection.utils.GenInfluxPointValueUtils;
import com.iailab.module.data.point.dto.DaPointDTO;
import com.iailab.module.data.point.service.DaPointService;
@@ -33,7 +34,7 @@
        }
        dtos.forEach(dto -> {
            InfluxPointValuePOJO pojo = GenInfluxPointValueUtils.getByPoint(dto);
            pojo.setTimestamp(collectTime.toInstant());
            pojo.setTimestamp(GenInfluxPointValueUtils.getByMin(collectTime, DataPointFreqEnum.getEumByCode(dto.getMinfreqid())));
            dataMap.put(dto.getPointNo(), dto.getDefaultValue());
            result.add(pojo);
            listGood.add(dto.getPointNo());
iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/point/collection/handler/CumulateHandle.java
@@ -54,7 +54,7 @@
                try {
                    Object value = singleCompute(dto, collectTime, listGood, listBad);
                    InfluxPointValuePOJO pojo = GenInfluxPointValueUtils.getByPoint(dto, value);
                    pojo.setTimestamp(collectTime.toInstant());
                    pojo.setTimestamp(GenInfluxPointValueUtils.getByMin(collectTime, DataPointFreqEnum.getEumByCode(dto.getMinfreqid())));
                    result.add(pojo);
                } catch (Exception ex) {
                    ex.printStackTrace();
iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/point/collection/handler/MeasureHandle.java
@@ -14,6 +14,7 @@
import com.iailab.module.data.channel.kio.collector.KingIOCollector;
import com.iailab.module.data.channel.modbus.collector.ModBusCollector;
import com.iailab.module.data.channel.opcua.collector.OpcUaCollector;
import com.iailab.module.data.enums.DataPointFreqEnum;
import com.iailab.module.data.point.collection.PointCollector;
import com.iailab.module.data.point.collection.utils.GenInfluxPointValueUtils;
import com.iailab.module.data.point.common.PointDataTypeEnum;
@@ -158,13 +159,13 @@
                if (tagValues.containsKey(tagId)) {
                    Object value = handleData(dto, tagValues.get(tagId));
                    InfluxPointValuePOJO pojo = GenInfluxPointValueUtils.getByPoint(dto, value);
                    pojo.setTimestamp(collectTime.toInstant());
                    pojo.setTimestamp(GenInfluxPointValueUtils.getByMin(collectTime, DataPointFreqEnum.getEumByCode(dto.getMinfreqid())));
                    dataMap.put(dto.getPointNo(), value);
                    result.add(pojo);
                    listGood.add(dto.getPointNo());
                } else {
                    InfluxPointValuePOJO pojo = GenInfluxPointValueUtils.getByPoint(dto, CommonConstant.BAD_VALUE);
                    pojo.setTimestamp(collectTime.toInstant());
                    pojo.setTimestamp(GenInfluxPointValueUtils.getByMin(collectTime, DataPointFreqEnum.getEumByCode(dto.getMinfreqid())));
                    result.add(pojo);
                    listBad.add(dto.getPointNo());
                    log.info("值异常!TagId=" + tagId);
iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/point/collection/utils/GenInfluxPointValueUtils.java
@@ -1,8 +1,13 @@
package com.iailab.module.data.point.collection.utils;
import com.iailab.module.data.common.enums.DataTypeEnum;
import com.iailab.module.data.enums.DataPointFreqEnum;
import com.iailab.module.data.point.dto.DaPointDTO;
import com.iailab.module.data.influxdb.pojo.*;
import java.time.Instant;
import java.util.Calendar;
import java.util.Date;
/**
 * @author PanZhibao
@@ -69,4 +74,26 @@
            return new InfluxPointValueStrPOJO();
        }
    }
    public static Instant getByMin(Date collectTime, DataPointFreqEnum freqEnum) {
        Calendar cal = Calendar.getInstance();
        cal.setTime(collectTime);
        switch (freqEnum) {
            case NET_1MIN:
                cal.set(Calendar.SECOND, 0);
                break;
            case NET_1H:
                cal.set(Calendar.SECOND, 0);
                cal.set(Calendar.MINUTE, 0);
                break;
            case NET_Day:
                cal.set(Calendar.SECOND, 0);
                cal.set(Calendar.MINUTE, 0);
                cal.set(Calendar.HOUR_OF_DAY, 0);
                break;
            default:
                break;
        }
        return cal.getTime().toInstant();
    }
}