2420 lines
146 KiB
SQL
2420 lines
146 KiB
SQL
-- 本次本机结构修复的实际增量,仅用于审阅与原始快照对照。已执行,禁止在当前库重复执行。
|
||
|
||
SET NAMES utf8mb4;
|
||
|
||
USE `baiyue_lastleg`;
|
||
|
||
USE `baiyue_lastleg`;
|
||
|
||
USE `baiyue_lastleg`;
|
||
|
||
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='业务事件人工重试审计,与恢复待发送状态同事务提交';
|
||
|
||
USE `baiyue_lastleg`;
|
||
|
||
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='预约货物核实资料及不可覆盖的版本历史';
|
||
|
||
USE `baiyue_lastleg`;
|
||
|
||
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='真实在途货源的预约筹划联系记录,追加留痕';
|
||
|
||
USE `baiyue_lastleg`;
|
||
|
||
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='一柜一个稳定船期变化核对事项,不改写预约或运输';
|
||
|
||
USE `baiyue_lastleg`;
|
||
|
||
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='船期观察及人工处理追加历史';
|
||
|
||
USE `baiyue_lastleg`;
|
||
|
||
USE `baiyue_lastleg`;
|
||
|
||
USE `baiyue_lastleg`;
|
||
|
||
USE `baiyue_lastleg`;
|
||
|
||
USE `baiyue_lastleg`;
|
||
|
||
USE `baiyue_lastleg`;
|
||
|
||
ALTER TABLE `ll_cargo_discard_carton` ADD COLUMN `source_type` varchar(32) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT 'DROPSHIP' COMMENT '箱子来源:一件代发DROPSHIP、入仓箱INBOUND、转运箱TRANSFER';
|
||
|
||
USE `baiyue_lastleg`;
|
||
|
||
ALTER TABLE `ll_cargo_discard_item` ADD UNIQUE KEY `uk_ll_discard_position_sku` (`application_id`,`inventory_position_id`,`sku_code`);
|
||
|
||
USE `baiyue_lastleg`;
|
||
|
||
USE `baiyue_lastleg`;
|
||
|
||
USE `baiyue_lastleg`;
|
||
|
||
USE `baiyue_lastleg`;
|
||
|
||
USE `baiyue_lastleg`;
|
||
|
||
USE `baiyue_lastleg`;
|
||
|
||
USE `baiyue_lastleg`;
|
||
|
||
USE `baiyue_lastleg`;
|
||
|
||
USE `baiyue_lastleg`;
|
||
|
||
USE `baiyue_lastleg`;
|
||
|
||
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='正常签收事实变化的本地持久待汇总信号';
|
||
|
||
USE `baiyue_lastleg`;
|
||
|
||
USE `baiyue_lastleg`;
|
||
|
||
USE `baiyue_lastleg`;
|
||
|
||
USE `baiyue_lastleg`;
|
||
|
||
USE `baiyue_lastleg`;
|
||
|
||
USE `baiyue_lastleg`;
|
||
|
||
USE `baiyue_lastleg`;
|
||
|
||
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='整车排车公共持久命令账本';
|
||
|
||
USE `baiyue_lastleg`;
|
||
|
||
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='整车排车唯一派送安排事实';
|
||
|
||
USE `baiyue_lastleg`;
|
||
|
||
ALTER TABLE `ll_dispatch_draft` ADD COLUMN `warehouse_id` bigint DEFAULT NULL COMMENT '本草稿唯一起运公共仓库引用';
|
||
|
||
ALTER TABLE `ll_dispatch_draft` ADD COLUMN `record_version` bigint NOT NULL DEFAULT '0' COMMENT '草稿并发版本,显式零版本合法';
|
||
|
||
ALTER TABLE `ll_dispatch_draft` ADD COLUMN `sources_json` longtext COLLATE utf8mb4_unicode_ci COMMENT '服务端核验的真实来源及客户版本快照数组';
|
||
|
||
USE `baiyue_lastleg`;
|
||
|
||
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='智能排车草稿持久命令及原结果';
|
||
|
||
USE `baiyue_lastleg`;
|
||
|
||
ALTER TABLE `ll_dispatch_draft_container` ADD COLUMN `source_keys_json` longtext COLLATE utf8mb4_unicode_ci COMMENT '本装车容器已取得本草稿占用的来源键数组';
|
||
|
||
ALTER TABLE `ll_dispatch_draft_container` ADD UNIQUE KEY `uk_ll_dispatch_draft_container_sequence` (`draft_id`,`sequence_no`);
|
||
|
||
USE `baiyue_lastleg`;
|
||
|
||
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='整车排车版本与审核轮次的追加历史';
|
||
|
||
USE `baiyue_lastleg`;
|
||
|
||
ALTER TABLE `ll_dispatch_item` ADD COLUMN `customer_name` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '本条真实客户名称快照';
|
||
|
||
ALTER TABLE `ll_dispatch_item` ADD COLUMN `source_key` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '本条货物稳定权威来源键';
|
||
|
||
ALTER TABLE `ll_dispatch_item` ADD COLUMN `source_version` char(64) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '选货时核对的真实来源版本摘要';
|
||
|
||
ALTER TABLE `ll_dispatch_item` ADD COLUMN `source_snapshot_json` json DEFAULT NULL COMMENT '本条货物不可变来源及关联事实快照';
|
||
|
||
USE `baiyue_lastleg`;
|
||
|
||
ALTER TABLE `ll_dispatch_order` ADD COLUMN `trip_id` bigint DEFAULT NULL COMMENT '本趟唯一车辆资源记录ID';
|
||
|
||
ALTER TABLE `ll_dispatch_order` ADD COLUMN `overseas_warehouse_code` varchar(128) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '起运海外仓编码快照';
|
||
|
||
ALTER TABLE `ll_dispatch_order` ADD COLUMN `stage` varchar(32) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT 'BEFORE_LOADING' COMMENT '作业阶段:BEFORE_LOADING装车前、LOADING装车中、AFTER_LOADING装车后、DELIVERING派送中、DELIVERED派送完成';
|
||
|
||
ALTER TABLE `ll_dispatch_order` ADD COLUMN `record_version` bigint NOT NULL DEFAULT '0' COMMENT '整车公共并发版本,首版为零';
|
||
|
||
ALTER TABLE `ll_dispatch_order` ADD COLUMN `cargo_revision` bigint NOT NULL DEFAULT '0' COMMENT '本趟货物修订版本';
|
||
|
||
ALTER TABLE `ll_dispatch_order` ADD COLUMN `cargo_hash` char(64) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '当前整车真实货物及来源摘要';
|
||
|
||
ALTER TABLE `ll_dispatch_order` ADD COLUMN `review_state` varchar(32) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT 'DRAFT' COMMENT '审核子流程当前状态';
|
||
|
||
ALTER TABLE `ll_dispatch_order` ADD COLUMN `review_round` bigint NOT NULL DEFAULT '0' COMMENT '当前审核轮次';
|
||
|
||
ALTER TABLE `ll_dispatch_order` ADD COLUMN `review_basis_hash` char(64) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '本审核轮次核对的货物和资源依据摘要';
|
||
|
||
ALTER TABLE `ll_dispatch_order` ADD COLUMN `dispatch_review_json` json DEFAULT NULL COMMENT '当前调度审核事实快照';
|
||
|
||
ALTER TABLE `ll_dispatch_order` ADD COLUMN `loading_review_json` json DEFAULT NULL COMMENT '当前理货审核事实快照';
|
||
|
||
ALTER TABLE `ll_dispatch_order` ADD COLUMN `resources_json` json DEFAULT NULL COMMENT '本趟主档或临时车辆司机的真实资源快照';
|
||
|
||
ALTER TABLE `ll_dispatch_order` ADD COLUMN `planned_departure_at` datetime(3) DEFAULT NULL COMMENT '计划发车时间,草稿未知时为空';
|
||
|
||
ALTER TABLE `ll_dispatch_order` ADD COLUMN `loading_completed_at` datetime(3) DEFAULT NULL COMMENT '实际确认装车完成时间';
|
||
|
||
ALTER TABLE `ll_dispatch_order` ADD COLUMN `loading_completion_hash` char(64) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '实际装车完成事实摘要';
|
||
|
||
ALTER TABLE `ll_dispatch_order` ADD COLUMN `loading_confirmation_json` json DEFAULT NULL COMMENT '装车确认时逐实托真实实载完整快照';
|
||
|
||
ALTER TABLE `ll_dispatch_order` ADD COLUMN `arrangement_key` varchar(128) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '本车唯一派送安排事实标识';
|
||
|
||
ALTER TABLE `ll_dispatch_order` ADD COLUMN `arrangement_business_hash` char(64) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '本车派送安排业务内容摘要';
|
||
|
||
ALTER TABLE `ll_dispatch_order` ADD COLUMN `departed_at` datetime(3) DEFAULT NULL COMMENT '本趟实际发车时间';
|
||
|
||
ALTER TABLE `ll_dispatch_order` ADD COLUMN `delivery_completed_at` datetime(3) DEFAULT NULL COMMENT '全部派送正常签收后的整车完成时间';
|
||
|
||
ALTER TABLE `ll_dispatch_order` ADD COLUMN `remark` varchar(2000) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '排车业务备注';
|
||
|
||
ALTER TABLE `ll_dispatch_order` ADD UNIQUE KEY `uk_dispatch_trip` (`trip_id`);
|
||
|
||
USE `baiyue_lastleg`;
|
||
|
||
ALTER TABLE `ll_dispatch_pallet_lock` ADD COLUMN `active_warehouse_pallet_id` bigint DEFAULT NULL COMMENT '活动占用的真实仓库托盘,释放后为空,跨客户及来源别名唯一';
|
||
|
||
ALTER TABLE `ll_dispatch_pallet_lock` ADD UNIQUE KEY `uk_ll_dispatch_active_warehouse_pallet` (`active_warehouse_pallet_id`);
|
||
|
||
USE `baiyue_lastleg`;
|
||
|
||
USE `baiyue_lastleg`;
|
||
|
||
USE `baiyue_lastleg`;
|
||
|
||
ALTER TABLE `ll_dispatch_pda_pick_order` ADD KEY `idx_dispatch_pick_return_receipt` (`customer_id`,`return_receipt_id`);
|
||
|
||
USE `baiyue_lastleg`;
|
||
|
||
USE `baiyue_lastleg`;
|
||
|
||
ALTER TABLE `ll_dropship_carton` ADD COLUMN `product_quantity` bigint DEFAULT NULL COMMENT '该箱实收商品件数';
|
||
|
||
USE `baiyue_lastleg`;
|
||
|
||
USE `baiyue_lastleg`;
|
||
|
||
USE `baiyue_lastleg`;
|
||
|
||
ALTER TABLE `ll_dropship_order_profile` ADD COLUMN `manifest_version` int DEFAULT NULL COMMENT '整托清单版本';
|
||
|
||
ALTER TABLE `ll_dropship_order_profile` ADD COLUMN `manifest_package_count` int DEFAULT NULL COMMENT '整托总箱数';
|
||
|
||
ALTER TABLE `ll_dropship_order_profile` ADD COLUMN `manifest_fragment_count` int DEFAULT NULL COMMENT '整托客户分片总数';
|
||
|
||
ALTER TABLE `ll_dropship_order_profile` ADD COLUMN `manifest_hash` char(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '整托完整清单摘要';
|
||
|
||
ALTER TABLE `ll_dropship_order_profile` ADD KEY `idx_ll_dropship_profile_manifest` (`source_pallet_no`,`manifest_hash`);
|
||
|
||
USE `baiyue_lastleg`;
|
||
|
||
ALTER TABLE `ll_dropship_sku_inventory` ADD UNIQUE KEY `uk_ll_dropship_sku_inventory` (`profile_id`,`sku_code`);
|
||
|
||
USE `baiyue_lastleg`;
|
||
|
||
USE `baiyue_lastleg`;
|
||
|
||
USE `baiyue_lastleg`;
|
||
|
||
USE `baiyue_lastleg`;
|
||
|
||
ALTER TABLE `ll_exception_order` ADD COLUMN `return_context_json` json DEFAULT NULL COMMENT '退回异常创建前的派送及尾程状态快照';
|
||
|
||
ALTER TABLE `ll_exception_order` ADD KEY `idx_ll_exception_delivery_return` (`customer_id`,`delivery_order_id`,`exception_type`);
|
||
|
||
USE `baiyue_lastleg`;
|
||
|
||
USE `baiyue_lastleg`;
|
||
|
||
ALTER TABLE `ll_exception_return_item` ADD COLUMN `return_carton_id` bigint DEFAULT NULL COMMENT '原生退货箱标识;与普通库存位置互斥';
|
||
|
||
ALTER TABLE `ll_exception_return_item` ADD COLUMN `return_carton_mark` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '原生退货箱业务箱码快照';
|
||
|
||
ALTER TABLE `ll_exception_return_item` ADD COLUMN `received_packages` bigint NOT NULL DEFAULT '0' COMMENT '已实际退回入仓的累计箱数';
|
||
|
||
ALTER TABLE `ll_exception_return_item` ADD UNIQUE KEY `uk_ll_exception_return_carton` (`customer_id`,`exception_order_id`,`outbound_pallet_item_id`,`return_carton_id`);
|
||
|
||
USE `baiyue_lastleg`;
|
||
|
||
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='预约命令与变更历史';
|
||
|
||
USE `baiyue_lastleg`;
|
||
|
||
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='独立于送货批次的收货预约';
|
||
|
||
USE `baiyue_lastleg`;
|
||
|
||
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='保留原安排且阻止误发车的客户变化';
|
||
|
||
USE `baiyue_lastleg`;
|
||
|
||
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='收货预约当前覆盖关联及退出历史';
|
||
|
||
USE `baiyue_lastleg`;
|
||
|
||
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='按批次及客户保存的未确认收货计划';
|
||
|
||
USE `baiyue_lastleg`;
|
||
|
||
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='收货预约覆盖与确认不可变历史';
|
||
|
||
USE `baiyue_lastleg`;
|
||
|
||
USE `baiyue_lastleg`;
|
||
|
||
USE `baiyue_lastleg`;
|
||
|
||
USE `baiyue_lastleg`;
|
||
|
||
USE `baiyue_lastleg`;
|
||
|
||
USE `baiyue_lastleg`;
|
||
|
||
USE `baiyue_lastleg`;
|
||
|
||
USE `baiyue_lastleg`;
|
||
|
||
USE `baiyue_lastleg`;
|
||
|
||
USE `baiyue_lastleg`;
|
||
|
||
USE `baiyue_lastleg`;
|
||
|
||
USE `baiyue_lastleg`;
|
||
|
||
USE `baiyue_lastleg`;
|
||
|
||
USE `baiyue_lastleg`;
|
||
|
||
USE `baiyue_lastleg`;
|
||
|
||
USE `baiyue_lastleg`;
|
||
|
||
USE `baiyue_lastleg`;
|
||
|
||
USE `baiyue_lastleg`;
|
||
|
||
USE `baiyue_lastleg`;
|
||
|
||
USE `baiyue_lastleg`;
|
||
|
||
USE `baiyue_lastleg`;
|
||
|
||
ALTER TABLE `ll_fleet_trip_dispatch` ADD UNIQUE KEY `uk_fleet_trip_dispatch_trip` (`trip_id`);
|
||
|
||
USE `baiyue_lastleg`;
|
||
|
||
USE `baiyue_lastleg`;
|
||
|
||
USE `baiyue_lastleg`;
|
||
|
||
USE `baiyue_lastleg`;
|
||
|
||
USE `baiyue_lastleg`;
|
||
|
||
USE `baiyue_lastleg`;
|
||
|
||
ALTER TABLE `ll_inbound_fba_appointment` ADD COLUMN `confirmation_no` varchar(128) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '收货方正式外部确认号';
|
||
|
||
ALTER TABLE `ll_inbound_fba_appointment` ADD COLUMN `planned_date` date DEFAULT NULL COMMENT '计划当地日期,可只有日期而无时段';
|
||
|
||
ALTER TABLE `ll_inbound_fba_appointment` ADD COLUMN `planned_at` datetime(3) DEFAULT NULL COMMENT '计划开始当地时间,待定可空';
|
||
|
||
ALTER TABLE `ll_inbound_fba_appointment` ADD COLUMN `planned_end_at` datetime(3) DEFAULT NULL COMMENT '计划结束当地时间';
|
||
|
||
ALTER TABLE `ll_inbound_fba_appointment` ADD COLUMN `appointment_start_utc` datetime(3) DEFAULT NULL COMMENT '确认开始UTC时间点';
|
||
|
||
ALTER TABLE `ll_inbound_fba_appointment` ADD COLUMN `appointment_end_utc` datetime(3) DEFAULT NULL COMMENT '确认结束UTC时间点';
|
||
|
||
ALTER TABLE `ll_inbound_fba_appointment` ADD COLUMN `timezone` varchar(64) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '目的仓权威IANA时区,未维护不得确认';
|
||
|
||
ALTER TABLE `ll_inbound_fba_appointment` ADD COLUMN `origin_warehouse_id` varchar(64) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '实际起运仓';
|
||
|
||
ALTER TABLE `ll_inbound_fba_appointment` ADD COLUMN `replacement_keys_json` longtext COLLATE utf8mb4_unicode_ci COMMENT '替代批次不可变键列表,只用于内部业务关联';
|
||
|
||
ALTER TABLE `ll_inbound_fba_appointment` ADD COLUMN `repartition_reason` varchar(1000) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '分批或合并原因,原安排及来源明细保留';
|
||
|
||
ALTER TABLE `ll_inbound_fba_appointment` ADD KEY `idx_ll_fba_appointment_planned` (`planned_at`,`appointment_status`);
|
||
|
||
USE `baiyue_lastleg`;
|
||
|
||
ALTER TABLE `ll_inbound_fba_appointment_item` ADD COLUMN `cargo_verification_version` int DEFAULT NULL COMMENT '采用的预约货物核实版本,未核实时为空';
|
||
|
||
ALTER TABLE `ll_inbound_fba_appointment_item` ADD COLUMN `shipment_references_json` longtext COLLATE utf8mb4_unicode_ci COMMENT '本次采用的货件或追踪号核实快照';
|
||
|
||
ALTER TABLE `ll_inbound_fba_appointment_item` ADD KEY `idx_ll_fba_active_source` (`customer_id`,`source_key`,`active`);
|
||
|
||
ALTER TABLE `ll_inbound_fba_appointment_item` ADD KEY `idx_ll_fba_active_order` (`customer_id`,`order_id`,`active`);
|
||
|
||
USE `baiyue_lastleg`;
|
||
|
||
USE `baiyue_lastleg`;
|
||
|
||
USE `baiyue_lastleg`;
|
||
|
||
USE `baiyue_lastleg`;
|
||
|
||
USE `baiyue_lastleg`;
|
||
|
||
USE `baiyue_lastleg`;
|
||
|
||
USE `baiyue_lastleg`;
|
||
|
||
USE `baiyue_lastleg`;
|
||
|
||
USE `baiyue_lastleg`;
|
||
|
||
ALTER TABLE `ll_inbound_plan_pallet` ADD KEY `idx_ll_inbound_pallet_no` (`pallet_no`);
|
||
|
||
USE `baiyue_lastleg`;
|
||
|
||
USE `baiyue_lastleg`;
|
||
|
||
USE `baiyue_lastleg`;
|
||
|
||
USE `baiyue_lastleg`;
|
||
|
||
USE `baiyue_lastleg`;
|
||
|
||
USE `baiyue_lastleg`;
|
||
|
||
USE `baiyue_lastleg`;
|
||
|
||
USE `baiyue_lastleg`;
|
||
|
||
USE `baiyue_lastleg`;
|
||
|
||
USE `baiyue_lastleg`;
|
||
|
||
USE `baiyue_lastleg`;
|
||
|
||
ALTER TABLE `ll_local_looseboard_order` ADD COLUMN `product_name` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '商品名称';
|
||
|
||
ALTER TABLE `ll_local_looseboard_order` ADD COLUMN `estimated_pallet_count` int DEFAULT NULL COMMENT '客户申报预计托数,不代表实际收货';
|
||
|
||
ALTER TABLE `ll_local_looseboard_order` ADD COLUMN `origin_contact_name` varchar(128) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '起运地联系人';
|
||
|
||
ALTER TABLE `ll_local_looseboard_order` ADD COLUMN `origin_contact_phone` varchar(128) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '起运地联系电话';
|
||
|
||
ALTER TABLE `ll_local_looseboard_order` ADD COLUMN `destination_contact_name` varchar(128) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '目的地联系人';
|
||
|
||
ALTER TABLE `ll_local_looseboard_order` ADD COLUMN `destination_contact_phone` varchar(128) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '目的地联系电话';
|
||
|
||
ALTER TABLE `ll_local_looseboard_order` ADD COLUMN `pickup_at` datetime(3) DEFAULT NULL COMMENT '取货时间(当地时间,不转换时区)';
|
||
|
||
ALTER TABLE `ll_local_looseboard_order` ADD COLUMN `delivery_at` datetime(3) DEFAULT NULL COMMENT '送货时间(当地时间,不转换时区)';
|
||
|
||
USE `baiyue_lastleg`;
|
||
|
||
USE `baiyue_lastleg`;
|
||
|
||
USE `baiyue_lastleg`;
|
||
|
||
USE `baiyue_lastleg`;
|
||
|
||
USE `baiyue_lastleg`;
|
||
|
||
USE `baiyue_lastleg`;
|
||
|
||
USE `baiyue_lastleg`;
|
||
|
||
USE `baiyue_lastleg`;
|
||
|
||
USE `baiyue_lastleg`;
|
||
|
||
USE `baiyue_lastleg`;
|
||
|
||
USE `baiyue_lastleg`;
|
||
|
||
USE `baiyue_lastleg`;
|
||
|
||
USE `baiyue_lastleg`;
|
||
|
||
USE `baiyue_lastleg`;
|
||
|
||
USE `baiyue_lastleg`;
|
||
|
||
ALTER TABLE `ll_outbound_pallet_item` ADD COLUMN `dispatch_item_id` bigint DEFAULT NULL COMMENT '本次整车排车作业明细ID';
|
||
|
||
ALTER TABLE `ll_outbound_pallet_item` ADD COLUMN `source_attribution_id` bigint DEFAULT NULL COMMENT '不可变PDA真实拣货归属ID';
|
||
|
||
ALTER TABLE `ll_outbound_pallet_item` ADD COLUMN `source_order_id` bigint DEFAULT NULL COMMENT '本行真实来源尾程订单ID';
|
||
|
||
ALTER TABLE `ll_outbound_pallet_item` ADD COLUMN `source_inventory_position_id` bigint DEFAULT NULL COMMENT '本行实际拣货库存仓位ID';
|
||
|
||
ALTER TABLE `ll_outbound_pallet_item` ADD COLUMN `source_return_receipt_id` bigint DEFAULT NULL COMMENT '本行实际退回再派实收记录ID';
|
||
|
||
ALTER TABLE `ll_outbound_pallet_item` ADD COLUMN `source_return_carton_id` bigint DEFAULT NULL COMMENT '本行实际退货换标来源箱ID';
|
||
|
||
ALTER TABLE `ll_outbound_pallet_item` ADD UNIQUE KEY `uk_outbound_source_attribution` (`customer_id`,`source_attribution_id`);
|
||
|
||
USE `baiyue_lastleg`;
|
||
|
||
USE `baiyue_lastleg`;
|
||
|
||
USE `baiyue_lastleg`;
|
||
|
||
ALTER TABLE `ll_overseas_procurement_fee` ADD COLUMN `purpose` varchar(32) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '费用业务用途;由履约节点确定';
|
||
|
||
ALTER TABLE `ll_overseas_procurement_fee` ADD COLUMN `confirmation_origin` varchar(16) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT 'BUSINESS' COMMENT '核定入口:BUSINESS业务节点、FINANCIAL财务操作';
|
||
|
||
ALTER TABLE `ll_overseas_procurement_fee` ADD COLUMN `fee_version` int DEFAULT NULL COMMENT '同用途费用确认版本';
|
||
|
||
ALTER TABLE `ll_overseas_procurement_fee` ADD COLUMN `active` tinyint(1) NOT NULL DEFAULT '1' COMMENT '是否当前有效版本';
|
||
|
||
ALTER TABLE `ll_overseas_procurement_fee` ADD COLUMN `determination` varchar(24) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT 'POSITIVE正额、ZERO零元、NOT_APPLICABLE不适用';
|
||
|
||
ALTER TABLE `ll_overseas_procurement_fee` ADD COLUMN `original_currency` char(3) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '核定原币CNY或USD';
|
||
|
||
ALTER TABLE `ll_overseas_procurement_fee` ADD COLUMN `original_amount` decimal(20,2) DEFAULT NULL COMMENT '核定原币金额';
|
||
|
||
ALTER TABLE `ll_overseas_procurement_fee` ADD COLUMN `exchange_rate` decimal(20,6) DEFAULT NULL COMMENT '已确认汇率快照';
|
||
|
||
ALTER TABLE `ll_overseas_procurement_fee` ADD COLUMN `exchange_rate_month` char(7) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '已确认汇率所属月份';
|
||
|
||
ALTER TABLE `ll_overseas_procurement_fee` ADD COLUMN `business_date` date DEFAULT NULL COMMENT '实际费用业务日期';
|
||
|
||
ALTER TABLE `ll_overseas_procurement_fee` ADD COLUMN `wallet_business_id` bigint DEFAULT NULL COMMENT '资金冻结对应采购费用记录';
|
||
|
||
ALTER TABLE `ll_overseas_procurement_fee` ADD COLUMN `wallet_business_no` varchar(128) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '资金冻结业务号;实际国际运费引用原预估';
|
||
|
||
ALTER TABLE `ll_overseas_procurement_fee` ADD COLUMN `wallet_hold_id` varchar(64) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT 'Finance冻结引用';
|
||
|
||
ALTER TABLE `ll_overseas_procurement_fee` ADD COLUMN `wallet_ledger_id` varchar(64) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT 'Finance实际处理流水引用';
|
||
|
||
ALTER TABLE `ll_overseas_procurement_fee` ADD COLUMN `settled_command_event_id` varchar(64) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '成功实扣或退款的资金命令事件';
|
||
|
||
ALTER TABLE `ll_overseas_procurement_fee` ADD COLUMN `source_fee_id` bigint DEFAULT NULL COMMENT '已实扣费用来源ID';
|
||
|
||
ALTER TABLE `ll_overseas_procurement_fee` ADD COLUMN `parent_fee_id` bigint DEFAULT NULL COMMENT '原费用或预估引用';
|
||
|
||
ALTER TABLE `ll_overseas_procurement_fee` ADD COLUMN `request_hash` char(64) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '确认请求摘要';
|
||
|
||
ALTER TABLE `ll_overseas_procurement_fee` ADD UNIQUE KEY `uk_ll_procurement_fee_version` (`order_id`,`purpose`,`fee_item_code`,`fee_version`);
|
||
|
||
USE `baiyue_lastleg`;
|
||
|
||
USE `baiyue_lastleg`;
|
||
|
||
USE `baiyue_lastleg`;
|
||
|
||
USE `baiyue_lastleg`;
|
||
|
||
ALTER TABLE `ll_overseas_procurement_status_history` ADD COLUMN `operation_type` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '操作类型:CREATE、REVIEW或UPDATE';
|
||
|
||
ALTER TABLE `ll_overseas_procurement_status_history` ADD COLUMN `change_detail` json DEFAULT NULL COMMENT '字段变更前后值JSON';
|
||
|
||
USE `baiyue_lastleg`;
|
||
|
||
USE `baiyue_lastleg`;
|
||
|
||
USE `baiyue_lastleg`;
|
||
|
||
USE `baiyue_lastleg`;
|
||
|
||
USE `baiyue_lastleg`;
|
||
|
||
USE `baiyue_lastleg`;
|
||
|
||
USE `baiyue_lastleg`;
|
||
|
||
USE `baiyue_lastleg`;
|
||
|
||
USE `baiyue_lastleg`;
|
||
|
||
USE `baiyue_lastleg`;
|
||
|
||
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='采购货款预算授权核验历史';
|
||
|
||
USE `baiyue_lastleg`;
|
||
|
||
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='采购版本化逐箱实测与件数';
|
||
|
||
USE `baiyue_lastleg`;
|
||
|
||
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='采购箱内货物的实收来源与数量';
|
||
|
||
USE `baiyue_lastleg`;
|
||
|
||
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='采购实物资金收口后的异常关闭事实';
|
||
|
||
USE `baiyue_lastleg`;
|
||
|
||
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='异常关闭逐来源剩余货物最终去向,不产生新发运';
|
||
|
||
USE `baiyue_lastleg`;
|
||
|
||
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='采购节点幂等与不可变审计';
|
||
|
||
USE `baiyue_lastleg`;
|
||
|
||
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='采购不可覆盖事实的更正说明及阻断异常';
|
||
|
||
USE `baiyue_lastleg`;
|
||
|
||
USE `baiyue_lastleg`;
|
||
|
||
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='采购单内差异处置,不自动退款';
|
||
|
||
USE `baiyue_lastleg`;
|
||
|
||
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='面单清单与预估冻结的显式核对关联';
|
||
|
||
USE `baiyue_lastleg`;
|
||
|
||
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='采购费用链更正目标与原汇率快照';
|
||
|
||
USE `baiyue_lastleg`;
|
||
|
||
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='采购费用目标更正与逐笔资金事实关联';
|
||
|
||
USE `baiyue_lastleg`;
|
||
|
||
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='采购单一批次履约事实';
|
||
|
||
USE `baiyue_lastleg`;
|
||
|
||
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='采购逐箱文件页关联及贴单事实';
|
||
|
||
USE `baiyue_lastleg`;
|
||
|
||
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='采购两段面单不可变版本和地址快照';
|
||
|
||
USE `baiyue_lastleg`;
|
||
|
||
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='采购装箱清单不可变版本';
|
||
|
||
USE `baiyue_lastleg`;
|
||
|
||
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='采购分次实收与受控更正事实';
|
||
|
||
USE `baiyue_lastleg`;
|
||
|
||
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='采购国内原箱一对一换包装不可变历史';
|
||
|
||
USE `baiyue_lastleg`;
|
||
|
||
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='采购两段各一次整批真实交寄';
|
||
|
||
USE `baiyue_lastleg`;
|
||
|
||
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='采购整批交寄逐箱事实';
|
||
|
||
USE `baiyue_lastleg`;
|
||
|
||
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='采购费用资金命令尝试与不可变结果';
|
||
|
||
USE `baiyue_lastleg`;
|
||
|
||
USE `baiyue_lastleg`;
|
||
|
||
ALTER TABLE `ll_receiving_container_session` ADD COLUMN `source_container_booking_id` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '稳定来源柜预订ID';
|
||
|
||
ALTER TABLE `ll_receiving_container_session` ADD COLUMN `container_fact_hash` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '领取时整柜订单与计划事实摘要';
|
||
|
||
ALTER TABLE `ll_receiving_container_session` ADD COLUMN `overseas_warehouse_code` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '海外接柜仓业务编码快照';
|
||
|
||
USE `baiyue_lastleg`;
|
||
|
||
USE `baiyue_lastleg`;
|
||
|
||
USE `baiyue_lastleg`;
|
||
|
||
USE `baiyue_lastleg`;
|
||
|
||
USE `baiyue_lastleg`;
|
||
|
||
USE `baiyue_lastleg`;
|
||
|
||
USE `baiyue_lastleg`;
|
||
|
||
USE `baiyue_lastleg`;
|
||
|
||
USE `baiyue_lastleg`;
|
||
|
||
USE `baiyue_lastleg`;
|
||
|
||
USE `baiyue_lastleg`;
|
||
|
||
USE `baiyue_lastleg`;
|
||
|
||
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实际回仓的不可变凭据';
|
||
|
||
USE `baiyue_lastleg`;
|
||
|
||
USE `baiyue_lastleg`;
|
||
|
||
USE `baiyue_lastleg`;
|
||
|
||
USE `baiyue_lastleg`;
|
||
|
||
USE `baiyue_lastleg`;
|
||
|
||
ALTER TABLE `ll_return_inventory_outbound_movement` ADD COLUMN `return_sku_quantity` bigint DEFAULT NULL COMMENT '退货单SKU本来源计划出库件数快照,NULL为历史整箱出库';
|
||
|
||
USE `baiyue_lastleg`;
|
||
|
||
USE `baiyue_lastleg`;
|
||
|
||
USE `baiyue_lastleg`;
|
||
|
||
ALTER TABLE `ll_return_packing_plan` ADD KEY `idx_ll_return_packing_plan_warehouse` (`overseas_warehouse_id`,`status`,`pushed_at`);
|
||
|
||
USE `baiyue_lastleg`;
|
||
|
||
USE `baiyue_lastleg`;
|
||
|
||
USE `baiyue_lastleg`;
|
||
|
||
USE `baiyue_lastleg`;
|
||
|
||
USE `baiyue_lastleg`;
|
||
|
||
USE `baiyue_lastleg`;
|
||
|
||
USE `baiyue_lastleg`;
|
||
|
||
USE `baiyue_lastleg`;
|
||
|
||
USE `baiyue_lastleg`;
|
||
|
||
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='历史日末分货主商品品质实物库存';
|
||
|
||
USE `baiyue_lastleg`;
|
||
|
||
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='历史日库存不可变版本及原子发布日头';
|
||
|
||
USE `baiyue_lastleg`;
|
||
|
||
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='自营历史库存流水最新事实,旧版本保留于暂存证据';
|
||
|
||
USE `baiyue_lastleg`;
|
||
|
||
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='产品库存全量批次明细';
|
||
|
||
USE `baiyue_lastleg`;
|
||
|
||
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='账号共享出库目录与详情发现协调作用域';
|
||
|
||
USE `baiyue_lastleg`;
|
||
|
||
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='整单替换的实际出库明细';
|
||
|
||
USE `baiyue_lastleg`;
|
||
|
||
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='最后确认的单据事实';
|
||
|
||
USE `baiyue_lastleg`;
|
||
|
||
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='自营领星货主资料版本';
|
||
|
||
USE `baiyue_lastleg`;
|
||
|
||
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='自营领星商品资料版本';
|
||
|
||
USE `baiyue_lastleg`;
|
||
|
||
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='完整销量版本的稀疏日事实';
|
||
|
||
USE `baiyue_lastleg`;
|
||
|
||
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 维度与观察依据';
|
||
|
||
USE `baiyue_lastleg`;
|
||
|
||
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='执行尝试、覆盖证明和版本头';
|
||
|
||
USE `baiyue_lastleg`;
|
||
|
||
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='分仓任务族租约及发布指针';
|
||
|
||
USE `baiyue_lastleg`;
|
||
|
||
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='待验证事实与修订证据';
|
||
|
||
USE `baiyue_lastleg`;
|
||
|
||
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='一次计划或人工请求';
|
||
|
||
USE `baiyue_lastleg`;
|
||
|
||
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日事实批次原子构建';
|
||
|
||
USE `baiyue_lastleg`;
|
||
|
||
ALTER TABLE `ll_us_truck_order` ADD COLUMN `vehicle_type` varchar(32) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '车辆类型:PALLET_15为15拖,PALLET_30为30拖;拼车未提供时为空';
|
||
|
||
ALTER TABLE `ll_us_truck_order` ADD COLUMN `origin_contact_name` varchar(128) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '起运地联系人';
|
||
|
||
ALTER TABLE `ll_us_truck_order` ADD COLUMN `origin_contact_phone` varchar(128) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '起运地联系电话';
|
||
|
||
ALTER TABLE `ll_us_truck_order` ADD COLUMN `destination_contact_name` varchar(128) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '目的地联系人';
|
||
|
||
ALTER TABLE `ll_us_truck_order` ADD COLUMN `destination_contact_phone` varchar(128) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '目的地联系电话';
|
||
|
||
ALTER TABLE `ll_us_truck_order` ADD COLUMN `pickup_at` datetime DEFAULT NULL COMMENT '取货时间,按填写的日期时分保存,不转换时区';
|
||
|
||
ALTER TABLE `ll_us_truck_order` ADD COLUMN `delivery_at` datetime DEFAULT NULL COMMENT '送货时间,按填写的日期时分保存;拼车来源未提供时为空';
|
||
|
||
USE `baiyue_lastleg`;
|
||
|
||
USE `baiyue_lastleg`;
|
||
|
||
USE `baiyue_lastleg`;
|
||
|
||
USE `baiyue_lastleg`;
|
||
|
||
USE `baiyue_lastleg`;
|
||
|
||
USE `baiyue_lastleg`;
|
||
|
||
USE `baiyue_lastleg`;
|
||
|
||
ALTER TABLE `ll_warehouse_transfer_inventory_allocation` ADD KEY `idx_ll_wh_transfer_allocation_position` (`transfer_order_id`,`inventory_position_id`);
|
||
|
||
USE `baiyue_lastleg`;
|
||
|
||
USE `baiyue_lastleg`;
|
||
|
||
USE `baiyue_lastleg`;
|
||
|
||
USE `baiyue_lastleg`;
|
||
|
||
USE `baiyue_lastleg`;
|
||
|
||
USE `baiyue_lastleg`;
|
||
|
||
USE `baiyue_lastleg`;
|
||
|
||
USE `baiyue_lastleg`;
|
||
|
||
USE `baiyue_lastleg`;
|
||
|
||
USE `baiyue_firstleg`;
|
||
|
||
USE `baiyue_firstleg`;
|
||
|
||
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='业务事件人工重试审计,与恢复待发送状态同事务提交';
|
||
|
||
USE `baiyue_firstleg`;
|
||
|
||
USE `baiyue_firstleg`;
|
||
|
||
USE `baiyue_firstleg`;
|
||
|
||
USE `baiyue_firstleg`;
|
||
|
||
ALTER TABLE `fl_carrier_schedule_node_fact` ADD KEY `idx_container_shipping_node_timeline` (`container_booking_id`,`observed_at`,`id`);
|
||
|
||
USE `baiyue_firstleg`;
|
||
|
||
USE `baiyue_firstleg`;
|
||
|
||
USE `baiyue_firstleg`;
|
||
|
||
USE `baiyue_firstleg`;
|
||
|
||
USE `baiyue_firstleg`;
|
||
|
||
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='客户计费重独立确认历史';
|
||
|
||
USE `baiyue_firstleg`;
|
||
|
||
USE `baiyue_firstleg`;
|
||
|
||
USE `baiyue_firstleg`;
|
||
|
||
USE `baiyue_firstleg`;
|
||
|
||
USE `baiyue_firstleg`;
|
||
|
||
USE `baiyue_firstleg`;
|
||
|
||
ALTER TABLE `fl_container_booking` ADD UNIQUE KEY `uk_container_booking_ocean_container` (`ocean_booking_id`,`container_no`);
|
||
|
||
ALTER TABLE `fl_container_booking` ADD KEY `idx_container_booking_container_no` (`container_no`,`updated_at`,`id`);
|
||
|
||
ALTER TABLE `fl_container_booking` ADD KEY `idx_container_booking_merge` (`record_status`,`merged_into_container_booking_id`);
|
||
|
||
ALTER TABLE `fl_container_booking` ADD KEY `idx_container_booking_transit_summary` (`actual_sailing_at`,`actual_warehouse_arrival_at`,`ocean_booking_id`,`container_type`);
|
||
|
||
USE `baiyue_firstleg`;
|
||
|
||
USE `baiyue_firstleg`;
|
||
|
||
USE `baiyue_firstleg`;
|
||
|
||
USE `baiyue_firstleg`;
|
||
|
||
ALTER TABLE `fl_container_fee_detail` ADD KEY `idx_container_fee_review` (`tenant_id`,`review_status`,`source_status`);
|
||
|
||
USE `baiyue_firstleg`;
|
||
|
||
USE `baiyue_firstleg`;
|
||
|
||
ALTER TABLE `fl_container_transport_history` ADD UNIQUE KEY `uk_container_transport_history_operation` (`container_booking_id`,`operator_id`,`operation_id`);
|
||
|
||
USE `baiyue_firstleg`;
|
||
|
||
ALTER TABLE `fl_customer_charge_rule` ADD KEY `idx_charge_rule_initialization` (`tenant_id`,`initialization_key`);
|
||
|
||
USE `baiyue_firstleg`;
|
||
|
||
USE `baiyue_firstleg`;
|
||
|
||
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='冻结退税报关资料首次发送报关行批次事实';
|
||
|
||
USE `baiyue_firstleg`;
|
||
|
||
USE `baiyue_firstleg`;
|
||
|
||
USE `baiyue_firstleg`;
|
||
|
||
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='正式申报后的海关结果不可变事实';
|
||
|
||
USE `baiyue_firstleg`;
|
||
|
||
USE `baiyue_firstleg`;
|
||
|
||
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='客户报关行回执确认与打回不可变历史';
|
||
|
||
USE `baiyue_firstleg`;
|
||
|
||
ALTER TABLE `fl_customs_completion_document` ADD COLUMN `customer_confirm_status` varchar(20) NOT NULL DEFAULT 'PENDING' COMMENT '客户回执确认状态:PENDING/CONFIRMED/REJECTED';
|
||
|
||
ALTER TABLE `fl_customs_completion_document` ADD COLUMN `customer_confirmed_by` bigint unsigned DEFAULT NULL COMMENT '客户确认人ID';
|
||
|
||
ALTER TABLE `fl_customs_completion_document` ADD COLUMN `customer_confirmed_by_name` varchar(64) DEFAULT NULL COMMENT '客户确认人名称快照';
|
||
|
||
ALTER TABLE `fl_customs_completion_document` ADD COLUMN `customer_confirmed_at` datetime(3) DEFAULT NULL COMMENT '客户确认时间';
|
||
|
||
ALTER TABLE `fl_customs_completion_document` ADD COLUMN `customer_reject_reason` varchar(500) DEFAULT NULL COMMENT '客户打回原因';
|
||
|
||
USE `baiyue_firstleg`;
|
||
|
||
USE `baiyue_firstleg`;
|
||
|
||
USE `baiyue_firstleg`;
|
||
|
||
USE `baiyue_firstleg`;
|
||
|
||
USE `baiyue_firstleg`;
|
||
|
||
USE `baiyue_firstleg`;
|
||
|
||
USE `baiyue_firstleg`;
|
||
|
||
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='整柜正式申报批次事实';
|
||
|
||
USE `baiyue_firstleg`;
|
||
|
||
USE `baiyue_firstleg`;
|
||
|
||
USE `baiyue_firstleg`;
|
||
|
||
USE `baiyue_firstleg`;
|
||
|
||
USE `baiyue_firstleg`;
|
||
|
||
USE `baiyue_firstleg`;
|
||
|
||
USE `baiyue_firstleg`;
|
||
|
||
USE `baiyue_firstleg`;
|
||
|
||
USE `baiyue_firstleg`;
|
||
|
||
USE `baiyue_firstleg`;
|
||
|
||
USE `baiyue_firstleg`;
|
||
|
||
USE `baiyue_firstleg`;
|
||
|
||
USE `baiyue_firstleg`;
|
||
|
||
USE `baiyue_firstleg`;
|
||
|
||
USE `baiyue_firstleg`;
|
||
|
||
ALTER TABLE `fl_fee_item` ADD COLUMN `default_price` decimal(12,2) DEFAULT NULL COMMENT '默认价格CNY;仅选费带入,实际费用可修改';
|
||
|
||
USE `baiyue_firstleg`;
|
||
|
||
USE `baiyue_firstleg`;
|
||
|
||
USE `baiyue_firstleg`;
|
||
|
||
USE `baiyue_firstleg`;
|
||
|
||
USE `baiyue_firstleg`;
|
||
|
||
USE `baiyue_firstleg`;
|
||
|
||
USE `baiyue_firstleg`;
|
||
|
||
USE `baiyue_firstleg`;
|
||
|
||
USE `baiyue_firstleg`;
|
||
|
||
USE `baiyue_firstleg`;
|
||
|
||
USE `baiyue_firstleg`;
|
||
|
||
USE `baiyue_firstleg`;
|
||
|
||
USE `baiyue_firstleg`;
|
||
|
||
USE `baiyue_firstleg`;
|
||
|
||
ALTER TABLE `fl_inbound_measurement` ADD KEY `idx_measure_inbound_status_id` (`tenant_id`,`inbound_id`,`status`,`id`);
|
||
|
||
USE `baiyue_firstleg`;
|
||
|
||
ALTER TABLE `fl_inbound_measurement_item` ADD KEY `idx_measure_item_candidate` (`tenant_id`,`measurement_id`,`inbound_detail_id`);
|
||
|
||
USE `baiyue_firstleg`;
|
||
|
||
ALTER TABLE `fl_inbound_order` ADD KEY `idx_inbound_smart_loading` (`warehouse_id`,`process_status`,`channel_code`,`expected_arrival_at`,`id`);
|
||
|
||
USE `baiyue_firstleg`;
|
||
|
||
USE `baiyue_firstleg`;
|
||
|
||
USE `baiyue_firstleg`;
|
||
|
||
USE `baiyue_firstleg`;
|
||
|
||
USE `baiyue_firstleg`;
|
||
|
||
USE `baiyue_firstleg`;
|
||
|
||
USE `baiyue_firstleg`;
|
||
|
||
ALTER TABLE `fl_inbound_split_item` ADD KEY `idx_inbound_split_candidate` (`tenant_id`,`parent_inbound_id`,`source_inbound_detail_id`);
|
||
|
||
USE `baiyue_firstleg`;
|
||
|
||
USE `baiyue_firstleg`;
|
||
|
||
USE `baiyue_firstleg`;
|
||
|
||
USE `baiyue_firstleg`;
|
||
|
||
USE `baiyue_firstleg`;
|
||
|
||
USE `baiyue_firstleg`;
|
||
|
||
USE `baiyue_firstleg`;
|
||
|
||
USE `baiyue_firstleg`;
|
||
|
||
USE `baiyue_firstleg`;
|
||
|
||
USE `baiyue_firstleg`;
|
||
|
||
USE `baiyue_firstleg`;
|
||
|
||
USE `baiyue_firstleg`;
|
||
|
||
USE `baiyue_firstleg`;
|
||
|
||
USE `baiyue_firstleg`;
|
||
|
||
USE `baiyue_firstleg`;
|
||
|
||
USE `baiyue_firstleg`;
|
||
|
||
USE `baiyue_firstleg`;
|
||
|
||
USE `baiyue_firstleg`;
|
||
|
||
USE `baiyue_firstleg`;
|
||
|
||
USE `baiyue_firstleg`;
|
||
|
||
ALTER TABLE `fl_loading_plan_item` ADD UNIQUE KEY `uk_loading_item_plan_assignment` (`loading_plan_id`,`active_assignment_key`);
|
||
|
||
ALTER TABLE `fl_loading_plan_item` ADD KEY `idx_loading_item_candidate` (`account_id`,`inbound_id`,`inbound_detail_id`,`deleted`);
|
||
|
||
ALTER TABLE `fl_loading_plan_item` ADD KEY `idx_loading_item_pallet` (`pallet_id`,`deleted`);
|
||
|
||
USE `baiyue_firstleg`;
|
||
|
||
USE `baiyue_firstleg`;
|
||
|
||
USE `baiyue_firstleg`;
|
||
|
||
USE `baiyue_firstleg`;
|
||
|
||
USE `baiyue_firstleg`;
|
||
|
||
ALTER TABLE `fl_ocean_booking` ADD UNIQUE KEY `uk_ocean_booking_bill_of_lading` (`bill_of_lading_no`);
|
||
|
||
USE `baiyue_firstleg`;
|
||
|
||
USE `baiyue_firstleg`;
|
||
|
||
USE `baiyue_firstleg`;
|
||
|
||
USE `baiyue_firstleg`;
|
||
|
||
USE `baiyue_firstleg`;
|
||
|
||
USE `baiyue_firstleg`;
|
||
|
||
USE `baiyue_firstleg`;
|
||
|
||
USE `baiyue_firstleg`;
|
||
|
||
USE `baiyue_firstleg`;
|
||
|
||
USE `baiyue_firstleg`;
|
||
|
||
USE `baiyue_firstleg`;
|
||
|
||
USE `baiyue_firstleg`;
|
||
|
||
USE `baiyue_firstleg`;
|
||
|
||
USE `baiyue_firstleg`;
|
||
|
||
USE `baiyue_firstleg`;
|
||
|
||
USE `baiyue_firstleg`;
|
||
|
||
USE `baiyue_firstleg`;
|
||
|
||
USE `baiyue_firstleg`;
|
||
|
||
USE `baiyue_firstleg`;
|
||
|
||
USE `baiyue_firstleg`;
|
||
|
||
USE `baiyue_firstleg`;
|
||
|
||
USE `baiyue_firstleg`;
|
||
|
||
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;
|
||
|
||
USE `baiyue_firstleg`;
|
||
|
||
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='船期日历自动归班事实及不可变版本历史';
|
||
|
||
USE `baiyue_firstleg`;
|
||
|
||
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='船期计划与已放舱订舱的最小关联及历史';
|
||
|
||
USE `baiyue_firstleg`;
|
||
|
||
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;
|
||
|
||
USE `baiyue_firstleg`;
|
||
|
||
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;
|
||
|
||
USE `baiyue_firstleg`;
|
||
|
||
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='船期日历未收货量预报事实及版本历史';
|
||
|
||
USE `baiyue_firstleg`;
|
||
|
||
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='船期日历稳定收货批次实测事实及版本历史';
|
||
|
||
USE `baiyue_firstleg`;
|
||
|
||
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;
|
||
|
||
USE `baiyue_firstleg`;
|
||
|
||
USE `baiyue_firstleg`;
|
||
|
||
USE `baiyue_firstleg`;
|
||
|
||
USE `baiyue_firstleg`;
|
||
|
||
USE `baiyue_firstleg`;
|
||
|
||
USE `baiyue_firstleg`;
|
||
|
||
USE `baiyue_firstleg`;
|
||
|
||
ALTER TABLE `fl_truck_appointment` ADD UNIQUE KEY `uk_truck_active_ocean_booking` (`active_ocean_booking_id`);
|
||
|
||
ALTER TABLE `fl_truck_appointment` ADD KEY `idx_truck_appointment_ocean` (`ocean_booking_id`);
|
||
|
||
USE `baiyue_firstleg`;
|
||
|
||
USE `baiyue_firstleg`;
|
||
|
||
USE `baiyue_firstleg`;
|
||
|
||
USE `baiyue_firstleg`; |