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 { /** * 中控入库 * @param ebikeEcuInfo 中控信息 */ void saveEcu(EbikeEcuInfoVo ebikeEcuInfo); /** * 批量入库 * @param batchVo 入库信息 */ void batchSave(EbikeEcuInfoBatchVo batchVo); /** * 总览 * @return 总览数据 */ List 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); }