From b90fe56ef4ac2f7f2645511eb9f06aa21bd9c7e3 Mon Sep 17 00:00:00 2001 From: wzy <wzy19931122ai@163.com> Date: Tue, 29 Dec 2020 22:50:44 +0800 Subject: [PATCH] modify --- zq-erp/src/main/java/com/matrix/system/app/action/ApiStatisticsAction.java | 42 +++++++++++++ zq-erp/src/main/java/com/matrix/system/app/vo/BusinessesDataShowVo.java | 10 +- zq-erp/src/main/java/com/matrix/system/app/dto/BusinessesDto.java | 34 +++++++++++ zq-erp/src/main/java/com/matrix/system/hive/dao/SysBusinessDataDao.java | 4 + zq-erp/src/main/resources/mybatis/mapper/hive/SysBusinessDataDao.xml | 49 ++++++++++++++++ 5 files changed, 130 insertions(+), 9 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 458e129..0690c32 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,8 +1,18 @@ package com.matrix.system.app.action; +import com.matrix.core.pojo.AjaxResult; +import com.matrix.core.pojo.PaginationVO; +import com.matrix.system.app.dto.BusinessesDto; +import com.matrix.system.app.vo.BusinessesDataShowVo; +import com.matrix.system.hive.action.util.QueryUtil; +import com.matrix.system.hive.bean.SysBusinessData; +import com.matrix.system.hive.dao.SysBusinessDataDao; import io.swagger.annotations.Api; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; +import io.swagger.annotations.ApiOperation; +import io.swagger.annotations.ApiResponse; +import io.swagger.annotations.ApiResponses; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.*; /** * @author wzy @@ -12,4 +22,32 @@ @RestController @RequestMapping(value = "/api/statistics") public class ApiStatisticsAction { + + @Autowired + private SysBusinessDataDao sysBusinessDataDao; + + @ApiOperation(value = "公司经营报表/门店经营报表") + @ApiResponses({ + @ApiResponse(code = 200, message = "ok", response = BusinessesDataShowVo.class) + }) + @PostMapping(value = "/findShopBusinessesData") + public AjaxResult findShopBusinessesData(@RequestBody BusinessesDto businessesDto) { + SysBusinessData sysBusinessData = new SysBusinessData(); + // 若shopId为空,则查询门店经营报表 + if (businessesDto.getShopId() == null) { + sysBusinessData.setShopId(businessesDto.getShopId()); + } + QueryUtil.setQueryLimitCom(sysBusinessData); + + if (BusinessesDto.DAY.equals(businessesDto.getType())) { + sysBusinessData.setT1("%Y-%m-%d"); + } else { + sysBusinessData.setT1("%Y-%m"); + } + PaginationVO pageVo = new PaginationVO(); + pageVo.setOffset((businessesDto.getPageNum() - 1) * businessesDto.getPageSize()); + pageVo.setLimit(businessesDto.getPageSize()); + + return AjaxResult.buildSuccessInstance(sysBusinessDataDao.selectApiBusinessDataInPage(sysBusinessData, pageVo), sysBusinessDataDao.selectApiBusinessDataTotal(sysBusinessData)); + } } 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 new file mode 100644 index 0000000..873261c --- /dev/null +++ b/zq-erp/src/main/java/com/matrix/system/app/dto/BusinessesDto.java @@ -0,0 +1,34 @@ +package com.matrix.system.app.dto; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; + +@ApiModel(value = "BusinessesDto", description = "门店/公司报表参数接受类") +public class BusinessesDto extends BasePageDto{ + + public static final String DAY = "1"; + + public static final String MONTH = "2"; + + @ApiModelProperty(value = "type 1-每日 2-每月", example = "1") + private String type; + + @ApiModelProperty(value = "门店ID", example = "34") + private Long shopId; + + public String getType() { + return type; + } + + public void setType(String type) { + this.type = type; + } + + public Long getShopId() { + return shopId; + } + + public void setShopId(Long shopId) { + this.shopId = shopId; + } +} diff --git a/zq-erp/src/main/java/com/matrix/system/app/vo/BusinessesDataShowVo.java b/zq-erp/src/main/java/com/matrix/system/app/vo/BusinessesDataShowVo.java index 91ddd37..f47b02e 100644 --- a/zq-erp/src/main/java/com/matrix/system/app/vo/BusinessesDataShowVo.java +++ b/zq-erp/src/main/java/com/matrix/system/app/vo/BusinessesDataShowVo.java @@ -11,7 +11,7 @@ public class BusinessesDataShowVo { @ApiModelProperty(value = "时间") - private String time; + private String dataTime; @ApiModelProperty(value = "营业收入") private String totalPay; @@ -37,12 +37,12 @@ @ApiModelProperty(value = "卡项退款") private String refundCardPay; - public String getTime() { - return time; + public String getDataTime() { + return dataTime; } - public void setTime(String time) { - this.time = time; + public void setDataTime(String dataTime) { + this.dataTime = dataTime; } public String getTotalPay() { diff --git a/zq-erp/src/main/java/com/matrix/system/hive/dao/SysBusinessDataDao.java b/zq-erp/src/main/java/com/matrix/system/hive/dao/SysBusinessDataDao.java index dda7702..0aefeb4 100644 --- a/zq-erp/src/main/java/com/matrix/system/hive/dao/SysBusinessDataDao.java +++ b/zq-erp/src/main/java/com/matrix/system/hive/dao/SysBusinessDataDao.java @@ -46,6 +46,8 @@ public SysBusinessData selectForUpdate(Integer id); - List<BusinessesDataShowVo> selectApiBusinessDataInPage(SysBusinessData data, PaginationVO pageVo); + List<BusinessesDataShowVo> selectApiBusinessDataInPage(@Param("record") SysBusinessData data,@Param("pageVo") PaginationVO pageVo); + + int selectApiBusinessDataTotal(@Param("record") SysBusinessData data); } \ No newline at end of file diff --git a/zq-erp/src/main/resources/mybatis/mapper/hive/SysBusinessDataDao.xml b/zq-erp/src/main/resources/mybatis/mapper/hive/SysBusinessDataDao.xml index 5b0e697..74da875 100644 --- a/zq-erp/src/main/resources/mybatis/mapper/hive/SysBusinessDataDao.xml +++ b/zq-erp/src/main/resources/mybatis/mapper/hive/SysBusinessDataDao.xml @@ -535,7 +535,7 @@ <select id="selectApiBusinessDataInPage" resultType="com.matrix.system.app.vo.BusinessesDataShowVo"> select - date_format(a.time, #{record.t1}), + date_format(a.time, #{record.t1}) dataTime, sum(cashPay + cardPay + arrearsPay) totalPay, sum(cashPay) cashPay, sum(cardPay) cardPay, @@ -569,6 +569,53 @@ </where> group by date_format(a.time, #{record.t1}) order by a.time desc + <if test="pageVo !=null"><!-- 判断pageVo对象是否为空 --> + <if test="pageVo.offset >=0 and pageVo.limit >0"> + limit + #{pageVo.offset},#{pageVo.limit} + </if> + </if> </select> + <select id="selectApiBusinessDataTotal" resultType="java.lang.Integer"> + select + count(1) + from ( + select + date_format(a.time, #{record.t1}) dataTime, + sum(cashPay + cardPay + arrearsPay) totalPay, + sum(cashPay) cashPay, + sum(cardPay) cardPay, + sum(arrearsPay) arrearsPay, + sum(freeConsumePay) freeConsumePay, + sum(consumePay) consumePay, + sum(refundCardPay) refundCardPay, + sum(refundCashPay) refundCashPay + from ( + select + company_id, + shop_id, + a.time, + MAX(CASE code WHEN 'cashPay' THEN value ELSE 0 END) cashPay, + MAX(CASE code WHEN 'cardPay' THEN value ELSE 0 END) cardPay, + MAX(CASE code WHEN 'arrearsPay' THEN value ELSE 0 END) arrearsPay, + MAX(CASE code WHEN 'freeConsumePay' THEN value ELSE 0 END) freeConsumePay, + MAX(CASE code WHEN 'consumePay' THEN value ELSE 0 END) consumePay, + MAX(CASE code WHEN 'refundCashPay' THEN ABS(value) ELSE 0 END) refundCashPay, + MAX(CASE code WHEN 'refundCardPay' THEN ABS(value) ELSE 0 END) refundCardPay + from sys_business_data a + group by a.time, company_id, shop_id + ) a + <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> + </where> + group by date_format(a.time, #{record.t1}) + order by a.time desc + ) a + </select> </mapper> \ No newline at end of file -- Gitblit v1.9.1