7981 lines
609 KiB
SQL
7981 lines
609 KiB
SQL
|
||
/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
|
||
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
|
||
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
|
||
/*!50503 SET NAMES utf8mb4 */;
|
||
/*!40103 SET @OLD_TIME_ZONE=@@TIME_ZONE */;
|
||
/*!40103 SET TIME_ZONE='+00:00' */;
|
||
/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */;
|
||
/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */;
|
||
/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */;
|
||
/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */;
|
||
|
||
CREATE DATABASE /*!32312 IF NOT EXISTS*/ `baiyue_lastleg` /*!40100 DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci */ /*!80016 DEFAULT ENCRYPTION='N' */;
|
||
|
||
USE `baiyue_lastleg`;
|
||
DROP TABLE IF EXISTS `backup_fba_appointment_item_20261013`;
|
||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||
/*!50503 SET character_set_client = utf8mb4 */;
|
||
CREATE TABLE `backup_fba_appointment_item_20261013` (
|
||
`id` bigint NOT NULL COMMENT 'Snowflake ID',
|
||
`tenant_id` varchar(128) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT 'BAIYUE' COMMENT 'SaaS租户标识,当前单租户固定为BAIYUE',
|
||
`customer_id` varchar(128) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '绉熸埛/瀹㈡埛璐﹀彿鏍囪瘑',
|
||
`appointment_id` bigint NOT NULL,
|
||
`plan_id` bigint NOT NULL,
|
||
`line_id` bigint NOT NULL,
|
||
`order_id` bigint NOT NULL,
|
||
`inbound_code` varchar(128) COLLATE utf8mb4_unicode_ci NOT NULL,
|
||
`fba_warehouse_code` varchar(128) COLLATE utf8mb4_unicode_ci NOT NULL,
|
||
`active` tinyint(1) NOT NULL DEFAULT '1' COMMENT '取消或失败后释放货源占用',
|
||
`created_at` datetime(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3),
|
||
PRIMARY KEY (`id`),
|
||
UNIQUE KEY `uk_ll_fba_appointment_item_line` (`appointment_id`,`line_id`),
|
||
KEY `idx_ll_fba_appointment_item_plan` (`plan_id`),
|
||
KEY `idx_ll_fba_appointment_item_order` (`order_id`),
|
||
KEY `idx_ll_fba_item_tenant_appointment` (`customer_id`,`appointment_id`)
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='FBA appointment line snapshot';
|
||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||
DROP TABLE IF EXISTS `event_delivery_attempt`;
|
||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||
/*!50503 SET character_set_client = utf8mb4 */;
|
||
CREATE TABLE `event_delivery_attempt` (
|
||
`attempt_id` varchar(36) NOT NULL COMMENT '本次投递租约UUID和审计主键',
|
||
`service_name` varchar(32) NOT NULL COMMENT '本库所属生产服务',
|
||
`event_type` varchar(96) NOT NULL COMMENT '白名单业务事件类型',
|
||
`entry_id` varchar(128) NOT NULL COMMENT '生产者发件箱主键',
|
||
`event_id` varchar(128) DEFAULT NULL COMMENT '合法原事件UUID或ULID;格式错误时为空',
|
||
`target_name` varchar(64) NOT NULL COMMENT '固定目标业务服务',
|
||
`started_at` datetime(3) NOT NULL COMMENT '领取及审计事务提交前的开始时间',
|
||
`finished_at` datetime(3) DEFAULT NULL COMMENT '尝试完成或租约过期恢复时间',
|
||
`duration_ms` bigint DEFAULT NULL COMMENT '尝试耗时毫秒',
|
||
`outcome` varchar(24) NOT NULL COMMENT 'STARTED/APPLIED/DUPLICATE/STALE/RETRY/DEAD/LEASE_EXPIRED',
|
||
`error_code` varchar(64) DEFAULT NULL COMMENT '有限错误类别或HTTP状态;不含载荷与令牌',
|
||
`next_retry_at` datetime(3) DEFAULT NULL COMMENT '本次失败后下次计划投递时间',
|
||
PRIMARY KEY (`attempt_id`),
|
||
KEY `idx_delivery_attempt_entry` (`service_name`,`entry_id`,`started_at`),
|
||
KEY `idx_delivery_attempt_outcome` (`outcome`,`started_at`)
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='本服务业务事件逐次投递审计';
|
||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||
DROP TABLE IF EXISTS `ll_appointment_work`;
|
||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||
/*!50503 SET character_set_client = utf8mb4 */;
|
||
CREATE TABLE `ll_appointment_work` (
|
||
`work_item_key` varchar(96) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '不可变事项键,业务身份确定性生成',
|
||
`container_booking_id` varchar(64) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '来源柜次内部关联标识,不作展示编号',
|
||
`version` int NOT NULL DEFAULT '0' COMMENT '工作命令乐观锁版本',
|
||
`retired` tinyint(1) NOT NULL DEFAULT '0' COMMENT '已替代或已完成路线需求,不计活动工作',
|
||
`state_json` longtext COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '工作关系责任跟进及影响基线,不保存可编辑业务执行事实',
|
||
PRIMARY KEY (`work_item_key`),
|
||
KEY `idx_appointment_work_container` (`container_booking_id`,`retired`)
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='预约工作事项需求与关系';
|
||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||
DROP TABLE IF EXISTS `ll_appointment_work_commitment`;
|
||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||
/*!50503 SET character_set_client = utf8mb4 */;
|
||
CREATE TABLE `ll_appointment_work_commitment` (
|
||
`entity_key` varchar(160) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '原业务实体稳定键',
|
||
`state_json` longtext COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '原业务命令产生的只读语义影响基线,不是第二份可编辑计划',
|
||
`impact_version` bigint NOT NULL DEFAULT '0' COMMENT '承诺影响单调递增版本',
|
||
PRIMARY KEY (`entity_key`)
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='工作事项承诺影响审计基线';
|
||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||
DROP TABLE IF EXISTS `ll_appointment_work_guard`;
|
||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||
/*!50503 SET character_set_client = utf8mb4 */;
|
||
CREATE TABLE `ll_appointment_work_guard` (
|
||
`id` int NOT NULL COMMENT '工作事项协调锁,固定1',
|
||
`scan_cursor` varchar(128) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '已开船来源同步游标',
|
||
`initialized` tinyint(1) NOT NULL DEFAULT '0' COMMENT '是否完成首次完整来源扫描',
|
||
`scope_version` varchar(128) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '完整同步已确认的权威来源集合版本',
|
||
`scan_scope_version` varchar(128) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '当前扫描来源集合版本,防跨页漂移',
|
||
`completed_at` datetime(3) DEFAULT NULL COMMENT '最近完整同步UTC时间',
|
||
`requirement_version` bigint NOT NULL DEFAULT '0' COMMENT '原域命令在同一事务推进的需求版本',
|
||
`synchronized_requirement_version` bigint NOT NULL DEFAULT '0' COMMENT '完整扫描已消费需求版本',
|
||
`scan_requirement_version` bigint NOT NULL DEFAULT '0' COMMENT '当前扫描需求版本,防跨页漂移',
|
||
PRIMARY KEY (`id`)
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='预约工作事项同步与命令串行守卫';
|
||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||
DROP TABLE IF EXISTS `ll_appointment_work_history`;
|
||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||
/*!50503 SET character_set_client = utf8mb4 */;
|
||
CREATE TABLE `ll_appointment_work_history` (
|
||
`id` varchar(36) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '历史记录标识',
|
||
`work_item_key` varchar(96) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '事项稳定键',
|
||
`operator_id` varchar(64) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '真实操作人员标识',
|
||
`operator_name` varchar(128) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '操作人显示名称',
|
||
`action` varchar(48) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '工作命令或观察动作',
|
||
`summary` varchar(2000) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '处理或责任变更依据',
|
||
`command_key` varchar(64) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '请求幂等键,观察记录为空',
|
||
`request_hash` varchar(64) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '包含操作者的规范请求摘要',
|
||
`response_json` longtext COLLATE utf8mb4_unicode_ci COMMENT '原命令响应快照,重放不随当前状态改变',
|
||
`occurred_at` datetime(3) NOT NULL COMMENT '历史发生UTC时间',
|
||
PRIMARY KEY (`id`),
|
||
UNIQUE KEY `uk_appointment_work_command` (`work_item_key`,`command_key`),
|
||
KEY `idx_appointment_work_history` (`work_item_key`,`occurred_at`)
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='预约工作事项历史与幂等命令';
|
||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||
DROP TABLE IF EXISTS `ll_cargo_discard_application`;
|
||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||
/*!50503 SET character_set_client = utf8mb4 */;
|
||
CREATE TABLE `ll_cargo_discard_application` (
|
||
`id` bigint NOT NULL COMMENT 'Snowflake ID',
|
||
`tenant_id` varchar(128) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT 'BAIYUE' COMMENT 'SaaS租户标识,当前单租户固定为BAIYUE',
|
||
`customer_id` varchar(128) COLLATE utf8mb4_unicode_ci NOT NULL,
|
||
`discard_no` varchar(64) COLLATE utf8mb4_unicode_ci NOT NULL,
|
||
`outbound_no` varchar(64) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '废弃出库单号',
|
||
`overseas_warehouse_id` varchar(128) COLLATE utf8mb4_unicode_ci NOT NULL,
|
||
`overseas_warehouse_name` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
|
||
`inbound_codes` varchar(2000) COLLATE utf8mb4_unicode_ci NOT NULL,
|
||
`total_packages` int NOT NULL,
|
||
`fee_per_package` decimal(18,2) NOT NULL,
|
||
`total_fee` decimal(18,2) NOT NULL,
|
||
`currency` char(3) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT 'USD',
|
||
`status` varchar(32) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT 'PENDING_REVIEW',
|
||
`remark` varchar(1000) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
|
||
`idempotency_key` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL,
|
||
`request_hash` char(64) COLLATE utf8mb4_unicode_ci NOT NULL,
|
||
`review_idempotency_key` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '审核幂等键',
|
||
`review_request_hash` char(64) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '审核请求内容哈希',
|
||
`created_by` varchar(128) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
|
||
`reviewed_by` varchar(128) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
|
||
`review_remark` varchar(1000) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
|
||
`reviewed_at` datetime(3) DEFAULT NULL,
|
||
`completed_at` datetime(3) DEFAULT NULL COMMENT '废弃完成时间',
|
||
`created_at` datetime(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3),
|
||
`updated_at` datetime(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3),
|
||
`customer_confirmed_at` datetime(3) DEFAULT NULL COMMENT '客户确认完成时间',
|
||
PRIMARY KEY (`id`),
|
||
UNIQUE KEY `uk_ll_cargo_discard_no` (`customer_id`,`discard_no`),
|
||
UNIQUE KEY `uk_ll_cargo_discard_key` (`customer_id`,`idempotency_key`),
|
||
KEY `idx_ll_cargo_discard_list` (`customer_id`,`status`,`created_at`),
|
||
KEY `idx_ll_cargo_discard_warehouse` (`customer_id`,`overseas_warehouse_id`,`created_at`)
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='Cargo discard application requiring warehouse approval';
|
||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||
DROP TABLE IF EXISTS `ll_cargo_discard_carton`;
|
||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||
/*!50503 SET character_set_client = utf8mb4 */;
|
||
CREATE TABLE `ll_cargo_discard_carton` (
|
||
`id` bigint NOT NULL,
|
||
`tenant_id` varchar(128) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT 'BAIYUE' COMMENT 'SaaS租户标识,当前单租户固定为BAIYUE',
|
||
`application_id` bigint NOT NULL,
|
||
`item_id` bigint NOT NULL,
|
||
`customer_id` varchar(128) COLLATE utf8mb4_unicode_ci NOT NULL,
|
||
`carton_id` bigint NOT NULL,
|
||
`carton_mark` varchar(128) COLLATE utf8mb4_unicode_ci NOT NULL,
|
||
`created_at` datetime(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3),
|
||
PRIMARY KEY (`id`),
|
||
UNIQUE KEY `uk_ll_cargo_discard_carton` (`application_id`,`carton_id`),
|
||
KEY `idx_ll_cargo_discard_carton_application` (`customer_id`,`application_id`,`item_id`),
|
||
KEY `idx_ll_cargo_discard_carton_identity` (`customer_id`,`carton_id`)
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='Cartons reserved while a cargo discard application awaits review';
|
||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||
DROP TABLE IF EXISTS `ll_cargo_discard_item`;
|
||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||
/*!50503 SET character_set_client = utf8mb4 */;
|
||
CREATE TABLE `ll_cargo_discard_item` (
|
||
`id` bigint NOT NULL,
|
||
`tenant_id` varchar(128) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT 'BAIYUE' COMMENT 'SaaS租户标识,当前单租户固定为BAIYUE',
|
||
`application_id` bigint NOT NULL,
|
||
`customer_id` varchar(128) COLLATE utf8mb4_unicode_ci NOT NULL,
|
||
`order_id` bigint DEFAULT NULL COMMENT '一件代发订单ID',
|
||
`source_type` varchar(32) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT 'DROPSHIP' COMMENT '库存来源:一件代发DROPSHIP、退货箱RETURN_CARTON',
|
||
`return_carton_id` bigint DEFAULT NULL COMMENT '退货库存箱ID',
|
||
`inbound_code` varchar(128) COLLATE utf8mb4_unicode_ci NOT NULL,
|
||
`profile_id` bigint DEFAULT NULL COMMENT '托盘档案ID',
|
||
`sku_inventory_id` bigint DEFAULT NULL COMMENT 'SKU库存记录ID',
|
||
`sku_code` varchar(128) COLLATE utf8mb4_unicode_ci NOT NULL,
|
||
`product_name` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
|
||
`available_packages_snapshot` int NOT NULL,
|
||
`discard_packages` int NOT NULL,
|
||
`created_at` datetime(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3),
|
||
`actual_discard_packages` int DEFAULT NULL,
|
||
`pda_status` varchar(32) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT 'PENDING',
|
||
`pda_operator_id` varchar(128) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
|
||
`pda_completed_at` datetime(3) DEFAULT NULL,
|
||
`completion_photo_file_ids` text COLLATE utf8mb4_unicode_ci COMMENT 'PDA完工照片文件ID JSON数组',
|
||
`inventory_position_id` bigint DEFAULT NULL COMMENT '废弃来源库存仓位ID',
|
||
`carton_marks_json` text COLLATE utf8mb4_unicode_ci COMMENT '本次废弃所选真实箱唛快照JSON数组',
|
||
`carton_scan_required` tinyint(1) NOT NULL DEFAULT '0' COMMENT '是否需要逐箱核对本次所选箱子',
|
||
PRIMARY KEY (`id`),
|
||
UNIQUE KEY `uk_ll_cargo_discard_item` (`application_id`,`profile_id`,`sku_code`),
|
||
KEY `idx_ll_cargo_discard_item_list` (`customer_id`,`application_id`),
|
||
KEY `idx_ll_cargo_discard_item_inbound` (`customer_id`,`inbound_code`,`sku_code`),
|
||
KEY `idx_ll_cargo_discard_return_carton` (`customer_id`,`return_carton_id`)
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='Frozen SKU quantities in a cargo discard application';
|
||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||
DROP TABLE IF EXISTS `ll_cargo_discard_photo`;
|
||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||
/*!50503 SET character_set_client = utf8mb4 */;
|
||
CREATE TABLE `ll_cargo_discard_photo` (
|
||
`id` bigint NOT NULL,
|
||
`customer_id` varchar(64) COLLATE utf8mb4_unicode_ci NOT NULL,
|
||
`application_id` bigint NOT NULL,
|
||
`pallet_no` varchar(128) COLLATE utf8mb4_unicode_ci NOT NULL,
|
||
`file_id` bigint NOT NULL,
|
||
`file_name` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL,
|
||
`content_type` varchar(128) COLLATE utf8mb4_unicode_ci NOT NULL,
|
||
`size_bytes` bigint NOT NULL,
|
||
`operator_id` varchar(64) COLLATE utf8mb4_unicode_ci NOT NULL,
|
||
`created_at` datetime(6) NOT NULL,
|
||
`submitted_at` datetime(6) DEFAULT NULL,
|
||
PRIMARY KEY (`id`),
|
||
UNIQUE KEY `uk_cargo_discard_photo_file` (`file_id`),
|
||
KEY `idx_cargo_discard_photo_application` (`customer_id`,`application_id`,`pallet_no`)
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
|
||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||
DROP TABLE IF EXISTS `ll_cargo_discard_status_history`;
|
||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||
/*!50503 SET character_set_client = utf8mb4 */;
|
||
CREATE TABLE `ll_cargo_discard_status_history` (
|
||
`id` bigint NOT NULL,
|
||
`tenant_id` varchar(128) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT 'BAIYUE' COMMENT 'SaaS租户标识,当前单租户固定为BAIYUE',
|
||
`application_id` bigint NOT NULL,
|
||
`customer_id` varchar(128) COLLATE utf8mb4_unicode_ci NOT NULL,
|
||
`from_status` varchar(32) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
|
||
`to_status` varchar(32) COLLATE utf8mb4_unicode_ci NOT NULL,
|
||
`operator_id` varchar(128) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
|
||
`remark` varchar(1000) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
|
||
`created_at` datetime(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3),
|
||
PRIMARY KEY (`id`),
|
||
KEY `idx_ll_cargo_discard_history` (`customer_id`,`application_id`,`created_at`)
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='Immutable cargo discard approval history';
|
||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||
DROP TABLE IF EXISTS `ll_compact_number_clock`;
|
||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||
/*!50503 SET character_set_client = utf8mb4 */;
|
||
CREATE TABLE `ll_compact_number_clock` (
|
||
`number_key` varchar(16) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '业务前缀和客户名称缩写',
|
||
`last_second` bigint NOT NULL COMMENT '最后分配的Unix逻辑秒',
|
||
PRIMARY KEY (`number_key`)
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='海外业务短单号分配时钟';
|
||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||
DROP TABLE IF EXISTS `ll_container_arrival_time_operation`;
|
||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||
/*!50503 SET character_set_client = utf8mb4 */;
|
||
CREATE TABLE `ll_container_arrival_time_operation` (
|
||
`id` bigint NOT NULL COMMENT '柜级预计到仓时间修改操作ID',
|
||
`source_container_booking_id` varchar(128) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '稳定来源柜预订ID',
|
||
`idempotency_key` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '平台请求幂等键',
|
||
`request_hash` varchar(64) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '规范化修改请求SHA-256摘要',
|
||
`result_version` int NOT NULL COMMENT '修改成功后的柜级时间版本',
|
||
`operator_name` varchar(128) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '平台操作人名称',
|
||
`remark` varchar(500) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '预计到仓时间修改备注',
|
||
`created_at` datetime(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) COMMENT '操作时间',
|
||
PRIMARY KEY (`id`),
|
||
UNIQUE KEY `uk_ll_container_arrival_time_idempotency` (`idempotency_key`),
|
||
KEY `idx_ll_container_arrival_time_container` (`source_container_booking_id`,`created_at`)
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='柜级预计到仓时间修改幂等审计记录';
|
||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||
DROP TABLE IF EXISTS `ll_container_loading_evidence`;
|
||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||
/*!50503 SET character_set_client = utf8mb4 */;
|
||
CREATE TABLE `ll_container_loading_evidence` (
|
||
`id` bigint NOT NULL COMMENT '海外整柜装柜照片投影ID',
|
||
`source_container_booking_id` varchar(128) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '国内稳定来源柜预订ID',
|
||
`evidence_type` varchar(32) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT 'PHOTO_STEP_1至PHOTO_STEP_4或SEAL',
|
||
`source_file_id` bigint NOT NULL COMMENT '国内File服务文件ID',
|
||
`file_name` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '国内文件名快照',
|
||
`created_at` datetime(3) NOT NULL COMMENT '投影创建时间',
|
||
PRIMARY KEY (`id`),
|
||
UNIQUE KEY `uk_ll_container_loading_evidence_type` (`source_container_booking_id`,`evidence_type`),
|
||
UNIQUE KEY `uk_ll_container_loading_evidence_file` (`source_container_booking_id`,`source_file_id`)
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='海外拆柜只读国内装柜照片引用';
|
||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||
DROP TABLE IF EXISTS `ll_container_plan_conversion_command`;
|
||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||
/*!50503 SET character_set_client = utf8mb4 */;
|
||
CREATE TABLE `ll_container_plan_conversion_command` (
|
||
`id` bigint NOT NULL COMMENT '柜级转换命令ID',
|
||
`source_container_booking_id` varchar(128) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '稳定来源柜预订ID',
|
||
`idempotency_key` varchar(128) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '调用方幂等键',
|
||
`request_hash` char(64) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '确认请求SHA-256摘要',
|
||
`snapshot_version` bigint NOT NULL COMMENT '确认的柜级快照版本',
|
||
`snapshot_hash` char(64) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '确认的柜级快照SHA-256',
|
||
`warehouse_id` bigint NOT NULL COMMENT '海外接柜仓ID',
|
||
`batch_key` varchar(160) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '海外仓托盘批次幂等键',
|
||
`status` varchar(32) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '命令状态:PREPARED/APPLYING/FAILED/LOCAL_COMMITTED/COMPLETED',
|
||
`lease_token` varchar(64) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '当前执行租约令牌,用于陈旧执行者隔离',
|
||
`preparation_json` json NOT NULL COMMENT '稳定计划号与托盘业务键快照',
|
||
`result_json` json DEFAULT NULL COMMENT '本地计划提交结果',
|
||
`last_error` varchar(1000) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '最近一次跨服务错误',
|
||
`created_at` datetime(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) COMMENT '命令创建时间',
|
||
`updated_at` datetime(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3) COMMENT '命令状态或租约更新时间',
|
||
PRIMARY KEY (`id`),
|
||
UNIQUE KEY `uk_ll_container_conversion_command` (`source_container_booking_id`),
|
||
UNIQUE KEY `uk_ll_container_conversion_batch` (`warehouse_id`,`batch_key`),
|
||
KEY `idx_ll_container_conversion_status` (`status`,`updated_at`)
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='柜级入库计划转换Saga与幂等命令';
|
||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||
DROP TABLE IF EXISTS `ll_container_shipping_gate`;
|
||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||
/*!50503 SET character_set_client = utf8mb4 */;
|
||
CREATE TABLE `ll_container_shipping_gate` (
|
||
`container_booking_id` varchar(128) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '来源头程柜预订ID',
|
||
`customer_id` varchar(128) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '客户标识',
|
||
`ocean_booking_id` varchar(128) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '来源海运订舱ID',
|
||
`container_no` varchar(64) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '实际集装箱号',
|
||
`status` varchar(32) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT 'AWAITING_PICKUP_READY' COMMENT '海外收货门禁状态:AWAITING_PICKUP_READY、RECEIVING_AVAILABLE',
|
||
`standard_node` varchar(64) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '最新有效标准船节点',
|
||
`node_sequence` int NOT NULL DEFAULT '0' COMMENT '最新有效节点单调序号',
|
||
`observed_at` datetime(3) DEFAULT NULL COMMENT '供应商节点观测时间',
|
||
`actual_at` datetime(3) DEFAULT NULL COMMENT '节点实际发生时间',
|
||
`location_code` varchar(128) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '节点地点编码',
|
||
`location_name` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '节点地点名称',
|
||
`provider_code` varchar(64) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '船节点供应商编码',
|
||
`provider_event_id` varchar(128) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '供应商事件ID',
|
||
`provider_node_code` varchar(128) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '供应商原始节点编码',
|
||
`source_reference` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '供应商来源引用',
|
||
`raw_payload_hash` varchar(64) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '供应商原始负载SHA-256',
|
||
`aggregate_version` bigint NOT NULL DEFAULT '0' COMMENT '来源查询聚合版本',
|
||
`handover_version` bigint NOT NULL DEFAULT '1' COMMENT '跨区交接版本',
|
||
`last_event_id` varchar(128) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '最近采纳的跨区事件ID',
|
||
`payload_hash` varchar(71) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '最近采纳事件规范化负载摘要',
|
||
`created_at` datetime(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) COMMENT '创建时间',
|
||
`updated_at` datetime(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3) COMMENT '更新时间',
|
||
PRIMARY KEY (`container_booking_id`),
|
||
KEY `idx_ll_shipping_gate_candidate` (`customer_id`,`container_no`,`status`),
|
||
KEY `idx_ll_shipping_gate_version` (`container_booking_id`,`aggregate_version`,`node_sequence`)
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='海外PDA柜号船节点收货资格快照';
|
||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||
DROP TABLE IF EXISTS `ll_customer_visit`;
|
||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||
/*!50503 SET character_set_client = utf8mb4 */;
|
||
CREATE TABLE `ll_customer_visit` (
|
||
`id` bigint NOT NULL COMMENT '客户回访记录ID',
|
||
`customer_id` varchar(128) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '客户数据隔离键',
|
||
`delivery_order_id` bigint NOT NULL COMMENT '关联派送单ID',
|
||
`delivery_no` varchar(64) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '关联派送单号',
|
||
`customer_name` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '客户名称快照',
|
||
`contact_name` varchar(128) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '客户联系人姓名快照',
|
||
`contact_phone` varchar(64) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '客户联系人电话快照',
|
||
`destination` varchar(500) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '派送目的仓编码汇总快照',
|
||
`delivery_completed_at` datetime(3) NOT NULL COMMENT '派送完成时间',
|
||
`status` varchar(32) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT 'PENDING' COMMENT '回访状态:PENDING待回访或COMPLETED已回访',
|
||
`selected_last_mile_order_id` bigint DEFAULT NULL COMMENT '本次回访选择的尾程订单ID',
|
||
`selected_last_mile_order_no` varchar(64) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '本次回访选择的尾程订单号',
|
||
`selected_inbound_order_id` bigint DEFAULT NULL COMMENT '本次回访选择的入仓单ID',
|
||
`selected_inbound_code` varchar(128) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '本次回访选择的入仓码',
|
||
`visit_result` varchar(32) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '最近一次回访结果',
|
||
`customer_feedback` varchar(2000) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '最近一次客户反馈',
|
||
`remark` varchar(1000) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '最近一次回访备注',
|
||
`attachment_json` json DEFAULT NULL COMMENT '当前回访资料文件元数据列表',
|
||
`visited_by` varchar(128) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '最近一次回访操作人ID',
|
||
`visited_at` datetime(3) DEFAULT NULL COMMENT '最近一次回访时间',
|
||
`visit_count` int NOT NULL DEFAULT '0' COMMENT '累计保存回访次数',
|
||
`created_at` datetime(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) COMMENT '创建时间',
|
||
`updated_at` datetime(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3) COMMENT '更新时间',
|
||
PRIMARY KEY (`id`),
|
||
UNIQUE KEY `uk_ll_customer_visit_delivery` (`customer_id`,`delivery_order_id`),
|
||
KEY `idx_ll_customer_visit_list` (`customer_id`,`status`,`delivery_completed_at`),
|
||
KEY `idx_ll_customer_visit_delivery_no` (`customer_id`,`delivery_no`)
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='派送单维度客户回访记录';
|
||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||
DROP TABLE IF EXISTS `ll_delivery_document_revision`;
|
||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||
/*!50503 SET character_set_client = utf8mb4 */;
|
||
CREATE TABLE `ll_delivery_document_revision` (
|
||
`id` bigint NOT NULL COMMENT '派送资料历史ID',
|
||
`customer_id` varchar(128) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '派送所属客户隔离键',
|
||
`delivery_order_id` bigint NOT NULL COMMENT '派送单ID',
|
||
`version` bigint NOT NULL COMMENT '保存成功时派送单版本',
|
||
`idempotency_key` varchar(128) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '资料保存幂等键',
|
||
`request_hash` varchar(64) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '完整保存请求哈希',
|
||
`snapshot_json` json NOT NULL COMMENT '不可变三类资料及BOL号结果快照',
|
||
`operator_id` varchar(128) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '保存操作人ID',
|
||
`created_at` datetime(3) NOT NULL COMMENT '资料保存时间',
|
||
PRIMARY KEY (`id`),
|
||
UNIQUE KEY `uk_delivery_document_command` (`customer_id`,`delivery_order_id`,`idempotency_key`),
|
||
UNIQUE KEY `uk_delivery_document_version` (`customer_id`,`delivery_order_id`,`version`)
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='派送资料版本历史与幂等保存记录';
|
||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||
DROP TABLE IF EXISTS `ll_delivery_fee`;
|
||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||
/*!50503 SET character_set_client = utf8mb4 */;
|
||
CREATE TABLE `ll_delivery_fee` (
|
||
`id` bigint NOT NULL COMMENT '派送费用主键',
|
||
`customer_id` varchar(128) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '客户数据隔离键',
|
||
`delivery_order_id` bigint NOT NULL COMMENT '派送单ID',
|
||
`fee_direction` varchar(16) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT 'PAYABLE' COMMENT '应收应付方向',
|
||
`fee_type` varchar(64) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '费用类型',
|
||
`currency` varchar(8) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '币种',
|
||
`amount` decimal(18,2) NOT NULL COMMENT '费用金额',
|
||
`remark` varchar(500) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '费用备注',
|
||
`created_by` varchar(128) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '创建人ID',
|
||
`created_at` datetime(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) COMMENT '创建时间',
|
||
PRIMARY KEY (`id`),
|
||
KEY `idx_ll_delivery_fee_order` (`customer_id`,`delivery_order_id`,`id`)
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='派送单费用明细';
|
||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||
DROP TABLE IF EXISTS `ll_delivery_operation`;
|
||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||
/*!50503 SET character_set_client = utf8mb4 */;
|
||
CREATE TABLE `ll_delivery_operation` (
|
||
`id` bigint NOT NULL COMMENT '派送操作主键',
|
||
`customer_id` varchar(128) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '客户数据隔离键',
|
||
`delivery_order_id` bigint NOT NULL COMMENT '派送单ID',
|
||
`operation_node` varchar(64) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '操作节点',
|
||
`operator_id` varchar(128) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '操作人ID',
|
||
`operator_name` varchar(128) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '操作人名称',
|
||
`result` varchar(500) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '处理结果',
|
||
`created_at` datetime(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) COMMENT '操作时间',
|
||
PRIMARY KEY (`id`),
|
||
KEY `idx_ll_delivery_operation_order` (`customer_id`,`delivery_order_id`,`created_at`,`id`)
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='派送单操作记录';
|
||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||
DROP TABLE IF EXISTS `ll_delivery_order`;
|
||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||
/*!50503 SET character_set_client = utf8mb4 */;
|
||
CREATE TABLE `ll_delivery_order` (
|
||
`id` bigint NOT NULL COMMENT 'Snowflake ID',
|
||
`tenant_id` varchar(128) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT 'BAIYUE' COMMENT 'SaaS租户标识,当前单租户固定为BAIYUE',
|
||
`customer_id` varchar(128) COLLATE utf8mb4_unicode_ci NOT NULL,
|
||
`delivery_no` varchar(64) COLLATE utf8mb4_unicode_ci NOT NULL,
|
||
`outbound_order_id` bigint NOT NULL,
|
||
`outbound_no` varchar(64) COLLATE utf8mb4_unicode_ci NOT NULL,
|
||
`dispatch_order_id` bigint DEFAULT NULL COMMENT '关联派车单ID,仓储转运直接出库时为空',
|
||
`dispatch_no` varchar(64) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '关联派车单号,仓储转运直接出库时为空',
|
||
`overseas_warehouse_id` varchar(128) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
|
||
`overseas_warehouse_name` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '海外仓名称快照',
|
||
`customer_name` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '客户名称快照',
|
||
`destination_warehouse_id` varchar(128) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '本派送单目的FBA仓ID快照',
|
||
`destination_warehouse_code` varchar(128) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '本派送单目的FBA仓编码快照,私人仓为空',
|
||
`destination_warehouse_name` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '本派送单目的FBA仓名称快照',
|
||
`destination_type` varchar(16) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '目的地类型:FBA或PRIVATE',
|
||
`delivery_address` varchar(1000) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '私人仓派送地址',
|
||
`contact_name` varchar(128) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '私人仓联系人',
|
||
`contact_phone` varchar(64) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '私人仓联系电话',
|
||
`delivery_group_key` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '同一出库单内按目的FBA仓拆单的稳定分组键',
|
||
`status` varchar(32) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT 'WAIT_DELIVERY',
|
||
`seller_name` varchar(128) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '卖家姓名',
|
||
`package_count` int NOT NULL DEFAULT '0',
|
||
`pallet_count` int NOT NULL DEFAULT '0',
|
||
`remark` varchar(1000) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '派送备注',
|
||
`idempotency_key` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL,
|
||
`created_by` varchar(128) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
|
||
`version` bigint NOT NULL DEFAULT '0' COMMENT '派送单乐观锁版本',
|
||
`created_at` datetime(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3),
|
||
`updated_at` datetime(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3),
|
||
`waybill_no` varchar(128) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '承运运单号',
|
||
`delivery_method` varchar(32) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '派送方式',
|
||
`carrier_name` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '派送承运商',
|
||
`pickup_method` varchar(64) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '提货方式',
|
||
`loading_type` varchar(64) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '装车类型',
|
||
`vehicle_type` varchar(64) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '车辆类型',
|
||
`vehicle_size` varchar(64) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '车辆大小',
|
||
`vehicle_plate` varchar(64) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '车牌号',
|
||
`driver_name` varchar(128) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '司机或车队名称',
|
||
`driver_phone` varchar(64) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '车队联系电话',
|
||
`appointment_account` varchar(128) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '预约账号',
|
||
`total_weight_kg` decimal(18,4) NOT NULL DEFAULT '0.0000' COMMENT '总重量(千克)',
|
||
`total_volume_cbm` decimal(18,4) DEFAULT NULL COMMENT '体积(立方米),来源未确认时为空',
|
||
`planned_delivery_at` datetime(3) DEFAULT NULL COMMENT '预计派送时间',
|
||
`dispatched_at` datetime(3) DEFAULT NULL COMMENT '实际派送时间',
|
||
`expected_arrival_at` datetime(3) DEFAULT NULL COMMENT '预计到达时间',
|
||
`signed_at` datetime(3) DEFAULT NULL COMMENT '签收时间',
|
||
`bol_no` varchar(128) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '派送资料BOL号,不作为文件归属标识',
|
||
`documents_json` json DEFAULT NULL COMMENT '娲鹃�佷笁绫昏祫鏂欏綋鍓嶇粦瀹氬強鏉冨▉鏂囦欢鍏冩暟鎹揩鐓�',
|
||
`postal_code` varchar(32) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '私人仓邮编',
|
||
`signed_packages` int DEFAULT NULL COMMENT '保存签收资料时冻结的实际签收箱数,不含此前已退回量',
|
||
PRIMARY KEY (`id`),
|
||
UNIQUE KEY `uk_ll_delivery_no` (`customer_id`,`delivery_no`),
|
||
UNIQUE KEY `uk_ll_delivery_idempotency` (`customer_id`,`idempotency_key`),
|
||
UNIQUE KEY `uk_ll_delivery_outbound_destination` (`customer_id`,`outbound_order_id`,`delivery_group_key`),
|
||
KEY `idx_ll_delivery_list` (`customer_id`,`status`,`created_at`)
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='Delivery document linked to an outbound document';
|
||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||
DROP TABLE IF EXISTS `ll_destuff_pallet_cost`;
|
||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||
/*!50503 SET character_set_client = utf8mb4 */;
|
||
CREATE TABLE `ll_destuff_pallet_cost` (
|
||
`id` bigint NOT NULL COMMENT '主键ID',
|
||
`source_container_booking_id` varchar(128) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '来源柜次业务ID',
|
||
`container_no` varchar(64) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '集装箱号',
|
||
`warehouse_id` bigint DEFAULT NULL COMMENT '海外仓ID',
|
||
`pallet_count` int NOT NULL COMMENT '实际打托数',
|
||
`total_actual_volume_cbm` decimal(20,6) NOT NULL COMMENT '客户实收总体积',
|
||
`total_cost` decimal(20,2) NOT NULL COMMENT '打托总成本',
|
||
`currency` char(3) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT 'CNY' COMMENT '成本币种',
|
||
`status` varchar(16) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '生成状态',
|
||
`created_at` datetime(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) COMMENT '创建时间',
|
||
PRIMARY KEY (`id`),
|
||
UNIQUE KEY `uk_ll_destuff_cost_booking` (`source_container_booking_id`),
|
||
CONSTRAINT `chk_ll_destuff_cost` CHECK (((`pallet_count` > 0) and (`total_actual_volume_cbm` > 0) and (`total_cost` > 0) and (`currency` = _utf8mb4'CNY')))
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='拆柜打托实际成本汇总';
|
||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||
DROP TABLE IF EXISTS `ll_destuff_pallet_cost_allocation`;
|
||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||
/*!50503 SET character_set_client = utf8mb4 */;
|
||
CREATE TABLE `ll_destuff_pallet_cost_allocation` (
|
||
`id` bigint NOT NULL COMMENT '主键ID',
|
||
`cost_id` bigint NOT NULL COMMENT '打托成本汇总ID',
|
||
`customer_id` varchar(128) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '客户ID',
|
||
`actual_volume_cbm` decimal(20,6) NOT NULL COMMENT '客户实收体积',
|
||
`allocated_amount` decimal(20,2) NOT NULL COMMENT '客户分摊金额',
|
||
`fee_source_id` bigint NOT NULL COMMENT '海外费用来源ID',
|
||
`created_at` datetime(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) COMMENT '创建时间',
|
||
PRIMARY KEY (`id`),
|
||
UNIQUE KEY `uk_ll_destuff_customer` (`cost_id`,`customer_id`),
|
||
UNIQUE KEY `uk_ll_destuff_fee_source` (`fee_source_id`),
|
||
CONSTRAINT `chk_ll_destuff_allocation` CHECK (((`actual_volume_cbm` > 0) and (`allocated_amount` >= 0)))
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='拆柜打托成本按客户实收体积分摊';
|
||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||
DROP TABLE IF EXISTS `ll_dispatch_appointment_allocation`;
|
||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||
/*!50503 SET character_set_client = utf8mb4 */;
|
||
CREATE TABLE `ll_dispatch_appointment_allocation` (
|
||
`dispatch_id` bigint NOT NULL COMMENT '排车单标识',
|
||
`dispatch_item_id` bigint NOT NULL COMMENT '排车明细标识',
|
||
`plan_pallet_id` bigint NOT NULL COMMENT '入仓计划托盘标识',
|
||
`batch_key` varchar(96) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '预约稳定批次键',
|
||
`customer_id` varchar(64) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '所属客户标识',
|
||
`source_key` varchar(160) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '货物来源稳定键',
|
||
`destination_key` varchar(160) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '目的地稳定键',
|
||
`package_count` int NOT NULL COMMENT '本票分配实物箱数',
|
||
PRIMARY KEY (`dispatch_item_id`,`batch_key`,`source_key`,`destination_key`),
|
||
KEY `idx_dispatch_appointment_batch` (`batch_key`,`customer_id`),
|
||
KEY `idx_dispatch_appointment_dispatch` (`dispatch_id`)
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='排车实物与预约批次逐票分配,原执行域事实';
|
||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||
DROP TABLE IF EXISTS `ll_dispatch_draft`;
|
||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||
/*!50503 SET character_set_client = utf8mb4 */;
|
||
CREATE TABLE `ll_dispatch_draft` (
|
||
`id` bigint NOT NULL,
|
||
`draft_token` varchar(64) COLLATE utf8mb4_unicode_ci NOT NULL,
|
||
`customer_id` varchar(128) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
|
||
`operator_id` varchar(128) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
|
||
`plan_ids_json` varchar(4000) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
|
||
`containers_json` longtext COLLATE utf8mb4_unicode_ci,
|
||
`status` varchar(32) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT 'ACTIVE',
|
||
`expires_at` datetime(3) DEFAULT NULL,
|
||
`released_at` datetime(3) DEFAULT NULL,
|
||
`created_at` datetime(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3),
|
||
`updated_at` datetime(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3),
|
||
PRIMARY KEY (`id`),
|
||
UNIQUE KEY `uk_ll_dispatch_draft_token` (`draft_token`),
|
||
KEY `idx_ll_dispatch_draft_operator` (`operator_id`,`status`)
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='智能排车草稿';
|
||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||
DROP TABLE IF EXISTS `ll_dispatch_draft_container`;
|
||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||
/*!50503 SET character_set_client = utf8mb4 */;
|
||
CREATE TABLE `ll_dispatch_draft_container` (
|
||
`id` bigint NOT NULL,
|
||
`draft_id` bigint NOT NULL,
|
||
`draft_token` varchar(64) COLLATE utf8mb4_unicode_ci NOT NULL,
|
||
`sequence_no` int NOT NULL,
|
||
`capacity` int NOT NULL,
|
||
`created_at` datetime(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3),
|
||
`updated_at` datetime(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3),
|
||
PRIMARY KEY (`id`),
|
||
KEY `idx_ll_dispatch_draft_container_token` (`draft_token`)
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='智能排车草稿装车托盘';
|
||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||
DROP TABLE IF EXISTS `ll_dispatch_item`;
|
||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||
/*!50503 SET character_set_client = utf8mb4 */;
|
||
CREATE TABLE `ll_dispatch_item` (
|
||
`id` bigint NOT NULL COMMENT 'Snowflake ID',
|
||
`tenant_id` varchar(128) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT 'BAIYUE' COMMENT 'SaaS租户标识,当前单租户固定为BAIYUE',
|
||
`dispatch_order_id` bigint NOT NULL,
|
||
`customer_id` varchar(128) COLLATE utf8mb4_unicode_ci NOT NULL,
|
||
`plan_id` bigint DEFAULT NULL,
|
||
`plan_pallet_id` bigint DEFAULT NULL,
|
||
`warehouse_pallet_id` bigint DEFAULT NULL,
|
||
`order_id` bigint DEFAULT NULL,
|
||
`order_no` varchar(64) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
|
||
`order_refs` varchar(2000) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
|
||
`inbound_code` varchar(128) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
|
||
`pallet_no` varchar(128) COLLATE utf8mb4_unicode_ci NOT NULL,
|
||
`overseas_warehouse_id` varchar(128) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
|
||
`overseas_warehouse_name` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
|
||
`destination_warehouse_id` varchar(128) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
|
||
`destination_warehouse_code` varchar(128) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
|
||
`destination_warehouse_name` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
|
||
`fba_warehouse_code` varchar(128) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
|
||
`package_count` int NOT NULL DEFAULT '0',
|
||
`gross_weight_kg` decimal(18,3) NOT NULL DEFAULT '0.000' COMMENT '毛重(千克)',
|
||
`volume_weight_kg` decimal(18,3) NOT NULL DEFAULT '0.000' COMMENT '材积重(千克)',
|
||
`volume_cbm` decimal(18,4) NOT NULL DEFAULT '0.0000',
|
||
`source_stage` varchar(32) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT 'PLAN or RECEIVED',
|
||
`carton_marks` varchar(4000) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '换标箱唛映射快照',
|
||
`source_business_type` varchar(32) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '来源业务类型',
|
||
`source_business_no` varchar(128) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '来源业务单号',
|
||
`created_at` datetime(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3),
|
||
`destination_type` varchar(32) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '目的类型:FBA或PRIVATE',
|
||
`delivery_address` varchar(1000) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '私人仓目的地址快照',
|
||
`postal_code` varchar(32) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '私人仓邮编快照',
|
||
`contact_name` varchar(128) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '私人仓联系人快照',
|
||
`contact_phone` varchar(64) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '私人仓联系电话快照',
|
||
`return_receipt_id` bigint DEFAULT NULL COMMENT '明确选用的真实退回入仓来源',
|
||
PRIMARY KEY (`id`),
|
||
UNIQUE KEY `uk_ll_dispatch_item_source` (`dispatch_order_id`,`plan_pallet_id`,`warehouse_pallet_id`),
|
||
KEY `idx_ll_dispatch_item_order` (`customer_id`,`order_id`),
|
||
KEY `idx_ll_dispatch_item_inbound` (`customer_id`,`inbound_code`),
|
||
KEY `idx_ll_dispatch_item_pallet` (`customer_id`,`plan_pallet_id`,`warehouse_pallet_id`)
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='Frozen pallet and cargo snapshot for a dispatch order';
|
||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||
DROP TABLE IF EXISTS `ll_dispatch_order`;
|
||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||
/*!50503 SET character_set_client = utf8mb4 */;
|
||
CREATE TABLE `ll_dispatch_order` (
|
||
`id` bigint NOT NULL COMMENT 'Snowflake ID',
|
||
`tenant_id` varchar(128) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT 'BAIYUE' COMMENT 'SaaS租户标识,当前单租户固定为BAIYUE',
|
||
`customer_id` varchar(128) COLLATE utf8mb4_unicode_ci NOT NULL,
|
||
`dispatch_no` varchar(64) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT 'Dispatch order number',
|
||
`overseas_warehouse_id` varchar(128) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
|
||
`overseas_warehouse_name` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
|
||
`vehicle_plate` varchar(64) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT 'Editable vehicle plate; required before PDA picking',
|
||
`driver_name` varchar(128) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
|
||
`driver_phone` varchar(64) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
|
||
`carrier_name` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
|
||
`route` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
|
||
`depart_at` datetime(3) DEFAULT NULL,
|
||
`fba_appointment_no` varchar(64) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
|
||
`fba_appointment_status` varchar(32) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT 'PENDING',
|
||
`vehicle_appointment_status` varchar(32) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT 'PENDING',
|
||
`estimated_arrival_at` datetime(3) DEFAULT NULL,
|
||
`status` varchar(32) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT 'PENDING_DEPARTURE',
|
||
`item_count` int NOT NULL DEFAULT '0',
|
||
`pallet_count` int NOT NULL DEFAULT '0',
|
||
`package_count` int NOT NULL DEFAULT '0',
|
||
`picked_package_count` int NOT NULL DEFAULT '0',
|
||
`shipped_package_count` int NOT NULL DEFAULT '0',
|
||
`partial_completion_reason` varchar(1000) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
|
||
`created_by` varchar(128) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
|
||
`created_at` datetime(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3),
|
||
`updated_at` datetime(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3),
|
||
PRIMARY KEY (`id`),
|
||
UNIQUE KEY `uk_ll_dispatch_order_no` (`customer_id`,`dispatch_no`),
|
||
KEY `idx_ll_dispatch_order_list` (`customer_id`,`status`,`depart_at`),
|
||
KEY `idx_ll_dispatch_order_vehicle` (`customer_id`,`vehicle_plate`)
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='Last-leg pre-dispatch order';
|
||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||
DROP TABLE IF EXISTS `ll_dispatch_pallet_lock`;
|
||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||
/*!50503 SET character_set_client = utf8mb4 */;
|
||
CREATE TABLE `ll_dispatch_pallet_lock` (
|
||
`id` bigint NOT NULL COMMENT 'Snowflake ID',
|
||
`tenant_id` varchar(128) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT 'BAIYUE' COMMENT 'SaaS租户标识,当前单租户固定为BAIYUE',
|
||
`customer_id` varchar(128) COLLATE utf8mb4_unicode_ci NOT NULL,
|
||
`source_pallet_key` varchar(160) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT 'PLAN:{planPalletId} or RECEIVED:{warehousePalletId}',
|
||
`active_key` varchar(160) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT 'Equals source key only while lock is active',
|
||
`plan_id` bigint DEFAULT NULL,
|
||
`plan_pallet_id` bigint DEFAULT NULL,
|
||
`warehouse_pallet_id` bigint DEFAULT NULL,
|
||
`dispatch_order_id` bigint DEFAULT NULL COMMENT '正式派车单ID,草稿锁阶段为空',
|
||
`draft_container_id` bigint DEFAULT NULL COMMENT '智能排车草稿装车托盘ID',
|
||
`draft_token` varchar(64) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '智能排车草稿随机标识',
|
||
`operator_id` varchar(128) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '草稿锁操作人ID',
|
||
`status` varchar(32) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT 'ACTIVE',
|
||
`locked_at` datetime(3) NOT NULL,
|
||
`expires_at` datetime(3) DEFAULT NULL COMMENT '草稿锁失效时间,正式派车锁为空',
|
||
`released_at` datetime(3) DEFAULT NULL,
|
||
`created_at` datetime(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3),
|
||
`updated_at` datetime(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3),
|
||
`return_receipt_id` bigint DEFAULT NULL COMMENT '明确选用的真实退回入仓来源',
|
||
PRIMARY KEY (`id`),
|
||
UNIQUE KEY `uk_ll_dispatch_active_pallet` (`customer_id`,`active_key`),
|
||
KEY `idx_ll_dispatch_pallet_lock_order` (`customer_id`,`dispatch_order_id`,`status`),
|
||
KEY `idx_ll_dispatch_pallet_lock_source` (`customer_id`,`source_pallet_key`,`status`)
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='Active dispatch pallet exclusion lock';
|
||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||
DROP TABLE IF EXISTS `ll_dispatch_pda_operation`;
|
||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||
/*!50503 SET character_set_client = utf8mb4 */;
|
||
CREATE TABLE `ll_dispatch_pda_operation` (
|
||
`id` bigint NOT NULL,
|
||
`tenant_id` varchar(128) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT 'BAIYUE' COMMENT 'SaaS租户标识,当前单租户固定为BAIYUE',
|
||
`customer_id` varchar(128) COLLATE utf8mb4_unicode_ci NOT NULL,
|
||
`task_id` bigint DEFAULT NULL,
|
||
`operation_type` varchar(32) COLLATE utf8mb4_unicode_ci NOT NULL,
|
||
`idempotency_key` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL,
|
||
`request_hash` char(64) COLLATE utf8mb4_unicode_ci NOT NULL,
|
||
`result_json` longtext COLLATE utf8mb4_unicode_ci,
|
||
`status` varchar(32) COLLATE utf8mb4_unicode_ci NOT NULL,
|
||
`created_at` datetime(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3),
|
||
`updated_at` datetime(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3),
|
||
PRIMARY KEY (`id`),
|
||
UNIQUE KEY `uk_ll_dispatch_pda_operation_key` (`customer_id`,`idempotency_key`)
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='Idempotent dispatch PDA operations';
|
||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||
DROP TABLE IF EXISTS `ll_dispatch_pda_pick`;
|
||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||
/*!50503 SET character_set_client = utf8mb4 */;
|
||
CREATE TABLE `ll_dispatch_pda_pick` (
|
||
`id` bigint NOT NULL,
|
||
`tenant_id` varchar(128) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT 'BAIYUE' COMMENT 'SaaS租户标识,当前单租户固定为BAIYUE',
|
||
`customer_id` varchar(128) COLLATE utf8mb4_unicode_ci NOT NULL,
|
||
`task_id` bigint NOT NULL,
|
||
`dispatch_item_id` bigint NOT NULL,
|
||
`inventory_position_id` bigint DEFAULT NULL COMMENT '普通库存仓位记录ID',
|
||
`packages` bigint NOT NULL,
|
||
`product_quantity` bigint NOT NULL DEFAULT '0',
|
||
`idempotency_key` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL,
|
||
`picked_at` datetime(3) NOT NULL,
|
||
`created_at` datetime(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3),
|
||
`return_carton_id` bigint DEFAULT NULL COMMENT '独立退货库存箱ID,与普通仓位互斥',
|
||
PRIMARY KEY (`id`),
|
||
UNIQUE KEY `uk_ll_dispatch_pda_pick_key` (`customer_id`,`idempotency_key`),
|
||
KEY `idx_ll_dispatch_pda_pick_item` (`customer_id`,`task_id`,`dispatch_item_id`)
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='Immutable dispatch PDA pallet package picks';
|
||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||
DROP TABLE IF EXISTS `ll_dispatch_pda_pick_order`;
|
||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||
/*!50503 SET character_set_client = utf8mb4 */;
|
||
CREATE TABLE `ll_dispatch_pda_pick_order` (
|
||
`id` bigint NOT NULL,
|
||
`tenant_id` varchar(128) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT 'BAIYUE' COMMENT 'SaaS租户标识,当前单租户固定为BAIYUE',
|
||
`customer_id` varchar(128) COLLATE utf8mb4_unicode_ci NOT NULL,
|
||
`pick_id` bigint NOT NULL,
|
||
`receipt_id` bigint DEFAULT NULL COMMENT '原入仓实收来源,与退回来源或原生退货箱互斥',
|
||
`order_id` bigint NOT NULL,
|
||
`packages` bigint NOT NULL,
|
||
`product_quantity` bigint NOT NULL DEFAULT '0',
|
||
`created_at` datetime(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3),
|
||
`return_carton_id` bigint DEFAULT NULL COMMENT '原生退货箱来源ID,与实收来源互斥',
|
||
`return_receipt_id` bigint DEFAULT NULL COMMENT '明确选用的真实退回入仓来源',
|
||
PRIMARY KEY (`id`),
|
||
KEY `idx_ll_dispatch_pick_order_pick` (`customer_id`,`pick_id`),
|
||
KEY `idx_ll_dispatch_pick_order_receipt` (`customer_id`,`receipt_id`),
|
||
CONSTRAINT `chk_dispatch_pick_receipt_source` CHECK (((((`receipt_id` is not null) + (`return_receipt_id` is not null)) + (`return_carton_id` is not null)) = 1))
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='PDA pick attribution to frozen inbound receipt and tail order';
|
||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||
DROP TABLE IF EXISTS `ll_dispatch_pda_task`;
|
||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||
/*!50503 SET character_set_client = utf8mb4 */;
|
||
CREATE TABLE `ll_dispatch_pda_task` (
|
||
`id` bigint NOT NULL,
|
||
`tenant_id` varchar(128) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT 'BAIYUE' COMMENT 'SaaS租户标识,当前单租户固定为BAIYUE',
|
||
`customer_id` varchar(128) COLLATE utf8mb4_unicode_ci NOT NULL,
|
||
`dispatch_order_id` bigint NOT NULL,
|
||
`task_no` varchar(64) COLLATE utf8mb4_unicode_ci NOT NULL,
|
||
`status` varchar(32) COLLATE utf8mb4_unicode_ci NOT NULL,
|
||
`operator_id` varchar(128) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
|
||
`operator_name` varchar(128) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
|
||
`warehouse_id` varchar(128) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
|
||
`pushed_at` datetime(3) NOT NULL,
|
||
`completed_at` datetime(3) DEFAULT NULL,
|
||
`created_at` datetime(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3),
|
||
`updated_at` datetime(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3),
|
||
PRIMARY KEY (`id`),
|
||
UNIQUE KEY `uk_ll_dispatch_pda_task_dispatch` (`customer_id`,`dispatch_order_id`),
|
||
UNIQUE KEY `uk_ll_dispatch_pda_task_no` (`customer_id`,`task_no`)
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='PDA task for a pre-arranged dispatch';
|
||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||
DROP TABLE IF EXISTS `ll_dropship_carton`;
|
||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||
/*!50503 SET character_set_client = utf8mb4 */;
|
||
CREATE TABLE `ll_dropship_carton` (
|
||
`id` bigint NOT NULL,
|
||
`tenant_id` varchar(128) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT 'BAIYUE' COMMENT 'SaaS租户标识,当前单租户固定为BAIYUE',
|
||
`customer_id` varchar(128) COLLATE utf8mb4_unicode_ci NOT NULL,
|
||
`order_id` bigint NOT NULL,
|
||
`profile_id` bigint NOT NULL,
|
||
`warehouse_pallet_id` bigint DEFAULT NULL,
|
||
`pallet_no` varchar(128) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
|
||
`sku_code` varchar(128) COLLATE utf8mb4_unicode_ci NOT NULL,
|
||
`carton_mark` varchar(128) COLLATE utf8mb4_unicode_ci NOT NULL,
|
||
`carton_sequence` int NOT NULL,
|
||
`status` varchar(32) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT 'AVAILABLE',
|
||
`outbound_order_no` varchar(128) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
|
||
`version` bigint NOT NULL DEFAULT '0',
|
||
`created_at` datetime(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3),
|
||
`updated_at` datetime(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3),
|
||
PRIMARY KEY (`id`),
|
||
UNIQUE KEY `uk_ll_dropship_carton` (`customer_id`,`order_id`,`carton_mark`),
|
||
KEY `idx_ll_dropship_carton_status` (`customer_id`,`status`),
|
||
KEY `idx_ll_dropship_carton_sku` (`customer_id`,`sku_code`,`status`)
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
|
||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||
DROP TABLE IF EXISTS `ll_dropship_carton_ledger`;
|
||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||
/*!50503 SET character_set_client = utf8mb4 */;
|
||
CREATE TABLE `ll_dropship_carton_ledger` (
|
||
`id` bigint NOT NULL,
|
||
`tenant_id` varchar(128) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT 'BAIYUE' COMMENT 'SaaS租户标识,当前单租户固定为BAIYUE',
|
||
`customer_id` varchar(128) COLLATE utf8mb4_unicode_ci NOT NULL,
|
||
`order_id` bigint NOT NULL,
|
||
`carton_id` bigint NOT NULL,
|
||
`carton_mark` varchar(128) COLLATE utf8mb4_unicode_ci NOT NULL,
|
||
`sku_code` varchar(128) COLLATE utf8mb4_unicode_ci NOT NULL,
|
||
`operation_type` varchar(32) COLLATE utf8mb4_unicode_ci NOT NULL,
|
||
`before_packages` bigint NOT NULL,
|
||
`delta_packages` bigint NOT NULL,
|
||
`after_packages` bigint NOT NULL,
|
||
`business_order_no` varchar(128) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
|
||
`idempotency_key` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL,
|
||
`remark` varchar(1000) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
|
||
`occurred_at` datetime(3) NOT NULL,
|
||
`created_at` datetime(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3),
|
||
PRIMARY KEY (`id`),
|
||
UNIQUE KEY `uk_ll_dropship_ledger_key` (`customer_id`,`idempotency_key`),
|
||
KEY `idx_ll_dropship_ledger_sku` (`customer_id`,`sku_code`,`carton_mark`)
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
|
||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||
DROP TABLE IF EXISTS `ll_dropship_carton_sku`;
|
||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||
/*!50503 SET character_set_client = utf8mb4 */;
|
||
CREATE TABLE `ll_dropship_carton_sku` (
|
||
`id` bigint NOT NULL COMMENT '主键ID',
|
||
`customer_id` varchar(128) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '客户数据隔离键',
|
||
`order_id` bigint NOT NULL COMMENT '尾程订单ID',
|
||
`profile_id` bigint NOT NULL COMMENT '一件代发托盘档案ID',
|
||
`carton_id` bigint NOT NULL COMMENT '一件代发物理箱ID',
|
||
`sku_code` varchar(128) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '箱内SKU编码',
|
||
`product_name` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '产品名称快照',
|
||
`product_quantity` bigint NOT NULL COMMENT '该物理箱内此SKU实收件数',
|
||
`created_at` datetime(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) COMMENT '创建时间',
|
||
`updated_at` datetime(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3) COMMENT '更新时间',
|
||
PRIMARY KEY (`id`),
|
||
UNIQUE KEY `uk_ll_dropship_carton_sku` (`carton_id`,`sku_code`),
|
||
KEY `idx_ll_dropship_carton_sku_order` (`customer_id`,`order_id`,`sku_code`),
|
||
KEY `idx_ll_dropship_carton_sku_profile` (`customer_id`,`profile_id`,`sku_code`)
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='一件代发物理箱内SKU明细';
|
||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||
DROP TABLE IF EXISTS `ll_dropship_order_profile`;
|
||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||
/*!50503 SET character_set_client = utf8mb4 */;
|
||
CREATE TABLE `ll_dropship_order_profile` (
|
||
`id` bigint NOT NULL,
|
||
`tenant_id` varchar(128) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT 'BAIYUE' COMMENT 'SaaS租户标识,当前单租户固定为BAIYUE',
|
||
`customer_id` varchar(128) COLLATE utf8mb4_unicode_ci NOT NULL,
|
||
`order_id` bigint NOT NULL,
|
||
`warehouse_pallet_id` bigint DEFAULT NULL,
|
||
`pallet_no` varchar(128) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
|
||
`source_pallet_no` varchar(128) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT 'Pallet number snapshot supplied by first-leg handover',
|
||
`inventory_position_id` bigint DEFAULT NULL,
|
||
`status` varchar(32) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT 'RECEIVED',
|
||
`idempotency_key` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL,
|
||
`version` bigint NOT NULL DEFAULT '0',
|
||
`created_at` datetime(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3),
|
||
`updated_at` datetime(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3),
|
||
PRIMARY KEY (`id`),
|
||
UNIQUE KEY `uk_ll_dropship_profile_key` (`customer_id`,`idempotency_key`),
|
||
UNIQUE KEY `uk_ll_dropship_profile_order_pallet` (`customer_id`,`order_id`,`source_pallet_no`),
|
||
KEY `idx_ll_dropship_profile_order` (`customer_id`,`order_id`)
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
|
||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||
DROP TABLE IF EXISTS `ll_dropship_sku_inventory`;
|
||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||
/*!50503 SET character_set_client = utf8mb4 */;
|
||
CREATE TABLE `ll_dropship_sku_inventory` (
|
||
`id` bigint NOT NULL,
|
||
`tenant_id` varchar(128) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT 'BAIYUE' COMMENT 'SaaS租户标识,当前单租户固定为BAIYUE',
|
||
`customer_id` varchar(128) COLLATE utf8mb4_unicode_ci NOT NULL,
|
||
`order_id` bigint NOT NULL,
|
||
`profile_id` bigint NOT NULL,
|
||
`sku_code` varchar(128) COLLATE utf8mb4_unicode_ci NOT NULL,
|
||
`product_name` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
|
||
`package_count` bigint NOT NULL,
|
||
`product_quantity` bigint NOT NULL,
|
||
`created_at` datetime(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3),
|
||
`updated_at` datetime(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3),
|
||
PRIMARY KEY (`id`),
|
||
UNIQUE KEY `uk_ll_dropship_sku_profile` (`profile_id`,`sku_code`),
|
||
KEY `idx_ll_dropship_sku_order` (`customer_id`,`order_id`,`sku_code`)
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
|
||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||
DROP TABLE IF EXISTS `ll_event_conflict`;
|
||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||
/*!50503 SET character_set_client = utf8mb4 */;
|
||
CREATE TABLE `ll_event_conflict` (
|
||
`id` bigint NOT NULL COMMENT '冲突记录主键',
|
||
`tenant_id` varchar(128) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT 'BAIYUE' COMMENT 'SaaS租户标识,当前单租户固定为BAIYUE',
|
||
`event_id` varchar(128) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '冲突事件 ID',
|
||
`customer_id` bigint NOT NULL COMMENT '租户 ID',
|
||
`conflict_type` varchar(64) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '冲突类型',
|
||
`conflict_message` varchar(512) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '冲突说明',
|
||
`created_at` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
||
PRIMARY KEY (`id`),
|
||
KEY `idx_ll_conflict_event` (`event_id`,`customer_id`)
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='事件冲突记录';
|
||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||
DROP TABLE IF EXISTS `ll_event_inbox`;
|
||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||
/*!50503 SET character_set_client = utf8mb4 */;
|
||
CREATE TABLE `ll_event_inbox` (
|
||
`id` bigint NOT NULL COMMENT '事件接收记录主键',
|
||
`tenant_id` varchar(128) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT 'BAIYUE' COMMENT 'SaaS租户标识,当前单租户固定为BAIYUE',
|
||
`event_id` varchar(128) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '事件全局唯一 ID',
|
||
`customer_id` bigint NOT NULL COMMENT '租户 ID',
|
||
`event_type` varchar(128) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '事件类型',
|
||
`aggregate_type` varchar(64) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '聚合类型',
|
||
`aggregate_id` varchar(128) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '聚合 ID',
|
||
`aggregate_version` bigint NOT NULL COMMENT '聚合版本',
|
||
`payload_hash` varchar(71) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '负载摘要',
|
||
`status` varchar(32) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '消费状态',
|
||
`error_message` varchar(512) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '错误信息',
|
||
`created_at` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
||
`updated_at` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
|
||
PRIMARY KEY (`id`),
|
||
UNIQUE KEY `uk_ll_inbox_event` (`event_id`),
|
||
KEY `idx_ll_inbox_source` (`customer_id`,`aggregate_id`)
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='通用事件接收幂等箱';
|
||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||
DROP TABLE IF EXISTS `ll_event_outbox`;
|
||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||
/*!50503 SET character_set_client = utf8mb4 */;
|
||
CREATE TABLE `ll_event_outbox` (
|
||
`id` bigint NOT NULL COMMENT '事件主键ID',
|
||
`customer_id` varchar(128) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '客户租户ID',
|
||
`aggregate_type` varchar(64) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '聚合类型',
|
||
`aggregate_id` varchar(128) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '聚合标识',
|
||
`event_type` varchar(64) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '事件类型',
|
||
`event_version` int NOT NULL COMMENT '事件版本',
|
||
`event_key` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '业务幂等键',
|
||
`payload_json` longtext COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '事件载荷JSON',
|
||
`status` varchar(32) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT 'PENDING' COMMENT '发布状态',
|
||
`retry_count` int NOT NULL DEFAULT '0' COMMENT '重试次数',
|
||
`next_retry_at` datetime(3) DEFAULT NULL COMMENT '下次重试时间',
|
||
`published_at` datetime(3) DEFAULT NULL COMMENT '发布时间',
|
||
`locked_at` datetime(3) DEFAULT NULL COMMENT '投递租约获取时间',
|
||
`locked_by` varchar(128) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '投递租约持有者',
|
||
`last_error` varchar(1000) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '最后一次发布错误',
|
||
`created_at` datetime(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) COMMENT '创建时间',
|
||
PRIMARY KEY (`id`),
|
||
UNIQUE KEY `uk_ll_event_outbox_key` (`event_key`),
|
||
KEY `idx_ll_event_outbox_publish` (`status`,`next_retry_at`,`created_at`)
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='尾程跨区业务事件发件箱';
|
||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||
DROP TABLE IF EXISTS `ll_exception_order`;
|
||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||
/*!50503 SET character_set_client = utf8mb4 */;
|
||
CREATE TABLE `ll_exception_order` (
|
||
`id` bigint NOT NULL,
|
||
`customer_id` varchar(128) COLLATE utf8mb4_unicode_ci NOT NULL,
|
||
`exception_no` varchar(64) COLLATE utf8mb4_unicode_ci NOT NULL,
|
||
`exception_type` varchar(32) COLLATE utf8mb4_unicode_ci NOT NULL,
|
||
`status` varchar(32) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT 'PENDING',
|
||
`reason` varchar(1000) COLLATE utf8mb4_unicode_ci NOT NULL,
|
||
`last_mile_order_id` bigint DEFAULT NULL,
|
||
`last_mile_order_no` varchar(64) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
|
||
`inbound_order_id` bigint DEFAULT NULL,
|
||
`inbound_code` varchar(128) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
|
||
`delivery_order_id` bigint DEFAULT NULL,
|
||
`delivery_no` varchar(64) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
|
||
`outbound_no` varchar(64) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
|
||
`customer_name` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
|
||
`overseas_warehouse_id` varchar(128) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
|
||
`overseas_warehouse_name` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
|
||
`sku_code` varchar(128) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
|
||
`package_count` int DEFAULT NULL,
|
||
`return_direction` varchar(32) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
|
||
`return_logistics_no` varchar(128) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
|
||
`handling_action` varchar(500) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
|
||
`handling_result` varchar(2000) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '异常处理结果',
|
||
`evidence_file_ids_json` json DEFAULT NULL COMMENT '异常处理证据文件ID列表',
|
||
`inventory_adjustment_id` bigint DEFAULT NULL COMMENT '退回库存恢复操作ID',
|
||
`handler_id` varchar(128) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
|
||
`handler_name` varchar(128) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
|
||
`source_type` varchar(32) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT 'MANUAL',
|
||
`created_by` varchar(128) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
|
||
`exception_at` datetime(3) NOT NULL,
|
||
`completed_at` datetime(3) DEFAULT NULL COMMENT '异常处理完成时间',
|
||
`version` bigint NOT NULL DEFAULT '0' COMMENT '异常订单乐观锁版本',
|
||
`created_at` datetime(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3),
|
||
`updated_at` datetime(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3),
|
||
PRIMARY KEY (`id`),
|
||
UNIQUE KEY `uk_ll_exception_no` (`customer_id`,`exception_no`),
|
||
UNIQUE KEY `uk_ll_exception_delivery_return` (`customer_id`,`delivery_order_id`,`exception_type`),
|
||
KEY `idx_ll_exception_list` (`customer_id`,`status`,`exception_at`),
|
||
KEY `idx_ll_exception_tail` (`customer_id`,`last_mile_order_no`),
|
||
KEY `idx_ll_exception_inbound` (`customer_id`,`inbound_code`)
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='海外仓异常订单';
|
||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||
DROP TABLE IF EXISTS `ll_exception_order_command`;
|
||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||
/*!50503 SET character_set_client = utf8mb4 */;
|
||
CREATE TABLE `ll_exception_order_command` (
|
||
`id` bigint NOT NULL COMMENT '异常处理命令ID',
|
||
`customer_id` varchar(128) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '客户数据隔离键',
|
||
`exception_order_id` bigint NOT NULL COMMENT '异常订单ID',
|
||
`action` varchar(32) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '异常处理动作',
|
||
`idempotency_key` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '幂等键',
|
||
`request_hash` varchar(64) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '请求内容SHA256哈希',
|
||
`result_json` json NOT NULL COMMENT '命令结果快照',
|
||
`created_at` datetime(3) NOT NULL COMMENT '创建时间',
|
||
PRIMARY KEY (`id`),
|
||
UNIQUE KEY `uk_ll_exception_command_key` (`customer_id`,`action`,`idempotency_key`),
|
||
KEY `idx_ll_exception_command_order` (`customer_id`,`exception_order_id`,`created_at`)
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='异常处理命令幂等审计';
|
||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||
DROP TABLE IF EXISTS `ll_exception_return_item`;
|
||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||
/*!50503 SET character_set_client = utf8mb4 */;
|
||
CREATE TABLE `ll_exception_return_item` (
|
||
`id` bigint NOT NULL COMMENT '异常退回明细ID',
|
||
`customer_id` varchar(128) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '客户数据隔离键',
|
||
`exception_order_id` bigint NOT NULL COMMENT '异常订单ID',
|
||
`outbound_pallet_item_id` bigint NOT NULL COMMENT '原出库托盘明细ID',
|
||
`inventory_position_id` bigint NOT NULL COMMENT '原出库库存位置ID',
|
||
`pallet_no` varchar(128) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '原出库托盘码快照',
|
||
`sku_code` varchar(128) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '原出库SKU快照',
|
||
`max_return_packages` bigint NOT NULL COMMENT '原出库可退箱数上限',
|
||
`approved_return_packages` bigint NOT NULL COMMENT '批准退回箱数',
|
||
`created_at` datetime(3) NOT NULL COMMENT '创建时间',
|
||
PRIMARY KEY (`id`),
|
||
UNIQUE KEY `uk_ll_exception_return_source` (`customer_id`,`exception_order_id`,`outbound_pallet_item_id`,`inventory_position_id`),
|
||
KEY `idx_ll_exception_return_order` (`customer_id`,`exception_order_id`)
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='异常退回原出库库存冻结明细';
|
||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||
DROP TABLE IF EXISTS `ll_finance_fee_command`;
|
||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||
/*!50503 SET character_set_client = utf8mb4 */;
|
||
CREATE TABLE `ll_finance_fee_command` (
|
||
`id` bigint NOT NULL COMMENT '幂等命令ID',
|
||
`operator_id` varchar(128) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '操作人ID',
|
||
`action` varchar(16) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT 'CREATE、SUBMIT、REVIEW、ADJUST或VOID',
|
||
`idempotency_key` varchar(128) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '操作幂等键',
|
||
`request_hash` char(64) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '请求内容SHA-256',
|
||
`source_fee_id` bigint NOT NULL COMMENT '稳定费用来源ID',
|
||
`source_version` int NOT NULL COMMENT '命令结果版本',
|
||
`created_at` datetime(3) NOT NULL COMMENT '命令创建时间',
|
||
PRIMARY KEY (`id`),
|
||
UNIQUE KEY `uk_ll_finance_fee_command` (`operator_id`,`action`,`idempotency_key`),
|
||
KEY `idx_ll_finance_fee_command_source` (`source_fee_id`,`source_version`)
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='海外费用来源写操作幂等审计';
|
||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||
DROP TABLE IF EXISTS `ll_finance_fee_source`;
|
||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||
/*!50503 SET character_set_client = utf8mb4 */;
|
||
CREATE TABLE `ll_finance_fee_source` (
|
||
`id` bigint NOT NULL COMMENT '费用版本记录ID',
|
||
`source_fee_id` bigint NOT NULL COMMENT '跨版本稳定费用来源ID',
|
||
`source_version` int NOT NULL COMMENT '费用来源版本,从1递增',
|
||
`customer_id` varchar(128) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '客户ID和隔离键',
|
||
`customer_name` varchar(200) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '客户名称快照',
|
||
`source_type` varchar(64) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '海外费用来源类型',
|
||
`source_no` varchar(128) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '来源业务编号或入仓码快照',
|
||
`business_type` varchar(32) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '来源业务类型',
|
||
`business_id` bigint DEFAULT NULL COMMENT '来源业务记录ID',
|
||
`business_no` varchar(128) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '来源业务编号',
|
||
`order_id` bigint DEFAULT NULL COMMENT '关联订单ID',
|
||
`inbound_id` bigint DEFAULT NULL COMMENT '关联海外入仓计划或入仓记录ID',
|
||
`inbound_code` varchar(64) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '关联入仓码;并非所有费用必填',
|
||
`container_id` bigint DEFAULT NULL COMMENT '关联柜次ID',
|
||
`container_booking_id` bigint DEFAULT NULL COMMENT '来源订舱柜ID',
|
||
`container_no` varchar(64) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '真实集装箱号快照',
|
||
`warehouse_id` bigint DEFAULT NULL COMMENT '关联海外仓ID',
|
||
`fee_item_code` varchar(64) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '费用项目编码快照',
|
||
`fee_item_name` varchar(200) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '费用项目名称快照',
|
||
`direction` varchar(16) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT 'RECEIVABLE应收或PAYABLE应付',
|
||
`supplier_id` bigint DEFAULT NULL COMMENT '应付供应商ID',
|
||
`supplier_name` varchar(200) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '应付供应商名称快照',
|
||
`supplier_category` varchar(32) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '应付供应商类别约束',
|
||
`settlement_mode` varchar(16) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT 'ON_ACCOUNT账期应付或DIRECT_PAID业务已付',
|
||
`paid_at` datetime(3) DEFAULT NULL COMMENT '直接已付时间',
|
||
`payment_method` varchar(32) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '直接已付方式',
|
||
`payment_reference_no` varchar(128) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '直接已付流水号',
|
||
`payment_voucher_file_ids` json DEFAULT NULL COMMENT '直接已付凭证文件ID快照',
|
||
`wallet_settlement` json DEFAULT NULL COMMENT '已实扣应收的Finance资金命令、冻结和消费流水引用',
|
||
`business_date` date NOT NULL COMMENT '费用业务日期',
|
||
`currency` char(3) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT 'CNY' COMMENT '财务结算币种,当前固定CNY',
|
||
`amount` decimal(20,6) NOT NULL COMMENT '费用金额',
|
||
`review_status` varchar(16) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT 'DRAFT、PENDING、APPROVED或REJECTED',
|
||
`publication_status` varchar(16) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT 'UNPUBLISHED或PUBLISHED',
|
||
`source_status` varchar(16) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT 'ACTIVE、SUPERSEDED或VOIDED',
|
||
`review_reason` varchar(500) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '审核或作废原因',
|
||
`reviewer_id` varchar(128) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '审核人ID',
|
||
`reviewed_at` datetime(3) DEFAULT NULL COMMENT '审核时间',
|
||
`created_by` varchar(128) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '创建人ID',
|
||
`updated_by` varchar(128) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '最后更新人ID',
|
||
`created_at` datetime(3) NOT NULL COMMENT '创建时间',
|
||
`updated_at` datetime(3) NOT NULL COMMENT '最后更新时间',
|
||
`original_currency` varchar(8) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT 'CNY' COMMENT '原币币种',
|
||
`original_amount` decimal(18,2) NOT NULL DEFAULT '0.00' COMMENT '原币金额',
|
||
`exchange_rate` decimal(18,8) NOT NULL DEFAULT '1.00000000' COMMENT '原币折算CNY汇率',
|
||
`exchange_rate_month` char(7) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '汇率月份YYYY-MM',
|
||
`chargeable_quantity` decimal(18,4) DEFAULT NULL COMMENT '计费数量',
|
||
`quantity_unit` varchar(32) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '计费单位',
|
||
`unit_price` decimal(18,4) DEFAULT NULL COMMENT '原币单价',
|
||
`period_start` date DEFAULT NULL COMMENT '周期费用开始日期',
|
||
`period_end` date DEFAULT NULL COMMENT '周期费用结束日期',
|
||
PRIMARY KEY (`id`),
|
||
UNIQUE KEY `uk_ll_finance_fee_version` (`source_fee_id`,`source_version`),
|
||
KEY `idx_ll_finance_fee_customer` (`customer_id`,`source_status`,`created_at`),
|
||
KEY `idx_ll_finance_fee_business` (`business_type`,`business_no`,`created_at`),
|
||
KEY `idx_ll_finance_fee_container_customer` (`container_booking_id`,`customer_id`,`source_status`,`created_at`),
|
||
CONSTRAINT `chk_ll_finance_fee_amount` CHECK ((`amount` > 0)),
|
||
CONSTRAINT `chk_ll_finance_fee_currency` CHECK ((`currency` = _utf8mb4'CNY')),
|
||
CONSTRAINT `chk_ll_finance_fee_direction` CHECK ((`direction` in (_utf8mb4'RECEIVABLE',_utf8mb4'PAYABLE'))),
|
||
CONSTRAINT `chk_ll_finance_fee_publication` CHECK ((`publication_status` in (_utf8mb4'UNPUBLISHED',_utf8mb4'PUBLISHED'))),
|
||
CONSTRAINT `chk_ll_finance_fee_review` CHECK ((`review_status` in (_utf8mb4'DRAFT',_utf8mb4'PENDING',_utf8mb4'APPROVED',_utf8mb4'REJECTED'))),
|
||
CONSTRAINT `chk_ll_finance_fee_status` CHECK ((`source_status` in (_utf8mb4'ACTIVE',_utf8mb4'SUPERSEDED',_utf8mb4'VOIDED')))
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='海外业务不可变费用来源版本;发布后经跨区事件进入Finance';
|
||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||
DROP TABLE IF EXISTS `ll_fleet_capacity_offer`;
|
||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||
/*!50503 SET character_set_client = utf8mb4 */;
|
||
CREATE TABLE `ll_fleet_capacity_offer` (
|
||
`id` bigint NOT NULL COMMENT '内部主键',
|
||
`offer_no` varchar(64) NOT NULL COMMENT '拼车运力发布业务编号',
|
||
`trip_id` bigint NOT NULL COMMENT '唯一所属车次',
|
||
`trip_no` varchar(64) NOT NULL COMMENT '车次业务编号',
|
||
`status` varchar(16) NOT NULL COMMENT '发布状态:草稿、开放、暂停、关闭',
|
||
`cutoff_at` datetime(3) NOT NULL COMMENT '最晚交货及新询价截止UTC时间',
|
||
`contact_name` varchar(128) DEFAULT NULL COMMENT '对内部销售公开的调度联系人',
|
||
`contact_phone` varchar(128) DEFAULT NULL COMMENT '对内部销售公开的调度联系电话',
|
||
`remark` varchar(1000) DEFAULT NULL COMMENT '公开承运说明',
|
||
`published_fingerprint` char(64) DEFAULT NULL COMMENT '已核对路线车辆及容量计划事实摘要',
|
||
`record_version` bigint NOT NULL DEFAULT '0' COMMENT '乐观锁版本',
|
||
`created_by` varchar(64) NOT NULL COMMENT '创建人',
|
||
`created_at` datetime(3) NOT NULL COMMENT '创建UTC时间',
|
||
`updated_by` varchar(64) NOT NULL COMMENT '修改人',
|
||
`updated_at` datetime(3) NOT NULL COMMENT '修改UTC时间',
|
||
PRIMARY KEY (`id`),
|
||
UNIQUE KEY `uk_fleet_capacity_offer_no` (`offer_no`),
|
||
UNIQUE KEY `uk_fleet_capacity_offer_trip` (`trip_id`),
|
||
KEY `idx_fleet_capacity_offer_status` (`status`,`cutoff_at`,`id`),
|
||
CONSTRAINT `fk_fleet_capacity_offer_trip` FOREIGN KEY (`trip_id`) REFERENCES `ll_fleet_trip` (`id`),
|
||
CONSTRAINT `chk_fleet_capacity_offer_status` CHECK ((`status` in (_utf8mb4'DRAFT',_utf8mb4'OPEN',_utf8mb4'PAUSED',_utf8mb4'CLOSED')))
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='内部拼车车次余位发布;容量实时计算不在此另存';
|
||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||
DROP TABLE IF EXISTS `ll_fleet_capacity_offer_command`;
|
||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||
/*!50503 SET character_set_client = utf8mb4 */;
|
||
CREATE TABLE `ll_fleet_capacity_offer_command` (
|
||
`id` bigint NOT NULL COMMENT '内部主键',
|
||
`trip_id` bigint NOT NULL COMMENT '所属车次锁作用域',
|
||
`operator_id` varchar(64) NOT NULL COMMENT '原请求操作者',
|
||
`action` varchar(32) NOT NULL COMMENT '业务命令类型',
|
||
`scope_no` varchar(64) NOT NULL COMMENT '发布或预订业务编号作用域',
|
||
`idempotency_key` varchar(128) NOT NULL COMMENT '原请求幂等键',
|
||
`request_hash` char(64) NOT NULL COMMENT '原请求业务内容摘要',
|
||
`result_json` json NOT NULL COMMENT '成功命令原始结果用于精确重放',
|
||
`created_at` datetime(3) NOT NULL COMMENT '命令完成UTC时间',
|
||
PRIMARY KEY (`id`),
|
||
UNIQUE KEY `uk_fleet_capacity_offer_command` (`trip_id`,`operator_id`,`action`,`scope_no`,`idempotency_key`),
|
||
CONSTRAINT `fk_fleet_capacity_command_trip` FOREIGN KEY (`trip_id`) REFERENCES `ll_fleet_trip` (`id`)
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='拼车发布及销售意向持久幂等结果';
|
||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||
DROP TABLE IF EXISTS `ll_fleet_driver`;
|
||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||
/*!50503 SET character_set_client = utf8mb4 */;
|
||
CREATE TABLE `ll_fleet_driver` (
|
||
`id` bigint NOT NULL COMMENT '内部主键',
|
||
`driver_no` varchar(32) NOT NULL COMMENT '司机业务编号',
|
||
`warehouse_id` bigint DEFAULT NULL COMMENT '所属公共仓库引用',
|
||
`warehouse_code` varchar(64) DEFAULT NULL COMMENT '所属仓库编码快照',
|
||
`warehouse_name` varchar(256) DEFAULT NULL COMMENT '所属仓库名称快照',
|
||
`vehicle_models` varchar(128) DEFAULT NULL COMMENT '可驾驶车型描述',
|
||
`languages_and_area` varchar(256) DEFAULT NULL COMMENT '语言及服务区域',
|
||
`medical_expires_on` date DEFAULT NULL COMMENT '体检到期日,当前不作为必需资质',
|
||
`training_expires_on` date DEFAULT NULL COMMENT '培训安全到期日,当前不作为必需资质',
|
||
`insurance_expires_on` date DEFAULT NULL COMMENT '保险到期日,当前不作为必需资质',
|
||
`name` varchar(128) NOT NULL COMMENT '姓名',
|
||
`phone` varchar(64) NOT NULL COMMENT '联系电话',
|
||
`ownership` varchar(16) NOT NULL COMMENT '归属 OWNED自有 DISPATCHED外派',
|
||
`region` varchar(16) NOT NULL COMMENT '区域 DOMESTIC国内 OVERSEAS海外',
|
||
`active` tinyint(1) NOT NULL DEFAULT '1' COMMENT '是否启用',
|
||
`review_status` varchar(16) NOT NULL DEFAULT 'PENDING' COMMENT '证照审核 PENDING待审 APPROVED通过 REJECTED打回',
|
||
`license_number` varchar(128) DEFAULT NULL COMMENT '驾驶证编号',
|
||
`license_type` varchar(64) DEFAULT NULL COMMENT '驾驶证类型',
|
||
`license_issued_on` date DEFAULT NULL COMMENT '驾驶证签发日期',
|
||
`license_expires_on` date DEFAULT NULL COMMENT '驾驶证有效截止日',
|
||
`license_zone` varchar(64) NOT NULL COMMENT '证照有效日期的IANA时区',
|
||
`license_file_id` bigint DEFAULT NULL COMMENT '平台驾驶证文件引用',
|
||
`remark` varchar(1000) DEFAULT NULL COMMENT '备注',
|
||
`record_version` bigint NOT NULL DEFAULT '0' COMMENT '并发版本',
|
||
`created_by` varchar(64) NOT NULL COMMENT '创建人',
|
||
`created_at` datetime(3) NOT NULL COMMENT '创建时间UTC',
|
||
`updated_by` varchar(64) NOT NULL COMMENT '修改人',
|
||
`updated_at` datetime(3) NOT NULL COMMENT '修改时间UTC',
|
||
PRIMARY KEY (`id`),
|
||
UNIQUE KEY `uk_fleet_driver_no` (`driver_no`),
|
||
KEY `idx_fleet_driver_page` (`active`,`review_status`,`updated_at`,`id`),
|
||
KEY `idx_fleet_driver_expiry` (`license_expires_on`),
|
||
CONSTRAINT `chk_fleet_driver_dates` CHECK (((`license_issued_on` is null) or (`license_expires_on` is null) or (`license_issued_on` <= `license_expires_on`))),
|
||
CONSTRAINT `chk_fleet_driver_ownership` CHECK ((`ownership` in (_utf8mb4'OWNED',_utf8mb4'DISPATCHED'))),
|
||
CONSTRAINT `chk_fleet_driver_region` CHECK ((`region` in (_utf8mb4'DOMESTIC',_utf8mb4'OVERSEAS'))),
|
||
CONSTRAINT `chk_fleet_driver_review` CHECK ((`review_status` in (_utf8mb4'PENDING',_utf8mb4'APPROVED',_utf8mb4'REJECTED')))
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='平台司机档案';
|
||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||
DROP TABLE IF EXISTS `ll_fleet_driver_history`;
|
||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||
/*!50503 SET character_set_client = utf8mb4 */;
|
||
CREATE TABLE `ll_fleet_driver_history` (
|
||
`id` bigint NOT NULL COMMENT '内部主键',
|
||
`driver_id` bigint NOT NULL COMMENT '司机内部引用',
|
||
`record_version` bigint NOT NULL COMMENT '操作后的档案版本',
|
||
`action` varchar(32) NOT NULL COMMENT '创建编辑启停证照上传及审核动作',
|
||
`reason` varchar(1000) DEFAULT NULL COMMENT '操作原因或审核意见',
|
||
`license_file_id` bigint DEFAULT NULL COMMENT '当时驾驶证文件引用',
|
||
`snapshot_json` json NOT NULL COMMENT '操作后不可变档案快照',
|
||
`operator_id` varchar(64) NOT NULL COMMENT '操作人',
|
||
`occurred_at` datetime(3) NOT NULL COMMENT '操作时间UTC',
|
||
PRIMARY KEY (`id`),
|
||
UNIQUE KEY `uk_fleet_driver_history_version` (`driver_id`,`record_version`),
|
||
KEY `idx_fleet_driver_history_file` (`driver_id`,`license_file_id`),
|
||
CONSTRAINT `fk_fleet_driver_history_driver` FOREIGN KEY (`driver_id`) REFERENCES `ll_fleet_driver` (`id`)
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='司机档案及审核历史';
|
||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||
DROP TABLE IF EXISTS `ll_fleet_external_booking`;
|
||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||
/*!50503 SET character_set_client = utf8mb4 */;
|
||
CREATE TABLE `ll_fleet_external_booking` (
|
||
`id` bigint NOT NULL COMMENT '内部主键',
|
||
`booking_no` varchar(32) NOT NULL COMMENT '外接预订业务编号',
|
||
`trip_id` bigint NOT NULL COMMENT '所属车次',
|
||
`trip_no` varchar(32) NOT NULL COMMENT '车次业务编号',
|
||
`customer_id` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '委托客户及付款归属',
|
||
`customer_code` varchar(64) NOT NULL COMMENT '客户编号快照',
|
||
`customer_name` varchar(255) NOT NULL COMMENT '客户名称快照',
|
||
`status` varchar(16) NOT NULL COMMENT 'DRAFT询价/CONFIRMED占位/RECEIVED确认实收/BOUND关联发运/CANCELLED取消',
|
||
`cargo_json` json NOT NULL COMMENT '货物、计划载荷、联系人及约定报价快照',
|
||
`quote_source_json` json DEFAULT NULL COMMENT '选用销售报价的可信版本快照,与实际成交金额分开保存',
|
||
`destination_key` varchar(160) NOT NULL COMMENT '已有路线卸货站匹配键',
|
||
`destination_label` varchar(255) NOT NULL COMMENT '约定卸货站名称',
|
||
`agreed_amount` decimal(16,2) DEFAULT NULL COMMENT '约定金额,非已入账应收或实收',
|
||
`idempotency_key` varchar(128) NOT NULL COMMENT '登记请求键',
|
||
`request_hash` char(64) NOT NULL COMMENT '登记内容摘要',
|
||
`confirm_key` varchar(128) DEFAULT NULL COMMENT '承运确认请求键',
|
||
`confirm_hash` char(64) DEFAULT NULL COMMENT '承运确认摘要',
|
||
`cancel_key` varchar(128) DEFAULT NULL COMMENT '取消请求键',
|
||
`cancel_hash` char(64) DEFAULT NULL COMMENT '取消摘要',
|
||
`incoming_no` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '正式来货单业务编号',
|
||
`dispatch_no` varchar(64) DEFAULT NULL COMMENT '已关联客户排车业务编号',
|
||
`receipt_json` json DEFAULT NULL COMMENT '实测来源及运营确认的托位和运费依据',
|
||
`incoming_key` varchar(128) DEFAULT NULL COMMENT '来货登记请求键',
|
||
`incoming_hash` char(64) DEFAULT NULL COMMENT '来货登记摘要',
|
||
`receipt_key` varchar(128) DEFAULT NULL COMMENT '实收确认请求键',
|
||
`receipt_hash` char(64) DEFAULT NULL COMMENT '实收确认摘要',
|
||
`binding_key` varchar(128) DEFAULT NULL COMMENT '关联发运请求键',
|
||
`binding_hash` char(64) DEFAULT NULL COMMENT '关联发运摘要',
|
||
`offer_id` bigint DEFAULT NULL COMMENT '来源运力发布,普通车次预订为空',
|
||
`sales_owner_user_id` varchar(64) DEFAULT NULL COMMENT '登录身份冻结的销售负责人',
|
||
`business_type` varchar(32) DEFAULT NULL COMMENT '本土商业类型LOCAL_LOOSEBOARD或US_TRUCK',
|
||
`delivery_mode` varchar(32) DEFAULT NULL COMMENT '客户送仓或人工安排提货回仓',
|
||
`estimated_arrival_at` datetime(3) DEFAULT NULL COMMENT '预计实际到我仓UTC时间',
|
||
`expected_pallet_count` int DEFAULT NULL COMMENT '预计实托数,与托位分开且未知为空',
|
||
`record_version` bigint NOT NULL DEFAULT '0' COMMENT '记录版本',
|
||
`created_by` varchar(64) NOT NULL COMMENT '登记人',
|
||
`created_at` datetime(3) NOT NULL COMMENT '登记UTC时间',
|
||
`updated_by` varchar(64) NOT NULL COMMENT '修改人',
|
||
`updated_at` datetime(3) NOT NULL COMMENT '修改UTC时间',
|
||
PRIMARY KEY (`id`),
|
||
UNIQUE KEY `uk_fleet_booking_no` (`booking_no`),
|
||
UNIQUE KEY `uk_fleet_booking_create` (`trip_id`,`created_by`,`idempotency_key`),
|
||
UNIQUE KEY `uk_fleet_booking_incoming` (`incoming_no`),
|
||
KEY `idx_fleet_booking_offer` (`offer_id`,`status`,`id`),
|
||
KEY `idx_fleet_booking_sales` (`sales_owner_user_id`,`offer_id`,`id`),
|
||
KEY `idx_fleet_booking_trip` (`trip_id`,`status`,`id`),
|
||
KEY `idx_fleet_booking_dispatch` (`dispatch_no`),
|
||
CONSTRAINT `fk_fleet_booking_offer` FOREIGN KEY (`offer_id`) REFERENCES `ll_fleet_capacity_offer` (`id`),
|
||
CONSTRAINT `fk_fleet_booking_trip` FOREIGN KEY (`trip_id`) REFERENCES `ll_fleet_trip` (`id`),
|
||
CONSTRAINT `chk_fleet_booking_expected_pallet` CHECK (((`expected_pallet_count` is null) or (`expected_pallet_count` > 0))),
|
||
CONSTRAINT `chk_fleet_booking_status` CHECK ((`status` in (_utf8mb4'DRAFT',_utf8mb4'CONFIRMED',_utf8mb4'RECEIVED',_utf8mb4'BOUND',_utf8mb4'CANCELLED')))
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='外接询价及确认承运占位;货物收发和费用入账分别引用正式事实';
|
||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||
DROP TABLE IF EXISTS `ll_fleet_finance_source`;
|
||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||
/*!50503 SET character_set_client = utf8mb4 */;
|
||
CREATE TABLE `ll_fleet_finance_source` (
|
||
`id` bigint unsigned NOT NULL COMMENT '来源提交主键',
|
||
`record_id` bigint unsigned NOT NULL COMMENT '车辆运维记录主键',
|
||
`source_version` bigint unsigned NOT NULL COMMENT '独立财务来源版本,从1递增',
|
||
`record_version` bigint unsigned NOT NULL COMMENT '提交时运维记录版本',
|
||
`operator_id` varchar(64) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '提交操作人标识',
|
||
`request_key` varchar(128) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '原请求幂等键',
|
||
`request_hash` varchar(71) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '规范请求摘要,含sha256前缀',
|
||
`event_id` varchar(128) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '关联公共Outbox事件ID',
|
||
`payload_json` json NOT NULL COMMENT '不可变公司成本来源快照',
|
||
`created_at` datetime(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) COMMENT '提交时间UTC',
|
||
PRIMARY KEY (`id`),
|
||
UNIQUE KEY `uk_fleet_finance_source_version` (`record_id`,`source_version`),
|
||
UNIQUE KEY `uk_fleet_finance_source_request` (`record_id`,`operator_id`,`request_key`),
|
||
UNIQUE KEY `uk_fleet_finance_source_event` (`event_id`),
|
||
CONSTRAINT `chk_fleet_finance_source_version` CHECK ((`source_version` > 0))
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='维修救援公司成本提交来源,不保存付款推定';
|
||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||
DROP TABLE IF EXISTS `ll_fleet_pickup_command`;
|
||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||
/*!50503 SET character_set_client = utf8mb4 */;
|
||
CREATE TABLE `ll_fleet_pickup_command` (
|
||
`trip_no` varchar(64) NOT NULL COMMENT '取货车次号',
|
||
`request_key` varchar(128) NOT NULL COMMENT '成功命令幂等键',
|
||
`request_hash` varchar(64) NOT NULL COMMENT '命令动作与内容摘要',
|
||
PRIMARY KEY (`trip_no`,`request_key`)
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='取货命令幂等记录';
|
||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||
DROP TABLE IF EXISTS `ll_fleet_pickup_history`;
|
||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||
/*!50503 SET character_set_client = utf8mb4 */;
|
||
CREATE TABLE `ll_fleet_pickup_history` (
|
||
`id` bigint NOT NULL AUTO_INCREMENT COMMENT '操作流水',
|
||
`customer_id` varchar(64) NOT NULL COMMENT '客户隔离键',
|
||
`transfer_no` varchar(64) NOT NULL COMMENT '原转运单号',
|
||
`trip_no` varchar(64) NOT NULL COMMENT '当时取货车次号',
|
||
`action` varchar(32) NOT NULL COMMENT '安排解除取货到仓动作',
|
||
`operator_id` varchar(64) NOT NULL COMMENT '操作人',
|
||
`occurred_at` datetime NOT NULL COMMENT '操作UTC时间',
|
||
`detail` varchar(2000) DEFAULT NULL COMMENT '操作说明',
|
||
PRIMARY KEY (`id`),
|
||
KEY `idx_pickup_history_source` (`customer_id`,`transfer_no`,`id`),
|
||
KEY `idx_pickup_history_trip` (`trip_no`,`id`)
|
||
) ENGINE=InnoDB AUTO_INCREMENT=20 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='取货不可变操作历史';
|
||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||
DROP TABLE IF EXISTS `ll_fleet_pickup_plan`;
|
||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||
/*!50503 SET character_set_client = utf8mb4 */;
|
||
CREATE TABLE `ll_fleet_pickup_plan` (
|
||
`trip_no` varchar(64) NOT NULL COMMENT '现有车辆车次号',
|
||
`request_hash` varchar(64) NOT NULL COMMENT '创建来源与计划摘要',
|
||
PRIMARY KEY (`trip_no`)
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='仓储转运取货计划';
|
||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||
DROP TABLE IF EXISTS `ll_fleet_pickup_task`;
|
||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||
/*!50503 SET character_set_client = utf8mb4 */;
|
||
CREATE TABLE `ll_fleet_pickup_task` (
|
||
`transfer_order_id` bigint NOT NULL COMMENT '原仓储转运单ID,一票唯一',
|
||
`customer_id` varchar(64) NOT NULL COMMENT '客户隔离键',
|
||
`transfer_no` varchar(64) NOT NULL COMMENT '原仓储转运单号',
|
||
`trip_no` varchar(64) DEFAULT NULL COMMENT '当前取货车次,解除后为空',
|
||
`status` varchar(32) NOT NULL COMMENT 'WAITING待安排 ASSIGNED已安排 PICKED已取货 ARRIVED已送仓',
|
||
`actual_packages` int DEFAULT NULL COMMENT '司机实提箱数,非仓库实收',
|
||
`picked_at` datetime DEFAULT NULL COMMENT '实际确认取货UTC时间',
|
||
`arrived_at` datetime DEFAULT NULL COMMENT '实际确认送仓UTC时间',
|
||
`evidence_json` longtext COMMENT '本票已确认凭证元数据',
|
||
`remark` varchar(1000) DEFAULT NULL COMMENT '取货备注',
|
||
`updated_at` datetime NOT NULL COMMENT '最近修改UTC时间',
|
||
PRIMARY KEY (`transfer_order_id`),
|
||
UNIQUE KEY `uk_pickup_source` (`customer_id`,`transfer_no`),
|
||
KEY `idx_pickup_trip` (`trip_no`,`status`)
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='仓储转运逐票取货执行';
|
||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||
DROP TABLE IF EXISTS `ll_fleet_pickup_upload`;
|
||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||
/*!50503 SET character_set_client = utf8mb4 */;
|
||
CREATE TABLE `ll_fleet_pickup_upload` (
|
||
`transfer_order_id` bigint NOT NULL COMMENT '凭证所属原单',
|
||
`trip_no` varchar(64) NOT NULL COMMENT '凭证所属车次',
|
||
`file_id` bigint NOT NULL COMMENT '平台归属文件ID',
|
||
PRIMARY KEY (`file_id`),
|
||
KEY `idx_pickup_upload_source` (`transfer_order_id`,`trip_no`)
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='取货上传凭证精确单据归属';
|
||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||
DROP TABLE IF EXISTS `ll_fleet_pool_order_link`;
|
||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||
/*!50503 SET character_set_client = utf8mb4 */;
|
||
CREATE TABLE `ll_fleet_pool_order_link` (
|
||
`id` bigint NOT NULL COMMENT '内部主键',
|
||
`booking_id` bigint NOT NULL COMMENT '唯一外接预订',
|
||
`booking_no` varchar(64) NOT NULL COMMENT '预订业务编号',
|
||
`customer_id` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '商业客户隔离范围',
|
||
`business_type` varchar(32) NOT NULL COMMENT '本土散板或本土卡车商业类型',
|
||
`business_order_id` bigint NOT NULL COMMENT '对应商业订单内部关联',
|
||
`business_order_no` varchar(64) NOT NULL COMMENT '本土商业订单业务编号',
|
||
`warehouse_id` varchar(128) NOT NULL COMMENT '真实我仓上车仓库',
|
||
`destination_key` varchar(160) NOT NULL COMMENT '冻结卸货站匹配键',
|
||
`delivery_mode` varchar(32) NOT NULL COMMENT '客户送仓或人工提货回仓',
|
||
`delivery_instructions` varchar(1000) DEFAULT NULL COMMENT '实际到仓交货说明',
|
||
`incoming_no` varchar(64) DEFAULT NULL COMMENT '真实来货业务编号,未登记为空',
|
||
`lastleg_order_id` bigint DEFAULT NULL COMMENT '唯一真实尾程来源,未发生为空',
|
||
`dispatch_no` varchar(64) DEFAULT NULL COMMENT '已关联客户排车编号',
|
||
`fulfillment_stage` varchar(32) NOT NULL COMMENT '实际履约阶段,不能手工冒充完成',
|
||
`stage_occurred_at` datetime(3) NOT NULL COMMENT '实际阶段发生UTC时间',
|
||
`actual_pallet_count` int DEFAULT NULL COMMENT '实际去重托盘数,未知为空',
|
||
`actual_package_count` int DEFAULT NULL COMMENT '实际箱数,未知为空',
|
||
`actual_pallet_spaces` int DEFAULT NULL COMMENT '实际核准占用托位,未知为空',
|
||
`record_version` bigint NOT NULL DEFAULT '0' COMMENT '桥记录版本',
|
||
`creation_request_hash` char(64) NOT NULL COMMENT '商业单创建身份和预报事实摘要',
|
||
`created_by` varchar(64) NOT NULL COMMENT '确认承运操作者',
|
||
`created_at` datetime(3) NOT NULL COMMENT '创建UTC时间',
|
||
`updated_at` datetime(3) NOT NULL COMMENT '修改UTC时间',
|
||
PRIMARY KEY (`id`),
|
||
UNIQUE KEY `uk_fleet_pool_order_booking` (`booking_id`),
|
||
UNIQUE KEY `uk_fleet_pool_order_booking_no` (`booking_no`),
|
||
UNIQUE KEY `uk_fleet_pool_order_business` (`business_type`,`business_order_id`),
|
||
UNIQUE KEY `uk_fleet_pool_order_incoming` (`incoming_no`),
|
||
UNIQUE KEY `uk_fleet_pool_order_lastleg` (`lastleg_order_id`),
|
||
KEY `idx_fleet_pool_order_customer` (`customer_id`,`business_type`,`business_order_no`),
|
||
KEY `idx_fleet_pool_order_dispatch` (`customer_id`,`dispatch_no`),
|
||
CONSTRAINT `fk_fleet_pool_order_booking` FOREIGN KEY (`booking_id`) REFERENCES `ll_fleet_external_booking` (`id`),
|
||
CONSTRAINT `chk_fleet_pool_order_actual` CHECK ((((`actual_pallet_count` is null) or (`actual_pallet_count` >= 0)) and ((`actual_package_count` is null) or (`actual_package_count` >= 0)) and ((`actual_pallet_spaces` is null) or (`actual_pallet_spaces` >= 0)))),
|
||
CONSTRAINT `chk_fleet_pool_order_type` CHECK ((`business_type` in (_utf8mb4'LOCAL_LOOSEBOARD',_utf8mb4'US_TRUCK')))
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='拼车预订与本土商业单唯一真实履约关联,不重复记运费';
|
||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||
DROP TABLE IF EXISTS `ll_fleet_quote`;
|
||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||
/*!50503 SET character_set_client = utf8mb4 */;
|
||
CREATE TABLE `ll_fleet_quote` (
|
||
`id` bigint NOT NULL COMMENT '报价记录主键',
|
||
`quote_no` varchar(64) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '报价业务编号',
|
||
`kind` varchar(16) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '报价用途采购或销售',
|
||
`party_id` bigint NOT NULL COMMENT '供应商或客户主档标识',
|
||
`party_name` varchar(160) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '往来单位名称快照',
|
||
`origin_city` varchar(128) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '发货城市',
|
||
`destination_code` varchar(64) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '目的仓业务编码',
|
||
`valid_from` date NOT NULL COMMENT '报价生效日期',
|
||
`valid_to` date NOT NULL COMMENT '报价失效日期含当天',
|
||
`status` varchar(16) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '报价启停或删除状态',
|
||
`natural_key` char(64) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '报价组合去重摘要',
|
||
`details_json` json NOT NULL COMMENT '完整报价明细快照',
|
||
`record_version` bigint NOT NULL COMMENT '报价记录版本',
|
||
`create_key` varchar(128) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '创建幂等键',
|
||
`create_hash` char(64) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '创建请求含导入批次内容摘要',
|
||
`created_by` varchar(64) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '创建操作人标识',
|
||
`created_at` datetime(3) NOT NULL COMMENT '创建时间UTC',
|
||
`updated_at` datetime(3) NOT NULL COMMENT '更新时间UTC',
|
||
PRIMARY KEY (`id`),
|
||
UNIQUE KEY `uk_fleet_quote_no` (`quote_no`),
|
||
UNIQUE KEY `uk_fleet_quote_natural` (`natural_key`),
|
||
UNIQUE KEY `uk_fleet_quote_create` (`created_by`,`create_key`),
|
||
KEY `idx_fleet_quote_search` (`kind`,`status`,`valid_from`,`valid_to`)
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='车辆采购与外接销售报价';
|
||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||
DROP TABLE IF EXISTS `ll_fleet_quote_history`;
|
||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||
/*!50503 SET character_set_client = utf8mb4 */;
|
||
CREATE TABLE `ll_fleet_quote_history` (
|
||
`id` bigint NOT NULL COMMENT '报价历史主键',
|
||
`quote_id` bigint NOT NULL COMMENT '报价记录标识',
|
||
`record_version` bigint NOT NULL COMMENT '报价记录版本',
|
||
`action` varchar(24) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '报价操作类型',
|
||
`operator_id` varchar(64) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '操作人标识',
|
||
`occurred_at` datetime(3) NOT NULL COMMENT '操作时间UTC',
|
||
`snapshot_json` json NOT NULL COMMENT '报价完整版本快照',
|
||
PRIMARY KEY (`id`),
|
||
UNIQUE KEY `uk_fleet_quote_history_version` (`quote_id`,`record_version`)
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='车辆报价不可变版本历史';
|
||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||
DROP TABLE IF EXISTS `ll_fleet_resource_assignment`;
|
||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||
/*!50503 SET character_set_client = utf8mb4 */;
|
||
CREATE TABLE `ll_fleet_resource_assignment` (
|
||
`resource_kind` varchar(16) NOT NULL COMMENT '资源种类 VEHICLE或DRIVER',
|
||
`resource_id` bigint NOT NULL COMMENT '对应车辆或司机档案引用',
|
||
`trip_id` bigint NOT NULL COMMENT '占用车次',
|
||
`trip_no` varchar(32) NOT NULL COMMENT '占用车次业务编号',
|
||
PRIMARY KEY (`resource_kind`,`resource_id`),
|
||
KEY `idx_fleet_resource_trip` (`trip_id`),
|
||
CONSTRAINT `fk_fleet_resource_trip` FOREIGN KEY (`trip_id`) REFERENCES `ll_fleet_trip` (`id`),
|
||
CONSTRAINT `chk_fleet_resource_kind` CHECK ((`resource_kind` in (_utf8mb4'VEHICLE',_utf8mb4'DRIVER')))
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='车辆及司机当前车次占用,释放后删除锁行,历史保留在车次';
|
||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||
DROP TABLE IF EXISTS `ll_fleet_trip`;
|
||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||
/*!50503 SET character_set_client = utf8mb4 */;
|
||
CREATE TABLE `ll_fleet_trip` (
|
||
`id` bigint NOT NULL COMMENT '内部主键',
|
||
`trip_no` varchar(32) NOT NULL COMMENT '车次业务编号',
|
||
`idempotency_key` varchar(128) NOT NULL COMMENT '创建请求幂等键',
|
||
`request_hash` varchar(64) NOT NULL COMMENT '创建请求SHA256',
|
||
`status` varchar(16) NOT NULL COMMENT '车次状态',
|
||
`warehouse_id` bigint NOT NULL COMMENT '起运公共仓库引用',
|
||
`warehouse_code` varchar(64) NOT NULL COMMENT '起运仓编码快照',
|
||
`warehouse_name` varchar(256) NOT NULL COMMENT '起运仓名称快照',
|
||
`vehicle_id` bigint DEFAULT NULL COMMENT '车辆档案引用',
|
||
`vehicle_plate` varchar(64) DEFAULT NULL COMMENT '分配时车牌快照',
|
||
`driver_id` bigint DEFAULT NULL COMMENT '司机档案引用',
|
||
`driver_name` varchar(128) DEFAULT NULL COMMENT '分配时司机姓名',
|
||
`driver_phone` varchar(64) DEFAULT NULL COMMENT '分配时司机电话',
|
||
`max_pallet_spaces` int DEFAULT NULL COMMENT '分配时托位容量快照',
|
||
`max_load_kg` decimal(12,3) DEFAULT NULL COMMENT '分配时载重千克',
|
||
`max_volume_cbm` decimal(12,3) DEFAULT NULL COMMENT '分配时可用容积立方米',
|
||
`planned_departure_at` datetime(3) NOT NULL COMMENT '计划发车UTC',
|
||
`expected_driver_end_at` datetime(3) NOT NULL COMMENT '司机预计任务结束UTC,含承担的返程转场',
|
||
`departed_at` datetime(3) DEFAULT NULL COMMENT '实际发车UTC',
|
||
`completed_at` datetime(3) DEFAULT NULL COMMENT '实际运输完成UTC',
|
||
`stops_json` json NOT NULL COMMENT '按顺序保存的路线站点',
|
||
`planned_load_json` json DEFAULT NULL COMMENT '拣货前自有货计划载荷与逐段剩余容量',
|
||
`load_json` json DEFAULT NULL COMMENT '已确认实物装载及客户货物来源快照',
|
||
`loading_review_json` longtext COMMENT '整车理货审核快照,空值为待审核',
|
||
`departure_key` varchar(128) DEFAULT NULL COMMENT '整车发车幂等标识',
|
||
`departure_hash` char(64) DEFAULT NULL COMMENT '整车发车请求摘要',
|
||
`departure_result_json` json DEFAULT NULL COMMENT '整车发车结果及各客户出库结果',
|
||
`completion_json` json DEFAULT NULL COMMENT '货物结案来源及幂等结果快照',
|
||
`vehicle_release_json` json DEFAULT NULL COMMENT '车辆任务结束地点状态与幂等记录',
|
||
`driver_release_json` json DEFAULT NULL COMMENT '司机任务结束地点与幂等记录',
|
||
`remark` varchar(1000) DEFAULT NULL COMMENT '备注',
|
||
`record_version` bigint NOT NULL DEFAULT '0' COMMENT '并发版本',
|
||
`created_by` varchar(64) NOT NULL COMMENT '创建人',
|
||
`created_at` datetime(3) NOT NULL COMMENT '创建UTC时间',
|
||
`updated_by` varchar(64) NOT NULL COMMENT '更新人',
|
||
`updated_at` datetime(3) NOT NULL COMMENT '更新UTC时间',
|
||
`trip_purpose` varchar(16) NOT NULL DEFAULT 'DELIVERY' COMMENT 'DELIVERY出库派送 PICKUP上门取货入仓',
|
||
PRIMARY KEY (`id`),
|
||
UNIQUE KEY `uk_fleet_trip_no` (`trip_no`),
|
||
UNIQUE KEY `uk_fleet_trip_create` (`created_by`,`idempotency_key`),
|
||
KEY `idx_fleet_trip_page` (`warehouse_id`,`status`,`updated_at`,`id`),
|
||
KEY `fk_fleet_trip_vehicle` (`vehicle_id`),
|
||
KEY `fk_fleet_trip_driver` (`driver_id`),
|
||
CONSTRAINT `fk_fleet_trip_driver` FOREIGN KEY (`driver_id`) REFERENCES `ll_fleet_driver` (`id`),
|
||
CONSTRAINT `fk_fleet_trip_vehicle` FOREIGN KEY (`vehicle_id`) REFERENCES `ll_vehicle` (`id`),
|
||
CONSTRAINT `chk_fleet_trip_status` CHECK ((`status` in (_utf8mb4'PLANNED',_utf8mb4'DEPARTING',_utf8mb4'IN_TRANSIT',_utf8mb4'COMPLETED',_utf8mb4'CANCELLED'))),
|
||
CONSTRAINT `chk_fleet_trip_time` CHECK ((`expected_driver_end_at` > `planned_departure_at`))
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='平台运输车次';
|
||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||
DROP TABLE IF EXISTS `ll_fleet_trip_cost`;
|
||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||
/*!50503 SET character_set_client = utf8mb4 */;
|
||
CREATE TABLE `ll_fleet_trip_cost` (
|
||
`id` bigint NOT NULL COMMENT '内部主键',
|
||
`trip_id` bigint NOT NULL COMMENT '车次内部引用',
|
||
`cost_no` varchar(32) NOT NULL COMMENT '车次成本业务编号',
|
||
`category` varchar(16) NOT NULL COMMENT '直接成本类别FUEL/DRIVER/TOLL/PARKING/OTHER',
|
||
`currency` varchar(3) NOT NULL COMMENT '原始成本币种CNY/USD,不混币汇总',
|
||
`amount` decimal(14,2) NOT NULL COMMENT '运营登记金额,不代表付款',
|
||
`incurred_at` datetime(3) NOT NULL COMMENT '实际费用发生UTC时间',
|
||
`remark` varchar(1000) DEFAULT NULL COMMENT '费用备注',
|
||
`record_version` bigint NOT NULL COMMENT '成本记录版本',
|
||
`request_key` varchar(128) NOT NULL COMMENT '创建幂等键',
|
||
`request_hash` char(64) NOT NULL COMMENT '创建请求摘要',
|
||
`created_by` varchar(64) NOT NULL COMMENT '登记人',
|
||
`updated_by` varchar(64) NOT NULL COMMENT '最近更正人',
|
||
`created_at` datetime(3) NOT NULL COMMENT '登记UTC时间',
|
||
`updated_at` datetime(3) NOT NULL COMMENT '更正UTC时间',
|
||
PRIMARY KEY (`id`),
|
||
UNIQUE KEY `uk_fleet_trip_cost_no` (`cost_no`),
|
||
UNIQUE KEY `uk_fleet_trip_cost_request` (`trip_id`,`created_by`,`request_key`),
|
||
KEY `idx_fleet_trip_cost_page` (`trip_id`,`incurred_at`,`id`),
|
||
CONSTRAINT `fk_fleet_trip_cost_trip` FOREIGN KEY (`trip_id`) REFERENCES `ll_fleet_trip` (`id`),
|
||
CONSTRAINT `ck_fleet_trip_cost_amount` CHECK ((`amount` >= 0)),
|
||
CONSTRAINT `ck_fleet_trip_cost_category` CHECK ((`category` in (_utf8mb4'FUEL',_utf8mb4'DRIVER',_utf8mb4'TOLL',_utf8mb4'PARKING',_utf8mb4'OTHER'))),
|
||
CONSTRAINT `ck_fleet_trip_cost_currency` CHECK ((`currency` in (_utf8mb4'CNY',_utf8mb4'USD')))
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='车次直接运营成本,不生成客户账单或付款';
|
||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||
DROP TABLE IF EXISTS `ll_fleet_trip_cost_history`;
|
||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||
/*!50503 SET character_set_client = utf8mb4 */;
|
||
CREATE TABLE `ll_fleet_trip_cost_history` (
|
||
`id` bigint NOT NULL COMMENT '内部主键',
|
||
`cost_id` bigint NOT NULL COMMENT '成本记录内部引用',
|
||
`record_version` bigint NOT NULL COMMENT '成本更正后版本',
|
||
`action` varchar(16) NOT NULL COMMENT '成本操作CREATE/UPDATE',
|
||
`reason` varchar(1000) DEFAULT NULL COMMENT '登记或更正说明',
|
||
`operator_id` varchar(64) NOT NULL COMMENT '操作人',
|
||
`occurred_at` datetime(3) NOT NULL COMMENT '操作UTC时间',
|
||
`snapshot_json` json NOT NULL COMMENT '成本与当时整趟汇总及分摊快照',
|
||
PRIMARY KEY (`id`),
|
||
UNIQUE KEY `uk_fleet_trip_cost_history` (`cost_id`,`record_version`),
|
||
CONSTRAINT `fk_fleet_trip_cost_history` FOREIGN KEY (`cost_id`) REFERENCES `ll_fleet_trip_cost` (`id`)
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='车次成本不可变更正历史';
|
||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||
DROP TABLE IF EXISTS `ll_fleet_trip_dispatch`;
|
||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||
/*!50503 SET character_set_client = utf8mb4 */;
|
||
CREATE TABLE `ll_fleet_trip_dispatch` (
|
||
`dispatch_id` bigint NOT NULL COMMENT '客户排车单内部引用,唯一有效车次关联',
|
||
`dispatch_no` varchar(64) NOT NULL COMMENT '客户排车业务单号',
|
||
`customer_id` varchar(128) NOT NULL COMMENT '排车单自身客户归属',
|
||
`trip_id` bigint NOT NULL COMMENT '共享运输车次内部引用',
|
||
`trip_no` varchar(32) NOT NULL COMMENT '共享运输车次业务编号',
|
||
`package_count` int NOT NULL COMMENT '关联时待发运箱数快照',
|
||
`bound_by` varchar(64) NOT NULL COMMENT '关联操作人',
|
||
`bound_at` datetime(3) NOT NULL COMMENT '关联UTC时间',
|
||
`review_json` longtext COMMENT '客户排车调度审核快照,空值为待审核',
|
||
PRIMARY KEY (`dispatch_id`),
|
||
UNIQUE KEY `uk_fleet_trip_dispatch_no` (`dispatch_no`),
|
||
KEY `idx_fleet_trip_dispatch_trip` (`trip_id`,`dispatch_id`),
|
||
CONSTRAINT `fk_fleet_trip_dispatch_trip` FOREIGN KEY (`trip_id`) REFERENCES `ll_fleet_trip` (`id`)
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='车次与各客户排车单的有效关联,解除前快照保留在车次历史';
|
||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||
DROP TABLE IF EXISTS `ll_fleet_trip_handover`;
|
||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||
/*!50503 SET character_set_client = utf8mb4 */;
|
||
CREATE TABLE `ll_fleet_trip_handover` (
|
||
`id` bigint NOT NULL COMMENT '内部主键',
|
||
`trip_id` bigint NOT NULL COMMENT '所属车次',
|
||
`trip_version` bigint NOT NULL COMMENT '交接对应车次历史版本',
|
||
`trip_no` varchar(32) NOT NULL COMMENT '车次业务编号',
|
||
`handover_no` varchar(32) NOT NULL COMMENT '交接业务编号',
|
||
`request_key` varchar(128) NOT NULL COMMENT '交接请求幂等键',
|
||
`request_hash` char(64) NOT NULL COMMENT '交接请求摘要',
|
||
`record_version` bigint NOT NULL DEFAULT '0' COMMENT '资源结束并发版本',
|
||
`handed_over_at` datetime(3) NOT NULL COMMENT '实际交接UTC时间',
|
||
`snapshot_json` json NOT NULL COMMENT '不可变资源及剩余货物交接快照',
|
||
`vehicle_release_json` json DEFAULT NULL COMMENT '原车辆任务结束及幂等结果',
|
||
`driver_release_json` json DEFAULT NULL COMMENT '原司机任务结束及幂等结果',
|
||
`created_by` varchar(64) NOT NULL COMMENT '记录操作人',
|
||
`created_at` datetime(3) NOT NULL COMMENT '记录UTC时间',
|
||
PRIMARY KEY (`id`),
|
||
UNIQUE KEY `uk_fleet_handover_no` (`handover_no`),
|
||
UNIQUE KEY `uk_fleet_handover_request` (`trip_id`,`request_key`),
|
||
UNIQUE KEY `uk_fleet_handover_version` (`trip_id`,`trip_version`),
|
||
KEY `idx_fleet_handover_page` (`trip_id`,`id`),
|
||
CONSTRAINT `fk_fleet_handover_trip` FOREIGN KEY (`trip_id`) REFERENCES `ll_fleet_trip` (`id`)
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='在途车辆司机交接';
|
||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||
DROP TABLE IF EXISTS `ll_fleet_trip_history`;
|
||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||
/*!50503 SET character_set_client = utf8mb4 */;
|
||
CREATE TABLE `ll_fleet_trip_history` (
|
||
`id` bigint NOT NULL COMMENT '内部主键',
|
||
`trip_id` bigint NOT NULL COMMENT '车次内部引用',
|
||
`record_version` bigint NOT NULL COMMENT '操作后版本',
|
||
`action` varchar(32) NOT NULL COMMENT '车次操作',
|
||
`reason` varchar(1000) DEFAULT NULL COMMENT '操作原因',
|
||
`operator_id` varchar(64) NOT NULL COMMENT '操作人',
|
||
`occurred_at` datetime(3) NOT NULL COMMENT '操作UTC时间',
|
||
`snapshot_json` json NOT NULL COMMENT '操作后不可变车次快照',
|
||
PRIMARY KEY (`id`),
|
||
UNIQUE KEY `uk_fleet_trip_history_version` (`trip_id`,`record_version`),
|
||
CONSTRAINT `fk_fleet_trip_history` FOREIGN KEY (`trip_id`) REFERENCES `ll_fleet_trip` (`id`)
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='运输车次操作历史';
|
||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||
DROP TABLE IF EXISTS `ll_fleet_trip_operations_record`;
|
||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||
/*!50503 SET character_set_client = utf8mb4 */;
|
||
CREATE TABLE `ll_fleet_trip_operations_record` (
|
||
`id` bigint NOT NULL COMMENT '出车实测历史主键',
|
||
`trip_no` varchar(64) NOT NULL COMMENT '车次业务编号',
|
||
`record_version` bigint NOT NULL COMMENT '实测记录版本从一递增',
|
||
`details_json` json NOT NULL COMMENT '实际里程英里油耗升与备注快照',
|
||
`reason` varchar(1000) NOT NULL COMMENT '实测更正说明',
|
||
`operator_id` varchar(64) NOT NULL COMMENT '实测操作人标识',
|
||
`request_key` varchar(128) NOT NULL COMMENT '实测保存幂等键',
|
||
`request_hash` char(64) NOT NULL COMMENT '实测请求内容摘要',
|
||
`occurred_at` datetime(3) NOT NULL COMMENT '实测保存时间UTC',
|
||
PRIMARY KEY (`id`),
|
||
UNIQUE KEY `uk_fleet_operations_version` (`trip_no`,`record_version`),
|
||
UNIQUE KEY `uk_fleet_operations_request` (`trip_no`,`operator_id`,`request_key`)
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='车次里程油耗不可变更正记录';
|
||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||
DROP TABLE IF EXISTS `ll_fleet_vehicle_record`;
|
||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||
/*!50503 SET character_set_client = utf8mb4 */;
|
||
CREATE TABLE `ll_fleet_vehicle_record` (
|
||
`id` bigint NOT NULL COMMENT '记录内部主键',
|
||
`record_no` varchar(32) NOT NULL COMMENT '车辆运维业务编号',
|
||
`vehicle_id` bigint NOT NULL COMMENT '所属车辆主键',
|
||
`vehicle_plate` varchar(64) NOT NULL COMMENT '建档时车牌快照',
|
||
`record_type` varchar(32) NOT NULL COMMENT '运维类型:保养、加油、维修、故障、救援、异常',
|
||
`occurred_at` datetime(3) NOT NULL COMMENT '记录发生时间(UTC)',
|
||
`details_json` json NOT NULL COMMENT '带明确单位的业务字段快照',
|
||
`files_json` json NOT NULL COMMENT '所属记录照片与上传幂等摘要',
|
||
`idempotency_key` varchar(128) NOT NULL COMMENT '创建请求幂等键',
|
||
`request_hash` char(64) NOT NULL COMMENT '原创建业务内容摘要',
|
||
`record_version` bigint NOT NULL DEFAULT '0' COMMENT '乐观锁版本',
|
||
`created_by` varchar(64) NOT NULL COMMENT '创建操作人',
|
||
`updated_by` varchar(64) NOT NULL COMMENT '最后操作人',
|
||
`created_at` datetime(3) NOT NULL COMMENT '创建时间(UTC)',
|
||
`updated_at` datetime(3) NOT NULL COMMENT '更新时间(UTC)',
|
||
PRIMARY KEY (`id`),
|
||
UNIQUE KEY `uk_vehicle_record_no` (`record_no`),
|
||
UNIQUE KEY `uk_vehicle_record_creation` (`vehicle_id`,`created_by`,`idempotency_key`),
|
||
KEY `idx_vehicle_record_page` (`vehicle_id`,`record_type`,`occurred_at`,`id`),
|
||
CONSTRAINT `fk_vehicle_record_vehicle` FOREIGN KEY (`vehicle_id`) REFERENCES `ll_vehicle` (`id`),
|
||
CONSTRAINT `ck_vehicle_record_type` CHECK ((`record_type` in (_utf8mb4'MAINTENANCE',_utf8mb4'FUEL',_utf8mb4'REPAIR',_utf8mb4'BREAKDOWN',_utf8mb4'RESCUE',_utf8mb4'EXCEPTION')))
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='车辆运维记录';
|
||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||
DROP TABLE IF EXISTS `ll_fleet_vehicle_record_history`;
|
||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||
/*!50503 SET character_set_client = utf8mb4 */;
|
||
CREATE TABLE `ll_fleet_vehicle_record_history` (
|
||
`id` bigint NOT NULL COMMENT '历史内部主键',
|
||
`record_id` bigint NOT NULL COMMENT '运维记录主键',
|
||
`record_version` bigint NOT NULL COMMENT '对应业务版本',
|
||
`action` varchar(32) NOT NULL COMMENT '操作类型',
|
||
`reason` varchar(1000) DEFAULT NULL COMMENT '更正原因或附件名称',
|
||
`operator_id` varchar(64) NOT NULL COMMENT '操作人',
|
||
`occurred_at` datetime(3) NOT NULL COMMENT '操作时间(UTC)',
|
||
`snapshot_json` json NOT NULL COMMENT '当时完整业务快照',
|
||
PRIMARY KEY (`id`),
|
||
UNIQUE KEY `uk_vehicle_record_revision` (`record_id`,`record_version`),
|
||
CONSTRAINT `fk_vehicle_record_history` FOREIGN KEY (`record_id`) REFERENCES `ll_fleet_vehicle_record` (`id`)
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='车辆运维记录不可变历史';
|
||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||
DROP TABLE IF EXISTS `ll_inbound_fba_appointment`;
|
||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||
/*!50503 SET character_set_client = utf8mb4 */;
|
||
CREATE TABLE `ll_inbound_fba_appointment` (
|
||
`id` bigint NOT NULL COMMENT 'Snowflake ID',
|
||
`tenant_id` varchar(128) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT 'BAIYUE' COMMENT 'SaaS租户标识,当前单租户固定为BAIYUE',
|
||
`customer_id` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '客户租户ID',
|
||
`appointment_no` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '预约单号',
|
||
`appointment_at` datetime(3) NOT NULL COMMENT '预约时间',
|
||
`appointment_status` varchar(32) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT 'PENDING',
|
||
`appointment_remark` varchar(1000) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
|
||
`fba_warehouse_code` varchar(128) COLLATE utf8mb4_unicode_ci NOT NULL,
|
||
`selected_count` int NOT NULL DEFAULT '0',
|
||
`replacement_nos_json` longtext COLLATE utf8mb4_unicode_ci COMMENT '分批或合并后的新预约业务号列表,非空时原批次只读',
|
||
`created_by` varchar(128) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
|
||
`created_at` datetime(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3),
|
||
`updated_at` datetime(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3),
|
||
`expected_loading_at` datetime(3) NOT NULL,
|
||
`appointment_end_at` datetime(3) DEFAULT NULL COMMENT '预约结束时间,未明确时为空',
|
||
`version` int NOT NULL DEFAULT '0' COMMENT '并发版本',
|
||
PRIMARY KEY (`id`),
|
||
UNIQUE KEY `uk_ll_fba_appointment_no` (`customer_id`,`appointment_no`),
|
||
KEY `idx_ll_fba_appointment_list` (`customer_id`,`appointment_status`,`fba_warehouse_code`,`created_at`)
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='Batch FBA appointment';
|
||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||
DROP TABLE IF EXISTS `ll_inbound_fba_appointment_item`;
|
||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||
/*!50503 SET character_set_client = utf8mb4 */;
|
||
CREATE TABLE `ll_inbound_fba_appointment_item` (
|
||
`id` bigint NOT NULL COMMENT '记录主键',
|
||
`appointment_id` bigint NOT NULL COMMENT '预约主记录标识',
|
||
`source_key` varchar(160) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '稳定ORDER或BOOKING货源键',
|
||
`source_version` varchar(160) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '保存时核实的来源版本',
|
||
`customer_id` varchar(128) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '本票所属客户',
|
||
`order_id` bigint DEFAULT NULL COMMENT '尚未形成尾程订单时为空',
|
||
`inbound_code` varchar(128) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '真实入仓码,不伪造',
|
||
`fba_warehouse_code` varchar(128) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '目的FBA仓编码',
|
||
`package_count` int DEFAULT NULL COMMENT '所选整票预报箱数,未知保持空',
|
||
`active` tinyint(1) NOT NULL DEFAULT '1' COMMENT '取消或失败后释放货源占用',
|
||
`active_source_key` varchar(160) COLLATE utf8mb4_unicode_ci GENERATED ALWAYS AS ((case when (`active` = 1) then `source_key` else NULL end)) STORED COMMENT '有效货源唯一占用键',
|
||
`active_order_id` bigint GENERATED ALWAYS AS ((case when (`active` = 1) then `order_id` else NULL end)) STORED COMMENT '有效订单唯一占用键',
|
||
`created_at` datetime(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) COMMENT '创建UTC时间',
|
||
PRIMARY KEY (`id`),
|
||
UNIQUE KEY `uk_ll_fba_item_source` (`appointment_id`,`source_key`),
|
||
UNIQUE KEY `uk_ll_fba_active_source` (`active_source_key`),
|
||
UNIQUE KEY `uk_ll_fba_active_order` (`active_order_id`),
|
||
KEY `idx_ll_fba_item_source_lookup` (`source_key`,`customer_id`),
|
||
KEY `idx_ll_fba_item_customer_order` (`customer_id`,`order_id`)
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='入仓前后共用的预约真实货源';
|
||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||
DROP TABLE IF EXISTS `ll_inbound_order`;
|
||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||
/*!50503 SET character_set_client = utf8mb4 */;
|
||
CREATE TABLE `ll_inbound_order` (
|
||
`id` bigint NOT NULL COMMENT '入仓单主键',
|
||
`tenant_id` varchar(128) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT 'BAIYUE' COMMENT 'SaaS租户标识,当前单租户固定为BAIYUE',
|
||
`customer_id` bigint NOT NULL COMMENT '租户 ID',
|
||
`source_region` varchar(32) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '来源区域',
|
||
`source_inbound_id` varchar(128) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '来源入仓分片 ID',
|
||
`root_inbound_id` varchar(128) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '根入仓单 ID',
|
||
`source_order_id` varchar(128) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '来源订单 ID',
|
||
`source_order_no` varchar(128) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '来源订单号',
|
||
`root_order_id` varchar(128) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '根订单 ID',
|
||
`inbound_code` varchar(128) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '入仓码',
|
||
`destination_warehouse_id` varchar(128) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '目的仓 ID',
|
||
`destination_warehouse_code` varchar(128) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '目的仓编码',
|
||
`destination_warehouse_name` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '目的仓名称',
|
||
`destination_type` varchar(32) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '目的类型:FBA按箱数接收、OVERSEAS逐箱扫码',
|
||
`package_count` int NOT NULL DEFAULT '0' COMMENT '箱数',
|
||
`product_quantity` int DEFAULT NULL COMMENT '数量',
|
||
`pallet_count` int DEFAULT NULL COMMENT '托数',
|
||
`gross_weight_kg` decimal(18,3) DEFAULT NULL COMMENT '毛重(千克)',
|
||
`net_weight_kg` decimal(18,3) DEFAULT NULL COMMENT '净重(千克)',
|
||
`volume_cbm` decimal(18,6) DEFAULT NULL COMMENT '体积(立方米)',
|
||
`source_event_id` varchar(128) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '来源事件 ID',
|
||
`source_loading_plan_id` varchar(128) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '装柜计划 ID',
|
||
`source_loading_plan_version` bigint NOT NULL COMMENT '装柜计划版本',
|
||
`handover_version` bigint NOT NULL COMMENT '交接版本',
|
||
`payload_hash` varchar(71) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '负载摘要',
|
||
`status` varchar(32) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '入仓单状态',
|
||
`exception_flag` varchar(32) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT 'NONE' COMMENT '异常标记',
|
||
`created_at` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
||
`updated_at` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
|
||
`lx_code` varchar(128) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '一件代发领星入库单代码',
|
||
PRIMARY KEY (`id`),
|
||
UNIQUE KEY `uk_ll_order_source` (`customer_id`,`source_region`,`source_inbound_id`),
|
||
UNIQUE KEY `uk_ll_order_event` (`source_event_id`,`source_inbound_id`)
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='尾程入仓单快照';
|
||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||
DROP TABLE IF EXISTS `ll_inbound_order_item`;
|
||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||
/*!50503 SET character_set_client = utf8mb4 */;
|
||
CREATE TABLE `ll_inbound_order_item` (
|
||
`id` bigint NOT NULL COMMENT '入仓明细主键',
|
||
`tenant_id` varchar(128) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT 'BAIYUE' COMMENT 'SaaS租户标识,当前单租户固定为BAIYUE',
|
||
`customer_id` bigint NOT NULL COMMENT '租户ID',
|
||
`order_id` bigint NOT NULL COMMENT '入仓单ID',
|
||
`source_inbound_detail_id` varchar(128) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '来源入仓明细ID',
|
||
`package_count` int NOT NULL COMMENT '箱数',
|
||
`product_quantity` int DEFAULT NULL COMMENT '数量',
|
||
`pallet_count` int DEFAULT NULL COMMENT '托数',
|
||
`gross_weight_kg` decimal(18,3) DEFAULT NULL COMMENT '毛重(千克)',
|
||
`net_weight_kg` decimal(18,3) DEFAULT NULL COMMENT '净重(千克)',
|
||
`dimensional_weight_kg` decimal(18,3) DEFAULT NULL COMMENT '体积重量(千克)',
|
||
`volume_cbm` decimal(18,6) DEFAULT NULL COMMENT '体积(立方米)',
|
||
`destination_warehouse_id` varchar(128) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '目的仓ID',
|
||
`destination_warehouse_code` varchar(128) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '目的仓编码',
|
||
`destination_warehouse_name` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '目的仓名称',
|
||
`fba_tracking_no` varchar(128) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT 'FBA跟踪号',
|
||
`shipment_no` varchar(128) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '货件编号',
|
||
`shipping_mark` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '唛头',
|
||
`sku_code` varchar(128) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT 'SKU编码',
|
||
`product_name_zh` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '中文品名',
|
||
`product_name_en` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '英文品名',
|
||
`created_at` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
||
PRIMARY KEY (`id`),
|
||
KEY `idx_ll_item_order` (`customer_id`,`order_id`)
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='尾程入仓商品明细快照';
|
||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||
DROP TABLE IF EXISTS `ll_inbound_pallet_merge`;
|
||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||
/*!50503 SET character_set_client = utf8mb4 */;
|
||
CREATE TABLE `ll_inbound_pallet_merge` (
|
||
`id` bigint NOT NULL,
|
||
`tenant_id` varchar(128) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT 'BAIYUE' COMMENT 'SaaS租户标识,当前单租户固定为BAIYUE',
|
||
`customer_id` varchar(128) COLLATE utf8mb4_unicode_ci NOT NULL,
|
||
`task_id` bigint NOT NULL,
|
||
`merge_group_no` varchar(64) COLLATE utf8mb4_unicode_ci NOT NULL,
|
||
`source_pallet_id` bigint NOT NULL,
|
||
`target_pallet_id` bigint NOT NULL,
|
||
`source_allocation_id` bigint NOT NULL,
|
||
`target_allocation_id` bigint NOT NULL,
|
||
`source_line_id` bigint NOT NULL,
|
||
`target_line_id` bigint NOT NULL,
|
||
`source_order_id` bigint NOT NULL,
|
||
`target_order_id` bigint NOT NULL,
|
||
`moved_package_count` int NOT NULL,
|
||
`moved_volume_cbm` decimal(18,4) NOT NULL DEFAULT '0.0000',
|
||
`source_pallet_scrapped` tinyint NOT NULL DEFAULT '0',
|
||
`status` varchar(32) COLLATE utf8mb4_unicode_ci NOT NULL,
|
||
`created_at` datetime(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3),
|
||
PRIMARY KEY (`id`),
|
||
KEY `idx_ll_inbound_merge_task` (`customer_id`,`task_id`),
|
||
KEY `idx_ll_inbound_merge_group` (`merge_group_no`)
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
|
||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||
DROP TABLE IF EXISTS `ll_inbound_pda_operation`;
|
||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||
/*!50503 SET character_set_client = utf8mb4 */;
|
||
CREATE TABLE `ll_inbound_pda_operation` (
|
||
`id` bigint NOT NULL,
|
||
`tenant_id` varchar(128) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT 'BAIYUE' COMMENT 'SaaS租户标识,当前单租户固定为BAIYUE',
|
||
`customer_id` varchar(128) COLLATE utf8mb4_unicode_ci NOT NULL,
|
||
`task_id` bigint NOT NULL,
|
||
`allocation_id` bigint DEFAULT NULL,
|
||
`action` varchar(32) COLLATE utf8mb4_unicode_ci NOT NULL,
|
||
`idempotency_key` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL,
|
||
`request_hash` varchar(128) COLLATE utf8mb4_unicode_ci NOT NULL,
|
||
`request_json` longtext COLLATE utf8mb4_unicode_ci NOT NULL,
|
||
`result_json` longtext COLLATE utf8mb4_unicode_ci NOT NULL,
|
||
`created_at` datetime(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3),
|
||
PRIMARY KEY (`id`),
|
||
UNIQUE KEY `uk_ll_inbound_pda_operation_key` (`customer_id`,`idempotency_key`),
|
||
KEY `idx_ll_inbound_pda_operation_task` (`task_id`),
|
||
KEY `idx_ll_inbound_pda_operation_allocation` (`allocation_id`)
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
|
||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||
DROP TABLE IF EXISTS `ll_inbound_pda_task`;
|
||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||
/*!50503 SET character_set_client = utf8mb4 */;
|
||
CREATE TABLE `ll_inbound_pda_task` (
|
||
`id` bigint NOT NULL,
|
||
`tenant_id` varchar(128) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT 'BAIYUE' COMMENT 'SaaS租户标识,当前单租户固定为BAIYUE',
|
||
`customer_id` varchar(128) COLLATE utf8mb4_unicode_ci NOT NULL,
|
||
`plan_id` bigint NOT NULL,
|
||
`task_no` varchar(64) COLLATE utf8mb4_unicode_ci NOT NULL,
|
||
`status` varchar(32) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT 'PENDING',
|
||
`operator_id` varchar(128) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
|
||
`operator_name` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
|
||
`pushed_at` datetime(3) DEFAULT NULL,
|
||
`started_at` datetime(3) DEFAULT NULL,
|
||
`completed_at` datetime(3) DEFAULT NULL,
|
||
`unload_photo_file_ids` json DEFAULT NULL COMMENT '卸柜照片文件ID列表',
|
||
`unload_photo_uploaded_at` datetime(3) DEFAULT NULL COMMENT '卸柜照片上传成功时间',
|
||
`estimated_empty_return_at` datetime(3) DEFAULT NULL COMMENT '预计报空时间(卸柜照片上传成功后两天)',
|
||
`version` int NOT NULL DEFAULT '0',
|
||
`created_at` datetime(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3),
|
||
`updated_at` datetime(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3),
|
||
PRIMARY KEY (`id`),
|
||
UNIQUE KEY `uk_ll_inbound_pda_task_plan` (`customer_id`,`plan_id`),
|
||
UNIQUE KEY `uk_ll_inbound_pda_task_no` (`task_no`)
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
|
||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||
DROP TABLE IF EXISTS `ll_inbound_plan`;
|
||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||
/*!50503 SET character_set_client = utf8mb4 */;
|
||
CREATE TABLE `ll_inbound_plan` (
|
||
`id` bigint NOT NULL COMMENT '入库计划ID(雪花ID)',
|
||
`tenant_id` varchar(128) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT 'BAIYUE' COMMENT 'SaaS租户标识,当前单租户固定为BAIYUE',
|
||
`plan_no` varchar(32) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '入库单号',
|
||
`customer_id` varchar(128) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '租户/客户账号标识',
|
||
`source_order_id` bigint NOT NULL COMMENT '来源尾程订单ID,一张入仓单对应一张入库计划',
|
||
`container_no` varchar(64) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '集装箱号',
|
||
`overseas_warehouse_id` bigint DEFAULT NULL COMMENT '海外实际收货共享物理仓ID,由PDA认领柜号时冻结',
|
||
`planned_arrival_date` date DEFAULT NULL COMMENT '人工计划预计到仓日期',
|
||
`pallet_type` varchar(32) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '人工计划托盘类型',
|
||
`assigned_flag` tinyint NOT NULL DEFAULT '0' COMMENT '人工计划是否已分配:0否1是',
|
||
`merge_required` tinyint NOT NULL DEFAULT '0' COMMENT '人工计划是否要求合托:0否1是',
|
||
`urgent_flag` tinyint NOT NULL DEFAULT '0' COMMENT '人工计划是否加急:0否1是',
|
||
`creation_mode` varchar(32) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT 'AUTO' COMMENT '计划生成方式:AUTO柜级自动、MANUAL单票人工、WAREHOUSE_TRANSFER仓储转运',
|
||
`plan_remark` varchar(1000) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '入仓计划备注',
|
||
`status` varchar(32) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT 'PENDING_ASSIGNMENT' COMMENT '入库计划状态:PENDING_ASSIGNMENT待分配及后续正式状态',
|
||
`line_count` int NOT NULL DEFAULT '0' COMMENT '入仓码明细数量',
|
||
`pallet_count` int NOT NULL DEFAULT '0' COMMENT '系统自动分配托盘数量',
|
||
`total_volume_cbm` decimal(18,4) NOT NULL DEFAULT '0.0000' COMMENT '集装箱总体积(立方米)',
|
||
`created_at` datetime(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) COMMENT '创建时间',
|
||
`updated_at` datetime(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3) COMMENT '更新时间',
|
||
`version` int NOT NULL DEFAULT '0' COMMENT '入库计划乐观锁版本',
|
||
PRIMARY KEY (`id`),
|
||
UNIQUE KEY `uk_ll_inbound_plan_no` (`plan_no`),
|
||
KEY `idx_ll_inbound_plan_container` (`customer_id`,`container_no`)
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='尾程入库计划表:每张来源入仓单生成一张入库计划,同柜计划共享集装箱号';
|
||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||
DROP TABLE IF EXISTS `ll_inbound_plan_carton`;
|
||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||
/*!50503 SET character_set_client = utf8mb4 */;
|
||
CREATE TABLE `ll_inbound_plan_carton` (
|
||
`id` bigint NOT NULL COMMENT '箱唛作业主键',
|
||
`customer_id` varchar(128) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '客户租户ID',
|
||
`order_id` bigint DEFAULT NULL COMMENT '海外首扫确权后的尾程订单ID',
|
||
`source_inbound_detail_id` varchar(128) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '来源入库明细ID',
|
||
`sku_code` varchar(128) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT 'SKU编码快照',
|
||
`carton_mark` varchar(128) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '国内冻结箱唛',
|
||
`destination_warehouse_id` varchar(128) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '目的仓ID快照',
|
||
`destination_warehouse_code` varchar(128) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '目的仓编码快照',
|
||
`destination_warehouse_name` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '目的仓名称快照',
|
||
`plan_id` bigint DEFAULT NULL COMMENT '海外入库计划ID',
|
||
`line_id` bigint DEFAULT NULL COMMENT '入库计划明细ID',
|
||
`plan_pallet_id` bigint DEFAULT NULL COMMENT '海外计划托盘ID',
|
||
`warehouse_pallet_id` bigint DEFAULT NULL COMMENT '海外实物托盘ID',
|
||
`warehouse_location_id` bigint DEFAULT NULL COMMENT '海外库位ID',
|
||
`pda_task_id` bigint DEFAULT NULL COMMENT '首次扫码PDA任务ID',
|
||
`status` varchar(32) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '箱唛状态:UNASSIGNED、ON_PALLET、AVAILABLE',
|
||
`version` int NOT NULL DEFAULT '0' COMMENT '乐观锁版本',
|
||
`bound_at` datetime(3) DEFAULT NULL COMMENT '绑定托盘时间',
|
||
`received_at` datetime(3) DEFAULT NULL COMMENT '完成入库时间',
|
||
`updated_at` datetime(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3) COMMENT '更新时间',
|
||
PRIMARY KEY (`id`),
|
||
UNIQUE KEY `uk_ll_inbound_carton_mark` (`customer_id`,`carton_mark`),
|
||
KEY `idx_ll_inbound_carton_plan` (`plan_id`,`status`),
|
||
KEY `idx_ll_inbound_carton_pallet` (`plan_pallet_id`,`status`),
|
||
KEY `idx_ll_inbound_carton_order` (`order_id`,`status`)
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='柜次冻结箱唛及海外入库箱级作业账';
|
||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||
DROP TABLE IF EXISTS `ll_inbound_plan_line`;
|
||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||
/*!50503 SET character_set_client = utf8mb4 */;
|
||
CREATE TABLE `ll_inbound_plan_line` (
|
||
`id` bigint NOT NULL COMMENT '入库计划明细ID(雪花ID)',
|
||
`tenant_id` varchar(128) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT 'BAIYUE' COMMENT 'SaaS租户标识,当前单租户固定为BAIYUE',
|
||
`customer_id` varchar(128) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '客户账号标识',
|
||
`plan_id` bigint NOT NULL COMMENT '入库计划ID',
|
||
`order_id` bigint NOT NULL COMMENT '尾程订单ID',
|
||
`inbound_code` varchar(128) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '头程入仓码快照',
|
||
`destination_type` varchar(32) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT 'OVERSEAS' COMMENT '目的类型:FBA按箱数接收、OVERSEAS逐箱扫码',
|
||
`fba_warehouse_code` varchar(128) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT 'FBA仓库编码',
|
||
`destination_warehouse_id` varchar(128) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '目的仓ID快照',
|
||
`destination_warehouse_code` varchar(128) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '目的仓编码快照',
|
||
`destination_warehouse_name` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '目的仓名称快照',
|
||
`volume_cbm` decimal(18,4) NOT NULL DEFAULT '0.0000' COMMENT '入仓码体积(立方米)',
|
||
`planned_pallet_count` int NOT NULL DEFAULT '0' COMMENT '该明细分配的托盘数量',
|
||
`required_package_count` int NOT NULL DEFAULT '0',
|
||
`delivery_address` varchar(1000) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '私人仓目的地址快照',
|
||
`postal_code` varchar(32) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '私人仓邮编快照',
|
||
`contact_name` varchar(128) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '私人仓联系人快照',
|
||
`contact_phone` varchar(64) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '私人仓联系电话快照',
|
||
PRIMARY KEY (`id`),
|
||
UNIQUE KEY `uk_ll_inbound_line_order` (`plan_id`,`order_id`),
|
||
KEY `idx_ll_inbound_line_plan` (`plan_id`),
|
||
KEY `idx_ll_inbound_line_tenant_plan` (`customer_id`,`plan_id`),
|
||
KEY `idx_ll_inbound_line_customer_plan` (`customer_id`,`plan_id`)
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='尾程入库计划明细表:按入仓码和尾程订单维度记录';
|
||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||
DROP TABLE IF EXISTS `ll_inbound_plan_pallet`;
|
||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||
/*!50503 SET character_set_client = utf8mb4 */;
|
||
CREATE TABLE `ll_inbound_plan_pallet` (
|
||
`id` bigint NOT NULL COMMENT '计划托盘ID(雪花ID)',
|
||
`tenant_id` varchar(128) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT 'BAIYUE' COMMENT 'SaaS租户标识,当前单租户固定为BAIYUE',
|
||
`customer_id` varchar(128) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '客户账号标识',
|
||
`plan_id` bigint NOT NULL COMMENT '入库计划ID',
|
||
`pallet_no` varchar(128) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '海外仓资源服务返回的真实托盘码',
|
||
`source_pallet_no` varchar(128) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '一件代发不可变来源托盘号快照',
|
||
`pallet_type` varchar(32) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '人工计划托盘类型',
|
||
`destination_warehouse_id` varchar(128) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '目的仓ID快照',
|
||
`destination_warehouse_code` varchar(128) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '目的仓编码快照',
|
||
`destination_warehouse_name` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '目的仓名称快照',
|
||
`capacity_cbm` decimal(18,4) NOT NULL DEFAULT '2.0000' COMMENT '托盘容量,固定为2立方米',
|
||
`allocated_volume_cbm` decimal(18,4) NOT NULL DEFAULT '0.0000' COMMENT '已分配体积(立方米)',
|
||
`sequence_no` int NOT NULL COMMENT '计划内托盘序号',
|
||
`warehouse_pallet_id` bigint DEFAULT NULL,
|
||
`warehouse_location_id` bigint DEFAULT NULL,
|
||
`warehouse_resource_lock_id` bigint DEFAULT NULL,
|
||
`assignment_status` varchar(32) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT 'UNASSIGNED',
|
||
`locked_at` datetime(3) DEFAULT NULL,
|
||
`actual_volume_cbm` decimal(18,4) NOT NULL DEFAULT '0.0000',
|
||
`actual_package_count` int NOT NULL DEFAULT '0',
|
||
`version` int NOT NULL DEFAULT '0' COMMENT '收货累计值乐观锁版本',
|
||
`destination_type` varchar(32) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '目的类型:FBA或PRIVATE',
|
||
`delivery_address` varchar(1000) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '私人仓目的地址快照',
|
||
`postal_code` varchar(32) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '私人仓邮编快照',
|
||
`contact_name` varchar(128) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '私人仓联系人快照',
|
||
`contact_phone` varchar(64) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '私人仓联系电话快照',
|
||
PRIMARY KEY (`id`),
|
||
UNIQUE KEY `uk_ll_inbound_pallet_sequence` (`plan_id`,`sequence_no`),
|
||
UNIQUE KEY `uk_ll_inbound_pallet_no` (`customer_id`,`pallet_no`),
|
||
KEY `idx_ll_inbound_pallet_plan` (`plan_id`),
|
||
KEY `idx_ll_inbound_pallet_tenant_plan` (`customer_id`,`plan_id`),
|
||
KEY `idx_ll_inbound_pallet_customer_plan` (`customer_id`,`plan_id`)
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='尾程入库计划托盘表:按目的仓隔离合托';
|
||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||
DROP TABLE IF EXISTS `ll_inbound_plan_pallet_allocation`;
|
||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||
/*!50503 SET character_set_client = utf8mb4 */;
|
||
CREATE TABLE `ll_inbound_plan_pallet_allocation` (
|
||
`id` bigint NOT NULL COMMENT '托盘分配记录ID(雪花ID)',
|
||
`tenant_id` varchar(128) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT 'BAIYUE' COMMENT 'SaaS租户标识,当前单租户固定为BAIYUE',
|
||
`customer_id` varchar(128) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '客户账号标识',
|
||
`plan_id` bigint NOT NULL COMMENT '入库计划ID',
|
||
`line_id` bigint NOT NULL COMMENT '入库计划明细ID',
|
||
`pallet_id` bigint NOT NULL COMMENT '计划托盘ID',
|
||
`allocated_volume_cbm` decimal(18,4) NOT NULL COMMENT '该明细分配到托盘的体积(立方米)',
|
||
`planned_package_count` int NOT NULL DEFAULT '0',
|
||
`counted_package_count` int NOT NULL DEFAULT '0',
|
||
`picked_package_count` int NOT NULL DEFAULT '0',
|
||
`actual_volume_cbm` decimal(18,4) NOT NULL DEFAULT '0.0000',
|
||
`status` varchar(32) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT 'PENDING_COUNT',
|
||
`version` int NOT NULL DEFAULT '0',
|
||
PRIMARY KEY (`id`),
|
||
UNIQUE KEY `uk_ll_inbound_allocation` (`line_id`,`pallet_id`),
|
||
KEY `idx_ll_inbound_allocation_plan` (`plan_id`),
|
||
KEY `idx_ll_inbound_allocation_pallet` (`pallet_id`),
|
||
KEY `idx_ll_inbound_allocation_tenant_plan` (`customer_id`,`plan_id`),
|
||
KEY `idx_ll_inbound_allocation_customer_plan` (`customer_id`,`plan_id`)
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='尾程入库计划托盘分配表:记录入仓码明细与计划托盘的分配关系';
|
||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||
DROP TABLE IF EXISTS `ll_inbound_stock_receipt`;
|
||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||
/*!50503 SET character_set_client = utf8mb4 */;
|
||
CREATE TABLE `ll_inbound_stock_receipt` (
|
||
`id` bigint NOT NULL COMMENT 'Snowflake ID',
|
||
`tenant_id` varchar(128) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT 'BAIYUE' COMMENT 'SaaS租户标识,当前单租户固定为BAIYUE',
|
||
`customer_id` varchar(128) COLLATE utf8mb4_unicode_ci NOT NULL,
|
||
`plan_id` bigint NOT NULL,
|
||
`task_id` bigint NOT NULL,
|
||
`allocation_id` bigint NOT NULL,
|
||
`line_id` bigint NOT NULL,
|
||
`order_id` bigint NOT NULL,
|
||
`inbound_code` varchar(128) COLLATE utf8mb4_unicode_ci NOT NULL,
|
||
`sku_code` varchar(128) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
|
||
`product_name_zh` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '中文品名快照',
|
||
`product_name_en` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '英文品名快照',
|
||
`sku_name_zh` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
|
||
`source_detail_ids` varchar(2000) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
|
||
`warehouse_pallet_id` bigint NOT NULL,
|
||
`pallet_no` varchar(64) COLLATE utf8mb4_unicode_ci NOT NULL,
|
||
`source_pallet_no` varchar(128) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '一件代发不可变来源托盘号快照',
|
||
`warehouse_location_id` bigint DEFAULT NULL,
|
||
`warehouse_location_code` varchar(128) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
|
||
`batch_no` varchar(128) COLLATE utf8mb4_unicode_ci NOT NULL,
|
||
`received_packages` bigint NOT NULL,
|
||
`received_quantity` bigint DEFAULT '0',
|
||
`inventory_balance_id` bigint NOT NULL,
|
||
`inventory_position_id` bigint NOT NULL,
|
||
`inventory_operation_key` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL,
|
||
`received_at` datetime(3) NOT NULL,
|
||
`created_at` datetime(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3),
|
||
PRIMARY KEY (`id`),
|
||
UNIQUE KEY `uk_ll_stock_receipt_task_allocation_sku` (`customer_id`,`task_id`,`allocation_id`,`sku_code`),
|
||
KEY `idx_ll_stock_receipt_plan` (`customer_id`,`plan_id`,`line_id`),
|
||
KEY `idx_ll_stock_receipt_inventory` (`inventory_balance_id`,`inventory_position_id`)
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='Immutable SKU-pallet PDA stock-in receipt snapshot';
|
||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||
DROP TABLE IF EXISTS `ll_inventory_balance`;
|
||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||
/*!50503 SET character_set_client = utf8mb4 */;
|
||
CREATE TABLE `ll_inventory_balance` (
|
||
`id` bigint NOT NULL COMMENT 'Snowflake ID',
|
||
`tenant_id` varchar(128) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT 'BAIYUE' COMMENT 'SaaS租户标识,当前单租户固定为BAIYUE',
|
||
`customer_id` varchar(128) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT 'Customer tenant',
|
||
`customer_name` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT 'Customer name snapshot',
|
||
`overseas_warehouse_id` varchar(128) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT 'Actual overseas warehouse ID',
|
||
`overseas_warehouse_code` varchar(128) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT 'Actual overseas warehouse code snapshot',
|
||
`overseas_warehouse_name` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT 'Actual overseas warehouse name snapshot',
|
||
`destination_warehouse_id` varchar(128) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT 'Customer destination warehouse ID snapshot',
|
||
`destination_warehouse_code` varchar(128) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '' COMMENT 'Customer destination warehouse code snapshot',
|
||
`destination_warehouse_name` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT 'Customer destination warehouse name snapshot',
|
||
`inbound_order_id` bigint NOT NULL,
|
||
`inbound_order_no` varchar(128) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
|
||
`inbound_code` varchar(128) COLLATE utf8mb4_unicode_ci NOT NULL,
|
||
`sku_code` varchar(128) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
|
||
`sku_name_zh` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT 'Chinese product name',
|
||
`product_name_zh` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '中文品名快照',
|
||
`product_name_en` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '英文品名快照',
|
||
`available_packages` bigint NOT NULL DEFAULT '0',
|
||
`hold_packages` bigint NOT NULL DEFAULT '0',
|
||
`allocated_packages` bigint NOT NULL DEFAULT '0',
|
||
`picked_packages` bigint NOT NULL DEFAULT '0',
|
||
`in_transit_packages` bigint NOT NULL DEFAULT '0',
|
||
`receiving_packages` bigint NOT NULL DEFAULT '0',
|
||
`procurement_packages` bigint NOT NULL DEFAULT '0',
|
||
`available_quantity` bigint NOT NULL DEFAULT '0',
|
||
`hold_quantity` bigint NOT NULL DEFAULT '0',
|
||
`allocated_quantity` bigint NOT NULL DEFAULT '0',
|
||
`picked_quantity` bigint NOT NULL DEFAULT '0',
|
||
`in_transit_quantity` bigint NOT NULL DEFAULT '0',
|
||
`receiving_quantity` bigint NOT NULL DEFAULT '0',
|
||
`procurement_quantity` bigint NOT NULL DEFAULT '0',
|
||
`version` bigint NOT NULL DEFAULT '0' COMMENT 'Optimistic lock version',
|
||
`created_at` datetime(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3),
|
||
`updated_at` datetime(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3),
|
||
PRIMARY KEY (`id`),
|
||
UNIQUE KEY `uk_ll_inventory_dimension` (`customer_id`,`overseas_warehouse_id`,`destination_warehouse_code`,`inbound_order_id`,`inbound_code`),
|
||
KEY `idx_ll_inventory_list` (`customer_id`,`overseas_warehouse_id`,`updated_at`),
|
||
KEY `idx_ll_inventory_inbound` (`customer_id`,`inbound_code`),
|
||
KEY `idx_ll_inventory_sku` (`customer_id`,`sku_code`,`updated_at`)
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='客户入仓单与海外目的仓维度实时库存余额';
|
||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||
DROP TABLE IF EXISTS `ll_inventory_ledger`;
|
||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||
/*!50503 SET character_set_client = utf8mb4 */;
|
||
CREATE TABLE `ll_inventory_ledger` (
|
||
`id` bigint NOT NULL COMMENT 'Snowflake ID',
|
||
`tenant_id` varchar(128) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT 'BAIYUE' COMMENT 'SaaS租户标识,当前单租户固定为BAIYUE',
|
||
`customer_id` varchar(128) COLLATE utf8mb4_unicode_ci NOT NULL,
|
||
`customer_name` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '瀹㈡埛鍚嶇О涓嶅彲鍙樺揩鐓�',
|
||
`balance_id` bigint NOT NULL,
|
||
`position_id` bigint DEFAULT NULL,
|
||
`overseas_warehouse_id` varchar(128) COLLATE utf8mb4_unicode_ci NOT NULL,
|
||
`destination_warehouse_code` varchar(128) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '',
|
||
`inbound_order_id` bigint NOT NULL,
|
||
`sku_code` varchar(128) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
|
||
`carton_mark` varchar(128) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
|
||
`carton_packages` bigint DEFAULT NULL,
|
||
`pallet_id` bigint DEFAULT NULL,
|
||
`pallet_no` varchar(64) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
|
||
`batch_no` varchar(128) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
|
||
`warehouse_location_code` varchar(128) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
|
||
`business_type` varchar(32) COLLATE utf8mb4_unicode_ci NOT NULL,
|
||
`business_order_id` bigint DEFAULT NULL,
|
||
`business_order_no` varchar(128) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
|
||
`inbound_code` varchar(128) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
|
||
`inbound_order_no` varchar(128) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
|
||
`outbound_order_no` varchar(128) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
|
||
`source_event_id` varchar(128) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
|
||
`idempotency_key` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL,
|
||
`status_from` varchar(32) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
|
||
`status_to` varchar(32) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
|
||
`before_packages` bigint NOT NULL,
|
||
`delta_packages` bigint NOT NULL,
|
||
`after_packages` bigint NOT NULL,
|
||
`operator_id` varchar(128) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
|
||
`remark` varchar(1000) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
|
||
`occurred_at` datetime(3) NOT NULL,
|
||
`created_at` datetime(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3),
|
||
PRIMARY KEY (`id`),
|
||
UNIQUE KEY `uk_ll_inventory_ledger_idempotency` (`customer_id`,`idempotency_key`),
|
||
KEY `idx_ll_inventory_ledger_query` (`customer_id`,`overseas_warehouse_id`,`occurred_at`),
|
||
KEY `idx_ll_inventory_ledger_business` (`customer_id`,`business_type`,`business_order_no`),
|
||
KEY `idx_ll_inventory_ledger_inbound` (`customer_id`,`inbound_code`,`occurred_at`)
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='Immutable inventory package and quantity ledger';
|
||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||
DROP TABLE IF EXISTS `ll_inventory_operation`;
|
||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||
/*!50503 SET character_set_client = utf8mb4 */;
|
||
CREATE TABLE `ll_inventory_operation` (
|
||
`id` bigint NOT NULL COMMENT 'Snowflake ID',
|
||
`tenant_id` varchar(128) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT 'BAIYUE' COMMENT 'SaaS租户标识,当前单租户固定为BAIYUE',
|
||
`customer_id` varchar(128) COLLATE utf8mb4_unicode_ci NOT NULL,
|
||
`idempotency_key` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL,
|
||
`operation_type` varchar(32) COLLATE utf8mb4_unicode_ci NOT NULL,
|
||
`request_hash` varchar(128) COLLATE utf8mb4_unicode_ci NOT NULL,
|
||
`status` varchar(32) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT 'PROCESSING',
|
||
`result_json` longtext COLLATE utf8mb4_unicode_ci,
|
||
`last_error` varchar(2000) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
|
||
`created_at` datetime(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3),
|
||
`updated_at` datetime(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3),
|
||
PRIMARY KEY (`id`),
|
||
UNIQUE KEY `uk_ll_inventory_operation_key` (`customer_id`,`idempotency_key`),
|
||
KEY `idx_ll_inventory_operation_status` (`customer_id`,`status`,`updated_at`)
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='Inventory command idempotency record';
|
||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||
DROP TABLE IF EXISTS `ll_inventory_position`;
|
||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||
/*!50503 SET character_set_client = utf8mb4 */;
|
||
CREATE TABLE `ll_inventory_position` (
|
||
`id` bigint NOT NULL COMMENT 'Snowflake ID',
|
||
`tenant_id` varchar(128) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT 'BAIYUE' COMMENT 'SaaS租户标识,当前单租户固定为BAIYUE',
|
||
`customer_id` varchar(128) COLLATE utf8mb4_unicode_ci NOT NULL,
|
||
`balance_id` bigint NOT NULL,
|
||
`overseas_warehouse_id` varchar(128) COLLATE utf8mb4_unicode_ci NOT NULL,
|
||
`destination_warehouse_code` varchar(128) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '',
|
||
`sku_code` varchar(128) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
|
||
`pallet_id` bigint NOT NULL,
|
||
`pallet_no` varchar(64) COLLATE utf8mb4_unicode_ci NOT NULL,
|
||
`batch_no` varchar(128) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '',
|
||
`warehouse_location_id` bigint DEFAULT NULL,
|
||
`warehouse_location_code` varchar(128) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT 'Informational default location code',
|
||
`available_packages` bigint NOT NULL DEFAULT '0',
|
||
`hold_packages` bigint NOT NULL DEFAULT '0',
|
||
`allocated_packages` bigint NOT NULL DEFAULT '0',
|
||
`picked_packages` bigint NOT NULL DEFAULT '0',
|
||
`receiving_packages` bigint NOT NULL DEFAULT '0',
|
||
`product_quantity` bigint NOT NULL DEFAULT '0',
|
||
`status` varchar(32) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT 'ACTIVE',
|
||
`version` bigint NOT NULL DEFAULT '0',
|
||
`created_at` datetime(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3),
|
||
`updated_at` datetime(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3),
|
||
PRIMARY KEY (`id`),
|
||
UNIQUE KEY `uk_ll_inventory_position` (`balance_id`,`pallet_id`,`batch_no`),
|
||
KEY `idx_ll_inventory_position_pallet` (`customer_id`,`pallet_id`),
|
||
KEY `idx_ll_inventory_position_location` (`customer_id`,`overseas_warehouse_id`,`warehouse_location_code`)
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='SKU package stock by pallet, default location and batch';
|
||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||
DROP TABLE IF EXISTS `ll_loading_event_inbox`;
|
||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||
/*!50503 SET character_set_client = utf8mb4 */;
|
||
CREATE TABLE `ll_loading_event_inbox` (
|
||
`event_id` varchar(128) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '事件全局唯一标识',
|
||
`customer_id` varchar(128) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '租户/客户账号标识',
|
||
`event_type` varchar(64) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '事件类型',
|
||
`event_version` int NOT NULL COMMENT '事件契约版本',
|
||
`payload_hash` varchar(71) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '规范化事件负载 SHA-256 摘要',
|
||
`payload_json` json NOT NULL COMMENT '事件冻结负载 JSON',
|
||
`status` varchar(32) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT 'RECEIVED' COMMENT '消费状态:RECEIVED/PROCESSED',
|
||
`received_at` datetime(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) COMMENT '接收时间',
|
||
`processed_at` datetime(3) DEFAULT NULL COMMENT '处理完成时间',
|
||
`last_error` varchar(1000) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '最近一次处理错误',
|
||
`tenant_id` varchar(128) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT 'BAIYUE' COMMENT 'SaaS租户标识,当前单租户固定为BAIYUE',
|
||
PRIMARY KEY (`event_id`),
|
||
UNIQUE KEY `uk_ll_loading_inbox_tenant_key` (`customer_id`,`event_type`,`event_id`)
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='头程装柜完成事件接收幂等箱';
|
||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||
DROP TABLE IF EXISTS `ll_loading_order_status_history`;
|
||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||
/*!50503 SET character_set_client = utf8mb4 */;
|
||
CREATE TABLE `ll_loading_order_status_history` (
|
||
`id` bigint NOT NULL AUTO_INCREMENT COMMENT '状态历史主键',
|
||
`customer_id` varchar(128) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '客户数据隔离键',
|
||
`order_id` bigint NOT NULL COMMENT '尾程订单 ID',
|
||
`from_status` varchar(32) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '变更前状态',
|
||
`to_status` varchar(32) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '变更后状态',
|
||
`event_id` varchar(128) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '触发事件 ID',
|
||
`remark` varchar(500) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '状态变更备注',
|
||
`created_at` datetime(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) COMMENT '记录时间',
|
||
`tenant_id` varchar(128) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT 'BAIYUE' COMMENT 'SaaS租户标识,当前单租户固定为BAIYUE',
|
||
PRIMARY KEY (`id`),
|
||
KEY `idx_ll_loading_history_order` (`order_id`,`created_at`),
|
||
KEY `idx_ll_loading_history_tenant_order` (`customer_id`,`order_id`),
|
||
KEY `idx_ll_loading_history_customer_order` (`customer_id`,`order_id`,`created_at`)
|
||
) ENGINE=InnoDB AUTO_INCREMENT=2104482219476070737 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='尾程订单状态变更历史';
|
||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||
DROP TABLE IF EXISTS `ll_local_looseboard_history`;
|
||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||
/*!50503 SET character_set_client = utf8mb4 */;
|
||
CREATE TABLE `ll_local_looseboard_history` (
|
||
`id` bigint NOT NULL COMMENT '主键ID',
|
||
`order_id` bigint NOT NULL COMMENT '本土散板订单ID',
|
||
`customer_id` varchar(128) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '客户租户ID',
|
||
`operation_type` varchar(32) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '操作类型:CREATE、UPDATE或STATUS',
|
||
`from_status` varchar(32) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '变更前状态',
|
||
`to_status` varchar(32) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '变更后状态',
|
||
`operator_id` varchar(128) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '操作人ID',
|
||
`idempotency_key` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '操作幂等键',
|
||
`change_detail` json DEFAULT NULL COMMENT '字段变更前后值JSON',
|
||
`remark` varchar(1000) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '操作备注',
|
||
`created_at` datetime(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) COMMENT '创建时间',
|
||
PRIMARY KEY (`id`),
|
||
KEY `idx_ll_local_looseboard_history` (`customer_id`,`order_id`,`created_at`)
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='本土散板操作流水';
|
||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||
DROP TABLE IF EXISTS `ll_local_looseboard_operation`;
|
||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||
/*!50503 SET character_set_client = utf8mb4 */;
|
||
CREATE TABLE `ll_local_looseboard_operation` (
|
||
`id` bigint NOT NULL COMMENT '操作记录ID',
|
||
`order_id` bigint NOT NULL COMMENT '本土散板订单ID',
|
||
`customer_id` varchar(128) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '客户租户ID',
|
||
`operation_type` varchar(32) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '操作类型',
|
||
`idempotency_key` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '操作幂等键',
|
||
`request_hash` char(64) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '操作请求内容哈希',
|
||
`result_version` bigint NOT NULL COMMENT '操作完成后的订单版本',
|
||
`created_by` varchar(128) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '操作人ID',
|
||
`created_at` datetime(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) COMMENT '创建时间',
|
||
PRIMARY KEY (`id`),
|
||
UNIQUE KEY `uk_ll_local_looseboard_operation_key` (`customer_id`,`order_id`,`idempotency_key`),
|
||
KEY `idx_ll_local_looseboard_operation_order` (`customer_id`,`order_id`,`created_at`)
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='本土散板订单幂等操作账';
|
||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||
DROP TABLE IF EXISTS `ll_local_looseboard_order`;
|
||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||
/*!50503 SET character_set_client = utf8mb4 */;
|
||
CREATE TABLE `ll_local_looseboard_order` (
|
||
`id` bigint NOT NULL COMMENT '主键ID',
|
||
`lastleg_order_id` bigint DEFAULT NULL COMMENT '关联尾程主订单ID',
|
||
`customer_id` varchar(128) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '客户租户ID',
|
||
`order_no` varchar(64) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '本土散板订单号',
|
||
`transport_mode` varchar(32) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '运输方式:拼车或优先拼载',
|
||
`pallet_required` varchar(8) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '是否需要打盘:YES或NO',
|
||
`transport_type` varchar(32) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '运输类型',
|
||
`origin` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '起运地',
|
||
`origin_address` varchar(500) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '起运详细地址',
|
||
`destination` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '目的地',
|
||
`destination_address` varchar(500) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '目的详细地址、码头或仓号',
|
||
`container_type` varchar(32) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '柜型',
|
||
`package_count` int NOT NULL DEFAULT '0' COMMENT '货物件数',
|
||
`total_weight_kg` decimal(18,3) NOT NULL DEFAULT '0.000' COMMENT '总重量(千克)',
|
||
`total_volume_cbm` decimal(18,6) NOT NULL DEFAULT '0.000000' COMMENT '总体积(立方米)',
|
||
`budget_amount` decimal(18,2) DEFAULT NULL COMMENT '预算总价',
|
||
`currency` char(3) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT 'USD' COMMENT '预算币种',
|
||
`contact_name` varchar(128) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '联系人姓名',
|
||
`contact_info` varchar(128) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '联系人联系方式',
|
||
`requested_date` date DEFAULT NULL COMMENT '要求服务日期',
|
||
`status` varchar(32) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT 'PENDING_ACCEPTANCE' COMMENT '本土散板订单状态',
|
||
`remark` varchar(1000) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '备注',
|
||
`idempotency_key` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '创建幂等键',
|
||
`request_hash` char(64) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '创建请求内容哈希',
|
||
`created_by` varchar(128) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '创建人ID',
|
||
`version` bigint NOT NULL DEFAULT '0' COMMENT '乐观锁版本',
|
||
`created_at` datetime(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) COMMENT '创建时间',
|
||
`updated_at` datetime(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3) COMMENT '更新时间',
|
||
PRIMARY KEY (`id`),
|
||
UNIQUE KEY `uk_ll_local_looseboard_no` (`customer_id`,`order_no`),
|
||
UNIQUE KEY `uk_ll_local_looseboard_key` (`customer_id`,`idempotency_key`),
|
||
UNIQUE KEY `uk_ll_local_looseboard_lastleg` (`lastleg_order_id`),
|
||
KEY `idx_ll_local_looseboard_list` (`customer_id`,`status`,`created_at`),
|
||
KEY `idx_ll_local_looseboard_date` (`customer_id`,`requested_date`,`created_at`)
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='本土散板订单';
|
||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||
DROP TABLE IF EXISTS `ll_monthly_exchange_rate`;
|
||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||
/*!50503 SET character_set_client = utf8mb4 */;
|
||
CREATE TABLE `ll_monthly_exchange_rate` (
|
||
`id` bigint NOT NULL COMMENT '月度汇率ID',
|
||
`rate_month` char(7) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '汇率月份,格式yyyy-MM',
|
||
`base_currency` char(3) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT 'USD' COMMENT '基准币种',
|
||
`quote_currency` char(3) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT 'CNY' COMMENT '报价币种',
|
||
`usd_to_cny_average` decimal(18,8) NOT NULL COMMENT '美元兑人民币月平均汇率',
|
||
`status` varchar(16) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT 'ACTIVE' COMMENT '状态:ACTIVE/INACTIVE',
|
||
`remark` varchar(1000) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '备注',
|
||
`record_version` bigint NOT NULL DEFAULT '0' COMMENT '乐观锁版本',
|
||
`created_by` varchar(128) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '创建人',
|
||
`updated_by` varchar(128) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '更新人',
|
||
`created_at` datetime(3) NOT NULL COMMENT '创建时间',
|
||
`updated_at` datetime(3) NOT NULL COMMENT '更新时间',
|
||
PRIMARY KEY (`id`),
|
||
UNIQUE KEY `uk_ll_exchange_rate_month` (`rate_month`),
|
||
KEY `idx_ll_exchange_rate_page` (`status`,`rate_month`)
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='美元兑人民币月度平均汇率';
|
||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||
DROP TABLE IF EXISTS `ll_monthly_exchange_rate_history`;
|
||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||
/*!50503 SET character_set_client = utf8mb4 */;
|
||
CREATE TABLE `ll_monthly_exchange_rate_history` (
|
||
`id` bigint NOT NULL COMMENT '汇率变更历史ID',
|
||
`exchange_rate_id` bigint NOT NULL COMMENT '月度汇率ID',
|
||
`before_rate` decimal(18,8) DEFAULT NULL COMMENT '变更前汇率',
|
||
`after_rate` decimal(18,8) NOT NULL COMMENT '变更后汇率',
|
||
`before_status` varchar(16) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '变更前状态',
|
||
`after_status` varchar(16) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '变更后状态',
|
||
`operator_id` varchar(128) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '操作人',
|
||
`remark` varchar(1000) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '变更说明',
|
||
`created_at` datetime(3) NOT NULL COMMENT '创建时间',
|
||
PRIMARY KEY (`id`),
|
||
KEY `idx_ll_exchange_rate_history` (`exchange_rate_id`,`created_at`)
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='月度汇率变更历史';
|
||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||
DROP TABLE IF EXISTS `ll_order`;
|
||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||
/*!50503 SET character_set_client = utf8mb4 */;
|
||
CREATE TABLE `ll_order` (
|
||
`id` bigint NOT NULL COMMENT '雪花 ID',
|
||
`order_no` varchar(32) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '尾程单号',
|
||
`customer_id` varchar(128) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '租户/客户账号标识',
|
||
`order_type` varchar(32) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT 'FIRST_LEG' COMMENT '订单类型',
|
||
`lx_code` varchar(128) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '一件代发领星入库单代码',
|
||
`destination_type` varchar(32) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '目的类型:FBA按箱数接收、OVERSEAS逐箱扫码',
|
||
`inbound_code` varchar(128) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '真实来源入仓码;无入仓关系的海外本土业务为空',
|
||
`source_region` varchar(32) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '来源区域/系统',
|
||
`source_inbound_id` varchar(128) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '最终实装 LOADED 分片 ID,建单幂等键',
|
||
`root_inbound_id` varchar(128) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '根入仓单 ID',
|
||
`source_order_id` varchar(128) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '来源订单 ID',
|
||
`source_order_no` varchar(128) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '来源订单号',
|
||
`root_order_id` varchar(128) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '根订单 ID',
|
||
`customer_name` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '货主名称',
|
||
`source_warehouse_id` varchar(128) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '来源国内装柜仓 ID 快照',
|
||
`source_warehouse_name` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '来源国内装柜仓名称快照',
|
||
`overseas_warehouse_id` varchar(128) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '海外接柜仓ID;新建尾程订单由业务服务预分配',
|
||
`overseas_warehouse_code` varchar(128) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '海外接柜仓业务编码快照',
|
||
`overseas_warehouse_name` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '海外接柜仓名称快照',
|
||
`receiving_warehouse_version` int NOT NULL DEFAULT '0' COMMENT '柜级接柜仓分配乐观锁版本',
|
||
`transfer_warehouse_id` varchar(128) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '转入目的仓ID',
|
||
`transfer_warehouse_code` varchar(128) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '转入目的仓编码',
|
||
`transfer_warehouse_name` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '转入目的仓名称',
|
||
`fba_warehouse_code` varchar(128) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT 'FBA 仓库编码',
|
||
`container_no` varchar(64) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '集装箱号',
|
||
`container_status` varchar(32) COLLATE utf8mb4_unicode_ci DEFAULT '待转柜' COMMENT '货柜状态',
|
||
`abnormal` tinyint NOT NULL DEFAULT '0' COMMENT '是否异常:0否1是',
|
||
`detained` tinyint NOT NULL DEFAULT '0' COMMENT '是否暂扣:0否1是',
|
||
`hold_chargeable` tinyint NOT NULL DEFAULT '0' COMMENT '当前暂扣是否计费:0否1是',
|
||
`hold_reason` varchar(500) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '当前暂扣原因;解除后为空',
|
||
`manual_node_override` tinyint NOT NULL DEFAULT '0' COMMENT '是否启用单票人工计划节点覆盖:0否1是',
|
||
`version` int NOT NULL DEFAULT '0' COMMENT '尾程订单命令乐观锁版本',
|
||
`pallet_count` int NOT NULL DEFAULT '0' COMMENT '托数',
|
||
`package_count` int NOT NULL DEFAULT '0' COMMENT '箱数',
|
||
`received_package_count` int DEFAULT NULL COMMENT 'PDA实际入库箱数',
|
||
`picked_package_count` int NOT NULL DEFAULT '0',
|
||
`shipped_package_count` int NOT NULL DEFAULT '0',
|
||
`volume_cbm` decimal(18,4) DEFAULT NULL COMMENT '体积(立方米)',
|
||
`product_quantity` int DEFAULT NULL COMMENT '货物数量',
|
||
`volume_weight_kg` decimal(18,4) DEFAULT NULL COMMENT '体积重量(千克)',
|
||
`estimated_arrival_at` datetime(3) DEFAULT NULL COMMENT '预计到港时间',
|
||
`actual_arrival_at` datetime(3) DEFAULT NULL COMMENT '实际到港时间',
|
||
`estimated_warehouse_at` datetime(3) DEFAULT NULL COMMENT '预计到仓时间',
|
||
`arrival_time_version` int NOT NULL DEFAULT '0' COMMENT '柜级预计到仓时间乐观锁版本',
|
||
`inbound_order_no` varchar(128) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '入库单号',
|
||
`outbound_order_no` varchar(128) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '出库单号',
|
||
`delivery_order_no` varchar(128) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '派送单号',
|
||
`relabel_order_no` varchar(128) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '换标单号',
|
||
`relabel_status` varchar(32) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '换标状态',
|
||
`pallet_merge_flag` varchar(32) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '合托标记',
|
||
`pallet_merge_batch_id` varchar(64) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '平台预标记合托分组号',
|
||
`current_status` varchar(32) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT 'PENDING_ASSIGNMENT' COMMENT '当前业务状态',
|
||
`private_remark` varchar(1000) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '备注(仅自己)',
|
||
`customer_remark` varchar(1000) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '备注(客户)',
|
||
`warehouse_remark` varchar(1000) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '备注(仓库)',
|
||
`source_event_id` varchar(128) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '来源事件 ID',
|
||
`source_loading_plan_id` varchar(128) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '来源装柜计划 ID',
|
||
`source_container_booking_id` varchar(128) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '来源头程货柜预订ID',
|
||
`source_loading_plan_version` bigint DEFAULT NULL COMMENT '来源装柜计划版本',
|
||
`source_handover_version` bigint DEFAULT NULL COMMENT '交接版本',
|
||
`source_payload_hash` varchar(71) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '来源事件负载摘要',
|
||
`created_at` datetime(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) COMMENT '创建时间',
|
||
`updated_at` datetime(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3) COMMENT '更新时间',
|
||
`tenant_id` varchar(128) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT 'BAIYUE' COMMENT 'SaaS租户标识,当前单租户固定为BAIYUE',
|
||
`sub_order_status` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '子单据状态汇总',
|
||
PRIMARY KEY (`id`),
|
||
UNIQUE KEY `uk_ll_order_source` (`customer_id`,`source_region`,`source_inbound_id`),
|
||
KEY `idx_ll_order_list` (`customer_id`,`current_status`,`created_at`),
|
||
KEY `idx_ll_order_group` (`customer_id`,`order_no`),
|
||
KEY `idx_ll_order_container` (`customer_id`,`container_no`),
|
||
KEY `idx_ll_order_container_progress` (`source_container_booking_id`,`estimated_warehouse_at`,`created_at`,`id`)
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='尾程订单主表';
|
||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||
DROP TABLE IF EXISTS `ll_order_command_record`;
|
||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||
/*!50503 SET character_set_client = utf8mb4 */;
|
||
CREATE TABLE `ll_order_command_record` (
|
||
`id` bigint NOT NULL COMMENT '尾程订单命令幂等记录ID',
|
||
`customer_id` varchar(128) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '客户数据隔离键',
|
||
`order_id` bigint NOT NULL COMMENT '尾程订单ID',
|
||
`action` varchar(32) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '命令动作:MANUAL_PLAN、HOLD、MANUAL_NODES',
|
||
`operator_id` varchar(128) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '平台操作人ID',
|
||
`idempotency_key` varchar(128) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '客户端幂等键',
|
||
`request_hash` varchar(64) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '规范化请求SHA-256摘要',
|
||
`result_ref` varchar(128) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '结果业务引用',
|
||
`result_json` longtext COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '首次成功响应JSON快照',
|
||
`result_version` int NOT NULL COMMENT '命令成功后的订单版本',
|
||
`created_at` datetime(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) COMMENT '首次成功时间',
|
||
PRIMARY KEY (`id`),
|
||
UNIQUE KEY `uk_ll_order_command_key` (`customer_id`,`order_id`,`action`,`operator_id`,`idempotency_key`),
|
||
KEY `idx_ll_order_command_history` (`customer_id`,`order_id`,`created_at`)
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='尾程订单写命令幂等与结果审计记录';
|
||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||
DROP TABLE IF EXISTS `ll_order_detail`;
|
||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||
/*!50503 SET character_set_client = utf8mb4 */;
|
||
CREATE TABLE `ll_order_detail` (
|
||
`id` bigint NOT NULL AUTO_INCREMENT COMMENT '订单明细主键',
|
||
`customer_id` varchar(128) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '客户数据隔离键',
|
||
`order_id` bigint NOT NULL COMMENT '尾程订单 ID',
|
||
`source_inbound_detail_id` varchar(128) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '来源入仓明细 ID',
|
||
`sku_code` varchar(128) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT 'SKU 编码',
|
||
`product_name_zh` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '中文品名',
|
||
`product_name_en` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '英文品名',
|
||
`package_count` int NOT NULL DEFAULT '0' COMMENT '箱数',
|
||
`product_quantity` int DEFAULT NULL COMMENT '数量',
|
||
`pallet_count` int DEFAULT NULL COMMENT '托数',
|
||
`gross_weight_kg` decimal(18,4) DEFAULT NULL COMMENT '毛重(千克)',
|
||
`net_weight_kg` decimal(18,4) DEFAULT NULL COMMENT '净重(千克)',
|
||
`dimensional_weight_kg` decimal(18,4) DEFAULT NULL COMMENT '体积重量(千克)',
|
||
`volume_cbm` decimal(18,4) DEFAULT NULL COMMENT '体积(立方米)',
|
||
`destination_warehouse_id` varchar(128) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '目的仓 ID',
|
||
`destination_warehouse_code` varchar(128) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '目的仓编码',
|
||
`destination_warehouse_name` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '目的仓名称',
|
||
`fba_tracking_no` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT 'FBA跟踪号',
|
||
`shipment_no` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '货件编号',
|
||
`shipping_mark` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '唛头',
|
||
`tenant_id` varchar(128) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT 'BAIYUE' COMMENT 'SaaS租户标识,当前单租户固定为BAIYUE',
|
||
PRIMARY KEY (`id`),
|
||
UNIQUE KEY `uk_ll_detail_source` (`order_id`,`source_inbound_detail_id`),
|
||
KEY `idx_ll_detail_order` (`order_id`),
|
||
KEY `idx_ll_detail_tenant_order` (`customer_id`,`order_id`),
|
||
KEY `idx_ll_detail_customer_order` (`customer_id`,`order_id`,`id`)
|
||
) ENGINE=InnoDB AUTO_INCREMENT=2291500000000010433 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='尾程订单实装商品冻结明细';
|
||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||
DROP TABLE IF EXISTS `ll_order_fee`;
|
||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||
/*!50503 SET character_set_client = utf8mb4 */;
|
||
CREATE TABLE `ll_order_fee` (
|
||
`id` bigint NOT NULL COMMENT '费用明细主键',
|
||
`customer_id` varchar(128) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '客户数据隔离键',
|
||
`order_id` bigint NOT NULL COMMENT '尾程订单ID',
|
||
`fee_item` varchar(128) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '费用项目',
|
||
`currency` varchar(3) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '币种代码',
|
||
`amount` decimal(18,2) NOT NULL COMMENT '费用金额',
|
||
`status` varchar(32) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT 'PENDING_REVIEW' COMMENT '费用状态:PENDING_REVIEW待审核、APPROVED审核通过、REJECTED已驳回',
|
||
`supplier_description` varchar(500) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '供应商或费用说明',
|
||
`created_by` varchar(128) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '创建操作人',
|
||
`created_at` datetime(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) COMMENT '创建时间',
|
||
`updated_at` datetime(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3) COMMENT '更新时间',
|
||
PRIMARY KEY (`id`),
|
||
KEY `idx_ll_order_fee_customer_order` (`customer_id`,`order_id`,`created_at`)
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='尾程订单费用明细';
|
||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||
DROP TABLE IF EXISTS `ll_order_hold_history`;
|
||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||
/*!50503 SET character_set_client = utf8mb4 */;
|
||
CREATE TABLE `ll_order_hold_history` (
|
||
`id` bigint NOT NULL COMMENT '尾程订单暂扣历史ID',
|
||
`customer_id` varchar(128) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '客户数据隔离键',
|
||
`order_id` bigint NOT NULL COMMENT '尾程订单ID',
|
||
`held` tinyint NOT NULL COMMENT '操作后是否暂扣:0否1是',
|
||
`chargeable` tinyint NOT NULL COMMENT '本次暂扣是否计费:0否1是',
|
||
`reason` varchar(500) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '暂扣或解除原因',
|
||
`order_version` int NOT NULL COMMENT '操作成功后的订单版本',
|
||
`operator_id` varchar(128) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '操作人ID',
|
||
`operator_name` varchar(128) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '操作人名称',
|
||
`idempotency_key` varchar(128) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '客户端幂等键',
|
||
`created_at` datetime(3) NOT NULL COMMENT '操作时间',
|
||
PRIMARY KEY (`id`),
|
||
UNIQUE KEY `uk_ll_order_hold_key` (`customer_id`,`order_id`,`operator_id`,`idempotency_key`),
|
||
KEY `idx_ll_order_hold_history` (`customer_id`,`order_id`,`created_at`)
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='尾程订单暂扣与解除不可变历史';
|
||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||
DROP TABLE IF EXISTS `ll_order_manual_node`;
|
||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||
/*!50503 SET character_set_client = utf8mb4 */;
|
||
CREATE TABLE `ll_order_manual_node` (
|
||
`id` bigint NOT NULL COMMENT '尾程订单人工节点ID',
|
||
`customer_id` varchar(128) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '客户数据隔离键',
|
||
`order_id` bigint NOT NULL COMMENT '尾程订单ID',
|
||
`node_code` varchar(32) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '八行人工展示节点稳定代码,与Carrier标准节点隔离',
|
||
`node_at` datetime(3) DEFAULT NULL COMMENT '人工填写节点时间,允许为空',
|
||
`source` varchar(16) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT 'MANUAL' COMMENT '节点来源,固定MANUAL',
|
||
`order_version` int NOT NULL COMMENT '最近编辑后的订单版本',
|
||
`updated_by` varchar(128) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '最近操作人ID',
|
||
`updated_at` datetime(3) NOT NULL COMMENT '最近编辑时间',
|
||
PRIMARY KEY (`id`),
|
||
UNIQUE KEY `uk_ll_order_manual_node` (`customer_id`,`order_id`,`node_code`),
|
||
KEY `idx_ll_order_manual_node_order` (`customer_id`,`order_id`,`node_at`)
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='尾程订单当前人工节点覆盖事实';
|
||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||
DROP TABLE IF EXISTS `ll_order_manual_node_history`;
|
||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||
/*!50503 SET character_set_client = utf8mb4 */;
|
||
CREATE TABLE `ll_order_manual_node_history` (
|
||
`id` bigint NOT NULL COMMENT '尾程订单人工节点历史ID',
|
||
`customer_id` varchar(128) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '客户数据隔离键',
|
||
`order_id` bigint NOT NULL COMMENT '尾程订单ID',
|
||
`nodes_json` longtext COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '本次全量人工节点JSON快照',
|
||
`order_version` int NOT NULL COMMENT '操作成功后的订单版本',
|
||
`operator_id` varchar(128) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '操作人ID',
|
||
`operator_name` varchar(128) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '操作人名称',
|
||
`idempotency_key` varchar(128) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '客户端幂等键',
|
||
`created_at` datetime(3) NOT NULL COMMENT '操作时间',
|
||
PRIMARY KEY (`id`),
|
||
UNIQUE KEY `uk_ll_order_manual_node_history_key` (`customer_id`,`order_id`,`operator_id`,`idempotency_key`),
|
||
KEY `idx_ll_order_manual_node_history` (`customer_id`,`order_id`,`created_at`)
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='尾程订单人工节点覆盖不可变历史';
|
||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||
DROP TABLE IF EXISTS `ll_order_no_daily_sequence`;
|
||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||
/*!50503 SET character_set_client = utf8mb4 */;
|
||
CREATE TABLE `ll_order_no_daily_sequence` (
|
||
`business_date` date NOT NULL COMMENT '业务日期(Asia/Shanghai)',
|
||
`last_sequence` int NOT NULL COMMENT '当日已分配尾程单流水号',
|
||
PRIMARY KEY (`business_date`)
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='尾程单号按日原子流水';
|
||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||
DROP TABLE IF EXISTS `ll_order_operation_log`;
|
||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||
/*!50503 SET character_set_client = utf8mb4 */;
|
||
CREATE TABLE `ll_order_operation_log` (
|
||
`id` bigint NOT NULL COMMENT '操作记录主键',
|
||
`customer_id` varchar(128) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '客户数据隔离键',
|
||
`order_id` bigint NOT NULL COMMENT '尾程订单ID',
|
||
`operation_node` varchar(64) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '操作节点',
|
||
`operator_name` varchar(128) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '操作人名称',
|
||
`result` varchar(500) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '处理结果',
|
||
`created_at` datetime(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) COMMENT '操作时间',
|
||
PRIMARY KEY (`id`),
|
||
KEY `idx_ll_order_operation_customer_order` (`customer_id`,`order_id`,`created_at`)
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='尾程订单操作记录';
|
||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||
DROP TABLE IF EXISTS `ll_order_source_pallet`;
|
||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||
/*!50503 SET character_set_client = utf8mb4 */;
|
||
CREATE TABLE `ll_order_source_pallet` (
|
||
`id` bigint NOT NULL COMMENT '来源托盘快照ID',
|
||
`customer_id` varchar(128) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '客户隔离键',
|
||
`order_id` bigint NOT NULL COMMENT '尾程订单ID',
|
||
`source_pallet_no` varchar(128) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '头程冻结托盘码',
|
||
`sequence_no` int NOT NULL COMMENT '订单内稳定顺序',
|
||
`source_event_id` varchar(128) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '来源装柜完成事件ID',
|
||
`created_at` datetime(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) COMMENT '创建时间',
|
||
PRIMARY KEY (`id`),
|
||
UNIQUE KEY `uk_ll_source_pallet_no` (`source_pallet_no`),
|
||
UNIQUE KEY `uk_ll_source_pallet_sequence` (`customer_id`,`order_id`,`sequence_no`),
|
||
KEY `idx_ll_source_pallet_order` (`customer_id`,`order_id`),
|
||
KEY `fk_ll_source_pallet_order` (`order_id`),
|
||
CONSTRAINT `fk_ll_source_pallet_order` FOREIGN KEY (`order_id`) REFERENCES `ll_order` (`id`)
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='头程交接的不可变托盘码快照';
|
||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||
DROP TABLE IF EXISTS `ll_order_status_history`;
|
||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||
/*!50503 SET character_set_client = utf8mb4 */;
|
||
CREATE TABLE `ll_order_status_history` (
|
||
`id` bigint NOT NULL COMMENT '订单状态历史主键',
|
||
`customer_id` bigint NOT NULL COMMENT '租户 ID',
|
||
`order_id` bigint NOT NULL COMMENT '订单 ID',
|
||
`from_status` varchar(32) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '变更前状态',
|
||
`to_status` varchar(32) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '变更后状态',
|
||
`reason` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '变更原因',
|
||
`created_at` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '记录时间',
|
||
`tenant_id` varchar(128) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT 'BAIYUE' COMMENT 'SaaS租户标识,当前单租户固定为BAIYUE',
|
||
PRIMARY KEY (`id`)
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='尾程订单状态历史';
|
||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||
DROP TABLE IF EXISTS `ll_outbound_order`;
|
||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||
/*!50503 SET character_set_client = utf8mb4 */;
|
||
CREATE TABLE `ll_outbound_order` (
|
||
`id` bigint NOT NULL COMMENT 'Snowflake ID',
|
||
`customer_id` varchar(128) COLLATE utf8mb4_unicode_ci NOT NULL,
|
||
`outbound_no` varchar(64) COLLATE utf8mb4_unicode_ci NOT NULL,
|
||
`dispatch_order_id` bigint DEFAULT NULL COMMENT '派车单ID,一件代发为空',
|
||
`dispatch_no` varchar(64) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '派车单号,一件代发为空',
|
||
`overseas_warehouse_id` varchar(128) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
|
||
`status` varchar(32) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT 'WAIT_OUTBOUND',
|
||
`outbound_type` varchar(32) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT 'DISPATCH_DELIVERY' COMMENT '出库类型',
|
||
`lx_codes` varchar(1000) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '关联一件代发领星入库单代码汇总',
|
||
`recipient_info` varchar(1000) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '一件代发收件信息',
|
||
`request_hash` char(64) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '一件代发创建请求摘要,其他出库类型为空',
|
||
`package_count` int NOT NULL DEFAULT '0',
|
||
`pallet_count` int NOT NULL DEFAULT '0',
|
||
`gross_weight_kg` decimal(18,3) NOT NULL DEFAULT '0.000' COMMENT '毛重(千克)',
|
||
`volume_weight_kg` decimal(18,3) NOT NULL DEFAULT '0.000' COMMENT '材积重(千克)',
|
||
`volume_cbm` decimal(18,4) DEFAULT NULL COMMENT '体积(立方米),来源未确认时为空',
|
||
`idempotency_key` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL,
|
||
`created_by` varchar(128) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
|
||
`created_at` datetime(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3),
|
||
`updated_at` datetime(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3),
|
||
`tenant_id` varchar(128) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT 'BAIYUE' COMMENT 'SaaS租户标识,当前单租户固定为BAIYUE',
|
||
`fee_coverage_json` json DEFAULT NULL COMMENT '发运原费用及服务覆盖确认快照',
|
||
PRIMARY KEY (`id`),
|
||
UNIQUE KEY `uk_ll_outbound_no` (`customer_id`,`outbound_no`),
|
||
UNIQUE KEY `uk_ll_outbound_idempotency` (`customer_id`,`idempotency_key`),
|
||
UNIQUE KEY `uk_ll_outbound_dispatch` (`customer_id`,`dispatch_order_id`),
|
||
KEY `idx_ll_outbound_list` (`customer_id`,`status`,`created_at`)
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='Outbound document generated from a dispatch';
|
||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||
DROP TABLE IF EXISTS `ll_outbound_pallet_item`;
|
||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||
/*!50503 SET character_set_client = utf8mb4 */;
|
||
CREATE TABLE `ll_outbound_pallet_item` (
|
||
`id` bigint NOT NULL COMMENT 'Snowflake ID',
|
||
`customer_id` varchar(128) COLLATE utf8mb4_unicode_ci NOT NULL,
|
||
`outbound_order_id` bigint NOT NULL,
|
||
`warehouse_pallet_id` bigint DEFAULT NULL COMMENT '浠撳簱瀹炵墿鎵樼洏ID',
|
||
`pallet_no` varchar(128) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '鎵樼洏鍙凤紝绠辩淮搴﹀嚭搴撲负绌�',
|
||
`destination_warehouse_id` varchar(128) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
|
||
`destination_warehouse_code` varchar(128) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
|
||
`destination_warehouse_name` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
|
||
`package_count` int NOT NULL DEFAULT '0',
|
||
`gross_weight_kg` decimal(18,3) NOT NULL DEFAULT '0.000' COMMENT '毛重(千克)',
|
||
`volume_weight_kg` decimal(18,3) NOT NULL DEFAULT '0.000' COMMENT '材积重(千克)',
|
||
`volume_cbm` decimal(18,4) DEFAULT NULL COMMENT '体积(立方米),来源未确认时为空',
|
||
`picked_package_count` int NOT NULL DEFAULT '0' COMMENT '已拣箱数',
|
||
`status` varchar(32) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT 'WAIT_PICK' COMMENT '拣货状态',
|
||
`order_refs` varchar(2000) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
|
||
`inbound_code` varchar(128) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
|
||
`created_at` datetime(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3),
|
||
`tenant_id` varchar(128) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT 'BAIYUE' COMMENT 'SaaS租户标识,当前单租户固定为BAIYUE',
|
||
`sku_code` varchar(128) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '一件代发SKU',
|
||
`return_sku_quantity` bigint DEFAULT NULL COMMENT '退货单SKU本来源计划出库件数快照,NULL为历史整箱出库',
|
||
`carton_marks` varchar(4000) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
|
||
PRIMARY KEY (`id`),
|
||
UNIQUE KEY `uk_ll_outbound_pallet` (`customer_id`,`outbound_order_id`,`warehouse_pallet_id`),
|
||
KEY `idx_ll_outbound_pallet_list` (`customer_id`,`outbound_order_id`),
|
||
KEY `idx_ll_outbound_pallet_destination` (`customer_id`,`destination_warehouse_code`)
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='Pallet detail snapshot for an outbound document';
|
||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||
DROP TABLE IF EXISTS `ll_outbound_pda_pick`;
|
||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||
/*!50503 SET character_set_client = utf8mb4 */;
|
||
CREATE TABLE `ll_outbound_pda_pick` (
|
||
`id` bigint NOT NULL COMMENT '主键ID',
|
||
`customer_id` varchar(128) COLLATE utf8mb4_unicode_ci NOT NULL,
|
||
`task_id` bigint NOT NULL COMMENT 'PDA任务ID',
|
||
`outbound_pallet_item_id` bigint NOT NULL COMMENT '出库托盘明细ID',
|
||
`inventory_position_id` bigint DEFAULT NULL COMMENT '库存仓位ID,退货箱唛出库为空',
|
||
`packages` bigint NOT NULL COMMENT '拣货箱数',
|
||
`idempotency_key` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL,
|
||
`picked_at` datetime(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3),
|
||
PRIMARY KEY (`id`),
|
||
UNIQUE KEY `uk_ll_outbound_pda_pick_key` (`customer_id`,`idempotency_key`)
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='一件代发出库PDA托盘拣货记录';
|
||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||
DROP TABLE IF EXISTS `ll_outbound_pda_task`;
|
||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||
/*!50503 SET character_set_client = utf8mb4 */;
|
||
CREATE TABLE `ll_outbound_pda_task` (
|
||
`id` bigint NOT NULL COMMENT '主键ID',
|
||
`customer_id` varchar(128) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '客户租户ID',
|
||
`outbound_order_id` bigint NOT NULL COMMENT '出库单ID',
|
||
`task_no` varchar(64) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT 'PDA任务号',
|
||
`status` varchar(32) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT 'PENDING' COMMENT '任务状态:待拣货、拣货中、已完成',
|
||
`completion_idempotency_key` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '完成命令幂等键',
|
||
`pushed_at` datetime(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) COMMENT '推送时间',
|
||
`completed_at` datetime(3) DEFAULT NULL COMMENT '完成时间',
|
||
`created_at` datetime(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3),
|
||
`updated_at` datetime(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3),
|
||
PRIMARY KEY (`id`),
|
||
UNIQUE KEY `uk_ll_outbound_pda_task_order` (`customer_id`,`outbound_order_id`),
|
||
UNIQUE KEY `uk_ll_outbound_pda_task_no` (`customer_id`,`task_no`),
|
||
UNIQUE KEY `uk_ll_outbound_pda_complete_key` (`customer_id`,`completion_idempotency_key`)
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='一件代发出库PDA拣货任务';
|
||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||
DROP TABLE IF EXISTS `ll_overseas_procurement_fee`;
|
||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||
/*!50503 SET character_set_client = utf8mb4 */;
|
||
CREATE TABLE `ll_overseas_procurement_fee` (
|
||
`id` bigint NOT NULL COMMENT '主键ID',
|
||
`order_id` bigint NOT NULL COMMENT '采购订单ID',
|
||
`customer_id` varchar(128) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '客户ID',
|
||
`fee_no` varchar(64) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '费用业务号',
|
||
`fee_item_code` varchar(32) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '费用项编码',
|
||
`fee_item_name` varchar(128) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '费用项名称',
|
||
`amount` decimal(20,2) NOT NULL COMMENT 'CNY金额',
|
||
`currency` char(3) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT 'CNY' COMMENT '费用币种',
|
||
`voucher_file_id` bigint NOT NULL COMMENT '凭证文件ID',
|
||
`voucher_file_name` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '凭证文件名',
|
||
`remark` varchar(500) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '说明',
|
||
`wallet_status` varchar(32) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '资金状态',
|
||
`wallet_error_code` varchar(64) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '资金错误码',
|
||
`wallet_error_message` varchar(500) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '资金错误说明',
|
||
`wallet_command_event_id` varchar(64) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '当前资金指令事件ID',
|
||
`created_by` varchar(128) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '登记人',
|
||
`created_at` datetime(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) COMMENT '创建时间',
|
||
`updated_at` datetime(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3) COMMENT '更新时间',
|
||
PRIMARY KEY (`id`),
|
||
UNIQUE KEY `uk_ll_procurement_fee_no` (`fee_no`),
|
||
KEY `idx_ll_procurement_fee_order` (`customer_id`,`order_id`,`created_at`),
|
||
CONSTRAINT `chk_ll_procurement_fee_amount` CHECK ((`amount` > 0)),
|
||
CONSTRAINT `chk_ll_procurement_fee_currency` CHECK ((`currency` = _utf8mb4'CNY'))
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='海外采购费用明细及资金生命周期';
|
||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||
DROP TABLE IF EXISTS `ll_overseas_procurement_file`;
|
||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||
/*!50503 SET character_set_client = utf8mb4 */;
|
||
CREATE TABLE `ll_overseas_procurement_file` (
|
||
`id` bigint NOT NULL COMMENT '主键ID',
|
||
`order_id` bigint NOT NULL COMMENT '采购订单ID',
|
||
`customer_id` varchar(128) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '客户ID',
|
||
`category` varchar(16) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT 'RECEIPT签收文件或VOUCHER费用凭证',
|
||
`file_id` bigint NOT NULL COMMENT 'File服务文件ID',
|
||
`file_name` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '文件名快照',
|
||
`content_type` varchar(128) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '媒体类型',
|
||
`size_bytes` bigint NOT NULL DEFAULT '0' COMMENT '文件大小',
|
||
`created_by` varchar(128) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '上传人',
|
||
`created_at` datetime(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) COMMENT '上传时间',
|
||
PRIMARY KEY (`id`),
|
||
UNIQUE KEY `uk_ll_procurement_file` (`order_id`,`file_id`),
|
||
KEY `idx_ll_procurement_file_order` (`customer_id`,`order_id`,`category`,`created_at`),
|
||
CONSTRAINT `chk_ll_procurement_file_category` CHECK ((`category` in (_utf8mb4'RECEIPT',_utf8mb4'VOUCHER')))
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='海外采购签收文件及费用凭证';
|
||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||
DROP TABLE IF EXISTS `ll_overseas_procurement_order`;
|
||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||
/*!50503 SET character_set_client = utf8mb4 */;
|
||
CREATE TABLE `ll_overseas_procurement_order` (
|
||
`id` bigint NOT NULL,
|
||
`customer_id` varchar(128) COLLATE utf8mb4_unicode_ci NOT NULL,
|
||
`customer_name` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
|
||
`order_no` varchar(64) COLLATE utf8mb4_unicode_ci NOT NULL,
|
||
`purchase_category` varchar(128) COLLATE utf8mb4_unicode_ci NOT NULL,
|
||
`product_name` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL,
|
||
`product_specification` varchar(500) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
|
||
`product_url` varchar(2000) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
|
||
`purchase_quantity` bigint NOT NULL,
|
||
`budget_unit_price` decimal(18,2) DEFAULT NULL,
|
||
`currency` char(3) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT 'USD',
|
||
`receiving_address` varchar(1000) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
|
||
`contact_name` varchar(128) COLLATE utf8mb4_unicode_ci NOT NULL,
|
||
`contact_phone` varchar(64) COLLATE utf8mb4_unicode_ci NOT NULL,
|
||
`purchase_warehouse_id` varchar(128) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
|
||
`purchase_warehouse_name` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
|
||
`inbound_quantity` bigint NOT NULL DEFAULT '0',
|
||
`outbound_details` json DEFAULT NULL COMMENT '出库明细',
|
||
`outbound_quantity` bigint NOT NULL DEFAULT '0',
|
||
`domestic_carrier` varchar(128) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
|
||
`domestic_tracking_no` varchar(128) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
|
||
`overseas_carrier` varchar(128) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
|
||
`overseas_tracking_no` varchar(128) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
|
||
`estimated_arrival_at` datetime(3) DEFAULT NULL,
|
||
`status` varchar(32) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT 'PENDING_REVIEW',
|
||
`remark` varchar(1000) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
|
||
`idempotency_key` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL,
|
||
`request_hash` char(64) COLLATE utf8mb4_unicode_ci NOT NULL,
|
||
`created_by` varchar(128) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
|
||
`reviewed_by` varchar(128) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
|
||
`review_remark` varchar(1000) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
|
||
`review_idempotency_key` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '审核幂等键',
|
||
`review_request_hash` char(64) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '审核请求内容哈希',
|
||
`reviewed_at` datetime(3) DEFAULT NULL,
|
||
`version` bigint NOT NULL DEFAULT '0',
|
||
`created_at` datetime(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3),
|
||
`updated_at` datetime(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3),
|
||
`tenant_id` varchar(128) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT 'BAIYUE' COMMENT 'SaaS租户标识,当前单租户固定为BAIYUE',
|
||
PRIMARY KEY (`id`),
|
||
UNIQUE KEY `uk_ll_overseas_procurement_order_no` (`customer_id`,`order_no`),
|
||
UNIQUE KEY `uk_ll_overseas_procurement_order_key` (`customer_id`,`idempotency_key`),
|
||
KEY `idx_ll_overseas_procurement_list` (`customer_id`,`status`,`created_at`),
|
||
KEY `idx_ll_overseas_procurement_warehouse` (`customer_id`,`purchase_warehouse_id`,`created_at`)
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='Overseas procurement order awaiting business approval';
|
||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||
DROP TABLE IF EXISTS `ll_overseas_procurement_outbound`;
|
||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||
/*!50503 SET character_set_client = utf8mb4 */;
|
||
CREATE TABLE `ll_overseas_procurement_outbound` (
|
||
`id` bigint NOT NULL,
|
||
`order_id` bigint NOT NULL,
|
||
`customer_id` varchar(128) COLLATE utf8mb4_unicode_ci NOT NULL,
|
||
`quantity` bigint NOT NULL,
|
||
`outbound_no` varchar(128) COLLATE utf8mb4_unicode_ci NOT NULL,
|
||
`carrier` varchar(128) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
|
||
`tracking_no` varchar(128) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
|
||
`outbound_at` datetime(3) NOT NULL,
|
||
`remark` varchar(1000) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
|
||
`created_by` varchar(128) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
|
||
`created_at` datetime(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3),
|
||
`tenant_id` varchar(128) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT 'BAIYUE' COMMENT 'SaaS租户标识,当前单租户固定为BAIYUE',
|
||
PRIMARY KEY (`id`),
|
||
UNIQUE KEY `uk_ll_overseas_procurement_outbound_no` (`customer_id`,`order_id`,`outbound_no`),
|
||
KEY `idx_ll_overseas_procurement_outbound_order` (`customer_id`,`order_id`,`outbound_at`)
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='Manual outbound records for overseas procurement inventory';
|
||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||
DROP TABLE IF EXISTS `ll_overseas_procurement_status_history`;
|
||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||
/*!50503 SET character_set_client = utf8mb4 */;
|
||
CREATE TABLE `ll_overseas_procurement_status_history` (
|
||
`id` bigint NOT NULL,
|
||
`order_id` bigint NOT NULL,
|
||
`customer_id` varchar(128) COLLATE utf8mb4_unicode_ci NOT NULL,
|
||
`from_status` varchar(32) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
|
||
`to_status` varchar(32) COLLATE utf8mb4_unicode_ci NOT NULL,
|
||
`operator_id` varchar(128) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
|
||
`idempotency_key` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '操作幂等键',
|
||
`remark` varchar(1000) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
|
||
`created_at` datetime(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3),
|
||
`tenant_id` varchar(128) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT 'BAIYUE' COMMENT 'SaaS租户标识,当前单租户固定为BAIYUE',
|
||
PRIMARY KEY (`id`),
|
||
KEY `idx_ll_overseas_procurement_history` (`customer_id`,`order_id`,`created_at`)
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='Immutable overseas procurement review history';
|
||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||
DROP TABLE IF EXISTS `ll_overseas_quote`;
|
||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||
/*!50503 SET character_set_client = utf8mb4 */;
|
||
CREATE TABLE `ll_overseas_quote` (
|
||
`id` bigint NOT NULL COMMENT '报价ID',
|
||
`name` varchar(128) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '报价名称',
|
||
`warehouse_id` bigint NOT NULL COMMENT '国内平台海外合作仓ID',
|
||
`warehouse_code` varchar(64) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '合作仓编码快照',
|
||
`warehouse_name` varchar(128) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '合作仓名称快照',
|
||
`country_code` varchar(2) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '国家二字码快照',
|
||
`provider_name` varchar(128) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '报价方',
|
||
`currency` char(3) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '币种',
|
||
`effective_start` date NOT NULL COMMENT '生效开始日期',
|
||
`effective_end` date NOT NULL COMMENT '生效结束日期',
|
||
`version_code` varchar(64) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '业务版本号',
|
||
`status` varchar(16) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT 'INACTIVE' COMMENT '状态:ACTIVE/INACTIVE',
|
||
`remark` varchar(1000) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '备注',
|
||
`record_version` bigint NOT NULL DEFAULT '0' COMMENT '乐观锁版本',
|
||
`created_by` varchar(128) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '创建人',
|
||
`updated_by` varchar(128) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '更新人',
|
||
`created_at` datetime(3) NOT NULL COMMENT '创建时间',
|
||
`updated_at` datetime(3) NOT NULL COMMENT '更新时间',
|
||
PRIMARY KEY (`id`),
|
||
UNIQUE KEY `uk_ll_quote_warehouse_provider_version` (`warehouse_id`,`provider_name`,`version_code`),
|
||
KEY `idx_ll_quote_page` (`status`,`updated_at`,`id`),
|
||
KEY `idx_ll_quote_effective` (`warehouse_id`,`provider_name`,`currency`,`effective_start`,`effective_end`)
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='海外仓报价主表';
|
||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||
DROP TABLE IF EXISTS `ll_overseas_quote_fee`;
|
||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||
/*!50503 SET character_set_client = utf8mb4 */;
|
||
CREATE TABLE `ll_overseas_quote_fee` (
|
||
`id` bigint NOT NULL COMMENT '费用明细ID',
|
||
`quote_id` bigint NOT NULL COMMENT '报价ID',
|
||
`sequence_no` int NOT NULL COMMENT '显示顺序',
|
||
`item` varchar(128) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '费用项目',
|
||
`billing_unit` varchar(64) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '计费单位',
|
||
`unit_price` decimal(18,4) NOT NULL COMMENT '单价',
|
||
`minimum_charge` decimal(18,4) NOT NULL DEFAULT '0.0000' COMMENT '最低收费',
|
||
`remark` varchar(500) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '备注',
|
||
PRIMARY KEY (`id`),
|
||
UNIQUE KEY `uk_ll_quote_fee_sequence` (`quote_id`,`sequence_no`),
|
||
KEY `idx_ll_quote_fee_quote` (`quote_id`)
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='海外仓报价仓库费用';
|
||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||
DROP TABLE IF EXISTS `ll_overseas_quote_transit_price`;
|
||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||
/*!50503 SET character_set_client = utf8mb4 */;
|
||
CREATE TABLE `ll_overseas_quote_transit_price` (
|
||
`id` bigint NOT NULL COMMENT '中转价格ID',
|
||
`quote_id` bigint NOT NULL COMMENT '报价ID',
|
||
`sequence_no` int NOT NULL COMMENT '显示顺序',
|
||
`fba_warehouse_code` varchar(64) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT 'FBA仓编码',
|
||
`delivery_method` varchar(64) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '报价运输方式',
|
||
`estimated_miles` decimal(18,4) NOT NULL DEFAULT '0.0000' COMMENT '预估英里数',
|
||
`price` decimal(18,4) NOT NULL COMMENT '报价金额',
|
||
`minimum_charge` decimal(18,4) NOT NULL DEFAULT '0.0000' COMMENT '最低收费',
|
||
`remark` varchar(500) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '备注',
|
||
PRIMARY KEY (`id`),
|
||
UNIQUE KEY `uk_ll_quote_transit_sequence` (`quote_id`,`sequence_no`),
|
||
KEY `idx_ll_quote_transit_quote` (`quote_id`)
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='海外仓报价中转价格明细';
|
||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||
DROP TABLE IF EXISTS `ll_pda_inventory_move`;
|
||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||
/*!50503 SET character_set_client = utf8mb4 */;
|
||
CREATE TABLE `ll_pda_inventory_move` (
|
||
`id` bigint NOT NULL COMMENT '移库操作ID',
|
||
`move_no` varchar(64) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '移库操作单号',
|
||
`overseas_warehouse_id` bigint NOT NULL COMMENT 'Token冻结的海外实际仓ID',
|
||
`pallet_id` bigint NOT NULL COMMENT '整托移库的实物托盘ID',
|
||
`pallet_code` varchar(128) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '实物托盘码快照',
|
||
`source_location_id` bigint NOT NULL COMMENT '来源库位ID',
|
||
`source_location_code` varchar(128) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '来源库位码快照',
|
||
`target_location_id` bigint NOT NULL COMMENT '目标库位ID',
|
||
`target_location_code` varchar(128) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '目标库位码快照',
|
||
`customer_count` int NOT NULL COMMENT '托盘涉及客户数',
|
||
`position_count` int NOT NULL COMMENT '迁移库存位置数',
|
||
`package_count` bigint NOT NULL COMMENT '迁移总箱数',
|
||
`pallet_version_before` int NOT NULL COMMENT '迁移前托盘版本',
|
||
`pallet_version_after` int DEFAULT NULL COMMENT '迁移后托盘版本',
|
||
`operator_key` varchar(128) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT 'PDA操作账号标识',
|
||
`reason` varchar(500) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '移库原因',
|
||
`idempotency_key` varchar(128) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '移库幂等键',
|
||
`request_hash` varchar(128) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '移库请求哈希',
|
||
`status` varchar(32) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '移库处理状态',
|
||
`result_json` longtext COLLATE utf8mb4_unicode_ci COMMENT '成功响应JSON',
|
||
`created_at` datetime(3) NOT NULL COMMENT '创建时间',
|
||
`completed_at` datetime(3) DEFAULT NULL COMMENT '完成时间',
|
||
PRIMARY KEY (`id`),
|
||
UNIQUE KEY `uk_ll_pda_inventory_move_no` (`move_no`),
|
||
UNIQUE KEY `uk_ll_pda_inventory_move_key` (`overseas_warehouse_id`,`operator_key`,`idempotency_key`),
|
||
KEY `idx_ll_pda_inventory_move_pallet` (`overseas_warehouse_id`,`pallet_id`,`created_at`)
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='海外PDA同仓整托移库记录';
|
||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||
DROP TABLE IF EXISTS `ll_pda_operation_history`;
|
||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||
/*!50503 SET character_set_client = utf8mb4 */;
|
||
CREATE TABLE `ll_pda_operation_history` (
|
||
`id` bigint NOT NULL COMMENT 'PDA作业历史ID',
|
||
`overseas_warehouse_id` bigint NOT NULL COMMENT 'Token冻结的海外实际仓ID',
|
||
`customer_id` varchar(128) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '作业涉及的客户标识',
|
||
`operator_key` varchar(128) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT 'PDA操作账号标识',
|
||
`operation_type` varchar(64) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '作业类型',
|
||
`business_key` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '作业业务键',
|
||
`status` varchar(32) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '作业结果状态',
|
||
`idempotency_key` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '写操作幂等键',
|
||
`request_hash` varchar(128) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '写请求内容哈希',
|
||
`summary` varchar(1000) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '作业结果摘要',
|
||
`occurred_at` datetime(3) NOT NULL COMMENT '作业发生时间',
|
||
`created_at` datetime(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) COMMENT '创建时间',
|
||
PRIMARY KEY (`id`),
|
||
UNIQUE KEY `uk_ll_pda_history_idempotency` (`operator_key`,`idempotency_key`),
|
||
KEY `idx_ll_pda_history_operator` (`overseas_warehouse_id`,`operator_key`,`occurred_at`),
|
||
KEY `idx_ll_pda_history_business` (`overseas_warehouse_id`,`operation_type`,`business_key`)
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='海外PDA真实作业历史';
|
||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||
DROP TABLE IF EXISTS `ll_pda_pallet_operation`;
|
||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||
/*!50503 SET character_set_client = utf8mb4 */;
|
||
CREATE TABLE `ll_pda_pallet_operation` (
|
||
`id` bigint NOT NULL COMMENT 'PDA托盘作业ID',
|
||
`overseas_warehouse_id` bigint NOT NULL COMMENT 'Token冻结的海外实际仓ID',
|
||
`operator_key` varchar(128) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT 'PDA操作账号标识',
|
||
`idempotency_key` varchar(128) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '设备幂等键',
|
||
`operation_type` varchar(64) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '托盘作业类型',
|
||
`request_hash` varchar(128) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '请求内容摘要',
|
||
`status` varchar(32) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '处理状态:PROCESSING、COMPLETED、FAILED_COMPENSATED、COMPENSATION_REQUIRED',
|
||
`result_json` longtext COLLATE utf8mb4_unicode_ci COMMENT '成功响应快照',
|
||
`remote_transitions_json` longtext COLLATE utf8mb4_unicode_ci COMMENT '实物托盘状态变更回执',
|
||
`last_error` varchar(2000) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '最后失败原因',
|
||
`created_at` datetime(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) COMMENT '创建时间',
|
||
`updated_at` datetime(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3) COMMENT '更新时间',
|
||
PRIMARY KEY (`id`),
|
||
UNIQUE KEY `uk_ll_pda_pallet_idempotency` (`operator_key`,`idempotency_key`),
|
||
KEY `idx_ll_pda_pallet_warehouse` (`overseas_warehouse_id`,`status`,`updated_at`)
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='海外PDA托盘作业幂等、补偿与结果记录';
|
||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||
DROP TABLE IF EXISTS `ll_pda_stocktake_action`;
|
||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||
/*!50503 SET character_set_client = utf8mb4 */;
|
||
CREATE TABLE `ll_pda_stocktake_action` (
|
||
`id` bigint NOT NULL COMMENT '盘点动作ID',
|
||
`overseas_warehouse_id` bigint NOT NULL COMMENT 'Token冻结的海外实际仓ID',
|
||
`operator_key` varchar(128) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT 'PDA操作账号标识',
|
||
`idempotency_key` varchar(128) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '动作幂等键',
|
||
`action_type` varchar(32) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '盘点动作类型',
|
||
`task_id` bigint DEFAULT NULL COMMENT '盘点任务ID',
|
||
`request_hash` varchar(128) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '动作请求哈希',
|
||
`status` varchar(32) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '动作处理状态',
|
||
`result_json` longtext COLLATE utf8mb4_unicode_ci COMMENT '成功响应JSON',
|
||
`created_at` datetime(3) NOT NULL COMMENT '创建时间',
|
||
`updated_at` datetime(3) NOT NULL COMMENT '更新时间',
|
||
PRIMARY KEY (`id`),
|
||
UNIQUE KEY `uk_ll_pda_stocktake_action` (`overseas_warehouse_id`,`operator_key`,`idempotency_key`),
|
||
KEY `idx_ll_pda_stocktake_action_task` (`task_id`,`created_at`)
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='海外PDA盘点动作幂等记录';
|
||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||
DROP TABLE IF EXISTS `ll_pda_stocktake_item`;
|
||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||
/*!50503 SET character_set_client = utf8mb4 */;
|
||
CREATE TABLE `ll_pda_stocktake_item` (
|
||
`id` bigint NOT NULL COMMENT '盘点明细ID',
|
||
`task_id` bigint NOT NULL COMMENT '盘点任务ID',
|
||
`customer_id` varchar(128) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '库存所属客户标识',
|
||
`balance_id` bigint NOT NULL COMMENT '库存余额ID',
|
||
`position_id` bigint NOT NULL COMMENT '库存位置ID',
|
||
`sku_code` varchar(128) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT 'SKU快照',
|
||
`product_name` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '品名快照',
|
||
`inbound_code` varchar(128) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '入仓码快照',
|
||
`pallet_id` bigint NOT NULL COMMENT '实物托盘ID',
|
||
`pallet_code` varchar(128) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '实物托盘码快照',
|
||
`location_id` bigint NOT NULL COMMENT '库位ID快照',
|
||
`location_code` varchar(128) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '库位码快照',
|
||
`book_packages` bigint NOT NULL COMMENT '任务创建时账面总箱数',
|
||
`actual_packages` bigint DEFAULT NULL COMMENT '现场实盘总箱数',
|
||
`difference_packages` bigint DEFAULT NULL COMMENT '实盘与账面箱数差异',
|
||
`status` varchar(32) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '盘点明细状态',
|
||
`position_version` bigint NOT NULL COMMENT '任务创建时库存位置版本',
|
||
`counted_by` varchar(128) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '盘点操作账号标识',
|
||
`version` bigint NOT NULL DEFAULT '0' COMMENT '明细乐观锁版本',
|
||
`counted_at` datetime(3) DEFAULT NULL COMMENT '盘点时间',
|
||
`created_at` datetime(3) NOT NULL COMMENT '创建时间',
|
||
`updated_at` datetime(3) NOT NULL COMMENT '更新时间',
|
||
PRIMARY KEY (`id`),
|
||
UNIQUE KEY `uk_ll_pda_stocktake_item` (`task_id`,`position_id`),
|
||
KEY `idx_ll_pda_stocktake_item_task` (`task_id`,`status`,`id`)
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='海外PDA库存盘点位置明细';
|
||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||
DROP TABLE IF EXISTS `ll_pda_stocktake_task`;
|
||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||
/*!50503 SET character_set_client = utf8mb4 */;
|
||
CREATE TABLE `ll_pda_stocktake_task` (
|
||
`id` bigint NOT NULL COMMENT '盘点任务ID',
|
||
`task_no` varchar(64) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '盘点任务号',
|
||
`overseas_warehouse_id` bigint NOT NULL COMMENT 'Token冻结的海外实际仓ID',
|
||
`scope_type` varchar(16) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '盘点范围类型LOCATION或PALLET',
|
||
`scope_resource_id` bigint NOT NULL COMMENT '盘点库位或托盘资源ID',
|
||
`scope_code` varchar(128) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '盘点库位码或托盘码快照',
|
||
`status` varchar(32) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '盘点任务状态',
|
||
`position_count` int NOT NULL COMMENT '库存位置总数',
|
||
`counted_count` int NOT NULL DEFAULT '0' COMMENT '已盘库存位置数',
|
||
`difference_count` int NOT NULL DEFAULT '0' COMMENT '存在差异的库存位置数',
|
||
`created_by` varchar(128) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '创建操作账号标识',
|
||
`submitted_by` varchar(128) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '提交操作账号标识',
|
||
`submit_reason` varchar(500) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '盘点差异提交原因',
|
||
`idempotency_key` varchar(128) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '创建幂等键',
|
||
`request_hash` varchar(128) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '创建请求哈希',
|
||
`version` bigint NOT NULL DEFAULT '0' COMMENT '乐观锁版本',
|
||
`created_at` datetime(3) NOT NULL COMMENT '创建时间',
|
||
`updated_at` datetime(3) NOT NULL COMMENT '更新时间',
|
||
`submitted_at` datetime(3) DEFAULT NULL COMMENT '提交完成时间',
|
||
PRIMARY KEY (`id`),
|
||
UNIQUE KEY `uk_ll_pda_stocktake_no` (`task_no`),
|
||
UNIQUE KEY `uk_ll_pda_stocktake_create` (`overseas_warehouse_id`,`created_by`,`idempotency_key`),
|
||
KEY `idx_ll_pda_stocktake_list` (`overseas_warehouse_id`,`status`,`created_at`)
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='海外PDA库存盘点任务';
|
||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||
DROP TABLE IF EXISTS `ll_procurement_daily_sequence`;
|
||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||
/*!50503 SET character_set_client = utf8mb4 */;
|
||
CREATE TABLE `ll_procurement_daily_sequence` (
|
||
`customer_id` varchar(128) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '客户ID',
|
||
`business_date` date NOT NULL COMMENT '北京时间业务日期',
|
||
`sequence_value` int NOT NULL COMMENT '客户当日已分配最大序号',
|
||
PRIMARY KEY (`customer_id`,`business_date`),
|
||
CONSTRAINT `chk_ll_procurement_sequence` CHECK ((`sequence_value` between 1 and 9999))
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='海外采购客户日序列';
|
||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||
DROP TABLE IF EXISTS `ll_receiving_container_operation`;
|
||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||
/*!50503 SET character_set_client = utf8mb4 */;
|
||
CREATE TABLE `ll_receiving_container_operation` (
|
||
`id` bigint NOT NULL COMMENT '柜号收货操作ID',
|
||
`session_id` bigint NOT NULL COMMENT '柜号签收会话ID',
|
||
`customer_id` varchar(128) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '客户账号标识',
|
||
`operator_key` varchar(128) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '操作账号唯一标识',
|
||
`action` varchar(32) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '操作动作',
|
||
`idempotency_key` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '客户端幂等键',
|
||
`request_hash` varchar(128) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '请求内容哈希',
|
||
`request_json` longtext COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '请求内容快照',
|
||
`result_json` longtext COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '响应内容快照',
|
||
`created_at` datetime(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) COMMENT '创建时间',
|
||
PRIMARY KEY (`id`),
|
||
UNIQUE KEY `uk_ll_receiving_operation` (`operator_key`,`idempotency_key`),
|
||
KEY `idx_ll_receiving_operation_session` (`session_id`,`created_at`)
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='海外PDA柜号收货幂等审计记录';
|
||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||
DROP TABLE IF EXISTS `ll_receiving_container_session`;
|
||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||
/*!50503 SET character_set_client = utf8mb4 */;
|
||
CREATE TABLE `ll_receiving_container_session` (
|
||
`id` bigint NOT NULL COMMENT '柜号签收会话ID',
|
||
`customer_id` varchar(128) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '所选柜解析出的客户标识',
|
||
`container_no` varchar(64) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '集装箱号',
|
||
`overseas_warehouse_id` bigint NOT NULL COMMENT '操作员Token绑定并冻结的海外实际收货共享物理仓ID',
|
||
`overseas_warehouse_name` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '仓库服务校验后的海外实际收货共享物理仓名称快照',
|
||
`operator_key` varchar(128) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '操作账号唯一标识',
|
||
`operator_name` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '操作账号名称',
|
||
`active_operator_key` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '未完成会话平台操作账号全局唯一锁键',
|
||
`active_container_key` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '未完成会话柜号全局唯一锁键',
|
||
`status` varchar(32) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT 'WAIT_SIGN' COMMENT '会话状态:WAIT_SIGN、SIGNED、RECEIVING、COMPLETED',
|
||
`sign_photos` json DEFAULT NULL COMMENT '签收卸柜照片角色与文件ID列表',
|
||
`prepared_at` datetime(3) DEFAULT NULL COMMENT '选择柜号时间',
|
||
`signed_at` datetime(3) DEFAULT NULL COMMENT '签收时间',
|
||
`receiving_at` datetime(3) DEFAULT NULL COMMENT '首次收货时间',
|
||
`completed_at` datetime(3) DEFAULT NULL COMMENT '完成时间',
|
||
`created_at` datetime(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) COMMENT '创建时间',
|
||
`updated_at` datetime(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3) COMMENT '更新时间',
|
||
`version` int NOT NULL DEFAULT '0' COMMENT '乐观锁版本',
|
||
PRIMARY KEY (`id`),
|
||
UNIQUE KEY `uk_ll_receiving_active_operator` (`active_operator_key`),
|
||
UNIQUE KEY `uk_ll_receiving_active_container` (`active_container_key`),
|
||
KEY `idx_ll_receiving_container` (`customer_id`,`container_no`,`status`),
|
||
KEY `idx_ll_receiving_operator` (`customer_id`,`operator_key`,`created_at`)
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='海外PDA柜号签收收货会话';
|
||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||
DROP TABLE IF EXISTS `ll_receiving_fba_pallet_count`;
|
||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||
/*!50503 SET character_set_client = utf8mb4 */;
|
||
CREATE TABLE `ll_receiving_fba_pallet_count` (
|
||
`id` bigint NOT NULL COMMENT 'FBA托盘现场累计箱数ID',
|
||
`session_id` bigint NOT NULL COMMENT '柜号签收会话ID',
|
||
`group_key` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '柜号与FBA仓组成的收货组键',
|
||
`pallet_code` varchar(128) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '现有FBA托盘码',
|
||
`actual_packages` int NOT NULL COMMENT '该托现场累计实物箱数',
|
||
`created_at` datetime(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) COMMENT '创建时间',
|
||
`updated_at` datetime(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3) COMMENT '更新时间',
|
||
PRIMARY KEY (`id`),
|
||
UNIQUE KEY `uk_ll_receiving_fba_count` (`session_id`,`group_key`,`pallet_code`),
|
||
KEY `idx_ll_receiving_fba_group` (`session_id`,`group_key`)
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='海外PDA普通FBA托盘现场累计与超收标记';
|
||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||
DROP TABLE IF EXISTS `ll_receiving_sku_receipt`;
|
||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||
/*!50503 SET character_set_client = utf8mb4 */;
|
||
CREATE TABLE `ll_receiving_sku_receipt` (
|
||
`id` bigint NOT NULL COMMENT 'FBA SKU实收进度ID',
|
||
`customer_id` varchar(128) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '客户账号标识',
|
||
`session_id` bigint NOT NULL COMMENT '柜号签收会话ID',
|
||
`plan_id` bigint NOT NULL COMMENT '入仓计划ID',
|
||
`line_id` bigint NOT NULL COMMENT '入仓计划明细ID',
|
||
`pallet_id` bigint NOT NULL COMMENT '计划托盘ID',
|
||
`order_id` bigint NOT NULL COMMENT '尾程订单ID',
|
||
`inbound_code` varchar(128) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '入仓码快照',
|
||
`sku_code` varchar(128) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT 'SKU编码快照',
|
||
`product_name` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '产品名称快照',
|
||
`received_packages` int NOT NULL COMMENT 'SKU实收箱数',
|
||
`created_at` datetime(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) COMMENT '创建时间',
|
||
`updated_at` datetime(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3) COMMENT '更新时间',
|
||
`version` int NOT NULL DEFAULT '0' COMMENT '乐观锁版本',
|
||
PRIMARY KEY (`id`),
|
||
UNIQUE KEY `uk_ll_receiving_sku_pallet` (`customer_id`,`line_id`,`pallet_id`,`sku_code`),
|
||
KEY `idx_ll_receiving_sku_session` (`customer_id`,`session_id`,`line_id`),
|
||
KEY `idx_ll_receiving_sku_plan` (`customer_id`,`plan_id`,`line_id`)
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='海外PDA柜号FBA SKU实收进度';
|
||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||
DROP TABLE IF EXISTS `ll_receiving_warehouse_operation`;
|
||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||
/*!50503 SET character_set_client = utf8mb4 */;
|
||
CREATE TABLE `ll_receiving_warehouse_operation` (
|
||
`id` bigint NOT NULL COMMENT '柜级接柜仓修改操作ID',
|
||
`source_container_booking_id` varchar(128) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '稳定来源柜预订ID',
|
||
`idempotency_key` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '平台请求幂等键',
|
||
`request_hash` varchar(64) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '规范化修改请求SHA-256摘要',
|
||
`result_version` int NOT NULL COMMENT '修改成功后的柜级分配版本',
|
||
`operator_name` varchar(128) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '平台操作人名称',
|
||
`remark` varchar(500) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '接柜仓修改备注',
|
||
`created_at` datetime(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) COMMENT '操作时间',
|
||
PRIMARY KEY (`id`),
|
||
UNIQUE KEY `uk_ll_receiving_warehouse_idempotency` (`idempotency_key`),
|
||
KEY `idx_ll_receiving_warehouse_container` (`source_container_booking_id`,`created_at`)
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='柜级海外接柜仓修改幂等审计记录';
|
||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||
DROP TABLE IF EXISTS `ll_relabel_application`;
|
||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||
/*!50503 SET character_set_client = utf8mb4 */;
|
||
CREATE TABLE `ll_relabel_application` (
|
||
`id` bigint NOT NULL COMMENT 'Snowflake ID',
|
||
`customer_id` varchar(128) COLLATE utf8mb4_unicode_ci NOT NULL,
|
||
`relabel_no` varchar(64) COLLATE utf8mb4_unicode_ci NOT NULL,
|
||
`lastleg_order_id` bigint NOT NULL,
|
||
`customer_order_no` varchar(128) COLLATE utf8mb4_unicode_ci NOT NULL,
|
||
`overseas_warehouse_id` varchar(128) COLLATE utf8mb4_unicode_ci NOT NULL,
|
||
`label_deadline` datetime(3) NOT NULL,
|
||
`contact_name` varchar(128) COLLATE utf8mb4_unicode_ci NOT NULL,
|
||
`contact_phone` varchar(64) COLLATE utf8mb4_unicode_ci NOT NULL,
|
||
`delivery_method` varchar(32) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '派送方式:TRUCK卡车、PICKUP自提、EXPRESS快递;仅涉及箱唛换标时必填',
|
||
`print_shipping_label` tinyint(1) NOT NULL DEFAULT '0' COMMENT '是否需要打印面单',
|
||
`shipping_label_file_id` varchar(128) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '客户上传面单文件ID',
|
||
`shipping_label_file_name` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '客户上传面单文件名',
|
||
`shipping_label_file_url` varchar(1000) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '客户上传面单下载地址',
|
||
`fulfillment_status` varchar(32) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT 'WAIT_RELABEL' COMMENT '换标后履约状态',
|
||
`outbound_order_no` varchar(64) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '自提或快递生成的换标出库单号',
|
||
`customer_confirmation_key` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '客户确认完成幂等键',
|
||
`customer_confirmed_at` datetime(3) DEFAULT NULL COMMENT '客户确认换标完成时间',
|
||
`remark` varchar(1000) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
|
||
`total_file_id` varchar(128) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '总换标PDF文件ID',
|
||
`total_file_name` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '总换标PDF文件名',
|
||
`total_file_url` varchar(1000) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '总换标PDF预览地址',
|
||
`carton_total_file_id` varchar(128) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '箱唛总文件ID',
|
||
`carton_total_file_name` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '箱唛总文件名',
|
||
`carton_total_file_url` varchar(1000) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '箱唛总文件地址',
|
||
`sku_total_file_id` varchar(128) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT 'SKU总文件ID',
|
||
`sku_total_file_name` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT 'SKU总文件名',
|
||
`sku_total_file_url` varchar(1000) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT 'SKU总文件地址',
|
||
`status` varchar(32) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT 'PENDING_PROCESSING',
|
||
`item_count` int NOT NULL DEFAULT '0',
|
||
`total_package_count` int NOT NULL DEFAULT '0',
|
||
`notified_package_count` int NOT NULL DEFAULT '0',
|
||
`charge_amount` decimal(20,2) NOT NULL DEFAULT '0.00' COMMENT '换标费用CNY',
|
||
`charge_currency` char(3) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT 'CNY' COMMENT '费用币种',
|
||
`wallet_status` varchar(32) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT 'FREEZE_PENDING' COMMENT '资金状态',
|
||
`wallet_error_code` varchar(64) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '资金错误码',
|
||
`wallet_error_message` varchar(500) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '资金错误说明',
|
||
`wallet_command_event_id` varchar(64) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '当前资金指令事件ID',
|
||
`idempotency_key` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL,
|
||
`request_hash` char(64) COLLATE utf8mb4_unicode_ci NOT NULL,
|
||
`created_by` varchar(128) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
|
||
`created_at` datetime(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3),
|
||
`updated_at` datetime(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3),
|
||
`tenant_id` varchar(128) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT 'BAIYUE' COMMENT 'SaaS租户标识,当前单租户固定为BAIYUE',
|
||
PRIMARY KEY (`id`),
|
||
UNIQUE KEY `uk_ll_relabel_application_no` (`customer_id`,`relabel_no`),
|
||
UNIQUE KEY `uk_ll_relabel_application_idempotency` (`customer_id`,`idempotency_key`),
|
||
KEY `idx_ll_relabel_application_list` (`customer_id`,`status`,`created_at`),
|
||
KEY `idx_ll_relabel_application_customer` (`customer_id`,`customer_order_no`),
|
||
KEY `idx_ll_relabel_application_warehouse` (`customer_id`,`overseas_warehouse_id`),
|
||
KEY `idx_ll_relabel_application_order` (`lastleg_order_id`)
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='Customer relabel application header';
|
||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||
DROP TABLE IF EXISTS `ll_relabel_item`;
|
||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||
/*!50503 SET character_set_client = utf8mb4 */;
|
||
CREATE TABLE `ll_relabel_item` (
|
||
`id` bigint NOT NULL COMMENT 'Snowflake ID',
|
||
`application_id` bigint NOT NULL,
|
||
`customer_id` varchar(128) COLLATE utf8mb4_unicode_ci NOT NULL,
|
||
`sku_code` varchar(128) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT 'SKU编码(选填)',
|
||
`product_image_file_id` varchar(128) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
|
||
`product_image_file_name` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
|
||
`product_image_url` varchar(1000) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
|
||
`product_name_zh` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL,
|
||
`total_package_count` int NOT NULL,
|
||
`notified_package_count` int NOT NULL,
|
||
`shipment_no` varchar(128) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '货件编号(无FBA去向时为空)',
|
||
`tracking_code` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
|
||
`new_sku_code` varchar(128) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '换标后SKU编码',
|
||
`label_requirement` varchar(1000) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
|
||
`remark` varchar(1000) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '货物明细备注',
|
||
`relabel_file_id` varchar(128) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
|
||
`relabel_file_name` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
|
||
`relabel_file_url` varchar(1000) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
|
||
`created_at` datetime(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3),
|
||
`tenant_id` varchar(128) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT 'BAIYUE' COMMENT 'SaaS租户标识,当前单租户固定为BAIYUE',
|
||
`carton_mark` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '瀹㈡埛鑷湁绠卞敍',
|
||
`return_carton_id` bigint DEFAULT NULL COMMENT '閫�璐ф崲绠卞敍鏉ユ簮閫�璐у簱瀛樼ID',
|
||
`source_carton_mark` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '閫�璐ф崲绠卞敍鍘熺鍞涘揩鐓�',
|
||
`new_carton_mark` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '閫�璐ф崲绠卞敍鏂扮鍞�',
|
||
`fba_carton_mark` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '鍏宠仈FBA绠卞敍',
|
||
`destination_warehouse_id` varchar(128) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '该箱目的海外仓ID',
|
||
`destination_fba_warehouse_code` varchar(128) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '可选FBA目的仓编码(与海外操作仓分离)',
|
||
`operation_type` varchar(32) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT 'CARTON_LABEL' COMMENT '换标模式:箱唛、SKU或组合换标',
|
||
`sku_relabel_items_json` json DEFAULT NULL COMMENT '同箱SKU换标子明细快照(数量按件)',
|
||
`source_inventory_balance_id` bigint DEFAULT NULL COMMENT '原库存余额ID(预入仓换标任务可为空)',
|
||
`source_inventory_position_id` bigint DEFAULT NULL COMMENT '原库存库位ID(预入仓换标任务可为空)',
|
||
`source_inbound_order_id` bigint DEFAULT NULL COMMENT '原入仓单ID(预入仓换标任务可为空)',
|
||
`source_inbound_order_no` varchar(128) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
|
||
`source_inbound_code` varchar(128) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
|
||
`source_warehouse_id` varchar(128) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
|
||
`source_warehouse_code` varchar(128) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
|
||
`source_warehouse_name` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
|
||
PRIMARY KEY (`id`),
|
||
KEY `idx_ll_relabel_item_application` (`customer_id`,`application_id`),
|
||
KEY `idx_ll_relabel_item_sku` (`customer_id`,`sku_code`),
|
||
KEY `idx_ll_relabel_item_destination` (`customer_id`,`destination_warehouse_id`,`application_id`),
|
||
KEY `idx_ll_relabel_item_source_position` (`customer_id`,`source_inventory_position_id`)
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='Frozen customer relabel cargo items';
|
||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||
DROP TABLE IF EXISTS `ll_relabel_pda_history`;
|
||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||
/*!50503 SET character_set_client = utf8mb4 */;
|
||
CREATE TABLE `ll_relabel_pda_history` (
|
||
`id` bigint NOT NULL COMMENT '换标PDA任务历史ID',
|
||
`task_id` bigint NOT NULL COMMENT '换标PDA任务ID',
|
||
`application_id` bigint NOT NULL COMMENT '换标申请单ID',
|
||
`customer_id` varchar(128) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '客户数据隔离键',
|
||
`action` varchar(32) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '现场动作类型',
|
||
`from_status` varchar(32) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '动作前任务状态',
|
||
`to_status` varchar(32) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '动作后任务状态',
|
||
`operator_key` varchar(128) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '操作账号标识',
|
||
`operator_name` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '操作员名称快照',
|
||
`detail_json` longtext COLLATE utf8mb4_unicode_ci COMMENT '动作详情JSON',
|
||
`created_at` datetime(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) COMMENT '创建时间',
|
||
PRIMARY KEY (`id`),
|
||
KEY `idx_ll_relabel_pda_history_task` (`customer_id`,`task_id`,`created_at`,`id`),
|
||
KEY `idx_ll_relabel_pda_history_application` (`customer_id`,`application_id`,`created_at`)
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='海外PDA换标任务不可变操作历史';
|
||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||
DROP TABLE IF EXISTS `ll_relabel_pda_operation`;
|
||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||
/*!50503 SET character_set_client = utf8mb4 */;
|
||
CREATE TABLE `ll_relabel_pda_operation` (
|
||
`id` bigint NOT NULL COMMENT '换标PDA幂等操作ID',
|
||
`task_id` bigint NOT NULL COMMENT '换标PDA任务ID',
|
||
`customer_id` varchar(128) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '客户数据隔离键',
|
||
`operator_key` varchar(128) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '请求操作账号标识',
|
||
`action` varchar(32) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '幂等操作动作',
|
||
`idempotency_key` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '设备生成的幂等键',
|
||
`request_hash` char(64) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '请求内容哈希',
|
||
`result_json` longtext COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '成功响应快照JSON',
|
||
`created_at` datetime(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) COMMENT '创建时间',
|
||
PRIMARY KEY (`id`),
|
||
UNIQUE KEY `uk_ll_relabel_pda_operation_key` (`operator_key`,`idempotency_key`),
|
||
KEY `idx_ll_relabel_pda_operation_task` (`customer_id`,`task_id`,`created_at`)
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='海外PDA换标写操作幂等记录';
|
||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||
DROP TABLE IF EXISTS `ll_relabel_pda_task`;
|
||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||
/*!50503 SET character_set_client = utf8mb4 */;
|
||
CREATE TABLE `ll_relabel_pda_task` (
|
||
`id` bigint NOT NULL COMMENT '换标PDA任务ID',
|
||
`application_id` bigint NOT NULL COMMENT '换标申请单ID',
|
||
`customer_id` varchar(128) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '客户数据隔离键',
|
||
`relabel_no` varchar(64) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '换标申请单号快照',
|
||
`overseas_warehouse_id` bigint NOT NULL COMMENT 'PDA令牌冻结的海外实际作业仓ID',
|
||
`status` varchar(32) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '任务状态:PROCESSING、WAIT_REVIEW或COMPLETED',
|
||
`operator_key` varchar(128) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '认领操作账号标识',
|
||
`operator_name` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '认领操作员名称快照',
|
||
`reviewer_key` varchar(128) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '复核账号标识',
|
||
`reviewer_name` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '复核员名称快照',
|
||
`expected_packages` int NOT NULL COMMENT '申请单通知的应换标箱数',
|
||
`relabelled_packages` int NOT NULL DEFAULT '0' COMMENT '已正常换标箱数',
|
||
`skipped_packages` int NOT NULL DEFAULT '0' COMMENT '已说明原因跳过箱数',
|
||
`exception_packages` int NOT NULL DEFAULT '0' COMMENT '已登记异常箱数',
|
||
`completion_photo_file_ids` json DEFAULT NULL COMMENT '换标完成现场照片文件ID列表',
|
||
`completion_remark` varchar(1000) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '完成提交备注',
|
||
`review_decision` varchar(32) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '最近复核结论:APPROVE、REWORK或CUSTOMER_CONFIRMED',
|
||
`review_remark` varchar(1000) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '最近复核备注',
|
||
`claimed_at` datetime(3) NOT NULL COMMENT '任务认领时间',
|
||
`submitted_at` datetime(3) DEFAULT NULL COMMENT '提交复核时间',
|
||
`reviewed_at` datetime(3) DEFAULT NULL COMMENT '最近复核时间',
|
||
`version` int NOT NULL DEFAULT '0' COMMENT '乐观锁版本',
|
||
`created_at` datetime(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) COMMENT '创建时间',
|
||
`updated_at` datetime(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3) COMMENT '更新时间',
|
||
PRIMARY KEY (`id`),
|
||
UNIQUE KEY `uk_ll_relabel_pda_task_application` (`customer_id`,`application_id`),
|
||
UNIQUE KEY `uk_ll_relabel_pda_task_no` (`relabel_no`),
|
||
KEY `idx_ll_relabel_pda_task_warehouse` (`overseas_warehouse_id`,`status`,`updated_at`),
|
||
KEY `idx_ll_relabel_pda_task_operator` (`operator_key`,`status`,`updated_at`)
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='海外PDA换标现场作业任务';
|
||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||
DROP TABLE IF EXISTS `ll_relabel_pda_unit_fact`;
|
||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||
/*!50503 SET character_set_client = utf8mb4 */;
|
||
CREATE TABLE `ll_relabel_pda_unit_fact` (
|
||
`id` bigint NOT NULL COMMENT '逐件换标事实ID',
|
||
`task_id` bigint NOT NULL COMMENT '换标PDA任务ID',
|
||
`application_id` bigint NOT NULL COMMENT '换标申请单ID',
|
||
`item_id` bigint NOT NULL COMMENT '换标申请明细ID',
|
||
`customer_id` varchar(128) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '客户数据隔离键',
|
||
`old_label` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '扫描的实物旧标签或箱标',
|
||
`new_label` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '扫描的换标后新标签',
|
||
`result` varchar(32) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '逐件结果:RELABELLED、SKIPPED或EXCEPTION',
|
||
`exception_code` varchar(32) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '异常编码',
|
||
`reason` varchar(1000) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '跳过或异常原因',
|
||
`quantity` int NOT NULL DEFAULT '1' COMMENT '本次事实处理件数,箱级作业固定为1',
|
||
`operator_key` varchar(128) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '操作账号标识',
|
||
`operator_name` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '操作员名称快照',
|
||
`occurred_at` datetime(3) NOT NULL COMMENT '逐件事实发生时间',
|
||
PRIMARY KEY (`id`),
|
||
UNIQUE KEY `uk_ll_relabel_pda_old_label` (`old_label`),
|
||
KEY `idx_ll_relabel_pda_unit_task` (`customer_id`,`task_id`,`occurred_at`,`id`),
|
||
KEY `idx_ll_relabel_pda_unit_item` (`customer_id`,`application_id`,`item_id`)
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='海外PDA逐件换标扫码与异常事实';
|
||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||
DROP TABLE IF EXISTS `ll_relabel_status_history`;
|
||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||
/*!50503 SET character_set_client = utf8mb4 */;
|
||
CREATE TABLE `ll_relabel_status_history` (
|
||
`id` bigint NOT NULL COMMENT 'Snowflake ID',
|
||
`customer_id` varchar(128) COLLATE utf8mb4_unicode_ci NOT NULL,
|
||
`application_id` bigint NOT NULL,
|
||
`from_status` varchar(32) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
|
||
`to_status` varchar(32) COLLATE utf8mb4_unicode_ci NOT NULL,
|
||
`operator_id` varchar(128) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
|
||
`remark` varchar(1000) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
|
||
`created_at` datetime(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3),
|
||
`tenant_id` varchar(128) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT 'BAIYUE' COMMENT 'SaaS租户标识,当前单租户固定为BAIYUE',
|
||
PRIMARY KEY (`id`),
|
||
KEY `idx_ll_relabel_status_history_application` (`customer_id`,`application_id`,`created_at`)
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='Immutable customer relabel process history';
|
||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||
DROP TABLE IF EXISTS `ll_return_carton_count_session`;
|
||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||
/*!50503 SET character_set_client = utf8mb4 */;
|
||
CREATE TABLE `ll_return_carton_count_session` (
|
||
`operator_id` varchar(128) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '平台PDA操作员标识',
|
||
`warehouse_id` varchar(128) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '认领时绑定海外仓标识',
|
||
`receipt_id` bigint DEFAULT NULL COMMENT '正在清点的签收批次,完成后释放为NULL',
|
||
`started_at` datetime(3) DEFAULT NULL COMMENT '本次开始清点时间',
|
||
`created_at` datetime(3) NOT NULL COMMENT '会话创建时间',
|
||
`updated_at` datetime(3) NOT NULL COMMENT '会话更新时间',
|
||
PRIMARY KEY (`operator_id`),
|
||
UNIQUE KEY `uk_ll_return_count_session_receipt` (`receipt_id`)
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='退货箱内清点单人单任务持久会话';
|
||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||
DROP TABLE IF EXISTS `ll_return_inventory_balance`;
|
||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||
/*!50503 SET character_set_client = utf8mb4 */;
|
||
CREATE TABLE `ll_return_inventory_balance` (
|
||
`id` bigint NOT NULL COMMENT '退货库存余额ID',
|
||
`customer_id` varchar(128) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '客户ID和隔离键',
|
||
`overseas_warehouse_id` varchar(128) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '海外仓ID',
|
||
`sku_code` varchar(128) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT 'SKU编码',
|
||
`product_name_zh` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '中文品名',
|
||
`total_quantity` bigint NOT NULL DEFAULT '0' COMMENT '实物总库存,仅实际出库扣减',
|
||
`available_quantity` bigint NOT NULL COMMENT '可用上架数量',
|
||
`carton_quantity` bigint NOT NULL COMMENT '包含该SKU的可用箱数',
|
||
`created_at` datetime(3) NOT NULL COMMENT '创建时间',
|
||
`updated_at` datetime(3) NOT NULL COMMENT '最后更新时间',
|
||
PRIMARY KEY (`id`),
|
||
UNIQUE KEY `uk_ll_return_inventory_balance` (`customer_id`,`overseas_warehouse_id`,`sku_code`),
|
||
CONSTRAINT `chk_ll_return_inventory_balance_quantity` CHECK (((`available_quantity` >= 0) and (`carton_quantity` >= 0)))
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='退货库存按客户海外仓SKU汇总余额';
|
||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||
DROP TABLE IF EXISTS `ll_return_inventory_carton`;
|
||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||
/*!50503 SET character_set_client = utf8mb4 */;
|
||
CREATE TABLE `ll_return_inventory_carton` (
|
||
`id` bigint NOT NULL COMMENT '退货库存箱ID',
|
||
`customer_id` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '客户ID和隔离键',
|
||
`overseas_warehouse_id` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '海外仓ID',
|
||
`source_receipt_id` bigint DEFAULT NULL COMMENT '来源PDA签收单ID',
|
||
`source_batch_no` text COLLATE utf8mb4_unicode_ci COMMENT '实际消耗来源签收批次号,多个批次逗号分隔',
|
||
`source_return_no` text COLLATE utf8mb4_unicode_ci COMMENT '实际消耗来源退货单号,多个单号逗号分隔',
|
||
`source_unit_type` varchar(16) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '来源实物类型',
|
||
`source_unit_code` varchar(128) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '来源实物编码',
|
||
`pallet_code` varchar(128) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '签收时绑定的托盘码',
|
||
`carton_mark` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '退货箱号和箱唛编码',
|
||
`fba_carton_mark` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT 'FBA箱唛',
|
||
`destination_warehouse_code` varchar(128) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '目的仓编码',
|
||
`destination_warehouse_name` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '目的仓名称',
|
||
`relabel_application_id` bigint DEFAULT NULL COMMENT '绑定换标申请单ID',
|
||
`relabel_no` varchar(64) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '绑定换标单号',
|
||
`relabel_status` varchar(32) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '换标状态',
|
||
`relabel_completed_at` datetime(3) DEFAULT NULL COMMENT '换标完成时间',
|
||
`status` varchar(32) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT 'AVAILABLE可用或MERGED已合箱',
|
||
`sku_types` int NOT NULL COMMENT '箱内SKU种类数',
|
||
`total_quantity` bigint NOT NULL COMMENT '箱内总件数',
|
||
`created_at` datetime(3) NOT NULL COMMENT '创建时间',
|
||
`updated_at` datetime(3) NOT NULL COMMENT '最后更新时间',
|
||
`merged_at` datetime(3) DEFAULT NULL COMMENT '合箱完成时间',
|
||
`length` decimal(12,3) DEFAULT NULL COMMENT '绠遍暱CM',
|
||
`width` decimal(12,3) DEFAULT NULL COMMENT '绠卞CM',
|
||
`height` decimal(12,3) DEFAULT NULL COMMENT '绠遍珮CM',
|
||
`weight` decimal(12,3) DEFAULT NULL COMMENT '绠遍噸KG',
|
||
`original_packaging` tinyint(1) DEFAULT NULL COMMENT '是否使用原箱原包装',
|
||
`new_carton_mark` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '鎹㈡爣鍚庢柊绠卞敍',
|
||
`location_code` varchar(128) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '退货箱当前库位',
|
||
`putaway_at` datetime(3) DEFAULT NULL COMMENT '退货箱上架时间',
|
||
`count_status` varchar(16) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT 'CONFIRMED' COMMENT '箱内清点状态 PENDING待清点 CONFIRMED已确认',
|
||
`counted_at` datetime(3) DEFAULT NULL COMMENT '箱内清点确认时间',
|
||
`counted_by` varchar(128) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '箱内清点确认操作人',
|
||
`label_status` varchar(32) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT 'WAIT_LABEL寰呰创鏍� CONFIRMED宸叉壂鐮佺‘璁ゆ爣绛�',
|
||
PRIMARY KEY (`id`),
|
||
UNIQUE KEY `uk_ll_return_inventory_carton_mark` (`carton_mark`),
|
||
KEY `idx_ll_return_inventory_carton_customer` (`customer_id`,`overseas_warehouse_id`,`status`,`created_at`),
|
||
KEY `idx_ll_return_inventory_carton_receipt` (`source_receipt_id`),
|
||
KEY `idx_ll_return_count` (`overseas_warehouse_id`,`count_status`,`status`,`source_receipt_id`),
|
||
CONSTRAINT `chk_ll_return_inventory_carton_quantity` CHECK ((((`status` in (_utf8mb4'AVAILABLE',_utf8mb4'PACKING_RESERVED',_utf8mb4'RELABEL_PENDING',_utf8mb4'OUTBOUND_PENDING',_utf8mb4'OUTBOUNDED',_utf8mb4'DISCARD_PENDING')) and (`sku_types` > 0) and (`total_quantity` > 0)) or ((`status` in (_utf8mb4'MERGED',_utf8mb4'DISCARDED')) and (`sku_types` = 0) and (`total_quantity` = 0)))),
|
||
CONSTRAINT `chk_ll_return_inventory_carton_status` CHECK ((`status` in (_utf8mb4'AVAILABLE',_utf8mb4'PACKING_RESERVED',_utf8mb4'RELABEL_PENDING',_utf8mb4'OUTBOUND_PENDING',_utf8mb4'MERGED',_utf8mb4'OUTBOUNDED',_utf8mb4'DISCARD_PENDING',_utf8mb4'DISCARDED')))
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='退货实物库存箱及箱唛';
|
||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||
DROP TABLE IF EXISTS `ll_return_inventory_carton_item`;
|
||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||
/*!50503 SET character_set_client = utf8mb4 */;
|
||
CREATE TABLE `ll_return_inventory_carton_item` (
|
||
`id` bigint NOT NULL COMMENT '退货库存箱SKU明细ID',
|
||
`carton_id` bigint NOT NULL COMMENT '退货库存箱ID',
|
||
`customer_id` varchar(128) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '客户ID和隔离键',
|
||
`sku_code` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT 'SKU编码',
|
||
`product_name_zh` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '中文品名',
|
||
`quantity` bigint NOT NULL COMMENT '该SKU箱内数量',
|
||
`packing_reserved_quantity` bigint NOT NULL DEFAULT '0' COMMENT '合箱计划预占件数',
|
||
`relabelled_quantity` bigint NOT NULL DEFAULT '0' COMMENT '当前SKU已经换标的实物件数,不可二次换标',
|
||
PRIMARY KEY (`id`),
|
||
UNIQUE KEY `uk_ll_return_inventory_carton_item` (`carton_id`,`sku_code`),
|
||
KEY `idx_ll_return_inventory_carton_item_customer` (`customer_id`,`sku_code`),
|
||
CONSTRAINT `chk_ll_return_inventory_carton_item_quantity` CHECK ((`quantity` >= 0))
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='退货库存箱内SKU和数量';
|
||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||
DROP TABLE IF EXISTS `ll_return_inventory_operation`;
|
||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||
/*!50503 SET character_set_client = utf8mb4 */;
|
||
CREATE TABLE `ll_return_inventory_operation` (
|
||
`id` bigint NOT NULL COMMENT '退货库存PDA操作ID',
|
||
`operator_id` varchar(128) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT 'PDA操作人ID',
|
||
`idempotency_key` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '操作幂等键',
|
||
`request_hash` char(64) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '请求内容SHA-256',
|
||
`operation_type` varchar(32) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '操作类型,当前MERGE',
|
||
`result_carton_id` bigint DEFAULT NULL COMMENT '合箱结果退货库存箱ID',
|
||
`created_at` datetime(3) NOT NULL COMMENT '创建时间',
|
||
`updated_at` datetime(3) NOT NULL COMMENT '最后更新时间',
|
||
`result_json` json DEFAULT NULL COMMENT '幂等操作不可变返回快照',
|
||
PRIMARY KEY (`id`),
|
||
UNIQUE KEY `uk_ll_return_inventory_operation_operator_key` (`operator_id`,`idempotency_key`),
|
||
KEY `idx_ll_return_inventory_operation_result` (`result_carton_id`)
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='退货库存PDA合箱幂等操作审计';
|
||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||
DROP TABLE IF EXISTS `ll_return_inventory_outbound_movement`;
|
||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||
/*!50503 SET character_set_client = utf8mb4 */;
|
||
CREATE TABLE `ll_return_inventory_outbound_movement` (
|
||
`id` bigint NOT NULL COMMENT '退货出库SKU流水ID',
|
||
`outbound_pick_id` bigint NOT NULL COMMENT '同事务PDA出库拣货记录ID',
|
||
`customer_id` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '库存所属客户ID和隔离键',
|
||
`overseas_warehouse_id` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '实际出库海外仓ID',
|
||
`carton_id` bigint NOT NULL COMMENT '真实退货库存箱ID',
|
||
`carton_mark` varchar(128) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '冻结的真实退货箱业务码',
|
||
`outbound_no` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '本次退货出库业务单号',
|
||
`sku_code` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '本次出库SKU编码快照',
|
||
`product_name_zh` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '中文品名快照',
|
||
`quantity` bigint NOT NULL COMMENT '本箱该SKU实际出库件数,始终为正',
|
||
`total_before` bigint NOT NULL COMMENT '客户仓SKU出库前实物总数量',
|
||
`total_after` bigint NOT NULL COMMENT '客户仓SKU出库后实物总数量',
|
||
`available_before` bigint NOT NULL COMMENT '客户仓SKU出库前可用数量',
|
||
`available_after` bigint NOT NULL COMMENT '客户仓SKU出库后可用数量',
|
||
`cartons_before` bigint NOT NULL COMMENT '客户仓包含该SKU的出库前可用箱数',
|
||
`cartons_after` bigint NOT NULL COMMENT '客户仓包含该SKU的出库后可用箱数',
|
||
`occurred_at` datetime(3) NOT NULL COMMENT '出库记账时间',
|
||
PRIMARY KEY (`id`),
|
||
UNIQUE KEY `uk_ll_return_outbound_pick_sku` (`outbound_pick_id`,`sku_code`),
|
||
KEY `idx_ll_return_outbound_movement_query` (`customer_id`,`overseas_warehouse_id`,`sku_code`,`occurred_at`),
|
||
KEY `idx_ll_return_outbound_carton_sku` (`customer_id`,`carton_id`,`sku_code`),
|
||
CONSTRAINT `chk_ll_return_outbound_movement_delta` CHECK (((`quantity` > 0) and (`total_after` >= 0) and (`available_after` >= 0) and ((`total_before` - `total_after`) = `quantity`) and ((`available_before` - `available_after`) = `quantity`) and (`cartons_after` >= 0) and ((`cartons_before` - `cartons_after`) in (0,1)) and (`total_after` >= `available_after`)))
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='不可变退货出库SKU库存流水';
|
||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||
DROP TABLE IF EXISTS `ll_return_order`;
|
||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||
/*!50503 SET character_set_client = utf8mb4 */;
|
||
CREATE TABLE `ll_return_order` (
|
||
`id` bigint NOT NULL COMMENT '退货订单ID',
|
||
`customer_id` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '客户ID和隔离键',
|
||
`return_no` varchar(128) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '退货订单号',
|
||
`overseas_warehouse_id` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '操作海外仓ID',
|
||
`warehouse_contact_name` varchar(128) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '中转仓联系人快照',
|
||
`warehouse_contact_phone` varchar(64) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '中转仓联系电话快照',
|
||
`customer_reference_no` varchar(128) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '客户参考号',
|
||
`lastleg_order_id` bigint DEFAULT NULL COMMENT '鍏宠仈灏剧▼涓昏鍗旾D',
|
||
`lastleg_order_no` varchar(128) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT 'linked lastleg order no',
|
||
`need_relabel` tinyint(1) NOT NULL DEFAULT '0' COMMENT '是否需要换标',
|
||
`relabel_application_id` bigint DEFAULT NULL COMMENT '绑定换标申请单ID',
|
||
`relabel_no` varchar(64) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '绑定换标单号',
|
||
`relabel_status` varchar(32) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '换标状态',
|
||
`status` varchar(32) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT 'PENDING_RECEIPT、PARTIALLY_RECEIVED或COMPLETED',
|
||
`expected_sku_types` int NOT NULL COMMENT '预报SKU种类数',
|
||
`expected_quantity` bigint NOT NULL COMMENT '预报总数量',
|
||
`received_quantity` bigint NOT NULL DEFAULT '0' COMMENT '累计实收总数量',
|
||
`remark` varchar(1000) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '客户备注',
|
||
`discrepancy_reason` varchar(500) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '手动完结差异原因',
|
||
`manually_completed_at` datetime(3) DEFAULT NULL COMMENT '手动差异完结时间',
|
||
`idempotency_key` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '创建幂等键',
|
||
`request_hash` char(64) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '创建请求SHA-256',
|
||
`created_by` varchar(128) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '创建操作人ID',
|
||
`created_at` datetime(3) NOT NULL COMMENT '创建时间',
|
||
`updated_at` datetime(3) NOT NULL COMMENT '最后更新时间',
|
||
PRIMARY KEY (`id`),
|
||
UNIQUE KEY `uk_ll_return_order_customer_no` (`customer_id`,`return_no`),
|
||
UNIQUE KEY `uk_ll_return_order_customer_key` (`customer_id`,`idempotency_key`),
|
||
KEY `idx_ll_return_order_warehouse_status` (`overseas_warehouse_id`,`status`,`created_at`),
|
||
CONSTRAINT `chk_ll_return_order_quantity` CHECK (((`expected_sku_types` > 0) and (`expected_quantity` > 0) and (`received_quantity` >= 0) and (`received_quantity` <= `expected_quantity`)))
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='客户退货订单及SKU实收汇总';
|
||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||
DROP TABLE IF EXISTS `ll_return_order_item`;
|
||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||
/*!50503 SET character_set_client = utf8mb4 */;
|
||
CREATE TABLE `ll_return_order_item` (
|
||
`id` bigint NOT NULL COMMENT '退货预报明细ID',
|
||
`return_order_id` bigint NOT NULL COMMENT '退货订单ID',
|
||
`customer_id` varchar(128) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '客户ID和隔离键',
|
||
`sku_code` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT 'SKU编码',
|
||
`product_name_zh` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '中文品名',
|
||
`expected_quantity` bigint NOT NULL COMMENT '该快递单SKU预报数量',
|
||
`received_quantity` bigint NOT NULL DEFAULT '0' COMMENT '该快递单SKU累计实收数量',
|
||
`created_at` datetime(3) NOT NULL COMMENT '创建时间',
|
||
`updated_at` datetime(3) NOT NULL COMMENT '最后更新时间',
|
||
PRIMARY KEY (`id`),
|
||
UNIQUE KEY `uk_ll_return_item_order_sku` (`return_order_id`,`sku_code`),
|
||
KEY `idx_ll_return_item_sku` (`sku_code`,`received_quantity`),
|
||
CONSTRAINT `chk_ll_return_item_quantity` CHECK (((`expected_quantity` > 0) and (`received_quantity` >= 0) and (`received_quantity` <= `expected_quantity`)))
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='客户退货订单的快递单SKU预报与实收明细';
|
||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||
DROP TABLE IF EXISTS `ll_return_packing_plan`;
|
||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||
/*!50503 SET character_set_client = utf8mb4 */;
|
||
CREATE TABLE `ll_return_packing_plan` (
|
||
`id` bigint NOT NULL,
|
||
`plan_no` varchar(64) COLLATE utf8mb4_unicode_ci NOT NULL,
|
||
`customer_id` varchar(128) COLLATE utf8mb4_unicode_ci NOT NULL,
|
||
`overseas_warehouse_id` varchar(128) COLLATE utf8mb4_unicode_ci NOT NULL,
|
||
`return_nos_json` json NOT NULL,
|
||
`boxes_json` json NOT NULL,
|
||
`mode` varchar(40) COLLATE utf8mb4_unicode_ci NOT NULL,
|
||
`status` varchar(32) COLLATE utf8mb4_unicode_ci NOT NULL,
|
||
`remark` varchar(1000) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
|
||
`idempotency_key` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL,
|
||
`created_at` datetime(3) NOT NULL,
|
||
`updated_at` datetime(3) NOT NULL,
|
||
`pushed_at` datetime(3) DEFAULT NULL,
|
||
`completed_at` datetime(3) DEFAULT NULL,
|
||
`source_items_json` json DEFAULT NULL COMMENT '精确来源箱和SKU锁定数量',
|
||
`result_marks_json` json DEFAULT NULL COMMENT '完成生成或并入的目标箱唛',
|
||
`request_hash` varchar(64) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '创建载荷摘要',
|
||
`completion_hash` varchar(64) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '完成载荷摘要',
|
||
`result_labels_json` json DEFAULT NULL COMMENT '计划完工标签快照',
|
||
PRIMARY KEY (`id`),
|
||
UNIQUE KEY `uk_ll_return_packing_plan_no` (`plan_no`),
|
||
UNIQUE KEY `uk_ll_return_packing_plan_key` (`idempotency_key`),
|
||
KEY `idx_ll_return_packing_plan_warehouse_status` (`overseas_warehouse_id`,`status`,`created_at`)
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='退货合箱计划';
|
||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||
DROP TABLE IF EXISTS `ll_return_packing_trace`;
|
||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||
/*!50503 SET character_set_client = utf8mb4 */;
|
||
CREATE TABLE `ll_return_packing_trace` (
|
||
`id` bigint NOT NULL COMMENT '合箱追溯ID',
|
||
`customer_id` varchar(128) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '原客户隔离键',
|
||
`operation_id` bigint NOT NULL COMMENT '合箱操作ID',
|
||
`source_carton_mark` varchar(128) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '来源箱唛 空值表示目标箱原有库存快照',
|
||
`target_carton_mark` varchar(128) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '目标箱唛',
|
||
`return_no` varchar(128) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '原始退货单号',
|
||
`sku_code` varchar(128) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '商品SKU编码',
|
||
`quantity` bigint NOT NULL COMMENT '本次移动件数',
|
||
`created_at` datetime(3) NOT NULL COMMENT '发生时间',
|
||
PRIMARY KEY (`id`),
|
||
KEY `idx_return_packing_trace_order` (`customer_id`,`return_no`,`created_at`),
|
||
KEY `idx_return_packing_trace_target` (`customer_id`,`target_carton_mark`,`sku_code`),
|
||
KEY `idx_return_packing_trace_source` (`customer_id`,`source_carton_mark`,`sku_code`),
|
||
CONSTRAINT `chk_return_packing_trace_quantity` CHECK ((`quantity` > 0))
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='退货合箱逐SKU原始退货单不可变追溯';
|
||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||
DROP TABLE IF EXISTS `ll_return_receipt`;
|
||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||
/*!50503 SET character_set_client = utf8mb4 */;
|
||
CREATE TABLE `ll_return_receipt` (
|
||
`id` bigint NOT NULL COMMENT 'PDA退货签收单ID',
|
||
`return_order_id` bigint NOT NULL COMMENT '退货订单ID',
|
||
`customer_id` varchar(128) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '客户ID和隔离键',
|
||
`receipt_no` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '签收单号',
|
||
`receipt_batch_no` varchar(128) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '签收批次号',
|
||
`unit_type` varchar(16) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '签收实物类型 PALLET/BOX/PARCEL',
|
||
`unit_code` varchar(128) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '签收实物编码',
|
||
`total_box_count` bigint DEFAULT NULL COMMENT '本次实物总箱数,托盘独立于SKU箱数',
|
||
`length` decimal(12,3) DEFAULT NULL COMMENT '托盘长度CM',
|
||
`width` decimal(12,3) DEFAULT NULL COMMENT '托盘宽度CM',
|
||
`height` decimal(12,3) DEFAULT NULL COMMENT '托盘高度CM',
|
||
`weight` decimal(12,3) DEFAULT NULL COMMENT '托盘重量KG',
|
||
`original_packaging` tinyint(1) DEFAULT NULL COMMENT '是否使用原箱原包装',
|
||
`measurement_source` varchar(32) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '尺寸重量来源 PALLET_MEASURED托盘实测 UNIT_SUM子箱汇总',
|
||
`pallet_code` varchar(128) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '本次签收绑定的托盘码',
|
||
`carton_mark` varchar(128) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '签收生成或绑定的退货箱号',
|
||
`tracking_no` varchar(128) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '本次签收包裹的可选快递单号',
|
||
`bound_by` varchar(16) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '开始签收方式,RETURN_NO退货单号或SKU候选',
|
||
`status` varchar(32) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '签收状态,当前SIGNED',
|
||
`received_quantity` bigint NOT NULL COMMENT '本次实收数量',
|
||
`operator_id` varchar(128) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT 'PDA操作人ID',
|
||
`operator_name` varchar(128) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT 'PDA操作人名称',
|
||
`idempotency_key` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT 'PDA确认幂等键',
|
||
`request_hash` char(64) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT 'PDA确认请求SHA-256',
|
||
`signed_at` datetime(3) NOT NULL COMMENT '签收时间',
|
||
`created_at` datetime(3) NOT NULL COMMENT '创建时间',
|
||
PRIMARY KEY (`id`),
|
||
UNIQUE KEY `uk_ll_return_receipt_no` (`receipt_no`),
|
||
UNIQUE KEY `uk_ll_return_receipt_batch` (`receipt_batch_no`),
|
||
UNIQUE KEY `uk_ll_return_receipt_operator_key` (`operator_id`,`idempotency_key`),
|
||
KEY `idx_ll_return_receipt_order` (`return_order_id`,`signed_at`),
|
||
CONSTRAINT `chk_ll_return_receipt_bound` CHECK ((`bound_by` in (_utf8mb4'RETURN_NO',_utf8mb4'SKU'))),
|
||
CONSTRAINT `chk_ll_return_receipt_quantity` CHECK ((`received_quantity` > 0))
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='PDA退货实收签收事实';
|
||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||
DROP TABLE IF EXISTS `ll_return_receipt_batch`;
|
||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||
/*!50503 SET character_set_client = utf8mb4 */;
|
||
CREATE TABLE `ll_return_receipt_batch` (
|
||
`id` bigint NOT NULL COMMENT '退货仓储计费批次ID',
|
||
`return_order_id` bigint NOT NULL COMMENT '退货订单ID',
|
||
`receipt_id` bigint NOT NULL COMMENT 'PDA退货签收单ID',
|
||
`customer_id` varchar(128) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '客户ID和隔离键',
|
||
`batch_no` varchar(128) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '签收批次号',
|
||
`overseas_warehouse_id` varchar(128) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '操作海外仓ID',
|
||
`storage_billing_status` varchar(32) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '仓储计费状态,初始PENDING_PRICING',
|
||
`storage_started_at` datetime(3) NOT NULL COMMENT '仓储计费起算时间',
|
||
`created_at` datetime(3) NOT NULL COMMENT '创建时间',
|
||
PRIMARY KEY (`id`),
|
||
UNIQUE KEY `uk_ll_return_batch_no` (`batch_no`),
|
||
UNIQUE KEY `uk_ll_return_batch_receipt` (`receipt_id`),
|
||
KEY `idx_ll_return_batch_billing` (`customer_id`,`overseas_warehouse_id`,`storage_billing_status`,`storage_started_at`)
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='每次退货签收生成的仓储费起算批次';
|
||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||
DROP TABLE IF EXISTS `ll_return_receipt_item`;
|
||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||
/*!50503 SET character_set_client = utf8mb4 */;
|
||
CREATE TABLE `ll_return_receipt_item` (
|
||
`id` bigint NOT NULL COMMENT '签收SKU明细ID',
|
||
`receipt_id` bigint NOT NULL COMMENT 'PDA退货签收单ID',
|
||
`return_order_item_id` bigint NOT NULL COMMENT '退货预报明细ID',
|
||
`customer_id` varchar(128) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '客户ID和隔离键',
|
||
`sku_code` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT 'SKU编码',
|
||
`received_quantity` bigint NOT NULL COMMENT '本次SKU实收数量',
|
||
`box_count` bigint DEFAULT NULL COMMENT '本次 SKU 对应箱数',
|
||
PRIMARY KEY (`id`),
|
||
KEY `idx_ll_return_receipt_item_receipt` (`receipt_id`),
|
||
KEY `idx_ll_return_receipt_item_order_item` (`return_order_item_id`),
|
||
CONSTRAINT `chk_ll_return_receipt_item_quantity` CHECK ((`received_quantity` > 0))
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='PDA退货签收SKU实际数量明细';
|
||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||
DROP TABLE IF EXISTS `ll_return_sku_conversion`;
|
||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||
/*!50503 SET character_set_client = utf8mb4 */;
|
||
CREATE TABLE `ll_return_sku_conversion` (
|
||
`id` bigint NOT NULL COMMENT 'SKU库存转换记录ID',
|
||
`customer_id` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '客户隔离键',
|
||
`overseas_warehouse_id` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '操作海外仓ID',
|
||
`application_id` bigint NOT NULL COMMENT '换标申请ID',
|
||
`relabel_no` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '换标单号',
|
||
`item_id` bigint NOT NULL COMMENT '换标箱级明细ID',
|
||
`round_key` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '作业轮次,退回重做使用新轮次',
|
||
`carton_id` bigint NOT NULL COMMENT '实物来源包裹或箱ID',
|
||
`carton_mark` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '完工时仓库识别码',
|
||
`old_sku_code` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '换标前SKU',
|
||
`new_sku_code` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '换标后SKU',
|
||
`product_name_zh` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '中文品名快照',
|
||
`quantity` bigint NOT NULL COMMENT '实际完成转换件数',
|
||
`status` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT 'APPLIED待客户确认/CONFIRMED已确认/REVERSED退回冲回',
|
||
`ownership_json` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '本次转换件数的来源退货单快照,供精确冲回',
|
||
`completed_at` datetime(3) NOT NULL COMMENT '实物SKU转换时间',
|
||
`confirmed_at` datetime(3) DEFAULT NULL COMMENT '客户确认时间',
|
||
`reversed_at` datetime(3) DEFAULT NULL COMMENT '退回冲回时间',
|
||
PRIMARY KEY (`id`),
|
||
UNIQUE KEY `uk_return_sku_conversion_round` (`item_id`,`round_key`,`old_sku_code`,`new_sku_code`),
|
||
KEY `idx_return_sku_conversion_app` (`customer_id`,`application_id`,`status`),
|
||
KEY `idx_return_sku_conversion_carton` (`customer_id`,`carton_id`),
|
||
CONSTRAINT `chk_return_sku_conversion_quantity` CHECK ((`quantity` > 0))
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='退货实物SKU换标库存转换和冲回记录';
|
||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||
DROP TABLE IF EXISTS `ll_return_stock_receipt`;
|
||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||
/*!50503 SET character_set_client = utf8mb4 */;
|
||
CREATE TABLE `ll_return_stock_receipt` (
|
||
`id` bigint NOT NULL COMMENT '退回入仓实收凭据ID',
|
||
`customer_id` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '客户数据归属',
|
||
`receipt_no` varchar(64) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '退回实收业务编号',
|
||
`inventory_ledger_id` bigint NOT NULL COMMENT '唯一实际退回入账流水',
|
||
`exception_order_id` bigint NOT NULL COMMENT '退回异常订单',
|
||
`order_id` bigint NOT NULL COMMENT '原尾程订单',
|
||
`inbound_order_id` bigint NOT NULL COMMENT '原入仓单',
|
||
`source_outbound_no` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '原发运出库业务编号',
|
||
`source_outbound_pallet_item_id` bigint NOT NULL COMMENT '原出库托盘明细',
|
||
`source_inventory_position_id` bigint NOT NULL COMMENT '原拣货库存位置',
|
||
`inventory_balance_id` bigint NOT NULL COMMENT '实际退回库存余额',
|
||
`inventory_position_id` bigint NOT NULL COMMENT '实际退回库存位置',
|
||
`received_packages` bigint NOT NULL COMMENT '实际退回箱数,不增加原订单箱数',
|
||
`received_at` datetime(3) NOT NULL COMMENT '实际退回入账时间',
|
||
`created_at` datetime(3) NOT NULL COMMENT '凭据记录时间',
|
||
PRIMARY KEY (`id`),
|
||
UNIQUE KEY `uk_return_stock_receipt_no` (`customer_id`,`receipt_no`),
|
||
UNIQUE KEY `uk_return_stock_receipt_ledger` (`customer_id`,`inventory_ledger_id`),
|
||
KEY `idx_return_stock_receipt_order` (`customer_id`,`order_id`),
|
||
KEY `idx_return_stock_receipt_position` (`customer_id`,`inventory_balance_id`,`inventory_position_id`),
|
||
CONSTRAINT `chk_return_stock_receipt_packages` CHECK ((`received_packages` > 0))
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='真实退回入仓及再次发运来源凭据';
|
||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||
DROP TABLE IF EXISTS `ll_security_event_inbox`;
|
||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||
/*!50503 SET character_set_client = utf8mb4 */;
|
||
CREATE TABLE `ll_security_event_inbox` (
|
||
`event_id` varchar(64) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '跨区安全事件ID',
|
||
`event_type` varchar(96) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT 'IAM安全事件类型',
|
||
`payload_hash` char(64) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '规范化载荷SHA-256哈希',
|
||
`payload_json` json NOT NULL COMMENT '冻结事件载荷JSON',
|
||
`status` varchar(16) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '消费状态:RECEIVED或PROCESSED',
|
||
`result` varchar(32) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '处理结果:APPLIED、STALE、DUPLICATE或DUPLICATE_VERSION',
|
||
`received_at` datetime(3) NOT NULL COMMENT '接收时间',
|
||
`processed_at` datetime(3) DEFAULT NULL COMMENT '处理完成时间',
|
||
PRIMARY KEY (`event_id`),
|
||
KEY `idx_security_inbox_type_time` (`event_type`,`received_at`)
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='海外IAM安全事件消费者收件箱';
|
||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||
DROP TABLE IF EXISTS `ll_security_projection`;
|
||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||
/*!50503 SET character_set_client = utf8mb4 */;
|
||
CREATE TABLE `ll_security_projection` (
|
||
`aggregate_type` varchar(32) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '聚合类型:USER、TENANT或AUTHORIZATION',
|
||
`aggregate_id` varchar(64) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '用户或客户聚合ID',
|
||
`tenant_id` bigint NOT NULL COMMENT '平台0或客户ID',
|
||
`security_status` varchar(24) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '当前安全状态:ACTIVE或DISABLED',
|
||
`permission_version` bigint DEFAULT NULL COMMENT '当前单调权限版本',
|
||
`roles_json` json NOT NULL COMMENT 'IAM投影的当前角色快照',
|
||
`authorities_json` json NOT NULL COMMENT 'IAM投影的当前海外权限快照',
|
||
`aggregate_version` bigint NOT NULL COMMENT '事件聚合单调版本',
|
||
`payload_hash` char(64) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '当前版本载荷哈希',
|
||
`last_event_id` varchar(64) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '最后应用的事件ID',
|
||
`changed_at` datetime(3) NOT NULL COMMENT '国内IAM事实发生时间',
|
||
`updated_at` datetime(3) NOT NULL COMMENT '投影更新时间',
|
||
PRIMARY KEY (`aggregate_type`,`aggregate_id`),
|
||
KEY `idx_security_projection_tenant` (`tenant_id`),
|
||
KEY `idx_security_projection_permission` (`aggregate_id`,`permission_version`)
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='海外IAM安全状态与权限版本投影';
|
||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||
DROP TABLE IF EXISTS `ll_us_truck_order`;
|
||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||
/*!50503 SET character_set_client = utf8mb4 */;
|
||
CREATE TABLE `ll_us_truck_order` (
|
||
`id` bigint NOT NULL,
|
||
`customer_id` varchar(128) COLLATE utf8mb4_unicode_ci NOT NULL,
|
||
`order_no` varchar(64) COLLATE utf8mb4_unicode_ci NOT NULL,
|
||
`transport_type` varchar(32) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
|
||
`origin` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL,
|
||
`origin_address` varchar(500) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
|
||
`destination` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL,
|
||
`destination_address` varchar(500) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
|
||
`container_type` varchar(32) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
|
||
`pallet_count` int NOT NULL DEFAULT '1',
|
||
`package_count` int NOT NULL DEFAULT '0',
|
||
`received_pallet_count` int NOT NULL DEFAULT '0',
|
||
`allocated_pallet_count` int NOT NULL DEFAULT '0',
|
||
`shipped_pallet_count` int NOT NULL DEFAULT '0',
|
||
`total_weight_kg` decimal(18,3) NOT NULL DEFAULT '0.000',
|
||
`total_volume_cbm` decimal(18,6) NOT NULL DEFAULT '0.000000',
|
||
`budget_amount` decimal(18,2) DEFAULT NULL,
|
||
`currency` varchar(3) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT 'USD',
|
||
`contact_name` varchar(128) COLLATE utf8mb4_unicode_ci NOT NULL,
|
||
`contact_info` varchar(128) COLLATE utf8mb4_unicode_ci NOT NULL,
|
||
`requested_date` date NOT NULL,
|
||
`status` varchar(32) COLLATE utf8mb4_unicode_ci NOT NULL,
|
||
`remark` varchar(1000) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
|
||
`receipt_idempotency_key` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
|
||
`receipt_request_hash` char(64) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
|
||
`idempotency_key` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL,
|
||
`request_hash` char(64) COLLATE utf8mb4_unicode_ci NOT NULL,
|
||
`created_by` varchar(128) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
|
||
`version` bigint NOT NULL DEFAULT '0',
|
||
`created_at` datetime(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3),
|
||
`updated_at` datetime(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3),
|
||
`tenant_id` varchar(128) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT 'BAIYUE' COMMENT 'SaaS租户标识,当前单租户固定为BAIYUE',
|
||
PRIMARY KEY (`id`),
|
||
UNIQUE KEY `uk_ll_us_truck_order_no` (`customer_id`,`order_no`),
|
||
UNIQUE KEY `uk_ll_us_truck_order_key` (`customer_id`,`idempotency_key`),
|
||
KEY `idx_ll_us_truck_order_list` (`customer_id`,`status`,`created_at`),
|
||
KEY `idx_ll_us_truck_order_date` (`customer_id`,`requested_date`,`created_at`)
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='US domestic trucking customer order';
|
||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||
DROP TABLE IF EXISTS `ll_us_truck_order_operation`;
|
||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||
/*!50503 SET character_set_client = utf8mb4 */;
|
||
CREATE TABLE `ll_us_truck_order_operation` (
|
||
`id` bigint NOT NULL COMMENT '操作记录ID',
|
||
`order_id` bigint NOT NULL COMMENT '美国卡车订单ID',
|
||
`customer_id` varchar(128) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '客户租户ID',
|
||
`operation_type` varchar(64) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '具名操作类型',
|
||
`idempotency_key` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '操作幂等键',
|
||
`request_hash` char(64) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '操作请求内容哈希',
|
||
`result_version` bigint NOT NULL COMMENT '操作完成后的订单版本',
|
||
`created_by` varchar(128) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '操作人ID',
|
||
`created_at` datetime(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) COMMENT '创建时间',
|
||
PRIMARY KEY (`id`),
|
||
UNIQUE KEY `uk_ll_us_truck_operation_key` (`customer_id`,`order_id`,`idempotency_key`),
|
||
KEY `idx_ll_us_truck_operation_order` (`customer_id`,`order_id`,`created_at`)
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='美国卡车订单幂等操作账';
|
||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||
DROP TABLE IF EXISTS `ll_us_truck_order_pallet`;
|
||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||
/*!50503 SET character_set_client = utf8mb4 */;
|
||
CREATE TABLE `ll_us_truck_order_pallet` (
|
||
`id` bigint NOT NULL,
|
||
`order_id` bigint NOT NULL,
|
||
`customer_id` varchar(128) COLLATE utf8mb4_unicode_ci NOT NULL,
|
||
`pallet_no` varchar(128) COLLATE utf8mb4_unicode_ci NOT NULL,
|
||
`sequence_no` int NOT NULL,
|
||
`source` varchar(32) COLLATE utf8mb4_unicode_ci NOT NULL,
|
||
`status` varchar(32) COLLATE utf8mb4_unicode_ci NOT NULL,
|
||
`warehouse_pallet_id` bigint DEFAULT NULL,
|
||
`package_count` int DEFAULT NULL,
|
||
`received_at` datetime(3) DEFAULT NULL,
|
||
`created_at` datetime(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3),
|
||
`updated_at` datetime(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3),
|
||
`tenant_id` varchar(128) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT 'BAIYUE' COMMENT 'SaaS租户标识,当前单租户固定为BAIYUE',
|
||
PRIMARY KEY (`id`),
|
||
UNIQUE KEY `uk_ll_us_truck_order_pallet_no` (`customer_id`,`order_id`,`pallet_no`),
|
||
UNIQUE KEY `uk_ll_us_truck_order_pallet_seq` (`customer_id`,`order_id`,`sequence_no`),
|
||
KEY `idx_ll_us_truck_order_pallet_list` (`customer_id`,`order_id`,`status`)
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
|
||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||
DROP TABLE IF EXISTS `ll_us_truck_order_status_history`;
|
||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||
/*!50503 SET character_set_client = utf8mb4 */;
|
||
CREATE TABLE `ll_us_truck_order_status_history` (
|
||
`id` bigint NOT NULL,
|
||
`order_id` bigint NOT NULL,
|
||
`customer_id` varchar(128) COLLATE utf8mb4_unicode_ci NOT NULL,
|
||
`operation_type` varchar(64) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT 'UPDATE' COMMENT '具名操作类型',
|
||
`from_status` varchar(32) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
|
||
`to_status` varchar(32) COLLATE utf8mb4_unicode_ci NOT NULL,
|
||
`operator_id` varchar(128) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
|
||
`idempotency_key` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '操作幂等键',
|
||
`remark` varchar(1000) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
|
||
`created_at` datetime(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3),
|
||
`tenant_id` varchar(128) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT 'BAIYUE' COMMENT 'SaaS租户标识,当前单租户固定为BAIYUE',
|
||
PRIMARY KEY (`id`),
|
||
KEY `idx_ll_us_truck_history` (`customer_id`,`order_id`,`created_at`)
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='Immutable US trucking order status history';
|
||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||
DROP TABLE IF EXISTS `ll_vehicle`;
|
||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||
/*!50503 SET character_set_client = utf8mb4 */;
|
||
CREATE TABLE `ll_vehicle` (
|
||
`id` bigint NOT NULL COMMENT '车辆档案ID',
|
||
`plate_number` varchar(64) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '车牌号',
|
||
`model` varchar(128) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '车型',
|
||
`fuel_consumption_per100_km` decimal(10,2) NOT NULL COMMENT '百公里油耗,单位升',
|
||
`mileage_km` bigint NOT NULL COMMENT '当前公里码,单位公里',
|
||
`driver_or_dispatch_company` varchar(128) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '司机姓名或外派单位',
|
||
`phone` varchar(64) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '司机或外派单位联系电话',
|
||
`region` varchar(16) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '区域:DOMESTIC/OVERSEAS',
|
||
`ownership` varchar(16) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '车辆归属:OWNED/DISPATCHED',
|
||
`status` varchar(32) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '状态:IN_SERVICE/DISPATCHED/MAINTENANCE/INACTIVE/RETURNED',
|
||
`remark` varchar(1000) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '备注',
|
||
`record_version` bigint NOT NULL DEFAULT '0' COMMENT '乐观锁版本',
|
||
`created_by` varchar(128) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '创建人',
|
||
`updated_by` varchar(128) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '更新人',
|
||
`created_at` datetime(3) NOT NULL COMMENT '创建时间',
|
||
`updated_at` datetime(3) NOT NULL COMMENT '更新时间',
|
||
`max_pallet_spaces` int DEFAULT NULL COMMENT '最大标准托位,未知时为空',
|
||
`max_load_kg` decimal(12,3) DEFAULT NULL COMMENT '最大载重,千克',
|
||
`max_volume_cbm` decimal(12,3) DEFAULT NULL COMMENT '可用容积,立方米',
|
||
PRIMARY KEY (`id`),
|
||
UNIQUE KEY `uk_ll_vehicle_plate` (`plate_number`),
|
||
KEY `idx_ll_vehicle_page` (`ownership`,`region`,`status`,`updated_at`,`id`)
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='平台车辆主数据';
|
||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||
DROP TABLE IF EXISTS `ll_wallet_event_inbox`;
|
||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||
/*!50503 SET character_set_client = utf8mb4 */;
|
||
CREATE TABLE `ll_wallet_event_inbox` (
|
||
`event_id` varchar(64) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '国内Finance资金结果事件ID',
|
||
`command_event_id` varchar(64) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '原海外资金指令事件ID',
|
||
`payload_hash` varchar(71) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '规范化载荷SHA-256,包含sha256:前缀',
|
||
`payload_json` json NOT NULL COMMENT '冻结事件信封',
|
||
`status` varchar(16) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT 'RECEIVED或PROCESSED',
|
||
`received_at` datetime(3) NOT NULL COMMENT '接收时间',
|
||
`processed_at` datetime(3) DEFAULT NULL COMMENT '处理完成时间',
|
||
PRIMARY KEY (`event_id`),
|
||
UNIQUE KEY `uk_ll_wallet_command_result` (`command_event_id`),
|
||
KEY `idx_ll_wallet_event_status` (`status`,`received_at`)
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='跨区客户资金结果幂等收件箱';
|
||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||
DROP TABLE IF EXISTS `ll_warehouse_transfer_carton`;
|
||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||
/*!50503 SET character_set_client = utf8mb4 */;
|
||
CREATE TABLE `ll_warehouse_transfer_carton` (
|
||
`id` bigint NOT NULL COMMENT '预报箱主键',
|
||
`transfer_order_id` bigint NOT NULL COMMENT '转运单ID',
|
||
`transfer_item_id` bigint DEFAULT NULL COMMENT '实际箱内首项SKU明细ID,预报补箱可为空',
|
||
`customer_id` varchar(128) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '客户租户ID',
|
||
`carton_mark` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '系统生成的一箱一码箱唛',
|
||
`customer_carton_mark` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '客户原箱唛,用于换标现场绑定',
|
||
`carton_index` int NOT NULL COMMENT '全单箱序号',
|
||
`total_cartons` int NOT NULL COMMENT '首次生成时全单总箱数',
|
||
`status` varchar(32) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT 'EXPECTED' COMMENT '箱状态:EXPECTED待实收',
|
||
`created_at` datetime(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) COMMENT '创建时间',
|
||
`updated_at` datetime(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3) COMMENT '更新时间',
|
||
`length_cm` decimal(12,2) DEFAULT NULL COMMENT '箱子实测长度厘米',
|
||
`width_cm` decimal(12,2) DEFAULT NULL COMMENT '箱子实测宽度厘米',
|
||
`height_cm` decimal(12,2) DEFAULT NULL COMMENT '箱子实测高度厘米',
|
||
`gross_weight_kg` decimal(12,2) DEFAULT NULL COMMENT '箱子实测重量千克',
|
||
`counted_quantity` bigint DEFAULT NULL COMMENT '箱内SKU实点件数',
|
||
`count_idempotency_key` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '箱内清点幂等键',
|
||
`count_request_hash` varchar(64) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '箱内清点请求摘要',
|
||
`counted_by` varchar(128) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '箱内清点操作人',
|
||
`counted_at` datetime(3) DEFAULT NULL COMMENT '箱内清点完成时间',
|
||
`discrepancy_reason` varchar(1000) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '实收与预报箱数差异原因',
|
||
`transfer_pallet_id` bigint DEFAULT NULL COMMENT '签收箱所属转运托盘事实ID',
|
||
`sku_items_json` json DEFAULT NULL COMMENT '实收箱内SKU及逐项件数明细',
|
||
PRIMARY KEY (`id`),
|
||
UNIQUE KEY `uk_ll_wh_transfer_carton_mark` (`customer_id`,`carton_mark`),
|
||
UNIQUE KEY `uk_ll_wh_transfer_carton_index` (`transfer_order_id`,`carton_index`),
|
||
KEY `idx_ll_wh_transfer_carton_list` (`customer_id`,`transfer_order_id`,`status`)
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='仓储转运系统箱唛预报';
|
||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||
DROP TABLE IF EXISTS `ll_warehouse_transfer_inventory_allocation`;
|
||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||
/*!50503 SET character_set_client = utf8mb4 */;
|
||
CREATE TABLE `ll_warehouse_transfer_inventory_allocation` (
|
||
`id` bigint NOT NULL COMMENT 'Snowflake ID',
|
||
`transfer_order_id` bigint NOT NULL,
|
||
`customer_id` varchar(128) COLLATE utf8mb4_unicode_ci NOT NULL,
|
||
`inventory_position_id` bigint NOT NULL,
|
||
`inventory_balance_id` bigint NOT NULL,
|
||
`inbound_order_id` bigint NOT NULL,
|
||
`inbound_code` varchar(128) COLLATE utf8mb4_unicode_ci NOT NULL,
|
||
`pallet_id` bigint NOT NULL,
|
||
`pallet_no` varchar(128) COLLATE utf8mb4_unicode_ci NOT NULL,
|
||
`package_count` int NOT NULL,
|
||
`status` varchar(32) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT 'RESERVED',
|
||
`active_position_key` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
|
||
`allocated_at` datetime(3) NOT NULL,
|
||
`shipped_at` datetime(3) DEFAULT NULL,
|
||
`received_at` datetime(3) DEFAULT NULL,
|
||
`created_at` datetime(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3),
|
||
`updated_at` datetime(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3),
|
||
`tenant_id` varchar(128) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT 'BAIYUE' COMMENT 'SaaS租户标识,当前单租户固定为BAIYUE',
|
||
`sku_code` varchar(128) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '本次来源分配的实际SKU快照',
|
||
PRIMARY KEY (`id`),
|
||
UNIQUE KEY `uk_ll_wh_transfer_allocation_position` (`transfer_order_id`,`inventory_position_id`),
|
||
UNIQUE KEY `uk_ll_wh_transfer_active_position` (`customer_id`,`active_position_key`),
|
||
KEY `idx_ll_wh_transfer_allocation_list` (`customer_id`,`transfer_order_id`,`status`)
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='Exclusive source inventory positions allocated to a warehouse transfer';
|
||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||
DROP TABLE IF EXISTS `ll_warehouse_transfer_item`;
|
||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||
/*!50503 SET character_set_client = utf8mb4 */;
|
||
CREATE TABLE `ll_warehouse_transfer_item` (
|
||
`id` bigint NOT NULL COMMENT 'Snowflake ID',
|
||
`transfer_order_id` bigint NOT NULL,
|
||
`customer_id` varchar(128) COLLATE utf8mb4_unicode_ci NOT NULL,
|
||
`sku_code` varchar(128) COLLATE utf8mb4_unicode_ci NOT NULL,
|
||
`product_name_zh` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL,
|
||
`package_count` int NOT NULL,
|
||
`shipping_mark` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
|
||
`created_at` datetime(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3),
|
||
`tenant_id` varchar(128) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT 'BAIYUE' COMMENT 'SaaS租户标识,当前单租户固定为BAIYUE',
|
||
`declared_quantity` bigint DEFAULT NULL COMMENT 'SKU鐢虫姤浠舵暟锛岄潪棰勮鎴栧疄鏀剁鏁�',
|
||
PRIMARY KEY (`id`),
|
||
KEY `idx_ll_wh_transfer_item_list` (`customer_id`,`transfer_order_id`),
|
||
KEY `idx_ll_wh_transfer_item_sku` (`customer_id`,`sku_code`)
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='Frozen warehouse transfer cargo items';
|
||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||
DROP TABLE IF EXISTS `ll_warehouse_transfer_measurement_photo`;
|
||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||
/*!50503 SET character_set_client = utf8mb4 */;
|
||
CREATE TABLE `ll_warehouse_transfer_measurement_photo` (
|
||
`id` bigint NOT NULL COMMENT '测量照片引用ID',
|
||
`transfer_order_id` bigint NOT NULL COMMENT '仓储转运单ID',
|
||
`customer_id` varchar(128) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '客户租户ID',
|
||
`file_id` bigint NOT NULL COMMENT '文件服务文件ID',
|
||
`file_name` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '文件名快照',
|
||
`content_type` varchar(128) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '文件媒体类型快照',
|
||
`size_bytes` bigint NOT NULL DEFAULT '0' COMMENT '文件字节数快照',
|
||
`uploaded_by` varchar(128) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT 'PDA上传操作人',
|
||
`uploaded_at` datetime(3) NOT NULL COMMENT '上传时间',
|
||
`submitted_at` datetime(3) DEFAULT NULL COMMENT '随测量打托提交时间',
|
||
PRIMARY KEY (`id`),
|
||
UNIQUE KEY `uk_ll_transfer_measurement_photo_file` (`customer_id`,`transfer_order_id`,`file_id`),
|
||
KEY `idx_ll_transfer_measurement_photo_order` (`customer_id`,`transfer_order_id`,`uploaded_at`)
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='仓储转运PDA测量现场照片引用';
|
||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||
DROP TABLE IF EXISTS `ll_warehouse_transfer_order`;
|
||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||
/*!50503 SET character_set_client = utf8mb4 */;
|
||
CREATE TABLE `ll_warehouse_transfer_order` (
|
||
`id` bigint NOT NULL COMMENT 'Snowflake ID',
|
||
`customer_id` varchar(128) COLLATE utf8mb4_unicode_ci NOT NULL,
|
||
`transfer_no` varchar(64) COLLATE utf8mb4_unicode_ci NOT NULL,
|
||
`inbound_order_id` bigint NOT NULL,
|
||
`inbound_code` varchar(128) COLLATE utf8mb4_unicode_ci NOT NULL,
|
||
`lastleg_order_id` bigint NOT NULL,
|
||
`lastleg_order_no` varchar(32) COLLATE utf8mb4_unicode_ci NOT NULL,
|
||
`operating_warehouse_id` varchar(128) COLLATE utf8mb4_unicode_ci NOT NULL,
|
||
`fba_warehouse_code` varchar(128) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '可选FBA目的仓编码',
|
||
`delivery_address` varchar(1000) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '提货地址或中转仓收货地址',
|
||
`pickup_contact_name` varchar(128) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '提货联系人',
|
||
`pickup_contact_phone` varchar(64) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '提货联系电话',
|
||
`package_count` int NOT NULL,
|
||
`delivery_method` varchar(64) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '入仓方式',
|
||
`estimated_arrival_at` datetime(3) DEFAULT NULL COMMENT '预计入仓时间,库存转运不填写',
|
||
`estimated_ship_at` datetime(3) DEFAULT NULL COMMENT '预计发货时间',
|
||
`fba_shipment_no` varchar(128) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '可选FBA货件编号',
|
||
`tracking_no` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
|
||
`fba_box_nos` varchar(2000) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
|
||
`remark` varchar(1000) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
|
||
`need_relabel` tinyint NOT NULL DEFAULT '0',
|
||
`relabel_application_id` bigint DEFAULT NULL,
|
||
`relabel_no` varchar(64) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
|
||
`relabel_completed_at` datetime(3) DEFAULT NULL COMMENT '鍏宠仈璐存爣瀹屾垚鏃堕棿',
|
||
`status` varchar(32) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT 'PENDING_REVIEW',
|
||
`review_decision` varchar(32) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '审核决定',
|
||
`review_remark` varchar(1000) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '审核备注或驳回原因',
|
||
`reviewed_by` varchar(128) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '审核人ID',
|
||
`reviewed_at` datetime(3) DEFAULT NULL COMMENT '审核时间',
|
||
`allocation_idempotency_key` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '库存分配幂等键',
|
||
`allocation_request_hash` char(64) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '库存分配请求哈希',
|
||
`outbound_idempotency_key` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '出库幂等键',
|
||
`outbound_request_hash` char(64) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '出库请求哈希',
|
||
`outbound_at` datetime(3) DEFAULT NULL COMMENT '出库时间',
|
||
`measured_at` datetime(3) DEFAULT NULL COMMENT 'PDA测量完成时间',
|
||
`actual_ship_at` datetime(3) DEFAULT NULL COMMENT '实际发货时间',
|
||
`idempotency_key` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL,
|
||
`request_hash` char(64) COLLATE utf8mb4_unicode_ci NOT NULL,
|
||
`created_by` varchar(128) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
|
||
`created_at` datetime(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3),
|
||
`updated_at` datetime(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3),
|
||
`tenant_id` varchar(128) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT 'BAIYUE' COMMENT 'SaaS租户标识,当前单租户固定为BAIYUE',
|
||
`label_deadline` datetime(3) DEFAULT NULL COMMENT '换标截止时间',
|
||
`relabel_contact_name` varchar(128) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '换标联系人',
|
||
`relabel_contact_phone` varchar(64) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '换标联系电话',
|
||
`relabel_charge_amount` decimal(20,2) DEFAULT NULL COMMENT '换标费用CNY',
|
||
`relabel_delivery_method` varchar(32) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '换标后派送方式',
|
||
`palletize_idempotency_key` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT 'PDA打托幂等键',
|
||
`palletize_request_hash` char(64) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT 'PDA打托请求哈希',
|
||
`confirmation_idempotency_key` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '客户测量确认幂等键',
|
||
`confirmation_request_hash` char(64) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '客户测量确认请求哈希',
|
||
`customer_confirmed_at` datetime(3) DEFAULT NULL COMMENT '客户确认测量时间',
|
||
`destination_type` varchar(16) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '目的类型:FBA或PRIVATE',
|
||
`destination_warehouse_id` varchar(128) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '目的仓ID快照',
|
||
`destination_warehouse_code` varchar(128) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '目的仓编码快照',
|
||
`destination_warehouse_name` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '目的仓名称快照',
|
||
`private_destination_address` varchar(1000) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '私人仓完整地址',
|
||
`private_destination_postal_code` varchar(32) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '私人仓邮编',
|
||
`private_destination_contact_name` varchar(128) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '私人仓联系人',
|
||
`private_destination_contact_phone` varchar(64) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '私人仓联系电话',
|
||
`destination_binding_idempotency_key` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '目的地绑定幂等键',
|
||
`destination_binding_request_hash` char(64) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '目的地绑定请求哈希',
|
||
PRIMARY KEY (`id`),
|
||
UNIQUE KEY `uk_ll_wh_transfer_no` (`customer_id`,`transfer_no`),
|
||
UNIQUE KEY `uk_ll_wh_transfer_key` (`customer_id`,`idempotency_key`),
|
||
UNIQUE KEY `uk_ll_wh_transfer_tail_order` (`lastleg_order_id`),
|
||
KEY `idx_ll_wh_transfer_list` (`customer_id`,`status`,`created_at`),
|
||
KEY `idx_ll_wh_transfer_inbound` (`customer_id`,`inbound_code`)
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='Customer warehouse transfer order';
|
||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||
DROP TABLE IF EXISTS `ll_warehouse_transfer_pallet`;
|
||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||
/*!50503 SET character_set_client = utf8mb4 */;
|
||
CREATE TABLE `ll_warehouse_transfer_pallet` (
|
||
`id` bigint NOT NULL COMMENT '打托事实ID',
|
||
`transfer_order_id` bigint NOT NULL COMMENT '转运单ID',
|
||
`customer_id` varchar(128) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '客户租户ID',
|
||
`sequence_no` int NOT NULL COMMENT '托序号',
|
||
`warehouse_pallet_id` bigint DEFAULT NULL COMMENT '鐢熸垚鍚庣殑娴峰?浠撶湡瀹炴墭鐩業D',
|
||
`pallet_no` varchar(128) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '鐢熸垚鍚庣殑鐪熷疄鎵樼洏鐮',
|
||
`warehouse_location_id` bigint DEFAULT NULL COMMENT '鐢熸垚鍚庣殑鐪熷疄搴撲綅ID',
|
||
`warehouse_location_code` varchar(128) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '真实库位码',
|
||
`warehouse_resource_lock_id` bigint DEFAULT NULL COMMENT '鐢熸垚鍚庣殑浠撳偍璧勬簮閿両D',
|
||
`carton_count` int NOT NULL COMMENT '本托实收箱数',
|
||
`length_cm` decimal(12,2) NOT NULL COMMENT '实测长cm',
|
||
`width_cm` decimal(12,2) NOT NULL COMMENT '实测宽cm',
|
||
`height_cm` decimal(12,2) NOT NULL COMMENT '实测高cm',
|
||
`gross_weight_kg` decimal(12,3) NOT NULL COMMENT '实测毛重kg',
|
||
`volume_cbm` decimal(18,6) NOT NULL COMMENT '实测体积CBM',
|
||
`status` varchar(32) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '打托状态',
|
||
`draft_idempotency_key` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '鑽夌?淇濆瓨骞傜瓑閿',
|
||
`draft_request_hash` char(64) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '鑽夌?璇锋眰鎽樿?',
|
||
`generate_idempotency_key` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '鏂版墭鐩樼敓鎴愬箓绛夐敭',
|
||
`bind_idempotency_key` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '鎵?爜缁戝畾骞傜瓑閿',
|
||
`bound_at` datetime(3) DEFAULT NULL COMMENT '鎵?爜纭??缁戝畾鏃堕棿',
|
||
`completed_at` datetime(3) DEFAULT NULL COMMENT '鏁村崟鎵撴墭瀹屾垚鏃堕棿',
|
||
`created_at` datetime(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) COMMENT '创建时间',
|
||
`updated_at` datetime(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3) COMMENT '更新时间',
|
||
PRIMARY KEY (`id`),
|
||
UNIQUE KEY `uk_ll_transfer_pallet_seq` (`transfer_order_id`,`sequence_no`),
|
||
UNIQUE KEY `uk_ll_transfer_pallet_physical` (`customer_id`,`warehouse_pallet_id`),
|
||
KEY `idx_ll_transfer_pallet_order` (`customer_id`,`transfer_order_id`,`status`)
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='仓储转运PDA实测打托事实';
|
||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||
DROP TABLE IF EXISTS `ll_warehouse_transfer_pallet_item`;
|
||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||
/*!50503 SET character_set_client = utf8mb4 */;
|
||
CREATE TABLE `ll_warehouse_transfer_pallet_item` (
|
||
`id` bigint NOT NULL COMMENT '主键ID',
|
||
`transfer_order_id` bigint NOT NULL COMMENT '转运单ID',
|
||
`transfer_pallet_id` bigint NOT NULL COMMENT '转运托盘事实ID',
|
||
`transfer_item_id` bigint NOT NULL COMMENT '转运申报明细ID',
|
||
`customer_id` varchar(128) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '客户租户ID',
|
||
`package_count` int NOT NULL COMMENT '本托该SKU实收箱数',
|
||
`created_at` datetime(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) COMMENT '创建时间',
|
||
PRIMARY KEY (`id`),
|
||
UNIQUE KEY `uk_ll_transfer_pallet_item` (`transfer_pallet_id`,`transfer_item_id`),
|
||
KEY `idx_ll_transfer_pallet_item_order` (`customer_id`,`transfer_order_id`)
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='仓储转运每托SKU箱数回填';
|
||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||
DROP TABLE IF EXISTS `ll_warehouse_transfer_receipt`;
|
||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||
/*!50503 SET character_set_client = utf8mb4 */;
|
||
CREATE TABLE `ll_warehouse_transfer_receipt` (
|
||
`id` bigint NOT NULL COMMENT 'Snowflake ID',
|
||
`transfer_order_id` bigint NOT NULL,
|
||
`allocation_id` bigint NOT NULL,
|
||
`customer_id` varchar(128) COLLATE utf8mb4_unicode_ci NOT NULL,
|
||
`source_inventory_position_id` bigint NOT NULL,
|
||
`destination_inventory_balance_id` bigint NOT NULL,
|
||
`destination_inventory_position_id` bigint NOT NULL,
|
||
`package_count` int NOT NULL,
|
||
`idempotency_key` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL,
|
||
`request_hash` char(64) COLLATE utf8mb4_unicode_ci NOT NULL,
|
||
`inventory_operation_key` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL,
|
||
`created_by` varchar(128) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
|
||
`received_at` datetime(3) NOT NULL,
|
||
`created_at` datetime(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3),
|
||
`tenant_id` varchar(128) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT 'BAIYUE' COMMENT 'SaaS租户标识,当前单租户固定为BAIYUE',
|
||
PRIMARY KEY (`id`),
|
||
UNIQUE KEY `uk_ll_wh_transfer_receipt_source` (`transfer_order_id`,`source_inventory_position_id`),
|
||
UNIQUE KEY `uk_ll_wh_transfer_receipt_key` (`customer_id`,`idempotency_key`),
|
||
UNIQUE KEY `uk_ll_wh_transfer_receipt_operation` (`customer_id`,`inventory_operation_key`),
|
||
KEY `idx_ll_wh_transfer_receipt_list` (`customer_id`,`transfer_order_id`,`received_at`)
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='Idempotent destination stock receipt for one transfer source position';
|
||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||
DROP TABLE IF EXISTS `ll_warehouse_transfer_receipt_command`;
|
||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||
/*!50503 SET character_set_client = utf8mb4 */;
|
||
CREATE TABLE `ll_warehouse_transfer_receipt_command` (
|
||
`id` bigint NOT NULL COMMENT '收货命令主键',
|
||
`customer_id` varchar(128) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '客户标识',
|
||
`transfer_order_id` bigint NOT NULL COMMENT '转运单标识',
|
||
`source_inventory_position_id` bigint NOT NULL COMMENT '本次收货来源库存位置',
|
||
`idempotency_key` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '原始收货幂等键',
|
||
`request_hash` char(64) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '完整原始收货请求摘要',
|
||
`request_json` json NOT NULL COMMENT '完整原始收货请求快照',
|
||
`target_warehouse_id` bigint NOT NULL COMMENT '实际目标海外收货仓',
|
||
`target_pallet_id` bigint NOT NULL COMMENT '目标实物托盘',
|
||
`target_location_id` bigint NOT NULL COMMENT '目标实际库位',
|
||
`target_hash` char(64) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '共享目标资源绑定摘要',
|
||
`target_json` json NOT NULL COMMENT '权威目标仓托盘库位及目的仓快照',
|
||
`reservation_key` varchar(128) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '同转运同目标托盘共享资源占用键',
|
||
`resource_lock_id` bigint DEFAULT NULL COMMENT '已确认有效的海外资源锁标识',
|
||
`status` varchar(32) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '命令状态PREPARED准备完成RESERVED资源占用COMPLETED收货完成',
|
||
`created_at` datetime(3) NOT NULL COMMENT '命令创建时间',
|
||
`updated_at` datetime(3) NOT NULL COMMENT '命令最后更新时间',
|
||
PRIMARY KEY (`id`),
|
||
UNIQUE KEY `uk_ll_wh_receipt_cmd_source` (`transfer_order_id`,`source_inventory_position_id`),
|
||
UNIQUE KEY `uk_ll_wh_receipt_cmd_key` (`customer_id`,`idempotency_key`),
|
||
KEY `idx_ll_wh_receipt_cmd_target` (`customer_id`,`transfer_order_id`,`target_pallet_id`),
|
||
CONSTRAINT `ck_ll_wh_receipt_cmd_status` CHECK ((`status` in (_utf8mb4'PREPARED',_utf8mb4'RESERVED',_utf8mb4'COMPLETED')))
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='转运逐来源收货原请求与共享目标资源占用命令';
|
||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||
DROP TABLE IF EXISTS `ll_warehouse_transfer_relabel_binding`;
|
||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||
/*!50503 SET character_set_client = utf8mb4 */;
|
||
CREATE TABLE `ll_warehouse_transfer_relabel_binding` (
|
||
`id` bigint NOT NULL COMMENT '主键ID',
|
||
`transfer_order_id` bigint NOT NULL COMMENT '转运单ID',
|
||
`customer_id` varchar(128) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '客户租户ID',
|
||
`operation_type` varchar(32) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '换标类型',
|
||
`customer_carton_mark` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '客户原箱唛',
|
||
`original_sku` varchar(128) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '旧SKU',
|
||
`new_sku` varchar(128) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '新SKU',
|
||
`quantity` int NOT NULL COMMENT '换标件数',
|
||
`fba_carton_mark` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '新FBA箱唛',
|
||
`destination_warehouse_code` varchar(128) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT 'FBA目的仓',
|
||
`remark` varchar(1000) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '备注',
|
||
`created_at` datetime(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) COMMENT '创建时间',
|
||
`source_allocation_id` bigint DEFAULT NULL COMMENT '已有库存转运的原始来源分配ID',
|
||
`relabel_item_id` bigint DEFAULT NULL COMMENT '本票关联换标明细ID',
|
||
PRIMARY KEY (`id`),
|
||
UNIQUE KEY `uk_ll_transfer_relabel_mark` (`transfer_order_id`,`customer_carton_mark`),
|
||
KEY `idx_ll_transfer_relabel_order` (`customer_id`,`transfer_order_id`)
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='仓储转运换标预绑定明细';
|
||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||
DROP TABLE IF EXISTS `ll_warehouse_transfer_source_order`;
|
||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||
/*!50503 SET character_set_client = utf8mb4 */;
|
||
CREATE TABLE `ll_warehouse_transfer_source_order` (
|
||
`id` bigint NOT NULL COMMENT 'Snowflake ID',
|
||
`transfer_order_id` bigint NOT NULL,
|
||
`customer_id` varchar(128) COLLATE utf8mb4_unicode_ci NOT NULL,
|
||
`source_lastleg_order_id` bigint NOT NULL,
|
||
`source_lastleg_order_no` varchar(32) COLLATE utf8mb4_unicode_ci NOT NULL,
|
||
`inbound_order_id` bigint NOT NULL,
|
||
`inbound_code` varchar(128) COLLATE utf8mb4_unicode_ci NOT NULL,
|
||
`created_at` datetime(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3),
|
||
`tenant_id` varchar(128) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT 'BAIYUE' COMMENT 'SaaS租户标识,当前单租户固定为BAIYUE',
|
||
PRIMARY KEY (`id`),
|
||
UNIQUE KEY `uk_ll_wh_transfer_source` (`transfer_order_id`,`source_lastleg_order_id`),
|
||
KEY `idx_ll_wh_transfer_source_list` (`customer_id`,`transfer_order_id`)
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='Selected historical customer orders and inbound bindings';
|
||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||
|
||
CREATE DATABASE /*!32312 IF NOT EXISTS*/ `baiyue_firstleg` /*!40100 DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci */ /*!80016 DEFAULT ENCRYPTION='N' */;
|
||
|
||
USE `baiyue_firstleg`;
|
||
DROP TABLE IF EXISTS `event_delivery_attempt`;
|
||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||
/*!50503 SET character_set_client = utf8mb4 */;
|
||
CREATE TABLE `event_delivery_attempt` (
|
||
`attempt_id` varchar(36) NOT NULL COMMENT '本次投递租约UUID和审计主键',
|
||
`service_name` varchar(32) NOT NULL COMMENT '本库所属生产服务',
|
||
`event_type` varchar(96) NOT NULL COMMENT '白名单业务事件类型',
|
||
`entry_id` varchar(128) NOT NULL COMMENT '生产者发件箱主键',
|
||
`event_id` varchar(128) DEFAULT NULL COMMENT '合法原事件UUID或ULID;格式错误时为空',
|
||
`target_name` varchar(64) NOT NULL COMMENT '固定目标业务服务',
|
||
`started_at` datetime(3) NOT NULL COMMENT '领取及审计事务提交前的开始时间',
|
||
`finished_at` datetime(3) DEFAULT NULL COMMENT '尝试完成或租约过期恢复时间',
|
||
`duration_ms` bigint DEFAULT NULL COMMENT '尝试耗时毫秒',
|
||
`outcome` varchar(24) NOT NULL COMMENT 'STARTED/APPLIED/DUPLICATE/STALE/RETRY/DEAD/LEASE_EXPIRED',
|
||
`error_code` varchar(64) DEFAULT NULL COMMENT '有限错误类别或HTTP状态;不含载荷与令牌',
|
||
`next_retry_at` datetime(3) DEFAULT NULL COMMENT '本次失败后下次计划投递时间',
|
||
PRIMARY KEY (`attempt_id`),
|
||
KEY `idx_delivery_attempt_entry` (`service_name`,`entry_id`,`started_at`),
|
||
KEY `idx_delivery_attempt_outcome` (`outcome`,`started_at`)
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='本服务业务事件逐次投递审计';
|
||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||
DROP TABLE IF EXISTS `fl_assignment_history`;
|
||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||
/*!50503 SET character_set_client = utf8mb4 */;
|
||
CREATE TABLE `fl_assignment_history` (
|
||
`id` bigint unsigned NOT NULL COMMENT '指派历史ID',
|
||
`tenant_id` bigint unsigned NOT NULL COMMENT '客户ID和数据隔离键',
|
||
`task_id` bigint unsigned NOT NULL COMMENT '所属履约任务ID',
|
||
`previous_assignee_id` bigint unsigned DEFAULT NULL COMMENT '原负责人ID',
|
||
`assignee_id` bigint unsigned NOT NULL COMMENT '新负责人ID',
|
||
`assignee_name` varchar(64) NOT NULL COMMENT '新负责人名称快照',
|
||
`reason` varchar(500) DEFAULT NULL COMMENT '指派或改派原因',
|
||
`operator_id` bigint unsigned NOT NULL COMMENT '执行指派的操作人ID',
|
||
`created_at` datetime(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) COMMENT '指派发生时间',
|
||
PRIMARY KEY (`id`),
|
||
KEY `idx_assignment_task_time` (`tenant_id`,`task_id`,`created_at`),
|
||
KEY `fk_assignment_task` (`task_id`),
|
||
CONSTRAINT `fk_assignment_task` FOREIGN KEY (`task_id`) REFERENCES `fl_fulfillment_task` (`id`)
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='头程任务指派历史表:不可变记录每次负责人变更及原因,用于追踪和审计';
|
||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||
DROP TABLE IF EXISTS `fl_carrier_fba_rate`;
|
||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||
/*!50503 SET character_set_client = utf8mb4 */;
|
||
CREATE TABLE `fl_carrier_fba_rate` (
|
||
`id` bigint unsigned NOT NULL COMMENT '船司FBA价格ID',
|
||
`tenant_id` bigint unsigned NOT NULL COMMENT '平台价格作用域ID,船司价格固定为0',
|
||
`price_book_version_id` bigint unsigned DEFAULT NULL COMMENT '整表价格版本ID;历史兼容价格可为空',
|
||
`rate_code` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '平台公共价格编码',
|
||
`rate_version` int unsigned NOT NULL COMMENT '价格版本号',
|
||
`origin_warehouse_id` bigint unsigned DEFAULT NULL COMMENT '确认前可为空;确认后绑定平台公共起运仓逻辑ID',
|
||
`origin_warehouse_code` varchar(64) DEFAULT NULL COMMENT '起运仓稳定编码',
|
||
`origin_warehouse_name` varchar(128) NOT NULL COMMENT '起运仓名称快照',
|
||
`business_type` varchar(32) NOT NULL COMMENT '业务或计费类型',
|
||
`channel_code` varchar(64) DEFAULT NULL COMMENT '渠道编码',
|
||
`price_model` varchar(32) NOT NULL DEFAULT 'FBA_WAREHOUSE_RATE' COMMENT '价格模型',
|
||
`carrier_id` bigint unsigned DEFAULT NULL COMMENT '船司逻辑ID',
|
||
`carrier_name` varchar(128) DEFAULT NULL COMMENT '历史承运商名称;渠道价格可为空',
|
||
`destination_type` varchar(16) DEFAULT NULL COMMENT '目的地类型:FBA或OVERSEAS;REGION_WEIGHT_TIER区域阶梯行为空',
|
||
`destination_code` varchar(32) DEFAULT NULL COMMENT 'FBA目的仓编码;区域阶梯模型为空',
|
||
`destination_warehouse_id` bigint unsigned DEFAULT NULL COMMENT '平台海外仓稳定ID;不存环境专属ID',
|
||
`destination_name` varchar(128) DEFAULT NULL COMMENT '目的仓名称快照',
|
||
`region_code` varchar(16) DEFAULT NULL COMMENT '区域阶梯模型区域编码',
|
||
`pricing_tax_mode` varchar(16) DEFAULT NULL COMMENT '报价包税维度;独立于订单tax_mode',
|
||
`weight_from_kg` decimal(18,6) DEFAULT NULL COMMENT '区域阶梯起始计费重量KG',
|
||
`charge_unit` varchar(16) NOT NULL COMMENT '计费单位:KG或CBM',
|
||
`unit_price` decimal(18,6) NOT NULL COMMENT '基础单价',
|
||
`currency` char(3) NOT NULL COMMENT '币种',
|
||
`additional_fee` decimal(18,2) NOT NULL DEFAULT '0.00' COMMENT '固定附加费',
|
||
`source_sheet_name` varchar(128) DEFAULT NULL COMMENT '原始Excel Sheet',
|
||
`source_row_number` int unsigned DEFAULT NULL COMMENT '原始Excel行号',
|
||
`source_destination_text` varchar(1000) DEFAULT NULL COMMENT '原始组合仓库或区域文本',
|
||
`effective_from` datetime(3) NOT NULL COMMENT '生效开始时间',
|
||
`effective_to` datetime(3) DEFAULT NULL COMMENT '生效结束时间',
|
||
`status` varchar(24) NOT NULL DEFAULT 'ACTIVE' COMMENT '价格状态:PENDING_CONFIRMATION、ACTIVE或SUPERSEDED',
|
||
`remark` varchar(500) DEFAULT NULL COMMENT '价格备注',
|
||
`created_by` bigint unsigned NOT NULL COMMENT '创建人ID',
|
||
`created_at` datetime(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) COMMENT '创建时间',
|
||
`updated_by` bigint unsigned NOT NULL COMMENT '最后修改人ID',
|
||
`updated_at` datetime(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3) COMMENT '更新时间',
|
||
`deleted` tinyint(1) NOT NULL DEFAULT '0' COMMENT '逻辑删除标记',
|
||
`version` int NOT NULL DEFAULT '0' COMMENT '乐观锁版本号',
|
||
PRIMARY KEY (`id`),
|
||
UNIQUE KEY `uk_fba_rate_version` (`tenant_id`,`rate_code`,`rate_version`),
|
||
KEY `idx_fba_rate_unique_match` (`tenant_id`,`origin_warehouse_id`,`business_type`,`channel_code`,`carrier_id`,`destination_code`,`charge_unit`,`status`,`effective_from`,`effective_to`),
|
||
KEY `idx_fba_rate_match` (`tenant_id`,`origin_warehouse_id`,`business_type`,`channel_code`,`carrier_id`,`destination_type`,`destination_code`,`destination_warehouse_id`,`charge_unit`,`status`,`effective_from`,`effective_to`),
|
||
KEY `idx_fba_rate_book` (`price_book_version_id`,`channel_code`,`origin_warehouse_id`,`price_model`,`status`),
|
||
KEY `idx_fba_rate_destination` (`price_book_version_id`,`channel_code`,`origin_warehouse_id`,`destination_type`,`destination_warehouse_id`,`destination_code`),
|
||
KEY `idx_fba_rate_region` (`price_book_version_id`,`channel_code`,`origin_warehouse_id`,`region_code`,`weight_from_kg`)
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='船司FBA目的仓价格版本';
|
||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||
DROP TABLE IF EXISTS `fl_carrier_schedule_exception_fact`;
|
||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||
/*!50503 SET character_set_client = utf8mb4 */;
|
||
CREATE TABLE `fl_carrier_schedule_exception_fact` (
|
||
`id` bigint unsigned NOT NULL COMMENT '船节点异常事实ID',
|
||
`query_id` bigint unsigned NOT NULL COMMENT '所属查询任务ID',
|
||
`event_key` varchar(192) NOT NULL COMMENT '供应商编码与供应商事件ID组成的幂等键',
|
||
`provider_code` varchar(32) NOT NULL COMMENT '供应商编码',
|
||
`provider_event_id` varchar(128) NOT NULL COMMENT '供应商稳定事件ID',
|
||
`provider_status` varchar(128) NOT NULL COMMENT '供应商原始异常状态',
|
||
`exception_code` varchar(32) NOT NULL COMMENT '平台异常编码',
|
||
`active` tinyint(1) NOT NULL COMMENT '1异常发生;0异常解除',
|
||
`observed_at` datetime(3) NOT NULL COMMENT '供应商观测时间',
|
||
`location_code` varchar(32) DEFAULT NULL COMMENT '地点编码',
|
||
`location_name` varchar(128) DEFAULT NULL COMMENT '地点名称',
|
||
`source_reference` varchar(500) DEFAULT NULL COMMENT '可审计来源引用',
|
||
`raw_payload_hash` char(64) NOT NULL COMMENT '原始响应SHA-256',
|
||
`created_at` datetime(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) COMMENT '事实入库时间',
|
||
PRIMARY KEY (`id`),
|
||
UNIQUE KEY `uk_carrier_schedule_exception_event` (`query_id`,`event_key`),
|
||
KEY `idx_carrier_schedule_exception_timeline` (`query_id`,`observed_at`,`id`),
|
||
CONSTRAINT `fk_carrier_schedule_exception_query` FOREIGN KEY (`query_id`) REFERENCES `fl_carrier_schedule_query` (`id`),
|
||
CONSTRAINT `chk_carrier_schedule_exception_active` CHECK ((`active` in (0,1))),
|
||
CONSTRAINT `chk_carrier_schedule_exception_code` CHECK ((`exception_code` in (_utf8mb4'CUSTOMS_HOLD',_utf8mb4'TERMINAL_HOLD',_utf8mb4'DOCUMENT_HOLD',_utf8mb4'UNKNOWN_HOLD')))
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='船节点异常发生与解除不可变事实';
|
||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||
DROP TABLE IF EXISTS `fl_carrier_schedule_node_fact`;
|
||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||
/*!50503 SET character_set_client = utf8mb4 */;
|
||
CREATE TABLE `fl_carrier_schedule_node_fact` (
|
||
`id` bigint unsigned NOT NULL COMMENT '标准船节点事实ID',
|
||
`query_id` bigint unsigned NOT NULL COMMENT '所属查询任务ID',
|
||
`event_key` varchar(192) NOT NULL COMMENT '供应商编码与供应商事件ID组成的幂等键',
|
||
`provider_code` varchar(32) NOT NULL COMMENT '轨迹供应商编码',
|
||
`provider_event_id` varchar(128) NOT NULL COMMENT '供应商稳定事件ID',
|
||
`provider_node_code` varchar(64) NOT NULL COMMENT '供应商原始节点编码',
|
||
`standard_node` varchar(32) NOT NULL COMMENT '标准船节点',
|
||
`node_sequence` int unsigned NOT NULL COMMENT '标准节点单调序号',
|
||
`observed_at` datetime(3) NOT NULL COMMENT '供应商观测时间',
|
||
`estimated_at` datetime(3) DEFAULT NULL COMMENT '供应商预计发生时间',
|
||
`actual_at` datetime(3) DEFAULT NULL COMMENT '供应商确认实际发生时间',
|
||
`location_code` varchar(32) DEFAULT NULL COMMENT '节点地点编码',
|
||
`location_name` varchar(128) DEFAULT NULL COMMENT '节点地点名称',
|
||
`source_reference` varchar(500) DEFAULT NULL COMMENT '可审计来源引用',
|
||
`raw_payload_hash` char(64) NOT NULL COMMENT '原始响应SHA-256;不保存敏感原文',
|
||
`created_at` datetime(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) COMMENT '事实入库时间',
|
||
`container_booking_id` bigint unsigned NOT NULL COMMENT '所属真实货柜ID',
|
||
PRIMARY KEY (`id`),
|
||
UNIQUE KEY `uk_carrier_schedule_node_event` (`query_id`,`event_key`),
|
||
KEY `idx_carrier_schedule_node_timeline` (`query_id`,`node_sequence`,`observed_at`,`id`),
|
||
CONSTRAINT `fk_carrier_schedule_node_query` FOREIGN KEY (`query_id`) REFERENCES `fl_carrier_schedule_query` (`id`),
|
||
CONSTRAINT `chk_carrier_schedule_node_sequence` CHECK ((`node_sequence` in (10,20,30,40,50,60,70,80,90,100))),
|
||
CONSTRAINT `chk_carrier_schedule_node_standard` CHECK ((`standard_node` in (_utf8mb4'DEPARTED_WAREHOUSE',_utf8mb4'AT_ORIGIN_PORT',_utf8mb4'LOADED_ON_VESSEL',_utf8mb4'DEPARTED_ORIGIN_PORT',_utf8mb4'IN_TRANSIT',_utf8mb4'ARRIVED_DESTINATION_PORT',_utf8mb4'DISCHARGED_FROM_VESSEL',_utf8mb4'PICKUP_READY',_utf8mb4'PICKED_UP',_utf8mb4'EMPTY_RETURNED')))
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='供应商标准船节点不可变事实';
|
||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||
DROP TABLE IF EXISTS `fl_carrier_schedule_query`;
|
||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||
/*!50503 SET character_set_client = utf8mb4 */;
|
||
CREATE TABLE `fl_carrier_schedule_query` (
|
||
`id` bigint unsigned NOT NULL COMMENT '船司官网查询任务ID',
|
||
`query_no` varchar(40) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '船司官网查询任务编号',
|
||
`customer_id` bigint unsigned NOT NULL COMMENT '客户ID和数据隔离键',
|
||
`ocean_booking_id` bigint unsigned NOT NULL COMMENT '关联海运订舱ID',
|
||
`container_booking_id` bigint unsigned DEFAULT NULL COMMENT '指定查询的柜次ID;整票订舱查询时为空',
|
||
`container_scope_id` bigint unsigned GENERATED ALWAYS AS (coalesce(`container_booking_id`,0)) STORED COMMENT '柜次唯一作用域计算值;整票订舱查询固定为0',
|
||
`carrier_code` varchar(16) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '船公司编码:MATSON美森、SML森罗、ZIM以星、COSCO中远海运、EMC长荣、HEDE合德',
|
||
`tracking_type` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '官网跟踪类型:BOOKING_NO订舱号、BILL_OF_LADING提单号、CONTAINER_NO箱号',
|
||
`tracking_no` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '提交至船公司官网的跟踪号码',
|
||
`official_url` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '船公司官网查询入口地址快照',
|
||
`access_mode` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '官网访问方式:PUBLIC_FORM公开表单、HCAPTCHA人机校验、DYNAMIC_IFRAME动态页面',
|
||
`status` varchar(24) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '任务状态:READY可查询、MANUAL_REQUIRED需人工处理、SUCCESS已取得有效结果',
|
||
`window_started_at` datetime(3) NOT NULL COMMENT '当前三天查询窗口起始时间',
|
||
`attempt_count` int unsigned NOT NULL DEFAULT '0' COMMENT '当前查询窗口已执行次数;最多3次',
|
||
`next_allowed_at` datetime(3) NOT NULL COMMENT '频控规则允许的下次查询时间',
|
||
`last_attempt_at` datetime(3) DEFAULT NULL COMMENT '最近一次查询尝试时间',
|
||
`last_success_at` datetime(3) DEFAULT NULL COMMENT '最近一次取得有效结果时间',
|
||
`source_updated_at` datetime(3) DEFAULT NULL COMMENT '船公司官网展示的结果更新时间',
|
||
`expires_at` datetime(3) DEFAULT NULL COMMENT '当前最近有效结果过期时间;到期后仍保留但标记过期',
|
||
`result_port_schedule_id` bigint unsigned DEFAULT NULL COMMENT '最近有效结果对应的船期记录ID',
|
||
`last_attempt_status` varchar(24) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '最近查询尝试状态快照',
|
||
`manual_reason` varchar(1000) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '需要人工查询或录入的原因',
|
||
`last_error_code` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '最近查询失败错误码',
|
||
`last_error_message` varchar(1000) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '最近查询失败错误说明',
|
||
`remark` varchar(1000) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '平台内部备注',
|
||
`created_by` bigint unsigned NOT NULL COMMENT '创建操作人ID',
|
||
`created_by_name` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '创建操作人姓名快照',
|
||
`created_at` datetime(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) COMMENT '任务创建时间',
|
||
`updated_by` bigint unsigned NOT NULL COMMENT '最后修改操作人ID',
|
||
`updated_by_name` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '最后修改操作人姓名快照',
|
||
`updated_at` datetime(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3) COMMENT '任务最后更新时间',
|
||
`version` int unsigned NOT NULL DEFAULT '0' COMMENT '乐观锁版本号',
|
||
`consecutive_failures` int unsigned NOT NULL DEFAULT '0' COMMENT '当前正常查询槽位内的连续技术失败次数',
|
||
`latest_node_observed_at` datetime(3) DEFAULT NULL COMMENT '最近实际标准节点发生时间',
|
||
`latest_standard_node` varchar(32) DEFAULT NULL COMMENT '最近实际标准船节点;预计事实不推进',
|
||
`lease_owner` varchar(64) DEFAULT NULL COMMENT '当前调度租约持有者',
|
||
`lease_until` datetime(3) DEFAULT NULL COMMENT '当前调度租约过期时间',
|
||
`stop_reason` varchar(500) DEFAULT NULL COMMENT '任务停止原因',
|
||
`stopped_at` datetime(3) DEFAULT NULL COMMENT '任务停止时间',
|
||
`trigger_source` varchar(32) NOT NULL DEFAULT 'MANUAL' COMMENT '任务触发来源:OUTBOUND_CONFIRM或MANUAL',
|
||
PRIMARY KEY (`id`),
|
||
UNIQUE KEY `uk_carrier_schedule_query_no` (`query_no`),
|
||
UNIQUE KEY `uk_carrier_schedule_query_scope` (`customer_id`,`ocean_booking_id`,`container_scope_id`,`carrier_code`,`tracking_type`,`tracking_no`),
|
||
KEY `idx_carrier_schedule_query_due` (`status`,`next_allowed_at`,`id`),
|
||
KEY `idx_carrier_schedule_query_customer` (`customer_id`,`updated_at`,`id`),
|
||
KEY `idx_carrier_schedule_query_expiry` (`expires_at`,`id`),
|
||
KEY `fk_carrier_schedule_query_booking` (`ocean_booking_id`),
|
||
KEY `fk_carrier_schedule_query_container` (`container_booking_id`),
|
||
KEY `fk_carrier_schedule_query_result` (`result_port_schedule_id`),
|
||
CONSTRAINT `fk_carrier_schedule_query_booking` FOREIGN KEY (`ocean_booking_id`) REFERENCES `fl_ocean_booking` (`id`),
|
||
CONSTRAINT `fk_carrier_schedule_query_container` FOREIGN KEY (`container_booking_id`) REFERENCES `fl_container_booking` (`id`),
|
||
CONSTRAINT `fk_carrier_schedule_query_result` FOREIGN KEY (`result_port_schedule_id`) REFERENCES `fl_port_schedule` (`id`),
|
||
CONSTRAINT `chk_carrier_schedule_query_attempt` CHECK ((`attempt_count` between 0 and 3)),
|
||
CONSTRAINT `chk_carrier_schedule_query_customer` CHECK ((`customer_id` > 0)),
|
||
CONSTRAINT `chk_carrier_schedule_query_tracking` CHECK ((`tracking_type` in (_utf8mb4'BOOKING_NO',_utf8mb4'BILL_OF_LADING',_utf8mb4'CONTAINER_NO')))
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='六家船公司官网查询任务与三天窗口频控';
|
||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||
DROP TABLE IF EXISTS `fl_carrier_schedule_query_attempt`;
|
||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||
/*!50503 SET character_set_client = utf8mb4 */;
|
||
CREATE TABLE `fl_carrier_schedule_query_attempt` (
|
||
`id` bigint unsigned NOT NULL COMMENT '船司官网查询尝试ID',
|
||
`query_id` bigint unsigned NOT NULL COMMENT '所属船司官网查询任务ID',
|
||
`window_attempt_no` int unsigned NOT NULL COMMENT '当前三天窗口内的尝试序号;取值1至3',
|
||
`carrier_code` varchar(16) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '本次尝试的船公司编码快照',
|
||
`access_mode` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '本次尝试的官网访问方式快照',
|
||
`official_url` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '本次尝试使用的官网地址快照',
|
||
`attempt_status` varchar(24) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '尝试结果:MANUAL_REQUIRED需人工处理、SUCCESS成功、FAILED失败',
|
||
`coverage_gap` tinyint(1) NOT NULL DEFAULT '0' COMMENT '是否存在自动化覆盖缺口:0否、1是',
|
||
`coverage_gap_code` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '自动化覆盖缺口编码',
|
||
`manual_reason` varchar(1000) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '转人工处理原因',
|
||
`error_code` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '查询失败错误码',
|
||
`error_message` varchar(1000) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '查询失败错误说明',
|
||
`operator_id` bigint unsigned NOT NULL COMMENT '执行本次尝试的操作人ID',
|
||
`operator_name` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '执行操作人姓名快照',
|
||
`created_at` datetime(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) COMMENT '尝试记录创建时间',
|
||
PRIMARY KEY (`id`),
|
||
KEY `idx_carrier_schedule_attempt_query` (`query_id`,`created_at`,`id`),
|
||
CONSTRAINT `fk_carrier_schedule_attempt_query` FOREIGN KEY (`query_id`) REFERENCES `fl_carrier_schedule_query` (`id`),
|
||
CONSTRAINT `chk_carrier_schedule_attempt_no` CHECK ((`window_attempt_no` between 1 and 3)),
|
||
CONSTRAINT `chk_carrier_schedule_attempt_status` CHECK ((`attempt_status` in (_utf8mb4'MANUAL_REQUIRED',_utf8mb4'SUCCESS',_utf8mb4'FAILED')))
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='船司官网查询尝试不可变审计';
|
||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||
DROP TABLE IF EXISTS `fl_carrier_schedule_query_history`;
|
||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||
/*!50503 SET character_set_client = utf8mb4 */;
|
||
CREATE TABLE `fl_carrier_schedule_query_history` (
|
||
`id` bigint unsigned NOT NULL COMMENT '船司查询任务历史ID',
|
||
`query_id` bigint unsigned NOT NULL COMMENT '所属船司官网查询任务ID',
|
||
`action` varchar(24) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '历史动作:CREATE创建、ATTEMPT执行查询、MANUAL_RESULT录入人工结果',
|
||
`from_version` int unsigned DEFAULT NULL COMMENT '变更前任务版本;创建时为空',
|
||
`to_version` int unsigned NOT NULL COMMENT '变更后任务版本',
|
||
`reason` varchar(1000) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '操作原因或说明',
|
||
`before_snapshot` json DEFAULT NULL COMMENT '变更前任务数据快照;创建时为空',
|
||
`after_snapshot` json NOT NULL COMMENT '变更后任务数据快照',
|
||
`operator_id` bigint unsigned NOT NULL COMMENT '操作人ID',
|
||
`operator_name` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '操作人姓名快照',
|
||
`created_at` datetime(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) COMMENT '历史记录创建时间',
|
||
PRIMARY KEY (`id`),
|
||
KEY `idx_carrier_schedule_history_query` (`query_id`,`created_at`,`id`),
|
||
CONSTRAINT `fk_carrier_schedule_history_query` FOREIGN KEY (`query_id`) REFERENCES `fl_carrier_schedule_query` (`id`),
|
||
CONSTRAINT `chk_carrier_schedule_history_action` CHECK ((`action` in (_utf8mb4'CREATE',_utf8mb4'ATTEMPT',_utf8mb4'MANUAL_RESULT')))
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='船司查询任务不可变历史';
|
||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||
DROP TABLE IF EXISTS `fl_carrier_schedule_query_operation`;
|
||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||
/*!50503 SET character_set_client = utf8mb4 */;
|
||
CREATE TABLE `fl_carrier_schedule_query_operation` (
|
||
`id` bigint unsigned NOT NULL COMMENT '船司查询写操作幂等记录ID',
|
||
`query_id` bigint unsigned DEFAULT NULL COMMENT '关联查询任务ID;创建任务落库前允许为空',
|
||
`operator_id` bigint unsigned NOT NULL COMMENT '发起写操作的平台操作人ID',
|
||
`operation` varchar(24) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '幂等写操作类型',
|
||
`idempotency_key` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '客户端写操作幂等键',
|
||
`request_hash` char(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '规范化请求内容SHA-256摘要;用于识别同键不同请求',
|
||
`status` varchar(16) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL DEFAULT 'PROCESSING' COMMENT '处理状态:PROCESSING处理中、SUCCESS成功',
|
||
`result_json` json DEFAULT NULL COMMENT '成功结果JSON快照;供幂等重放返回',
|
||
`created_at` datetime(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) COMMENT '幂等记录创建时间',
|
||
`completed_at` datetime(3) DEFAULT NULL COMMENT '写操作成功完成时间',
|
||
PRIMARY KEY (`id`),
|
||
UNIQUE KEY `uk_carrier_schedule_operation` (`operator_id`,`idempotency_key`),
|
||
KEY `idx_carrier_schedule_operation_query` (`query_id`,`created_at`,`id`),
|
||
CONSTRAINT `fk_carrier_schedule_operation_query` FOREIGN KEY (`query_id`) REFERENCES `fl_carrier_schedule_query` (`id`),
|
||
CONSTRAINT `chk_carrier_schedule_operation_status` CHECK ((`status` in (_utf8mb4'PROCESSING',_utf8mb4'SUCCESS')))
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='船司查询写操作幂等与请求摘要';
|
||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||
DROP TABLE IF EXISTS `fl_coload_command`;
|
||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||
/*!50503 SET character_set_client = utf8mb4 */;
|
||
CREATE TABLE `fl_coload_command` (
|
||
`id` bigint unsigned NOT NULL COMMENT '幂等命令ID',
|
||
`actor_id` bigint unsigned NOT NULL COMMENT '平台或内部操作人ID',
|
||
`action_type` varchar(16) NOT NULL,
|
||
`idempotency_key` varchar(128) NOT NULL,
|
||
`request_hash` char(64) NOT NULL,
|
||
`command_status` varchar(16) NOT NULL COMMENT 'PROCESSING、SUCCESS',
|
||
`result_group_id` bigint unsigned DEFAULT NULL,
|
||
`created_at` datetime(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3),
|
||
`completed_at` datetime(3) DEFAULT NULL,
|
||
PRIMARY KEY (`id`),
|
||
UNIQUE KEY `uk_coload_command` (`actor_id`,`action_type`,`idempotency_key`),
|
||
KEY `fk_coload_command_group` (`result_group_id`),
|
||
CONSTRAINT `fk_coload_command_group` FOREIGN KEY (`result_group_id`) REFERENCES `fl_coload_group` (`id`),
|
||
CONSTRAINT `chk_coload_command_status` CHECK ((`command_status` in (_utf8mb4'PROCESSING',_utf8mb4'SUCCESS')))
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='同柜不可拆组幂等写命令';
|
||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||
DROP TABLE IF EXISTS `fl_coload_group`;
|
||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||
/*!50503 SET character_set_client = utf8mb4 */;
|
||
CREATE TABLE `fl_coload_group` (
|
||
`id` bigint unsigned NOT NULL COMMENT '同柜不可拆组ID',
|
||
`group_no` varchar(40) NOT NULL COMMENT '稳定组号CLG-{id}',
|
||
`group_status` varchar(16) NOT NULL COMMENT 'ACTIVE、LOCKED、CONSUMED、CANCELLED',
|
||
`warehouse_id` bigint unsigned NOT NULL COMMENT '国内收货仓ID快照',
|
||
`channel_code` varchar(64) NOT NULL COMMENT '物流渠道编码快照',
|
||
`locked_plan_id` bigint unsigned DEFAULT NULL COMMENT 'LOCKED/CONSUMED绑定装柜计划ID',
|
||
`version` int unsigned NOT NULL DEFAULT '0' COMMENT '乐观版本',
|
||
`created_by` bigint unsigned NOT NULL COMMENT '创建人ID',
|
||
`created_by_name` varchar(64) DEFAULT NULL COMMENT '创建人名称快照',
|
||
`created_at` datetime(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3),
|
||
`updated_at` datetime(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3),
|
||
`locked_by` bigint unsigned DEFAULT NULL,
|
||
`locked_by_name` varchar(64) DEFAULT NULL,
|
||
`locked_at` datetime(3) DEFAULT NULL,
|
||
`consumed_by` bigint unsigned DEFAULT NULL,
|
||
`consumed_by_name` varchar(64) DEFAULT NULL,
|
||
`consumed_at` datetime(3) DEFAULT NULL,
|
||
`cancelled_by` bigint unsigned DEFAULT NULL,
|
||
`cancelled_by_name` varchar(64) DEFAULT NULL,
|
||
`cancelled_at` datetime(3) DEFAULT NULL,
|
||
PRIMARY KEY (`id`),
|
||
UNIQUE KEY `uk_coload_group_no` (`group_no`),
|
||
KEY `idx_coload_group_status` (`group_status`,`updated_at`,`id`),
|
||
KEY `idx_coload_group_plan` (`locked_plan_id`,`group_status`),
|
||
CONSTRAINT `fk_coload_group_plan` FOREIGN KEY (`locked_plan_id`) REFERENCES `fl_loading_plan` (`id`),
|
||
CONSTRAINT `chk_coload_group_lock` CHECK ((((`group_status` in (_utf8mb4'ACTIVE',_utf8mb4'CANCELLED')) and (`locked_plan_id` is null)) or ((`group_status` in (_utf8mb4'LOCKED',_utf8mb4'CONSUMED')) and (`locked_plan_id` is not null)))),
|
||
CONSTRAINT `chk_coload_group_status` CHECK ((`group_status` in (_utf8mb4'ACTIVE',_utf8mb4'LOCKED',_utf8mb4'CONSUMED',_utf8mb4'CANCELLED')))
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='同柜且不可拆业务组聚合根';
|
||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||
DROP TABLE IF EXISTS `fl_coload_group_history`;
|
||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||
/*!50503 SET character_set_client = utf8mb4 */;
|
||
CREATE TABLE `fl_coload_group_history` (
|
||
`id` bigint unsigned NOT NULL COMMENT '状态历史ID',
|
||
`group_id` bigint unsigned NOT NULL,
|
||
`action_type` varchar(16) NOT NULL COMMENT 'CREATE、CANCEL、LOCK、UNLOCK、CONSUME',
|
||
`from_status` varchar(16) DEFAULT NULL,
|
||
`to_status` varchar(16) NOT NULL,
|
||
`plan_id` bigint unsigned DEFAULT NULL,
|
||
`operation_id` varchar(128) NOT NULL COMMENT '稳定幂等操作ID',
|
||
`remark` varchar(500) DEFAULT NULL,
|
||
`operator_id` bigint unsigned NOT NULL,
|
||
`operator_name` varchar(64) DEFAULT NULL,
|
||
`created_at` datetime(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3),
|
||
PRIMARY KEY (`id`),
|
||
UNIQUE KEY `uk_coload_history_operation` (`group_id`,`action_type`,`operation_id`),
|
||
KEY `idx_coload_history_group` (`group_id`,`created_at`,`id`),
|
||
CONSTRAINT `fk_coload_history_group` FOREIGN KEY (`group_id`) REFERENCES `fl_coload_group` (`id`),
|
||
CONSTRAINT `chk_coload_history_action` CHECK ((`action_type` in (_utf8mb4'CREATE',_utf8mb4'CANCEL',_utf8mb4'LOCK',_utf8mb4'UNLOCK',_utf8mb4'CONSUME')))
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='同柜不可拆组不可变状态历史';
|
||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||
DROP TABLE IF EXISTS `fl_coload_group_member`;
|
||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||
/*!50503 SET character_set_client = utf8mb4 */;
|
||
CREATE TABLE `fl_coload_group_member` (
|
||
`id` bigint unsigned NOT NULL COMMENT '组成员ID',
|
||
`group_id` bigint unsigned NOT NULL COMMENT '同柜不可拆组ID',
|
||
`tenant_id` bigint unsigned NOT NULL COMMENT '成员客户ID;允许跨客户成组',
|
||
`order_id` bigint unsigned NOT NULL COMMENT '订单ID',
|
||
`inbound_id` bigint unsigned NOT NULL COMMENT '创建时权威入库单ID',
|
||
`full_package_count` int unsigned NOT NULL COMMENT '必须整组分配的满箱数快照',
|
||
`active_flag` tinyint unsigned DEFAULT '1' COMMENT '当前约束唯一标识;取消或消费后置NULL',
|
||
`created_at` datetime(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3),
|
||
`closed_at` datetime(3) DEFAULT NULL,
|
||
PRIMARY KEY (`id`),
|
||
UNIQUE KEY `uk_coload_group_member` (`group_id`,`inbound_id`),
|
||
UNIQUE KEY `uk_coload_active_inbound` (`tenant_id`,`inbound_id`,`active_flag`),
|
||
KEY `idx_coload_member_order` (`order_id`,`created_at`,`group_id`),
|
||
KEY `fk_coload_member_inbound` (`inbound_id`),
|
||
CONSTRAINT `fk_coload_member_group` FOREIGN KEY (`group_id`) REFERENCES `fl_coload_group` (`id`),
|
||
CONSTRAINT `fk_coload_member_inbound` FOREIGN KEY (`inbound_id`) REFERENCES `fl_inbound_order` (`id`),
|
||
CONSTRAINT `chk_coload_member_active` CHECK (((`active_flag` is null) or (`active_flag` = 1))),
|
||
CONSTRAINT `chk_coload_member_packages` CHECK ((`full_package_count` > 0))
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='同柜不可拆组成员与满箱数快照';
|
||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||
DROP TABLE IF EXISTS `fl_consumed_event`;
|
||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||
/*!50503 SET character_set_client = utf8mb4 */;
|
||
CREATE TABLE `fl_consumed_event` (
|
||
`event_id` bigint unsigned NOT NULL COMMENT '已消费领域事件ID,与生产端Outbox事件ID一致',
|
||
`event_type` varchar(64) NOT NULL COMMENT '已消费事件类型',
|
||
`consumed_at` datetime(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) COMMENT '首次成功消费时间',
|
||
PRIMARY KEY (`event_id`)
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='头程消息消费幂等表:记录已处理事件并按事件ID去重,防止RocketMQ重复投递造成重复建单;不是消息发布表';
|
||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||
DROP TABLE IF EXISTS `fl_container_booking`;
|
||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||
/*!50503 SET character_set_client = utf8mb4 */;
|
||
CREATE TABLE `fl_container_booking` (
|
||
`id` bigint unsigned NOT NULL COMMENT '货柜预订ID(雪花ID)',
|
||
`booking_no` varchar(40) NOT NULL COMMENT '平台唯一货柜预订单号',
|
||
`container_no` varchar(64) DEFAULT NULL COMMENT '集装箱号;确认前允许修订',
|
||
`cabinet_no` varchar(64) NOT NULL COMMENT '平台唯一内部柜号',
|
||
`channel_code` varchar(64) DEFAULT NULL COMMENT '订舱渠道编码快照',
|
||
`channel_name` varchar(128) DEFAULT NULL COMMENT '订舱渠道名称快照',
|
||
`ocean_booking_id` bigint unsigned DEFAULT NULL COMMENT '来源订舱ID',
|
||
`ocean_booking_requirement_id` bigint unsigned DEFAULT NULL COMMENT '来源订舱箱型需求ID',
|
||
`warehouse_id` bigint unsigned NOT NULL COMMENT '装柜仓库ID;平台公共资源',
|
||
`warehouse_name` varchar(128) NOT NULL COMMENT '装柜仓库名称快照',
|
||
`bill_of_lading_no` varchar(128) DEFAULT NULL COMMENT '提单号',
|
||
`vessel_name` varchar(128) DEFAULT NULL COMMENT '船名快照',
|
||
`voyage_no` varchar(64) DEFAULT NULL COMMENT '航次;确认前允许修订',
|
||
`container_type` varchar(32) NOT NULL COMMENT '箱型,例如20GP、40GP、40HQ',
|
||
`shipping_company_id` bigint unsigned DEFAULT NULL COMMENT '船司ID快照',
|
||
`shipping_company_name` varchar(128) DEFAULT NULL COMMENT '船司名称快照',
|
||
`departure_port_code` varchar(32) DEFAULT NULL COMMENT '起运港编码快照',
|
||
`departure_port_name` varchar(128) DEFAULT NULL COMMENT '起运港名称快照',
|
||
`destination_port_code` varchar(32) DEFAULT NULL COMMENT '目的港编码快照',
|
||
`destination_port_name` varchar(128) DEFAULT NULL COMMENT '目的港名称快照',
|
||
`destination_warehouse_code` varchar(64) DEFAULT NULL COMMENT '目的仓编码快照',
|
||
`destination_warehouse_name` varchar(128) DEFAULT NULL COMMENT '目的仓名称快照',
|
||
`capacity_cbm` decimal(18,4) DEFAULT NULL COMMENT '货柜容量m3',
|
||
`max_weight_kg` decimal(18,3) DEFAULT NULL COMMENT '货柜最大承重kg',
|
||
`terminal_trucking_company` varchar(128) DEFAULT NULL COMMENT '码头拖车公司',
|
||
`loading_at` datetime(3) DEFAULT NULL COMMENT '计划或实际装柜时间',
|
||
`estimated_sailing_at` datetime(3) DEFAULT NULL COMMENT '预计开船时间',
|
||
`actual_sailing_at` datetime(3) DEFAULT NULL COMMENT '实际开船时间',
|
||
`estimated_port_arrival_at` datetime(3) DEFAULT NULL COMMENT '预计到港时间',
|
||
`actual_port_arrival_at` datetime(3) DEFAULT NULL COMMENT '实际到港时间',
|
||
`estimated_warehouse_arrival_at` datetime(3) DEFAULT NULL COMMENT '预计到仓时间',
|
||
`actual_warehouse_arrival_at` datetime(3) DEFAULT NULL COMMENT '实际到仓时间',
|
||
`created_by` bigint unsigned NOT NULL COMMENT '创建人ID',
|
||
`created_by_name` varchar(64) DEFAULT NULL COMMENT '创建人名称快照',
|
||
`created_at` datetime(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) COMMENT '创建时间',
|
||
`updated_by` bigint unsigned NOT NULL COMMENT '最后修改人ID',
|
||
`updated_by_name` varchar(64) DEFAULT NULL COMMENT '最后修改人名称快照',
|
||
`updated_at` datetime(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3) COMMENT '货柜资料最后更新时间',
|
||
`version` int unsigned NOT NULL DEFAULT '0' COMMENT '乐观锁版本号',
|
||
`source_type` varchar(24) NOT NULL DEFAULT 'SIMULATION',
|
||
`record_status` varchar(16) NOT NULL DEFAULT 'ACTIVE',
|
||
`merged_into_container_booking_id` bigint unsigned DEFAULT NULL,
|
||
`customer_id` bigint unsigned DEFAULT NULL,
|
||
`customer_name` varchar(128) DEFAULT NULL,
|
||
`terminal_trucking_company_id` bigint unsigned DEFAULT NULL,
|
||
`unloading_completed_at` datetime(3) DEFAULT NULL,
|
||
`unloading_photo_uploaded_at` datetime(3) DEFAULT NULL,
|
||
`estimated_empty_reported_at` datetime(3) DEFAULT NULL,
|
||
`actual_empty_reported_at` datetime(3) DEFAULT NULL,
|
||
`empty_report_source_version` bigint DEFAULT NULL,
|
||
`channel_group_code` varchar(64) DEFAULT NULL COMMENT '模拟柜计划渠道分组;关联真实订舱后继续保留',
|
||
`pickup_code` varchar(64) DEFAULT NULL COMMENT 'PU数字码;按字符串保存以保留前导零',
|
||
`pickup_code_updated_by` bigint unsigned DEFAULT NULL COMMENT 'PU码最后填写人ID',
|
||
`pickup_code_updated_by_name` varchar(64) DEFAULT NULL COMMENT 'PU码最后填写人名称快照',
|
||
`pickup_code_updated_at` datetime(3) DEFAULT NULL COMMENT 'PU码最后填写时间',
|
||
PRIMARY KEY (`id`),
|
||
UNIQUE KEY `uk_container_booking_no` (`booking_no`),
|
||
UNIQUE KEY `uk_container_booking_cabinet` (`cabinet_no`),
|
||
KEY `idx_container_booking_container` (`container_no`),
|
||
KEY `idx_container_booking_warehouse` (`warehouse_id`,`updated_at`,`id`),
|
||
KEY `idx_container_booking_voyage` (`voyage_no`,`updated_at`),
|
||
CONSTRAINT `chk_container_booking_capacity` CHECK (((`capacity_cbm` is null) or (`capacity_cbm` > 0))),
|
||
CONSTRAINT `chk_container_booking_weight` CHECK (((`max_weight_kg` is null) or (`max_weight_kg` > 0)))
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='平台货柜预订资料;预装状态唯一来源为装柜计划';
|
||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||
DROP TABLE IF EXISTS `fl_container_document`;
|
||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||
/*!50503 SET character_set_client = utf8mb4 */;
|
||
CREATE TABLE `fl_container_document` (
|
||
`id` bigint unsigned NOT NULL COMMENT '货柜文件关联ID(雪花ID)',
|
||
`container_booking_id` bigint unsigned NOT NULL COMMENT '货柜预订ID',
|
||
`document_type` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '文件类型:CUSTOMS_CLEARANCE清关文件、DELIVERY_ORDER提货单、PICKUP_ORDER取货单',
|
||
`file_id` bigint unsigned NOT NULL COMMENT 'File服务文件ID,不建立跨库外键',
|
||
`file_name` varchar(255) NOT NULL COMMENT '文件名称快照',
|
||
`file_hash` varchar(64) DEFAULT NULL,
|
||
`file_url` varchar(1000) DEFAULT NULL COMMENT '文件访问地址快照',
|
||
`uploaded_by` bigint unsigned NOT NULL COMMENT '上传操作人ID',
|
||
`uploaded_by_name` varchar(64) DEFAULT NULL COMMENT '上传操作人名称快照',
|
||
`completed_by` bigint unsigned DEFAULT NULL,
|
||
`completed_by_name` varchar(64) DEFAULT NULL,
|
||
`created_at` datetime(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) COMMENT '创建时间',
|
||
`updated_at` datetime(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3) COMMENT '货柜文件关联最后更新时间',
|
||
`completed_at` datetime(3) DEFAULT NULL,
|
||
`version` int unsigned NOT NULL DEFAULT '0' COMMENT '乐观锁版本号',
|
||
PRIMARY KEY (`id`),
|
||
UNIQUE KEY `uk_container_document_type` (`container_booking_id`,`document_type`),
|
||
KEY `idx_container_document_file` (`file_id`),
|
||
CONSTRAINT `fk_container_document_booking` FOREIGN KEY (`container_booking_id`) REFERENCES `fl_container_booking` (`id`),
|
||
CONSTRAINT `chk_container_document_type` CHECK ((`document_type` in (_utf8mb4'DESTINATION_CLEARANCE',_utf8mb4'CUSTOMS_DECLARATION',_utf8mb4'DELIVERY_ORDER',_utf8mb4'PICKUP_ORDER')))
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='平台货柜清关、DO与PU文件关联';
|
||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||
DROP TABLE IF EXISTS `fl_container_event_inbox`;
|
||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||
/*!50503 SET character_set_client = utf8mb4 */;
|
||
CREATE TABLE `fl_container_event_inbox` (
|
||
`event_id` varchar(64) NOT NULL COMMENT '跨区事件全局唯一ID',
|
||
`event_type` varchar(64) NOT NULL COMMENT '事件类型',
|
||
`event_version` int unsigned NOT NULL COMMENT '事件契约版本',
|
||
`aggregate_id` varchar(64) NOT NULL COMMENT '货柜聚合ID',
|
||
`aggregate_version` bigint unsigned NOT NULL COMMENT '货柜聚合版本',
|
||
`payload_hash` varchar(80) NOT NULL COMMENT '规范化负载SHA-256摘要',
|
||
`payload_json` json NOT NULL COMMENT '原始事件负载',
|
||
`status` varchar(16) NOT NULL COMMENT 'RECEIVED或PROCESSED',
|
||
`received_at` datetime(3) NOT NULL COMMENT '接收时间(UTC)',
|
||
`processed_at` datetime(3) DEFAULT NULL COMMENT '处理完成时间(UTC)',
|
||
PRIMARY KEY (`event_id`),
|
||
KEY `idx_container_event_aggregate` (`aggregate_id`,`aggregate_version`)
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='海外货柜事件消费Inbox';
|
||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||
DROP TABLE IF EXISTS `fl_container_exception_history`;
|
||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||
/*!50503 SET character_set_client = utf8mb4 */;
|
||
CREATE TABLE `fl_container_exception_history` (
|
||
`id` bigint unsigned NOT NULL COMMENT '异常历史ID',
|
||
`container_booking_id` bigint unsigned NOT NULL COMMENT '稳定货柜预订ID',
|
||
`action` varchar(16) NOT NULL COMMENT 'MARK标记异常/CANCEL取消异常',
|
||
`reason` varchar(500) NOT NULL COMMENT '标记或取消原因',
|
||
`operator_id` bigint unsigned NOT NULL COMMENT '操作人ID',
|
||
`operator_name` varchar(64) DEFAULT NULL COMMENT '操作人名称快照',
|
||
`operation_id` varchar(128) NOT NULL COMMENT '同一操作人幂等键',
|
||
`request_hash` char(64) NOT NULL COMMENT '规范化请求摘要',
|
||
`occurred_at` datetime(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) COMMENT '发生时间',
|
||
PRIMARY KEY (`id`),
|
||
UNIQUE KEY `uk_container_exception_operation` (`container_booking_id`,`operator_id`,`operation_id`),
|
||
KEY `idx_container_exception_history` (`container_booking_id`,`occurred_at`,`id`),
|
||
CONSTRAINT `fk_container_exception_booking` FOREIGN KEY (`container_booking_id`) REFERENCES `fl_container_booking` (`id`),
|
||
CONSTRAINT `chk_container_exception_action` CHECK ((`action` in (_utf8mb4'MARK',_utf8mb4'CANCEL')))
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='货柜异常标记及取消原因历史';
|
||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||
DROP TABLE IF EXISTS `fl_container_fee_detail`;
|
||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||
/*!50503 SET character_set_client = utf8mb4 */;
|
||
CREATE TABLE `fl_container_fee_detail` (
|
||
`id` bigint unsigned NOT NULL COMMENT '柜次费用来源ID',
|
||
`tenant_id` bigint unsigned NOT NULL COMMENT '客户ID和数据隔离键',
|
||
`loading_plan_id` bigint unsigned NOT NULL COMMENT '柜次ID,对应fl_loading_plan.id',
|
||
`container_booking_id` bigint unsigned DEFAULT NULL COMMENT '订舱柜ID快照',
|
||
`container_no` varchar(64) DEFAULT NULL COMMENT '柜号快照',
|
||
`fee_item_id` bigint unsigned NOT NULL COMMENT '平台公共费用项目ID',
|
||
`fee_item_code_snapshot` varchar(50) NOT NULL COMMENT '费用项目稳定编码快照',
|
||
`fee_item_name_snapshot` varchar(128) NOT NULL COMMENT '费用项目名称快照',
|
||
`direction` varchar(16) NOT NULL COMMENT '费用方向:RECEIVABLE应收、PAYABLE应付',
|
||
`business_date` date NOT NULL COMMENT '费用业务日期',
|
||
`amount` decimal(18,2) NOT NULL COMMENT 'CNY费用金额',
|
||
`currency` char(3) NOT NULL DEFAULT 'CNY' COMMENT '币种,首期固定CNY',
|
||
`settlement_included` tinyint(1) NOT NULL DEFAULT '0' COMMENT '是否参与财务结算来源池',
|
||
`review_status` varchar(16) NOT NULL DEFAULT 'PENDING' COMMENT '审核状态:PENDING待审核、APPROVED通过、REJECTED驳回',
|
||
`source_status` varchar(16) NOT NULL DEFAULT 'ACTIVE' COMMENT '来源状态:ACTIVE有效、VOIDED作废',
|
||
`source_version` int unsigned NOT NULL DEFAULT '1' COMMENT '费用来源版本;调整递增,作废携带当前版本',
|
||
`remark` varchar(500) DEFAULT NULL COMMENT '人工备注',
|
||
`reviewer_id` bigint unsigned DEFAULT NULL COMMENT '审核人ID',
|
||
`reviewer_name` varchar(64) DEFAULT NULL COMMENT '审核人名称快照',
|
||
`reviewed_at` datetime(3) DEFAULT NULL COMMENT '审核时间',
|
||
`review_reason` varchar(500) DEFAULT NULL COMMENT '审核驳回原因',
|
||
`created_by` bigint unsigned NOT NULL COMMENT '创建人ID',
|
||
`created_at` datetime(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) COMMENT '创建时间',
|
||
`updated_by` bigint unsigned NOT NULL COMMENT '最后更新人ID',
|
||
`updated_at` datetime(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3) COMMENT '最后更新时间',
|
||
`paid_at` datetime(3) DEFAULT NULL COMMENT 'DIRECT_PAID业务已付时间',
|
||
`payment_method` varchar(32) DEFAULT NULL COMMENT 'DIRECT_PAID付款方式',
|
||
`payment_reference_no` varchar(128) DEFAULT NULL COMMENT 'DIRECT_PAID付款流水号',
|
||
`payment_voucher_file_ids` json DEFAULT NULL COMMENT 'DIRECT_PAID付款凭证File ID数组',
|
||
`settlement_mode` varchar(16) DEFAULT NULL COMMENT '仅PAYABLE:ON_ACCOUNT账期应付、DIRECT_PAID业务已付;RECEIVABLE为空',
|
||
`supplier_category` varchar(16) DEFAULT NULL COMMENT '费用项目供应商类别约束快照;为空表示任意启用供应商',
|
||
`supplier_id` bigint unsigned DEFAULT NULL COMMENT '应付Warehouse供应商ID快照;应收为空',
|
||
`supplier_name` varchar(200) DEFAULT NULL COMMENT '应付Warehouse供应商名称快照;应收为空',
|
||
`allocation_group_id` bigint unsigned DEFAULT NULL COMMENT '柜级公共费用分摊组ID;单入仓直接费用为空',
|
||
`allocation_order_id` bigint unsigned DEFAULT NULL COMMENT '本分摊行业务订单ID',
|
||
`allocation_order_no` varchar(64) DEFAULT NULL COMMENT '本分摊行业务订单号',
|
||
`allocation_inbound_id` bigint unsigned DEFAULT NULL COMMENT '本分摊行对应入仓单ID',
|
||
`allocation_inbound_code` varchar(64) DEFAULT NULL COMMENT '本分摊行对应入仓码',
|
||
`allocation_group_amount` decimal(18,2) DEFAULT NULL COMMENT '柜级原始费用总额快照',
|
||
PRIMARY KEY (`id`),
|
||
KEY `idx_container_fee_customer_plan` (`tenant_id`,`loading_plan_id`,`source_status`),
|
||
KEY `idx_container_fee_settlement` (`tenant_id`,`review_status`,`settlement_included`,`source_status`),
|
||
CONSTRAINT `chk_container_fee_amount` CHECK ((`amount` >= 0)),
|
||
CONSTRAINT `chk_container_fee_currency` CHECK ((`currency` = _utf8mb4'CNY')),
|
||
CONSTRAINT `chk_container_fee_direction` CHECK ((`direction` in (_utf8mb4'RECEIVABLE',_utf8mb4'PAYABLE'))),
|
||
CONSTRAINT `chk_container_fee_review` CHECK ((`review_status` in (_utf8mb4'PENDING',_utf8mb4'APPROVED',_utf8mb4'REJECTED'))),
|
||
CONSTRAINT `chk_container_fee_source` CHECK ((`source_status` in (_utf8mb4'ACTIVE',_utf8mb4'VOIDED')))
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='柜次级人工应收应付费用来源;审核通过且参与结算后同步Finance';
|
||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||
DROP TABLE IF EXISTS `fl_container_fee_source_snapshot`;
|
||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||
/*!50503 SET character_set_client = utf8mb4 */;
|
||
CREATE TABLE `fl_container_fee_source_snapshot` (
|
||
`id` bigint unsigned NOT NULL COMMENT '柜次费用快照ID',
|
||
`source_fee_id` bigint unsigned NOT NULL COMMENT '柜次费用来源ID',
|
||
`source_version` int unsigned NOT NULL COMMENT '费用来源版本',
|
||
`tenant_id` bigint unsigned NOT NULL COMMENT '客户ID和数据隔离键',
|
||
`loading_plan_id` bigint unsigned NOT NULL COMMENT '柜次ID',
|
||
`container_booking_id` bigint unsigned DEFAULT NULL COMMENT '订舱柜ID快照',
|
||
`container_no` varchar(64) DEFAULT NULL COMMENT '柜号快照',
|
||
`fee_item_id` bigint unsigned NOT NULL COMMENT '费用项目ID快照',
|
||
`fee_item_code` varchar(50) NOT NULL COMMENT '费用项目编码快照',
|
||
`fee_item_name` varchar(128) NOT NULL COMMENT '费用项目名称快照',
|
||
`direction` varchar(16) NOT NULL COMMENT '费用方向',
|
||
`supplier_id` bigint unsigned DEFAULT NULL COMMENT 'Warehouse供应商ID快照',
|
||
`supplier_name` varchar(200) DEFAULT NULL COMMENT 'Warehouse供应商名称快照',
|
||
`supplier_category` varchar(16) DEFAULT NULL COMMENT '费用项目供应商类别约束快照;为空表示任意启用供应商',
|
||
`settlement_mode` varchar(16) DEFAULT NULL COMMENT '仅PAYABLE:ON_ACCOUNT账期应付、DIRECT_PAID业务已付;RECEIVABLE为空',
|
||
`paid_at` datetime(3) DEFAULT NULL COMMENT 'DIRECT_PAID业务已付时间',
|
||
`payment_method` varchar(32) DEFAULT NULL COMMENT 'DIRECT_PAID付款方式',
|
||
`payment_reference_no` varchar(128) DEFAULT NULL COMMENT 'DIRECT_PAID付款流水号',
|
||
`payment_voucher_file_ids` json DEFAULT NULL COMMENT 'DIRECT_PAID付款凭证File ID数组',
|
||
`business_date` date NOT NULL COMMENT '费用业务日期',
|
||
`amount` decimal(18,2) NOT NULL COMMENT 'CNY费用金额',
|
||
`currency` char(3) NOT NULL DEFAULT 'CNY' COMMENT '币种,首期固定CNY',
|
||
`review_status` varchar(16) NOT NULL COMMENT '审核状态快照',
|
||
`reviewed_at` datetime(3) DEFAULT NULL COMMENT '审核时间快照',
|
||
`created_at` datetime(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) COMMENT '快照创建时间',
|
||
`allocation_group_id` bigint unsigned DEFAULT NULL COMMENT '柜级公共费用分摊组ID',
|
||
`allocation_order_id` bigint unsigned DEFAULT NULL COMMENT '分摊业务订单ID快照',
|
||
`allocation_order_no` varchar(64) DEFAULT NULL COMMENT '分摊业务订单号快照',
|
||
`allocation_inbound_id` bigint unsigned DEFAULT NULL COMMENT '分摊入仓单ID快照',
|
||
`allocation_inbound_code` varchar(64) DEFAULT NULL COMMENT '分摊入仓码快照',
|
||
`allocation_group_amount` decimal(18,2) DEFAULT NULL COMMENT '柜级原始费用总额快照',
|
||
PRIMARY KEY (`id`),
|
||
UNIQUE KEY `uk_container_fee_source_version` (`loading_plan_id`,`source_fee_id`,`source_version`),
|
||
KEY `idx_container_fee_snapshot_tenant` (`tenant_id`,`loading_plan_id`)
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='柜次费用不可变版本快照';
|
||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||
DROP TABLE IF EXISTS `fl_container_transport_history`;
|
||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||
/*!50503 SET character_set_client = utf8mb4 */;
|
||
CREATE TABLE `fl_container_transport_history` (
|
||
`id` bigint unsigned NOT NULL COMMENT '运输字段变更历史ID',
|
||
`container_booking_id` bigint unsigned NOT NULL COMMENT '稳定柜次ID',
|
||
`before_container_no` varchar(64) DEFAULT NULL COMMENT '变更前真实集装箱号',
|
||
`after_container_no` varchar(64) DEFAULT NULL COMMENT '变更后真实集装箱号',
|
||
`before_voyage_no` varchar(64) DEFAULT NULL COMMENT '变更前航次号',
|
||
`after_voyage_no` varchar(64) DEFAULT NULL COMMENT '变更后航次号',
|
||
`reason` varchar(500) DEFAULT NULL COMMENT '运输字段变更原因',
|
||
`operator_id` bigint unsigned NOT NULL COMMENT '变更操作人ID',
|
||
`operator_name` varchar(64) DEFAULT NULL COMMENT '变更操作人名称快照',
|
||
`created_at` datetime(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) COMMENT '变更记录创建时间',
|
||
`operation_id` varchar(64) NOT NULL COMMENT '运输字段操作幂等ID',
|
||
`request_hash` char(64) NOT NULL COMMENT '运输字段请求哈希',
|
||
PRIMARY KEY (`id`),
|
||
KEY `idx_container_transport_history` (`container_booking_id`,`created_at`,`id`)
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='柜次真实运输字段不可变变更审计';
|
||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||
DROP TABLE IF EXISTS `fl_customer_charge_rule`;
|
||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||
/*!50503 SET character_set_client = utf8mb4 */;
|
||
CREATE TABLE `fl_customer_charge_rule` (
|
||
`id` bigint unsigned NOT NULL COMMENT '客户计费规则ID',
|
||
`tenant_id` bigint unsigned NOT NULL COMMENT '客户ID和数据隔离键',
|
||
`rule_code` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '客户内唯一计费规则编码',
|
||
`rule_version` int unsigned NOT NULL COMMENT '规则版本号',
|
||
`customer_id` bigint unsigned NOT NULL COMMENT '客户逻辑ID',
|
||
`customer_name` varchar(128) NOT NULL COMMENT '客户名称快照',
|
||
`business_type` varchar(32) NOT NULL COMMENT '业务类型',
|
||
`charge_mode` varchar(16) NOT NULL COMMENT '计费口径:KG或CBM',
|
||
`tax_mode` varchar(24) DEFAULT NULL COMMENT '包税或不包税类型',
|
||
`conversion_factor` decimal(18,6) NOT NULL COMMENT '重量体积换算系数',
|
||
`length_factor` decimal(18,6) NOT NULL DEFAULT '1.000000' COMMENT 'length factor',
|
||
`width_factor` decimal(18,6) NOT NULL DEFAULT '1.000000' COMMENT 'width factor',
|
||
`height_factor` decimal(18,6) NOT NULL DEFAULT '1.000000' COMMENT 'height factor',
|
||
`rounding_scale` tinyint unsigned NOT NULL DEFAULT '3' COMMENT '结果保留小数位数',
|
||
`rounding_mode` varchar(24) NOT NULL DEFAULT 'CEILING' COMMENT '舍入方式',
|
||
`currency` char(3) NOT NULL COMMENT '默认币种',
|
||
`effective_from` datetime(3) NOT NULL COMMENT '生效开始时间',
|
||
`effective_to` datetime(3) DEFAULT NULL COMMENT '生效结束时间',
|
||
`status` varchar(16) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL DEFAULT 'ACTIVE' COMMENT '规则状态:ACTIVE启用、DISABLED停用',
|
||
`default_rule` tinyint(1) NOT NULL DEFAULT '0' COMMENT 'default customer rule',
|
||
`remark` varchar(500) DEFAULT NULL COMMENT '规则备注',
|
||
`created_by` bigint unsigned NOT NULL COMMENT '创建人ID',
|
||
`created_at` datetime(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) COMMENT '创建时间',
|
||
`updated_by` bigint unsigned NOT NULL COMMENT '最后修改人ID',
|
||
`updated_at` datetime(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3) COMMENT '更新时间',
|
||
`deleted` tinyint(1) NOT NULL DEFAULT '0' COMMENT '逻辑删除标记',
|
||
`version` int NOT NULL DEFAULT '0' COMMENT '乐观锁版本号',
|
||
`initialization_key` varchar(128) DEFAULT NULL COMMENT '客户创建执行器幂等键及补偿归属',
|
||
PRIMARY KEY (`id`),
|
||
UNIQUE KEY `uk_charge_rule_version` (`tenant_id`,`rule_code`,`rule_version`),
|
||
KEY `idx_charge_rule_match` (`tenant_id`,`customer_id`,`business_type`,`status`,`effective_from`,`effective_to`)
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='客户头程计费规则版本';
|
||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||
DROP TABLE IF EXISTS `fl_customer_dimension_config`;
|
||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||
/*!50503 SET character_set_client = utf8mb4 */;
|
||
CREATE TABLE `fl_customer_dimension_config` (
|
||
`id` bigint unsigned NOT NULL COMMENT '配置ID',
|
||
`tenant_id` bigint unsigned NOT NULL COMMENT '客户ID和数据隔离键',
|
||
`box_type` varchar(24) NOT NULL COMMENT '固定箱规类型:SMALL/MEDIUM/LARGE/EXTRA_LARGE',
|
||
`inner_length_cm` decimal(9,3) NOT NULL COMMENT '箱规内长(厘米)',
|
||
`inner_width_cm` decimal(9,3) NOT NULL COMMENT '箱规内宽(厘米)',
|
||
`inner_height_cm` decimal(9,3) NOT NULL COMMENT '箱规内高(厘米)',
|
||
`edge_addition_cm` decimal(6,3) NOT NULL DEFAULT '2.000' COMMENT '每个尺寸方向的单侧加宽厘米数',
|
||
`default_calculation_mode` varchar(16) NOT NULL DEFAULT 'ADD' COMMENT '订单外箱规默认计算方式:ADD或MULTIPLY',
|
||
`remark` varchar(500) DEFAULT NULL COMMENT '备注',
|
||
`initialization_key` varchar(128) NOT NULL COMMENT '创建流程幂等键及补偿归属',
|
||
`created_by` bigint unsigned NOT NULL COMMENT '创建人ID',
|
||
`created_at` datetime(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) COMMENT '创建时间',
|
||
`updated_by` bigint unsigned NOT NULL COMMENT '最后修改人ID',
|
||
`updated_at` datetime(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3) COMMENT '更新时间',
|
||
`deleted` tinyint(1) NOT NULL DEFAULT '0' COMMENT '逻辑删除',
|
||
`version` int NOT NULL DEFAULT '0' COMMENT '乐观锁版本号',
|
||
PRIMARY KEY (`id`),
|
||
UNIQUE KEY `uk_customer_dimension_config_tenant_box` (`tenant_id`,`box_type`),
|
||
KEY `idx_customer_dimension_config_initialization` (`tenant_id`,`initialization_key`),
|
||
CONSTRAINT `chk_customer_dimension_box_type` CHECK ((`box_type` in (_utf8mb4'SMALL',_utf8mb4'MEDIUM',_utf8mb4'LARGE',_utf8mb4'EXTRA_LARGE'))),
|
||
CONSTRAINT `chk_customer_dimension_edge_addition` CHECK (((`edge_addition_cm` >= 0.001) and (`edge_addition_cm` <= 100.000))),
|
||
CONSTRAINT `chk_customer_dimension_inner_size` CHECK (((`inner_length_cm` >= 0.001) and (`inner_width_cm` >= 0.001) and (`inner_height_cm` >= 0.001)))
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='客户固定四箱规尺寸配置';
|
||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||
DROP TABLE IF EXISTS `fl_customs_case`;
|
||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||
/*!50503 SET character_set_client = utf8mb4 */;
|
||
CREATE TABLE `fl_customs_case` (
|
||
`id` bigint unsigned NOT NULL COMMENT '报关协同单逻辑ID',
|
||
`customs_no` varchar(40) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '全局唯一报关协同单号',
|
||
`tenant_id` bigint unsigned NOT NULL COMMENT '客户ID和数据隔离键',
|
||
`order_id` bigint unsigned NOT NULL COMMENT 'Order服务订单逻辑ID;跨库不建立外键',
|
||
`inbound_id` bigint unsigned NOT NULL COMMENT 'Firstleg入库单逻辑ID',
|
||
`container_booking_id` bigint unsigned NOT NULL DEFAULT '0' COMMENT '关联柜次逻辑ID;0表示创建时尚未关联柜次',
|
||
`checklist_version_id` bigint unsigned NOT NULL COMMENT '本单冻结使用的报关资料清单版本ID',
|
||
`checklist_code` varchar(40) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '创建协同单时的清单编码快照;源清单变化不回写',
|
||
`checklist_version_no` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '创建协同单时的清单版本号快照;源清单变化不回写',
|
||
`status` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL DEFAULT 'DOCUMENTS_PENDING' COMMENT '协同状态:DOCUMENTS_PENDING待补资料、REVIEWING审核中、SUPPLEMENT_REQUIRED需补件、READY_TO_SUBMIT待提交代理、RECEIPT_PENDING待回执、RECEIPT_AVAILABLE已有回执、CLEARANCE_COMPLETED已放行、CANCELLED已取消',
|
||
`remark` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '报关协同单内部业务备注',
|
||
`created_by` bigint unsigned NOT NULL COMMENT '创建协同单的平台操作人ID',
|
||
`created_by_name` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '创建协同单时的平台操作人名称快照',
|
||
`created_at` datetime(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) COMMENT '协同单创建时间',
|
||
`updated_by` bigint unsigned NOT NULL COMMENT '最后修改协同单的平台操作人ID',
|
||
`updated_by_name` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '最后修改时的平台操作人名称快照',
|
||
`updated_at` datetime(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3) COMMENT '协同单最后修改时间',
|
||
`version` int unsigned NOT NULL DEFAULT '0' COMMENT '乐观锁版本号;每次状态变更递增',
|
||
PRIMARY KEY (`id`),
|
||
UNIQUE KEY `uk_customs_no` (`customs_no`),
|
||
UNIQUE KEY `uk_customs_case_scope` (`tenant_id`,`order_id`,`inbound_id`,`container_booking_id`),
|
||
KEY `idx_customs_case_status` (`status`,`updated_at`),
|
||
KEY `idx_customs_case_container` (`container_booking_id`),
|
||
KEY `fk_customs_case_checklist` (`checklist_version_id`),
|
||
CONSTRAINT `fk_customs_case_checklist` FOREIGN KEY (`checklist_version_id`) REFERENCES `fl_customs_checklist_version` (`id`),
|
||
CONSTRAINT `chk_customs_case_status` CHECK ((`status` in (_utf8mb4'DOCUMENTS_PENDING',_utf8mb4'REVIEWING',_utf8mb4'SUPPLEMENT_REQUIRED',_utf8mb4'READY_TO_SUBMIT',_utf8mb4'RECEIPT_PENDING',_utf8mb4'RECEIPT_AVAILABLE',_utf8mb4'CLEARANCE_COMPLETED',_utf8mb4'CANCELLED')))
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='三期订单报关协同聚合';
|
||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||
DROP TABLE IF EXISTS `fl_customs_checklist_version`;
|
||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||
/*!50503 SET character_set_client = utf8mb4 */;
|
||
CREATE TABLE `fl_customs_checklist_version` (
|
||
`id` bigint unsigned NOT NULL COMMENT '报关资料清单版本逻辑ID',
|
||
`checklist_code` varchar(40) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '报关资料清单编码;同一清单的多个版本共用',
|
||
`version_no` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '清单业务版本号',
|
||
`country_code` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '清单适用的目的国家或地区编码',
|
||
`channel_code` varchar(40) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '清单适用的运输渠道编码',
|
||
`cargo_type` varchar(40) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '清单适用的货物类型编码',
|
||
`items_json` json NOT NULL COMMENT '不可变清单项目数组;元素包含code项目编码、name项目名称和required是否必填',
|
||
`status` varchar(16) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL DEFAULT 'ACTIVE' COMMENT '清单版本状态:ACTIVE启用、RETIRED停用',
|
||
`created_by` bigint unsigned NOT NULL COMMENT '创建清单版本的平台操作人ID',
|
||
`created_by_name` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '创建清单版本时的平台操作人名称快照',
|
||
`created_at` datetime(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) COMMENT '清单版本创建时间',
|
||
PRIMARY KEY (`id`),
|
||
UNIQUE KEY `uk_customs_checklist_version` (`checklist_code`,`version_no`),
|
||
KEY `idx_customs_checklist_match` (`country_code`,`channel_code`,`cargo_type`,`status`),
|
||
CONSTRAINT `chk_customs_checklist_status` CHECK ((`status` in (_utf8mb4'ACTIVE',_utf8mb4'RETIRED')))
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='三期报关资料清单不可变版本';
|
||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||
DROP TABLE IF EXISTS `fl_customs_command`;
|
||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||
/*!50503 SET character_set_client = utf8mb4 */;
|
||
CREATE TABLE `fl_customs_command` (
|
||
`id` bigint unsigned NOT NULL,
|
||
`actor_id` bigint unsigned NOT NULL,
|
||
`action` varchar(80) NOT NULL,
|
||
`idempotency_key` varchar(128) NOT NULL,
|
||
`request_hash` char(64) NOT NULL,
|
||
`status` varchar(16) NOT NULL,
|
||
`result_id` bigint unsigned DEFAULT NULL,
|
||
`created_at` datetime(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3),
|
||
`completed_at` datetime(3) DEFAULT NULL,
|
||
PRIMARY KEY (`id`),
|
||
UNIQUE KEY `uk_customs_command` (`actor_id`,`action`,`idempotency_key`),
|
||
CONSTRAINT `chk_customs_command_status` CHECK ((`status` in (_utf8mb4'PROCESSING',_utf8mb4'SUCCESS')))
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='整柜报关写命令幂等事实';
|
||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||
DROP TABLE IF EXISTS `fl_customs_completion_document`;
|
||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||
/*!50503 SET character_set_client = utf8mb4 */;
|
||
CREATE TABLE `fl_customs_completion_document` (
|
||
`id` bigint unsigned NOT NULL,
|
||
`source_document_id` bigint unsigned NOT NULL COMMENT '一份冻结客户资料严格对应一份完成文件逻辑根',
|
||
`file_id` bigint unsigned NOT NULL,
|
||
`file_name` varchar(255) NOT NULL,
|
||
`file_hash` char(64) NOT NULL,
|
||
`content_type` varchar(128) DEFAULT NULL,
|
||
`size_bytes` bigint unsigned NOT NULL,
|
||
`uploaded_by` bigint unsigned NOT NULL,
|
||
`uploaded_by_name` varchar(64) DEFAULT NULL,
|
||
`uploaded_at` datetime(3) NOT NULL,
|
||
`version` int unsigned NOT NULL DEFAULT '1',
|
||
`created_at` datetime(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3),
|
||
`updated_at` datetime(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3),
|
||
PRIMARY KEY (`id`),
|
||
UNIQUE KEY `uk_customs_completion_source` (`source_document_id`),
|
||
CONSTRAINT `fk_customs_completion_source` FOREIGN KEY (`source_document_id`) REFERENCES `fl_customs_customer_document` (`id`)
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='报关完成文件当前版本';
|
||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||
DROP TABLE IF EXISTS `fl_customs_completion_document_version`;
|
||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||
/*!50503 SET character_set_client = utf8mb4 */;
|
||
CREATE TABLE `fl_customs_completion_document_version` (
|
||
`id` bigint unsigned NOT NULL,
|
||
`completion_document_id` bigint unsigned NOT NULL,
|
||
`document_version` int unsigned NOT NULL,
|
||
`file_id` bigint unsigned NOT NULL,
|
||
`file_name` varchar(255) NOT NULL,
|
||
`file_hash` char(64) NOT NULL,
|
||
`content_type` varchar(128) DEFAULT NULL,
|
||
`size_bytes` bigint unsigned NOT NULL,
|
||
`operator_id` bigint unsigned NOT NULL,
|
||
`operator_name` varchar(64) DEFAULT NULL,
|
||
`created_at` datetime(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3),
|
||
PRIMARY KEY (`id`),
|
||
UNIQUE KEY `uk_customs_completion_version` (`completion_document_id`,`document_version`),
|
||
CONSTRAINT `fk_customs_completion_version` FOREIGN KEY (`completion_document_id`) REFERENCES `fl_customs_completion_document` (`id`)
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='报关完成文件不可变覆盖版本';
|
||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||
DROP TABLE IF EXISTS `fl_customs_container`;
|
||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||
/*!50503 SET character_set_client = utf8mb4 */;
|
||
CREATE TABLE `fl_customs_container` (
|
||
`id` bigint unsigned NOT NULL,
|
||
`loading_plan_id` bigint unsigned NOT NULL COMMENT '已完成装柜计划ID;报关柜级聚合唯一键',
|
||
`container_booking_id` bigint unsigned NOT NULL COMMENT '物理货柜ID',
|
||
`status` varchar(40) NOT NULL COMMENT 'WAITING_CUSTOMER_DOCUMENTS、READY_TO_START、DECLARING、COMPLETED',
|
||
`started_by` bigint unsigned DEFAULT NULL,
|
||
`started_by_name` varchar(64) DEFAULT NULL,
|
||
`started_at` datetime(3) DEFAULT NULL,
|
||
`completed_by` bigint unsigned DEFAULT NULL,
|
||
`completed_by_name` varchar(64) DEFAULT NULL,
|
||
`completed_at` datetime(3) DEFAULT NULL,
|
||
`created_at` datetime(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3),
|
||
`updated_at` datetime(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3),
|
||
`version` int unsigned NOT NULL DEFAULT '0',
|
||
`broker_submitted_by` bigint unsigned DEFAULT NULL COMMENT '发送报关行执行的操作人ID',
|
||
`broker_submitted_by_name` varchar(64) DEFAULT NULL COMMENT '发送报关行执行的操作人名称',
|
||
`broker_submitted_at` datetime(3) DEFAULT NULL COMMENT '发送报关行执行时间',
|
||
PRIMARY KEY (`id`),
|
||
UNIQUE KEY `uk_customs_container_plan` (`loading_plan_id`),
|
||
UNIQUE KEY `uk_customs_container_booking` (`container_booking_id`),
|
||
KEY `idx_customs_container_status` (`status`,`updated_at`),
|
||
CONSTRAINT `chk_customs_container_status` CHECK ((`status` in (_utf8mb4'WAITING_CUSTOMER_DOCUMENTS',_utf8mb4'READY_TO_START',_utf8mb4'DECLARING',_utf8mb4'COMPLETED')))
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='装柜完成后的整柜出口报关聚合';
|
||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||
DROP TABLE IF EXISTS `fl_customs_container_history`;
|
||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||
/*!50503 SET character_set_client = utf8mb4 */;
|
||
CREATE TABLE `fl_customs_container_history` (
|
||
`id` bigint unsigned NOT NULL,
|
||
`customs_container_id` bigint unsigned NOT NULL,
|
||
`action` varchar(40) NOT NULL,
|
||
`from_status` varchar(40) DEFAULT NULL,
|
||
`to_status` varchar(40) DEFAULT NULL,
|
||
`remark` varchar(500) DEFAULT NULL,
|
||
`operator_id` bigint unsigned NOT NULL,
|
||
`operator_name` varchar(64) DEFAULT NULL,
|
||
`created_at` datetime(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3),
|
||
PRIMARY KEY (`id`),
|
||
KEY `idx_customs_container_history` (`customs_container_id`,`created_at`,`id`),
|
||
CONSTRAINT `fk_customs_container_history` FOREIGN KEY (`customs_container_id`) REFERENCES `fl_customs_container` (`id`)
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='整柜报关状态与系统触发历史';
|
||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||
DROP TABLE IF EXISTS `fl_customs_customer_document`;
|
||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||
/*!50503 SET character_set_client = utf8mb4 */;
|
||
CREATE TABLE `fl_customs_customer_document` (
|
||
`id` bigint unsigned NOT NULL,
|
||
`customs_container_id` bigint unsigned NOT NULL,
|
||
`tenant_id` bigint unsigned NOT NULL COMMENT '客户隔离键;只允许关联同客户退税票',
|
||
`file_id` bigint unsigned NOT NULL,
|
||
`file_name` varchar(255) NOT NULL,
|
||
`file_hash` char(64) NOT NULL,
|
||
`content_type` varchar(128) DEFAULT NULL,
|
||
`size_bytes` bigint unsigned NOT NULL,
|
||
`status` varchar(16) NOT NULL DEFAULT 'ACTIVE',
|
||
`uploaded_by` bigint unsigned NOT NULL,
|
||
`uploaded_at` datetime(3) NOT NULL,
|
||
`frozen_version` int unsigned DEFAULT NULL,
|
||
`frozen_at` datetime(3) DEFAULT NULL,
|
||
`deleted_by` bigint unsigned DEFAULT NULL,
|
||
`deleted_at` datetime(3) DEFAULT NULL,
|
||
`version` int unsigned NOT NULL DEFAULT '1',
|
||
`created_at` datetime(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3),
|
||
`updated_at` datetime(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3),
|
||
PRIMARY KEY (`id`),
|
||
KEY `idx_customs_customer_document_container` (`customs_container_id`,`status`,`tenant_id`),
|
||
CONSTRAINT `fk_customs_customer_document_container` FOREIGN KEY (`customs_container_id`) REFERENCES `fl_customs_container` (`id`),
|
||
CONSTRAINT `chk_customs_customer_document_freeze` CHECK ((((`frozen_at` is null) and (`frozen_version` is null)) or ((`frozen_at` is not null) and (`frozen_version` is not null)))),
|
||
CONSTRAINT `chk_customs_customer_document_status` CHECK ((`status` in (_utf8mb4'ACTIVE',_utf8mb4'DELETED')))
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='客户整份退税报送资料逻辑根';
|
||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||
DROP TABLE IF EXISTS `fl_customs_customer_document_inbound`;
|
||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||
/*!50503 SET character_set_client = utf8mb4 */;
|
||
CREATE TABLE `fl_customs_customer_document_inbound` (
|
||
`document_id` bigint unsigned NOT NULL,
|
||
`inbound_id` bigint unsigned NOT NULL,
|
||
`tenant_id` bigint unsigned NOT NULL,
|
||
`order_id` bigint unsigned NOT NULL,
|
||
`inbound_code` varchar(40) NOT NULL,
|
||
`created_at` datetime(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3),
|
||
PRIMARY KEY (`document_id`,`inbound_id`),
|
||
KEY `idx_customs_document_inbound` (`inbound_id`,`tenant_id`),
|
||
CONSTRAINT `fk_customs_document_inbound_document` FOREIGN KEY (`document_id`) REFERENCES `fl_customs_customer_document` (`id`)
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='客户报送资料与当前柜退税入仓码多对多关系';
|
||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||
DROP TABLE IF EXISTS `fl_customs_customer_document_version`;
|
||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||
/*!50503 SET character_set_client = utf8mb4 */;
|
||
CREATE TABLE `fl_customs_customer_document_version` (
|
||
`id` bigint unsigned NOT NULL,
|
||
`document_id` bigint unsigned NOT NULL,
|
||
`document_version` int unsigned NOT NULL,
|
||
`file_id` bigint unsigned NOT NULL,
|
||
`file_name` varchar(255) NOT NULL,
|
||
`file_hash` char(64) NOT NULL,
|
||
`content_type` varchar(128) DEFAULT NULL,
|
||
`size_bytes` bigint unsigned NOT NULL,
|
||
`scope_snapshot_json` json NOT NULL,
|
||
`action` varchar(24) NOT NULL COMMENT 'UPLOAD、REPLACE、SCOPE_CHANGE、DELETE',
|
||
`operator_id` bigint unsigned NOT NULL,
|
||
`created_at` datetime(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3),
|
||
PRIMARY KEY (`id`),
|
||
UNIQUE KEY `uk_customs_customer_document_version` (`document_id`,`document_version`),
|
||
CONSTRAINT `fk_customs_customer_document_version` FOREIGN KEY (`document_id`) REFERENCES `fl_customs_customer_document` (`id`),
|
||
CONSTRAINT `chk_customs_customer_document_version_action` CHECK ((`action` in (_utf8mb4'UPLOAD',_utf8mb4'REPLACE',_utf8mb4'SCOPE_CHANGE',_utf8mb4'DELETE')))
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='客户报送资料文件与覆盖范围不可变版本';
|
||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||
DROP TABLE IF EXISTS `fl_customs_document`;
|
||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||
/*!50503 SET character_set_client = utf8mb4 */;
|
||
CREATE TABLE `fl_customs_document` (
|
||
`id` bigint unsigned NOT NULL COMMENT '报关资料文件版本逻辑ID',
|
||
`customs_case_id` bigint unsigned NOT NULL COMMENT '所属报关协同单ID',
|
||
`checklist_item_code` varchar(40) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '对应冻结清单中的资料项目编码',
|
||
`file_id` bigint unsigned NOT NULL COMMENT 'File服务文件逻辑ID;跨库不建立外键',
|
||
`document_version` int unsigned NOT NULL COMMENT '同一协同单和清单项目下的文件版本序号',
|
||
`replaces_document_id` bigint unsigned DEFAULT NULL COMMENT '被本版本替换的上一资料版本ID;首个版本为空',
|
||
`file_name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '上传或引用时的文件名称快照',
|
||
`file_hash` char(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '文件内容SHA-256摘要;用于版本审计和幂等校验',
|
||
`status` varchar(16) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL DEFAULT 'UPLOADED' COMMENT '资料状态:UPLOADED待审核、APPROVED审核通过、RETURNED已退回、SUPERSEDED已被替换、FROZEN已随代理提交批次冻结',
|
||
`visibility` varchar(16) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL DEFAULT 'CUSTOMER' COMMENT '资料可见范围:PLATFORM仅平台可见、CUSTOMER客户可见',
|
||
`uploaded_by` bigint unsigned NOT NULL COMMENT '上传或引用资料的操作人ID',
|
||
`uploaded_by_type` varchar(16) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '上传主体类型:PLATFORM平台操作人、MERCHANT客户操作人',
|
||
`uploaded_at` datetime(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) COMMENT '资料上传或引用时间',
|
||
`reviewed_by` bigint unsigned DEFAULT NULL COMMENT '审核资料的平台操作人ID;未审核时为空',
|
||
`reviewed_by_name` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '审核时的平台操作人名称快照',
|
||
`reviewed_at` datetime(3) DEFAULT NULL COMMENT '资料审核时间',
|
||
`review_reason` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '审核退回原因或审核备注',
|
||
PRIMARY KEY (`id`),
|
||
UNIQUE KEY `uk_customs_document_version` (`customs_case_id`,`checklist_item_code`,`document_version`),
|
||
UNIQUE KEY `uk_customs_document_file` (`customs_case_id`,`file_id`),
|
||
KEY `idx_customs_document_case` (`customs_case_id`,`status`),
|
||
CONSTRAINT `fk_customs_document_case` FOREIGN KEY (`customs_case_id`) REFERENCES `fl_customs_case` (`id`),
|
||
CONSTRAINT `chk_customs_document_actor` CHECK ((`uploaded_by_type` in (_utf8mb4'PLATFORM',_utf8mb4'MERCHANT'))),
|
||
CONSTRAINT `chk_customs_document_status` CHECK ((`status` in (_utf8mb4'UPLOADED',_utf8mb4'APPROVED',_utf8mb4'RETURNED',_utf8mb4'SUPERSEDED',_utf8mb4'FROZEN'))),
|
||
CONSTRAINT `chk_customs_document_visibility` CHECK ((`visibility` in (_utf8mb4'PLATFORM',_utf8mb4'CUSTOMER')))
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='报关客户文件版本引用';
|
||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||
DROP TABLE IF EXISTS `fl_customs_final_document`;
|
||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||
/*!50503 SET character_set_client = utf8mb4 */;
|
||
CREATE TABLE `fl_customs_final_document` (
|
||
`id` bigint unsigned NOT NULL COMMENT '真实报关完税文件ID',
|
||
`source_document_id` bigint unsigned NOT NULL COMMENT '对应冻结客户资料ID',
|
||
`file_id` bigint unsigned NOT NULL COMMENT 'File服务文件ID',
|
||
`file_name` varchar(255) NOT NULL COMMENT '真实报关完税文件名称快照',
|
||
`file_hash` char(64) NOT NULL COMMENT '真实报关完税文件SHA-256摘要',
|
||
`content_type` varchar(128) DEFAULT NULL COMMENT '真实报关完税文件媒体类型',
|
||
`size_bytes` bigint unsigned NOT NULL COMMENT '真实报关完税文件大小(字节)',
|
||
`uploaded_by` bigint unsigned NOT NULL COMMENT '上传操作人ID',
|
||
`uploaded_by_name` varchar(64) DEFAULT NULL COMMENT '上传操作人名称快照',
|
||
`uploaded_at` datetime(3) NOT NULL COMMENT '上传时间',
|
||
`version` int unsigned NOT NULL DEFAULT '1' COMMENT '完税文件版本号',
|
||
`created_at` datetime(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) COMMENT '创建时间',
|
||
`updated_at` datetime(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3) COMMENT '更新时间',
|
||
PRIMARY KEY (`id`),
|
||
UNIQUE KEY `uk_customs_final_source` (`source_document_id`),
|
||
CONSTRAINT `fk_customs_final_source` FOREIGN KEY (`source_document_id`) REFERENCES `fl_customs_customer_document` (`id`)
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='真实报关完税文件当前版本';
|
||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||
DROP TABLE IF EXISTS `fl_customs_frozen_document_inbound`;
|
||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||
/*!50503 SET character_set_client = utf8mb4 */;
|
||
CREATE TABLE `fl_customs_frozen_document_inbound` (
|
||
`document_id` bigint unsigned NOT NULL,
|
||
`inbound_id` bigint unsigned NOT NULL,
|
||
`tenant_id` bigint unsigned NOT NULL,
|
||
`order_id` bigint unsigned NOT NULL,
|
||
`inbound_code` varchar(40) NOT NULL,
|
||
`created_at` datetime(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3),
|
||
PRIMARY KEY (`document_id`,`inbound_id`),
|
||
CONSTRAINT `fk_customs_frozen_document` FOREIGN KEY (`document_id`) REFERENCES `fl_customs_customer_document` (`id`)
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='开始报关时冻结的客户资料覆盖范围';
|
||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||
DROP TABLE IF EXISTS `fl_customs_history`;
|
||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||
/*!50503 SET character_set_client = utf8mb4 */;
|
||
CREATE TABLE `fl_customs_history` (
|
||
`id` bigint unsigned NOT NULL COMMENT '报关协同历史逻辑ID',
|
||
`customs_case_id` bigint unsigned NOT NULL COMMENT '所属报关协同单ID',
|
||
`action` varchar(40) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '业务动作编码,如CREATE、UPLOAD_DOCUMENT、REPLACE_DOCUMENT、REVIEW_DOCUMENT_APPROVE、REVIEW_DOCUMENT_RETURN、SUBMIT_AGENT_BATCH或UPLOAD_RECEIPT',
|
||
`from_status` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '动作发生前的协同状态;创建动作时为空',
|
||
`to_status` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '动作完成后的协同状态',
|
||
`resource_type` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '动作关联资源类型:CASE协同单、DOCUMENT资料、SUBMISSION_BATCH提交批次或RECEIPT回执',
|
||
`resource_id` bigint unsigned NOT NULL COMMENT '动作关联资源逻辑ID',
|
||
`note` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '动作原因、资料项目编码或业务备注快照',
|
||
`operator_id` bigint unsigned NOT NULL COMMENT '执行业务动作的操作人ID',
|
||
`operator_name` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '执行动作时的操作人名称快照',
|
||
`operator_type` varchar(16) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '操作主体类型:PLATFORM平台操作人、MERCHANT客户操作人',
|
||
`created_at` datetime(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) COMMENT '历史记录创建时间',
|
||
PRIMARY KEY (`id`),
|
||
KEY `idx_customs_history_case` (`customs_case_id`,`created_at`,`id`),
|
||
CONSTRAINT `fk_customs_history_case` FOREIGN KEY (`customs_case_id`) REFERENCES `fl_customs_case` (`id`),
|
||
CONSTRAINT `chk_customs_history_actor` CHECK ((`operator_type` in (_utf8mb4'PLATFORM',_utf8mb4'MERCHANT')))
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='报关协同稳定历史';
|
||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||
DROP TABLE IF EXISTS `fl_customs_operation`;
|
||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||
/*!50503 SET character_set_client = utf8mb4 */;
|
||
CREATE TABLE `fl_customs_operation` (
|
||
`id` bigint unsigned NOT NULL COMMENT '报关写命令幂等记录逻辑ID',
|
||
`operator_id` bigint unsigned NOT NULL COMMENT '发起写命令的操作人ID;与动作和幂等键共同限定重放范围',
|
||
`action` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '幂等业务动作编码,包含平台或客户动作及资料、审核、提交、回执类型',
|
||
`idempotency_key` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '客户端提供的幂等键',
|
||
`request_hash` char(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '规范化完整请求内容的SHA-256摘要;同键不同请求时拒绝',
|
||
`status` varchar(16) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL DEFAULT 'PROCESSING' COMMENT '幂等处理状态:PROCESSING处理中、SUCCESS处理成功',
|
||
`result_type` varchar(24) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '成功结果资源类型:CHECKLIST、CASE、DOCUMENT、BATCH或RECEIPT',
|
||
`result_id` bigint unsigned DEFAULT NULL COMMENT '成功结果资源逻辑ID;处理中为空',
|
||
`created_at` datetime(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) COMMENT '幂等记录创建时间',
|
||
`completed_at` datetime(3) DEFAULT NULL COMMENT '写命令成功完成时间;处理中为空',
|
||
PRIMARY KEY (`id`),
|
||
UNIQUE KEY `uk_customs_operation` (`operator_id`,`action`,`idempotency_key`),
|
||
CONSTRAINT `chk_customs_operation_status` CHECK ((`status` in (_utf8mb4'PROCESSING',_utf8mb4'SUCCESS')))
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='报关协同命令幂等记录';
|
||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||
DROP TABLE IF EXISTS `fl_customs_receipt`;
|
||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||
/*!50503 SET character_set_client = utf8mb4 */;
|
||
CREATE TABLE `fl_customs_receipt` (
|
||
`id` bigint unsigned NOT NULL COMMENT '报关回执文件版本逻辑ID',
|
||
`customs_case_id` bigint unsigned NOT NULL COMMENT '所属报关协同单ID',
|
||
`submission_batch_id` bigint unsigned NOT NULL COMMENT '产生本回执的报关代理提交批次ID',
|
||
`receipt_type` varchar(16) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '回执类型:RECEIVED已收件、DECLARED已申报、REJECTED已拒绝、INSPECTION查验通知、RELEASED放行回执、OTHER其他回执',
|
||
`file_id` bigint unsigned NOT NULL COMMENT 'File服务回执文件逻辑ID;跨库不建立外键',
|
||
`receipt_version` int unsigned NOT NULL COMMENT '同一提交批次和回执类型下的版本序号',
|
||
`replaces_receipt_id` bigint unsigned DEFAULT NULL COMMENT '被本版本替换的上一回执版本ID;首个版本为空',
|
||
`file_name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '上传或引用时的回执文件名称快照',
|
||
`file_hash` char(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '回执文件内容SHA-256摘要;用于版本审计和幂等校验',
|
||
`visibility` varchar(16) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL DEFAULT 'PLATFORM' COMMENT '回执可见范围:PLATFORM仅平台可见、CUSTOMER客户可查询下载',
|
||
`note` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '回执业务备注',
|
||
`uploaded_by` bigint unsigned NOT NULL COMMENT '上传或引用回执的平台操作人ID',
|
||
`uploaded_by_name` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '上传回执时的平台操作人名称快照',
|
||
`uploaded_at` datetime(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) COMMENT '回执上传或引用时间',
|
||
PRIMARY KEY (`id`),
|
||
UNIQUE KEY `uk_customs_receipt_version` (`submission_batch_id`,`receipt_type`,`receipt_version`),
|
||
UNIQUE KEY `uk_customs_receipt_file` (`submission_batch_id`,`file_id`),
|
||
KEY `idx_customs_receipt_case` (`customs_case_id`,`visibility`,`uploaded_at`),
|
||
CONSTRAINT `fk_customs_receipt_batch` FOREIGN KEY (`submission_batch_id`) REFERENCES `fl_customs_submission_batch` (`id`),
|
||
CONSTRAINT `fk_customs_receipt_case` FOREIGN KEY (`customs_case_id`) REFERENCES `fl_customs_case` (`id`),
|
||
CONSTRAINT `chk_customs_receipt_type` CHECK ((`receipt_type` in (_utf8mb4'RECEIVED',_utf8mb4'DECLARED',_utf8mb4'REJECTED',_utf8mb4'INSPECTION',_utf8mb4'RELEASED',_utf8mb4'OTHER'))),
|
||
CONSTRAINT `chk_customs_receipt_visibility` CHECK ((`visibility` in (_utf8mb4'PLATFORM',_utf8mb4'CUSTOMER')))
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='报关代理回执版本与客户可见范围';
|
||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||
DROP TABLE IF EXISTS `fl_customs_submission_batch`;
|
||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||
/*!50503 SET character_set_client = utf8mb4 */;
|
||
CREATE TABLE `fl_customs_submission_batch` (
|
||
`id` bigint unsigned NOT NULL COMMENT '报关代理提交批次逻辑ID',
|
||
`customs_case_id` bigint unsigned NOT NULL COMMENT '所属报关协同单ID',
|
||
`batch_no` varchar(40) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '全局唯一代理提交批次号',
|
||
`batch_version` int unsigned NOT NULL COMMENT '同一报关协同单内的提交批次版本序号',
|
||
`customs_agent_id` bigint unsigned DEFAULT NULL,
|
||
`customs_agent_name` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '本批次接收报关资料的报关代理名称快照',
|
||
`external_reference` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '报关代理或外部系统返回的业务参考号',
|
||
`file_snapshot_json` json NOT NULL COMMENT '提交时冻结的已审核资料数组;元素包含documentId、fileId、itemCode、documentVersion和fileHash',
|
||
`status` varchar(16) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL DEFAULT 'SUBMITTED' COMMENT '代理提交状态:SUBMITTED已提交、ACKNOWLEDGED代理已确认、REJECTED代理已拒绝、COMPLETED代理处理完成',
|
||
`note` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '提交报关代理时的平台备注',
|
||
`submitted_by` bigint unsigned NOT NULL COMMENT '提交报关代理的平台操作人ID',
|
||
`submitted_by_name` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '提交时的平台操作人名称快照',
|
||
`submitted_at` datetime(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) COMMENT '提交报关代理时间',
|
||
PRIMARY KEY (`id`),
|
||
UNIQUE KEY `uk_customs_batch_no` (`batch_no`),
|
||
UNIQUE KEY `uk_customs_batch_version` (`customs_case_id`,`batch_version`),
|
||
CONSTRAINT `fk_customs_batch_case` FOREIGN KEY (`customs_case_id`) REFERENCES `fl_customs_case` (`id`),
|
||
CONSTRAINT `chk_customs_batch_status` CHECK ((`status` in (_utf8mb4'SUBMITTED',_utf8mb4'ACKNOWLEDGED',_utf8mb4'REJECTED',_utf8mb4'COMPLETED')))
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='报关代理提交批次及冻结文件版本';
|
||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||
DROP TABLE IF EXISTS `fl_customs_supplement_request`;
|
||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||
/*!50503 SET character_set_client = utf8mb4 */;
|
||
CREATE TABLE `fl_customs_supplement_request` (
|
||
`id` bigint unsigned NOT NULL COMMENT '报关补件请求逻辑ID',
|
||
`customs_case_id` bigint unsigned NOT NULL COMMENT '所属报关协同单ID',
|
||
`source_document_id` bigint unsigned NOT NULL COMMENT '触发本次补件的被退回资料版本ID',
|
||
`resolved_document_id` bigint unsigned DEFAULT NULL COMMENT '解决本次补件的新资料版本ID;未解决时为空',
|
||
`checklist_item_code` varchar(40) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '需要补充的报关资料项目编码',
|
||
`reason` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '平台审核人员填写的补件原因',
|
||
`due_at` datetime(3) DEFAULT NULL COMMENT '期望完成补件时间;未设置时为空',
|
||
`status` varchar(16) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL DEFAULT 'OPEN' COMMENT '补件状态:OPEN待补件、RESOLVED已由新资料解决、CANCELLED已取消',
|
||
`requested_by` bigint unsigned NOT NULL COMMENT '发起补件的平台操作人ID',
|
||
`requested_by_name` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '发起补件时的平台操作人名称快照',
|
||
`requested_at` datetime(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) COMMENT '补件请求发起时间',
|
||
`resolved_by` bigint unsigned DEFAULT NULL COMMENT '提交解决资料的操作人ID;未解决时为空',
|
||
`resolved_at` datetime(3) DEFAULT NULL COMMENT '补件请求解决时间',
|
||
PRIMARY KEY (`id`),
|
||
KEY `idx_customs_supplement_case` (`customs_case_id`,`status`,`due_at`),
|
||
CONSTRAINT `fk_customs_supplement_case` FOREIGN KEY (`customs_case_id`) REFERENCES `fl_customs_case` (`id`),
|
||
CONSTRAINT `chk_customs_supplement_status` CHECK ((`status` in (_utf8mb4'OPEN',_utf8mb4'RESOLVED',_utf8mb4'CANCELLED')))
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='报关补件请求';
|
||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||
DROP TABLE IF EXISTS `fl_direct_delivery_unloading`;
|
||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||
/*!50503 SET character_set_client = utf8mb4 */;
|
||
CREATE TABLE `fl_direct_delivery_unloading` (
|
||
`container_booking_id` bigint unsigned NOT NULL,
|
||
`inbound_id` bigint unsigned NOT NULL COMMENT 'Immutable physically loaded inbound source',
|
||
`actual_at` datetime(3) NOT NULL COMMENT 'Actual destination local time',
|
||
`timezone` varchar(64) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT 'Explicit destination IANA timezone',
|
||
`received_by` varchar(128) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT 'Actual recipient',
|
||
`evidence_no` varchar(128) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT 'Actual delivery receipt reference',
|
||
`remark` varchar(1000) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
|
||
`version` int NOT NULL DEFAULT '1',
|
||
`idempotency_key` varchar(128) COLLATE utf8mb4_unicode_ci NOT NULL,
|
||
`request_hash` char(64) COLLATE utf8mb4_unicode_ci NOT NULL,
|
||
`created_by` bigint unsigned NOT NULL,
|
||
`created_by_name` varchar(64) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
|
||
`created_at` datetime(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3),
|
||
PRIMARY KEY (`container_booking_id`,`inbound_id`),
|
||
UNIQUE KEY `uk_direct_unloading_command` (`container_booking_id`,`idempotency_key`),
|
||
CONSTRAINT `fk_direct_unloading_container` FOREIGN KEY (`container_booking_id`) REFERENCES `fl_container_booking` (`id`)
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='直送目的仓真实卸货凭据';
|
||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||
DROP TABLE IF EXISTS `fl_document_sequence`;
|
||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||
/*!50503 SET character_set_client = utf8mb4 */;
|
||
CREATE TABLE `fl_document_sequence` (
|
||
`sequence_key` varchar(32) NOT NULL COMMENT '单据类型与北京时间日期组合键,例如CAB:20260818',
|
||
`current_value` int unsigned NOT NULL COMMENT '该类型当日已分配的最大序号',
|
||
PRIMARY KEY (`sequence_key`),
|
||
CONSTRAINT `chk_fl_document_sequence_value` CHECK ((`current_value` > 0))
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='头程履约业务单号日序列;生成YYMMDD加四位当日序号';
|
||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||
DROP TABLE IF EXISTS `fl_dropship_pallet`;
|
||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||
/*!50503 SET character_set_client = utf8mb4 */;
|
||
CREATE TABLE `fl_dropship_pallet` (
|
||
`id` bigint unsigned NOT NULL COMMENT '合托托盘ID',
|
||
`task_id` bigint unsigned NOT NULL COMMENT '所属合托任务ID',
|
||
`tenant_id` bigint unsigned NOT NULL COMMENT '客户隔离键',
|
||
`inbound_id` bigint unsigned NOT NULL COMMENT '一件代发入仓单ID',
|
||
`warehouse_id` bigint unsigned NOT NULL COMMENT '作业仓库ID',
|
||
`pallet_no` varchar(32) NOT NULL COMMENT '现场扫描的系统DP托盘码',
|
||
`pallet_status` varchar(16) NOT NULL COMMENT '托盘状态:OPEN合托中、COMPLETED已封托',
|
||
`open_operation_id` varchar(128) NOT NULL COMMENT '创建托盘幂等操作ID',
|
||
`seal_operation_id` varchar(128) DEFAULT NULL COMMENT '封托幂等操作ID',
|
||
`created_by` bigint unsigned NOT NULL COMMENT '托盘创建人ID',
|
||
`created_by_name` varchar(64) DEFAULT NULL COMMENT '托盘创建人姓名快照',
|
||
`completed_by` bigint unsigned DEFAULT NULL COMMENT '封托操作人ID',
|
||
`completed_by_name` varchar(64) DEFAULT NULL COMMENT '封托操作人姓名快照',
|
||
`completed_at` datetime(3) DEFAULT NULL COMMENT '封托完成时间',
|
||
`version` int NOT NULL DEFAULT '1' COMMENT '托盘乐观锁版本',
|
||
`created_at` datetime(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) COMMENT '托盘创建时间',
|
||
`updated_at` datetime(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3) COMMENT '托盘更新时间',
|
||
PRIMARY KEY (`id`),
|
||
UNIQUE KEY `uk_dropship_pallet_open_op` (`open_operation_id`),
|
||
UNIQUE KEY `uk_dropship_pallet_no` (`pallet_no`),
|
||
UNIQUE KEY `uk_dropship_pallet_seal_op` (`seal_operation_id`),
|
||
KEY `idx_dropship_pallet_inbound` (`tenant_id`,`inbound_id`,`pallet_status`),
|
||
KEY `fk_dropship_pallet_task` (`task_id`),
|
||
CONSTRAINT `fk_dropship_pallet_task` FOREIGN KEY (`task_id`) REFERENCES `fl_dropship_pallet_task` (`id`),
|
||
CONSTRAINT `chk_dropship_pallet_status` CHECK ((`pallet_status` in (_utf8mb4'OPEN',_utf8mb4'SEALED')))
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='一件代发合托形成的可打印托盘';
|
||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||
DROP TABLE IF EXISTS `fl_dropship_pallet_carton`;
|
||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||
/*!50503 SET character_set_client = utf8mb4 */;
|
||
CREATE TABLE `fl_dropship_pallet_carton` (
|
||
`id` bigint unsigned NOT NULL COMMENT '托盘箱明细ID',
|
||
`task_id` bigint unsigned NOT NULL COMMENT '所属合托任务ID',
|
||
`pallet_id` bigint unsigned DEFAULT NULL COMMENT '所属组托托盘ID;已清点待绑托时为空',
|
||
`tenant_id` bigint unsigned NOT NULL COMMENT '客户隔离键',
|
||
`inbound_id` bigint unsigned NOT NULL COMMENT '一件代发入仓单ID',
|
||
`inbound_detail_id` bigint unsigned NOT NULL COMMENT '入仓货物明细ID',
|
||
`carton_label_id` bigint unsigned NOT NULL COMMENT '稳定箱唛记录ID',
|
||
`sku_code` varchar(128) NOT NULL COMMENT '箱唛冻结SKU编码',
|
||
`cargo_name` varchar(255) DEFAULT NULL COMMENT '货物名称快照',
|
||
`box_code` varchar(80) NOT NULL COMMENT '稳定箱码',
|
||
`expected_sku_quantity` int unsigned NOT NULL COMMENT '箱唛冻结的应收SKU数量',
|
||
`actual_sku_quantity` int unsigned NOT NULL COMMENT 'PDA确认的实收SKU数量',
|
||
`discrepancy_status` varchar(24) NOT NULL COMMENT '差异状态:MATCH或ACCEPTED_VARIANCE',
|
||
`discrepancy_remark` varchar(500) DEFAULT NULL COMMENT '差异接受说明',
|
||
`count_operation_id` varchar(128) NOT NULL COMMENT '逐箱清点幂等操作ID',
|
||
`bind_operation_id` varchar(128) DEFAULT NULL COMMENT '批量绑托幂等操作ID',
|
||
`last_operation_id` varchar(128) NOT NULL COMMENT '最后一次绑托或换托操作幂等号',
|
||
`counted_by` bigint unsigned NOT NULL COMMENT '清点操作人ID',
|
||
`counted_by_name` varchar(64) DEFAULT NULL COMMENT '清点操作人姓名快照',
|
||
`counted_at` datetime(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) COMMENT '清点时间',
|
||
`bound_by` bigint unsigned DEFAULT NULL COMMENT '上托操作人ID',
|
||
`bound_by_name` varchar(64) DEFAULT NULL COMMENT '上托操作人姓名快照',
|
||
`bound_at` datetime(3) DEFAULT NULL COMMENT '上托时间',
|
||
PRIMARY KEY (`id`),
|
||
UNIQUE KEY `uk_dropship_carton_task_label` (`task_id`,`carton_label_id`),
|
||
UNIQUE KEY `uk_dropship_carton_count_operation` (`count_operation_id`),
|
||
KEY `idx_dropship_carton_pallet_sku` (`pallet_id`,`sku_code`,`id`),
|
||
KEY `idx_dropship_carton_inbound` (`tenant_id`,`inbound_id`,`pallet_id`),
|
||
KEY `idx_dropship_carton_operation` (`count_operation_id`),
|
||
KEY `fk_dropship_carton_label` (`carton_label_id`),
|
||
KEY `idx_dropship_carton_bind_operation` (`task_id`,`bind_operation_id`),
|
||
CONSTRAINT `fk_dropship_carton_label` FOREIGN KEY (`carton_label_id`) REFERENCES `fl_inbound_carton_label` (`id`),
|
||
CONSTRAINT `fk_dropship_carton_pallet` FOREIGN KEY (`pallet_id`) REFERENCES `fl_dropship_pallet` (`id`),
|
||
CONSTRAINT `fk_dropship_carton_task` FOREIGN KEY (`task_id`) REFERENCES `fl_dropship_pallet_task` (`id`)
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='一件代发托盘内逐箱SKU和入仓单明细';
|
||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||
DROP TABLE IF EXISTS `fl_dropship_pallet_carton_sku`;
|
||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||
/*!50503 SET character_set_client = utf8mb4 */;
|
||
CREATE TABLE `fl_dropship_pallet_carton_sku` (
|
||
`id` bigint unsigned NOT NULL COMMENT '清点箱SKU明细ID',
|
||
`carton_id` bigint unsigned NOT NULL COMMENT '清点物理箱ID',
|
||
`inbound_detail_id` bigint unsigned NOT NULL COMMENT '入仓货物明细ID',
|
||
`sku_code` varchar(128) NOT NULL COMMENT 'SKU编码快照',
|
||
`cargo_name` varchar(255) DEFAULT NULL COMMENT '货物名称快照',
|
||
`expected_quantity` int unsigned NOT NULL COMMENT '应收数量',
|
||
`actual_quantity` int unsigned NOT NULL COMMENT '实收数量',
|
||
`discrepancy_status` varchar(24) NOT NULL COMMENT 'MATCH或ACCEPTED_VARIANCE',
|
||
`discrepancy_remark` varchar(500) DEFAULT NULL COMMENT '差异处理说明',
|
||
`line_no` int unsigned NOT NULL COMMENT '箱内SKU顺序',
|
||
PRIMARY KEY (`id`),
|
||
UNIQUE KEY `uk_dropship_carton_sku_detail` (`carton_id`,`inbound_detail_id`),
|
||
KEY `idx_dropship_carton_sku_code` (`sku_code`,`carton_id`),
|
||
CONSTRAINT `fk_dropship_carton_sku_carton` FOREIGN KEY (`carton_id`) REFERENCES `fl_dropship_pallet_carton` (`id`)
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='一件代发物理箱内逐SKU清点事实';
|
||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||
DROP TABLE IF EXISTS `fl_dropship_pallet_task`;
|
||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||
/*!50503 SET character_set_client = utf8mb4 */;
|
||
CREATE TABLE `fl_dropship_pallet_task` (
|
||
`id` bigint unsigned NOT NULL COMMENT '合托任务ID',
|
||
`tenant_id` bigint unsigned NOT NULL COMMENT '客户隔离键',
|
||
`inbound_id` bigint unsigned NOT NULL COMMENT '一件代发入仓单ID',
|
||
`warehouse_id` bigint unsigned NOT NULL COMMENT '作业仓库ID',
|
||
`task_status` varchar(24) NOT NULL COMMENT '任务状态:PENDING待领取、CLAIMED已领取、COMPLETED已完成',
|
||
`total_cartons` int unsigned NOT NULL COMMENT '测量确认总箱数',
|
||
`counted_cartons` int unsigned NOT NULL DEFAULT '0' COMMENT '已逐箱确认实收数量的箱数',
|
||
`allocated_cartons` int unsigned NOT NULL DEFAULT '0' COMMENT '已上托箱数',
|
||
`discrepancy_cartons` int unsigned NOT NULL DEFAULT '0' COMMENT '已确认差异箱数',
|
||
`assignee_id` bigint unsigned DEFAULT NULL COMMENT '任务领取人ID',
|
||
`assignee_name` varchar(64) DEFAULT NULL COMMENT '任务领取人姓名快照',
|
||
`claimed_at` datetime(3) DEFAULT NULL COMMENT '任务领取时间',
|
||
`completed_at` datetime(3) DEFAULT NULL COMMENT '任务完成时间',
|
||
`version` int NOT NULL DEFAULT '1' COMMENT '任务乐观锁版本',
|
||
`created_at` datetime(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) COMMENT '任务创建时间',
|
||
`updated_at` datetime(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3) COMMENT '任务更新时间',
|
||
PRIMARY KEY (`id`),
|
||
UNIQUE KEY `uk_dropship_task_inbound` (`tenant_id`,`inbound_id`),
|
||
KEY `idx_dropship_task_operator` (`task_status`,`assignee_id`,`warehouse_id`,`created_at`),
|
||
KEY `fk_dropship_task_inbound` (`inbound_id`),
|
||
CONSTRAINT `fk_dropship_task_inbound` FOREIGN KEY (`inbound_id`) REFERENCES `fl_inbound_order` (`id`),
|
||
CONSTRAINT `chk_dropship_task_cartons` CHECK (((`allocated_cartons` <= `counted_cartons`) and (`counted_cartons` <= `total_cartons`))),
|
||
CONSTRAINT `chk_dropship_task_status` CHECK ((`task_status` in (_utf8mb4'PENDING',_utf8mb4'CLAIMED',_utf8mb4'COMPLETED')))
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='一件代发测量后PDA合托任务';
|
||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||
DROP TABLE IF EXISTS `fl_fee_item`;
|
||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||
/*!50503 SET character_set_client = utf8mb4 */;
|
||
CREATE TABLE `fl_fee_item` (
|
||
`id` bigint unsigned NOT NULL COMMENT '费用项目ID',
|
||
`tenant_id` bigint unsigned NOT NULL COMMENT '平台公共费用项目作用域,固定为0;物理字段名沿用 tenant_id',
|
||
`category` varchar(64) NOT NULL COMMENT '费用分类',
|
||
`trade_scope` varchar(20) NOT NULL COMMENT 'DOMESTIC国内、INTERNATIONAL国际',
|
||
`fee_code` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '稳定费用编码;系统费用使用固定编码',
|
||
`fee_type_name` varchar(128) NOT NULL COMMENT '费用类型名称',
|
||
`pickup_payable` tinyint(1) NOT NULL DEFAULT '0' COMMENT '提柜应付是否参与',
|
||
`pickup_receivable` tinyint(1) NOT NULL DEFAULT '0' COMMENT '提柜应收是否参与',
|
||
`warehouse_payable` tinyint(1) NOT NULL DEFAULT '0' COMMENT '仓储应付是否参与',
|
||
`warehouse_receivable` tinyint(1) NOT NULL DEFAULT '0' COMMENT '仓储应收是否参与',
|
||
`allocation_fee` tinyint(1) NOT NULL DEFAULT '0' COMMENT '平摊费用是否参与',
|
||
`description` varchar(500) DEFAULT NULL COMMENT '说明',
|
||
`status` varchar(16) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL DEFAULT 'ACTIVE' COMMENT '状态:ACTIVE启用、DISABLED停用',
|
||
`created_by` bigint DEFAULT NULL COMMENT '创建人ID;系统初始化时可为空',
|
||
`created_by_name` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '创建人名称快照',
|
||
`created_at` datetime(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) COMMENT '创建时间',
|
||
`updated_by` bigint DEFAULT NULL COMMENT '最后修改人ID;系统初始化时可为空',
|
||
`updated_by_name` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '最后修改人名称快照',
|
||
`updated_at` datetime(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3) COMMENT '最后更新时间',
|
||
`deleted` tinyint(1) NOT NULL DEFAULT '0' COMMENT '逻辑删除标记:0未删除、1已删除',
|
||
`version` int NOT NULL DEFAULT '0' COMMENT '乐观锁版本号',
|
||
`supplier_category` varchar(16) DEFAULT NULL COMMENT 'PAYABLE供应商类别约束;为空表示任意启用供应商',
|
||
PRIMARY KEY (`id`),
|
||
UNIQUE KEY `uk_fee_item_code` (`fee_code`),
|
||
KEY `idx_fee_item_query` (`tenant_id`,`trade_scope`,`category`,`status`,`deleted`),
|
||
KEY `idx_fee_item_name` (`tenant_id`,`fee_type_name`,`deleted`)
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='平台公共费用项目主数据';
|
||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||
DROP TABLE IF EXISTS `fl_finance_fee_source_command`;
|
||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||
/*!50503 SET character_set_client = utf8mb4 */;
|
||
CREATE TABLE `fl_finance_fee_source_command` (
|
||
`id` bigint unsigned NOT NULL COMMENT 'Finance费用来源命令ID',
|
||
`customer_id` bigint unsigned NOT NULL COMMENT '客户隔离键,由Firstleg费用事实再次校验',
|
||
`operator_id` bigint unsigned NOT NULL COMMENT 'Finance操作人ID',
|
||
`operator_name` varchar(64) NOT NULL COMMENT 'Finance操作人名称快照',
|
||
`action` varchar(24) NOT NULL COMMENT '命令动作;当前仅VOID',
|
||
`idempotency_key` varchar(128) NOT NULL COMMENT 'Finance透传的幂等键',
|
||
`request_hash` char(64) NOT NULL COMMENT '规范化请求SHA-256',
|
||
`source_type` varchar(24) NOT NULL COMMENT 'INBOUND_FEE或CONTAINER_FEE',
|
||
`source_fee_id` bigint unsigned NOT NULL COMMENT '稳定费用来源ID',
|
||
`source_version` int unsigned NOT NULL COMMENT '精确费用来源版本',
|
||
`inbound_id` bigint unsigned DEFAULT NULL COMMENT '入库费用所属入库单ID',
|
||
`container_id` bigint unsigned DEFAULT NULL COMMENT '柜次费用所属柜次ID',
|
||
`reason` varchar(500) NOT NULL COMMENT '操作原因',
|
||
`status` varchar(16) NOT NULL COMMENT 'PROCESSING或SUCCEEDED',
|
||
`result_status` varchar(16) DEFAULT NULL COMMENT '成功业务结果;当前为VOIDED',
|
||
`created_at` datetime(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) COMMENT '命令创建时间',
|
||
`completed_at` datetime(3) DEFAULT NULL COMMENT '命令成功完成时间',
|
||
PRIMARY KEY (`id`),
|
||
UNIQUE KEY `uk_finance_fee_command_idem` (`customer_id`,`operator_id`,`action`,`idempotency_key`),
|
||
KEY `idx_finance_fee_command_source` (`source_type`,`source_fee_id`,`source_version`,`created_at`),
|
||
CONSTRAINT `chk_finance_fee_command_action` CHECK ((`action` = _utf8mb4'VOID')),
|
||
CONSTRAINT `chk_finance_fee_command_source` CHECK ((`source_type` in (_utf8mb4'INBOUND_FEE',_utf8mb4'CONTAINER_FEE'))),
|
||
CONSTRAINT `chk_finance_fee_command_status` CHECK ((`status` in (_utf8mb4'PROCESSING',_utf8mb4'SUCCEEDED')))
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='Finance发起、Firstleg执行业务费用命令的幂等审计记录';
|
||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||
DROP TABLE IF EXISTS `fl_fulfillment_task`;
|
||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||
/*!50503 SET character_set_client = utf8mb4 */;
|
||
CREATE TABLE `fl_fulfillment_task` (
|
||
`id` bigint unsigned NOT NULL COMMENT '履约任务ID(雪花ID)',
|
||
`tenant_id` bigint unsigned NOT NULL COMMENT '客户ID和数据隔离键',
|
||
`order_id` bigint unsigned NOT NULL COMMENT '订单服务中的订单逻辑ID,不建立跨库外键',
|
||
`order_no` varchar(32) NOT NULL COMMENT '订单号快照',
|
||
`order_snapshot_json` json NOT NULL COMMENT '创建履约任务时所需的订单业务快照',
|
||
`status` varchar(24) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL DEFAULT 'PENDING_ASSIGNMENT' COMMENT '履约状态:PENDING_ASSIGNMENT待指派、ASSIGNED已指派、PROCESSING处理中、COMPLETED已完成、CANCELLED已取消',
|
||
`assignee_id` bigint unsigned DEFAULT NULL COMMENT '当前负责人ID',
|
||
`assignee_name` varchar(64) DEFAULT NULL COMMENT '当前负责人名称快照',
|
||
`assigned_at` datetime(3) DEFAULT NULL COMMENT '最近指派时间',
|
||
`started_at` datetime(3) DEFAULT NULL COMMENT '开始履约时间',
|
||
`completed_at` datetime(3) DEFAULT NULL COMMENT '履约完成时间',
|
||
`created_by` bigint unsigned NOT NULL COMMENT '创建人或系统主体ID',
|
||
`created_at` datetime(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) COMMENT '创建时间',
|
||
`updated_by` bigint unsigned NOT NULL COMMENT '最后修改人ID',
|
||
`updated_at` datetime(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3) COMMENT '更新时间',
|
||
`deleted` tinyint(1) NOT NULL DEFAULT '0' COMMENT '逻辑删除标记',
|
||
`version` int NOT NULL DEFAULT '0' COMMENT '乐观锁版本号',
|
||
PRIMARY KEY (`id`),
|
||
UNIQUE KEY `uk_task_tenant_order` (`tenant_id`,`order_id`),
|
||
KEY `idx_task_assignee_status` (`tenant_id`,`assignee_id`,`status`,`created_at`),
|
||
KEY `idx_task_tenant_created` (`tenant_id`,`created_at`)
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='头程履约任务表:接收订单事件后形成独立履约任务,管理指派、执行和完成状态';
|
||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||
DROP TABLE IF EXISTS `fl_inbound_carton_label`;
|
||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||
/*!50503 SET character_set_client = utf8mb4 */;
|
||
CREATE TABLE `fl_inbound_carton_label` (
|
||
`id` bigint unsigned NOT NULL COMMENT '实际箱唛头映射ID(雪花ID)',
|
||
`tenant_id` bigint unsigned NOT NULL COMMENT '客户ID和数据隔离键',
|
||
`inbound_id` bigint unsigned NOT NULL COMMENT '入库单ID',
|
||
`order_id` bigint unsigned NOT NULL COMMENT '订单服务订单ID快照',
|
||
`inbound_detail_id` bigint unsigned NOT NULL COMMENT '订单货物明细ID,不建立跨库外键',
|
||
`cargo_item_no` int unsigned NOT NULL COMMENT '订单货物明细序号快照',
|
||
`cargo_name` varchar(255) DEFAULT NULL COMMENT '货物名称快照',
|
||
`sku_code` varchar(128) DEFAULT NULL COMMENT '箱唛绑定的SKU快照;二维码内容不变',
|
||
`units_per_carton` int unsigned DEFAULT NULL COMMENT '每箱SKU数量快照;一件代发必须为正数',
|
||
`detail_package_count` int unsigned NOT NULL COMMENT '该订单货物明细箱数快照',
|
||
`inbound_code` varchar(40) NOT NULL COMMENT '入仓码快照',
|
||
`box_code` varchar(80) NOT NULL COMMENT '固定二维码内容:入仓码#总箱数-箱下标',
|
||
`total_carton_count` int unsigned NOT NULL COMMENT '首次分配时整单总箱数',
|
||
`carton_index` int unsigned NOT NULL COMMENT '整单从1开始的稳定箱下标',
|
||
`label_version` int unsigned NOT NULL DEFAULT '1' COMMENT '箱唛批次版本,从1递增',
|
||
`batch_status` varchar(16) NOT NULL DEFAULT 'ACTIVE' COMMENT '批次状态:ACTIVE有效、VOID已作废',
|
||
`cargo_fingerprint` char(64) DEFAULT NULL COMMENT '影响标签字段的SHA-256指纹',
|
||
`voided_at` datetime(3) DEFAULT NULL COMMENT '批次作废时间',
|
||
`box_specification` varchar(255) NOT NULL COMMENT '订单箱规或货物明细描述快照',
|
||
`length_cm` decimal(12,3) DEFAULT NULL COMMENT '下单箱规长度cm快照',
|
||
`width_cm` decimal(12,3) DEFAULT NULL COMMENT '下单箱规宽度cm快照',
|
||
`height_cm` decimal(12,3) DEFAULT NULL COMMENT '下单箱规高度cm快照',
|
||
`created_at` datetime(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) COMMENT '首次分配时间',
|
||
PRIMARY KEY (`id`),
|
||
UNIQUE KEY `uk_carton_label_box_code` (`tenant_id`,`box_code`),
|
||
UNIQUE KEY `uk_carton_label_index` (`tenant_id`,`inbound_id`,`label_version`,`carton_index`),
|
||
KEY `idx_carton_label_detail` (`tenant_id`,`inbound_id`,`inbound_detail_id`),
|
||
KEY `fk_carton_label_inbound` (`inbound_id`),
|
||
KEY `idx_carton_label_active` (`tenant_id`,`inbound_id`,`batch_status`,`label_version`),
|
||
CONSTRAINT `fk_carton_label_inbound` FOREIGN KEY (`inbound_id`) REFERENCES `fl_inbound_order` (`id`)
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='首次打印前冻结的实际箱号与订单货物明细映射';
|
||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||
DROP TABLE IF EXISTS `fl_inbound_carton_label_sku`;
|
||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||
/*!50503 SET character_set_client = utf8mb4 */;
|
||
CREATE TABLE `fl_inbound_carton_label_sku` (
|
||
`id` bigint unsigned NOT NULL COMMENT '箱唛SKU快照ID',
|
||
`tenant_id` bigint unsigned NOT NULL COMMENT '客户ID和数据隔离键',
|
||
`inbound_id` bigint unsigned NOT NULL COMMENT '入库单ID',
|
||
`carton_label_id` bigint unsigned NOT NULL COMMENT '物理箱唛ID',
|
||
`inbound_detail_id` bigint unsigned NOT NULL COMMENT '订单货物明细ID',
|
||
`sku_code` varchar(128) NOT NULL COMMENT 'SKU编码快照',
|
||
`cargo_name` varchar(255) DEFAULT NULL COMMENT '货物名称快照',
|
||
`expected_quantity` int unsigned NOT NULL COMMENT '该物理箱内应收SKU数量',
|
||
`line_no` int unsigned NOT NULL COMMENT '箱内SKU展示顺序',
|
||
`created_at` datetime(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) COMMENT '创建时间',
|
||
PRIMARY KEY (`id`),
|
||
UNIQUE KEY `uk_carton_label_sku_detail` (`carton_label_id`,`inbound_detail_id`),
|
||
KEY `idx_carton_label_sku_code` (`tenant_id`,`inbound_id`,`sku_code`),
|
||
CONSTRAINT `fk_carton_label_sku_label` FOREIGN KEY (`carton_label_id`) REFERENCES `fl_inbound_carton_label` (`id`)
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='物理箱唛内的多SKU冻结快照';
|
||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||
DROP TABLE IF EXISTS `fl_inbound_destination_snapshot`;
|
||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||
/*!50503 SET character_set_client = utf8mb4 */;
|
||
CREATE TABLE `fl_inbound_destination_snapshot` (
|
||
`id` bigint unsigned NOT NULL COMMENT '目的仓地址快照ID',
|
||
`tenant_id` bigint unsigned NOT NULL COMMENT '客户ID和数据隔离键',
|
||
`inbound_id` bigint unsigned NOT NULL COMMENT '入库单ID',
|
||
`destination_type` varchar(24) DEFAULT NULL COMMENT '目的仓类型',
|
||
`destination_code` varchar(32) DEFAULT NULL COMMENT '目的仓编码',
|
||
`destination_name` varchar(128) DEFAULT NULL COMMENT '目的仓名称',
|
||
`country_code` char(2) DEFAULT NULL COMMENT '国家二字码',
|
||
`state_province` varchar(100) DEFAULT NULL COMMENT '省或州',
|
||
`city` varchar(100) DEFAULT NULL COMMENT '城市',
|
||
`address_line` varchar(512) DEFAULT NULL COMMENT '详细地址',
|
||
`postal_code` varchar(20) DEFAULT NULL COMMENT '邮编',
|
||
`contact_name` varchar(64) DEFAULT NULL COMMENT '联系人',
|
||
`contact_phone` varchar(32) DEFAULT NULL COMMENT '联系人电话',
|
||
`created_at` datetime(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) COMMENT '创建时间',
|
||
PRIMARY KEY (`id`),
|
||
UNIQUE KEY `uk_destination_inbound` (`tenant_id`,`inbound_id`),
|
||
KEY `fk_destination_inbound` (`inbound_id`),
|
||
CONSTRAINT `fk_destination_inbound` FOREIGN KEY (`inbound_id`) REFERENCES `fl_inbound_order` (`id`)
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='入库单目的仓地址和联系人快照';
|
||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||
DROP TABLE IF EXISTS `fl_inbound_fee`;
|
||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||
/*!50503 SET character_set_client = utf8mb4 */;
|
||
CREATE TABLE `fl_inbound_fee` (
|
||
`id` bigint unsigned NOT NULL COMMENT '入库费用ID',
|
||
`tenant_id` bigint unsigned NOT NULL COMMENT '客户ID和数据隔离键',
|
||
`inbound_id` bigint unsigned NOT NULL COMMENT '入库单ID',
|
||
`measurement_id` bigint unsigned DEFAULT NULL COMMENT '璐圭敤缁戝畾鐨勬祴閲忔壒娆D蹇収',
|
||
`measurement_source` varchar(32) DEFAULT NULL COMMENT '璁¤垂灏哄鏉ユ簮蹇収锛歄UTER涓哄绠辫鏁版嵁',
|
||
`fee_no` varchar(40) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '客户内唯一费用单号',
|
||
`fee_version` int unsigned NOT NULL DEFAULT '1' COMMENT '费用快照版本',
|
||
`charge_rule_id` bigint unsigned DEFAULT NULL COMMENT '历史客户计费规则ID;渠道价格可为空',
|
||
`charge_rule_version` int unsigned DEFAULT NULL COMMENT '历史客户规则版本快照',
|
||
`carrier_rate_id` bigint unsigned DEFAULT NULL COMMENT '船司FBA价格ID;人工报价为空',
|
||
`carrier_rate_version` int unsigned DEFAULT NULL COMMENT '船司价格版本快照;人工报价为空',
|
||
`price_book_version_id` bigint unsigned DEFAULT NULL COMMENT '整表价格版本ID快照',
|
||
`rule_code` varchar(50) DEFAULT NULL COMMENT '历史客户规则编码快照',
|
||
`customer_id` bigint unsigned DEFAULT NULL COMMENT '可选业务客户快照;平台公共渠道计费不依赖该字段',
|
||
`customer_name` varchar(128) NOT NULL COMMENT '客户名称快照',
|
||
`business_type` varchar(32) NOT NULL COMMENT '业务类型快照',
|
||
`tax_mode` varchar(24) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '订单买单或退税模式快照',
|
||
`pricing_tax_mode` varchar(16) DEFAULT NULL COMMENT '报价包税维度快照',
|
||
`rounding_scale` tinyint unsigned DEFAULT NULL COMMENT '历史客户规则计费量保留位数快照',
|
||
`rounding_mode` varchar(24) DEFAULT NULL COMMENT '历史客户规则舍入方式快照',
|
||
`rule_effective_from` datetime(3) DEFAULT NULL COMMENT '历史客户规则生效开始快照',
|
||
`rule_effective_to` datetime(3) DEFAULT NULL COMMENT '客户规则生效结束快照',
|
||
`rate_code` varchar(50) NOT NULL COMMENT '船司价格编码快照',
|
||
`origin_warehouse_id` bigint unsigned NOT NULL COMMENT '起运仓ID快照',
|
||
`origin_warehouse_name` varchar(128) NOT NULL COMMENT '起运仓名称快照',
|
||
`channel_code` varchar(64) NOT NULL COMMENT '渠道编码快照',
|
||
`carrier_id` bigint unsigned DEFAULT NULL COMMENT '历史承运商ID;渠道价格可为空',
|
||
`carrier_name` varchar(128) DEFAULT NULL COMMENT '历史承运商名称;渠道价格可为空',
|
||
`destination_type` varchar(16) DEFAULT NULL COMMENT '目的地类型快照:FBA或OVERSEAS',
|
||
`destination_warehouse_id` bigint unsigned DEFAULT NULL COMMENT '海外仓或FBA目的仓ID快照',
|
||
`destination_name` varchar(128) DEFAULT NULL COMMENT '目的仓名称快照',
|
||
`destination_code` varchar(32) DEFAULT NULL COMMENT 'FBA仓编码快照;海外仓可为空',
|
||
`rate_effective_from` datetime(3) DEFAULT NULL COMMENT '价格生效开始快照;人工报价为空',
|
||
`rate_effective_to` datetime(3) DEFAULT NULL COMMENT '价格生效结束快照',
|
||
`charge_mode` varchar(16) DEFAULT NULL COMMENT '计费口径:KG或CBM',
|
||
`conversion_factor` decimal(18,6) DEFAULT NULL COMMENT '历史客户规则使用的换算系数快照',
|
||
`actual_weight_kg` decimal(18,3) NOT NULL COMMENT '试算时实际重量kg',
|
||
`actual_volume_cbm` decimal(18,4) NOT NULL COMMENT '试算时实际体积m3',
|
||
`converted_quantity` decimal(18,4) NOT NULL COMMENT '换算后的重量或体积',
|
||
`chargeable_quantity` decimal(18,4) NOT NULL COMMENT '最终计费量',
|
||
`charge_unit` varchar(16) NOT NULL COMMENT '计费单位',
|
||
`currency` char(3) NOT NULL COMMENT '币种',
|
||
`subtotal_amount` decimal(18,2) NOT NULL COMMENT '基础费用金额',
|
||
`additional_amount` decimal(18,2) NOT NULL DEFAULT '0.00' COMMENT '附加费金额',
|
||
`total_amount` decimal(18,2) NOT NULL COMMENT '总金额',
|
||
`fee_status` varchar(24) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL DEFAULT 'CALCULATED' COMMENT '费用状态:CALCULATED已计算、SUPERSEDED已被新版本替代',
|
||
`review_status` varchar(24) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL DEFAULT 'NOT_SUBMITTED' COMMENT '费用审核状态:NOT_SUBMITTED未提交、PENDING待审核、APPROVED已通过、REJECTED已驳回、CONFIRMED已确认',
|
||
`exception_release` tinyint(1) NOT NULL DEFAULT '0' COMMENT '是否基于测量异常放行生成',
|
||
`calculated_by` bigint unsigned NOT NULL COMMENT '试算人ID',
|
||
`calculated_at` datetime(3) NOT NULL COMMENT '试算时间',
|
||
`confirmed_by` bigint unsigned DEFAULT NULL COMMENT '确认人ID',
|
||
`confirmed_at` datetime(3) DEFAULT NULL COMMENT '确认时间',
|
||
`sent_by` bigint unsigned DEFAULT NULL COMMENT '发送人ID',
|
||
`sent_at` datetime(3) DEFAULT NULL COMMENT '发送客户时间',
|
||
`customer_confirmed_by` bigint unsigned DEFAULT NULL COMMENT '瀹㈡埛纭浜虹敤鎴稩D',
|
||
`customer_confirmed_by_name` varchar(64) DEFAULT NULL COMMENT '瀹㈡埛纭浜哄悕绉板揩鐓�',
|
||
`customer_confirmed_at` datetime(3) DEFAULT NULL COMMENT '瀹㈡埛纭璐圭敤鏃堕棿锛涢潪绌哄悗璐圭敤鐗堟湰閿佸畾',
|
||
`created_at` datetime(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) COMMENT '创建时间',
|
||
`updated_at` datetime(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3) COMMENT '更新时间',
|
||
`baseline_chargeable_quantity` decimal(18,6) NOT NULL COMMENT '系统按权威测量与生效报价计算的原始计费量',
|
||
`tolerance_percent` decimal(5,2) NOT NULL DEFAULT '10.00' COMMENT '人工调整允许的最大偏差百分比,边界包含',
|
||
PRIMARY KEY (`id`),
|
||
UNIQUE KEY `uk_inbound_fee_no` (`tenant_id`,`fee_no`),
|
||
UNIQUE KEY `uk_inbound_fee_version` (`tenant_id`,`inbound_id`,`fee_version`),
|
||
KEY `idx_inbound_fee_status` (`tenant_id`,`inbound_id`,`fee_status`,`review_status`),
|
||
KEY `fk_fee_inbound` (`inbound_id`),
|
||
KEY `fk_fee_charge_rule` (`charge_rule_id`),
|
||
KEY `fk_fee_carrier_rate` (`carrier_rate_id`),
|
||
CONSTRAINT `fk_fee_carrier_rate` FOREIGN KEY (`carrier_rate_id`) REFERENCES `fl_carrier_fba_rate` (`id`),
|
||
CONSTRAINT `fk_fee_charge_rule` FOREIGN KEY (`charge_rule_id`) REFERENCES `fl_customer_charge_rule` (`id`),
|
||
CONSTRAINT `fk_fee_inbound` FOREIGN KEY (`inbound_id`) REFERENCES `fl_inbound_order` (`id`)
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='入库头程费用计算和确认快照';
|
||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||
DROP TABLE IF EXISTS `fl_inbound_fee_detail`;
|
||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||
/*!50503 SET character_set_client = utf8mb4 */;
|
||
CREATE TABLE `fl_inbound_fee_detail` (
|
||
`id` bigint unsigned NOT NULL COMMENT '入库费用明细ID',
|
||
`tenant_id` bigint unsigned NOT NULL COMMENT '客户ID(客户隔离键);费用明细引用平台公共费用项目',
|
||
`inbound_id` bigint unsigned NOT NULL COMMENT '入库单ID',
|
||
`fee_item_id` bigint unsigned NOT NULL COMMENT '绑定费用项目ID',
|
||
`source_type` varchar(32) NOT NULL DEFAULT 'MANUAL' COMMENT 'MANUAL或FBA_PRICING',
|
||
`source_fee_id` bigint unsigned DEFAULT NULL COMMENT '来源计费快照ID',
|
||
`source_fee_version` int unsigned DEFAULT NULL COMMENT '来源计费快照版本',
|
||
`source_fee_no` varchar(40) DEFAULT NULL COMMENT '来源费用单号',
|
||
`inbound_code` varchar(40) NOT NULL COMMENT '入仓码快照',
|
||
`direction` varchar(16) NOT NULL COMMENT 'RECEIVABLE应收、PAYABLE应付',
|
||
`business_date` date NOT NULL COMMENT '业务发生日',
|
||
`customer_id` bigint unsigned DEFAULT NULL COMMENT '客户ID快照',
|
||
`customer_name` varchar(128) DEFAULT NULL COMMENT '客户公司名称快照',
|
||
`invoice_title` varchar(256) DEFAULT NULL COMMENT '发票抬头快照',
|
||
`fee_category_snapshot` varchar(64) NOT NULL COMMENT '费用分类快照',
|
||
`trade_scope_snapshot` varchar(20) NOT NULL COMMENT '国内国际快照',
|
||
`fee_type_name_snapshot` varchar(128) NOT NULL COMMENT '费用类型名称快照',
|
||
`channel_code` varchar(64) DEFAULT NULL COMMENT '渠道编码快照',
|
||
`channel_name` varchar(128) DEFAULT NULL COMMENT '渠道名称快照',
|
||
`destination_code` varchar(32) DEFAULT NULL COMMENT '目的仓编码快照',
|
||
`destination_name` varchar(128) DEFAULT NULL COMMENT '目的仓名称快照',
|
||
`package_count` int DEFAULT NULL COMMENT '件数快照',
|
||
`actual_gross_weight_kg` decimal(18,4) DEFAULT NULL COMMENT '仓库实测毛重快照,单位千克',
|
||
`actual_volume_cbm` decimal(18,6) DEFAULT NULL COMMENT '实际体积快照,单位立方米',
|
||
`volume_weight_kg` decimal(18,4) DEFAULT NULL COMMENT '材积重快照,单位千克',
|
||
`chargeable_weight_kg` decimal(18,4) DEFAULT NULL COMMENT '费用计算采用的计费重量,单位千克',
|
||
`chargeable_volume_cbm` decimal(18,6) DEFAULT NULL COMMENT '费用计算采用的计费体积,单位立方米',
|
||
`chargeable_quantity` decimal(18,4) DEFAULT NULL COMMENT '本费用最终计费量',
|
||
`charge_unit` varchar(16) DEFAULT NULL COMMENT 'KG或CBM',
|
||
`unit_price` decimal(18,4) NOT NULL COMMENT '费用单价;计价单位由对应费用项目规则确定',
|
||
`currency` char(3) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '金额币种三字码,如CNY',
|
||
`amount` decimal(18,2) NOT NULL COMMENT '该费用明细金额,币种由currency字段指定',
|
||
`remark` varchar(500) DEFAULT NULL COMMENT '备注',
|
||
`review_status` varchar(16) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL DEFAULT 'PENDING' COMMENT '审核状态:PENDING待审核、APPROVED已通过、REJECTED已驳回',
|
||
`reviewer_id` bigint DEFAULT NULL COMMENT '审核人ID',
|
||
`reviewer_name` varchar(64) DEFAULT NULL COMMENT '审核人名称快照',
|
||
`reviewed_at` datetime(3) DEFAULT NULL COMMENT '审核时间',
|
||
`review_reason` varchar(500) DEFAULT NULL COMMENT '审核驳回原因',
|
||
`publication_status` varchar(16) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL DEFAULT 'DRAFT' COMMENT '费用发布状态:DRAFT草稿、PUBLISHED已发布、SUPERSEDED已替代',
|
||
`published_by` bigint DEFAULT NULL COMMENT '发布人ID',
|
||
`published_by_name` varchar(64) DEFAULT NULL COMMENT '发布人名称快照',
|
||
`published_at` datetime(3) DEFAULT NULL COMMENT '发布时间',
|
||
`inbounded_at` datetime(3) DEFAULT NULL COMMENT '入库完成时间快照',
|
||
`settlement_included` tinyint(1) NOT NULL DEFAULT '0' COMMENT '是否参与结算',
|
||
`created_by` bigint DEFAULT NULL COMMENT '创建人或系统主体ID',
|
||
`created_at` datetime(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) COMMENT '创建时间',
|
||
`updated_by` bigint DEFAULT NULL COMMENT '最后修改人或系统主体ID',
|
||
`updated_at` datetime(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3) COMMENT '最后更新时间',
|
||
`deleted` tinyint(1) NOT NULL DEFAULT '0' COMMENT '逻辑删除标记:0未删除、1已删除',
|
||
`version` int NOT NULL DEFAULT '0' COMMENT '乐观锁版本号',
|
||
`paid_at` datetime(3) DEFAULT NULL COMMENT 'DIRECT_PAID业务已付时间',
|
||
`payment_method` varchar(32) DEFAULT NULL COMMENT 'DIRECT_PAID付款方式',
|
||
`payment_reference_no` varchar(128) DEFAULT NULL COMMENT 'DIRECT_PAID付款流水号',
|
||
`payment_voucher_file_ids` json DEFAULT NULL COMMENT 'DIRECT_PAID付款凭证File ID数组',
|
||
`settlement_mode` varchar(16) DEFAULT NULL COMMENT '仅PAYABLE:ON_ACCOUNT或DIRECT_PAID',
|
||
`supplier_category` varchar(16) DEFAULT NULL COMMENT '费用项目供应商类别约束快照;为空表示任意启用供应商',
|
||
`supplier_id` bigint unsigned DEFAULT NULL COMMENT '应付Warehouse供应商ID快照;应收为空',
|
||
`supplier_name` varchar(200) DEFAULT NULL COMMENT '应付Warehouse供应商名称快照;应收为空',
|
||
PRIMARY KEY (`id`),
|
||
UNIQUE KEY `uk_inbound_fee_source` (`tenant_id`,`source_type`,`source_fee_id`),
|
||
KEY `idx_inbound_fee_detail` (`tenant_id`,`inbound_id`,`business_date`,`deleted`),
|
||
KEY `idx_inbound_fee_review` (`tenant_id`,`review_status`,`business_date`,`deleted`),
|
||
KEY `idx_inbound_fee_item` (`tenant_id`,`fee_item_id`,`deleted`),
|
||
KEY `fk_inbound_fee_detail_order` (`inbound_id`),
|
||
KEY `fk_inbound_fee_detail_item` (`fee_item_id`),
|
||
KEY `idx_inbound_fee_published` (`tenant_id`,`inbound_id`,`publication_status`,`source_fee_version`),
|
||
CONSTRAINT `fk_inbound_fee_detail_item` FOREIGN KEY (`fee_item_id`) REFERENCES `fl_fee_item` (`id`),
|
||
CONSTRAINT `fk_inbound_fee_detail_order` FOREIGN KEY (`inbound_id`) REFERENCES `fl_inbound_order` (`id`)
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='入库单应收应付费用明细';
|
||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||
DROP TABLE IF EXISTS `fl_inbound_fee_item`;
|
||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||
/*!50503 SET character_set_client = utf8mb4 */;
|
||
CREATE TABLE `fl_inbound_fee_item` (
|
||
`id` bigint unsigned NOT NULL COMMENT '费用明细ID',
|
||
`tenant_id` bigint unsigned NOT NULL COMMENT '客户ID和数据隔离键',
|
||
`fee_id` bigint unsigned NOT NULL COMMENT '费用头ID',
|
||
`item_no` int unsigned NOT NULL COMMENT '费用单内序号',
|
||
`fee_code` varchar(50) NOT NULL COMMENT '费用项目编码',
|
||
`fee_name` varchar(128) NOT NULL COMMENT '费用项目名称快照',
|
||
`quantity` decimal(18,4) NOT NULL COMMENT '计费数量',
|
||
`unit` varchar(16) NOT NULL COMMENT '计费单位',
|
||
`unit_price` decimal(18,6) NOT NULL COMMENT '单价',
|
||
`amount` decimal(18,2) NOT NULL COMMENT '金额',
|
||
`currency` char(3) NOT NULL COMMENT '币种',
|
||
`automatic_flag` tinyint(1) NOT NULL DEFAULT '1' COMMENT '是否自动计算',
|
||
`remark` varchar(500) DEFAULT NULL COMMENT '费用备注',
|
||
`created_at` datetime(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) COMMENT '创建时间',
|
||
PRIMARY KEY (`id`),
|
||
UNIQUE KEY `uk_fee_item_no` (`tenant_id`,`fee_id`,`item_no`),
|
||
KEY `fk_fee_item_header` (`fee_id`),
|
||
CONSTRAINT `fk_fee_item_header` FOREIGN KEY (`fee_id`) REFERENCES `fl_inbound_fee` (`id`)
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='入库头程费用项目明细';
|
||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||
DROP TABLE IF EXISTS `fl_inbound_file`;
|
||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||
/*!50503 SET character_set_client = utf8mb4 */;
|
||
CREATE TABLE `fl_inbound_file` (
|
||
`id` bigint unsigned NOT NULL COMMENT '入库单文件关系ID',
|
||
`tenant_id` bigint unsigned NOT NULL COMMENT '客户ID和数据隔离键',
|
||
`inbound_id` bigint unsigned NOT NULL COMMENT '入库单ID',
|
||
`file_id` bigint unsigned NOT NULL COMMENT '文件服务文件ID',
|
||
`file_type` varchar(24) NOT NULL COMMENT '文件类型:RELATED、MARK、PC_ORDER、MEASURE或WEIGHT',
|
||
`file_name_snapshot` varchar(255) NOT NULL COMMENT '文件名快照',
|
||
`visibility` varchar(16) NOT NULL DEFAULT 'INTERNAL' COMMENT '可见范围',
|
||
`file_version` int unsigned NOT NULL DEFAULT '1' COMMENT '业务文件版本',
|
||
`uploaded_by` bigint unsigned NOT NULL COMMENT '上传人ID',
|
||
`uploaded_at` datetime(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) COMMENT '上传时间',
|
||
`deleted` tinyint(1) NOT NULL DEFAULT '0' COMMENT '逻辑删除标记',
|
||
PRIMARY KEY (`id`),
|
||
UNIQUE KEY `uk_inbound_file_relation` (`tenant_id`,`inbound_id`,`file_id`,`file_type`),
|
||
KEY `idx_inbound_file_type` (`tenant_id`,`inbound_id`,`file_type`,`deleted`),
|
||
KEY `fk_file_inbound` (`inbound_id`),
|
||
CONSTRAINT `fk_file_inbound` FOREIGN KEY (`inbound_id`) REFERENCES `fl_inbound_order` (`id`)
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='入库单与文件中心对象的分类关系';
|
||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||
DROP TABLE IF EXISTS `fl_inbound_hold_record`;
|
||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||
/*!50503 SET character_set_client = utf8mb4 */;
|
||
CREATE TABLE `fl_inbound_hold_record` (
|
||
`id` bigint unsigned NOT NULL COMMENT '扣货记录ID',
|
||
`tenant_id` bigint unsigned NOT NULL COMMENT '客户ID和数据隔离键',
|
||
`inbound_id` bigint unsigned NOT NULL COMMENT '入库单ID',
|
||
`hold_action` varchar(16) NOT NULL COMMENT '动作:HOLD或RELEASE',
|
||
`reason` varchar(1000) NOT NULL COMMENT '扣货或解除原因',
|
||
`evidence_file_id` bigint unsigned DEFAULT NULL COMMENT '证据文件ID',
|
||
`operator_id` bigint unsigned NOT NULL COMMENT '操作人ID',
|
||
`operator_name` varchar(64) DEFAULT NULL COMMENT '操作人名称快照',
|
||
`operated_at` datetime(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) COMMENT '操作时间',
|
||
PRIMARY KEY (`id`),
|
||
KEY `idx_hold_inbound_time` (`tenant_id`,`inbound_id`,`operated_at`),
|
||
KEY `fk_hold_inbound` (`inbound_id`),
|
||
CONSTRAINT `fk_hold_inbound` FOREIGN KEY (`inbound_id`) REFERENCES `fl_inbound_order` (`id`)
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='入库单扣货和解除扣货不可变历史';
|
||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||
DROP TABLE IF EXISTS `fl_inbound_idempotency`;
|
||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||
/*!50503 SET character_set_client = utf8mb4 */;
|
||
CREATE TABLE `fl_inbound_idempotency` (
|
||
`id` bigint unsigned NOT NULL COMMENT '入库写操作幂等记录ID',
|
||
`tenant_id` bigint unsigned NOT NULL COMMENT '客户ID和数据隔离键',
|
||
`operation` varchar(40) NOT NULL COMMENT '操作类型',
|
||
`operator_id` bigint unsigned NOT NULL DEFAULT '0' COMMENT '操作者或外部应用ID',
|
||
`inbound_id` bigint unsigned NOT NULL DEFAULT '0' COMMENT '入库单ID,创建前可为0',
|
||
`idempotency_key` varchar(128) NOT NULL COMMENT '幂等键',
|
||
`request_hash` char(64) NOT NULL COMMENT '请求内容摘要',
|
||
`status` varchar(16) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '幂等处理状态:PROCESSING处理中、SUCCEEDED已成功、FAILED已失败',
|
||
`result_json` json DEFAULT NULL COMMENT '成功结果摘要',
|
||
`result_resource_id` bigint unsigned DEFAULT NULL COMMENT '成功结果资源ID',
|
||
`completed_at` datetime(3) DEFAULT NULL COMMENT '完成时间',
|
||
`created_at` datetime(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) COMMENT '创建时间',
|
||
`updated_at` datetime(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3) COMMENT '更新时间',
|
||
PRIMARY KEY (`id`),
|
||
UNIQUE KEY `uk_inbound_idempotency` (`tenant_id`,`operation`,`operator_id`,`idempotency_key`),
|
||
KEY `idx_inbound_idempotency_created` (`created_at`)
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='第三方测量、审核、费用发送和入库写操作幂等记录';
|
||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||
DROP TABLE IF EXISTS `fl_inbound_internal_note`;
|
||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||
/*!50503 SET character_set_client = utf8mb4 */;
|
||
CREATE TABLE `fl_inbound_internal_note` (
|
||
`id` bigint unsigned NOT NULL COMMENT '客服内部备注ID',
|
||
`tenant_id` bigint unsigned NOT NULL COMMENT '客户ID和数据隔离键',
|
||
`inbound_id` bigint unsigned NOT NULL COMMENT '入库单ID',
|
||
`content` varchar(2000) NOT NULL COMMENT '仅内部可见备注',
|
||
`created_by` bigint unsigned NOT NULL COMMENT '创建人ID',
|
||
`created_by_name` varchar(64) DEFAULT NULL COMMENT '创建人名称快照',
|
||
`created_at` datetime(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) COMMENT '创建时间',
|
||
PRIMARY KEY (`id`),
|
||
KEY `idx_internal_note_time` (`tenant_id`,`inbound_id`,`created_at`),
|
||
KEY `fk_internal_note_inbound` (`inbound_id`),
|
||
CONSTRAINT `fk_internal_note_inbound` FOREIGN KEY (`inbound_id`) REFERENCES `fl_inbound_order` (`id`)
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='入库单客服内部备注历史';
|
||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||
DROP TABLE IF EXISTS `fl_inbound_loading_pick_task`;
|
||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||
/*!50503 SET character_set_client = utf8mb4 */;
|
||
CREATE TABLE `fl_inbound_loading_pick_task` (
|
||
`id` bigint unsigned NOT NULL COMMENT '入库单级PDA拣货任务ID',
|
||
`tenant_id` bigint unsigned NOT NULL COMMENT '客户ID和数据隔离键',
|
||
`inbound_id` bigint unsigned NOT NULL COMMENT '关联入库单逻辑ID',
|
||
`status` varchar(24) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL DEFAULT 'PENDING' COMMENT '任务状态:PENDING待拣货、IN_PROGRESS拣货中、COMPLETED已完成',
|
||
`version` int NOT NULL DEFAULT '0' COMMENT '乐观锁版本号,每次更新递增',
|
||
`expected_count` int unsigned DEFAULT NULL COMMENT '计划应拣箱数',
|
||
`picked_count` int unsigned DEFAULT NULL COMMENT '实际已拣箱数',
|
||
`remark` varchar(1000) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '拣货结果或异常补充说明',
|
||
`updated_by` bigint unsigned NOT NULL COMMENT '最后操作人ID',
|
||
`updated_by_name` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '最后操作人姓名快照',
|
||
`created_at` datetime(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) COMMENT 'PDA拣货任务创建时间',
|
||
`updated_at` datetime(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3) COMMENT 'PDA拣货任务最后更新时间',
|
||
PRIMARY KEY (`id`),
|
||
UNIQUE KEY `uk_loading_pick_tenant_inbound` (`tenant_id`,`inbound_id`),
|
||
KEY `idx_loading_pick_status` (`tenant_id`,`status`,`updated_at`),
|
||
KEY `fk_loading_pick_inbound` (`inbound_id`),
|
||
CONSTRAINT `fk_loading_pick_inbound` FOREIGN KEY (`inbound_id`) REFERENCES `fl_inbound_order` (`id`)
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='PDA拣货任务及结果';
|
||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||
DROP TABLE IF EXISTS `fl_inbound_measurement`;
|
||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||
/*!50503 SET character_set_client = utf8mb4 */;
|
||
CREATE TABLE `fl_inbound_measurement` (
|
||
`id` bigint unsigned NOT NULL COMMENT '测量批次ID',
|
||
`tenant_id` bigint unsigned NOT NULL COMMENT '客户ID和数据隔离键',
|
||
`inbound_id` bigint unsigned NOT NULL COMMENT '入库单ID',
|
||
`split_batch_id` bigint unsigned DEFAULT NULL COMMENT '产生该测量批次的入仓拆分批次ID',
|
||
`source_measurement_id` bigint unsigned DEFAULT NULL COMMENT '子单继承或复核时的来源测量批次ID',
|
||
`source_type` varchar(24) NOT NULL COMMENT '数据来源:THIRD_PARTY或MANUAL',
|
||
`source_code` varchar(64) DEFAULT NULL COMMENT '第三方应用或来源编码',
|
||
`external_event_no` varchar(128) DEFAULT NULL COMMENT '第三方事件号',
|
||
`external_request_hash` char(64) DEFAULT NULL COMMENT '第三方data原文和图片内容联合请求哈希',
|
||
`device_code` varchar(64) DEFAULT NULL COMMENT '测量设备编码',
|
||
`warehouse_code` varchar(50) DEFAULT NULL COMMENT '第三方回传仓库编码',
|
||
`measured_at` datetime(3) DEFAULT NULL COMMENT '设备测量时间',
|
||
`status` varchar(24) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL DEFAULT 'RECEIVED' COMMENT '测量批次状态:DRAFT草稿、RECEIVED已接收、SUBMITTED已提交、APPROVED已通过、REJECTED已驳回',
|
||
`raw_payload_json` json DEFAULT NULL COMMENT '第三方原始报文',
|
||
`original_document_no` varchar(64) DEFAULT NULL COMMENT '原单据号码快照',
|
||
`original_gross_weight_kg` decimal(18,3) DEFAULT NULL COMMENT '原单据毛重kg',
|
||
`original_volume_cbm` decimal(18,4) DEFAULT NULL COMMENT '原单据体积或材积m3',
|
||
`actual_goods_name` varchar(255) DEFAULT NULL COMMENT '实际品名',
|
||
`total_package_count` int unsigned DEFAULT NULL COMMENT '本批次总箱数',
|
||
`total_volume_raw_cbm` decimal(18,6) DEFAULT NULL COMMENT '本批次原始总体积m3',
|
||
`total_volume_cbm` decimal(18,4) DEFAULT NULL COMMENT '本批次业务总体积m3',
|
||
`volume_weight_kg` decimal(18,3) DEFAULT NULL COMMENT '本批次总材积重kg',
|
||
`created_by` bigint unsigned DEFAULT NULL COMMENT '创建人或系统主体ID',
|
||
`created_at` datetime(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) COMMENT '创建时间',
|
||
`updated_at` datetime(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3) COMMENT '更新时间',
|
||
`version` int NOT NULL DEFAULT '0' COMMENT '乐观锁版本号',
|
||
PRIMARY KEY (`id`),
|
||
UNIQUE KEY `uk_measure_external_event` (`tenant_id`,`source_code`,`external_event_no`),
|
||
KEY `idx_measure_inbound_time` (`tenant_id`,`inbound_id`,`created_at`),
|
||
KEY `fk_measure_inbound` (`inbound_id`),
|
||
KEY `fk_measure_split_batch` (`split_batch_id`),
|
||
KEY `fk_measure_source_batch` (`source_measurement_id`),
|
||
KEY `idx_measure_split_source` (`tenant_id`,`split_batch_id`,`source_measurement_id`,`created_at`),
|
||
CONSTRAINT `fk_measure_inbound` FOREIGN KEY (`inbound_id`) REFERENCES `fl_inbound_order` (`id`),
|
||
CONSTRAINT `fk_measure_source_batch` FOREIGN KEY (`source_measurement_id`) REFERENCES `fl_inbound_measurement` (`id`),
|
||
CONSTRAINT `fk_measure_split_batch` FOREIGN KEY (`split_batch_id`) REFERENCES `fl_inbound_split_batch` (`id`)
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='入库长宽高测量批次和第三方原始数据';
|
||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||
DROP TABLE IF EXISTS `fl_inbound_measurement_item`;
|
||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||
/*!50503 SET character_set_client = utf8mb4 */;
|
||
CREATE TABLE `fl_inbound_measurement_item` (
|
||
`id` bigint unsigned NOT NULL COMMENT '测量明细ID',
|
||
`tenant_id` bigint unsigned NOT NULL COMMENT '客户ID和数据隔离键',
|
||
`measurement_id` bigint unsigned NOT NULL COMMENT '测量批次ID',
|
||
`split_item_id` bigint unsigned DEFAULT NULL COMMENT '产生该子单测量明细的拆分台账ID',
|
||
`source_measurement_item_id` bigint unsigned DEFAULT NULL COMMENT '被拆分继承的来源测量箱规明细ID',
|
||
`inbound_detail_id` bigint unsigned DEFAULT NULL COMMENT '绑定的订单货物明细ID,平台手工明细可为空',
|
||
`external_detail_no` varchar(128) DEFAULT NULL COMMENT '第三方测量明细唯一号,平台手工明细可为空',
|
||
`box_code` varchar(128) DEFAULT NULL COMMENT '柏悦唛头箱号;设备单箱测量时同一客户内唯一',
|
||
`scanned_shipment_id` varchar(64) DEFAULT NULL COMMENT '设备从Amazon FBA箱标实扫的Shipment ID',
|
||
`item_no` varchar(32) NOT NULL COMMENT '批次内明细号',
|
||
`box_specification` varchar(64) NOT NULL COMMENT '箱规标识',
|
||
`package_count` int unsigned NOT NULL COMMENT '相同箱规箱数',
|
||
`length_cm` decimal(12,3) NOT NULL COMMENT '原始长度cm',
|
||
`width_cm` decimal(12,3) NOT NULL COMMENT '原始宽度cm',
|
||
`height_cm` decimal(12,3) NOT NULL COMMENT '原始高度cm',
|
||
`girth_cm` decimal(12,3) NOT NULL COMMENT '周长cm,规则为长+2*(宽+高)',
|
||
`unit_weight_kg` decimal(18,3) DEFAULT NULL COMMENT '单箱重量kg,第三方仅回传尺寸时可为空',
|
||
`unit_volume_cbm` decimal(18,4) NOT NULL COMMENT '单箱业务体积m3',
|
||
`volume_raw_cbm` decimal(18,6) NOT NULL COMMENT '原始体积m3',
|
||
`volume_cbm` decimal(18,4) NOT NULL COMMENT '业务体积m3',
|
||
`total_weight_kg` decimal(18,3) DEFAULT NULL COMMENT '本箱规总重量kg',
|
||
`total_volume_cbm` decimal(18,4) NOT NULL COMMENT '本箱规总体积m3',
|
||
`volume_weight_kg` decimal(18,3) NOT NULL COMMENT '本箱规材积重kg',
|
||
`charge_rule_id` bigint unsigned DEFAULT NULL COMMENT 'customer charge rule id',
|
||
`coefficient_mode` varchar(16) DEFAULT NULL COMMENT '系数模式快照:ADD或MULTIPLY',
|
||
`calculation_rule_version` varchar(64) NOT NULL COMMENT '体积计算和舍入规则版本',
|
||
`source_image_file_id` bigint unsigned DEFAULT NULL COMMENT '测量设备图片文件ID',
|
||
`machine_no` varchar(64) DEFAULT NULL COMMENT '本次测量设备编号',
|
||
`device_measured_at` datetime(3) DEFAULT NULL COMMENT '本次设备测量时间',
|
||
`over_limit_warning` varchar(500) DEFAULT NULL COMMENT '超线提醒快照',
|
||
`outer_length_cm` decimal(12,3) DEFAULT NULL COMMENT '外箱规长度cm',
|
||
`outer_width_cm` decimal(12,3) DEFAULT NULL COMMENT '外箱规宽度cm',
|
||
`outer_height_cm` decimal(12,3) DEFAULT NULL COMMENT '外箱规高度cm',
|
||
`manual_outer_length_cm` decimal(12,3) DEFAULT NULL COMMENT '浠撳簱浜哄伐澶栫瑙勯暱搴﹁绠楀熀鏁癱m',
|
||
`manual_outer_width_cm` decimal(12,3) DEFAULT NULL COMMENT '浠撳簱浜哄伐澶栫瑙勫搴﹁绠楀熀鏁癱m',
|
||
`manual_outer_height_cm` decimal(12,3) DEFAULT NULL COMMENT '浠撳簱浜哄伐澶栫瑙勯珮搴﹁绠楀熀鏁癱m',
|
||
`remark` varchar(500) DEFAULT NULL COMMENT '测量明细备注',
|
||
`created_at` datetime(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) COMMENT '创建时间',
|
||
`updated_at` datetime(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3) COMMENT '最后更新时间',
|
||
PRIMARY KEY (`id`),
|
||
UNIQUE KEY `uk_measure_item_no` (`tenant_id`,`measurement_id`,`item_no`),
|
||
UNIQUE KEY `uk_measure_external_detail` (`tenant_id`,`inbound_detail_id`,`external_detail_no`),
|
||
UNIQUE KEY `uk_measure_box_code` (`tenant_id`,`box_code`),
|
||
KEY `fk_measure_item_batch` (`measurement_id`),
|
||
KEY `fk_measure_item_split_item` (`split_item_id`),
|
||
KEY `fk_measure_item_source_item` (`source_measurement_item_id`),
|
||
KEY `idx_measure_item_split_source` (`tenant_id`,`split_item_id`,`source_measurement_item_id`),
|
||
CONSTRAINT `fk_measure_item_batch` FOREIGN KEY (`measurement_id`) REFERENCES `fl_inbound_measurement` (`id`),
|
||
CONSTRAINT `fk_measure_item_source_item` FOREIGN KEY (`source_measurement_item_id`) REFERENCES `fl_inbound_measurement_item` (`id`),
|
||
CONSTRAINT `fk_measure_item_split_item` FOREIGN KEY (`split_item_id`) REFERENCES `fl_inbound_split_item` (`id`)
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='入库长宽高和箱数测量明细';
|
||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||
DROP TABLE IF EXISTS `fl_inbound_order`;
|
||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||
/*!50503 SET character_set_client = utf8mb4 */;
|
||
CREATE TABLE `fl_inbound_order` (
|
||
`id` bigint unsigned NOT NULL COMMENT '入库单ID(雪花ID)',
|
||
`tenant_id` bigint unsigned NOT NULL COMMENT '客户ID和数据隔离键',
|
||
`task_id` bigint unsigned DEFAULT NULL COMMENT '头程履约任务ID',
|
||
`order_id` bigint unsigned NOT NULL COMMENT '订单服务订单ID,不建立跨库外键',
|
||
`order_no` varchar(32) NOT NULL COMMENT '订单号快照',
|
||
`inbound_code` varchar(40) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '客户内唯一入仓码',
|
||
`inbound_role` varchar(16) NOT NULL DEFAULT 'MASTER' COMMENT '入仓单层级:MASTER主单、CHILD子单',
|
||
`parent_inbound_id` bigint unsigned DEFAULT NULL COMMENT '直属主入仓单ID;主单为空',
|
||
`root_inbound_id` bigint unsigned DEFAULT NULL COMMENT '根主入仓单ID;存量主单可为空,按自身ID解释',
|
||
`split_sequence` int unsigned DEFAULT NULL COMMENT '同一主单下的子单顺序号',
|
||
`split_status` varchar(24) NOT NULL DEFAULT 'NOT_SPLIT' COMMENT '拆分状态:NOT_SPLIT、PARTIALLY_SPLIT、FULLY_SPLIT',
|
||
`process_status` varchar(24) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL DEFAULT 'WAIT_MEASURE' COMMENT '入库流程状态:WAIT_MEASURE待测量、MEASURING测量中、MEASURE_PENDING待审核、MEASURE_REJECTED测量驳回、WAIT_PRICING待计费、FEE_CONFIRMING费用确认中、INBOUNDING入库收口中、INBOUNDED已入库、WAIT_SPLIT历史待分柜',
|
||
`order_status_snapshot` varchar(24) NOT NULL COMMENT '订单状态快照',
|
||
`measure_review_status` varchar(24) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL DEFAULT 'NOT_SUBMITTED' COMMENT '测量审核状态:NOT_SUBMITTED未提交、PENDING待审核、APPROVED已通过、REJECTED已驳回',
|
||
`fee_status` varchar(24) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL DEFAULT 'UNPRICED' COMMENT '费用状态:UNPRICED未计费、CALCULATED已计算、CONFIRMED已确认、SENT已发送、VOIDED已作废',
|
||
`fee_review_status` varchar(24) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL DEFAULT 'NOT_SUBMITTED' COMMENT '费用审核状态:NOT_SUBMITTED未提交、PENDING待审核、APPROVED已通过、REJECTED已驳回、CONFIRMED已确认',
|
||
`notification_status` varchar(24) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL DEFAULT 'NOT_CREATED' COMMENT '客户通知状态:NOT_CREATED未创建、PENDING待通知',
|
||
`expected_arrival_at` datetime(3) DEFAULT NULL COMMENT '预计到达时间',
|
||
`customer_id` bigint unsigned DEFAULT NULL COMMENT '客户逻辑ID',
|
||
`customer_name` varchar(128) NOT NULL COMMENT '客户名称快照',
|
||
`company_id` bigint unsigned DEFAULT NULL COMMENT '运营公司逻辑ID',
|
||
`company_name` varchar(128) DEFAULT NULL COMMENT '运营公司名称快照',
|
||
`warehouse_id` bigint unsigned NOT NULL COMMENT '实际作业仓库ID',
|
||
`warehouse_name` varchar(128) NOT NULL COMMENT '实际作业仓库名称快照',
|
||
`delivery_warehouse_id` bigint unsigned DEFAULT NULL COMMENT '交货仓逻辑ID',
|
||
`delivery_warehouse_name` varchar(128) DEFAULT NULL COMMENT '交货仓名称快照',
|
||
`business_type` varchar(32) NOT NULL COMMENT '业务类型',
|
||
`fulfillment_type` varchar(32) NOT NULL DEFAULT 'STANDARD' COMMENT '履约类型:STANDARD普通头程、ONE_CLICK_DROPSHIP一键代发',
|
||
`lx_code` varchar(128) DEFAULT NULL COMMENT '一件代发领星入库单代码',
|
||
`channel_code` varchar(64) DEFAULT NULL COMMENT '渠道编码',
|
||
`channel_name` varchar(128) DEFAULT NULL COMMENT '渠道名称快照',
|
||
`carrier_id` bigint unsigned DEFAULT NULL COMMENT '计费船司逻辑ID',
|
||
`carrier_name` varchar(128) DEFAULT NULL COMMENT '计费船司名称快照',
|
||
`tax_mode` varchar(24) DEFAULT NULL COMMENT '买单或退税模式',
|
||
`pricing_tax_mode` varchar(16) DEFAULT NULL COMMENT '报价包税维度:TAX_INCLUDED/TAX_EXCLUDED',
|
||
`container_mode` varchar(24) DEFAULT NULL COMMENT '整柜或散货模式',
|
||
`customs_inspection` tinyint(1) DEFAULT NULL COMMENT '是否商检',
|
||
`destination_type` varchar(24) DEFAULT NULL COMMENT '目的仓类型',
|
||
`destination_warehouse_id` bigint unsigned DEFAULT NULL COMMENT '目的仓逻辑ID',
|
||
`destination_code` varchar(32) DEFAULT NULL COMMENT '目的仓编码,例如FBA仓编码',
|
||
`destination_name` varchar(128) DEFAULT NULL COMMENT '目的仓名称快照',
|
||
`hold_flag` tinyint(1) NOT NULL DEFAULT '0' COMMENT '当前是否扣货',
|
||
`current_hold_reason` varchar(500) DEFAULT NULL COMMENT '当前扣货理由快照',
|
||
`last_overseas_hold_version` bigint unsigned DEFAULT NULL COMMENT '海外暂扣事件最新聚合版本,用于阻止乱序覆盖',
|
||
`total_package_count` int unsigned DEFAULT NULL COMMENT '确认后的总箱数',
|
||
`package_count` int unsigned DEFAULT NULL COMMENT '入仓单箱数;三期唯一数量口径',
|
||
`split_purpose` varchar(16) NOT NULL DEFAULT 'MASTER' COMMENT '履约分片用途:MASTER、LOADED、REMAINDER',
|
||
`actual_gross_weight_kg` decimal(18,3) DEFAULT NULL COMMENT '确认后的实际总毛重kg',
|
||
`chargeable_weight_kg` decimal(18,3) DEFAULT NULL COMMENT '当前费用快照的计费重量kg',
|
||
`actual_volume_cbm` decimal(18,4) DEFAULT NULL COMMENT '确认后的实际总体积m3',
|
||
`chargeable_volume_cbm` decimal(18,4) DEFAULT NULL COMMENT '当前费用快照的计费体积m3',
|
||
`pallet_count` int unsigned DEFAULT NULL COMMENT '已分配总托盘数快照',
|
||
`volume_weight_kg` decimal(18,3) DEFAULT NULL COMMENT '总材积重kg',
|
||
`actual_net_weight_kg` decimal(18,3) DEFAULT NULL COMMENT '总净重kg',
|
||
`measure_completed_at` datetime(3) DEFAULT NULL COMMENT '测量完成时间',
|
||
`inbounded_at` datetime(3) DEFAULT NULL COMMENT '入库完成时间',
|
||
`express_company_code` varchar(64) DEFAULT NULL COMMENT '快递公司编码快照',
|
||
`express_company_name` varchar(128) DEFAULT NULL COMMENT '快递公司名称快照',
|
||
`express_tracking_no` varchar(128) DEFAULT NULL COMMENT '快递单号快照',
|
||
`public_remark` varchar(1000) DEFAULT NULL COMMENT '客户可见备注',
|
||
`created_by` bigint unsigned NOT NULL COMMENT '创建人ID',
|
||
`created_by_name` varchar(64) DEFAULT NULL COMMENT '创建人名称快照',
|
||
`created_at` datetime(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) COMMENT '创建时间',
|
||
`updated_by` bigint unsigned NOT NULL COMMENT '最后修改人ID',
|
||
`updated_at` datetime(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3) COMMENT '更新时间',
|
||
`deleted` tinyint(1) NOT NULL DEFAULT '0' COMMENT '逻辑删除标记',
|
||
`version` int NOT NULL DEFAULT '0' COMMENT '乐观锁版本号',
|
||
`master_order_id` bigint unsigned GENERATED ALWAYS AS ((case when ((`inbound_role` = _utf8mb4'MASTER') and (`deleted` = 0)) then `order_id` else NULL end)) STORED COMMENT '仅用于约束有效主单订单唯一性',
|
||
`active_remainder_root_id` bigint unsigned GENERATED ALWAYS AS ((case when ((`inbound_role` = _utf8mb4'CHILD') and (`split_purpose` = _utf8mb4'REMAINDER') and (`split_status` = _utf8mb4'NOT_SPLIT') and (`deleted` = 0)) then `root_inbound_id` else NULL end)) STORED COMMENT '有效余量唯一约束键;历史已完成分片为空',
|
||
PRIMARY KEY (`id`),
|
||
UNIQUE KEY `uk_inbound_code` (`inbound_code`),
|
||
UNIQUE KEY `uk_inbound_master_order` (`tenant_id`,`master_order_id`),
|
||
UNIQUE KEY `uk_inbound_parent_split_sequence` (`tenant_id`,`parent_inbound_id`,`split_sequence`),
|
||
UNIQUE KEY `uk_inbound_one_active_remainder` (`tenant_id`,`active_remainder_root_id`),
|
||
KEY `idx_inbound_process_time` (`tenant_id`,`process_status`,`created_at`,`id`),
|
||
KEY `idx_inbound_measure_time` (`tenant_id`,`measure_review_status`,`created_at`,`id`),
|
||
KEY `idx_inbound_fee_time` (`tenant_id`,`fee_review_status`,`created_at`,`id`),
|
||
KEY `idx_inbound_warehouse_status` (`tenant_id`,`warehouse_id`,`process_status`,`created_at`),
|
||
KEY `idx_inbound_customer_time` (`tenant_id`,`customer_id`,`created_at`),
|
||
KEY `idx_inbound_company_time` (`tenant_id`,`company_id`,`created_at`),
|
||
KEY `idx_inbound_arrival` (`tenant_id`,`expected_arrival_at`),
|
||
KEY `idx_inbound_destination` (`tenant_id`,`destination_code`,`created_at`),
|
||
KEY `idx_inbound_channel` (`tenant_id`,`channel_code`,`created_at`),
|
||
KEY `fk_inbound_task` (`task_id`),
|
||
KEY `idx_inbound_root_role` (`tenant_id`,`root_inbound_id`,`inbound_role`,`created_at`,`id`),
|
||
KEY `fk_inbound_parent_order` (`parent_inbound_id`),
|
||
KEY `fk_inbound_root_order` (`root_inbound_id`),
|
||
CONSTRAINT `fk_inbound_parent_order` FOREIGN KEY (`parent_inbound_id`) REFERENCES `fl_inbound_order` (`id`),
|
||
CONSTRAINT `fk_inbound_root_order` FOREIGN KEY (`root_inbound_id`) REFERENCES `fl_inbound_order` (`id`),
|
||
CONSTRAINT `fk_inbound_task` FOREIGN KEY (`task_id`) REFERENCES `fl_fulfillment_task` (`id`)
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='二期头程入库单聚合根和列表查询快照';
|
||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||
DROP TABLE IF EXISTS `fl_inbound_outbox`;
|
||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||
/*!50503 SET character_set_client = utf8mb4 */;
|
||
CREATE TABLE `fl_inbound_outbox` (
|
||
`id` bigint unsigned NOT NULL COMMENT '领域事件全局ID',
|
||
`tenant_id` bigint unsigned NOT NULL COMMENT '事件所属客户ID和数据隔离键',
|
||
`aggregate_type` varchar(32) NOT NULL DEFAULT 'INBOUND' COMMENT '聚合类型',
|
||
`aggregate_id` bigint unsigned NOT NULL COMMENT '入库单ID',
|
||
`event_type` varchar(64) NOT NULL COMMENT '事件类型',
|
||
`event_key` varchar(160) DEFAULT NULL COMMENT '费用来源事件幂等键;历史事件允许为空',
|
||
`event_version` int unsigned NOT NULL DEFAULT '1' COMMENT '事件信封版本',
|
||
`aggregate_sequence` int unsigned DEFAULT NULL COMMENT '同一费用来源的单调版本序号',
|
||
`payload_hash` varchar(71) DEFAULT NULL COMMENT '事件规范化负载SHA-256;标准跨区事件含sha256:前缀',
|
||
`payload_json` longtext NOT NULL COMMENT '事件负载快照;文本类型保留跨区事件摘要所依赖的数值词法',
|
||
`publish_status` varchar(16) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL DEFAULT 'PENDING' COMMENT '事件发布状态:PENDING待发布、PUBLISHED已发布、FAILED发布失败',
|
||
`retry_count` int NOT NULL DEFAULT '0' COMMENT '重试次数',
|
||
`next_retry_at` datetime(3) DEFAULT NULL COMMENT '下次重试时间',
|
||
`published_at` datetime(3) DEFAULT NULL COMMENT '发布时间',
|
||
`locked_at` datetime(3) DEFAULT NULL COMMENT 'Relay抢占租约时间',
|
||
`locked_by` varchar(64) DEFAULT NULL COMMENT 'Relay抢占实例ID',
|
||
`last_error` varchar(500) DEFAULT NULL COMMENT '最近一次投递失败摘要,不记录令牌',
|
||
`created_at` datetime(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) COMMENT '创建时间',
|
||
PRIMARY KEY (`id`),
|
||
UNIQUE KEY `uk_inbound_outbox_event_key` (`event_key`),
|
||
KEY `idx_inbound_outbox_publish` (`publish_status`,`next_retry_at`,`created_at`),
|
||
KEY `idx_inbound_outbox_finance_relay` (`publish_status`,`next_retry_at`,`created_at`,`id`)
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='入库事务Outbox事件表';
|
||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||
DROP TABLE IF EXISTS `fl_inbound_pallet_allocation`;
|
||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||
/*!50503 SET character_set_client = utf8mb4 */;
|
||
CREATE TABLE `fl_inbound_pallet_allocation` (
|
||
`id` bigint unsigned NOT NULL COMMENT '头程托盘分配引用ID',
|
||
`tenant_id` bigint unsigned NOT NULL COMMENT '客户ID和数据隔离键',
|
||
`inbound_id` bigint unsigned NOT NULL COMMENT '入库单ID',
|
||
`allocation_no` int unsigned NOT NULL COMMENT '入库单内分配序号',
|
||
`block_id` bigint unsigned NOT NULL COMMENT 'Warehouse整票连续库位块ID',
|
||
`slot_no` int unsigned NOT NULL COMMENT '连续块内稳定槽位序号',
|
||
`weight_result_id` bigint unsigned DEFAULT NULL COMMENT '已绑定称重结果ID;预留空槽为空',
|
||
`pallet_sequence` int unsigned DEFAULT NULL COMMENT '已绑定称重托盘在整票内的稳定顺序;空槽为空',
|
||
`warehouse_id` bigint unsigned NOT NULL COMMENT '仓库服务仓库ID',
|
||
`warehouse_resource_tenant_id` bigint unsigned NOT NULL COMMENT '平台公共仓储资源固定使用 0;tenant_id 仍是客户隔离键',
|
||
`pallet_id` bigint unsigned NOT NULL COMMENT '仓库服务托盘ID',
|
||
`pallet_code` varchar(50) NOT NULL COMMENT '托盘编码快照',
|
||
`pallet_capacity_cbm` decimal(18,4) NOT NULL COMMENT '托盘可用容积快照',
|
||
`allocated_volume_cbm` decimal(18,4) NOT NULL COMMENT '本托盘分配体积',
|
||
`allocated_package_count` int unsigned DEFAULT NULL COMMENT '本托盘分配箱数',
|
||
`picked_package_count` int unsigned NOT NULL DEFAULT '0' COMMENT '已拣货箱数',
|
||
`location_id` bigint unsigned NOT NULL COMMENT '仓库服务库位ID',
|
||
`location_code` varchar(50) NOT NULL COMMENT '库位编码快照',
|
||
`shared_overflow` tinyint(1) NOT NULL DEFAULT '0' COMMENT '普通连续位不足时是否使用共享A0',
|
||
`reservation_id` bigint unsigned DEFAULT NULL COMMENT '仓库预占资源唯一ID,A0共享场景用于区分托盘',
|
||
`slot_status` varchar(24) NOT NULL DEFAULT 'RESERVED_EMPTY' COMMENT '槽位状态:RESERVED_EMPTY、BOUND、TRANSFERRED、RELEASED',
|
||
`reservation_no` varchar(64) NOT NULL COMMENT '仓库库位预占单号',
|
||
`allocation_status` varchar(24) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL DEFAULT 'RESERVED' COMMENT '托盘库位分配状态:RESERVED已预占、CONFIRMED已确认、TRANSFERRED已转移、RELEASED已释放',
|
||
`created_at` datetime(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) COMMENT '创建时间',
|
||
`updated_at` datetime(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3) COMMENT '更新时间',
|
||
PRIMARY KEY (`id`),
|
||
UNIQUE KEY `uk_pallet_allocation_no` (`tenant_id`,`inbound_id`,`allocation_no`),
|
||
UNIQUE KEY `uk_pallet_allocation_slot` (`tenant_id`,`block_id`,`slot_no`),
|
||
UNIQUE KEY `uk_pallet_allocation_weight` (`tenant_id`,`weight_result_id`),
|
||
KEY `idx_allocation_location` (`tenant_id`,`warehouse_id`,`location_id`,`allocation_status`),
|
||
KEY `fk_allocation_inbound` (`inbound_id`),
|
||
KEY `idx_allocation_reservation` (`reservation_id`),
|
||
CONSTRAINT `fk_allocation_inbound` FOREIGN KEY (`inbound_id`) REFERENCES `fl_inbound_order` (`id`)
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='头程侧托盘、库位和仓库预占结果引用';
|
||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||
DROP TABLE IF EXISTS `fl_inbound_pickup_snapshot`;
|
||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||
/*!50503 SET character_set_client = utf8mb4 */;
|
||
CREATE TABLE `fl_inbound_pickup_snapshot` (
|
||
`id` bigint unsigned NOT NULL COMMENT '提货信息快照ID',
|
||
`tenant_id` bigint unsigned NOT NULL COMMENT '客户ID和数据隔离键',
|
||
`inbound_id` bigint unsigned NOT NULL COMMENT '入库单ID',
|
||
`pickup_method` varchar(24) DEFAULT NULL COMMENT '提货方式',
|
||
`pickup_at` datetime(3) DEFAULT NULL COMMENT '提货时间',
|
||
`contact_name` varchar(64) DEFAULT NULL COMMENT '提货联系人',
|
||
`contact_phone` varchar(32) DEFAULT NULL COMMENT '提货联系人电话',
|
||
`contact_email` varchar(128) DEFAULT NULL COMMENT '提货联系人邮箱',
|
||
`country_code` char(2) DEFAULT NULL COMMENT '国家二字码',
|
||
`province` varchar(64) DEFAULT NULL COMMENT '省或州',
|
||
`city` varchar(64) DEFAULT NULL COMMENT '城市',
|
||
`district` varchar(64) DEFAULT NULL COMMENT '区县',
|
||
`address_line` varchar(512) DEFAULT NULL COMMENT '提货详细地址',
|
||
`postal_code` varchar(20) DEFAULT NULL COMMENT '提货邮编',
|
||
`created_at` datetime(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) COMMENT '创建时间',
|
||
PRIMARY KEY (`id`),
|
||
UNIQUE KEY `uk_pickup_inbound` (`tenant_id`,`inbound_id`),
|
||
KEY `fk_pickup_inbound` (`inbound_id`),
|
||
CONSTRAINT `fk_pickup_inbound` FOREIGN KEY (`inbound_id`) REFERENCES `fl_inbound_order` (`id`)
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='入库单提货信息不可变快照';
|
||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||
DROP TABLE IF EXISTS `fl_inbound_split_batch`;
|
||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||
/*!50503 SET character_set_client = utf8mb4 */;
|
||
CREATE TABLE `fl_inbound_split_batch` (
|
||
`id` bigint unsigned NOT NULL COMMENT '拆分批次ID',
|
||
`tenant_id` bigint unsigned NOT NULL COMMENT '客户ID和数据隔离键',
|
||
`parent_inbound_id` bigint unsigned NOT NULL COMMENT '主入仓单ID',
|
||
`source_inbound_id` bigint unsigned DEFAULT NULL COMMENT '本批次实际消耗的MASTER或REMAINDER分片ID',
|
||
`operation_id` varchar(64) NOT NULL COMMENT '业务操作幂等号',
|
||
`idempotency_key` varchar(128) NOT NULL COMMENT '请求幂等键',
|
||
`expected_parent_version` int NOT NULL COMMENT '操作时主单乐观锁版本',
|
||
`package_count` int unsigned NOT NULL COMMENT '本批次拆分箱数',
|
||
`loaded_child_inbound_id` bigint unsigned DEFAULT NULL COMMENT '本批次实装子单ID',
|
||
`remainder_child_inbound_id` bigint unsigned DEFAULT NULL COMMENT '本批次余量子单ID',
|
||
`loaded_package_count` int unsigned NOT NULL DEFAULT '0' COMMENT '本批次实装箱数',
|
||
`remaining_package_count` int unsigned NOT NULL DEFAULT '0' COMMENT '本批次未装箱数',
|
||
`loading_plan_id` bigint unsigned DEFAULT NULL COMMENT '关联装柜计划/柜次',
|
||
`container_booking_id` bigint unsigned DEFAULT NULL COMMENT '关联柜次标识(兼容查询)',
|
||
`status` varchar(16) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL DEFAULT 'PREPARED' COMMENT '拆分批次状态:PREPARED已准备、APPLIED已生效、CANCELLED已取消',
|
||
`remark` varchar(500) DEFAULT NULL COMMENT '拆分原因或备注',
|
||
`created_by` bigint unsigned NOT NULL COMMENT '创建人ID',
|
||
`created_by_name` varchar(64) DEFAULT NULL COMMENT '创建人名称快照',
|
||
`created_at` datetime(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) COMMENT '拆分批次创建时间',
|
||
`applied_at` datetime(3) DEFAULT NULL COMMENT '批次生效时间',
|
||
`version` int NOT NULL DEFAULT '0' COMMENT '乐观锁版本号,每次更新递增',
|
||
PRIMARY KEY (`id`),
|
||
UNIQUE KEY `uk_inbound_split_operation` (`tenant_id`,`operation_id`),
|
||
UNIQUE KEY `uk_inbound_split_idempotency` (`tenant_id`,`parent_inbound_id`,`idempotency_key`),
|
||
UNIQUE KEY `uk_inbound_split_source_once` (`tenant_id`,`source_inbound_id`),
|
||
KEY `idx_inbound_split_parent` (`tenant_id`,`parent_inbound_id`,`created_at`,`id`),
|
||
KEY `fk_inbound_split_parent` (`parent_inbound_id`),
|
||
KEY `fk_inbound_split_loaded_child` (`loaded_child_inbound_id`),
|
||
KEY `fk_inbound_split_source` (`source_inbound_id`),
|
||
KEY `fk_inbound_split_remainder_child` (`remainder_child_inbound_id`),
|
||
KEY `idx_inbound_split_loading_plan` (`tenant_id`,`loading_plan_id`,`container_booking_id`,`status`,`id`),
|
||
CONSTRAINT `fk_inbound_split_loaded_child` FOREIGN KEY (`loaded_child_inbound_id`) REFERENCES `fl_inbound_order` (`id`),
|
||
CONSTRAINT `fk_inbound_split_parent` FOREIGN KEY (`parent_inbound_id`) REFERENCES `fl_inbound_order` (`id`),
|
||
CONSTRAINT `fk_inbound_split_remainder_child` FOREIGN KEY (`remainder_child_inbound_id`) REFERENCES `fl_inbound_order` (`id`),
|
||
CONSTRAINT `fk_inbound_split_source` FOREIGN KEY (`source_inbound_id`) REFERENCES `fl_inbound_order` (`id`),
|
||
CONSTRAINT `chk_inbound_split_package` CHECK ((`package_count` > 0)),
|
||
CONSTRAINT `chk_inbound_split_status` CHECK ((`status` in (_utf8mb4'PREPARED',_utf8mb4'APPLIED',_utf8mb4'CANCELLED')))
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='主入仓单拆分批次;数量口径仅为箱数';
|
||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||
DROP TABLE IF EXISTS `fl_inbound_split_detail`;
|
||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||
/*!50503 SET character_set_client = utf8mb4 */;
|
||
CREATE TABLE `fl_inbound_split_detail` (
|
||
`id` bigint unsigned NOT NULL COMMENT '部分锁定明细ID',
|
||
`tenant_id` bigint unsigned NOT NULL COMMENT '客户ID和数据隔离键',
|
||
`parent_inbound_id` bigint unsigned NOT NULL COMMENT '主入库单ID',
|
||
`child_inbound_id` bigint unsigned DEFAULT NULL COMMENT '完成拆单后生成的二级子入库单ID',
|
||
`inbound_detail_id` bigint unsigned NOT NULL COMMENT '原订单货物明细ID,不建立跨库外键',
|
||
`source_package_count` int unsigned NOT NULL COMMENT '拆分前该明细总箱数快照',
|
||
`locked_package_count` int unsigned NOT NULL COMMENT '本次装柜锁定箱数',
|
||
`remaining_package_count` int unsigned GENERATED ALWAYS AS ((`source_package_count` - `locked_package_count`)) STORED COMMENT '锁定后剩余箱数,由来源箱数减锁定箱数生成',
|
||
`status` varchar(16) NOT NULL DEFAULT 'LOCKED' COMMENT '分柜明细状态:LOCKED已锁定、COMPLETED已完成拆分',
|
||
`operation_id` varchar(128) NOT NULL COMMENT '部分锁定操作幂等号',
|
||
`created_by` bigint unsigned NOT NULL COMMENT '创建部分锁定明细的操作人ID',
|
||
`created_by_name` varchar(64) DEFAULT NULL COMMENT '创建操作人姓名快照',
|
||
`completed_by` bigint unsigned DEFAULT NULL COMMENT '完成拆分的操作人ID',
|
||
`completed_by_name` varchar(64) DEFAULT NULL COMMENT '完成操作人姓名快照',
|
||
`completed_at` datetime(3) DEFAULT NULL COMMENT '部分拆分完成时间',
|
||
`created_at` datetime(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) COMMENT '部分锁定明细创建时间',
|
||
`updated_at` datetime(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3) COMMENT '部分锁定明细最后更新时间',
|
||
`version` int unsigned NOT NULL DEFAULT '0' COMMENT '乐观锁版本号,每次更新递增',
|
||
PRIMARY KEY (`id`),
|
||
UNIQUE KEY `uk_inbound_split_parent_detail` (`tenant_id`,`parent_inbound_id`,`inbound_detail_id`),
|
||
UNIQUE KEY `uk_inbound_split_operation` (`operation_id`),
|
||
UNIQUE KEY `uk_inbound_split_child_detail` (`tenant_id`,`child_inbound_id`,`inbound_detail_id`),
|
||
KEY `idx_inbound_split_status` (`tenant_id`,`parent_inbound_id`,`status`),
|
||
KEY `fk_inbound_split_detail_parent` (`parent_inbound_id`),
|
||
KEY `fk_inbound_split_detail_child` (`child_inbound_id`),
|
||
CONSTRAINT `fk_inbound_split_detail_child` FOREIGN KEY (`child_inbound_id`) REFERENCES `fl_inbound_order` (`id`),
|
||
CONSTRAINT `fk_inbound_split_detail_parent` FOREIGN KEY (`parent_inbound_id`) REFERENCES `fl_inbound_order` (`id`),
|
||
CONSTRAINT `chk_inbound_split_completion` CHECK ((((`status` = _utf8mb4'LOCKED') and (`child_inbound_id` is null) and (`completed_at` is null)) or ((`status` = _utf8mb4'COMPLETED') and (`child_inbound_id` is not null) and (`completed_at` is not null)))),
|
||
CONSTRAINT `chk_inbound_split_partial` CHECK (((`source_package_count` > 1) and (`locked_package_count` > 0) and (`locked_package_count` < `source_package_count`))),
|
||
CONSTRAINT `chk_legacy_inbound_split_status` CHECK ((`status` in (_utf8mb4'LOCKED',_utf8mb4'COMPLETED')))
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='按箱数部分锁定及剩余箱数生成二级子入库单的不可变契约';
|
||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||
DROP TABLE IF EXISTS `fl_inbound_split_history`;
|
||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||
/*!50503 SET character_set_client = utf8mb4 */;
|
||
CREATE TABLE `fl_inbound_split_history` (
|
||
`id` bigint unsigned NOT NULL COMMENT '拆分历史ID',
|
||
`tenant_id` bigint unsigned NOT NULL COMMENT '客户ID和数据隔离键',
|
||
`split_batch_id` bigint unsigned NOT NULL COMMENT '拆分批次ID',
|
||
`operation_id` varchar(64) NOT NULL COMMENT '历史操作幂等号',
|
||
`action_type` varchar(24) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '拆分动作:CREATE创建批次、APPLY生效、CANCEL取消',
|
||
`before_snapshot` json DEFAULT NULL COMMENT '操作前快照',
|
||
`after_snapshot` json NOT NULL COMMENT '操作后快照',
|
||
`operator_id` bigint unsigned NOT NULL COMMENT '操作人ID',
|
||
`operator_name` varchar(64) DEFAULT NULL COMMENT '操作人名称快照',
|
||
`operation_reason` varchar(500) DEFAULT NULL COMMENT '操作原因',
|
||
`created_at` datetime(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) COMMENT '不可变拆分历史创建时间',
|
||
PRIMARY KEY (`id`),
|
||
UNIQUE KEY `uk_inbound_split_history_operation` (`tenant_id`,`operation_id`),
|
||
KEY `idx_inbound_split_history` (`tenant_id`,`split_batch_id`,`created_at`,`id`),
|
||
KEY `fk_inbound_split_history_batch` (`split_batch_id`),
|
||
CONSTRAINT `fk_inbound_split_history_batch` FOREIGN KEY (`split_batch_id`) REFERENCES `fl_inbound_split_batch` (`id`),
|
||
CONSTRAINT `chk_inbound_split_action` CHECK ((`action_type` in (_utf8mb4'CREATE',_utf8mb4'APPLY',_utf8mb4'CANCEL')))
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='不可变主子入仓单拆分审计历史';
|
||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||
DROP TABLE IF EXISTS `fl_inbound_split_item`;
|
||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||
/*!50503 SET character_set_client = utf8mb4 */;
|
||
CREATE TABLE `fl_inbound_split_item` (
|
||
`id` bigint unsigned NOT NULL COMMENT '拆分明细ID',
|
||
`tenant_id` bigint unsigned NOT NULL COMMENT '客户ID和数据隔离键',
|
||
`split_batch_id` bigint unsigned NOT NULL COMMENT '拆分批次ID',
|
||
`parent_inbound_id` bigint unsigned NOT NULL COMMENT '主入仓单ID',
|
||
`child_inbound_id` bigint unsigned NOT NULL COMMENT '子入仓单ID',
|
||
`line_no` int unsigned NOT NULL COMMENT '同一拆分批次内的行号',
|
||
`source_inbound_detail_id` bigint unsigned DEFAULT NULL COMMENT '订单货物明细逻辑ID',
|
||
`source_measurement_id` bigint unsigned NOT NULL COMMENT '来源测量批次ID',
|
||
`source_measurement_item_id` bigint unsigned NOT NULL COMMENT '来源测量箱规明细ID',
|
||
`package_count` int unsigned NOT NULL COMMENT '分配给子单的箱数',
|
||
`created_at` datetime(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) COMMENT '拆分数量台账创建时间',
|
||
PRIMARY KEY (`id`),
|
||
UNIQUE KEY `uk_inbound_split_batch_line` (`tenant_id`,`split_batch_id`,`line_no`),
|
||
UNIQUE KEY `uk_inbound_split_batch_source_child` (`tenant_id`,`split_batch_id`,`source_measurement_item_id`,`child_inbound_id`),
|
||
KEY `idx_inbound_split_detail` (`tenant_id`,`source_inbound_detail_id`,`created_at`),
|
||
KEY `fk_inbound_split_item_batch` (`split_batch_id`),
|
||
KEY `fk_inbound_split_item_parent` (`parent_inbound_id`),
|
||
KEY `fk_inbound_split_item_child` (`child_inbound_id`),
|
||
KEY `fk_inbound_split_item_measurement` (`source_measurement_id`),
|
||
KEY `fk_inbound_split_item_measure_item` (`source_measurement_item_id`),
|
||
CONSTRAINT `fk_inbound_split_item_batch` FOREIGN KEY (`split_batch_id`) REFERENCES `fl_inbound_split_batch` (`id`),
|
||
CONSTRAINT `fk_inbound_split_item_child` FOREIGN KEY (`child_inbound_id`) REFERENCES `fl_inbound_order` (`id`),
|
||
CONSTRAINT `fk_inbound_split_item_measure_item` FOREIGN KEY (`source_measurement_item_id`) REFERENCES `fl_inbound_measurement_item` (`id`),
|
||
CONSTRAINT `fk_inbound_split_item_measurement` FOREIGN KEY (`source_measurement_id`) REFERENCES `fl_inbound_measurement` (`id`),
|
||
CONSTRAINT `fk_inbound_split_item_parent` FOREIGN KEY (`parent_inbound_id`) REFERENCES `fl_inbound_order` (`id`),
|
||
CONSTRAINT `chk_inbound_split_item_package` CHECK ((`package_count` > 0))
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='主子入仓单拆分数量台账';
|
||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||
DROP TABLE IF EXISTS `fl_inbound_status_history`;
|
||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||
/*!50503 SET character_set_client = utf8mb4 */;
|
||
CREATE TABLE `fl_inbound_status_history` (
|
||
`id` bigint unsigned NOT NULL COMMENT '入库状态历史ID',
|
||
`tenant_id` bigint unsigned NOT NULL COMMENT '客户ID和数据隔离键',
|
||
`inbound_id` bigint unsigned NOT NULL COMMENT '入库单ID',
|
||
`from_status` varchar(24) DEFAULT NULL COMMENT '变更前状态',
|
||
`to_status` varchar(24) NOT NULL COMMENT '变更后状态',
|
||
`action` varchar(32) NOT NULL COMMENT '触发动作',
|
||
`reason` varchar(1000) DEFAULT NULL COMMENT '变更原因',
|
||
`operator_id` bigint unsigned NOT NULL COMMENT '操作人ID',
|
||
`operator_name` varchar(64) DEFAULT NULL COMMENT '操作人名称快照',
|
||
`occurred_at` datetime(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) COMMENT '发生时间',
|
||
PRIMARY KEY (`id`),
|
||
KEY `idx_inbound_history_time` (`tenant_id`,`inbound_id`,`occurred_at`),
|
||
KEY `fk_history_inbound` (`inbound_id`),
|
||
CONSTRAINT `fk_history_inbound` FOREIGN KEY (`inbound_id`) REFERENCES `fl_inbound_order` (`id`)
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='入库单流程状态不可变历史';
|
||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||
DROP TABLE IF EXISTS `fl_inbound_transport_snapshot`;
|
||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||
/*!50503 SET character_set_client = utf8mb4 */;
|
||
CREATE TABLE `fl_inbound_transport_snapshot` (
|
||
`id` bigint unsigned NOT NULL COMMENT '运输信息快照ID',
|
||
`tenant_id` bigint unsigned NOT NULL COMMENT '客户ID和数据隔离键',
|
||
`inbound_id` bigint unsigned NOT NULL COMMENT '入库单ID',
|
||
`loading_status` varchar(24) DEFAULT NULL COMMENT '配载状态快照',
|
||
`container_no` varchar(64) DEFAULT NULL COMMENT '集装箱号',
|
||
`cabinet_no` varchar(64) DEFAULT NULL COMMENT '柜号或内部柜单号',
|
||
`vessel_name` varchar(128) DEFAULT NULL COMMENT '船名',
|
||
`voyage_no` varchar(64) DEFAULT NULL COMMENT '航次',
|
||
`sailing_at` datetime(3) DEFAULT NULL COMMENT '开船时间',
|
||
`port_arrival_at` datetime(3) DEFAULT NULL COMMENT '到港时间',
|
||
`source_updated_at` datetime(3) DEFAULT NULL COMMENT '上游数据更新时间',
|
||
`created_at` datetime(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) COMMENT '创建时间',
|
||
`updated_at` datetime(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3) COMMENT '更新时间',
|
||
PRIMARY KEY (`id`),
|
||
UNIQUE KEY `uk_transport_inbound` (`tenant_id`,`inbound_id`),
|
||
KEY `idx_transport_container` (`tenant_id`,`container_no`),
|
||
KEY `idx_transport_cabinet` (`tenant_id`,`cabinet_no`),
|
||
KEY `idx_transport_loading` (`tenant_id`,`loading_status`,`sailing_at`),
|
||
KEY `fk_transport_inbound` (`inbound_id`),
|
||
CONSTRAINT `fk_transport_inbound` FOREIGN KEY (`inbound_id`) REFERENCES `fl_inbound_order` (`id`)
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='入库单关联运输信息只读快照';
|
||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||
DROP TABLE IF EXISTS `fl_inbound_weight_result`;
|
||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||
/*!50503 SET character_set_client = utf8mb4 */;
|
||
CREATE TABLE `fl_inbound_weight_result` (
|
||
`id` bigint unsigned NOT NULL COMMENT 'OCR重量结果ID',
|
||
`tenant_id` bigint unsigned NOT NULL COMMENT '客户ID和数据隔离键',
|
||
`inbound_id` bigint unsigned NOT NULL COMMENT '入库单ID',
|
||
`file_id` bigint unsigned NOT NULL COMMENT '称重图片文件ID',
|
||
`pallet_id` bigint unsigned NOT NULL DEFAULT '0' COMMENT 'Warehouse托盘ID',
|
||
`pallet_code` varchar(50) NOT NULL DEFAULT '' COMMENT '托盘编码快照',
|
||
`pallet_type` varchar(32) NOT NULL DEFAULT '' COMMENT '托盘类型快照',
|
||
`pallet_capacity_cbm` decimal(18,4) NOT NULL DEFAULT '0.0000' COMMENT '托盘容量CBM快照',
|
||
`pallet_tare_weight_kg` decimal(18,3) NOT NULL DEFAULT '0.000' COMMENT '托盘皮重KG快照',
|
||
`ocr_provider` varchar(64) DEFAULT NULL COMMENT 'OCR服务商编码',
|
||
`ocr_raw_text` varchar(1000) DEFAULT NULL COMMENT 'OCR原始文本',
|
||
`ocr_weight_value` decimal(18,3) DEFAULT NULL COMMENT 'OCR识别原始重量值',
|
||
`ocr_weight_unit` varchar(8) DEFAULT NULL COMMENT 'OCR识别原始单位',
|
||
`confidence` decimal(6,5) DEFAULT NULL COMMENT '识别置信度',
|
||
`adjusted_weight_value` decimal(18,3) DEFAULT NULL COMMENT '人工修正后的原单位重量',
|
||
`adjusted_weight_unit` varchar(8) DEFAULT NULL COMMENT '人工修正后的单位',
|
||
`gross_weight_kg` decimal(18,3) DEFAULT NULL COMMENT '确认时统一换算后的含托盘毛重kg',
|
||
`net_weight_kg` decimal(18,3) DEFAULT NULL COMMENT '确认毛重扣除托盘皮重后的货物净重kg',
|
||
`recognition_status` varchar(24) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL DEFAULT 'PENDING' COMMENT '重量识别状态:PENDING待识别、PENDING_CONFIRM待确认、NEEDS_MANUAL需人工录入、CONFIRMED已确认',
|
||
`adjustment_reason` varchar(500) DEFAULT NULL COMMENT '人工修正原因',
|
||
`adjusted_by` bigint unsigned DEFAULT NULL COMMENT '修正人ID',
|
||
`adjusted_at` datetime(3) DEFAULT NULL COMMENT '修正时间',
|
||
`confirmed_by` bigint unsigned DEFAULT NULL COMMENT '确认人ID',
|
||
`confirmed_at` datetime(3) DEFAULT NULL COMMENT '确认时间',
|
||
`created_by` bigint unsigned NOT NULL DEFAULT '0' COMMENT '创建人ID',
|
||
`created_at` datetime(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) COMMENT '创建时间',
|
||
`updated_by` bigint unsigned NOT NULL DEFAULT '0' COMMENT '最后修改人ID',
|
||
`updated_at` datetime(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3) COMMENT '更新时间',
|
||
`deleted` tinyint(1) NOT NULL DEFAULT '0' COMMENT '逻辑删除标记',
|
||
`version` int NOT NULL DEFAULT '0' COMMENT '乐观锁版本号',
|
||
PRIMARY KEY (`id`),
|
||
UNIQUE KEY `uk_weight_inbound_file` (`tenant_id`,`inbound_id`,`file_id`),
|
||
KEY `idx_weight_inbound_status` (`tenant_id`,`inbound_id`,`recognition_status`),
|
||
KEY `fk_weight_inbound` (`inbound_id`),
|
||
KEY `idx_weight_inbound_pallet` (`tenant_id`,`inbound_id`,`pallet_id`),
|
||
CONSTRAINT `fk_weight_inbound` FOREIGN KEY (`inbound_id`) REFERENCES `fl_inbound_order` (`id`)
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='称重图片OCR原值、人工修正值和确认重量';
|
||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||
DROP TABLE IF EXISTS `fl_inbound_weight_revision`;
|
||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||
/*!50503 SET character_set_client = utf8mb4 */;
|
||
CREATE TABLE `fl_inbound_weight_revision` (
|
||
`id` bigint unsigned NOT NULL COMMENT 'OCR重量修订记录ID',
|
||
`tenant_id` bigint unsigned NOT NULL COMMENT '客户ID和数据隔离键',
|
||
`inbound_id` bigint unsigned NOT NULL COMMENT '入库单ID',
|
||
`weight_result_id` bigint unsigned NOT NULL COMMENT 'OCR重量结果ID',
|
||
`revision_no` int unsigned NOT NULL COMMENT '结果版本号,与乐观锁版本一致',
|
||
`action` varchar(24) NOT NULL COMMENT '动作:CORRECT或CONFIRM',
|
||
`before_weight_value` decimal(18,3) DEFAULT NULL COMMENT '变更前原单位重量',
|
||
`before_weight_unit` varchar(8) DEFAULT NULL COMMENT '变更前单位',
|
||
`after_weight_value` decimal(18,3) DEFAULT NULL COMMENT '变更后原单位重量',
|
||
`after_weight_unit` varchar(8) DEFAULT NULL COMMENT '变更后单位',
|
||
`gross_weight_kg` decimal(18,3) DEFAULT NULL COMMENT '确认时统一换算后的含托盘毛重kg',
|
||
`net_weight_kg` decimal(18,3) DEFAULT NULL COMMENT '确认毛重扣除托盘皮重后的货物净重kg',
|
||
`reason` varchar(500) DEFAULT NULL COMMENT '人工修正原因',
|
||
`operator_id` bigint unsigned NOT NULL COMMENT '操作人ID',
|
||
`operator_name` varchar(64) DEFAULT NULL COMMENT '操作人名称快照',
|
||
`operated_at` datetime(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) COMMENT '操作时间',
|
||
PRIMARY KEY (`id`),
|
||
UNIQUE KEY `uk_weight_revision_no` (`tenant_id`,`weight_result_id`,`revision_no`),
|
||
KEY `idx_weight_revision_time` (`tenant_id`,`inbound_id`,`operated_at`),
|
||
KEY `fk_weight_revision_inbound` (`inbound_id`),
|
||
KEY `fk_weight_revision_result` (`weight_result_id`),
|
||
CONSTRAINT `fk_weight_revision_inbound` FOREIGN KEY (`inbound_id`) REFERENCES `fl_inbound_order` (`id`),
|
||
CONSTRAINT `fk_weight_revision_result` FOREIGN KEY (`weight_result_id`) REFERENCES `fl_inbound_weight_result` (`id`)
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='OCR重量人工修正和确认的不可变版本历史';
|
||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||
DROP TABLE IF EXISTS `fl_loading_cabinet_evidence`;
|
||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||
/*!50503 SET character_set_client = utf8mb4 */;
|
||
CREATE TABLE `fl_loading_cabinet_evidence` (
|
||
`id` bigint unsigned NOT NULL COMMENT '柜次证据记录ID',
|
||
`container_booking_id` bigint unsigned NOT NULL COMMENT '证据唯一归属柜次ID',
|
||
`source_task_id` bigint unsigned NOT NULL COMMENT '上传来源PDA任务ID,仅用于审计',
|
||
`evidence_type` varchar(32) NOT NULL COMMENT '四步照片或带锁码照类型',
|
||
`file_id` bigint unsigned NOT NULL COMMENT 'File服务文件ID',
|
||
`file_name` varchar(255) NOT NULL COMMENT '文件名称快照',
|
||
`seal_no` varchar(64) DEFAULT NULL COMMENT '带锁码照对应锁码',
|
||
`remark` varchar(1000) DEFAULT NULL COMMENT '证据备注',
|
||
`status` varchar(16) NOT NULL DEFAULT 'ACTIVE' COMMENT '证据状态:ACTIVE有效、VOID作废',
|
||
`active_flag` tinyint unsigned DEFAULT '1' COMMENT '有效唯一标识;作废后置NULL',
|
||
`operation_key` varchar(128) NOT NULL COMMENT '任务范围内幂等操作键',
|
||
`request_hash` char(64) NOT NULL COMMENT '规范化请求SHA-256摘要',
|
||
`void_reason` varchar(500) DEFAULT NULL COMMENT '作废原因',
|
||
`voided_by` bigint unsigned DEFAULT NULL COMMENT '作废操作人ID',
|
||
`voided_by_name` varchar(128) DEFAULT NULL COMMENT '作废操作人名称快照',
|
||
`voided_at` datetime(3) DEFAULT NULL COMMENT '作废时间',
|
||
`version` int NOT NULL DEFAULT '0' COMMENT '乐观锁版本',
|
||
`created_by` bigint unsigned NOT NULL COMMENT '创建操作人ID',
|
||
`created_by_name` varchar(128) DEFAULT NULL COMMENT '创建操作人名称快照',
|
||
`updated_by` bigint unsigned NOT NULL COMMENT '最后修改操作人ID',
|
||
`updated_by_name` varchar(128) DEFAULT NULL COMMENT '最后修改操作人名称快照',
|
||
`created_at` datetime(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) COMMENT '创建时间',
|
||
`updated_at` datetime(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3) COMMENT '最后更新时间',
|
||
PRIMARY KEY (`id`),
|
||
UNIQUE KEY `uk_cabinet_evidence_operation` (`source_task_id`,`operation_key`),
|
||
UNIQUE KEY `uk_cabinet_evidence_active` (`container_booking_id`,`evidence_type`,`active_flag`),
|
||
KEY `idx_cabinet_evidence_container` (`container_booking_id`,`status`),
|
||
KEY `idx_cabinet_evidence_seal` (`seal_no`,`active_flag`),
|
||
CONSTRAINT `fk_cabinet_evidence_booking` FOREIGN KEY (`container_booking_id`) REFERENCES `fl_container_booking` (`id`),
|
||
CONSTRAINT `fk_cabinet_evidence_task` FOREIGN KEY (`source_task_id`) REFERENCES `fl_loading_pick_task` (`id`),
|
||
CONSTRAINT `chk_cabinet_evidence_status` CHECK ((`status` in (_utf8mb4'ACTIVE',_utf8mb4'VOID'))),
|
||
CONSTRAINT `chk_cabinet_evidence_type` CHECK ((`evidence_type` in (_utf8mb4'PHOTO_STEP_1',_utf8mb4'PHOTO_STEP_2',_utf8mb4'PHOTO_STEP_3',_utf8mb4'PHOTO_STEP_4',_utf8mb4'SEAL')))
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='柜次物理装柜证据;task仅记录来源审计';
|
||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||
DROP TABLE IF EXISTS `fl_loading_completion_checkpoint`;
|
||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||
/*!50503 SET character_set_client = utf8mb4 */;
|
||
CREATE TABLE `fl_loading_completion_checkpoint` (
|
||
`command_id` bigint unsigned NOT NULL COMMENT '可靠装柜完成命令ID',
|
||
`tenant_id` bigint unsigned NOT NULL COMMENT '入库单客户ID',
|
||
`inbound_id` bigint unsigned NOT NULL COMMENT '入库单ID',
|
||
`owner_sequence` int unsigned NOT NULL COMMENT '稳定处理顺序',
|
||
`checkpoint_stage` varchar(24) NOT NULL COMMENT '入库单处理检查点',
|
||
`created_at` datetime(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) COMMENT '检查点创建时间',
|
||
`updated_at` datetime(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3) COMMENT '检查点更新时间',
|
||
PRIMARY KEY (`command_id`,`tenant_id`,`inbound_id`),
|
||
KEY `idx_loading_completion_owner` (`command_id`,`owner_sequence`),
|
||
CONSTRAINT `fk_loading_completion_checkpoint_command` FOREIGN KEY (`command_id`) REFERENCES `fl_loading_completion_command` (`id`),
|
||
CONSTRAINT `chk_loading_completion_checkpoint` CHECK ((`checkpoint_stage` in (_utf8mb4'READY',_utf8mb4'SETTLED',_utf8mb4'INBOUND_COMPLETED')))
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='PDA装柜完成按入库单恢复检查点';
|
||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||
DROP TABLE IF EXISTS `fl_loading_completion_command`;
|
||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||
/*!50503 SET character_set_client = utf8mb4 */;
|
||
CREATE TABLE `fl_loading_completion_command` (
|
||
`id` bigint unsigned NOT NULL COMMENT '可靠装柜完成命令ID',
|
||
`pick_task_id` bigint unsigned NOT NULL COMMENT 'PDA任务ID',
|
||
`operation_id` varchar(128) NOT NULL COMMENT '客户端全局幂等操作ID',
|
||
`request_hash` char(64) NOT NULL COMMENT '规范化请求摘要',
|
||
`command_status` varchar(16) NOT NULL COMMENT 'PROCESSING、RETRYABLE、FAILED、COMPLETED',
|
||
`expected_task_version` int unsigned NOT NULL COMMENT '受理时客户端任务版本',
|
||
`remark` varchar(500) DEFAULT NULL COMMENT '完成备注',
|
||
`operator_id` bigint unsigned NOT NULL COMMENT '操作人ID',
|
||
`operator_name` varchar(64) DEFAULT NULL COMMENT '操作人名称快照',
|
||
`attempt_count` int unsigned NOT NULL DEFAULT '0' COMMENT 'worker认领次数',
|
||
`next_retry_at` datetime(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) COMMENT '下次处理时间',
|
||
`lease_owner` varchar(128) DEFAULT NULL COMMENT 'worker租约持有者',
|
||
`lease_until` datetime(3) DEFAULT NULL COMMENT 'worker租约截止时间',
|
||
`failure_stage` varchar(40) DEFAULT NULL COMMENT '脱敏失败阶段',
|
||
`failure_code` varchar(32) DEFAULT NULL COMMENT '下游或业务错误码',
|
||
`failure_request_id` varchar(64) DEFAULT NULL COMMENT '下游请求ID',
|
||
`failure_trace_id` varchar(64) DEFAULT NULL COMMENT '下游链路ID',
|
||
`created_at` datetime(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3),
|
||
`updated_at` datetime(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3),
|
||
`completed_at` datetime(3) DEFAULT NULL,
|
||
PRIMARY KEY (`id`),
|
||
UNIQUE KEY `uk_loading_completion_operation` (`operation_id`),
|
||
KEY `idx_loading_completion_dispatch` (`command_status`,`next_retry_at`,`lease_until`),
|
||
KEY `fk_loading_completion_task` (`pick_task_id`),
|
||
CONSTRAINT `fk_loading_completion_task` FOREIGN KEY (`pick_task_id`) REFERENCES `fl_loading_pick_task` (`id`),
|
||
CONSTRAINT `chk_loading_completion_status` CHECK ((`command_status` in (_utf8mb4'PROCESSING',_utf8mb4'RETRYABLE',_utf8mb4'FAILED',_utf8mb4'COMPLETED')))
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='PDA装柜完成可靠异步命令';
|
||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||
DROP TABLE IF EXISTS `fl_loading_evidence`;
|
||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||
/*!50503 SET character_set_client = utf8mb4 */;
|
||
CREATE TABLE `fl_loading_evidence` (
|
||
`id` bigint unsigned NOT NULL COMMENT '装柜证据记录ID',
|
||
`tenant_id` bigint unsigned NOT NULL COMMENT '客户ID和数据隔离键',
|
||
`inbound_id` bigint unsigned NOT NULL COMMENT '关联入库单逻辑ID',
|
||
`evidence_type` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT 'PHOTO_STEP_1空仓/PHOTO_STEP_2半仓/PHOTO_STEP_3满仓/PHOTO_STEP_4锁仓/SEAL带锁码照',
|
||
`file_id` bigint unsigned DEFAULT NULL COMMENT 'File 服务逻辑文件ID',
|
||
`file_name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '上传时文件名称快照',
|
||
`seal_no` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '锁码文本;带锁码照必填,客户不可见',
|
||
`remark` varchar(1000) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '证据补充说明',
|
||
`version` int NOT NULL DEFAULT '0' COMMENT '乐观锁版本号,每次更新递增',
|
||
`created_by` bigint unsigned NOT NULL COMMENT '上传证据的操作人ID',
|
||
`created_by_name` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '上传证据的操作人姓名快照',
|
||
`updated_by` bigint unsigned NOT NULL COMMENT '最后修改操作人ID',
|
||
`updated_by_name` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '最后修改操作人姓名快照',
|
||
`created_at` datetime(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) COMMENT '证据记录创建时间',
|
||
`updated_at` datetime(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3) COMMENT '证据记录最后更新时间',
|
||
`status` varchar(16) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL DEFAULT 'ACTIVE' COMMENT '证据状态:ACTIVE有效、VOID已作废;错误照片保留记录不硬删除',
|
||
`void_reason` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '照片作废原因',
|
||
`voided_by` bigint unsigned DEFAULT NULL COMMENT '执行作废的平台操作人ID',
|
||
`voided_by_name` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '执行作废的平台操作人姓名快照',
|
||
`voided_at` datetime(3) DEFAULT NULL COMMENT '照片作废时间',
|
||
PRIMARY KEY (`id`),
|
||
KEY `idx_loading_evidence_time` (`tenant_id`,`inbound_id`,`updated_at`),
|
||
KEY `fk_loading_evidence_inbound` (`inbound_id`),
|
||
KEY `idx_loading_evidence_type` (`tenant_id`,`inbound_id`,`evidence_type`,`status`),
|
||
KEY `idx_loading_evidence_seal` (`tenant_id`,`seal_no`,`status`),
|
||
CONSTRAINT `fk_loading_evidence_inbound` FOREIGN KEY (`inbound_id`) REFERENCES `fl_inbound_order` (`id`)
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='订单装柜空仓/半仓/满仓/锁仓/带锁码照证据';
|
||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||
DROP TABLE IF EXISTS `fl_loading_operation`;
|
||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||
/*!50503 SET character_set_client = utf8mb4 */;
|
||
CREATE TABLE `fl_loading_operation` (
|
||
`id` bigint unsigned NOT NULL COMMENT '装柜写操作记录ID',
|
||
`tenant_id` bigint unsigned NOT NULL COMMENT '客户ID和数据隔离键',
|
||
`inbound_id` bigint unsigned NOT NULL COMMENT '操作目标入库单逻辑ID',
|
||
`operator_id` bigint unsigned NOT NULL COMMENT '执行写操作的平台用户ID',
|
||
`operation` varchar(48) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '装柜或证据写操作类型',
|
||
`idempotency_key` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '客户端幂等键,同一操作重试复用',
|
||
`request_hash` char(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '规范化请求内容SHA-256摘要',
|
||
`status` varchar(16) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL DEFAULT 'PROCESSING' COMMENT '幂等处理状态:PROCESSING处理中、SUCCESS成功、FAILED失败',
|
||
`result_json` json DEFAULT NULL COMMENT '成功结果或失败信息JSON快照,用于幂等重放',
|
||
`created_at` datetime(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) COMMENT '操作声明创建时间',
|
||
`completed_at` datetime(3) DEFAULT NULL COMMENT '操作完成时间',
|
||
PRIMARY KEY (`id`),
|
||
UNIQUE KEY `uk_loading_operation` (`tenant_id`,`inbound_id`,`operator_id`,`operation`,`idempotency_key`),
|
||
KEY `idx_loading_operation_time` (`tenant_id`,`inbound_id`,`created_at`),
|
||
KEY `fk_loading_operation_inbound` (`inbound_id`),
|
||
CONSTRAINT `fk_loading_operation_inbound` FOREIGN KEY (`inbound_id`) REFERENCES `fl_inbound_order` (`id`)
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='装柜与派送写操作幂等记录';
|
||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||
DROP TABLE IF EXISTS `fl_loading_pallet_label`;
|
||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||
/*!50503 SET character_set_client = utf8mb4 */;
|
||
CREATE TABLE `fl_loading_pallet_label` (
|
||
`id` bigint unsigned NOT NULL COMMENT '散货托盘标签ID(雪花ID)',
|
||
`loading_plan_id` bigint unsigned NOT NULL COMMENT '装柜计划ID',
|
||
`loading_plan_item_id` bigint unsigned NOT NULL COMMENT '标签归属装柜明细ID',
|
||
`account_id` bigint unsigned NOT NULL COMMENT '客户ID快照',
|
||
`inbound_id` bigint unsigned NOT NULL COMMENT '入仓单ID快照',
|
||
`inbound_code` varchar(40) NOT NULL COMMENT '入仓码快照',
|
||
`container_no` varchar(64) NOT NULL COMMENT '真实集装箱号快照',
|
||
`destination_warehouse_code` varchar(64) NOT NULL COMMENT 'FBA仓编码快照',
|
||
`destination_warehouse_name` varchar(128) DEFAULT NULL COMMENT 'FBA仓名称快照',
|
||
`pallet_index` int unsigned NOT NULL COMMENT '当前柜当前FBA仓内从1开始的序号',
|
||
`pallet_code` varchar(128) NOT NULL COMMENT '托盘码:集装箱号-FBA仓编码-三位序号',
|
||
`created_at` datetime(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) COMMENT '生成时间',
|
||
PRIMARY KEY (`id`),
|
||
UNIQUE KEY `uk_loading_pallet_code` (`pallet_code`),
|
||
UNIQUE KEY `uk_loading_pallet_index` (`loading_plan_id`,`destination_warehouse_code`,`pallet_index`),
|
||
KEY `idx_loading_pallet_item` (`loading_plan_item_id`,`pallet_index`),
|
||
KEY `idx_loading_pallet_inbound` (`account_id`,`inbound_id`),
|
||
CONSTRAINT `fk_loading_pallet_item` FOREIGN KEY (`loading_plan_item_id`) REFERENCES `fl_loading_plan_item` (`id`),
|
||
CONSTRAINT `fk_loading_pallet_plan` FOREIGN KEY (`loading_plan_id`) REFERENCES `fl_loading_plan` (`id`),
|
||
CONSTRAINT `chk_loading_pallet_index` CHECK ((`pallet_index` between 1 and 999))
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='散货按柜号和FBA仓冻结的可打印托盘码';
|
||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||
DROP TABLE IF EXISTS `fl_loading_pick_assignment`;
|
||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||
/*!50503 SET character_set_client = utf8mb4 */;
|
||
CREATE TABLE `fl_loading_pick_assignment` (
|
||
`pick_task_id` bigint unsigned NOT NULL COMMENT '柜次PDA拣货任务ID;同一任务仅保留一名作业员',
|
||
`assignee_id` bigint unsigned NOT NULL COMMENT '当前唯一作业员ID',
|
||
`assignee_name` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '当前作业员姓名快照',
|
||
`assigned_by` bigint unsigned NOT NULL COMMENT '领取任务的作业员或执行分配的平台用户ID',
|
||
`assigned_by_name` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '领取或分配操作人姓名快照',
|
||
`assignment_type` varchar(16) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '分配方式:CLAIMED作业员领取、ASSIGNED平台指派',
|
||
`version` int unsigned NOT NULL DEFAULT '0' COMMENT '乐观锁版本号,防止多人并发领取或覆盖',
|
||
`created_at` datetime(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) COMMENT '任务领取或分配时间',
|
||
`updated_at` datetime(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3) COMMENT '作业员分配最后更新时间',
|
||
PRIMARY KEY (`pick_task_id`),
|
||
KEY `idx_loading_pick_assignee` (`assignee_id`,`updated_at`),
|
||
CONSTRAINT `fk_loading_pick_assignment_task` FOREIGN KEY (`pick_task_id`) REFERENCES `fl_loading_pick_task` (`id`),
|
||
CONSTRAINT `chk_loading_pick_assignment_type` CHECK ((`assignment_type` in (_utf8mb4'CLAIMED',_utf8mb4'ASSIGNED')))
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='柜次PDA任务领取与作业员分配';
|
||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||
DROP TABLE IF EXISTS `fl_loading_pick_history`;
|
||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||
/*!50503 SET character_set_client = utf8mb4 */;
|
||
CREATE TABLE `fl_loading_pick_history` (
|
||
`id` bigint unsigned NOT NULL COMMENT 'PDA拣货操作历史ID',
|
||
`pick_task_id` bigint unsigned NOT NULL COMMENT 'PDA拣货任务ID',
|
||
`pick_item_id` bigint unsigned NOT NULL COMMENT 'PDA拣货明细ID',
|
||
`operation_id` varchar(128) NOT NULL COMMENT '客户端幂等操作号',
|
||
`request_hash` char(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '完整批量请求内容SHA-256摘要',
|
||
`action_type` varchar(24) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL DEFAULT 'PICK' COMMENT '拣货动作:PICK正常拣货、PARTIAL部分拣货、SKIP跳拣',
|
||
`picked_package_count` int unsigned NOT NULL COMMENT '本次拣货箱数',
|
||
`operation_reason` varchar(500) DEFAULT NULL COMMENT '部分拣货或跳拣原因',
|
||
`operator_id` bigint unsigned NOT NULL COMMENT '执行PDA拣货操作的作业员ID',
|
||
`operator_name` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '作业员姓名快照',
|
||
`created_at` datetime(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) COMMENT '不可变拣货操作历史创建时间',
|
||
PRIMARY KEY (`id`),
|
||
UNIQUE KEY `uk_loading_pick_history_operation` (`operation_id`),
|
||
KEY `idx_loading_pick_history_item` (`pick_item_id`,`created_at`),
|
||
KEY `fk_loading_pick_history_task` (`pick_task_id`),
|
||
CONSTRAINT `fk_loading_pick_history_item` FOREIGN KEY (`pick_item_id`) REFERENCES `fl_loading_pick_item` (`id`),
|
||
CONSTRAINT `fk_loading_pick_history_task` FOREIGN KEY (`pick_task_id`) REFERENCES `fl_loading_pick_task` (`id`)
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='PDA拣货幂等和操作审计历史';
|
||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||
DROP TABLE IF EXISTS `fl_loading_pick_item`;
|
||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||
/*!50503 SET character_set_client = utf8mb4 */;
|
||
CREATE TABLE `fl_loading_pick_item` (
|
||
`id` bigint unsigned NOT NULL COMMENT 'PDA拣货明细ID',
|
||
`pick_task_id` bigint unsigned NOT NULL COMMENT 'PDA拣货任务ID',
|
||
`loading_plan_item_id` bigint unsigned NOT NULL COMMENT '装柜计划明细ID',
|
||
`inbound_id` bigint unsigned NOT NULL COMMENT '父入库单ID',
|
||
`inbound_detail_id` bigint unsigned NOT NULL COMMENT '订单货物明细ID',
|
||
`planned_package_count` int unsigned NOT NULL COMMENT '计划拣货箱数;上层拆分按业务规则向上取整',
|
||
`picked_package_count` int unsigned NOT NULL DEFAULT '0' COMMENT '已拣货箱数',
|
||
`item_status` varchar(16) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL DEFAULT 'PENDING' COMMENT '拣货明细状态:PENDING待拣、PICKING拣货中、PICKED已拣完、PARTIAL部分拣货、SKIPPED跳拣',
|
||
`release_mode` varchar(10) DEFAULT NULL COMMENT 'AUTO按比例释放,MANUAL按人工选择释放',
|
||
`release_location_ids` json DEFAULT NULL COMMENT '人工选择释放库位ID;空数组表示明确释放0个',
|
||
`version` int unsigned NOT NULL DEFAULT '0' COMMENT '乐观锁版本号',
|
||
`created_at` datetime(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) COMMENT 'PDA拣货明细创建时间',
|
||
`updated_at` datetime(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3) COMMENT 'PDA拣货明细最后更新时间',
|
||
PRIMARY KEY (`id`),
|
||
UNIQUE KEY `uk_loading_pick_item_plan_item` (`loading_plan_item_id`),
|
||
KEY `idx_loading_pick_item_task` (`pick_task_id`,`item_status`,`id`),
|
||
CONSTRAINT `fk_loading_pick_item_plan_item` FOREIGN KEY (`loading_plan_item_id`) REFERENCES `fl_loading_plan_item` (`id`),
|
||
CONSTRAINT `fk_loading_pick_item_task` FOREIGN KEY (`pick_task_id`) REFERENCES `fl_loading_pick_task` (`id`),
|
||
CONSTRAINT `chk_loading_pick_item_count` CHECK ((`picked_package_count` <= `planned_package_count`)),
|
||
CONSTRAINT `chk_loading_pick_item_planned` CHECK ((`planned_package_count` > 0)),
|
||
CONSTRAINT `chk_loading_pick_item_status` CHECK ((`item_status` in (_utf8mb4'PENDING',_utf8mb4'PICKING',_utf8mb4'PICKED',_utf8mb4'PARTIAL',_utf8mb4'SKIPPED')))
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='PDA装柜拣货明细';
|
||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||
DROP TABLE IF EXISTS `fl_loading_pick_item_assignment`;
|
||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||
/*!50503 SET character_set_client = utf8mb4 */;
|
||
CREATE TABLE `fl_loading_pick_item_assignment` (
|
||
`pick_item_id` bigint unsigned NOT NULL COMMENT 'PDA拣货明细ID,同时作为本表主键',
|
||
`assignee_id` bigint unsigned NOT NULL COMMENT '当前领取或被分配的作业员ID',
|
||
`assignee_name` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '当前作业员姓名快照',
|
||
`assigned_by` bigint unsigned NOT NULL COMMENT '执行领取或分配操作的用户ID',
|
||
`assigned_by_name` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '执行领取或分配操作的用户姓名快照',
|
||
`assignment_type` varchar(16) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '分配类型:CLAIMED作业员领取、ASSIGNED管理员分配',
|
||
`version` int unsigned NOT NULL DEFAULT '0' COMMENT '乐观锁版本号,每次更新递增',
|
||
`created_at` datetime(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) COMMENT '明细分配记录创建时间',
|
||
`updated_at` datetime(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3) COMMENT '明细分配记录最后更新时间',
|
||
PRIMARY KEY (`pick_item_id`),
|
||
KEY `idx_loading_pick_item_assignee` (`assignee_id`,`updated_at`),
|
||
CONSTRAINT `fk_loading_pick_item_assignment_item` FOREIGN KEY (`pick_item_id`) REFERENCES `fl_loading_pick_item` (`id`),
|
||
CONSTRAINT `chk_loading_pick_item_assignment_type` CHECK ((`assignment_type` in (_utf8mb4'CLAIMED',_utf8mb4'ASSIGNED')))
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='PDA拣货明细领取与作业员分配';
|
||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||
DROP TABLE IF EXISTS `fl_loading_pick_operation`;
|
||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||
/*!50503 SET character_set_client = utf8mb4 */;
|
||
CREATE TABLE `fl_loading_pick_operation` (
|
||
`id` bigint unsigned NOT NULL COMMENT 'PDA任务操作审计记录ID',
|
||
`pick_task_id` bigint unsigned NOT NULL COMMENT '关联柜次PDA拣货任务ID',
|
||
`operation_id` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '全局唯一操作ID,用于幂等重放',
|
||
`request_hash` char(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '完整批量请求或任务操作内容SHA-256摘要',
|
||
`action_type` varchar(16) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '动作类型:CLAIM领取、ASSIGN分配、REVIEW复核、BATCH批量提交',
|
||
`operator_id` bigint unsigned NOT NULL COMMENT '执行PDA任务操作的用户ID',
|
||
`operator_name` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '操作人姓名快照',
|
||
`created_at` datetime(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) COMMENT '不可变操作审计创建时间',
|
||
PRIMARY KEY (`id`),
|
||
UNIQUE KEY `uk_loading_pick_operation_id` (`operation_id`),
|
||
KEY `idx_loading_pick_operation_task` (`pick_task_id`,`created_at`),
|
||
CONSTRAINT `fk_loading_pick_operation_task` FOREIGN KEY (`pick_task_id`) REFERENCES `fl_loading_pick_task` (`id`),
|
||
CONSTRAINT `chk_loading_pick_operation_action` CHECK ((`action_type` in (_gbk'CLAIM',_gbk'ASSIGN',_gbk'ITEM_CLAIM',_gbk'ITEM_ASSIGN',_gbk'REVIEW',_gbk'BATCH',_gbk'COMPLETE_LOADING')))
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='柜次PDA任务级幂等审计';
|
||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||
DROP TABLE IF EXISTS `fl_loading_pick_review`;
|
||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||
/*!50503 SET character_set_client = utf8mb4 */;
|
||
CREATE TABLE `fl_loading_pick_review` (
|
||
`pick_task_id` bigint unsigned NOT NULL COMMENT '已完成的柜次PDA拣货任务ID',
|
||
`review_status` varchar(16) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL DEFAULT 'APPROVED' COMMENT '复核状态:APPROVED已通过;记录创建后不可修改或删除',
|
||
`reviewed_by` bigint unsigned NOT NULL COMMENT '执行完成复核的平台用户ID',
|
||
`reviewed_by_name` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '复核人姓名快照',
|
||
`remark` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT 'PDA任务复核备注',
|
||
`version` int unsigned NOT NULL DEFAULT '0' COMMENT '复核记录版本号',
|
||
`created_at` datetime(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) COMMENT '复核通过时间',
|
||
`updated_at` datetime(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3) COMMENT '复核记录最后更新时间;正常业务不允许更新',
|
||
PRIMARY KEY (`pick_task_id`),
|
||
KEY `idx_loading_pick_reviewer` (`reviewed_by`,`created_at`),
|
||
CONSTRAINT `fk_loading_pick_review_task` FOREIGN KEY (`pick_task_id`) REFERENCES `fl_loading_pick_task` (`id`),
|
||
CONSTRAINT `chk_loading_pick_review_status` CHECK ((`review_status` = _utf8mb4'APPROVED'))
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='柜次PDA任务完成复核';
|
||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||
DROP TABLE IF EXISTS `fl_loading_pick_task`;
|
||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||
/*!50503 SET character_set_client = utf8mb4 */;
|
||
CREATE TABLE `fl_loading_pick_task` (
|
||
`id` bigint unsigned NOT NULL COMMENT 'PDA拣货任务ID',
|
||
`loading_plan_id` bigint unsigned NOT NULL COMMENT '装柜计划ID',
|
||
`container_booking_id` bigint unsigned DEFAULT NULL COMMENT '稳定柜次ID',
|
||
`cabinet_no` varchar(64) DEFAULT NULL COMMENT '稳定内部柜次号快照',
|
||
`container_no` varchar(64) DEFAULT NULL COMMENT '真实集装箱号;生成PDA任务前允许为空',
|
||
`task_status` varchar(16) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL DEFAULT 'LOADING' COMMENT 'PDA任务状态:LOADING拣货装柜中、COMPLETED已完成',
|
||
`started_by` bigint unsigned NOT NULL COMMENT '开始装柜人',
|
||
`started_by_name` varchar(64) DEFAULT NULL COMMENT '开始装柜人名称',
|
||
`started_at` datetime(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) COMMENT '开始时间',
|
||
`completed_by` bigint unsigned DEFAULT NULL COMMENT '完成装柜人',
|
||
`completed_by_name` varchar(64) DEFAULT NULL COMMENT '完成装柜人名称',
|
||
`completed_at` datetime(3) DEFAULT NULL COMMENT '完成时间',
|
||
`version` int unsigned NOT NULL DEFAULT '0' COMMENT '乐观锁版本号',
|
||
PRIMARY KEY (`id`),
|
||
UNIQUE KEY `uk_loading_pick_task_plan` (`loading_plan_id`),
|
||
UNIQUE KEY `uk_loading_pick_task_booking` (`container_booking_id`),
|
||
KEY `idx_loading_pick_container` (`container_no`,`task_status`,`started_at`),
|
||
CONSTRAINT `fk_loading_pick_task_plan` FOREIGN KEY (`loading_plan_id`) REFERENCES `fl_loading_plan` (`id`),
|
||
CONSTRAINT `chk_loading_pick_task_status` CHECK ((`task_status` in (_utf8mb4'LOADING',_utf8mb4'COMPLETED')))
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='PDA装柜拣货任务';
|
||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||
/*!50003 SET @saved_cs_client = @@character_set_client */ ;
|
||
/*!50003 SET @saved_cs_results = @@character_set_results */ ;
|
||
/*!50003 SET @saved_col_connection = @@collation_connection */ ;
|
||
/*!50003 SET character_set_client = utf8mb4 */ ;
|
||
/*!50003 SET character_set_results = utf8mb4 */ ;
|
||
/*!50003 SET collation_connection = utf8mb4_0900_ai_ci */ ;
|
||
/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
|
||
/*!50003 SET sql_mode = 'ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION' */ ;
|
||
DELIMITER ;;
|
||
/*!50003 CREATE*/ /*!50017 DEFINER=`root`@`localhost`*/ /*!50003 TRIGGER `trg_loading_pick_task_before_update` BEFORE UPDATE ON `fl_loading_pick_task` FOR EACH ROW BEGIN IF OLD.task_status = 'COMPLETED' THEN SIGNAL SQLSTATE '45000' SET MESSAGE_TEXT = '已完成PDA拣货任务不可修改'; END IF; IF NEW.loading_plan_id <> OLD.loading_plan_id OR NOT (NEW.container_booking_id <=> OLD.container_booking_id) OR NOT (NEW.cabinet_no <=> OLD.cabinet_no) THEN SIGNAL SQLSTATE '45000' SET MESSAGE_TEXT = 'PDA拣货任务稳定归属不可修改'; END IF; IF NOT (OLD.task_status = 'LOADING' AND NEW.task_status IN ('LOADING', 'COMPLETED')) THEN SIGNAL SQLSTATE '45000' SET MESSAGE_TEXT = 'PDA拣货任务状态只允许完成'; END IF; END */;;
|
||
DELIMITER ;
|
||
/*!50003 SET sql_mode = @saved_sql_mode */ ;
|
||
/*!50003 SET character_set_client = @saved_cs_client */ ;
|
||
/*!50003 SET character_set_results = @saved_cs_results */ ;
|
||
/*!50003 SET collation_connection = @saved_col_connection */ ;
|
||
DROP TABLE IF EXISTS `fl_loading_plan`;
|
||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||
/*!50503 SET character_set_client = utf8mb4 */;
|
||
CREATE TABLE `fl_loading_plan` (
|
||
`id` bigint unsigned NOT NULL COMMENT '智能装柜计划ID(雪花ID)',
|
||
`plan_no` varchar(40) NOT NULL COMMENT '平台唯一装柜计划号',
|
||
`container_booking_id` bigint unsigned NOT NULL COMMENT '货柜预订ID',
|
||
`plan_status` varchar(24) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL DEFAULT 'EDITING' COMMENT '装柜计划状态:EDITING编辑中、LOADING装柜中、COMPLETED装柜完成;建议须经人工确认',
|
||
`push_idempotency_key` varchar(128) DEFAULT NULL COMMENT '推送预装幂等键',
|
||
`preload_pushed_by` bigint unsigned DEFAULT NULL COMMENT '推送预装操作人ID',
|
||
`preload_pushed_by_name` varchar(64) DEFAULT NULL COMMENT '推送预装操作人名称快照',
|
||
`preload_pushed_at` datetime(3) DEFAULT NULL COMMENT '开始装柜并进入LOADING的时间',
|
||
`preload_completed_by` bigint unsigned DEFAULT NULL COMMENT '预装完成操作人ID',
|
||
`preload_completed_by_name` varchar(64) DEFAULT NULL COMMENT '预装完成操作人名称快照',
|
||
`preload_completed_at` datetime(3) DEFAULT NULL COMMENT '预装完成时间',
|
||
`confirmed_by` bigint unsigned DEFAULT NULL COMMENT '确认操作人ID',
|
||
`confirmed_by_name` varchar(64) DEFAULT NULL COMMENT '确认操作人名称快照',
|
||
`confirmed_at` datetime(3) DEFAULT NULL COMMENT '确认时间',
|
||
`remark` varchar(500) DEFAULT NULL COMMENT '平台装柜计划备注',
|
||
`created_by` bigint unsigned NOT NULL COMMENT '创建人ID',
|
||
`created_by_name` varchar(64) DEFAULT NULL COMMENT '创建人名称快照',
|
||
`created_at` datetime(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) COMMENT '创建时间',
|
||
`updated_by` bigint unsigned NOT NULL COMMENT '最后修改人ID',
|
||
`updated_by_name` varchar(64) DEFAULT NULL COMMENT '最后修改人名称快照',
|
||
`updated_at` datetime(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3) COMMENT '装柜计划最后更新时间',
|
||
`version` int unsigned NOT NULL DEFAULT '0' COMMENT '乐观锁版本号',
|
||
PRIMARY KEY (`id`),
|
||
UNIQUE KEY `uk_loading_plan_no` (`plan_no`),
|
||
UNIQUE KEY `uk_loading_plan_booking` (`container_booking_id`),
|
||
UNIQUE KEY `uk_loading_plan_push_key` (`push_idempotency_key`),
|
||
KEY `idx_loading_plan_status` (`plan_status`,`updated_at`,`id`),
|
||
CONSTRAINT `fk_loading_plan_booking` FOREIGN KEY (`container_booking_id`) REFERENCES `fl_container_booking` (`id`),
|
||
CONSTRAINT `chk_loading_plan_status` CHECK ((`plan_status` in (_utf8mb4'EDITING',_utf8mb4'LOADING',_utf8mb4'COMPLETED')))
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='平台智能装柜计划与唯一预装状态源';
|
||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||
/*!50003 SET @saved_cs_client = @@character_set_client */ ;
|
||
/*!50003 SET @saved_cs_results = @@character_set_results */ ;
|
||
/*!50003 SET @saved_col_connection = @@collation_connection */ ;
|
||
/*!50003 SET character_set_client = utf8mb4 */ ;
|
||
/*!50003 SET character_set_results = utf8mb4 */ ;
|
||
/*!50003 SET collation_connection = utf8mb4_0900_ai_ci */ ;
|
||
/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
|
||
/*!50003 SET sql_mode = 'ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION' */ ;
|
||
DELIMITER ;;
|
||
/*!50003 CREATE*/ /*!50017 DEFINER=`root`@`localhost`*/ /*!50003 TRIGGER `trg_loading_plan_after_update` AFTER UPDATE ON `fl_loading_plan` FOR EACH ROW BEGIN IF OLD.plan_status = 'LOADING' AND NEW.plan_status = 'COMPLETED' THEN UPDATE fl_loading_plan_item SET frozen_at = COALESCE(frozen_at, NEW.confirmed_at, CURRENT_TIMESTAMP(3)), frozen_by = COALESCE(frozen_by, NEW.updated_by), updated_by = NEW.updated_by, updated_by_name = NEW.updated_by_name, version = version + 1 WHERE loading_plan_id = NEW.id AND deleted = 0; UPDATE fl_loading_pick_task SET task_status = 'COMPLETED', completed_by = NEW.updated_by, completed_by_name = NEW.updated_by_name, completed_at = CURRENT_TIMESTAMP(3), version = version + 1 WHERE loading_plan_id = NEW.id AND task_status = 'LOADING'; END IF; END */;;
|
||
DELIMITER ;
|
||
/*!50003 SET sql_mode = @saved_sql_mode */ ;
|
||
/*!50003 SET character_set_client = @saved_cs_client */ ;
|
||
/*!50003 SET character_set_results = @saved_cs_results */ ;
|
||
/*!50003 SET collation_connection = @saved_col_connection */ ;
|
||
DROP TABLE IF EXISTS `fl_loading_plan_history`;
|
||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||
/*!50503 SET character_set_client = utf8mb4 */;
|
||
CREATE TABLE `fl_loading_plan_history` (
|
||
`id` bigint unsigned NOT NULL COMMENT '装柜操作历史ID(雪花ID)',
|
||
`loading_plan_id` bigint unsigned NOT NULL COMMENT '智能装柜计划ID',
|
||
`loading_plan_item_id` bigint unsigned DEFAULT NULL COMMENT '装柜计划明细ID',
|
||
`operation_id` varchar(128) NOT NULL COMMENT '操作幂等ID',
|
||
`action_type` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '动作类型:CREATE_PLAN创建计划、ADD_ITEM新增明细、ADJUST_ITEM调整明细、REMOVE_ITEM移除明细、START_LOADING开始装柜、COMPLETE_LOADING完成装柜、PICK_ITEM拣货',
|
||
`from_status` varchar(24) DEFAULT NULL COMMENT '变更前状态',
|
||
`to_status` varchar(24) DEFAULT NULL COMMENT '变更后状态',
|
||
`before_snapshot` json DEFAULT NULL COMMENT '变更前快照',
|
||
`after_snapshot` json DEFAULT NULL COMMENT '变更后快照',
|
||
`operator_id` bigint unsigned NOT NULL COMMENT '操作人ID',
|
||
`operator_name` varchar(64) DEFAULT NULL COMMENT '操作人名称快照',
|
||
`operation_reason` varchar(500) DEFAULT NULL COMMENT '操作原因',
|
||
`created_at` datetime(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) COMMENT '操作时间',
|
||
PRIMARY KEY (`id`),
|
||
UNIQUE KEY `uk_loading_history_operation` (`operation_id`),
|
||
KEY `idx_loading_history_plan` (`loading_plan_id`,`created_at`,`id`),
|
||
KEY `idx_loading_history_item` (`loading_plan_item_id`,`created_at`,`id`),
|
||
CONSTRAINT `fk_loading_history_item` FOREIGN KEY (`loading_plan_item_id`) REFERENCES `fl_loading_plan_item` (`id`),
|
||
CONSTRAINT `fk_loading_history_plan` FOREIGN KEY (`loading_plan_id`) REFERENCES `fl_loading_plan` (`id`)
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='智能装柜追加式不可变操作历史';
|
||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||
DROP TABLE IF EXISTS `fl_loading_plan_item`;
|
||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||
/*!50503 SET character_set_client = utf8mb4 */;
|
||
CREATE TABLE `fl_loading_plan_item` (
|
||
`id` bigint unsigned NOT NULL COMMENT '装柜计划明细ID(雪花ID)',
|
||
`loading_plan_id` bigint unsigned NOT NULL COMMENT '智能装柜计划ID',
|
||
`account_id` bigint unsigned NOT NULL COMMENT '客户账号ID;装柜业务唯一客户归属字段',
|
||
`customer_name` varchar(128) NOT NULL COMMENT '客户名称快照',
|
||
`inbound_id` bigint unsigned NOT NULL COMMENT 'Firstleg入库单ID',
|
||
`inbound_detail_id` bigint unsigned NOT NULL COMMENT '订单货物或入库货物明细ID,不建立跨库外键',
|
||
`order_id` bigint unsigned NOT NULL COMMENT '订单服务订单ID快照,不建立跨库外键',
|
||
`order_no` varchar(32) NOT NULL COMMENT '订单号快照',
|
||
`inbound_code` varchar(40) NOT NULL COMMENT '入仓码快照',
|
||
`destination_warehouse_id` bigint unsigned DEFAULT NULL COMMENT '目的仓ID快照',
|
||
`destination_warehouse_code` varchar(64) DEFAULT NULL COMMENT '目的仓编码快照',
|
||
`destination_warehouse_name` varchar(128) DEFAULT NULL COMMENT '目的仓名称快照',
|
||
`sku_code` varchar(128) DEFAULT NULL COMMENT 'SKU编码快照',
|
||
`product_name_zh` varchar(255) DEFAULT NULL COMMENT '中文品名快照',
|
||
`product_name_en` varchar(255) DEFAULT NULL COMMENT '英文品名快照',
|
||
`product_image_file_id` bigint unsigned DEFAULT NULL COMMENT '产品图片File对象ID',
|
||
`product_image_url` varchar(1000) DEFAULT NULL COMMENT '产品图片访问地址快照',
|
||
`package_count` int unsigned NOT NULL COMMENT '本次装柜箱数',
|
||
`product_quantity` int unsigned DEFAULT NULL COMMENT '产品总数量',
|
||
`units_per_carton` int unsigned DEFAULT NULL COMMENT '每箱产品数',
|
||
`pallet_count` int unsigned DEFAULT NULL COMMENT '托盘数',
|
||
`gross_weight_kg` decimal(18,3) DEFAULT NULL COMMENT '本次装柜毛重kg',
|
||
`net_weight_kg` decimal(18,3) DEFAULT NULL COMMENT '本次装柜净重kg',
|
||
`dimensional_weight_kg` decimal(18,3) DEFAULT NULL COMMENT '本次装柜材积重kg',
|
||
`volume_cbm` decimal(18,4) DEFAULT NULL COMMENT '本次装柜体积m3',
|
||
`fba_tracking_no` varchar(128) DEFAULT NULL COMMENT 'FBA追踪号快照',
|
||
`shipment_no` varchar(128) DEFAULT NULL COMMENT '货件编号快照',
|
||
`shipping_mark` varchar(500) DEFAULT NULL COMMENT '唛头快照',
|
||
`load_sequence` int unsigned NOT NULL DEFAULT '0' COMMENT '装柜顺序',
|
||
`position_snapshot` json DEFAULT NULL COMMENT '智能装柜位置与摆放结果快照',
|
||
`internal_remark` varchar(1000) DEFAULT NULL COMMENT '平台内部备注',
|
||
`customer_remark` varchar(1000) DEFAULT NULL COMMENT '客户备注快照',
|
||
`warehouse_remark` varchar(1000) DEFAULT NULL COMMENT '仓库备注快照',
|
||
`frozen_at` datetime(3) DEFAULT NULL COMMENT '装柜完成后的永久冻结时间',
|
||
`frozen_by` bigint unsigned DEFAULT NULL COMMENT '冻结操作人ID',
|
||
`removed_by` bigint unsigned DEFAULT NULL COMMENT '推送前逻辑删除操作人ID',
|
||
`removed_by_name` varchar(64) DEFAULT NULL COMMENT '推送前逻辑删除操作人名称快照',
|
||
`removed_at` datetime(3) DEFAULT NULL COMMENT '推送前逻辑删除时间',
|
||
`deleted` tinyint(1) NOT NULL DEFAULT '0' COMMENT '推送前逻辑删除标记;冻结后不可修改',
|
||
`active_inbound_detail_id` bigint unsigned GENERATED ALWAYS AS ((case when (`deleted` = 0) then `inbound_detail_id` else NULL end)) STORED COMMENT '未删除明细唯一锁;删除后返回NULL释放分配资格',
|
||
`created_by` bigint unsigned NOT NULL COMMENT '创建人ID',
|
||
`created_by_name` varchar(64) DEFAULT NULL COMMENT '创建人名称快照',
|
||
`created_at` datetime(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) COMMENT '创建时间',
|
||
`updated_by` bigint unsigned NOT NULL COMMENT '最后修改人ID',
|
||
`updated_by_name` varchar(64) DEFAULT NULL COMMENT '最后修改人名称快照',
|
||
`updated_at` datetime(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3) COMMENT '装柜明细最后更新时间',
|
||
`version` int unsigned NOT NULL DEFAULT '0' COMMENT '乐观锁版本号',
|
||
`unit_type` varchar(24) NOT NULL DEFAULT 'PACKAGE' COMMENT '分配单元:PACKAGE普通箱、SEALED_PALLET一件代发封托',
|
||
`pallet_id` bigint unsigned DEFAULT NULL COMMENT '一件代发封托ID;普通箱为空',
|
||
`pallet_no` varchar(32) DEFAULT NULL COMMENT '一件代发系统托盘码快照',
|
||
`indivisible` tinyint(1) NOT NULL DEFAULT '0' COMMENT '是否为不可拆整托单元',
|
||
`customer_service_remark` varchar(1000) DEFAULT NULL COMMENT '客服备注快照',
|
||
`active_assignment_key` varchar(96) GENERATED ALWAYS AS ((case when (`deleted` = 0) then concat((case when (`pallet_id` is null) then _utf8mb4'D:0' else concat(_utf8mb4'P:',`pallet_id`) end),_utf8mb4':',`inbound_detail_id`) else NULL end)) STORED COMMENT '普通明细或已封托托盘明细的有效唯一锁',
|
||
PRIMARY KEY (`id`),
|
||
UNIQUE KEY `uk_loading_item_plan_detail` (`loading_plan_id`,`active_inbound_detail_id`),
|
||
KEY `idx_loading_item_active_detail` (`account_id`,`active_inbound_detail_id`),
|
||
KEY `idx_loading_item_plan` (`loading_plan_id`,`deleted`,`load_sequence`,`id`),
|
||
KEY `idx_loading_item_account` (`account_id`,`created_at`,`id`),
|
||
KEY `idx_loading_item_inbound` (`account_id`,`inbound_id`,`deleted`),
|
||
KEY `idx_loading_item_order` (`account_id`,`order_id`,`deleted`),
|
||
CONSTRAINT `fk_loading_item_plan` FOREIGN KEY (`loading_plan_id`) REFERENCES `fl_loading_plan` (`id`),
|
||
CONSTRAINT `chk_loading_item_account` CHECK ((`account_id` > 0)),
|
||
CONSTRAINT `chk_loading_item_deleted` CHECK ((`deleted` in (0,1))),
|
||
CONSTRAINT `chk_loading_item_package` CHECK ((`package_count` > 0)),
|
||
CONSTRAINT `chk_loading_item_pallet` CHECK (((`pallet_count` is null) or (`pallet_count` >= 0))),
|
||
CONSTRAINT `chk_loading_item_product_quantity` CHECK (((`product_quantity` is null) or (`product_quantity` > 0))),
|
||
CONSTRAINT `chk_loading_item_units` CHECK (((`units_per_carton` is null) or (`units_per_carton` > 0))),
|
||
CONSTRAINT `chk_loading_item_volume` CHECK (((`volume_cbm` is null) or (`volume_cbm` >= 0))),
|
||
CONSTRAINT `chk_loading_item_weight` CHECK ((((`gross_weight_kg` is null) or (`gross_weight_kg` >= 0)) and ((`net_weight_kg` is null) or (`net_weight_kg` >= 0)) and ((`dimensional_weight_kg` is null) or (`dimensional_weight_kg` >= 0))))
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='智能装柜客户货物明细;客户归属仅在明细层';
|
||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||
DROP TABLE IF EXISTS `fl_loading_work_pallet`;
|
||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||
/*!50503 SET character_set_client = utf8mb4 */;
|
||
CREATE TABLE `fl_loading_work_pallet` (
|
||
`id` bigint unsigned NOT NULL COMMENT '一件代发现场作业托盘ID',
|
||
`pick_task_id` bigint unsigned NOT NULL COMMENT 'PDA装柜拣货任务ID',
|
||
`loading_plan_id` bigint unsigned NOT NULL COMMENT '装柜计划ID快照',
|
||
`warehouse_id` bigint unsigned NOT NULL COMMENT '作业仓库ID',
|
||
`warehouse_pallet_id` bigint unsigned DEFAULT NULL COMMENT '仓库实物托盘ID;未绑定仓库资源时为空',
|
||
`pallet_code` varchar(64) NOT NULL COMMENT '现场托盘号',
|
||
`open_operation_id` varchar(128) NOT NULL COMMENT '开托幂等操作号',
|
||
`seal_operation_id` varchar(128) DEFAULT NULL COMMENT '封托幂等操作号',
|
||
`pallet_status` varchar(16) NOT NULL DEFAULT 'OPEN' COMMENT '托盘状态:OPEN打托中、SEALED已封托、CANCELLED已取消',
|
||
`created_by` bigint unsigned NOT NULL COMMENT '创建操作人ID',
|
||
`created_by_name` varchar(64) DEFAULT NULL COMMENT '创建操作人名称快照',
|
||
`sealed_by` bigint unsigned DEFAULT NULL COMMENT '封托操作人ID',
|
||
`sealed_by_name` varchar(64) DEFAULT NULL COMMENT '封托操作人名称快照',
|
||
`sealed_at` datetime(3) DEFAULT NULL COMMENT '封托时间',
|
||
`version` int unsigned NOT NULL DEFAULT '0' COMMENT '乐观锁版本号',
|
||
`created_at` datetime(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) COMMENT '创建时间',
|
||
`updated_at` datetime(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3) COMMENT '更新时间',
|
||
PRIMARY KEY (`id`),
|
||
UNIQUE KEY `uk_loading_work_pallet_code` (`pick_task_id`,`pallet_code`),
|
||
UNIQUE KEY `uk_loading_work_pallet_open_operation` (`open_operation_id`),
|
||
UNIQUE KEY `uk_loading_work_pallet_seal_operation` (`seal_operation_id`),
|
||
KEY `idx_loading_work_pallet_plan` (`loading_plan_id`,`pallet_status`,`id`),
|
||
CONSTRAINT `fk_loading_work_pallet_plan` FOREIGN KEY (`loading_plan_id`) REFERENCES `fl_loading_plan` (`id`),
|
||
CONSTRAINT `fk_loading_work_pallet_task` FOREIGN KEY (`pick_task_id`) REFERENCES `fl_loading_pick_task` (`id`),
|
||
CONSTRAINT `chk_loading_work_pallet_status` CHECK ((`pallet_status` in (_utf8mb4'OPEN',_utf8mb4'SEALED',_utf8mb4'CANCELLED')))
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='一件代发PDA现场实际托盘;允许同托盘承载多个客户订单';
|
||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||
DROP TABLE IF EXISTS `fl_loading_work_pallet_carton`;
|
||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||
/*!50503 SET character_set_client = utf8mb4 */;
|
||
CREATE TABLE `fl_loading_work_pallet_carton` (
|
||
`id` bigint unsigned NOT NULL COMMENT '一件代发现场托盘箱唛绑定ID',
|
||
`pick_task_id` bigint unsigned NOT NULL COMMENT 'PDA装柜拣货任务ID',
|
||
`work_pallet_id` bigint unsigned NOT NULL COMMENT '现场作业托盘ID',
|
||
`loading_plan_item_id` bigint unsigned NOT NULL COMMENT '装柜计划货物明细ID',
|
||
`pick_item_id` bigint unsigned NOT NULL COMMENT 'PDA拣货明细ID',
|
||
`tenant_id` bigint unsigned NOT NULL COMMENT '箱唛所属客户ID',
|
||
`inbound_id` bigint unsigned NOT NULL COMMENT '来源入仓单ID',
|
||
`inbound_detail_id` bigint unsigned NOT NULL COMMENT '来源入仓货物明细ID',
|
||
`carton_label_id` bigint unsigned NOT NULL COMMENT '稳定箱唛记录ID',
|
||
`box_code` varchar(80) NOT NULL COMMENT '稳定箱唛箱码快照',
|
||
`sku_code` varchar(128) NOT NULL COMMENT 'SKU编码快照',
|
||
`units_per_carton` int unsigned DEFAULT NULL COMMENT '每箱产品数量快照',
|
||
`bound_by` bigint unsigned NOT NULL COMMENT '最后绑定操作人ID',
|
||
`bound_by_name` varchar(64) DEFAULT NULL COMMENT '最后绑定操作人名称快照',
|
||
`operation_id` varchar(128) NOT NULL COMMENT '最近一次绑定或移托幂等操作号',
|
||
`version` int unsigned NOT NULL DEFAULT '0' COMMENT '乐观锁版本号',
|
||
`created_at` datetime(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) COMMENT '首次上托时间',
|
||
`updated_at` datetime(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3) COMMENT '最后移托时间',
|
||
PRIMARY KEY (`id`),
|
||
UNIQUE KEY `uk_loading_work_carton_task_label` (`pick_task_id`,`carton_label_id`),
|
||
UNIQUE KEY `uk_loading_work_carton_operation` (`operation_id`),
|
||
KEY `idx_loading_work_carton_pallet` (`work_pallet_id`,`sku_code`,`id`),
|
||
KEY `idx_loading_work_carton_plan_item` (`loading_plan_item_id`,`id`),
|
||
KEY `fk_loading_work_carton_pick_item` (`pick_item_id`),
|
||
KEY `fk_loading_work_carton_label` (`carton_label_id`),
|
||
CONSTRAINT `fk_loading_work_carton_label` FOREIGN KEY (`carton_label_id`) REFERENCES `fl_inbound_carton_label` (`id`),
|
||
CONSTRAINT `fk_loading_work_carton_pallet` FOREIGN KEY (`work_pallet_id`) REFERENCES `fl_loading_work_pallet` (`id`),
|
||
CONSTRAINT `fk_loading_work_carton_pick_item` FOREIGN KEY (`pick_item_id`) REFERENCES `fl_loading_pick_item` (`id`),
|
||
CONSTRAINT `fk_loading_work_carton_plan_item` FOREIGN KEY (`loading_plan_item_id`) REFERENCES `fl_loading_plan_item` (`id`),
|
||
CONSTRAINT `fk_loading_work_carton_task` FOREIGN KEY (`pick_task_id`) REFERENCES `fl_loading_pick_task` (`id`),
|
||
CONSTRAINT `chk_loading_work_carton_units` CHECK (((`units_per_carton` is null) or (`units_per_carton` > 0)))
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='一件代发PDA逐箱上托事实;客户订单不合并但实际托盘可混托';
|
||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||
DROP TABLE IF EXISTS `fl_measure_review_record`;
|
||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||
/*!50503 SET character_set_client = utf8mb4 */;
|
||
CREATE TABLE `fl_measure_review_record` (
|
||
`id` bigint unsigned NOT NULL COMMENT '测量审核记录ID',
|
||
`tenant_id` bigint unsigned NOT NULL COMMENT '客户ID和数据隔离键',
|
||
`inbound_id` bigint unsigned NOT NULL COMMENT '入库单ID',
|
||
`measurement_id` bigint unsigned DEFAULT NULL COMMENT '被审核的测量批次ID',
|
||
`review_result` varchar(24) NOT NULL COMMENT '审核结果',
|
||
`review_reason` varchar(1000) DEFAULT NULL COMMENT '审核或驳回原因',
|
||
`exception_release` tinyint(1) NOT NULL DEFAULT '0' COMMENT '是否异常放行',
|
||
`release_reason` varchar(1000) DEFAULT NULL COMMENT '异常放行原因',
|
||
`allow_rejected_config` tinyint(1) NOT NULL DEFAULT '0' COMMENT '操作时Nacos异常放行开关值',
|
||
`reviewer_id` bigint unsigned NOT NULL COMMENT '审核人ID',
|
||
`reviewer_name` varchar(64) DEFAULT NULL COMMENT '审核人名称快照',
|
||
`reviewed_at` datetime(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) COMMENT '审核时间',
|
||
PRIMARY KEY (`id`),
|
||
KEY `idx_review_inbound_time` (`tenant_id`,`inbound_id`,`reviewed_at`),
|
||
KEY `idx_review_exception_release` (`tenant_id`,`inbound_id`,`exception_release`,`reviewed_at`),
|
||
KEY `fk_review_inbound` (`inbound_id`),
|
||
KEY `fk_review_measurement` (`measurement_id`),
|
||
CONSTRAINT `fk_review_inbound` FOREIGN KEY (`inbound_id`) REFERENCES `fl_inbound_order` (`id`),
|
||
CONSTRAINT `fk_review_measurement` FOREIGN KEY (`measurement_id`) REFERENCES `fl_inbound_measurement` (`id`)
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='测量审核、驳回和异常放行不可变记录';
|
||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||
DROP TABLE IF EXISTS `fl_mojia_measurement_receipt`;
|
||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||
/*!50503 SET character_set_client = utf8mb4 */;
|
||
CREATE TABLE `fl_mojia_measurement_receipt` (
|
||
`id` bigint unsigned NOT NULL COMMENT '墨家联调收件记录ID',
|
||
`tenant_id` bigint unsigned NOT NULL COMMENT '客户ID和数据隔离键',
|
||
`subject_id` bigint unsigned NOT NULL COMMENT '设备应用操作主体ID',
|
||
`box_code` varchar(128) NOT NULL COMMENT '设备扫描的原始箱码或不带#的SKU',
|
||
`inbound_code` varchar(64) DEFAULT NULL COMMENT '箱码命中后的权威入仓码;SKU记录为空',
|
||
`measurement_kind` varchar(16) NOT NULL DEFAULT 'BOX_LABEL' COMMENT '测量分流:BOX_LABEL箱唛;SKU一件代发SKU',
|
||
`scanned_shipment_id` varchar(64) DEFAULT NULL COMMENT '设备从Amazon FBA箱标实扫的Shipment ID',
|
||
`length_cm` decimal(12,3) NOT NULL COMMENT '设备实测长度cm',
|
||
`width_cm` decimal(12,3) NOT NULL COMMENT '设备实测宽度cm',
|
||
`height_cm` decimal(12,3) NOT NULL COMMENT '设备实测高度cm',
|
||
`weight_kg` decimal(18,3) NOT NULL COMMENT '设备实测重量kg',
|
||
`machine_no` varchar(64) NOT NULL COMMENT '设备编号',
|
||
`measured_at` datetime(3) NOT NULL COMMENT '设备测量时间或服务接收时间',
|
||
`image_file_id` bigint unsigned NOT NULL COMMENT 'File服务中的墨家联调图片ID',
|
||
`status` varchar(24) NOT NULL DEFAULT 'UNMATCHED' COMMENT '原始收件状态;SKU记录使用SKU_PENDING_SYNC',
|
||
`sync_status` varchar(24) DEFAULT NULL COMMENT 'SKU同步状态:PENDING/SYNCING/SUCCESS/FAILED',
|
||
`sync_failure_code` varchar(64) DEFAULT NULL COMMENT 'SKU同步失败业务码',
|
||
`sync_failure_reason` varchar(500) DEFAULT NULL COMMENT '脱敏后的SKU同步失败原因',
|
||
`lingxing_sku_id` varchar(128) DEFAULT NULL COMMENT '领星SKU内部标识',
|
||
`revision` int NOT NULL DEFAULT '1' COMMENT '当前测量版本号',
|
||
`match_failure_code` varchar(16) DEFAULT NULL COMMENT '正式箱唛业务匹配失败码',
|
||
`match_failure_reason` varchar(500) DEFAULT NULL COMMENT '脱敏后的箱唛匹配失败原因',
|
||
`request_id` varchar(128) DEFAULT NULL COMMENT '请求链路ID',
|
||
`trace_id` varchar(128) DEFAULT NULL COMMENT '调用链ID',
|
||
`created_at` datetime(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) COMMENT '创建时间',
|
||
`updated_at` datetime(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3) COMMENT '更新时间',
|
||
PRIMARY KEY (`id`),
|
||
KEY `idx_mojia_receipt_status_time` (`tenant_id`,`status`,`created_at`),
|
||
KEY `idx_mojia_receipt_box_time` (`tenant_id`,`box_code`,`created_at`)
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='墨家模拟或未匹配入库单的原始测量收件箱';
|
||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||
DROP TABLE IF EXISTS `fl_ocean_booking`;
|
||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||
/*!50503 SET character_set_client = utf8mb4 */;
|
||
CREATE TABLE `fl_ocean_booking` (
|
||
`id` bigint unsigned NOT NULL COMMENT '海运订舱ID',
|
||
`booking_no` varchar(40) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '平台海运订舱编号',
|
||
`status` varchar(24) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL DEFAULT 'DRAFT' COMMENT '订舱状态:DRAFT草稿、SUBMITTED已提交、CONFIRMED已确认、RELEASED已放舱、FAILED失败、CHANGE_PENDING船期待变更、CANCELLED已取消',
|
||
`customer_id` bigint unsigned DEFAULT NULL COMMENT '可选客户ID快照',
|
||
`customer_name` varchar(128) DEFAULT NULL COMMENT '可选客户名称快照',
|
||
`channel_code` varchar(64) DEFAULT NULL,
|
||
`channel_name` varchar(128) DEFAULT NULL,
|
||
`warehouse_id` bigint unsigned DEFAULT NULL,
|
||
`warehouse_name` varchar(128) DEFAULT NULL,
|
||
`bill_of_lading_no` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '提单号',
|
||
`shipping_company_id` bigint unsigned DEFAULT NULL COMMENT '船公司逻辑ID快照',
|
||
`shipping_company_name` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '船公司名称快照',
|
||
`carrier_code` varchar(16) DEFAULT NULL COMMENT '船司标准编码:MATSON/SML/ZIM/COSCO/EMC/HEDE/OTHER;发布前必填',
|
||
`booking_agent_id` bigint unsigned DEFAULT NULL COMMENT '订舱代理逻辑ID快照',
|
||
`booking_agent_name` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '订舱代理名称快照',
|
||
`vessel_name` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '当前确认船名快照',
|
||
`voyage_no` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '当前确认航次号快照',
|
||
`departure_port_code` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '起运港编码快照',
|
||
`departure_port_name` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '起运港名称快照',
|
||
`destination_port_code` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '目的港编码快照',
|
||
`destination_port_name` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '目的港名称快照',
|
||
`place_of_delivery` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '最终交货地快照',
|
||
`service_term` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '运输服务条款快照',
|
||
`freight_term` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '海运费支付条款快照',
|
||
`estimated_sailing_at` datetime(3) DEFAULT NULL COMMENT '当前确认预计开船时间',
|
||
`estimated_arrival_at` datetime(3) DEFAULT NULL COMMENT '当前确认预计到港时间',
|
||
`pending_vessel_name` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '待确认变更船名',
|
||
`pending_voyage_no` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '待确认变更航次号',
|
||
`pending_estimated_sailing_at` datetime(3) DEFAULT NULL COMMENT '待确认变更预计开船时间',
|
||
`pending_estimated_arrival_at` datetime(3) DEFAULT NULL COMMENT '待确认变更预计到港时间',
|
||
`change_reason` varchar(1000) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '船期变更原因',
|
||
`cancellation_reason` varchar(1000) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '取消订舱原因',
|
||
`remark` varchar(1000) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '平台内部备注',
|
||
`created_by` bigint unsigned NOT NULL COMMENT '创建操作人ID',
|
||
`created_by_name` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '创建操作人姓名快照',
|
||
`created_at` datetime(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) COMMENT '订舱记录创建时间',
|
||
`updated_by` bigint unsigned NOT NULL COMMENT '最后修改操作人ID',
|
||
`updated_by_name` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '最后修改操作人姓名快照',
|
||
`updated_at` datetime(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3) COMMENT '订舱记录最后更新时间',
|
||
`version` int unsigned NOT NULL DEFAULT '0' COMMENT '乐观锁版本号',
|
||
PRIMARY KEY (`id`),
|
||
UNIQUE KEY `uk_ocean_booking_no` (`booking_no`),
|
||
KEY `idx_ocean_booking_customer` (`customer_id`,`status`,`updated_at`,`id`),
|
||
KEY `idx_ocean_booking_voyage` (`vessel_name`,`voyage_no`,`updated_at`),
|
||
CONSTRAINT `chk_ocean_booking_carrier_code` CHECK (((`carrier_code` is null) or (`carrier_code` in (_utf8mb4'MATSON',_utf8mb4'SML',_utf8mb4'ZIM',_utf8mb4'COSCO',_utf8mb4'EMC',_utf8mb4'HEDE',_utf8mb4'OTHER')))),
|
||
CONSTRAINT `chk_ocean_booking_customer` CHECK ((`customer_id` > 0)),
|
||
CONSTRAINT `chk_ocean_booking_pending_schedule` CHECK (((`pending_estimated_sailing_at` is null) or (`pending_estimated_arrival_at` is null) or (`pending_estimated_arrival_at` >= `pending_estimated_sailing_at`))),
|
||
CONSTRAINT `chk_ocean_booking_schedule` CHECK (((`estimated_sailing_at` is null) or (`estimated_arrival_at` is null) or (`estimated_arrival_at` >= `estimated_sailing_at`)))
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='独立海运订舱聚合;柜次仍由fl_container_booking承载';
|
||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||
DROP TABLE IF EXISTS `fl_ocean_booking_container_allocation`;
|
||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||
/*!50503 SET character_set_client = utf8mb4 */;
|
||
CREATE TABLE `fl_ocean_booking_container_allocation` (
|
||
`id` bigint unsigned NOT NULL COMMENT '订舱柜次分配关系ID',
|
||
`ocean_booking_id` bigint unsigned NOT NULL COMMENT '所属海运订舱ID',
|
||
`requirement_id` bigint unsigned NOT NULL COMMENT '对应订舱箱型需求ID',
|
||
`container_booking_id` bigint unsigned NOT NULL COMMENT '明确引用现有柜次ID',
|
||
`allocated_by` bigint unsigned NOT NULL COMMENT '分配操作人ID',
|
||
`allocated_by_name` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '分配操作人姓名快照',
|
||
`allocated_at` datetime(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) COMMENT '柜次分配时间',
|
||
PRIMARY KEY (`id`),
|
||
UNIQUE KEY `uk_ocean_allocation_container` (`container_booking_id`),
|
||
KEY `idx_ocean_allocation_booking` (`ocean_booking_id`,`requirement_id`,`allocated_at`),
|
||
KEY `fk_ocean_allocation_requirement` (`requirement_id`),
|
||
CONSTRAINT `fk_ocean_allocation_booking` FOREIGN KEY (`ocean_booking_id`) REFERENCES `fl_ocean_booking` (`id`),
|
||
CONSTRAINT `fk_ocean_allocation_container` FOREIGN KEY (`container_booking_id`) REFERENCES `fl_container_booking` (`id`),
|
||
CONSTRAINT `fk_ocean_allocation_requirement` FOREIGN KEY (`requirement_id`) REFERENCES `fl_ocean_booking_container_requirement` (`id`)
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='订舱需求与现有柜次的唯一分配关系';
|
||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||
DROP TABLE IF EXISTS `fl_ocean_booking_container_requirement`;
|
||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||
/*!50503 SET character_set_client = utf8mb4 */;
|
||
CREATE TABLE `fl_ocean_booking_container_requirement` (
|
||
`id` bigint unsigned NOT NULL COMMENT '订舱箱型需求ID',
|
||
`ocean_booking_id` bigint unsigned NOT NULL COMMENT '所属海运订舱ID',
|
||
`container_type` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '所需集装箱尺寸类型编码',
|
||
`container_kind` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '所需集装箱箱种编码',
|
||
`capacity_cbm` decimal(18,4) NOT NULL DEFAULT '0.0000',
|
||
`max_weight_kg` decimal(18,3) NOT NULL DEFAULT '0.000',
|
||
`quantity` int unsigned NOT NULL COMMENT '该箱型箱种所需柜数',
|
||
`sort_no` int unsigned NOT NULL DEFAULT '0' COMMENT '订舱需求展示顺序',
|
||
PRIMARY KEY (`id`),
|
||
KEY `idx_ocean_requirement_booking` (`ocean_booking_id`,`sort_no`,`id`),
|
||
CONSTRAINT `fk_ocean_requirement_booking` FOREIGN KEY (`ocean_booking_id`) REFERENCES `fl_ocean_booking` (`id`),
|
||
CONSTRAINT `chk_ocean_requirement_quantity` CHECK ((`quantity` > 0))
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='订舱箱型箱种及数量需求';
|
||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||
DROP TABLE IF EXISTS `fl_ocean_booking_document`;
|
||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||
/*!50503 SET character_set_client = utf8mb4 */;
|
||
CREATE TABLE `fl_ocean_booking_document` (
|
||
`id` bigint unsigned NOT NULL COMMENT '订舱文件关联ID',
|
||
`ocean_booking_id` bigint unsigned NOT NULL COMMENT '所属海运订舱ID',
|
||
`file_id` bigint unsigned NOT NULL COMMENT 'File服务文件逻辑ID',
|
||
`document_type` varchar(32) NOT NULL COMMENT '文件类型:BOOKING_CONFIRMATION订舱确认、BILL_OF_LADING提单',
|
||
`file_name` varchar(255) NOT NULL COMMENT 'File返回的原始文件名快照',
|
||
`file_hash` char(64) DEFAULT NULL COMMENT 'File返回的SHA-256快照',
|
||
`size_bytes` bigint unsigned DEFAULT NULL COMMENT 'File返回的文件大小快照',
|
||
`content_type` varchar(128) DEFAULT NULL COMMENT 'File返回的内容类型快照',
|
||
`valid` tinyint(1) NOT NULL DEFAULT '1' COMMENT '是否为有效文件关联',
|
||
`uploaded_by` bigint unsigned NOT NULL COMMENT '上传或关联操作人ID',
|
||
`uploaded_by_name` varchar(64) DEFAULT NULL COMMENT '上传或关联操作人姓名快照',
|
||
`uploaded_at` datetime(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) COMMENT '上传或关联时间',
|
||
`invalidated_by` bigint unsigned DEFAULT NULL COMMENT '作废操作人ID',
|
||
`invalidated_by_name` varchar(64) DEFAULT NULL COMMENT '作废操作人姓名快照',
|
||
`invalidated_at` datetime(3) DEFAULT NULL COMMENT '作废时间',
|
||
PRIMARY KEY (`id`),
|
||
KEY `idx_ocean_document_booking` (`ocean_booking_id`,`valid`,`uploaded_at`,`id`),
|
||
KEY `idx_ocean_document_file` (`file_id`),
|
||
CONSTRAINT `fk_ocean_document_booking` FOREIGN KEY (`ocean_booking_id`) REFERENCES `fl_ocean_booking` (`id`) ON DELETE CASCADE,
|
||
CONSTRAINT `chk_ocean_document_type` CHECK ((`document_type` in (_utf8mb4'BOOKING_CONFIRMATION',_utf8mb4'BILL_OF_LADING'))),
|
||
CONSTRAINT `chk_ocean_document_valid` CHECK ((`valid` in (0,1)))
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='订舱聚合拥有的订舱确认与提单文件关联';
|
||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||
DROP TABLE IF EXISTS `fl_ocean_booking_operation`;
|
||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||
/*!50503 SET character_set_client = utf8mb4 */;
|
||
CREATE TABLE `fl_ocean_booking_operation` (
|
||
`id` bigint unsigned NOT NULL COMMENT '订舱写操作幂等记录ID',
|
||
`ocean_booking_id` bigint unsigned DEFAULT NULL COMMENT '关联海运订舱ID;创建请求完成前允许为空',
|
||
`operator_id` bigint unsigned NOT NULL COMMENT '发起写操作的平台操作人ID',
|
||
`operation` varchar(40) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '幂等写操作类型',
|
||
`idempotency_key` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '客户端写操作幂等键',
|
||
`request_hash` char(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '规范化请求内容SHA-256摘要;用于识别同键不同请求',
|
||
`status` varchar(16) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL DEFAULT 'PROCESSING' COMMENT '处理状态:PROCESSING处理中、SUCCESS成功',
|
||
`result_json` json DEFAULT NULL COMMENT '成功结果JSON快照;供幂等重放返回',
|
||
`created_at` datetime(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) COMMENT '幂等记录创建时间',
|
||
`completed_at` datetime(3) DEFAULT NULL COMMENT '写操作成功完成时间',
|
||
PRIMARY KEY (`id`),
|
||
UNIQUE KEY `uk_ocean_operation` (`operator_id`,`operation`,`idempotency_key`),
|
||
KEY `idx_ocean_operation_booking` (`ocean_booking_id`,`created_at`),
|
||
CONSTRAINT `fk_ocean_operation_booking` FOREIGN KEY (`ocean_booking_id`) REFERENCES `fl_ocean_booking` (`id`),
|
||
CONSTRAINT `chk_ocean_operation_status` CHECK ((`status` in (_utf8mb4'PROCESSING',_utf8mb4'SUCCESS')))
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='海运订舱写操作幂等与请求哈希';
|
||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||
DROP TABLE IF EXISTS `fl_ocean_booking_party`;
|
||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||
/*!50503 SET character_set_client = utf8mb4 */;
|
||
CREATE TABLE `fl_ocean_booking_party` (
|
||
`id` bigint unsigned NOT NULL COMMENT '订舱提单关系方ID',
|
||
`ocean_booking_id` bigint unsigned NOT NULL COMMENT '所属海运订舱ID',
|
||
`party_type` varchar(24) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '关系方类型:SHIPPER发货人、CONSIGNEE收货人、NOTIFY_PARTY通知人',
|
||
`party_name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '关系方名称快照',
|
||
`address` varchar(1000) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '关系方地址快照',
|
||
`contact_name` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '关系方联系人快照',
|
||
`contact_phone` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '关系方联系电话快照',
|
||
PRIMARY KEY (`id`),
|
||
UNIQUE KEY `uk_ocean_booking_party` (`ocean_booking_id`,`party_type`),
|
||
CONSTRAINT `fk_ocean_booking_party` FOREIGN KEY (`ocean_booking_id`) REFERENCES `fl_ocean_booking` (`id`),
|
||
CONSTRAINT `chk_ocean_booking_party_type` CHECK ((`party_type` in (_utf8mb4'SHIPPER',_utf8mb4'CONSIGNEE',_utf8mb4'NOTIFY_PARTY')))
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='订舱提单关系方快照';
|
||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||
DROP TABLE IF EXISTS `fl_ocean_booking_status_history`;
|
||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||
/*!50503 SET character_set_client = utf8mb4 */;
|
||
CREATE TABLE `fl_ocean_booking_status_history` (
|
||
`id` bigint unsigned NOT NULL COMMENT '订舱状态历史ID',
|
||
`ocean_booking_id` bigint unsigned NOT NULL COMMENT '所属海运订舱ID',
|
||
`from_status` varchar(24) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '变更前订舱状态;创建时为空',
|
||
`to_status` varchar(24) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '变更后订舱状态',
|
||
`action` varchar(40) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '触发状态变更的业务动作',
|
||
`reason` varchar(1000) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '状态变更原因',
|
||
`before_snapshot` json DEFAULT NULL COMMENT '状态变更前订舱数据快照;创建时为空',
|
||
`after_snapshot` json NOT NULL COMMENT '状态变更后订舱数据快照',
|
||
`operator_id` bigint unsigned NOT NULL COMMENT '操作人ID',
|
||
`operator_name` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '操作人姓名快照',
|
||
`created_at` datetime(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) COMMENT '状态历史创建时间',
|
||
PRIMARY KEY (`id`),
|
||
KEY `idx_ocean_history_booking` (`ocean_booking_id`,`created_at`,`id`),
|
||
CONSTRAINT `fk_ocean_history_booking` FOREIGN KEY (`ocean_booking_id`) REFERENCES `fl_ocean_booking` (`id`)
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='海运订舱不可变状态历史';
|
||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||
DROP TABLE IF EXISTS `fl_order_declaration_event`;
|
||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||
/*!50503 SET character_set_client = utf8mb4 */;
|
||
CREATE TABLE `fl_order_declaration_event` (
|
||
`tenant_id` bigint unsigned NOT NULL COMMENT '客户ID和隔离键',
|
||
`event_id` varchar(128) NOT NULL COMMENT '永久保留的Order Outbox事件ID',
|
||
`order_id` bigint unsigned NOT NULL COMMENT 'Order订单ID',
|
||
`order_version` int NOT NULL COMMENT '事件携带的Order聚合版本',
|
||
`request_hash` char(64) NOT NULL COMMENT '完整事件SHA-256,用于异参重放拒绝',
|
||
`consumed_at` datetime(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3),
|
||
PRIMARY KEY (`tenant_id`,`event_id`),
|
||
KEY `idx_order_declaration_event_order` (`tenant_id`,`order_id`,`order_version`)
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='Order客户申报事件永久幂等账本';
|
||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||
DROP TABLE IF EXISTS `fl_order_declaration_snapshot`;
|
||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||
/*!50503 SET character_set_client = utf8mb4 */;
|
||
CREATE TABLE `fl_order_declaration_snapshot` (
|
||
`tenant_id` bigint unsigned NOT NULL COMMENT '客户ID和隔离键',
|
||
`order_id` bigint unsigned NOT NULL COMMENT 'Order订单ID',
|
||
`event_id` varchar(128) NOT NULL COMMENT 'Order Outbox事件ID',
|
||
`order_version` int NOT NULL COMMENT 'Order聚合版本,严格单调消费',
|
||
`request_hash` char(64) NOT NULL COMMENT '完整事件SHA-256',
|
||
`customer_remark` varchar(1000) DEFAULT NULL COMMENT '客户备注快照',
|
||
`expected_arrival_at` datetime(3) DEFAULT NULL COMMENT '预计到仓时间快照',
|
||
`channel_code` varchar(64) NOT NULL COMMENT '渠道编码快照',
|
||
`channel_name` varchar(128) NOT NULL COMMENT '渠道名称快照',
|
||
`cargoes_json` json NOT NULL COMMENT '客户申报货物行完整快照,不覆盖实测事实',
|
||
`changes_json` json DEFAULT NULL COMMENT '本版本申报字段变化摘要',
|
||
`occurred_at` datetime(3) NOT NULL COMMENT 'Order事件发生时间',
|
||
`created_at` datetime(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3),
|
||
`updated_at` datetime(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3),
|
||
PRIMARY KEY (`tenant_id`,`order_id`),
|
||
UNIQUE KEY `uk_order_declaration_event` (`tenant_id`,`event_id`),
|
||
KEY `idx_order_declaration_version` (`tenant_id`,`order_id`,`order_version`)
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='Order客户申报版本快照;与箱码、实测、托盘、PDA和计费事实隔离';
|
||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||
DROP TABLE IF EXISTS `fl_outbound_dispatch`;
|
||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||
/*!50503 SET character_set_client = utf8mb4 */;
|
||
CREATE TABLE `fl_outbound_dispatch` (
|
||
`id` bigint unsigned NOT NULL COMMENT '国内出仓调度记录ID',
|
||
`tenant_id` bigint unsigned NOT NULL COMMENT '客户ID和数据隔离键',
|
||
`order_id` bigint unsigned NOT NULL COMMENT 'Order服务订单逻辑ID,不复制订单主数据',
|
||
`inbound_id` bigint unsigned NOT NULL COMMENT '关联入库单逻辑ID',
|
||
`container_booking_id` bigint unsigned NOT NULL COMMENT '关联柜次逻辑ID',
|
||
`status` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL DEFAULT 'READY_FOR_DISPATCH' COMMENT '出仓状态:READY_FOR_DISPATCH待确认出仓、WAITING_FOR_LOADING等待装柜',
|
||
`version` int unsigned NOT NULL DEFAULT '0' COMMENT '乐观锁版本号,每次更新递增',
|
||
`confirmed_by` bigint unsigned DEFAULT NULL COMMENT '确认国内出仓的操作人ID',
|
||
`confirmed_by_name` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '确认国内出仓的操作人姓名快照',
|
||
`confirmed_at` datetime(3) DEFAULT NULL COMMENT '国内出仓确认时间',
|
||
`reversed_by` bigint unsigned DEFAULT NULL COMMENT '撤销国内出仓的操作人ID',
|
||
`reversed_by_name` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '撤销国内出仓的操作人姓名快照',
|
||
`reversed_at` datetime(3) DEFAULT NULL COMMENT '国内出仓撤销时间',
|
||
`remark` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '国内出仓调度备注',
|
||
`created_at` datetime(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) COMMENT '出仓调度记录创建时间',
|
||
`updated_at` datetime(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3) COMMENT '出仓调度记录最后更新时间',
|
||
PRIMARY KEY (`id`),
|
||
UNIQUE KEY `uk_outbound_dispatch_owner` (`tenant_id`,`inbound_id`,`container_booking_id`),
|
||
KEY `idx_outbound_dispatch_order` (`tenant_id`,`order_id`,`updated_at`),
|
||
KEY `idx_outbound_dispatch_container` (`container_booking_id`,`status`,`updated_at`),
|
||
KEY `fk_outbound_dispatch_inbound` (`inbound_id`),
|
||
CONSTRAINT `fk_outbound_dispatch_container` FOREIGN KEY (`container_booking_id`) REFERENCES `fl_container_booking` (`id`),
|
||
CONSTRAINT `fk_outbound_dispatch_inbound` FOREIGN KEY (`inbound_id`) REFERENCES `fl_inbound_order` (`id`),
|
||
CONSTRAINT `chk_outbound_dispatch_status` CHECK ((`status` in (_utf8mb4'READY_FOR_DISPATCH',_utf8mb4'WAITING_FOR_LOADING')))
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='三期国内出仓派车状态,不重复创建出仓单';
|
||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||
DROP TABLE IF EXISTS `fl_outbound_dispatch_history`;
|
||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||
/*!50503 SET character_set_client = utf8mb4 */;
|
||
CREATE TABLE `fl_outbound_dispatch_history` (
|
||
`id` bigint unsigned NOT NULL COMMENT '出仓状态历史记录ID',
|
||
`dispatch_id` bigint unsigned NOT NULL COMMENT '关联国内出仓调度记录ID',
|
||
`tenant_id` bigint unsigned NOT NULL COMMENT '客户ID和数据隔离键',
|
||
`inbound_id` bigint unsigned NOT NULL COMMENT '关联入库单逻辑ID快照',
|
||
`container_booking_id` bigint unsigned NOT NULL COMMENT '关联柜次逻辑ID快照',
|
||
`action` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '出仓状态变更动作',
|
||
`from_status` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '变更前出仓状态;首次创建时为空',
|
||
`to_status` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '变更后出仓状态',
|
||
`remark` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '状态变更原因或备注',
|
||
`operator_id` bigint unsigned NOT NULL COMMENT '执行状态变更的平台用户ID',
|
||
`operator_name` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '执行状态变更的平台用户姓名快照',
|
||
`created_at` datetime(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) COMMENT '状态历史创建时间',
|
||
PRIMARY KEY (`id`),
|
||
KEY `idx_outbound_dispatch_history` (`tenant_id`,`inbound_id`,`container_booking_id`,`created_at`,`id`),
|
||
KEY `fk_outbound_dispatch_history` (`dispatch_id`),
|
||
CONSTRAINT `fk_outbound_dispatch_history` FOREIGN KEY (`dispatch_id`) REFERENCES `fl_outbound_dispatch` (`id`)
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='国内出仓追加式审计历史';
|
||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||
DROP TABLE IF EXISTS `fl_outbound_dispatch_operation`;
|
||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||
/*!50503 SET character_set_client = utf8mb4 */;
|
||
CREATE TABLE `fl_outbound_dispatch_operation` (
|
||
`id` bigint unsigned NOT NULL COMMENT '出仓幂等操作记录ID',
|
||
`dispatch_id` bigint unsigned DEFAULT NULL COMMENT '首次声明幂等键时允许为空',
|
||
`operator_id` bigint unsigned NOT NULL COMMENT '执行写操作的平台用户ID',
|
||
`operation` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '国内出仓写操作类型',
|
||
`idempotency_key` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '客户端幂等键,同一操作重试复用',
|
||
`request_hash` char(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '规范化请求内容SHA-256摘要',
|
||
`status` varchar(16) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL DEFAULT 'PROCESSING' COMMENT '幂等处理状态:PROCESSING处理中、SUCCESS成功',
|
||
`created_at` datetime(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) COMMENT '幂等声明创建时间',
|
||
`completed_at` datetime(3) DEFAULT NULL COMMENT '幂等操作完成时间',
|
||
PRIMARY KEY (`id`),
|
||
UNIQUE KEY `uk_outbound_dispatch_operation` (`operator_id`,`operation`,`idempotency_key`),
|
||
KEY `idx_outbound_dispatch_operation_resource` (`dispatch_id`,`created_at`),
|
||
CONSTRAINT `fk_outbound_dispatch_operation` FOREIGN KEY (`dispatch_id`) REFERENCES `fl_outbound_dispatch` (`id`),
|
||
CONSTRAINT `chk_outbound_dispatch_operation_status` CHECK ((`status` in (_utf8mb4'PROCESSING',_utf8mb4'SUCCESS')))
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='国内出仓写操作幂等声明';
|
||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||
DROP TABLE IF EXISTS `fl_port_schedule`;
|
||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||
/*!50503 SET character_set_client = utf8mb4 */;
|
||
CREATE TABLE `fl_port_schedule` (
|
||
`id` bigint unsigned NOT NULL COMMENT '港务船期记录ID',
|
||
`schedule_no` varchar(40) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '港务船期记录编号',
|
||
`customer_id` bigint unsigned NOT NULL COMMENT '客户ID和数据隔离键',
|
||
`ocean_booking_id` bigint unsigned NOT NULL COMMENT '关联海运订舱ID',
|
||
`container_booking_id` bigint unsigned DEFAULT NULL COMMENT '关联柜次ID;订舱整票船期时为空',
|
||
`source_type` varchar(24) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '船期来源类型:MANUAL人工录入、CARRIER船公司、TERMINAL码头、API外部接口',
|
||
`source_name` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '船期来源名称',
|
||
`source_ref` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '来源侧记录唯一引用或查询凭据摘要',
|
||
`vessel_name` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '船名快照',
|
||
`voyage_no` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '航次号快照',
|
||
`departure_port_code` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '起运港编码快照',
|
||
`departure_port_name` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '起运港名称快照',
|
||
`destination_port_code` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '目的港编码快照',
|
||
`destination_port_name` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '目的港名称快照',
|
||
`etd_at` datetime(3) DEFAULT NULL COMMENT '预计离港时间',
|
||
`eta_at` datetime(3) DEFAULT NULL COMMENT '预计到港时间',
|
||
`booking_cutoff_at` datetime(3) DEFAULT NULL COMMENT '截单时间',
|
||
`customs_cutoff_at` datetime(3) DEFAULT NULL COMMENT '截关时间',
|
||
`port_cutoff_at` datetime(3) DEFAULT NULL COMMENT '截港时间',
|
||
`observed_at` datetime(3) NOT NULL COMMENT '来源数据观测时间',
|
||
`expires_at` datetime(3) NOT NULL COMMENT '超过该时间即由API计算为过期',
|
||
`remark` varchar(1000) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '平台内部备注',
|
||
`created_by` bigint unsigned NOT NULL COMMENT '创建操作人ID',
|
||
`created_by_name` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '创建操作人姓名快照',
|
||
`created_at` datetime(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) COMMENT '船期记录创建时间',
|
||
`updated_by` bigint unsigned NOT NULL COMMENT '最后修改操作人ID',
|
||
`updated_by_name` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '最后修改操作人姓名快照',
|
||
`updated_at` datetime(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3) COMMENT '船期记录最后更新时间',
|
||
`version` int unsigned NOT NULL DEFAULT '0' COMMENT '乐观锁版本号',
|
||
PRIMARY KEY (`id`),
|
||
UNIQUE KEY `uk_port_schedule_no` (`schedule_no`),
|
||
UNIQUE KEY `uk_port_schedule_source` (`source_type`,`source_name`,`source_ref`),
|
||
KEY `idx_port_schedule_customer` (`customer_id`,`observed_at`,`id`),
|
||
KEY `idx_port_schedule_booking` (`ocean_booking_id`,`observed_at`,`id`),
|
||
KEY `idx_port_schedule_container` (`container_booking_id`,`observed_at`,`id`),
|
||
KEY `idx_port_schedule_expiry` (`expires_at`,`id`),
|
||
CONSTRAINT `fk_port_schedule_booking` FOREIGN KEY (`ocean_booking_id`) REFERENCES `fl_ocean_booking` (`id`),
|
||
CONSTRAINT `fk_port_schedule_container` FOREIGN KEY (`container_booking_id`) REFERENCES `fl_container_booking` (`id`),
|
||
CONSTRAINT `chk_port_schedule_booking_cutoff` CHECK (((`booking_cutoff_at` is null) or (`etd_at` is null) or (`booking_cutoff_at` <= `etd_at`))),
|
||
CONSTRAINT `chk_port_schedule_customer` CHECK ((`customer_id` > 0)),
|
||
CONSTRAINT `chk_port_schedule_customs_cutoff` CHECK (((`customs_cutoff_at` is null) or (`etd_at` is null) or (`customs_cutoff_at` <= `etd_at`))),
|
||
CONSTRAINT `chk_port_schedule_eta` CHECK (((`etd_at` is null) or (`eta_at` is null) or (`eta_at` >= `etd_at`))),
|
||
CONSTRAINT `chk_port_schedule_expiry` CHECK ((`expires_at` > `observed_at`)),
|
||
CONSTRAINT `chk_port_schedule_port_cutoff` CHECK (((`port_cutoff_at` is null) or (`etd_at` is null) or (`port_cutoff_at` <= `etd_at`))),
|
||
CONSTRAINT `chk_port_schedule_source_type` CHECK ((`source_type` in (_utf8mb4'MANUAL',_utf8mb4'CARRIER',_utf8mb4'TERMINAL',_utf8mb4'API')))
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='独立港务船期来源聚合,不替代订舱快照';
|
||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||
DROP TABLE IF EXISTS `fl_port_schedule_history`;
|
||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||
/*!50503 SET character_set_client = utf8mb4 */;
|
||
CREATE TABLE `fl_port_schedule_history` (
|
||
`id` bigint unsigned NOT NULL COMMENT '港务船期变更历史ID',
|
||
`port_schedule_id` bigint unsigned NOT NULL COMMENT '所属港务船期记录ID',
|
||
`action` varchar(24) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '变更动作:CREATE创建、UPDATE更新',
|
||
`from_version` int unsigned DEFAULT NULL COMMENT '变更前版本;创建时为空',
|
||
`to_version` int unsigned NOT NULL COMMENT '变更后版本',
|
||
`reason` varchar(1000) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '变更原因或说明',
|
||
`before_snapshot` json DEFAULT NULL COMMENT '变更前船期数据快照;创建时为空',
|
||
`after_snapshot` json NOT NULL COMMENT '变更后船期数据快照',
|
||
`operator_id` bigint unsigned NOT NULL COMMENT '操作人ID',
|
||
`operator_name` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '操作人姓名快照',
|
||
`created_at` datetime(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) COMMENT '历史记录创建时间',
|
||
PRIMARY KEY (`id`),
|
||
KEY `idx_port_schedule_history` (`port_schedule_id`,`created_at`,`id`),
|
||
CONSTRAINT `fk_port_schedule_history` FOREIGN KEY (`port_schedule_id`) REFERENCES `fl_port_schedule` (`id`),
|
||
CONSTRAINT `chk_port_schedule_history_action` CHECK ((`action` in (_utf8mb4'CREATE',_utf8mb4'UPDATE')))
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='港务船期不可变变更历史';
|
||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||
DROP TABLE IF EXISTS `fl_port_schedule_operation`;
|
||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||
/*!50503 SET character_set_client = utf8mb4 */;
|
||
CREATE TABLE `fl_port_schedule_operation` (
|
||
`id` bigint unsigned NOT NULL COMMENT '港务船期写操作幂等记录ID',
|
||
`port_schedule_id` bigint unsigned DEFAULT NULL COMMENT '关联港务船期ID;创建请求完成前允许为空',
|
||
`operator_id` bigint unsigned NOT NULL COMMENT '发起写操作的平台操作人ID',
|
||
`operation` varchar(24) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '幂等写操作类型',
|
||
`idempotency_key` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '客户端写操作幂等键',
|
||
`request_hash` char(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '规范化请求内容SHA-256摘要;用于识别同键不同请求',
|
||
`status` varchar(16) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL DEFAULT 'PROCESSING' COMMENT '处理状态:PROCESSING处理中、SUCCESS成功',
|
||
`result_json` json DEFAULT NULL COMMENT '成功结果JSON快照;供幂等重放返回',
|
||
`created_at` datetime(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) COMMENT '幂等记录创建时间',
|
||
`completed_at` datetime(3) DEFAULT NULL COMMENT '写操作成功完成时间',
|
||
PRIMARY KEY (`id`),
|
||
UNIQUE KEY `uk_port_schedule_operation` (`operator_id`,`idempotency_key`),
|
||
KEY `idx_port_schedule_operation_resource` (`port_schedule_id`,`created_at`),
|
||
CONSTRAINT `fk_port_schedule_operation` FOREIGN KEY (`port_schedule_id`) REFERENCES `fl_port_schedule` (`id`),
|
||
CONSTRAINT `chk_port_schedule_operation_status` CHECK ((`status` in (_utf8mb4'PROCESSING',_utf8mb4'SUCCESS')))
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='港务船期写操作幂等与请求哈希';
|
||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||
DROP TABLE IF EXISTS `fl_preload_loading_plan_link`;
|
||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||
/*!50503 SET character_set_client = utf8mb4 */;
|
||
CREATE TABLE `fl_preload_loading_plan_link` (
|
||
`id` bigint unsigned NOT NULL COMMENT '关联ID',
|
||
`tenant_id` bigint unsigned NOT NULL COMMENT '入库单客户隔离ID',
|
||
`inbound_id` bigint unsigned NOT NULL COMMENT '入库单ID',
|
||
`preload_plan_id` bigint unsigned NOT NULL COMMENT '入库单级预装计划ID',
|
||
`loading_plan_id` bigint unsigned NOT NULL COMMENT '柜次级装柜计划ID',
|
||
`idempotency_key` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '建立关联幂等键',
|
||
`request_hash` char(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '建立关联请求SHA-256',
|
||
`created_by` bigint unsigned NOT NULL COMMENT '建立预装与装柜计划关联的操作人ID',
|
||
`created_by_name` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '建立关联的操作人姓名快照',
|
||
`created_at` datetime(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) COMMENT '关联记录创建时间',
|
||
PRIMARY KEY (`id`),
|
||
UNIQUE KEY `uk_preload_loading_pair` (`tenant_id`,`inbound_id`,`loading_plan_id`),
|
||
UNIQUE KEY `uk_preload_loading_idempotency` (`created_by`,`idempotency_key`),
|
||
KEY `idx_preload_loading_preload` (`preload_plan_id`,`loading_plan_id`),
|
||
KEY `idx_preload_loading_plan` (`loading_plan_id`,`tenant_id`,`inbound_id`),
|
||
KEY `fk_preload_loading_inbound` (`inbound_id`),
|
||
CONSTRAINT `fk_preload_loading_inbound` FOREIGN KEY (`inbound_id`) REFERENCES `fl_inbound_order` (`id`),
|
||
CONSTRAINT `fk_preload_loading_plan` FOREIGN KEY (`loading_plan_id`) REFERENCES `fl_loading_plan` (`id`),
|
||
CONSTRAINT `fk_preload_loading_preload` FOREIGN KEY (`preload_plan_id`) REFERENCES `fl_preload_plan` (`id`),
|
||
CONSTRAINT `chk_preload_loading_tenant` CHECK ((`tenant_id` > 0))
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='入库单预装与柜次装柜计划多对多关联';
|
||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||
DROP TABLE IF EXISTS `fl_preload_plan`;
|
||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||
/*!50503 SET character_set_client = utf8mb4 */;
|
||
CREATE TABLE `fl_preload_plan` (
|
||
`id` bigint unsigned NOT NULL COMMENT '预装清单ID',
|
||
`tenant_id` bigint unsigned NOT NULL COMMENT '客户ID和数据隔离键',
|
||
`inbound_id` bigint unsigned NOT NULL COMMENT '关联入库单逻辑ID',
|
||
`status` varchar(16) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL DEFAULT 'PENDING' COMMENT '预装状态:PENDING待确认、CONFIRMING确认中、CONFIRMED已确认',
|
||
`version` int NOT NULL DEFAULT '0' COMMENT '乐观锁版本号,每次更新递增',
|
||
`items_json` json NOT NULL COMMENT '可编辑分柜明细JSON快照;人工确认后作为预装依据',
|
||
`remark` varchar(1000) DEFAULT NULL COMMENT '预装备注',
|
||
`confirmed_by` bigint unsigned DEFAULT NULL,
|
||
`confirmed_by_name` varchar(64) DEFAULT NULL,
|
||
`confirmed_at` datetime(3) DEFAULT NULL,
|
||
`created_by` bigint unsigned NOT NULL COMMENT '创建预装清单的操作人ID',
|
||
`created_by_name` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '创建操作人姓名快照',
|
||
`updated_by` bigint unsigned NOT NULL COMMENT '最后修改操作人ID',
|
||
`updated_by_name` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '最后修改操作人姓名快照',
|
||
`created_at` datetime(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) COMMENT '预装清单创建时间',
|
||
`updated_at` datetime(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3) COMMENT '预装清单最后更新时间',
|
||
PRIMARY KEY (`id`),
|
||
UNIQUE KEY `uk_preload_tenant_inbound` (`tenant_id`,`inbound_id`),
|
||
KEY `idx_preload_status` (`tenant_id`,`status`,`updated_at`),
|
||
KEY `fk_preload_inbound` (`inbound_id`),
|
||
CONSTRAINT `fk_preload_inbound` FOREIGN KEY (`inbound_id`) REFERENCES `fl_inbound_order` (`id`)
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='订单分柜预装清单';
|
||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||
DROP TABLE IF EXISTS `fl_price_book_channel`;
|
||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||
/*!50503 SET character_set_client = utf8mb4 */;
|
||
CREATE TABLE `fl_price_book_channel` (
|
||
`id` bigint unsigned NOT NULL COMMENT '版本渠道快照ID',
|
||
`price_book_version_id` bigint unsigned NOT NULL COMMENT '整表价格版本ID',
|
||
`channel_code` varchar(64) NOT NULL COMMENT '固定渠道编码',
|
||
`channel_name` varchar(128) NOT NULL COMMENT '渠道名称快照',
|
||
`price_model` varchar(32) NOT NULL COMMENT '价格模型快照',
|
||
`source_sheet_name` varchar(128) NOT NULL COMMENT '原始Excel Sheet',
|
||
`estimated_departure_date` date DEFAULT NULL COMMENT '标准预计开船日期',
|
||
`estimated_departure_text` varchar(128) DEFAULT NULL COMMENT '原始预计开船日期文本',
|
||
`latest_warehouse_entry` varchar(128) DEFAULT NULL COMMENT '最晚进仓时间',
|
||
`vessel_name` varchar(128) DEFAULT NULL COMMENT '船名',
|
||
`voyage_no` varchar(64) DEFAULT NULL COMMENT '航次',
|
||
`reference_transit` varchar(128) DEFAULT NULL COMMENT '参考时效',
|
||
`surcharge_description` varchar(2000) DEFAULT NULL COMMENT '附加费说明,仅展示',
|
||
`remark` varchar(2000) DEFAULT NULL COMMENT '渠道备注',
|
||
`created_by` bigint unsigned NOT NULL COMMENT '创建人ID',
|
||
`created_at` datetime(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) COMMENT '渠道快照创建时间',
|
||
`updated_by` bigint unsigned NOT NULL COMMENT '最后修改人ID',
|
||
`updated_at` datetime(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3) COMMENT '渠道快照最后更新时间',
|
||
`deleted` tinyint(1) NOT NULL DEFAULT '0' COMMENT '逻辑删除标记',
|
||
`version` int NOT NULL DEFAULT '0' COMMENT '乐观锁版本号',
|
||
PRIMARY KEY (`id`),
|
||
UNIQUE KEY `uk_price_book_channel` (`price_book_version_id`,`channel_code`),
|
||
KEY `idx_price_book_channel_code` (`channel_code`,`price_book_version_id`)
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='价格版本渠道及船期快照';
|
||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||
DROP TABLE IF EXISTS `fl_price_book_version`;
|
||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||
/*!50503 SET character_set_client = utf8mb4 */;
|
||
CREATE TABLE `fl_price_book_version` (
|
||
`id` bigint unsigned NOT NULL COMMENT '整表价格版本ID',
|
||
`tenant_id` bigint unsigned NOT NULL DEFAULT '0' COMMENT '平台公共价格作用域固定为0',
|
||
`version_no` int unsigned NOT NULL COMMENT '整表版本号',
|
||
`original_file_name` varchar(255) NOT NULL COMMENT '原始Excel文件名',
|
||
`source_file_id` bigint unsigned DEFAULT NULL COMMENT 'File服务原始文件ID',
|
||
`source_sha256` char(64) DEFAULT NULL COMMENT '原始文件SHA-256',
|
||
`status` varchar(24) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL DEFAULT 'PENDING_CONFIRMATION' COMMENT '价格版本状态:PENDING_CONFIRMATION待确认、ACTIVE已生效、SUPERSEDED已被替代、FAILED解析失败',
|
||
`blocking_error_count` int unsigned NOT NULL DEFAULT '0' COMMENT '阻断错误数',
|
||
`warning_count` int unsigned NOT NULL DEFAULT '0' COMMENT '警告数',
|
||
`parse_issues_json` json DEFAULT NULL COMMENT '上传解析问题及待确认重新校验结果',
|
||
`channel_count` int unsigned NOT NULL DEFAULT '0' COMMENT '解析渠道数',
|
||
`rate_count` int unsigned NOT NULL DEFAULT '0' COMMENT '解析价格数',
|
||
`created_by` bigint unsigned NOT NULL COMMENT '上传价格表的操作人ID',
|
||
`created_at` datetime(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) COMMENT '上传记录创建时间',
|
||
`published_by` bigint unsigned DEFAULT NULL COMMENT '确认并发布价格版本的操作人ID',
|
||
`published_at` datetime(3) DEFAULT NULL COMMENT '确认并生效时间',
|
||
`superseded_at` datetime(3) DEFAULT NULL COMMENT '被下一版本替换时间',
|
||
`updated_by` bigint unsigned NOT NULL COMMENT '最后修改人ID',
|
||
`updated_at` datetime(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3) COMMENT '最后更新时间',
|
||
`deleted` tinyint(1) NOT NULL DEFAULT '0' COMMENT '逻辑删除标记:0未删除、1已删除',
|
||
`version` int NOT NULL DEFAULT '0' COMMENT '乐观锁版本号',
|
||
`voided_by` bigint unsigned DEFAULT NULL COMMENT '作废操作人ID',
|
||
`voided_at` datetime(3) DEFAULT NULL COMMENT '作废时间',
|
||
`void_reason` varchar(500) DEFAULT NULL COMMENT '作废原因',
|
||
PRIMARY KEY (`id`),
|
||
UNIQUE KEY `uk_price_book_version` (`tenant_id`,`version_no`),
|
||
KEY `idx_price_book_status` (`tenant_id`,`status`,`published_at`),
|
||
KEY `idx_price_book_source_hash` (`tenant_id`,`source_sha256`)
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='平台公共船期价格整表版本';
|
||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||
DROP TABLE IF EXISTS `fl_price_channel_catalog`;
|
||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||
/*!50503 SET character_set_client = utf8mb4 */;
|
||
CREATE TABLE `fl_price_channel_catalog` (
|
||
`id` bigint unsigned NOT NULL COMMENT '渠道目录ID',
|
||
`channel_code` varchar(64) NOT NULL COMMENT '稳定渠道编码',
|
||
`display_name` varchar(128) NOT NULL COMMENT '平台渠道名称',
|
||
`price_model` varchar(32) NOT NULL COMMENT '默认价格模型',
|
||
`source_sheet_name` varchar(128) NOT NULL COMMENT '来源Sheet名称;海派为同一Sheet',
|
||
`aliases_json` json NOT NULL COMMENT '上传名称别名数组',
|
||
`inbound_code_prefix` varchar(6) DEFAULT NULL,
|
||
`overseas_inbound_code_prefix` varchar(6) DEFAULT NULL,
|
||
`status` varchar(16) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL DEFAULT 'ACTIVE' COMMENT '目录状态:ACTIVE启用、DISABLED停用',
|
||
`created_at` datetime(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) COMMENT '创建时间',
|
||
`updated_at` datetime(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3) COMMENT '最后更新时间',
|
||
PRIMARY KEY (`id`),
|
||
UNIQUE KEY `uk_price_channel_code` (`channel_code`),
|
||
KEY `idx_price_channel_status` (`status`,`price_model`)
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='平台公共船期价格固定渠道目录';
|
||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||
DROP TABLE IF EXISTS `fl_price_origin_alias`;
|
||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||
/*!50503 SET character_set_client = utf8mb4 */;
|
||
CREATE TABLE `fl_price_origin_alias` (
|
||
`id` bigint unsigned NOT NULL COMMENT '起运仓别名ID',
|
||
`warehouse_code` varchar(64) NOT NULL COMMENT '平台仓库稳定编码,不存环境专属ID',
|
||
`alias_name` varchar(128) NOT NULL COMMENT 'Excel起运仓名称别名',
|
||
`status` varchar(16) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL DEFAULT 'ACTIVE' COMMENT '状态:ACTIVE启用、DISABLED停用',
|
||
`created_at` datetime(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) COMMENT '创建时间',
|
||
`updated_at` datetime(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3) COMMENT '最后更新时间',
|
||
PRIMARY KEY (`id`),
|
||
UNIQUE KEY `uk_price_origin_alias` (`warehouse_code`,`alias_name`),
|
||
KEY `idx_price_origin_alias_name` (`alias_name`,`status`)
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='价格表起运仓名称别名映射';
|
||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||
DROP TABLE IF EXISTS `fl_price_warehouse_mapping`;
|
||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||
/*!50503 SET character_set_client = utf8mb4 */;
|
||
CREATE TABLE `fl_price_warehouse_mapping` (
|
||
`id` bigint unsigned NOT NULL COMMENT '价格仓映射ID',
|
||
`source_type` varchar(24) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '来源维度:ORIGIN_CODE或OVERSEAS_NAME',
|
||
`source_value` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '解析后的来源仓编码或海外仓名称',
|
||
`warehouse_id` bigint unsigned NOT NULL COMMENT '固定平台公共仓库ID',
|
||
`warehouse_code` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '平台仓库稳定编码快照',
|
||
`warehouse_type` varchar(16) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT 'DOMESTIC或OVERSEAS',
|
||
`status` varchar(16) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL DEFAULT 'ACTIVE' COMMENT '状态:ACTIVE启用、DISABLED停用',
|
||
`created_at` datetime(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) COMMENT '创建时间',
|
||
`updated_at` datetime(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3) COMMENT '最后更新时间',
|
||
PRIMARY KEY (`id`),
|
||
UNIQUE KEY `uk_price_warehouse_mapping_source` (`source_type`,`source_value`),
|
||
KEY `idx_price_warehouse_mapping_target` (`warehouse_id`,`status`)
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='价格表来源仓与固定平台公共仓映射';
|
||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||
DROP TABLE IF EXISTS `fl_split_operation`;
|
||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||
/*!50503 SET character_set_client = utf8mb4 */;
|
||
CREATE TABLE `fl_split_operation` (
|
||
`id` bigint unsigned NOT NULL COMMENT '幂等记录ID',
|
||
`tenant_id` bigint unsigned NOT NULL COMMENT '客户ID和数据隔离键',
|
||
`inbound_id` bigint unsigned NOT NULL COMMENT '操作目标入库单逻辑ID',
|
||
`operator_id` bigint unsigned NOT NULL COMMENT '执行分柜或预装写操作的平台用户ID',
|
||
`operation` varchar(40) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '分柜或预装写操作类型',
|
||
`idempotency_key` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '客户端幂等键,同一操作重试复用',
|
||
`status` varchar(16) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL DEFAULT 'PROCESSING' COMMENT '幂等处理状态:PROCESSING处理中、SUCCESS成功',
|
||
`result_json` json DEFAULT NULL COMMENT '操作结果JSON快照,用于幂等重放',
|
||
`created_at` datetime(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) COMMENT '幂等操作声明创建时间',
|
||
PRIMARY KEY (`id`),
|
||
UNIQUE KEY `uk_split_operation` (`tenant_id`,`inbound_id`,`operator_id`,`operation`,`idempotency_key`),
|
||
KEY `idx_split_operation_time` (`tenant_id`,`inbound_id`,`created_at`),
|
||
KEY `fk_split_operation_inbound` (`inbound_id`),
|
||
CONSTRAINT `fk_split_operation_inbound` FOREIGN KEY (`inbound_id`) REFERENCES `fl_inbound_order` (`id`)
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='分柜操作幂等与审计索引';
|
||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||
DROP TABLE IF EXISTS `fl_terminal_drayage`;
|
||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||
/*!50503 SET character_set_client = utf8mb4 */;
|
||
CREATE TABLE `fl_terminal_drayage` (
|
||
`id` bigint unsigned NOT NULL COMMENT '目的港码头拖车聚合ID',
|
||
`container_booking_id` bigint unsigned NOT NULL COMMENT '唯一归属物理货柜ID',
|
||
`fleet_supplier_id` bigint unsigned DEFAULT NULL COMMENT 'Warehouse ACTIVE/TRUCKING供应商ID快照',
|
||
`fleet_supplier_name` varchar(128) DEFAULT NULL COMMENT 'Warehouse供应商名称快照',
|
||
`pickup_appointment_at` datetime(3) DEFAULT NULL COMMENT '预约提柜时间',
|
||
`actual_pickup_at` datetime(3) DEFAULT NULL COMMENT '实际提柜时间',
|
||
`estimated_empty_return_at` datetime(3) DEFAULT NULL COMMENT '服务端按卸柜完成时间加72小时计算的预计还柜时间',
|
||
`actual_empty_return_at` datetime(3) DEFAULT NULL COMMENT '实际还空柜时间',
|
||
`version` int unsigned NOT NULL DEFAULT '1' COMMENT '乐观锁版本号',
|
||
`created_by` bigint unsigned NOT NULL COMMENT '创建人ID',
|
||
`created_by_name` varchar(64) DEFAULT NULL COMMENT '创建人名称快照',
|
||
`created_at` datetime(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) COMMENT '创建时间',
|
||
`updated_by` bigint unsigned NOT NULL COMMENT '最后更新人ID',
|
||
`updated_by_name` varchar(64) DEFAULT NULL COMMENT '最后更新人名称快照',
|
||
`updated_at` datetime(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3) COMMENT '更新时间',
|
||
PRIMARY KEY (`id`),
|
||
UNIQUE KEY `uk_terminal_drayage_container` (`container_booking_id`),
|
||
KEY `idx_terminal_drayage_warning` (`actual_empty_return_at`,`estimated_empty_return_at`),
|
||
CONSTRAINT `fk_terminal_drayage_container` FOREIGN KEY (`container_booking_id`) REFERENCES `fl_container_booking` (`id`),
|
||
CONSTRAINT `chk_terminal_drayage_times` CHECK ((((`actual_pickup_at` is null) or (`pickup_appointment_at` is not null)) and ((`actual_empty_return_at` is null) or (`actual_pickup_at` is null) or (`actual_empty_return_at` >= `actual_pickup_at`))))
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='目的港货柜级码头拖车与还空事实';
|
||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||
DROP TABLE IF EXISTS `fl_terminal_drayage_history`;
|
||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||
/*!50503 SET character_set_client = utf8mb4 */;
|
||
CREATE TABLE `fl_terminal_drayage_history` (
|
||
`id` bigint unsigned NOT NULL COMMENT '历史ID',
|
||
`drayage_id` bigint unsigned NOT NULL COMMENT '码头拖车聚合ID',
|
||
`container_booking_id` bigint unsigned NOT NULL COMMENT '货柜ID快照',
|
||
`action` varchar(32) NOT NULL COMMENT '业务动作',
|
||
`from_status` varchar(32) NOT NULL COMMENT '操作前状态',
|
||
`to_status` varchar(32) NOT NULL COMMENT '操作后状态',
|
||
`from_version` int unsigned NOT NULL COMMENT '操作前版本',
|
||
`to_version` int unsigned NOT NULL COMMENT '操作后版本',
|
||
`reason` varchar(500) DEFAULT NULL COMMENT '操作说明',
|
||
`operator_id` bigint unsigned NOT NULL COMMENT '操作人ID',
|
||
`operator_name` varchar(64) DEFAULT NULL COMMENT '操作人名称快照',
|
||
`created_at` datetime(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) COMMENT '操作时间',
|
||
PRIMARY KEY (`id`),
|
||
KEY `idx_terminal_drayage_history` (`container_booking_id`,`created_at`,`id`),
|
||
KEY `fk_terminal_drayage_history` (`drayage_id`),
|
||
CONSTRAINT `fk_terminal_drayage_history` FOREIGN KEY (`drayage_id`) REFERENCES `fl_terminal_drayage` (`id`),
|
||
CONSTRAINT `chk_terminal_drayage_history_action` CHECK ((`action` in (_utf8mb4'SELECT_FLEET',_utf8mb4'SEND_PICKUP_EMAIL',_utf8mb4'SCHEDULE_PICKUP',_utf8mb4'RECORD_PICKUP',_utf8mb4'RECORD_EMPTY_RETURN')))
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='目的港码头拖车不可变操作历史';
|
||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||
DROP TABLE IF EXISTS `fl_terminal_drayage_mail`;
|
||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||
/*!50503 SET character_set_client = utf8mb4 */;
|
||
CREATE TABLE `fl_terminal_drayage_mail` (
|
||
`id` bigint unsigned NOT NULL COMMENT '邮件任务ID',
|
||
`container_booking_id` bigint unsigned NOT NULL COMMENT '归属物理货柜ID',
|
||
`fleet_supplier_id` bigint unsigned NOT NULL COMMENT '车队供应商ID快照',
|
||
`fleet_name` varchar(128) NOT NULL COMMENT '车队名称快照',
|
||
`recipient` varchar(254) NOT NULL COMMENT '收件人邮箱',
|
||
`kind` varchar(32) NOT NULL COMMENT '邮件类型:REQUEST_PICKUP提柜请求、CANCEL_PICKUP取消提柜',
|
||
`subject` varchar(255) NOT NULL COMMENT '邮件主题',
|
||
`body` text NOT NULL COMMENT '邮件正文',
|
||
`status` varchar(16) NOT NULL DEFAULT 'PENDING' COMMENT '投递状态:PENDING待发送、SENDING发送中、SENT已发送、FAILED失败',
|
||
`attempts` int NOT NULL DEFAULT '0' COMMENT '发送尝试次数',
|
||
`failure_reason` varchar(500) DEFAULT NULL COMMENT '发送失败原因',
|
||
`created_by` bigint unsigned NOT NULL COMMENT '创建人ID',
|
||
`updated_by` bigint unsigned NOT NULL COMMENT '最后更新人ID',
|
||
`created_at` datetime(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) COMMENT '创建时间',
|
||
`updated_at` datetime(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3) COMMENT '更新时间',
|
||
`sent_at` datetime(3) DEFAULT NULL COMMENT '发送成功时间',
|
||
PRIMARY KEY (`id`),
|
||
KEY `idx_terminal_mail_dispatch` (`status`,`id`),
|
||
KEY `idx_terminal_mail_container` (`container_booking_id`,`id`,`status`),
|
||
CONSTRAINT `fk_terminal_mail_container` FOREIGN KEY (`container_booking_id`) REFERENCES `fl_container_booking` (`id`),
|
||
CONSTRAINT `chk_terminal_mail_kind` CHECK ((`kind` in (_utf8mb4'REQUEST_PICKUP',_utf8mb4'CANCEL_PICKUP'))),
|
||
CONSTRAINT `chk_terminal_mail_status` CHECK ((`status` in (_utf8mb4'PENDING',_utf8mb4'SENDING',_utf8mb4'SENT',_utf8mb4'FAILED')))
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='码头车队邮件任务与投递记录';
|
||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||
DROP TABLE IF EXISTS `fl_terminal_drayage_operation`;
|
||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||
/*!50503 SET character_set_client = utf8mb4 */;
|
||
CREATE TABLE `fl_terminal_drayage_operation` (
|
||
`id` bigint unsigned NOT NULL COMMENT '幂等操作ID',
|
||
`container_booking_id` bigint unsigned NOT NULL COMMENT '货柜ID',
|
||
`operation` varchar(32) NOT NULL COMMENT '业务动作',
|
||
`idempotency_key` varchar(255) NOT NULL COMMENT '客户端幂等键',
|
||
`request_hash` char(64) NOT NULL COMMENT '请求载荷SHA-256',
|
||
`result_version` int unsigned NOT NULL COMMENT '成功结果版本',
|
||
`operator_id` bigint unsigned NOT NULL COMMENT '操作人ID',
|
||
`created_at` datetime(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) COMMENT '完成时间',
|
||
PRIMARY KEY (`id`),
|
||
UNIQUE KEY `uk_terminal_drayage_operation` (`container_booking_id`,`idempotency_key`),
|
||
KEY `idx_terminal_drayage_operation` (`container_booking_id`,`created_at`),
|
||
CONSTRAINT `fk_terminal_drayage_operation_container` FOREIGN KEY (`container_booking_id`) REFERENCES `fl_container_booking` (`id`)
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='目的港码头拖车成功幂等操作';
|
||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||
DROP TABLE IF EXISTS `fl_third_party_call_log`;
|
||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||
/*!50503 SET character_set_client = utf8mb4 */;
|
||
CREATE TABLE `fl_third_party_call_log` (
|
||
`id` bigint unsigned NOT NULL COMMENT '第三方调用日志ID(雪花ID)',
|
||
`tenant_id` bigint unsigned NOT NULL DEFAULT '0' COMMENT '第三方未知/未解析主体哨兵值;不是平台客户记录或平台作用域,不得用于业务数据授权',
|
||
`app_key` varchar(128) DEFAULT NULL COMMENT '第三方应用标识',
|
||
`signature_subject` varchar(128) DEFAULT NULL COMMENT '签名主体快照',
|
||
`request_method` varchar(8) NOT NULL COMMENT 'HTTP方法',
|
||
`request_path` varchar(255) NOT NULL COMMENT '签名使用的规范路径',
|
||
`request_timestamp` varchar(32) DEFAULT NULL COMMENT '请求头Unix毫秒时间戳原值',
|
||
`nonce` varchar(128) DEFAULT NULL COMMENT '请求Nonce',
|
||
`idempotency_key` varchar(128) DEFAULT NULL COMMENT 'HTTP幂等键,查询接口为空',
|
||
`idempotency_anchor` tinyint unsigned DEFAULT NULL COMMENT '签名通过后首个请求为1,重复调用为空',
|
||
`signature_value` varchar(128) DEFAULT NULL COMMENT '第三方签名原值',
|
||
`request_hash` char(64) NOT NULL COMMENT '原始请求体SHA-256小写十六进制',
|
||
`raw_payload` longtext NOT NULL COMMENT '未经重新序列化的UTF-8原始请求体',
|
||
`processing_status` varchar(16) NOT NULL COMMENT 'PROCESSING、ACCEPTED或REJECTED',
|
||
`result_code` varchar(32) DEFAULT NULL COMMENT '统一响应业务码',
|
||
`result_message` varchar(1000) DEFAULT NULL COMMENT '处理结果或失败原因',
|
||
`result_json` json DEFAULT NULL COMMENT '首次成功结果快照',
|
||
`requested_at` datetime(3) NOT NULL COMMENT '服务端接收时间',
|
||
`processed_at` datetime(3) DEFAULT NULL COMMENT '处理完成时间',
|
||
PRIMARY KEY (`id`),
|
||
UNIQUE KEY `uk_third_call_idempotency_owner` (`tenant_id`,`app_key`,`idempotency_key`,`idempotency_anchor`),
|
||
KEY `idx_third_call_app_time` (`tenant_id`,`app_key`,`requested_at`),
|
||
KEY `idx_third_call_idempotency` (`tenant_id`,`app_key`,`idempotency_key`),
|
||
KEY `idx_third_call_nonce` (`tenant_id`,`app_key`,`nonce`)
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='第三方测量开放接口原始请求、签名主体和处理结果留档';
|
||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||
DROP TABLE IF EXISTS `fl_truck_appointment`;
|
||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||
/*!50503 SET character_set_client = utf8mb4 */;
|
||
CREATE TABLE `fl_truck_appointment` (
|
||
`id` bigint unsigned NOT NULL COMMENT '拖车预约ID',
|
||
`appointment_no` varchar(40) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '平台拖车预约编号',
|
||
`outbound_order_id` bigint unsigned DEFAULT NULL COMMENT '关联头程订单逻辑ID;不跨库建外键',
|
||
`ocean_booking_id` bigint unsigned DEFAULT NULL COMMENT '关联海运订舱逻辑ID',
|
||
`container_booking_id` bigint unsigned DEFAULT NULL COMMENT '关联柜次逻辑ID;拖车完成供装柜门禁校验',
|
||
`loading_plan_id` bigint unsigned DEFAULT NULL COMMENT '关联装柜计划逻辑ID',
|
||
`warehouse_id` bigint unsigned DEFAULT NULL COMMENT '预约到仓的国内收货仓逻辑ID',
|
||
`customer_id` bigint unsigned DEFAULT NULL COMMENT '客户ID和数据隔离键',
|
||
`customer_name` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '客户名称快照',
|
||
`carrier_id` bigint unsigned DEFAULT NULL COMMENT '拖车服务商逻辑ID',
|
||
`carrier_name` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '拖车服务商名称快照',
|
||
`bill_of_lading_no` varchar(128) DEFAULT NULL,
|
||
`fleet_contact` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '车队联系人',
|
||
`fleet_phone` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '车队联系电话',
|
||
`driver_name` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '司机姓名',
|
||
`driver_phone` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '司机联系电话',
|
||
`driver_id_card` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '司机身份证号;平台内部敏感信息',
|
||
`vehicle_no` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '车辆车牌号',
|
||
`store_name` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '到仓装柜地点名称快照',
|
||
`store_contact` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '到仓地点联系人快照',
|
||
`store_phone` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '到仓地点联系电话快照',
|
||
`store_address` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '到仓装柜地点地址快照',
|
||
`store_city` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '到仓地点城市快照',
|
||
`store_zipcode` varchar(16) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '到仓地点邮编快照',
|
||
`package_count` int unsigned DEFAULT NULL COMMENT '预约货物包装件数快照',
|
||
`gross_weight_kg` decimal(18,3) DEFAULT NULL COMMENT '预约货物毛重,单位千克',
|
||
`volume_cbm` decimal(18,4) DEFAULT NULL COMMENT '预约货物体积,单位立方米',
|
||
`pallet_count` int unsigned DEFAULT NULL COMMENT '预约托盘数量',
|
||
`po_no` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '关联采购单号或客户PO号',
|
||
`planned_loading_at` datetime(3) DEFAULT NULL COMMENT '预约到仓装柜时间',
|
||
`actual_arrived_warehouse_at` datetime(3) DEFAULT NULL COMMENT '车辆实际到达收货仓时间',
|
||
`actual_loading_at` datetime(3) DEFAULT NULL COMMENT '实际开始装柜时间',
|
||
`actual_departed_at` datetime(3) DEFAULT NULL COMMENT '车辆实际离仓时间;DEPARTED后供LOADED门禁使用',
|
||
`transit_minutes` int unsigned DEFAULT NULL COMMENT '从到仓到离仓的运输作业耗时,单位分钟',
|
||
`payable_amount` decimal(18,2) DEFAULT NULL COMMENT '应付拖车服务商金额;币种由currency指定',
|
||
`receivable_amount` decimal(18,2) DEFAULT NULL COMMENT '向客户收取的拖车金额;币种由currency指定',
|
||
`currency` varchar(8) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL DEFAULT 'RMB' COMMENT '金额币种;首期默认RMB',
|
||
`status` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL DEFAULT 'DRAFT' COMMENT '拖车预约状态:DRAFT草稿、PENDING_DISPATCH待派车、DISPATCHED已派车、PICKUP_IN_PROGRESS提货中、ARRIVED_WAREHOUSE已到仓、LOADING装柜中、DEPARTED已离仓、COMPLETED已完成、RESCHEDULED已改约、EXCEPTION异常、CANCELLED已取消',
|
||
`revision` int unsigned NOT NULL DEFAULT '0' COMMENT '拖车预约业务修订号;每次状态或改约递增',
|
||
`version` int unsigned NOT NULL DEFAULT '0' COMMENT '乐观锁版本号',
|
||
`remark` varchar(1000) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '平台内部备注或异常说明',
|
||
`created_at` datetime(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) COMMENT '拖车预约创建时间',
|
||
`updated_at` datetime(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3) COMMENT '拖车预约最后更新时间',
|
||
`active_container_booking_id` bigint unsigned GENERATED ALWAYS AS ((case when (`status` not in (_utf8mb4'COMPLETED',_utf8mb4'CANCELLED',_utf8mb4'EXCEPTION')) then `container_booking_id` else NULL end)) STORED COMMENT '非终态预约的柜次唯一键',
|
||
`active_ocean_booking_id` bigint unsigned GENERATED ALWAYS AS ((case when (`status` not in (_utf8mb4'COMPLETED',_utf8mb4'CANCELLED',_utf8mb4'EXCEPTION')) then `ocean_booking_id` else NULL end)) STORED COMMENT '非终态预约的订舱唯一键',
|
||
PRIMARY KEY (`id`),
|
||
UNIQUE KEY `uk_truck_appointment_no` (`appointment_no`),
|
||
KEY `idx_truck_appointment_status` (`status`,`updated_at`),
|
||
KEY `idx_truck_appointment_container` (`container_booking_id`),
|
||
KEY `idx_truck_appointment_customer` (`customer_id`),
|
||
CONSTRAINT `chk_truck_appointment_status` CHECK ((`status` in (_utf8mb4'DRAFT',_utf8mb4'PENDING_DISPATCH',_utf8mb4'DISPATCHED',_utf8mb4'PICKUP_IN_PROGRESS',_utf8mb4'ARRIVED_WAREHOUSE',_utf8mb4'LOADING',_utf8mb4'DEPARTED',_utf8mb4'COMPLETED',_utf8mb4'RESCHEDULED',_utf8mb4'EXCEPTION',_utf8mb4'CANCELLED')))
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='三期拖车预约派车聚合';
|
||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||
DROP TABLE IF EXISTS `fl_truck_appointment_attachment`;
|
||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||
/*!50503 SET character_set_client = utf8mb4 */;
|
||
CREATE TABLE `fl_truck_appointment_attachment` (
|
||
`id` bigint unsigned NOT NULL COMMENT '拖车附件关系ID',
|
||
`appointment_id` bigint unsigned NOT NULL COMMENT '所属拖车预约ID',
|
||
`file_id` bigint unsigned NOT NULL COMMENT 'File服务文件逻辑ID',
|
||
`attachment_type` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '附件类型编码;由业务动作约定',
|
||
`file_name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '上传时文件名快照',
|
||
`file_hash` char(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '文件内容SHA-256摘要',
|
||
`visibility` varchar(24) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL DEFAULT 'INTERNAL' COMMENT '可见范围:INTERNAL仅平台内部、CLIENT客户可见',
|
||
`uploaded_by` bigint unsigned NOT NULL COMMENT '上传操作人ID',
|
||
`uploaded_at` datetime(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) COMMENT '附件上传时间',
|
||
PRIMARY KEY (`id`),
|
||
UNIQUE KEY `uk_truck_attachment` (`appointment_id`,`file_id`),
|
||
KEY `idx_truck_attachment` (`appointment_id`)
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='拖车附件文件引用';
|
||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||
DROP TABLE IF EXISTS `fl_truck_appointment_history`;
|
||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||
/*!50503 SET character_set_client = utf8mb4 */;
|
||
CREATE TABLE `fl_truck_appointment_history` (
|
||
`id` bigint unsigned NOT NULL COMMENT '拖车预约历史ID',
|
||
`appointment_id` bigint unsigned NOT NULL COMMENT '所属拖车预约ID',
|
||
`revision` int unsigned NOT NULL COMMENT '该预约业务修订号',
|
||
`action` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '触发状态或改约的业务动作',
|
||
`from_status` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '变更前拖车状态;创建时为空',
|
||
`to_status` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '变更后拖车状态;改约时可保持原状态',
|
||
`reason` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '状态或改约原因',
|
||
`operator_id` bigint unsigned NOT NULL COMMENT '执行操作的平台用户ID',
|
||
`operator_name` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '操作人姓名快照',
|
||
`request_id` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '请求链路中的请求ID',
|
||
`created_at` datetime(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) COMMENT '历史记录创建时间',
|
||
PRIMARY KEY (`id`),
|
||
KEY `idx_truck_history` (`appointment_id`,`revision`)
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='拖车状态与改约历史';
|
||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||
DROP TABLE IF EXISTS `fl_truck_appointment_operation`;
|
||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||
/*!50503 SET character_set_client = utf8mb4 */;
|
||
CREATE TABLE `fl_truck_appointment_operation` (
|
||
`id` bigint unsigned NOT NULL COMMENT '拖车写操作幂等记录ID',
|
||
`appointment_id` bigint unsigned NOT NULL COMMENT '所属拖车预约ID',
|
||
`idempotency_key` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '客户端写操作幂等键',
|
||
`request_hash` char(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '规范化请求内容SHA-256摘要;用于识别同键不同请求',
|
||
`action` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '执行的拖车业务动作',
|
||
`response_snapshot` json DEFAULT NULL COMMENT '成功响应JSON快照;供相同幂等请求重放',
|
||
`created_at` datetime(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) COMMENT '幂等记录创建时间',
|
||
PRIMARY KEY (`id`),
|
||
UNIQUE KEY `uk_truck_operation` (`idempotency_key`),
|
||
KEY `idx_truck_operation_appointment` (`appointment_id`)
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='拖车操作幂等记录';
|
||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||
DROP TABLE IF EXISTS `sys_audit_outbox`;
|
||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||
/*!50503 SET character_set_client = utf8mb4 */;
|
||
CREATE TABLE `sys_audit_outbox` (
|
||
`event_id` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '审计事件全局唯一ID',
|
||
`event_type` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '审计事件类型',
|
||
`resource_type` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '被审计业务资源类型',
|
||
`resource_id` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '被审计业务资源ID;无法确定时为空',
|
||
`service_name` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '产生审计事件的服务名称',
|
||
`payload_json` json NOT NULL COMMENT '待发送的审计事件完整负载快照',
|
||
`status` varchar(16) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL DEFAULT 'PENDING' COMMENT '发送状态:PENDING待发送、SENDING发送中、SENT已发送、DEAD已转死信',
|
||
`attempt_count` int NOT NULL DEFAULT '0' COMMENT '正常发送累计尝试次数',
|
||
`compensation_count` int NOT NULL DEFAULT '0' COMMENT '人工或自动补偿累计次数',
|
||
`next_retry_at` datetime(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) COMMENT '允许下次重试的最早时间',
|
||
`lease_owner` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '当前发送任务租约持有者标识',
|
||
`lease_until` datetime(3) DEFAULT NULL COMMENT '当前发送任务租约到期时间',
|
||
`last_error` varchar(1000) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '最近一次发送失败原因',
|
||
`dead_at` datetime(3) DEFAULT NULL COMMENT '转入死信状态的时间',
|
||
`sent_at` datetime(3) DEFAULT NULL COMMENT '首次成功发送时间',
|
||
`created_at` datetime(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) COMMENT '事件创建时间',
|
||
`updated_at` datetime(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3) COMMENT '记录最后更新时间',
|
||
PRIMARY KEY (`event_id`),
|
||
KEY `idx_audit_outbox_publish` (`status`,`next_retry_at`,`lease_until`,`created_at`),
|
||
KEY `idx_audit_outbox_retention` (`status`,`sent_at`)
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='可靠审计事件本地发送箱';
|
||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||
/*!40103 SET TIME_ZONE=@OLD_TIME_ZONE */;
|
||
|
||
/*!40101 SET SQL_MODE=@OLD_SQL_MODE */;
|
||
/*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */;
|
||
/*!40014 SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS */;
|
||
/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
|
||
/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
|
||
/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;
|
||
/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */;
|
||
|