wzy
2020-12-29 b90fe56ef4ac2f7f2645511eb9f06aa21bd9c7e3
modify
4 files modified
1 files added
139 ■■■■■ changed files
zq-erp/src/main/java/com/matrix/system/app/action/ApiStatisticsAction.java 42 ●●●●● patch | view | raw | blame | history
zq-erp/src/main/java/com/matrix/system/app/dto/BusinessesDto.java 34 ●●●●● patch | view | raw | blame | history
zq-erp/src/main/java/com/matrix/system/app/vo/BusinessesDataShowVo.java 10 ●●●● patch | view | raw | blame | history
zq-erp/src/main/java/com/matrix/system/hive/dao/SysBusinessDataDao.java 4 ●●● patch | view | raw | blame | history
zq-erp/src/main/resources/mybatis/mapper/hive/SysBusinessDataDao.xml 49 ●●●●● 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>