feat: 完成产线与仓储系统多模块迭代升级
本次迭代覆盖MES与WMS核心业务: 1. 新增接驳台托盘传感器读取与AGV对接能力 2. 完善工单排产、备料流程与权限体系拆分 3. 优化看板接口与前端路由、样式 4. 新增操作日志、库存盘点与角色保护逻辑 5. 修复代理地址、BOM保存等已知问题
This commit is contained in:
@@ -2,6 +2,7 @@ package logic
|
||||
|
||||
import (
|
||||
"context"
|
||||
"fmt"
|
||||
|
||||
"bj_power_mes/ent"
|
||||
"bj_power_mes/ent/bomitem"
|
||||
@@ -31,22 +32,24 @@ func (s *Service) SaveBom(ctx context.Context, productCode string, items []BomIt
|
||||
if err == nil && exist != nil {
|
||||
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).
|
||||
SetRequiredQty(it.RequiredQty)
|
||||
SetManageMode(it.ManageMode).SetUnitQty(it.UnitQty).SetLossRate(it.LossRate)
|
||||
if len(it.SerialSns) > 0 {
|
||||
u.SetSerialSns(it.SerialSns)
|
||||
}
|
||||
_ = u.Exec(ctx)
|
||||
if _, err := u.Save(ctx); err != nil {
|
||||
return fmt.Errorf("更新BOM物料 %s 失败: %w", it.MaterialCode, err)
|
||||
}
|
||||
} else {
|
||||
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).
|
||||
SetRequiredQty(it.RequiredQty)
|
||||
SetManageMode(it.ManageMode).SetUnitQty(it.UnitQty).SetLossRate(it.LossRate)
|
||||
if len(it.SerialSns) > 0 {
|
||||
b.SetSerialSns(it.SerialSns)
|
||||
}
|
||||
_ = b.Exec(ctx)
|
||||
if _, err := b.Save(ctx); err != nil {
|
||||
return fmt.Errorf("保存BOM物料 %s 失败: %w", it.MaterialCode, err)
|
||||
}
|
||||
}
|
||||
}
|
||||
s.ctx.EventLog.Write(ctx, "bom.save", "", operator, "product_bom", productCode, "保存产品BOM", map[string]any{"count": len(items)})
|
||||
|
||||
Reference in New Issue
Block a user