DeviceLocationService.java 1.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960
  1. package com.zy.bms.service;
  2. import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
  3. import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
  4. import com.zy.bms.common.io.wechat.DeviceHistoryIO;
  5. import com.zy.bms.common.vo.LocationHistoryVo;
  6. import com.zy.bms.mapper.DeviceLocationMapper;
  7. import com.zy.bms.model.Location;
  8. import com.zy.bms.model.LatestLocation;
  9. import com.zy.bms.utils.BeanUtil;
  10. import org.springframework.stereotype.Service;
  11. import javax.annotation.Resource;
  12. import java.util.List;
  13. /**
  14. * 设备位置信息相关
  15. *
  16. * @author chenyi
  17. * Create on 2020/4/10
  18. */
  19. @Service
  20. public class DeviceLocationService extends ServiceImpl<DeviceLocationMapper, Location> {
  21. @Resource
  22. private LatestLocationService latestLocationService;
  23. /**
  24. * 保存位置信息
  25. */
  26. public void saveLocation(Location entity) {
  27. save(entity);
  28. //更新最新的位置信息
  29. QueryWrapper<LatestLocation> queryWrapper = new QueryWrapper<>();
  30. queryWrapper.eq("deviceId", entity.getDeviceId());
  31. LatestLocation latestLocation = BeanUtil.cast(entity, LatestLocation.class);
  32. latestLocationService.saveOrUpdate(latestLocation, queryWrapper);
  33. }
  34. /**
  35. * 获取设备的最新位置信息
  36. *
  37. * @param deviceId 设备ID
  38. */
  39. public LatestLocation getLocation(String deviceId) {
  40. QueryWrapper<LatestLocation> queryWrapper = new QueryWrapper<>();
  41. queryWrapper.eq("deviceId", deviceId);
  42. return latestLocationService.getOne(queryWrapper);
  43. }
  44. /**
  45. * 查看设备历史轨迹
  46. *
  47. * @param io 查询入参
  48. */
  49. public List<LocationHistoryVo> getHistory(DeviceHistoryIO io) {
  50. return baseMapper.getHistory(io);
  51. }
  52. }