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()); } }