From e423d56d730db1baed24f3f7dbbc4141038776b6 Mon Sep 17 00:00:00 2001
From: 935090232@qq.com <ak473600000>
Date: Fri, 18 Jun 2021 22:12:03 +0800
Subject: [PATCH] 修复每日业绩bug和优化赠送业绩计算方式
---
zq-erp/src/main/resources/mybatis/mapper/hive/TjVipSumDao.xml | 191 +++++++++++++++++++++++++++++------------------
1 files changed, 118 insertions(+), 73 deletions(-)
diff --git a/zq-erp/src/main/resources/mybatis/mapper/hive/TjVipSumDao.xml b/zq-erp/src/main/resources/mybatis/mapper/hive/TjVipSumDao.xml
index e0f903f..56a7c07 100644
--- a/zq-erp/src/main/resources/mybatis/mapper/hive/TjVipSumDao.xml
+++ b/zq-erp/src/main/resources/mybatis/mapper/hive/TjVipSumDao.xml
@@ -90,13 +90,14 @@
select
<foreach collection="list" index="index" item="item" separator="," >
(
- 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>
) as t${index}
@@ -126,13 +127,14 @@
select
<foreach collection="list" index="index" item="item" separator="," >
(
- 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>
) as t${index}
@@ -230,10 +232,10 @@
select
<foreach collection="list" index="index" item="item" separator="," >
(
- select IFNULL(sum(zk_price),0) from sys_order_item a
+ 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}]]>
+ 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>
@@ -249,10 +251,10 @@
select
<foreach collection="list" index="index" item="item" separator="," >
(
- select IFNULL(sum(zk_price),0) from sys_order_item a
+ 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}]]>
+ 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>
@@ -268,12 +270,14 @@
select
<foreach collection="list" index="index" item="item" separator="," >
(
- 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>
) as t${index}
</foreach>
@@ -285,7 +289,7 @@
<foreach collection="list" index="index" item="item" separator="," >
(
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>
@@ -304,7 +308,7 @@
select case a.perCustomCnt when 0 then 0 else a.totalSaleCnt/a.perCustomCnt end from (
select
(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>
@@ -313,7 +317,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>
@@ -334,7 +338,7 @@
select case a.perCustomCnt when 0 then 0 else a.totalPay/a.perCustomCnt end from (
select
(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>
@@ -369,7 +373,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>
@@ -380,7 +384,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>
@@ -406,7 +410,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>
@@ -417,7 +421,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>
@@ -452,7 +456,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>
@@ -463,7 +467,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>
@@ -490,13 +494,14 @@
select
<foreach collection="list" index="index" item="item" separator="," >
(
- 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>
) as t${index}
@@ -509,13 +514,54 @@
select
<foreach collection="list" index="index" item="item" separator="," >
(
- 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>
+ ) as t${index}
+
+ </foreach>
+ from area where id=1
+ </select>
+
+ <select id="selectCardAmount" resultType="java.util.TreeMap">
+ select
+ <foreach collection="list" index="index" item="item" separator="," >
+ (
+ select IFNULL(sum(IFNULL(amount, 0)), 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>
+ ) as t${index}
+
+ </foreach>
+ from area where id=1
+ </select>
+
+ <select id="selectFreeAmount" resultType="java.util.TreeMap">
+ select
+ <foreach collection="list" index="index" item="item" separator="," >
+ (
+ select IFNULL(sum(IFNULL(amount, 0)), 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>
) as t${index}
@@ -528,9 +574,18 @@
select
#{item.beginTime} time,
(select ifnull(sum(ifnull(card_cash,0) + ifnull(consume,0)),0) from achieve_new a where a.beault_id=#{userId} and <![CDATA[datatime > #{item.beginTime} and datatime < #{item.endTime} ]]>) orderAmount,
- (select ifnull(sum(case t3 when '现金业绩' then card_cash else 0 end),0) from achieve_new a where a.beault_id=#{userId} and <![CDATA[datatime > #{item.beginTime} and datatime < #{item.endTime} ]]>) cashAmount,
- (select ifnull(sum(case t3 when '划扣业绩' then consume else 0 end),0) from achieve_new a where a.beault_id=#{userId} and <![CDATA[datatime > #{item.beginTime} and datatime < #{item.endTime} ]]>) cardAmount,
- (select ifnull(sum(case t3 when '划扣业绩' then consume else 0 end),0) from achieve_new a where a.beault_id=#{userId} and <![CDATA[datatime > #{item.beginTime} and datatime < #{item.endTime} ]]>) cardUseAmount,
+ (select ifnull(sum(case a.pay_method when '现金' then goods_cash else 0 end),0)
+ from achieve_new a
+ inner join sys_order_item b on a.order_item_id=b.ID
+ where a.beault_id=#{userId} and <![CDATA[datatime > #{item.beginTime} and datatime < #{item.endTime} ]]>) cashAmount,
+ (select ifnull(sum(case a.pay_method when '划扣' then goods_cash else 0 end),0)
+ from achieve_new a
+ inner join sys_order_item b on a.order_item_id=b.ID
+ where a.beault_id=#{userId} and <![CDATA[datatime > #{item.beginTime} and datatime < #{item.endTime} ]]>) cardAmount,
+ (select ifnull(sum(case a.pay_method when '划扣' then goods_cash else 0 end),0)
+ from achieve_new a
+ inner join sys_order_item b on a.order_item_id=b.ID
+ where a.beault_id=#{userId} and <![CDATA[datatime > #{item.beginTime} and datatime < #{item.endTime} ]]>) cardUseAmount,
(select ifnull(sum(ifnull(proj_percentage, 0)),0) from achieve_new a where a.beault_id=#{userId} and <![CDATA[datatime > #{item.beginTime} and datatime < #{item.endTime} ]]> and order_type='订单') goodsAmount,
(select ifnull(sum(ifnull(his_consume, 0)),0) from achieve_new a where a.beault_id=#{userId} and <![CDATA[datatime > #{item.beginTime} and datatime < #{item.endTime} ]]>) hisConsume,
(select ifnull(sum(ifnull(free_consume, 0)),0) from achieve_new a where a.beault_id=#{userId} and <![CDATA[datatime > #{item.beginTime} and datatime < #{item.endTime} ]]>) freeConsume,
@@ -545,14 +600,12 @@
<select id="selectStaffOrderAchieve" resultType="java.util.TreeMap">
select
<foreach collection="list" index="index" item="item" separator="," >
- (
- select
- IFNULL(SUM((IFNULL(a.card_cash,0) +IFNULL(a.proj_cash,0) + IFNULL(a.goods_cash,0))),0)
- from achieve_new a
- where <![CDATA[datatime > #{item.beginTime} and datatime < #{item.endTime} ]]>
- <if test="staffId != null and staffId != 0">
- and sale_id=#{staffId}
- </if>
+ (select ifnull(sum(ifnull(card_cash,0) + ifnull(consume,0)),0)
+ from achieve_new a
+ where <![CDATA[datatime > #{item.beginTime} and datatime < #{item.endTime} ]]>
+ <if test="staffId != null and staffId != 0">
+ and a.beault_id=#{staffId}
+ </if>
) as t${index}
</foreach>
@@ -562,16 +615,14 @@
<select id="selectStaffCashAchieve" resultType="java.util.TreeMap">
select
<foreach collection="list" index="index" item="item" separator="," >
- (
- select
- IFNULL(SUM((IFNULL(a.proj_cash,0))),0)
- from achieve_new a
- where <![CDATA[datatime > #{item.beginTime} and datatime < #{item.endTime} ]]>
+ (select ifnull(sum(case a.pay_method when '现金' then goods_cash else 0 end),0)
+ from achieve_new a
+ inner join sys_order_item b on a.order_item_id=b.ID
+ where <![CDATA[datatime > #{item.beginTime} and datatime < #{item.endTime} ]]>
<if test="staffId != null and staffId != 0">
- and sale_id=#{staffId}
+ and a.beault_id=#{staffId}
</if>
) as t${index}
-
</foreach>
from area where id=1
</select>
@@ -579,13 +630,12 @@
<select id="selectStaffCardAchieve" resultType="java.util.TreeMap">
select
<foreach collection="list" index="index" item="item" separator="," >
- (
- select
- IFNULL(SUM((IFNULL(a.card_cash,0))),0)
- from achieve_new a
- where <![CDATA[datatime > #{item.beginTime} and datatime < #{item.endTime} ]]>
+ (select ifnull(sum(case a.pay_method when '划扣' then goods_cash else 0 end),0)
+ from achieve_new a
+ inner join sys_order_item b on a.order_item_id=b.ID
+ where <![CDATA[datatime > #{item.beginTime} and datatime < #{item.endTime} ]]>
<if test="staffId != null and staffId != 0">
- and sale_id=#{staffId}
+ and a.beault_id=#{staffId}
</if>
) as t${index}
@@ -596,13 +646,11 @@
<select id="selectStaffGoodsAchieve" resultType="java.util.TreeMap">
select
<foreach collection="list" index="index" item="item" separator="," >
- (
- select
- IFNULL(SUM((IFNULL(a.goods_cash,0))),0)
- from achieve_new a
- where <![CDATA[datatime > #{item.beginTime} and datatime < #{item.endTime} ]]>
+ (select ifnull(sum(ifnull(proj_percentage, 0)),0)
+ from achieve_new a
+ where <![CDATA[datatime > #{item.beginTime} and datatime < #{item.endTime} ]]> and order_type='订单'
<if test="staffId != null and staffId != 0">
- and sale_id=#{staffId}
+ and a.beault_id=#{staffId}
</if>
) as t${index}
</foreach>
@@ -660,14 +708,11 @@
<select id="selectStaffCommissionAchieve" resultType="java.util.TreeMap">
select
<foreach collection="list" index="index" item="item" separator="," >
- (
- select
- IFNULL(SUM((IFNULL(a.proj_percentage,0))),0)
- from achieve_new a
- where <![CDATA[datatime > #{item.beginTime} and datatime < #{item.endTime} ]]>
- <if test="staffId != null and staffId != 0">
- and beault_id=#{staffId}
- </if>
+ (select ifnull(sum(ifnull(proj_percentage, 0)),0) from achieve_new a
+ where <![CDATA[datatime > #{item.beginTime} and datatime < #{item.endTime} ]]> and order_type='服务单'
+ <if test="staffId != null and staffId != 0">
+ and a.beault_id=#{staffId}
+ </if>
) as t${index}
</foreach>
from area where id=1
--
Gitblit v1.9.1