更新装配、精工车间、技术中心、仓储模块,新增工序工价、生产审核、三楼仓库可视化等功能及文档SQL

This commit is contained in:
Developer
2026-07-06 11:21:59 +08:00
parent be0ff91e24
commit 9c1f52078d
43 changed files with 8566 additions and 233 deletions

View File

@@ -0,0 +1,315 @@
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER PROCEDURE [dbo].[_改制订单_发起改制]
@ int = null,
@ int = null,
@ nvarchar(50) = null,
@ nvarchar(50) = null,
@ int = null,
@ date = null,
@ int = null,
@ nvarchar(50) = null,
@ nvarchar(50) = null,
@ int = null
AS
BEGIN
SET NOCOUNT ON;
DECLARE @ int;
DECLARE @ int;
DECLARE @ varchar(100);
DECLARE @ int;
DECLARE @ int;
DECLARE @ int;
DECLARE @ varchar(100);
DECLARE @ varchar(100);
DECLARE @n int;
IF ISNULL(LTRIM(RTRIM(@)), '') <> ''
AND ISNULL(LTRIM(RTRIM(@)), '') <> ''
AND LTRIM(RTRIM(@)) = LTRIM(RTRIM(@))
BEGIN
SELECT '0' AS result, '改制零件图号不能与原零件图号相同' AS msg;
RETURN;
END;
IF @ IS NULL OR @ IS NULL
BEGIN
SELECT '0' AS result, '原订单流水号或原组件流水号不能为空' AS msg;
RETURN;
END;
IF ISNULL(@, '') = '' OR ISNULL(@, '') = ''
BEGIN
SELECT '0' AS result, '改制零件名称或改制零件图号不能为空' AS msg;
RETURN;
END;
IF ISNULL(@, 0) <= 0
BEGIN
SELECT '0' AS result, '改制数量必须大于0' AS msg;
RETURN;
END;
-- 修改人:Ld 修改时间:2026-07-01 14:45:00; 优先使用前端点击行传入的原基本件流水号,避免同组件内重复零件或历史流水号导致改制记录回显错位。
IF @ IS NULL
BEGIN
SELECT TOP 1
@ = B.
FROM dbo.PDM_零件明细表_所有视图 AS B
WHERE B. = @
AND B. = @
AND (ISNULL(@, '') = '' OR B. = @)
AND (ISNULL(@, '') = '' OR B.[] = @)
ORDER BY B. DESC;
END;
IF @ IS NULL
BEGIN
SELECT TOP 1
@ =
FROM dbo.PDM_零件明细表_基本件
WHERE = @
ORDER BY DESC;
END;
IF @ IS NULL
BEGIN
SELECT '0' AS result, '未找到原零件基本件流水号' AS msg;
RETURN;
END;
SELECT TOP 1
@ =
FROM dbo._物料主文件_基本
WHERE LTRIM(RTRIM()) = LTRIM(RTRIM(@))
AND LTRIM(RTRIM()) = LTRIM(RTRIM(@))
AND ISNULL(, 0) = 0
ORDER BY DESC;
IF @ IS NULL
BEGIN
SELECT '0' AS result, '未找到改制零件对应的新物料,请先维护物料信息' AS msg;
RETURN;
END;
IF @ IS NULL
SET @ = CONVERT(date, GETDATE());
BEGIN TRY
BEGIN TRAN;
SELECT @n = COUNT(*)
FROM dbo._改制订单排序
WHERE = CONVERT(varchar(4), GETDATE(), 23);
IF @n = 0
BEGIN
SET @ = CONVERT(varchar(4), GETDATE(), 23);
INSERT INTO dbo._改制订单排序(, )
VALUES(@, 1);
SET @ = 1;
END
ELSE
BEGIN
UPDATE dbo._改制订单排序
SET = + 1
WHERE = CONVERT(varchar(4), GETDATE(), 23);
SELECT @ =
FROM dbo._改制订单排序
WHERE = CONVERT(varchar(4), GETDATE(), 23);
END;
SET @ = RIGHT(10000 + CONVERT(varchar(100), @), 4);
SET @ =
'BHGZ' + '-'
+ DATENAME(year, GETDATE())
+ DATENAME(month, GETDATE())
+ RIGHT(100 + DAY(GETDATE()), 2)
+ CONVERT(varchar, @);
INSERT INTO dbo._改制订单记录
(
,
,
,
,
,
,
,
,
,
,
,
,
,
,
)
VALUES
(
@,
@,
@,
@,
@,
@,
@,
@,
@,
@,
@,
N'待生成任务',
@,
GETDATE(),
0
);
SET @ = SCOPE_IDENTITY();
INSERT INTO dbo._零件工艺计划
(
,
,
,
,
,
,
,
)
VALUES
(
@,
@,
@,
GETDATE(),
2,
GETDATE(),
@,
@
);
SET @ = SCOPE_IDENTITY();
UPDATE dbo._改制订单记录
SET = @,
= N'工艺完成'
WHERE = @;
SELECT TOP 1
@ =
FROM dbo._基础表_工艺名称
WHERE = N'改制'
AND ISNULL(, 1) = 1;
IF @ IS NULL
BEGIN
INSERT INTO dbo._基础表_工艺名称(, )
VALUES(N'改制', 1);
SET @ = SCOPE_IDENTITY();
END;
SELECT TOP 1
@ =
FROM dbo._零件工序
WHERE = @
ORDER BY ;
IF @ IS NOT NULL
BEGIN
UPDATE dbo._零件工序
SET = @,
= 1,
= N'改制',
= 0,
= 0,
= 1,
= 0,
= 0,
= 0,
= 0,
= 1
WHERE = @;
END
ELSE
BEGIN
INSERT INTO dbo._零件工序
(
,
,
,
,
,
,
,
,
,
,
,
)
VALUES
(
@,
@,
1,
N'改制',
0,
0,
1,
0,
0,
0,
0,
1
);
END;
EXEC dbo._工艺保存_派工
@ = @,
@ = @;
UPDATE dbo.PDM_组件名称
SET = 1,
= 1
WHERE = @;
UPDATE dbo._订单信息_基础表
SET = 1,
= 1,
= 0,
= @,
= GETDATE(),
= @
WHERE = @;
COMMIT TRAN;
SELECT
'1' AS result,
'改制订单已生成' AS msg,
@ AS ,
@ AS ,
@ AS ,
@ AS ;
END TRY
BEGIN CATCH
IF @@TRANCOUNT > 0
ROLLBACK TRAN;
SELECT
'0' AS result,
ERROR_MESSAGE() AS msg;
END CATCH;
END;
GO