From dab14a0a568c91559bb0bcba28ec1bcd9f1b00e0 Mon Sep 17 00:00:00 2001
From: Helius <wangdoubleone@gmail.com>
Date: Wed, 30 Dec 2020 18:22:39 +0800
Subject: [PATCH] modify

---
 zq-erp/src/main/java/com/matrix/system/app/action/ApiStatisticsAction.java |   84 ++++++++++++++++++++++++++++++++++++++---
 1 files changed, 77 insertions(+), 7 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 60d4d22..4b50b34 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
@@ -9,6 +9,7 @@
 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.SeriesVo;
 import com.matrix.system.hiveErp.analysUtil.StatisticsParamVo;
 import com.matrix.system.hiveErp.analysUtil.StatisticsTimeDaoParam;
 import com.matrix.system.hiveErp.dao.TjVipSumDao;
@@ -17,9 +18,12 @@
 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.ArrayList;
+import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
 
@@ -66,15 +70,81 @@
         return AjaxResult.buildSuccessInstance(sysBusinessDataDao.selectApiBusinessDataInPage(sysBusinessData, pageVo), sysBusinessDataDao.selectApiBusinessDataTotal(sysBusinessData));
     }
 
-    @ApiOperation(value = "专项 - 营业收入", notes = "专项 - 营业收入")
+    @ApiOperation(value = "专项", notes = "专项")
     @PostMapping(value = "/findBusinessInCome")
-    public AjaxResult findBusinessInCome(@RequestBody StatisticsParamVo statisticsParam) {
-        return dataAnalysisCustomerService.getAnalysisResult(statisticsParam, new Caculate<BigDecimal>() {
-            @Override
-            public Map<String, BigDecimal> exec(List<StatisticsTimeDaoParam> timeSpaceParam, Long shopId, Long companyId) {
-                return tjVipSumDao.selectBusinessInCome(timeSpaceParam, shopId, null);
+    public AjaxResult findBusinessInCome(@RequestBody @Validated StatisticsParamVo statisticsParam) {
+        if (statisticsParam.getShopId() != null) {
+            AjaxResult ajaxResult = 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.selectCashRefund(timeSpaceParam, shopId, null);
+                        case "7" :
+                            return tjVipSumDao.selectCardRefund(timeSpaceParam, shopId, null);
+                        case "8" :
+                            return tjVipSumDao.selectArrears(timeSpaceParam, shopId, null);
+                        default :
+                            return tjVipSumDao.selectBusinessInCome(timeSpaceParam, shopId, null);
+                    }
+                }
+            });
+            return setDataList(ajaxResult);
+        } else {
+            AjaxResult ajaxResult = 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.selectCashRefund(timeSpaceParam, null, companyId);
+                        case "7" :
+                            return tjVipSumDao.selectCardRefund(timeSpaceParam, null, companyId);
+                        case "8" :
+                            return tjVipSumDao.selectArrears(timeSpaceParam, null, companyId);
+                        default :
+                            return tjVipSumDao.selectBusinessInCome(timeSpaceParam, null, companyId);
+                    }
+                }
+            });
+            return setDataList(ajaxResult);
+        }
+    }
+
+    private AjaxResult setDataList(AjaxResult ajaxResult) {
+        List<SeriesVo> list = (List<SeriesVo>) ajaxResult.getMapInfo().get("series");
+        String[] xAxis = (String[]) ajaxResult.getMapInfo().get("xAxis");
+        String [] data = list.get(0).getData();
+        if (data != null && data.length != 0) {
+            List<Map<String, String>> dataList = new ArrayList<>();
+            for(int i = data.length - 1; i >= 0; i--) {
+                Map<String, String> map = new HashMap<>();
+                map.put(xAxis[i], data[i]);
+                dataList.add(map);
             }
-        });
+            ajaxResult.setRows(dataList);
+        }
+
+        return ajaxResult;
     }
 
 }

--
Gitblit v1.9.1