From 28cfa033f4c9e7e8639d9acb8f3c75688a3e539d Mon Sep 17 00:00:00 2001
From: jyy <jyy>
Date: Mon, 02 Aug 2021 16:37:59 +0800
Subject: [PATCH] 优化需求

---
 zq-erp/src/main/resources/mybatis/mapper/hive/AchieveNewDao.xml |  620 +++++++++++++++++++++++++++++++++++++++----------------
 1 files changed, 438 insertions(+), 182 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 9eb3473..99190d7 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 -->
@@ -17,10 +17,8 @@
 		<result property="vipId" column="vip_id" />
 		<result property="freeConsume" column="free_consume" />
 		<result property="hisConsume" column="his_consume" />
-		<result property="consume" column="consume" />
-		<result property="cardCash" column="card_cash" />
-		<result property="projCash" column="proj_cash" />
 		<result property="goodsCash" column="goods_cash" />
+		<result property="cardCash" column="card_cash" />
 		<result property="projNum" column="proj_num" />
 		<result property="numberOfPeople" column="number_of_people" />
 		<result property="shopName" column="shop_name" />
@@ -30,7 +28,7 @@
 		<result property="projPercentage" column="proj_percentage" />
 		<result property="t1" column="t1" />
 		<result property="t2" column="t2" />
-		<result property="t3" column="t3" />
+		<result property="achieveType" column="achieveType" />
 		<result property="t4" column="t4" />
 		<result property="t5" column="t5" />
 		<result property="t6" column="t6" />
@@ -47,10 +45,14 @@
 		<result property="guwen" column="guwen" />
 		<result property="meiliao" column="meiliao" />
 		<result property="zkTotal" column="zk_total" />
-
+		<result property="payMethod" column="pay_method" />
 		<result property="arriveCnt" column="arrive_cnt" />
 
+		<result property="goodsNo" column="goodsNo" />
+		<result property="goodsName" column="goodsName" />
 
+		<result property="cateName" column="cateName" />
+		<result property="achieveRuleName" column="achieveRuleName" />
 
 	</resultMap>
 
@@ -65,14 +67,9 @@
 		d.level_name,
 		c.vip_name,
 		e.name as pro_name,
-		a.card_cash,
-		(IFNULL(a.card_cash,0) +IFNULL(a.proj_cash,0) + IFNULL(a.goods_cash,0)
-		) as zk_total,
-		a.proj_cash,
-		a.goods_cash,
-		a.card_cash,
-		a.consume,
+		b.ZK_TOTAL as zk_total,
 		a.his_consume,
+		er.name as achieveRuleName,
 		a.free_consume,
 		f.su_name meiliao,
 		g.su_name guwen,
@@ -80,25 +77,35 @@
 		a.number_of_people,
 		a.proj_num,
 		a.proj_time,
-		i.name as module_subName,
-		h.SHOP_NAME shop_name,
-		a.order_type
+		i.name as cateName,
+		h.shop_short_name shop_name,
+		a.order_type,
+		a.achieveType,
+		case when a.pay_method = '现金' then goods_cash end goods_cash,
+		case when a.pay_method = '划扣' then goods_cash end card_cash,
+		j.pay_method
 		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 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
 		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
 		<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
@@ -162,7 +167,7 @@
 		<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 +201,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">
@@ -204,12 +243,8 @@
 		YEAR (a.datatime) year,
 		MONTH (a.datatime) month,
 		DAY(a.datatime) day,
-		SUM(a.card_cash) as card_cash ,
-		SUM((IFNULL(a.card_cash,0) +IFNULL(a.proj_cash,0) + IFNULL(a.goods_cash,0) ) )as zk_total,
-		SUM(a.proj_cash) as proj_cash,
+		SUM( IFNULL(a.goods_cash,0)  )as zk_total,
 		SUM(a.goods_cash) as goods_cash,
-		SUM(a.card_cash) as card_cash,
-		SUM(a.consume) as consume,
 		SUM(a.his_consume) as his_consume,
 		SUM(a.free_consume) as free_consume,
 		SUM(a.proj_percentage) as proj_percentage,
@@ -233,7 +268,7 @@
 		<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 !='' ">
@@ -285,9 +320,6 @@
 		<result property="vipId" column="vip_id" />
 		<result property="freeConsume" column="free_consume" />
 		<result property="hisConsume" column="his_consume" />
-		<result property="consume" column="consume" />
-		<result property="cardCash" column="card_cash" />
-		<result property="projCash" column="proj_cash" />
 		<result property="goodsCash" column="goods_cash" />
 		<result property="projNum" column="proj_num" />
 		<result property="numberOfPeople" column="number_of_people" />
@@ -296,9 +328,10 @@
 		<result property="remark" column="remark" />
 		<result property="orderType" column="order_type" />
 		<result property="projPercentage" column="proj_percentage" />
+		<result property="payMethod" column="pay_method" />
 		<result property="t1" column="t1" />
 		<result property="t2" column="t2" />
-		<result property="t3" column="t3" />
+		<result property="achieveType" column="achieveType" />
 		<result property="t4" column="t4" />
 		<result property="t5" column="t5" />
 		<result property="t6" column="t6" />
@@ -321,9 +354,6 @@
 		vip_id,
 		free_consume,
 		his_consume,
-		consume,
-		card_cash,
-		proj_cash,
 		goods_cash,
 		proj_num,
 		number_of_people,
@@ -332,15 +362,17 @@
 		remark,
 		order_type,
 		proj_percentage,
+
 		t1,
 		t2,
-		t3,
+		achieveType,
 		t4,
 		t5,
 		t6,
 		t8,
 		t9,
-		company_id
+		company_id,
+pay_method
 	</sql>
 
 	<!-- 属性sql -->
@@ -357,9 +389,6 @@
 		#{item.vipId},
 		#{item.freeConsume},
 		#{item.hisConsume},
-		#{item.consume},
-		#{item.cardCash},
-		#{item.projCash},
 		#{item.goodsCash},
 		#{item.projNum},
 		#{item.numberOfPeople},
@@ -368,15 +397,17 @@
 		#{item.remark},
 		#{item.orderType},
 		#{item.projPercentage},
+
 		#{item.t1},
 		#{item.t2},
-		#{item.t3},
+		#{item.achieveType},
 		#{item.t4},
 		#{item.t5},
 		#{item.t6},
 		#{item.t8},
 		#{item.t9},
-		#{item.companyId}
+		#{item.companyId},
+		#{item.payMethod}
 	</sql>
 
 	<!-- where sql -->
@@ -384,130 +415,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.consume!=null and record.consume!='') or  (record.consume!='' and record.consume==0)  ">
-				and consume = #{record.consume}
-			</if>
-			<if
-				test="(record.cardCash!=null and record.cardCash!='') or  (record.cardCash!='' and record.cardCash==0)  ">
-				and card_cash = #{record.cardCash}
-			</if>
-			<if
-				test="(record.projCash!=null and record.projCash!='') or  (record.projCash!='' and record.projCash==0)  ">
-				and proj_cash = #{record.projCash}
-			</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.t3!=null and record.t3!='') or  (record.t3!='' and record.t3==0)  ">
-				and t3 = #{record.t3}
+					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>
@@ -516,7 +537,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>
 		)
@@ -534,7 +555,7 @@
 		)
 		VALUES
 		<foreach collection="list" item="item" index="index"
-			separator=",">
+				 separator=",">
 			(
 			<include refid="propertys"></include>
 			)
@@ -582,15 +603,9 @@
 			<if test="_parameter.containsKey('hisConsume')">
 				his_consume = #{hisConsume},
 			</if>
-			<if test="_parameter.containsKey('consume')">
-				consume = #{consume},
-			</if>
-			<if test="_parameter.containsKey('cardCash')">
-				card_cash = #{cardCash},
-			</if>
-			<if test="_parameter.containsKey('projCash')">
-				proj_cash = #{projCash},
-			</if>
+
+
+
 			<if test="_parameter.containsKey('goodsCash')">
 				goods_cash = #{goodsCash},
 			</if>
@@ -615,14 +630,15 @@
 			<if test="_parameter.containsKey('projPercentage')">
 				proj_percentage = #{projPercentage},
 			</if>
+
 			<if test="_parameter.containsKey('t1')">
 				t1 = #{t1},
 			</if>
 			<if test="_parameter.containsKey('t2')">
 				t2 = #{t2},
 			</if>
-			<if test="_parameter.containsKey('t3')">
-				t3 = #{t3},
+			<if test="_parameter.containsKey('achieveType')">
+				achieveType = #{achieveType},
 			</if>
 			<if test="_parameter.containsKey('t4')">
 				t4 = #{t4},
@@ -639,6 +655,9 @@
 			<if test="_parameter.containsKey('t9')">
 				t9 = #{t9},
 			</if>
+			<if test="_parameter.containsKey('payMethod')">
+				pay_method = #{payMethod},
+			</if>
 		</set>
 		WHERE id=#{id}
 	</update>
@@ -649,15 +668,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>
@@ -695,21 +714,14 @@
 				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 ">
 				his_consume = #{record.hisConsume},
 			</if>
-			<if test="record.consume != null ">
-				consume = #{record.consume},
-			</if>
-			<if test="record.cardCash != null ">
-				card_cash = #{record.cardCash},
-			</if>
-			<if test="record.projCash != null ">
-				proj_cash = #{record.projCash},
-			</if>
+
+
 			<if test="record.goodsCash != null ">
 				goods_cash = #{record.goodsCash},
 			</if>
@@ -734,14 +746,15 @@
 			<if test="record.projPercentage != null ">
 				proj_percentage = #{record.projPercentage},
 			</if>
+
 			<if test="record.t1 != null and record.t1 != '' ">
 				t1 = #{record.t1},
 			</if>
 			<if test="record.t2 != null and record.t2 != '' ">
 				t2 = #{record.t2},
 			</if>
-			<if test="record.t3 != null and record.t3 != '' ">
-				t3 = #{record.t3},
+			<if test="record.achieveType != null and record.achieveType != '' ">
+				achieveType = #{record.achieveType},
 			</if>
 			<if test="record.t4 != null and record.t4 != '' ">
 				t4 = #{record.t4},
@@ -758,6 +771,9 @@
 			<if test="record.t9 != null and record.t9 != '' ">
 				t9 = #{record.t9},
 			</if>
+			<if test="record.payMethod != null and record.payMethod != '' ">
+				pay_method = #{record.payMethod},
+			</if>
 		</set>
 		WHERE id=#{record.id}
 	</update>
@@ -766,7 +782,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>
@@ -782,6 +798,11 @@
 		DELETE FROM achieve_new
 		where 1=1
 		<include refid="where_sql"></include>
+	</delete>
+
+
+	<delete id="deleteByOrderId">
+		DELETE FROM achieve_new where order_id=#{orderId}
 	</delete>
 
 
@@ -807,7 +828,7 @@
 
 	<!-- 查询总条数 -->
 	<select id="selectTotalRecord"
-		resultType="java.lang.Integer">
+			resultType="java.lang.Integer">
 		select count(*)
 		from achieve_new
 		where 1=1
@@ -844,43 +865,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) + IFNULL(card_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 record.endTime!=null">
-			and date_format(b.datatime, '%Y-%m-%d') between #{record.beginTime} and #{record.endTime}
-		</if>
-
-		<if test="record.beaultId != null and record.beaultId!=''">
-			and FIND_IN_SET(#{record.beaultId}, a.BEATUY_ID)
-		</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
@@ -896,45 +918,279 @@
 	<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) + IFNULL(card_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 record.endTime!=null">
-			and date_format(b.datatime, '%Y-%m-%d') between #{record.beginTime} and #{record.endTime}
-		</if>
-
-		<if test="record.beaultId != null and record.beaultId!=''">
-			and FIND_IN_SET(#{record.beaultId}, a.BEATUY_ID)
-		</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
-			sum(IFNULL(proj_cash,0) + IFNULL(goods_cash,0) + IFNULL(card_cash,0)) allCash,
-			sum(card_cash) card,
-			sum(proj_cash) project,
-			sum(goods_cash) product,
-			sum(consume) cardUse,
-			sum(proj_percentage) projCommission
-		from achieve_new
-		where sale_id=#{userId}
-		and (date_format(datatime, "%Y-%m-%d") >= #{startTime} or #{endTime} >= date_format(datatime, "%Y-%m-%d"))
+			sale_id id,
+			(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 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,
+			sum(IFNULL(free_consume, 0)) freeConsume,
+			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'))
 	</select>
+
+	<select id="selectApiOrderItemAchieve" resultType="com.matrix.system.app.vo.OrderDetailAchieveItemVo">
+		select
+			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)
+		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
+		from achieve_new a
+		left join sys_shop_info b on a.shop_id=b.ID and b.shop_type!=1
+		<where>
+			<if test="record.companyId != null">
+				and a.company_id=#{record.companyId}
+			</if>
+			<if test='record.t1 == "1" and record.datatime != null'>
+				and date_format(datatime, '%Y-%m-%d') = date_format(#{record.datatime}, '%Y-%m-%d')
+			</if>
+			<if test='record.t1 == "2" and record.datatime != null'>
+				and date_format(datatime, '%Y-%m') = date_format(#{record.datatime}, '%Y-%m')
+			</if>
+			<if test='record.t1 == "3" and record.datatime != null'>
+				and date_format(datatime, '%Y') = date_format(#{record.datatime}, '%Y')
+			</if>
+		</where>
+		group by a.shop_id
+		order by amount desc, a.shop_id
+	</select>
+
+	<select id="selectBeauticianConsumeAchieveRanking" resultType="com.matrix.system.app.vo.RankingVo">
+		select
+		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
+		<where>
+			a.order_type='服务单'
+			<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')
+			</if>
+			<if test='record.t1 == "2" and record.datatime != null'>
+				and date_format(datatime, '%Y-%m') = date_format(#{record.datatime}, '%Y-%m')
+			</if>
+			<if test='record.t1 == "3" and record.datatime != null'>
+				and date_format(datatime, '%Y') = date_format(#{record.datatime}, '%Y')
+			</if>
+		</where>
+		group by a.beault_id
+		order by amount desc
+	</select>
+
+	<select id="selectOrderItemAchieveByOrderId" resultMap="AchieveNewMap">
+		select
+			a.*,
+			b.code goodsNo,
+			b.name goodsName,
+			c.su_name meiliao,
+			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
+		where a.order_id=#{orderId}
+	</select>
+
+	<select id="selectStaffSaleAchieveRanking" resultType="com.matrix.system.app.vo.RankingVo">
+		select
+		b.su_name name,
+		b.su_id id,
+		b.su_photo photo,
+		sum(ifnull(goods_cash,0)) amount,
+		c.shop_short_name shopName
+		from achieve_new a
+		inner join sys_users b on a.beault_id=b.su_id
+		inner join sys_shop_info c on a.SHOP_ID=c.ID
+		<where>
+			<if test="record.companyId != null">
+				and b.company_id=#{record.companyId}
+			</if>
+			<if test="record.shopId != null">
+				and b.shop_id=#{record.shopId}
+			</if>
+			<if test='record.type == "1" and record.datatime != null'>
+				and date_format(datatime, '%Y-%m-%d') = date_format(#{record.datatime}, '%Y-%m-%d')
+			</if>
+			<if test='record.type == "2" and record.datatime != null'>
+				and date_format(datatime, '%Y-%m') = date_format(#{record.datatime}, '%Y-%m')
+			</if>
+			<if test='record.type == "3" and record.datatime != null'>
+				and date_format(datatime, '%Y') = date_format(#{record.datatime}, '%Y')
+			</if>
+		</where>
+		group by b.su_id
+		order by amount desc, b.su_id
+	</select>
+
+	<select id="selectShopSaleAchieveRanking" resultType="com.matrix.system.app.vo.RankingVo">
+		select
+		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>
+		</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>
 </mapper>
\ No newline at end of file

--
Gitblit v1.9.1