Files
ccdi/docs/plans/backend/2026-03-16-large-transaction-project40-backend-implementation.md

150 lines
5.0 KiB
Markdown
Raw Normal View History

# Project 40 Large Transaction Data Backend Implementation Plan
> **For Claude:** REQUIRED SUB-SKILL: Use superpowers:executing-plans to implement this plan task-by-task.
**Goal:** 为开发库 `project_id=40` 直接插入一批符合大额交易模型口径的银行流水,并完成 SQL 级命中验证。
**Architecture:** 通过独立 SQL 脚本管理测试数据生命周期,只操作 `ccdi_bank_statement`。脚本先清理项目 40 旧流水,再按既定身份、账户、日期和金额批量插入命中流水与少量噪声流水,最后执行核验 SQL 确认每个指标至少命中一次。
**Tech Stack:** MySQL 5.7, PowerShell, 项目现有 `ccdi_bank_statement` 表结构, `assets/大额交易.csv`
---
### Task 1: 固化设计与目标数据清单
**Files:**
- Modify: `D:\ccdi\ccdi\docs\plans\2026-03-16-large-transaction-project40-design.md`
- Create: `D:\ccdi\ccdi\assets\database\2026-03-16-project40-large-transaction-seed.sql`
**Step 1: 复核命中口径**
对照 `assets/大额交易.csv` 和库内默认参数,整理每个指标的命中条件、阈值和使用身份。
**Step 2: 写出目标数据清单**
在 SQL 脚本注释区列出每类指标对应的样本数量、证件号、金额范围、关键词和日期范围。
**Step 3: 自检唯一键策略**
确认每条插入记录的 `(project_id, LE_ACCOUNT_NO, ACCOUNTING_DATE_ID, AMOUNT_DR, AMOUNT_CR)` 组合唯一。
**Step 4: Commit**
```bash
2026-03-17 15:06:59 +08:00
git add docs/design/2026-03-16-large-transaction-project40-design.md assets/database/2026-03-16-project40-large-transaction-seed.sql
git commit -m "文档: 补充项目40大额交易测试数据设计"
```
### Task 2: 编写清理与插入 SQL
**Files:**
- Modify: `D:\ccdi\ccdi\assets\database\2026-03-16-project40-large-transaction-seed.sql`
**Step 1: 写清理语句**
添加只针对 `project_id=40` 的删除语句:
```sql
DELETE FROM ccdi_bank_statement
WHERE project_id = 40;
```
**Step 2: 编写最小插入块**
先写 1 到 2 条房车消费和税务支出的插入语句,确认字段完整:
```sql
INSERT INTO ccdi_bank_statement (
project_id, LE_ID, ACCOUNT_ID, group_id, LE_ACCOUNT_NAME, LE_ACCOUNT_NO,
ACCOUNTING_DATE_ID, ACCOUNTING_DATE, TRX_DATE, CURRENCY,
AMOUNT_DR, AMOUNT_CR, AMOUNT_BALANCE, CASH_TYPE, CUSTOMER_LE_ID,
CUSTOMER_ACCOUNT_NAME, CUSTOMER_ACCOUNT_NO, customer_bank, customer_reference,
USER_MEMO, BANK_COMMENTS, BANK_TRX_NUMBER, BANK, TRX_FLAG, TRX_TYPE,
EXCEPTION_TYPE, internal_flag, batch_id, batch_sequence, CREATE_DATE,
created_by, meta_json, no_balance, begin_balance, end_balance,
override_bs_id, payment_method, cret_no
) VALUES (...);
```
**Step 3: 扩展全部指标数据**
补全单笔大额收入、累计收入、年流水超限、大额存现、多次存现、大额转账和噪声流水。
**Step 4: 运行脚本**
Run:
```bash
mysql --host=116.62.17.81 --user=root --password=*** --database=ccdi < assets/database/2026-03-16-project40-large-transaction-seed.sql
```
Expected: 执行成功,无唯一键冲突。
**Step 5: Commit**
```bash
git add assets/database/2026-03-16-project40-large-transaction-seed.sql
git commit -m "数据: 生成项目40大额交易测试流水"
```
### Task 3: 编写并执行核验 SQL
**Files:**
- Modify: `D:\ccdi\ccdi\assets\database\2026-03-16-project40-large-transaction-seed.sql`
- Create: `D:\ccdi\ccdi\docs\implementation-reports\2026-03-16-project40-large-transaction-report.md`
**Step 1: 添加核验查询**
在脚本末尾添加按 `大额交易.csv` 口径改写后的项目 40 验证查询,覆盖全部指标。
**Step 2: 执行核验**
Run:
```bash
mysql --host=116.62.17.81 --user=root --password=*** --database=ccdi -e "/* verify queries */"
```
Expected: 每个指标返回至少 1 条命中记录或 1 个命中分组。
**Step 3: 记录结果**
把每个指标的命中数量、示例流水编号和涉及人员写入报告文档。
**Step 4: Commit**
```bash
2026-03-17 15:06:59 +08:00
git add assets/database/2026-03-16-project40-large-transaction-seed.sql docs/reports/implementation2026-03-16-project40-large-transaction-report.md
git commit -m "验证: 完成项目40大额交易测试流水校验"
```
### Task 4: 回归检查与收尾
**Files:**
- Modify: `D:\ccdi\ccdi\docs\implementation-reports\2026-03-16-project40-large-transaction-report.md`
**Step 1: 检查项目总量**
Run:
```bash
mysql --host=116.62.17.81 --user=root --password=*** --database=ccdi -e "SELECT project_id, COUNT(*) FROM ccdi_bank_statement WHERE project_id=40 GROUP BY project_id;"
```
Expected: `project_id=40` 存在稳定数量的测试流水。
**Step 2: 抽样检查页面关键字段**
确认 `TRX_DATE``USER_MEMO``CUSTOMER_ACCOUNT_NAME``AMOUNT_DR``AMOUNT_CR` 等字段适合前端展示。
**Step 3: 补充最终说明**
在报告中注明依赖的默认阈值、复用的测试身份和复跑方式。
**Step 4: Commit**
```bash
2026-03-17 15:06:59 +08:00
git add docs/reports/implementation2026-03-16-project40-large-transaction-report.md
git commit -m "文档: 完善项目40大额交易测试流水报告"
```