更新设备维修、发货、精工车间工序工价/生产审核/工时统计、仓储盘点/库存查询/库位/入库,新增车间派工移动端及SQL脚本

This commit is contained in:
Developer
2026-07-17 09:49:34 +08:00
parent 9c1f52078d
commit 2b9058c69c
20 changed files with 3326 additions and 343 deletions

View File

@@ -1,4 +1,36 @@
-- 生产完成审核查询与审核处理 修改人:Ld 修改时间:2026-07-02 13:57:18;
-- 生产完成审核查询与审核处理 修改人:Ld 修改时间:2026-07-02 13:57:18;
-- 生产审核补充计价方式和工价字段,用于传递到工时统计;修改人:Ld 修改时间:2026-07-06 15:18:06;
IF OBJECT_ID(N'[dbo].[MES_机加工MES_加工完成整修审核表]', N'U') IS NOT NULL
AND COL_LENGTH(N'[dbo].[MES_机加工MES_加工完成整修审核表]', N'计价方式') IS NULL
ALTER TABLE [dbo].[MES_机加工MES_加工完成整修审核表] ADD [] NVARCHAR(20) NULL CONSTRAINT [DF_MES_机加工MES_加工完成整修审核表_计价方式] DEFAULT (N'计件');
GO
IF OBJECT_ID(N'[dbo].[MES_机加工MES_加工完成整修审核表]', N'U') IS NOT NULL
AND COL_LENGTH(N'[dbo].[MES_机加工MES_加工完成整修审核表]', N'单件工价') IS NULL
ALTER TABLE [dbo].[MES_机加工MES_加工完成整修审核表] ADD [] DECIMAL(18, 4) NULL CONSTRAINT [DF_MES_机加工MES_加工完成整修审核表_单件工价] DEFAULT ((0));
GO
IF OBJECT_ID(N'[dbo].[MES_机加工MES_加工完成整修审核表]', N'U') IS NOT NULL
AND COL_LENGTH(N'[dbo].[MES_机加工MES_加工完成整修审核表]', N'单时工价') IS NULL
ALTER TABLE [dbo].[MES_机加工MES_加工完成整修审核表] ADD [] DECIMAL(18, 4) NULL CONSTRAINT [DF_MES_机加工MES_加工完成整修审核表_单时工价] DEFAULT ((0));
GO
-- 审核通过后写入完成过程表的计价字段,保障本脚本可单独部署;修改人:Ld 修改时间:2026-07-06 15:18:06;
IF OBJECT_ID(N'[dbo].[设备管理_零件工序_工序完成过程情况]', N'U') IS NOT NULL
AND COL_LENGTH(N'[dbo].[设备管理_零件工序_工序完成过程情况]', N'计价方式') IS NULL
ALTER TABLE [dbo].[_零件工序_工序完成过程情况] ADD [] NVARCHAR(20) NULL CONSTRAINT [DF_设备管理_零件工序_工序完成过程情况_计价方式] DEFAULT (N'计件');
GO
IF OBJECT_ID(N'[dbo].[设备管理_零件工序_工序完成过程情况]', N'U') IS NOT NULL
AND COL_LENGTH(N'[dbo].[设备管理_零件工序_工序完成过程情况]', N'单件工价') IS NULL
ALTER TABLE [dbo].[_零件工序_工序完成过程情况] ADD [] DECIMAL(18, 4) NULL CONSTRAINT [DF_设备管理_零件工序_工序完成过程情况_单件工价] DEFAULT ((0));
GO
IF OBJECT_ID(N'[dbo].[设备管理_零件工序_工序完成过程情况]', N'U') IS NOT NULL
AND COL_LENGTH(N'[dbo].[设备管理_零件工序_工序完成过程情况]', N'单时工价') IS NULL
ALTER TABLE [dbo].[_零件工序_工序完成过程情况] ADD [] DECIMAL(18, 4) NULL CONSTRAINT [DF_设备管理_零件工序_工序完成过程情况_单时工价] DEFAULT ((0));
GO
IF OBJECT_ID(N'[dbo].[机加工MES_加工完成整修审核_查询数据]', N'P') IS NOT NULL
DROP PROCEDURE [dbo].[MES_加工完成整修审核_查询数据];
GO
@@ -49,6 +81,9 @@ BEGIN
. AS ,
A.,
A.,
ISNULL(NULLIF(A., N''), N'计件') AS ,
CASE WHEN ISNULL(A., 0) <> 0 THEN A. ELSE ISNULL(priceData., 0) END AS ,
ISNULL(A., 0) AS ,
A.,
. AS ,
A.,
@@ -90,6 +125,17 @@ BEGIN
OR A. = .
LEFT JOIN [dbo].[_设备工位点检表] AS SB
ON A. = SB.
OUTER APPLY (
SELECT TOP 1
CASE
WHEN ISNULL(price.[], 0) <> 0 THEN price.[]
ELSE ISNULL(price.[(/)], 0)
END AS
FROM [dbo].[_工序工价] price
WHERE price. = A.
AND ISNULL(price., 1) = 1
ORDER BY ISNULL(price., CONVERT(DATE, '1900-01-01')) DESC, price. DESC, price. DESC
) priceData
WHERE (@_check = 0 OR A. = @)
AND (@_check = 0 OR A. = @)
AND (@_check = 0 OR ISNULL(., ISNULL(A., N'')) LIKE N'%' + @ + N'%')
@@ -115,6 +161,9 @@ BEGIN
,
,
,
,
,
,
,
,
,
@@ -155,12 +204,8 @@ BEGIN
END;
GO
-- 生产完成审核状态更新,审核通过时接入原 MES 完工链路 修改人:Ld 修改时间:2026-07-02 14:55:23;
IF OBJECT_ID(N'[dbo].[机加工MES_加工完成整修审核_审核数据]', N'P') IS NOT NULL
DROP PROCEDURE [dbo].[MES_加工完成整修审核_审核数据];
GO
CREATE PROCEDURE [dbo].[MES_加工完成整修审核_审核数据]
-- 生产审核普通通过只改审核状态为已审核;修改数量/时间才修正生产完成数据。修改人:Ld 修改时间:2026-07-17 09:10:08;
ALTER PROCEDURE [dbo].[MES_加工完成整修审核_审核数据]
@ INT,
@ NVARCHAR(20),
@ NVARCHAR(100) = NULL,
@@ -170,28 +215,39 @@ CREATE PROCEDURE [dbo].[机加工MES_加工完成整修审核_审核数据]
@ DATETIME = NULL,
@ DATETIME = NULL,
@ DATETIME = NULL,
@ NVARCHAR(1000) = NULL
@ NVARCHAR(1000) = NULL,
@ NVARCHAR(20) = NULL
AS
BEGIN
SET NOCOUNT ON;
DECLARE @ NVARCHAR(20);
DECLARE @ NVARCHAR(50);
DECLARE @ INT;
DECLARE @ NVARCHAR(50);
DECLARE @ FLOAT;
DECLARE @ INT;
DECLARE @ FLOAT;
DECLARE @ FLOAT;
DECLARE @ FLOAT;
DECLARE @ INT;
DECLARE @ NVARCHAR(100);
DECLARE @ NVARCHAR(500);
DECLARE @ INT;
DECLARE @ INT;
DECLARE @ NVARCHAR(100);
DECLARE @id INT;
DECLARE @ NVARCHAR(1000);
DECLARE @ FLOAT;
DECLARE @ INT;
DECLARE @ NVARCHAR(100);
DECLARE @ INT;
DECLARE @Safe计价方式 NVARCHAR(20);
DECLARE @ DECIMAL(18, 4);
DECLARE @ DECIMAL(18, 4);
DECLARE @ BIT = 0;
DECLARE @ BIT = 0;
DECLARE @ BIT;
DECLARE @ TABLE (result NVARCHAR(100));
SET @ = CASE WHEN @ IN (N'审核通过', N'已审核') THEN N'已审核' ELSE @ END;
IF @ NOT IN (N'已审核', N'审核不通过')
BEGIN
SELECT N'0' AS result, N'审核状态不正确' AS message;
RETURN;
END;
IF NOT EXISTS (
SELECT 1
@@ -204,172 +260,172 @@ BEGIN
RETURN;
END;
IF @ NOT IN (N'审核通过', N'审核不通过')
BEGIN
SELECT N'0' AS result, N'审核状态不正确' AS message;
RETURN;
END;
SELECT
@ = ,
@ = ,
@ = ,
@ = ISNULL(@, ),
@ = ,
@ = ISNULL(, 0),
@ = ,
@ = ,
@ = ,
@ = ,
@id = id,
@ = ISNULL(@, )
@ = ISNULL(@, ),
@Safe计价方式 = ISNULL(NULLIF(@, N''), ISNULL(NULLIF(, N''), N'计件')),
@ = ISNULL(, 0)
FROM [dbo].[MES_机加工MES_加工完成整修审核表]
WHERE id = @
AND = N'待审核';
IF @Safe计价方式 NOT IN (N'计件', N'计时')
SET @Safe计价方式 = N'计件';
SET @ = ISNULL(@, @);
SET @ = ISNULL(@, 0) - ISNULL(@, 0);
SET @ = CASE
WHEN @ = N'已审核'
AND @ = N'加工完成'
AND (@ IS NOT NULL OR @ IS NOT NULL OR @ IS NOT NULL OR @ IS NOT NULL)
THEN 1 ELSE 0 END;
SET @ = CASE
WHEN @ = N'已审核'
AND @ = N'结束整修'
AND (@ IS NOT NULL OR @ IS NOT NULL OR @ IS NOT NULL)
THEN 1 ELSE 0 END;
IF @ = 1 AND (@ < 0 OR @ <> FLOOR(@))
BEGIN
SELECT N'0' AS result, N'完成数量必须为大于等于 0 的整数' AS message;
RETURN;
END;
SELECT TOP 1 @ = CASE
WHEN ISNULL(price.[], 0) <> 0 THEN price.[]
ELSE ISNULL(price.[(/)], 0)
END
FROM [dbo].[_工序工价] price
WHERE price. = @
AND ISNULL(price., 1) = 1
ORDER BY ISNULL(price., CONVERT(DATE, '1900-01-01')) DESC, price. DESC, price. DESC;
SET @ = ISNULL(@, 0);
SET @ = ISNULL(@, 0);
BEGIN TRY
SET @ = CASE WHEN @@TRANCOUNT = 0 THEN 1 ELSE 0 END;
IF @ = 1
BEGIN
BEGIN TRAN;
END
ELSE
BEGIN
SAVE TRAN ;
END;
IF @ = N'审核通过' AND @ = N'加工完成'
IF @ = 1
BEGIN
IF @ IS NULL OR @ IS NULL OR @ IS NULL OR @ IS NULL OR @ IS NULL
SELECT @ = []
FROM [dbo].[_设备工位点检表]
WHERE [] = @;
SELECT TOP 1 @ = []
FROM [dbo].[_零件工序_工序完成过程情况]
WHERE [] = @
AND [] = @
AND [] = @
AND [] = @
ORDER BY [] DESC;
IF @ IS NULL
BEGIN
SELECT TOP 1 @ = []
FROM [dbo].[_零件工序_工序完成过程情况]
WHERE [] = @
AND [] = @
AND [] = @
ORDER BY [] DESC;
END;
IF @ IS NULL
BEGIN
IF @ = 1 ROLLBACK TRAN ELSE ROLLBACK TRAN ;
SELECT N'0' AS result, N'审核记录缺少原 MES 完工必需参数' AS message;
SELECT N'0' AS result, N'未找到对应生产完成记录' AS message;
RETURN;
END;
IF @ <= 0 OR @ <> FLOOR(@)
UPDATE [dbo].[_零件工序_工序完成过程情况]
SET [] = @,
[] = ISNULL(@, []),
[] = ISNULL(@, []),
[] = CASE WHEN @ IS NULL THEN [] ELSE CONVERT(DATE, @) END,
[] = ISNULL(@, []),
[] = @Safe计价方式,
[] = @,
[] = CASE WHEN @Safe计价方式 = N'计时' THEN ISNULL([], @) ELSE 0 END,
[] = CASE WHEN ISNUMERIC(@) = 1 THEN CAST(@ AS INT) ELSE [] END,
[] = GETDATE()
WHERE [] = @;
IF ISNULL(@, 0) <> 0
BEGIN
IF @ = 1 ROLLBACK TRAN ELSE ROLLBACK TRAN ;
SELECT N'0' AS result, N'完成数量必须为大于 0 的整数' AS message;
RETURN;
END;
UPDATE [dbo].[_零件工序]
SET [] = ISNULL([], 0) + @
WHERE [] = @;
INSERT INTO @(result)
EXEC [dbo].[_零件工序_工序完成过程情况_增加数据]
@ = @,
@ = @,
@ = @,
@ = @,
@ = @,
@ = @,
@ = @,
@ = @ OUTPUT,
@ = @ OUTPUT;
SELECT TOP 1 @ = result FROM @;
IF ISNULL(@, N'') <> N'成功'
BEGIN
IF @ = 1 ROLLBACK TRAN ELSE ROLLBACK TRAN ;
SELECT N'0' AS result, ISNULL(@, N'原 MES 完工流程执行失败') AS message;
RETURN;
UPDATE [dbo].[_零件工序_任务分配]
SET [] = ISNULL([], 0) + @
WHERE [] = @
AND [] = @
AND [] = @;
END;
IF @ IS NOT NULL
BEGIN
SELECT @ = MAX()
FROM [dbo].[_零件工序_工序完成过程情况]
WHERE = @
AND = @
AND = @;
UPDATE [dbo].[_零件工序_工序完成过程情况]
SET = ISNULL(@, ),
= @,
= CONVERT(DATE, @),
= @,
= CASE WHEN ISNUMERIC(@) = 1 THEN CAST(@ AS INT) ELSE END,
= GETDATE()
WHERE = @;
UPDATE [dbo].[_零件工序]
SET = CASE WHEN IS NULL OR >= ISNULL(, 0) THEN @ ELSE END
WHERE = @;
END;
IF @ IS NOT NULL AND @ IS NULL
BEGIN
SELECT @ = MAX()
FROM [dbo].[_零件工序_工序完成过程情况]
WHERE = @
AND = @
AND = @;
UPDATE [dbo].[_零件工序_工序完成过程情况]
SET = @,
= CASE WHEN ISNUMERIC(@) = 1 THEN CAST(@ AS INT) ELSE END,
= GETDATE()
WHERE = @;
SET [] = @
WHERE [] = @;
END;
END;
IF @ = N'审核通过' AND @ = N'结束整修'
IF @ = 1
BEGIN
IF @id IS NULL OR @ IS NULL
BEGIN
IF @ = 1 ROLLBACK TRAN ELSE ROLLBACK TRAN ;
SELECT N'0' AS result, N'审核记录缺少整修结束必需参数' AS message;
RETURN;
END;
UPDATE [dbo].[_整修]
SET = CASE WHEN @ IS NULL THEN ELSE CONVERT(VARCHAR(20), @, 120) END,
= CONVERT(VARCHAR(20), ISNULL(@, GETDATE()), 120),
= N'1',
= @
WHERE id = @id
AND = @;
SET [] = CASE WHEN @ IS NULL THEN [] ELSE CONVERT(VARCHAR(20), @, 120) END,
[] = CASE WHEN @ IS NULL THEN [] ELSE CONVERT(VARCHAR(20), @, 120) END,
[] = @
WHERE [id] = @id
AND [] = @;
END;
UPDATE [dbo].[MES_机加工MES_加工完成整修审核表]
SET = @,
= @,
= GETDATE(),
= ISNULL(@, N''),
= CASE WHEN @ = N'审核通过' AND @ = N'加工完成' THEN @ ELSE END,
= CASE
WHEN @ = N'审核通过' AND @ = N'加工完成' AND @ IS NOT NULL THEN @
WHEN @ = N'审核通过' AND @ = N'结束整修' AND @ IS NOT NULL THEN @
ELSE
END,
= CASE
WHEN @ = N'审核通过' AND @ = N'加工完成' AND @ IS NOT NULL THEN @
WHEN @ = N'审核通过' AND @ = N'结束整修' THEN ISNULL(@, GETDATE())
ELSE
END,
= CASE WHEN @ = N'审核通过' AND @ = N'结束整修' THEN @ ELSE END,
= CASE WHEN @ = N'审核通过' AND @ = N'加工完成' THEN @ ELSE END,
= CASE WHEN @ = N'审核通过' AND @ = N'加工完成' THEN @ ELSE END,
= N'Ld',
= GETDATE()
WHERE id = @
AND = N'待审核';
SET [] = @,
[] = @,
[] = GETDATE(),
[] = ISNULL(@, N''),
[] = CASE WHEN @ = 1 THEN @ ELSE [] END,
[] = CASE
WHEN @ = 1 AND @ IS NOT NULL THEN @
WHEN @ = 1 AND @ IS NOT NULL THEN @
ELSE []
END,
[] = CASE
WHEN @ = 1 AND @ IS NOT NULL THEN @
WHEN @ = 1 AND @ IS NOT NULL THEN @
ELSE []
END,
[] = CASE WHEN @ = 1 THEN @ ELSE [] END,
[] = CASE WHEN @ = 1 THEN @Safe计价方式 ELSE [] END,
[] = CASE WHEN @ = 1 THEN @ ELSE [] END,
[] = CASE WHEN @ = 1 THEN @ ELSE [] END,
[] = N'Ld',
[] = GETDATE()
WHERE [id] = @
AND [] = N'待审核';
IF @ = 1
BEGIN
COMMIT TRAN;
END;
END TRY
BEGIN CATCH
IF @@TRANCOUNT > 0
BEGIN
IF ISNULL(@, 1) = 1
BEGIN
ROLLBACK TRAN;
END
ELSE
BEGIN
ROLLBACK TRAN ;
END;
END;
SELECT N'0' AS result, ERROR_MESSAGE() AS message;
@@ -379,3 +435,5 @@ BEGIN
SELECT N'1' AS result;
END;
GO
GO