184 lines
6.6 KiB
Markdown
184 lines
6.6 KiB
Markdown
# 2026-06-24 每日训练笔记
|
||
|
||
> 来源:旭东与 OpenClaw 每日训练,2026-06-24
|
||
> 类型:训练记录
|
||
|
||
# 2026-06-24 每日训练笔记
|
||
|
||
> 来源:旭东与 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 每日训练任务(晚间)自动生成*
|
||
|
||
|
||
---
|
||
|
||
*由 OpenClaw 每日训练任务自动生成*
|