-- 物料入库组件自制件入库模块添加入库单按钮配套测试库脚本 -- 修改人:Ld 修改时间:2026-07-14 09:05:57; ALTER PROCEDURE [dbo].[仓储管理_入库单_查询] @类型_check bit = 0, @类型 nvarchar(50) = null AS BEGIN SET NOCOUNT ON; -- 修改人:Ld 修改时间:2026-07-14 09:05:57; 返回订单和类型字段,并支持采购/自制件入库单筛选 SELECT 入库单.入库单流水号, 入库单.入库单号, 入库单.采购合同流水号, 入库单.采购合同号, 供应商.供应商名称, 供应商.供应商流水号, 入库单.到货数, 入库单.是否入库, 入库单.入库时间, 入库单.订单流水号, 入库单.订单号, 入库单.类型 FROM dbo.仓储管理_入库单 AS 入库单 LEFT JOIN dbo.采购管理_供应商 AS 供应商 ON 入库单.供应商流水号 = 供应商.供应商流水号 WHERE ISNULL(@类型_check, 0) = 0 OR ( @类型 = N'自制' AND ISNULL(入库单.类型, N'') = N'自制' ) OR ( @类型 = N'采购' AND ISNULL(入库单.类型, N'') <> N'自制' ); END GO IF OBJECT_ID(N'dbo.trg_库存管理_自制件_入库记录_回写入库单', N'TR') IS NOT NULL DROP TRIGGER dbo.trg_库存管理_自制件_入库记录_回写入库单; GO CREATE TRIGGER dbo.trg_库存管理_自制件_入库记录_回写入库单 ON dbo.库存管理_自制件_入库记录 AFTER INSERT AS BEGIN SET NOCOUNT ON; -- 修改人:Ld 修改时间:2026-07-14 09:05:57; 自制件完成入库后按订单回写最近一张待入库单状态 ;WITH 候选入库单 AS ( SELECT 入库单.入库单流水号, ROW_NUMBER() OVER ( PARTITION BY 新记录.入库记录流水号 ORDER BY CASE WHEN CONVERT(float, ISNULL(入库单.到货数, 0)) = CONVERT(float, ISNULL(新记录.实际到货数量, 0)) THEN 0 ELSE 1 END, 入库单.入库单流水号 ) AS 排序号 FROM inserted AS 新记录 INNER JOIN dbo.车间生产管理_零件工艺计划_视图 AS 工艺计划 ON 新记录.工艺计划流水号 = 工艺计划.工艺计划流水号 INNER JOIN dbo.仓储管理_入库单 AS 入库单 ON 入库单.订单流水号 = CONVERT(nvarchar(100), 工艺计划.订单流水号) AND ISNULL(入库单.类型, N'') = N'自制' AND ISNULL(入库单.是否入库, 0) = 0 ) UPDATE 入库单 SET 入库单.是否入库 = 1, 入库单.入库时间 = GETDATE() FROM dbo.仓储管理_入库单 AS 入库单 INNER JOIN 候选入库单 AS 候选 ON 入库单.入库单流水号 = 候选.入库单流水号 WHERE 候选.排序号 = 1; END GO -- 修改人:Ld 修改时间:2026-07-14 09:05:57;