feat(appointments): track forecast impacts and handling history

This commit is contained in:
2026-10-10 15:33:13 +08:00
parent 331f750871
commit 0ac2b849c3
18 changed files with 1323 additions and 0 deletions
@@ -3908,3 +3908,43 @@ CREATE TABLE ll_procurement_closure_item (
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='异常关闭逐来源剩余货物最终去向,不产生新发运';
SELECT 'PASS' AS initialization_status, 'OVERSEAS' AS region, 181 AS initialized_tables;
CREATE TABLE IF NOT EXISTS 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) NULL COMMENT '预测变化或资料待核实原因',
owner_id VARCHAR(128) NULL COMMENT '认领平台人员ID',
owner_name VARCHAR(200) 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 ('MONITORING','OPEN','RESOLVED'))
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='一柜一个稳定船期变化核对事项,不改写预约或运输';
CREATE TABLE IF NOT EXISTS 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) NULL COMMENT '操作人姓名',
result VARCHAR(1000) NULL COMMENT '人工处理结果;观察记录为空',
next_action VARCHAR(500) NULL COMMENT '下一步处理事项',
followup_date DATE NULL COMMENT '业务跟进日期',
command_key VARCHAR(64) NULL COMMENT '人工命令幂等键;观察记录为空',
request_hash CHAR(64) 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 ('OBSERVED','CLAIM','RECORD','RESOLVE'))
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='船期观察及人工处理追加历史';