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