Browse Source

refactor(charging): 优化充电状态查询接口及响应数据结构

- 修改queryChargingStatus方法返回具体响应VO类型ChargingStatusQueryResponseVO
- 实现查询结果直接反序列化为ChargingStatusQueryResponseVO对象
- 在ChargingStatusQueryResponseVO中新增电流、电压、SOC及充电时间等详细字段
- 调整ChargingStatusResponseVO字段,更专注于成功状态和失败原因
- 更新测试数据中的加密字符串,保持一致性与安全性
SheepHy 3 days ago
parent
commit
3d54c27eda

+ 1 - 1
src/main/java/com/zsElectric/boot/charging/controller/ChargingBusinessController.java

@@ -109,7 +109,7 @@ public class ChargingBusinessController {
     @Operation(summary = "查询充电状态")
     @PostMapping("/queryChargingStatus")
     @Log(value = "查询充电状态", module = LogModuleEnum.PARKING_CALL, params = true, result = true)
-    public Result<Object> queryChargingStatus(@RequestParam("StartChargeSeq") @Schema(description = "充电订单号(格式:运营商ID+唯一编号)") String StartChargeSeq) throws JsonProcessingException {
+    public Result<ChargingStatusQueryResponseVO> queryChargingStatus(@RequestParam("StartChargeSeq") @Schema(description = "充电订单号(格式:运营商ID+唯一编号)") String StartChargeSeq) throws JsonProcessingException {
         return Result.success(chargingBusinessService.queryChargingStatus(StartChargeSeq));
     }
 

+ 1 - 1
src/main/java/com/zsElectric/boot/charging/service/ChargingBusinessService.java

@@ -63,7 +63,7 @@ public interface ChargingBusinessService {
      * <p>查询充电状态</p>
      * @author SheepHy
      */
-    Object queryChargingStatus(String StartChargeSeq) throws JsonProcessingException;
+    ChargingStatusQueryResponseVO queryChargingStatus(String StartChargeSeq) throws JsonProcessingException;
 
     /**
      * <p>请求停止充电</p>

+ 2 - 2
src/main/java/com/zsElectric/boot/charging/service/impl/ChargingBusinessServiceImpl.java

@@ -162,7 +162,7 @@ public class ChargingBusinessServiceImpl implements ChargingBusinessService {
     }
 
     @Override
-    public Object queryChargingStatus(String StartChargeSeq) throws JsonProcessingException {
+    public ChargingStatusQueryResponseVO queryChargingStatus(String StartChargeSeq) throws JsonProcessingException {
         Map<String, Object> queryParms = new HashMap<>();
         queryParms.put("StartChargeSeq", StartChargeSeq);
         log.info("查询充电订单状态请求参数:{}", queryParms);
@@ -170,7 +170,7 @@ public class ChargingBusinessServiceImpl implements ChargingBusinessService {
         log.info("查询充电订单状态返回结果:{}", jsonObject);
         JsonNode responseDecode = chargingUtil.responseDecode(jsonObject);
         log.info("查询充电订单状态返回结果解密后:{}", responseDecode);
-        return objectMapper.readValue(responseDecode.toString(), Object.class);
+        return objectMapper.readValue(responseDecode.toString(), ChargingStatusQueryResponseVO.class);
     }
 
     @Override

+ 45 - 0
src/main/java/com/zsElectric/boot/charging/vo/ChargingStatusQueryResponseVO.java

@@ -65,6 +65,51 @@ public class ChargingStatusQueryResponseVO {
     @JsonProperty("TotalMoney")
     private BigDecimal TotalMoney;
 
+    @Schema(description = "A相电流,单位:A",
+            example = "0.0")
+    @JsonProperty("CurrentA")
+    private BigDecimal CurrentA;
+
+    @Schema(description = "B相电流,单位:A",
+            example = "0.0")
+    @JsonProperty("CurrentB")
+    private BigDecimal CurrentB;
+
+    @Schema(description = "C相电流,单位:A",
+            example = "0.0")
+    @JsonProperty("CurrentC")
+    private BigDecimal CurrentC;
+
+    @Schema(description = "A相电压,单位:V",
+            example = "0.0")
+    @JsonProperty("VoltageA")
+    private BigDecimal VoltageA;
+
+    @Schema(description = "B相电压,单位:V",
+            example = "0.0")
+    @JsonProperty("VoltageB")
+    private BigDecimal VoltageB;
+
+    @Schema(description = "C相电压,单位:V",
+            example = "0.0")
+    @JsonProperty("VoltageC")
+    private BigDecimal VoltageC;
+
+    @Schema(description = "电池SOC(剩余电量百分比)",
+            example = "0.0")
+    @JsonProperty("Soc")
+    private BigDecimal Soc;
+
+    @Schema(description = "充电开始时间,格式\"yyyy-MM-dd HH:mm:ss\"",
+            example = "2025-12-05 09:40:07")
+    @JsonProperty("StartTime")
+    private String StartTime;
+
+    @Schema(description = "充电结束时间,格式\"yyyy-MM-dd HH:mm:ss\"",
+            example = "2025-12-05 09:41:52")
+    @JsonProperty("EndTime")
+    private String EndTime;
+
     @Schema(description = "充电明细信息体列表",
             required = true)
     @JsonProperty("ChargeDetails")

+ 9 - 26
src/main/java/com/zsElectric/boot/charging/vo/ChargingStatusResponseVO.java

@@ -13,37 +13,20 @@ import lombok.experimental.Accessors;
 public class ChargingStatusResponseVO {
 
     @Schema(description = "充电订单号(格式:运营商ID+唯一编号)",
-            example = "123456789201805141125123456",
+            example = "MAA9A6L75202508011602021121",
             required = true)
     @JsonProperty("StartChargeSeq")
     private String StartChargeSeq;
 
-    @Schema(description = "充电订单状态(1:启动中;2:充电中;3:停止中;4:已结束;5:未知)",
-            example = "2",
-            allowableValues = {"1", "2", "3", "4", "5"},
+    @Schema(description = "成功状态(0-成功,其他-失败)",
+            example = "0",
             required = true)
-    @JsonProperty("StartChargeSeqStat")
-    private Integer StartChargeSeqStat;
+    @JsonProperty("SuccStat")
+    private Integer SuccStat;
 
-    @Schema(description = "充电设备接口编码",
-            example = "3702120244403_1",
+    @Schema(description = "失败原因(0-无,其他根据具体业务定义)",
+            example = "0",
             required = true)
-    @JsonProperty("ConnectorID")
-    private String ConnectorID;
-
-    @Schema(description = "充电启动时间(格式:yyyy-MM-dd HH:mm:ss)",
-            example = "2018-05-17 09:08:00",
-            required = true)
-    @JsonProperty("StartTime")
-    private String StartTime;
-
-    @Schema(description = "停止充电验证码",
-            example = "886543")
-    @JsonProperty("IdentCode")
-    private String IdentCode;
-
-    @Schema(description = "失败原因描述",
-            example = "设备离线")
-    @JsonProperty("FailReasonMsg")
-    private String FailReasonMsg;
+    @JsonProperty("FailReason")
+    private Integer FailReason;
 }

+ 1 - 1
src/main/java/com/zsElectric/boot/common/util/AESCryptoUtils.java

@@ -165,7 +165,7 @@ public class AESCryptoUtils {
             System.out.println("加密结果: " + encryptedData);
             System.out.println("加密耗时: " + encryptTime + "ms");
 
-            String data = "WiZdxjtssyPEyh8q5v9ZV0OzTHBt9Pjj2v2FI9W7pZZ5Zu+gllFfpUdWi2LuXKgyvPuwbi/Z15QxavUx5kASvXqUjmiip7e7SFgtpM2ZSQ/hDUwOyMEIJJlzydzhx347r5vzy4iLls4z8HGlMUt69kr9M7s0M0VQgZqYoRwKXiYtTJbcG+rWlmd+KeZ8Lm14jBpa6oiZgjjORzx0vttrOFiaAoCyUUvvt59d4YlhL7LC+H4eFMv9cf4JnHF/RJk0f6g8ExJfLz1sPK0G8HZ0zykDc9simTjR9PPHT2OANzoSq2FW3ZCJIxGDfd7vqtEahZLb+RNozVzA2wqrl8+3UmhYRr+g800QjfyqUOmfXTGCTa8gYC4p6LkI39KihBYE";
+            String data = "KYWxoKWK3w8a8867aXCha+tgVE2cbZ4eR1Dc1YExri06DfZWBpUMAzlhY7rWR5SeU+xCVOauk4F7MxCJLN+5aJCBENCOAZtUksMM7VgsOz0=";
             System.out.println("测试的加密数据:"+data);
 
             String key1 = DATA_SECRET;   // 16字节密钥

+ 1 - 1
src/main/java/com/zsElectric/boot/common/util/HmacMD5Util.java

@@ -211,7 +211,7 @@ public class HmacMD5Util {
     public static void main(String[] args) {
         try {
             // 测试数据
-            String data = "MA6DP6BE7WiZdxjtssyPEyh8q5v9ZVz0fCBOQQysXhCO8S0pq/+R7UTnfBQUQKS84LWix46SCMKMAsB26Bg5EI8qyg4tvbw==202512010917490001";
+            String data = "KYWxoKWK3w8a8867aXCha+tgVE2cbZ4eR1Dc1YExri06DfZWBpUMAzlhY7rWR5SeU+xCVOauk4F7MxCJLN+5aJCBENCOAZtUksMM7VgsOz0=";
             String key = "U9xFXjjdYAycq30C";
             
             System.out.println("=== HMAC-MD5签名测试 ===");