Quellcode durchsuchen

fix(charging): 修复充电接口状态更新逻辑及优化设备认证调用

- 修改设备认证调用参数,使用startChargeSeq代替原有参数
- 优化updateConnectorStatus方法,支持单个连接器状态推送格式的处理
- 更新充电接口状态时增加修改时间字段updateTime的设置
- 为接口添加异常抛出声明,提升调用稳定性
- 在QueryStationStatusVO中新增单个连接器状态字段,完善状态数据结构
SheepHy vor 3 Tagen
Ursprung
Commit
d84a81384f

+ 1 - 1
src/main/java/com/zsElectric/boot/business/service/impl/ChargeOrderInfoServiceImpl.java

@@ -178,7 +178,7 @@ public class ChargeOrderInfoServiceImpl extends ServiceImpl<ChargeOrderInfoMappe
             String startChargeSeq = ConnectivityConstants.OPERATOR_ID + chargeOrderNo;
 
             //请求设备认证
-            EquipmentAuthResponseVO equipmentAuthResponseVO = chargingBusinessService.queryEquipAuth(formData.getEquipAuthSeq(),
+            EquipmentAuthResponseVO equipmentAuthResponseVO = chargingBusinessService.queryEquipAuth(startChargeSeq,
                     formData.getConnectorId());
 
             if (!Objects.equals(equipmentAuthResponseVO.getSuccStat(), SystemConstants.STATUS_ONE)) {

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

@@ -166,7 +166,7 @@ public class LinkDataController {
     @PostMapping("/notification_charge_order_info")
     @Log(value = "推送充电订单信息", module = LogModuleEnum.PARKING, params = true, result = true)
     @ApiRateLimit(prefix = "third_party:charge_order", limitType = ApiRateLimit.LimitType.IP, count = 200, time = 60, message = "订单信息推送过于频繁,请稍后再试")
-    public ResponseParmsEntity chargeOrderResponse(@RequestBody RequestParmsEntity requestDTO){
+    public ResponseParmsEntity chargeOrderResponse(@RequestBody RequestParmsEntity requestDTO) throws Exception {
         return chargingReceptionService.chargeOrderResponse(requestDTO);
     }
 

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

@@ -371,7 +371,24 @@ public class ChargingReceptionServiceImpl implements ChargingReceptionService {
      * 更新充电接口状态
      */
     private void updateConnectorStatus(QueryStationStatusVO stationStatusVO) {
-        if (stationStatusVO == null || CollectionUtils.isEmpty(stationStatusVO.getStationStatusInfos())) {
+        if (stationStatusVO == null) {
+            return;
+        }
+        
+        // 处理单个连接器状态推送格式:{"ConnectorStatusInfo":{"ConnectorID":"xxx","Status":2}}
+        ConnectorStatusInfo singleConnector = stationStatusVO.getConnectorStatusInfo();
+        if (singleConnector != null && singleConnector.getConnectorID() != null) {
+            connectorInfoMapper.update(null, Wrappers.<ThirdPartyConnectorInfo>lambdaUpdate()
+                    .eq(ThirdPartyConnectorInfo::getConnectorId, singleConnector.getConnectorID())
+                    .set(ThirdPartyConnectorInfo::getStatus, singleConnector.getStatus())
+                    .set(ThirdPartyConnectorInfo::getUpdateTime, LocalDateTime.now()));
+            log.info("更新充电接口状态(单个) - connectorId: {}, status: {}",
+                    singleConnector.getConnectorID(), singleConnector.getStatus());
+            return;
+        }
+        
+        // 处理批量连接器状态推送格式
+        if (CollectionUtils.isEmpty(stationStatusVO.getStationStatusInfos())) {
             return;
         }
         for (StationStatusInfo stationStatusInfo : stationStatusVO.getStationStatusInfos()) {
@@ -382,7 +399,8 @@ public class ChargingReceptionServiceImpl implements ChargingReceptionService {
             for (ConnectorStatusInfo connectorStatus : connectorStatusInfos) {
                 connectorInfoMapper.update(null, Wrappers.<ThirdPartyConnectorInfo>lambdaUpdate()
                         .eq(ThirdPartyConnectorInfo::getConnectorId, connectorStatus.getConnectorID())
-                        .set(ThirdPartyConnectorInfo::getStatus, connectorStatus.getStatus()));
+                        .set(ThirdPartyConnectorInfo::getStatus, connectorStatus.getStatus())
+                        .set(ThirdPartyConnectorInfo::getUpdateTime, LocalDateTime.now()));
                 log.debug("更新充电接口状态 - connectorId: {}, status: {}",
                         connectorStatus.getConnectorID(), connectorStatus.getStatus());
             }

+ 7 - 0
src/main/java/com/zsElectric/boot/charging/vo/QueryStationStatusVO.java

@@ -2,6 +2,7 @@ package com.zsElectric.boot.charging.vo;
 
 import com.fasterxml.jackson.annotation.JsonAutoDetect;
 import com.fasterxml.jackson.annotation.JsonProperty;
+import com.zsElectric.boot.charging.entity.ConnectorStatusInfo;
 import com.zsElectric.boot.charging.entity.StationStatusInfo;
 import lombok.Data;
 
@@ -21,4 +22,10 @@ public class QueryStationStatusVO implements Serializable {
 
     @JsonProperty("Total")
     private Integer Total;
+
+    /**
+     * 支持单个连接器状态推送格式:{"ConnectorStatusInfo":{"ConnectorID":"xxx","Status":2}}
+     */
+    @JsonProperty("ConnectorStatusInfo")
+    private ConnectorStatusInfo ConnectorStatusInfo;
 }