From ff225eded880cea74563368c8c18483efc85ab28 Mon Sep 17 00:00:00 2001
From: shiyunteng <shiyunteng@example.com>
Date: 星期五, 22 五月 2026 17:29:36 +0800
Subject: [PATCH] feat:统计相关接口
---
platformx-business-finance-biz/src/main/java/com/by4cloud/platformx/business/service/impl/StatisticServiceImpl.java | 287 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 287 insertions(+), 0 deletions(-)
diff --git a/platformx-business-finance-biz/src/main/java/com/by4cloud/platformx/business/service/impl/StatisticServiceImpl.java b/platformx-business-finance-biz/src/main/java/com/by4cloud/platformx/business/service/impl/StatisticServiceImpl.java
new file mode 100644
index 0000000..dfecfbd
--- /dev/null
+++ b/platformx-business-finance-biz/src/main/java/com/by4cloud/platformx/business/service/impl/StatisticServiceImpl.java
@@ -0,0 +1,287 @@
+package com.by4cloud.platformx.business.service.impl;
+
+import cn.hutool.core.bean.BeanUtil;
+import cn.hutool.core.util.ArrayUtil;
+import cn.hutool.core.util.StrUtil;
+import com.by4cloud.platformx.admin.api.entity.SysDept;
+import com.by4cloud.platformx.admin.api.entity.SysDictItem;
+import com.by4cloud.platformx.admin.api.feign.RemoteDeptService;
+import com.by4cloud.platformx.admin.api.feign.RemoteDictService;
+import com.by4cloud.platformx.business.dto.AnalysisCommonDTO;
+import com.by4cloud.platformx.business.mapper.ContractMapper;
+import com.by4cloud.platformx.business.service.StatisticService;
+import com.by4cloud.platformx.business.vo.*;
+import com.by4cloud.platformx.common.core.util.R;
+import com.by4cloud.platformx.common.security.util.SecurityUtils;
+import lombok.RequiredArgsConstructor;
+import org.springframework.beans.BeanUtils;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.stereotype.Service;
+
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.List;
+import java.util.Map;
+import java.util.stream.Collectors;
+import java.util.stream.Stream;
+
+@Service
+@RequiredArgsConstructor
+public class StatisticServiceImpl implements StatisticService {
+
+ private final ContractMapper contractMapper;
+ private final RemoteDeptService remoteDeptService;
+ private final RemoteDictService remoteDictService;
+
+ @Value("${dept.smj}")
+ private String smj;
+
+ @Value("${dept.sgb}")
+ private String sgb;
+
+ @Value("${dept.jxc}")
+ private String jxc;
+
+ @Value("${dept.tfgs}")
+ private String tfgs;
+
+ @Value("${dept.ymj}")
+ private String ymj;
+
+ @Override
+ public R contractAmountAnalysis(AnalysisCommonDTO commonDTO) {
+ List<Long> compIds = new ArrayList<>();
+ compIds.add(Long.valueOf(sgb));
+ compIds.add(Long.valueOf(smj));
+ compIds.add(Long.valueOf(tfgs));
+ compIds.add(Long.valueOf(ymj));
+ compIds.add(Long.valueOf(jxc));
+ List<ContractAmountAnalysisVo> contractAmountAnalysisVoList = contractMapper.contractAmountAnalysis(commonDTO,compIds);
+ return R.ok(contractAmountAnalysisVoList);
+ }
+
+ @Override
+ public R contractAmountAnalysisByComp(AnalysisCommonDTO commonDTO) {
+ List<ContractAmountAnalysisCompVo> contractIncomeAnalysisVoList = contractMapper.contractAmountAnalysisByComp(commonDTO, SecurityUtils.getUser().getCompId());
+ return R.ok(contractIncomeAnalysisVoList);
+ }
+
+ @Override
+ public R contractIncomeAnalysis(AnalysisCommonDTO commonDTO) {
+ List<Long> compIds = new ArrayList<>();
+ compIds.add(Long.valueOf(sgb));
+ compIds.add(Long.valueOf(smj));
+ compIds.add(Long.valueOf(tfgs));
+ compIds.add(Long.valueOf(ymj));
+ compIds.add(Long.valueOf(jxc));
+ List<ContractIncomeAnalysisVo> contractIncomeAnalysisVoList = contractMapper.contractIncomeAnalysis(commonDTO,compIds);
+ return R.ok(contractIncomeAnalysisVoList);
+ }
+
+ @Override
+ public R contractIncomeAnalysisByComp(AnalysisCommonDTO commonDTO) {
+ List<ContractIncomeAnalysisCompVo> contractIncomeAnalysisVoList = contractMapper.contractIncomeAnalysisByComp(commonDTO, SecurityUtils.getUser().getCompId());
+ return R.ok(contractIncomeAnalysisVoList);
+ }
+
+ @Override
+ public R contractAmountAnalysisByArea(AnalysisCommonDTO commonDTO) {
+ R<List<SysDictItem>> r = remoteDictService.getDictByType("company_area");
+ List<SysDictItem> items = r.getData();
+ if (ArrayUtil.isEmpty(items.toArray())){
+ return R.failed("鍖哄煙瀛楁鑾峰彇寮傚父");
+ }
+ List<Long> compIds = new ArrayList<>();
+ compIds.add(Long.valueOf(sgb));
+ compIds.add(Long.valueOf(smj));
+ compIds.add(Long.valueOf(tfgs));
+ compIds.add(Long.valueOf(ymj));
+ compIds.add(Long.valueOf(jxc));
+ List<ContractIncomeAnalysisAreaVo> contractIncomeAnalysisVoList = items.stream().map(item -> {
+ ContractIncomeAnalysisAreaVo analysisAreaVo = new ContractIncomeAnalysisAreaVo();
+ analysisAreaVo.setAreaId(item.getItemValue());
+ analysisAreaVo.setAreaName(item.getLabel());
+ return analysisAreaVo;
+ }).collect(Collectors.toList());
+ List<ContractIncomeAnalysisAreaVo> statisticList = contractMapper.contractAmountAnalysisByArea(commonDTO
+ ,compIds,Long.valueOf(smj),Long.valueOf(sgb),Long.valueOf(jxc),Long.valueOf(tfgs),Long.valueOf(ymj));
+ contractIncomeAnalysisVoList.stream().forEach(vo1->{
+ statisticList.stream().forEach(vo2->{
+ if (StrUtil.equals(vo1.getAreaId(),vo2.getAreaId())){
+ vo1.setJxczb(vo2.getJxczb());
+ vo1.setJxcze(vo2.getJxcze());
+ vo1.setSgbzb(vo2.getSgbzb());
+ vo1.setSgbze(vo2.getSgbze());
+ vo1.setSmjzb(vo2.getSmjzb());
+ vo1.setSmjze(vo2.getSmjze());
+ vo1.setTfzb(vo2.getTfzb());
+ vo1.setTfze(vo2.getTfze());
+ vo1.setYmjzb(vo2.getYmjzb());
+ vo1.setYmjze(vo2.getYmjze());
+ }
+ });
+ });
+ return R.ok(contractIncomeAnalysisVoList);
+ }
+
+ @Override
+ public R contractAmountAnalysisByIndustry(AnalysisCommonDTO commonDTO) {
+ R<List<SysDictItem>> r = remoteDictService.getDictByType("industry_sector");
+ List<SysDictItem> items = r.getData();
+ if (ArrayUtil.isEmpty(items.toArray())){
+ return R.failed("鍖哄煙瀛楁鑾峰彇寮傚父");
+ }
+ List<Long> compIds = new ArrayList<>();
+ compIds.add(Long.valueOf(sgb));
+ compIds.add(Long.valueOf(smj));
+ compIds.add(Long.valueOf(tfgs));
+ compIds.add(Long.valueOf(ymj));
+ compIds.add(Long.valueOf(jxc));
+ List<ContractIncomeAnalysisAreaVo> contractIncomeAnalysisVoList = items.stream().map(item -> {
+ ContractIncomeAnalysisAreaVo analysisAreaVo = new ContractIncomeAnalysisAreaVo();
+ analysisAreaVo.setAreaId(item.getItemValue());
+ analysisAreaVo.setAreaName(item.getLabel());
+ return analysisAreaVo;
+ }).collect(Collectors.toList());
+ List<ContractIncomeAnalysisAreaVo> statisticList = contractMapper.contractAmountAnalysisByIndustry(commonDTO
+ ,compIds,Long.valueOf(smj),Long.valueOf(sgb),Long.valueOf(jxc),Long.valueOf(tfgs),Long.valueOf(ymj));
+ contractIncomeAnalysisVoList.stream().forEach(vo1->{
+ statisticList.stream().forEach(vo2->{
+ if (StrUtil.equals(vo1.getAreaId(),vo2.getAreaId())){
+ vo1.setJxczb(vo2.getJxczb());
+ vo1.setJxcze(vo2.getJxcze());
+ vo1.setSgbzb(vo2.getSgbzb());
+ vo1.setSgbze(vo2.getSgbze());
+ vo1.setSmjzb(vo2.getSmjzb());
+ vo1.setSmjze(vo2.getSmjze());
+ vo1.setTfzb(vo2.getTfzb());
+ vo1.setTfze(vo2.getTfze());
+ vo1.setYmjzb(vo2.getYmjzb());
+ vo1.setYmjze(vo2.getYmjze());
+ }
+ });
+ });
+ return R.ok(contractIncomeAnalysisVoList);
+ }
+
+ @Override
+ public R contractAmountAnalysisByMarket(AnalysisCommonDTO commonDTO) {
+ R<List<SysDictItem>> r = remoteDictService.getDictByType("market_type");
+ List<SysDictItem> items = r.getData();
+ if (ArrayUtil.isEmpty(items.toArray())){
+ return R.failed("鍖哄煙瀛楁鑾峰彇寮傚父");
+ }
+ List<Long> compIds = new ArrayList<>();
+ compIds.add(Long.valueOf(sgb));
+ compIds.add(Long.valueOf(smj));
+ compIds.add(Long.valueOf(tfgs));
+ compIds.add(Long.valueOf(ymj));
+ compIds.add(Long.valueOf(jxc));
+ List<ContractIncomeAnalysisAreaVo> contractIncomeAnalysisVoList = items.stream().map(item -> {
+ ContractIncomeAnalysisAreaVo analysisAreaVo = new ContractIncomeAnalysisAreaVo();
+ analysisAreaVo.setAreaId(item.getItemValue());
+ analysisAreaVo.setAreaName(item.getLabel());
+ return analysisAreaVo;
+ }).collect(Collectors.toList());
+ List<ContractIncomeAnalysisAreaVo> statisticList = contractMapper.contractAmountAnalysisByMarket(commonDTO
+ ,compIds,Long.valueOf(smj),Long.valueOf(sgb),Long.valueOf(jxc),Long.valueOf(tfgs),Long.valueOf(ymj));
+ contractIncomeAnalysisVoList.stream().forEach(vo1->{
+ statisticList.stream().forEach(vo2->{
+ if (StrUtil.equals(vo1.getAreaId(),vo2.getAreaId())){
+ vo1.setJxczb(vo2.getJxczb());
+ vo1.setJxcze(vo2.getJxcze());
+ vo1.setSgbzb(vo2.getSgbzb());
+ vo1.setSgbze(vo2.getSgbze());
+ vo1.setSmjzb(vo2.getSmjzb());
+ vo1.setSmjze(vo2.getSmjze());
+ vo1.setTfzb(vo2.getTfzb());
+ vo1.setTfze(vo2.getTfze());
+ vo1.setYmjzb(vo2.getYmjzb());
+ vo1.setYmjze(vo2.getYmjze());
+ }
+ });
+ });
+ return R.ok(contractIncomeAnalysisVoList);
+ }
+
+ @Override
+ public R contractAmountAnalysisBySpcBus(AnalysisCommonDTO commonDTO) {
+ R<List<SysDictItem>> r = remoteDictService.getDictByType("supply_attribute");
+ List<SysDictItem> items = r.getData();
+ if (ArrayUtil.isEmpty(items.toArray())){
+ return R.failed("鍖哄煙瀛楁鑾峰彇寮傚父");
+ }
+ List<Long> compIds = new ArrayList<>();
+ compIds.add(Long.valueOf(sgb));
+ compIds.add(Long.valueOf(smj));
+ compIds.add(Long.valueOf(tfgs));
+ compIds.add(Long.valueOf(ymj));
+ compIds.add(Long.valueOf(jxc));
+ List<ContractIncomeAnalysisAreaVo> contractIncomeAnalysisVoList = items.stream().map(item -> {
+ ContractIncomeAnalysisAreaVo analysisAreaVo = new ContractIncomeAnalysisAreaVo();
+ analysisAreaVo.setAreaId(item.getItemValue());
+ analysisAreaVo.setAreaName(item.getLabel());
+ return analysisAreaVo;
+ }).collect(Collectors.toList());
+ List<ContractIncomeAnalysisAreaVo> statisticList = contractMapper.contractAmountAnalysisBySpcBus(commonDTO
+ ,compIds,Long.valueOf(smj),Long.valueOf(sgb),Long.valueOf(jxc),Long.valueOf(tfgs),Long.valueOf(ymj));
+ contractIncomeAnalysisVoList.stream().forEach(vo1->{
+ statisticList.stream().forEach(vo2->{
+ if (StrUtil.equals(vo1.getAreaId(),vo2.getAreaId())){
+ vo1.setJxczb(vo2.getJxczb());
+ vo1.setJxcze(vo2.getJxcze());
+ vo1.setSgbzb(vo2.getSgbzb());
+ vo1.setSgbze(vo2.getSgbze());
+ vo1.setSmjzb(vo2.getSmjzb());
+ vo1.setSmjze(vo2.getSmjze());
+ vo1.setTfzb(vo2.getTfzb());
+ vo1.setTfze(vo2.getTfze());
+ vo1.setYmjzb(vo2.getYmjzb());
+ vo1.setYmjze(vo2.getYmjze());
+ }
+ });
+ });
+ return R.ok(contractIncomeAnalysisVoList);
+ }
+
+ @Override
+ public R contractAmountAnalysisByExportBus(AnalysisCommonDTO commonDTO) {
+ R<List<SysDictItem>> r = remoteDictService.getDictByType("export_attr");
+ List<SysDictItem> items = r.getData();
+ if (ArrayUtil.isEmpty(items.toArray())){
+ return R.failed("鍖哄煙瀛楁鑾峰彇寮傚父");
+ }
+ List<Long> compIds = new ArrayList<>();
+ compIds.add(Long.valueOf(sgb));
+ compIds.add(Long.valueOf(smj));
+ compIds.add(Long.valueOf(tfgs));
+ compIds.add(Long.valueOf(ymj));
+ compIds.add(Long.valueOf(jxc));
+ List<ContractIncomeAnalysisAreaVo> contractIncomeAnalysisVoList = items.stream().map(item -> {
+ ContractIncomeAnalysisAreaVo analysisAreaVo = new ContractIncomeAnalysisAreaVo();
+ analysisAreaVo.setAreaId(item.getItemValue());
+ analysisAreaVo.setAreaName(item.getLabel());
+ return analysisAreaVo;
+ }).collect(Collectors.toList());
+ List<ContractIncomeAnalysisAreaVo> statisticList = contractMapper.contractAmountAnalysisByExportBus(commonDTO
+ ,compIds,Long.valueOf(smj),Long.valueOf(sgb),Long.valueOf(jxc),Long.valueOf(tfgs),Long.valueOf(ymj));
+ contractIncomeAnalysisVoList.stream().forEach(vo1->{
+ statisticList.stream().forEach(vo2->{
+ if (StrUtil.equals(vo1.getAreaId(),vo2.getAreaId())){
+ vo1.setJxczb(vo2.getJxczb());
+ vo1.setJxcze(vo2.getJxcze());
+ vo1.setSgbzb(vo2.getSgbzb());
+ vo1.setSgbze(vo2.getSgbze());
+ vo1.setSmjzb(vo2.getSmjzb());
+ vo1.setSmjze(vo2.getSmjze());
+ vo1.setTfzb(vo2.getTfzb());
+ vo1.setTfze(vo2.getTfze());
+ vo1.setYmjzb(vo2.getYmjzb());
+ vo1.setYmjze(vo2.getYmjze());
+ }
+ });
+ });
+ return R.ok(contractIncomeAnalysisVoList);
+ }
+
+}
--
Gitblit v1.9.1