Преглед изворни кода

feat(charging): 增加兼容处理存储ChargeDetails字段

- 在ChargingReceptionServiceImpl中添加对ChargeDetails字段的兼容处理
- 将ChargeDetails字段作为JSON字符串存储到chargeStatus实体中
- 为ThirdPartyChargeStatus实体新增chargeDetails字段并配置JSON类型处理器
- 确保chargeDetails字段可选且第三方数据兼容存储
SheepHy пре 1 дан
родитељ
комит
cbef3a1a0d

+ 4 - 0
src/main/java/com/zsElectric/boot/charging/entity/ThirdPartyChargeStatus.java

@@ -96,6 +96,10 @@ public class ThirdPartyChargeStatus {
     @TableField("current_c")
     private BigDecimal currentC;
 
+    @Schema(description = "时段明细JSON(兼容字段,第三方可能提供)")
+    @TableField(value = "charge_details", typeHandler = com.baomidou.mybatisplus.extension.handlers.JacksonTypeHandler.class)
+    private String chargeDetails;
+
     @Schema(description = "创建时间")
     @TableField("create_time")
     private LocalDateTime createTime;

+ 5 - 0
src/main/java/com/zsElectric/boot/charging/service/impl/ChargingReceptionServiceImpl.java

@@ -282,6 +282,11 @@ public class ChargingReceptionServiceImpl implements ChargingReceptionService {
             chargeStatus.setCurrentB(getDecimalValue(jsonNode, "CurrentB"));
             chargeStatus.setCurrentC(getDecimalValue(jsonNode, "CurrentC"));
 
+            // 兼容处理:如果有ChargeDetails字段,则存储为JSON字符串
+            if (jsonNode.has("ChargeDetails") && !jsonNode.get("ChargeDetails").isNull()) {
+                chargeStatus.setChargeDetails(jsonNode.get("ChargeDetails").toString());
+            }
+
             if (existing != null) {
                 chargeStatus.setUpdateTime(LocalDateTime.now());
                 chargeStatusMapper.updateById(chargeStatus);