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/hiveErp/dao/TjVipSumDao.java              |   10 ++
 zq-erp/src/main/java/com/matrix/system/app/action/ApiStatisticsAction.java       |   62 +++++++++++++-
 zq-erp/src/main/java/com/matrix/system/hiveErp/analysUtil/StatisticsParamVo.java |   16 ++++
 zq-erp/src/main/resources/mybatis/mapper/hive/TjVipSumDao.xml                    |  101 +++++++++++++++++++++++++
 4 files changed, 181 insertions(+), 8 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..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
@@ -17,6 +17,7 @@
 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;
@@ -68,13 +69,60 @@
 
     @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) {
+            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);
+                    }
+                }
+            });
+        }
     }
 
 }
diff --git a/zq-erp/src/main/java/com/matrix/system/hiveErp/analysUtil/StatisticsParamVo.java b/zq-erp/src/main/java/com/matrix/system/hiveErp/analysUtil/StatisticsParamVo.java
index 9ebb408..a4257a3 100644
--- a/zq-erp/src/main/java/com/matrix/system/hiveErp/analysUtil/StatisticsParamVo.java
+++ b/zq-erp/src/main/java/com/matrix/system/hiveErp/analysUtil/StatisticsParamVo.java
@@ -3,6 +3,8 @@
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 
+import javax.validation.constraints.NotBlank;
+
 /**
  * 统计查询条件
  * @author jyy
@@ -17,17 +19,20 @@
     /**
      * 开始时间
      */
+    @NotBlank(message = "参数错误")
     @ApiModelProperty(value = "开始时间", example = "2020-01")
     private String beginTime;
 
     /**
      *结束时间
      */
+    @NotBlank(message = "参数错误")
     @ApiModelProperty(value = "结束时间", example = "2020-12")
     private String endTime;
     /**
      *统计单位
      */
+    @NotBlank(message = "参数错误")
     @ApiModelProperty(value = "统计单位", example = "月")
     private String statisticsUnit;
 
@@ -42,6 +47,17 @@
     @ApiModelProperty(value = "门店ID, 不传默认统计整个公司")
     private Long shopId;
 
+    @ApiModelProperty(value = "类型 1-营业收入 2-现金收入 3-余额划扣 4-本金消耗 5-赠送消耗 6-现金退款 7-卡项退款 8-欠款")
+    private String type;
+
+    public String getType() {
+        return type;
+    }
+
+    public void setType(String type) {
+        this.type = type;
+    }
+
     public String getBeginTime() {
         return beginTime;
     }
diff --git a/zq-erp/src/main/java/com/matrix/system/hiveErp/dao/TjVipSumDao.java b/zq-erp/src/main/java/com/matrix/system/hiveErp/dao/TjVipSumDao.java
index 065a92d..9ccc077 100644
--- a/zq-erp/src/main/java/com/matrix/system/hiveErp/dao/TjVipSumDao.java
+++ b/zq-erp/src/main/java/com/matrix/system/hiveErp/dao/TjVipSumDao.java
@@ -19,4 +19,14 @@
 	Map<String, Integer> customerEnterRateCompare(@Param("list") List<StatisticsTimeDaoParam> timeSpaceParam, @Param("shopId") Long shopId);
 
 	Map<String, BigDecimal> selectBusinessInCome(@Param("list") List<StatisticsTimeDaoParam> timeSpaceParam, @Param("shopId") Long shopId, @Param("companyId") Long companyId);
+
+	Map<String, BigDecimal> selectCashIncome(@Param("list") List<StatisticsTimeDaoParam> timeSpaceParam, @Param("shopId") Long shopId, @Param("companyId") Long companyId);
+
+	Map<String, BigDecimal> selectCardUse(@Param("list") List<StatisticsTimeDaoParam> timeSpaceParam, @Param("shopId") Long shopId, @Param("companyId") Long companyId);
+
+	Map<String, BigDecimal> selectArrears(@Param("list") List<StatisticsTimeDaoParam> timeSpaceParam, @Param("shopId") Long shopId, @Param("companyId") Long companyId);
+
+	Map<String, BigDecimal> selectHisConsume(@Param("list") List<StatisticsTimeDaoParam> timeSpaceParam, @Param("shopId") Long shopId, @Param("companyId") Long companyId);
+
+	Map<String, BigDecimal> selectFreeConsume(@Param("list") List<StatisticsTimeDaoParam> timeSpaceParam, @Param("shopId") Long shopId, @Param("companyId") Long companyId);
 }
\ No newline at end of file
diff --git a/zq-erp/src/main/resources/mybatis/mapper/hive/TjVipSumDao.xml b/zq-erp/src/main/resources/mybatis/mapper/hive/TjVipSumDao.xml
index e3ac372..5c73b36 100644
--- a/zq-erp/src/main/resources/mybatis/mapper/hive/TjVipSumDao.xml
+++ b/zq-erp/src/main/resources/mybatis/mapper/hive/TjVipSumDao.xml
@@ -77,7 +77,7 @@
 			where STATU in ('已付款', '欠款')
 			and <![CDATA[order_time > #{item.beginTime}   and  order_time < #{item.endTime} ]]>
 			<if test="companyId != null and companyId != 0">
-				and company_id=17
+				and company_id=#{companyId}
 			</if>
 			<if test="shopId !=null and shopId !=0 " >
 				and SHOP_ID = #{shopId}
@@ -88,5 +88,104 @@
 		from area where id=1
 	</select>
 
+	<select id="selectCashIncome" resultType="java.util.TreeMap">
+		select
+		<foreach collection="list" index="index" item="item"   separator=","  >
+			(
+			select IFNULL(sum(cash_Pay), 0)
+			from sys_order
+			where STATU in ('已付款')
+			and <![CDATA[order_time > #{item.beginTime}   and  order_time < #{item.endTime} ]]>
+			<if test="companyId != null and companyId != 0">
+				and company_id=#{companyId}
+			</if>
+			<if test="shopId !=null and shopId !=0 " >
+				and SHOP_ID = #{shopId}
+			</if>
+			) as t${index}
+
+		</foreach>
+		from area where id=1
+	</select>
+
+	<select id="selectCardUse" resultType="java.util.TreeMap">
+		select
+		<foreach collection="list" index="index" item="item"   separator=","  >
+			(
+			select IFNULL(sum(card_Pay), 0)
+			from sys_order
+			where STATU in ('已付款')
+			and <![CDATA[order_time > #{item.beginTime}   and  order_time < #{item.endTime} ]]>
+			<if test="companyId != null and companyId != 0">
+				and company_id=#{companyId}
+			</if>
+			<if test="shopId !=null and shopId !=0 " >
+				and SHOP_ID = #{shopId}
+			</if>
+			) as t${index}
+
+		</foreach>
+		from area where id=1
+	</select>
+
+	<select id="selectArrears" resultType="java.util.TreeMap">
+		select
+		<foreach collection="list" index="index" item="item"   separator=","  >
+			(
+			select IFNULL(sum(card_Pay), 0)
+			from sys_order
+			where STATU in ('欠款')
+			and <![CDATA[order_time > #{item.beginTime}   and  order_time < #{item.endTime} ]]>
+			<if test="companyId != null and companyId != 0">
+				and company_id=#{companyId}
+			</if>
+			<if test="shopId !=null and shopId !=0 " >
+				and SHOP_ID = #{shopId}
+			</if>
+			) as t${index}
+
+		</foreach>
+		from area where id=1
+	</select>
+
+	<select id="selectHisConsume" resultType="java.util.TreeMap">
+		select
+		<foreach collection="list" index="index" item="item"   separator=","  >
+			(
+			select IFNULL(sum(his_consume), 0)
+			from achieve_new
+			where order_type in ('服务单')
+			and <![CDATA[datatime > #{item.beginTime}   and  datatime < #{item.endTime} ]]>
+			<if test="companyId != null and companyId != 0">
+				and company_id=#{companyId}
+			</if>
+			<if test="shopId !=null and shopId !=0 " >
+				and SHOP_ID = #{shopId}
+			</if>
+			) as t${index}
+
+		</foreach>
+		from area where id=1
+	</select>
+
+	<select id="selectFreeConsume" resultType="java.util.TreeMap">
+		select
+		<foreach collection="list" index="index" item="item"   separator=","  >
+			(
+			select IFNULL(sum(free_consume), 0)
+			from achieve_new
+			where order_type in ('服务单')
+			and <![CDATA[datatime > #{item.beginTime}   and  datatime < #{item.endTime} ]]>
+			<if test="companyId != null and companyId != 0">
+				and company_id=#{companyId}
+			</if>
+			<if test="shopId !=null and shopId !=0 " >
+				and SHOP_ID = #{shopId}
+			</if>
+			) as t${index}
+		</foreach>
+		from area where id=1
+	</select>
+
 </mapper>
 	

--
Gitblit v1.9.1