Files
tms-erp-api/doc/sql/transport/blade_transport_driver.sql
T
weicw-dshsa 87f4c3a830 ✨ 新增认证记录不可变快照数据模型与迁移脚本
按 ADR-0001/0002 建立司机与车辆共用的认证记录表 blade_transport_cert_record
(biz_type 区分、载荷存 JSON、检索字段提升为真实列),并为司机/车辆表补生效快照指针。

不变式结构性保证:
- I1 同对象至多一条待审:生成列 pending_biz_id + 唯一索引,数据库层拦截;
  生成列同时排除 is_deleted,避免逻辑删除的待审记录永久占用唯一键。
- I3 快照不可变:snapshot_json 等 5 列标 FieldStrategy.NEVER,永不进入 UPDATE。
- status 承载审核状态(0审核中/1已通过/2已驳回/3已作废),新增时必须显式设置:
  框架 resolveEntity 会把 null 的 status 静默填成 1(即「已通过」),
  且继承来的 changeStatus 可直接写 status,两条通道均已封堵。

其他:司机表补身份证有效期三列并订正排序规则为 utf8mb4_general_ci
(原先为 0900_ai_ci,与车辆表 JOIN 已发生过 Illegal mix of collations);
生效快照指针加 @JsonProperty(READ_ONLY),防止以 /submit 请求体自行「认证」自己;
同步基线建表脚本与认证审核菜单/权限码。本票不含任何业务接口。
2026-10-02 14:40:56 +08:00

77 lines
5.7 KiB
SQL
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
-- ----------------------------
-- Table structure for blade_transport_driver
-- ----------------------------
DROP TABLE IF EXISTS `blade_transport_driver`;
CREATE TABLE `blade_transport_driver` (
`id` bigint(20) NOT NULL COMMENT '主键',
`tenant_id` varchar(12) DEFAULT '000000' COMMENT '租户ID',
`driver_name` varchar(20) NOT NULL COMMENT '司机姓名',
`id_card_no` varchar(18) NOT NULL COMMENT '身份证号',
`birthday` date DEFAULT NULL COMMENT '出生年月',
`gender` varchar(10) DEFAULT NULL COMMENT '性别',
`nation` varchar(20) DEFAULT NULL COMMENT '民族',
`education` varchar(20) DEFAULT NULL COMMENT '学历',
`address_region` varchar(100) DEFAULT NULL COMMENT '地址区划',
`address` varchar(200) DEFAULT NULL COMMENT '详细地址',
`driving_vehicle` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '驾驶车辆车牌号',
`posts` varchar(100) DEFAULT NULL COMMENT '岗位,多个使用逗号分隔',
`id_card_front` varchar(1000) DEFAULT NULL COMMENT '身份证正面照',
`id_card_back` varchar(1000) DEFAULT NULL COMMENT '身份证反面照',
`id_card_valid_start` date DEFAULT NULL COMMENT '身份证有效期起',
`id_card_valid_end` date DEFAULT NULL COMMENT '身份证有效期止',
`id_card_long_term` int(11) DEFAULT '0' COMMENT '身份证长期有效:0否 1是',
`head_photo` varchar(1000) DEFAULT NULL COMMENT '大头照',
`driving_type` varchar(20) NOT NULL COMMENT '准驾车型',
`driving_license_no` varchar(50) DEFAULT NULL COMMENT '驾驶证档案编号',
`driving_license_start_date` date DEFAULT NULL COMMENT '驾驶证有效期起',
`driving_license_end_date` date DEFAULT NULL COMMENT '驾驶证有效期止',
`driving_license_long_term` int(11) DEFAULT '0' COMMENT '驾驶证长期有效:0否 1是',
`driving_license_front` varchar(1000) DEFAULT NULL COMMENT '驾驶证主页',
`driving_license_back` varchar(1000) DEFAULT NULL COMMENT '驾驶证副页',
`qualification_type` varchar(50) DEFAULT NULL COMMENT '从业资格证类型',
`qualification_no` varchar(50) DEFAULT NULL COMMENT '资格证号',
`qualification_end_date` date DEFAULT NULL COMMENT '从业资格证有效期止',
`qualification_long_term` int(11) DEFAULT '0' COMMENT '从业资格证长期有效:0否 1是',
`qualification_front` varchar(1000) DEFAULT NULL COMMENT '从业资格证封面页',
`qualification_back` varchar(1000) DEFAULT NULL COMMENT '从业资格证内容页',
`driver_type` varchar(20) NOT NULL COMMENT '司机类型:自有/外协',
`mobile` varchar(20) NOT NULL COMMENT '手机号',
`user_id` bigint(20) DEFAULT NULL COMMENT '关联系统用户ID',
`contact_relation` varchar(20) DEFAULT NULL COMMENT '与联系人关系',
`organization_name` varchar(50) NOT NULL COMMENT '所属组织',
`emergency_contact_name` varchar(20) NOT NULL COMMENT '紧急联系人姓名',
`emergency_contact_mobile` varchar(20) NOT NULL COMMENT '紧急联系人手机号',
`remark` varchar(200) DEFAULT NULL COMMENT '备注',
`certification_status` int(11) DEFAULT NULL COMMENT '最新提交状态展示缓存:0审核中 1已通过 2已驳回 3已作废,NULL为从未提交',
`certification_reject_reason` varchar(200) DEFAULT NULL COMMENT '最新一次驳回原因展示缓存',
`effective_cert_record_id` bigint(20) DEFAULT NULL COMMENT '生效快照指针:指向 blade_transport_cert_record.id,NULL 表示从未认证通过;一经设置永不回退',
`create_user` bigint(20) DEFAULT NULL COMMENT '创建人',
`create_dept` bigint(20) DEFAULT NULL COMMENT '创建部门',
`create_time` datetime DEFAULT NULL COMMENT '创建时间',
`update_user` bigint(20) DEFAULT NULL COMMENT '修改人',
`update_time` datetime DEFAULT NULL COMMENT '修改时间',
`status` int(11) DEFAULT '1' COMMENT '状态',
`is_deleted` int(11) DEFAULT '0' COMMENT '是否已删除',
PRIMARY KEY (`id`) USING BTREE,
UNIQUE KEY `uk_transport_driver_id_card` (`id_card_no`) USING BTREE,
KEY `idx_transport_driver_mobile` (`mobile`) USING BTREE,
KEY `idx_transport_driver_type` (`driver_type`) USING BTREE,
KEY `idx_transport_driver_org` (`organization_name`) USING BTREE,
KEY `idx_transport_driver_license_end` (`driving_license_end_date`) USING BTREE,
KEY `idx_transport_driver_qualification_end` (`qualification_end_date`) USING BTREE,
KEY `idx_transport_driver_status` (`status`) USING BTREE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='司机管理';
-- ----------------------------
-- Records of blade_menu for transport capacity driver
-- ----------------------------
INSERT INTO `blade_menu` (`id`, `parent_id`, `code`, `name`, `alias`, `path`, `source`, `sort`, `category`, `action`, `is_open`, `component`, `remark`, `is_deleted`) VALUES
(2079000000000000001, 0, 'transport_capacity', '运力管理', 'transport_capacity', '/transportCapacity', 'iconfont icon-yunshu', 20, 1, 0, 1, '', '', 0),
(2079000000000000002, 2079000000000000001, 'driver', '司机管理', 'driver', '/transportCapacity/driver', 'iconfont icon-yonghu', 1, 1, 0, 1, '', '', 0),
(2079000000000000003, 2079000000000000002, 'driver_add', '新增', 'driver_add', '', '', 1, 2, 0, 1, NULL, '', 0),
(2079000000000000004, 2079000000000000002, 'driver_edit', '编辑', 'driver_edit', '', '', 2, 2, 0, 1, NULL, '', 0),
(2079000000000000005, 2079000000000000002, 'driver_delete', '删除', 'driver_delete', '', '', 3, 2, 0, 1, NULL, '', 0),
(2079000000000000006, 2079000000000000002, 'driver_view', '查看', 'driver_view', '', '', 4, 2, 0, 1, NULL, '', 0),
(2079000000000000007, 2079000000000000002, 'driver_status', '启停', 'driver_status', '', '', 5, 2, 0, 1, NULL, '', 0),
(2079000000000000008, 2079000000000000002, 'driver_export', '批量导出', 'driver_export', '', '', 6, 2, 0, 1, NULL, '', 0);