* !44 comment
* !39 添加下行日志打印
* !36 扩展计价领域模型
* !35 webui 初步成型
* !34 webui 初步成型
This commit is contained in:
三丙
2025-09-09 08:23:59 +00:00
parent 921045af8f
commit 58580ca11e
372 changed files with 37900 additions and 1206 deletions

View File

@@ -0,0 +1,118 @@
/**
* 开源代码,仅供学习和交流研究使用,商用请联系三丙
* 微信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);
}