Files
JChargePointProtocol/jcpp-app/src/main/java/sanbing/jcpp/app/service/PileService.java
三丙 58580ca11e !45 !44 comment
* !44 comment
* !39 添加下行日志打印
* !36 扩展计价领域模型
* !35 webui 初步成型
* !34 webui 初步成型
2025-09-09 08:23:59 +00:00

119 lines
3.2 KiB
Java
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
/**
* 开源代码,仅供学习和交流研究使用,商用请联系三丙
* 微信mohan_88888
* 抖音:程序员三丙
* 付费课程知识星球https://t.zsxq.com/aKtXo
*/
package sanbing.jcpp.app.service;
import com.google.common.util.concurrent.ListenableFuture;
import sanbing.jcpp.app.adapter.request.PileCreateRequest;
import sanbing.jcpp.app.adapter.request.PileQueryRequest;
import sanbing.jcpp.app.adapter.request.PileUpdateRequest;
import sanbing.jcpp.app.adapter.response.PageResponse;
import sanbing.jcpp.app.adapter.response.PileOptionResponse;
import sanbing.jcpp.app.adapter.response.PileWithStatusResponse;
import sanbing.jcpp.app.dal.config.ibatis.enums.PileStatusEnum;
import sanbing.jcpp.app.dal.entity.Pile;
import sanbing.jcpp.app.data.kv.AttributesSaveResult;
import sanbing.jcpp.app.exception.JCPPException;
import java.util.List;
import java.util.UUID;
public interface PileService {
/**
* 创建充电桩
*/
Pile createPile(PileCreateRequest request);
/**
* 根据ID查询充电桩
*/
Pile findById(UUID id);
/**
* 更新充电桩
*/
Pile updatePile(UUID id, PileUpdateRequest request) throws JCPPException;
/**
* 删除充电桩
*/
void deletePile(UUID id) throws JCPPException;
/**
* 分页查询充电桩及状态信息
*/
PageResponse<PileWithStatusResponse> queryPilesWithStatus(PileQueryRequest request);
/**
* 获取充电桩选项列表
*/
List<PileOptionResponse> getPileOptions();
/**
* 更新充电桩状态
*
* @param pileId 充电桩ID
* @param status 新状态
*/
void updatePileStatus(UUID pileId, PileStatusEnum status);
/**
* 根据充电桩编码更新状态
*
* @param pileCode 充电桩编码
* @param status 新状态
*/
void updatePileStatusByCode(String pileCode, PileStatusEnum status);
/**
* 查询所有充电桩
*/
List<Pile> findAll();
/**
* 分页查询充电桩(用于状态清洗等批处理场景)
*
* @param offset 偏移量
* @param limit 限制数量
* @return 充电桩列表
*/
List<Pile> findPilesWithPagination(int offset, int limit);
/**
* 查询充电桩状态
*
* @param pileId 充电桩ID
* @return 状态字符串如果不存在返回null
*/
String findPileStatus(UUID pileId);
/**
* 处理充电桩登录后的状态管理(优化版)
* 执行更新STATUS为ONLINE → 更新CONNECTED_AT → 更新LAST_ACTIVE_TIME
*
* @param pileId 充电桩ID
* @return 异步操作结果
*/
ListenableFuture<AttributesSaveResult> handlePileLogin(UUID pileId);
/**
* 处理充电桩心跳时的状态管理(优化版)
* 执行更新STATUS为ONLINE → 更新LAST_ACTIVE_TIME
*
* @param pileId 充电桩ID
* @return 异步操作结果
*/
ListenableFuture<AttributesSaveResult> handlePileHeartbeat(UUID pileId);
/**
* 处理充电桩会话关闭时的状态管理
*
* @param pileCode 充电桩编码
*/
void handlePileSessionClose(String pileCode);
}