dy-dashboard/vault/知识库/工作指南/训练记录/2026-09-18-计划预测选项筛选空值误命中修复.md
2026-10-28 11:14:17 +08:00

18 lines
1.4 KiB
Markdown
Raw Permalink 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.

# 2026-09-18 计划预测选项筛选空值误命中修复
### 1. 修复计划预测「是否调拨」列筛选异常
**旭东 → OpenClaw:**
> 计划预测菜单里面的计划预测-国内品下边,是否调拨字段列筛选异常,我筛选云仓时,出来的数据还是有空的
**OpenClaw 响应:**
已定位并修复。
- **现象复现**:接口按「是否调拨=云仓」筛选时,返回总数 2,509 与不筛选完全相同,首页 200 行里有 187 行「是否调拨」为空。
- **根因**:列表接口的选项筛选匹配写成 `v == row_val or v in row_val or row_val in v`。其中反向包含 `row_val in v` 在单元格为空时恒为真(空字符串是任何字符串的子串),所以空值行会被任何选项命中;同理单元格为「云仓」时也会被选项「云仓和外仓」命中。
- **修复**:去掉反向包含判断,只保留「完全相等」或「单元格包含所选选项」,空值单独判为不匹配。
- **验证**:修复后筛「云仓」→ 625 行且 200 行全部为云仓、不符 0;筛「外仓」「云仓和外仓」均 0 行(当前确实没有这类数据);多选「云仓+外仓」同样只返回云仓 625 行。回归检查风险把控、销售趋势、是否新品、产品种类、波动风险等选项字段筛选,返回行全部严格匹配、不符 0。
- 测试服务重启后 active,本机与局域网 HTTP 200,Git 提交 `1c81ac0`。未操作生产环境。