# 北分品管综合管理监控看板系统

## 📊 系统概述

北分品管综合管理监控看板系统，自动从金山文档同步数据并生成可视化看板页面。

### 三大看板

| 看板 | 功能 | 数据源 | 更新频率 |
|------|------|--------|---------|
| 📊 项目执行监控 | 项目进度跟踪 · 风险预警 · 工作量监控 | 金山文档 Sheet 16 | 每5分钟 |
| 👥 人员投入概况 | 人员饱和度 · 项目分配 · 投入趋势 | 金山文档 Sheet 5 | 每5分钟 |
| 💰 盈亏概况 | 合同盈亏 · 收入分析 · 成本管控 | 金山文档 Sheet 1 | 每5分钟 |

## 🌐 访问信息

- **地址**: https://bjpmc.liwei.cyou
- **服务器**: 49.233.127.191（腾讯云）
- **SSL**: Let's Encrypt（自动续期）

## 📁 目录结构

```
/lhcos-data/02_办公工作专属区/01_文档文稿/     ← Web根目录（Nginx）
├── index.html                                ← 导航页（9个功能卡片）
├── project-dashboard-YYYYMMDD.html           ← 项目看板（按日期）
├── personnel-investment-overview-YYYYMMDD.html ← 人员投入概况
├── profit-loss-overview-YYYYMMDD.html        ← 盈亏概况
├── directory.html                            ← 文件列表（动态生成）
├── personnel-investment-overview-template.html ← 人员投入模板
├── 北分项目执行监控看板_20260419_template.html ← 项目看板模板
├── favicon.svg / favicon.png                 ← 网站图标
└── README.md                                 ← 本文档

/lhcos-data/02_办公工作专属区/02_办公脚本_tool/   ← 脚本目录
├── sync_project_monitoring.py                ← 项目看板同步脚本 v2.0
├── sync_profit_loss_dashboard.py             ← 盈亏概况同步脚本
└── generate_directory.py                     ← 文件列表生成脚本

/lhcos-data/02_办公工作专属区/02_办公脚本工具/enhanced/ ← 人员投入脚本
├── sync_personnel_dashboard_enhanced.py      ← 人员投入同步脚本 v4.0
└── inject_fix_patch_v6.py                    ← 数据注入模块 v6
```

## 🔄 自动同步机制

所有看板由 **agentuser crontab** 统一调度：

```bash
# 查看当前cron配置
crontab -l

# 任务列表：
# 项目看板    */5 * * * * （每5分钟）
# 盈亏概况    */5 * * * * （每5分钟）
# 人员投入    */5 * * * * （每5分钟）
# 文件列表    */5 * * * * （每5分钟）
# 导航页备份  0 0 * * *   （每天0点）
```

### 每日自动切日

- 每天0点后首次同步自动生成当日新HTML文件
- 各脚本自动更新导航页 `index.html` 中对应的链接指向当日文件
- 导航页每日0点自动备份，保留30天

### 备份策略

- 每次生成前自动备份旧文件到同目录（`_backup_时间戳` 后缀）
- 同日期最多保留3份备份
- 导航页独立备份保留30天

## 🔧 技术架构

| 组件 | 技术 |
|------|------|
| Web服务器 | Nginx（静态文件服务） |
| 前端 | 纯HTML + CSS + JavaScript，零外部依赖 |
| 图表 | SVG环形图 + CSS柱状图（项目看板、人员投入） |
| 图表 | Chart.js CDN（盈亏概况） |
| 数据源 | 金山文档API（kdocs-cli） |
| 自动化 | Python + crontab |
| 文件权限 | agentuser:www-data 640 |

## 📝 注意事项

1. 文件权限必须为 `640`，组必须为 `www-data`，否则Nginx返回403
2. 所有业务文件存放于 `/lhcos-data`（COS云存储盘），勿存系统盘
3. 模板中日期/时间使用占位符（`<!--DATE_ONLY-->`、`<!--TIME_ONLY-->`），由脚本注入
4. `inject_fix_patch_v6.py` 中 `re.sub` 替换一律用 lambda，禁止 f-string 拼接 `\g<N>`

## 📞 排查指南

```bash
# 查看同步日志
tail -50 /tmp/project_monitoring_sync.log
tail -50 /tmp/profit_loss_sync.log
tail -50 /tmp/personnel_dashboard_sync.log

# 手动触发同步
cd /lhcos-data/02_办公工作专属区/02_办公脚本_tool
python3 sync_project_monitoring.py
python3 sync_profit_loss_dashboard.py
python3 /lhcos-data/02_办公工作专属区/02_办公脚本工具/enhanced/sync_personnel_dashboard_enhanced.py --mode full

# 重新生成文件列表
python3 /lhcos-data/02_办公工作专属区/01_文档文稿/generate_directory.py

# 检查Nginx状态
systemctl status nginx
```
