From 4351e71d782741143a98f86f6648acd16689165f Mon Sep 17 00:00:00 2001
From: Helius <wangdoubleone@gmail.com>
Date: Fri, 27 May 2022 19:48:02 +0800
Subject: [PATCH] Merge branch 'developer' into hive2.0

---
 zq-erp/src/main/resources/mybatis/mapper/hive/SysBusinessDataDao.xml |  161 +++++++++++++++++++++++++++++++++--------------------
 1 files changed, 99 insertions(+), 62 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 ebf0f83..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,92 +624,122 @@
             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}]]>
+                (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(amount),0) from sys_order_flow a
-                    inner join sys_order_item b on a.order_id=b.ORDER_ID
-                    inner join shopping_goods c on b.goods_id=c.id
-                    where c.good_type='家居产品' and <![CDATA[ a.create_time > #{item.beginTime} and a.create_time < #{item.endTime}]]>
+                (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 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 a.shop_id=#{shopId}
+                        and c.shop_id=#{shopId}
                     </if>
                     <if test="companyId != null">
-                        and a.company_id=#{companyId}
+                        and c.company_id=#{companyId}
                     </if>
                     ) productAchieve,
-                (select IFNULL(sum(amount),0) from sys_order_flow a
-                    inner join sys_order_item b on a.order_id=b.ORDER_ID
-                    inner join shopping_goods c on b.goods_id=c.id
-                    where c.good_type!='家居产品' and <![CDATA[ a.create_time > #{item.beginTime} and a.create_time < #{item.endTime}]]>
+                (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 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}
+                    </if>
+                    <if test="companyId != null">
+                        and c.company_id=#{companyId}
+                    </if>
+                    ) cardAchieve,
+                (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 a.shop_id=#{shopId}
                     </if>
                     <if test="companyId != null">
                         and a.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}]]>
+                ) 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 shop_id=#{shopId}
+                        and a.shop_id=#{shopId}
                     </if>
                     <if test="companyId != null">
-                        and company_id=#{companyId}
+                        and a.company_id=#{companyId}
                     </if>
-                ) refund,
+                ) 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>
@@ -804,11 +834,18 @@
         <foreach collection="list" index="index" item="item"   separator="union all"  >
             select
             #{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 orderType=1 and <![CDATA[ create_time > #{item.beginTime} and create_time < #{item.endTime}]]>
+                <if test="shopId != null">
+                    and shop_id=#{shopId}
+                </if>
+                ) shouldPay,
             (select IFNULL(sum(amount),0) from sys_order_flow
-            where <![CDATA[ create_time > #{item.beginTime} and create_time < #{item.endTime}]]>
-            <if test="shopId != null">
-                and shop_id=#{shopId}
-            </if>
+                where <![CDATA[ create_time > #{item.beginTime} and create_time < #{item.endTime}]]> and pay_method!='欠款'
+                <if test="shopId != null">
+                    and shop_id=#{shopId}
+                </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}]]>
@@ -840,20 +877,20 @@
                 and shop_id=#{shopId}
             </if>
             ) refundCardPay,
-            (select IFNULL(sum(amount),0) from sys_order_flow a
-            inner join sys_order_item b on a.order_id=b.ORDER_ID
-            inner join shopping_goods c on b.goods_id=c.id
-            where c.good_type='家居产品' and <![CDATA[ a.create_time > #{item.beginTime} and a.create_time < #{item.endTime}]]>
+            (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
+            where b.good_type='家居产品' and <![CDATA[ c.pay_time > #{item.beginTime} and c.pay_time < #{item.endTime}]]>
             <if test="shopId != null">
-                and a.shop_id=#{shopId}
+                and c.shop_id=#{shopId}
             </if>
             ) productAchieve,
-            (select IFNULL(sum(amount),0) from sys_order_flow a
-            inner join sys_order_item b on a.order_id=b.ORDER_ID
-            inner join shopping_goods c on b.goods_id=c.id
-            where c.good_type!='家居产品' and <![CDATA[ a.create_time > #{item.beginTime} and a.create_time < #{item.endTime}]]>
+            (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
+            where b.good_type!='家居产品' and <![CDATA[ c.pay_time > #{item.beginTime} and c.pay_time < #{item.endTime}]]>
             <if test="shopId != null">
-                and a.shop_id=#{shopId}
+                and c.shop_id=#{shopId}
             </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}]]>
@@ -862,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>
@@ -879,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>
@@ -887,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>
@@ -932,7 +969,7 @@
         from sys_order_flow
         where <![CDATA[ create_time > #{item.beginTime} and create_time < #{item.endTime} ]]>
         <if test="shopId != null">
-            and a.shop_id=#{shopId}
+            and shop_id=#{shopId}
         </if>
         group by paymethod
     </sql>

--
Gitblit v1.9.1