Files
baiyue-firstleg/output/local-schema-repair/schema-after.sql
T
2026-10-20 11:33:20 +08:00

9730 lines
755 KiB
SQL
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
/*!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 `event_delivery_retry_audit`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!50503 SET character_set_client = utf8mb4 */;
CREATE TABLE `event_delivery_retry_audit` (
`request_id` varchar(36) NOT NULL COMMENT '人工重试请求UUID和幂等键',
`producer_table` varchar(64) NOT NULL COMMENT '本服务发件箱表名',
`entry_id` varchar(64) NOT NULL COMMENT '发件箱记录主键',
`event_id` varchar(128) NOT NULL COMMENT '原事件全局标识',
`event_type` varchar(64) NOT NULL COMMENT '原事件类型',
`payload_hash` varchar(71) NOT NULL COMMENT '原事件不可变负载摘要',
`operator_name` varchar(128) NOT NULL COMMENT '持有运维凭据的操作人标识',
`reason` varchar(500) NOT NULL COMMENT '人工重试原因',
`previous_failures` int NOT NULL COMMENT '重试前累计失败次数',
`previous_error` varchar(1000) DEFAULT NULL COMMENT '重试前最后一次脱敏错误',
`requested_at` datetime(3) NOT NULL COMMENT '重试申请提交时间',
PRIMARY KEY (`request_id`),
KEY `idx_event_retry_entry` (`producer_table`,`entry_id`,`requested_at`),
KEY `idx_event_retry_event` (`event_id`,`requested_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_cargo_verification`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!50503 SET character_set_client = utf8mb4 */;
CREATE TABLE `ll_appointment_cargo_verification` (
`id` bigint NOT NULL COMMENT '核实记录主键',
`customer_id` varchar(128) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '原货源所属客户',
`source_key` varchar(160) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '稳定ORDER或BOOKING原来源键',
`destination_key` varchar(160) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '核实时的原目的地',
`source_version` varchar(160) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '核实时的原来源版本',
`source_packages` int DEFAULT NULL COMMENT '核实时的原来源箱数,未知为空',
`version` int NOT NULL COMMENT '同一来源的核实版本,从一递增',
`package_count` int DEFAULT NULL COMMENT '独立核实箱数,不回写原订单',
`shipment_references_json` longtext COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '本票货件号或追踪号列表,不回写原订单',
`remark` varchar(1000) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '核实说明',
`operator_id` varchar(128) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '登录操作人',
`operator_name` varchar(200) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '操作人名称快照',
`command_key` varchar(64) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '来源内幂等命令键',
`request_hash` char(64) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '来源、操作人及请求摘要',
`created_at` datetime(3) NOT NULL COMMENT '核实UTC时间',
PRIMARY KEY (`id`),
UNIQUE KEY `uk_ll_cargo_verification_version` (`customer_id`,`source_key`,`version`),
UNIQUE KEY `uk_ll_cargo_verification_command` (`customer_id`,`source_key`,`command_key`),
CONSTRAINT `chk_ll_cargo_verification_quantity` CHECK (((`package_count` is null) or (`package_count` > 0))),
CONSTRAINT `chk_ll_cargo_verification_version` CHECK ((`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_appointment_followup`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!50503 SET character_set_client = utf8mb4 */;
CREATE TABLE `ll_appointment_followup` (
`id` bigint NOT NULL COMMENT '预约筹划跟进记录ID',
`source_key` varchar(160) NOT NULL COMMENT '稳定ORDER、BOOKING或CONTAINER及接仓点来源键',
`customer_id` varchar(128) NOT NULL COMMENT '货源客户;整柜共享记录由服务端固定为平台作用域0',
`source_order_id` bigint DEFAULT NULL COMMENT '已形成的真实尾程货源ID,尚未生成时为空',
`stage` varchar(32) NOT NULL COMMENT '跟进对象:DRAYAGE_CONTACT/TERMINAL_APPOINTMENT/WAREHOUSE_RECEIVING/FBA_RECEIVING',
`version` int NOT NULL COMMENT '同一货源及跟进对象的记录版本',
`contacted_party` varchar(200) DEFAULT NULL COMMENT '本次联系对象,不替代承运主档',
`result` varchar(1000) NOT NULL COMMENT '本次反馈事实,不自动确认预约或推进实物作业',
`next_action` varchar(500) DEFAULT NULL COMMENT '下一步安排',
`followup_date` date DEFAULT NULL COMMENT '按业务地点当地日期记录的下次跟进日',
`operator_id` varchar(128) NOT NULL COMMENT '登录平台操作者ID',
`operator_name` varchar(200) DEFAULT NULL COMMENT '操作人姓名快照',
`command_key` varchar(64) NOT NULL COMMENT '持久幂等键',
`request_hash` char(64) NOT NULL COMMENT '含操作者身份的请求SHA256摘要',
`created_at` datetime(3) NOT NULL COMMENT 'UTC记录时间',
PRIMARY KEY (`id`),
UNIQUE KEY `uk_appointment_followup_version` (`source_key`,`stage`,`version`),
UNIQUE KEY `uk_appointment_followup_command` (`source_key`,`stage`,`command_key`),
KEY `idx_appointment_followup_date` (`followup_date`,`source_order_id`),
KEY `fk_appointment_followup_order` (`source_order_id`),
CONSTRAINT `fk_appointment_followup_order` FOREIGN KEY (`source_order_id`) REFERENCES `ll_order` (`id`),
CONSTRAINT `chk_appointment_followup_stage` CHECK ((`stage` in (_utf8mb4'DRAYAGE_CONTACT',_utf8mb4'TERMINAL_APPOINTMENT',_utf8mb4'WAREHOUSE_RECEIVING',_utf8mb4'FBA_RECEIVING')))
) 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_impact`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!50503 SET character_set_client = utf8mb4 */;
CREATE TABLE `ll_appointment_impact` (
`container_booking_id` varchar(64) NOT NULL COMMENT '稳定柜次关联键,不作业务编号展示',
`impact_no` varchar(40) NOT NULL COMMENT '船期核对事项业务号',
`baseline_json` longtext NOT NULL COMMENT '已核对基准或首次变化前观察,原来源时间口径',
`latest_json` longtext NOT NULL COMMENT '最新已读取观察,未知可为JSON null',
`forecast_token` char(64) NOT NULL COMMENT '最新观察摘要,处理时防止旧预测结案',
`status` varchar(20) NOT NULL COMMENT '事项状态:MONITORING监测/OPEN待处理/RESOLVED已完成',
`reason` varchar(64) DEFAULT NULL COMMENT '预测变化或资料待核实原因',
`owner_id` varchar(128) DEFAULT NULL COMMENT '认领平台人员ID',
`owner_name` varchar(200) DEFAULT NULL COMMENT '负责人姓名快照',
`version` int NOT NULL COMMENT '观察及人工处理共同版本',
`updated_at` datetime(3) NOT NULL COMMENT 'UTC更新时间',
PRIMARY KEY (`container_booking_id`),
UNIQUE KEY `uk_appointment_impact_no` (`impact_no`),
KEY `idx_appointment_impact_work` (`status`,`updated_at`),
CONSTRAINT `chk_appointment_impact_status` CHECK ((`status` in (_utf8mb4'MONITORING',_utf8mb4'OPEN',_utf8mb4'RESOLVED')))
) 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_impact_history`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!50503 SET character_set_client = utf8mb4 */;
CREATE TABLE `ll_appointment_impact_history` (
`id` bigint NOT NULL COMMENT '历史记录标识',
`container_booking_id` varchar(64) NOT NULL COMMENT '关联柜次标识',
`version` int NOT NULL COMMENT '记录版本',
`action` varchar(20) NOT NULL COMMENT '操作类型:OBSERVED观察/CLAIM认领/RECORD记录/RESOLVE完成',
`operator_id` varchar(128) NOT NULL COMMENT '操作人标识',
`operator_name` varchar(200) DEFAULT NULL COMMENT '操作人姓名',
`result` varchar(1000) DEFAULT NULL COMMENT '人工处理结果;观察记录为空',
`next_action` varchar(500) DEFAULT NULL COMMENT '下一步处理事项',
`followup_date` date DEFAULT NULL COMMENT '业务跟进日期',
`command_key` varchar(64) DEFAULT NULL COMMENT '人工命令幂等键;观察记录为空',
`request_hash` char(64) DEFAULT NULL COMMENT '请求内容摘要',
`response_json` longtext NOT NULL COMMENT '该版本完整响应快照,支持精确重放',
`created_at` datetime(3) NOT NULL COMMENT 'UTC记录时间',
PRIMARY KEY (`id`),
UNIQUE KEY `uk_appointment_impact_version` (`container_booking_id`,`version`),
UNIQUE KEY `uk_appointment_impact_command` (`container_booking_id`,`operator_id`,`command_key`),
CONSTRAINT `fk_appointment_impact_history` FOREIGN KEY (`container_booking_id`) REFERENCES `ll_appointment_impact` (`container_booking_id`),
CONSTRAINT `chk_appointment_impact_action` CHECK ((`action` in (_utf8mb4'OBSERVED',_utf8mb4'CLAIM',_utf8mb4'RECORD',_utf8mb4'RESOLVE')))
) 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),
`source_type` varchar(32) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT 'DROPSHIP' COMMENT '箱子来源:一件代发DROPSHIP、入仓箱INBOUND、转运箱TRANSFER',
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`),
UNIQUE KEY `uk_ll_discard_position_sku` (`application_id`,`inventory_position_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_facts_changed`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!50503 SET character_set_client = utf8mb4 */;
CREATE TABLE `ll_delivery_facts_changed` (
`id` bigint NOT NULL COMMENT '持久信号内部主键',
`customer_id` varchar(128) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '真实签收货物客户ID',
`dispatch_id` bigint NOT NULL COMMENT '整车排车主单ID',
`dispatch_no` varchar(128) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '真实排车业务号',
`delivery_id` bigint NOT NULL COMMENT '本客户派送单ID',
`delivery_no` varchar(128) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '真实派送业务号',
`delivery_version` bigint NOT NULL COMMENT '触发信号的真实派送版本',
`facts_hash` char(64) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '该版本真实签收事实摘要',
`occurred_at` datetime(3) NOT NULL COMMENT '签收事实实际发生时间',
`state` varchar(16) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT 'PENDING' COMMENT '待核对PENDING或已核对PROCESSED',
`attempt_count` int NOT NULL DEFAULT '0' COMMENT '已记录的汇总失败次数',
`next_attempt_at` datetime(3) NOT NULL COMMENT '下次可重试时间',
`last_error_code` varchar(64) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '最近失败诊断码不保存敏感异常正文',
`processed_at` datetime(3) DEFAULT NULL COMMENT '与主阶段汇总同事务确认时间',
PRIMARY KEY (`id`),
UNIQUE KEY `uk_delivery_fact_version` (`customer_id`,`delivery_id`,`delivery_version`),
KEY `idx_delivery_fact_due` (`state`,`next_attempt_at`,`id`),
KEY `idx_delivery_fact_dispatch` (`dispatch_id`,`state`,`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_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_command`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!50503 SET character_set_client = utf8mb4 */;
CREATE TABLE `ll_dispatch_command` (
`id` bigint NOT NULL COMMENT '持久命令内部主键',
`dispatch_id` bigint NOT NULL COMMENT '命令所属整车排车主单ID',
`dispatch_no` varchar(64) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '命令所属真实排车业务号',
`action` varchar(40) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '本次整车作业动作',
`operator_id` varchar(128) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '原始可信操作主体ID',
`idempotency_key` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '跨操作主体全局唯一的原始请求键',
`record_version` bigint NOT NULL COMMENT '原请求明确提交的排车版本,零为合法首版',
`command_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 COMMENT '成功命令记录时间,使用UTC',
PRIMARY KEY (`id`),
UNIQUE KEY `uk_dispatch_command_key` (`idempotency_key`),
KEY `idx_dispatch_command_history` (`dispatch_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_dispatch_delivery_arrangement`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!50503 SET character_set_client = utf8mb4 */;
CREATE TABLE `ll_dispatch_delivery_arrangement` (
`id` bigint NOT NULL COMMENT '安排事实内部主键',
`dispatch_order_id` bigint NOT NULL COMMENT '唯一整车排车主单ID',
`dispatch_no` varchar(128) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '真实排车业务号',
`arrangement_key` varchar(128) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '本次唯一安排业务事实标识',
`business_hash` char(64) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '排除操作者及纯并发版本的安排业务摘要',
`cargo_hash` char(64) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '本车实际拣货来源摘要',
`loading_completion_hash` char(64) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '装车完成事实摘要',
`original_command_key` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '首次安排的全局请求键',
`original_operator_id` varchar(128) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '首次安排操作主体',
`result_json` json NOT NULL COMMENT '全部客户出库及客户目的地派送不可变结果',
`cargo_json` json NOT NULL COMMENT '逐客户逐拣货归属的不可变真实来源',
`created_at` datetime(3) NOT NULL COMMENT '本次安排实际创建时间',
PRIMARY KEY (`id`),
UNIQUE KEY `uk_dispatch_arrangement_dispatch` (`dispatch_order_id`),
UNIQUE KEY `uk_dispatch_arrangement_key` (`arrangement_key`),
UNIQUE KEY `uk_dispatch_arrangement_command` (`original_command_key`)
) 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),
`warehouse_id` bigint DEFAULT NULL COMMENT '本草稿唯一起运公共仓库引用',
`record_version` bigint NOT NULL DEFAULT '0' COMMENT '草稿并发版本,显式零版本合法',
`sources_json` longtext COLLATE utf8mb4_unicode_ci COMMENT '服务端核验的真实来源及客户版本快照数组',
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_command`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!50503 SET character_set_client = utf8mb4 */;
CREATE TABLE `ll_dispatch_draft_command` (
`id` bigint NOT NULL COMMENT '草稿命令内部主键',
`idempotency_key` varchar(128) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '草稿操作全局唯一幂等键',
`operator_id` varchar(64) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '原命令操作主体,恢复必须为本人',
`action` varchar(32) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '草稿创建、维护、选货、释放或转换动作',
`target_token` varchar(128) 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 COMMENT '本事务完成后保存的不可变原结果,不提交空结果',
`created_at` datetime(3) NOT NULL COMMENT '命令创建UTC时间',
PRIMARY KEY (`id`),
UNIQUE KEY `uk_ll_dispatch_draft_command_key` (`idempotency_key`)
) 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),
`source_keys_json` longtext COLLATE utf8mb4_unicode_ci COMMENT '本装车容器已取得本草稿占用的来源键数组',
PRIMARY KEY (`id`),
UNIQUE KEY `uk_ll_dispatch_draft_container_sequence` (`draft_id`,`sequence_no`),
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_history`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!50503 SET character_set_client = utf8mb4 */;
CREATE TABLE `ll_dispatch_history` (
`id` bigint NOT NULL COMMENT '排车历史内部主键',
`dispatch_id` bigint NOT NULL COMMENT '本次历史所属整车主单ID',
`record_version` bigint NOT NULL COMMENT '操作完成后的整车公共版本',
`action` varchar(40) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '本次真实业务动作',
`operator_id` varchar(128) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '可信操作主体ID',
`reason` varchar(2000) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '审核驳回或变更原因',
`snapshot_json` json NOT NULL COMMENT '动作完成当时的完整主单事实快照',
`occurred_at` datetime(3) NOT NULL COMMENT '真实操作发生时间',
PRIMARY KEY (`id`),
KEY `idx_dispatch_history_version` (`dispatch_id`,`record_version`,`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_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 '明确选用的真实退回入仓来源',
`customer_name` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '本条真实客户名称快照',
`source_key` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '本条货物稳定权威来源键',
`source_version` char(64) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '选货时核对的真实来源版本摘要',
`source_snapshot_json` json 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),
`trip_id` bigint DEFAULT NULL COMMENT '本趟唯一车辆资源记录ID',
`overseas_warehouse_code` varchar(128) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '起运海外仓编码快照',
`stage` varchar(32) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT 'BEFORE_LOADING' COMMENT '作业阶段:BEFORE_LOADING装车前、LOADING装车中、AFTER_LOADING装车后、DELIVERING派送中、DELIVERED派送完成',
`record_version` bigint NOT NULL DEFAULT '0' COMMENT '整车公共并发版本,首版为零',
`cargo_revision` bigint NOT NULL DEFAULT '0' COMMENT '本趟货物修订版本',
`cargo_hash` char(64) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '当前整车真实货物及来源摘要',
`review_state` varchar(32) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT 'DRAFT' COMMENT '审核子流程当前状态',
`review_round` bigint NOT NULL DEFAULT '0' COMMENT '当前审核轮次',
`review_basis_hash` char(64) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '本审核轮次核对的货物和资源依据摘要',
`dispatch_review_json` json DEFAULT NULL COMMENT '当前调度审核事实快照',
`loading_review_json` json DEFAULT NULL COMMENT '当前理货审核事实快照',
`resources_json` json DEFAULT NULL COMMENT '本趟主档或临时车辆司机的真实资源快照',
`planned_departure_at` datetime(3) DEFAULT NULL COMMENT '计划发车时间,草稿未知时为空',
`loading_completed_at` datetime(3) DEFAULT NULL COMMENT '实际确认装车完成时间',
`loading_completion_hash` char(64) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '实际装车完成事实摘要',
`loading_confirmation_json` json DEFAULT NULL COMMENT '装车确认时逐实托真实实载完整快照',
`arrangement_key` varchar(128) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '本车唯一派送安排事实标识',
`arrangement_business_hash` char(64) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '本车派送安排业务内容摘要',
`departed_at` datetime(3) DEFAULT NULL COMMENT '本趟实际发车时间',
`delivery_completed_at` datetime(3) DEFAULT NULL COMMENT '全部派送正常签收后的整车完成时间',
`remark` varchar(2000) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '排车业务备注',
PRIMARY KEY (`id`),
UNIQUE KEY `uk_ll_dispatch_order_no` (`customer_id`,`dispatch_no`),
UNIQUE KEY `uk_dispatch_trip` (`trip_id`),
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 '明确选用的真实退回入仓来源',
`active_warehouse_pallet_id` bigint DEFAULT NULL COMMENT '活动占用的真实仓库托盘,释放后为空,跨客户及来源别名唯一',
PRIMARY KEY (`id`),
UNIQUE KEY `uk_ll_dispatch_active_pallet` (`customer_id`,`active_key`),
UNIQUE KEY `uk_ll_dispatch_active_warehouse_pallet` (`active_warehouse_pallet_id`),
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`),
KEY `idx_dispatch_pick_return_receipt` (`customer_id`,`return_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),
`product_quantity` bigint DEFAULT NULL COMMENT '该箱实收商品件数',
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),
`manifest_version` int DEFAULT NULL COMMENT '整托清单版本',
`manifest_package_count` int DEFAULT NULL COMMENT '整托总箱数',
`manifest_fragment_count` int DEFAULT NULL COMMENT '整托客户分片总数',
`manifest_hash` char(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '整托完整清单摘要',
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`),
KEY `idx_ll_dropship_profile_manifest` (`source_pallet_no`,`manifest_hash`)
) 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`),
UNIQUE KEY `uk_ll_dropship_sku_inventory` (`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),
`return_context_json` json DEFAULT NULL COMMENT '退回异常创建前的派送及尾程状态快照',
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`),
KEY `idx_ll_exception_delivery_return` (`customer_id`,`delivery_order_id`,`exception_type`)
) 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 '创建时间',
`return_carton_id` bigint DEFAULT NULL COMMENT '原生退货箱标识;与普通库存位置互斥',
`return_carton_mark` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '原生退货箱业务箱码快照',
`received_packages` bigint NOT NULL DEFAULT '0' COMMENT '已实际退回入仓的累计箱数',
PRIMARY KEY (`id`),
UNIQUE KEY `uk_ll_exception_return_source` (`customer_id`,`exception_order_id`,`outbound_pallet_item_id`,`inventory_position_id`),
UNIQUE KEY `uk_ll_exception_return_carton` (`customer_id`,`exception_order_id`,`outbound_pallet_item_id`,`return_carton_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_fba_appointment_command`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!50503 SET character_set_client = utf8mb4 */;
CREATE TABLE `ll_fba_appointment_command` (
`command_key` varchar(128) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '持久化幂等键',
`request_hash` char(64) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '操作、操作者和请求摘要',
`operation` varchar(96) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '操作类型及目标业务号',
`operator_id` varchar(128) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '登录操作人',
`appointment_no` varchar(64) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '系统预约业务单号',
`response_json` longtext COLLATE utf8mb4_unicode_ci COMMENT '原命令返回快照,与业务写入同事务',
`created_at` datetime(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) COMMENT '创建UTC时间',
PRIMARY KEY (`command_key`),
KEY `idx_ll_fba_command_appointment` (`appointment_no`,`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_fba_receiving_agreement`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!50503 SET character_set_client = utf8mb4 */;
CREATE TABLE `ll_fba_receiving_agreement` (
`agreement_key` varchar(64) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '收货预约独立业务键',
`version` int NOT NULL COMMENT '预约覆盖范围与确认资料版本',
`status` varchar(24) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '有效、取消或已替代状态',
`destination_key` varchar(128) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '权威目的仓关联键',
`confirmation_no` varchar(128) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '当前有效外部约号,失效后清空以释放覆盖',
`snapshot_json` longtext COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '客户逐来源覆盖、确认时区及仓库依据快照',
PRIMARY KEY (`agreement_key`),
UNIQUE KEY `uk_fba_receiving_confirmation` (`destination_key`,`confirmation_no`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='独立于送货批次的收货预约';
/*!40101 SET character_set_client = @saved_cs_client */;
DROP TABLE IF EXISTS `ll_fba_receiving_change`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!50503 SET character_set_client = utf8mb4 */;
CREATE TABLE `ll_fba_receiving_change` (
`change_key` varchar(64) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '客户预约变化业务键',
`version` int NOT NULL COMMENT '变化续办版本',
`status` varchar(24) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '待仓库确认、已应用或已撤回状态',
`batch_key` varchar(128) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '受影响原送货批次键',
`customer_id` varchar(128) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '本次变化所属客户',
`snapshot_json` longtext COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '原覆盖快照、逐来源拟保留量、负责人及跟进资料',
`result_json` longtext COLLATE utf8mb4_unicode_ci COMMENT '确认后的实际批次去向及逐步骤结果',
`active_ref` varchar(260) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '同批同客户唯一未解决变化引用',
PRIMARY KEY (`change_key`),
UNIQUE KEY `uk_fba_receiving_pending` (`active_ref`),
KEY `idx_fba_receiving_pending_batch` (`batch_key`,`status`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='保留原安排且阻止误发车的客户变化';
/*!40101 SET character_set_client = @saved_cs_client */;
DROP TABLE IF EXISTS `ll_fba_receiving_member`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!50503 SET character_set_client = utf8mb4 */;
CREATE TABLE `ll_fba_receiving_member` (
`agreement_key` varchar(64) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '所属收货预约业务键',
`batch_key` varchar(128) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '稳定送货批次键',
`customer_id` varchar(128) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '货物所属客户标识',
`active_ref` varchar(260) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '有效批次与客户唯一引用,退出后清空且历史保留',
PRIMARY KEY (`agreement_key`,`batch_key`,`customer_id`),
UNIQUE KEY `uk_fba_receiving_active_member` (`active_ref`),
KEY `idx_fba_receiving_batch` (`batch_key`,`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_fba_receiving_plan`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!50503 SET character_set_client = utf8mb4 */;
CREATE TABLE `ll_fba_receiving_plan` (
`batch_key` varchar(128) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '稳定送货批次键',
`customer_id` varchar(128) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '计划所属客户标识',
`snapshot_json` longtext COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '本客户未确认计划、目标窗口及业务时区,不含有效预约确认',
PRIMARY KEY (`batch_key`,`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_fba_receiving_revision`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!50503 SET character_set_client = utf8mb4 */;
CREATE TABLE `ll_fba_receiving_revision` (
`agreement_key` varchar(64) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '收货预约业务键',
`version` int NOT NULL COMMENT '不可变覆盖与确认版本',
`snapshot_json` longtext COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '该版本完整客户覆盖、确认时段及回复依据',
PRIMARY KEY (`agreement_key`,`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_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`),
UNIQUE KEY `uk_fleet_trip_dispatch_trip` (`trip_id`),
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 '并发版本',
`confirmation_no` varchar(128) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '收货方正式外部确认号',
`planned_date` date DEFAULT NULL COMMENT '计划当地日期,可只有日期而无时段',
`planned_at` datetime(3) DEFAULT NULL COMMENT '计划开始当地时间,待定可空',
`planned_end_at` datetime(3) DEFAULT NULL COMMENT '计划结束当地时间',
`appointment_start_utc` datetime(3) DEFAULT NULL COMMENT '确认开始UTC时间点',
`appointment_end_utc` datetime(3) DEFAULT NULL COMMENT '确认结束UTC时间点',
`timezone` varchar(64) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '目的仓权威IANA时区,未维护不得确认',
`origin_warehouse_id` varchar(64) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '实际起运仓',
`replacement_keys_json` longtext COLLATE utf8mb4_unicode_ci COMMENT '替代批次不可变键列表,只用于内部业务关联',
`repartition_reason` varchar(1000) COLLATE utf8mb4_unicode_ci DEFAULT NULL 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`),
KEY `idx_ll_fba_appointment_planned` (`planned_at`,`appointment_status`)
) 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时间',
`cargo_verification_version` int DEFAULT NULL COMMENT '采用的预约货物核实版本,未核实时为空',
`shipment_references_json` longtext COLLATE utf8mb4_unicode_ci COMMENT '本次采用的货件或追踪号核实快照',
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`),
KEY `idx_ll_fba_active_source` (`customer_id`,`source_key`,`active`),
KEY `idx_ll_fba_active_order` (`customer_id`,`order_id`,`active`)
) 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`),
KEY `idx_ll_inbound_pallet_no` (`pallet_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_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 '更新时间',
`product_name` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '商品名称',
`estimated_pallet_count` int DEFAULT NULL COMMENT '客户申报预计托数,不代表实际收货',
`origin_contact_name` varchar(128) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '起运地联系人',
`origin_contact_phone` varchar(128) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '起运地联系电话',
`destination_contact_name` varchar(128) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '目的地联系人',
`destination_contact_phone` varchar(128) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '目的地联系电话',
`pickup_at` datetime(3) DEFAULT NULL COMMENT '取货时间(当地时间,不转换时区)',
`delivery_at` datetime(3) DEFAULT NULL 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,
`dispatch_item_id` bigint DEFAULT NULL COMMENT '本次整车排车作业明细ID',
`source_attribution_id` bigint DEFAULT NULL COMMENT '不可变PDA真实拣货归属ID',
`source_order_id` bigint DEFAULT NULL COMMENT '本行真实来源尾程订单ID',
`source_inventory_position_id` bigint DEFAULT NULL COMMENT '本行实际拣货库存仓位ID',
`source_return_receipt_id` bigint DEFAULT NULL COMMENT '本行实际退回再派实收记录ID',
`source_return_carton_id` bigint DEFAULT NULL COMMENT '本行实际退货换标来源箱ID',
PRIMARY KEY (`id`),
UNIQUE KEY `uk_ll_outbound_pallet` (`customer_id`,`outbound_order_id`,`warehouse_pallet_id`),
UNIQUE KEY `uk_outbound_source_attribution` (`customer_id`,`source_attribution_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 '更新时间',
`purpose` varchar(32) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '费用业务用途;由履约节点确定',
`confirmation_origin` varchar(16) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT 'BUSINESS' COMMENT '核定入口:BUSINESS业务节点、FINANCIAL财务操作',
`fee_version` int DEFAULT NULL COMMENT '同用途费用确认版本',
`active` tinyint(1) NOT NULL DEFAULT '1' COMMENT '是否当前有效版本',
`determination` varchar(24) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT 'POSITIVE正额、ZERO零元、NOT_APPLICABLE不适用',
`original_currency` char(3) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '核定原币CNY或USD',
`original_amount` decimal(20,2) DEFAULT NULL COMMENT '核定原币金额',
`exchange_rate` decimal(20,6) DEFAULT NULL COMMENT '已确认汇率快照',
`exchange_rate_month` char(7) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '已确认汇率所属月份',
`business_date` date DEFAULT NULL COMMENT '实际费用业务日期',
`wallet_business_id` bigint DEFAULT NULL COMMENT '资金冻结对应采购费用记录',
`wallet_business_no` varchar(128) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '资金冻结业务号;实际国际运费引用原预估',
`wallet_hold_id` varchar(64) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT 'Finance冻结引用',
`wallet_ledger_id` varchar(64) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT 'Finance实际处理流水引用',
`settled_command_event_id` varchar(64) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '成功实扣或退款的资金命令事件',
`source_fee_id` bigint DEFAULT NULL COMMENT '已实扣费用来源ID',
`parent_fee_id` bigint DEFAULT NULL COMMENT '原费用或预估引用',
`request_hash` char(64) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '确认请求摘要',
PRIMARY KEY (`id`),
UNIQUE KEY `uk_ll_procurement_fee_no` (`fee_no`),
UNIQUE KEY `uk_ll_procurement_fee_version` (`order_id`,`purpose`,`fee_item_code`,`fee_version`),
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',
`operation_type` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '操作类型:CREATE、REVIEW或UPDATE',
`change_detail` json DEFAULT NULL COMMENT '字段变更前后值JSON',
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_budget_authorization`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!50503 SET character_set_client = utf8mb4 */;
CREATE TABLE `ll_procurement_budget_authorization` (
`id` bigint NOT NULL COMMENT '预算授权ID',
`order_id` bigint NOT NULL COMMENT '采购订单ID',
`customer_id` varchar(128) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '客户隔离键',
`previous_amount` decimal(20,2) DEFAULT NULL COMMENT '原货款预算总上限;未授权保持空',
`previous_currency` char(3) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '原预算币种',
`authorized_amount` decimal(20,2) NOT NULL COMMENT '客户授权的新货款总上限',
`currency` char(3) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '客户授权币种',
`voucher_file_id` bigint NOT NULL COMMENT '客户确认书面或聊天凭证',
`reason` varchar(1000) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '授权依据',
`reviewed_by` varchar(128) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '核验人员',
`reviewed_at` datetime(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) COMMENT '核验时间',
PRIMARY KEY (`id`),
KEY `idx_procurement_budget_order` (`customer_id`,`order_id`,`id`),
CONSTRAINT `chk_procurement_budget_amount` CHECK (((`authorized_amount` >= 0) and (`previous_amount` >= 0))),
CONSTRAINT `chk_procurement_budget_currency` CHECK (((`currency` in (_utf8mb4'CNY',_utf8mb4'USD')) and (`previous_currency` in (_utf8mb4'CNY',_utf8mb4'USD'))))
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='采购货款预算授权核验历史';
/*!40101 SET character_set_client = @saved_cs_client */;
DROP TABLE IF EXISTS `ll_procurement_carton`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!50503 SET character_set_client = utf8mb4 */;
CREATE TABLE `ll_procurement_carton` (
`id` bigint NOT NULL COMMENT '版本内箱记录ID',
`order_id` bigint NOT NULL COMMENT '采购订单ID',
`manifest_id` bigint NOT NULL COMMENT '装箱清单版本',
`carton_no` varchar(64) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '采购订单内业务箱号',
`length_cm` decimal(12,2) NOT NULL COMMENT '外箱长厘米',
`width_cm` decimal(12,2) NOT NULL COMMENT '外箱宽厘米',
`height_cm` decimal(12,2) NOT NULL COMMENT '外箱高厘米',
`gross_weight_kg` decimal(12,3) NOT NULL COMMENT '封箱毛重千克',
`quantity` bigint NOT NULL COMMENT '本箱合格商品总件数',
PRIMARY KEY (`id`),
UNIQUE KEY `uk_procurement_carton_version` (`manifest_id`,`carton_no`),
KEY `idx_procurement_carton_order` (`order_id`,`manifest_id`),
CONSTRAINT `chk_procurement_carton_measurement` CHECK (((`length_cm` > 0) and (`width_cm` > 0) and (`height_cm` > 0) and (`gross_weight_kg` > 0) and (`quantity` > 0)))
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='采购版本化逐箱实测与件数';
/*!40101 SET character_set_client = @saved_cs_client */;
DROP TABLE IF EXISTS `ll_procurement_carton_source`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!50503 SET character_set_client = utf8mb4 */;
CREATE TABLE `ll_procurement_carton_source` (
`carton_id` bigint NOT NULL COMMENT '版本内箱ID',
`receipt_id` bigint NOT NULL COMMENT '海外实收明细来源',
`quantity` bigint NOT NULL COMMENT '从该实收装入本箱的件数',
PRIMARY KEY (`carton_id`,`receipt_id`),
KEY `idx_procurement_carton_receipt` (`receipt_id`),
CONSTRAINT `chk_procurement_carton_source_quantity` CHECK ((`quantity` > 0))
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='采购箱内货物的实收来源与数量';
/*!40101 SET character_set_client = @saved_cs_client */;
DROP TABLE IF EXISTS `ll_procurement_closure`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!50503 SET character_set_client = utf8mb4 */;
CREATE TABLE `ll_procurement_closure` (
`id` bigint NOT NULL COMMENT '采购异常关闭ID',
`order_id` bigint NOT NULL COMMENT '采购订单ID',
`customer_id` varchar(128) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '客户隔离键',
`closure_no` varchar(64) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '异常关闭业务号',
`customer_voucher_file_id` bigint NOT NULL COMMENT '客户同意停止履约凭证',
`financial_conclusion` varchar(1000) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '已知费用及后续无需收费的处理结论,不改变资金事实',
`reason` varchar(1000) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '内部关闭原因',
`client_summary` varchar(500) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '人工确认的对客关闭摘要',
`created_by` varchar(128) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '采购管理确认人',
`created_at` datetime(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) COMMENT '关闭确认时间',
PRIMARY KEY (`id`),
UNIQUE KEY `uk_procurement_closure_order` (`order_id`),
UNIQUE KEY `uk_procurement_closure_no` (`closure_no`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='采购实物资金收口后的异常关闭事实';
/*!40101 SET character_set_client = @saved_cs_client */;
DROP TABLE IF EXISTS `ll_procurement_closure_item`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!50503 SET character_set_client = utf8mb4 */;
CREATE TABLE `ll_procurement_closure_item` (
`id` bigint NOT NULL COMMENT '关闭货物处置ID',
`closure_id` bigint NOT NULL COMMENT '采购关闭ID',
`source_kind` varchar(32) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '购买未达、在途未达、合格、破损或多货来源',
`source_id` bigint DEFAULT NULL COMMENT '原实收或国际交寄箱,购买未达为空',
`quantity` bigint NOT NULL COMMENT '本来源最终明确去向件数',
`decision` varchar(40) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '供应商保管、退还、报失、客户授权保管或处置',
`destination` varchar(500) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '实际去向及接收方说明',
`voucher_file_id` bigint NOT NULL COMMENT '本单实物处置证明',
PRIMARY KEY (`id`),
KEY `idx_procurement_closure_source` (`closure_id`,`source_kind`,`source_id`),
CONSTRAINT `chk_procurement_closure_quantity` CHECK ((`quantity` > 0))
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='异常关闭逐来源剩余货物最终去向,不产生新发运';
/*!40101 SET character_set_client = @saved_cs_client */;
DROP TABLE IF EXISTS `ll_procurement_command`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!50503 SET character_set_client = utf8mb4 */;
CREATE TABLE `ll_procurement_command` (
`id` bigint NOT NULL COMMENT '操作记录ID',
`order_id` bigint NOT NULL COMMENT '采购订单ID',
`customer_id` varchar(128) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '客户隔离键',
`action` varchar(48) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '采购节点动作',
`idempotency_key` varchar(128) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '操作幂等键',
`request_hash` char(64) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '请求摘要',
`operator_id` varchar(128) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '执行人',
`reason` varchar(1000) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '操作依据',
`detail_json` json NOT NULL COMMENT '内部操作及更正依据快照,不直接对客展示',
`created_at` datetime(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) COMMENT '执行时间',
PRIMARY KEY (`id`),
UNIQUE KEY `uk_procurement_command` (`order_id`,`action`,`idempotency_key`),
KEY `idx_procurement_command_customer` (`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_procurement_control_note`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!50503 SET character_set_client = utf8mb4 */;
CREATE TABLE `ll_procurement_control_note` (
`id` bigint NOT NULL COMMENT '采购更正说明ID',
`order_id` bigint NOT NULL COMMENT '采购订单ID',
`customer_id` varchar(128) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '客户隔离键',
`note_no` varchar(64) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '更正说明业务号',
`target_type` varchar(24) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '购买、仓库、实收或交寄事实类型',
`target_id` bigint DEFAULT NULL COMMENT '本单事实对象引用,购买为空',
`blocking` tinyint(1) NOT NULL COMMENT '是否阻断后续计划履约',
`voucher_file_id` bigint NOT NULL COMMENT '本单内部事实更正凭证',
`reason` varchar(1000) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '内部更正说明',
`client_summary` varchar(500) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '人工确认的对客摘要,不复制内部原始内容',
`original_value_json` json DEFAULT NULL COMMENT '服务端记录的原事实快照',
`corrected_value_json` json 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 '登记时间',
`resolved_by` varchar(128) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '处理确认人',
`resolved_at` datetime(3) DEFAULT NULL COMMENT '阻断解除时间',
`resolution_reason` varchar(1000) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '内部处理结果',
`resolution_voucher_id` bigint DEFAULT NULL COMMENT '本单处理凭证',
PRIMARY KEY (`id`),
UNIQUE KEY `uk_procurement_note_no` (`note_no`),
KEY `idx_procurement_note_block` (`order_id`,`blocking`,`resolved_at`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='采购不可覆盖事实的更正说明及阻断异常';
/*!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_procurement_disposition`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!50503 SET character_set_client = utf8mb4 */;
CREATE TABLE `ll_procurement_disposition` (
`id` bigint NOT NULL COMMENT '差异处理ID',
`order_id` bigint NOT NULL COMMENT '采购订单ID',
`customer_id` varchar(128) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '客户隔离键',
`leg` varchar(16) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT 'OVERSEAS海外或DOMESTIC国内',
`source_carton_id` bigint DEFAULT NULL COMMENT '国内原交寄箱来源',
`receipt_id` bigint DEFAULT NULL COMMENT '破损或多货对应实收记录,短少为空',
`kind` varchar(24) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT 'SHORTAGE短少、DAMAGED破损、EXTRA多货',
`quantity` bigint NOT NULL COMMENT '已批准处置件数',
`decision` varchar(32) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT 'ACCEPT_SHORTAGE确认短少、DISPOSE_DAMAGED拒收或处置、RETURN_EXTRA退回多货',
`active` tinyint(1) NOT NULL DEFAULT '1' COMMENT '当前有效处置;撤销只改变有效性并保留原事实',
`voucher_file_id` bigint NOT NULL COMMENT '本单客户确认或实际处置凭证',
`reason` varchar(1000) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '处置依据',
`created_by` varchar(128) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '采购管理人员',
`created_at` datetime(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) COMMENT '确认时间',
PRIMARY KEY (`id`),
KEY `idx_procurement_disposition_source` (`order_id`,`leg`,`source_carton_id`,`receipt_id`,`kind`),
CONSTRAINT `chk_procurement_disposition_quantity` CHECK ((`quantity` > 0))
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='采购单内差异处置,不自动退款';
/*!40101 SET character_set_client = @saved_cs_client */;
DROP TABLE IF EXISTS `ll_procurement_estimate_review`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!50503 SET character_set_client = utf8mb4 */;
CREATE TABLE `ll_procurement_estimate_review` (
`id` bigint NOT NULL COMMENT '预估核对ID',
`order_id` bigint NOT NULL COMMENT '采购订单ID',
`label_set_id` bigint NOT NULL COMMENT '已核对国际面单版本',
`fee_id` bigint NOT NULL COMMENT '唯一有效预估费用版本',
`reviewed_by` varchar(128) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '核价人员',
`reviewed_at` datetime(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) COMMENT '核对时间',
PRIMARY KEY (`id`),
UNIQUE KEY `uk_procurement_estimate_review` (`label_set_id`,`fee_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='面单清单与预估冻结的显式核对关联';
/*!40101 SET character_set_client = @saved_cs_client */;
DROP TABLE IF EXISTS `ll_procurement_fee_correction`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!50503 SET character_set_client = utf8mb4 */;
CREATE TABLE `ll_procurement_fee_correction` (
`id` bigint NOT NULL COMMENT '费用链更正ID',
`order_id` bigint NOT NULL COMMENT '采购订单ID',
`customer_id` varchar(128) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '客户隔离键',
`correction_no` varchar(64) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '财务更正业务号',
`root_fee_id` bigint NOT NULL COMMENT '原实际费用链根',
`idempotency_key` varchar(128) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '本单更正请求幂等键',
`request_hash` char(64) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '更正目标及凭证请求摘要',
`target_original_amount` decimal(20,2) NOT NULL COMMENT '本次正确原币总额',
`original_currency` char(3) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '沿用原费用币种',
`exchange_rate` decimal(20,6) NOT NULL COMMENT '沿用原费用汇率快照',
`exchange_rate_month` char(7) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '原汇率月份,不取本次操作月份',
`target_amount` decimal(20,2) NOT NULL COMMENT '正确总额折算CNY',
`previous_net_amount` decimal(20,2) NOT NULL COMMENT '确认前整链净实扣CNY',
`difference_amount` decimal(20,2) NOT NULL COMMENT 'CNY正差额追加、负差额退款、零差额仅留核对记录',
`voucher_file_id` bigint NOT NULL COMMENT '本订单财务更正凭证',
`reason` varchar(500) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '更正依据',
`created_by` varchar(128) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '授权财务操作人',
`created_at` datetime(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) COMMENT '确认时间',
PRIMARY KEY (`id`),
UNIQUE KEY `uk_procurement_correction_no` (`correction_no`),
UNIQUE KEY `uk_procurement_correction_request` (`order_id`,`idempotency_key`),
KEY `idx_procurement_correction_root` (`order_id`,`root_fee_id`,`id`),
CONSTRAINT `chk_procurement_correction_amount` CHECK (((`target_original_amount` >= 0) and (`target_amount` >= 0) and (`previous_net_amount` >= 0) and (`exchange_rate` > 0)))
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='采购费用链更正目标与原汇率快照';
/*!40101 SET character_set_client = @saved_cs_client */;
DROP TABLE IF EXISTS `ll_procurement_fee_correction_item`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!50503 SET character_set_client = utf8mb4 */;
CREATE TABLE `ll_procurement_fee_correction_item` (
`correction_id` bigint NOT NULL COMMENT '本次费用链更正ID',
`fee_id` bigint NOT NULL COMMENT '本次产生的独立正差额或退款费用ID',
PRIMARY KEY (`correction_id`,`fee_id`),
UNIQUE KEY `uk_procurement_correction_fee` (`fee_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='采购费用目标更正与逐笔资金事实关联';
/*!40101 SET character_set_client = @saved_cs_client */;
DROP TABLE IF EXISTS `ll_procurement_flow`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!50503 SET character_set_client = utf8mb4 */;
CREATE TABLE `ll_procurement_flow` (
`order_id` bigint NOT NULL COMMENT '采购订单ID,一单一个履约批次',
`customer_id` varchar(128) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '客户隔离键',
`purchased_at` datetime(3) DEFAULT NULL COMMENT '真实购买时间',
`purchased_product_name` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '实际购买商品',
`purchased_specification` varchar(500) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '实际购买规格',
`purchased_quantity` bigint DEFAULT NULL COMMENT '实际购买件数',
`purchase_amount` decimal(20,2) DEFAULT NULL COMMENT '供应商实付原币金额',
`purchase_currency` char(3) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '供应商实付原币CNY或USD',
`purchase_voucher_id` bigint DEFAULT NULL COMMENT '购买凭证引用',
`purchase_issue` varchar(500) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '购买未核定或异常说明',
`purchase_confirmed_at` datetime(3) DEFAULT NULL COMMENT '货款核定时间,不代表扣费成功',
`actual_warehouse_id` bigint DEFAULT NULL COMMENT '首次实际收货冻结的仓库ID',
`actual_warehouse_code` varchar(128) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '实际收货仓编码快照',
`actual_warehouse_name` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '实际收货仓名称快照',
`overseas_received_at` datetime(3) DEFAULT NULL COMMENT '海外整批收货完成时间',
`packing_version` int DEFAULT NULL COMMENT '当前确认装箱清单版本',
`overseas_shipped_at` datetime(3) DEFAULT NULL COMMENT '国际段整批实际交寄时间',
`domestic_received_at` datetime(3) DEFAULT NULL COMMENT '国内整批收货完成时间',
`charges_confirmed_at` datetime(3) DEFAULT NULL COMMENT '国内整单费用核定时间',
`customer_shipped_at` datetime(3) DEFAULT NULL COMMENT '国内寄客户实际交寄时间',
`domestic_receiver_name` varchar(128) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '国际段国内收件人',
`domestic_receiver_phone` varchar(64) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '国际段国内收件电话',
`domestic_receiver_address` varchar(1000) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '国际段国内接收地址',
`cancelled_at` datetime(3) DEFAULT NULL COMMENT '购买前取消时间',
`closed_at` datetime(3) DEFAULT NULL COMMENT '异常关闭时间',
`control_reason` 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 (`order_id`),
KEY `idx_procurement_flow_customer` (`customer_id`,`order_id`),
CONSTRAINT `chk_procurement_purchase_amount` CHECK (((`purchase_amount` is null) or (`purchase_amount` >= 0))),
CONSTRAINT `chk_procurement_purchase_quantity` CHECK (((`purchased_quantity` is null) or (`purchased_quantity` > 0)))
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='采购单一批次履约事实';
/*!40101 SET character_set_client = @saved_cs_client */;
DROP TABLE IF EXISTS `ll_procurement_label_item`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!50503 SET character_set_client = utf8mb4 */;
CREATE TABLE `ll_procurement_label_item` (
`label_set_id` bigint NOT NULL COMMENT '面单批版本ID',
`carton_id` bigint NOT NULL COMMENT '原海外清单箱ID',
`file_id` bigint NOT NULL COMMENT '本采购订单面单文件',
`page_no` int NOT NULL COMMENT '该箱对应文件页码,从1开始',
`carrier` varchar(128) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '承运商',
`tracking_no` varchar(128) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '箱主或子运单号',
`applied_at` datetime(3) DEFAULT NULL COMMENT '真实贴单时间',
`applied_by` varchar(128) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '贴单确认人',
PRIMARY KEY (`label_set_id`,`carton_id`),
CONSTRAINT `chk_procurement_label_page` CHECK ((`page_no` > 0))
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='采购逐箱文件页关联及贴单事实';
/*!40101 SET character_set_client = @saved_cs_client */;
DROP TABLE IF EXISTS `ll_procurement_label_set`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!50503 SET character_set_client = utf8mb4 */;
CREATE TABLE `ll_procurement_label_set` (
`id` bigint NOT NULL COMMENT '面单批版本ID',
`order_id` bigint NOT NULL COMMENT '采购订单ID',
`customer_id` varchar(128) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '客户隔离键',
`leg` varchar(16) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT 'OVERSEAS国际段或DOMESTIC寄客户段',
`version` int NOT NULL COMMENT '订单段内面单版本',
`manifest_id` bigint NOT NULL COMMENT '原海外确认装箱版本',
`cargo_hash` char(64) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '箱规及有效货物来源摘要',
`sender_snapshot` json NOT NULL COMMENT '寄件人姓名电话地址快照',
`receiver_snapshot` json NOT NULL COMMENT '收件人姓名电话地址快照',
`created_by` varchar(128) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '制单操作人',
`created_at` datetime(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) COMMENT '上传确认时间',
PRIMARY KEY (`id`),
UNIQUE KEY `uk_procurement_label_version` (`order_id`,`leg`,`version`),
CONSTRAINT `chk_procurement_label_leg` CHECK ((`leg` in (_utf8mb4'OVERSEAS',_utf8mb4'DOMESTIC')))
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='采购两段面单不可变版本和地址快照';
/*!40101 SET character_set_client = @saved_cs_client */;
DROP TABLE IF EXISTS `ll_procurement_manifest`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!50503 SET character_set_client = utf8mb4 */;
CREATE TABLE `ll_procurement_manifest` (
`id` bigint NOT NULL COMMENT '装箱清单ID',
`order_id` bigint NOT NULL COMMENT '采购订单ID',
`customer_id` varchar(128) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '客户隔离键',
`version` int NOT NULL COMMENT '订单内装箱版本',
`status` varchar(16) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT 'DRAFT草稿、CONFIRMED已确认、SUPERSEDED已替代',
`confirmed_at` datetime(3) 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 '版本保存时间',
PRIMARY KEY (`id`),
UNIQUE KEY `uk_procurement_manifest_version` (`order_id`,`version`),
CONSTRAINT `chk_procurement_manifest_status` CHECK ((`status` in (_utf8mb4'DRAFT',_utf8mb4'CONFIRMED',_utf8mb4'SUPERSEDED')))
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='采购装箱清单不可变版本';
/*!40101 SET character_set_client = @saved_cs_client */;
DROP TABLE IF EXISTS `ll_procurement_receipt`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!50503 SET character_set_client = utf8mb4 */;
CREATE TABLE `ll_procurement_receipt` (
`id` bigint NOT NULL COMMENT '实收明细ID',
`order_id` bigint NOT NULL COMMENT '采购订单ID',
`customer_id` varchar(128) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '客户隔离键',
`receipt_no` varchar(64) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '采购收货业务编号',
`leg` varchar(16) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT 'OVERSEAS海外或DOMESTIC国内',
`source_carton_id` bigint DEFAULT NULL COMMENT '国内实收关联原国际交寄箱,海外为空',
`warehouse_id` bigint DEFAULT NULL COMMENT '海外实际收货仓',
`good_quantity` bigint NOT NULL COMMENT '可发合格件数',
`damaged_quantity` bigint NOT NULL COMMENT '破损待处置件数',
`extra_quantity` bigint NOT NULL COMMENT '多到件数,不增加可发数量',
`received_at` datetime(3) NOT NULL COMMENT '实际收货时间',
`active` tinyint(1) NOT NULL DEFAULT '1' COMMENT '当前有效实收事实',
`supersedes_id` bigint 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 '登记时间',
PRIMARY KEY (`id`),
UNIQUE KEY `uk_procurement_receipt_no` (`receipt_no`),
KEY `idx_procurement_receipt_source` (`order_id`,`leg`,`source_carton_id`,`active`),
CONSTRAINT `chk_procurement_receipt_leg` CHECK ((((`leg` = _utf8mb4'OVERSEAS') and (`source_carton_id` is null)) or ((`leg` = _utf8mb4'DOMESTIC') and (`source_carton_id` is not null)))),
CONSTRAINT `chk_procurement_receipt_quantity` CHECK (((`good_quantity` >= 0) and (`damaged_quantity` >= 0) and (`extra_quantity` >= 0) and (((`good_quantity` + `damaged_quantity`) + `extra_quantity`) > 0)))
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='采购分次实收与受控更正事实';
/*!40101 SET character_set_client = @saved_cs_client */;
DROP TABLE IF EXISTS `ll_procurement_repack`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!50503 SET character_set_client = utf8mb4 */;
CREATE TABLE `ll_procurement_repack` (
`id` bigint NOT NULL COMMENT '换包装版本ID',
`order_id` bigint NOT NULL COMMENT '采购订单ID',
`carton_id` bigint NOT NULL COMMENT '原国际交寄箱ID,保持一对一来源',
`length_cm` decimal(12,2) NOT NULL COMMENT '新外箱长厘米',
`width_cm` decimal(12,2) NOT NULL COMMENT '新外箱宽厘米',
`height_cm` decimal(12,2) NOT NULL COMMENT '新外箱高厘米',
`gross_weight_kg` decimal(12,3) NOT NULL COMMENT '新封箱毛重千克',
`voucher_file_id` bigint NOT NULL COMMENT '本单换包装证据',
`reason` varchar(1000) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '换包装依据',
`created_by` varchar(128) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '国内作业人员',
`created_at` datetime(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) COMMENT '登记时间',
PRIMARY KEY (`id`),
KEY `idx_procurement_repack_carton` (`order_id`,`carton_id`,`id`),
CONSTRAINT `chk_procurement_repack_measurement` CHECK (((`length_cm` > 0) and (`width_cm` > 0) and (`height_cm` > 0) and (`gross_weight_kg` > 0)))
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='采购国内原箱一对一换包装不可变历史';
/*!40101 SET character_set_client = @saved_cs_client */;
DROP TABLE IF EXISTS `ll_procurement_shipment`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!50503 SET character_set_client = utf8mb4 */;
CREATE TABLE `ll_procurement_shipment` (
`id` bigint NOT NULL COMMENT '采购交寄ID',
`order_id` bigint NOT NULL COMMENT '采购订单ID',
`customer_id` varchar(128) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '客户隔离键',
`shipment_no` varchar(64) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '交寄业务编号',
`leg` varchar(16) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT 'OVERSEAS国际交寄或DOMESTIC寄客户',
`manifest_id` bigint NOT NULL COMMENT '原海外装箱清单版本',
`shipped_at` datetime(3) NOT NULL COMMENT '整批真实交承运方时间',
`address_snapshot` json NOT NULL COMMENT '本段交寄时的收寄姓名电话地址快照',
`created_by` varchar(128) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '交寄确认人',
`created_at` datetime(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) COMMENT '确认时间',
PRIMARY KEY (`id`),
UNIQUE KEY `uk_procurement_shipment_leg` (`order_id`,`leg`),
UNIQUE KEY `uk_procurement_shipment_no` (`shipment_no`),
CONSTRAINT `chk_procurement_shipment_leg` CHECK ((`leg` in (_utf8mb4'OVERSEAS',_utf8mb4'DOMESTIC')))
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='采购两段各一次整批真实交寄';
/*!40101 SET character_set_client = @saved_cs_client */;
DROP TABLE IF EXISTS `ll_procurement_shipment_item`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!50503 SET character_set_client = utf8mb4 */;
CREATE TABLE `ll_procurement_shipment_item` (
`shipment_id` bigint NOT NULL COMMENT '采购交寄ID',
`carton_id` bigint NOT NULL COMMENT '原海外装箱版本内箱ID',
`quantity` bigint NOT NULL COMMENT '本次实际交寄件数',
`carrier` varchar(128) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '承运商快照',
`tracking_no` varchar(128) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '运单号快照',
`label_snapshot` json NOT NULL COMMENT '当次箱规、面单及货物来源快照',
PRIMARY KEY (`shipment_id`,`carton_id`),
CONSTRAINT `chk_procurement_shipment_item_quantity` CHECK ((`quantity` > 0))
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='采购整批交寄逐箱事实';
/*!40101 SET character_set_client = @saved_cs_client */;
DROP TABLE IF EXISTS `ll_procurement_wallet_attempt`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!50503 SET character_set_client = utf8mb4 */;
CREATE TABLE `ll_procurement_wallet_attempt` (
`id` bigint NOT NULL COMMENT '请求尝试ID',
`order_id` bigint NOT NULL COMMENT '采购订单ID',
`customer_id` varchar(128) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '客户隔离键',
`fee_id` bigint NOT NULL COMMENT '不可变费用版本ID',
`attempt_no` bigint NOT NULL COMMENT '费用版本内请求序号',
`operation` varchar(32) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '资金操作:FREEZE冻结、SETTLE结算、SETTLE_ACTUAL实际结算、RELEASE释放、REFUND退款',
`business_no` varchar(128) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT 'Finance资金业务号',
`amount` decimal(20,2) DEFAULT NULL COMMENT '请求金额;全额结算或释放可空',
`command_event_id` varchar(64) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '资金指令事件唯一引用',
`status` varchar(16) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '资金请求结果:PENDING未决、SUCCEEDED成功、FAILED明确失败',
`result_hash` char(64) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '原业务回执摘要',
`wallet_hold_id` varchar(64) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT 'Finance冻结引用',
`wallet_ledger_id` varchar(64) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT 'Finance处理流水引用',
`error_code` varchar(64) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '业务失败码',
`error_message` varchar(500) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '内部失败诊断,不直接对客展示',
`created_at` datetime(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) COMMENT '请求时间',
`completed_at` datetime(3) DEFAULT NULL COMMENT '最终结果时间',
PRIMARY KEY (`id`),
UNIQUE KEY `uk_procurement_attempt_event` (`command_event_id`),
UNIQUE KEY `uk_procurement_attempt_number` (`fee_id`,`attempt_no`),
KEY `idx_procurement_attempt_order` (`customer_id`,`order_id`,`status`),
CONSTRAINT `chk_procurement_attempt_status` CHECK ((`status` in (_utf8mb4'PENDING',_utf8mb4'SUCCEEDED',_utf8mb4'FAILED')))
) 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 '乐观锁版本',
`source_container_booking_id` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '稳定来源柜预订ID',
`container_fact_hash` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '领取时整柜订单与计划事实摘要',
`overseas_warehouse_code` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL 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_carton_stock_receipt`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!50503 SET character_set_client = utf8mb4 */;
CREATE TABLE `ll_return_carton_stock_receipt` (
`id` bigint NOT NULL COMMENT '原箱回仓凭据明细标识',
`customer_id` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '客户数据隔离键',
`receipt_no` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '原箱回仓实收业务号',
`exception_order_id` bigint NOT NULL COMMENT '本次异常退回订单',
`exception_return_item_id` bigint NOT NULL COMMENT '本次冻结的原箱来源明细',
`delivery_order_id` bigint NOT NULL COMMENT '原运输派送单',
`source_pick_id` bigint NOT NULL COMMENT '原箱实际出库拣货凭据',
`source_outbound_no` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '原出库单业务号',
`source_dispatch_item_id` bigint NOT NULL COMMENT '原排车货物明细',
`source_outbound_pallet_item_id` bigint NOT NULL COMMENT '原出库托盘明细',
`return_carton_id` bigint NOT NULL COMMENT '真实退货原箱标识',
`carton_mark` 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 '实际回仓海外仓标识',
`target_pallet_id` bigint NOT NULL COMMENT '实际回仓目标实物托盘',
`target_pallet_no` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '实际目标托盘业务码',
`target_location_id` bigint NOT NULL COMMENT '实际回仓目标库位',
`target_location_code` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '实际目标库位业务码',
`sku_code` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '原出库快照中的商品编码',
`product_name_zh` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '原出库快照中的中文品名',
`quantity` bigint NOT NULL COMMENT '本次原SKU实际恢复件数',
`packages` bigint NOT NULL COMMENT '本箱仅首条SKU记录计一箱其余为零',
`evidence_file_ids_json` json NOT NULL COMMENT '本次实收证据文件引用',
`received_by` varchar(128) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '本次原箱实收确认操作人',
`received_at` datetime(3) NOT NULL COMMENT '实际原箱回仓入账时间',
PRIMARY KEY (`id`),
UNIQUE KEY `uk_return_carton_receipt_source` (`customer_id`,`source_pick_id`,`sku_code`),
KEY `idx_return_carton_receipt_exception` (`customer_id`,`exception_order_id`,`received_at`),
KEY `idx_return_carton_receipt_delivery` (`customer_id`,`delivery_order_id`),
CONSTRAINT `chk_return_carton_receipt_quantity` CHECK (((`quantity` > 0) and (`packages` in (0,1))))
) 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_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 '出库记账时间',
`return_sku_quantity` bigint DEFAULT NULL COMMENT '退货单SKU本来源计划出库件数快照,NULL为历史整箱出库',
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`),
KEY `idx_ll_return_packing_plan_warehouse` (`overseas_warehouse_id`,`status`,`pushed_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_selfop_inventory_daily`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!50503 SET character_set_client = utf8mb4 */;
CREATE TABLE `ll_selfop_inventory_daily` (
`day_version_id` bigint NOT NULL COMMENT '所属历史日版本',
`customer_code` varchar(64) COLLATE utf8mb4_bin NOT NULL COMMENT '来源货主编码',
`sku_code` varchar(128) COLLATE utf8mb4_bin NOT NULL COMMENT '来源商品编码',
`product_quality` int NOT NULL COMMENT '来源库存品质',
`physical_quantity` decimal(20,6) DEFAULT NULL COMMENT '日末实物库存,未知为空,已确认零为零',
`quality_status` varchar(16) COLLATE utf8mb4_bin NOT NULL COMMENT '日末资格,有效或未知',
`quality_reason` varchar(64) COLLATE utf8mb4_bin DEFAULT NULL COMMENT '缺覆盖或锚点等未知原因',
`anchor_reference` bigint DEFAULT NULL COMMENT '独立库存锚点版本',
`evidence_hash` char(64) COLLATE utf8mb4_bin NOT NULL COMMENT '该日计算证据摘要',
`source` varchar(32) COLLATE utf8mb4_bin NOT NULL COMMENT '库存来源标记,流水还原',
PRIMARY KEY (`day_version_id`,`customer_code`,`sku_code`,`product_quality`),
KEY `idx_selfop_daily_identity` (`customer_code`,`sku_code`,`day_version_id`),
CONSTRAINT `chk_selfop_daily_quantity` CHECK ((((`quality_status` = _utf8mb4'VALID') and (`physical_quantity` is not null) and (`physical_quantity` >= 0)) or ((`quality_status` = _utf8mb4'UNKNOWN') and (`physical_quantity` is null))))
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin COMMENT='历史日末分货主商品品质实物库存';
/*!40101 SET character_set_client = @saved_cs_client */;
DROP TABLE IF EXISTS `ll_selfop_inventory_day_version`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!50503 SET character_set_client = utf8mb4 */;
CREATE TABLE `ll_selfop_inventory_day_version` (
`id` bigint NOT NULL COMMENT '不可变历史日版本标识',
`source_account` varchar(64) COLLATE utf8mb4_bin NOT NULL COMMENT '受控来源账号',
`warehouse_code` varchar(64) COLLATE utf8mb4_bin NOT NULL COMMENT '来源仓库编码',
`business_date` date NOT NULL COMMENT '北京时间日末所属日期',
`scope_hash` char(64) COLLATE utf8mb4_bin NOT NULL COMMENT '业务范围摘要',
`rule_version` varchar(32) COLLATE utf8mb4_bin NOT NULL COMMENT '日末库存还原规则版本',
`build_run_id` bigint NOT NULL COMMENT '历史重建执行尝试',
`publication_group_id` bigint NOT NULL COMMENT '必须一起切换的发布组标识',
`sales_run_id` bigint DEFAULT NULL COMMENT '构建时固定的销量证据版本',
`anchor_run_id` bigint NOT NULL COMMENT '固定的独立库存锚点版本',
`input_hash` char(64) COLLATE utf8mb4_bin NOT NULL COMMENT '冻结流水修订与覆盖及锚点输入摘要',
`evidence_json` json NOT NULL COMMENT '固定输入清单及不可变证据引用',
`status` varchar(16) COLLATE utf8mb4_bin NOT NULL COMMENT '构建中、就绪、已发布、已替代或失败',
`head_slot` tinyint DEFAULT NULL COMMENT '当前日头为一,非当前版本为空',
`valid_sku_count` bigint NOT NULL DEFAULT '0' COMMENT '合格商品数',
`unknown_sku_count` bigint NOT NULL DEFAULT '0' COMMENT '待核验商品数',
`created_at` datetime(3) NOT NULL COMMENT '版本创建UTC时刻',
`published_at` datetime(3) DEFAULT NULL COMMENT '发布组提交UTC时刻',
`superseded_at` datetime(3) DEFAULT NULL COMMENT '被新组替代的UTC时刻',
`invalidated_at` datetime(3) DEFAULT NULL COMMENT '已确认输入失效的UTC时刻',
`invalidation_reason` varchar(64) COLLATE utf8mb4_bin DEFAULT NULL COMMENT '旧版本失效原因',
`rebuild_run_id` bigint DEFAULT NULL COMMENT '处理失效版本的重建尝试',
PRIMARY KEY (`id`),
UNIQUE KEY `uk_selfop_history_build_day` (`build_run_id`,`business_date`),
UNIQUE KEY `uk_selfop_history_head` (`source_account`,`warehouse_code`,`business_date`,`head_slot`),
KEY `idx_selfop_history_group` (`publication_group_id`,`status`),
CONSTRAINT `chk_selfop_history_head` CHECK (((`head_slot` is null) or ((`head_slot` = 1) and (`status` = _utf8mb4'PUBLISHED'))))
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin COMMENT='历史日库存不可变版本及原子发布日头';
/*!40101 SET character_set_client = @saved_cs_client */;
DROP TABLE IF EXISTS `ll_selfop_inventory_flow`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!50503 SET character_set_client = utf8mb4 */;
CREATE TABLE `ll_selfop_inventory_flow` (
`id` bigint NOT NULL COMMENT '应用生成的流水记录标识',
`source_account` varchar(64) COLLATE utf8mb4_bin NOT NULL COMMENT '受控来源账号',
`warehouse_code` varchar(64) COLLATE utf8mb4_bin NOT NULL COMMENT '来源仓库编码',
`customer_code` varchar(64) COLLATE utf8mb4_bin NOT NULL COMMENT '来源货主编码',
`sku_code` varchar(128) COLLATE utf8mb4_bin NOT NULL COMMENT '来源商品编码',
`source_flow_id` varchar(64) COLLATE utf8mb4_bin NOT NULL COMMENT '来源流水字符串标识',
`product_quality` int NOT NULL COMMENT '来源品质,零正品一次品,其他未知',
`cell_no` varchar(128) COLLATE utf8mb4_bin DEFAULT NULL COMMENT '来源库位编码',
`inner_batch_no` varchar(128) COLLATE utf8mb4_bin DEFAULT NULL COMMENT '来源内部批次号',
`bill_no` varchar(128) COLLATE utf8mb4_bin DEFAULT NULL COMMENT '来源业务单号',
`source_no` varchar(128) COLLATE utf8mb4_bin DEFAULT NULL COMMENT '来源关联单号',
`bill_type` varchar(32) COLLATE utf8mb4_bin DEFAULT NULL COMMENT '来源业务类型,未验证类型不得参与正式还原',
`book_qty` decimal(20,6) DEFAULT NULL COMMENT '来源记账增减量,未知为空',
`book_change_qty_raw` varchar(64) COLLATE utf8mb4_bin DEFAULT NULL COMMENT '来源带符号变动量原文',
`delta_quantity` decimal(20,6) DEFAULT NULL COMMENT '解析后的有符号实物变动量',
`close_quantity` decimal(20,6) DEFAULT NULL COMMENT '对应库位批次品质链的结存',
`source_create_time` varchar(64) COLLATE utf8mb4_bin DEFAULT NULL COMMENT '来源北京时间原文',
`event_at_utc` datetime(3) DEFAULT NULL COMMENT '流水发生UTC时刻,无法解析时为空',
`business_date` date DEFAULT NULL COMMENT '北京时间业务日期',
`quantity_unit` varchar(16) COLLATE utf8mb4_bin DEFAULT NULL COMMENT '已确认数量单位,未知为空',
`content_hash` char(64) COLLATE utf8mb4_bin NOT NULL COMMENT '当前事实内容摘要',
`revision_no` bigint NOT NULL COMMENT '同来源流水单调增加的修订号',
`stage_id` bigint NOT NULL COMMENT '当前事实对应不可变暂存证据',
`first_run_id` bigint NOT NULL COMMENT '首次观察执行尝试',
`last_run_id` bigint NOT NULL COMMENT '最近确认执行尝试',
`last_observed_at` datetime(3) NOT NULL COMMENT '最近观察UTC时刻',
`validation_status` varchar(16) COLLATE utf8mb4_bin NOT NULL COMMENT '字段资格,有效或未知',
`validation_reason` varchar(64) COLLATE utf8mb4_bin DEFAULT NULL COMMENT '数量或身份待核验原因',
PRIMARY KEY (`id`),
UNIQUE KEY `uk_selfop_flow_source` (`source_account`,`warehouse_code`,`source_flow_id`),
KEY `idx_selfop_flow_sku` (`source_account`,`warehouse_code`,`customer_code`,`sku_code`,`event_at_utc`),
KEY `idx_selfop_flow_day` (`source_account`,`warehouse_code`,`business_date`),
CONSTRAINT `chk_selfop_flow_revision` CHECK ((`revision_no` > 0))
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin COMMENT='自营历史库存流水最新事实,旧版本保留于暂存证据';
/*!40101 SET character_set_client = @saved_cs_client */;
DROP TABLE IF EXISTS `ll_selfop_inventory_snapshot`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!50503 SET character_set_client = utf8mb4 */;
CREATE TABLE `ll_selfop_inventory_snapshot` (
`id` bigint NOT NULL COMMENT '应用生成的记录标识',
`created_at` datetime(3) NOT NULL COMMENT 'UTC创建时间',
`updated_at` datetime(3) NOT NULL COMMENT 'UTC更新时间',
`snapshot_run_id` bigint NOT NULL COMMENT 'INVENTORY 执行尝试;发布后该批明细不可修改',
`source_account` varchar(64) COLLATE utf8mb4_bin NOT NULL COMMENT '受控来源账号别名,不保存密钥',
`customer_code` varchar(64) COLLATE utf8mb4_bin NOT NULL COMMENT '领星货主原始编码,不等同平台客户标识',
`warehouse_code` varchar(64) COLLATE utf8mb4_bin NOT NULL COMMENT '来源仓库原始编码,按仓独立统计',
`sku_code` varchar(128) COLLATE utf8mb4_bin NOT NULL COMMENT '原始产品 SKU',
`product_quality` smallint NOT NULL COMMENT '来源品质,当前 0 正品、1 次品;全量均保存,不套用整箱库存',
`product_name` varchar(255) COLLATE utf8mb4_bin DEFAULT NULL COMMENT '来源名称',
`physical_quantity` decimal(20,6) DEFAULT NULL COMMENT '来源stkQty实物库存,未知为空',
`available_quantity` decimal(20,6) DEFAULT NULL COMMENT '来源useStkQty可用库存,未知为空,不再次扣冻结',
`frozen_quantity` decimal(20,6) DEFAULT NULL COMMENT '来源freezeQty冻结库存,未知为空',
`transit_quantity` decimal(20,6) DEFAULT NULL COMMENT '来源transitQty在途数量,未知为空,不计可售库存',
`source_unique_key` varchar(512) COLLATE utf8mb4_bin DEFAULT NULL COMMENT '原 uniqueKey4tenant,只作来源证据',
`observed_at_utc` datetime(3) NOT NULL COMMENT '所在页实际采集时间;缺行占位取本批采集完成时间',
`quality_status` varchar(16) COLLATE utf8mb4_bin NOT NULL COMMENT 'VALID、UNKNOWN、INVALID;STALE 按批次年龄实时派生',
`quality_reason` varchar(64) COLLATE utf8mb4_bin DEFAULT NULL COMMENT 'SOURCE_ROW_MISSING、FIELD_MISSING、NEGATIVE_QUANTITY 等',
PRIMARY KEY (`id`),
UNIQUE KEY `uk_selfop_stock_snapshot` (`snapshot_run_id`,`source_account`,`customer_code`,`warehouse_code`,`sku_code`,`product_quality`),
KEY `idx_selfop_stock_lookup` (`source_account`,`customer_code`,`warehouse_code`,`sku_code`,`product_quality`,`snapshot_run_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin COMMENT='产品库存全量批次明细';
/*!40101 SET character_set_client = @saved_cs_client */;
DROP TABLE IF EXISTS `ll_selfop_outbound_discovery_scope`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!50503 SET character_set_client = utf8mb4 */;
CREATE TABLE `ll_selfop_outbound_discovery_scope` (
`id` bigint NOT NULL COMMENT '应用生成的记录标识',
`created_at` datetime(3) NOT NULL COMMENT 'UTC创建时间',
`updated_at` datetime(3) NOT NULL COMMENT 'UTC更新时间',
`source_account` varchar(64) COLLATE utf8mb4_bin NOT NULL COMMENT '受控来源账号别名,不保存密钥',
`catalog_from_utc` datetime(3) DEFAULT NULL COMMENT '账号完整目录连续覆盖UTC下界,不等同销量覆盖',
`catalog_until_utc` datetime(3) DEFAULT NULL COMMENT '账号完整目录连续覆盖UTC上界,不等同销量覆盖',
`next_sequence` bigint NOT NULL DEFAULT '1' COMMENT '新发现任务的单调调度序号;重试沿用,只安排任务,不判断对象内容的新旧',
`next_observation_sequence` bigint NOT NULL DEFAULT '1' COMMENT '每次实际出库详情请求前分配的单调采集代次;与 task 调度序号独立,重试请求也分配新代次',
`active_task_id` bigint DEFAULT NULL COMMENT '当前共享发现/详情补齐任务',
`lease_owner` varchar(128) COLLATE utf8mb4_bin DEFAULT NULL COMMENT '账号发现执行者',
`lease_until_utc` datetime(3) DEFAULT NULL COMMENT '账号发现租约到期时刻',
`fence_token` bigint NOT NULL DEFAULT '0' COMMENT '防止过期发现进程继续写共享暂存或派发任务',
`request_budget` int NOT NULL COMMENT '一次调度允许的目录、详情请求总预算,必须为正',
`time_budget_seconds` int NOT NULL COMMENT '一次调度允许占用的执行时长,必须为正',
`min_request_interval_ms` int NOT NULL COMMENT '同账号请求最小间隔,按已核准配额配置',
`api_budget_json` json DEFAULT NULL COMMENT '账号所有采集族共用的预算、统计日、保守预留及确认消耗、尝试许可和独占交接依据',
`api_cooldown_until_utc` datetime(3) DEFAULT NULL COMMENT '账号全部真实请求共用冷却UTC截止,重启与跨日不清除',
`api_pause_reason` varchar(64) COLLATE utf8mb4_bin DEFAULT NULL COMMENT '账号停止或等待的固定原因码,不保存供应商原始错误或凭据',
PRIMARY KEY (`id`),
UNIQUE KEY `uk_selfop_discovery_account` (`source_account`),
CONSTRAINT `chk_selfop_outbound_discovery_scope` CHECK (((`request_budget` > 0) and (`time_budget_seconds` > 0) and (`min_request_interval_ms` > 0) and (`fence_token` >= 0) and (`next_sequence` > 0) and (`next_observation_sequence` > 0)))
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin COMMENT='账号共享出库目录与详情发现协调作用域';
/*!40101 SET character_set_client = @saved_cs_client */;
DROP TABLE IF EXISTS `ll_selfop_outbound_item`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!50503 SET character_set_client = utf8mb4 */;
CREATE TABLE `ll_selfop_outbound_item` (
`id` bigint NOT NULL COMMENT '应用生成的记录标识',
`created_at` datetime(3) NOT NULL COMMENT 'UTC创建时间',
`updated_at` datetime(3) NOT NULL COMMENT 'UTC更新时间',
`order_id` bigint NOT NULL COMMENT '对应外部出库事实',
`sku_code` varchar(128) COLLATE utf8mb4_bin NOT NULL COMMENT '原始 productSku',
`product_name` varchar(255) COLLATE utf8mb4_bin DEFAULT NULL COMMENT '来源商品名称,仅作展示',
`actual_quantity` decimal(20,6) NOT NULL COMMENT '详情 actualDeliveryQty,必须为非负有效数值',
`quantity_unit` varchar(32) COLLATE utf8mb4_bin NOT NULL COMMENT '已核准业务单位;未确认单位不发布正式数量统计',
PRIMARY KEY (`id`),
UNIQUE KEY `uk_selfop_order_sku` (`order_id`,`sku_code`),
KEY `idx_selfop_item_sku` (`sku_code`,`order_id`),
CONSTRAINT `chk_selfop_outbound_item` CHECK ((`actual_quantity` >= 0))
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin COMMENT='整单替换的实际出库明细';
/*!40101 SET character_set_client = @saved_cs_client */;
DROP TABLE IF EXISTS `ll_selfop_outbound_order`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!50503 SET character_set_client = utf8mb4 */;
CREATE TABLE `ll_selfop_outbound_order` (
`id` bigint NOT NULL COMMENT '应用生成的记录标识',
`created_at` datetime(3) NOT NULL COMMENT 'UTC创建时间',
`updated_at` datetime(3) NOT NULL COMMENT 'UTC更新时间',
`source_account` varchar(64) COLLATE utf8mb4_bin NOT NULL COMMENT '受控来源账号别名,不保存密钥',
`customer_code` varchar(64) COLLATE utf8mb4_bin NOT NULL COMMENT '领星货主原始编码,不等同平台客户标识',
`warehouse_code` varchar(64) COLLATE utf8mb4_bin NOT NULL COMMENT '来源仓库原始编码,按仓独立统计',
`delivery_no` varchar(128) COLLATE utf8mb4_bin NOT NULL COMMENT 'OMP 发货单号,采用列表及详情同一身份',
`source_no` varchar(128) COLLATE utf8mb4_bin DEFAULT NULL COMMENT 'WMS 来源出库单号,缺失不以内部 ID 回退展示',
`source_status` int NOT NULL COMMENT '原始状态,100 已出库、99 已取消;不改造成内部状态码',
`source_created_time` varchar(64) COLLATE utf8mb4_bin DEFAULT NULL COMMENT '来源创建时间原始字符串,不使用采集时间替代',
`source_outbound_time` varchar(64) COLLATE utf8mb4_bin DEFAULT NULL COMMENT '来源实际出库时间原始字符串,不使用采集时间替代',
`source_timezone` varchar(64) COLLATE utf8mb4_bin DEFAULT NULL COMMENT '解析采用的源时区',
`outbound_at_utc` datetime(3) DEFAULT NULL COMMENT '已核准的实际出库时间点;非出库状态可空',
`business_date` date DEFAULT NULL COMMENT '已核准业务时区下的出库日',
`business_timezone` varchar(64) COLLATE utf8mb4_bin NOT NULL COMMENT '该事实当前归属仓所用业务时区,迁仓后重新确定业务日',
`sales_eligible` tinyint NOT NULL DEFAULT '0' COMMENT '仅已出库、时间与全部数量有效时为 1',
`revision_no` bigint NOT NULL DEFAULT '1' COMMENT '该单内容变更次数,不等于拉取次数',
`content_hash` char(64) COLLATE utf8mb4_bin NOT NULL COMMENT '订单头及完整 SKU 明细规范化摘要',
`last_run_id` bigint NOT NULL COMMENT '最后一次确认或修订的执行尝试',
`last_observation_sequence` bigint NOT NULL COMMENT '最后接受的完整详情采集代次;仅防旧观测重放,不按 task 调度序号拒绝较晚实际读取的事实,不冒充领星源版本号',
PRIMARY KEY (`id`),
UNIQUE KEY `uk_selfop_order` (`source_account`,`customer_code`,`delivery_no`),
KEY `idx_selfop_order_daily` (`source_account`,`warehouse_code`,`sales_eligible`,`business_date`,`id`),
KEY `idx_selfop_order_run` (`last_run_id`),
CONSTRAINT `chk_selfop_outbound_order` CHECK (((`revision_no` > 0) and (`last_observation_sequence` > 0) and (`sales_eligible` in (0,1)) and ((`sales_eligible` = 0) or ((`source_status` = 100) and (`source_timezone` is not null) and (`outbound_at_utc` is not null) and (`business_date` is not null)))))
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin COMMENT='最后确认的单据事实';
/*!40101 SET character_set_client = @saved_cs_client */;
DROP TABLE IF EXISTS `ll_selfop_owner`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!50503 SET character_set_client = utf8mb4 */;
CREATE TABLE `ll_selfop_owner` (
`id` bigint NOT NULL COMMENT '主键',
`run_id` bigint NOT NULL COMMENT '完整资料采集版本',
`source_account` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL COMMENT '来源账号',
`customer_code` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL COMMENT '领星货主编码',
`customer_name` varchar(255) DEFAULT NULL COMMENT '领星货主名称',
`source_status` varchar(32) DEFAULT NULL COMMENT '来源启停状态',
`observed_at_utc` datetime(6) NOT NULL COMMENT '资料观测时间',
PRIMARY KEY (`id`),
UNIQUE KEY `uk_selfop_owner_version` (`run_id`,`source_account`,`customer_code`),
KEY `idx_selfop_owner_lookup` (`source_account`,`customer_code`,`run_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_selfop_product`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!50503 SET character_set_client = utf8mb4 */;
CREATE TABLE `ll_selfop_product` (
`id` bigint NOT NULL COMMENT '主键',
`run_id` bigint NOT NULL COMMENT '完整资料采集版本',
`source_account` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL COMMENT '来源账号',
`customer_code` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL COMMENT '领星货主编码',
`sku_code` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL COMMENT '货主商品编码',
`product_name` varchar(255) DEFAULT NULL COMMENT '商品名称',
`declared_length` decimal(24,6) DEFAULT NULL COMMENT '商品资料长度',
`declared_width` decimal(24,6) DEFAULT NULL COMMENT '商品资料宽度',
`declared_height` decimal(24,6) DEFAULT NULL COMMENT '商品资料高度',
`declared_size_unit` varchar(32) DEFAULT NULL COMMENT '商品资料尺寸单位',
`measured_length` decimal(24,6) DEFAULT NULL COMMENT '仓库实测长度',
`measured_width` decimal(24,6) DEFAULT NULL COMMENT '仓库实测宽度',
`measured_height` decimal(24,6) DEFAULT NULL COMMENT '仓库实测高度',
`measured_size_unit` varchar(32) DEFAULT NULL COMMENT '仓库实测尺寸单位',
`observed_at_utc` datetime(6) NOT NULL COMMENT '资料观测时间',
PRIMARY KEY (`id`),
UNIQUE KEY `uk_selfop_product_version` (`run_id`,`source_account`,`customer_code`,`sku_code`),
KEY `idx_selfop_product_lookup` (`source_account`,`customer_code`,`sku_code`,`run_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_selfop_sku_daily_sales`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!50503 SET character_set_client = utf8mb4 */;
CREATE TABLE `ll_selfop_sku_daily_sales` (
`id` bigint NOT NULL COMMENT '应用生成的记录标识',
`created_at` datetime(3) NOT NULL COMMENT 'UTC创建时间',
`updated_at` datetime(3) NOT NULL COMMENT 'UTC更新时间',
`sales_run_id` bigint NOT NULL COMMENT 'OUTBOUND 执行尝试,同时是计算版本',
`source_account` varchar(64) COLLATE utf8mb4_bin NOT NULL COMMENT '受控来源账号别名,不保存密钥',
`customer_code` varchar(64) COLLATE utf8mb4_bin NOT NULL COMMENT '领星货主原始编码,不等同平台客户标识',
`warehouse_code` varchar(64) COLLATE utf8mb4_bin NOT NULL COMMENT '来源仓库原始编码,按仓独立统计',
`sku_code` varchar(128) COLLATE utf8mb4_bin NOT NULL COMMENT '原始产品 SKU',
`business_date` date NOT NULL COMMENT '已核准业务日',
`outbound_quantity` decimal(20,6) NOT NULL COMMENT '有效出库实际件数之和,非负',
`outbound_order_count` bigint NOT NULL COMMENT '该维度去重发货单数,非负',
`quantity_unit` varchar(32) COLLATE utf8mb4_bin NOT NULL COMMENT '同一统计维度内一致的业务单位',
PRIMARY KEY (`id`),
UNIQUE KEY `uk_selfop_daily_version` (`sales_run_id`,`source_account`,`customer_code`,`warehouse_code`,`sku_code`,`business_date`),
KEY `idx_selfop_daily_window_cover` (`sales_run_id`,`source_account`,`warehouse_code`,`business_date`,`customer_code`,`sku_code`,`outbound_quantity`,`outbound_order_count`,`quantity_unit`),
KEY `idx_selfop_daily_sku_cover` (`sales_run_id`,`source_account`,`warehouse_code`,`customer_code`,`sku_code`,`business_date`,`outbound_quantity`,`outbound_order_count`,`quantity_unit`),
CONSTRAINT `chk_selfop_sku_daily_sales` CHECK (((`outbound_quantity` >= 0) and (`outbound_order_count` >= 0)))
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin COMMENT='完整销量版本的稀疏日事实';
/*!40101 SET character_set_client = @saved_cs_client */;
DROP TABLE IF EXISTS `ll_selfop_sku_profile`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!50503 SET character_set_client = utf8mb4 */;
CREATE TABLE `ll_selfop_sku_profile` (
`id` bigint NOT NULL COMMENT '应用生成的记录标识',
`created_at` datetime(3) NOT NULL COMMENT 'UTC创建时间',
`updated_at` datetime(3) NOT NULL COMMENT 'UTC更新时间',
`profile_run_id` bigint NOT NULL COMMENT '本仓销量或库存候选版本;与对应 daily/snapshot 使用同一 run,发布后该版本全部维度行不可修改',
`source_account` varchar(64) COLLATE utf8mb4_bin NOT NULL COMMENT '受控来源账号别名,不保存密钥',
`customer_code` varchar(64) COLLATE utf8mb4_bin NOT NULL COMMENT '领星货主原始编码,不等同平台客户标识',
`warehouse_code` varchar(64) COLLATE utf8mb4_bin NOT NULL COMMENT '来源仓库原始编码,按仓独立统计',
`sku_code` varchar(128) COLLATE utf8mb4_bin NOT NULL COMMENT '原始产品 SKU',
`product_name` varchar(255) COLLATE utf8mb4_bin DEFAULT NULL COMMENT '本版本确认的名称,不实时连接其他版本名称',
`quantity_unit` varchar(32) COLLATE utf8mb4_bin DEFAULT NULL COMMENT '本版本已核准单位;未知或两版本单位冲突时不计算混合指标',
`first_seen_at_utc` datetime(3) DEFAULT NULL COMMENT '本证据族真实观测到本仓商品的最早接收时刻;缺行占位不能生成观察证据',
`earliest_evidence_at_utc` datetime(3) DEFAULT NULL COMMENT '库存版取真实库存首次观察时刻;销量版从该版有效事实重新求最早已核准出库时间,可随改期、取消或迁仓撤回/后移',
`evidence_type` varchar(24) COLLATE utf8mb4_bin NOT NULL COMMENT 'INVENTORY_OBSERVATION、VALID_OUTBOUND、NONE;不得将销量证据复制成库存真实观察证据',
`evidence_run_id` bigint DEFAULT NULL COMMENT '本证据族真实依据的采集批次,无证据占位为空',
`last_seen_run_id` bigint DEFAULT NULL COMMENT '本证据族最近真实观测批次,无证据占位为空',
PRIMARY KEY (`id`),
UNIQUE KEY `uk_selfop_profile_version` (`profile_run_id`,`source_account`,`customer_code`,`warehouse_code`,`sku_code`),
KEY `idx_selfop_profile_evidence` (`profile_run_id`,`earliest_evidence_at_utc`,`customer_code`,`sku_code`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin COMMENT='随发布版本固定的 SKU 维度与观察依据';
/*!40101 SET character_set_client = @saved_cs_client */;
DROP TABLE IF EXISTS `ll_selfop_sync_run`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!50503 SET character_set_client = utf8mb4 */;
CREATE TABLE `ll_selfop_sync_run` (
`id` bigint NOT NULL COMMENT '应用生成的记录标识',
`created_at` datetime(3) NOT NULL COMMENT 'UTC创建时间',
`updated_at` datetime(3) NOT NULL COMMENT 'UTC更新时间',
`task_id` bigint NOT NULL COMMENT '本次执行请求',
`execution_purpose` varchar(16) COLLATE utf8mb4_bin NOT NULL COMMENT '从逻辑任务冻结继承,验证尝试不能作为正式统计版本',
`scope_id` bigint DEFAULT NULL COMMENT '仅账号共享发现为空;分仓执行必须有作用域',
`source_account` varchar(64) COLLATE utf8mb4_bin NOT NULL COMMENT '受控来源账号别名,不保存密钥',
`warehouse_code` varchar(64) COLLATE utf8mb4_bin DEFAULT NULL COMMENT '来源仓库原始编码,按仓独立统计',
`run_role` varchar(24) COLLATE utf8mb4_bin NOT NULL COMMENT 'ACCOUNT_DISCOVERY 或 WAREHOUSE_SYNC',
`upstream_task_id` bigint DEFAULT NULL COMMENT '分仓出库计算引用的共享切片及其稳定暂存集合',
`attempt_no` int NOT NULL COMMENT '同一请求从 1 起递增',
`scope_hash` char(64) COLLATE utf8mb4_bin NOT NULL COMMENT '本版本的业务范围摘要',
`scope_snapshot_json` json NOT NULL COMMENT '分仓版只含本仓货主/品质、固定首采 [B,E0)、时区、调度与过期阈值;账号发现保存待路由仓集合,不冒充业务版',
`observed_dimensions_json` json DEFAULT NULL COMMENT '本次实际出现的仓库/货主集合及数量摘要,仅作采集证据;例如已观测 70 货主不等于固定授权范围',
`fence_token` bigint NOT NULL COMMENT '本尝试持有的栅栏版本',
`base_published_run_id` bigint DEFAULT NULL COMMENT '执行开始时的上一可见版本',
`reference_sales_run_id` bigint DEFAULT NULL COMMENT '库存构建开始时固定的本仓已发布销量版,用其不可变 SKU 维度生成出库已知商品占位;没有已发布销量版时为空,不读取半归并订单事实',
`inventory_daily_sample_date` date DEFAULT NULL COMMENT '北京时间当日首个合格计划库存发布代表日期,非代表为空',
`inventory_sample_rule_version` varchar(32) COLLATE utf8mb4_bin DEFAULT NULL COMMENT '日库存代表选择规则 DAILY_SCHEDULED_FIRST_V1,与日标记原子保存',
`status` varchar(24) COLLATE utf8mb4_bin NOT NULL COMMENT 'FETCHING、VALIDATED、ROUTED、FACTS_APPLIED、BUILDING、READY、PUBLISHED、REUSED、YIELDED、FAILED、ABORTED、SAMPLE_DONE;复用和验证不是版本头',
`last_phase` varchar(24) COLLATE utf8mb4_bin NOT NULL COMMENT '失败/中止前所在阶段,支持判断是否已经归并事实',
`fetch_started_at_utc` datetime(3) DEFAULT NULL COMMENT '实际采集开始UTC时间',
`fetch_finished_at_utc` datetime(3) DEFAULT NULL COMMENT '实际采集完成UTC时间,未完成为空',
`build_started_at_utc` datetime(3) DEFAULT NULL COMMENT '实际开始有界候选构建UTC时间,用于构建耗时及首采合并间隔',
`warehouse_daily_ready` tinyint NOT NULL DEFAULT '0' COMMENT '仓库日汇总已完整构建并校验,含完整空版本',
`finished_at_utc` datetime(3) DEFAULT NULL COMMENT '本次尝试终止UTC时间',
`published_at_utc` datetime(3) DEFAULT NULL COMMENT '实际原子切换发布指针UTC时间',
`superseded_at_utc` datetime(3) DEFAULT NULL COMMENT '被新发布版替代的首次UTC时间,同事务填写且重试不重置',
`page_count` int NOT NULL DEFAULT '0' COMMENT '已完整获取页数',
`source_total_count` bigint DEFAULT NULL COMMENT '上游可靠返回的总数;未返回则为空',
`unique_object_count` bigint NOT NULL DEFAULT '0' COMMENT '规范化去重后对象数',
`progress_snapshot_json` json DEFAULT NULL COMMENT '尝试终止时冻结的有界可靠进度摘要,历史尝试不随逻辑任务改写',
`heartbeat_at_utc` datetime(3) DEFAULT NULL COMMENT '有效执行者最新UTC心跳,不代表业务检查点推进',
`coverage_status` varchar(16) COLLATE utf8mb4_bin NOT NULL COMMENT 'UNKNOWN、PARTIAL、COMPLETE;分页完整与数值有效性分别判断',
`covered_from_utc` datetime(3) DEFAULT NULL COMMENT '本仓销量版本实际连续覆盖UTC下界',
`covered_until_utc` datetime(3) DEFAULT NULL COMMENT '本仓销量版本实际连续覆盖UTC上界,不含端点',
`complete_day_from` date DEFAULT NULL COMMENT '本仓完整自然日区间首日,包含',
`complete_day_until` date DEFAULT NULL COMMENT '本仓完整自然日区间末日,不含',
`applied_fact_revision` bigint DEFAULT NULL COMMENT '本次尝试归并后的事实修订号,库存为空',
`calculated_fact_revision` bigint DEFAULT NULL COMMENT '候选销量版本计算所依据的固定事实修订号',
`error_code` varchar(64) COLLATE utf8mb4_bin DEFAULT NULL COMMENT '内部可诊断错误分类,不保存认证信息',
`error_message` varchar(500) COLLATE utf8mb4_bin DEFAULT NULL COMMENT '脱敏后的固定错误摘要',
PRIMARY KEY (`id`),
UNIQUE KEY `uk_selfop_run_attempt` (`task_id`,`attempt_no`),
UNIQUE KEY `uk_selfop_inventory_daily` (`source_account`,`warehouse_code`,`inventory_daily_sample_date`),
KEY `idx_selfop_run_scope` (`scope_id`,`id`),
KEY `idx_selfop_run_status` (`status`,`updated_at`),
CONSTRAINT `chk_selfop_inventory_daily` CHECK ((((`inventory_daily_sample_date` is null) and (`inventory_sample_rule_version` is null)) or ((`inventory_daily_sample_date` is not null) and (`inventory_sample_rule_version` is not null) and (`inventory_sample_rule_version` = _utf8mb4'DAILY_SCHEDULED_FIRST_V1') and (`execution_purpose` = _utf8mb4'BUSINESS') and (`run_role` = _utf8mb4'WAREHOUSE_SYNC') and (`status` = _utf8mb4'PUBLISHED') and (`coverage_status` = _utf8mb4'COMPLETE')))),
CONSTRAINT `chk_selfop_sync_run` CHECK (((`attempt_no` > 0) and (`page_count` >= 0) and (`unique_object_count` >= 0) and (`execution_purpose` in (_utf8mb4'BUSINESS',_utf8mb4'VALIDATION')) and ((`execution_purpose` <> _utf8mb4'VALIDATION') or (`status` not in (_utf8mb4'PUBLISHED',_utf8mb4'REUSED'))) and ((`source_total_count` is null) or (`source_total_count` >= 0)) and (((`run_role` = _utf8mb4'ACCOUNT_DISCOVERY') and (`scope_id` is null) and (`warehouse_code` is null)) or ((`run_role` = _utf8mb4'WAREHOUSE_SYNC') and (`scope_id` is not null) and (`warehouse_code` is not null)))))
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin COMMENT='执行尝试、覆盖证明和版本头';
/*!40101 SET character_set_client = @saved_cs_client */;
DROP TABLE IF EXISTS `ll_selfop_sync_scope`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!50503 SET character_set_client = utf8mb4 */;
CREATE TABLE `ll_selfop_sync_scope` (
`id` bigint NOT NULL COMMENT '应用生成的记录标识',
`created_at` datetime(3) NOT NULL COMMENT 'UTC创建时间',
`updated_at` datetime(3) NOT NULL COMMENT 'UTC更新时间',
`source_account` varchar(64) COLLATE utf8mb4_bin NOT NULL COMMENT '受控来源账号别名,不保存密钥',
`warehouse_code` varchar(64) COLLATE utf8mb4_bin NOT NULL COMMENT '来源仓库原始编码,按仓独立统计',
`data_family` varchar(16) COLLATE utf8mb4_bin NOT NULL COMMENT 'OUTBOUND 或 INVENTORY;按账号+仓库+任务族互斥',
`scope_json` json NOT NULL COMMENT '本仓范围规则,customerMode=ALL_AUTHORIZED,库存为全部品质;当前账号全部授权货主均自营,不将当天出现的货主列表当白名单',
`scope_hash` char(64) COLLATE utf8mb4_bin NOT NULL COMMENT '仓库、货主范围规则、品质、时区及单位口径的规范化摘要;不包含当天观测到的客户/SKU 集合',
`business_timezone` varchar(64) COLLATE utf8mb4_bin NOT NULL COMMENT '本仓报表及调度时区,初始建议值为 Asia/Shanghai,各仓独立核准',
`source_timezone` varchar(64) COLLATE utf8mb4_bin DEFAULT NULL COMMENT '本仓已核准的出库源时间时区',
`schedule_cron` varchar(128) COLLATE utf8mb4_bin NOT NULL COMMENT '本仓、本任务族的调度表达式,按 business_timezone 执行',
`stale_after_seconds` int NOT NULL COMMENT '本仓、本任务族数据过期阈值,必须为正;库存初始可采用 26 小时,后续按仓调整',
`warehouse_policy_ref` varchar(128) COLLATE utf8mb4_bin DEFAULT NULL COMMENT '未来按仓告警/补货策略的稳定引用;一期为空,不建告警规则表',
`initial_from_utc` datetime(3) DEFAULT NULL COMMENT '首采固定UTC下界,按本仓业务时区减一个月',
`initial_until_utc` datetime(3) DEFAULT NULL COMMENT '首采固定UTC截止,重试不重新取当前时间',
`discovery_from_utc` datetime(3) DEFAULT NULL COMMENT '本仓已发布的连续销量覆盖UTC下界',
`discovery_until_utc` datetime(3) DEFAULT NULL COMMENT '本仓已发布的连续销量覆盖UTC上界,不含端点',
`fact_revision` bigint NOT NULL DEFAULT '0' COMMENT '出库事实归并修订号;内容实际变化才增加',
`published_fact_revision` bigint NOT NULL DEFAULT '0' COMMENT '本仓最后已发布销量版所使用的事实修订号',
`rebuild_required` tinyint NOT NULL DEFAULT '0' COMMENT '事实变化待重建标记;跨仓修订同时置旧、新仓为 1',
`invalidated_at_utc` datetime(3) DEFAULT NULL COMMENT '最近一次因事实修订使当前版待重建的时刻',
`published_run_id` bigint DEFAULT NULL COMMENT '唯一对外可见版本,指向本任务族已发布执行批次',
`lease_owner` varchar(128) COLLATE utf8mb4_bin DEFAULT NULL COMMENT '当前执行者令牌,不使用仅进程内锁',
`lease_until_utc` datetime(3) DEFAULT NULL COMMENT '租约到期时刻',
`fence_token` bigint NOT NULL DEFAULT '0' COMMENT '每次取得租约递增,事实提交和发布均校验',
`known_order_cursor_id` bigint DEFAULT NULL COMMENT '本仓已可靠处理的稳定订单内部标识游标',
`known_order_round_max_id` bigint DEFAULT NULL COMMENT '本轮已知单复查固定最大内部标识',
`known_order_round_started_at_utc` datetime(3) DEFAULT NULL COMMENT '本仓已知单复查轮次开始UTC时间',
`known_order_round_finished_at_utc` datetime(3) DEFAULT NULL COMMENT '本仓已知单完整轮转完成UTC时间',
`history_round_from_utc` datetime(3) DEFAULT NULL COMMENT '本仓历史核对固定UTC下界',
`history_round_until_utc` datetime(3) DEFAULT NULL COMMENT '本仓历史核对固定UTC上界',
`history_slice_cursor_utc` datetime(3) DEFAULT NULL COMMENT '本仓下一待核对历史切片UTC位置',
`history_round_finished_at_utc` datetime(3) DEFAULT NULL COMMENT '上一轮历史时间片全部完成时刻',
`review_request_budget` int NOT NULL COMMENT '本仓单次复查最大请求数,必须为正',
`review_time_budget_seconds` int NOT NULL COMMENT '本仓单次复查最大执行秒数,必须为正',
`review_target_days` int NOT NULL DEFAULT '7' COMMENT '建议每 7 天轮转一遍,属于待配额验证的目标,不保证首次大量详情在单次调度内完成',
PRIMARY KEY (`id`),
UNIQUE KEY `uk_selfop_scope` (`source_account`,`warehouse_code`,`data_family`),
KEY `idx_selfop_scope_lease` (`lease_until_utc`),
CONSTRAINT `chk_selfop_sync_scope` CHECK (((`data_family` in (_utf8mb4'OUTBOUND',_utf8mb4'INVENTORY')) and (`stale_after_seconds` > 0) and (`review_request_budget` > 0) and (`review_time_budget_seconds` > 0) and (`review_target_days` > 0) and (`fact_revision` >= 0) and (`published_fact_revision` >= 0) and (`fence_token` >= 0)))
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin COMMENT='分仓任务族租约及发布指针';
/*!40101 SET character_set_client = @saved_cs_client */;
DROP TABLE IF EXISTS `ll_selfop_sync_stage`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!50503 SET character_set_client = utf8mb4 */;
CREATE TABLE `ll_selfop_sync_stage` (
`id` bigint NOT NULL COMMENT '应用生成的记录标识',
`created_at` datetime(3) NOT NULL COMMENT 'UTC创建时间',
`updated_at` datetime(3) NOT NULL COMMENT 'UTC更新时间',
`run_id` bigint NOT NULL COMMENT '首次写入该暂存对象的执行尝试',
`stage_batch_id` bigint NOT NULL COMMENT '出库取共享发现 task.id,便于断点续取;库存取本次 run.id,严禁跨尝试混页',
`last_fetch_run_id` bigint NOT NULL COMMENT '最后一次补齐该对象的执行尝试,保留重试来源',
`observation_sequence` bigint DEFAULT NULL COMMENT '该完整出库详情实际请求的采集代次;有效出库对象必填,目录待补对象和库存为空;不能填 task 调度序号',
`warehouse_code` varchar(64) COLLATE utf8mb4_bin NOT NULL COMMENT '来源仓库原始编码,按仓独立统计',
`previous_warehouse_code` varchar(64) COLLATE utf8mb4_bin DEFAULT NULL COMMENT '路由时从已有单据识别的原仓库;归并前再校验,跨仓时通知两仓',
`object_type` varchar(16) COLLATE utf8mb4_bin NOT NULL COMMENT 'OUTBOUND_ORDER 或 PRODUCT_STOCK',
`object_key_hash` char(64) COLLATE utf8mb4_bin NOT NULL COMMENT '规范化业务键摘要;原业务键保留在载荷中并核对',
`first_page_no` int NOT NULL COMMENT '首次发现页码',
`observed_at_utc` datetime(3) NOT NULL COMMENT '实际接收该对象的时刻',
`content_hash` char(64) COLLATE utf8mb4_bin NOT NULL COMMENT '完整规范化对象摘要',
`payload_json` json NOT NULL COMMENT '目录阶段可先存订单头,详情齐后补完整 SKU;VALID 后不再修改;库存保存产品库存字段',
`before_payload_json` json DEFAULT NULL COMMENT '订单归并事务内记录归并前的完整规范化事实;新增单为空',
`validation_status` varchar(16) COLLATE utf8mb4_bin NOT NULL COMMENT '暂存校验状态:PENDING待核验、VALID有效、INVALID异常',
`validation_code` varchar(64) COLLATE utf8mb4_bin DEFAULT NULL COMMENT '字段缺失、冲突、未知时区等原因',
PRIMARY KEY (`id`),
UNIQUE KEY `uk_selfop_stage_object` (`stage_batch_id`,`object_type`,`object_key_hash`),
KEY `idx_selfop_stage_history` (`object_type`,`object_key_hash`,`stage_batch_id`),
KEY `idx_selfop_stage_observation` (`object_type`,`object_key_hash`,`validation_status`,`observation_sequence`),
KEY `idx_selfop_stage_fact_observation` (`observation_sequence`,`warehouse_code`,`object_type`,`validation_status`,`run_id`,`observed_at_utc`),
KEY `idx_selfop_stage_route` (`stage_batch_id`,`warehouse_code`,`validation_status`),
CONSTRAINT `chk_selfop_sync_stage` CHECK (((`first_page_no` > 0) and ((`object_type` <> _utf8mb4'OUTBOUND_ORDER') or (`validation_status` <> _utf8mb4'VALID') or (`observation_sequence` is not null))))
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin COMMENT='待验证事实与修订证据';
/*!40101 SET character_set_client = @saved_cs_client */;
DROP TABLE IF EXISTS `ll_selfop_sync_task`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!50503 SET character_set_client = utf8mb4 */;
CREATE TABLE `ll_selfop_sync_task` (
`id` bigint NOT NULL COMMENT '应用生成的记录标识',
`created_at` datetime(3) NOT NULL COMMENT 'UTC创建时间',
`updated_at` datetime(3) NOT NULL COMMENT 'UTC更新时间',
`task_no` varchar(64) COLLATE utf8mb4_bin NOT NULL COMMENT '稳定采集业务任务号,重试沿用,不展示内部数据库标识',
`execution_purpose` varchar(16) COLLATE utf8mb4_bin NOT NULL COMMENT 'BUSINESS或VALIDATION;由服务端冻结用途,子任务继承',
`validation_root_task_id` bigint DEFAULT NULL COMMENT '验证会话唯一预算根任务,根引用自身,正式任务为空',
`validation_budget_json` json DEFAULT NULL COMMENT '验证根冻结硬预算、累计消耗、库存分仓页数、截止时刻及停止原因',
`business_root_task_id` bigint DEFAULT NULL COMMENT '测试人工正式采集共享预算根任务;生产任务为空',
`business_budget_json` json DEFAULT NULL COMMENT '仅测试正式采集根保存冻结请求上限、截止时间、消耗及停止原因',
`source_account` varchar(64) COLLATE utf8mb4_bin NOT NULL COMMENT '受控来源账号别名,不保存密钥',
`task_role` varchar(24) COLLATE utf8mb4_bin NOT NULL COMMENT 'ACCOUNT_DISCOVERY 或 WAREHOUSE_SYNC',
`scope_id` bigint DEFAULT NULL COMMENT '分仓任务必须引用分仓作用域;仅账号共享发现为空',
`warehouse_code` varchar(64) COLLATE utf8mb4_bin DEFAULT NULL COMMENT '来源仓库原始编码,按仓独立统计',
`discovery_scope_id` bigint DEFAULT NULL COMMENT '共享发现必填,引用账号发现协调器',
`upstream_task_id` bigint DEFAULT NULL COMMENT '出库分仓任务引用已持久化目录的共享发现切片;库存无此上游',
`discovery_sequence` bigint DEFAULT NULL COMMENT '共享任务及分仓子任务继承的调度顺序;重试保持不变,不用于事实覆盖判定',
`observation_baseline` bigint DEFAULT NULL COMMENT '共享任务建立时已分配的最大详情采集代次,分仓子任务继承;用于识别旧任务恢复期间出现的其他任务新观测',
`request_key` varchar(128) COLLATE utf8mb4_bin NOT NULL COMMENT '共享发现包含切片/计划槽位;分仓任务包含仓库、任务族及切片或计划槽位;人工附请求幂等键',
`request_hash` char(64) COLLATE utf8mb4_bin NOT NULL COMMENT '请求类型、查询范围、范围摘要的指纹;同键不同请求拒绝',
`task_type` varchar(24) COLLATE utf8mb4_bin NOT NULL COMMENT '计划、补采、复核、重建与验证;INVENTORY_FLOW_HISTORY为流水片,INVENTORY_HISTORY_BUILD为本地历史还原',
`planned_at_utc` datetime(3) DEFAULT NULL COMMENT '计划时点;人工请求可空',
`query_from_utc` datetime(3) DEFAULT NULL COMMENT '出库查询区间UTC下界,库存不填',
`query_until_utc` datetime(3) DEFAULT NULL COMMENT '出库查询区间UTC上界,不含端点,库存不填',
`query_scope_json` json NOT NULL COMMENT '不变的账号、货主、仓库、品质和查询条件快照;按单补查在此记录单号',
`routing_manifest_json` json DEFAULT NULL COMMENT '共享切片目录完整标记、每仓对象键集合/数量和详情就绪状态;各对象记录 effectiveStageId,需新代次复查时记录 refreshTaskId,完成后指向新有效暂存;不改写旧载荷',
`scope_hash` char(64) COLLATE utf8mb4_bin NOT NULL COMMENT '建任务时的业务范围摘要',
`status` varchar(20) COLLATE utf8mb4_bin NOT NULL COMMENT 'WAITING_SOURCE、READY、RUNNING、RETRY_WAIT、SUCCEEDED、DEAD、SAMPLE_DONE;样本结束不等于正式成功',
`apply_state` varchar(20) COLLATE utf8mb4_bin NOT NULL COMMENT '正式出库归并NOT_STARTED、APPLYING、BLOCKED、APPLIED;共享发现、库存、重建及验证为NOT_APPLICABLE',
`affected_warehouse_codes_json` json DEFAULT NULL COMMENT '本次归并可能改变的仓集合,包含原仓与新仓;首段事实写入前登记,扩大集合须先取得新增仓租约并锁 scope,不能写完再补',
`apply_started_at_utc` datetime(3) DEFAULT NULL COMMENT '首段事实提交UTC时间',
`apply_completed_at_utc` datetime(3) DEFAULT NULL COMMENT '全部必需事实归并完成UTC时间,失败不填',
`attempt_count` int NOT NULL DEFAULT '0' COMMENT '已创建的执行尝试数',
`next_retry_at_utc` datetime(3) DEFAULT NULL COMMENT '有限退避后下一次可执行时刻',
`requested_by` varchar(128) COLLATE utf8mb4_bin DEFAULT NULL COMMENT '人工请求的平台操作人,仅内部审计',
`result_published_run_id` bigint DEFAULT NULL COMMENT '正式成功任务实际发布或复用的版本;验证和共享发现为空',
`progress_json` json DEFAULT NULL COMMENT '与可靠检查点一起提交的有界阶段、单位、尝试和质量进度,不保存单据集合',
`progress_updated_at_utc` datetime(3) DEFAULT NULL COMMENT '最后可靠业务检查点UTC时间,与执行心跳分开',
PRIMARY KEY (`id`),
UNIQUE KEY `uk_selfop_task_no` (`task_no`),
UNIQUE KEY `uk_selfop_task_request` (`source_account`,`request_key`),
KEY `idx_selfop_task_poll` (`status`,`next_retry_at_utc`,`id`),
KEY `idx_selfop_task_upstream` (`upstream_task_id`,`warehouse_code`),
KEY `idx_selfop_task_apply` (`apply_state`,`id`),
KEY `idx_selfop_task_scope_list` (`scope_id`,`created_at`,`id`),
KEY `idx_selfop_task_account_list` (`source_account`,`task_role`,`created_at`,`id`),
KEY `idx_selfop_task_business_root` (`business_root_task_id`,`status`,`id`),
CONSTRAINT `chk_selfop_business_budget` CHECK ((((`business_root_task_id` is null) and (`business_budget_json` is null)) or ((`execution_purpose` = _utf8mb4'BUSINESS') and (`business_root_task_id` is not null) and (((`business_root_task_id` = `id`) and (`business_budget_json` is not null)) or ((`business_root_task_id` <> `id`) and (`business_budget_json` is null)))))),
CONSTRAINT `chk_selfop_sync_task` CHECK (((`attempt_count` >= 0) and (`execution_purpose` in (_utf8mb4'BUSINESS',_utf8mb4'VALIDATION')) and (((`execution_purpose` = _utf8mb4'BUSINESS') and (`validation_root_task_id` is null) and (`validation_budget_json` is null)) or ((`execution_purpose` = _utf8mb4'VALIDATION') and (`validation_root_task_id` is not null) and (`apply_state` = _utf8mb4'NOT_APPLICABLE') and (`result_published_run_id` is null) and (`status` <> _utf8mb4'SUCCEEDED'))) and (((`task_role` = _utf8mb4'ACCOUNT_DISCOVERY') and (`scope_id` is null) and (`warehouse_code` is null) and (`discovery_scope_id` is not null)) or ((`task_role` = _utf8mb4'WAREHOUSE_SYNC') and (`scope_id` is not null) and (`warehouse_code` is not null)))))
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin COMMENT='一次计划或人工请求';
/*!40101 SET character_set_client = @saved_cs_client */;
DROP TABLE IF EXISTS `ll_selfop_warehouse_daily_sales`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!50503 SET character_set_client = utf8mb4 */;
CREATE TABLE `ll_selfop_warehouse_daily_sales` (
`sales_run_id` bigint NOT NULL COMMENT '完整销量计算版本标识',
`source_account` varchar(64) COLLATE utf8mb4_bin NOT NULL COMMENT '受控来源账号别名,不保存密钥',
`warehouse_code` varchar(64) COLLATE utf8mb4_bin NOT NULL COMMENT '来源仓库原始编码',
`business_date` date NOT NULL COMMENT '已核准业务日',
`observed_quantity` decimal(38,6) DEFAULT NULL COMMENT '该日PCS非负有效出库量之和,无有效行时为空',
`invalid_row_count` bigint NOT NULL COMMENT '该日数量为空或负数或单位非PCS的日事实行数',
`source_row_count` bigint NOT NULL COMMENT '该日参与仓库汇总的SKU日事实总行数',
`created_at` datetime(3) NOT NULL COMMENT 'UTC创建时间',
`updated_at` datetime(3) NOT NULL COMMENT 'UTC更新时间',
PRIMARY KEY (`sales_run_id`,`source_account`,`warehouse_code`,`business_date`),
CONSTRAINT `chk_selfop_warehouse_daily_sales` CHECK (((`source_row_count` > 0) and (`invalid_row_count` >= 0) and (`invalid_row_count` <= `source_row_count`) and ((`observed_quantity` is null) or (`observed_quantity` >= 0))))
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin COMMENT='完整销量版本按仓按日汇总,随SKU日事实批次原子构建';
/*!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',
`vehicle_type` varchar(32) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '车辆类型:PALLET_15为15拖,PALLET_30为30拖;拼车未提供时为空',
`origin_contact_name` varchar(128) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '起运地联系人',
`origin_contact_phone` varchar(128) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '起运地联系电话',
`destination_contact_name` varchar(128) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '目的地联系人',
`destination_contact_phone` varchar(128) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '目的地联系电话',
`pickup_at` datetime DEFAULT NULL COMMENT '取货时间,按填写的日期时分保存,不转换时区',
`delivery_at` datetime DEFAULT NULL COMMENT '送货时间,按填写的日期时分保存;拼车来源未提供时为空',
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`),
KEY `idx_ll_wh_transfer_allocation_position` (`transfer_order_id`,`inventory_position_id`)
) 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 `event_delivery_retry_audit`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!50503 SET character_set_client = utf8mb4 */;
CREATE TABLE `event_delivery_retry_audit` (
`request_id` varchar(36) NOT NULL COMMENT '人工重试请求UUID和幂等键',
`producer_table` varchar(64) NOT NULL COMMENT '本服务发件箱表名',
`entry_id` varchar(64) NOT NULL COMMENT '发件箱记录主键',
`event_id` varchar(128) NOT NULL COMMENT '原事件全局标识',
`event_type` varchar(64) NOT NULL COMMENT '原事件类型',
`payload_hash` varchar(71) NOT NULL COMMENT '原事件不可变负载摘要',
`operator_name` varchar(128) NOT NULL COMMENT '持有运维凭据的操作人标识',
`reason` varchar(500) NOT NULL COMMENT '人工重试原因',
`previous_failures` int NOT NULL COMMENT '重试前累计失败次数',
`previous_error` varchar(1000) DEFAULT NULL COMMENT '重试前最后一次脱敏错误',
`requested_at` datetime(3) NOT NULL COMMENT '重试申请提交时间',
PRIMARY KEY (`request_id`),
KEY `idx_event_retry_entry` (`producer_table`,`entry_id`,`requested_at`),
KEY `idx_event_retry_event` (`event_id`,`requested_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`),
KEY `idx_container_shipping_node_timeline` (`container_booking_id`,`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_chargeable_weight_confirmation`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!50503 SET character_set_client = utf8mb4 */;
CREATE TABLE `fl_chargeable_weight_confirmation` (
`id` bigint NOT NULL COMMENT '确认记录ID',
`tenant_id` bigint NOT NULL COMMENT '客户隔离ID',
`inbound_id` bigint NOT NULL COMMENT '独立来源入仓单ID',
`operator_id` bigint NOT NULL COMMENT '确认客户成员ID',
`command_key` varchar(128) NOT NULL COMMENT '成员确认幂等键',
`fingerprint` char(64) NOT NULL COMMENT '计费重及测量轮次摘要',
`chargeable_weight_kg` decimal(18,4) NOT NULL COMMENT '客户确认计费重千克',
`confirmed_at` datetime(3) NOT NULL COMMENT '客户确认时间',
PRIMARY KEY (`id`),
UNIQUE KEY `uk_weight_confirmation_command` (`tenant_id`,`operator_id`,`command_key`),
KEY `idx_weight_confirmation_inbound` (`tenant_id`,`inbound_id`,`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_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`),
UNIQUE KEY `uk_container_booking_ocean_container` (`ocean_booking_id`,`container_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`),
KEY `idx_container_booking_container_no` (`container_no`,`updated_at`,`id`),
KEY `idx_container_booking_merge` (`record_status`,`merged_into_container_booking_id`),
KEY `idx_container_booking_transit_summary` (`actual_sailing_at`,`actual_warehouse_arrival_at`,`ocean_booking_id`,`container_type`),
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`),
KEY `idx_container_fee_review` (`tenant_id`,`review_status`,`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`),
UNIQUE KEY `uk_container_transport_history_operation` (`container_booking_id`,`operator_id`,`operation_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`),
KEY `idx_charge_rule_initialization` (`tenant_id`,`initialization_key`)
) 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_broker_submission`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!50503 SET character_set_client = utf8mb4 */;
CREATE TABLE `fl_customs_broker_submission` (
`id` bigint unsigned NOT NULL COMMENT '首次发送报关行批次ID',
`customs_container_id` bigint unsigned NOT NULL COMMENT '所属整柜报关聚合ID',
`loading_plan_id` bigint unsigned NOT NULL COMMENT '装柜计划ID快照',
`batch_no` varchar(64) NOT NULL COMMENT '首次发送报关行批次号',
`status` varchar(16) NOT NULL COMMENT '发送状态:SENT已发送',
`source_version` int unsigned NOT NULL COMMENT '发送时整柜报关聚合版本',
`source_snapshot_json` json NOT NULL COMMENT '发送时冻结资料版本与覆盖范围快照',
`sent_by` bigint unsigned NOT NULL COMMENT '首次发送操作人ID',
`sent_by_name` varchar(64) DEFAULT NULL COMMENT '首次发送操作人名称快照',
`sent_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_broker_submission_container` (`customs_container_id`),
UNIQUE KEY `uk_customs_broker_submission_batch` (`batch_no`),
KEY `idx_customs_broker_submission_plan` (`loading_plan_id`,`sent_at`),
CONSTRAINT `fk_customs_broker_submission_container` FOREIGN KEY (`customs_container_id`) REFERENCES `fl_customs_container` (`id`),
CONSTRAINT `chk_customs_broker_submission_status` CHECK ((`status` = _utf8mb4'SENT'))
) 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_clearance_result`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!50503 SET character_set_client = utf8mb4 */;
CREATE TABLE `fl_customs_clearance_result` (
`id` bigint unsigned NOT NULL COMMENT '海关结果事实ID',
`declaration_batch_id` bigint unsigned NOT NULL COMMENT '所属正式申报批次ID',
`customs_container_id` bigint unsigned NOT NULL COMMENT '所属整柜报关聚合ID',
`result_type` varchar(32) NOT NULL COMMENT '结果类型:INSPECTION/SUPPLEMENT_REQUIRED/RELEASED/DETAINED/OTHER',
`result_status` varchar(16) NOT NULL DEFAULT 'OPEN' COMMENT '结果状态:OPEN/RESOLVED/CANCELLED',
`customs_entry_no` varchar(64) DEFAULT NULL COMMENT '报关单号快照',
`occurred_at` datetime(3) NOT NULL COMMENT '海关事实发生时间',
`resolution` varchar(1000) DEFAULT NULL COMMENT '处理结果或异常说明',
`evidence_file_id` bigint unsigned DEFAULT NULL COMMENT '结果凭证File文件ID',
`recorded_by` bigint unsigned NOT NULL COMMENT '平台录入人',
`recorded_by_name` varchar(64) DEFAULT NULL COMMENT '平台录入人名称快照',
`recorded_at` datetime(3) NOT NULL COMMENT '平台录入时间',
`previous_result_id` 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 '结果更新时间',
PRIMARY KEY (`id`),
KEY `idx_customs_clearance_result_batch` (`declaration_batch_id`,`occurred_at`,`id`),
KEY `idx_customs_clearance_result_container` (`customs_container_id`,`result_type`,`result_status`),
CONSTRAINT `fk_customs_clearance_result_batch` FOREIGN KEY (`declaration_batch_id`) REFERENCES `fl_customs_declaration_batch` (`id`),
CONSTRAINT `chk_customs_clearance_result_status` CHECK ((`result_status` in (_utf8mb4'OPEN',_utf8mb4'RESOLVED',_utf8mb4'CANCELLED'))),
CONSTRAINT `chk_customs_clearance_result_type` CHECK ((`result_type` in (_utf8mb4'INSPECTION',_utf8mb4'SUPPLEMENT_REQUIRED',_utf8mb4'RELEASED',_utf8mb4'DETAINED',_utf8mb4'OTHER')))
) 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_action_history`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!50503 SET character_set_client = utf8mb4 */;
CREATE TABLE `fl_customs_completion_action_history` (
`id` bigint unsigned NOT NULL COMMENT '客户回执动作历史ID',
`completion_document_id` bigint unsigned NOT NULL COMMENT '报关行回执当前版本逻辑根ID',
`receipt_version` int unsigned NOT NULL COMMENT '动作对应的回执文件版本',
`action` varchar(16) NOT NULL COMMENT '客户动作:CONFIRM确认、REJECT打回',
`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_customs_completion_action_history` (`completion_document_id`,`receipt_version`,`created_at`,`id`),
CONSTRAINT `fk_customs_completion_action_history_document` FOREIGN KEY (`completion_document_id`) REFERENCES `fl_customs_completion_document` (`id`),
CONSTRAINT `chk_customs_completion_action_history_action` CHECK ((`action` in (_utf8mb4'CONFIRM',_utf8mb4'REJECT')))
) 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),
`customer_confirm_status` varchar(20) NOT NULL DEFAULT 'PENDING' COMMENT '客户回执确认状态:PENDING/CONFIRMED/REJECTED',
`customer_confirmed_by` bigint unsigned DEFAULT NULL COMMENT '客户确认人ID',
`customer_confirmed_by_name` varchar(64) DEFAULT NULL COMMENT '客户确认人名称快照',
`customer_confirmed_at` datetime(3) DEFAULT NULL COMMENT '客户确认时间',
`customer_reject_reason` varchar(500) DEFAULT NULL COMMENT '客户打回原因',
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_declaration_batch`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!50503 SET character_set_client = utf8mb4 */;
CREATE TABLE `fl_customs_declaration_batch` (
`id` bigint unsigned NOT NULL COMMENT '正式申报批次ID',
`customs_container_id` bigint unsigned NOT NULL COMMENT '所属整柜报关聚合ID',
`loading_plan_id` bigint unsigned NOT NULL COMMENT '装柜计划ID快照',
`batch_no` varchar(64) DEFAULT NULL COMMENT '平台正式申报批次号',
`status` varchar(32) NOT NULL COMMENT '批次状态:READY/SUBMITTED/ACKNOWLEDGED/RESULT_PENDING/CLOSED/CANCELLED',
`source_version` int unsigned NOT NULL COMMENT '创建时整柜报关聚合版本',
`source_snapshot_json` json NOT NULL COMMENT '提交时资料、回执和确认版本快照',
`customs_entry_no` varchar(64) DEFAULT NULL COMMENT '报关单号',
`submitted_by` bigint unsigned DEFAULT NULL COMMENT '正式申报提交人',
`submitted_by_name` varchar(64) DEFAULT NULL COMMENT '正式申报提交人名称快照',
`submitted_at` datetime(3) DEFAULT NULL COMMENT '正式申报提交时间',
`acknowledged_by` bigint unsigned DEFAULT NULL COMMENT '报关行确认受理人',
`acknowledged_by_name` varchar(64) DEFAULT NULL COMMENT '报关行确认受理人名称快照',
`acknowledged_at` datetime(3) DEFAULT NULL COMMENT '报关行确认受理时间',
`remark` varchar(500) 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_customs_declaration_batch_container` (`customs_container_id`,`id`),
KEY `idx_customs_declaration_batch_plan` (`loading_plan_id`,`status`,`created_at`),
CONSTRAINT `fk_customs_declaration_batch_container` FOREIGN KEY (`customs_container_id`) REFERENCES `fl_customs_container` (`id`),
CONSTRAINT `chk_customs_declaration_batch_status` CHECK ((`status` in (_utf8mb4'READY',_utf8mb4'SUBMITTED',_utf8mb4'ACKNOWLEDGED',_utf8mb4'RESULT_PENDING',_utf8mb4'CLOSED',_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_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供应商类别约束;为空表示任意启用供应商',
`default_price` decimal(12,2) DEFAULT NULL COMMENT '默认价格CNY;仅选费带入,实际费用可修改',
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`),
KEY `idx_measure_inbound_status_id` (`tenant_id`,`inbound_id`,`status`,`id`),
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`),
KEY `idx_measure_item_candidate` (`tenant_id`,`measurement_id`,`inbound_detail_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`),
KEY `idx_inbound_smart_loading` (`warehouse_id`,`process_status`,`channel_code`,`expected_arrival_at`,`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`),
KEY `idx_inbound_split_candidate` (`tenant_id`,`parent_inbound_id`,`source_inbound_detail_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`),
UNIQUE KEY `uk_loading_item_plan_assignment` (`loading_plan_id`,`active_assignment_key`),
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`),
KEY `idx_loading_item_candidate` (`account_id`,`inbound_id`,`inbound_detail_id`,`deleted`),
KEY `idx_loading_item_pallet` (`pallet_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`),
UNIQUE KEY `uk_ocean_booking_bill_of_lading` (`bill_of_lading_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_sailing`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!50503 SET character_set_client = utf8mb4 */;
CREATE TABLE `fl_sailing` (
`id` bigint NOT NULL,
`sailing_no` varchar(64) COLLATE utf8mb4_unicode_ci NOT NULL,
`template_id` bigint DEFAULT NULL,
`channel_id` bigint NOT NULL,
`channel_code_snapshot` varchar(64) COLLATE utf8mb4_unicode_ci NOT NULL,
`channel_name_snapshot` varchar(128) COLLATE utf8mb4_unicode_ci NOT NULL,
`warehouse_id` bigint NOT NULL,
`warehouse_name_snapshot` varchar(128) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
`departure_port_code` varchar(32) COLLATE utf8mb4_unicode_ci NOT NULL,
`destination_port_code` varchar(32) COLLATE utf8mb4_unicode_ci NOT NULL,
`vessel_name` varchar(128) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
`voyage_no` varchar(64) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
`etd_at` datetime(3) NOT NULL,
`warehouse_cutoff_at` datetime(3) NOT NULL,
`eta_at` datetime(3) DEFAULT NULL,
`status` varchar(16) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT 'OPEN',
`source_type` varchar(24) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT 'MANUAL',
`generated_key` varchar(192) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
`planned_capacity_cbm` decimal(14,3) DEFAULT NULL,
`remark` varchar(1000) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
`created_by` bigint NOT NULL,
`created_by_name` varchar(128) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
`created_at` datetime(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3),
`updated_by` bigint NOT NULL,
`updated_by_name` varchar(128) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
`updated_at` datetime(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3),
`version` int NOT NULL DEFAULT '0',
PRIMARY KEY (`id`),
UNIQUE KEY `uk_fl_sailing_no` (`sailing_no`),
UNIQUE KEY `uk_fl_sailing_generated_key` (`generated_key`),
UNIQUE KEY `uk_fl_sailing_business` (`warehouse_id`,`channel_code_snapshot`,`departure_port_code`,`destination_port_code`,`etd_at`,`voyage_no`),
KEY `idx_fl_sailing_calendar` (`etd_at`,`warehouse_id`,`channel_id`,`status`),
KEY `idx_fl_sailing_route` (`departure_port_code`,`destination_port_code`),
CONSTRAINT `ck_fl_sailing_status` CHECK ((`status` in (_utf8mb4'DRAFT',_utf8mb4'OPEN',_utf8mb4'CLOSED',_utf8mb4'DEPARTED',_utf8mb4'CANCELLED',_utf8mb4'COMPLETED')))
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
DROP TABLE IF EXISTS `fl_sailing_assignment`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!50503 SET character_set_client = utf8mb4 */;
CREATE TABLE `fl_sailing_assignment` (
`id` bigint unsigned NOT NULL COMMENT '归班事实ID',
`tenant_id` bigint unsigned NOT NULL COMMENT '客户隔离键',
`sailing_id` bigint unsigned DEFAULT NULL COMMENT '船期实例ID,UNMATCHED为空',
`origin_sailing_id` bigint unsigned DEFAULT NULL COMMENT '异常重排/取消前的原船期实例ID',
`inbound_id` bigint unsigned DEFAULT NULL COMMENT '归班对象入库单ID',
`inbound_code` varchar(64) DEFAULT NULL COMMENT '入仓码快照,仅用于展示',
`receipt_batch_id` bigint unsigned DEFAULT NULL COMMENT '收货批次事实ID',
`forecast_id` bigint unsigned DEFAULT NULL COMMENT '货量预报事实ID',
`assignment_source` varchar(24) NOT NULL DEFAULT 'AUTO' COMMENT '归班来源:AUTO/MANUAL/ROLLOVER',
`assignment_version` int unsigned NOT NULL COMMENT '同一对象的归班版本',
`match_status` varchar(24) NOT NULL COMMENT 'FORECAST_MATCHED/RECEIVED/LATE/UNMATCHED/SUPERSEDED',
`volume_cbm` decimal(18,4) DEFAULT NULL COMMENT '已收实测体积',
`forecast_volume_cbm` decimal(18,4) DEFAULT NULL COMMENT '未收有效预计体积',
`route_source` varchar(32) DEFAULT NULL COMMENT '航线来源:INBOUND_FACT/FORECAST_FACT/CHANNEL_DEFAULT',
`volume_source` varchar(32) DEFAULT NULL COMMENT 'MEASURED_ACTUAL或预报来源',
`rule_version` varchar(64) NOT NULL COMMENT '自动归班规则版本',
`matched_at` datetime(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3),
`superseded_at` datetime(3) DEFAULT NULL,
`locked_at` datetime(3) DEFAULT NULL COMMENT '截止/订舱/关闭后冻结时间',
`lock_reason` varchar(32) DEFAULT NULL COMMENT 'CUTOFF/BOOKING_CONFIRMED/CLOSED',
`operator_id` bigint unsigned DEFAULT NULL,
`reason` varchar(500) DEFAULT NULL,
`created_at` datetime(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3),
PRIMARY KEY (`id`),
KEY `idx_sailing_assignment_current` (`tenant_id`,`sailing_id`,`match_status`,`matched_at`,`id`),
KEY `idx_sailing_assignment_origin` (`tenant_id`,`origin_sailing_id`,`match_status`,`id`),
KEY `idx_sailing_assignment_receipt` (`tenant_id`,`receipt_batch_id`,`assignment_version`,`id`),
KEY `idx_sailing_assignment_forecast` (`tenant_id`,`forecast_id`,`assignment_version`,`id`),
KEY `idx_sailing_assignment_inbound` (`tenant_id`,`inbound_id`,`match_status`,`id`),
CONSTRAINT `chk_sailing_assignment_source` CHECK ((`assignment_source` in (_utf8mb4'AUTO',_utf8mb4'MANUAL',_utf8mb4'ROLLOVER'))),
CONSTRAINT `chk_sailing_assignment_status` CHECK ((`match_status` in (_utf8mb4'FORECAST_MATCHED',_utf8mb4'RECEIVED',_utf8mb4'LATE',_utf8mb4'UNMATCHED',_utf8mb4'SUPERSEDED')))
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='船期日历自动归班事实及不可变版本历史';
/*!40101 SET character_set_client = @saved_cs_client */;
DROP TABLE IF EXISTS `fl_sailing_booking_link`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!50503 SET character_set_client = utf8mb4 */;
CREATE TABLE `fl_sailing_booking_link` (
`id` bigint unsigned NOT NULL COMMENT '船期-订舱关联ID',
`tenant_id` bigint unsigned NOT NULL COMMENT '平台关联隔离键',
`sailing_id` bigint unsigned NOT NULL COMMENT '计划船期实例ID',
`ocean_booking_id` bigint unsigned NOT NULL COMMENT '海运订舱ID',
`link_status` varchar(24) NOT NULL DEFAULT 'ACTIVE' COMMENT '关联状态:ACTIVE/REVOKED',
`active_booking_guard` tinyint DEFAULT NULL COMMENT 'ACTIVE为1,REVOKED为空,用于唯一约束',
`booking_status_snapshot` varchar(24) NOT NULL COMMENT '关联时订舱状态快照;只有RELEASED可建立',
`warehouse_id` bigint unsigned DEFAULT NULL COMMENT '关联仓库快照',
`channel_code` varchar(64) DEFAULT NULL COMMENT '关联渠道快照',
`departure_port_code` varchar(32) DEFAULT NULL COMMENT '关联起运港快照',
`destination_port_code` varchar(32) DEFAULT NULL COMMENT '关联目的港快照',
`linked_at` datetime(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3),
`revoked_at` datetime(3) DEFAULT NULL,
`operator_id` bigint unsigned DEFAULT NULL,
`operator_name` varchar(64) DEFAULT NULL,
`reason` varchar(500) DEFAULT NULL,
PRIMARY KEY (`id`),
UNIQUE KEY `uk_sailing_booking_active` (`ocean_booking_id`,`active_booking_guard`),
KEY `idx_sailing_booking_link` (`sailing_id`,`link_status`,`ocean_booking_id`),
KEY `idx_sailing_booking_booking` (`ocean_booking_id`,`link_status`,`id`),
CONSTRAINT `chk_sailing_booking_link_guard` CHECK ((((`link_status` = _utf8mb4'ACTIVE') and (`active_booking_guard` = 1)) or ((`link_status` = _utf8mb4'REVOKED') and (`active_booking_guard` is null)))),
CONSTRAINT `chk_sailing_booking_link_status` CHECK ((`link_status` in (_utf8mb4'ACTIVE',_utf8mb4'REVOKED'))),
CONSTRAINT `chk_sailing_booking_released` CHECK ((`booking_status_snapshot` = _utf8mb4'RELEASED'))
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='船期计划与已放舱订舱的最小关联及历史';
/*!40101 SET character_set_client = @saved_cs_client */;
DROP TABLE IF EXISTS `fl_sailing_channel`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!50503 SET character_set_client = utf8mb4 */;
CREATE TABLE `fl_sailing_channel` (
`id` bigint NOT NULL,
`channel_code` varchar(64) COLLATE utf8mb4_unicode_ci NOT NULL,
`channel_name` varchar(128) COLLATE utf8mb4_unicode_ci NOT NULL,
`source_type` varchar(24) COLLATE utf8mb4_unicode_ci NOT NULL,
`mapped_channel_code` varchar(64) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
`default_departure_port_code` varchar(32) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
`default_destination_port_code` varchar(32) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
`default_cutoff_days` tinyint NOT NULL DEFAULT '3',
`status` varchar(16) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT 'ACTIVE',
`remark` varchar(1000) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
`created_by` bigint NOT NULL,
`created_by_name` varchar(128) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
`created_at` datetime(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3),
`updated_by` bigint NOT NULL,
`updated_by_name` varchar(128) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
`updated_at` datetime(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3),
`version` int NOT NULL DEFAULT '0',
PRIMARY KEY (`id`),
UNIQUE KEY `uk_fl_sailing_channel_code` (`channel_code`),
KEY `idx_fl_sailing_channel_status` (`status`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
DROP TABLE IF EXISTS `fl_sailing_history`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!50503 SET character_set_client = utf8mb4 */;
CREATE TABLE `fl_sailing_history` (
`id` bigint NOT NULL,
`sailing_id` bigint NOT NULL,
`action` varchar(32) COLLATE utf8mb4_unicode_ci NOT NULL,
`from_status` varchar(16) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
`to_status` varchar(16) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
`reason` varchar(1000) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
`operator_id` bigint DEFAULT NULL,
`operator_name` varchar(128) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
`created_at` datetime(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3),
PRIMARY KEY (`id`),
KEY `idx_fl_sailing_history_sailing` (`sailing_id`,`created_at`,`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
DROP TABLE IF EXISTS `fl_sailing_inbound_volume_forecast`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!50503 SET character_set_client = utf8mb4 */;
CREATE TABLE `fl_sailing_inbound_volume_forecast` (
`id` bigint unsigned NOT NULL COMMENT '货量预报事实ID(forecastId)',
`tenant_id` bigint unsigned NOT NULL COMMENT '客户隔离键,继承入库事实',
`forecast_key` varchar(64) NOT NULL COMMENT '同一未收货对象的不可变业务键',
`fact_version` int unsigned NOT NULL DEFAULT '1' COMMENT '预报修订版本',
`inbound_id` bigint unsigned NOT NULL COMMENT '入库单ID',
`receiving_warehouse_id` bigint unsigned NOT NULL COMMENT '预计收货仓ID',
`channel_code` varchar(64) DEFAULT NULL COMMENT '预计渠道编码快照',
`channel_name` varchar(128) DEFAULT NULL COMMENT '预计渠道名称快照',
`departure_port_code` varchar(32) DEFAULT NULL COMMENT '预计起运港编码快照',
`destination_port_code` varchar(32) DEFAULT NULL COMMENT '预计目的港编码快照',
`expected_arrival_at` datetime(3) NOT NULL COMMENT '预计到仓时间',
`forecast_volume_cbm` decimal(18,4) NOT NULL COMMENT '未收货预计体积m3,不得使用申报体积代替',
`source_type` varchar(32) NOT NULL COMMENT '预报来源,例如OPERATIONS/UPSTREAM_MEASUREMENT;不得使用客户申报体积冒充预报',
`fact_status` varchar(24) NOT NULL DEFAULT 'VALID' COMMENT '事实状态:VALID/SUPERSEDED/VOIDED/CONSUMED',
`effective_at` datetime(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) COMMENT '本版本生效时间',
`created_by` bigint unsigned 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_sailing_forecast_version` (`tenant_id`,`forecast_key`,`fact_version`),
KEY `idx_sailing_forecast_current` (`tenant_id`,`forecast_key`,`fact_status`,`fact_version`),
KEY `idx_sailing_forecast_match` (`tenant_id`,`receiving_warehouse_id`,`channel_code`,`expected_arrival_at`,`id`),
KEY `idx_sailing_forecast_inbound` (`tenant_id`,`inbound_id`,`expected_arrival_at`,`id`),
CONSTRAINT `chk_sailing_forecast_status` CHECK ((`fact_status` in (_utf8mb4'VALID',_utf8mb4'SUPERSEDED',_utf8mb4'VOIDED',_utf8mb4'CONSUMED'))),
CONSTRAINT `chk_sailing_forecast_volume` CHECK ((`forecast_volume_cbm` > 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_sailing_receipt_batch_fact`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!50503 SET character_set_client = utf8mb4 */;
CREATE TABLE `fl_sailing_receipt_batch_fact` (
`id` bigint unsigned NOT NULL COMMENT '稳定收货批次事实ID(receiptBatchId)',
`tenant_id` bigint unsigned NOT NULL COMMENT '客户隔离键,继承入库事实',
`receipt_batch_key` varchar(64) NOT NULL COMMENT '同一物理收货批次的不可变业务键',
`fact_version` int unsigned NOT NULL DEFAULT '1' COMMENT '同一批次复测/冲正版本',
`inbound_id` bigint unsigned NOT NULL COMMENT '入库单ID',
`measurement_id` bigint unsigned DEFAULT NULL COMMENT '最终审核测量批次ID',
`receiving_warehouse_id` bigint unsigned NOT NULL COMMENT '实际收货仓ID',
`channel_code` varchar(64) DEFAULT NULL COMMENT '收货渠道编码快照',
`channel_name` varchar(128) DEFAULT NULL COMMENT '收货渠道名称快照',
`departure_port_code` varchar(32) DEFAULT NULL COMMENT '起运港编码快照',
`destination_port_code` varchar(32) DEFAULT NULL COMMENT '目的港编码快照',
`received_at` datetime(3) NOT NULL COMMENT '实际收货完成时间,不使用入库单inbounded_at替代',
`actual_volume_cbm` decimal(18,4) NOT NULL COMMENT '最终审核实测体积m3',
`fact_status` varchar(24) NOT NULL DEFAULT 'APPROVED' COMMENT '事实状态:APPROVED/REVERSED/VOIDED/SUPERSEDED',
`reversal_of_fact_id` bigint unsigned DEFAULT NULL COMMENT '冲正所替代的事实ID',
`source_type` varchar(32) NOT NULL DEFAULT 'FIRSTLEG_RECEIPT' COMMENT '事实来源',
`created_by` bigint unsigned 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_sailing_receipt_batch_version` (`tenant_id`,`receipt_batch_key`,`fact_version`),
KEY `idx_sailing_receipt_batch_current` (`tenant_id`,`receipt_batch_key`,`fact_status`,`fact_version`),
KEY `idx_sailing_receipt_match` (`tenant_id`,`receiving_warehouse_id`,`channel_code`,`received_at`,`id`),
KEY `idx_sailing_receipt_inbound` (`tenant_id`,`inbound_id`,`received_at`,`id`),
CONSTRAINT `chk_sailing_receipt_status` CHECK ((`fact_status` in (_utf8mb4'APPROVED',_utf8mb4'REVERSED',_utf8mb4'VOIDED',_utf8mb4'SUPERSEDED'))),
CONSTRAINT `chk_sailing_receipt_volume` CHECK ((`actual_volume_cbm` > 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_sailing_template`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!50503 SET character_set_client = utf8mb4 */;
CREATE TABLE `fl_sailing_template` (
`id` bigint NOT NULL,
`template_no` varchar(64) COLLATE utf8mb4_unicode_ci NOT NULL,
`template_name` varchar(128) COLLATE utf8mb4_unicode_ci NOT NULL,
`channel_id` bigint NOT NULL,
`channel_code_snapshot` varchar(64) COLLATE utf8mb4_unicode_ci NOT NULL,
`channel_name_snapshot` varchar(128) COLLATE utf8mb4_unicode_ci NOT NULL,
`warehouse_id` bigint NOT NULL,
`warehouse_name_snapshot` varchar(128) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
`departure_port_code` varchar(32) COLLATE utf8mb4_unicode_ci NOT NULL,
`destination_port_code` varchar(32) COLLATE utf8mb4_unicode_ci NOT NULL,
`weekday` tinyint NOT NULL,
`weekday_mask` tinyint NOT NULL DEFAULT '1',
`etd_local_time` time NOT NULL,
`cutoff_days` tinyint NOT NULL DEFAULT '3',
`cutoff_local_time` time NOT NULL DEFAULT '18:00:00',
`valid_from` date NOT NULL,
`valid_to` date DEFAULT NULL,
`voyage_rule` varchar(64) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
`vessel_name` varchar(128) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
`status` varchar(16) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT 'ACTIVE',
`remark` varchar(1000) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
`created_by` bigint NOT NULL,
`created_by_name` varchar(128) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
`created_at` datetime(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3),
`updated_by` bigint NOT NULL,
`updated_by_name` varchar(128) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
`updated_at` datetime(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3),
`version` int NOT NULL DEFAULT '0',
PRIMARY KEY (`id`),
UNIQUE KEY `uk_fl_sailing_template_no` (`template_no`),
KEY `idx_fl_sailing_template_filter` (`warehouse_id`,`channel_id`,`status`,`weekday`),
CONSTRAINT `ck_fl_sailing_template_cutoff_days` CHECK ((`cutoff_days` between 0 and 30)),
CONSTRAINT `ck_fl_sailing_template_weekday` CHECK ((`weekday` between 1 and 7))
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
/*!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`),
UNIQUE KEY `uk_truck_active_ocean_booking` (`active_ocean_booking_id`),
KEY `idx_truck_appointment_status` (`status`,`updated_at`),
KEY `idx_truck_appointment_container` (`container_booking_id`),
KEY `idx_truck_appointment_customer` (`customer_id`),
KEY `idx_truck_appointment_ocean` (`ocean_booking_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 */;