feat: 新增装机绑定功能与权限、BOM工序配置
1. 新增装机绑定实体与相关CRUD逻辑,支持工件工序物料绑定/解绑 2. 为BOM物料新增装配工序字段,支持按工序校验绑定 3. 扩展权限表,新增父权限码字段支持菜单按钮关联 4. 统一各页面帮助弹窗参数,新增角色管理帮助文档 5. 新增公共格式化工具函数,优化侧边栏菜单展开逻辑 6. 新增工位终端绑定代理接口与MES内部绑定API 7. 修复主入口数据库连接与schema初始化逻辑,新增一键迁移工具
This commit is contained in:
@@ -9,15 +9,16 @@ import (
|
||||
)
|
||||
|
||||
type BomItemReq struct {
|
||||
ProductCode string `json:"productCode"`
|
||||
MaterialCode string `json:"materialCode"`
|
||||
MaterialName string `json:"materialName"`
|
||||
Spec string `json:"spec"`
|
||||
Unit string `json:"unit"`
|
||||
ManageMode string `json:"manageMode"`
|
||||
UnitQty float64 `json:"unitQty"`
|
||||
LossRate float64 `json:"lossRate"`
|
||||
RequiredQty float64 `json:"requiredQty"`
|
||||
ProductCode string `json:"productCode"`
|
||||
MaterialCode string `json:"materialCode"`
|
||||
MaterialName string `json:"materialName"`
|
||||
Spec string `json:"spec"`
|
||||
Unit string `json:"unit"`
|
||||
ManageMode string `json:"manageMode"`
|
||||
ProcessCode *int `json:"processCode"` // 装配工序 1~12;nil=不修改(兼容旧调用/移除时保留);0=显式清除
|
||||
UnitQty float64 `json:"unitQty"`
|
||||
LossRate float64 `json:"lossRate"`
|
||||
RequiredQty float64 `json:"requiredQty"`
|
||||
SerialSns []string `json:"serialSns"`
|
||||
}
|
||||
|
||||
@@ -33,6 +34,9 @@ func (s *Service) SaveBom(ctx context.Context, productCode string, items []BomIt
|
||||
u := s.ctx.EntClient.BomItem.UpdateOneID(exist.ID).
|
||||
SetMaterialName(it.MaterialName).SetSpec(it.Spec).SetUnit(it.Unit).
|
||||
SetManageMode(it.ManageMode).SetUnitQty(it.UnitQty).SetLossRate(it.LossRate)
|
||||
if it.ProcessCode != nil {
|
||||
u = u.SetProcessCode(*it.ProcessCode) // nil 时不覆盖既有工序配置
|
||||
}
|
||||
if len(it.SerialSns) > 0 {
|
||||
u.SetSerialSns(it.SerialSns)
|
||||
}
|
||||
@@ -40,10 +44,15 @@ func (s *Service) SaveBom(ctx context.Context, productCode string, items []BomIt
|
||||
return fmt.Errorf("更新BOM物料 %s 失败: %w", it.MaterialCode, err)
|
||||
}
|
||||
} else {
|
||||
pc := 0
|
||||
if it.ProcessCode != nil {
|
||||
pc = *it.ProcessCode
|
||||
}
|
||||
b := s.ctx.EntClient.BomItem.Create().
|
||||
SetProductCode(productCode).SetMaterialCode(it.MaterialCode).
|
||||
SetMaterialName(it.MaterialName).SetSpec(it.Spec).SetUnit(it.Unit).
|
||||
SetManageMode(it.ManageMode).SetUnitQty(it.UnitQty).SetLossRate(it.LossRate)
|
||||
SetManageMode(it.ManageMode).SetProcessCode(pc).
|
||||
SetUnitQty(it.UnitQty).SetLossRate(it.LossRate)
|
||||
if len(it.SerialSns) > 0 {
|
||||
b.SetSerialSns(it.SerialSns)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user