6.5 KiB
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_atDATETIME 列(软删除) - 删除改为 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)自动生成