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/AchieveNewDao.xml |  586 ++++++++++++++++++++++++++++++++++++++++++++--------------
 1 files changed, 442 insertions(+), 144 deletions(-)

diff --git a/zq-erp/src/main/resources/mybatis/mapper/hive/AchieveNewDao.xml b/zq-erp/src/main/resources/mybatis/mapper/hive/AchieveNewDao.xml
index 0540354..5fc09d3 100644
--- a/zq-erp/src/main/resources/mybatis/mapper/hive/AchieveNewDao.xml
+++ b/zq-erp/src/main/resources/mybatis/mapper/hive/AchieveNewDao.xml
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" 
-"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
+		"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 
 <mapper namespace="com.matrix.system.hive.dao.AchieveNewDao">
 	<!-- 定义AchieveNew 的复杂关联map -->
@@ -52,6 +52,7 @@
 		<result property="goodsName" column="goodsName" />
 
 		<result property="cateName" column="cateName" />
+		<result property="achieveRuleName" column="achieveRuleName" />
 
 	</resultMap>
 
@@ -68,6 +69,7 @@
 		e.name as pro_name,
 		b.ZK_TOTAL as zk_total,
 		a.his_consume,
+		er.name as achieveRuleName,
 		a.free_consume,
 		f.su_name meiliao,
 		g.su_name guwen,
@@ -88,6 +90,7 @@
 		left join sys_vip_info c on a.vip_id=c.id
 		left join sys_vip_level d on c.LEVEL_ID=d.id
 		left join shopping_goods e on a.shopping_goods_id=e.id
+		left join achieve_rule er on e.achieve_rule_id=er.id
 		LEFT JOIN sys_users f on a.beault_id=f.su_id
 		LEFT JOIN sys_users g on a.sale_id = g.su_id
 		LEFT JOIN sys_shop_info h ON a.SHOP_ID = h.ID
@@ -95,10 +98,14 @@
 		left join sys_proj_services l on a.service_order_id=l.id
 		left join sys_order_item j on a.order_item_id=j.ID
 		<where>
+			and	a.company_id = #{record.companyId}
 			<if test="record!=null">
 				<if
-					test="(record.shopId!=null and record.shopId!='') or  (record.shopId!='' and record.shopId==0)  ">
+						test="(record.shopId!=null and record.shopId!='') or  (record.shopId!='' and record.shopId==0)  ">
 					and a.shop_id = #{record.shopId}
+				</if>
+				<if test="record.achieveRuleId != null  ">
+					and e.achieve_rule_id = #{record.achieveRuleId}
 				</if>
 				<if test="record.year != null and record.year !='' ">
 					and YEAR (a.datatime) = #{record.year}
@@ -118,9 +125,7 @@
 				<if test="record.beaultId != null and record.beaultId !='' ">
 					and	a.beault_id = #{record.beaultId}
 				</if>
-				<if test="record.companyId != null and record.companyId !='' ">
-					and	a.company_id = #{record.companyId}
-				</if>
+
 				<if test="record.beaultId != null and record.beaultId !='' ">
 					and	a.beault_id = #{record.beaultId}
 				</if>
@@ -146,7 +151,7 @@
 
 	</select>
 	<select id="findDayFlowTotal"
-		resultType="java.lang.Integer">
+			resultType="java.lang.Integer">
 		select count(*)
 		from
 		achieve_new a
@@ -160,9 +165,10 @@
 		LEFT JOIN shopping_goods_category i ON e.cate_id = i.id
 		left join sys_proj_services l on a.service_order_id=l.id
 		<where>
+
 			<if test="record!=null">
 				<if
-					test="(record.shopId!=null and record.shopId!='') or  (record.shopId!='' and record.shopId==0)  ">
+						test="(record.shopId!=null and record.shopId!='') or  (record.shopId!='' and record.shopId==0)  ">
 					and a.shop_id = #{record.shopId}
 				</if>
 				<if test="record.year != null and record.year !='' ">
@@ -196,7 +202,41 @@
 		</where>
 	</select>
 
+	<!--
 
+     统计员工业绩
+
+    select
+            u.name,
+            g.su_name guwen,
+            cast(SUM(b.ZK_TOTAL) AS decimal(15,2)) as zk_total,
+            cast(SUM(a.his_consume) AS decimal(15,2)),
+            cast(SUM(a.free_consume) AS decimal(15,2)),
+            cast(SUM(a.proj_percentage) AS decimal(15,2)),
+            cast(SUM(a.number_of_people) AS decimal(15,2)),
+            cast(SUM(a.proj_num) AS decimal(15,2)),
+            cast(SUM(a.proj_time) AS decimal(15,2)),
+            h.shop_short_name shop_name,
+            a.order_type,
+            a.achieveType
+            from
+            achieve_new a
+            left join sys_order b on a.order_id=b.id
+            left join sys_vip_info c on a.vip_id=c.id
+            left join sys_vip_level d on c.LEVEL_ID=d.id
+            left join shopping_goods e on a.shopping_goods_id=e.id
+            LEFT JOIN sys_users f on a.beault_id=f.su_id
+            LEFT JOIN sys_users g on a.sale_id = g.su_id
+            LEFT JOIN sys_shop_info h ON a.SHOP_ID = h.ID
+            LEFT JOIN shopping_goods_category i ON e.cate_id = i.id
+            left join sys_proj_services l on a.service_order_id=l.id
+            left join sys_order_item j on a.order_item_id=j.ID
+            left join achieve_rule u on u.id=e.achieve_rule_id
+     where h.shop_short_name='龙华店'
+        GROUP BY g.su_name , a.order_type, h.id,a.achieveType
+        ORDER BY g.su_name
+
+    -->
 
 
 	<select id="findSumDailyInfoNew" resultMap="AchieveNewMap">
@@ -227,9 +267,10 @@
 		LEFT JOIN shopping_goods_category j ON i.parent_id = j.id
 		left join sys_proj_services l on a.service_order_id=l.id
 		<where>
+
 			<if test="record!=null">
 				<if
-					test="(record.shopId!=null and record.shopId!='') or  (record.shopId!='' and record.shopId==0)  ">
+						test="(record.shopId!=null and record.shopId!='') or  (record.shopId!='' and record.shopId==0)  ">
 					and a.shop_id = #{record.shopId}
 				</if>
 				<if test="record.year != null and record.year !='' ">
@@ -376,120 +417,120 @@
 
 		<if test="record!=null">
 			<if
-				test="(record.id!=null and record.id!='') or  (record.id!='' and record.id==0)  ">
+					test="(record.id!=null and record.id!='') or  (record.id!='' and record.id==0)  ">
 				and id = #{record.id}
 			</if>
 			<if test="record.companyId != null and record.companyId !='' ">
 				and company_id = #{record.companyId}
 			</if>
 			<if
-				test="(record.saleId!=null and record.saleId!='') or  (record.saleId!='' and record.saleId==0)  ">
+					test="(record.saleId!=null and record.saleId!='') or  (record.saleId!='' and record.saleId==0)  ">
 				and sale_id = #{record.saleId}
 			</if>
 			<if
-				test="(record.beaultId!=null and record.beaultId!='') or  (record.beaultId!='' and record.beaultId==0)  ">
+					test="(record.beaultId!=null and record.beaultId!='') or  (record.beaultId!='' and record.beaultId==0)  ">
 				and beault_id = #{record.beaultId}
 			</if>
 			<if
-				test="(record.shopId!=null and record.shopId!='') or  (record.shopId!='' and record.shopId==0)  ">
+					test="(record.shopId!=null and record.shopId!='') or  (record.shopId!='' and record.shopId==0)  ">
 				and shop_id = #{record.shopId}
 			</if>
 			<if
-				test="(record.datatime!=null and record.datatime!='') or  (record.datatime!='' and record.datatime==0)  ">
+					test="(record.datatime!=null and record.datatime!='') or  (record.datatime!='' and record.datatime==0)  ">
 				and datatime = #{record.datatime}
 			</if>
 			<if
-				test="(record.orderId!=null and record.orderId!='') or  (record.orderId!='' and record.orderId==0)  ">
+					test="(record.orderId!=null and record.orderId!='') or  (record.orderId!='' and record.orderId==0)  ">
 				and order_id = #{record.orderId}
 			</if>
 			<if
-				test="(record.orderItemId!=null and record.orderItemId!='') or  (record.orderItemId!='' and record.orderItemId==0)  ">
+					test="(record.orderItemId!=null and record.orderItemId!='') or  (record.orderItemId!='' and record.orderItemId==0)  ">
 				and order_item_id = #{record.orderItemId}
 			</if>
 			<if
-				test="(record.shoppingGoodsId!=null and record.shoppingGoodsId!='') or  (record.shoppingGoodsId!='' and record.shoppingGoodsId==0)  ">
+					test="(record.shoppingGoodsId!=null and record.shoppingGoodsId!='') or  (record.shoppingGoodsId!='' and record.shoppingGoodsId==0)  ">
 				and shopping_goods_id = #{record.shoppingGoodsId}
 			</if>
 			<if
-				test="(record.serviceOrderId!=null and record.serviceOrderId!='') or  (record.serviceOrderId!='' and record.serviceOrderId==0)  ">
+					test="(record.serviceOrderId!=null and record.serviceOrderId!='') or  (record.serviceOrderId!='' and record.serviceOrderId==0)  ">
 				and service_order_id = #{record.serviceOrderId}
 			</if>
 			<if
-				test="(record.vipId!=null and record.vipId!='') or  (record.vipId!='' and record.vipId==0)  ">
+					test="(record.vipId!=null and record.vipId!='') or  (record.vipId!='' and record.vipId==0)  ">
 				and vip_id = #{record.vipId}
 			</if>
 			<if
-				test="(record.freeConsume!=null and record.freeConsume!='') or  (record.freeConsume!='' and record.freeConsume==0)  ">
+					test="(record.freeConsume!=null and record.freeConsume!='') or  (record.freeConsume!='' and record.freeConsume==0)  ">
 				and free_consume = #{record.freeConsume}
 			</if>
 			<if
-				test="(record.hisConsume!=null and record.hisConsume!='') or  (record.hisConsume!='' and record.hisConsume==0)  ">
+					test="(record.hisConsume!=null and record.hisConsume!='') or  (record.hisConsume!='' and record.hisConsume==0)  ">
 				and his_consume = #{record.hisConsume}
 			</if>
 
 
 			<if
-				test="(record.goodsCash!=null and record.goodsCash!='') or  (record.goodsCash!='' and record.goodsCash==0)  ">
+					test="(record.goodsCash!=null and record.goodsCash!='') or  (record.goodsCash!='' and record.goodsCash==0)  ">
 				and goods_cash = #{record.goodsCash}
 			</if>
 			<if
-				test="(record.projNum!=null and record.projNum!='') or  (record.projNum!='' and record.projNum==0)  ">
+					test="(record.projNum!=null and record.projNum!='') or  (record.projNum!='' and record.projNum==0)  ">
 				and proj_num = #{record.projNum}
 			</if>
 			<if
-				test="(record.numberOfPeople!=null and record.numberOfPeople!='') or  (record.numberOfPeople!='' and record.numberOfPeople==0)  ">
+					test="(record.numberOfPeople!=null and record.numberOfPeople!='') or  (record.numberOfPeople!='' and record.numberOfPeople==0)  ">
 				and number_of_people = #{record.numberOfPeople}
 			</if>
 			<if
-				test="(record.shopName!=null and record.shopName!='') or  (record.shopName!='' and record.shopName==0)  ">
+					test="(record.shopName!=null and record.shopName!='') or  (record.shopName!='' and record.shopName==0)  ">
 				and shop_name = #{record.shopName}
 			</if>
 			<if
-				test="(record.projTime!=null and record.projTime!='') or  (record.projTime!='' and record.projTime==0)  ">
+					test="(record.projTime!=null and record.projTime!='') or  (record.projTime!='' and record.projTime==0)  ">
 				and proj_time = #{record.projTime}
 			</if>
 			<if
-				test="(record.remark!=null and record.remark!='') or  (record.remark!='' and record.remark==0)  ">
+					test="(record.remark!=null and record.remark!='') or  (record.remark!='' and record.remark==0)  ">
 				and remark = #{record.remark}
 			</if>
 			<if
-				test="(record.orderType!=null and record.orderType!='') or  (record.orderType!='' and record.orderType==0)  ">
+					test="(record.orderType!=null and record.orderType!='') or  (record.orderType!='' and record.orderType==0)  ">
 				and order_type = #{record.orderType}
 			</if>
 			<if
-				test="(record.projPercentage!=null and record.projPercentage!='') or  (record.projPercentage!='' and record.projPercentage==0)  ">
+					test="(record.projPercentage!=null and record.projPercentage!='') or  (record.projPercentage!='' and record.projPercentage==0)  ">
 				and proj_percentage = #{record.projPercentage}
 			</if>
 			<if
-				test="(record.t1!=null and record.t1!='') or  (record.t1!='' and record.t1==0)  ">
+					test="(record.t1!=null and record.t1!='') or  (record.t1!='' and record.t1==0)  ">
 				and t1 = #{record.t1}
 			</if>
 			<if
-				test="(record.t2!=null and record.t2!='') or  (record.t2!='' and record.t2==0)  ">
+					test="(record.t2!=null and record.t2!='') or  (record.t2!='' and record.t2==0)  ">
 				and t2 = #{record.t2}
 			</if>
 			<if
-				test="(record.achieveType!=null and record.achieveType!='') or  (record.achieveType!='' and record.achieveType==0)  ">
+					test="(record.achieveType!=null and record.achieveType!='') or  (record.achieveType!='' and record.achieveType==0)  ">
 				and achieveType = #{record.achieveType}
 			</if>
 			<if
-				test="(record.t4!=null and record.t4!='') or  (record.t4!='' and record.t4==0)  ">
+					test="(record.t4!=null and record.t4!='') or  (record.t4!='' and record.t4==0)  ">
 				and t4 = #{record.t4}
 			</if>
 			<if
-				test="(record.t5!=null and record.t5!='') or  (record.t5!='' and record.t5==0)  ">
+					test="(record.t5!=null and record.t5!='') or  (record.t5!='' and record.t5==0)  ">
 				and t5 = #{record.t5}
 			</if>
 			<if
-				test="(record.t6!=null and record.t6!='') or  (record.t6!='' and record.t6==0)  ">
+					test="(record.t6!=null and record.t6!='') or  (record.t6!='' and record.t6==0)  ">
 				and t6 = #{record.t6}
 			</if>
 			<if
-				test="(record.t8!=null and record.t8!='') or  (record.t8!='' and record.t8==0)  ">
+					test="(record.t8!=null and record.t8!='') or  (record.t8!='' and record.t8==0)  ">
 				and t8 = #{record.t8}
 			</if>
 			<if
-				test="(record.t9!=null and record.t9!='') or  (record.t9!='' and record.t9==0)  ">
+					test="(record.t9!=null and record.t9!='') or  (record.t9!='' and record.t9==0)  ">
 				and t9 = #{record.t9}
 			</if>
 		</if>
@@ -498,7 +539,7 @@
 
 	<!-- 插入方法 -->
 	<insert id="insert" parameterType="com.matrix.system.hive.bean.AchieveNew"
-		useGeneratedKeys="true" keyProperty="item.id">
+			useGeneratedKeys="true" keyProperty="item.id">
 		INSERT INTO achieve_new (
 		<include refid="columns"></include>
 		)
@@ -516,7 +557,7 @@
 		)
 		VALUES
 		<foreach collection="list" item="item" index="index"
-			separator=",">
+				 separator=",">
 			(
 			<include refid="propertys"></include>
 			)
@@ -629,15 +670,15 @@
 		UPDATE achieve_new set datatime = #{record.datatime}
 		<where>
 			<if
-				test="(record.id!=null and record.id!='') or  (record.id!='' and record.id==0)  ">
+					test="(record.id!=null and record.id!='') or  (record.id!='' and record.id==0)  ">
 				and id = #{record.id}
 			</if>
 			<if
-				test="(record.orderId!=null and record.orderId!='') or  (record.orderId!='' and record.orderId==0)  ">
+					test="(record.orderId!=null and record.orderId!='') or  (record.orderId!='' and record.orderId==0)  ">
 				and order_id = #{record.orderId}
 			</if>
 			<if
-				test="(record.serviceOrderId!=null and record.serviceOrderId!='') or  (record.serviceOrderId!='' and record.serviceOrderId==0)  ">
+					test="(record.serviceOrderId!=null and record.serviceOrderId!='') or  (record.serviceOrderId!='' and record.serviceOrderId==0)  ">
 				and service_order_id = #{record.serviceOrderId}
 			</if>
 		</where>
@@ -675,7 +716,7 @@
 				vip_id = #{record.vipId},
 			</if>
 			<if
-				test="record.freeConsume != null and record.freeConsume != '' ">
+					test="record.freeConsume != null and record.freeConsume != '' ">
 				free_consume = #{record.freeConsume},
 			</if>
 			<if test="record.hisConsume != null ">
@@ -743,7 +784,7 @@
 	<delete id="deleteByIds" parameterType="java.util.List">
 		delete from achieve_new where id in
 		<foreach collection="list" index="index" item="item" open="("
-			separator="," close=")">
+				 separator="," close=")">
 			#{item}
 		</foreach>
 	</delete>
@@ -789,7 +830,7 @@
 
 	<!-- 查询总条数 -->
 	<select id="selectTotalRecord"
-		resultType="java.lang.Integer">
+			resultType="java.lang.Integer">
 		select count(*)
 		from achieve_new
 		where 1=1
@@ -826,48 +867,44 @@
 	</select>
 
 
-	<select id="selectVipConsumeStatisticsList" resultMap="AchieveNewMap">
+	<select id="selectVipConsumeStatisticsList" resultType="java.util.HashMap">
 		select
-			a.VIP_NAME,
-			a.PHONE t9,
-			GROUP_CONCAT(DISTINCT e.su_name) meiliao,
-			d.cnt arrive_cnt,
-			sum(b.buyConsume) goods_cash,
-			sum(b.freeConsume) free_consume,
-			sum(b.hisConsume) his_consume
+		a.VIP_NAME vipName,
+		a.PHONE t9,
+		b.su_name meiliao,
+		(SELECT  sum(IFNULL(goods_cash,0)) from achieve_new where  pay_method='现金' and  VIP_ID=a.id
+		<if test="record.beginTime != null"> and date_format(datatime, '%Y-%m-%d') >= date_format(#{record.beginTime}, '%Y-%m-%d') </if>
+		<if test="record.endTime != null"> <![CDATA[ and date_format(datatime, '%Y-%m-%d') < date_format(#{record.endTime}, '%Y-%m-%d') ]]>	 </if> )  as 'goodsCash'  ,
+		(SELECT  sum(IFNULL(goods_cash,0)) from achieve_new where  pay_method='划扣' and  VIP_ID=a.id
+		<if test="record.beginTime != null"> and date_format(datatime, '%Y-%m-%d') >= date_format(#{record.beginTime}, '%Y-%m-%d') </if>
+		<if test="record.endTime != null"> <![CDATA[ and date_format(datatime, '%Y-%m-%d') < date_format(#{record.endTime}, '%Y-%m-%d') ]]>	 </if>)  as 'cardCash'  ,
+		(SELECT  sum(IFNULL(free_consume,0)) from achieve_new where   VIP_ID=a.id
+		<if test="record.beginTime != null"> and date_format(datatime, '%Y-%m-%d') >= date_format(#{record.beginTime}, '%Y-%m-%d') </if>
+		<if test="record.endTime != null"> <![CDATA[ and date_format(datatime, '%Y-%m-%d') < date_format(#{record.endTime}, '%Y-%m-%d') ]]>	 </if>  )  as 'freeConsume'  ,
+		(SELECT  sum(IFNULL(number_of_people,0)) from achieve_new where   VIP_ID=a.id
+		<if test="record.beginTime != null"> and date_format(datatime, '%Y-%m-%d') >= date_format(#{record.beginTime}, '%Y-%m-%d') </if>
+		<if test="record.endTime != null"> <![CDATA[ and date_format(datatime, '%Y-%m-%d') < date_format(#{record.endTime}, '%Y-%m-%d') ]]>	 </if>  )  as 'arriveCnt'  ,
+		(SELECT  sum(IFNULL(his_consume,0)) from achieve_new where   VIP_ID=a.id
+		<if test="record.beginTime != null"> and date_format(datatime, '%Y-%m-%d') >= date_format(#{record.beginTime}, '%Y-%m-%d') </if>
+		<if test="record.endTime != null"> <![CDATA[ and date_format(datatime, '%Y-%m-%d') < date_format(#{record.endTime}, '%Y-%m-%d') ]]>	 </if> )  as 'hisConsume'
 		from sys_vip_info a
-		inner join (
-			select vip_id,datatime, sum(a.free_consume) freeConsume, sum(a.his_consume) hisConsume, sum(IFNULL(goods_cash, 0) )) buyConsume from achieve_new a group by vip_id
-		) b on a.ID = b.vip_id
-		inner join (
-			select vip_id, count(1) cnt from (
-										 select vip_id, date_format(datatime, '%Y-%m-%d')
-										 from achieve_new
-										 group by date_format(datatime, '%Y-%m-%d'), vip_id
-									 ) c group by vip_id
-			) d on a.ID=d.vip_id
+		left join sys_users b on a.BEATUY_ID=b.su_id
+		inner join sys_shop_info c on c.id=a.SHOP_ID
+		<where>
 
-		left join sys_users e on find_in_set(e.su_id, a.BEATUY_ID)
-		where 1=1
-		<if test="record.vipName != null and record.vipName !=''">
-			and (a.vip_name like CONCAT(CONCAT('%', #{record.vipName}), '%') or a.vip_no=#{record.vipName} or a.phone = #{record.vipName})
-		</if>
-		<if test="record.shopId != null">
-			and a.shop_id=#{record.shopId}
-		</if>
-		<if test="record.beginTime != null">
-			and date_format(b.datatime, '%Y-%m-%d') >= date_format(#{record.beginTime}, '%Y-%m-%d')
-		</if>
-		<if test="record.endTime!=null">
-			and date_format(b.datatime, '%Y-%m-%d') >= date_format(#{record.endTime}, '%Y-%m-%d')
-		</if>
-		<if test="record.beaultId != null and record.beaultId!=''">
-			and FIND_IN_SET(#{record.beaultId}, a.BEATUY_ID)
-		</if>
-		<if test='record.t1 == "on"'>
-			and a.BEATUY_ID is not null
-		</if>
-		group by a.PHONE
+			<if test="record.vipName != null and record.vipName !=''">
+				and (a.vip_name like CONCAT(CONCAT('%', #{record.vipName}), '%') or a.vip_no=#{record.vipName} or a.phone = #{record.vipName})
+			</if>
+			<if test="record.shopId != null">
+				and a.shop_id=#{record.shopId}
+			</if>
+			<if test="record.beaultId != null and record.beaultId!=''">
+				and FIND_IN_SET(#{record.beaultId}, a.BEATUY_ID)
+			</if>
+			<if test='record.t1 == "on"'>
+				and a.BEATUY_ID is not null
+			</if>
+		</where>
 		<if test="pageVo !=null"><!-- 判断pageVo对象是否为空 -->
 			<if test="pageVo.sort !=null  and pageVo.order !=null">
 				order by
@@ -883,54 +920,38 @@
 	<select id="selectVipConsumeStatisticsTotal" resultType="java.lang.Integer">
 		select count(1)
 		from sys_vip_info a
-		inner join (
-		select vip_id,datatime, sum(a.free_consume) freeConsume, sum(a.his_consume) hisConsume, sum(IFNULL(goods_cash, 0)  ) buyConsume from achieve_new a group by vip_id
-		) b on a.ID = b.vip_id
-		inner join (
-		select vip_id, count(1) cnt from (
-		select vip_id, date_format(datatime, '%Y-%m-%d')
-		from achieve_new
-		group by date_format(datatime, '%Y-%m-%d'), vip_id
-		) c group by vip_id
-		) d on a.ID=d.vip_id
+		left join sys_users b on a.BEATUY_ID=b.su_id
+		inner join sys_shop_info c on c.id=a.SHOP_ID
+		<where>
 
-		left join sys_users e on find_in_set(e.su_id, a.BEATUY_ID)
-		where 1=1
-		<if test="record.vipName != null and record.vipName !=''">
-			and (a.vip_name like CONCAT(CONCAT('%', #{record.vipName}), '%') or a.vip_no=#{record.vipName} or a.phone = #{record.vipName})
-		</if>
-		<if test="record.shopId != null">
-			and a.shop_id=#{record.shopId}
-		</if>
-		<if test="record.beginTime != null">
-			and date_format(b.datatime, '%Y-%m-%d') >= date_format(#{record.beginTime}, '%Y-%m-%d')
-		</if>
-		<if test="record.endTime!=null">
-			and date_format(b.datatime, '%Y-%m-%d') >= date_format(#{record.endTime}, '%Y-%m-%d')
-		</if>
-		<if test="record.beaultId != null and record.beaultId!=''">
-			and FIND_IN_SET(#{record.beaultId}, a.BEATUY_ID)
-		</if>
-		<if test='record.t1 == "on"'>
-			and a.BEATUY_ID is not null
-		</if>
+			<if test="record.vipName != null and record.vipName !=''">
+				and (a.vip_name like CONCAT(CONCAT('%', #{record.vipName}), '%') or a.vip_no=#{record.vipName} or a.phone = #{record.vipName})
+			</if>
+			<if test="record.shopId != null">
+				and a.shop_id=#{record.shopId}
+			</if>
+			<if test="record.beaultId != null and record.beaultId!=''">
+				and FIND_IN_SET(#{record.beaultId}, a.BEATUY_ID)
+			</if>
+			<if test='record.t1 == "on"'>
+				and a.BEATUY_ID is not null
+			</if>
+		</where>
 	</select>
 
 
 	<select id="selectUserAchieveByTime" resultType="com.matrix.system.app.vo.UserAchieveVo">
 		select
 			sale_id id,
-			(select ifnull(sum(case b.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 (date_format(datatime, '%Y-%m-%d') >= date_format(#{startTime}, '%Y-%m-%d') and date_format(#{endTime}, '%Y-%m-%d') >= date_format(datatime, '%Y-%m-%d'))
+			(select ifnull(sum(case pay_method when '现金' then goods_cash else 0 end),0)
+			 from achieve_new a
+			 where a.beault_id=#{userId}
+			   and (date_format(datatime, '%Y-%m-%d') >= date_format(#{startTime}, '%Y-%m-%d') and date_format(#{endTime}, '%Y-%m-%d') >= date_format(datatime, '%Y-%m-%d'))
 			) orderCash,
-			(select ifnull(sum(case b.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 (date_format(datatime, '%Y-%m-%d') >= date_format(#{startTime}, '%Y-%m-%d') and date_format(#{endTime}, '%Y-%m-%d') >= date_format(datatime, '%Y-%m-%d'))
+			(select ifnull(sum(case pay_method when '划扣' then goods_cash else 0 end),0)
+			 from achieve_new a
+			 where  a.beault_id=#{userId}
+			   and (date_format(datatime, '%Y-%m-%d') >= date_format(#{startTime}, '%Y-%m-%d') and date_format(#{endTime}, '%Y-%m-%d') >= date_format(datatime, '%Y-%m-%d'))
 			) cash,
 			sum(case order_type when '订单' then proj_percentage else 0 end) cardUse,
 			sum(IFNULL(his_consume, 0)) hisConsume,
@@ -938,7 +959,7 @@
 			sum(case order_type when '服务单' then proj_percentage else 0 end) projCommission
 		from achieve_new a
 		where a.beault_id=#{userId}
-		and (date_format(datatime, '%Y-%m-%d') >= date_format(#{startTime}, '%Y-%m-%d') and date_format(#{endTime}, '%Y-%m-%d') >= date_format(datatime, '%Y-%m-%d'))
+		  and (date_format(datatime, '%Y-%m-%d') >= date_format(#{startTime}, '%Y-%m-%d') and date_format(#{endTime}, '%Y-%m-%d') >= date_format(datatime, '%Y-%m-%d'))
 	</select>
 
 	<select id="selectApiOrderItemAchieve" resultType="com.matrix.system.app.vo.OrderDetailAchieveItemVo">
@@ -946,15 +967,15 @@
 			b.su_name name,
 			IFNULL(a.goods_cash, 0) achieve
 		from achieve_new a
-		inner join sys_users b on (a.beault_id=b.su_id or a.sale_id = b.su_id)
+				 inner join sys_users b on (a.beault_id=b.su_id or a.sale_id = b.su_id)
 		where a.order_item_id=#{itemId} and order_type = '订单'
 	</select>
 
 	<select id="selectShopConsumeAchieveRanking" resultType="com.matrix.system.app.vo.RankingVo">
 		select
-			b.shop_short_name name,
-			b.SHOP_IMAG photo,
-			sum(IFNULL(a.free_consume,0) + IFNULL(a.his_consume,0)) amount
+		b.shop_short_name name,
+		b.SHOP_IMAG photo,
+		sum(IFNULL(a.free_consume,0) + IFNULL(a.his_consume,0)) amount
 		from achieve_new a
 		left join sys_shop_info b on a.shop_id=b.ID and b.shop_type!=1
 		<where>
@@ -970,6 +991,9 @@
 			<if test='record.t1 == "3" and record.datatime != null'>
 				and date_format(datatime, '%Y') = date_format(#{record.datatime}, '%Y')
 			</if>
+			<if test='record.t1 == "4" and record.datatime != null'>
+				and date_format(datatime, '%Y-%m-%d %u') = date_format(#{record.datatime}, '%Y-%m-%d %u')
+			</if>
 		</where>
 		group by a.shop_id
 		order by amount desc, a.shop_id
@@ -977,11 +1001,11 @@
 
 	<select id="selectBeauticianConsumeAchieveRanking" resultType="com.matrix.system.app.vo.RankingVo">
 		select
-			b.su_name name,
-			b.su_id id,
-			b.SHOP_IMAG photo,
-			sum(IFNULL(a.free_consume,0) + IFNULL(a.his_consume, 0) ) amount,
-			c.shop_short_name shopName
+		b.su_name name,
+		b.su_id id,
+		b.su_photo photo,
+		sum(IFNULL(a.free_consume,0) + IFNULL(a.his_consume, 0) ) amount,
+		c.shop_short_name shopName
 		from achieve_new a
 		inner join sys_users b on a.beault_id=b.su_id
 		left join sys_shop_info c on a.shop_id=c.ID
@@ -1002,6 +1026,9 @@
 			<if test='record.t1 == "3" and record.datatime != null'>
 				and date_format(datatime, '%Y') = date_format(#{record.datatime}, '%Y')
 			</if>
+			<if test='record.t1 == "4" and record.datatime != null'>
+				and date_format(datatime, '%Y-%m-%d %u') = date_format(#{record.datatime}, '%Y-%m-%d %u')
+			</if>
 		</where>
 		group by a.beault_id
 		order by amount desc
@@ -1013,11 +1040,11 @@
 			b.code goodsNo,
 			b.name goodsName,
 			c.su_name meiliao,
-			d.count*d.zk_price zk_total
+			TRUNCATE(d.count*d.zk_price,2) zk_total
 		from achieve_new a
-		left join shopping_goods b on a.shopping_goods_id=b.id
-		left join sys_users c on a.beault_id=c.su_id
-		left join sys_order_item d on a.order_item_id=d.id
+				 left join shopping_goods b on a.shopping_goods_id=b.id
+				 left join sys_users c on a.beault_id=c.su_id
+				 left join sys_order_item d on a.order_item_id=d.id
 		where a.order_id=#{orderId}
 	</select>
 
@@ -1047,6 +1074,9 @@
 			<if test='record.type == "3" and record.datatime != null'>
 				and date_format(datatime, '%Y') = date_format(#{record.datatime}, '%Y')
 			</if>
+			<if test='record.t1 == "4" and record.datatime != null'>
+				and date_format(datatime, '%Y-%m-%d %u') = date_format(#{record.datatime}, '%Y-%m-%d %u')
+			</if>
 		</where>
 		group by b.su_id
 		order by amount desc, b.su_id
@@ -1054,14 +1084,146 @@
 
 	<select id="selectShopSaleAchieveRanking" resultType="com.matrix.system.app.vo.RankingVo">
 		select
-			b.shop_short_name name,
-			b.SHOP_IMAG photo,
-			sum(IFNULL(a.goods_cash,0)) amount
+		b.shop_short_name name,
+		b.SHOP_IMAG photo,
+		sum(IFNULL(a.amount,0)) amount
+		from sys_order_flow a
+		inner join sys_order c on a.order_id=c.id and c.STATU != '已取消'
+		inner join sys_shop_info b on a.shop_id=b.id and shop_type!=1
+		<where>
+			a.pay_method not in ('储值卡', '欠款')
+			<if test="record.companyId != null">
+				and a.company_id=#{record.companyId}
+			</if>
+			<if test='record.t1 == "1" and record.datatime != null'>
+				and date_format(a.create_time, '%Y-%m-%d') = date_format(#{record.datatime}, '%Y-%m-%d')
+			</if>
+			<if test='record.t1 == "2" and record.datatime != null'>
+				and date_format(a.create_time, '%Y-%m') = date_format(#{record.datatime}, '%Y-%m')
+			</if>
+			<if test='record.t1 == "3" and record.datatime != null'>
+				and date_format(a.create_time, '%Y') = date_format(#{record.datatime}, '%Y')
+			</if>
+			<if test='record.t1 == "4" and record.datatime != null'>
+				and date_format(a.create_time, '%Y-%m-%d %u') = date_format(#{record.datatime}, '%Y-%m-%d %u')
+			</if>
+		</where>
+		group by a.shop_id
+		order by amount desc, a.shop_id
+	</select>
+
+	<!-- 顾问当天下单列表 -->
+	<select id="selectSaleManAchieveList" resultMap="AchieveNewMap">
+		select * from achieve_new
+		where sale_id=#{saleId} and vip_id=#{vipId} and sale_id=beault_id
+		  and date_format(datatime, '%Y-%m-%d') = date_format(#{date}, '%Y-%m-%d')
+	</select>
+
+	<select id="selectBeautyManAchieveList" resultMap="AchieveNewMap">
+		select * from achieve_new
+		where beault_id=#{beautyId} and vip_id=#{vipId}
+		  and date_format(datatime, '%Y-%m-%d') = date_format(#{date}, '%Y-%m-%d')
+	</select>
+
+	<select id="achieveNewStatistics" resultType="com.matrix.system.hive.vo.AchieveNewStatisticsVo">
+
+		select
+		u.name ruleName,
+		f.su_name guwen,
+		f.su_id gwid,
+		g.su_name createBy,
+		g.su_id createId,
+		cast(SUM(b.ZK_TOTAL) AS decimal(15,2)) as zk_total,
+		cast(SUM(a.his_consume) AS decimal(15,2)) his_consume,
+		cast(SUM(a.free_consume) AS decimal(15,2)) free_consume,
+		cast(SUM(a.proj_percentage) AS decimal(15,2)) proj_percentage,
+		cast(SUM(a.number_of_people) AS decimal(15,2)) number_of_people,
+		cast(SUM(a.proj_num) AS decimal(15,2)) proj_num,
+		cast(SUM(case when a.pay_method = '划扣' then goods_cash end )AS decimal(15,2)) card_cash,
+		cast(SUM(a.proj_time) AS decimal(15,2)) proj_time,
+		cast(SUM(case when a.pay_method = '现金' then goods_cash end )AS decimal(15,2)) goods_cash,
+		h.shop_short_name shop_name,
+		a.order_type
+		from
+		achieve_new a
+		left join sys_order b on a.order_id=b.id
+		left join sys_vip_info c on a.vip_id=c.id
+		left join sys_vip_level d on c.LEVEL_ID=d.id
+		left join shopping_goods e on a.shopping_goods_id=e.id
+		LEFT JOIN sys_users f on a.beault_id=f.su_id
+		LEFT JOIN sys_users g on a.sale_id = g.su_id
+		LEFT JOIN sys_shop_info h ON a.SHOP_ID = h.ID
+		LEFT JOIN shopping_goods_category i ON e.cate_id = i.id
+		left join sys_proj_services l on a.service_order_id=l.id
+		left join sys_order_item j on a.order_item_id=j.ID
+		left join achieve_rule u on u.id=e.achieve_rule_id
+		<where>
+			and a.company_id = #{record.companyId}
+			<if test="record.shopId != null">
+				and a.shop_id = #{record.shopId}
+			</if>
+			<if test="record.achieveRuleId != null">
+				and u.id = #{record.achieveRuleId}
+			</if>
+
+			<if test="record.staffName != null and record.staffName!=''">
+				<!-- 创建人和归属人都有业绩 -->
+				and (f.su_name like concat('%',#{record.staffName},'%')  or g.su_name like concat('%',#{record.staffName},'%')  )
+			</if>
+
+			<if test="record.orderType != null and record.orderType != '' ">
+				and a.order_type= #{record.orderType}
+			</if>
+			<if test="record.beginTime != null ">
+				and a.datatime >= #{record.beginTime}
+			</if>
+			<if test="record.endTime != null   ">
+				<![CDATA[and a.datatime <= #{record.endTime}]]>
+			</if>
+
+		</where>
+		GROUP BY g.su_id , f.su_id, a.order_type, h.id,a.achieveType,u.name
+		<if test="record.sort !=null and record.sort!=''"> order by ${record.sort} ${record.order}</if>
+
+	</select>
+
+
+	<update id="updateAchieveNumOfPeople">
+		<foreach collection="list" item="item" index="index"
+				 separator=";">
+			update achieve_new set number_of_people=#{num} where id=#{item.id}
+		</foreach>
+	</update>
+	<update id="setPayMethod">
+
+
+		update  achieve_new
+		set pay_method=#{paymethod}
+		where id in
+		<foreach collection="list" index="index" item="item" open="("
+				 separator="," close=")">
+			#{item}
+		</foreach>
+
+
+	</update>
+
+	<select id="selectNumOfPeopleAchieveRanking" resultType="com.matrix.system.app.vo.RankingVo">
+		select
+		b.su_name name,
+		b.su_id id,
+		b.su_photo photo,
+		sum(number_of_people) amount,
+		c.shop_short_name shopName
 		from achieve_new a
-		left join sys_shop_info b on a.shop_id=b.ID and shop_type!=1
+		inner join sys_users b on a.beault_id=b.su_id
+		left join sys_shop_info c on a.shop_id=c.ID
 		<where>
 			<if test="record.companyId != null">
 				and a.company_id=#{record.companyId}
+			</if>
+			<if test="record.shopId != null">
+				and a.shop_id=#{record.shopId}
 			</if>
 			<if test='record.t1 == "1" and record.datatime != null'>
 				and date_format(datatime, '%Y-%m-%d') = date_format(#{record.datatime}, '%Y-%m-%d')
@@ -1072,8 +1234,144 @@
 			<if test='record.t1 == "3" and record.datatime != null'>
 				and date_format(datatime, '%Y') = date_format(#{record.datatime}, '%Y')
 			</if>
+			<if test='record.t1 == "4" and record.datatime != null'>
+				and date_format(datatime, '%Y-%m-%d %u') = date_format(#{record.datatime}, '%Y-%m-%d %u')
+			</if>
 		</where>
-		group by a.shop_id
-		order by amount desc, a.shop_id
+		group by a.beault_id
+		order by amount desc
+	</select>
+
+	<select id="selectDailyBeautyList" resultType="com.matrix.system.hive.vo.DailyBeautyListVo">
+		select
+			date_format(b.datatime, '%Y-%m-%d') datatime,
+			a.su_id,
+			a.su_name beautyName,
+			c.id vipId,
+			c.VIP_NAME,
+			c.arrival_way,
+			case when c.BEATUY_ID=a.su_id then 1 else 0 end isAppoint,
+			(select count(distinct date_format(n.datatime, '%Y-%m-%d')) from achieve_new n
+			 where date_format(b.datatime, '%Y-%m') = date_format(n.datatime, '%Y-%m') and n.vip_id=c.ID
+			 group by date_format(n.datatime, '%Y-%m'))arriveCnt,
+			(select count(1) from sys_order o where o.statu in ('欠款', '已付款') and o.VIP_ID=c.id)  orderCnt,
+			(select group_concat(distinct q.pay_method) payMethod from sys_order p
+			   inner join sys_order_flow q on p.ID=q.ORDER_ID
+			   inner join achieve_new o on o.order_id=p.id
+			 where date_format(pay_time, '%Y-%m-%d') = date_format(b.datatime, '%Y-%m-%d') and o.beault_id=a.su_id and c.ID=q.vip_id and p.STATU in ('欠款', '已付款')
+			 group by p.VIP_ID) payMethods,
+			(select sum(amount) from sys_order_flow x
+				 inner join achieve_new y on x.order_id=y.order_id
+			 where x.pay_method='团购' and date_format(x.create_time, '%Y-%m-%d') = date_format(b.datatime, '%Y-%m-%d')
+			   and y.beault_id=a.su_id and x.vip_id=c.id ) teamPay,
+			(select sum(m.ZK_PRICE) from sys_order_item m
+				 inner join achieve_new n on n.ORDER_ID=m.order_id
+			 where date_format(m.create_time, '%Y-%m-%d') = date_format(b.datatime, '%Y-%m-%d')
+			   and m.type in ('套餐', '项目') and n.beault_id=a.su_id) tcAndProjCash,
+			(select sum(m.ZK_PRICE) from sys_order_item m
+				 inner join achieve_new n on n.ORDER_ID=m.order_id
+			 where date_format(m.create_time, '%Y-%m-%d') = date_format(b.datatime, '%Y-%m-%d')
+			   and m.type in ('家居产品') and n.beault_id=a.su_id) productCash,
+			(select sum(m.ZK_PRICE) from sys_order_item m
+				 inner join achieve_new n on n.ORDER_ID=m.order_id
+			 where date_format(m.create_time, '%Y-%m-%d') = date_format(b.datatime, '%Y-%m-%d')
+			   and m.type in ('充值卡') and n.beault_id=a.su_id) cardCash,
+			(select sum(amount) from sys_order_flow x
+				 inner join achieve_new y on x.order_id=y.order_id
+			 where x.pay_method='储值卡' and date_format(x.create_time, '%Y-%m-%d') = date_format(b.datatime, '%Y-%m-%d')
+			   and y.beault_id=a.su_id and x.vip_id=c.id) cardPay,
+			(select sum(amount) from sys_order_flow x
+				inner join achieve_new y on x.order_id=y.order_id
+			 where x.pay_method not in ('储值卡','欠款') and date_format(x.create_time, '%Y-%m-%d') = date_format(b.datatime, '%Y-%m-%d')
+				and y.beault_id=a.su_id and x.vip_id=c.id) cashPay,
+			(select sum(e.goods_cash) from achieve_new e
+				inner join shopping_goods f on e.shopping_goods_id=f.id and f.is_cooperate=1
+			 where e.order_type='订单' and date_format(e.datatime, '%Y-%m-%d') = date_format(b.datatime, '%Y-%m-%d')
+				and e.beault_id=a.su_id and e.vip_id=c.id) cooperateProj,
+			sum(proj_percentage) ticheng,
+			sum(IFNULL(free_consume,0) + IFNULL(his_consume,0)) consume,
+			(select count(1) from achieve_new z where z.beault_id=a.su_id and c.id=z.vip_id and z.order_type='服务单' group by z.beault_id,z.vip_id) projCnt
+		from sys_users a
+			 left join achieve_new b on a.su_id=b.beault_id
+			 left join sys_vip_info c on b.vip_id=c.ID
+		where 1=1
+		<if test="record.companyId != null">
+		 and a.company_id=#{record.companyId}
+		</if>
+		<if test="record.shopId != null">
+		  and a.shop_id=#{record.shopId}
+		</if>
+		<if test="record.beginTime != null">
+			and date_format(b.datatime, '%Y-%m-%d') > date_format(#{record.beginTime}, '%Y-%m-%d')
+		</if>
+		<if test="record.endTime != null">
+			and date_format(#{record.endTime}, '%Y-%m-%d') > date_format(b.datatime, '%Y-%m-%d')
+		</if>
+		<if test="record.beaultId != null">
+			and a.su_id=#{record.beaultId}
+		</if>
+		<if test="record.vipQueryKey != null and record.vipQueryKey != ''">
+			and c.vip_name like concat('%', #{record.vipQueryKey}, '%')
+		</if>
+		<if test="record.beginTime == null and record.endTime == null">
+			and date_format(b.datatime, '%Y-%m') = date_format(now(), '%Y-%m')
+		</if>
+		group by date_format(b.datatime, '%Y-%m-%d'), a.su_id, c.ID
+		<if test="pageVo !=null"><!-- 判断pageVo对象是否为空 -->
+			order by date_format(b.datatime, '%Y-%m-%d') desc, a.su_id
+			<if test="pageVo.offset >=0  and pageVo.limit >0">
+				limit
+				#{pageVo.offset},#{pageVo.limit}
+			</if>
+		</if>
+	</select>
+
+	<select id="selectDailyBeautyListTotal" resultType="java.lang.Integer">
+		select count(1) from (
+			 select
+				 date_format(b.datatime, '%Y-%m-%d') datatime,
+				 a.su_id,
+				 a.su_name,
+				 c.id vipId,
+				 c.VIP_NAME,
+				 c.arrival_way,
+				 sum(proj_percentage) ticheng,
+				 sum(IFNULL(free_consume,0) + IFNULL(his_consume,0)) consume
+			 from sys_users a
+					  left join achieve_new b on a.su_id=b.beault_id
+					  left join sys_vip_info c on b.vip_id=c.ID
+			where 1=1
+			<if test="record.companyId != null">
+				and a.company_id=#{record.companyId}
+			</if>
+			<if test="record.shopId != null">
+				and a.shop_id=#{record.shopId}
+			</if>
+			<if test="record.beginTime != null">
+				and date_format(b.datatime, '%Y-%m-%d') > date_format(#{record.beginTime}, '%Y-%m-%d')
+			</if>
+			<if test="record.endTime != null">
+				and date_format(#{record.endTime}, '%Y-%m-%d') > date_format(b.datatime, '%Y-%m-%d')
+			</if>
+			<if test="record.beaultId != null">
+				and a.su_id=#{record.beaultId}
+			</if>
+			<if test="record.vipQueryKey != null and record.vipQueryKey != ''">
+				and c.vip_name like concat('%', #{record.vipQueryKey}, '%')
+			</if>
+			<if test="record.beginTime == null and record.endTime == null">
+				and date_format(b.datatime, '%Y-%m') = date_format(now(), '%Y-%m')
+			</if>
+			 group by date_format(b.datatime, '%Y-%m-%d'), a.su_id, c.ID
+		) a
+	</select>
+
+	<select id="selectPlInfoByVipIdAndDate" resultType="java.lang.String">
+		select group_concat(concat(name,'*', bb))
+		from (select l.name name, 0+CAST(sum(n.amount) as char) bb from sys_out_store m
+		 inner join sys_out_store_item n on m.id=n.OUT_STORE_ID
+		 inner join shopping_goods l on n.SKU_ID=l.id
+	   where m.SERVICE_ID in (select distinct service_order_id from achieve_new where date_format(datatime, '%Y-%m-%d') = date_format(#{datatime}, '%Y-%m-%d') and vip_id=#{vipId})
+	   group by l.id) a
 	</select>
 </mapper>
\ No newline at end of file

--
Gitblit v1.9.1