更新设备维修、发货、精工车间工序工价/生产审核/工时统计、仓储盘点/库存查询/库位/入库,新增车间派工移动端及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

@@ -0,0 +1,231 @@
-- 生产审核普通通过只改审核状态为已审核;修改数量/时间才修正生产完成数据。修改人:Ld 修改时间:2026-07-17 09:10:08;
ALTER PROCEDURE [dbo].[MES_加工完成整修审核_审核数据]
@ INT,
@ NVARCHAR(20),
@ NVARCHAR(100) = NULL,
@ NVARCHAR(1000) = NULL,
@ FLOAT = NULL,
@ DATETIME = NULL,
@ DATETIME = NULL,
@ DATETIME = NULL,
@ DATETIME = NULL,
@ NVARCHAR(1000) = NULL,
@ NVARCHAR(20) = NULL
AS
BEGIN
SET NOCOUNT ON;
DECLARE @ NVARCHAR(20);
DECLARE @ NVARCHAR(50);
DECLARE @ INT;
DECLARE @ FLOAT;
DECLARE @ FLOAT;
DECLARE @ FLOAT;
DECLARE @ INT;
DECLARE @ NVARCHAR(100);
DECLARE @ INT;
DECLARE @ INT;
DECLARE @ NVARCHAR(100);
DECLARE @id INT;
DECLARE @ NVARCHAR(1000);
DECLARE @Safe计价方式 NVARCHAR(20);
DECLARE @ DECIMAL(18, 4);
DECLARE @ DECIMAL(18, 4);
DECLARE @ BIT = 0;
DECLARE @ BIT = 0;
DECLARE @ BIT;
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
FROM [dbo].[MES_机加工MES_加工完成整修审核表]
WHERE id = @
AND = N'待审核'
)
BEGIN
SELECT N'0' AS result, N'该审核记录不存在或已审核' AS message;
RETURN;
END;
SELECT
@ = ,
@ = ,
@ = ISNULL(, 0),
@ = ,
@ = ,
@ = ,
@id = id,
@ = 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 TRAN;
ELSE
SAVE TRAN ;
IF @ = 1
BEGIN
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'未找到对应生产完成记录' AS message;
RETURN;
END;
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
UPDATE [dbo].[_零件工序]
SET [] = ISNULL([], 0) + @
WHERE [] = @;
UPDATE [dbo].[_零件工序_任务分配]
SET [] = ISNULL([], 0) + @
WHERE [] = @
AND [] = @
AND [] = @;
END;
IF @ IS NOT NULL
BEGIN
UPDATE [dbo].[_零件工序]
SET [] = @
WHERE [] = @;
END;
END;
IF @ = 1
BEGIN
UPDATE [dbo].[_整修]
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 @ = 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
COMMIT TRAN;
END TRY
BEGIN CATCH
IF @@TRANCOUNT > 0
BEGIN
IF ISNULL(@, 1) = 1
ROLLBACK TRAN;
ELSE
ROLLBACK TRAN ;
END;
SELECT N'0' AS result, ERROR_MESSAGE() AS message;
RETURN;
END CATCH;
SELECT N'1' AS result;
END;
GO