-- ============================================================ -- 投研平台后端 · 数据库初始化脚本(SQLite) -- ============================================================ -- 适用:Spring Boot 2.7 + Java 8 + SQLite (data/ir.db) -- 用法:执行一次本脚本即可完成建表 + 种子数据灌入。 -- sqlite3 data/ir.db < sql/init.sql -- 或:在 sqlite3 交互终端里 .read sql/init.sql -- 幂等:所有 DDL/DML 使用 IF NOT EXISTS / OR IGNORE,重复执行安全。 -- 默认管理员:admin / admin123(BCrypt 哈希见 sys_user 插入行) -- ============================================================ PRAGMA foreign_keys = ON; -- ============================================================ -- 1. 建表 -- ============================================================ -- 演示用户表(供 /api/datasource/* 演示接口使用) CREATE TABLE IF NOT EXISTS demo_user ( id INTEGER PRIMARY KEY AUTOINCREMENT, name TEXT NOT NULL, created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ); -- 系统用户表 CREATE TABLE IF NOT EXISTS sys_user ( id INTEGER PRIMARY KEY AUTOINCREMENT, username TEXT NOT NULL UNIQUE, password TEXT NOT NULL, -- BCrypt 哈希 nickname TEXT, enabled INTEGER NOT NULL DEFAULT 1, created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ); -- 角色表 CREATE TABLE IF NOT EXISTS sys_role ( id INTEGER PRIMARY KEY AUTOINCREMENT, code TEXT NOT NULL UNIQUE, name TEXT NOT NULL, description TEXT, created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ); -- 权限点表(接口权限,与菜单权限解耦) CREATE TABLE IF NOT EXISTS sys_permission ( id INTEGER PRIMARY KEY AUTOINCREMENT, code TEXT NOT NULL UNIQUE, name TEXT NOT NULL, description TEXT, created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ); -- 用户-角色关联 CREATE TABLE IF NOT EXISTS sys_user_role ( user_id INTEGER NOT NULL, role_id INTEGER NOT NULL, PRIMARY KEY (user_id, role_id) ); -- 角色-权限关联 CREATE TABLE IF NOT EXISTS sys_role_permission ( role_id INTEGER NOT NULL, permission_id INTEGER NOT NULL, PRIMARY KEY (role_id, permission_id) ); -- 菜单表(独立菜单权限体系) CREATE TABLE IF NOT EXISTS sys_menu ( id INTEGER PRIMARY KEY AUTOINCREMENT, parent_id INTEGER, -- NULL = 顶级目录 name TEXT NOT NULL, type TEXT NOT NULL DEFAULT 'menu', -- dir=目录 / menu=菜单 route TEXT, -- 前端路由 path component TEXT, -- 前端组件路径 icon TEXT, -- 菜单图标(Element Plus) sort INTEGER DEFAULT 0, -- 排序号(升序) visible INTEGER DEFAULT 1, -- 是否可见 status INTEGER DEFAULT 1, -- 是否启用 created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ); -- 角色-菜单关联 CREATE TABLE IF NOT EXISTS sys_role_menu ( role_id INTEGER NOT NULL, menu_id INTEGER NOT NULL, PRIMARY KEY (role_id, menu_id) ); -- ============================================================ -- 2. 种子数据:角色 -- ============================================================ INSERT OR IGNORE INTO sys_role(id, code, name, description) VALUES (1, 'ADMIN', '超级管理员', '系统内置,拥有全部权限'), (2, 'USER', '普通用户', '系统内置,默认用户角色'); -- ============================================================ -- 3. 种子数据:权限点 -- ============================================================ INSERT OR IGNORE INTO sys_permission(id, code, name, description) VALUES (1, 'user:list', 'user:list', NULL), (2, 'user:create', 'user:create', NULL), (3, 'user:update', 'user:update', NULL), (4, 'user:delete', 'user:delete', NULL), (5, 'role:list', 'role:list', NULL), (6, 'role:create', 'role:create', NULL), (7, 'role:update', 'role:update', NULL), (8, 'role:delete', 'role:delete', NULL), (9, 'role:assign', 'role:assign', NULL), (10, 'permission:list', 'permission:list', NULL), (11, 'permission:create','permission:create',NULL), (12, 'permission:delete','permission:delete',NULL), (13, 'data:query', 'data:query', NULL), (14, 'data:write', 'data:write', NULL), (15, 'indicator:create', 'indicator:create', NULL), (16, 'indicator:update', 'indicator:update', NULL), (17, 'indicator:value:write', 'indicator:value:write', NULL), (22, 'indicator:delete', 'indicator:delete', NULL), (18, 'document:create', 'document:create', NULL), (19, 'document:update', 'document:update', NULL), (20, 'document:delete', 'document:delete', NULL), (21, 'document:summary:write', 'document:summary:write', NULL); -- ADMIN 拥有全部权限 INSERT OR IGNORE INTO sys_role_permission(role_id, permission_id) SELECT 1, id FROM sys_permission; -- ============================================================ -- 4. 种子数据:默认管理员账号 -- ============================================================ -- 密码:admin123(BCrypt $2a$10$W6qORgtPvZnIj5KMJj0GZu3fYtAqgOUjAl6vQy7wt4kFeYVPVkwti) -- 首次部署后请尽快通过 UPDATE sys_user SET password=? WHERE username='admin' 修改。 INSERT OR IGNORE INTO sys_user(id, username, password, nickname, enabled) VALUES (1, 'admin', '$2a$10$W6qORgtPvZnIj5KMJj0GZu3fYtAqgOUjAl6vQy7wt4kFeYVPVkwti', '管理员', 1); -- 管理员授予 ADMIN 角色 INSERT OR IGNORE INTO sys_user_role(user_id, role_id) VALUES (1, 1); -- ============================================================ -- 5. 种子数据:菜单(顶级 + 二级) -- ============================================================ -- 5.1 通用顶级(工作台 / 系统管理 / 数据源演示) INSERT OR IGNORE INTO sys_menu(id, parent_id, name, type, route, component, icon, sort) VALUES -- (1, NULL, '工作台', 'menu', '/dashboard', 'dashboard/index', 'HomeFilled', 1), (2, NULL, '系统管理', 'dir', NULL, NULL, 'Setting', 9); -- 数据管理 INSERT OR IGNORE INTO sys_menu(id, parent_id, name, type, route, component, icon, sort) VALUES (1, NULL, '数据管理', 'dir', NULL, NULL, 'Data', 10); INSERT OR IGNORE INTO sys_menu(id, parent_id, name, type, route, component, icon, sort) VALUES (21, 1, '元数据', 'menu', '/data/indicator', 'data/indicator/index', 'Indicator', 1), (22, 1, '指标数据', 'menu', '/data/value', 'data/value/index', 'Value', 2); -- 5.2 系统管理 → 子菜单 INSERT OR IGNORE INTO sys_menu(id, parent_id, name, type, route, component, icon, sort) VALUES (3, 2, '用户管理', 'menu', '/system/user', 'system/user/index', 'User', 1), (4, 2, '角色管理', 'menu', '/system/role', 'system/role/index', 'Avatar', 2), (5, 2, '权限管理', 'menu', '/system/permission', 'system/permission/index', 'Key', 3), (6, 2, '菜单管理', 'menu', '/system/menu', 'system/menu/index', 'Menu', 4); -- 5.3 投研业务 6 个一级目录 INSERT OR IGNORE INTO sys_menu(id, parent_id, name, type, route, component, icon, sort) VALUES (8, NULL, '基本面', 'menu', '/fundamental/index', NULL, 'TrendCharts', 3), (16, NULL, '政策面', 'menu', NULL, NULL, 'Document', 4), (17, NULL, '资金面', 'menu', NULL, NULL, 'Money', 5), (18, NULL, '债市分析', 'menu', NULL, NULL, 'Tickets', 6), (19, NULL, '权益分析', 'menu', NULL, NULL, 'DataLine', 7), (20, NULL, '多资产', 'menu', NULL, NULL, 'Grid', 8); -- 5.4 基本面 → 7 个二级菜单 INSERT OR IGNORE INTO sys_menu(id, parent_id, name, type, route, component, icon, sort) VALUES (9, 8, 'GDP', 'menu', '/fundamental/gdp', 'fundamental/gdp/index', 'DataAnalysis', 1), (10, 8, '投资', 'menu', '/fundamental/investment', 'fundamental/investment/index', 'Coin', 2), (11, 8, '出口', 'menu', '/fundamental/export', 'fundamental/export/index', 'Promotion', 3), (12, 8, '消费', 'menu', '/fundamental/consumption', 'fundamental/consumption/index', 'ShoppingCart', 4), (13, 8, '通胀', 'menu', '/fundamental/inflation', 'fundamental/inflation/index', 'Warning', 5), (14, 8, '供给', 'menu', '/fundamental/supply', 'fundamental/supply/index', 'Box', 6), (15, 8, '景气度', 'menu', '/fundamental/prosperity', 'fundamental/prosperity/index', 'Odometer', 7); -- 5.5 数据管理 → 文档管理(通用文档上传/维护 API,归属任意 indicator) INSERT OR IGNORE INTO sys_menu(id, parent_id, name, type, route, component, icon, sort) VALUES (31, 1, '文档管理', 'menu', '/document/index', 'document/index', 'Notebook', 3); -- 兼容老数据:把误放在「政策面」下的 id=31 拉回「数据管理」 UPDATE sys_menu SET parent_id = 1, name = '文档管理', route = '/document/index', component = 'document/index' WHERE id = 31; -- 5.6 兼容老数据:把已存在的 policy-doc:* 权限行改名为 document:*(id 18-21) -- 用 ON CONFLICT 实现 upsert:行不存在则插入,存在则按 id 刷新 code/name/description INSERT INTO sys_permission(id, code, name, description) VALUES (18, 'document:create', 'document:create', NULL), (19, 'document:update', 'document:update', NULL), (20, 'document:delete', 'document:delete', NULL), (21, 'document:summary:write', 'document:summary:write', NULL) ON CONFLICT(id) DO UPDATE SET code = excluded.code, name = excluded.name, description = excluded.description; -- ============================================================ -- 6. 菜单授权:ADMIN 拥有全部菜单 -- ============================================================ INSERT OR IGNORE INTO sys_role_menu(role_id, menu_id) SELECT 1, id FROM sys_menu; -- 兼容已存在的旧数据:补齐「数据管理 / 元数据 / 指标数据」的 component 字段 UPDATE sys_menu SET component = 'data/indicator/index' WHERE id = 21 AND (component IS NULL OR component = ''); UPDATE sys_menu SET component = 'data/value/index' WHERE id = 22 AND (component IS NULL OR component = ''); UPDATE sys_menu SET component = 'system/user/index' WHERE id = 3 AND (component IS NULL OR component = ''); UPDATE sys_menu SET component = 'system/role/index' WHERE id = 4 AND (component IS NULL OR component = ''); UPDATE sys_menu SET component = 'system/permission/index' WHERE id = 5 AND (component IS NULL OR component = ''); UPDATE sys_menu SET component = 'system/menu/index' WHERE id = 6 AND (component IS NULL OR component = ''); -- ============================================================ -- 完成 -- ============================================================ -- 默认管理员:admin / admin123 -- 默认用户:注册即可,自动授予 USER 角色 -- ============================================================ -- 7. 指标元数据表(基本面等投研指标) -- ============================================================ CREATE TABLE IF NOT EXISTS indicator ( id INTEGER PRIMARY KEY, category TEXT NOT NULL, subcategory TEXT, name TEXT NOT NULL, region TEXT, frequency TEXT NOT NULL, unit TEXT, wind_code TEXT UNIQUE, source TEXT, data_start TEXT, data_end TEXT, refreshed_at TEXT, remark TEXT ); CREATE TABLE IF NOT EXISTS indicator_value ( id INTEGER PRIMARY KEY AUTOINCREMENT, indicator_id INTEGER NOT NULL REFERENCES indicator(id) ON DELETE CASCADE, obs_date TEXT NOT NULL, value REAL, UNIQUE(indicator_id, obs_date) ); CREATE INDEX IF NOT EXISTS idx_indicator_value ON indicator_value(indicator_id, obs_date); -- ============================================================ -- 8. 政策面/重要会议/产业政策文档表(document + document_summary) -- 上传/维护的研报类 PDF 元数据;与 indicator(category='政策面'/'重要会议'/'产业政策') 多对一 -- ============================================================ CREATE TABLE IF NOT EXISTS document ( id INTEGER PRIMARY KEY AUTOINCREMENT, category_id INTEGER NOT NULL REFERENCES indicator(id) ON DELETE CASCADE, period TEXT NOT NULL, -- 例: '2026Q2' / '2025年' / '2026-07-30' period_year INTEGER, -- 例: 2026 title TEXT NOT NULL, -- 例: '2026Q2-中国货币政策例会' file_path TEXT NOT NULL, -- 相对 base-path 的路径,例: 'data/uploads/2.10-货币政策例会/2026Q2-...pdf' file_size INTEGER, -- 字节 publish_date TEXT, -- 例: '2026-06-28' page_count INTEGER, is_latest INTEGER NOT NULL DEFAULT 0, -- 同 category 下最新期标记为 1 sort_order INTEGER NOT NULL DEFAULT 0, -- 列表排序号,升序 created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP, UNIQUE(category_id, period) ); CREATE INDEX IF NOT EXISTS idx_document_category ON document(category_id, is_latest, sort_order); CREATE TABLE IF NOT EXISTS document_summary ( document_id INTEGER PRIMARY KEY REFERENCES document(id) ON DELETE CASCADE, overall_tone TEXT, -- 整体基调 policy_stance TEXT, -- 政策立场 risk_control TEXT, -- 风险防控 key_points_json TEXT, -- JSON 文本,关键观点列表 updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ); -- 指标元数据种子(id 固定,便于 API 按 id 路由) INSERT OR IGNORE INTO indicator (id,category,subcategory,name,region,frequency,unit,wind_code,source,data_start,data_end,refreshed_at,remark) VALUES (1,'GDP','现价GDP增速','中国:GDP:现价:当季同比','中国','季','%','X4608416','Wind','1993-03','2026-06','2026-07-15','同比'); INSERT OR IGNORE INTO indicator (id,category,subcategory,name,region,frequency,unit,wind_code,source,data_start,data_end,refreshed_at,remark) VALUES (2,'GDP','不变价GDP增速','中国:GDP:不变价:当季同比','中国','季','%','M0039354','国家统计局','1992-03','2026-06','2026-08-11','同比'); INSERT OR IGNORE INTO indicator (id,category,subcategory,name,region,frequency,unit,wind_code,source,data_start,data_end,refreshed_at,remark) VALUES (3,'GDP','GDP平减指数','中国:GDP平减指数:当季同比','中国','季','%','C3090828','Wind','1993-03','2026-06','2026-07-15','同比'); INSERT OR IGNORE INTO indicator (id,category,subcategory,name,region,frequency,unit,wind_code,source,data_start,data_end,refreshed_at,remark) VALUES (4,'投资','固定资产投资增速','中国:固定资产投资完成额:累计同比','中国','月','%','M0000273','国家统计局','1992-02','2026-08','2026-09-15','累计同比'); INSERT OR IGNORE INTO indicator (id,category,subcategory,name,region,frequency,unit,wind_code,source,data_start,data_end,refreshed_at,remark) VALUES (5,'投资','地产投资增速','中国:房地产开发投资完成额:累计同比','中国','月','%','S0029657','国家统计局','1999-02','2026-08','2026-09-15','累计同比'); INSERT OR IGNORE INTO indicator (id,category,subcategory,name,region,frequency,unit,wind_code,source,data_start,data_end,refreshed_at,remark) VALUES (6,'投资','基建投资增速','中国:固定资产投资完成额:基础设施建设:累计同比','中国','月','%','F0540563','国家统计局','2004-02','2026-08','2026-09-15','累计同比'); INSERT OR IGNORE INTO indicator (id,category,subcategory,name,region,frequency,unit,wind_code,source,data_start,data_end,refreshed_at,remark) VALUES (7,'投资','制造业投资增速','中国:固定资产投资完成额:制造业:累计同比','中国','月','%','M0000357','国家统计局','2004-02','2026-08','2026-09-15','累计同比'); INSERT OR IGNORE INTO indicator (id,category,subcategory,name,region,frequency,unit,wind_code,source,data_start,data_end,refreshed_at,remark) VALUES (8,'投资','高技术产业投资增速','中国:固定资产投资完成额:高技术产业:累计同比','中国','月','%','M6451397','国家统计局','2015-07','2026-08','2026-09-15','累计同比'); INSERT OR IGNORE INTO indicator (id,category,subcategory,name,region,frequency,unit,wind_code,source,data_start,data_end,refreshed_at,remark) VALUES (9,'出口','出口额及增速','中国:出口金额:当月值','中国','月','亿美元','M0000606','海关总署','1994-08','2026-08','2026-09-18','当月值'); INSERT OR IGNORE INTO indicator (id,category,subcategory,name,region,frequency,unit,wind_code,source,data_start,data_end,refreshed_at,remark) VALUES (10,'出口','出口额及增速','中国:出口金额:当月同比','中国','月','%','M0000607','海关总署','1995-01','2026-08','2026-09-18','当月同比'); INSERT OR IGNORE INTO indicator (id,category,subcategory,name,region,frequency,unit,wind_code,source,data_start,data_end,refreshed_at,remark) VALUES (11,'出口','进口额及增速','中国:进口金额:当月值','中国','月','亿美元','M0000608','海关总署','1994-08','2026-08','2026-09-18','当月值'); INSERT OR IGNORE INTO indicator (id,category,subcategory,name,region,frequency,unit,wind_code,source,data_start,data_end,refreshed_at,remark) VALUES (12,'出口','进口额及增速','中国:进口金额:当月同比','中国','月','%','M0000609','海关总署','1995-01','2026-08','2026-09-18','当月同比'); INSERT OR IGNORE INTO indicator (id,category,subcategory,name,region,frequency,unit,wind_code,source,data_start,data_end,refreshed_at,remark) VALUES (13,'出口','贸易顺差额','中国:贸易差额:累计值','中国','月','亿美元','M0096210','海关总署','1995-01','2026-08','2026-09-18','累计值'); INSERT OR IGNORE INTO indicator (id,category,subcategory,name,region,frequency,unit,wind_code,source,data_start,data_end,refreshed_at,remark) VALUES (14,'出口','海外经济体景气度','美国:ISM:制造业PMI','美国','月',NULL,'G0002323','根据新闻整理','1948-01','2026-08','2026-09-01',''); INSERT OR IGNORE INTO indicator (id,category,subcategory,name,region,frequency,unit,wind_code,source,data_start,data_end,refreshed_at,remark) VALUES (15,'出口','进口额及增速','中国进口集装箱运价指数:综合指数','中国','周','点','S0237842','根据新闻整理','2015-08-28','2026-09-16','2026-09-16',''); INSERT OR IGNORE INTO indicator (id,category,subcategory,name,region,frequency,unit,wind_code,source,data_start,data_end,refreshed_at,remark) VALUES (16,'消费','社会消费品零售总额增速','中国:社会消费品零售总额:当月同比(1-2月合并)','中国','月','%','M0001428','国家统计局','1995-01','2026-08','2026-09-15','当月同比'); INSERT OR IGNORE INTO indicator (id,category,subcategory,name,region,frequency,unit,wind_code,source,data_start,data_end,refreshed_at,remark) VALUES (17,'消费','耐用品消费增速','中国:商品零售额:限额以上单位:家用电器和音像器材类:累计同比','中国','月','%','M0001477','国家统计局','2001-01','2026-08','2026-09-15','累计同比'); INSERT OR IGNORE INTO indicator (id,category,subcategory,name,region,frequency,unit,wind_code,source,data_start,data_end,refreshed_at,remark) VALUES (18,'消费','耐用品消费增速','中国:商品零售额:限额以上单位:家具类:累计同比','中国','月','%','M0001478','国家统计局','2001-01','2026-08','2026-09-15','累计同比'); INSERT OR IGNORE INTO indicator (id,category,subcategory,name,region,frequency,unit,wind_code,source,data_start,data_end,refreshed_at,remark) VALUES (19,'消费','耐用品消费增速','中国:商品零售额:限额以上单位:通讯器材类:累计同比','中国','月','%','M0001482','国家统计局','2001-01','2026-08','2026-09-15','累计同比'); INSERT OR IGNORE INTO indicator (id,category,subcategory,name,region,frequency,unit,wind_code,source,data_start,data_end,refreshed_at,remark) VALUES (20,'消费','耐用品消费增速','中国:商品零售额:限额以上单位:汽车类:累计同比','中国','月','%','M0001483','国家统计局','2001-01','2026-08','2026-09-15','累计同比'); INSERT OR IGNORE INTO indicator (id,category,subcategory,name,region,frequency,unit,wind_code,source,data_start,data_end,refreshed_at,remark) VALUES (21,'消费','城镇调查失业率','中国:城镇调查失业率','中国','月','%','M5650805','国家统计局','2018-01','2026-08','2026-09-15',''); INSERT OR IGNORE INTO indicator (id,category,subcategory,name,region,frequency,unit,wind_code,source,data_start,data_end,refreshed_at,remark) VALUES (22,'消费','城镇居民收入和消费支出','中国:城镇居民人均可支配收入:累计同比','中国','季','%','M0012989','国家统计局','2003-03','2026-06','2026-07-15','累计同比'); INSERT OR IGNORE INTO indicator (id,category,subcategory,name,region,frequency,unit,wind_code,source,data_start,data_end,refreshed_at,remark) VALUES (23,'消费','城镇居民收入和消费支出','中国:城镇居民人均消费支出:累计同比','中国','季','%','M0012992','国家统计局','2003-03','2026-06','2026-07-15','累计同比'); INSERT OR IGNORE INTO indicator (id,category,subcategory,name,region,frequency,unit,wind_code,source,data_start,data_end,refreshed_at,remark) VALUES (24,'通胀','CPI的同环比','中国:CPI:当月同比','中国','月','%','M0000612','国家统计局','1987-01','2026-08','2026-09-09','当月同比'); INSERT OR IGNORE INTO indicator (id,category,subcategory,name,region,frequency,unit,wind_code,source,data_start,data_end,refreshed_at,remark) VALUES (25,'通胀','CPI的同环比','中国:CPI:环比','中国','月','%','M0000705','国家统计局','1995-01','2026-08','2026-09-09','环比'); INSERT OR IGNORE INTO indicator (id,category,subcategory,name,region,frequency,unit,wind_code,source,data_start,data_end,refreshed_at,remark) VALUES (26,'通胀','核心CPI的同环比','中国:CPI:不包括食品和能源(核心CPI):当月同比','中国','月','%','M0085932','国家统计局','2013-01','2026-08','2026-09-09','当月同比'); INSERT OR IGNORE INTO indicator (id,category,subcategory,name,region,frequency,unit,wind_code,source,data_start,data_end,refreshed_at,remark) VALUES (27,'通胀','核心CPI的同环比','中国:CPI:不包括食品和能源(核心CPI):环比','中国','月','%','M0085934','国家统计局','2013-01','2026-08','2026-09-09','环比'); INSERT OR IGNORE INTO indicator (id,category,subcategory,name,region,frequency,unit,wind_code,source,data_start,data_end,refreshed_at,remark) VALUES (28,'通胀','PPI的同环比','中国:PPI:当月同比','中国','月','%','M0001227','国家统计局','1996-10','2026-08','2026-09-09','当月同比'); INSERT OR IGNORE INTO indicator (id,category,subcategory,name,region,frequency,unit,wind_code,source,data_start,data_end,refreshed_at,remark) VALUES (29,'通胀','PPI的同环比','中国:PPI:环比','中国','月','%','M0049160','国家统计局','2002-01','2026-08','2026-09-09','环比'); INSERT OR IGNORE INTO indicator (id,category,subcategory,name,region,frequency,unit,wind_code,source,data_start,data_end,refreshed_at,remark) VALUES (30,'通胀','CPI的同环比','中国:CPI:食品烟酒及在外餐饮:环比','中国','月','%','M0327907','国家统计局','2016-01','2026-08','2026-09-09','环比'); INSERT OR IGNORE INTO indicator (id,category,subcategory,name,region,frequency,unit,wind_code,source,data_start,data_end,refreshed_at,remark) VALUES (31,'通胀','CPI的同环比','中国:CPI:衣着:环比','中国','月','%','M0000708','国家统计局','2001-01','2026-08','2026-09-09','环比'); INSERT OR IGNORE INTO indicator (id,category,subcategory,name,region,frequency,unit,wind_code,source,data_start,data_end,refreshed_at,remark) VALUES (32,'通胀','CPI的同环比','中国:CPI:居住:环比','中国','月','%','M0000713','国家统计局','2001-01','2026-08','2026-09-09','环比'); INSERT OR IGNORE INTO indicator (id,category,subcategory,name,region,frequency,unit,wind_code,source,data_start,data_end,refreshed_at,remark) VALUES (33,'通胀','CPI的同环比','中国:CPI:生活用品及服务:环比','中国','月','%','M0000709','国家统计局','2001-01','2026-08','2026-09-09','环比'); INSERT OR IGNORE INTO indicator (id,category,subcategory,name,region,frequency,unit,wind_code,source,data_start,data_end,refreshed_at,remark) VALUES (34,'通胀','CPI的同环比','中国:CPI:交通和通信:环比','中国','月','%','M0000711','国家统计局','2001-01','2026-08','2026-09-09','环比'); INSERT OR IGNORE INTO indicator (id,category,subcategory,name,region,frequency,unit,wind_code,source,data_start,data_end,refreshed_at,remark) VALUES (35,'通胀','CPI的同环比','中国:CPI:教育文化和娱乐:环比','中国','月','%','M0000712','国家统计局','2001-01','2026-08','2026-09-09','环比'); INSERT OR IGNORE INTO indicator (id,category,subcategory,name,region,frequency,unit,wind_code,source,data_start,data_end,refreshed_at,remark) VALUES (36,'通胀','CPI的同环比','中国:CPI:医疗保健:环比','中国','月','%','M0000710','国家统计局','2001-01','2026-08','2026-09-09','环比'); INSERT OR IGNORE INTO indicator (id,category,subcategory,name,region,frequency,unit,wind_code,source,data_start,data_end,refreshed_at,remark) VALUES (37,'通胀','CPI的同环比','中国:CPI:其他用品和服务:环比','中国','月','%','M0327908','国家统计局','2016-01','2026-08','2026-09-09','环比'); INSERT OR IGNORE INTO indicator (id,category,subcategory,name,region,frequency,unit,wind_code,source,data_start,data_end,refreshed_at,remark) VALUES (38,'供给','工业增加值同环比','中国:工业增加值:规模以上工业企业:当月同比(1-2月合并)','中国','月','%','F3478527','国家统计局','2012-02','2026-08','2026-09-15','当月同比'); INSERT OR IGNORE INTO indicator (id,category,subcategory,name,region,frequency,unit,wind_code,source,data_start,data_end,refreshed_at,remark) VALUES (39,'供给','工业增加值同环比','中国:工业增加值:规模以上工业企业:季调:环比','中国','月','%','M0061571','国家统计局','2011-02','2026-08','2026-09-15','季调环比'); INSERT OR IGNORE INTO indicator (id,category,subcategory,name,region,frequency,unit,wind_code,source,data_start,data_end,refreshed_at,remark) VALUES (40,'供给','工业产能利用率','中国:工业产能利用率:当季值','中国','季','%','M5792266','国家统计局','2013-03','2026-06','2026-07-15','当季值'); INSERT OR IGNORE INTO indicator (id,category,subcategory,name,region,frequency,unit,wind_code,source,data_start,data_end,refreshed_at,remark) VALUES (41,'供给','工业产能利用率','中国:工业产能利用率:累计值','中国','季','%','M5792267','国家统计局','2013-03','2026-06','2026-07-15','累计值'); INSERT OR IGNORE INTO indicator (id,category,subcategory,name,region,frequency,unit,wind_code,source,data_start,data_end,refreshed_at,remark) VALUES (42,'供给','规上工业企业营收、利润累计增速','中国:营业收入:规模以上工业企业:累计同比','中国','月','%','M5767812','国家统计局','2017-02','2026-07','2026-08-27','累计同比'); INSERT OR IGNORE INTO indicator (id,category,subcategory,name,region,frequency,unit,wind_code,source,data_start,data_end,refreshed_at,remark) VALUES (43,'供给','规上工业企业营收、利润累计增速','中国:利润总额:规模以上工业企业:累计同比','中国','月','%','M0000557','国家统计局','1996-02','2026-07','2026-08-27','累计同比'); INSERT OR IGNORE INTO indicator (id,category,subcategory,name,region,frequency,unit,wind_code,source,data_start,data_end,refreshed_at,remark) VALUES (44,'供给','规上工业企业库存增速','中国:产成品存货:规模以上工业企业:同比','中国','月','%','M0000561','国家统计局','1996-02','2026-07','2026-08-27','同比'); INSERT OR IGNORE INTO indicator (id,category,subcategory,name,region,frequency,unit,wind_code,source,data_start,data_end,refreshed_at,remark) VALUES (45,'景气度','EPMI','中国:EPMI','中国','月','%','M5530000','根据新闻整理','2014-01','2026-09','2026-09-20',''); INSERT OR IGNORE INTO indicator (id,category,subcategory,name,region,frequency,unit,wind_code,source,data_start,data_end,refreshed_at,remark) VALUES (46,'景气度','BCI','中国企业经营状况指数(BCI)','中国','月',NULL,'M5786898','长江商学院','2011-09','2026-08','2026-08-21',''); INSERT OR IGNORE INTO indicator (id,category,subcategory,name,region,frequency,unit,wind_code,source,data_start,data_end,refreshed_at,remark) VALUES (47,'景气度','制造业PMI','中国:制造业PMI','中国','月','%','M0017126','国家统计局','2005-01','2026-08','2026-08-31',''); INSERT OR IGNORE INTO indicator (id,category,subcategory,name,region,frequency,unit,wind_code,source,data_start,data_end,refreshed_at,remark) VALUES (48,'GDP','GDP周频-预测','GDP周度预测(MM6)','中国','月','%',NULL,'自研','2019-04-27','2026-09-12','',''); INSERT OR IGNORE INTO indicator (id,category,subcategory,name,region,frequency,unit,wind_code,source,data_start,data_end,refreshed_at,remark) VALUES (49,'GDP','GDP周频-预测','实际GDP增速(MM6)','中国','月','%',NULL,'自研','2019-04-27','2026-06-27','',''); INSERT OR IGNORE INTO indicator (id,category,subcategory,name,region,frequency,unit,wind_code,source,data_start,data_end,refreshed_at,remark) VALUES (50,'通胀','通胀的预测','CPI预测','中国','月','%',NULL,'自研','2025-01-31','2026-12-31','',''); INSERT OR IGNORE INTO indicator (id,category,subcategory,name,region,frequency,unit,wind_code,source,data_start,data_end,refreshed_at,remark) VALUES (51,'通胀','通胀的预测','PPI预测','中国','月','%',NULL,'自研','2025-01-31','2026-12-31','',''); -- 指标时序值种子数据量大(>1万行),独立脚本初始化: -- sqlite3 data/ir.db < sql/indicator_values_seed.sql -- 该脚本使用 INSERT OR IGNORE,可重复执行。