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); } 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); } 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); } } 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)); } } zq-erp/src/main/java/com/matrix/system/hive/vo/DailyBeautyListVo.java
New file @@ -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; } 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> 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();