机组车台菜单迁入生产-前缫目录

This commit is contained in:
yanpeng200212
2026-10-22 11:00:27 +08:00
parent 69eb2bedf0
commit 2e4c045818
4 changed files with 50 additions and 9 deletions
Binary file not shown.
@@ -225,7 +225,7 @@ public static class BusinessSeedData
AddMenu(fsql, baseDirId, "工艺庄口", "/base/zhuangkou", "base/zhuangkou/index", "Collection", "base:zhuangkou:list", 1); AddMenu(fsql, baseDirId, "工艺庄口", "/base/zhuangkou", "base/zhuangkou/index", "Collection", "base:zhuangkou:list", 1);
AddMenu(fsql, baseDirId, "生丝规格", "/base/guige", "base/guige/index", "Grid", "base:guige:list", 2); AddMenu(fsql, baseDirId, "生丝规格", "/base/guige", "base/guige/index", "Grid", "base:guige:list", 2);
AddMenu(fsql, baseDirId, "生丝定级指标", "/base/dingjizhibiao", "base/dingjizhibiao/index", "TrendCharts", "base:dingjizhibiao:list", 3); AddMenu(fsql, baseDirId, "生丝定级指标", "/base/dingjizhibiao", "base/dingjizhibiao/index", "TrendCharts", "base:dingjizhibiao:list", 3);
AddMenu(fsql, baseDirId, "机组车台", "/base/jizuchetai", "base/jizuchetai/index", "SetUp", "base:jizuchetai:list", 4); // 机组车台归属「生产-前缫」(见 DbSeeder.SeedProdMenus),不再挂在基础数据下
// 生产模块按工序拆分为两个一级目录:生产-前缫(落丝)/ 生产-后缫(纤度、黑板检验) // 生产模块按工序拆分为两个一级目录:生产-前缫(落丝)/ 生产-后缫(纤度、黑板检验)
var qianxianDirId = fsql.Select<Menu>().Where(m => m.Path == "/prod/qianxian").First()?.Id ?? 0; var qianxianDirId = fsql.Select<Menu>().Where(m => m.Path == "/prod/qianxian").First()?.Id ?? 0;
@@ -714,14 +714,45 @@ public static class DbSeeder
Console.WriteLine("[DbSeeder] 已清理旧权限单元 base:chejianbanci:list"); Console.WriteLine("[DbSeeder] 已清理旧权限单元 base:chejianbanci:list");
} }
// 机组车台原先挂在"基础数据"目录下,按 F9 归属改到"生产-前缫"
var legacyJizuChetai = fsql.Select<SysMenu>().Where(m => m.Path == "/base/jizuchetai").First();
if (legacyJizuChetai != null)
{
fsql.Ado.ExecuteNonQuery($"DELETE FROM sys_rbac_role_permissions WHERE permission_id = {legacyJizuChetai.Id}");
fsql.Ado.ExecuteNonQuery($"DELETE FROM sys_rbac_menus WHERE id = {legacyJizuChetai.Id}");
Console.WriteLine("[DbSeeder] 已清理旧菜单 /base/jizuchetai(机组车台移入生产-前缫)");
}
var legacyJzctPerms = fsql.Ado.ExecuteDataTable("SELECT id FROM sys_rbac_permissions WHERE code = 'base:jizuchetai:list'");
foreach (DataRow permRow in legacyJzctPerms.Rows)
{
var permId = Convert.ToInt64(permRow["id"]);
fsql.Ado.ExecuteNonQuery($"DELETE FROM sys_rbac_role_permissions WHERE permission_id = {permId}");
fsql.Ado.ExecuteNonQuery($"DELETE FROM sys_rbac_permissions WHERE id = {permId}");
Console.WriteLine("[DbSeeder] 已清理旧权限单元 base:jizuchetai:list");
}
EnsureTopMenuWithChildren(fsql, snowflake, "/prod/qianxian", "生产-前缫", "Cpu", 5, EnsureTopMenuWithChildren(fsql, snowflake, "/prod/qianxian", "生产-前缫", "Cpu", 5,
new (string Name, string Path, string Component, string Permission, string Icon, int Sort)[] new (string Name, string Path, string Component, string Permission, string Icon, int Sort)[]
{ {
("落丝记录", "/prod/qianxian/lsjl", "prod/lsjl/index", "prod:lsjl:list", "Document", 1), ("机组车台", "/prod/qianxian/jizuchetai", "base/jizuchetai/index", "prod:jizuchetai:list", "SetUp", 1),
("车间班次", "/prod/qianxian/chejianbanci", "base/chejianbanci/index", "prod:chejianbanci:list", "Timer", 2), ("落丝记录", "/prod/qianxian/lsjl", "prod/lsjl/index", "prod:lsjl:list", "Document", 2),
("看台排班", "/prod/qianxian/ktpb", "prod/ktpb/index", "prod:ktpb:list", "Grid", 3) ("车间班次", "/prod/qianxian/chejianbanci", "base/chejianbanci/index", "prod:chejianbanci:list", "Timer", 3),
("看台排班", "/prod/qianxian/ktpb", "prod/ktpb/index", "prod:ktpb:list", "Grid", 4)
}); });
// 子菜单顺序归一(EnsureTopMenuWithChildren 只补新菜单,不调整已存在菜单的排序)
foreach (var (path, sort) in new (string Path, int Sort)[]
{
("/prod/qianxian/jizuchetai", 1), ("/prod/qianxian/lsjl", 2),
("/prod/qianxian/chejianbanci", 3), ("/prod/qianxian/ktpb", 4)
})
{
fsql.Update<SysMenu>()
.Set(x => x.SortOrder, sort)
.Where(x => x.Path == path && x.SortOrder != sort)
.ExecuteAffrows();
}
EnsureTopMenuWithChildren(fsql, snowflake, "/prod/houxian", "生产-后缫", "DataLine", 6, EnsureTopMenuWithChildren(fsql, snowflake, "/prod/houxian", "生产-后缫", "DataLine", 6,
new (string Name, string Path, string Component, string Permission, string Icon, int Sort)[] new (string Name, string Path, string Component, string Permission, string Icon, int Sort)[]
{ {
+15 -5
View File
@@ -11,9 +11,10 @@
``` ```
生产-前缫 生产-前缫
├── 落丝记录 ├── 机组车台(由「基础数据」迁入) /prod/qianxian/jizuchetai
├── 车间班次 ├── 落丝记录 /prod/qianxian/lsjl
└── 看台排班(新增) /prod/qianxian/ktpb ├── 车间班次 /prod/qianxian/chejianbanci
└── 看台排班(新增) /prod/qianxian/ktpb
顶部:车间(职责类型=前缫)+ 班次(甲/乙)+ 机组 + 关键字 顶部:车间(职责类型=前缫)+ 班次(甲/乙)+ 机组 + 关键字
页签:挡车工 / 车头工 / 值班长 页签:挡车工 / 车头工 / 值班长
├── 挡车工:按「车间+班次+机组」整组维护 ├── 挡车工:按「车间+班次+机组」整组维护
@@ -89,7 +90,16 @@ POST zbz | PUT zbz/{id} | DELETE zbz/{id}
### 2.4 菜单 ### 2.4 菜单
`DbSeeder.SeedProdMenus` 在生产-前缫下新增第 3 个子菜单「看台排班」,权限标识 `prod:ktpb:list`,admin 自动授权。 `DbSeeder.SeedProdMenus` 统一维护生产-前缫的 4 个子菜单,并按 F9 的归属把「机组车台」从基础数据迁入(排序 1):
| 顺序 | 菜单 | 路径 | 组件 | 权限标识 |
|---|---|---|---|---|
| 1 | 机组车台 | /prod/qianxian/jizuchetai | base/jizuchetai/index | prod:jizuchetai:list |
| 2 | 落丝记录 | /prod/qianxian/lsjl | prod/lsjl/index | prod:lsjl:list |
| 3 | 车间班次 | /prod/qianxian/chejianbanci | base/chejianbanci/index | prod:chejianbanci:list |
| 4 | 看台排班 | /prod/qianxian/ktpb | prod/ktpb/index | prod:ktpb:list |
迁移方式与之前「车间班次」迁入时一致:删除旧菜单 `/base/jizuchetai` 及其权限单元 `base:jizuchetai:list`,再由种子重新创建到生产-前缫并给 admin 授权(幂等,重启不重复)。页面组件与后端接口 `/api/jizuchetai` 均未改动。
--- ---
@@ -130,6 +140,6 @@ POST zbz | PUT zbz/{id} | DELETE zbz/{id}
## 五、说明与后续 ## 五、说明与后续
1. 职工姓名沿用 F9 档案原文(部分带「宁兴」等后缀,如「谢群生宁兴」),属于基础数据层面的既有情况,本次未改动。 1. 职工姓名沿用 F9 档案原文(部分带「宁兴」等后缀,如「谢群生宁兴」),属于基础数据层面的既有情况,本次未改动。
2. 「机组车台」维护页面仍在 基础数据 下(`/base/jizuchetai`);F9 是放在生产-前缫组内。如需完全对齐,可把该菜单整体平移到生产-前缫(数据接口不变)。 2. 「机组车台」已按 F9 归属迁到生产-前缫(`/prod/qianxian/jizuchetai`),组件与接口不变;基础数据目录中原位置已清理。
3. 挡车工排班目前按「整组替换」保存,没有保留历史版本;若需要留痕,可增加排班生效日期 + 版本表。 3. 挡车工排班目前按「整组替换」保存,没有保留历史版本;若需要留痕,可增加排班生效日期 + 版本表。
4. 后续若要支持「按班组/按日期」排班(F9 另有班组维度),可在现有三张表上扩展 BanCi 组合键。 4. 后续若要支持「按班组/按日期」排班(F9 另有班组维度),可在现有三张表上扩展 BanCi 组合键。