package com.ruoyi.system.service; import com.baomidou.mybatisplus.extension.service.IService; import com.ruoyi.common.utils.onenet.DataPointRes; import com.ruoyi.common.utils.onenet.ResponseVo; import com.ruoyi.system.domain.AsDevice; import com.ruoyi.system.domain.EtLocationLog; import com.ruoyi.system.domain.EtOperatingArea; import com.ruoyi.system.domain.response.OrderResponse; import com.ruoyi.system.domain.vo.AsDeviceVO; import com.ruoyi.system.domain.vo.DeviceNumVo; import com.ruoyi.system.domain.vo.EtOrderVo; import com.ruoyi.system.domain.vo.IsInParkingAreaVo; 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 AsDeviceVO 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); /** * 修改设备 * * @param asDevice 设备 * @return 结果 */ public int updateAsDevice2(AsDevice asDevice); /** * 根据SN修改设备 * * @param asDevice 设备 * @return 结果 */ public int updateAsDeviceBySn(AsDevice asDevice); /** * 批量删除设备 * * @param deviceIds 需要删除的设备主键集合 * @return 结果 */ public int deleteAsDeviceByDeviceIds(Long[] deviceIds); /** * 一键上线 * * @param deviceIds 需要一键上线的设备主键集合 * @return 结果 */ public int oneClickOnline(Long[] deviceIds); /** * 一键下线 * * @param deviceIds 需要一键下线的设备主键集合 * @return 结果 */ public int oneClickOffline(Long[] deviceIds); /** * 一键出仓 * * @param deviceIds 需要一键出仓的设备主键集合 * @return 结果 */ int oneClickListing(Long[] deviceIds); /** * 一键入仓 * * @param deviceIds 需要一键入仓的设备主键集合 * @return 结果 */ int oneClickWarehousing(Long[] deviceIds); /** * 更新设备 * * @param deviceIds 需要更新设备的设备主键集合 * @return 结果 */ int refreshDevice(Long[] deviceIds); /** * 更新设备 * * @param sn 需要更新设备的设备主键集合 * @return 结果 */ int refreshDeviceBySn(String sn); /** * 删除设备信息 * * @param deviceId 设备主键 * @return 结果 */ public int deleteAsDeviceByDeviceId(Long deviceId); /** * 根据经纬度查询附近500米的所有车辆 * * @param longitude 经度 * @param latitude 纬度 * @return 结果 */ List vehicleLocalization(String longitude, String latitude,String deptId); /** * 所有车辆定位 */ List allVehicleInfo(String powerStart, String powerEnd, String status,String sort,String areaId,String onlineStatus,String typeSort); /** * 查询车辆数量 */ DeviceNumVo allVehicleNum(String powerStart, String powerEnd,String areaId); /** * 扫码/编号开锁骑行 */ OrderResponse snSwitch(EtOrderVo orderVo); /** * 发送命令 */ public void sendCommand(String mac, String token,String command,String type,String orderNo,String userName); /** * 发送命令 */ public void sendCommand(String mac, String token,String command,String type,String orderNo,String userName,String msg); /** * 发送命令(带响应) */ public ResponseVo sendCommandWithResp(String mac, String token, String command, String type,String orderNo); /** * 发送命令(带响应) */ public ResponseVo sendCommandWithResp(String mac, String token, String command, String type,String orderNo,String lon,String lat); /** * 查询数据点 */ public DataPointRes historyDatapoints(String mac, String token); /** * 响铃寻车 */ Boolean ring(String sn); /** * 开坐垫锁 */ Boolean seatCushionLock(String sn); /** * 重启设备 */ Boolean rebootByMac(String mac); /** * 重启设备 */ Boolean reboot(String sn); /** * 响铃寻车 */ Boolean ringByMac(String mac); /** * 电压校准 */ Boolean check(String sn); /** * 坐垫锁用mac */ Boolean seatCushionLockByMac(String mac); /** * 临时锁车 */ Boolean lock(String mac,String orderNo,String isBluetooth,String lon,String lat); /** * 管理员锁车 */ Boolean adminLock(String sn,String userName); /** * 管理员锁车 */ Boolean adminLockByMac(String mac,String userName); /** * 临时解锁 */ Boolean unlock(String sn, String orderNo,String isBluetooth,String lon,String lat); /** * 车辆预约 */ OrderResponse deviceAppointment(EtOrderVo appointmentVo); /** * 取消预约 */ OrderResponse cancelAppointment(EtOrderVo appointmentVo, AsDevice asDevice); /** * 还车 */ Boolean returnVehicle(String orderNo,String returnType,String isBluetooth,String lon,String lat,String voltage,String isInParkingArea); /** * 管理员开锁 */ Boolean unlocking(String sn,String userName); /** * 管理员开锁 */ Boolean unlockingByMac(String mac,String userName); /** * 车辆上线 */ Boolean online(String sn); /** * 车辆下线 */ Boolean offline(String sn,String status); /** * 根据条件模糊查询车辆信息 * type:1-sn,2-mac,3-车牌号 */ List deviceSearch(String key,String type,String areaId); /** * 运营中车辆 */ String getInOperationDevice(String timeStart, String timeEnd,String areaId); /** * 有订单车辆 */ String getInOrderDevice(String timeStart, String timeEnd,String areaId); /** * 无订单车辆 */ String getNoOrderDevice(String timeStart, String timeEnd,String areaId); /** * 根据车辆型号查询车辆数量 */ Integer selectCountByModelId(Long modelId); /** * 根据运营区查询车辆数量 */ Integer selectCountByAreaId(Long areaId); /** * 判断是否在运营区 */ public Boolean isAreaZone(String sn, EtOperatingArea area); /** * 判断是否在禁行区内 */ public boolean isNoRidingArea(String sn,Long areaId); /** * 判断是否在禁行区内 */ public boolean isNoRidingAreaWithTolerance(String sn,Long areaId,int tolerance); /** * 低电量不得骑行判断 */ boolean isLowBattery(String sn); /** * 判断是否在运营时间内 */ Boolean isOperatingTime(String sn); /** * 根据运营区id获取所有车辆 */ List allVehicleByArea(Long areaId); int updateLocation(AsDevice device); /** * 判断是否在线 */ boolean isOnline(String sn); /** * 判断是否重复 */ boolean checkSNUnique(AsDevice asDevice); /** * 判断是否重复 */ boolean checkMACUnique(AsDevice asDevice); /** * sn和mac号绑定 */ int bandSn(AsDevice asDevice); /** * 根据mac修改sn */ int updateSn(AsDevice asDevice); /** * 根据mac号判断是否有绑定过 */ boolean isBandByMac(String mac); /** * 判断是否在停车区内 */ IsInParkingAreaVo isInParkingArea(String longitude, String latitude,String areaId,String sn); /** * 查询版本并更新 */ boolean updateVersion(String sn); /** * 更新最新的位置信息 */ boolean updateLatestLocation(String sn); /** * 获取最新的位置信息 */ double[] getLatestLocation(String mac); /** * 根据时间查询车辆轨迹 */ String trajectory(String sn,String startTime,String endTime); /** * 根据时间查询车辆轨迹 */ List trajectoryDetails(String sn, String startTime, String endTime); /** * 根据订单号查询车辆轨迹 */ String trajectoryByOrderNo(String orderNo); // /** // * 是否靠近运营区边界 // */ // boolean isCloseToTheBoundary(String sn, EtOperatingArea area); }