更新设备维修、发货、精工车间工序工价/生产审核/工时统计、仓储盘点/库存查询/库位/入库,新增车间派工移动端及SQL脚本
This commit is contained in:
@@ -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
|
||||
|
||||
|
||||
Reference in New Issue
Block a user