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