✨ 新增异常关联维修记录:维修记录加 exception_id,异常详情内联记录并新增录入接口

This commit is contained in:
2026-10-29 08:58:17 +08:00
parent c677caf817
commit 6880de54ff
12 changed files with 319 additions and 35 deletions
@@ -7,6 +7,7 @@ CREATE TABLE `blade_vehicle_maintenance_record` (
`tenant_id` varchar(12) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '000000' COMMENT '租户ID',
`vehicle_type` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '车船类型',
`vehicle_no` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '车牌号/船号',
`exception_id` bigint NULL DEFAULT NULL COMMENT '关联异常处置ID(小程序录入时写入)',
`maintainer` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '维修人',
`maintenance_time` datetime NOT NULL COMMENT '维修时间',
`location` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '维修位置',
@@ -29,5 +30,6 @@ CREATE TABLE `blade_vehicle_maintenance_record` (
`is_deleted` int NULL DEFAULT 0 COMMENT '是否已删除',
PRIMARY KEY (`id`) USING BTREE,
INDEX `idx_vehicle_maintenance_record_no`(`vehicle_no`) USING BTREE,
INDEX `idx_vehicle_maintenance_record_time`(`maintenance_time`) USING BTREE
INDEX `idx_vehicle_maintenance_record_time`(`maintenance_time`) USING BTREE,
UNIQUE INDEX `uk_vehicle_maintenance_record_exception`(`exception_id`) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '车辆维修记录';
@@ -0,0 +1,35 @@
-- 维修记录关联异常处置
-- 日期:2026-10-29
-- 小程序调度端在「车辆故障维修」类异常下录入维修记录,记录通过 exception_id 关联该条异常。
-- 一条异常至多一条维修记录,故建唯一索引;唯一索引允许多个 NULL,PC 手工录入/导入的记录不受影响。
DELIMITER $$
DROP PROCEDURE IF EXISTS `upgrade_blade_vehicle_maintenance_record_exception_20261029`$$
CREATE PROCEDURE `upgrade_blade_vehicle_maintenance_record_exception_20261029`()
BEGIN
DECLARE db_name varchar(128);
SET db_name = DATABASE();
IF NOT EXISTS (SELECT 1 FROM information_schema.columns
WHERE table_schema = db_name
AND table_name = 'blade_vehicle_maintenance_record'
AND column_name = 'exception_id') THEN
ALTER TABLE `blade_vehicle_maintenance_record`
ADD COLUMN `exception_id` bigint NULL DEFAULT NULL COMMENT '关联异常处置ID(小程序录入时写入)'
AFTER `vehicle_no`;
END IF;
IF NOT EXISTS (SELECT 1 FROM information_schema.statistics
WHERE table_schema = db_name
AND table_name = 'blade_vehicle_maintenance_record'
AND index_name = 'uk_vehicle_maintenance_record_exception') THEN
ALTER TABLE `blade_vehicle_maintenance_record`
ADD UNIQUE INDEX `uk_vehicle_maintenance_record_exception`(`exception_id`) USING BTREE;
END IF;
END$$
CALL `upgrade_blade_vehicle_maintenance_record_exception_20261029`()$$
DROP PROCEDURE `upgrade_blade_vehicle_maintenance_record_exception_20261029`$$
DELIMITER ;
+3 -1
View File
@@ -5620,6 +5620,7 @@ CREATE TABLE `blade_vehicle_maintenance_record` (
`tenant_id` varchar(12) DEFAULT '000000' COMMENT '租户ID',
`vehicle_type` varchar(20) NOT NULL COMMENT '车船类型',
`vehicle_no` varchar(30) NOT NULL COMMENT '车牌号/船号',
`exception_id` bigint(20) DEFAULT NULL COMMENT '关联异常处置ID(小程序录入时写入)',
`maintainer` varchar(20) DEFAULT NULL COMMENT '维修人',
`maintenance_time` datetime NOT NULL COMMENT '维修时间',
`location` varchar(100) DEFAULT NULL COMMENT '维修位置',
@@ -5642,7 +5643,8 @@ CREATE TABLE `blade_vehicle_maintenance_record` (
`is_deleted` int(11) DEFAULT '0' COMMENT '是否已删除',
PRIMARY KEY (`id`) USING BTREE,
KEY `idx_vehicle_maintenance_record_no` (`vehicle_no`) USING BTREE,
KEY `idx_vehicle_maintenance_record_time` (`maintenance_time`) USING BTREE
KEY `idx_vehicle_maintenance_record_time` (`maintenance_time`) USING BTREE,
UNIQUE KEY `uk_vehicle_maintenance_record_exception` (`exception_id`) USING BTREE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='车辆维修记录';
-- ----------------------------