-- 材料价格采集(手工在目标库执行,仓库无迁移框架) -- 表前缀 material_ 已被 TenantLineHandlerImpl.ignoreTable 忽略,数据全局共享。 -- CREATE TABLE IF NOT EXISTS `material_price_record` ( `id` varchar(64) NOT NULL COMMENT '主键', `site_code` varchar(64) NOT NULL COMMENT '站点编码', `site_name` varchar(128) NOT NULL DEFAULT '' COMMENT '站点名称', `category` varchar(64) NOT NULL DEFAULT '' COMMENT '分类', `province` varchar(32) NOT NULL DEFAULT '' COMMENT '省份(筛选用)', `city` varchar(64) NOT NULL DEFAULT '' COMMENT '城市(筛选用,站点无城市信息时为空串)', `material_name` varchar(128) NOT NULL DEFAULT '' COMMENT '物料/指数名称', `spec` varchar(128) NOT NULL DEFAULT '' COMMENT '规格/牌号', `price` decimal(18,4) DEFAULT NULL COMMENT '单值价格', `price_low` decimal(18,4) DEFAULT NULL COMMENT '最低价', `price_high` decimal(18,4) DEFAULT NULL COMMENT '最高价', `price_unit` varchar(32) NOT NULL DEFAULT '' COMMENT '单位', `tax_included` tinyint(1) DEFAULT NULL COMMENT '1含税 0不含税 NULL未声明', `price_date` date NOT NULL COMMENT '数据日期', `source_url` varchar(512) NOT NULL DEFAULT '' COMMENT '来源地址', `batch_no` varchar(64) NOT NULL DEFAULT '' COMMENT '采集批次号', `scraped_at` datetime DEFAULT NULL COMMENT '采集时间', `dedupe_key` varchar(64) NOT NULL COMMENT '幂等键 md5', `create_time` datetime DEFAULT NULL, `create_by_id` varchar(64) DEFAULT NULL, `update_time` datetime DEFAULT NULL, `update_by_id` varchar(64) DEFAULT NULL, `del_flag` int DEFAULT 0, `tenant_id` varchar(64) DEFAULT '10000', PRIMARY KEY (`id`), UNIQUE KEY `uk_mpr_dedupe` (`dedupe_key`), KEY `idx_mpr_query` (`site_code`,`category`,`material_name`,`price_date`), KEY `idx_mpr_province` (`province`,`city`), KEY `idx_mpr_date` (`price_date`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='材料价格采集记录'; CREATE TABLE IF NOT EXISTS `material_price_sync_log` ( `id` varchar(64) NOT NULL, `batch_no` varchar(64) NOT NULL, `request_date` date DEFAULT NULL COMMENT '任务目标日期;空表示取最新', `range_start` date DEFAULT NULL COMMENT '区间采集开始日;普通定时采集为空', `range_end` date DEFAULT NULL COMMENT '区间采集结束日;普通定时采集为空', `price_date` date DEFAULT NULL COMMENT '实际数据日期(各抓取器 dataDate 最大值)', `trigger_type` varchar(16) NOT NULL DEFAULT 'XXL' COMMENT 'XXL/MANUAL_RANGE', `status` varchar(16) NOT NULL DEFAULT 'RUNNING' COMMENT 'RUNNING/SUCCESS/PARTIAL/NO_DATA/FAILED', `total_count` int DEFAULT 0, `saved_count` int DEFAULT 0, `failed_count` int DEFAULT 0, `progress_done` int NOT NULL DEFAULT 0 COMMENT '区间采集已完成分片数', `progress_total` int NOT NULL DEFAULT 0 COMMENT '区间采集总分片数', `current_stage` varchar(128) DEFAULT NULL COMMENT '当前阶段,如 hss 2026-06-01~2026-06-07', `site_result` text DEFAULT NULL COMMENT '各抓取器结果 JSON', `error_msg` text, `start_time` datetime DEFAULT NULL, `end_time` datetime DEFAULT NULL, `create_time` datetime DEFAULT NULL, `create_by_id` varchar(64) DEFAULT NULL, `update_time` datetime DEFAULT NULL, `update_by_id` varchar(64) DEFAULT NULL, `del_flag` int DEFAULT 0, `tenant_id` varchar(64) DEFAULT '10000', PRIMARY KEY (`id`), UNIQUE KEY `uk_mpsl_batch` (`batch_no`), KEY `idx_mpsl_date` (`price_date`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='材料价格采集日志';