From aa4b21bea0e3278872801183a434527ebd25c09c Mon Sep 17 00:00:00 2001
From: puzhibing <393733352@qq.com>
Date: 星期三, 09 九月 2026 16:27:30 +0800
Subject: [PATCH] 补充VIN码充电和刷卡充电的状态流转补充

---
 ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/controller/TChargingOrderController.java |   13 +++++--------
 1 files changed, 5 insertions(+), 8 deletions(-)

diff --git a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/controller/TChargingOrderController.java b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/controller/TChargingOrderController.java
index 9d201e7..0ec1b7d 100644
--- a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/controller/TChargingOrderController.java
+++ b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/controller/TChargingOrderController.java
@@ -2367,22 +2367,19 @@
     @PostMapping("/updateHandshakeVin")
     public R<Boolean> updateHandshakeVin(@RequestParam("orderCode") String orderCode,
                                          @RequestParam("vin") String vin) {
-        if (StringUtils.isEmpty(orderCode) || StringUtils.isEmpty(vin)) {
+        if (StringUtils.isEmpty(orderCode)) {
             return R.ok(false);
         }
         boolean updated;
         if (orderCode.startsWith("CD")) {
-            updated = chargingOrderService.update(Wrappers.<TChargingOrder>lambdaUpdate()
+            updated = StringUtils.isNotEmpty(vin) && chargingOrderService.update(Wrappers.<TChargingOrder>lambdaUpdate()
                     .eq(TChargingOrder::getCode, orderCode)
                     .set(TChargingOrder::getActualVin, vin));
         } else if (orderCode.startsWith("SD")) {
-            updated = cardChargingOrderService.update(Wrappers.<TCardChargingOrder>lambdaUpdate()
-                    .eq(TCardChargingOrder::getCode, orderCode)
-                    .set(TCardChargingOrder::getActualVin, vin));
+            // SD/VD:VIN 为空也进入握手处理(状态推进必达);服务内部仅非空回写 VIN,且仅状态=启动中(2)才推进
+            updated = cardChargingOrderService.handleHandshakeVin(orderCode, vin);
         } else if (orderCode.startsWith("VD")) {
-            updated = vinChargingOrderService.update(Wrappers.<TVinChargingOrder>lambdaUpdate()
-                    .eq(TVinChargingOrder::getCode, orderCode)
-                    .set(TVinChargingOrder::getActualVin, vin));
+            updated = vinChargingOrderService.handleHandshakeVin(orderCode, vin);
         } else {
             log.warn("握手VIN回写失败,未知订单类型:{}", orderCode);
             return R.ok(false);

--
Gitblit v1.7.1