更新装配、精工车间、技术中心、仓储模块,新增工序工价、生产审核、三楼仓库可视化等功能及文档SQL
This commit is contained in:
315
sql/零件改制_发起改制_精确基本件.sql
Normal file
315
sql/零件改制_发起改制_精确基本件.sql
Normal 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
|
||||
Reference in New Issue
Block a user