docs(test): 更新电表箱装配业务回归测试文档

- 将文档从代码审计任务转换为端到端业务回归测试链路
- 重新组织文档结构为链路总览、示例数据基线和详细步骤
- 添加完整的业务场景清单涵盖WMS/MES/工位终端三大系统
- 定义统一的测试数据包括产品型号、物料清单、工位派工等
- 提供详细的步骤断言和数量等式验证方法
- 建立贯穿全链路的数据流向和状态变更追踪体系
This commit is contained in:
SunYF
2026-09-21 10:48:53 +08:00
parent 0d34bcd6a3
commit 132c3ed6bd
63 changed files with 3309 additions and 5784 deletions
+11 -34
View File
@@ -8,7 +8,6 @@ import (
"bj_power_wms/ent"
"bj_power_wms/ent/agvtask"
"bj_power_wms/ent/dock"
"bj_power_wms/ent/outboundorder"
"bj_power_wms/internal/svc"
@@ -278,16 +277,14 @@ func agvModeHandler(ctx *svc.ServiceContext) http.HandlerFunc {
func listDocksHandler(ctx *svc.ServiceContext) http.HandlerFunc {
return func(w http.ResponseWriter, r *http.Request) {
q := r.URL.Query()
query := ctx.EntClient.Dock.Query()
if typ := q.Get("dockType"); typ != "" {
query = query.Where(dock.DockType(typ))
}
list, err := query.Order(ent.Asc("id")).All(ctx0())
typ := q.Get("dockType")
// dock 真源已迁 MES:仓库不再本地维护接驳台,改读 MES 内部接口。
list, err := ctx.Mes.ListDocks(ctx0())
if err != nil {
fail(w, http.StatusInternalServerError, err.Error())
fail(w, http.StatusInternalServerError, "拉取接驳台失败: "+err.Error())
return
}
// 显式构造,避免 ent omitempty 吞掉 hasPallet=false 导致前端看不到空闲状态
// 显式构造,避免 omitempty 吞掉 hasPallet=false 导致前端看不到空闲状态
type dockView struct {
ID int64 `json:"id"`
DockCode string `json:"dockCode"`
@@ -300,8 +297,11 @@ func listDocksHandler(ctx *svc.ServiceContext) http.HandlerFunc {
}
views := make([]dockView, 0, len(list))
for _, d := range list {
if typ != "" && d.DockType != typ {
continue
}
views = append(views, dockView{
ID: int64(d.ID),
ID: d.ID,
DockCode: d.DockCode,
Name: d.Name,
DockType: d.DockType,
@@ -344,28 +344,5 @@ func listAgvMaterialsHandler(ctx *svc.ServiceContext) http.HandlerFunc {
}
}
// syncDockPalletHandler 内部接口:MES 同步某接驳台是否有托盘(PLC 托盘传感器)。
func syncDockPalletHandler(ctx *svc.ServiceContext) http.HandlerFunc {
return wrapInternal(ctx)(func(w http.ResponseWriter, r *http.Request) {
var req struct {
DockCode string `json:"dockCode"`
HasPallet bool `json:"hasPallet"`
PalletRef string `json:"palletRef"`
}
if err := parseJSON(r, &req); err != nil {
fail(w, http.StatusBadRequest, "参数错误")
return
}
upd := ctx.EntClient.Dock.Update().
Where(dock.DockCode(req.DockCode)).
SetHasPallet(req.HasPallet)
if req.PalletRef != "" {
upd = upd.SetPalletRef(req.PalletRef)
}
if err := upd.Exec(ctx0()); err != nil {
fail(w, http.StatusInternalServerError, err.Error())
return
}
ok(w, nil)
})
}
// syncDockPalletHandler 已移除(dock 真源迁 MES):接驳台托盘占用状态由 MES 侧 PLC 传感器实时读取,
// WMS 不再持有 dock 表,原 /api/internal/dock/pallet-sync 无调用方,一并删除。