Explorar el Código

fix 订单结束未扣费情况,因为订单最后一次推送充电状态为订单结束,订单结束推送在此推送之后,为避免重复扣费,自动过滤掉已结束的订单。

skyline hace 2 años
padre
commit
e41f483997

+ 1 - 1
service/src/main/java/com/kym/service/enplus/impl/EnNotifyServiceImpl.java

@@ -227,7 +227,7 @@ public class EnNotifyServiceImpl implements EnNotifyService {
         var startChargeSeq = data.getString("StartChargeSeq");
         var chargeOrder = chargeOrderService.getChargingOrderByStartChargeSeq(startChargeSeq);
         // EN+平台推送重试策略是当天失败第二天再推送一次,仅此一次。EN+订单页面可以多次手动推送,所以这里要先判断订单状态,避免重复处理。
-        if (chargeOrder.getChargeStatus() != ChargeOrder.CHARGE_STATUS_已结束) {
+        if (chargeOrder.getChargeStatus() != ChargeOrder.CHARGE_STATUS_已结束 && chargeOrder.getOrderStatus() != ChargeOrder.ORDER_STATUS_成功) {
             // 更新订单信息
             chargeOrder.setEndTime(LocalDateTime.parse(data.getString("EndTime"), DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")));
             chargeOrder.setTotalPower(data.getDoubleValue("TotalPower"));

+ 1 - 1
service/src/main/java/com/kym/service/miniapp/impl/ChargeServiceImpl.java

@@ -94,7 +94,7 @@ public class ChargeServiceImpl implements ChargeService {
                 order.setStationId(stationId);
                 order.setStartChargeSeq(startChargeSeq);
                 order.setConnectorId(connectorId);
-                order.setOrderStatus(ChargeOrder.ORDER_STATUS_成功);
+                order.setOrderStatus(ChargeOrder.ORDER_STATUS_未知);
                 order.setChargeStatus(startCharge.getIntValue("StartChargeSeqStat"));
                 chargeOrderService.save(order);
                 return Map.of("startChargeSeq", startChargeSeq);