姜永辉 пре 11 месеци
родитељ
комит
69df94c745
1 измењених фајлова са 102 додато и 38 уклоњено
  1. 102 38
      wwwroot/mes/rpt/rpt026/rpt.ashx

+ 102 - 38
wwwroot/mes/rpt/rpt026/rpt.ashx

@@ -1726,7 +1726,7 @@ SELECT DECODE(GROUPING_ID(TT.GOODS_CODE), 1, '总计', TT.GOODS_CODE) AS 产品
                ,0 A_Y
                ,0 A_S
                ,SUM(CASE
-                      WHEN T.PROCEDUREID IN (26, 3,34,49) THEN
+                      WHEN T.PROCEDUREID IN (26, 3, 49) THEN
                        1
                       ELSE
                        0
@@ -1738,31 +1738,63 @@ SELECT DECODE(GROUPING_ID(TT.GOODS_CODE), 1, '总计', TT.GOODS_CODE) AS 产品
                        0
                     END) Y
                ,SUM(CASE
-                      WHEN T.PROCEDUREID IN (21, 31, 52,53 ) THEN
+                      WHEN T.PROCEDUREID IN (21, 31,  53 ) THEN
                        1
                       ELSE
                        0
                     END) S
                ,0 C
-          FROM TP_PM_PRODUCTIONDATA T
+          FROM  (
+                 SELECT DISTINCT CASE  WHEN p.procedureid = 34 THEN  26 ELSE  p.procedureid  END procedureid
+                 ,p.goodsid 
+                 FROM TP_PM_PRODUCTIONDATA P
+                 INNER JOIN TP_MST_GOODS G
+                    ON P.GOODSID = G.GOODSID 
+                 WHERE P.CREATETIME >= @DATEBEGIN@
+                   AND P.CREATETIME < @DATEEND@
+                   AND (
+                        P.PROCEDUREID = 3
+                        OR P.PROCEDUREID = 26                       
+                        OR P.PROCEDUREID = 34
+                        OR P.PROCEDUREID = 49 
+                    )
+                  AND  G.GOODSCODE IN({goodsCodes})
+                 UNION ALL
+
+                SELECT DISTINCT CASE  WHEN p.procedureid =24 THEN  34 ELSE  p.procedureid  END procedureid
+                    ,p.goodsid 
+                    FROM TP_PM_PRODUCTIONDATA P
+                    INNER JOIN TP_MST_GOODS G
+                    ON P.GOODSID = G.GOODSID 
+                    WHERE P.CREATETIME >= @DATEBEGIN@
+                    AND P.CREATETIME < @DATEEND@
+                    AND (
+                         P.PROCEDUREID = 24
+                        OR P.PROCEDUREID = 28                        
+                        OR P.PROCEDUREID = 34
+                        OR P.PROCEDUREID = 49 
+                    )
+                    AND  G.GOODSCODE IN({goodsCodes})
+
+                    UNION ALL
+                    SELECT DISTINCT CASE  WHEN p.procedureid IN (21, 31) THEN  53 ELSE  p.procedureid  END procedureid
+                     ,p.goodsid 
+                     FROM TP_PM_PRODUCTIONDATA P
+                     INNER JOIN TP_MST_GOODS G
+                        ON P.GOODSID = G.GOODSID 
+                     WHERE P.CREATETIME >= @DATEBEGIN@
+                       AND P.CREATETIME < @DATEEND@
+                       AND (
+                            P.PROCEDUREID = 21
+                            OR P.PROCEDUREID = 31 
+                            OR P.procedureid = 53
+                        )
+                      AND  G.GOODSCODE IN({goodsCodes})
+
+          )  T
          INNER JOIN TP_MST_GOODS G
-            ON T.GOODSID = G.GOODSID
-         --INNER JOIN TP_PC_GROUTINGLINE GL
-         --   ON GL.GROUTINGLINEID = T.GROUTINGLINEID
-         WHERE T.CREATETIME >= @DATEBEGIN@
-           AND T.CREATETIME < @DATEEND@
-           AND (
-                T.PROCEDUREID = 3
-                OR T.PROCEDUREID = 26
-                OR T.PROCEDUREID = 24
-                OR T.PROCEDUREID = 28
-                OR T.PROCEDUREID = 21
-                OR T.PROCEDUREID = 31
-                OR T.PROCEDUREID = 34
-                OR T.PROCEDUREID = 49
-                OR t.procedureid = 53
-            )
-          AND  G.GOODSCODE IN({goodsCodes})
+            ON T.GOODSID = G.GOODSID 
+          
          GROUP BY G.GOODSCODE
         UNION ALL
         -- 入库撤销
@@ -1774,7 +1806,7 @@ SELECT DECODE(GROUPING_ID(TT.GOODS_CODE), 1, '总计', TT.GOODS_CODE) AS 产品
                ,0 A_Y
                ,0 A_S
                ,SUM(CASE
-                      WHEN T.PROCEDUREID IN (26, 3,34,49) THEN
+                      WHEN T.PROCEDUREID IN (26, 3, 49) THEN
                        -1
                       ELSE
                        0
@@ -1792,25 +1824,57 @@ SELECT DECODE(GROUPING_ID(TT.GOODS_CODE), 1, '总计', TT.GOODS_CODE) AS 产品
                        0
                     END) S
                ,0 C
-          FROM TP_PM_PRODUCTIONDATA T
+          FROM  (
+                 SELECT DISTINCT CASE  WHEN p.procedureid = 34 THEN  26 ELSE  p.procedureid  END procedureid
+                 ,p.goodsid 
+                 FROM TP_PM_PRODUCTIONDATA P
+                 INNER JOIN TP_MST_GOODS G
+                    ON P.GOODSID = G.GOODSID 
+                 WHERE P.BACKOUTTIME >= @DATEBEGIN@
+                   AND P.BACKOUTTIME < @DATEEND@
+                   AND (
+                        P.PROCEDUREID = 3
+                        OR P.PROCEDUREID = 26                       
+                        OR P.PROCEDUREID = 34
+                        OR P.PROCEDUREID = 49 
+                    )
+                  AND  G.GOODSCODE IN({goodsCodes})
+                 UNION ALL
+
+                SELECT DISTINCT CASE  WHEN p.procedureid =24 THEN  34 ELSE  p.procedureid  END procedureid
+                    ,p.goodsid 
+                    FROM TP_PM_PRODUCTIONDATA P
+                    INNER JOIN TP_MST_GOODS G
+                    ON P.GOODSID = G.GOODSID 
+                    WHERE P.BACKOUTTIME >= @DATEBEGIN@
+                    AND P.BACKOUTTIME < @DATEEND@
+                    AND (
+                         P.PROCEDUREID = 24
+                        OR P.PROCEDUREID = 28                        
+                        OR P.PROCEDUREID = 34
+                        OR P.PROCEDUREID = 49 
+                    )
+                    AND  G.GOODSCODE IN({goodsCodes})
+
+                    UNION ALL
+                    SELECT DISTINCT CASE  WHEN p.procedureid IN (21, 31) THEN  53 ELSE  p.procedureid  END procedureid
+                     ,p.goodsid 
+                     FROM TP_PM_PRODUCTIONDATA P
+                     INNER JOIN TP_MST_GOODS G
+                        ON P.GOODSID = G.GOODSID 
+                     WHERE P.BACKOUTTIME >= @DATEBEGIN@
+                       AND P.BACKOUTTIME < @DATEEND@
+                       AND (
+                            P.PROCEDUREID = 21
+                            OR P.PROCEDUREID = 31 
+                            OR P.procedureid = 53
+                        )
+                      AND  G.GOODSCODE IN({goodsCodes})
+
+          )  T
          INNER JOIN TP_MST_GOODS G
             ON T.GOODSID = G.GOODSID
-         --INNER JOIN TP_PC_GROUTINGLINE GL
-         --   ON GL.GROUTINGLINEID = T.GROUTINGLINEID
-         WHERE T.BACKOUTTIME >= @DATEBEGIN@
-           AND T.BACKOUTTIME < @DATEEND@
-           AND (
-                T.PROCEDUREID = 3
-                OR T.PROCEDUREID = 26
-                OR T.PROCEDUREID = 24
-                OR T.PROCEDUREID = 28
-                OR T.PROCEDUREID = 21
-                OR T.PROCEDUREID = 31
-                OR T.PROCEDUREID = 34
-                OR T.PROCEDUREID = 49
-                OR t.procedureid = 53               
-            )
-          AND  G.GOODSCODE IN({goodsCodes})
+         
          GROUP BY G.GOODSCODE
         UNION ALL
         -- 成品