zq-erp/src/main/java/com/matrix/system/app/action/ApiStatisticsAction.java | ●●●●● patch | view | raw | blame | history | |
zq-erp/src/main/java/com/matrix/system/app/dto/BusinessesDto.java | ●●●●● patch | view | raw | blame | history | |
zq-erp/src/main/java/com/matrix/system/app/vo/BusinessesDataShowVo.java | ●●●●● patch | view | raw | blame | history | |
zq-erp/src/main/java/com/matrix/system/hive/dao/SysBusinessDataDao.java | ●●●●● patch | view | raw | blame | history | |
zq-erp/src/main/resources/mybatis/mapper/hive/SysBusinessDataDao.xml | ●●●●● patch | view | raw | blame | history |
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)); } } zq-erp/src/main/java/com/matrix/system/app/dto/BusinessesDto.java
New file @@ -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; } } 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() { 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); } 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>