feat: 重构BOM架构,新增基础设置与虚拟工位管理功能
本次重构删除原有BOM物料清单表,改用工单工艺组合×工艺物料清单作为唯一用料来源;新增系统基础设置表支持WMS地址、日志保留天数等配置,新增虚拟工位作业管理后台接口与前端页签控制功能,同时优化工位号校验逻辑、事件日志自动清理与工单用料查询能力。
This commit is contained in:
@@ -309,22 +309,18 @@ func (s *Service) BuildBindTrace(ctx context.Context, sn string) (*BindTraceVO,
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
// 物料组成树:递归展开成品零部件到叶子(不依赖 WMS),让追溯页能展示完整物料组成,
|
||||
// 避免成品作零部件被引用时只显示上层成品而漏下层料、追溯断链。
|
||||
// 物料组成:按工单工艺组合×工艺物料清单平铺一层(BOM 已删除,无多级树)
|
||||
var tree []BindNode
|
||||
tree = s.expandBindBom(ctx, wo.ProductCode, "", 1, 0, map[string]bool{})
|
||||
for _, it := range s.WorkOrderUnitUsage(ctx, wo) {
|
||||
tree = append(tree, BindNode{
|
||||
MaterialCode: it.MaterialCode, MaterialName: it.MaterialName,
|
||||
Spec: it.Spec, Unit: it.Unit, ManageMode: it.ManageMode,
|
||||
Qty: it.UnitQty, Level: 0,
|
||||
})
|
||||
}
|
||||
return &BindTraceVO{Binds: binds, Complete: missing == "", Missing: missing, BomTree: tree}, nil
|
||||
}
|
||||
|
||||
// expandBindBom 递归展开某产品的物料组成树(供追溯页/成品档案展示完整物料构成)。
|
||||
//
|
||||
// R1(2026-09-19):递归骨架统一到 bom_expand.go 的 expandBomTree,与备料算料共用同一份实现;
|
||||
// 下钻判定由 localBomExistsResolver 注入(本地存在下级清单才继续展开)——不依赖 WMS,
|
||||
// 保证 WMS 不可达时追溯仍能展示完整物料组成、不断链。
|
||||
func (s *Service) expandBindBom(ctx context.Context, productCode, bomName string, qty float64, depth int, path map[string]bool) []BindNode {
|
||||
return bomTreeToBindNodes(s.expandBomTree(ctx, productCode, bomNameOrDefault(bomName), qty, depth, path, s.localBomExistsResolver))
|
||||
}
|
||||
|
||||
// BindRequiredItem 应绑清单条目(工位终端展示引导 + 前端齐套计算)
|
||||
type BindRequiredItem struct {
|
||||
MaterialCode string `json:"materialCode"`
|
||||
|
||||
Reference in New Issue
Block a user