| | |
| | | package com.moral.api.service.impl; |
| | | |
| | | import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; |
| | | import com.moral.api.entity.UnitConversion; |
| | | import com.moral.api.mapper.UnitConversionMapper; |
| | | import com.moral.api.service.UnitConversionService; |
| | | import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; |
| | | import com.moral.constant.Constants; |
| | | import com.moral.constant.RedisConstants; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.data.redis.core.RedisTemplate; |
| | | import org.springframework.stereotype.Service; |
| | | |
| | | import java.util.ArrayList; |
| | | import java.util.Iterator; |
| | | import java.util.List; |
| | | |
| | | /** |
| | | * <p> |
| | |
| | | @Service |
| | | public class UnitConversionServiceImpl extends ServiceImpl<UnitConversionMapper, UnitConversion> implements UnitConversionService { |
| | | |
| | | @Autowired |
| | | RedisTemplate redisTemplate; |
| | | @Autowired |
| | | UnitConversionMapper unitConversionMapper; |
| | | |
| | | @Override |
| | | public String getFormula(Integer srcUnitId, Integer posUnitId, String sensorCode) { |
| | | List<UnitConversion> unitConversions = redisTemplate.opsForList().range(RedisConstants.UNIT_CONVERSION, 0, -1); |
| | | if (unitConversions == null) { |
| | | QueryWrapper<UnitConversion> wrapper = new QueryWrapper(); |
| | | wrapper.eq("is_delete", Constants.NOT_DELETE); |
| | | unitConversions = unitConversionMapper.selectList(wrapper); |
| | | } |
| | | List<UnitConversion> sensorConversion = new ArrayList<>(); |
| | | Iterator<UnitConversion> iterator = unitConversions.iterator(); |
| | | while (iterator.hasNext()) { |
| | | UnitConversion unitConversion = iterator.next(); |
| | | if (unitConversion.getSensorCode() != null) { |
| | | sensorConversion.add(unitConversion); |
| | | iterator.remove(); |
| | | } |
| | | } |
| | | for (UnitConversion unitConversion : sensorConversion) { |
| | | if (unitConversion.getOriginalUnitKey().equals(srcUnitId) && unitConversion.getTargetUnitKey().equals(posUnitId) && unitConversion.getSensorCode().equals(sensorCode)) |
| | | return unitConversion.getFormula(); |
| | | } |
| | | |
| | | for (UnitConversion unitConversion : unitConversions) { |
| | | if (unitConversion.getOriginalUnitKey().equals(srcUnitId) && unitConversion.getTargetUnitKey().equals(posUnitId)) |
| | | return unitConversion.getFormula(); |
| | | } |
| | | |
| | | return null; |
| | | } |
| | | } |