工业互联网平台2.0版本后端代码
dongyukun
2025-05-26 e690db9517216bea6a19c7c186d35b2ad8d6fd3f
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;
@@ -46,6 +47,12 @@
    private ConstantHandle constantHandle;
    @Resource
    private CumulateHandle cumulateHandle;
    @Resource
    private ExtremalHandle extremalHandle;
    @Resource
    private JavaScriptHandler javaScriptHandler;
    @Autowired
@@ -66,8 +73,14 @@
                    Object rawValue = singleCompute(dto, dataMap, listGood, listBad);
                    BigDecimal coefficient = dto.getUnittransfactor() == null ? BigDecimal.ONE : dto.getUnittransfactor();
                    BigDecimal calValue = new BigDecimal(rawValue.toString()).multiply(coefficient);
                    if (dto.getMaxValue() != null && calValue.compareTo(dto.getMaxValue()) > 0) {
                        calValue = dto.getMaxValue();
                    } else if (dto.getMinValue() != null && calValue.compareTo(dto.getMinValue()) < 0) {
                        calValue = dto.getMinValue();
                    }
                    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();
@@ -164,6 +177,8 @@
            pointNos.add(s);
            dataMap.putAll(measureHandle.getCurrent(pointNos));
            dataMap.putAll(constantHandle.getCurrent(pointNos));
            dataMap.putAll(cumulateHandle.getCurrent(pointNos));
            dataMap.putAll(extremalHandle.getCurrent(pointNos));
            if (dataMap.get(s) == null) {
                log.info("计算点数据异常");
                log.info("pointNo=" + dto.getPointNo() + ";dataMap.key=" + s);