文睿 张
|
62372abeb6
|
fix(material-import): 导入上限下调为 1MB/10000 行,同步提示、文档与测试
|
2026-10-12 16:51:58 +08:00 |
|
文睿 张
|
d864294dde
|
feat(material-import): 完善导入模板填写说明页,同步接口、计划与回归用例
|
2026-10-12 15:41:21 +08:00 |
|
文睿 张
|
bc1352b918
|
docs: 标注导入记录表只写不读,留作后续入口
|
2026-10-12 11:56:51 +08:00 |
|
文睿 张
|
8d195c2d51
|
fix(material-import): 导入落库的单位统一写编码,与单条新增一致
模板里填单位名称(如「千克」)时原本把名称原样存进 materials.unit,而单条新增
经 syncUnit 提交的是单位编码 kg。同一个单位按录入路径留下两种写法,库存页直接
显示该字段(Stock.vue 的 unit 列)会出现「千克」与「kg」并存。
- material_import.go:Unit 一律取匹配到的单位 Code
- 补回归用例:模板填名称、填编码两条路径都断言落库为 kg
- 同步计划文档的代码与测试片段、设计约定 4 的单位一行
- 订正 api.md 中 unit 字段「单位名称」的错误描述(单条新增提交的本就是编码)
|
2026-10-12 11:51:44 +08:00 |
|
文睿 张
|
0ddda5363e
|
fix(material-import): 完善批量导入异常提示,仅保存成功历史,补齐审计日志名称、编码、详情及物料快照。上传解析前限制请求大小,逐行读取提前拦截超限数据,保留空行和真实行号规则。补充回归测试,同步计划、接口说明及八条人工用例。
|
2026-10-12 11:37:37 +08:00 |
|
文睿 张
|
2e526be3fb
|
docs: 计划文档同步物料导入的分类别名匹配与测试片段
计划里的代码片段落后于实现:分类匹配后来支持了「编码 名称」写法、纯编码与空白
归一化(f634e7cf、3c75537f 两个修复提交只改了代码和 docs/api.md,没回写计划)。
- Task 5 的实现与测试片段同步为实际代码,补 expectImportPersist 与 4 个新用例
- Task 2 模板「填写说明」文案补上「或编码」
- Task 3 测试块补 materialCategoryPtr 定义,insertMaterialBatchStmt 收进代码块
- 修正测试数量断言(7 个函数、9 个用例)
- 设计约定与校验规则表补上分类可按名称/编码/「编码 名称」匹配、匹配前归一化空白
|
2026-10-10 18:25:56 +08:00 |
|
文睿 张
|
f634e7cf07
|
fix: 物料导入分类匹配兼容界面上的「编码 名称」写法
界面上的分类一律显示成「编码 名称」(如 A 机械结构类),用户照此填进导入模板,
却报「大类「A 机械结构类」不存在或已停用」。分类其实存在且已启用,是后端只按
分类名称精确匹配,对不上带编码前缀的写法。单位早有名称/编码双匹配,分类漏了。
- 分类索引同时登记名称、编码、「编码 名称」三种写法。名称优先、键已占用时不覆盖,
结果不随分类遍历顺序变化;停用分类仍在登记前被过滤,放宽的只是写法
- 报错文案补「请核对分类名称或编码」:原文案说「不存在或已停用」,而分类明明在,
把排查方向带偏了
- 模板「填写说明」与 api.md 同步口径(原文写的是「分类按名称填写」)
验证:2 条新用例先跑成失败再转绿(「A 机械结构类」+「A01 标准件」、纯编码);
另加 1 条停用分类的边界用例,并做变异验证——临时关掉 status 过滤后它如期失败。
go build ./...、go vet ./internal/...、go test ./... 全部通过。
|
2026-10-10 17:32:15 +08:00 |
|
文睿 张
|
e3ab3a094a
|
docs: 补充文档覆盖范围中的物料批量导入说明
356c8520 提交接口文档时漏掉的一行,随 Task 10 收尾补上。
|
2026-10-10 17:04:56 +08:00 |
|
文睿 张
|
356c8520ca
|
docs: 补充物料批量导入接口说明
- 覆盖范围表补一行分组入口,并注明已在 §1 展开(该表标题写的是「未展开」)
- 「1. 物料接口」末尾补 GET /material-import/template 与 POST /material-import:
模板的两张工作表与 5 列定义、按列名解析的规则、逐行校验表、成功与失败的响应
示例、row 是 Excel 真实行号、5MB 与 20000 行限制、任意一行失败整批不入库、
导入记录只留汇总不落逐行明细
- 状态码旁列出真实的提示文案(含后端返回的原文),便于与响应逐字对照
|
2026-10-10 16:41:40 +08:00 |
|
文睿 张
|
2f0d978dbf
|
docs: 修正计划 Task 9 片段的 mock 路径与断言
- 路径笔误:vi.mock('../../api/materials') 改成 '../api/materials'。测试文件在
src/views/ 下,相对它是一级上跳,原路径会指向仓库根的 api/ 目录
- 补上 materialsApi 替身的具体两行代码,原来只有文字描述、照抄不了
- 两个用例在触发导入前加 fetchMaterials.mockClear():页面 onMounted 就会拉一次
列表,不清的话失败用例的 not.toHaveBeenCalled() 必然失败,成功用例的断言也没区分度
- 成功用例的断言从 toHaveBeenCalled() 收紧成 toHaveBeenCalledWith(1, '', 'all')
- 两个用例包进 describe('批量导入'),并给出 beforeEach 里重置替身的写法
验证:从 Task 9 之前的测试文件出发,按文档插入替身、追加用例块,实跑 24 个用例通过。
|
2026-10-10 16:31:39 +08:00 |
|
文睿 张
|
326cf77010
|
docs: 计划 Task 8 的组件测试片段补上 el-table 渲染时序
原片段用同步的 mountResult 直接断言 tbody tr 的文本,但 el-table 分两轮渲染:
先注册列,下一轮才把单元格填上。只等一个 tick 时拿到的是空 tr,断言会以
"expected '' to contain '2'" 这种看不出原因的方式失败(实测撞到过)。
改成 async mountResult,内部 await 两轮 nextTick 并附上原因;三个用例跟着
改成 await 调用,导出那条也复用 mountResult 传 provide,不再内联 mount。
|
2026-10-10 16:25:53 +08:00 |
|
文睿 张
|
f5e9029c46
|
docs: 修正「导入必须用独立前缀」的错误论断
实测 gin v1.9.1 允许静态段与 :id 在同一层级共存:探针测了 POST/GET 的单级与
两级共 5 种组合,把 /materials/import 放进现成的 materials 组全都不会 panic。
路由本身保持 /material-import 不变——独立成前缀是命名与分组上的选择(导入是
含模板下载与上传入库的一条链路,也避免 /materials/import 被读成物料 id),
不是 gin 的路由限制。计划文档同步更正。
顺带把计划 Task 6 Step 7 的验证方式从 go build 改成跑路由测试:go build 只做
编译、不执行 RegisterRoutes,注册期的 panic 它兜不住。
|
2026-10-10 16:18:02 +08:00 |
|
文睿 张
|
8a61186cfd
|
docs: 计划 Task 7 片段的 BOM 改成转义写法
内联的零宽字符在编辑器里看不见也改不动,写文件时极易悄悄落成真字符——实现这个
Task 的过程中在源码、提交信息、记忆文件里各踩了一次。改成 JS 转义写法后源码可见。
片段同步为已提交的实现与测试版本:测试引入 BOM 常量,实现片段注释也对齐。
把文档里的两个片段抽出来覆盖真实文件实跑,2 个用例通过。
|
2026-10-10 16:10:53 +08:00 |
|
文睿 张
|
f34803e1a2
|
docs: 修正物料导入计划中 Task 5/6 的测试片段笔误
- Task 5:expectImportLog 的行数参数显式转 int64。database/sql 会把实参归一成
driver.Value(int→int64),sqlmock 按类型比对,传 Go int 必然匹配不上
- Task 5:expectImportLog 补 fileName 参数,模板非法那条用例传的文件名与其它用例不同
- Task 5:事务内 SQL 的期望顺序改为「推进 code_rules → 分批 INSERT」,
与已提交的 ImportTx 实现(material.go:480 在 :485 之前)一致
- Task 6:测试片段补上缺失的 strings import
按修正后的片段替换 internal/service/material_import_test.go 实跑,5 个用例全通过。
|
2026-10-10 15:42:06 +08:00 |
|
文睿 张
|
84e7f4d7d0
|
feat: 新增物料导入记录表与模型
|
2026-10-10 14:56:42 +08:00 |
|
文睿 张
|
616a4a3b1d
|
feat: 物料增加初始单位,补充物料批量上传计划
- 物料默认单位由 pcs 改为「个」,新建/编辑表单与后端 Create 保持一致
- 单位下拉增加未选择时的默认提示
- init.sql 补充 30 个常用计量单位种子数据
- init.sql 新增 material_import_logs 表,为批量导入提供落库
- 新增物料批量导入实施计划文档,相关测试期望值同步更新
|
2026-10-10 14:15:49 +08:00 |
|
文睿 张
|
1c316d0105
|
回归测试用例
|
2026-10-09 18:18:58 +08:00 |
|
文睿 张
|
2a6a3c6bba
|
docs: 补充后端结构说明并更新公司隔离进度
- 新增《项目后端结构说明》,梳理仓库布局、internal 分层与请求链路
- 《数据库表结构与关系说明》新增第 11 节,记录公司隔离发布后的表、约束与升级阻断规则
- 公司隔离计划补充精简版测试策略,并勾选 Task 2、Task 8 完成项与验收记录
|
2026-10-09 15:55:52 +08:00 |
|
文睿 张
|
ef4e68b1bd
|
docs: document company isolation rollout and acceptance
|
2026-10-09 15:54:20 +08:00 |
|
文睿 张
|
6ac9f2cb3c
|
新增伙伴业务分类,优化物料编辑并整理数据库脚本
|
2026-10-08 11:54:51 +08:00 |
|
文睿 张
|
b1c86593f0
|
docs: limit first BOM view to one unit
|
2026-09-23 15:02:15 +08:00 |
|
文睿 张
|
d62d6777d1
|
bugs修复
|
2026-09-23 14:20:42 +08:00 |
|
文睿 张
|
e1401532f1
|
docs: show BOM history in a dedicated dialog
|
2026-09-23 13:41:23 +08:00 |
|
文睿 张
|
0336181832
|
docs: plan BOM usage-position details
|
2026-09-23 12:05:39 +08:00 |
|
文睿 张
|
6933cd82cc
|
docs: defer automatic BOM position remarks
|
2026-09-23 12:00:12 +08:00 |
|
文睿 张
|
0c7da9d394
|
docs: refine BOM version and audit design
|
2026-09-23 10:31:40 +08:00 |
|
文睿 张
|
b75696f44a
|
docs: add initial BOM management design
|
2026-09-22 18:25:38 +08:00 |
|
文睿 张
|
a7c7936e0b
|
feat: 实现物料编码按分类规则自动生成、手工修改及并发安全的流水号管理
|
2026-09-20 16:48:06 +08:00 |
|
文睿 张
|
84d775bc90
|
补充文档
|
2026-09-20 14:30:15 +08:00 |
|
文睿 张
|
936a8d3b61
|
完善库存流水
|
2026-09-20 14:29:41 +08:00 |
|
文睿 张
|
332ac1ff7a
|
完善出库和入库逻辑
|
2026-09-20 11:18:00 +08:00 |
|
文睿 张
|
d9da2ed672
|
库存,入库,出库相关问题修改
|
2026-09-20 10:31:28 +08:00 |
|
文睿 张
|
6fe9d0da40
|
物料分类重构、物料恢复、入库预警阈值与库存明细接口
|
2026-09-18 17:20:45 +08:00 |
|
文睿 张
|
855642ea75
|
已完成迁移体系清理和 Docker 初始化改造:
- 新版 [init.sql](C:\\1111\\12.project\\VSCode\\warehouse-mms\\scripts\\init.sql) 直接创建最新空库结构、默认组织/权限/仓库/分类。
- [docker-compose.yml](C:\\1111\\12.project\\VSCode\\warehouse-mms\\docker-compose.yml) 改为由 MySQL 在空数据卷首次启动时自动执行 init.sql。
- [entrypoint.sh](C:\\1111\\12.project\\VSCode\\warehouse-mms\\scripts\\entrypoint.sh) 不再重复执行迁移。
- 已删除 scripts/migrations/、pkg/migration/、cmd/migrate/ 和旧迁移说明。
- 已执行 docker compose down -v --remove-orphans;输出确认删除了 warehouse-mms_uploads_data 卷。
- go test ./... 全部通过;git diff --check 与 Compose 配置检查通过。
|
2026-09-17 16:22:52 +08:00 |
|
文睿 张
|
bf48c5a60f
|
chore: remove generated caches and temporary files
|
2026-09-17 15:17:23 +08:00 |
|
文睿 张
|
1cc3584f1a
|
restore lost frontend and backend changes
|
2026-09-16 23:30:25 +08:00 |
|
文睿 张
|
a103549854
|
拆分主数据和仓库数据
|
2026-09-16 16:29:04 +08:00 |
|
文睿 张
|
31aae223c2
|
Initial commit
|
2026-09-15 16:08:18 +08:00 |
|