-- 合同管理表结构 -- 1. 车辆租赁合同表 CREATE TABLE IF NOT EXISTS `asset_contract` ( `id` BIGINT NOT NULL AUTO_INCREMENT COMMENT '主键ID', `contract_code` VARCHAR(50) NOT NULL COMMENT '合同编码', `contract_type` TINYINT NOT NULL COMMENT '合同类型(1=试用 2=正式)', `project_name` VARCHAR(200) NOT NULL COMMENT '项目名称', `start_date` DATE NOT NULL COMMENT '生效日期', `end_date` DATE NOT NULL COMMENT '结束日期', `payment_method` VARCHAR(100) NOT NULL COMMENT '付款方式', `payment_cycle` VARCHAR(100) NOT NULL COMMENT '付款周期', `signing_company` VARCHAR(200) NOT NULL COMMENT '签约公司(乙方)', `delivery_province` VARCHAR(50) NOT NULL COMMENT '交车省份', `delivery_city` VARCHAR(50) NOT NULL COMMENT '交车城市', `delivery_location` VARCHAR(255) NOT NULL COMMENT '交车地点', `remark` VARCHAR(500) COMMENT '备注', `customer_id` BIGINT NOT NULL COMMENT '客户ID', `customer_name` VARCHAR(100) COMMENT '客户名称(冗余)', `third_party_enabled` BIT(1) DEFAULT b'0' COMMENT '是否三方合同', `third_party_customer_id` BIGINT COMMENT '丙方客户ID', `third_party_name` VARCHAR(100) COMMENT '丙方名称', `business_dept_id` BIGINT COMMENT '业务部门ID', `business_manager_id` BIGINT COMMENT '业务负责人ID', `approval_status` TINYINT NOT NULL DEFAULT 0 COMMENT '审批状态(0=草稿 1=审批中 2=审批通过 3=审批拒绝 4=已撤回)', `bpm_instance_id` VARCHAR(64) COMMENT 'BPM流程实例ID', `contract_status` TINYINT NOT NULL DEFAULT 0 COMMENT '合同状态(0=草稿 1=待生效 2=进行中 3=已到期 4=已终止 5=已续签)', `effective_time` DATETIME COMMENT '实际生效时间', `terminate_time` DATETIME COMMENT '终止时间', `terminate_reason` VARCHAR(500) COMMENT '终止原因', `renewed_contract_id` BIGINT COMMENT '续签后的新合同ID', `original_contract_id` BIGINT COMMENT '原合同ID(如果是续签合同)', `creator` VARCHAR(64) DEFAULT '' COMMENT '创建者', `create_time` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', `updater` VARCHAR(64) DEFAULT '' COMMENT '更新者', `update_time` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', `deleted` BIT(1) NOT NULL DEFAULT b'0' COMMENT '是否删除', `tenant_id` BIGINT NOT NULL DEFAULT 0 COMMENT '租户编号', PRIMARY KEY (`id`), UNIQUE KEY `uk_contract_code` (`contract_code`, `deleted`), KEY `idx_customer_id` (`customer_id`), KEY `idx_approval_status` (`approval_status`), KEY `idx_contract_status` (`contract_status`), KEY `idx_create_time` (`create_time`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='车辆租赁合同表'; -- 2. 合同车辆租赁订单表 CREATE TABLE IF NOT EXISTS `asset_contract_vehicle` ( `id` BIGINT NOT NULL AUTO_INCREMENT COMMENT '主键ID', `contract_id` BIGINT NOT NULL COMMENT '合同ID', `vehicle_id` BIGINT COMMENT '车辆ID(关联 asset_vehicle_base)', `brand` VARCHAR(50) NOT NULL COMMENT '品牌', `model` VARCHAR(100) NOT NULL COMMENT '型号', `plate_no` VARCHAR(20) COMMENT '车牌号', `vin` VARCHAR(50) COMMENT 'VIN码', `month_rent` DECIMAL(10,2) NOT NULL COMMENT '月租金(元)', `deposit` DECIMAL(10,2) NOT NULL COMMENT '保证金(元)', `vehicle_status` TINYINT NOT NULL DEFAULT 0 COMMENT '车辆状态(0=待交车 1=已交车 2=已退车)', `actual_delivery_time` DATETIME COMMENT '实际交车时间', `delivery_person` VARCHAR(50) COMMENT '交车人', `remark` VARCHAR(500) COMMENT '备注', `creator` VARCHAR(64) DEFAULT '' COMMENT '创建者', `create_time` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', `updater` VARCHAR(64) DEFAULT '' COMMENT '更新者', `update_time` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', `deleted` BIT(1) NOT NULL DEFAULT b'0' COMMENT '是否删除', `tenant_id` BIGINT NOT NULL DEFAULT 0 COMMENT '租户编号', PRIMARY KEY (`id`), KEY `idx_contract_id` (`contract_id`), KEY `idx_vehicle_id` (`vehicle_id`), KEY `idx_plate_no` (`plate_no`), KEY `idx_vin` (`vin`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='合同车辆租赁订单表';