This commit is contained in:
PastSaid
2024-07-16 10:33:50 +08:00
parent e8a1f46c3d
commit fa480006a8
132 changed files with 20893 additions and 4519 deletions

View File

@@ -0,0 +1,44 @@
declare @FORG int,@leatTime int
set @FORG = 1
SET @leatTime = 30
SELECT t0.fid F_BGP_INVENTORYID
,t0.FSTOCKID
,t1.FMaterialId
,FLot
,FStockUnitId, FBaseUnitId, FQty,FBaseQty, FStockStatusId
,FStockLocId ,DATEDIFF(DAY,Maintdate ,GETDATE())-89 overday
,dateadd(DAY,90.7,Maintdate) as F_BGP_ShouldMainteDate
,ISNULL(t3.FPRODUCEDATE,t0.FPRODUCEDATE) FPRODUCEDATE
,ISNULL(t3.FEXPIRYDATE,t0.FEXPIRYDATE) FEXPIRYDATE
,GETDATE() F_BGP_MAINTEPLANDATE
,FOwnerTypeId
,FOwnerId
,FKeeperTypeId
,FKeeperId
,FStockStatusId
,FAuxPropId
,FSecQty
,FSecUnitId
,Maintdate
FROM T_STK_INVENTORY t0
,T_BD_MATERIAL t1
,T_BGP_MaintainType t2
,(SELECT ISNULL(F_BGP_MaintDate,FInStockDate) Maintdate
,FLOTID,FPRODUCEDATE,FEXPIRYDATE
FROM T_BD_LOTMASTER) t3
WHERE t0.FMaterialId = t1.FMasterId
AND F_BGP_MaintainClass=t2.FID
AND t2.F_BGP_DAY = 90
AND t3.FLOTID=t0.FLot
AND DATEDIFF(DAY,Maintdate ,GETDATE()) > 90 - @leatTime
AND t0.FSTOCKORGID = @FORG
AND FBaseQty > 0
AND t1.FDOCUMENTSTATUS='C'
AND FStockStatusId = 10000
AND t1.FuseORGID=@FORG
AND NOT EXISTS(
SELECT F_BGP_INVENTORYID
FROM T_BGP_MaintePlanB mb
WHERE F_BGP_BaseQty > F_BGP_BaseMaintQty AND F_BGP_INVENTORYID= t0.fid
)
ORDER BY F_BGP_DosageForm,FSTOCKID,FMaterialId

View File

@@ -0,0 +1,28 @@
declare @FORG int,@leatTime int
set @FORG = 1
SET @leatTime = 30
SELECT t0.fid F_BGP_INVENTORYID
,t0.FSTOCKID,t1.FMaterialId,t0.FLot
,t0.FStockUnitId,t0.FBaseUnitId,t0.FQty,t0.FBaseQty
,t0.FStockStatusId,t0.FStockLocId
,DATEDIFF(DAY,t3.Maintdate,GETDATE()) - t2.F_BGP_DAY + 1 overday
,DATEADD(DAY,(t2.F_BGP_DAY + 0.7),t3.Maintdate) as F_BGP_ShouldMainteDate
,ISNULL(t3.FPRODUCEDATE,t0.FPRODUCEDATE) FPRODUCEDATE
,ISNULL(t3.FEXPIRYDATE,t0.FEXPIRYDATE) FEXPIRYDATE
,GETDATE() F_BGP_MAINTEPLANDATE,FOwnerTypeId,FOwnerId,FKeeperTypeId,FKeeperId,FStockStatusId,FAuxPropId,FSecQty,FSecUnitId,t3.Maintdate
FROM T_STK_INVENTORY t0
INNER JOIN T_BD_MATERIAL t1 on t0.FMATERIALID = t1.FMASTERID AND t0.FSTOCKORGID = t1.FUSEORGID
INNER JOIN T_BGP_MaintainType t2 on t1.F_BGP_MAINTAINCLASS = t2.FID AND t2.FNUMBER = '01'
CROSS APPLY (
SELECT ISNULL(t3.F_BGP_MaintDate,t3.FInStockDate) Maintdate,t3.FLOTID,t3.FPRODUCEDATE,t3.FEXPIRYDATE
FROM T_BD_LOTMASTER t3
WHERE t3.FLOTID=t0.FLot
) t3
WHERE 1 = 1
AND DATEDIFF(DAY,t3.Maintdate ,GETDATE()) > t2.F_BGP_DAY - 30 AND t0.FSTOCKORGID = @FORG
AND FBaseQty > 0 AND t1.FDOCUMENTSTATUS='C' AND FStockStatusId = 10000
AND NOT EXISTS (
SELECT 1 FROM T_BGP_MaintePlanB t4
WHERE t4.F_BGP_BaseQty > t4.F_BGP_BaseMaintQty AND t4.F_BGP_INVENTORYID= t0.fid
)
ORDER BY F_BGP_DosageForm,FSTOCKID,FMaterialId

View File

@@ -0,0 +1,103 @@
SELECT DATEDIFF(Day,ISNULL(T3.F_BGP_MAINTDATE,T3.FINSTOCKDATE),GETDATE()) AS DIFFDay
,T2.F_BGP_DAY
,ISNULL(T7.F_BGP_DAY,- 1) AS FNearDAY
,T2.F_BGP_DAY - DATEDIFF(Day,ISNULL(T3.F_BGP_MAINTDATE,GETDATE()),GETDATE()) AS FEnableDay
,T2.FNUMBER
,T0.FSTOCKORGID
,T1.FMATERIALID
,T1.FNUMBER AS FMaterialNum
,T1.F_BGP_ISCOLDCHAIN
,T1.F_BGP_ISSPECIAL
,T1.F_BGP_BIGCLASS
,T6.FNAME AS F_BGP_BIGCLASS_Name
,CONVERT(varchar(10),T1.F_BGP_FIRSTDATE,21) AS F_BGP_FirstDate
,(CASE WHEN T1.F_BGP_FirstDate IS NULL THEN 0 WHEN DATEDIFF(Year,T1.F_BGP_FirstDate,GetDate()) > 1 THEN 0 ELSE 1 END) AS DIFFYear
,(CASE WHEN T1.F_BGP_FirstDate IS NULL THEN 0 ELSE DATEDIFF(Year,T1.F_BGP_FirstDate,GetDate()) END) AS DIFFYear
,T1.F_BGP_MAINTAINCLASS
,'0' AS F_BGP_MainteState
,T0.FSTOCKUNITID
,T0.FBASEUNITID
,T0.FQTY
,T0.FBaseQty
,CONVERT(varchar( 10),isnull(T0.FPRODUCEDATE,T3.FPRODUCEDATE),21) AS FPRODUCEDATE
,CONVERT(varchar(10),isnull(T0.FEXPIRYDATE,T3.FEXPIRYDATE),21) AS FExpiryDate
,T0.FLOT
,T0.FSTOCKID
,T0.FSTOCKLOCID
,T5.FEXPUNIT
,T5.FEXPPERIOD
,CASE WHEN T5.FEXPUNIT = 'M' THEN T5.FExpPeriod
WHEN T5.FEXPUNIT = 'Y' THEN T5.FExpPeriod * 12
WHEN T5.FEXPUNIT = 'D' THEN T5.FExpPeriod / 30 ELSE 0 END AS FExpMonth
,ISNULL(T3.F_BGP_MAINTDATE + CAST(T2.F_BGP_DAY AS int),GETDATE()) AS F_BGP_SHOULDMAINTEDATE
,T3.FINSTOCKDATE
,DATEDIFF(Month,T3.FINSTOCKDATE,GETDATE()) AS FInStockMonth
,T0.FOWNERTYPEID
,T0.FOWNERID
,T0.FKEEPERTYPEID
,T0.FKEEPERID
,T0.FSTOCKSTATUSID
,FAuxPropId
,FSecQty
,FSecUnitId
,t10.FInStockDate FIRFInStockDate
,F_BGP_FirstStatus
,(Case WHEN T10.FInStockDate is null THEN 0 WHEN DateDiff(Year,T10.FInStockDate,GetDate()) > 1 THEN 0 else 1 end) FDIFFYear
,F_BGP_INVENTORYID
FROM (
SELECT fid F_BGP_INVENTORYID
,FSTOCKORGID
,FMATERIALID
,FBASEUNITID
,FSTOCKUNITID
,FLOT
,FSTOCKID
,FSTOCKLOCID
,FPRODUCEDATE
,FEXPIRYDATE
,FOWNERTYPEID
,FOWNERID
,FKEEPERTYPEID
,FKEEPERID
,FSTOCKSTATUSID
,SUM(FQTY) AS FQTY
,SUM(FBASEQTY) AS FBaseQty
,FAuxPropId
,SUM(FSecQty)as FSecQty
,FSecUnitId
FROM dbo.T_STK_INVENTORY
WHERE not exists(
SELECT distinct F_BGP_INVENTORYID
FROM T_BGP_MaintePlanB mb where F_BGP_BaseQty > F_BGP_BaseMaintQty AND F_BGP_INVENTORYID = T_STK_INVENTORY.fid )
GROUP BY FSTOCKORGID
,FMATERIALID
,FBASEUNITID
,FSTOCKUNITID
,FLOT
,FSTOCKID
,FSTOCKLOCID
,FPRODUCEDATE
,FEXPIRYDATE
,FOWNERTYPEID
,FOWNERID
,FKEEPERTYPEID
,FKEEPERID
,FSTOCKSTATUSID
,FAuxPropId
,FSecUnitId
,fid
) AS T0
INNER JOIN dbo.T_BD_MATERIAL AS T1 ON T0.FMATERIALID = T1.FMASTERID AND T0.FSTOCKORGID = T1.FUSEORGID
LEFT JOIN
(
SELECT FMATERIALID
,MIN(FInStockDate)FInStockDate
FROM T_BD_LotMaster
GROUP BY FMATERIALID
)T10 ON T1.FMATERIALID = T10.FMaterialID
INNER JOIN dbo.T_BGP_MaintainType AS T2 ON T1.F_BGP_MAINTAINCLASS = T2.FID
INNER JOIN dbo.T_BD_LOTMASTER AS T3 ON T0.FLOT = T3.FLOTID
INNER JOIN dbo.T_BD_MATERIALSTOCK AS T5 ON T0.FMATERIALID = T5.FMATERIALID
LEFT OUTER JOIN dbo.T_BGP_BigClass_L AS T6 ON T1.F_BGP_BIGCLASS = T6.FID
LEFT OUTER JOIN dbo.T_BGP_EffectType AS T7 ON T1.F_BGP_EFFECTTYPE = T7.FID
WHERE (T0.FBaseQty > 0)