From 842544339b711daaaaa4e80455226f3a0aae12fe Mon Sep 17 00:00:00 2001 From: lijiarao Date: Fri, 2 Sep 2022 14:53:27 +0800 Subject: [PATCH] =?UTF-8?q?add=20=E9=A6=96=E9=A1=B5=E7=BB=9F=E8=AE=A1-?= =?UTF-8?q?=E3=80=8B=20=E6=94=B6=E5=85=A5=E5=88=86=E7=B1=BB=E7=BB=9F?= =?UTF-8?q?=E8=AE=A1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../jero/index/contoller/IndexController.java | 14 +++++++--- .../com/jero/index/service/IndexService.java | 26 ++++++++++++++++--- .../com/jero/index/vo/AmountClassDTO.java | 15 +++++++++++ .../java/com/jero/index/vo/PieChartVO.java | 19 ++++++++++++++ .../project/mapper/PayWorkingGroupMapper.java | 3 +++ .../mapper/xml/PayWorkingGroupMapper.xml | 11 ++++++++ 6 files changed, 81 insertions(+), 7 deletions(-) create mode 100644 jero-boot-incoming-payment/src/main/java/com/jero/index/vo/AmountClassDTO.java create mode 100644 jero-boot-incoming-payment/src/main/java/com/jero/index/vo/PieChartVO.java diff --git a/jero-boot-incoming-payment/src/main/java/com/jero/index/contoller/IndexController.java b/jero-boot-incoming-payment/src/main/java/com/jero/index/contoller/IndexController.java index e1de0629..f3ef28a3 100644 --- a/jero-boot-incoming-payment/src/main/java/com/jero/index/contoller/IndexController.java +++ b/jero-boot-incoming-payment/src/main/java/com/jero/index/contoller/IndexController.java @@ -1,10 +1,12 @@ package com.jero.index.contoller; import com.jero.common.api.vo.Result; +import com.jero.common.aspect.annotation.DictPoint; import com.jero.index.service.IndexService; import com.jero.index.vo.HistogramVO; import com.jero.index.vo.LineChartListVO; import com.jero.index.vo.LineChartVO; +import com.jero.index.vo.PieChartVO; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import lombok.extern.slf4j.Slf4j; @@ -62,16 +64,20 @@ public class IndexController { return Result.OK(histogramVOS); } + @DictPoint @ApiOperation(value = "总金额分类统计") @GetMapping(value = "/totalAmountClassificationStatistics") - public Result totalAmountClassificationStatistics() { - return Result.OK(); + public Result> totalAmountClassificationStatistics() { + List pieChartVOS = indexService.totalAmountClassificationStatistics("allMoney"); + return Result.OK(pieChartVOS); } + @DictPoint @ApiOperation(value = "收入分类统计") @GetMapping(value = "/incomeClassificationStatistics") - public Result incomeClassificationStatistics() { - return Result.OK(); + public Result> incomeClassificationStatistics() { + List pieChartVOS = indexService.totalAmountClassificationStatistics("confirmAmount"); + return Result.OK(pieChartVOS); } @ApiOperation(value = "前十统计") diff --git a/jero-boot-incoming-payment/src/main/java/com/jero/index/service/IndexService.java b/jero-boot-incoming-payment/src/main/java/com/jero/index/service/IndexService.java index 85fce3c0..d6ceae68 100644 --- a/jero-boot-incoming-payment/src/main/java/com/jero/index/service/IndexService.java +++ b/jero-boot-incoming-payment/src/main/java/com/jero/index/service/IndexService.java @@ -5,14 +5,15 @@ import com.google.common.collect.Lists; import cn.hutool.core.date.DateTime; import cn.hutool.core.date.DateUtil; -import com.jero.index.vo.HistogramVO; -import com.jero.index.vo.LineChartListVO; -import com.jero.index.vo.LineChartVO; +import com.jero.index.vo.*; +import com.jero.project.mapper.PayWorkingGroupMapper; import com.jero.project.service.IPayWorkingGroupService; import com.jero.statistics.entity.*; import org.springframework.stereotype.Service; import javax.annotation.Resource; +import java.math.BigDecimal; +import java.math.RoundingMode; import java.util.ArrayList; import java.util.List; import java.util.stream.Collectors; @@ -25,6 +26,8 @@ import java.util.stream.Collectors; public class IndexService { @Resource private IPayWorkingGroupService payWorkingGroupService; + @Resource + private PayWorkingGroupMapper payWorkingGroupMapper; public LineChartVO lineChart() { String year = String.valueOf(DateUtil.year(new DateTime())); @@ -204,4 +207,21 @@ public class IndexService { } + public List totalAmountClassificationStatistics(String column) { + String year = String.valueOf(DateUtil.year(new DateTime())); + List amountClassDTOS = payWorkingGroupMapper.amountClass(year,column); + BigDecimal all = amountClassDTOS.stream().map(AmountClassDTO::getMoney).reduce(BigDecimal.ZERO,BigDecimal::add); + List pieChartVOS = new ArrayList<>(); + for (AmountClassDTO amountClassDTO : amountClassDTOS) { + PieChartVO pieChartVO = new PieChartVO(); + pieChartVO.setName(amountClassDTO.getChargeUse()); + BigDecimal divide = amountClassDTO.getMoney() + .divide(all,3,RoundingMode.HALF_DOWN) + .multiply(new BigDecimal(100)) + .setScale(1, RoundingMode.UNNECESSARY); + pieChartVO.setValue(String.valueOf(divide)); + pieChartVOS.add(pieChartVO); + } + return pieChartVOS; + } } diff --git a/jero-boot-incoming-payment/src/main/java/com/jero/index/vo/AmountClassDTO.java b/jero-boot-incoming-payment/src/main/java/com/jero/index/vo/AmountClassDTO.java new file mode 100644 index 00000000..232bc430 --- /dev/null +++ b/jero-boot-incoming-payment/src/main/java/com/jero/index/vo/AmountClassDTO.java @@ -0,0 +1,15 @@ +package com.jero.index.vo; + +import lombok.Data; + +import java.math.BigDecimal; + +/** + * @author liJiaRao + * @date 2022-09-02 11:46 + */ +@Data +public class AmountClassDTO { + private String chargeUse; + private BigDecimal money; +} diff --git a/jero-boot-incoming-payment/src/main/java/com/jero/index/vo/PieChartVO.java b/jero-boot-incoming-payment/src/main/java/com/jero/index/vo/PieChartVO.java new file mode 100644 index 00000000..fe180064 --- /dev/null +++ b/jero-boot-incoming-payment/src/main/java/com/jero/index/vo/PieChartVO.java @@ -0,0 +1,19 @@ +package com.jero.index.vo; + +import com.jero.common.aspect.annotation.Dict; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import org.jeecgframework.poi.excel.annotation.Excel; + +/** + * @author liJiaRao + * @date 2022-09-02 11:30 + */ +@Data +public class PieChartVO { + @Dict(dicCode = "payment_charge_use") + @ApiModelProperty(value = "分类") + private String name; + @ApiModelProperty(value = "值") + private String value; +} diff --git a/jero-boot-incoming-payment/src/main/java/com/jero/project/mapper/PayWorkingGroupMapper.java b/jero-boot-incoming-payment/src/main/java/com/jero/project/mapper/PayWorkingGroupMapper.java index e53cab4e..789f7b14 100644 --- a/jero-boot-incoming-payment/src/main/java/com/jero/project/mapper/PayWorkingGroupMapper.java +++ b/jero-boot-incoming-payment/src/main/java/com/jero/project/mapper/PayWorkingGroupMapper.java @@ -2,6 +2,7 @@ package com.jero.project.mapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.jero.index.vo.AmountClassDTO; import com.jero.project.entity.PayWorkingGroupSearch; import com.jero.project.entity.PayWorkingGroupStatistics; import com.jero.project.vo.PayWorkingGroupVO; @@ -227,4 +228,6 @@ public interface PayWorkingGroupMapper extends BaseMapper { List cumulativeListAllProjectMoney(@Param(value = "allProjectStatisticsSearch") AllProjectStatisticsSearch allProjectStatisticsSearch); List cumulativeListAllMoney(@Param(value = "allProjectStatisticsSearch") AllProjectStatisticsSearch allProjectStatisticsSearch); + + List amountClass(@Param("year") String year, @Param("column") String column); } diff --git a/jero-boot-incoming-payment/src/main/java/com/jero/project/mapper/xml/PayWorkingGroupMapper.xml b/jero-boot-incoming-payment/src/main/java/com/jero/project/mapper/xml/PayWorkingGroupMapper.xml index c0c5e5f8..59647184 100644 --- a/jero-boot-incoming-payment/src/main/java/com/jero/project/mapper/xml/PayWorkingGroupMapper.xml +++ b/jero-boot-incoming-payment/src/main/java/com/jero/project/mapper/xml/PayWorkingGroupMapper.xml @@ -2310,4 +2310,15 @@ GROUP BY TMP1.paymentDate ORDER BY TMP1.paymentDate + +