更新工序工价、库存查询、库位、领料、出库明细、入库等仓储模块,新增采购合同入库单移动端设计及SQL脚本

This commit is contained in:
Developer
2026-07-23 08:45:50 +08:00
parent 2b9058c69c
commit 33549c3787
17 changed files with 1124 additions and 46 deletions

View 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;