From d13ae240c54c59b04c0571bfc0136ed0c8ba32a3 Mon Sep 17 00:00:00 2001
From: jyy <jyy>
Date: Wed, 14 Jul 2021 14:16:06 +0800
Subject: [PATCH] 修复bug

---
 zq-erp/src/main/resources/mybatis/mapper/hive/SysBusinessDataDao.xml |  106 ++++++++++++++++++++++++++++++++++-------------------
 1 files changed, 68 insertions(+), 38 deletions(-)

diff --git a/zq-erp/src/main/resources/mybatis/mapper/hive/SysBusinessDataDao.xml b/zq-erp/src/main/resources/mybatis/mapper/hive/SysBusinessDataDao.xml
index 62aa69f..ddb5b13 100644
--- a/zq-erp/src/main/resources/mybatis/mapper/hive/SysBusinessDataDao.xml
+++ b/zq-erp/src/main/resources/mybatis/mapper/hive/SysBusinessDataDao.xml
@@ -624,63 +624,69 @@
             select
                 #{item.beginTime} dataTime,
                 (select shop_short_name from sys_shop_info where id=#{shopId}) shopName,
-                (select IFNULL(sum(amount),0) from sys_order_flow
-                    where <![CDATA[ create_time > #{item.beginTime} and create_time < #{item.endTime}]]> and pay_method!='欠款'
+                (select IFNULL(sum(a.amount),0) from sys_order_flow a
+                    inner join sys_order b on a.order_id=b.id and b.statu!='已取消'
+                    where <![CDATA[ a.create_time > #{item.beginTime} and a.create_time < #{item.endTime}]]> and a.pay_method!='欠款'
                     <if test="shopId != null">
-                        and shop_id=#{shopId}
+                        and a.shop_id=#{shopId}
                     </if>
                     <if test="companyId != null">
-                        and company_id=#{companyId}
+                        and a.company_id=#{companyId}
                     </if>
                     )totalPay,
-                (select IFNULL(sum(amount),0) from sys_order_flow
-                    where pay_method not in ('储值卡', '欠款') and flow_type != '退款' and <![CDATA[ create_time > #{item.beginTime} and create_time < #{item.endTime}]]>
+                (select IFNULL(sum(a.amount),0) from sys_order_flow a
+                    inner join sys_order b on a.order_id=b.id and b.statu!='已取消'
+                    where a.pay_method not in ('储值卡', '欠款') and <![CDATA[ a.create_time > #{item.beginTime} and a.create_time < #{item.endTime}]]>
                     <if test="shopId != null">
-                        and shop_id=#{shopId}
+                        and a.shop_id=#{shopId}
                     </if>
                     <if test="companyId != null">
-                        and company_id=#{companyId}
+                        and a.company_id=#{companyId}
                     </if>
                     ) cashPay,
-                (select IFNULL(sum(amount),0) from sys_order_flow
-                    where pay_method = '储值卡' and flow_type != '退款' and <![CDATA[ create_time > #{item.beginTime} and create_time < #{item.endTime}]]>
+                (select IFNULL(sum(a.amount),0) from sys_order_flow a
+                    inner join sys_order b on a.order_id=b.id and b.statu!='已取消'
+                    where a.pay_method = '储值卡' and a.flow_type != '退款' and <![CDATA[ a.create_time > #{item.beginTime} and a.create_time < #{item.endTime}]]>
                     <if test="shopId != null">
-                        and shop_id=#{shopId}
+                        and a.shop_id=#{shopId}
                     </if>
                     <if test="companyId != null">
-                        and company_id=#{companyId}
+                        and a.company_id=#{companyId}
                     </if>
                     ) cardPay,
-                (select IFNULL(sum(amount),0) from sys_order_flow
-                    where pay_method = '欠款' and <![CDATA[ create_time > #{item.beginTime} and create_time < #{item.endTime}]]>
+                (select IFNULL(sum(a.amount),0) from sys_order_flow a
+                    inner join sys_order b on a.order_id=b.id and b.statu!='已取消'
+                    where a.pay_method = '欠款' and <![CDATA[ a.create_time > #{item.beginTime} and a.create_time < #{item.endTime}]]>
                     <if test="shopId != null">
-                        and shop_id=#{shopId}
+                        and a.shop_id=#{shopId}
                     </if>
                     <if test="companyId != null">
-                        and company_id=#{companyId}
+                        and a.company_id=#{companyId}
                     </if>
                     ) arrearsPay,
-                (select IFNULL(sum(amount),0) from sys_order_flow
-                    where pay_method not in ('储值卡', '欠款') and flow_type = '退款' and <![CDATA[ create_time > #{item.beginTime} and create_time < #{item.endTime}]]>
+                (select IFNULL(sum(a.amount),0) from sys_order_flow a
+                    inner join sys_order b on a.order_id=b.id and b.statu!='已取消'
+                    where a.pay_method not in ('储值卡', '欠款') and a.flow_type = '退款' and <![CDATA[ a.create_time > #{item.beginTime} and a.create_time < #{item.endTime}]]>
                     <if test="shopId != null">
-                        and shop_id=#{shopId}
+                        and a.shop_id=#{shopId}
                     </if>
                     <if test="companyId != null">
-                        and company_id=#{companyId}
+                        and a.company_id=#{companyId}
                     </if>
                     ) refundCashPay,
-                (select IFNULL(sum(amount),0) from sys_order_flow
-                    where pay_method in ('储值卡') and flow_type = '退款' and <![CDATA[ create_time > #{item.beginTime} and create_time < #{item.endTime}]]>
+                (select IFNULL(sum(a.amount),0) from sys_order_flow a
+                    inner join sys_order b on a.order_id=b.id and b.statu!='已取消'
+                    where a.pay_method in ('储值卡') and a.flow_type = '退款' and <![CDATA[ a.create_time > #{item.beginTime} and a.create_time < #{item.endTime}]]>
                     <if test="shopId != null">
-                        and shop_id=#{shopId}
+                        and a.shop_id=#{shopId}
                     </if>
                     <if test="companyId != null">
-                        and company_id=#{companyId}
+                        and a.company_id=#{companyId}
                     </if>
                     ) refundCardPay,
                 (select IFNULL(sum(zk_price*count),0) from sys_order_item a
                     inner join shopping_goods b on a.goods_id=b.id
-                    inner join sys_order c on a.ORDER_ID=c.id
+                    inner join sys_order c on a.ORDER_ID=c.id and c.statu!='已取消'
                     where b.good_type='家居产品' and <![CDATA[ c.pay_time > #{item.beginTime} and c.pay_time < #{item.endTime}]]>
                     <if test="shopId != null">
                         and c.shop_id=#{shopId}
@@ -691,7 +697,7 @@
                     ) productAchieve,
                 (select IFNULL(sum(zk_price*count),0) from sys_order_item a
                     inner join shopping_goods b on a.goods_id=b.id
-                    inner join sys_order c on a.ORDER_ID=c.id
+                    inner join sys_order c on a.ORDER_ID=c.id and c.statu!='已取消'
                     where b.good_type!='家居产品' and <![CDATA[ c.pay_time > #{item.beginTime} and c.pay_time < #{item.endTime}]]>
                     <if test="shopId != null">
                         and c.shop_id=#{shopId}
@@ -700,16 +706,40 @@
                         and c.company_id=#{companyId}
                     </if>
                     ) cardAchieve,
-                (select IFNULL(sum(amount),0) from sys_order_flow where flow_type = '还款' and <![CDATA[ create_time > #{item.beginTime} and create_time < #{item.endTime}]]>
+                (select IFNULL(sum(a.amount),0) from sys_order_flow a
+                    inner join sys_order b on a.order_id=b.id and b.statu!='已取消'
+                    where a.flow_type = '还款' and <![CDATA[ a.create_time > #{item.beginTime} and a.create_time < #{item.endTime}]]>
                     <if test="shopId != null">
-                        and shop_id=#{shopId}
+                        and a.shop_id=#{shopId}
                     </if>
                     <if test="companyId != null">
-                        and company_id=#{companyId}
+                        and a.company_id=#{companyId}
                     </if>
                 ) refund,
+                (select sum(IFNULL(amount, 0))
+                    from sys_order_flow a
+                    inner join sys_order b on a.order_id=b.id and b.STATU!='已取消'
+                    where a.pay_method='储值卡' and a.is_gift='N' and <![CDATA[ a.create_time > #{item.beginTime} and a.create_time < #{item.endTime}]]>
+                    <if test="shopId != null">
+                        and a.shop_id=#{shopId}
+                    </if>
+                    <if test="companyId != null">
+                        and a.company_id=#{companyId}
+                    </if>
+                ) cardAmount,
+                (select sum(IFNULL(amount, 0))
+                    from sys_order_flow a
+                    inner join sys_order b on a.order_id=b.id and b.STATU!='已取消'
+                    where a.pay_method='储值卡' and a.is_gift='Y' and <![CDATA[ a.create_time > #{item.beginTime} and a.create_time < #{item.endTime}]]>
+                    <if test="shopId != null">
+                        and a.shop_id=#{shopId}
+                    </if>
+                    <if test="companyId != null">
+                        and a.company_id=#{companyId}
+                    </if>
+                ) cardFreeAmount,
                 (select IFNULL(count(1),0) from sys_order
-                    where STATU in ('已付款', '欠款') and <![CDATA[ ORDER_TIME > #{item.beginTime} and ORDER_TIME < #{item.endTime} ]]>
+                    where STATU in ('已付款', '欠款') and orderType=1 and <![CDATA[ ORDER_TIME > #{item.beginTime} and ORDER_TIME < #{item.endTime} ]]>
                     <if test="shopId != null">
                         and shop_id=#{shopId}
                     </if>
@@ -718,7 +748,7 @@
                     </if>
                     ) perCustomCnt,
                 (select IFNULL(sum(b.COUNT),0) from sys_order a inner join sys_order_item b on a.ID=b.ORDER_ID
-                    where a.STATU in ('已付款', '欠款') and <![CDATA[ ORDER_TIME > #{item.beginTime} and ORDER_TIME < #{item.endTime} ]]>
+                    where a.STATU in ('已付款', '欠款') and a.orderType=1 and <![CDATA[ ORDER_TIME > #{item.beginTime} and ORDER_TIME < #{item.endTime} ]]>
                     <if test="shopId != null">
                         and shop_id=#{shopId}
                     </if>
@@ -732,7 +762,7 @@
                     inner join sys_store_info d on c.store_id = d.ID
                     inner join sys_order_item e on a.ID=e.ORDER_ID
                     inner join shopping_goods f on e.goods_id=f.id and f.good_type='家居产品'
-                    where a.STATU in ('已付款', '欠款') and <![CDATA[ ORDER_TIME > #{item.beginTime} and ORDER_TIME < #{item.endTime} ]]>
+                    where a.STATU in ('已付款', '欠款') and a.orderType=1 and <![CDATA[ ORDER_TIME > #{item.beginTime} and ORDER_TIME < #{item.endTime} ]]>
                     <if test="shopId != null">
                         and a.shop_id=#{shopId}
                     </if>
@@ -743,7 +773,7 @@
                 (select IFNULL(sum(b.COUNT * IFNULL(c.price, 0)),0) from sys_order a
                     inner join sys_order_item b on a.ID=b.ORDER_ID
                     inner join shopping_goods c on c.good_type != '家居产品' and b.goods_id=c.id
-                    where a.STATU in ('已付款', '欠款') and <![CDATA[ ORDER_TIME > #{item.beginTime} and ORDER_TIME < #{item.endTime} ]]>
+                    where a.STATU in ('已付款', '欠款') and a.orderType=1 and <![CDATA[ ORDER_TIME > #{item.beginTime} and ORDER_TIME < #{item.endTime} ]]>
                     <if test="shopId != null">
                         and a.shop_id=#{shopId}
                     </if>
@@ -806,7 +836,7 @@
             #{item.beginTime} dataTime,
             (select shop_short_name from sys_shop_info where id=#{shopId}) shopName,
             (select sum(total) shouldPay from sys_order
-                where STATU in ('已付款', '欠款') and <![CDATA[ create_time > #{item.beginTime} and create_time < #{item.endTime}]]>
+                where STATU in ('已付款', '欠款') and orderType=1 and <![CDATA[ create_time > #{item.beginTime} and create_time < #{item.endTime}]]>
                 <if test="shopId != null">
                     and shop_id=#{shopId}
                 </if>
@@ -869,13 +899,13 @@
             </if>
             ) refund,
             (select IFNULL(count(1),0) from sys_order
-            where STATU in ('已付款', '欠款') and <![CDATA[ ORDER_TIME > #{item.beginTime} and ORDER_TIME < #{item.endTime} ]]>
+            where STATU in ('已付款', '欠款') and orderType=1 and <![CDATA[ ORDER_TIME > #{item.beginTime} and ORDER_TIME < #{item.endTime} ]]>
             <if test="shopId != null">
                 and shop_id=#{shopId}
             </if>
             ) perCustomCnt,
             (select IFNULL(sum(b.COUNT),0) from sys_order a inner join sys_order_item b on a.ID=b.ORDER_ID
-            where a.STATU in ('已付款', '欠款') and <![CDATA[ ORDER_TIME > #{item.beginTime} and ORDER_TIME < #{item.endTime} ]]>
+            where a.STATU in ('已付款', '欠款') and a.orderType=1 and <![CDATA[ ORDER_TIME > #{item.beginTime} and ORDER_TIME < #{item.endTime} ]]>
             <if test="shopId != null">
                 and shop_id=#{shopId}
             </if>
@@ -886,7 +916,7 @@
             inner join sys_store_info d on c.store_id = d.ID
             inner join sys_order_item e on a.ID=e.ORDER_ID
             inner join shopping_goods f on e.goods_id=f.id and f.good_type='家居产品'
-            where a.STATU in ('已付款', '欠款') and <![CDATA[ ORDER_TIME > #{item.beginTime} and ORDER_TIME < #{item.endTime} ]]>
+            where a.STATU in ('已付款', '欠款') and a.orderType=1 and <![CDATA[ ORDER_TIME > #{item.beginTime} and ORDER_TIME < #{item.endTime} ]]>
             <if test="shopId != null">
                 and a.shop_id=#{shopId}
             </if>
@@ -894,7 +924,7 @@
             (select IFNULL(sum(b.COUNT * IFNULL(c.price, 0)),0) from sys_order a
             inner join sys_order_item b on a.ID=b.ORDER_ID
             inner join shopping_goods c on c.good_type != '家居产品' and b.goods_id=c.id
-            where a.STATU in ('已付款', '欠款') and <![CDATA[ ORDER_TIME > #{item.beginTime} and ORDER_TIME < #{item.endTime} ]]>
+            where a.STATU in ('已付款', '欠款') and a.orderType=1 and <![CDATA[ ORDER_TIME > #{item.beginTime} and ORDER_TIME < #{item.endTime} ]]>
             <if test="shopId != null">
                 and a.shop_id=#{shopId}
             </if>

--
Gitblit v1.9.1