From 078474631fd0aa675ac17d5473b90e19bc5dc9ae Mon Sep 17 00:00:00 2001 From: zhangxinyang Date: Sat, 11 Jul 2026 17:56:29 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E5=A2=9E=E5=8A=A0=E5=B7=A5=E6=97=B6?= =?UTF-8?q?=E6=8A=A5=E8=A1=A8=E5=AF=BC=E5=87=BA=E5=B9=B6=E8=B0=83=E6=95=B4?= =?UTF-8?q?=E8=B4=A8=E9=87=8F=E8=8F=9C=E5=8D=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...ct_pass_rate_workstation_menu_20260630.sql | 35 ++++- ...e_workstation_to_quality_menu_20260711.sql | 124 ++++++++++++++++++ .../DesignReportTask/HoursReport/index.vue | 92 +++++++++++++ 3 files changed, 244 insertions(+), 7 deletions(-) create mode 100644 db_backups/move_product_pass_rate_workstation_to_quality_menu_20260711.sql diff --git a/db_backups/add_product_pass_rate_workstation_menu_20260630.sql b/db_backups/add_product_pass_rate_workstation_menu_20260630.sql index 14b05e3..f2d77a7 100644 --- a/db_backups/add_product_pass_rate_workstation_menu_20260630.sql +++ b/db_backups/add_product_pass_rate_workstation_menu_20260630.sql @@ -25,7 +25,7 @@ BEGIN ( SELECT src.[账号代码], - COALESCE(prodParent.[id], src.[pid]) AS [pid], + qualityParent.[id] AS [pid], src.[icon], src.[AddData], src.[DeleteData], @@ -37,13 +37,15 @@ BEGIN SELECT TOP (1) rp.[id] FROM [dbo].[登录基础数据_二级菜单] AS rp WHERE rp.[账号代码] = src.[账号代码] + AND rp.[pid] = 0 AND rp.[是否启用] = 1 - AND rp.[title] = N'生产管理' + AND (rp.[title] = N'质量管理' OR rp.[path] = '/QualityManagement' OR rp.[name] = 'QualityManagement') ORDER BY rp.[id] - ) AS prodParent + ) AS qualityParent WHERE src.[是否启用] = 1 AND (@TargetRole IS NULL OR src.[账号代码] = @TargetRole) AND (src.[path] = @SourcePath OR src.[componet] = @SourceComponent OR src.[title] = N'生产计划跟踪') + AND qualityParent.[id] IS NOT NULL AND NOT EXISTS ( SELECT 1 @@ -77,7 +79,7 @@ BEGIN SELECT ROW_NUMBER() OVER (ORDER BY src.[账号代码], src.[id]) AS rn, src.[账号代码], - COALESCE(prodParent.[id], src.[pid]) AS [pid], + qualityParent.[id] AS [pid], src.[icon], src.[AddData], src.[DeleteData], @@ -89,13 +91,15 @@ BEGIN SELECT TOP (1) rp.[id] FROM [dbo].[登录基础数据_二级菜单] AS rp WHERE rp.[账号代码] = src.[账号代码] + AND rp.[pid] = 0 AND rp.[是否启用] = 1 - AND rp.[title] = N'生产管理' + AND (rp.[title] = N'质量管理' OR rp.[path] = '/QualityManagement' OR rp.[name] = 'QualityManagement') ORDER BY rp.[id] - ) AS prodParent + ) AS qualityParent WHERE src.[是否启用] = 1 AND (@TargetRole IS NULL OR src.[账号代码] = @TargetRole) AND (src.[path] = @SourcePath OR src.[componet] = @SourceComponent OR src.[title] = N'生产计划跟踪') + AND qualityParent.[id] IS NOT NULL AND NOT EXISTS ( SELECT 1 @@ -132,6 +136,24 @@ END; UPDATE [dbo].[登录基础数据_二级菜单] SET + [pid] = COALESCE + ( + ( + SELECT TOP (1) qualityParent.[id] + FROM [dbo].[登录基础数据_二级菜单] AS qualityParent + WHERE qualityParent.[账号代码] = [dbo].[登录基础数据_二级菜单].[账号代码] + AND qualityParent.[pid] = 0 + AND qualityParent.[是否启用] = 1 + AND + ( + qualityParent.[title] = N'质量管理' + OR qualityParent.[path] = '/QualityManagement' + OR qualityParent.[name] = 'QualityManagement' + ) + ORDER BY qualityParent.[id] + ), + [pid] + ), [path] = @Path, [componet] = @Component, [name] = @Name, @@ -144,4 +166,3 @@ SELECT [id], [pid], [path], [componet], [name], [title], [icon], [账号代码], FROM [dbo].[登录基础数据_二级菜单] WHERE [path] = @Path OR [componet] = @Component OR [title] = @Title ORDER BY [账号代码], [id]; - diff --git a/db_backups/move_product_pass_rate_workstation_to_quality_menu_20260711.sql b/db_backups/move_product_pass_rate_workstation_to_quality_menu_20260711.sql new file mode 100644 index 0000000..66fcaf0 --- /dev/null +++ b/db_backups/move_product_pass_rate_workstation_to_quality_menu_20260711.sql @@ -0,0 +1,124 @@ +USE [YL_MESDB]; +GO + +SET NOCOUNT ON; +SET XACT_ABORT ON; + +DECLARE @QualityMenuId int = 4; + +DECLARE @TargetAccounts TABLE +( + [账号代码] int PRIMARY KEY +); + +INSERT INTO @TargetAccounts ([账号代码]) +SELECT DISTINCT [账号代码] +FROM [dbo].[登录基础数据_二级菜单] +WHERE [path] = 'ProductPassRateWorkstation/index' + OR [componet] = '/ProductionManagement/ProductPassRateWorkstation/index' + OR [name] = 'ProductPassRateWorkstation' + OR [title] IN (N'产品合格率工位', N'产品合格率(工位)'); + +IF NOT EXISTS (SELECT 1 FROM @TargetAccounts) +BEGIN + THROW 50001, N'未找到产品合格率工位菜单,未执行迁移。', 1; +END; + +BEGIN TRANSACTION; + +IF EXISTS +( + SELECT 1 + FROM @TargetAccounts AS target + INNER JOIN [dbo].[登录基础数据_二级菜单] AS menu WITH (UPDLOCK, HOLDLOCK) + ON menu.[账号代码] = target.[账号代码] + AND menu.[id] = @QualityMenuId + WHERE menu.[pid] <> 0 + OR menu.[path] <> '/QualityManagement' + OR menu.[name] <> 'QualityManagement' + OR menu.[title] <> N'质量管理' +) +BEGIN + THROW 50002, N'目标账号的菜单 ID 4 已被其他菜单占用,未执行迁移。', 1; +END; + +INSERT INTO [dbo].[登录基础数据_二级菜单] + ([id], [pid], [path], [componet], [redirect], [name], [title], [icon], [账号代码], [模块代码], [操作时间], [是否启用]) +SELECT + @QualityMenuId, + 0, + '/QualityManagement', + '/layout/Layout', + NULL, + 'QualityManagement', + N'质量管理', + 'KKIMaintenance', + target.[账号代码], + @QualityMenuId, + GETDATE(), + 1 +FROM @TargetAccounts AS target +WHERE NOT EXISTS +( + SELECT 1 + FROM [dbo].[登录基础数据_二级菜单] AS existing WITH (UPDLOCK, HOLDLOCK) + WHERE existing.[账号代码] = target.[账号代码] + AND existing.[id] = @QualityMenuId +); + +UPDATE qualityMenu +SET + qualityMenu.[pid] = 0, + qualityMenu.[path] = '/QualityManagement', + qualityMenu.[componet] = '/layout/Layout', + qualityMenu.[redirect] = NULL, + qualityMenu.[name] = 'QualityManagement', + qualityMenu.[title] = N'质量管理', + qualityMenu.[icon] = 'KKIMaintenance', + qualityMenu.[模块代码] = @QualityMenuId, + qualityMenu.[是否启用] = 1, + qualityMenu.[操作时间] = GETDATE() +FROM [dbo].[登录基础数据_二级菜单] AS qualityMenu +INNER JOIN @TargetAccounts AS target + ON target.[账号代码] = qualityMenu.[账号代码] +WHERE qualityMenu.[id] = @QualityMenuId; + +UPDATE targetMenu +SET + targetMenu.[pid] = @QualityMenuId, + targetMenu.[path] = 'ProductPassRateWorkstation/index', + targetMenu.[componet] = '/ProductionManagement/ProductPassRateWorkstation/index', + targetMenu.[redirect] = NULL, + targetMenu.[name] = 'ProductPassRateWorkstation', + targetMenu.[title] = N'产品合格率(工位)', + targetMenu.[模块代码] = targetMenu.[id], + targetMenu.[是否启用] = 1, + targetMenu.[操作时间] = GETDATE() +FROM [dbo].[登录基础数据_二级菜单] AS targetMenu +INNER JOIN @TargetAccounts AS target + ON target.[账号代码] = targetMenu.[账号代码] +WHERE targetMenu.[path] = 'ProductPassRateWorkstation/index' + OR targetMenu.[componet] = '/ProductionManagement/ProductPassRateWorkstation/index' + OR targetMenu.[name] = 'ProductPassRateWorkstation' + OR targetMenu.[title] IN (N'产品合格率工位', N'产品合格率(工位)'); + +COMMIT TRANSACTION; + +SELECT + menu.[id], + menu.[pid], + menu.[path], + menu.[componet], + menu.[name], + menu.[title], + menu.[账号代码], + menu.[模块代码], + menu.[是否启用] +FROM [dbo].[登录基础数据_二级菜单] AS menu +INNER JOIN @TargetAccounts AS target + ON target.[账号代码] = menu.[账号代码] +WHERE menu.[id] = @QualityMenuId + OR menu.[path] = 'ProductPassRateWorkstation/index' + OR menu.[componet] = '/ProductionManagement/ProductPassRateWorkstation/index' +ORDER BY menu.[账号代码], menu.[pid], menu.[id]; +GO diff --git a/src/views/ProductionManagement/DesignReportTask/HoursReport/index.vue b/src/views/ProductionManagement/DesignReportTask/HoursReport/index.vue index 31728e3..dc8c647 100644 --- a/src/views/ProductionManagement/DesignReportTask/HoursReport/index.vue +++ b/src/views/ProductionManagement/DesignReportTask/HoursReport/index.vue @@ -63,6 +63,15 @@ 任务ID: 查询 + 导出