Kaynağa Gözat

采购付款导出Excel数据异常问题处理

yzc 1 yıl önce
ebeveyn
işleme
ade655f36a

+ 29 - 9
hx-purchase/src/main/resources/mapper/purchase/PurchaseMapper.xml

@@ -152,16 +152,36 @@
     </select>
     <select id="getArrayInfoById" resultType="com.fjhx.purchase.entity.purchase.vo.PurchaseDetailVo">
         SELECT
-            ad.purchase_detail_id as id,
-            IFNULL( sum( swd.receipt_quantity ), 0 ) AS receiptQuantity,
-            IFNULL( sum( qd.total_quantity ), 0 ) AS qualityQuantity,
-            IFNULL( sum( qd.disqualification_quantity ), 0 ) AS noQualifiedCount
+            t1.id,
+            IFNULL( sum( t1.receiptQuantity ),0) AS receiptQuantity,
+            IFNULL( sum( t1.qualityQuantity ),0) AS qualityQuantity,
+            IFNULL( sum( t1.noQualifiedCount ),0) AS noQualifiedCount
         FROM
-            bytesailing_wms.stock_wait_details swd
-                LEFT JOIN bytesailing_wms.arrival_stock_records_details asrd ON asrd.business_details_id = swd.id
-                LEFT JOIN bytesailing_victoriatourist.quality_details qd ON qd.arrival_stock_records_details_id = asrd.id
-                LEFT JOIN arrival_detail ad ON swd.business_details_id = ad.id
-            ${ew.customSqlSegment}
+            (
+                SELECT
+                    ad.purchase_detail_id AS id,
+                    NULL AS receiptQuantity,
+                    IFNULL( sum( qd.qualified_quantity + qd.disqualification_quantity ), 0 ) AS qualityQuantity,
+                    IFNULL( sum( qd.disqualification_quantity ), 0 ) AS noQualifiedCount
+                FROM
+                    bytesailing_wms.stock_wait_details swd
+                        JOIN bytesailing_wms.arrival_stock_records_details asrd ON asrd.business_details_id = swd.id
+                        JOIN bytesailing_victoriatourist.quality_details qd ON qd.arrival_stock_records_details_id = asrd.id
+                        JOIN arrival_detail ad ON swd.business_details_id = ad.id
+                ${ew.customSqlSegment}
+                UNION ALL
+                SELECT
+                    ad.purchase_detail_id AS id,
+                    IFNULL( sum( swd.receipt_quantity ), 0 ) AS receiptQuantity,
+                    NULL AS qualityQuantity,
+                    NULL AS noQualifiedCount
+                FROM
+                    bytesailing_wms.stock_wait_details swd
+                        JOIN arrival_detail ad ON swd.business_details_id = ad.id
+                ${ew.customSqlSegment}
+            ) t1
+        GROUP BY
+            t1.id
     </select>
 
 </mapper>