From 9b55f87ffe20ff8069d8869ea0b43393af6303f0 Mon Sep 17 00:00:00 2001
From: Helius <wangdoubleone@gmail.com>
Date: Wed, 30 Dec 2020 16:52:32 +0800
Subject: [PATCH] modify

---
 zq-erp/src/main/java/com/matrix/system/app/action/ApiStatisticsAction.java |  120 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 120 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 34436ab..555340e 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,128 @@
 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 com.matrix.system.hive.service.imp.DataAnalysisCustomerServiceImpl;
+import com.matrix.system.hiveErp.analysUtil.Caculate;
+import com.matrix.system.hiveErp.analysUtil.StatisticsParamVo;
+import com.matrix.system.hiveErp.analysUtil.StatisticsTimeDaoParam;
+import com.matrix.system.hiveErp.dao.TjVipSumDao;
+import io.swagger.annotations.Api;
+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.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.*;
+
+import java.math.BigDecimal;
+import java.util.List;
+import java.util.Map;
+
 /**
  * @author wzy
  * @date 2020-12-28
  **/
+@Api(value = "ApiStatisticsAction", tags = "报表接口类")
+@RestController
+@RequestMapping(value = "/api/statistics")
 public class ApiStatisticsAction {
+
+    @Autowired
+    TjVipSumDao tjVipSumDao;
+
+    @Autowired
+    private SysBusinessDataDao sysBusinessDataDao;
+
+    @Autowired
+    private DataAnalysisCustomerServiceImpl dataAnalysisCustomerService;
+
+    @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));
+    }
+
+    @ApiOperation(value = "专项 - 营业收入", notes = "专项 - 营业收入")
+    @PostMapping(value = "/findBusinessInCome")
+    public AjaxResult findBusinessInCome(@RequestBody @Validated StatisticsParamVo statisticsParam) {
+        if (statisticsParam.getShopId() != null) {
+            return dataAnalysisCustomerService.getAnalysisResult(statisticsParam, new Caculate<BigDecimal>() {
+                @Override
+                public Map<String, BigDecimal> exec(List<StatisticsTimeDaoParam> timeSpaceParam, Long shopId, Long companyId) {
+                    switch (statisticsParam.getType()) {
+                        case "1" :
+                            return tjVipSumDao.selectBusinessInCome(timeSpaceParam, shopId, null);
+                        case "2" :
+                            return tjVipSumDao.selectCashIncome(timeSpaceParam, shopId, null);
+                        case "3" :
+                            return tjVipSumDao.selectCardUse(timeSpaceParam, shopId, null);
+                        case "4" :
+                            return tjVipSumDao.selectHisConsume(timeSpaceParam, shopId, null);
+                        case "5" :
+                            return tjVipSumDao.selectFreeConsume(timeSpaceParam, shopId, null);
+                        case "6" :
+                            return tjVipSumDao.selectBusinessInCome(timeSpaceParam, shopId, null);
+                        case "7" :
+                            return tjVipSumDao.selectBusinessInCome(timeSpaceParam, shopId, null);
+                        case "8" :
+                            return tjVipSumDao.selectArrears(timeSpaceParam, shopId, null);
+                        default :
+                            return tjVipSumDao.selectBusinessInCome(timeSpaceParam, shopId, null);
+                    }
+                }
+            });
+        } else {
+            return dataAnalysisCustomerService.getCompanyAnalysisResult(statisticsParam, new Caculate<BigDecimal>() {
+                @Override
+                public Map<String, BigDecimal> exec(List<StatisticsTimeDaoParam> timeSpaceParam, Long shopId, Long companyId) {
+                    switch (statisticsParam.getType()) {
+                        case "1" :
+                            return tjVipSumDao.selectBusinessInCome(timeSpaceParam, null, companyId);
+                        case "2" :
+                            return tjVipSumDao.selectCashIncome(timeSpaceParam, null, companyId);
+                        case "3" :
+                            return tjVipSumDao.selectCardUse(timeSpaceParam, null, companyId);
+                        case "4" :
+                            return tjVipSumDao.selectHisConsume(timeSpaceParam, null, companyId);
+                        case "5" :
+                            return tjVipSumDao.selectFreeConsume(timeSpaceParam, null, companyId);
+                        case "6" :
+                            return tjVipSumDao.selectBusinessInCome(timeSpaceParam, null, companyId);
+                        case "7" :
+                            return tjVipSumDao.selectBusinessInCome(timeSpaceParam, null, companyId);
+                        case "8" :
+                            return tjVipSumDao.selectArrears(timeSpaceParam, null, companyId);
+                        default :
+                            return tjVipSumDao.selectBusinessInCome(timeSpaceParam, null, companyId);
+                    }
+                }
+            });
+        }
+    }
+
 }

--
Gitblit v1.9.1