## Context 当前 `trade_parser.py` 在 `save_to_db` 中对本次导入的数据做了文件内和跨文件去重,且会根据交易时间重新计算 `trade_date`(21:00 之后归属下一交易日)。 业务要求: - 同一委托拆单成交的数据应全部导入,不应去重。 - 导入时保留结算单原始日期。 - 统计分析时按夜盘规则重新归集交易日,但展示日期仍用原始日期。 ## Goals / Non-Goals **Goals:** 1. 移除导入时对本次导入数据的去重逻辑。 2. 导入时直接使用结算单原始日期作为 `trade_date`。 3. 统计分析查询时,新增一个统计用交易日字段,将 21:00 之后的数据归集到下一交易日。 4. 前端统计表格的日期列仍显示原始成交日期。 **Non-Goals:** - 不修改数据库 schema。 - 不修改单条导入接口路径和返回结构。 ## Decisions 1. **去重策略**:仅保留与数据库已有记录的去重,移除 `batch_existing_keys` 和 `new_keys_in_batch` 逻辑。 2. **交易日计算**:导入时不再调用 `recalculate_trade_date`;在 `trade_review_service.py` 查询统计时,使用 `recalculate_trade_date(trade_date, trade_time)` 生成统计用交易日,但原始 `trade_date` 字段保留用于展示。 3. **前端展示**:表格中继续使用原始 `trade_date`,统计分组使用后端返回的统计用交易日字段(或在后端完成分组后直接返回)。 ## Risks / Trade-offs - 如果用户重复导入同一文件,会产生重复数据。需要通过业务提示引导用户,本次变更不再自动去重。