From a330741b1ab67955217644c41d4ff38329f6c9b3 Mon Sep 17 00:00:00 2001 From: Helius <wangdoubleone@gmail.com> Date: Thu, 31 Dec 2020 14:52:49 +0800 Subject: [PATCH] modify --- zq-erp/src/main/java/com/matrix/system/hiveErp/dao/TjVipSumDao.java | 5 + zq-erp/src/main/java/com/matrix/system/app/action/ApiStatisticsAction.java | 31 ++++++ zq-erp/src/main/resources/mybatis/mapper/hive/TjVipSumDao.xml | 55 +++++++++++ zq-erp/src/main/java/com/matrix/system/app/dto/BusinessesDto.java | 11 ++ zq-erp/src/main/java/com/matrix/system/app/vo/VipAchieveDataShowVo.java | 147 +++++++++++++++++++++++++++++ 5 files changed, 249 insertions(+), 0 deletions(-) diff --git a/zq-erp/src/main/java/com/matrix/system/app/action/ApiStatisticsAction.java b/zq-erp/src/main/java/com/matrix/system/app/action/ApiStatisticsAction.java index 4b50b34..331a695 100644 --- a/zq-erp/src/main/java/com/matrix/system/app/action/ApiStatisticsAction.java +++ b/zq-erp/src/main/java/com/matrix/system/app/action/ApiStatisticsAction.java @@ -1,10 +1,14 @@ package com.matrix.system.app.action; +import com.matrix.core.constance.MatrixConstance; import com.matrix.core.pojo.AjaxResult; import com.matrix.core.pojo.PaginationVO; +import com.matrix.core.tools.WebUtil; import com.matrix.system.app.dto.BusinessesDto; import com.matrix.system.app.vo.BusinessesDataShowVo; +import com.matrix.system.common.bean.SysUsers; import com.matrix.system.hive.action.util.QueryUtil; +import com.matrix.system.hive.bean.AchieveNew; import com.matrix.system.hive.bean.SysBusinessData; import com.matrix.system.hive.dao.SysBusinessDataDao; import com.matrix.system.hive.service.imp.DataAnalysisCustomerServiceImpl; @@ -147,4 +151,31 @@ return ajaxResult; } + + @ApiOperation(value = "查询员工业绩报表", notes = "查询员工业绩报表") + @ApiResponses({ + @ApiResponse(code = 200, message = "ok", response = BusinessesDataShowVo.class) + }) + @PostMapping(value = "/findVipAchieve") + public AjaxResult findVipAchieve(@RequestBody BusinessesDto businessesDto) { + AchieveNew achieveNew = new AchieveNew(); + if (BusinessesDto.DAY.equals(businessesDto.getType())) { + achieveNew.setT1("%Y-%m-%d"); + } else { + achieveNew.setT1("%Y-%m"); + } + + SysUsers sysUsers = WebUtil.getSessionAttribute(MatrixConstance.LOGIN_KEY); + if (businessesDto.getStaffId() == null) { + + businessesDto.setStaffId(sysUsers.getSuId()); + } + achieveNew.setVipId(businessesDto.getStaffId()); + + PaginationVO pageVo = new PaginationVO(); + pageVo.setLimit(businessesDto.getPageSize()); + pageVo.setOffset((businessesDto.getPageNum() - 1) * businessesDto.getPageSize()); + return AjaxResult.buildSuccessInstance(tjVipSumDao.selectVipAchieveInPage(achieveNew, pageVo)); + } + } diff --git a/zq-erp/src/main/java/com/matrix/system/app/dto/BusinessesDto.java b/zq-erp/src/main/java/com/matrix/system/app/dto/BusinessesDto.java index 873261c..0e5cf41 100644 --- a/zq-erp/src/main/java/com/matrix/system/app/dto/BusinessesDto.java +++ b/zq-erp/src/main/java/com/matrix/system/app/dto/BusinessesDto.java @@ -16,6 +16,9 @@ @ApiModelProperty(value = "门店ID", example = "34") private Long shopId; + @ApiModelProperty(value = "会员ID") + private Long staffId; + public String getType() { return type; } @@ -31,4 +34,12 @@ public void setShopId(Long shopId) { this.shopId = shopId; } + + public Long getStaffId() { + return staffId; + } + + public void setStaffId(Long staffId) { + this.staffId = staffId; + } } diff --git a/zq-erp/src/main/java/com/matrix/system/app/vo/VipAchieveDataShowVo.java b/zq-erp/src/main/java/com/matrix/system/app/vo/VipAchieveDataShowVo.java new file mode 100644 index 0000000..d392636 --- /dev/null +++ b/zq-erp/src/main/java/com/matrix/system/app/vo/VipAchieveDataShowVo.java @@ -0,0 +1,147 @@ +package com.matrix.system.app.vo; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; + +import java.math.BigDecimal; + +/** + * @author wzy + * @date 2020-12-31 + **/ +@ApiModel(value = "VipAchieveDataShowVo", description = "员工业绩返回参数类") +public class VipAchieveDataShowVo { + + @ApiModelProperty(value = "时间") + private String time; + + @ApiModelProperty(value = "订单业绩") + private BigDecimal orderAmount; + + @ApiModelProperty(value = "现金业绩") + private BigDecimal cashAmount; + + @ApiModelProperty(value = "售卡业绩") + private BigDecimal cardAmount; + + @ApiModelProperty(value = "产品业绩") + private BigDecimal goodsAmount; + + @ApiModelProperty(value = "划扣业绩") + private BigDecimal cardUseAmount; + + @ApiModelProperty(value = "本金消耗") + private BigDecimal hisConsume; + + @ApiModelProperty(value = "赠送消耗") + private BigDecimal freeConsume; + + @ApiModelProperty(value = "提成") + private BigDecimal commission; + + @ApiModelProperty(value = "人头数") + private BigDecimal peopleNum; + + @ApiModelProperty(value = "项目数") + private Integer projNum; + + @ApiModelProperty(value = "服务时长") + private Integer serviceTime; + + + public String getTime() { + return time; + } + + public void setTime(String time) { + this.time = time; + } + + public BigDecimal getOrderAmount() { + return orderAmount; + } + + public void setOrderAmount(BigDecimal orderAmount) { + this.orderAmount = orderAmount; + } + + public BigDecimal getCashAmount() { + return cashAmount; + } + + public void setCashAmount(BigDecimal cashAmount) { + this.cashAmount = cashAmount; + } + + public BigDecimal getCardAmount() { + return cardAmount; + } + + public void setCardAmount(BigDecimal cardAmount) { + this.cardAmount = cardAmount; + } + + public BigDecimal getGoodsAmount() { + return goodsAmount; + } + + public void setGoodsAmount(BigDecimal goodsAmount) { + this.goodsAmount = goodsAmount; + } + + public BigDecimal getCardUseAmount() { + return cardUseAmount; + } + + public void setCardUseAmount(BigDecimal cardUseAmount) { + this.cardUseAmount = cardUseAmount; + } + + public BigDecimal getHisConsume() { + return hisConsume; + } + + public void setHisConsume(BigDecimal hisConsume) { + this.hisConsume = hisConsume; + } + + public BigDecimal getFreeConsume() { + return freeConsume; + } + + public void setFreeConsume(BigDecimal freeConsume) { + this.freeConsume = freeConsume; + } + + public BigDecimal getCommission() { + return commission; + } + + public void setCommission(BigDecimal commission) { + this.commission = commission; + } + + public BigDecimal getPeopleNum() { + return peopleNum; + } + + public void setPeopleNum(BigDecimal peopleNum) { + this.peopleNum = peopleNum; + } + + public Integer getProjNum() { + return projNum; + } + + public void setProjNum(Integer projNum) { + this.projNum = projNum; + } + + public Integer getServiceTime() { + return serviceTime; + } + + public void setServiceTime(Integer serviceTime) { + this.serviceTime = serviceTime; + } +} diff --git a/zq-erp/src/main/java/com/matrix/system/hiveErp/dao/TjVipSumDao.java b/zq-erp/src/main/java/com/matrix/system/hiveErp/dao/TjVipSumDao.java index 1e260ee..fb61fb0 100644 --- a/zq-erp/src/main/java/com/matrix/system/hiveErp/dao/TjVipSumDao.java +++ b/zq-erp/src/main/java/com/matrix/system/hiveErp/dao/TjVipSumDao.java @@ -1,6 +1,9 @@ package com.matrix.system.hiveErp.dao; +import com.matrix.core.pojo.PaginationVO; +import com.matrix.system.app.vo.VipAchieveDataShowVo; +import com.matrix.system.hive.bean.AchieveNew; import com.matrix.system.hiveErp.analysUtil.StatisticsTimeDaoParam; import org.apache.ibatis.annotations.Param; @@ -31,4 +34,6 @@ Map<String, BigDecimal> selectFreeConsume(@Param("list") List<StatisticsTimeDaoParam> timeSpaceParam, @Param("shopId") Long shopId, @Param("companyId") Long companyId); Map<String, BigDecimal> selectCardRefund(@Param("list") List<StatisticsTimeDaoParam> timeSpaceParam, @Param("shopId") Long shopId, @Param("companyId") Long companyId); Map<String, BigDecimal> selectCashRefund(@Param("list") List<StatisticsTimeDaoParam> timeSpaceParam, @Param("shopId") Long shopId, @Param("companyId") Long companyId); + + List<VipAchieveDataShowVo> selectVipAchieveInPage(@Param("record") AchieveNew achieveNew, @Param("pageVo") PaginationVO pageVo); } \ No newline at end of file diff --git a/zq-erp/src/main/resources/mybatis/mapper/hive/TjVipSumDao.xml b/zq-erp/src/main/resources/mybatis/mapper/hive/TjVipSumDao.xml index 2d1f072..02ff341 100644 --- a/zq-erp/src/main/resources/mybatis/mapper/hive/TjVipSumDao.xml +++ b/zq-erp/src/main/resources/mybatis/mapper/hive/TjVipSumDao.xml @@ -227,5 +227,60 @@ </foreach> from area where id=1 </select> + + <select id="selectVipAchieveInPage" resultType="com.matrix.system.app.vo.VipAchieveDataShowVo"> + select + date_format(a.datatime, #{record.t1}) time, + ROUND(sum(IFNULL(zk_total, 0)), 2) orderAmount, + ROUND(sum(IFNULL(proj_cash, 0)), 2) cashAmount, + ROUND(sum(IFNULL(card_cash, 0)), 2) cardAmount, + ROUND(sum(IFNULL(goods_cash, 0)), 2) goodsAmount, + ROUND(sum(IFNULL(consume, 0)), 2) cardUseAmount, + ROUND(sum(IFNULL(his_consume, 0)), 2) hisConsume, + ROUND(sum(IFNULL(free_consume, 0)), 2) freeConsume, + ROUND(sum(IFNULL(proj_percentage, 0)), 2) commission, + ROUND(sum(IFNULL(number_of_people, 0)), 2) peopleNum, + ROUND(sum(IFNULL(proj_num, 0)), 2) projNum, + ROUND(sum(IFNULL(proj_time, 0)), 2) serviceTime + from ( + select * from ( + select * from ( + select date_format(date_add(now(), INTERVAL -(@rowd := @rowd + 1) DAY), '%Y-%m-%d') datatime + from achieve_new a, (select @rowd := 0) t + ) a + ) a + left join ( + select + date_format(a.datatime, '%Y-%m-%d') datatime1, + SUM((IFNULL(a.card_cash,0) +IFNULL(a.proj_cash,0) + IFNULL(a.goods_cash,0))) as zk_total, + SUM(IFNULL(a.proj_cash,0)) proj_cash, + SUM(IFNULL(a.goods_cash, 0)) goods_cash, + SUM(IFNULL(a.card_cash,0)) card_cash, + SUM(IFNULL(a.consume, 0)) consume + from achieve_new a where a.sale_id=#{record.vipId} + group by date_format(a.datatime, '%Y-%m-%d') + ) b on a.datatime=b.datatime1 + left join ( + select + date_format(b.datatime, '%Y-%m-%d') datatime2, + SUM(IFNULL(b.his_consume, 0)) his_consume, + SUM(IFNULL(b.free_consume, 0)) free_consume, + SUM(IFNULL(b.proj_percentage, 0)) proj_percentage, + SUM(IFNULL(b.number_of_people, 0)) number_of_people, + SUM(IFNULL(b.proj_num, 0)) proj_num, + SUM(IFNULL(b.proj_time, 0)) proj_time + from achieve_new b where b.beault_id=#{record.vipId} + group by date_format(b.datatime, '%Y-%m-%d') + ) c on a.datatime=c.datatime2 + ) a + group by date_format(a.datatime, #{record.t1}) + order by a.datatime desc + <if test="pageVo !=null"><!-- 判断pageVo对象是否为空 --> + <if test="pageVo.offset >=0 and pageVo.limit >0"> + limit + #{pageVo.offset},#{pageVo.limit} + </if> + </if> + </select> </mapper> -- Gitblit v1.9.1