electripper/electripper-system/src/main/java/com/ruoyi/system/service/IAsDeviceService.java
2025-01-03 13:52:04 +08:00

435 lines
9.3 KiB
Java

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<AsDevice>
{
/**
* 查询设备
*
* @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<AsDevice> selectAsDeviceList(AsDevice asDevice);
/**
* 查询设备列表
*
* @param asDevice 设备
* @return 设备集合
*/
public List<AsDevice> 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<AsDevice> vehicleLocalization(String longitude, String latitude,String deptId);
/**
* 所有车辆定位
*/
List<AsDevice> 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<AsDevice> 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<AsDevice> 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<EtLocationLog> trajectoryDetails(String sn, String startTime, String endTime);
/**
* 根据订单号查询车辆轨迹
*/
String trajectoryByOrderNo(String orderNo);
// /**
// * 是否靠近运营区边界
// */
// boolean isCloseToTheBoundary(String sn, EtOperatingArea area);
}