feat:多项功能优化

This commit is contained in:
zhoujianjin
2026-09-18 18:54:54 +08:00
parent 672cd23329
commit 543655d441
48 changed files with 1289 additions and 447 deletions
+45 -13
View File
@@ -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)
}