This commit is contained in:
yangfan
2025-10-17 17:44:24 +08:00
parent a6c4e8d8ba
commit cc9f3e21c9
7 changed files with 1257 additions and 2514 deletions

33
task.md
View File

@@ -31,8 +31,8 @@
- **Order** (订单列表)
- 范围: F列合并单元格包含的所有行
- 包含字段:
- **OrderNum** (订单号): H列
- **Amount** (金额): I列
- **OrderNum** (订单号): H列 - 可以为空(null)
- **Amount** (金额): I列 - 必需(空值的订单会被跳过)
- **AccountName** (账户名称): O列(支持公式,读取计算结果)
##### 1.2.3 数据验证
@@ -70,7 +70,8 @@
```
#### 1.4 特殊处理
- 跳过订单号为空的行
- 允许订单号(OrderNum)为空,但金额(Amount)必需
- 跳过金额为空的订单,不生成分录
- 处理F列合并和非合并单元格混合的情况
- 读取O列公式计算后的值(data_only=True)
@@ -91,7 +92,7 @@
**1) 到账金额 - 借方记录** (每笔记录1条)
- 科目代码: `1002.02`
- 科目名称: `银行存款 - 中行USD`
- 摘要: `美金收款-{OrderNum}`
- 摘要: `美金收款-{OrderNum}` (如果OrderNum为空,则为 `美金收款`)
- 核算项目: Order[0].AccountName
- 币别: 美元
- 汇率: 7.1072 (可配置)
@@ -101,7 +102,7 @@
**2) 手续费 - 借方记录** (仅当 HandlingFee > 0)
- 科目代码: `5603.03`
- 科目名称: `财务费用-手续费`
- 摘要: `美金收款-{OrderNum}`
- 摘要: `美金收款-{OrderNum}` (如果OrderNum为空,则为 `美金收款`)
- 核算项目: 空
- 币别: 人民币
- 汇率: 空
@@ -112,7 +113,7 @@
- 科目代码: `1122`
- 科目名称: `应收账款`
- 应收账款: Order.Amount (显示在"应收账款"列)
- 摘要: `美金收款-{OrderNum}`
- 摘要: `美金收款-{OrderNum}` (如果OrderNum为空,则为 `美金收款`)
- 核算项目: Order.AccountName
- 币别: 美元
- 汇率: 7.1072 (可配置)
@@ -121,8 +122,13 @@
##### 2.2.2 特殊规则
**摘要生成**
- 当OrderNum有值时: 摘要为 `美金收款-{OrderNum}`
- 当OrderNum为空时: 摘要固定为 `美金收款`
**空值处理**
- Order.Amount为null的订单跳过,不生成分录
- OrderNum可以为空(null),允许记录
**金额验证**
- checkRes为false的记录,所有相关分录行标记为粉红色背景(#FAD1D4)
@@ -323,13 +329,24 @@ checkRes = abs(received_plus_fee - order_amount_sum) < 0.01
## 版本信息
- **版本**: v1.1
- **最后更新**: 2025-01-17
- **版本**: v1.3
- **最后更新**: 2025-10-17
- **作者**: Claude Code
- **状态**: 已完成并测试
### 版本历史
**v1.3** (2025-10-17)
- 支持OrderNum为空的订单记录
- 修改数据提取逻辑: 允许OrderNum为空,只跳过Amount为空的订单
- 优化摘要生成: OrderNum为空时摘要显示为 `美金收款`
- 确保所有数据行都被正确记录和处理
**v1.2** (2025-10-17)
- 新增汇率文件支持: 可通过 `exchange_rate.txt` 设置汇率
- 智能汇率验证: 自动检测异常汇率并回退到默认值
- 改进错误处理: 汇率文件异常时提供详细提示信息
**v1.1** (2025-01-17)
- 优化会计分录规则: 移除"到账金额-贷方"记录
- 每个Order记录都生成对应的贷方分录(无例外)