项目复杂度评审
从评定人员数据目录自动提取评分、分析证明材料内容、生成Excel评审报告。
依赖
pip install openpyxl PyMuPDF
工作流程
三步流水线,按顺序执行:
Step 1: 提取评分数据
python scripts/extract_scores.py --input <数据目录> --output <中间JSON>
扫描数据目录下所有子目录,从横向表.xlsx中提取人员信息和3.1~3.7复杂度评分。支持一人多目录合并(如同名不同目录自动合并)。
数据目录结构约定:
<数据目录>/
总包X部-姓名-星级评分/
姓名-总包X部-横向表.xlsx
姓名-总包X部-纵向表.xlsx
证明材料/
项目证明1.pdf, 业绩证明1.pdf, ...
资质证书/
其他材料/
Step 2: 分析证明材料内容
python scripts/analyze_content.py --input <数据目录> --persons <Step1的JSON> --output <内容分析JSON>
用PyMuPDF批量提取所有PDF文字,按7项指标关键词匹配文件内容(技术文档、平台产品、分包单位、省份、客户协同、领导批示、人员配置等),区分可提取文字PDF和扫描件。
Step 3: 生成评审报告
python scripts/generate_report.py --input <数据目录> --persons <Step1的JSON> --content <Step2的JSON> --output <评审报告.xlsx>
整合评分数据+材料检测结果,生成Excel报告含3个Sheet:
- 评审总览:每人一行,7项得分+材料缺失数+评审结论,红黄绿三色标记
- 逐人评审明细:每人每指标一行,含评分标准、材料状态、支撑材料详情、补充建议
- 评分规则参考:7项指标的评分标准和所需支撑材料说明
材料检测逻辑
双重检测策略:
1. 文件名匹配:文件名/路径中含指标关键词(如"设计批复"、"分包"、"初验"),采用全词匹配避免子串误匹配(如PMP中误含AI)
2. 内容匹配:PDF正文提取文字后,按指标关键词库匹配(含上下文规则避免短词误匹配)
扫描件(无法提取文字)标记为"(扫描件)待人工核实"。
评分阈值比对(v2+核心改进)
不仅检查"有没有材料",更要比对"材料能不能撑起自评得分":
- 每项指标根据自评分数对应一个档位(如3.4跨省跨域10分→需≥16省)
- 检查材料中实际涉及的量化数据(省份数量、平台种类、交付主体数量等)
- 分数高但材料量化数据不足时,标记为"⚠️ 材料不足/偏少",给出具体差值
增量评审机制(v3+)
v1是评审基线,后续版本采用增量评审策略,避免重复分析已确认的项目:
核心原则
- v1已评项目(✅材料充分 / ⚠️材料偏少 / ✅无需材料)→ 原样继承v1结论,不再重新分析
- v1标红项目(❌缺少材料)→ 用官方评分规则深度重新分析
- 发现新证据 → 升级为✅或⚠️
- 仍未发现证据 → 保持❌,附官方规则量化分析
标注格式(统一为v1)
- 逐项状态:
✅ 材料充分/⚠️ 材料偏少/❌ 缺少材料/✅ 无需材料 - 评审结论:
✅ 材料齐全/⚠️ 建议补充/⚠️ 存在缺失/❌ 缺失严重 - Sheet1表头:
材料缺失\n项数/需补充\n项数/评审结论
版本管理
- 每个版本保存为独立文件(
项目复杂度评审报告v1.xlsx、v2.xlsx、v3.xlsx...) - v1文件为只读基线,不可修改
- v3+版本新增Sheet3「v1→v3变更对照」,仅展示v1❌项的重新分析结果
- v3+版本Sheet2「逐人评审明细」在v1的11列基础上增加3列(评分档位/量化分析/匹配来源),其中v1继承项的这3列留空、匹配来源标记为"v1认可"
v3官方规则深度分析(仅针对v1❌项)
| 指标 | 量化分析方法 |
|---|---|
| 3.1 技术栈 | 检测7大技术栈类型数量(云/网/安/AI/软件平台/数据/视频),与自评档位比对 |
| 3.2 平台产品 | 统计平台产品类型数量,与自评档位比对 |
| 3.3 多交付主体 | 识别交付主体关键词,估算主体数量 |
| 3.4 跨省跨域 | 检测涉及的省份数量,与自评档位比对 |
| 3.5 客户协同 | 识别对接部门级别(司局/处级/科室),检查核心证据 |
| 3.6 高层关注 | 识别最高领导层级(集团/部门/公司/部门级),检测行为证据(批示/督办/调研) |
| 3.7 团队规模 | 提取团队人数,检测人员配置表等核心证据 |
v3生成命令
# 前提:已生成v1报告 + persons.json + content.json
python gen_report_v3.py --v1 "<v1报告路径>" --input <数据目录> --persons persons.json --content content.json --output "<v3输出路径>"
评分规则(官方完整版)
> 来源:电信数智集成服务部项目经理星级评定标准
> 统计周期:2023年—2025年已验收项目
> 项目要求:模式四、资源类、设备供货类、服务转包占比80%以上项目,主营收入不小于100万
3.1 技术栈复杂度指数(满分10分)
统计项目实际应用的技术栈类型(云、网、安、AI、软件平台、数据、视频)
| 得分 | 标准 |
|---|---|
| 10分 | 覆盖6类及以上 |
| 7分 | 覆盖5类 |
| 5分 | 覆盖3-4类 |
| 3分 | 覆盖2类 |
| 0分 | 仅单一技术栈 |
所需材料:设计批复/可研报告/集成方案/技术方案中体现云、网、安、AI、软件平台、数据、视频等技术栈类型数量
3.2 平台产品集成复杂度(满分10分)
统计公司自研、体系内、集团级融合的平台类软件产品集成(标品+定制)
| 得分 | 标准 |
|---|---|
| 10分 | 5种平台产品集成以上 |
| 7分 | 4种平台产品集成 |
| 5分 | 3种平台产品集成 |
| 3分 | 2种平台产品集成 |
| 1分 | 1种平台产品集成 |
| 0分 | 无产品融合 |
所需材料:项目涉及的平台/产品集成数量证明
3.3 多交付主体复杂度(满分10分)
行使总集权利,管理客户侧其他项目供应商(含后向采购的内外部交付服务生态)数量
> 不含设备供货、线路资源、IDC机房资源、公有云资源类供应商
| 得分 | 标准 |
|---|---|
| 10分 | 涉及16个交付主体及以上 |
| 7分 | 涉及11-15个交付主体 |
| 5分 | 涉及5-10个交付主体 |
| 3分 | 涉及2-4个交付主体 |
| 0分 | 仅单一主体 |
所需材料:分包合作单位清单/供应商管理名单/移交表格
3.4 跨省跨域复杂度(满分10分)
体系内跨省跨域交付服务复杂度
| 得分 | 标准 |
|---|---|
| 10分 | 覆盖16个省份及以上 |
| 7分 | 覆盖11-15个省份 |
| 5分 | 覆盖6-10个省份 |
| 3分 | 覆盖2-5个省份 |
| 0分 | 仅本地交付或仅覆盖单一省份 |
所需材料:各省初验证书/验收证书/项目实施范围证明
3.5 客户侧协同复杂度(满分10分)
项目经理需在客户侧对接多部门推进项目进展(不包含客户侧职能部门)
| 得分 | 标准 |
|---|---|
| 2分 | 对接1个司局级单位 |
| 1分 | 对接1个处级部门 |
| 0.5分 | 对接1个科室部门 |
> 按对接部门级别累计计分,满分10分
所需材料:项目通讯录/项目干系人清单/客户签字确认文件
3.6 项目高层关注度(满分10分)
电信内部高层领导重点关注、批示、现场调研、定期听取汇报
| 得分 | 标准 | 领导范围 |
|---|---|---|
| 10分 | 集团领导层 | 集团董事长、集团总经理、集团副总经理 |
| 7分 | 集团部门领导层 | 政企、云网、科创等总经理、副总经理 |
| 5分 | 公司领导层 | 公司总经理、副总经理 |
| 3分 | 集成服务部领导层 | 集成服务部总经理、副总经理 |
| 0分 | 无上述关注 | — |
所需材料:领导批示/督办单/汇报材料/现场调研照片
3.7 团队规模等级(满分10分)
部门内部人员,不含项目经理
| 得分 | 标准 |
|---|---|
| 10分 | >20人以上 |
| 8分 | 16-20人 |
| 6分 | 8-15人 |
| 4分 | 3-7人 |
| 2分 | <3人 |
所需材料:人员配置表/团队组织架构/项目人员清单
快速执行
三步可合并为一行(Windows PowerShell):
$base = "<数据目录>"
python scripts/extract_scores.py --input $base --output persons.json
python scripts/analyze_content.py --input $base --persons persons.json --output content.json
python scripts/generate_report.py --input $base --persons persons.json --content content.json --output "$base\项目复杂度评审报告v1.xlsx"
v3增量评审(在v1基础上)
# 需先完成上述三步生成v1报告
python gen_report_v3.py --v1 "$base\项目复杂度评审报告v1.xlsx" --input $base --persons persons.json --content content.json --output "$base\项目复杂度评审报告v3.xlsx"
注意事项
- 输出文件被Excel占用时,自动保存为
_tmp.xlsx - macOS隐藏文件(
__MACOSX、.DS_Store)自动过滤 - 中间JSON文件(
persons.json、content.json)可用于后续增量更新或调试