pipeline-opportunity/mysql.ddl.sql
yumoqing 4092304726 feat(feasibility): P3可行性研究——opp_feasibility引擎(fp_estimate规则引擎FP/draft_feasibility八节报告/score_candidate评分/promote_to_project立项门禁)+report_type列(models/DDL/CRUD重生成)+详情页与PPT按类型选四节或八节模板(sections_for_type单一规则源)+列表类型徽标+prompt链路C+params/demand_mining字典种子+i18n词条
- fp_calc.calc()返回键实锤核对: total_fp/counts/errors(原total_ufp/by_type兜底猜错,已修)
- promote门禁修正: resolve_approval会把status置approved,confirmed只是中间态→门禁接受confirmed/approval_initiated/approved(原只认confirmed会导致审批通过后反而不能立项)
- _cluster_ctx补项目隔离(对齐_check_batch_visible口径)+全personal类别如实拒绝可行性样本不足
- 八节模板兜底节=需求规格;四节存量解析口径零变化
- opp_approvals CRUD手改(项目过滤)被xls2ui重生成吃掉→已checkout还原,只保留opp_reports新列部分
2026-09-14 09:03:58 +08:00

285 lines
9.0 KiB
SQL
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

-- /home/ymq/work/repos/pipeline-opportunity/models/opp_reports.json
-- 建库时请用以下语句支持emoji字符
-- CREATE DATABASE mydb CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
drop table if exists opp_reports;
CREATE TABLE opp_reports
(
`id` VARCHAR(32) NOT NULL comment '主键ID',
`project_id` VARCHAR(32) comment '项目ID',
`software` VARCHAR(128) NOT NULL comment '软件/主题',
`title` VARCHAR(255) NOT NULL comment '报告标题',
`content` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci comment '报告正文',
`status` VARCHAR(24) NOT NULL DEFAULT 'draft' comment '报告状态',
`report_type` VARCHAR(16) DEFAULT 'research' comment '报告类型(research调研/feasibility可行性研究)',
`confirm_task_id` VARCHAR(32) comment '确认任务ID',
`ppt_path` VARCHAR(500) comment 'PPT文件路径',
`confirmed_by` VARCHAR(64) comment '确认人',
`created_by` VARCHAR(64) comment '创建人',
`created_at` TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL comment '创建时间',
`updated_at` TIMESTAMP DEFAULT CURRENT_TIMESTAMP comment '更新时间'
,primary key(id)
)
CHARACTER SET utf8mb4
COLLATE utf8mb4_unicode_ci
engine=innodb
comment '研发报告'
;
-- /home/ymq/work/repos/pipeline-opportunity/models/opp_demand_atoms.json
-- 建库时请用以下语句支持emoji字符
-- CREATE DATABASE mydb CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
drop table if exists opp_demand_atoms;
CREATE TABLE opp_demand_atoms
(
`id` VARCHAR(32) NOT NULL comment '主键ID',
`cluster_id` VARCHAR(32) NOT NULL comment '所属类别ID',
`org_id` VARCHAR(32) NOT NULL comment '机构ID',
`snap_id` VARCHAR(32) NOT NULL comment '来源需求快照ID',
`atom_text` VARCHAR(255) NOT NULL comment '原子需求文本(LLM提取)',
`std_demand_id` VARCHAR(32) comment '归一后标准需求ID',
`created_at` TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL comment '创建时间'
,primary key(id)
)
CHARACTER SET utf8mb4
COLLATE utf8mb4_unicode_ci
engine=innodb
comment '需求原子(类内LLM原子化结果)'
;
-- /home/ymq/work/repos/pipeline-opportunity/models/opp_approvals.json
-- 建库时请用以下语句支持emoji字符
-- CREATE DATABASE mydb CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
drop table if exists opp_approvals;
CREATE TABLE opp_approvals
(
`id` VARCHAR(32) NOT NULL comment '主键ID',
`report_id` VARCHAR(32) NOT NULL comment '报告ID',
`project_id` VARCHAR(32) comment '项目ID',
`status` VARCHAR(16) NOT NULL DEFAULT 'initiated' comment '审批状态',
`note` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci comment '审批说明',
`created_by` VARCHAR(64) comment '发起人',
`resolved_by` VARCHAR(64) comment '审批人',
`created_at` TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL comment '创建时间',
`resolved_at` TIMESTAMP DEFAULT CURRENT_TIMESTAMP comment '结论时间'
,primary key(id)
)
CHARACTER SET utf8mb4
COLLATE utf8mb4_unicode_ci
engine=innodb
comment '研发审批'
;
-- /home/ymq/work/repos/pipeline-opportunity/models/opp_clusters.json
-- 建库时请用以下语句支持emoji字符
-- CREATE DATABASE mydb CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
drop table if exists opp_clusters;
CREATE TABLE opp_clusters
(
`id` VARCHAR(32) NOT NULL comment '主键ID',
`batch_id` VARCHAR(32) NOT NULL comment '批次ID',
`org_id` VARCHAR(32) NOT NULL comment '机构ID',
`project_id` VARCHAR(32) comment '项目ID(空=平台级挖掘)',
`name` VARCHAR(128) comment '类别名称(LLM命名)',
`doc_count` int NOT NULL DEFAULT '0' comment '类内需求数',
`share` double(6,4) DEFAULT '0' comment '占比',
`heat_rank` int DEFAULT '0' comment '热度排名',
`naming_evidence` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci comment '命名证据(样例标题JSON)',
`centroid_snap_id` VARCHAR(32) comment '质心需求快照ID(代表样本)',
`normalize_status` VARCHAR(16) DEFAULT 'init' comment '归一化状态(init/running/done/failed)',
`normalize_error` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci comment '归一化失败原因',
`created_at` TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL comment '创建时间'
,primary key(id)
)
CHARACTER SET utf8mb4
COLLATE utf8mb4_unicode_ci
engine=innodb
comment '需求类别(聚类结果)'
;
-- /home/ymq/work/repos/pipeline-opportunity/models/opp_demand_domains.json
-- 建库时请用以下语句支持emoji字符
-- CREATE DATABASE mydb CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
drop table if exists opp_demand_domains;
CREATE TABLE opp_demand_domains
(
`id` VARCHAR(32) NOT NULL comment '主键ID',
`cluster_id` VARCHAR(32) NOT NULL comment '所属类别ID',
`org_id` VARCHAR(32) NOT NULL comment '机构ID',
`parent_id` VARCHAR(32) comment '父能力域ID(空=顶层)',
`name` VARCHAR(128) NOT NULL comment '能力域名(如:人员管理/工时与考勤)',
`std_count` int NOT NULL DEFAULT '0' comment '下辖标准需求数',
`created_at` TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL comment '创建时间'
,primary key(id)
)
CHARACTER SET utf8mb4
COLLATE utf8mb4_unicode_ci
engine=innodb
comment '需求能力域(两层需求模型上层)'
;
-- /home/ymq/work/repos/pipeline-opportunity/models/opp_std_demands.json
-- 建库时请用以下语句支持emoji字符
-- CREATE DATABASE mydb CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
drop table if exists opp_std_demands;
CREATE TABLE opp_std_demands
(
`id` VARCHAR(32) NOT NULL comment '主键ID',
`cluster_id` VARCHAR(32) NOT NULL comment '所属类别ID',
`org_id` VARCHAR(32) NOT NULL comment '机构ID',
`name` VARCHAR(128) NOT NULL comment '标准需求名(LLM裁决命名)',
`domain_id` VARCHAR(32) comment '能力域ID(两层模型上层)',
`doc_count` int NOT NULL DEFAULT '0' comment '覆盖文档数',
`coverage` double(6,4) DEFAULT '0' comment '覆盖率(覆盖文档数/类内文档数)',
`tier` VARCHAR(16) DEFAULT 'personal' comment '层级(core核心/ext扩展/personal个性)',
`evidence_json` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci comment '证据(原子样例JSON)',
`created_at` TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL comment '创建时间'
,primary key(id)
)
CHARACTER SET utf8mb4
COLLATE utf8mb4_unicode_ci
engine=innodb
comment '标准需求(归一化结果)'
;
-- /home/ymq/work/repos/pipeline-opportunity/models/opp_mining_batches.json
-- 建库时请用以下语句支持emoji字符
-- CREATE DATABASE mydb CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
drop table if exists opp_mining_batches;
CREATE TABLE opp_mining_batches
(
`id` VARCHAR(32) NOT NULL comment '主键ID',
`org_id` VARCHAR(32) NOT NULL comment '机构ID',
`project_id` VARCHAR(32) comment '项目ID(空=平台级挖掘)',
`scope` VARCHAR(16) NOT NULL DEFAULT 'top' comment '挖掘范围(top=TopX全量/targeted=指定类型)',
`params_json` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci comment '批次参数(days/sources/record_type/keyword/category)',
`status` VARCHAR(24) NOT NULL DEFAULT 'pulling' comment '批次状态(pulling/embedding/clustering/naming/done/failed)',
`vdb_col` VARCHAR(64) comment '批次向量工作集collection名',
`stats_json` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci comment '批次统计(需求数/嵌入数/簇数/失败数)',
`error_msg` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci comment '失败原因(可行动报错)',
`created_by` VARCHAR(64) comment '创建人',
`created_at` TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL comment '创建时间',
`updated_at` TIMESTAMP DEFAULT CURRENT_TIMESTAMP comment '更新时间'
,primary key(id)
)
CHARACTER SET utf8mb4
COLLATE utf8mb4_unicode_ci
engine=innodb
comment '需求挖掘批次'
;
-- /home/ymq/work/repos/pipeline-opportunity/models/opp_demand_snap.json
-- 建库时请用以下语句支持emoji字符
-- CREATE DATABASE mydb CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
drop table if exists opp_demand_snap;
CREATE TABLE opp_demand_snap
(
`id` VARCHAR(32) NOT NULL comment '主键ID',
`batch_id` VARCHAR(32) NOT NULL comment '批次ID',
`org_id` VARCHAR(32) NOT NULL comment '机构ID',
`src_id` VARCHAR(64) NOT NULL comment '爬虫平台需求ID(去重键)',
`source` VARCHAR(32) comment '数据来源(zbj/epwk/freelancer/pph)',
`title` VARCHAR(500) NOT NULL comment '需求标题',
`item_category` VARCHAR(128) comment '站内类目',
`budget_wan` double(15,2) comment '预算(万元)',
`url` VARCHAR(500) comment '需求原文链接',
`publish_time` VARCHAR(32) comment '发布时间',
`cluster_id` VARCHAR(32) comment '所属类别ID(聚类后回填)',
`embed_status` VARCHAR(16) DEFAULT 'new' comment '向量化状态(cached/new/failed)',
`created_at` TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL comment '创建时间'
,primary key(id)
)
CHARACTER SET utf8mb4
COLLATE utf8mb4_unicode_ci
engine=innodb
comment '需求快照'
;