更新工序工价、库存查询、库位、领料、出库明细、入库等仓储模块,新增采购合同入库单移动端设计及SQL脚本
This commit is contained in:
139
sql/车间生产管理工艺_零件工序_取消派工_加固.sql
Normal file
139
sql/车间生产管理工艺_零件工序_取消派工_加固.sql
Normal file
@@ -0,0 +1,139 @@
|
||||
ALTER PROCEDURE [dbo].[车间生产管理工艺_零件工序_取消派工]
|
||||
@工艺任务流水号 INT = NULL,
|
||||
@工序流水号 INT = NULL,
|
||||
@数量 INT = NULL,
|
||||
@退货人 INT = NULL,
|
||||
@订单流水号 INT = NULL
|
||||
AS
|
||||
BEGIN
|
||||
SET NOCOUNT ON;
|
||||
SET XACT_ABORT ON;
|
||||
|
||||
DECLARE @工艺计划流水号 INT;
|
||||
DECLARE @任务数量 FLOAT;
|
||||
DECLARE @加工数量 INT;
|
||||
DECLARE @是否加工中 INT;
|
||||
DECLARE @工序顺序 INT;
|
||||
DECLARE @图号 NVARCHAR(50);
|
||||
DECLARE @物料名称 NVARCHAR(50);
|
||||
DECLARE @物料流水号 INT;
|
||||
DECLARE @出库记录流水号 INT;
|
||||
DECLARE @匹配出库记录数 INT;
|
||||
DECLARE @n INT = 0;
|
||||
|
||||
BEGIN TRY
|
||||
BEGIN TRANSACTION;
|
||||
|
||||
SELECT
|
||||
@任务数量 = 数量,
|
||||
@加工数量 = ISNULL(加工数量, 0),
|
||||
@是否加工中 = ISNULL(是否加工中, 0)
|
||||
FROM dbo.车间生产管理工艺_零件工序_任务分配 WITH (UPDLOCK, HOLDLOCK)
|
||||
WHERE 工艺任务流水号 = @工艺任务流水号
|
||||
AND 工序流水号 = @工序流水号;
|
||||
|
||||
IF @任务数量 IS NULL
|
||||
BEGIN
|
||||
RAISERROR(N'派工任务不存在或已取消', 16, 1);
|
||||
END;
|
||||
|
||||
IF @加工数量 > 0 OR @是否加工中 > 0
|
||||
BEGIN
|
||||
RAISERROR(N'零件已加工或加工中,不能取消派工', 16, 1);
|
||||
END;
|
||||
|
||||
IF ISNULL(@任务数量, 0) <= 0
|
||||
BEGIN
|
||||
RAISERROR(N'派工数量异常,不能取消派工', 16, 1);
|
||||
END;
|
||||
|
||||
SELECT
|
||||
@工艺计划流水号 = 工艺计划流水号,
|
||||
@工序顺序 = 工序顺序
|
||||
FROM dbo.车间生产管理工艺_零件工序
|
||||
WHERE 工序流水号 = @工序流水号;
|
||||
|
||||
IF @工序顺序 = 1
|
||||
BEGIN
|
||||
SELECT
|
||||
@图号 = RTRIM(LTRIM(零件图号)) + N'MP',
|
||||
@物料名称 = 零件名称 + N'MP'
|
||||
FROM dbo.车间生产管理_零件工艺计划_视图
|
||||
WHERE 工艺计划流水号 = @工艺计划流水号;
|
||||
|
||||
SELECT @物料流水号 = 物料流水号
|
||||
FROM dbo.库存管理_物料主文件_基本
|
||||
WHERE RTRIM(LTRIM(代号)) = @图号
|
||||
AND RTRIM(LTRIM(名称)) = @物料名称
|
||||
AND ISNULL(是否禁用, 0) = 0;
|
||||
|
||||
IF @物料流水号 IS NOT NULL
|
||||
BEGIN
|
||||
SELECT
|
||||
@匹配出库记录数 = COUNT(*),
|
||||
@出库记录流水号 = MAX(出库记录流水号)
|
||||
FROM dbo.库存管理_物料出库_出库记录 WITH (UPDLOCK, HOLDLOCK)
|
||||
WHERE 物料流水号 = @物料流水号
|
||||
AND 订单流水号 = @订单流水号
|
||||
AND ISNULL(出库数量, 0) - ISNULL(退料数量, 0) >= @任务数量;
|
||||
|
||||
IF ISNULL(@匹配出库记录数, 0) > 1
|
||||
BEGIN
|
||||
RAISERROR(N'同一订单同一毛坯存在多条可退出库记录,请先人工确认出库记录', 16, 1);
|
||||
END;
|
||||
|
||||
IF ISNULL(@匹配出库记录数, 0) = 1
|
||||
BEGIN
|
||||
EXEC dbo.仓储管理_退料入库_执行
|
||||
@出库记录流水号 = @出库记录流水号,
|
||||
@退料数量 = @任务数量,
|
||||
@退料人 = @退货人;
|
||||
END;
|
||||
END;
|
||||
END;
|
||||
|
||||
UPDATE dbo.车间生产管理工艺_零件工序
|
||||
SET 已分配数 = ISNULL(已分配数, 0) - @任务数量
|
||||
WHERE 工序流水号 = @工序流水号
|
||||
AND ISNULL(已分配数, 0) >= @任务数量;
|
||||
|
||||
IF @@ROWCOUNT = 0
|
||||
BEGIN
|
||||
RAISERROR(N'工序已分配数不足,取消派工失败', 16, 1);
|
||||
END;
|
||||
|
||||
DELETE FROM dbo.车间生产管理工艺_零件工序_任务分配
|
||||
WHERE 工艺任务流水号 = @工艺任务流水号
|
||||
AND 工序流水号 = @工序流水号;
|
||||
|
||||
IF @@ROWCOUNT = 0
|
||||
BEGIN
|
||||
RAISERROR(N'派工任务删除失败', 16, 1);
|
||||
END;
|
||||
|
||||
SELECT @n = COUNT(*)
|
||||
FROM dbo.车间生产管理工艺_零件工序_任务分配
|
||||
WHERE 工序流水号 IN
|
||||
(
|
||||
SELECT 工序流水号
|
||||
FROM dbo.车间生产管理工艺_零件工序
|
||||
WHERE 工艺计划流水号 = @工艺计划流水号
|
||||
);
|
||||
|
||||
IF @n = 0
|
||||
BEGIN
|
||||
UPDATE dbo.车间生产管理工艺_零件工艺计划
|
||||
SET 分配日期 = NULL
|
||||
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;
|
||||
73
sql/车间生产管理工艺_零件工序_取消派工_正式库备份_20260720.sql
Normal file
73
sql/车间生产管理工艺_零件工序_取消派工_正式库备份_20260720.sql
Normal file
@@ -0,0 +1,73 @@
|
||||
|
||||
|
||||
CREATE PROCEDURE [dbo].[车间生产管理工艺_零件工序_取消派工]
|
||||
|
||||
@工艺任务流水号 int = null,
|
||||
|
||||
@工序流水号 int = null,
|
||||
|
||||
@数量 int = null,
|
||||
|
||||
@退货人 int =null,
|
||||
|
||||
@订单流水号 int = null
|
||||
|
||||
|
||||
|
||||
AS
|
||||
|
||||
|
||||
|
||||
declare @工艺计划流水号 int
|
||||
|
||||
declare @n int = 0
|
||||
|
||||
declare @图号 nvarchar(50)
|
||||
|
||||
declare @物料名称 nvarchar(50)
|
||||
|
||||
declare @出库记录流水号 int
|
||||
|
||||
|
||||
|
||||
select @工艺计划流水号=工艺计划流水号 from 车间生产管理工艺_零件工序 where 工序流水号=@工序流水号
|
||||
|
||||
|
||||
|
||||
select @图号=零件图号+'MP',@物料名称 = 零件名称+'MP' from 车间生产管理_零件工艺计划_视图 where 工艺计划流水号 = @工艺计划流水号
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
select @出库记录流水号 = 出库记录流水号 from 仓储管理_出库记录_视图 where 图号或型号 = @图号 AND 物料名称 = @物料名称 AND 订单流水号 = @订单流水号
|
||||
|
||||
if(@出库记录流水号>0)
|
||||
|
||||
begin
|
||||
|
||||
EXEC 仓储管理_退料入库_执行 @出库记录流水号,@数量,@退货人
|
||||
|
||||
end
|
||||
|
||||
|
||||
|
||||
update 车间生产管理工艺_零件工序 set 已分配数 = ISNULL(已分配数,0) - @数量 where 工序流水号=@工序流水号
|
||||
|
||||
|
||||
|
||||
delete from 车间生产管理工艺_零件工序_任务分配 where 工艺任务流水号=@工艺任务流水号
|
||||
|
||||
|
||||
|
||||
select @n=count(*) from 车间生产管理工艺_零件工序_任务分配 where 工序流水号 in (select 工序流水号 from 车间生产管理工艺_零件工序 where 工艺计划流水号=@工艺计划流水号)
|
||||
|
||||
|
||||
|
||||
if @n = 0
|
||||
|
||||
begin
|
||||
|
||||
update 车间生产管理工艺_零件工艺计划 set 分配日期 = NULL where 工艺计划流水号=@工艺计划流水号
|
||||
|
||||
end
|
||||
146
sql/车间生产管理工艺_零件工序_取消派工_正式库备份_20260722_序号1退料前.sql
Normal file
146
sql/车间生产管理工艺_零件工序_取消派工_正式库备份_20260722_序号1退料前.sql
Normal file
@@ -0,0 +1,146 @@
|
||||
CREATE PROCEDURE [dbo].[车间生产管理工艺_零件工序_取消派工]
|
||||
@工艺任务流水号 INT = NULL,
|
||||
@工序流水号 INT = NULL,
|
||||
@数量 INT = NULL,
|
||||
@退货人 INT = NULL,
|
||||
@订单流水号 INT = NULL
|
||||
AS
|
||||
BEGIN
|
||||
SET NOCOUNT ON;
|
||||
SET XACT_ABORT ON;
|
||||
|
||||
DECLARE @工艺计划流水号 INT;
|
||||
DECLARE @任务数量 FLO
|
||||
AT;
|
||||
DECLARE @加工数量 INT;
|
||||
DECLARE @是否加工中 INT;
|
||||
DECLARE @图号 NVARCHAR(50);
|
||||
DECLARE @物料名称 NVARCHAR(50);
|
||||
DECLARE @物料流水号 INT;
|
||||
DECLARE @出库记录流水号 INT;
|
||||
DECLARE @匹配出库记录数 INT;
|
||||
DECLARE @n INT = 0;
|
||||
|
||||
BEGIN TRY
|
||||
BEGIN TRANSACTION;
|
||||
|
||||
|
||||
SELECT
|
||||
@任务数量 = 数量,
|
||||
@加工数量 = ISNULL(加工数量, 0),
|
||||
@是否加工中 = ISNULL(是否加工中, 0)
|
||||
FROM dbo.车间生产管理工艺_零件工序_任务分配 WITH (UPDLOCK, HOLDLOCK)
|
||||
WHERE 工艺任务流水号 = @工艺任务流水号
|
||||
AND 工序流水号 = @工序流水号;
|
||||
|
||||
IF @任务数
|
||||
量 IS NULL
|
||||
BEGIN
|
||||
RAISERROR(N'派工任务不存在或已取消', 16, 1);
|
||||
END;
|
||||
|
||||
IF @加工数量 > 0 OR @是否加工中 > 0
|
||||
BEGIN
|
||||
RAISERROR(N'零件已加工或加工中,不能取消派工', 16, 1);
|
||||
END;
|
||||
|
||||
IF ISNULL(@任务数量, 0) <= 0
|
||||
BEGIN
|
||||
|
||||
RAISERROR(N'派工数量异常,不能取消派工', 16, 1);
|
||||
END;
|
||||
|
||||
SELECT @工艺计划流水号 = 工艺计划流水号
|
||||
FROM dbo.车间生产管理工艺_零件工序
|
||||
WHERE 工序流水号 = @工序流水号;
|
||||
|
||||
SELECT
|
||||
@图号 = RTRIM(LTRIM(零件图号)) + N'MP',
|
||||
@物料名称 = 零件名称 + N'MP'
|
||||
FROM
|
||||
dbo.车间生产管理_零件工艺计划_视图
|
||||
WHERE 工艺计划流水号 = @工艺计划流水号;
|
||||
|
||||
SELECT @物料流水号 = 物料流水号
|
||||
FROM dbo.库存管理_物料主文件_基本
|
||||
WHERE RTRIM(LTRIM(代号)) = @图号
|
||||
AND RTRIM(LTRIM(名称)) = @物料名称
|
||||
AND ISNULL(是否禁用, 0) = 0;
|
||||
|
||||
IF @物料流水号 IS NOT N
|
||||
ULL
|
||||
BEGIN
|
||||
SELECT
|
||||
@匹配出库记录数 = COUNT(*),
|
||||
@出库记录流水号 = MAX(出库记录流水号)
|
||||
FROM dbo.库存管理_物料出库_出库记录 WITH (UPDLOCK, HOLDLOCK)
|
||||
WHERE 物料流水号 = @物料流水号
|
||||
AND 订单流水号 = @订单流水号
|
||||
|
||||
AND ISNULL(出库数量, 0) - ISNULL(退料数量, 0) >= @任务数量;
|
||||
|
||||
IF ISNULL(@匹配出库记录数, 0) > 1
|
||||
BEGIN
|
||||
RAISERROR(N'同一订单同一毛坯存在多条可退出库记录,请先人工确认出库记录', 16, 1);
|
||||
END;
|
||||
|
||||
IF ISNULL(@匹配出库记录数, 0) = 1
|
||||
BEGIN
|
||||
|
||||
EXEC dbo.仓储管理_退料入库_执行
|
||||
@出库记录流水号 = @出库记录流水号,
|
||||
@退料数量 = @任务数量,
|
||||
@退料人 = @退货人;
|
||||
END;
|
||||
END;
|
||||
|
||||
UPDATE dbo.车间生产管理工艺_零件工序
|
||||
SET 已分配数 = ISNULL(已分配数, 0) - @任务数量
|
||||
|
||||
WHERE 工序流水号 = @工序流水号
|
||||
AND ISNULL(已分配数, 0) >= @任务数量;
|
||||
|
||||
IF @@ROWCOUNT = 0
|
||||
BEGIN
|
||||
RAISERROR(N'工序已分配数不足,取消派工失败', 16, 1);
|
||||
END;
|
||||
|
||||
DELETE FROM dbo.车间生产管理工艺_零件工序_任务分配
|
||||
WHERE 工艺任务流水号 = @工艺任务流水号
|
||||
AN
|
||||
D 工序流水号 = @工序流水号;
|
||||
|
||||
IF @@ROWCOUNT = 0
|
||||
BEGIN
|
||||
RAISERROR(N'派工任务删除失败', 16, 1);
|
||||
END;
|
||||
|
||||
SELECT @n = COUNT(*)
|
||||
FROM dbo.车间生产管理工艺_零件工序_任务分配
|
||||
WHERE 工序流水号 IN
|
||||
(
|
||||
SELECT 工序流水号
|
||||
FROM
|
||||
dbo.车间生产管理工艺_零件工序
|
||||
WHERE 工艺计划流水号 = @工艺计划流水号
|
||||
);
|
||||
|
||||
IF @n = 0
|
||||
BEGIN
|
||||
UPDATE dbo.车间生产管理工艺_零件工艺计划
|
||||
SET 分配日期 = NULL
|
||||
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;
|
||||
|
||||
Reference in New Issue
Block a user