kaiyu
2021-09-08 9cc9f173f8db89135610eba2c8af79c17b24dfdf
screen-api/src/main/java/com/moral/api/service/impl/SpecialDeviceServiceImpl.java
@@ -3,19 +3,17 @@
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.moral.api.entity.HistorySecondSpecial;
import com.moral.api.entity.Sensor;
import com.moral.api.entity.Organization;
import com.moral.api.entity.SpecialDevice;
import com.moral.api.entity.SysDictData;
import com.moral.api.entity.SpecialDeviceHistory;
import com.moral.api.mapper.HistorySecondSpecialMapper;
import com.moral.api.mapper.SpecialDeviceMapper;
import com.moral.api.service.HistorySecondSpecialService;
import com.moral.api.service.SensorService;
import com.moral.api.service.OrganizationService;
import com.moral.api.service.SpecialDeviceHistoryService;
import com.moral.api.service.SpecialDeviceService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.moral.api.service.SysDictDataService;
import com.moral.constant.Constants;
import com.moral.constant.RedisConstants;
import com.moral.util.DateUtils;
import com.moral.util.GeodesyUtils;
import com.moral.util.TokenUtils;
@@ -25,10 +23,8 @@
import org.springframework.util.ObjectUtils;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
/**
 * <p>
@@ -45,29 +41,35 @@
    private HistorySecondSpecialMapper historySecondSpecialMapper;
    @Autowired
    private SensorService sensorService;
    private SpecialDeviceHistoryService specialDeviceHistoryService;
    @Autowired
    private SysDictDataService sysDictDataService;
    OrganizationService organizationService;
    @Autowired
    private RedisTemplate redisTemplate;
    SpecialDeviceMapper specialDeviceMapper;
    @Autowired
    RedisTemplate redisTemplate;
    private final static Double dis = 50d;
    @Override
    public List<Map<String, Object>> getCarsInfo() {
        //获取当前用户信息
        Map<String, Object> userInfo = (Map<String, Object>) TokenUtils.getUserInfo();
        Map<String, Object> orgInfo = (Map<String, Object>) userInfo.get("organization");
        Integer orgId = (Integer) orgInfo.get("id");
        QueryWrapper<SpecialDeviceHistory> queryWrapper = new QueryWrapper<>();
        queryWrapper.select("mac", "name")
                .eq("organization_id", orgId)
                .eq("special_type", Constants.SPECIAL_DEVICE_CAR)
                .eq("is_delete", Constants.NOT_DELETE);
        return specialDeviceHistoryService.listMaps(queryWrapper);
    }
    @Override
    public List<Map<String, Object>> carTrajectory(Map<String, Object> params) {
        params.put("dateFormat", "%Y-%m-%d %H:%i:%s");
        //查询传感器单位
        /*QueryWrapper<Sensor> queryWrapper = new QueryWrapper<>();
        queryWrapper.select("default_unit_key").eq("code", sensorCode);
        String defaultUnitKey = sensorService.getOne(queryWrapper).getDefaultUnitKey();
        QueryWrapper<SysDictData> sysDictDataQueryWrapper = new QueryWrapper<>();
        sysDictDataQueryWrapper.select("dataValue").eq("dict_type_id", 14).eq("dataKey", defaultUnitKey);
        String sensorUnit = sysDictDataService.getOne(sysDictDataQueryWrapper).getDataValue();
        params.put("sensorUnit", sensorUnit);*/
        Map<String, Object> userInfo = (Map<String, Object>) TokenUtils.getUserInfo();
        Map<String, Object> orgInfo = (Map<String, Object>) userInfo.get("organization");
        Integer orgId = (Integer) orgInfo.get("id");
@@ -95,6 +97,23 @@
        return filterData(data);
    }
    @Override
    public Map<String,Object> getSpecialDeviceMapByMac(String mac) {
        //从缓存中获取
        Map<String,Object> specialDeviceMap = (Map<String, Object>) redisTemplate.opsForHash().get(RedisConstants.DEVICE,mac);
       return specialDeviceMap;
    }
    @Override
    public SpecialDevice getSpecialDeviceByMac(String mac) {
        QueryWrapper<SpecialDevice> queryWrapper = new QueryWrapper();
        queryWrapper.eq("mac",mac);
        queryWrapper.eq("is_delete",Constants.NOT_DELETE);
        SpecialDevice specialDevice = specialDeviceMapper.selectOne(queryWrapper);
        return specialDevice;
    }
    //根据距离筛选数据
    private List<Map<String, Object>> filterData(List<Map<String, Object>> data) {
        List<Map<String, Object>> result = new ArrayList<>();