From 6f46dfff4ae73f7c4887dea3c9a6b3faad485040 Mon Sep 17 00:00:00 2001 From: Guoqs <123@jsowell.com> Date: Thu, 19 Sep 2024 14:58:48 +0800 Subject: [PATCH] =?UTF-8?q?update=20=E7=94=B5=E5=8D=95=E8=BD=A6=E5=8D=8F?= =?UTF-8?q?=E8=AE=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ebike/EBikeChargeCommandResponse.java | 52 +++++++++++++++++++ .../ChargingOperationResponse.java | 2 +- .../pile/service/PileRemoteService.java | 15 ++++++ 3 files changed, 68 insertions(+), 1 deletion(-) create mode 100644 jsowell-common/src/main/java/com/jsowell/common/enums/ebike/EBikeChargeCommandResponse.java diff --git a/jsowell-common/src/main/java/com/jsowell/common/enums/ebike/EBikeChargeCommandResponse.java b/jsowell-common/src/main/java/com/jsowell/common/enums/ebike/EBikeChargeCommandResponse.java new file mode 100644 index 000000000..f4ec52214 --- /dev/null +++ b/jsowell-common/src/main/java/com/jsowell/common/enums/ebike/EBikeChargeCommandResponse.java @@ -0,0 +1,52 @@ +package com.jsowell.common.enums.ebike; + +public enum EBikeChargeCommandResponse { + SUCCESS(0, "执行成功(启动或停止充电)"), + + NO_CHARGER_PLUGGED(1, "端口未插充电器(不执行)"), + + SAME_PORT_STATE(2, "端口状态和充电命令相同(不执行)"), + + PORT_FAULT(3, "端口故障(执行)"), + + INVALID_PORT_NUMBER(4, "无此端口号(不执行)"), + + // 响应FF充电命令,不执行,只针对双路,双路设备的二维码只有一个,且端口号为FF,当2个口都插了充电器,服务器下发充电端口为FF时,设备检测到有2个口待充电,不知道充哪个,就会返回此应答 + MULTIPLE_PENDING_PORTS(5, "有多个待充端口"), + + POWER_EXCEEDED(6, "多路设备功率超标(不执行)"); + + private final int code; + private final String description; + + EBikeChargeCommandResponse(int code, String description) { + this.code = code; + this.description = description; + } + + public int getCode() { + return code; + } + + public String getDescription() { + return description; + } + + public static EBikeChargeCommandResponse fromCode(int code) { + for (EBikeChargeCommandResponse response : values()) { + if (response.getCode() == code) { + return response; + } + } + throw new IllegalArgumentException("Invalid code: " + code); + } + + public static String getDescriptionByCode(int code) { + try { + EBikeChargeCommandResponse response = fromCode(code); + return response.getDescription(); + } catch (IllegalArgumentException e) { + return "未知应答码: " + code; + } + } +} \ No newline at end of file diff --git a/jsowell-pile/src/main/java/com/jsowell/pile/domain/ebike/deviceupload/ChargingOperationResponse.java b/jsowell-pile/src/main/java/com/jsowell/pile/domain/ebike/deviceupload/ChargingOperationResponse.java index bb7abe330..d1d90d2f5 100644 --- a/jsowell-pile/src/main/java/com/jsowell/pile/domain/ebike/deviceupload/ChargingOperationResponse.java +++ b/jsowell-pile/src/main/java/com/jsowell/pile/domain/ebike/deviceupload/ChargingOperationResponse.java @@ -64,7 +64,7 @@ public class ChargingOperationResponse extends AbsEBikeMessage2 { public static void main(String[] args) { - String s = "444e591d00198bca07da0c8200132738810124091416463569289954500000007907"; + String s = "444e591d00198bca07f106820013273881052409191439471814850828040000ad06"; byte[] messageBytes = BytesUtil.hexStringToByteArray(s); ChargingOperationResponse response = new ChargingOperationResponse(messageBytes); System.out.println(response); diff --git a/jsowell-pile/src/main/java/com/jsowell/pile/service/PileRemoteService.java b/jsowell-pile/src/main/java/com/jsowell/pile/service/PileRemoteService.java index ce8213dad..5b62106ba 100644 --- a/jsowell-pile/src/main/java/com/jsowell/pile/service/PileRemoteService.java +++ b/jsowell-pile/src/main/java/com/jsowell/pile/service/PileRemoteService.java @@ -5,6 +5,7 @@ import com.google.common.collect.Lists; import com.jsowell.common.constant.CacheConstants; import com.jsowell.common.core.domain.ykc.YKCDataProtocol; import com.jsowell.common.core.redis.RedisCache; +import com.jsowell.common.enums.ebike.EBikeChargeCommandResponse; import com.jsowell.common.enums.ykc.ChargingFailedReasonEnum; import com.jsowell.common.enums.ykc.ReturnCodeEnum; import com.jsowell.common.exception.BusinessException; @@ -55,6 +56,9 @@ public class PileRemoteService { @Autowired private EBikeSendCommandService eBikeSendCommandService; + @Autowired + private OrderBasicInfoService orderBasicInfoService; + @Value("${remoteUpdate.server}") private String serverAddress; @@ -131,6 +135,17 @@ public class PileRemoteService { try { ChargingOperationResponse startChargingResponse = eBikeSendCommandService.sendStartChargingCommand(startChargingCommand); log.info("StartChargingResponse:{}", JSON.toJSONString(startChargingResponse)); + if (startChargingResponse != null) { + int result = startChargingResponse.getResult(); + if (result == 0) { + // 启动成功 + orderBasicInfoService.chargingPileStartedSuccessfully(transactionCode); + } else { + String failedReasonMsg = EBikeChargeCommandResponse.getDescriptionByCode(result); + // 启动失败 682204000001000000000041 + orderBasicInfoService.chargingPileFailedToStart(transactionCode, failedReasonMsg); + } + } } catch (Exception e) { log.error("电单车远程启动充电error", e); }