From 984b853936786569eb70a0028569a10de217952f Mon Sep 17 00:00:00 2001
From: Helius <wangdoubleone@gmail.com>
Date: Thu, 11 Nov 2021 14:21:34 +0800
Subject: [PATCH] add daily-beauty-list
---
zq-erp/src/main/java/com/matrix/system/hive/statistics/AchieveAction.java | 15 +++
zq-erp/src/main/resources/templates/views/admin/hive/statistics/daily-beauty-list.html | 59 ++++++++++----
zq-erp/src/main/resources/mybatis/mapper/hive/AchieveNewDao.xml | 91 ++++++++++++++++++++++
zq-erp/src/main/java/com/matrix/system/hive/dao/AchieveNewDao.java | 4 +
zq-erp/src/main/java/com/matrix/system/hive/service/imp/AchieveNewServiceImpl.java | 11 ++
zq-erp/src/main/java/com/matrix/system/hive/vo/DailyBeautyListVo.java | 44 +++++++++++
zq-erp/src/main/java/com/matrix/system/hive/service/AchieveNewService.java | 4 +
7 files changed, 212 insertions(+), 16 deletions(-)
diff --git a/zq-erp/src/main/java/com/matrix/system/hive/dao/AchieveNewDao.java b/zq-erp/src/main/java/com/matrix/system/hive/dao/AchieveNewDao.java
index e0bcaa2..a1e0e1b 100644
--- a/zq-erp/src/main/java/com/matrix/system/hive/dao/AchieveNewDao.java
+++ b/zq-erp/src/main/java/com/matrix/system/hive/dao/AchieveNewDao.java
@@ -10,6 +10,7 @@
import com.matrix.system.hive.bean.AchieveNew;
import com.matrix.system.hive.dto.AchieveNewStatisticsDto;
import com.matrix.system.hive.vo.AchieveNewStatisticsVo;
+import com.matrix.system.hive.vo.DailyBeautyListVo;
import org.apache.ibatis.annotations.Param;
import java.util.ArrayList;
@@ -93,4 +94,7 @@
void setPayMethod(@Param("paymethod") String paymethod, @Param("list") ArrayList<Long> ids);
List<RankingVo> selectNumOfPeopleAchieveRanking(@Param("record") AchieveNew achieveNew);
+
+ List<DailyBeautyListVo> selectDailyBeautyList(@Param("record") AchieveNew achieveNew, @Param("pageVo") PaginationVO pageVo);
+ int selectDailyBeautyListTotal(@Param("record") AchieveNew achieveNew);
}
\ No newline at end of file
diff --git a/zq-erp/src/main/java/com/matrix/system/hive/service/AchieveNewService.java b/zq-erp/src/main/java/com/matrix/system/hive/service/AchieveNewService.java
index bdf9228..0698dac 100644
--- a/zq-erp/src/main/java/com/matrix/system/hive/service/AchieveNewService.java
+++ b/zq-erp/src/main/java/com/matrix/system/hive/service/AchieveNewService.java
@@ -6,6 +6,7 @@
import com.matrix.system.hive.bean.SysOrder;
import com.matrix.system.hive.bean.SysProjServices;
import com.matrix.system.hive.plugin.util.BaseServices;
+import com.matrix.system.hive.vo.DailyBeautyListVo;
import java.util.List;
import java.util.Map;
@@ -117,4 +118,7 @@
public List<AchieveNew> findOrderItemAchieve(Long orderid);
+ List<DailyBeautyListVo> findDailyBeautyList(AchieveNew achieveNew, PaginationVO pageVo);
+ int findDailyBeautyListTotal(AchieveNew achieveNew);
+
}
\ No newline at end of file
diff --git a/zq-erp/src/main/java/com/matrix/system/hive/service/imp/AchieveNewServiceImpl.java b/zq-erp/src/main/java/com/matrix/system/hive/service/imp/AchieveNewServiceImpl.java
index ff89cae..f7232e0 100644
--- a/zq-erp/src/main/java/com/matrix/system/hive/service/imp/AchieveNewServiceImpl.java
+++ b/zq-erp/src/main/java/com/matrix/system/hive/service/imp/AchieveNewServiceImpl.java
@@ -21,6 +21,7 @@
import com.matrix.system.hive.plugin.util.CollectionUtils;
import com.matrix.system.hive.service.AchieveNewService;
import com.matrix.system.hive.service.SysProjServicesService;
+import com.matrix.system.hive.vo.DailyBeautyListVo;
import com.matrix.system.hiveErp.pojo.AchieveRuleItem;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
@@ -469,4 +470,14 @@
public List<AchieveNew> findOrderItemAchieve(Long orderId) {
return achieveNewDao.selectOrderItemAchieveByOrderId(orderId);
}
+
+ @Override
+ public List<DailyBeautyListVo> findDailyBeautyList(AchieveNew achieveNew, PaginationVO pageVo) {
+ return achieveNewDao.selectDailyBeautyList(achieveNew, pageVo);
+ }
+
+ @Override
+ public int findDailyBeautyListTotal(AchieveNew achieveNew) {
+ return achieveNewDao.selectDailyBeautyListTotal(achieveNew);
+ }
}
\ No newline at end of file
diff --git a/zq-erp/src/main/java/com/matrix/system/hive/statistics/AchieveAction.java b/zq-erp/src/main/java/com/matrix/system/hive/statistics/AchieveAction.java
index 354a30d..9901970 100644
--- a/zq-erp/src/main/java/com/matrix/system/hive/statistics/AchieveAction.java
+++ b/zq-erp/src/main/java/com/matrix/system/hive/statistics/AchieveAction.java
@@ -272,5 +272,20 @@
}
}
+ @RequestMapping(value = "/findDailyBeautyList")
+ @ResponseBody
+ public AjaxResult findDailyBeautyList(@RequestBody AchieveNew achieveNew) {
+ SysUsers sysUsers = (SysUsers) WebUtil.getSession().getAttribute(MatrixConstance.LOGIN_KEY);
+ achieveNew.setCompanyId(sysUsers.getCompanyId());
+ if (!DataAuthUtil.hasAllShopAuth()) {
+ achieveNew.setShopId(sysUsers.getShopId());
+ }
+ PaginationVO pageVo = new PaginationVO();
+
+ pageVo.setOffset(achieveNew.getOffset());
+ pageVo.setLimit(achieveNew.getLimit());
+ return AjaxResult.buildSuccessInstance(achieveNewService.findDailyBeautyList(achieveNew, pageVo), achieveNewService.findDailyBeautyListTotal(achieveNew));
+ }
+
}
diff --git a/zq-erp/src/main/java/com/matrix/system/hive/vo/DailyBeautyListVo.java b/zq-erp/src/main/java/com/matrix/system/hive/vo/DailyBeautyListVo.java
new file mode 100644
index 0000000..f74f5bc
--- /dev/null
+++ b/zq-erp/src/main/java/com/matrix/system/hive/vo/DailyBeautyListVo.java
@@ -0,0 +1,44 @@
+package com.matrix.system.hive.vo;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import lombok.Data;
+
+import java.math.BigDecimal;
+import java.util.Date;
+
+@Data
+public class DailyBeautyListVo {
+
+ @JsonFormat(pattern = "yyyy-MM-dd", timezone="GMT+8")
+ private Date datatime;
+
+ private String beautyName;
+
+ private String vipName;
+
+ private int isAppoint;
+
+ private String arrivalWay;
+
+ private int orderCnt;
+
+ private int arriveCnt;
+
+ private String payMethods;
+
+ private BigDecimal teamPay;
+
+ private BigDecimal tcAndProjCash;
+
+ private BigDecimal productCash;
+
+ private BigDecimal cardCash;
+
+ private BigDecimal cardPay;
+
+ private BigDecimal consume;
+
+ private Integer projCnt;
+
+ private BigDecimal ticheng;
+}
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 ac64cfa..762117a 100644
--- a/zq-erp/src/main/resources/mybatis/mapper/hive/AchieveNewDao.xml
+++ b/zq-erp/src/main/resources/mybatis/mapper/hive/AchieveNewDao.xml
@@ -1239,4 +1239,95 @@
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-%d'))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,
+ 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 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
+ left join (
+ select x.vip_id, count(1) arriveCnt
+ from (
+ select vip_id, date_format(datatime, '%Y-%m-%d')
+ from achieve_new
+ where date_format(curdate(), '%Y-%m') = date_format(datatime, '%Y-%m')
+ group by date_format(datatime, '%Y-%m-%d'), vip_id
+ ) x group by x.vip_id
+ ) d on c.id=d.vip_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>
+ and date_format(b.datatime, '%Y-%m')=date_format(now(), '%Y-%m')
+ 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 a.company_id=#{record.companyId} and a.shop_id=#{record.shopId}
+ and date_format(b.datatime, '%Y-%m')=date_format(now(), '%Y-%m')
+ group by date_format(b.datatime, '%Y-%m-%d'), a.su_id, c.ID
+ ) a
+ </select>
</mapper>
\ No newline at end of file
diff --git a/zq-erp/src/main/resources/templates/views/admin/hive/statistics/daily-beauty-list.html b/zq-erp/src/main/resources/templates/views/admin/hive/statistics/daily-beauty-list.html
index 9e73633..96c526e 100644
--- a/zq-erp/src/main/resources/templates/views/admin/hive/statistics/daily-beauty-list.html
+++ b/zq-erp/src/main/resources/templates/views/admin/hive/statistics/daily-beauty-list.html
@@ -33,29 +33,39 @@
<el-table :data="tableData" style="width: 100%">
<el-table-column type="index" width="30" fixed="left"></el-table-column>
<el-table-column prop="datatime" width="150" label="时间" fixed="left"></el-table-column>
- <el-table-column prop="orderType" label="美疗师" fixed="left"></el-table-column>
- <el-table-column prop="orderType" label="客户" fixed="left"></el-table-column>
- <el-table-column prop="orderType" label="是否指定客" width="100"></el-table-column>
+ <el-table-column prop="beautyName" label="美疗师" fixed="left"></el-table-column>
+ <el-table-column prop="vipName" label="客户" fixed="left"></el-table-column>
+ <el-table-column prop="isAppoint" label="是否指定客" width="100">
+ <template slot-scope="scope">
+ <span v-if="scope.row.isAppoint ==1 ">是</span>
+ <span v-else>否</span>
+ </template>
+ </el-table-column>
<el-table-column label="客流">
- <el-table-column prop="orderType" label="是否会员"></el-table-column>
- <el-table-column prop="orderType" label="到店途径"></el-table-column>
- <el-table-column prop="orderType" label="当月到店次数" width="120"></el-table-column>
+ <el-table-column prop="orderCnt" label="是否会员">
+ <template slot-scope="scope">
+ <span v-if="scope.row.orderCnt > 0">是</span>
+ <span v-else>否</span>
+ </template>
+ </el-table-column>
+ <el-table-column prop="arrivalWay" label="到店途径"></el-table-column>
+ <el-table-column prop="arriveCnt" label="当月到店次数" width="120"></el-table-column>
</el-table-column>
<el-table-column label="实操业绩">
<el-table-column prop="orderType" label="项目->消耗产品" width="130"></el-table-column>
- <el-table-column prop="orderType" label="消费类型"></el-table-column>
- <el-table-column prop="orderType" label="项目数量"></el-table-column>
- <el-table-column prop="orderType" label="手工费"></el-table-column>
- <el-table-column prop="orderType" label="耗卡"></el-table-column>
+ <el-table-column prop="projCnt" label="项目数量"></el-table-column>
+ <el-table-column prop="ticheng" label="手工费"></el-table-column>
+ <el-table-column prop="consume" label="耗卡"></el-table-column>
</el-table-column>
<el-table-column label="现金业绩">
+ <el-table-column prop="payMethods" label="消费类型"></el-table-column>
<el-table-column prop="orderType" label="特色项目"></el-table-column>
- <el-table-column prop="orderType" label="团购销售"></el-table-column>
- <el-table-column prop="orderType" label="卡项销售"></el-table-column>
- <el-table-column prop="orderType" label="产品销售"></el-table-column>
- <el-table-column prop="orderType" label="会员充值"></el-table-column>
+ <el-table-column prop="teamPay" label="团购销售"></el-table-column>
+ <el-table-column prop="tcAndProjCash" label="卡项销售"></el-table-column>
+ <el-table-column prop="productCash" label="产品销售"></el-table-column>
+ <el-table-column prop="cardCash" label="会员充值"></el-table-column>
<el-table-column prop="orderType" label="总业绩"></el-table-column>
- <el-table-column prop="orderType" label="划卡"></el-table-column>
+ <el-table-column prop="cardPay" label="划卡"></el-table-column>
</el-table-column>
</el-table>
<el-row style="margin-top: 10px;">
@@ -88,9 +98,26 @@
}
},
created : function() {
-
+ this.queryTableData();
},
methods : {
+ queryTableData() {
+ let _this = this;
+ let params = {};
+ let page = _this.page;
+
+ params.limit = page.size;
+ params.offset = (page.currentPage - 1) * page.size;
+ AjaxProxy.requst({
+ app: _this,
+ data: params,
+ url: basePath + "/admin/achieve/findDailyBeautyList",
+ callback: function (loj) {
+ _this.tableData = loj.rows;
+ _this.page.total = loj.total;
+ }
+ });
+ },
handleSizeChange(val) {
this.page.size = val;
this.queryTableData();
--
Gitblit v1.9.1