更新装配、销售、精工车间、技术中心、仓储多个模块,整理文档和SQL脚本

This commit is contained in:
Developer
2026-06-29 13:36:34 +08:00
parent 137e276340
commit be0ff91e24
54 changed files with 5066 additions and 723 deletions

View File

@@ -0,0 +1,392 @@
IF OBJECT_ID(N'dbo.仓储管理_入库记录_退货入库_验证', N'P') IS NOT NULL
DROP PROCEDURE dbo._入库记录_退货入库_验证
GO
CREATE PROCEDURE dbo._入库记录_退货入库_验证
@ INT = NULL,
@退 FLOAT = NULL,
@ INT = NULL,
@ INT = NULL,
@ INT = NULL,
@ DATETIME = NULL,
@ INT = NULL
AS
BEGIN
SET NOCOUNT ON;
DECLARE @ FLOAT;
DECLARE @ NVARCHAR(50);
DECLARE @ NVARCHAR(50);
DECLARE @ NVARCHAR(50);
DECLARE @ INT;
SELECT
@ = ,
@ = ,
@ =
FROM dbo._物料主文件_基本
WHERE = @;
SELECT @ =
FROM dbo._外购件_入库记录
WHERE = @;
SET @ = RIGHT(ISNULL(@, N''), 2);
SET @ = LEFT(ISNULL(@, N''), 2);
IF @ = N'主轴'
BEGIN
SELECT @ = ISNULL(MAX(), 0)
FROM dbo._物料与货位对照表
WHERE = @
AND = @
AND = @
AND (@ IS NULL OR = @)
AND (@ IS NULL OR = @);
END
ELSE
BEGIN
SELECT @ = ISNULL(MAX(), 0)
FROM dbo._物料与货位对照表
WHERE = @
AND = @
AND = @
AND (@ IS NULL OR = @);
IF ISNULL(@, 0) < ISNULL(@退, 0)
AND (@ = N'MP' OR @ = N'毛坯库')
BEGIN
SELECT @ = ISNULL(MAX(), 0)
FROM dbo._物料与货位对照表
WHERE = @
AND IS NULL
AND IS NULL
AND (@ IS NULL OR = @);
END;
END;
IF ISNULL(@退, 0) > ISNULL(@, 0)
SELECT 0 AS ;
ELSE
SELECT 1 AS ;
END
GO
IF OBJECT_ID(N'dbo.仓储管理_入库记录_退货入库', N'P') IS NOT NULL
DROP PROCEDURE dbo._入库记录_退货入库
GO
CREATE PROCEDURE dbo._入库记录_退货入库
@ INT = NULL,
@退 FLOAT = NULL,
@退 NVARCHAR(500) = NULL,
@ INT = NULL,
@退 INT = NULL,
@ INT = NULL,
@ INT = NULL,
@ INT = NULL,
@ INT = NULL,
@ INT = NULL,
@ INT = NULL,
@ NVARCHAR(50) = NULL,
@ NVARCHAR(500) = NULL,
@ NVARCHAR(500) = NULL,
@ NVARCHAR(500) = NULL,
@ NVARCHAR(50) = NULL,
@ NVARCHAR(50) = NULL,
@ NVARCHAR(50) = NULL,
@ DATETIME,
@ FLOAT = NULL
AS
BEGIN
SET NOCOUNT ON;
SET XACT_ABORT ON;
DECLARE @ NVARCHAR(50);
DECLARE @ NVARCHAR(50);
DECLARE @ INT;
DECLARE @ INT;
BEGIN TRY
BEGIN TRANSACTION;
SELECT @ =
FROM dbo._外购件_入库记录
WHERE = @;
INSERT INTO dbo._入库记录_退货记录表
(退, 退, , 退, 退, , , , , , , , , , )
VALUES
(@退, @退, @, @退, GETDATE(), @, @, @, @, @, @, @, @, @, @);
UPDATE dbo._外购件累计库存
SET = ISNULL(, 0) - @退
WHERE = @;
SELECT @ = , @ =
FROM dbo._物料主文件_基本
WHERE = @;
SET @ = LEFT(ISNULL(@, N''), 2);
SET @ = LEFT(ISNULL(@, N''), 2);
SET @ = 0;
IF @ = N'主轴'
BEGIN
UPDATE dbo._物料与货位对照表
SET = - @退
WHERE = @
AND = @
AND = @
AND (@ IS NULL OR = @)
AND CONVERT(VARCHAR(10), @, 23) = CONVERT(VARCHAR(10), , 23)
AND = @
AND ISNULL(, 0) >= @退;
SET @ = @@ROWCOUNT;
END
ELSE
BEGIN
IF @ = N'MP'
BEGIN
UPDATE dbo._物料与货位对照表
SET = - @退
WHERE = @
AND (@ IS NULL OR = @)
AND IS NULL
AND IS NULL
AND ISNULL(, 0) >= @退;
SET @ = @@ROWCOUNT;
END
ELSE
BEGIN
UPDATE dbo._物料与货位对照表
SET = - @退
WHERE = @
AND = @
AND = @
AND (@ IS NULL OR = @)
AND CONVERT(VARCHAR(10), @, 23) = CONVERT(VARCHAR(10), , 23)
AND ISNULL(, 0) >= @退;
SET @ = @@ROWCOUNT;
END;
END;
IF @ = 0
BEGIN
RAISERROR(N'库存盘点对应库位库存不足或未找到对应库存记录', 16, 1);
END;
UPDATE dbo._外购件_入库记录
SET = - @退,
退 = ISNULL(退, 0) + @退
WHERE = @;
IF @ = N'主轴'
UPDATE dbo._采购批次
SET = - @退
WHERE = @
AND = @;
IF @ = 1
BEGIN
UPDATE dbo._采购合同明细
SET = - @退,
= NULL
WHERE = @;
UPDATE dbo._采购合同
SET = 1
WHERE = @;
END
ELSE
BEGIN
UPDATE dbo._耗材采购合同明细
SET = ISNULL(, 0) - @退,
= NULL
WHERE = @;
UPDATE dbo._采购合同
SET = 1
WHERE = @;
END;
DECLARE @ INT;
DECLARE @ INT;
DECLARE @ INT;
SELECT
@ = ,
@ = ,
@ =
FROM dbo.PDM_组件名称_视图
WHERE = @;
IF @ = 3
BEGIN
UPDATE dbo._订单信息_基础表
SET = 3,
= NULL
WHERE = @;
UPDATE dbo._外购件累计库存
SET = ISNULL(, 0) + @退
WHERE = @;
END;
IF @ = 1 AND @ = 1
BEGIN
UPDATE dbo.PDM_组件名称
SET = 2
WHERE = @;
END;
COMMIT TRANSACTION;
SELECT '1' AS result;
END TRY
BEGIN CATCH
IF @@TRANCOUNT > 0
ROLLBACK TRANSACTION;
SELECT '0' AS result, ERROR_MESSAGE() AS msg;
END CATCH;
END
GO
IF OBJECT_ID(N'dbo.仓储管理_自制件入库记录_退货入库', N'P') IS NOT NULL
DROP PROCEDURE dbo._自制件入库记录_退货入库
GO
CREATE PROCEDURE dbo._自制件入库记录_退货入库
@ INT = NULL,
@退 FLOAT = NULL,
@退 NVARCHAR(500) = NULL,
@ INT = NULL,
@退 INT = NULL,
@ INT = NULL,
@ DATETIME,
@ NVARCHAR(50)
AS
BEGIN
SET NOCOUNT ON;
SET XACT_ABORT ON;
DECLARE @ INT;
DECLARE @ NVARCHAR(50);
DECLARE @ INT;
DECLARE @ INT;
BEGIN TRY
BEGIN TRANSACTION;
SELECT
@ = ,
@ =
FROM dbo._自制件_入库记录
WHERE = @;
INSERT INTO dbo._自制件入库记录_退货记录表
(退, 退, 退, 退, )
VALUES
(@退, @退, @退, GETDATE(), @);
UPDATE dbo._外购件累计库存
SET = ISNULL(, 0) - @退
WHERE = @;
SELECT @ =
FROM dbo._物料主文件_基本
WHERE = @;
SET @ = LEFT(ISNULL(@, N''), 2);
IF @ = N'主轴'
BEGIN
UPDATE dbo._物料与货位对照表
SET = - @退
WHERE = @
AND = @
AND (@ IS NULL OR = @)
AND CONVERT(VARCHAR(10), @, 23) = CONVERT(VARCHAR(10), , 23)
AND = @
AND ISNULL(, 0) >= @退;
END
ELSE
BEGIN
UPDATE dbo._物料与货位对照表
SET = - @退
WHERE = @
AND = @
AND (@ IS NULL OR = @)
AND CONVERT(VARCHAR(10), @, 23) = CONVERT(VARCHAR(10), , 23)
AND ISNULL(, 0) >= @退;
END;
SET @ = @@ROWCOUNT;
IF @ = 0
BEGIN
RAISERROR(N'库存盘点对应库位库存不足或未找到对应库存记录', 16, 1);
END;
UPDATE dbo._自制件_入库记录
SET = - @退,
退 = ISNULL(退, 0) + @退
WHERE = @;
IF @ = N'主轴'
UPDATE dbo._零件批次
SET = - @退
WHERE = @
AND = @;
UPDATE dbo._零件工艺计划
SET = 3,
= - @退
WHERE = @;
DECLARE @ INT;
DECLARE @ INT;
DECLARE @ INT;
SELECT
@ = ,
@ = ,
@ =
FROM dbo.PDM_组件名称_视图
WHERE = @;
IF @ = 3
BEGIN
UPDATE dbo._订单信息_基础表
SET = 3,
= NULL
WHERE = @;
UPDATE dbo._外购件累计库存
SET = ISNULL(, 0) + @退
WHERE = @;
END;
IF @ = 1 AND @ = 1
BEGIN
UPDATE dbo.PDM_组件名称
SET = 2
WHERE = @;
END;
COMMIT TRANSACTION;
SELECT '1' AS result;
END TRY
BEGIN CATCH
IF @@TRANCOUNT > 0
ROLLBACK TRANSACTION;
SELECT '0' AS result, ERROR_MESSAGE() AS msg;
END CATCH;
END
GO