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