MRobot/FINANCE_MODULE_GUIDE.md
2025-11-25 17:26:46 +08:00

208 lines
6.0 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.

# 财务做账模块使用指南
## 功能概述
MRobot 财务做账模块是一个完整的财务管理系统,提供做账、查询、导出三大功能。支持多账户管理、图片附件、本地数据存储等功能。
### 核心特性
- **多账户管理**: 支持创建和管理多个独立的财务账户
- **完整的交易记录**: 每条记录包含日期、金额、交易人、备注和三种类型的图片证明
- **图片管理**: 支持为每条记录关联发票、支付记录、购买记录三张图片
- **本地存储**: 所有数据和图片存储在本地,组织清晰
- **强大的查询**: 支持按日期、金额、交易人多条件查询
- **数据导入导出**: 支持ZIP打包转移、CSV导出、完整备份
## 目录结构
```
assets/Finance_Data/
├── accounts/ # 账户数据目录
│ ├── [账户ID]/ # 每个账户的独立目录
│ │ ├── metadata.json # 账户元数据
│ │ ├── [交易ID]/ # 每条交易记录的目录
│ │ │ ├── data.json # 交易记录数据
│ │ │ ├── invoice/ # 发票图片
│ │ │ ├── payment/ # 支付记录图片
│ │ │ └── purchase/ # 购买记录图片
├── backups/ # 自动备份目录
├── images/ # 临时图片缓存(可选)
└── [其他文件]
```
## 使用指南
### 1. 做账标签页
#### 创建账户
1. 点击"新建账户"按钮
2. 输入账户名称和描述(可选)
3. 点击确定
#### 创建新交易记录
1. 选择账户
2. 点击"新建记录"按钮
3. 填写表单信息:
- **日期**: 默认为当前日期,可修改
- **金额**: 必须大于0
- **交易人**: 必填项,填写交易对象
- **备注**: 可选,补充说明
- **图片**: 可选上传发票、支付记录、购买记录三张图片
#### 管理交易记录
- **编辑**: 点击"编辑"按钮修改记录
- **删除**: 点击"删除"按钮删除记录
- **查看**: 点击"查看"按钮查看完整详情和图片预览
#### 统计信息
- 实时显示总金额(人民币)
- 显示记录总数
### 2. 查询标签页
#### 设置查询条件
- **日期范围**: 默认查询最近一个月,可自定义
- **金额范围**: 可设置最小和最大金额
- **交易人**: 支持模糊搜索(不区分大小写)
#### 执行查询
1. 调整过滤条件
2. 点击"查询"按钮
3. 结果列表显示匹配的记录
#### 查看记录详情
- 点击结果列表中的"查看详情"按钮
- 显示完整信息和图片预览
### 3. 导出标签页
#### 导出账户为ZIP包
- 用途: 转移账户给他人使用
- 操作: 点击"导出为ZIP包",选择保存位置
- 文件名格式: `账户名_账户ID.zip`
- 包含所有交易记录和附加图片
#### 导出为CSV格式
- 用途: 用Excel或其他工具分析
- 操作: 点击"导出CSV",选择保存位置
- 内容: 日期、金额、交易人、备注、创建时间
#### 导入账户
- 用途: 导入他人共享的账户
- 操作: 点击"导入账户"选择ZIP文件
- 系统自动提取并加载账户
#### 创建备份
- 用途: 备份所有账户
- 操作: 点击"创建备份"
- 保存位置: `assets/Finance_Data/backups/backup_[时间戳].zip`
- 自动压缩所有账户数据
## 数据模式
### 交易记录数据结构
```json
{
"id": "唯一ID",
"date": "2024-01-15",
"amount": 1500.50,
"trader": "张三",
"notes": "购买办公用品",
"invoice_path": "accounts/xxx/yyy/invoice/receipt.jpg",
"payment_path": "accounts/xxx/yyy/payment/wechat.jpg",
"purchase_path": "accounts/xxx/yyy/purchase/order.jpg",
"created_at": "ISO格式时间戳",
"updated_at": "ISO格式时间戳"
}
```
### 账户元数据结构
```json
{
"id": "唯一ID",
"name": "账户名称",
"description": "账户描述",
"created_at": "ISO格式时间戳",
"updated_at": "ISO格式时间戳"
}
```
## 最佳实践
### 大数据量管理
- **分账户**: 按业务类型或时间周期创建多个账户
- **定期备份**: 定期使用"创建备份"功能
- **及时查询**: 不要一次加载过多数据,使用查询功能精确定位
### 图片管理
- **推荐格式**: PNG、JPG、BMP、JPEG
- **推荐大小**: 不超过2MB
- **文件组织**: 三张图片分别存储,避免重复
### 数据安全
- 所有数据存储在本地,不上传到云端
- 定期备份重要数据
- 谨慎删除账户和记录
## 文件结构详解
### finance_manager.py
核心数据管理模块,包含:
- `TransactionType`: 交易类型枚举
- `Transaction`: 交易记录数据模型
- `Account`: 账户数据模型
- `FinanceManager`: 主要的财务管理类
### finance_interface.py
用户界面模块,包含:
- `CreateTransactionDialog`: 创建/编辑交易对话框
- `RecordViewDialog`: 查看交易详情对话框
- `FinanceInterface`: 主界面和三个标签页
## 常见问题
### Q: 如何转移账户给他人?
A: 使用"导出为ZIP包"功能导出账户将ZIP文件发送给对方对方使用"导入账户"导入。
### Q: 删除记录后能恢复吗?
A: 不能。请定期创建备份,以防误删。
### Q: 支持的最大数据量是多少?
A: 理论上不限制但建议单个账户不超过10000条记录以保持性能。
### Q: 图片能否修改?
A: 不能。如需修改,请删除记录后重新创建。
### Q: 可以合并账户吗?
A: 暂不支持。可以手动导出CSV后粘贴合并。
## 技术细节
### 数据存储方式
- 元数据: JSON格式
- 交易记录: JSON格式
- 图片: 原始格式JPG、PNG等
### 查询性能
- 账户级别的内存缓存
- 交易记录按日期倒序排列
- 查询时进行内存过滤
### 文件安全
- 所有写入操作使用原子性操作
- 删除前自动备份(通过备份功能)
- 支持恢复已备份数据
## 更新日志
### v1.0.0
- 初始发布
- 支持基本的做账、查询、导出功能
- 支持多账户管理
- 支持图片附件
- 支持备份和恢复
---
**使用此模块前,请确保 MRobot 已正确安装并配置好依赖环境。**