Files
ctbjrj/.zcode/plans/plan-sess_1f36d213-6b52-4aa3-8954-2ffd6d5c98c2.md
T

62 lines
4.8 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.
# 方案:AI 快筛异常断路器 + 选型页可视化替换流水线(快+准,不走 SQL)
## 一、需求拆解(按你的原话)
1. **快筛+理解判断**:AI 从选型页规格文本里筛出塑壳/微型断路器中**文本异常**的行(如 `CDM3S-400F/3300400A` 壳架电流粘连、`NM1-125/3300 100A` 脱扣码混写、疑似断路器但写法怪异),由 **LLM 理解判断**(不是死规则)它是不是断路器、异常在哪、正确型号应是什么
2. **不直接操作数据库**:替换不走 SQL UPDATE,改走**软件选型页的编辑业务链路**(与你手改选型页单元格完全同一条链)
3. **AI 点击选型界面对应行**:AI 选中选型页那行(你能看到行被选中、下方明细联动)——"页面定位"
4. **元件库负责选型取价**:元件库页面上选规格/读真实价格(页面真实渲染值),替换动作回到选型页执行
5. **元件库快速定位**:AI 在元件库页面快速定位目标系列/壳架/极数/电流(含反向:按软件选型行的规格在页面上自动选中对应选项)
## 二、总体架构(三阶段流水线)
```
阶段① AI 理解筛选(秒级,一次 LLM 调用)
GET /api/xuanxing 全量清单
→ 正则快筛可疑特征(电流粘连/3300后无空格/壳架>2000/前缀不在常见表…)缩小范围
→ GLM 批量理解判断:是断路器吗?异常类型?推断正确壳架/极数/电流
→ 产出《异常行清单+修正方案》给用户过目
阶段② 元件库取价(每行 1 次往返,~100ms)
/api/page 发一条组合 JS(在元件库页面上下文里):
fetch 页面同款接口拉目标系列价格平表(签名由技能脚本本地生成)
→ 页面内解码 → 返回 壳架×极数×电流×价格 平表
(可再发一条点击 JS 把对应选项点上——你要"看得见"就点,追求速度就跳过点击)
→ AI 按①的修正方案在平表里匹配 → 得到页面真实型号/价格/品名
阶段③ 选型页替换(走编辑链路,零 SQL,你能看到全过程)
POST /api/selectselection {name,guige} → 选型页该行被选中+滚动可见+下方明细联动(AI 的"手指"点在选型界面)
POST /api/editselection {定位键+新值} → 复刻"你在选型页手改单元格":
写 元件名称/规格/表价/采购系数/品牌/系列 → RecalcSelectionRow 行内重算
→ _selectionSummaryDirty 置脏 → SyncSelectionChangesToDb()(现有方法:按名称+规格全项目同步,
★SET 天然不含数量列)→ RefreshQuotePageAfterSelectionEdit(报价页/项目汇总刷新)
→ 选型页立即显示新值(绑定表就是显示表)
```
## 三、改动清单
**1. AI助手接口.cs 新增两接口**(零新 SQL,全部复用现有业务方法):
- `/api/selectselection`:UI Invoke 里遍历 `_selectionSummaryTable` 匹配行 → `advancedDataGridView1.CurrentCell` 选中 + `FirstDisplayedScrollingRowIndex` 滚动可见(自然触发 SelectionChanged→明细联动)
- `/api/editselection`:body={jiu_name,jiu_guige, xin_name?,xin_guige,xin_biaojia,xin_xishu,xin_pinpai,xin_xilie};定位行→逐列赋值(类型按列转换)→ `RecalcSelectionRow(i)` → 置脏 → `SyncSelectionChangesToDb()` → `RefreshQuotePageAfterSelectionEdit()`;拒绝任何数量字段(铁律);找不到定位行返回明确错误
- 新 SQL:无(SyncSelectionChangesToDb 为现有基线方法,其 UPDATE 本就全参数化且 SET 无数量列)
**2. 技能 SKILL.md 重写工作流**(dqb-xuanxing v3):
- 阶段①的快筛正则清单+LLM 判断提示词模板(一次批量判断,禁逐行问模型)
- 阶段②页面上下文取价 JS 模板(fetch+页面内解码平表,附现成片段;点选项作为可选视觉步骤)
- 阶段③ select+edit 组合节奏(每行两次 HTTP)
- 铁律不变:fenlei 只认塑壳/微型;数量绝不碰;结果对照表汇报
**3. 保留兼容**:/api/replaceall 保留(老路线备用),页面替换按钮链路不动
## 四、验证标准
1. csc 零错误;selectselection 点中行后选型页可见选中+明细联动(日志+用户目视)
2. editselection 替换一行:选型页立即变新值、库内全项目同名行同步、**数量逐位不变**、派生价正确——全走 SyncSelectionChangesToDb(diag 日志"[选型页] 已把 N 条元件修改写入数据库"为证)
3. 端到端:真实项目跑一轮"筛异常→取价→替换"(含 CDM3S-400F/3300400A 这类粘连行),修正为规范型号
4. 速度:50 行异常行全流程 ≤ 2 分钟(筛选 1 次 LLM + 每行 3 次 HTTP)
## 五、明确不做
- 不写任何新 SQL(Mimosa 参数绑定约束天然满足)
- 不动选型页现有 UI/编辑逻辑(纯复用)
- 不自动改"类型列"(保持原值,分类防线照旧)