feat: 完成多模块迭代更新
- 新增过程巡检按步骤上报、数量不符上报、工位退料功能 - 增加工单工程编号三级归属字段 - 新增物料安全库存与缺货预警 - 新增附件管理、退库单管理模块 - 优化生产看板展示逻辑与前端页面文案 - 清理冗余的工艺路线相关代码与备份文件
This commit is contained in:
@@ -26,14 +26,14 @@ func (s *Service) Seed(ctx context.Context) error {
|
||||
codes = []string{
|
||||
"produce.workorder", "produce.dailyplan", "produce.bom", "produce.material", "produce.scan",
|
||||
"produce.trace", "produce.torque", "produce.plc", "produce.product",
|
||||
"produce.processflow", "produce.station", "produce.performance", "produce.route",
|
||||
"produce.processflow", "produce.station", "produce.performance", "produce.processcard",
|
||||
// 按钮级权限(块2)
|
||||
"produce.workorder:add", "produce.workorder:edit", "produce.workorder:delete",
|
||||
"produce.workorder:dailyplan", "produce.bom:edit", "produce.material:generate",
|
||||
"produce.workorder:add", "produce.workorder:edit", "produce.workorder:delete",
|
||||
"produce.workorder:dailyplan", "produce.bom:edit", "produce.material:generate",
|
||||
"produce.qtyreport",
|
||||
"produce.plc:send", "produce.product:add", "produce.product:edit", "produce.product:delete",
|
||||
"produce.processflow:add", "produce.processflow:edit", "produce.processflow:delete",
|
||||
"produce.processflow:upload", "produce.station:edit",
|
||||
"produce.route:add", "produce.route:edit", "produce.route:delete",
|
||||
}
|
||||
} else if r.code == "INSPECTOR" {
|
||||
codes = []string{"produce.trace", "produce.torque", "produce.performance", "sys.eventlog",
|
||||
@@ -75,11 +75,12 @@ func (s *Service) Seed(ctx context.Context) error {
|
||||
{"produce.torque", "拧紧查询", "MENU", "/torque"},
|
||||
{"produce.processflow", "工艺流程", "MENU", "/process-flow"},
|
||||
{"produce.station", "关联工位", "MENU", "/station"},
|
||||
{"produce.route", "工艺路线", "MENU", "/process-route"},
|
||||
{"produce.performance", "绩效报表", "MENU", "/performance"},
|
||||
{"produce.scan", "手动报工", "MENU", "/scan"},
|
||||
{"produce.trace", "工件追溯", "MENU", "/trace"},
|
||||
{"produce.processcard", "生产流程卡", "MENU", "/process-card"},
|
||||
{"produce.product", "产品型号", "MENU", "/product-type"},
|
||||
{"produce.qtyreport", "数量不符上报", "MENU", "/qty-report"},
|
||||
{"sys.inspect", "巡检终端", "MENU", "/inspect"},
|
||||
{"sys.eventlog", "操作日志", "MENU", "/event-log"},
|
||||
// sys.rbac(角色权限管理) 已拆分:账号管理 + 角色管理(对齐 WMS 系统管理菜单)
|
||||
@@ -113,9 +114,6 @@ func (s *Service) Seed(ctx context.Context) error {
|
||||
{"produce.processflow:delete", "工艺流程-删除", "BUTTON", "", "produce.processflow"},
|
||||
{"produce.processflow:upload", "工艺流程-上传图纸", "BUTTON", "", "produce.processflow"},
|
||||
{"produce.station:edit", "工位-绑定", "BUTTON", "", "produce.station"},
|
||||
{"produce.route:add", "工艺路线-新增", "BUTTON", "", "produce.route"},
|
||||
{"produce.route:edit", "工艺路线-编辑", "BUTTON", "", "produce.route"},
|
||||
{"produce.route:delete", "工艺路线-删除", "BUTTON", "", "produce.route"},
|
||||
{"sys.account:add", "账号-新增", "BUTTON", "", "sys.account"},
|
||||
{"sys.account:edit", "账号-编辑", "BUTTON", "", "sys.account"},
|
||||
{"sys.account:delete", "账号-删除", "BUTTON", "", "sys.account"},
|
||||
@@ -147,6 +145,9 @@ func (s *Service) Seed(ctx context.Context) error {
|
||||
// 3.2 旧版权限码迁移(sys.rbac 家族 → sys.account / sys.role,幂等)
|
||||
migrateLegacySysRbac(ctx, s)
|
||||
|
||||
// 3.3 工艺路线模块已整块删除(D1):清掉存量角色里的路线权限码与旧菜单/按钮定义行(幂等)
|
||||
migrateLegacyRoute(ctx, s)
|
||||
|
||||
// 4. 初始化工位与默认工艺流程(工位绑定流程,流程承载步骤)
|
||||
seedFlowsAndStations(ctx, s)
|
||||
return nil
|
||||
@@ -226,3 +227,38 @@ func migrateLegacySysRbac(ctx context.Context, s *Service) {
|
||||
Where(permission.Code(oldCode)).Exec(ctx)
|
||||
}
|
||||
}
|
||||
|
||||
// migrateLegacyRoute 清理已删除的「工艺路线」模块残留(幂等,可重复执行):
|
||||
// 产线定义已简化为「关联工位(station.flow_id) + 工位号 1→12 顺序 + 工单工位组合」,
|
||||
// 工艺路线/路线段整块删除,故需从存量角色的 permissionCodes 中摘除路线权限码,
|
||||
// 并删除对应的菜单/按钮权限定义行,避免菜单树里留下失效入口。
|
||||
func migrateLegacyRoute(ctx context.Context, s *Service) {
|
||||
legacyCodes := map[string]bool{
|
||||
"produce.route": true,
|
||||
"produce.route:add": true,
|
||||
"produce.route:edit": true,
|
||||
"produce.route:delete": true,
|
||||
}
|
||||
// 1) 角色 permissionCodes 剔除
|
||||
roleList, _ := s.ctx.EntClient.Role.Query().All(ctx)
|
||||
for _, rl := range roleList {
|
||||
kept := make([]string, 0, len(rl.PermissionCodes))
|
||||
changed := false
|
||||
for _, c := range rl.PermissionCodes {
|
||||
if legacyCodes[c] {
|
||||
changed = true
|
||||
continue
|
||||
}
|
||||
kept = append(kept, c)
|
||||
}
|
||||
if changed {
|
||||
_ = s.ctx.EntClient.Role.UpdateOneID(rl.ID).
|
||||
SetPermissionCodes(mergeCodes(kept, nil)).Exec(ctx)
|
||||
}
|
||||
}
|
||||
// 2) 删除权限定义行
|
||||
for code := range legacyCodes {
|
||||
_, _ = s.ctx.EntClient.Permission.Delete().
|
||||
Where(permission.Code(code)).Exec(ctx)
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user