249 lines
14 KiB
Markdown
249 lines
14 KiB
Markdown
# 2026-08-24 每日训练笔记
|
||
|
||
> 来源:旭东与 OpenClaw 每日训练,2026-08-24
|
||
> 类型:训练记录
|
||
|
||
### 1. 钉盘数据更新至 8.186 与云端
|
||
|
||
**旭东 → OpenClaw:**
|
||
> 现在钉盘里面数据已更新,你去读取并更新到8.186系统和云端系统中
|
||
|
||
**OpenClaw 响应:**
|
||
核对钉盘最新数据:库存 `20260824-wdt-kcmx`(20 个仓库文件),日出库最新 `20260823-wdt-cksj.csv`。按现有增量导入规则更新 8.186(新增库存 20,740 条、日出库补齐 3,515 条),再同步云端(云端与本地记录总量一致,未覆盖云端业务数据),未操作 11.79 生产环境。
|
||
|
||
### 2. 接入 OpenLux DeepSeek V4 Pro 模型
|
||
|
||
**旭东 → OpenClaw:**
|
||
> 我现在要继续接入一个大模型,信息如下
|
||
> 接口地址:https://api.openlux.ai/
|
||
> API Key:sk-IebGOYmpc1gi5XBvsYbxmVQziULJvRayUQPO4nIAfSoDfujy
|
||
> 模型ID:deepseek-v4-pro-0813
|
||
|
||
**OpenClaw 响应:**
|
||
新增 OpenLux 的 `deepseek-v4-pro-0813` 模型配置,采用 OpenAI 兼容接口协议,路由为 `openlux/deepseek-v4-pro-0813`,配置校验通过、模型列表可识别,API Key 已写入本机配置。
|
||
|
||
### 3. 模型选择库未显示 OpenLux
|
||
|
||
**旭东 → OpenClaw:**
|
||
> 但是目前在模型选择库里面没有看见这个openlux/deepseek-v4-pro-0813
|
||
|
||
**OpenClaw 响应:**
|
||
查明原因:模型已配置但未加入 OpenClaw 模型选择库允许列表。已补充 `openlux/deepseek-v4-pro-0813` 到允许列表,配置校验与模型识别均通过。
|
||
|
||
### 4. 确认下单按采购跟单列钉钉通知(可行性)
|
||
|
||
**旭东 → OpenClaw:**
|
||
> 我现在想实现一个功能,在待下单管理子菜单里面,点击确认下单之后,想要根据采购跟单列的信息进行钉钉通知,能做到吗?
|
||
|
||
**OpenClaw 响应:**
|
||
确认可行。确认下单(单个/批量)统一走后端 `POST /api/purchase/confirm_order`(routes/purchase.py),在该处加通知逻辑即可;采购跟单列有两种形态(组名或人员姓名列表)。
|
||
|
||
### 5. 按组别发到对应钉钉群
|
||
|
||
**旭东 → OpenClaw:**
|
||
> 想要实现的是在群里通知,根据不同组别,钉钉会有对应的钉钉群
|
||
|
||
**OpenClaw 响应:**
|
||
梳理出群映射:跟单一组→采购1组群、跟单二组→采购2组群、跟单三组→采购3组群、现货小组→现货采购群,与旭东逐一确认。
|
||
|
||
### 6. 确认群映射与通知格式
|
||
|
||
**旭东 → OpenClaw:**
|
||
> 1、群映射完全正确
|
||
> 2、通知内容格式如下:
|
||
> 备货通知
|
||
> 货品编号:等于货品编号
|
||
> 货品名称:等于货品名称
|
||
> 成品数量:等于正式下单数量
|
||
> 包材数量:等于下单时,对应包材得实际下单数量
|
||
|
||
**OpenClaw 响应:**
|
||
实现「确认下单 → 钉钉群备货通知」:按组别映射群,采购跟单列支持组名/成员姓名两种形态解析;通知按群聚合一条消息,后台线程发送不阻塞下单,发送失败仅记日志。语法检查、组别解析 12 组测试、dry-run 验证均通过,测试服务重载 HTTP 200,Git 提交 `0b12fc0`。
|
||
|
||
### 7. 包材数量按物料分别展示
|
||
|
||
**旭东 → OpenClaw:**
|
||
> 📦 备货通知
|
||
> 货品编号:POZ-XXXX
|
||
> 货品名称:XXXX
|
||
> 成品数量:100(=正式下单数量)
|
||
> 包材数量:500(=本次下单包材实际下单数量合计)
|
||
> 这里有一个问题,包材数量不是本次下单包材实际下单数量的合计,而是包材分别的数量,比如彩盒500,瓶子500,泵头500这种形式
|
||
|
||
**OpenClaw 响应:**
|
||
修正为按物料逐行展示实际下单数量(彩盒:500 / 瓶子:500 / 泵头:500),不再合计。Git 提交 `8682265`。
|
||
|
||
### 8. 确认下单报网络错误
|
||
|
||
**旭东 → OpenClaw:**
|
||
> 发现一个异常,现在在待下单管理里面点击下单,提示❌ 网络错误: Unexpected token '<', "
|
||
|
||
**OpenClaw 响应:**
|
||
定位根因:确认下单时若前端未传 BOM 修改数据,后端从 bom 表加载的 `quantity` 为 Decimal 类型,`json.dumps` 崩溃返回 500 HTML,前端解析 JSON 失败。该 bug 在钉钉通知改动前已存在。在 json.dumps 增加 `default` 转换 Decimal→float 修复。Git 提交 `6e7af78`。
|
||
|
||
### 9. 通知样式美化(换行)
|
||
|
||
**旭东 → OpenClaw:**
|
||
> 📦 备货通知 货品编号:(Qsimelr-FXS-8454) 货品名称:Qsimelr防晒霜 成品数量:300 包材数量: Qsimelr防晒霜-瓶子:500 Qsimelr防晒霜-彩盒:500
|
||
> 现在发送的通知是这样的,我想要样式美观一下变成这样
|
||
> 📦 备货通知
|
||
> 货品编号:(Qsimelr-FXS-8454)
|
||
> 货品名称:Qsimelr防晒霜
|
||
> 成品数量:300
|
||
> 包材数量: Qsimelr防晒霜-瓶子:500 Qsimelr防晒霜-彩盒:500
|
||
|
||
**OpenClaw 响应:**
|
||
因钉钉 markdown 单个 `\n` 不换行,改用 `<br/>` 强制换行,字段逐行展示;包材明细改同行空格分隔。Git 提交 `5ae4e7b`、`c1e4e6b`。
|
||
|
||
### 10. 通知格式再调整(每个包材单独一行)
|
||
|
||
**旭东 → OpenClaw:**
|
||
> 📦 备货通知
|
||
> 货品编号:(WPK-TMG-7991)
|
||
> 货品名称:【WOPUKA】脱毛膏
|
||
> 成品数量:200
|
||
> 包材数量:【WOPUKA】脱毛膏【软管】:200
|
||
> 包材数量:【WOPUKA】脱毛膏【彩盒】:200
|
||
> 修改成这样的通知格式
|
||
|
||
**OpenClaw 响应:**
|
||
每个包材单独一行,且每行带「包材数量:」前缀。Git 提交 `f65264a`。
|
||
|
||
### 11. 模型切换后自动回退到官方模型
|
||
|
||
**旭东 → OpenClaw:**
|
||
> 为什么我在模型选择这里切换成了DeepSeek V4 Pro 0813(OpenLux),但是使用过程中还是会自动切换成DeepSeek官方模型
|
||
|
||
**OpenClaw 响应:**
|
||
根因是配置层级问题(非 bug):助手 `dingtalk-assistant` 的模型仍受全局默认模型配置约束。已将 `dingtalk-assistant` 默认模型设为 `openlux/deepseek-v4-pro-0813`,重启 gateway 后生效(新进程 PID 173844)。
|
||
|
||
**旭东 → OpenClaw:**
|
||
> 确认修改
|
||
|
||
### 12. 下单备份回退订单未回到待下单
|
||
|
||
**旭东 → OpenClaw:**
|
||
> 发现一个异常,从下单备份管理里面回退订单的时候,订单没有回退到待下单管理中
|
||
|
||
**OpenClaw 响应:**
|
||
根因:`pending_orders` 表唯一索引 `uk_product_code` 与「保留历史备份 + 复制新 pending 记录」的设计冲突,回退 INSERT 触发唯一约束冲突(1062 Duplicate entry)。修复:移除唯一索引改普通索引 `idx_product_code`,`migrate_db.py` 加自动迁移,`add_pending` 改按 status='pending' 行 id 更新,并补建两条被卡住记录。Git 提交 `8e88989`。
|
||
|
||
### 13. 计划预测下单信息弹窗包材未重算
|
||
|
||
**旭东 → OpenClaw:**
|
||
> 发现一个异常
|
||
> 在计划预测里面,下单信息弹窗中,修改成品实际下单数量的时候,包材下单信息里面的下单后包材会随之变化,但是当包材实际下单数量同步有数据之后,下单后包材的数据没有计算准确,比如POZ-RCG-0658-TM这个品,现在点击下单信息弹窗后,下单后包材是7000,我修改成品下单数量为3000后,下单后包材为6000,但是将这个3000同步到包材下单信息中的实际下单数量后,下单后包材数量应该为7000,但是目前还是显示6000
|
||
|
||
**OpenClaw 响应:**
|
||
根因:同步包材实际下单数量时用 `mInp.value = newMatQty` 程序化赋值,不触发 input/change 事件,`refreshPostPackValues()` 未重跑。修复:同步后显式调用 `refreshPostPackValues()` 重算下单后包材。Git 提交 `4751a30`。
|
||
(期间旭东追问「异常解决了吗?」「继续解决异常」,已最终修复验证。)
|
||
|
||
### 14. 库存数据看板加载慢优化
|
||
|
||
**旭东 → OpenClaw:**
|
||
> 发现一个异常,采销协同下的库存数据看板每次加载时间都太久了,检查一下原因并优化以下
|
||
|
||
**OpenClaw 响应:**
|
||
定位瓶颈:看板「缺货监控」查询在 `inventory_detail` 近 200 万行上按月份全量聚合、临时表/排序,单条约 2.3 秒,叠加当月+环比计算首次加载约 4 秒。优化:缺货判断加 `available_qty = 0` 条件缩小扫描范围(统计口径不变),清理并重建当月及环比月份缓存。Git 提交 `a58d164`。
|
||
|
||
### 15. 新品下单菜单优化
|
||
|
||
**旭东 → OpenClaw:**
|
||
> 新品下单菜单下需要优化一下几点
|
||
> 1、增加新品包材管理子菜单
|
||
> 2、新品管理改名为新品成品管理
|
||
> 3、新品管理里面BOM涉及到的物料,都需要根据BOM弹窗中的表头,同步到新品包材管理中。
|
||
|
||
**OpenClaw 响应:**
|
||
新增「新品包材管理」子菜单(直接读取 `new_product_bom`,与 BOM 弹窗同表头实时展示,避免重复维护);「新品管理」更名「新品成品管理」。支持成品/物料/供应商筛选和分页。Git 提交 `5449992`。
|
||
|
||
### 16. 新品BOM含税字段、成品与包材导出、包材固定表头
|
||
|
||
**旭东 → OpenClaw:**
|
||
> 继续优化下面几点
|
||
> 1、新品成品管理的BOM弹窗里面添加一个字段列叫是否含税,税点不为0时,自动为是,税点为0时,自动为否
|
||
> 2、新品成品管理、新品包材管理下新增导出功能,并且可以选择字段列,可以保存导出方案,方便下次继续沿用
|
||
> 3、新品包材管理下表头固定住,不随上下滑动内容而变。
|
||
> (期间追问「处理完了吗?」)
|
||
|
||
**OpenClaw 响应:**
|
||
完成三项:BOM 弹窗新增「是否含税」派生字段(税点非0显示"是"、为0或空显示"否",同步到包材管理与导出);成品/包材管理新增可选字段 Excel 导出,可保存/加载/设默认/删除导出方案,沿用当前筛选;包材管理表头固定。Git 提交 `e5e12f2`。
|
||
|
||
### 17. 新品成品管理同步权限确认
|
||
|
||
**旭东 → OpenClaw:**
|
||
> 发现一个异常,在新品成品管理界面,同步功能是不是只能管理员有权限点击同步,非管理员点击同步会提示没有操作权限
|
||
|
||
**OpenClaw 响应:**
|
||
确认当前逻辑:同步按钮对非管理员也会显示,但点击后后端 `operation_required('product_new','sync')` 校验,仅管理员/超级管理员可执行,非管理员会提示无操作权限。
|
||
|
||
### 18. 新品BOM数量与用量分离
|
||
|
||
**旭东 → OpenClaw:**
|
||
> 发现一个异常,新品成品管理里面录入的数量,同步到计划预测时,误同步到用量了,这不是对应关系的,所以做以下优化
|
||
> 1、新品成品管理下BOM弹窗中新增一列为用量列,放在物料名称的右侧,默认为1,但是设置为可编辑文本框状态
|
||
> 2、新加的用量列,同步到物料清单时,对应的是用量
|
||
|
||
**OpenClaw 响应:**
|
||
新增独立「用量」字段(默认 1、可编辑),原「数量」继续保留为新品采购数量;同步物料清单时只取新「用量」字段,不再误用采购数量。数据库已具备 `usage_quantity` 字段。Git 提交待提交。
|
||
|
||
### 19. 产品信息管理详情/编辑提示无产品信息
|
||
|
||
**旭东 → OpenClaw:**
|
||
> 还发现一个异常,基础数据下的产品信息管理中,有的产品点击详情或者编辑之后,有异常提示,无产品信息。
|
||
|
||
**OpenClaw 响应:**
|
||
根因:操作列用 HTML 转义直接拼接产品编码到 onclick 参数,特殊编码(空格、& 等)导致详情/编辑传参异常,接口无法按原编码查询。改为统一 JS 字符串安全转义,详情/编辑/BOM 按钮均可正确传参。语法、导入、特殊编码检查通过,测试服务重载 HTTP 200。Git 提交待提交。
|
||
|
||
### 20. 生产环境两阶段打包部署
|
||
|
||
**旭东 → OpenClaw:**
|
||
> 1、需要打包8.186测试环境下所有的功能代码、数据库结构、数据库字段、知识库,更新部署到云端环境下,不要覆盖云端环境的数据
|
||
> 2、等待第一步完成之后,打包云端环境下的全部内容包含所有数据,升级到11.79生产环境中
|
||
> 云端服务器 IP:82.156.135.91
|
||
> SSH登录用户名:ubuntu
|
||
> SSH登录密码:dieya123,.
|
||
|
||
**OpenClaw 响应:**
|
||
第一步已完成:8.186 功能代码、数据库结构/字段、知识库已部署到云端(实际目录 `/opt/dy-dashboard`),云端原有数据库数据未覆盖,已留存回滚备份,云端 47 张表/893 字段。第二步已导出云端完整数据库(约 82MB 压缩包 + 项目 36MB,均校验哈希),**尚未操作 11.79 生产**。已在第二步执行前停下,等待旭东回复「确认覆盖生产」后再继续。
|
||
|
||
---
|
||
|
||
## 自动任务(当日,非旭东直接沟通)
|
||
|
||
- 03:00 知识库每日检查:lint_knowledge.py 通过,自动清理 1 处已删除文章索引,483 个问题均为孤立页面(正常)。
|
||
- 07:00 数据自动更新:无新 CSV,日出库/日库存导入及完整性检查通过。
|
||
- 08:00 数据清洗:本次无脏数据需要修复。
|
||
- 08:30 数据库备份:导出 79M,备份包 394M,清理 30 天前旧备份。
|
||
- 12:00 数据自动更新:无新文件,数据完整性检查通过。
|
||
|
||
## 关键决策汇总
|
||
|
||
| 时间 | 决策点 | 结果 |
|
||
|------|--------|------|
|
||
| 09:47 | 钉盘数据更新范围 | 库存 20260824(20仓)、日出库 20260823 更新至 8.186 与云端,不碰生产 |
|
||
| 09:58 | 新模型接入 | 接入 OpenLux `deepseek-v4-pro-0813`(openlux 路由) |
|
||
| 10:02 | 模型可见性 | 将 openlux 模型加入选择库允许列表 |
|
||
| 11:31 | 模型默认值 | `dingtalk-assistant` 默认模型设为 `openlux/deepseek-v4-pro-0813` |
|
||
| 10:47–11:22 | 确认下单钉钉通知 | 4 组群映射确认;通知格式含货品编号/名称/成品数量/包材数量(按物料逐行) |
|
||
| 11:51 | 下单备份回退 | 移除 `pending_orders` 唯一索引,改普通索引 |
|
||
| 14:09 | 计划预测包材重算 | 同步后显式调用 `refreshPostPackValues()` |
|
||
| 15:02 | 库存看板性能 | 缺货监控只扫描 `available_qty=0` 记录 |
|
||
| 16:07 | 新品下单结构 | 新增新品包材管理子菜单,新品管理改名新品成品管理 |
|
||
| 16:49 | 新品BOM扩展 | 是否含税派生字段 + 可选字段导出方案 + 包材表头固定 |
|
||
| 18:06 | 数量与用量 | 新增独立「用量」字段,与采购「数量」分离 |
|
||
| 18:28 | 产品信息传参 | 操作列改 JS 安全转义 |
|
||
| 18:37 | 生产部署 | 第一步(8.186→云端)完成;第二步(云端→11.79)待确认 |
|
||
|
||
## 待办
|
||
|
||
- [ ] 生产部署第二步:等待旭东回复「确认覆盖生产」后,将云端完整数据覆盖升级到 11.79(先留生产备份)。
|
||
- [ ] 产品信息管理详情/编辑修复 Git 提交(当前标注"待提交")。
|
||
- [ ] 新品BOM数量与用量分离 Git 提交(当前标注"待提交")。
|
||
- [ ] 新品成品管理「同步」权限:确认是否需要放开给非管理员。
|
||
|
||
|
||
---
|
||
|
||
*由 OpenClaw 每日训练任务自动生成*
|