perf: 优化单位缓存,兼容大小写

dev
huangfeng 1 year ago
parent abd54e55b5
commit 7300883c91

@ -13,4 +13,6 @@ public interface UnitService {
void update(Unit item) throws Exception; void update(Unit item) throws Exception;
void delete(Integer id); void delete(Integer id);
String findUnitInCache(String field);
} }

@ -8,9 +8,9 @@ import com.xydl.cac.model.SensorDetail;
import com.xydl.cac.model.SensorUpdateModel; import com.xydl.cac.model.SensorUpdateModel;
import com.xydl.cac.repository.NPointRepository; import com.xydl.cac.repository.NPointRepository;
import com.xydl.cac.repository.NSensorRepository; import com.xydl.cac.repository.NSensorRepository;
import com.xydl.cac.repository.UnitRepository;
import com.xydl.cac.service.DataService; import com.xydl.cac.service.DataService;
import com.xydl.cac.service.NSensorService; import com.xydl.cac.service.NSensorService;
import com.xydl.cac.service.UnitService;
import com.xydl.cac.service.ZsbService; import com.xydl.cac.service.ZsbService;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
@ -34,7 +34,7 @@ public class NSensorServiceImpl implements NSensorService {
@Resource @Resource
NPointRepository pointRepository; NPointRepository pointRepository;
@Resource @Resource
UnitRepository unitRepository; UnitService unitService;
@Resource @Resource
DataService dataService; DataService dataService;
@Resource @Resource
@ -129,10 +129,7 @@ public class NSensorServiceImpl implements NSensorService {
List<NPoint> pointList = new ArrayList<>(); List<NPoint> pointList = new ArrayList<>();
for (NPoint point : points) { for (NPoint point : points) {
if (StringUtils.isNotBlank(point.getField())) { if (StringUtils.isNotBlank(point.getField())) {
List<Unit> unitList = unitRepository.findByField(point.getField()); point.setUnit(unitService.findUnitInCache(point.getField()));
if (!CollectionUtils.isEmpty(unitList)) {
point.setUnit(unitList.get(0).getUnit());
}
pointList.add(point); pointList.add(point);
} }
} }

@ -10,6 +10,7 @@ import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.CollectionUtils; import org.springframework.util.CollectionUtils;
import javax.annotation.Resource; import javax.annotation.Resource;
import java.util.HashMap;
import java.util.List; import java.util.List;
@Service @Service
@ -20,6 +21,8 @@ public class UnitServiceImpl implements UnitService {
@Resource @Resource
UnitRepository repository; UnitRepository repository;
HashMap<String, String> cache = new HashMap<>();
@Override @Override
public List<Unit> listAll() { public List<Unit> listAll() {
return repository.findAll(); return repository.findAll();
@ -32,16 +35,30 @@ public class UnitServiceImpl implements UnitService {
if (!CollectionUtils.isEmpty(list)) { if (!CollectionUtils.isEmpty(list)) {
throw new BusinessException("该字段已存在"); throw new BusinessException("该字段已存在");
} }
cache.clear();
return repository.save(item); return repository.save(item);
} }
@Override @Override
public void update(Unit item) throws Exception { public void update(Unit item) throws Exception {
repository.save(item); repository.save(item);
cache.clear();
} }
@Override @Override
public void delete(Integer id) { public void delete(Integer id) {
repository.deleteById(id); repository.deleteById(id);
cache.clear();
}
@Override
public String findUnitInCache(String field) {
if (cache.size() < 1) {
List<Unit> list = repository.findAll();
for (Unit item : list) {
cache.put(item.getField().toLowerCase(), item.getUnit());
}
}
return cache.get(field.toLowerCase());
} }
} }

Loading…
Cancel
Save