From 7300883c9154b8d6795606d5a48de61fc21ffcf7 Mon Sep 17 00:00:00 2001 From: huangfeng Date: Mon, 26 Feb 2024 15:43:41 +0800 Subject: [PATCH] =?UTF-8?q?perf:=20=E4=BC=98=E5=8C=96=E5=8D=95=E4=BD=8D?= =?UTF-8?q?=E7=BC=93=E5=AD=98=EF=BC=8C=E5=85=BC=E5=AE=B9=E5=A4=A7=E5=B0=8F?= =?UTF-8?q?=E5=86=99?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/xydl/cac/service/UnitService.java | 2 ++ .../cac/service/impl/NSensorServiceImpl.java | 9 +++------ .../xydl/cac/service/impl/UnitServiceImpl.java | 17 +++++++++++++++++ 3 files changed, 22 insertions(+), 6 deletions(-) diff --git a/src/main/java/com/xydl/cac/service/UnitService.java b/src/main/java/com/xydl/cac/service/UnitService.java index 5301bb7..87b852f 100644 --- a/src/main/java/com/xydl/cac/service/UnitService.java +++ b/src/main/java/com/xydl/cac/service/UnitService.java @@ -13,4 +13,6 @@ public interface UnitService { void update(Unit item) throws Exception; void delete(Integer id); + + String findUnitInCache(String field); } diff --git a/src/main/java/com/xydl/cac/service/impl/NSensorServiceImpl.java b/src/main/java/com/xydl/cac/service/impl/NSensorServiceImpl.java index 20fc4eb..566fe3c 100644 --- a/src/main/java/com/xydl/cac/service/impl/NSensorServiceImpl.java +++ b/src/main/java/com/xydl/cac/service/impl/NSensorServiceImpl.java @@ -8,9 +8,9 @@ import com.xydl.cac.model.SensorDetail; import com.xydl.cac.model.SensorUpdateModel; import com.xydl.cac.repository.NPointRepository; import com.xydl.cac.repository.NSensorRepository; -import com.xydl.cac.repository.UnitRepository; import com.xydl.cac.service.DataService; import com.xydl.cac.service.NSensorService; +import com.xydl.cac.service.UnitService; import com.xydl.cac.service.ZsbService; import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.StringUtils; @@ -34,7 +34,7 @@ public class NSensorServiceImpl implements NSensorService { @Resource NPointRepository pointRepository; @Resource - UnitRepository unitRepository; + UnitService unitService; @Resource DataService dataService; @Resource @@ -129,10 +129,7 @@ public class NSensorServiceImpl implements NSensorService { List pointList = new ArrayList<>(); for (NPoint point : points) { if (StringUtils.isNotBlank(point.getField())) { - List unitList = unitRepository.findByField(point.getField()); - if (!CollectionUtils.isEmpty(unitList)) { - point.setUnit(unitList.get(0).getUnit()); - } + point.setUnit(unitService.findUnitInCache(point.getField())); pointList.add(point); } } diff --git a/src/main/java/com/xydl/cac/service/impl/UnitServiceImpl.java b/src/main/java/com/xydl/cac/service/impl/UnitServiceImpl.java index c8d5eeb..3ddb82e 100644 --- a/src/main/java/com/xydl/cac/service/impl/UnitServiceImpl.java +++ b/src/main/java/com/xydl/cac/service/impl/UnitServiceImpl.java @@ -10,6 +10,7 @@ import org.springframework.transaction.annotation.Transactional; import org.springframework.util.CollectionUtils; import javax.annotation.Resource; +import java.util.HashMap; import java.util.List; @Service @@ -20,6 +21,8 @@ public class UnitServiceImpl implements UnitService { @Resource UnitRepository repository; + HashMap cache = new HashMap<>(); + @Override public List listAll() { return repository.findAll(); @@ -32,16 +35,30 @@ public class UnitServiceImpl implements UnitService { if (!CollectionUtils.isEmpty(list)) { throw new BusinessException("该字段已存在"); } + cache.clear(); return repository.save(item); } @Override public void update(Unit item) throws Exception { repository.save(item); + cache.clear(); } @Override public void delete(Integer id) { repository.deleteById(id); + cache.clear(); + } + + @Override + public String findUnitInCache(String field) { + if (cache.size() < 1) { + List list = repository.findAll(); + for (Unit item : list) { + cache.put(item.getField().toLowerCase(), item.getUnit()); + } + } + return cache.get(field.toLowerCase()); } }