From 66a18938bf8935f331feb4c5d44fdc195ea5750c Mon Sep 17 00:00:00 2001
From: puzhibing <393733352@qq.com>
Date: 星期三, 14 十月 2026 13:30:21 +0800
Subject: [PATCH] 修改bug

---
 ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TChargingOrderServiceImpl.java |   21 +--------------------
 sql/20261013_card_full_card_no.sql                                                                  |   19 +++++++++++++++++++
 2 files changed, 20 insertions(+), 20 deletions(-)

diff --git a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TChargingOrderServiceImpl.java b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TChargingOrderServiceImpl.java
index 113b491..c880f0d 100644
--- a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TChargingOrderServiceImpl.java
+++ b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TChargingOrderServiceImpl.java
@@ -2086,14 +2086,6 @@
         return StringUtils.hasLength(vin) ? vin.replaceAll("\\s+", "").toUpperCase(Locale.ROOT) : null;
     }
 
-    private boolean vinMatches(String expectedVin, String actualVin) {
-        if (!StringUtils.hasLength(expectedVin) || !StringUtils.hasLength(actualVin)) {
-            return false;
-        }
-        return expectedVin.equals(actualVin)
-                || expectedVin.equals(new StringBuilder(actualVin).reverse().toString());
-    }
-
     @Scheduled(fixedDelay = 5000L)
     public void startDueReservationOrders() {
         LocalDateTime now = LocalDateTime.now();
@@ -2135,17 +2127,6 @@
             TChargingGun gun = chargingGunClient.getChargingGunById(latest.getChargingGunId()).getData();
             TChargingPile pile = chargingPileClient.getChargingPileById(gun.getChargingPileId()).getData();
             String actualVin = normalizeVin(check.getActualVin());
-            String expectedVin = normalizeVin(latest.getExpectedVin());
-            if (Integer.valueOf(1).equals(pile.getVinFlag())
-                    && !vinMatches(expectedVin, actualVin)) {
-                check.setStartupSuccess(3);
-                check.setFailureCause(9);
-                latest.setActualVin(actualVin);
-                this.updateById(latest);
-                redisService.setCacheObject("AQJC_" + latest.getChargingGunId(), check, 24L, TimeUnit.HOURS);
-                refund(latest.getCode());
-                return;
-            }
             PlatformStartCharging command = new PlatformStartCharging();
             command.setTransaction_serial_number(latest.getCode());
             command.setCharging_pile_code(pile.getCode());
@@ -2156,7 +2137,7 @@
             latest.setActualVin(actualVin);
             this.updateById(latest);
             redisService.setCacheObject("AQJC_" + latest.getChargingGunId(), check, 24L, TimeUnit.HOURS);
-            log.info(latest.getCode() + ":安全检测及VIN校验通过,下发启动充电命令:" + command);
+            log.info(latest.getCode() + ":安全检测通过,下发启动充电命令:" + command);
             sendMessageClient.platformStartCharging(command);
             ScheduledExecutorService resultScheduler = Executors.newScheduledThreadPool(1);
             resultScheduler.scheduleAtFixedRate(() -> {
diff --git a/sql/20261013_card_full_card_no.sql b/sql/20261013_card_full_card_no.sql
new file mode 100644
index 0000000..787b29a
--- /dev/null
+++ b/sql/20261013_card_full_card_no.sql
@@ -0,0 +1,19 @@
+-- 卡片管理:t_charging_card 新增「完整卡号」字段 full_card_no。
+-- 用途:完整卡号固定 16 位,不足 16 位在前面补 0;仅用于充电桩发起充电时查询卡片,
+--       不在 web 前端展示(实体侧 @JsonIgnore 不对外返回)。
+-- 执行环境:Mycat 2.0(MySQL 5.7.33 兼容),逻辑库 charging_pile_account。
+-- 注意:脚本不含 SET @变量 / PREPARE(Mycat 不支持);ALTER 为 DDL 不可回滚,执行前建议备份。
+
+USE charging_pile_account;
+
+-- 1. 新增完整卡号列(固定 16 位;仅充电查询,不对前端返回)
+ALTER TABLE `t_charging_card`
+  ADD COLUMN `full_card_no` varchar(16) NOT NULL DEFAULT '' COMMENT '完整卡号(固定16位,不足前补0,仅充电桩刷卡查询)' AFTER `card_no`;
+
+-- 2. 历史数据回填:不足 16 位左补 0(card_no 已满 16 位保持不变;LPAD 幂等,可重复执行)
+UPDATE `t_charging_card`
+  SET `full_card_no` = LPAD(`card_no`, 16, '0');
+
+-- 3. 唯一索引:保证充电查询唯一且高效
+ALTER TABLE `t_charging_card`
+  ADD UNIQUE KEY `uk_full_card_no` (`full_card_no`);

--
Gitblit v1.7.1