ruoyi-api/ruoyi-api-account/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports
@@ -7,4 +7,5 @@ com.ruoyi.account.api.factory.InviteUserFallbackFactory com.ruoyi.account.api.factory.AppUserTagFallbackFactory com.ruoyi.account.api.factory.JianGuanAccountFallbackFactory com.ruoyi.account.api.factory.VinManagementFallbackFactory com.ruoyi.account.api.factory.VinManagementFallbackFactory com.ruoyi.account.api.factory.ChargingCardFallbackFactory ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TCardChargingOrderServiceImpl.java
@@ -611,14 +611,12 @@ } TCardAccountingStrategyOrder strategyOrder = new TCardAccountingStrategyOrder(); BeanUtils.copyProperties(strategy, strategyOrder); strategyOrder.setId(null); strategyOrder.setChargingOrderId(orderId); cardAccountingStrategyOrderService.save(strategyOrder); List<TCardAccountingStrategyDetailOrder> detailOrders = new ArrayList<>(); for (TAccountingStrategyDetail detail : details) { TCardAccountingStrategyDetailOrder detailOrder = new TCardAccountingStrategyDetailOrder(); BeanUtils.copyProperties(detail, detailOrder); detailOrder.setId(null); detailOrder.setChargingOrderId(orderId); detailOrders.add(detailOrder); } ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TVinChargingOrderServiceImpl.java
@@ -654,14 +654,12 @@ } TVinAccountingStrategyOrder strategyOrder = new TVinAccountingStrategyOrder(); BeanUtils.copyProperties(strategy, strategyOrder); strategyOrder.setId(null); strategyOrder.setChargingOrderId(orderId); vinAccountingStrategyOrderService.save(strategyOrder); List<TVinAccountingStrategyDetailOrder> detailOrders = new ArrayList<>(); for (TAccountingStrategyDetail detail : details) { TVinAccountingStrategyDetailOrder detailOrder = new TVinAccountingStrategyDetailOrder(); BeanUtils.copyProperties(detail, detailOrder); detailOrder.setId(null); detailOrder.setChargingOrderId(orderId); detailOrders.add(detailOrder); } sql/20260909_card_password_charge_lock_mycat.sql
New file @@ -0,0 +1,14 @@ -- 刷卡充电 V0.2 定稿 DDL(Mycat 8066 直接执行版,等价于 20260909_card_password_charge_lock.sql 直接小节) -- 目标库:charging_pile_account。适用:Mycat 不支持 PREPARE 动态 SQL 时使用。 -- 注意:非幂等,列已存在时执行会报 Duplicate column,忽略即可(以 information_schema 回查为准)。 ALTER TABLE `charging_pile_account`.`t_charging_card` ADD COLUMN `password` varchar(100) DEFAULT NULL COMMENT '卡密码(BCrypt密文,空=未配置不校验)' AFTER `card_no`; ALTER TABLE `charging_pile_account`.`t_charging_card` ADD COLUMN `charging_flag` tinyint NOT NULL DEFAULT 0 COMMENT '充电锁定:0未充电,1充电中锁定' AFTER `status`; ALTER TABLE `charging_pile_account`.`t_charging_card` ADD COLUMN `charging_order_code` varchar(64) DEFAULT NULL COMMENT '充电锁定订单号' AFTER `charging_flag`; ALTER TABLE `charging_pile_account`.`t_charging_card_balance_record` ADD COLUMN `charging_order_code` varchar(64) DEFAULT NULL COMMENT '关联订单号(刷卡充电订单结算扣款,幂等键)' AFTER `remark`; ALTER TABLE `charging_pile_account`.`t_charging_card_balance_record` ADD UNIQUE KEY `uk_order_code` (`charging_order_code`); sql/20260909_charging_card_record_id_autoincrement.sql
New file @@ -0,0 +1,13 @@ -- 2026-09-09 修复:t_charging_card / t_charging_card_balance_record 主键丢失 AUTO_INCREMENT -- 背景:两表物理结构 id 为 bigint NOT NULL(无自增),而代码按 IdType.AUTO / insert 不带 id 设计, -- 导致人工调账流水(insertBalanceRecord)、订单结算扣款流水(insertOrderDeductRecord)、 -- 卡片新增/导入(MP save) 全部报 "Field 'id' doesn't have a default value"。 -- 已在 dev 环境执行(192.168.110.74:3306 物理库;192.168.110.111:8066 Mycat 代理已同步执行)。 -- 正式/测试环境部署前需 DBA 在对应物理库执行以下语句。 -- 幂等:已自增时重复执行无害。 ALTER TABLE `charging_pile_account`.`t_charging_card_balance_record` MODIFY COLUMN `id` bigint NOT NULL AUTO_INCREMENT COMMENT '主键ID'; ALTER TABLE `charging_pile_account`.`t_charging_card` MODIFY COLUMN `id` bigint NOT NULL AUTO_INCREMENT COMMENT '主键ID';