diff --git a/MES_Manage_View_V20/db_backups/alter_quality_details_query_fieldkey_20260625.sql b/MES_Manage_View_V20/db_backups/alter_quality_details_query_fieldkey_20260625.sql
new file mode 100644
index 0000000..edaa2a4
--- /dev/null
+++ b/MES_Manage_View_V20/db_backups/alter_quality_details_query_fieldkey_20260625.sql
@@ -0,0 +1,81 @@
+ALTER PROCEDURE [dbo].[质量管理_质检明细_查询]
+ @质检类型 nvarchar(4000) = '10',
+ @开始日期 datetime = NULL,
+ @结束日期 datetime = NULL,
+ @订单号 nvarchar(4000) = '0',
+ @合同号 nvarchar(4000) = '0',
+ @零件编码 nvarchar(4000) = '0',
+ @零件名称 nvarchar(4000) = '0',
+ @PageCurrent int = 1,
+ @PageSize int = 20,
+ @PageCount int OUTPUT,
+ @ItemCount int OUTPUT
+AS
+BEGIN
+ SET NOCOUNT ON;
+
+ DECLARE @tbname sysname = ' [dbo].[View_质检明细] '
+ DECLARE @fieldkey sysname = 'QT_AID'
+ DECLARE @where nvarchar(4000)
+ DECLARE @fieldshow nvarchar(1000)
+ DECLARE @fieldOrder nvarchar(1000) = ' 检测时间 DESC, QT_AID DESC '
+
+ SET @where = ' (1=1) '
+
+ IF @质检类型 = '10'
+ SET @where = @where + ' AND (1=1) '
+ ELSE IF @质检类型 = '0'
+ SET @where = @where + ' AND 质检类型 = ''收检'' '
+ ELSE IF @质检类型 = '1'
+ SET @where = @where + ' AND 质检类型 = ''终检'' '
+ ELSE IF @质检类型 = '2'
+ SET @where = @where + ' AND 质检类型 = ''来料检验'' '
+ ELSE IF @质检类型 = '3'
+ SET @where = @where + ' AND 质检类型 = ''退库检验'' '
+
+ IF @订单号 <> '0'
+ SET @where = @where + ' AND 计划号 LIKE ''%' + @订单号 + '%'' '
+
+ --IF @合同号 <> '0'
+ -- SET @where = @where + ' AND 内部合同号 LIKE ''%' + @合同号 + '%'' '
+
+ IF @零件编码 <> '0'
+ SET @where = @where + ' AND 零件编码 LIKE ''%' + @零件编码 + '%'' '
+
+ IF @零件名称 <> '0'
+ SET @where = @where + ' AND 零件名称 LIKE ''%' + @零件名称 + '%'' '
+
+ IF @开始日期 IS NOT NULL
+ SET @where = @where + ' AND 检测时间 >= ''' + CONVERT(nvarchar(30), @开始日期, 120) + ''' '
+
+ IF @结束日期 IS NOT NULL
+ SET @where = @where + ' AND 检测时间 <= ''' + CONVERT(nvarchar(30), @结束日期, 120) + ''' '
+
+ SET @fieldshow = '
+ [QT_AID]
+ ,[质检类型]
+ ,[零件编码]
+ ,[零件名称]
+ ,[内部合同号]
+ ,[计划号]
+ ,[工序名称]
+ ,[检验数量]
+ ,[合格数]
+ ,[不合格数]
+ ,[检测人]
+ ,[检测时间]
+ ,[检测说明]
+ ,[工位名称]
+ ,[订单类型]'
+
+ EXEC [dbo].[sp_xt_pagesplit]
+ @tbname,
+ @fieldkey,
+ @where,
+ @fieldshow,
+ @fieldOrder,
+ @PageCurrent,
+ @PageSize,
+ @PageCount OUTPUT,
+ @ItemCount OUTPUT
+END
diff --git a/MES_Manage_View_V20/db_backups/sp_xt_pagesplit_before_qualitydetails_check_20260625.sql b/MES_Manage_View_V20/db_backups/sp_xt_pagesplit_before_qualitydetails_check_20260625.sql
new file mode 100644
index 0000000..ee1b3ef
--- /dev/null
+++ b/MES_Manage_View_V20/db_backups/sp_xt_pagesplit_before_qualitydetails_check_20260625.sql
@@ -0,0 +1,94 @@
+CREATE PROCEDURE [dbo].[sp_xt_pagesplit]
+@tbname sysname,
+@fieldkey sysname,
+@where nvarchar(1000),
+@fieldshow nvarchar(max),
+@fieldOrder nvarchar(1000),
+@PageCurrent int=1,
+@PageSize int=30,
+@PageCount int OUTPUT,
+@ItemCount int output
+AS
+BEGIN
+ SET NOCOUNT ON
+
+ -- 参数检查
+ IF ISNULL(@PageCurrent,0)<1 SET @PageCurrent=1
+ IF ISNULL(@PageSize,0)<1 SET @PageSize=10
+ IF ISNULL(@FieldShow,N'')=N'' SET @FieldShow=N'*'
+
+ -- 处理排序
+ DECLARE @OrderBy nvarchar(1000)
+ IF ISNULL(@FieldOrder,N'')=N''
+ SET @OrderBy = N''
+ ELSE
+ SET @OrderBy = N'ORDER BY ' + LTRIM(@FieldOrder)
+
+ -- 处理条件 - 重要:去掉WHERE关键字,只保留条件内容
+ DECLARE @WhereCondition nvarchar(1000)
+ IF ISNULL(@Where,N'')=N''
+ SET @WhereCondition = N''
+ ELSE
+ SET @WhereCondition = @Where -- 只保存条件内容,不加WHERE
+
+ -- 清理字段名
+ SET @fieldkey = LTRIM(RTRIM(@fieldkey))
+ DECLARE @quotedKey NVARCHAR(128) = QUOTENAME(@fieldkey)
+
+ -- 计算总记录数
+ DECLARE @sql nvarchar(MAX)
+ IF @WhereCondition = N''
+ SET @sql = N'SELECT @ItemCount = COUNT(*) FROM ' + @tbname
+ ELSE
+ SET @sql = N'SELECT @ItemCount = COUNT(*) FROM ' + @tbname + N' WHERE ' + @WhereCondition
+
+ EXEC sp_executesql @sql, N'@ItemCount int OUTPUT', @ItemCount OUTPUT
+
+ -- 计算总页数
+ SET @PageCount = CEILING((@ItemCount + 0.0) / @PageSize)
+ IF @PageCount = 0 SET @PageCount = 1
+
+ -- 返回当前页数据
+ DECLARE @TopRows INT = (@PageCurrent - 1) * @PageSize
+
+ IF @PageCurrent = 1
+ BEGIN
+ -- 第一页
+ IF @WhereCondition = N''
+ SET @sql = N'SELECT TOP ' + CONVERT(NVARCHAR, @PageSize) + N' ' + @FieldShow + N'
+ FROM ' + @tbname + N' ' + @OrderBy
+ ELSE
+ SET @sql = N'SELECT TOP ' + CONVERT(NVARCHAR, @PageSize) + N' ' + @FieldShow + N'
+ FROM ' + @tbname + N' WHERE ' + @WhereCondition + N' ' + @OrderBy
+ END
+ ELSE
+ BEGIN
+ -- 其他页
+ IF @WhereCondition = N''
+ BEGIN
+ -- 无条件的情况
+ SET @sql = N'SELECT TOP ' + CONVERT(NVARCHAR, @PageSize) + N' ' + @FieldShow + N'
+ FROM ' + @tbname + N'
+ WHERE ' + @quotedKey + N' NOT IN (
+ SELECT TOP ' + CONVERT(NVARCHAR, @TopRows) + N' ' + @quotedKey + N'
+ FROM ' + @tbname + N' ' + @OrderBy + N'
+ ) ' + @OrderBy
+ END
+ ELSE
+ BEGIN
+ -- 有条件的情况
+ SET @sql = N'SELECT TOP ' + CONVERT(NVARCHAR, @PageSize) + N' ' + @FieldShow + N'
+ FROM ' + @tbname + N'
+ WHERE ' + @quotedKey + N' NOT IN (
+ SELECT TOP ' + CONVERT(NVARCHAR, @TopRows) + N' ' + @quotedKey + N'
+ FROM ' + @tbname + N' WHERE ' + @WhereCondition + N' ' + @OrderBy + N'
+ ) AND ' + @WhereCondition + N' ' + @OrderBy
+ END
+ END
+
+ -- 调试用,可以注释掉
+ -- PRINT @sql
+
+ -- 执行
+ EXEC(@sql)
+END
diff --git a/MES_Manage_View_V20/db_backups/质量管理_质检明细_查询_before_fieldkey_20260625.sql b/MES_Manage_View_V20/db_backups/质量管理_质检明细_查询_before_fieldkey_20260625.sql
new file mode 100644
index 0000000..2e50973
--- /dev/null
+++ b/MES_Manage_View_V20/db_backups/质量管理_质检明细_查询_before_fieldkey_20260625.sql
@@ -0,0 +1,94 @@
+
+-- 质量管理_质检明细_查询
+CREATE PROCEDURE [dbo].[质量管理_质检明细_查询]
+ @质检类型 nvarchar(4000) = '10', -- 修改为字符串类型,因为传入的是字符串
+ @开始日期 datetime = NULL,
+ @结束日期 datetime = NULL,
+ @订单号 nvarchar(4000) = '0', -- 修改为字符串类型,避免类型转换问题
+ @合同号 nvarchar(4000) = '0',
+ @零件编码 nvarchar(4000) = '0',
+ @零件名称 nvarchar(4000) = '0',
+ @PageCurrent int = 1, -- 要显示的页码
+ @PageSize int = 20, -- 每页的大小(记录数)
+ @PageCount int OUTPUT, -- 总页数
+ @ItemCount int OUTPUT -- 数据总数
+AS
+BEGIN
+ SET NOCOUNT ON;
+
+ DECLARE @tbname sysname = ' [dbo].[View_质检明细] ' -- 要分页显示的表名
+ DECLARE @fieldkey sysname = ' ' -- 用于定位记录的主键(惟一键)字段
+ DECLARE @where nvarchar(4000) -- 查询条件
+ DECLARE @fieldshow nvarchar(1000) -- 要显示的字段列表
+ DECLARE @fieldOrder nvarchar(1000) = ' 检测时间 DESC ' -- 排序字段
+
+ -- 构建查询条件(使用参数化方式,避免SQL注入)
+ SET @where = ' (1=1) '
+
+ -- 质检类型过滤
+ IF @质检类型 = '10' -- 全部
+ SET @where = @where + ' AND (1=1) '
+ ELSE IF @质检类型 = '0'
+ SET @where = @where + ' AND 质检类型 = ''收检'' '
+ ELSE IF @质检类型 = '1'
+ SET @where = @where + ' AND 质检类型 = ''终检'' '
+ ELSE IF @质检类型 = '2'
+ SET @where = @where + ' AND 质检类型 = ''来料检验'' '
+ ELSE IF @质检类型 = '3'
+ SET @where = @where + ' AND 质检类型 = ''退库检验'' '
+
+ -- 订单号过滤条件(修正:使用LIKE时加引号)
+ IF @订单号 <> '0'
+ SET @where = @where + ' AND 计划号 LIKE ''%' + @订单号 + '%'' '
+
+ -- 合同号过滤条件
+ --IF @合同号 <> '0'
+ -- SET @where = @where + ' AND 内部合同号 LIKE ''%' + @合同号 + '%'' '
+
+ -- 零件编码过滤条件
+ IF @零件编码 <> '0'
+ SET @where = @where + ' AND 零件编码 LIKE ''%' + @零件编码 + '%'' '
+
+ -- 零件名称过滤条件
+ IF @零件名称 <> '0'
+ SET @where = @where + ' AND 零件名称 LIKE ''%' + @零件名称 + '%'' '
+
+ -- 日期范围过滤(如果提供了日期参数)
+ IF @开始日期 IS NOT NULL
+ SET @where = @where + ' AND 检测时间 >= ''' + CONVERT(nvarchar(30), @开始日期, 120) + ''' '
+
+ IF @结束日期 IS NOT NULL
+ SET @where = @where + ' AND 检测时间 <= ''' + CONVERT(nvarchar(30), @结束日期, 120) + ''' '
+
+ SET @fieldshow = '
+ [QT_AID]
+ ,[质检类型]
+ ,[零件编码]
+ ,[零件名称]
+ ,[内部合同号]
+ ,[计划号]
+ ,[工序名称]
+ ,[检验数量]
+ ,[合格数]
+ ,[不合格数]
+ ,[检测人]
+ ,[检测时间]
+ ,[检测说明]
+ ,[工位名称]
+ ,[订单类型]'
+
+ -- 调试用(可以注释掉)
+ PRINT @where
+
+ -- 执行分页存储过程
+ EXEC [dbo].[sp_xt_pagesplit]
+ @tbname,
+ @fieldkey,
+ @where,
+ @fieldshow,
+ @fieldOrder,
+ @PageCurrent,
+ @PageSize,
+ @PageCount OUTPUT,
+ @ItemCount OUTPUT
+END
diff --git a/MES_Manage_View_V20/src/views/QualityManagement/QualityDetails/index.vue b/MES_Manage_View_V20/src/views/QualityManagement/QualityDetails/index.vue
index 5fa997f..0fe4d30 100644
--- a/MES_Manage_View_V20/src/views/QualityManagement/QualityDetails/index.vue
+++ b/MES_Manage_View_V20/src/views/QualityManagement/QualityDetails/index.vue
@@ -40,7 +40,7 @@
format="yyyy-MM-dd"
value-format="yyyy-MM-dd"
style="width: 150px; margin-right: 10px" />
- 查询
+ 查询
Excel导出
@@ -165,10 +165,10 @@ export default {
param.push(["质检类型", this.QualityStatus]);
param.push(["开始日期", this.startDate]);
param.push(["结束日期", this.endDate]);
- param.push(["订单号", this.orderNo ]);
- param.push(["合同号", this.contractNo ]);
- param.push(["零件编码", this.productCode ]);
- param.push(["零件名称", this.productName ]);
+ param.push(["订单号", this.normalizeQueryValue(this.orderNo) ]);
+ param.push(["合同号", this.normalizeQueryValue(this.contractNo) ]);
+ param.push(["零件编码", this.normalizeQueryValue(this.productCode) ]);
+ param.push(["零件名称", this.normalizeQueryValue(this.productName) ]);
this.exporting = true
const Data = this.CreateData('2001', '质量管理_质检明细_导出', param)
@@ -218,6 +218,11 @@ export default {
// ============ 分页方法 ============
+ handleSearch() {
+ this.pageCurrent = 1
+ this.searchTable()
+ },
+
handleSizeChanges(val) {
this.pageCurrent = 1
this.pageSize = val
@@ -236,12 +241,12 @@ export default {
param.push(["质检类型", this.QualityStatus]);
param.push(["开始日期", this.startDate]);
param.push(["结束日期", this.endDate]);
- param.push(["订单号", this.orderNo ]);
- param.push(["合同号", this.contractNo ]);
- param.push(["零件编码", this.productCode ]);
- param.push(["零件名称", this.productName ]);
+ param.push(["订单号", this.normalizeQueryValue(this.orderNo) ]);
+ param.push(["合同号", this.normalizeQueryValue(this.contractNo) ]);
+ param.push(["零件编码", this.normalizeQueryValue(this.productCode) ]);
+ param.push(["零件名称", this.normalizeQueryValue(this.productName) ]);
param.push(['PageCurrent', this.pageCurrent])
- param.push(['pageSize', this.pageSize])
+ param.push(['PageSize', this.pageSize])
param.push(['PageCount', '1111', 'int', '1'])
param.push(['ItemCount', '1111', 'int', '1'])
@@ -258,6 +263,10 @@ export default {
// ============ 工具方法 ============
+ normalizeQueryValue(value) {
+ return value === null || value === undefined || value === '' ? '0' : value
+ },
+
getCurrentUser() {
return this.$store.state.user.name
@@ -305,4 +314,4 @@ export default {
background-color: #f56c6c !important;
color: #000000 !important;
} */
-
\ No newline at end of file
+