Files
gemdalepi/docs/项目方案.md
T
2026-08-06 14:52:01 +08:00

120 lines
6.1 KiB
Markdown
Raw 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.
# 集团股权架构梳理与可视化项目方案
> 创建:2026-08-06 | 负责人:小五(协调+开发),小强(数据采集/维护),小马(风险分析/报告)
> 目标:梳理集团几百家公司的股权架构(投资公司、股权比例、诉讼/法人限高风险),网页仪表盘可视化
---
## 〇、轻量方案(立即可用):Excel → drawio 自动生成架构图 ✅ 已实现
> 爸爸提的需求:手里有一张 Excel(母/子公司名单),想同步用 drawio 生成股权架构图。
**现状:已完成并验证(2026-08-06**
- 脚本:`股权架构/excel2drawio.py`(纯 Python + openpyxl
- 示例:`股权架构/股权架构示例.xlsx``股权架构/股权架构示例.drawio`8 公司/7 关系验证通过)
**Excel 格式(表头固定)**
| 母公司名称 | 子公司名称 | 股权比例(%) | 备注 |
|---|---|---|---|
| 集团总公司 | 全资子公司A | 100 | 全资 |
| 集团总公司 | 控股子公司B | 60 | 控股 |
| 全资子公司A | 孙公司A1 | 100 | 全资 |
- 每行 = 一条股权关系;无父公司的公司自动识别为根节点(集团)
- 支持任意层级,自动布局(根在上、逐层下排)
- 连线自动标注股权比例 + 备注
- 样式区分:根=深蓝、中间公司=浅蓝、叶子=灰(后续可加风险标色)
**用法**
```bash
python3 excel2drawio.py 股权架构.xlsx 股权架构.drawio
# 改 Excel → 重跑一遍 → drawio 自动刷新(F5)
```
**后续增强(待定)**
- [ ] 风险标色:Excel 加“风险”列(诉讼/限高/失信)→ 节点变黄/红
- [ ] 自动监视 Excel 文件变化,保存即重新生成(watchdog)
- [ ] 与主仪表盘集成:drawio 嵌入网页,或统一用 ECharts
---
## 一、整体架构
```
[数据源] [采集层] [存储层] [服务层] [展示层]
企查查/天眼查API ──→ Python采集脚本 ──→ PostgreSQL ──→ FastAPI后端 ──→ ECharts网页
工商公示系统 (小强负责) (群晖) (小五) (仪表盘)
内部投资台账 数据清洗/去重
执行信息公开网(限高) 定时更新
裁判文书网(诉讼)
```
## 二、分步实施计划
### 阶段 0:需求确认与数据源调研(1周)
- [ ] 确认集团主体公司清单来源(内部台账 or 外部查询)
- [ ] 确定数据源方案:
- 方案A:企查查/天眼查开放平台 API(付费,数据全、稳定,几百家≈几千元级)
- 方案B:国家企业信用信息公示系统(免费,但无API、抓取受限、无反查诉讼)
- 方案C:内部资料为主 + 免费源补充(最省钱,但股权比例可能不全)
- [ ] 确认穿透深度(一级子公司 / 二级 / 三级?参股比例阈值?)
- [ ] 确认风险指标口径:诉讼(被告/原告、金额、状态)、法人限高、失信被执行人
- [ ] 是否有境外主体(BVI/开曼/香港),境外数据源另议
### 阶段 1:数据模型与存储设计(0.5周)
- [ ] 建库:PostgreSQL(群晖已有)
- [ ] 核心表:
- `companies`(公司:统一社会信用代码、名称、法人、注册资本、状态)
- `shareholdings`(股权关系:股东公司→被投公司、比例、金额)
- `risk_events`(风险事件:类型[诉讼/限高/失信]、时间、金额、状态)
- [ ] 统一社会信用代码为主键,公司名归一化(去重核心)
### 阶段 2:数据采集(2-3周,小强主力)
- [ ] 一级子公司清单:从集团内部台账导入(最准确)
- [ ] 股东穿透:逐家查股东结构 → 股权比例 → 二级/三级公司
- [ ] 循环采集:新发现的公司继续穿透,直到达到设定深度
- [ ] 风险数据采集:诉讼记录、法人限高、失信信息
- [ ] 采集脚本断点续传 + 限速防封(企查查API按次数计费需控量)
### 阶段 3:数据清洗与验证(1周)
- [ ] 公司名归一化、去重(同一公司多种写法合并)
- [ ] 股权比例校验(同层加总≤100%、控股关系判定)
- [ ] 数据质量报告(小强产出,发Gitea issue
- [ ] 人工抽验 10-20 家关键公司
### 阶段 4:可视化仪表盘开发(2周,小五主力)
- [ ] 前端:ECharts 组织树图/力导向图,节点=公司,连线=股权比例
- [ ] 交互:点击节点展开下级、搜索公司、点击公司看详情(股权链路+风险列表)
- [ ] 风险标识:节点颜色(绿=无风险/黄=有诉讼/红=限高或失信),角标显示风险数
- [ ] 总览卡片:公司总数、层级数、风险公司占比、限高/诉讼统计
- [ ] 后端:FastAPI 提供公司查询/关系图/风险数据接口
- [ ] 部署:群晖 Nginx 静态页 + API 服务(Docker
### 阶段 5:持续更新与运维(长期)
- [ ] 定时任务:风险数据每日/每周更新,股权结构季度核对
- [ ] 小马:定期输出《股权风险周报》(新增诉讼/限高/股权变更摘要)
- [ ] 告警:重点公司出现限高/失信 → 主动通知爸爸
- [ ] 文档与交接(Gitea 项目仓库托管代码+文档)
## 三、角色分工
| 角色 | 职责 |
|---|---|
| 小五 | 项目架构、数据模型、后端API、可视化开发、整体协调 |
| 小强 | 采集脚本、数据清洗、数据库维护、定时更新 |
| 小马 | 风险分析、周报、图表解读、数据质量复核 |
## 四、风险与注意
- 数据源合规:公开工商数据可爬,但需控制频率;付费API最稳
- 数据时效:工商数据本身有滞后(变更公示期),需标注数据日期
- 免费源诉讼数据不全(裁判文书网公开率下降),建议付费源
- 境外主体数据获取成本高,建议一期先做境内
## 五、待爸爸确认的关键决策
1. **数据源预算**:是否接受企查查/天眼查 API 付费?(决定采集效率和数据完整度)
2. **穿透深度**:梳理到几级?参股<5%的要不要?
3. **公司清单**:集团内部有没有现成的投资台账/子公司清单?
4. **更新频率**:一次性梳理 or 长期持续监控?