diff --git a/das/src/main/java/com/das/modules/cache/domain/IotModelInfoCache.java b/das/src/main/java/com/das/modules/cache/domain/IotModelInfoCache.java index 00e20474..574d550f 100644 --- a/das/src/main/java/com/das/modules/cache/domain/IotModelInfoCache.java +++ b/das/src/main/java/com/das/modules/cache/domain/IotModelInfoCache.java @@ -2,8 +2,6 @@ package com.das.modules.cache.domain; import lombok.Data; -import java.util.concurrent.ConcurrentHashMap; - @Data public class IotModelInfoCache { private Long iotModelId; diff --git a/das/src/main/java/com/das/modules/cache/service/impl/IotModelCacheImpl.java b/das/src/main/java/com/das/modules/cache/service/impl/IotModelCacheImpl.java index be670f65..d548237e 100644 --- a/das/src/main/java/com/das/modules/cache/service/impl/IotModelCacheImpl.java +++ b/das/src/main/java/com/das/modules/cache/service/impl/IotModelCacheImpl.java @@ -10,7 +10,6 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import java.util.concurrent.ConcurrentHashMap; -import java.util.concurrent.CopyOnWriteArraySet; @Service public class IotModelCacheImpl implements IotModelCache { diff --git a/das/src/main/java/com/das/modules/calc/controller/CalcController.java b/das/src/main/java/com/das/modules/calc/controller/CalcController.java index 15b74bb6..a9463bf0 100644 --- a/das/src/main/java/com/das/modules/calc/controller/CalcController.java +++ b/das/src/main/java/com/das/modules/calc/controller/CalcController.java @@ -1,11 +1,9 @@ package com.das.modules.calc.controller; -import cn.hutool.core.io.FileUtil; import com.das.common.result.R; import com.das.modules.calc.domain.vo.CalcModuleVo; import com.das.modules.calc.service.CalcService; import lombok.extern.slf4j.Slf4j; -import org.quartz.SchedulerException; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestBody; @@ -13,9 +11,7 @@ import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; import org.springframework.web.multipart.MultipartFile; -import java.io.BufferedReader; import java.io.IOException; -import java.io.InputStreamReader; import java.nio.charset.StandardCharsets; import java.util.List; import java.util.Map; diff --git a/das/src/main/java/com/das/modules/calc/domain/entity/CalcModule.java b/das/src/main/java/com/das/modules/calc/domain/entity/CalcModule.java index c5d5149a..fa4e9bdd 100644 --- a/das/src/main/java/com/das/modules/calc/domain/entity/CalcModule.java +++ b/das/src/main/java/com/das/modules/calc/domain/entity/CalcModule.java @@ -10,7 +10,6 @@ import java.io.BufferedReader; import java.io.IOException; import java.io.StringReader; import java.util.Date; -import java.util.concurrent.atomic.AtomicInteger; @Slf4j @TableName("sys_calc_module") diff --git a/das/src/main/java/com/das/modules/calc/functions/FunctionAvgValue.java b/das/src/main/java/com/das/modules/calc/functions/FunctionAvgValue.java index 68742ee6..94b2359f 100644 --- a/das/src/main/java/com/das/modules/calc/functions/FunctionAvgValue.java +++ b/das/src/main/java/com/das/modules/calc/functions/FunctionAvgValue.java @@ -1,7 +1,5 @@ package com.das.modules.calc.functions; -import cn.hutool.core.date.DateField; -import cn.hutool.core.date.DateUtil; import com.das.modules.cache.domain.DeviceInfoCache; import com.das.modules.cache.service.CacheService; import com.das.modules.data.service.DataService; diff --git a/das/src/main/java/com/das/modules/calc/functions/FunctionCacheValue.java b/das/src/main/java/com/das/modules/calc/functions/FunctionCacheValue.java index 178c6af7..e89662d9 100644 --- a/das/src/main/java/com/das/modules/calc/functions/FunctionCacheValue.java +++ b/das/src/main/java/com/das/modules/calc/functions/FunctionCacheValue.java @@ -9,7 +9,6 @@ import lombok.SneakyThrows; import lombok.extern.slf4j.Slf4j; import java.util.Map; -import java.util.concurrent.ConcurrentHashMap; /** * Aviator扩展函数 - 获取设备实时数据 diff --git a/das/src/main/java/com/das/modules/calc/functions/FunctionOffsetDate.java b/das/src/main/java/com/das/modules/calc/functions/FunctionOffsetDate.java index 67582de4..100ef18d 100644 --- a/das/src/main/java/com/das/modules/calc/functions/FunctionOffsetDate.java +++ b/das/src/main/java/com/das/modules/calc/functions/FunctionOffsetDate.java @@ -30,27 +30,27 @@ public class FunctionOffsetDate extends AbstractFunction { public AviatorObject call(Map env, AviatorObject dateData, AviatorObject dimData, AviatorObject offsetData) { Date date = (Date) dateData.getValue(env); String dim = (String) dimData.getValue(env); - Integer offset = (Integer) offsetData.getValue(env); + Long offset = (Long) offsetData.getValue(env); Date result = null; switch (dim) { case "day": - result = DateUtil.offset(date, DateField.DAY_OF_MONTH, offset); + result = DateUtil.offset(date, DateField.DAY_OF_MONTH, offset.intValue()); break; case "month": - result = DateUtil.offset(date, DateField.MONTH, offset); + result = DateUtil.offset(date, DateField.MONTH, offset.intValue()); break; case "year": - result = DateUtil.offset(date, DateField.YEAR, offset); + result = DateUtil.offset(date, DateField.YEAR, offset.intValue()); break; case "hour": - result = DateUtil.offset(date, DateField.HOUR, offset); + result = DateUtil.offset(date, DateField.HOUR, offset.intValue()); break; case "minute": - result = DateUtil.offset(date, DateField.MINUTE, offset); + result = DateUtil.offset(date, DateField.MINUTE, offset.intValue()); break; case "second": - result = DateUtil.offset(date, DateField.SECOND, offset); + result = DateUtil.offset(date, DateField.SECOND, offset.intValue()); break; default: log.error("不支持的维度: {}", dim); diff --git a/das/src/main/java/com/das/modules/calc/functions/FunctionRealData.java b/das/src/main/java/com/das/modules/calc/functions/FunctionRealData.java index 8615b8e3..918f6393 100644 --- a/das/src/main/java/com/das/modules/calc/functions/FunctionRealData.java +++ b/das/src/main/java/com/das/modules/calc/functions/FunctionRealData.java @@ -5,7 +5,8 @@ import com.das.modules.cache.service.CacheService; import com.das.modules.data.domain.SnapshotValueQueryParam; import com.das.modules.data.service.DataService; import com.googlecode.aviator.runtime.function.AbstractFunction; -import com.googlecode.aviator.runtime.type.*; +import com.googlecode.aviator.runtime.type.AviatorObject; +import com.googlecode.aviator.runtime.type.AviatorRuntimeJavaType; import lombok.extern.slf4j.Slf4j; import java.util.HashMap; diff --git a/das/src/main/java/com/das/modules/calc/functions/FunctionSaveCalcData.java b/das/src/main/java/com/das/modules/calc/functions/FunctionSaveCalcData.java index cd88c7ee..2117dd10 100644 --- a/das/src/main/java/com/das/modules/calc/functions/FunctionSaveCalcData.java +++ b/das/src/main/java/com/das/modules/calc/functions/FunctionSaveCalcData.java @@ -12,7 +12,10 @@ import com.googlecode.aviator.runtime.type.AviatorRuntimeJavaType; import lombok.SneakyThrows; import lombok.extern.slf4j.Slf4j; -import java.util.*; +import java.util.ArrayList; +import java.util.Date; +import java.util.List; +import java.util.Map; /** * Aviator扩展函数 - 获取设备实时数据 diff --git a/das/src/main/java/com/das/modules/calc/functions/FunctionSumValue.java b/das/src/main/java/com/das/modules/calc/functions/FunctionSumValue.java index a2d518b9..45d9bfb1 100644 --- a/das/src/main/java/com/das/modules/calc/functions/FunctionSumValue.java +++ b/das/src/main/java/com/das/modules/calc/functions/FunctionSumValue.java @@ -1,6 +1,5 @@ package com.das.modules.calc.functions; -import cn.hutool.core.date.DateUtil; import com.das.modules.cache.domain.DeviceInfoCache; import com.das.modules.cache.service.CacheService; import com.das.modules.data.service.DataService; @@ -8,12 +7,10 @@ import com.googlecode.aviator.runtime.function.AbstractFunction; import com.googlecode.aviator.runtime.type.AviatorNil; import com.googlecode.aviator.runtime.type.AviatorObject; import com.googlecode.aviator.runtime.type.AviatorRuntimeJavaType; -import lombok.Data; import lombok.extern.slf4j.Slf4j; import java.util.Date; import java.util.Map; -import java.util.concurrent.ConcurrentHashMap; /** * Aviator扩展函数 - 获取时间维度内最早的一条数据 diff --git a/das/src/main/java/com/das/modules/calc/functions/FunctionTopValue.java b/das/src/main/java/com/das/modules/calc/functions/FunctionTopValue.java index eedd5860..b505f15b 100644 --- a/das/src/main/java/com/das/modules/calc/functions/FunctionTopValue.java +++ b/das/src/main/java/com/das/modules/calc/functions/FunctionTopValue.java @@ -1,10 +1,8 @@ package com.das.modules.calc.functions; -import cn.hutool.core.date.DateUnit; import cn.hutool.core.date.DateUtil; import com.das.modules.cache.domain.DeviceInfoCache; import com.das.modules.cache.service.CacheService; -import com.das.modules.data.domain.SnapshotValueQueryParam; import com.das.modules.data.service.DataService; import com.googlecode.aviator.runtime.function.AbstractFunction; import com.googlecode.aviator.runtime.type.AviatorNil; @@ -14,8 +12,6 @@ import lombok.Data; import lombok.extern.slf4j.Slf4j; import java.util.Date; -import java.util.HashMap; -import java.util.List; import java.util.Map; import java.util.concurrent.ConcurrentHashMap; diff --git a/das/src/main/java/com/das/modules/calc/functions/FunctionWindSpeedFactor.java b/das/src/main/java/com/das/modules/calc/functions/FunctionWindSpeedFactor.java index 2765024b..ed108544 100644 --- a/das/src/main/java/com/das/modules/calc/functions/FunctionWindSpeedFactor.java +++ b/das/src/main/java/com/das/modules/calc/functions/FunctionWindSpeedFactor.java @@ -11,7 +11,6 @@ import com.googlecode.aviator.runtime.type.AviatorObject; import com.googlecode.aviator.runtime.type.AviatorRuntimeJavaType; import lombok.extern.slf4j.Slf4j; -import java.util.Date; import java.util.List; import java.util.Map; diff --git a/das/src/main/java/com/das/modules/calc/service/CalcJob.java b/das/src/main/java/com/das/modules/calc/service/CalcJob.java index 310e7717..1f307a5c 100644 --- a/das/src/main/java/com/das/modules/calc/service/CalcJob.java +++ b/das/src/main/java/com/das/modules/calc/service/CalcJob.java @@ -6,7 +6,6 @@ import com.das.modules.cache.service.CacheService; import com.das.modules.calc.domain.entity.CalcModule; import com.googlecode.aviator.AviatorEvaluatorInstance; import com.googlecode.aviator.Expression; -import com.googlecode.aviator.runtime.type.AviatorRuntimeJavaType; import lombok.extern.slf4j.Slf4j; import org.quartz.Job; import org.quartz.JobDataMap; diff --git a/das/src/main/java/com/das/modules/calc/service/CalcService.java b/das/src/main/java/com/das/modules/calc/service/CalcService.java index 0e291a3b..c9669f0e 100644 --- a/das/src/main/java/com/das/modules/calc/service/CalcService.java +++ b/das/src/main/java/com/das/modules/calc/service/CalcService.java @@ -2,6 +2,7 @@ package com.das.modules.calc.service; import cn.hutool.core.codec.Base64Encoder; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.das.common.utils.AdminRedisTemplate; import com.das.modules.cache.service.CacheService; import com.das.modules.calc.domain.entity.CalcModule; @@ -134,6 +135,9 @@ public class CalcService { FunctionOffsetDate offsetDate = new FunctionOffsetDate(); aviator.addFunction(offsetDate); + + FunctionWindSpeedFactor windSpeedFactor = new FunctionWindSpeedFactor(dataService,cacheService); + aviator.addFunction(windSpeedFactor); } /** @@ -176,7 +180,9 @@ public class CalcService { * @return */ public List queryCalcModules() { - List scriptModules = calcModuleMapper.selectList(null); + LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); + queryWrapper.orderByAsc(CalcModule::getLocalName); + List scriptModules = calcModuleMapper.selectList(queryWrapper); return scriptModules.stream().map(CalcModuleVo::of).toList(); } diff --git a/das/src/main/java/com/das/modules/node/command/HeartbeatCommand.java b/das/src/main/java/com/das/modules/node/command/HeartbeatCommand.java index e29915c9..22be0b41 100644 --- a/das/src/main/java/com/das/modules/node/command/HeartbeatCommand.java +++ b/das/src/main/java/com/das/modules/node/command/HeartbeatCommand.java @@ -56,7 +56,7 @@ public class HeartbeatCommand implements BaseCommand{ } //判断是不是风机 String keyPLCDeviceStatus = String.format("RT:%d:iturbineoperationmode", deviceId); - String keyCommFaultState = String.format("RT:%d:commfaultstate"); + String keyCommFaultState = String.format("RT:%d:commfaultstate",deviceId); Integer plcDeviceStatus = adminRedisTemplate.get(keyPLCDeviceStatus); if (plcDeviceStatus == null){ adminRedisTemplate.set(keyCommFaultState, online ? 0 : 1); diff --git a/docs/datacollect/README.md b/docs/datacollect/README.md index 591cb3b0..5b440a43 100644 --- a/docs/datacollect/README.md +++ b/docs/datacollect/README.md @@ -376,13 +376,16 @@ PS: 同一节点只允许建立一条连接。 "dataTime": 123123123123, //设备ID "deviceId": "1123451235464", - //是否存储历史数据 - "isStore": true, "values": { //key为属性名 "Ia": 123.1, "Ib": 122.1, "Ic": 123.1 + }, + //需要归档的数据 + "archiveValues":{ + "P": 1234.12, + "Q": 12 } } ``` @@ -402,11 +405,13 @@ PS: 同一节点只允许建立一条连接。 "dataTime": 123123123123, //设备ID "deviceId": "1123451235464", - //是否存储历史数据 - "isStore": true, "values": { //key为属性名 "Switch01": 1 + }, + //需要归档的数据 + "archiveValues":{ + "Fault001": 0 } } ```