From d388e2788b7ef088d7cd40f901b0acdcec460bc3 Mon Sep 17 00:00:00 2001 From: wzy <wzy19931122ai@163.com> Date: Thu, 01 Apr 2021 00:19:23 +0800 Subject: [PATCH] modify --- zq-erp/src/main/resources/mybatis/mapper/hive/SysBusinessDataDao.xml | 213 ++++++++++++++++++++++++++++++++++++++++++++-------- 1 files changed, 179 insertions(+), 34 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 84736e1..c412857 100644 --- a/zq-erp/src/main/resources/mybatis/mapper/hive/SysBusinessDataDao.xml +++ b/zq-erp/src/main/resources/mybatis/mapper/hive/SysBusinessDataDao.xml @@ -619,11 +619,13 @@ ) a </select> - <select id="selectDemo" resultType="com.matrix.system.app.vo.BusinessesDataShowVo"> + <select id="selectApiBusinessData" resultType="com.matrix.system.app.vo.BusinessesDataShowVo"> <foreach collection="list" index="index" item="item" separator="union all" > select - (select sum(amount) from sys_order_flow - where <![CDATA[ create_time > #{item.beginTime} and create_time < #{item.endTime}]]> + #{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!='欠款' <if test="shopId != null"> and shop_id=#{shopId} </if> @@ -631,7 +633,7 @@ and company_id=#{companyId} </if> )totalPay, - (select sum(amount) from sys_order_flow + (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}]]> <if test="shopId != null"> and shop_id=#{shopId} @@ -640,7 +642,7 @@ and company_id=#{companyId} </if> ) cashPay, - (select sum(amount) from sys_order_flow + (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}]]> <if test="shopId != null"> and shop_id=#{shopId} @@ -649,7 +651,7 @@ and company_id=#{companyId} </if> ) cardPay, - (select sum(amount) from sys_order_flow + (select IFNULL(sum(amount),0) from sys_order_flow where pay_method = '欠款' and <![CDATA[ create_time > #{item.beginTime} and create_time < #{item.endTime}]]> <if test="shopId != null"> and shop_id=#{shopId} @@ -658,7 +660,7 @@ and company_id=#{companyId} </if> ) arrearsPay, - (select sum(amount) from sys_order_flow + (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}]]> <if test="shopId != null"> and shop_id=#{shopId} @@ -667,7 +669,7 @@ and company_id=#{companyId} </if> ) refundCashPay, - (select sum(amount) from sys_order_flow + (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}]]> <if test="shopId != null"> and shop_id=#{shopId} @@ -676,29 +678,29 @@ and company_id=#{companyId} </if> ) refundCardPay, - (select sum(a.amount) 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[ a.create_time > #{item.beginTime} and a.create_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 sum(a.amount) 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[ a.create_time > #{item.beginTime} and a.create_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> ) cardAchieve, - (select sum(amount) from sys_order_flow where flow_type = '退款' and <![CDATA[ create_time > #{item.beginTime} and create_time < #{item.endTime}]]> + (select IFNULL(sum(amount),0) from sys_order_flow where flow_type = '还款' and <![CDATA[ create_time > #{item.beginTime} and create_time < #{item.endTime}]]> <if test="shopId != null"> and shop_id=#{shopId} </if> @@ -706,8 +708,8 @@ and company_id=#{companyId} </if> ) refund, - (select count(1) from sys_order - where STATU in ('已付款', '欠款') and <![CDATA[ ORDER_TIME > #{item.beginTime} and ORDER_TIME < #{item.endTime} ]]> + (select IFNULL(count(1),0) from sys_order + 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> @@ -715,8 +717,8 @@ and company_id=#{companyId} </if> ) perCustomCnt, - (select sum(b.COUNT) 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} ]]> + (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 a.orderType=1 and <![CDATA[ ORDER_TIME > #{item.beginTime} and ORDER_TIME < #{item.endTime} ]]> <if test="shopId != null"> and shop_id=#{shopId} </if> @@ -724,13 +726,13 @@ and company_id=#{companyId} </if> ) totalSaleCnt, - (select sum(e.count * d.GOODS_PRICE) from sys_order a + (select IFNULL(sum(e.count * d.GOODS_PRICE),0) from sys_order a inner join sys_out_store b on a.id=b.ORDER_ID inner join sys_out_store_item c on b.id=c.OUT_STORE_ID 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> @@ -738,10 +740,10 @@ and a.company_id=#{companyId} </if> ) goodsCost, - (select sum(b.COUNT * IFNULL(c.price, 0)) from sys_order a + (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> @@ -749,7 +751,7 @@ and a.company_id=#{companyId} </if> ) otherCost, - (select sum(IFNULL(his_consume, 0)) from achieve_new + (select IFNULL(sum(IFNULL(his_consume, 0)),0) from achieve_new where <![CDATA[datatime > #{item.beginTime} and datatime < #{item.endTime}]]> <if test="shopId != null"> and shop_id=#{shopId} @@ -758,7 +760,7 @@ and company_id=#{companyId} </if> ) consumePay, - (select sum(IFNULL(free_consume, 0)) from achieve_new + (select IFNULL(sum(IFNULL(free_consume, 0)),0) from achieve_new where <![CDATA[datatime > #{item.beginTime} and datatime < #{item.endTime}]]> <if test="shopId != null"> and shop_id=#{shopId} @@ -767,7 +769,7 @@ and company_id=#{companyId} </if> ) freeConsumePay, - (select sum(IFNULL(number_of_people, 0)) from achieve_new + (select IFNULL(sum(IFNULL(number_of_people, 0)),0) from achieve_new where <![CDATA[datatime > #{item.beginTime} and datatime < #{item.endTime}]]> <if test="shopId != null"> and shop_id=#{shopId} @@ -776,7 +778,7 @@ and company_id=#{companyId} </if> ) peopleCnt, - (select sum(IFNULL(proj_num, 0)) from achieve_new + (select IFNULL(sum(IFNULL(proj_num, 0)),0) from achieve_new where <![CDATA[datatime > #{item.beginTime} and datatime < #{item.endTime}]]> <if test="shopId != null"> and shop_id=#{shopId} @@ -785,7 +787,7 @@ and company_id=#{companyId} </if> ) projConsumeCnt, - (select sum(IFNULL(proj_time, 0)) from achieve_new + (select IFNULL(sum(IFNULL(proj_time, 0)),0) from achieve_new where <![CDATA[datatime > #{item.beginTime} and datatime < #{item.endTime}]]> <if test="shopId != null"> and shop_id=#{shopId} @@ -798,4 +800,147 @@ </foreach> </select> + <select id="selectDailySaleData" resultType="com.matrix.system.hive.statistics.DailySaleVo"> + <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}]]> 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}]]> + <if test="shopId != null"> + and shop_id=#{shopId} + </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}]]> + <if test="shopId != null"> + and shop_id=#{shopId} + </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}]]> + <if test="shopId != null"> + and shop_id=#{shopId} + </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}]]> + <if test="shopId != null"> + and shop_id=#{shopId} + </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}]]> + <if test="shopId != null"> + and shop_id=#{shopId} + </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 + where b.good_type='家居产品' and <![CDATA[ a.create_time > #{item.beginTime} and a.create_time < #{item.endTime}]]> + <if test="shopId != null"> + and c.shop_id=#{shopId} + </if> + ) 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 + where b.good_type!='家居产品' and <![CDATA[ a.create_time > #{item.beginTime} and a.create_time < #{item.endTime}]]> + <if test="shopId != null"> + 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}]]> + <if test="shopId != null"> + and shop_id=#{shopId} + </if> + ) refund, + (select IFNULL(count(1),0) from sys_order + 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 a.orderType=1 and <![CDATA[ ORDER_TIME > #{item.beginTime} and ORDER_TIME < #{item.endTime} ]]> + <if test="shopId != null"> + and shop_id=#{shopId} + </if> + ) totalSaleCnt, + (select IFNULL(sum(e.count * d.GOODS_PRICE),0) from sys_order a + inner join sys_out_store b on a.id=b.ORDER_ID + inner join sys_out_store_item c on b.id=c.OUT_STORE_ID + 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 a.orderType=1 and <![CDATA[ ORDER_TIME > #{item.beginTime} and ORDER_TIME < #{item.endTime} ]]> + <if test="shopId != null"> + and a.shop_id=#{shopId} + </if> + ) goodsCost, + (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 a.orderType=1 and <![CDATA[ ORDER_TIME > #{item.beginTime} and ORDER_TIME < #{item.endTime} ]]> + <if test="shopId != null"> + and a.shop_id=#{shopId} + </if> + ) otherCost, + (select sum(case a.paymethod when '微信' then amount else 0 end) wechat + from (<include refid="dailySaleFlow"></include>) a + ) wechat, + (select + sum(case a.paymethod when '支付宝' then amount else 0 end) alipay + from (<include refid="dailySaleFlow"></include>) a + ) alipay, + (select + sum(case a.paymethod when '现金支付' then amount else 0 end) cash + from (<include refid="dailySaleFlow"></include>) a + ) cash, + (select + sum(case a.paymethod when '银行卡' then amount else 0 end) bankCard + from (<include refid="dailySaleFlow"></include>) a + ) bankCard, + (select + sum(case a.paymethod when '团购' then amount else 0 end) tuan + from (<include refid="dailySaleFlow"></include>) a + ) tuan, + (select + sum(case a.paymethod when '本金收款' then amount else 0 end) cardBj + from (<include refid="dailySaleFlow"></include>) a + ) cardBj, + (select + sum(case a.paymethod when '赠金收款' then amount else 0 end) cardFree + from (<include refid="dailySaleFlow"></include>) a + ) cardFree, + (select + sum(case a.paymethod when '欠款' then amount else 0 end) arrears + from (<include refid="dailySaleFlow"></include>) a + ) arrears + from dual + </foreach> + </select> + + <sql id="dailySaleFlow"> + select sum(amount) amount, case when is_gift = 'Y' then '赠金收款' when is_gift='N' then '本金收款' else pay_method end paymethod + from sys_order_flow + where <![CDATA[ create_time > #{item.beginTime} and create_time < #{item.endTime} ]]> + <if test="shopId != null"> + and shop_id=#{shopId} + </if> + group by paymethod + </sql> </mapper> \ No newline at end of file -- Gitblit v1.9.1