|
|
@@ -1,5 +1,7 @@
|
|
|
package com.usky.cdi.service.util;
|
|
|
|
|
|
+import lombok.extern.slf4j.Slf4j;
|
|
|
+
|
|
|
import java.util.Map;
|
|
|
import java.util.concurrent.ConcurrentHashMap;
|
|
|
import java.util.Random;
|
|
|
@@ -23,12 +25,13 @@ import java.util.Random;
|
|
|
* 2. 同一设备后续调用直接取缓存,保持一致
|
|
|
* 3. 不同设备之间数值随机分散
|
|
|
*/
|
|
|
+@Slf4j
|
|
|
public class FixedWaterLevelGenerator {
|
|
|
|
|
|
private static final Map<String, Double> DEVICE_LEVEL_MAP = new ConcurrentHashMap<>();
|
|
|
|
|
|
- private static final double MIN_VALUE = 0.02;
|
|
|
- private static final double MAX_VALUE = 0.05;
|
|
|
+ private static final double MIN_VALUE = 0.03;
|
|
|
+ private static final double MAX_VALUE = 0.06;
|
|
|
|
|
|
public static double getSensorValue(String deviceId) {
|
|
|
return DEVICE_LEVEL_MAP.computeIfAbsent(deviceId, FixedWaterLevelGenerator::computeFixedValue);
|
|
|
@@ -38,6 +41,7 @@ public class FixedWaterLevelGenerator {
|
|
|
long seed = deviceId.hashCode() & 0xFFFFFFFFL;
|
|
|
Random random = new Random(seed);
|
|
|
double value = MIN_VALUE + random.nextDouble() * (MAX_VALUE - MIN_VALUE);
|
|
|
+ log.info("生成设备[{}]的固定水位值:{}", deviceId, value);
|
|
|
return Math.round(value * 1000) / 1000.0;
|
|
|
}
|
|
|
}
|