108 lines
3.2 KiB
Markdown
108 lines
3.2 KiB
Markdown
# 脚本说明
|
||
|
||
## seed_test_users.py:插入测试用户(供测试工程师使用)
|
||
|
||
向 `users` 表插入 6 个测试账号(管理员、市场部、工程部、技经部、财务部、物贸部各一),**统一密码:123456**。
|
||
|
||
**用法**
|
||
|
||
```bash
|
||
cd backend
|
||
source .venv/bin/activate
|
||
PYTHONPATH=src python scripts/seed_test_users.py
|
||
```
|
||
|
||
**测试账号**
|
||
|
||
| 账号 (username) | 角色 | 密码 |
|
||
|-----------------|----------|--------|
|
||
| admin | 管理员 | 123456 |
|
||
| market | 市场部 | 123456 |
|
||
| engineer | 工程部 | 123456 |
|
||
| tech | 技经部 | 123456 |
|
||
| finance | 财务部 | 123456 |
|
||
| material | 物贸部 | 123456 |
|
||
|
||
(新建项目仅市场部可调,其他角色可查看/修改。)
|
||
|
||
---
|
||
|
||
## clean_db.py:清空项目与操作日志表
|
||
|
||
清空 `projects`、`operation_logs` 表(保留 `users`)。用于重新导入前清理数据。
|
||
|
||
**用法**
|
||
|
||
```bash
|
||
cd backend
|
||
source .venv/bin/activate
|
||
PYTHONPATH=src python scripts/clean_db.py
|
||
```
|
||
|
||
**清理并重新导入(一条命令)**
|
||
|
||
```bash
|
||
cd backend && source .venv/bin/activate && PYTHONPATH=src python scripts/clean_db.py && PYTHONPATH=src python scripts/import_xls.py ../docs/example.xls
|
||
```
|
||
|
||
---
|
||
|
||
## migrate_add_statistics_type.py:为 projects 表增加统计类型列
|
||
|
||
为已有 `projects` 表添加 `statistics_type` 列(若不存在)。
|
||
|
||
```bash
|
||
cd backend && PYTHONPATH=src python scripts/migrate_add_statistics_type.py
|
||
```
|
||
|
||
**migrate_statistics_type_repair.py**:将已有数据中的「检修、技改、抢修」统一改为「检修-技改-抢修」(一次性执行)。
|
||
|
||
```bash
|
||
cd backend && PYTHONPATH=src python scripts/migrate_statistics_type_repair.py
|
||
```
|
||
|
||
---
|
||
|
||
## fill_statistics_type_from_xls.py:按「统计」表填充统计类型
|
||
|
||
根据 `docs/example.xls` 的「统计」表,为已有项目填充 `statistics_type`(基建工程、业扩项目、户表、客户工程、营销项目、检修-技改-抢修、其他)。导入数据后建议执行一次。
|
||
|
||
```bash
|
||
cd backend && PYTHONPATH=src python scripts/fill_statistics_type_from_xls.py
|
||
# 或指定 xls 路径
|
||
PYTHONPATH=src python scripts/fill_statistics_type_from_xls.py /path/to/example.xls
|
||
```
|
||
|
||
---
|
||
|
||
## import_xls.py:导入 example.xls 到 projects 表
|
||
|
||
将 `docs/example.xls` 中的项目数据导入 ocean 数据库的 `projects` 表。
|
||
|
||
**前置条件**
|
||
|
||
1. 已执行 `schema.sql` 创建数据库和表。
|
||
2. 已配置 `.env`(MySQL 连接信息)。
|
||
3. 已安装依赖:`pip install -r requirements.txt`(含 mysql-connector-python、xlrd)。
|
||
|
||
**用法**
|
||
|
||
```bash
|
||
cd backend
|
||
source .venv/bin/activate
|
||
PYTHONPATH=src python scripts/import_xls.py
|
||
```
|
||
|
||
默认读取 `../docs/example.xls`(相对 backend)。也可指定路径:
|
||
|
||
```bash
|
||
PYTHONPATH=src python scripts/import_xls.py /path/to/example.xls
|
||
```
|
||
|
||
**说明**
|
||
|
||
- 使用第一个 Sheet;表头为第 3 行(row 2),数据从第 6 行(row 5)开始。
|
||
- 仅导入「合同编号」非空的行;若「项目名称」为空则用合同编号或「未命名」。
|
||
- 表头与 `schema.sql`、`初始需求` 对齐(含「其中:」等前缀的列已映射)。
|
||
- 导入成功后输出:成功条数、跳过条数。
|