DECLARE @STARTDATE DATE,@ENDDATE DATE,@LCID INT,@YEAR INT,@MONTH INT,@DAY INT SET @STARTDATE ='2023-12-01' SET @ENDDATE ='2023-12-31' SET @LCID = 2052 SET @YEAR = 2023 SET @MONTH = 12 SET @DAY = 30 --获取定时计划的参数值 DECLARE @FSCHEDULETYPEID varchar(80) --天大正式库 AIS20221208083030 SET @FSCHEDULETYPEID = '65967bf69b80ca' --天大测试库 AIS20231206144015 --SET @FSCHEDULETYPEID = '658e1974b04f4f' --本地测试库 --SET @FSCHEDULETYPEID = '657BF589F52174' SELECT @DAY = (CASE WHEN LTRIM(RTRIM(T0.FPARAMETERS)) = '' THEN @DAY ELSE CAST(T0.FPARAMETERS AS INT) END) FROM T_BAS_SCHEDULEINFO T0 WHERE T0.FSCHEDULETYPEID = @FSCHEDULETYPEID SELECT ROW_NUMBER() OVER(ORDER BY t0.FMATERIALID) AS FIDENTITYID ,t0.FMATERIALID ,t2.FNUMBER ,t2_L.FNAME ,t2_L.FSPECIFICATION ,(CASE t2S.FEXPPERIOD WHEN 0 THEN '' ELSE CASE t2S.FEXPUNIT WHEN 'Y' THEN CONVERT ( VARCHAR,CAST((t2S.FEXPPERIOD * 12) AS INT) ) + '个月' WHEN 'M' THEN CONVERT ( VARCHAR,CAST(t2S.FEXPPERIOD AS INT) ) + '个月' WHEN 'D' THEN CONVERT ( VARCHAR, CAST(( CASE t2S.FEXPPERIOD % 30 WHEN 0 THEN t2S.FEXPPERIOD / 30 ELSE t2S.FEXPPERIOD / 365 * 12 END ) AS INT)) + '个月' ELSE '' END END) AS 'SHELFLIFE' ,CONCAT(t2.FLotSize,t5_L.FNAME, '/批') AS StandardLot ,dbo.ToDecimal2(t2S.FSAFESTOCK) AS SAFESTOCK --安全库存 ,t2S.FSTOREUNITID --库存单位 ,t5_L.FNAME AS FSTOREUNITNAME ,(dbo.PackageValConver(t2S.FSAFESTOCK, t4.FPACKUNITCONVERRATIO)) AS SAFESTOCKCOUNT ,CONCAT(CONVERT(VARCHAR,dbo.ToDecimal2(t4.FPACKUNITCONVERRATIO)),t5_L.FNAME ,'/' ,t6_L.FNAME) AS FPACKUNITCONVT ,t4.FLOTYIELD -- '每批产量' ,t4.FPACKUNITCONVERRATIO -- '包装规格' ,t4.FPACKUNITID -- '单位' ,t6_L.FNAME AS FPACKUNITNAME ,dbo.PackageValConver(t0.M01,t4.FPACKUNITCONVERRATIO) as M01 ,dbo.PackageValConver(t0.S01,t4.FPACKUNITCONVERRATIO) as S01 ,dbo.PackageValConver(t0.S02,t4.FPACKUNITCONVERRATIO) as S02 ,dbo.PackageValConver(t0.S03,t4.FPACKUNITCONVERRATIO) as S03 ,dbo.PackageValConver(ISNULL(t0.FFINISHQTY,0) - ISNULL(t0.FSTOCKINQUASELQTY,0) ,t4.FPACKUNITCONVERRATIO) AS InProductionQty --在生产数量 ,dbo.PackageValConver(ISNULL(t4.FSTOCKQTY,0),t4.FPACKUNITCONVERRATIO) AS InStockQty --已入库数量 ,dbo.PackageValConver((ISNULL(t0.FFINISHQTY,0) - ISNULL(t0.FSTOCKINQUASELQTY,0) + ISNULL(t4.FSTOCKQTY,0)),t4.FPACKUNITCONVERRATIO) AS TotalStockQty --合计入库量 ,dbo.PackageValConver(ISNULL(t0.FOrderQty,0),t4.FPACKUNITCONVERRATIO) AS OrderLotQty --计划生产批数 ,dbo.PackageValConver(ISNULL(t0.FFirmQty,0), t4.FPACKUNITCONVERRATIO) AS FirmLotQty --确认生产批数 --,t0.FLotQty AS FirmLotQty ,dbo.ToDecimal2(ISNULL(t0.FFirmQty,0)) FFirmQty --确认生产数量 ,t0.countM FROM (SELECT t0E.FMATERIALID ,sum(t1.FFirmQty) AS FFirmQty ,sum(t1.FOrderQty) AS FOrderQty ,sum(t1.FFINISHQTY) AS FFINISHQTY ,sum(t1.FSTOCKINQUASELQTY) AS FSTOCKINQUASELQTY --,sum(t1.FLotQty) As FLotQty ,sum(M01) AS M01 ,sum(S01) AS S01 ,sum(S02) AS S02 ,sum(S03) AS S03 ,count(1) AS countM FROM T_PLN_FORECAST t0 INNER JOIN T_PLN_FORECASTENTRY t0E ON t0.FID = t0E.FID LEFT JOIN ( SELECT t1.FMATERIALID ,t1_B.FSALEORDERENTRYID ,t1_B.FSALEORDERENTRYSEQ ,t1_B.FSALEORDERID ,sum(t1.FFirmQty) AS FFirmQty ,sum(t1.FOrderQty) AS FOrderQty ,sum(t2.FFINISHQTY) AS FFINISHQTY ,sum(t2.FSTOCKINQUASELQTY) AS FSTOCKINQUASELQTY --,sum(t1.FLotQty) As FLotQty FROM T_PLN_PLANORDER t1 LEFT JOIN T_PLN_PLANORDER_B t1_B ON t1.FID = t1_B.FID LEFT JOIN ( SELECT t0E.FMATERIALID ,t0E_LK.FSID ,SUM(t1.FFINISHQTY) AS FFINISHQTY --已入库数量 ,SUM(t1.FSTOCKINQUASELQTY) AS FSTOCKINQUASELQTY --合格品入库选单数量 FROM T_PRD_MO t0 LEFT JOIN T_PRD_MOENTRY t0E ON t0.FID = t0E.FID LEFT JOIN T_PRD_MOENTRY_LK t0E_LK ON t0E_LK.FENTRYID = t0E.FENTRYID AND t0E_LK.FSTABLENAME = 'T_PLN_PLANORDER' LEFT JOIN T_PRD_MOENTRY_A t0E_A ON t0E_A.FENTRYID = t0E.FENTRYID LEFT JOIN ( SELECT t0.FBILLTYPE --50fa7c2eda7947b89fab5431bf25d48e 入库汇报 e52b554423704173b7306554708a8b05 生产汇报 ,t0E.FMOENTRYID ,t0E.FFINISHQTY ,t0E_A.FSTOCKINQUASELQTY FROM T_PRD_MORPT t0 LEFT JOIN T_PRD_MORPTENTRY t0E ON t0E.FID = t0.FID LEFT JOIN T_PRD_MORPTENTRY_A t0E_A ON t0E_A.FID = t0.FID AND t0E_A.FENTRYID = t0E.FENTRYID WHERE t0.FDOCUMENTSTATUS = 'C' AND t0.FBILLTYPE = '50fa7c2eda7947b89fab5431bf25d48e' ) t1 ON t1.FMOENTRYID = t0E.FENTRYID WHERE t0E.FSRCBILLTYPE ='PLN_PLANORDER' AND t0E_A.FREQSRC = 2 AND t0E_A.FSTATUS <> 6 AND t0E.FSALEORDERENTRYID <> 0 GROUP BY t0E.FMATERIALID ,t0E_LK.FSID ) t2 ON t2.FSID = t1.FID AND t2.FMATERIALID = t1.FMATERIALID WHERE t1.FDATASOURCE = 1 AND t1_B.FDEMANDTYPE = 2 GROUP BY t1.FMATERIALID ,t1_B.FSALEORDERENTRYID ,t1_B.FSALEORDERENTRYSEQ ,t1_B.FSALEORDERID ) t1 ON (t1.FMATERIALID = t0E.FMATERIALID AND t1.FSALEORDERID = t0E.FID AND t0E.FENTRYID = t1.FSALEORDERENTRYID AND t1.FSALEORDERENTRYSEQ = t0E.FSEQ) WHERE t0.FDATE BETWEEN @STARTDATE AND @ENDDATE GROUP BY t0E.FMATERIALID ) t0 LEFT JOIN T_BD_MATERIAL t2 ON t2.FMATERIALID = t0.FMATERIALID LEFT JOIN T_BD_MATERIAL_L t2_L ON (t2_L.FMATERIALID = t0.FMATERIALID AND t2_L.FLOCALEID = @LCID) LEFT JOIN T_BD_MATERIALSTOCK t2S ON t2S.FMATERIALID = t0.FMATERIALID LEFT JOIN T_MATERIAL_INVENTORY_MONTH_RECORD t4 ON (t4.FMATERIALID = t0.FMATERIALID AND t4.RECORDYEAR = @YEAR AND t4.RECORDMONTH = @MONTH and t4.RECORDDAY = @DAY) LEFT JOIN T_BD_UNIT_L t5_L ON (t5_l.FUNITID = t2S.FSTOREUNITID AND t5_L.FLOCALEID = @LCID) LEFT JOIN T_BD_UNIT_L t6_L ON (t6_l.FUNITID = t4.FPACKUNITID AND t6_L.FLOCALEID = @LCID)