!43 离线卡数据清除(0x46) 离线卡数据清除应答(0x45)

* merge master
* merge master
* Merge branch 'master' into Feat_离线卡数据清除、离线卡数据查询
* merge master
* Merge branch 'master' into Feat_离线卡数据清除、离线卡数据查询
* 离线卡数据清除(0x46) 离线卡数据清除应答(0x45)
* 离线卡数据清除(0x46) 离线卡数据清除应答(0x45)
* 离线卡数据清除(0x46) 离线卡数据清除应答(0x45)
* 离线卡数据清除(0x46) 离线卡数据清除应答(0x45)
This commit is contained in:
八万
2025-09-13 08:40:51 +00:00
committed by 三丙
parent eff49bb3c0
commit 9451d28894
18 changed files with 521 additions and 15 deletions

View File

@@ -323,4 +323,33 @@ public class TestController extends BaseController {
return ResponseEntity.ok("success");
}
@GetMapping("/api/offlineCardClearRequest")
public ResponseEntity<String> offlineCardClearRequest() {
List<String> cardNoList = Lists.newArrayList("1000000000123456", "1000000000123457", "1000000000123458", "1000000000123459", "1000000000123460");
pileProtocolService.offlineCardClearRequest(OfflineCardClearRequest.newBuilder()
.setPileCode("20231212000010")
.setTotal(cardNoList.size())
.addAllCardNo(cardNoList)
.build());
return ResponseEntity.ok("success");
}
@GetMapping("/api/offlineCardQueryRequest")
public ResponseEntity<String> offlineCardQueryRequest() {
List<String> cardNoList = Lists.newArrayList("1000000000123456", "1000000000123457", "1000000000123458", "1000000000123459", "1000000000123460");
pileProtocolService.offlineCardQueryRequest(OfflineCardQueryRequest.newBuilder()
.setPileCode("20231212000010")
.setTotal(cardNoList.size())
.addAllCardNo(cardNoList)
.build());
return ResponseEntity.ok("success");
}
}

View File

@@ -7,12 +7,12 @@
package sanbing.jcpp.app.service;
import sanbing.jcpp.infrastructure.queue.Callback;
import sanbing.jcpp.proto.gen.DownlinkProto;
import sanbing.jcpp.proto.gen.DownlinkProto.OfflineCardBalanceUpdateRequest;
import sanbing.jcpp.proto.gen.DownlinkProto.OfflineCardSyncRequest;
import sanbing.jcpp.proto.gen.DownlinkProto.OtaRequest;
import sanbing.jcpp.proto.gen.DownlinkProto.SetPricingRequest;
import sanbing.jcpp.proto.gen.UplinkProto.UplinkQueueMessage;
import java.math.BigDecimal;
import java.time.LocalDateTime;
@@ -184,6 +184,25 @@ public interface PileProtocolService {
*/
void onTimeSyncResponse(UplinkQueueMessage uplinkQueueMessage, Callback callback);
/**
* 离线卡数据清除
*/
void offlineCardClearRequest(DownlinkProto.OfflineCardClearRequest request);
/**
* 离线卡数据清除应答
*/
void onOfflineCardClearResponse(UplinkQueueMessage uplinkQueueMessage, Callback callback);
/**
* 离线卡数据查询
*/
void offlineCardQueryRequest(DownlinkProto.OfflineCardQueryRequest request);
/**
* 离线卡数据查询应答
*/
void onOfflineCardQueryResponse(UplinkQueueMessage uplinkQueueMessage, Callback callback);
/**
* 充电过程BMS需求与充电机输出
*/

View File

@@ -748,6 +748,57 @@ public class DefaultPileProtocolService implements PileProtocolService {
callback.onSuccess();
}
@Override
public void offlineCardClearRequest(OfflineCardClearRequest request) {
UUID messageId = UUID.randomUUID();
UUID requestId = UUID.randomUUID();
DownlinkRequestMessage.Builder downlinkRequestMessageBuilder = DownlinkRequestMessage.newBuilder()
.setMessageIdMSB(messageId.getMostSignificantBits())
.setMessageIdLSB(messageId.getLeastSignificantBits())
.setPileCode(request.getPileCode())
.setRequestIdMSB(requestId.getMostSignificantBits())
.setRequestIdLSB(requestId.getLeastSignificantBits())
.setDownlinkCmd(DownlinkCmdEnum.OFFLINE_CARD_CLEAR_REQUEST.name())
.setOfflineCardClearRequest(request);
downlinkCallService.sendDownlinkMessage(downlinkRequestMessageBuilder,request.getPileCode());
}
@Override
public void onOfflineCardClearResponse(UplinkQueueMessage uplinkQueueMessage, Callback callback) {
log.info("接收到充电桩离线卡数据清除应答 {}", uplinkQueueMessage);
// TODO 处理相关业务逻辑
callback.onSuccess();
}
@Override
public void offlineCardQueryRequest(OfflineCardQueryRequest request) {
UUID messageId = UUID.randomUUID();
UUID requestId = UUID.randomUUID();
DownlinkRequestMessage.Builder downlinkRequestMessageBuilder = DownlinkRequestMessage.newBuilder()
.setMessageIdMSB(messageId.getMostSignificantBits())
.setMessageIdLSB(messageId.getLeastSignificantBits())
.setPileCode(request.getPileCode())
.setRequestIdMSB(requestId.getMostSignificantBits())
.setRequestIdLSB(requestId.getLeastSignificantBits())
.setDownlinkCmd(DownlinkCmdEnum.OFFLINE_CARD_QUERY_REQUEST.name())
.setOfflineCardQueryRequest(request);
downlinkCallService.sendDownlinkMessage(downlinkRequestMessageBuilder,request.getPileCode());
}
@Override
public void onOfflineCardQueryResponse(UplinkQueueMessage uplinkQueueMessage, Callback callback) {
log.info("接收到充电桩离线卡数据查询应答 {}", uplinkQueueMessage);
// TODO 处理相关业务逻辑
callback.onSuccess();
}
private static Period createPeriod(int sn, LocalTime beginTime, LocalTime endTime, PricingModelFlag flag) {
Period period = new Period();
period.setSn(sn);

View File

@@ -245,6 +245,14 @@ public class ProtocolUplinkConsumerService extends AbstractConsumerService {
pileProtocolService.onTimeSyncResponse(uplinkQueueMsg, callback);
}else if (uplinkQueueMsg.hasOfflineCardClearResponse()) {
pileProtocolService.onOfflineCardClearResponse(uplinkQueueMsg, callback);
}else if (uplinkQueueMsg.hasOfflineCardQueryResponse()) {
pileProtocolService.onOfflineCardQueryResponse(uplinkQueueMsg, callback);
} else if (uplinkQueueMsg.hasBmsDemandChargerOutputProto()) {
pileProtocolService.postBmsDemandChargerOutput(uplinkQueueMsg, callback);