From 2d9179f0af357ba034927692821a4e5c37198133 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=B0=B7=E6=88=90=E4=BC=9F?= Date: Thu, 5 Dec 2024 17:16:45 +0800 Subject: [PATCH] =?UTF-8?q?=E4=B8=BA=E9=A3=8E=E9=80=9F=E7=B3=BB=E6=95=B0?= =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E7=BC=93=E5=AD=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../cache/domain/WindSpeedCoefValue.java | 11 +++++ .../modules/cache/service/CacheService.java | 2 + .../das/modules/cache/service/CalcCache.java | 8 ++++ .../cache/service/impl/CacheServiceImpl.java | 9 ++++ .../cache/service/impl/CalcCacheImpl.java | 45 +++++++++++++++++++ .../impl/WindSpeedCorrectServiceImpl.java | 14 ++++++ 6 files changed, 89 insertions(+) create mode 100644 das/src/main/java/com/das/modules/cache/domain/WindSpeedCoefValue.java create mode 100644 das/src/main/java/com/das/modules/cache/service/CalcCache.java create mode 100644 das/src/main/java/com/das/modules/cache/service/impl/CalcCacheImpl.java diff --git a/das/src/main/java/com/das/modules/cache/domain/WindSpeedCoefValue.java b/das/src/main/java/com/das/modules/cache/domain/WindSpeedCoefValue.java new file mode 100644 index 00000000..8e901644 --- /dev/null +++ b/das/src/main/java/com/das/modules/cache/domain/WindSpeedCoefValue.java @@ -0,0 +1,11 @@ +package com.das.modules.cache.domain; + +import lombok.Data; + +@Data +public class WindSpeedCoefValue { + private Double minValue; + private Double maxValue; + private Double coef; + private Double base; +} diff --git a/das/src/main/java/com/das/modules/cache/service/CacheService.java b/das/src/main/java/com/das/modules/cache/service/CacheService.java index 9298c642..5784e2ab 100644 --- a/das/src/main/java/com/das/modules/cache/service/CacheService.java +++ b/das/src/main/java/com/das/modules/cache/service/CacheService.java @@ -16,4 +16,6 @@ public interface CacheService { * @return */ IotModelCache getIotModelCache(); + + CalcCache getCalcCache(); } diff --git a/das/src/main/java/com/das/modules/cache/service/CalcCache.java b/das/src/main/java/com/das/modules/cache/service/CalcCache.java new file mode 100644 index 00000000..883143f4 --- /dev/null +++ b/das/src/main/java/com/das/modules/cache/service/CalcCache.java @@ -0,0 +1,8 @@ +package com.das.modules.cache.service; + +import com.das.modules.cache.domain.WindSpeedCoefValue; + +public interface CalcCache { + WindSpeedCoefValue getWindSpeedCoef(Long deviceId); + void putWindSpeedCoef(Long deviceId, WindSpeedCoefValue windSpeedCoefValue); +} diff --git a/das/src/main/java/com/das/modules/cache/service/impl/CacheServiceImpl.java b/das/src/main/java/com/das/modules/cache/service/impl/CacheServiceImpl.java index e22d5972..3042f7bd 100644 --- a/das/src/main/java/com/das/modules/cache/service/impl/CacheServiceImpl.java +++ b/das/src/main/java/com/das/modules/cache/service/impl/CacheServiceImpl.java @@ -1,6 +1,7 @@ package com.das.modules.cache.service.impl; import com.das.modules.cache.service.CacheService; +import com.das.modules.cache.service.CalcCache; import com.das.modules.cache.service.EquipmentCache; import com.das.modules.cache.service.IotModelCache; import org.springframework.beans.factory.annotation.Autowired; @@ -15,6 +16,9 @@ public class CacheServiceImpl implements CacheService { @Autowired IotModelCache iotModelCache; + @Autowired + CalcCache calcCache; + @Override public EquipmentCache getEquipmentCache() { return equipmentCache; @@ -25,5 +29,10 @@ public class CacheServiceImpl implements CacheService { return iotModelCache; } + @Override + public CalcCache getCalcCache() { + return calcCache; + } + } diff --git a/das/src/main/java/com/das/modules/cache/service/impl/CalcCacheImpl.java b/das/src/main/java/com/das/modules/cache/service/impl/CalcCacheImpl.java new file mode 100644 index 00000000..748a0198 --- /dev/null +++ b/das/src/main/java/com/das/modules/cache/service/impl/CalcCacheImpl.java @@ -0,0 +1,45 @@ +package com.das.modules.cache.service.impl; + +import com.das.modules.cache.domain.WindSpeedCoefValue; +import com.das.modules.cache.service.CalcCache; +import com.das.modules.page.domian.dto.SysPowerCurveFactorDto; +import com.das.modules.page.domian.vo.SysPowerCurveFactorVo; +import com.das.modules.page.mapper.SysPowerCurveFactorMapper; +import jakarta.annotation.PostConstruct; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.List; +import java.util.concurrent.ConcurrentHashMap; + +@Service +public class CalcCacheImpl implements CalcCache { + + @Autowired + SysPowerCurveFactorMapper sysPowerCurveFactorMapper; + + private ConcurrentHashMap windSpeedCoefMap = new ConcurrentHashMap<>(); + + @PostConstruct + private void init(){ + List sysPowerCurveFactorVos = sysPowerCurveFactorMapper.querySysPowerCurveFactorList(new SysPowerCurveFactorDto()); + for (SysPowerCurveFactorVo sysPowerCurveFactorVo : sysPowerCurveFactorVos) { + WindSpeedCoefValue windSpeedCoefValue = new WindSpeedCoefValue(); + windSpeedCoefValue.setMinValue(sysPowerCurveFactorVo.getSpeedMin()); + windSpeedCoefValue.setMaxValue(sysPowerCurveFactorVo.getSpeedMax()); + windSpeedCoefValue.setCoef(sysPowerCurveFactorVo.getFactorK()); + windSpeedCoefValue.setBase(sysPowerCurveFactorVo.getFactorB()); + windSpeedCoefMap.put(sysPowerCurveFactorVo.getTurbineId(), windSpeedCoefValue); + } + } + + @Override + public WindSpeedCoefValue getWindSpeedCoef(Long deviceId) { + return windSpeedCoefMap.get(deviceId); + } + + @Override + public void putWindSpeedCoef(Long deviceId, WindSpeedCoefValue windSpeedCoefValue) { + windSpeedCoefMap.put(deviceId, windSpeedCoefValue); + } +} diff --git a/das/src/main/java/com/das/modules/page/service/impl/WindSpeedCorrectServiceImpl.java b/das/src/main/java/com/das/modules/page/service/impl/WindSpeedCorrectServiceImpl.java index c355fc00..02cd903b 100644 --- a/das/src/main/java/com/das/modules/page/service/impl/WindSpeedCorrectServiceImpl.java +++ b/das/src/main/java/com/das/modules/page/service/impl/WindSpeedCorrectServiceImpl.java @@ -12,6 +12,8 @@ import com.das.common.utils.BeanCopyUtils; import com.das.common.utils.PageDataInfo; import com.das.common.utils.PageQuery; import com.das.modules.auth.domain.vo.SysUserVo; +import com.das.modules.cache.domain.WindSpeedCoefValue; +import com.das.modules.cache.service.CacheService; import com.das.modules.equipment.entity.SysEquipment; import com.das.modules.equipment.mapper.SysEquipmentMapper; import com.das.modules.page.domian.dto.IntervalDto; @@ -52,6 +54,9 @@ public class WindSpeedCorrectServiceImpl implements WindSpeedCorrectService { @Autowired private SysPowerCurveFactorMapper sysPowerCurveFactorMapper; + @Autowired + private CacheService cacheService; + @Override public void importWindSpeedCorrect(MultipartFile file) throws IOException { // 通过文件获取输入流 @@ -90,6 +95,15 @@ public class WindSpeedCorrectServiceImpl implements WindSpeedCorrectService { } //批量插入数据库 sysPowerCurveFactorMapper.insertBatch(listData); + //更新缓存数据 + listData.forEach(sysPowerCurveFactor -> { + WindSpeedCoefValue windSpeedCoefValue = new WindSpeedCoefValue(); + windSpeedCoefValue.setMaxValue(sysPowerCurveFactor.getSpeedMax()); + windSpeedCoefValue.setMinValue(sysPowerCurveFactor.getSpeedMin()); + windSpeedCoefValue.setCoef(sysPowerCurveFactor.getFactorK()); + windSpeedCoefValue.setBase(sysPowerCurveFactor.getFactorB()); + cacheService.getCalcCache().putWindSpeedCoef(sysPowerCurveFactor.getTurbineId(),windSpeedCoefValue); + }); } @Override