feat:多项功能优化
This commit is contained in:
@@ -28,12 +28,12 @@ func (s *Service) Seed(ctx context.Context) error {
|
||||
"produce.trace", "produce.wip", "produce.torque", "produce.plc", "produce.product",
|
||||
"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.qtyreport", "produce.quality", "produce.quality:edit",
|
||||
"produce.workorder:add", "produce.workorder:edit", "produce.workorder:delete",
|
||||
"produce.workorder:dailyplan", "produce.bom:edit", "produce.material:generate",
|
||||
"produce.quality", "produce.quality:edit",
|
||||
"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.station:add",
|
||||
"produce.processflow:add", "produce.processflow:edit", "produce.processflow:delete",
|
||||
"produce.processflow:upload", "produce.station:edit", "produce.station:add", "produce.station:delete",
|
||||
}
|
||||
} else if r.code == "INSPECTOR" {
|
||||
codes = []string{"produce.trace", "produce.wip", "produce.torque", "produce.performance", "sys.eventlog",
|
||||
@@ -74,13 +74,12 @@ func (s *Service) Seed(ctx context.Context) error {
|
||||
{"produce.plc", "工位组合下发", "MENU", "/plc-send"},
|
||||
{"produce.torque", "拧紧查询", "MENU", "/torque"},
|
||||
{"produce.processflow", "工艺流程", "MENU", "/process-flow"},
|
||||
{"produce.station", "关联工位", "MENU", "/station"}, {"produce.performance", "绩效报表", "MENU", "/performance"},
|
||||
{"produce.station", "关联工位", "MENU", "/station"}, {"produce.performance", "绩效报表", "MENU", "/performance"},
|
||||
{"produce.scan", "手动报工", "MENU", "/scan"},
|
||||
{"produce.trace", "工件追溯", "MENU", "/trace"},
|
||||
{"produce.wip", "在制品", "MENU", "/wip"},
|
||||
{"produce.processcard", "生产流程卡", "MENU", "/process-card"},
|
||||
{"produce.product", "产品型号", "MENU", "/product-type"},
|
||||
{"produce.qtyreport", "数量不符上报", "MENU", "/qty-report"},
|
||||
{"produce.product", "物料档案", "MENU", "/product-type"},
|
||||
{"produce.quality", "质量检验", "MENU", "/quality"},
|
||||
{"sys.inspect", "巡检终端", "MENU", "/inspect"},
|
||||
{"sys.eventlog", "操作日志", "MENU", "/event-log"},
|
||||
@@ -107,15 +106,16 @@ func (s *Service) Seed(ctx context.Context) error {
|
||||
{"produce.bom:edit", "物料清单-维护", "BUTTON", "", "produce.bom"},
|
||||
{"produce.material:generate", "备料单-生成", "BUTTON", "", "produce.material"},
|
||||
{"produce.plc:send", "工位组合-下发", "BUTTON", "", "produce.plc"},
|
||||
{"produce.product:add", "产品型号-新增", "BUTTON", "", "produce.product"},
|
||||
{"produce.product:edit", "产品型号-编辑", "BUTTON", "", "produce.product"},
|
||||
{"produce.product:delete", "产品型号-删除", "BUTTON", "", "produce.product"},
|
||||
{"produce.product:add", "物料档案-新增", "BUTTON", "", "produce.product"},
|
||||
{"produce.product:edit", "物料档案-编辑", "BUTTON", "", "produce.product"},
|
||||
{"produce.product:delete", "物料档案-删除", "BUTTON", "", "produce.product"},
|
||||
{"produce.processflow:add", "工艺流程-新增", "BUTTON", "", "produce.processflow"},
|
||||
{"produce.processflow:edit", "工艺流程-编辑", "BUTTON", "", "produce.processflow"},
|
||||
{"produce.processflow:delete", "工艺流程-删除", "BUTTON", "", "produce.processflow"},
|
||||
{"produce.processflow:upload", "工艺流程-上传图纸", "BUTTON", "", "produce.processflow"},
|
||||
{"produce.station:edit", "工位-绑定与改名", "BUTTON", "", "produce.station"},
|
||||
{"produce.station:add", "工位-新增", "BUTTON", "", "produce.station"},
|
||||
{"produce.station:delete", "工位-删除", "BUTTON", "", "produce.station"},
|
||||
{"sys.account:add", "账号-新增", "BUTTON", "", "sys.account"},
|
||||
{"sys.account:edit", "账号-编辑", "BUTTON", "", "sys.account"},
|
||||
{"sys.account:delete", "账号-删除", "BUTTON", "", "sys.account"},
|
||||
@@ -151,6 +151,10 @@ func (s *Service) Seed(ctx context.Context) error {
|
||||
// 3.3 工艺路线模块已整块删除(D1):清掉存量角色里的路线权限码与旧菜单/按钮定义行(幂等)
|
||||
migrateLegacyRoute(ctx, s)
|
||||
|
||||
// 3.4 MES「数量不符上报」菜单已下线(改为仅预警,明细由 WMS 处理):
|
||||
// 清掉存量角色里的 produce.qtyreport 权限码与旧菜单定义行(幂等)
|
||||
migrateLegacyQtyReport(ctx, s)
|
||||
|
||||
// 4. 初始化工位与默认工艺流程(工位绑定流程,流程承载步骤)
|
||||
seedFlowsAndStations(ctx, s)
|
||||
return nil
|
||||
@@ -158,11 +162,14 @@ func (s *Service) Seed(ctx context.Context) error {
|
||||
|
||||
func seedFlowsAndStations(ctx context.Context, s *Service) {
|
||||
// 初始数据:12 个工位(工位数量以数据库为准,这里只做首次初始化;要 13 个就往 station 表插一行)
|
||||
// 初始化的工位一律为「内置工位」:需连 PLC、必须按工位号顺序流转、不可改类型、不可删除;
|
||||
// 其中 1~10 号工位对应实体接驳台,11/12 为产线末端无接驳台。
|
||||
for i := 1; i <= 12; i++ {
|
||||
st, err := s.ctx.EntClient.Station.Query().Where(station.StationNo(i)).First(ctx)
|
||||
if err != nil {
|
||||
st, _ = s.ctx.EntClient.Station.Create().
|
||||
SetStationNo(i).SetName("装配工位" + strconv.Itoa(i)).SetStatus("ENABLED").Save(ctx)
|
||||
SetStationNo(i).SetName("装配工位" + strconv.Itoa(i)).SetStatus("ENABLED").
|
||||
SetIsBuiltin(true).SetHasDock(i <= 10).Save(ctx)
|
||||
}
|
||||
if st == nil || st.FlowId > 0 {
|
||||
continue
|
||||
@@ -191,7 +198,8 @@ func seedFlowsAndStations(ctx context.Context, s *Service) {
|
||||
} {
|
||||
if _, err := s.ctx.EntClient.Station.Query().Where(station.StationNo(v.no)).First(ctx); err != nil {
|
||||
_, _ = s.ctx.EntClient.Station.Create().
|
||||
SetStationNo(v.no).SetName(v.name).SetStationType("OFFLINE").SetStatus("ENABLED").Save(ctx)
|
||||
SetStationNo(v.no).SetName(v.name).SetStationType("OFFLINE").
|
||||
SetIsBuiltin(true).SetHasDock(false).SetStatus("ENABLED").Save(ctx)
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -279,3 +287,27 @@ func migrateLegacyRoute(ctx context.Context, s *Service) {
|
||||
Where(permission.Code(code)).Exec(ctx)
|
||||
}
|
||||
}
|
||||
|
||||
// migrateLegacyQtyReport 清理已下线的「数量不符上报」菜单(幂等,可重复执行):
|
||||
// MES 侧对数量不符只做预警(预警中心 + 右上角铃铛),不再提供独立菜单页;
|
||||
// 从存量角色的 permissionCodes 摘除 produce.qtyreport 并删除其权限定义行。
|
||||
func migrateLegacyQtyReport(ctx context.Context, s *Service) {
|
||||
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 c == "produce.qtyreport" {
|
||||
changed = true
|
||||
continue
|
||||
}
|
||||
kept = append(kept, c)
|
||||
}
|
||||
if changed {
|
||||
_ = s.ctx.EntClient.Role.UpdateOneID(rl.ID).
|
||||
SetPermissionCodes(mergeCodes(kept, nil)).Exec(ctx)
|
||||
}
|
||||
}
|
||||
_, _ = s.ctx.EntClient.Permission.Delete().
|
||||
Where(permission.Code("produce.qtyreport")).Exec(ctx)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user