74 lines
2.7 KiB
PL/PgSQL
74 lines
2.7 KiB
PL/PgSQL
USE [AIS20240820]
|
|
GO
|
|
/****** Object: StoredProcedure [dbo].[P_HQBOMZYL] Script Date: 2025/1/24 9:28:21 ******/
|
|
SET ANSI_NULLS ON
|
|
GO
|
|
SET QUOTED_IDENTIFIER ON
|
|
GO
|
|
ALTER PROCEDURE [dbo].[P_HQBOMZYL]
|
|
@materialNumber nvarchar(100)
|
|
AS
|
|
BEGIN
|
|
;WITH #物料属性 AS (
|
|
SELECT t0e.FENUMID,t0e.FSEQ,t0e.FVALUE,t0e_l.FCAPTION
|
|
FROM T_META_FORMENUMITEM t0e
|
|
INNER JOIN T_META_FORMENUMITEM_L t0e_l on t0e.FENUMID = t0e_l.FENUMID AND t0e_l.FLOCALEID = 2052
|
|
WHERE 1 = 1
|
|
AND t0e.FID = 'ac14913e-bd72-416d-a50b-2c7432bbff63'
|
|
)
|
|
,#BOM展开 AS (
|
|
SELECT TOP 1 t0.FID,t0.FMATERIALID,t0.FNUMBER,t0.FUNITID ,0 lv
|
|
,ROW_NUMBER() OVER (PARTITION BY t0.FMATERIALID ORDER BY t0.FNUMBER DESC) RN
|
|
,CAST('1' AS nvarchar(100)) MPath
|
|
,CAST('' AS nvarchar(100)) PBomNumber
|
|
,CAST(1 AS decimal(23,10)) 标准用量
|
|
--,0 RN
|
|
FROM T_ENG_BOM t0
|
|
INNER JOIN T_BD_MATERIAL t1 on t1.FMATERIALID = t0.FMATERIALID
|
|
WHERE 1 = 1
|
|
--AND t0.FMATERIALID = 9554131
|
|
--AND t1.FNUMBER = '97.03.0097'
|
|
AND t1.FNUMBER = @materialNumber
|
|
AND t0.FDOCUMENTSTATUS = 'C'
|
|
AND t0.FFORBIDSTATUS = 'A'
|
|
AND t0.FUSEORGID = 1
|
|
ORDER BY t0.FNUMBER DESC
|
|
UNION ALL
|
|
SELECT ISNULL(t1.FID,0),t0e.FMATERIALID,ISNULL(t1.FNUMBER, ''),t0e.FUNITID,1 + t0.lv
|
|
,ROW_NUMBER() OVER (ORDER BY t0.RN DESC,t0e.FSEQ)
|
|
,CAST(CONCAT(t0.MPath,'.',ROW_NUMBER() OVER (ORDER BY t0.RN DESC,t0e.FSEQ)) AS nvarchar(100))
|
|
,CAST(t0.FNUMBER AS nvarchar(100))
|
|
,CAST(t0e.FNUMERATOR /t0e.FDENOMINATOR AS decimal(23,10))
|
|
FROM #BOM展开 t0
|
|
INNER JOIN T_ENG_BOMCHILD t0e on t0e.FID = t0.FID AND t0e.FMATERIALTYPE != 3
|
|
OUTER APPLY (
|
|
SELECT t1.FID,t1.FMASTERID,t1.FMATERIALID,t1.FNUMBER,t1.FUNITID
|
|
,ROW_NUMBER() OVER (PARTITION BY t1.FMATERIALID ORDER BY t1.FNUMBER DESC) RN
|
|
FROM T_ENG_BOM t1
|
|
WHERE t1.FMATERIALID = t0e.FMATERIALID
|
|
AND t1.FDOCUMENTSTATUS = 'C'
|
|
AND t1.FFORBIDSTATUS = 'A'
|
|
AND t1.FUSEORGID = 1
|
|
) t1
|
|
WHERE (t1.RN = 1 OR t1.RN IS NULL) AND t0.FNUMBER != ''
|
|
--AND t0.lv < 2
|
|
)
|
|
SELECT t1.FNUMBER '物料编码',t1_l.FNAME '物料名称',t1_l.FSPECIFICATION '规格型号',t2.FCAPTION '物料属性','' '供应类型',t0.FNUMBER 'BOM版本',t0.标准用量
|
|
,CAST('' AS nvarchar(4)) '专用料标识','' 'L/T',0 库存数量,0 预计入库数,0 未推PR数,0 已分配量,0 计划分配量,'' 计划员,'' 采购员
|
|
INTO #BOM
|
|
FROM #BOM展开 t0
|
|
INNER JOIN T_BD_MATERIAL t1 on t1.FMATERIALID = t0.FMATERIALID
|
|
INNER JOIN T_BD_MATERIAL_L t1_l on t1_l.FMATERIALID = t1.FMATERIALID AND t1_l.FLOCALEID = 2052
|
|
INNER JOIN T_BD_MATERIALBASE t1b on t1b.FMATERIALID = t1.FMATERIALID
|
|
INNER JOIN T_BD_MATERIALPLAN t1p on t1p.FMATERIALID = t1.FMATERIALID
|
|
INNER JOIN #物料属性 t2 on t2.FVALUE = t1b.FERPCLSID
|
|
WHERE 1 = 1
|
|
--AND t0.lv < 2
|
|
ORDER BY CAST(CONCAT('/',REPLACE(t0.MPath,'.','/'),'/') AS HIERARCHYID)
|
|
|
|
SELECT *
|
|
FROM #BOM t0
|
|
|
|
DROP TABLE #BOM
|
|
|
|
END |