2026-02-27 10:31:21 +08:00

170 lines
3.9 KiB
Java

package com.cdzy.operations.service;
import com.cdzy.operations.model.dto.EbikeEcuInOverview;
import com.cdzy.operations.model.vo.EbikeEcuInfoBatchVo;
import com.cdzy.operations.model.vo.EbikeEcuInfoVo;
import com.cdzy.operations.model.vo.EbikeEcuUpgradeVo;
import com.mybatisflex.core.service.IService;
import com.cdzy.operations.model.entity.EbikeEcuInfo;
import org.springframework.web.multipart.MultipartFile;
import java.io.IOException;
import java.util.List;
/**
* 中控基本信息 服务层。
*
* @author attiya
* @since 2025-09-15
*/
public interface EbikeEcuInfoService extends IService<EbikeEcuInfo> {
/**
* 中控入库
* @param ebikeEcuInfo 中控信息
*/
void saveEcu(EbikeEcuInfoVo ebikeEcuInfo);
/**
* 批量入库
* @param batchVo 入库信息
*/
void batchSave(EbikeEcuInfoBatchVo batchVo);
/**
* 总览
* @return 总览数据
*/
List<EbikeEcuInOverview> overview();
/**
* 检测设备是否在线
* @param ecuSn 中控SN码
* @param bikeCode 车辆编号
* @return 结果
*/
boolean online(String ecuSn, String bikeCode) throws IOException;
/**
* 寻车铃命令
* @param ebikeEcuInfo 中控信息
* @return 结果
*/
boolean findBike(EbikeEcuInfo ebikeEcuInfo);
/**
* GPS命令
* @param ebikeEcuInfo 中控信息
* @return 结果
*/
boolean gps(EbikeEcuInfo ebikeEcuInfo);
/**
* 打开电池仓锁命令
* @param ebikeEcuInfo 中控信息
* @return 结果
*/
boolean openBatteryLock(EbikeEcuInfo ebikeEcuInfo);
/**
* 关闭电池仓所命令
* @param ebikeEcuInfo 中控信息
* @return 结果
*/
boolean closeBatteryLock(EbikeEcuInfo ebikeEcuInfo);
/**
* 校验参数
* @param ecuSn 中控SN码
* @param bikeCode 车辆编号
* @return 结果
*/
boolean checkSnOrBikeCode(String ecuSn, String bikeCode);
/**
* 关锁
* @param ebikeEcuInfo 中控信息
* @return 结果
*/
boolean lock(EbikeEcuInfo ebikeEcuInfo);
/**
* 开锁
* @param ebikeEcuInfo 中控信息
* @return 结果
*/
boolean unLock(EbikeEcuInfo ebikeEcuInfo);
/**
* 打开头盔锁
* @param ebikeEcuInfo 中控信息
* @return 结果
*/
boolean openHelmet(EbikeEcuInfo ebikeEcuInfo);
/**
* 打开头盔锁
* @param ebikeEcuInfo 中控信息
* @return 结果
*/
boolean powerOff(EbikeEcuInfo ebikeEcuInfo);
/**
* 执行命令
* @param ecuSn 中控SN码
* @param bikeCode 车辆编号
* @param commandCode 命令编码
* @return 执行结果
*/
boolean executeCommand(String ecuSn, String bikeCode, String commandCode,String url);
/**
* 根据车辆编号获取中控信息
* @param bikeCode 车辆编号
* @return 中控信息
*/
EbikeEcuInfo getEcu(String bikeCode);
/**
* 远程升级中控
* @param ebikeEcuInfo 中控信息
* @return 结果
*/
boolean upgradeFile(EbikeEcuInfo ebikeEcuInfo,String url,Boolean fullUpgrade);
/**
* 上传远程升级
* @param file 文件对象
*/
String upload(MultipartFile file) throws Exception;
/**
* 远程升级
* @param upgradeVoe 升级信息
* @return 操作结果
*/
boolean upgrade(EbikeEcuUpgradeVo upgradeVoe);
/**
* 根据车辆编号查询寻车铃
*
* @param bikeCode 车辆编号
*/
boolean findBikeByBikeCode(String bikeCode);
/**
* 临时停车
* @param ebikeEcuInfo 中控信息
* @return 操作结果
*/
boolean tempLock(EbikeEcuInfo ebikeEcuInfo);
/**
* 临时停车继续骑行
* @param ebikeEcuInfo 中控信息
* @return 操作结果
*/
boolean tempLockResume(EbikeEcuInfo ebikeEcuInfo);
}