本次迭代覆盖MES与WMS核心业务: 1. 新增接驳台托盘传感器读取与AGV对接能力 2. 完善工单排产、备料流程与权限体系拆分 3. 优化看板接口与前端路由、样式 4. 新增操作日志、库存盘点与角色保护逻辑 5. 修复代理地址、BOM保存等已知问题
54 lines
1.1 KiB
Go
54 lines
1.1 KiB
Go
package svc
|
|
|
|
import (
|
|
"bj_power_wms/ent"
|
|
"bj_power_wms/internal/agv"
|
|
"bj_power_wms/internal/config"
|
|
"bj_power_wms/internal/db"
|
|
"bj_power_wms/internal/eventlog"
|
|
"bj_power_wms/internal/mesclient"
|
|
)
|
|
|
|
type ServiceContext struct {
|
|
Config config.Config
|
|
EntClient *ent.Client
|
|
EventLog *eventlog.Writer
|
|
Agv agv.Client
|
|
Mes *mesclient.Client
|
|
}
|
|
|
|
func NewServiceContext(c config.Config) *ServiceContext {
|
|
conf := db.DatabaseConf{
|
|
Host: c.Postgres.Host,
|
|
Port: c.Postgres.Port,
|
|
User: c.Postgres.User,
|
|
Password: c.Postgres.Password,
|
|
Dbname: c.Postgres.DBName,
|
|
}
|
|
|
|
// 目标数据库不存在则自动创建
|
|
if err := db.EnsureDB(conf); err != nil {
|
|
panic(err)
|
|
}
|
|
|
|
entClient := db.MustNewDB(conf)
|
|
|
|
// 启动时自动建表
|
|
if err := db.AutoMigrate(entClient); err != nil {
|
|
panic(err)
|
|
}
|
|
|
|
// 首次启动预置基础数据
|
|
if err := db.SeedIfEmpty(entClient); err != nil {
|
|
panic(err)
|
|
}
|
|
|
|
return &ServiceContext{
|
|
Config: c,
|
|
EntClient: entClient,
|
|
EventLog: eventlog.NewWriter(entClient),
|
|
Agv: agv.New(c.Agv),
|
|
Mes: mesclient.New(c.Mes.BaseURL, c.Mes.Token),
|
|
}
|
|
}
|