package com.ruoyi.system.service; import com.baomidou.mybatisplus.extension.service.IService; import com.ruoyi.common.utils.onenet.ResponseVo; import com.ruoyi.system.domain.AsDevice; import com.ruoyi.system.domain.EtOperatingArea; import com.ruoyi.system.domain.response.OrderResponse; import com.ruoyi.system.domain.vo.DeviceNumVo; import com.ruoyi.system.domain.vo.EtOrderVo; import java.util.List; /** * 设备Service接口 * * @author 邱贞招 * @date 2024-04-05 */ public interface IAsDeviceService extends IService { /** * 查询设备 * * @param deviceId 设备主键 * @return 设备 */ public AsDevice selectAsDeviceByDeviceId(Long deviceId); /** * 查询设备 * * @param mac 设备主键 * @return 设备 */ public AsDevice selectAsDeviceByMac(String mac); /** * 根据SN查询设备信息 * * @param sn 设备主键 * @return 设备 */ public AsDevice selectAsDeviceBySn(String sn); /** * 查询设备列表 * * @param asDevice 设备 * @return 设备集合 */ public List selectAsDeviceList(AsDevice asDevice); /** * 查询设备列表 * * @param asDevice 设备 * @return 设备集合 */ public List selectAsDeviceListWithIsolate(AsDevice asDevice); /** * 新增设备 * * @param asDevice 设备 * @return 结果 */ public int insertAsDevice(AsDevice asDevice); /** * 修改设备 * * @param asDevice 设备 * @return 结果 */ public int updateAsDevice(AsDevice asDevice); /** * 根据SN修改设备 * * @param asDevice 设备 * @return 结果 */ public int updateAsDeviceBySn(AsDevice asDevice); /** * 批量删除设备 * * @param deviceIds 需要删除的设备主键集合 * @return 结果 */ public int deleteAsDeviceByDeviceIds(Long[] deviceIds); /** * 删除设备信息 * * @param deviceId 设备主键 * @return 结果 */ public int deleteAsDeviceByDeviceId(Long deviceId); /** * 根据定位获取运营区信息,并返回所有车辆定位 * * @param longitude 经度 * @param latitude 纬度 * @return 结果 */ List vehicleLocalization(String longitude, String latitude); /** * 所有车辆定位 */ List allVehicleInfo(String powerStart, String powerEnd, String status,String sort); /** * 查询车辆数量 */ DeviceNumVo allVehicleNum(String powerStart, String powerEnd); /** * 扫码/编号开锁骑行 */ OrderResponse snSwitch(EtOrderVo orderVo); /** * 发送命令 */ public void sendCommand(String mac, String token,String command,String type); /** * 发送命令(带响应) */ public ResponseVo sendCommandWithResp(String mac, String token, String command, String type); /** * 响铃寻车 */ Boolean ring(String mac); /** * 临时锁车 */ Boolean lock(String mac,String orderNo); /** * 管理员锁车 */ Boolean adminLock(String mac); /** * 临时解锁 */ Boolean unlock(String sn, String orderNo); /** * 车辆预约 */ OrderResponse deviceAppointment(EtOrderVo appointmentVo); /** * 取消预约 */ OrderResponse cancelAppointment(EtOrderVo appointmentVo, AsDevice asDevice); /** * 还车 */ Boolean returnVehicle(String orderNo,String returnType); /** * 管理员开锁 */ Boolean unlocking(String sn); /** * 车辆上线 */ Boolean online(String sn); /** * 车辆下线 */ Boolean offline(String sn); /** * 根据条件模糊查询车辆信息 * type:1-sn,2-mac,3-车牌号 */ List deviceSearch(String key,String type); /** * 运营中车辆 */ String getInOperationDevice(String timeStart, String timeEnd); /** * 有订单车辆 */ String getInOrderDevice(String timeStart, String timeEnd); /** * 无订单车辆 */ String getNoOrderDevice(String timeStart, String timeEnd); /** * 根据车辆型号查询车辆数量 */ Integer selectCountByModelId(Long modelId); /** * 根据运营区查询车辆数量 */ Integer selectCountByAreaId(Long areaId); /** * 判断是否在运营区 */ public Boolean isAreaZone(String sn, EtOperatingArea area); /** * 判断是否在禁行区内 */ public boolean isNoRidingArea(String sn,Long areaId); /** * 低电量不得骑行判断 */ boolean isLowBattery(String sn); /** * 判断是否在运营时间内 */ Boolean isOperatingTime(String sn); /** * 根据运营区id获取所有车辆 */ List allVehicleByArea(Long areaId); int updateLocation(AsDevice device); /** * 判断是否在线 */ boolean isOnline(String sn); // /** // * 是否靠近运营区边界 // */ // boolean isCloseToTheBoundary(String sn, EtOperatingArea area); }