dy-dashboard/vault/知识库/工作指南/训练记录/2026-06-24-每日训练笔记.md
2026-10-28 11:14:17 +08:00

6.5 KiB
Raw Permalink Blame History

2026-06-24 每日训练笔记(v2 完整版)

来源:旭东与 OpenClaw 每日训练,2026-06-24 类型:训练记录

今日总览

今日集中在产品信息管理、物料清单管理、仓库信息管理三大模块进行深度优化。从早上到下午共完成 9 项主要任务:物流时间字段校验、产品回收站功能、货品类型动态切换/补齐、供应商模糊搜索+采购跟单记忆、BOM管理全量改名物料清单管理、BOM弹窗同步功能与展示优化、仓库导入改为CSV直传、测试脏数据清理等。


1. 物流时间字段加数值限制

旭东 → OpenClaw:

产品信息管理里面,我编辑商品的时候,物流时间字段有什么限制吗,我输入很长的数字之后,提示(1264, "Out of range value for column 'logistics_time' at row 1")

OpenClaw 响应: MySQL logistics_time 字段为 int 类型,最大 2,147,483,647,输入超长数字报错。

修复:

  • 前端新增/编辑弹窗 input 加 max="999"
  • 后端 INSERT 截断:min(int(value), 999)
  • 后端 batch_update 校验超过 999 返回友好提示

2. 新增产品回收站功能(含两轮迭代)

旭东 → OpenClaw(第一轮):

我需要在成品列表的右边新增一个回收站功能,我删除的商品全部转移到回收站中

实现:

  • products 表新增 deleted_at DATETIME 列(软删除)
  • 删除改为 UPDATE SET deleted_at=NOW()
  • 主列表查询全部加 AND p.deleted_at IS NULL

旭东 → OpenClaw(第二轮):

回收站功能改为点击按钮之后出现大弹窗显示,弹窗设置为分页显示,一页20条 回收站的数据少很多字段

实现:

  • 工具栏新增红色"🗑 回收站"按钮,点击弹出大弹窗(90vw)
  • 弹窗内部全字段显示(PROD_COLUMNS 所有列 + 删除时间 + 操作列)
  • 操作列固定右侧(不随滚动移动)
  • 分页20条,页头搜索栏支持货品编号/名称筛选
  • 恢复商品后关闭弹窗自动刷新主列表

3. 新建弹窗货品类型动态切换

旭东 → OpenClaw:

非成品基础表tab页下的新增弹窗里面的货品类型也应该跟现有字段保持一致,应该只有包材和其他

实现:

  • 新增 updateAddTypeOptions() 函数
  • 成品基础表→选项:成品、现货、清库存、赠品、原材料
  • 非成品基础表→选项:包材、其他

4. 编辑弹窗货品类型补齐

旭东 → OpenClaw:

编辑之后数据消失

排查: 编辑弹窗 _buildProductEditForm 货品类型下拉只配了 ['成品','现货','清库存','赠品','原材料'],漏了 包材、其他。包材类商品编辑时下拉自动选中"成品"→ product_type 被改→在非成品列表中被过滤掉("消失")。

修复: 选项补齐为全量:['成品','现货','清库存','赠品','原材料','包材','其他']


5. 供应商模糊搜索 + 采购跟单记忆

旭东 → OpenClaw:

供应商名称可以模糊搜索、供应商编码自动匹配、采购跟单记忆

实现:

  • 新增弹窗供应商输入 oninput 弹出匹配列表(模糊匹配 suppliers 表,最多20条)
  • 选中自动填入供应商编码(只读框)
  • 采购跟单 localStorage 存储20条历史记录

6. BOM管理 → 物料清单管理(全量改名 + 新增功能)

旭东 → OpenClaw:

BOM管理改名为物料清单管理

全量改名: 侧边栏、页面标题、权限注册、注释全部修改

旭东 → OpenClaw:

添加新增、导入、导出功能

实现:

  • 后端:新增 /api/bom/create 和 /api/bom/export
  • 前端:新建弹窗、导入弹窗、导出按钮、页码居中

7. BOM弹窗优化(同步功能 + 供应商修复 + 展示改进)

旭东 → OpenClaw:

BOM弹窗左下角加个同步按钮,把成品包材同步到物料清单管理里面

实现:

  • 弹窗左下角新增「🔄 同步」按钮,调用 /api/product/sync_bom
  • 同步同时确保物料已作为包材产品创建

隐藏修复(连带发现):

  • product_detail_with_bom 缺少 LEFT JOIN suppliers,供应商字段为空 → 补上 LEFT JOIN
  • BOM 表头关闭按钮 × → ✕(解决部分设备渲染成"1"的问题)
  • 物料清单管理:新增独立「用量」列,名称和用量不再拼接显示(原名"名称 × 用量"混淆)
  • 排序改为 ORDER BY b.id DESC,最新同步排最前
  • 修复 DISTINCT + MAX() 不能共用的 SQL 错误

8. 仓库导入改为直接上传 CSV

旭东 → OpenClaw:

仓库数据导入的方式改成直接提交文件,不要在前端解析CSV

实现:

  • 前端去掉 FileReader 解析 CSV,改为 FormData 直传文件
  • 后端自动识别编码(utf-8-sig → gbk → utf-8)
  • 后端用 csv.reader 解析,支持引号内逗号
  • 列名校验 + 逐行报错

9. 清理测试脏数据

月底同步完成后发现 bom 表和 products 表混入了若干条测试脏数据(如"测试包材001"、"原材料1"等),已逐条核实并清理。


10. 其他

  • Service Worker v5→v6,app.js v307→v311
  • HTML 添加 Cache-Control: no-cache
  • SW 注册 URL 加版本号 /static/sw.js?v=6
  • Git 提交:
    • 5ed829e:产品回收站功能(4文件,+296/-17)
    • 1ac7073:新品建档、物料清单改名/新增/导入/导出(4文件,+292/-21)
    • 后续提交:BOM同步、仓库CSV直传等

关键决策汇总

序号 决策内容 影响范围
1 logistics_time 前端 max=999 + 后端截断 产品信息管理表单
2 products 表加 deleted_at 做软删除 全产品模块查询
3 回收站弹窗全字段显示 + 操作列固定 用户体验
4 货品类型动态切换:成品表 vs 非成品表不同选项 新建弹窗逻辑
5 编辑弹窗货品类型全量选项(7种) 编辑弹窗
6 供应商模糊搜索 + 采购跟单 localStorage 新增弹窗
7 BOM管理全量改名为物料清单管理 前端+后端+权限
8 BOM弹窗同步按钮将包材同步到 bom 表 物料清单管理
9 仓库导入改为直传CSV + 后端解析 仓库模块
10 清理测试脏数据 bom 表 + products 表

待办

  • 确认 BOM 同步功能在各包材产品上测试通过
  • 关注仓库 CSV 导入的编码兼容情况(GBK/UTF-8)
  • 检查产品回收站软删除对导出功能的影响

由 OpenClaw 每日训练任务(晚间 v2)自动生成