feat: 新增装机绑定功能与权限、BOM工序配置
1. 新增装机绑定实体与相关CRUD逻辑,支持工件工序物料绑定/解绑 2. 为BOM物料新增装配工序字段,支持按工序校验绑定 3. 扩展权限表,新增父权限码字段支持菜单按钮关联 4. 统一各页面帮助弹窗参数,新增角色管理帮助文档 5. 新增公共格式化工具函数,优化侧边栏菜单展开逻辑 6. 新增工位终端绑定代理接口与MES内部绑定API 7. 修复主入口数据库连接与schema初始化逻辑,新增一键迁移工具
This commit is contained in:
@@ -87,12 +87,33 @@ func EnsureDB(c DatabaseConf) error {
|
||||
return nil
|
||||
}
|
||||
|
||||
// schemaPatchSQL 幂等列补丁:ent Schema.Create 只建缺失的新表,绝不会给既有表加列;
|
||||
// 因此对"已有表新增列"的场景必须走显式 ALTER。这里统一维护补丁清单,migrate/seed/reset-all 三入口共用。
|
||||
var schemaPatchSQL = []string{
|
||||
// BOM 料增加"装配工序"维度(0=不参与工位绑定校验;1~12=在第几道工序装配)
|
||||
// 注意:BomItem schema 表名注解为 work_order_bom(非默认名)
|
||||
`ALTER TABLE work_order_bom ADD COLUMN IF NOT EXISTS process_code integer NOT NULL DEFAULT 0`,
|
||||
}
|
||||
|
||||
// EnsureSchema ent 建表 + 幂等列补丁(只增,不删数据)
|
||||
func EnsureSchema(client *ent.Client, sqlDB *sql.DB) error {
|
||||
if err := client.Schema.Create(context.Background()); err != nil {
|
||||
return err
|
||||
}
|
||||
for _, q := range schemaPatchSQL {
|
||||
if _, err := sqlDB.Exec(q); err != nil {
|
||||
return fmt.Errorf("schema patch failed: %v", err)
|
||||
}
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
// AutoMigrate 执行 ent 自动建表/补齐(只增,不删数据)。供命令行 migrate 使用。
|
||||
|
||||
func AutoMigrate(c DatabaseConf) error {
|
||||
client, sqlDB := MustNewDB(c)
|
||||
defer sqlDB.Close()
|
||||
return client.Schema.Create(context.Background())
|
||||
return EnsureSchema(client, sqlDB)
|
||||
}
|
||||
|
||||
// DropAllTables 清空 public schema 下所有业务表(破坏性,仅供命令行 reset-all 使用)。
|
||||
|
||||
Reference in New Issue
Block a user