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 = 20 --获取定时计划的参数值 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 = '657bf589f52174' SELECT t0.FID ,t0.FBILLNO ,t0E.FMATERIALID ,t0E.FENTRYID ,t0E.FSEQ ,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(t0E.M01,t4.FPACKUNITCONVERRATIO) as M01 ,dbo.PackageValConver(t0E.S01,t4.FPACKUNITCONVERRATIO) as S01 ,dbo.PackageValConver(t0E.S02,t4.FPACKUNITCONVERRATIO) as S02 ,dbo.PackageValConver(t0E.S03,t4.FPACKUNITCONVERRATIO) as S03 ,dbo.PackageValConver(ISNULL(t3.FFINISHQTY,0) - ISNULL(t3.FSTOCKINQUASELQTY,0) ,t4.FPACKUNITCONVERRATIO) AS InProductionQty --在生产数量 ,dbo.PackageValConver(ISNULL(t4.FSTOCKQTY,0),t4.FPACKUNITCONVERRATIO) AS InStockQty --已入库数量 ,dbo.PackageValConver((ISNULL(t3.FFINISHQTY,0) - ISNULL(t3.FSTOCKINQUASELQTY,0) + ISNULL(t4.FSTOCKQTY,0)),t4.FPACKUNITCONVERRATIO) AS TotalStockQty --合计入库量 ,dbo.PackageValConver(t1.FOrderQty,t4.FLOTYIELD) AS OrderLotQty --计划生产批数 ,dbo.PackageValConver(t1.FFirmQty, t4.FPACKUNITCONVERRATIO) AS FirmLotQty --确认生产批数 ,dbo.ToDecimal2(t1.FFirmQty) FFirmQty --确认生产数量 FROM T_PLN_FORECAST t0 LEFT JOIN T_PLN_FORECASTENTRY t0E ON t0.FID = t0E.FID LEFT JOIN ( SELECT t1.FMATERIALID ,t1.FCOMPUTERNO ,t1.FBILLNO ,t1_B.FSALEORDERENTRYID ,sum(t1.FFirmQty) FFirmQty ,sum(t1.FOrderQty) FOrderQty FROM T_PLN_PLANORDER t1 LEFT JOIN T_PLN_PLANORDER_B t1_B ON t1.FID = t1_B.FID WHERE t1.FDATASOURCE = 1 AND t1.FCREATEDATE BETWEEN @STARTDATE AND @ENDDATE GROUP BY t1.FCOMPUTERNO ,t1.FBILLNO ,t1.FMATERIALID ,t1_B.FSALEORDERENTRYID ) t1 ON t1.FMATERIALID = t0E.FMATERIALID LEFT JOIN T_BD_MATERIAL t2 ON t2.FMATERIALID = t0E.FMATERIALID LEFT JOIN T_BD_MATERIAL_L t2_L ON (t2_L.FMATERIALID = t0E.FMATERIALID AND t2_L.FLOCALEID = @LCID) LEFT JOIN T_BD_MATERIALSTOCK t2S ON t2S.FMATERIALID = t0E.FMATERIALID LEFT JOIN ( SELECT t0E.FSRCBILLNO ,t0E.FMATERIALID ,t0E.FSALEORDERENTRYID ,t0E.FSALEORDERENTRYSEQ ,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_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.FSTATUS <> 6 AND t0E.FSALEORDERENTRYID <> 0 AND t0.FDATE BETWEEN @STARTDATE AND @ENDDATE GROUP BY t0E.FSRCBILLNO ,t0E.FMATERIALID ,t0E.FSALEORDERENTRYID ,t0E.FSALEORDERENTRYSEQ ) t3 ON t3.FSALEORDERENTRYID = t0E.FENTRYID AND t3.FSALEORDERENTRYSEQ = t0E.FSEQ AND t3.FSRCBILLNO = t0.FBILLNO LEFT JOIN T_MATERIAL_INVENTORY_MONTH_RECORD t4 ON (t4.FMATERIALID = t0E.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) WHERE t0.FDATE BETWEEN @STARTDATE AND @ENDDATE