package com.by4cloud.platformx.business.service.impl; import cn.hutool.core.util.ArrayUtil; import cn.hutool.core.util.StrUtil; 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.factory.annotation.Value; import org.springframework.stereotype.Service; import java.util.ArrayList; import java.util.List; import java.util.stream.Collectors; @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 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 contractAmountAnalysisVoList = contractMapper.contractAmountAnalysis(commonDTO,compIds); return R.ok(contractAmountAnalysisVoList); } @Override public R contractAmountAnalysisByComp(AnalysisCommonDTO commonDTO) { List contractIncomeAnalysisVoList = contractMapper.contractAmountAnalysisByComp(commonDTO, SecurityUtils.getUser().getCompId()); return R.ok(contractIncomeAnalysisVoList); } @Override public R contractIncomeAnalysis(AnalysisCommonDTO commonDTO) { List 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 contractIncomeAnalysisVoList = contractMapper.contractIncomeAnalysis(commonDTO,compIds); if (ArrayUtil.isNotEmpty(contractIncomeAnalysisVoList.toArray())){ contractIncomeAnalysisVoList.stream().forEach(contractIncomeAnalysisVo -> { if(StrUtil.equals(contractIncomeAnalysisVo.getCompId(),sgb)){ contractIncomeAnalysisVo.setCompName("石工泵"); } if(StrUtil.equals(contractIncomeAnalysisVo.getCompId(),smj)){ contractIncomeAnalysisVo.setCompName("石煤机"); } if(StrUtil.equals(contractIncomeAnalysisVo.getCompId(),ymj)){ contractIncomeAnalysisVo.setCompName("一煤机"); } if(StrUtil.equals(contractIncomeAnalysisVo.getCompId(),tfgs)){ contractIncomeAnalysisVo.setCompName("通方公司"); } if(StrUtil.equals(contractIncomeAnalysisVo.getCompId(),jxc)){ contractIncomeAnalysisVo.setCompName("机械厂"); } }); } return R.ok(contractIncomeAnalysisVoList); } @Override public R contractIncomeAnalysisByComp(AnalysisCommonDTO commonDTO) { List contractIncomeAnalysisVoList = contractMapper.contractIncomeAnalysisByComp(commonDTO, SecurityUtils.getUser().getCompId()); return R.ok(contractIncomeAnalysisVoList); } @Override public R contractAmountAnalysisByArea(AnalysisCommonDTO commonDTO) { R> r = remoteDictService.getDictByType("company_area"); List items = r.getData(); if (ArrayUtil.isEmpty(items.toArray())){ return R.failed("区域字段获取异常"); } List 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 contractIncomeAnalysisVoList = items.stream().map(item -> { ContractIncomeAnalysisAreaVo analysisAreaVo = new ContractIncomeAnalysisAreaVo(); analysisAreaVo.setAreaId(item.getItemValue()); analysisAreaVo.setAreaName(item.getLabel()); return analysisAreaVo; }).collect(Collectors.toList()); List 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> r = remoteDictService.getDictByType("industry_sector"); List items = r.getData(); if (ArrayUtil.isEmpty(items.toArray())){ return R.failed("区域字段获取异常"); } List 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 contractIncomeAnalysisVoList = items.stream().map(item -> { ContractIncomeAnalysisAreaVo analysisAreaVo = new ContractIncomeAnalysisAreaVo(); analysisAreaVo.setAreaId(item.getItemValue()); analysisAreaVo.setAreaName(item.getLabel()); return analysisAreaVo; }).collect(Collectors.toList()); List 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> r = remoteDictService.getDictByType("market_type"); List items = r.getData(); if (ArrayUtil.isEmpty(items.toArray())){ return R.failed("区域字段获取异常"); } List 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 contractIncomeAnalysisVoList = items.stream().map(item -> { ContractIncomeAnalysisAreaVo analysisAreaVo = new ContractIncomeAnalysisAreaVo(); analysisAreaVo.setAreaId(item.getItemValue()); analysisAreaVo.setAreaName(item.getLabel()); return analysisAreaVo; }).collect(Collectors.toList()); List 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> r = remoteDictService.getDictByType("supply_attribute"); List items = r.getData(); if (ArrayUtil.isEmpty(items.toArray())){ return R.failed("区域字段获取异常"); } List 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 contractIncomeAnalysisVoList = items.stream().map(item -> { ContractIncomeAnalysisAreaVo analysisAreaVo = new ContractIncomeAnalysisAreaVo(); analysisAreaVo.setAreaId(item.getItemValue()); analysisAreaVo.setAreaName(item.getLabel()); return analysisAreaVo; }).collect(Collectors.toList()); List 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> r = remoteDictService.getDictByType("export_attr"); List items = r.getData(); if (ArrayUtil.isEmpty(items.toArray())){ return R.failed("区域字段获取异常"); } List 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 contractIncomeAnalysisVoList = items.stream().map(item -> { ContractIncomeAnalysisAreaVo analysisAreaVo = new ContractIncomeAnalysisAreaVo(); analysisAreaVo.setAreaId(item.getItemValue()); analysisAreaVo.setAreaName(item.getLabel()); return analysisAreaVo; }).collect(Collectors.toList()); List 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); } @Override public R contractAmountAnalysisBySaleModel(AnalysisCommonDTO commonDTO) { R> r = remoteDictService.getDictByType("sales_model"); List items = r.getData(); if (ArrayUtil.isEmpty(items.toArray())){ return R.failed("区域字段获取异常"); } List 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 contractIncomeAnalysisVoList = items.stream().map(item -> { ContractIncomeAnalysisAreaVo analysisAreaVo = new ContractIncomeAnalysisAreaVo(); analysisAreaVo.setAreaId(item.getItemValue()); analysisAreaVo.setAreaName(item.getLabel()); return analysisAreaVo; }).collect(Collectors.toList()); contractMapper.setSession(); List statisticList = contractMapper.contractAmountAnalysisBySaleModel(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); } }