扇形图和柱形图的总结的Service层部分

这是其他层的代码连接
https://blog.csdn.net/weixin_47615289/article/details/120487487

Service层(有点烂凑活看吧哈哈!)

//service层
package com.mqdl.Calculate.ComputationService.service.Statistical_chart_data;
import com.mqdl.Calculate.ComputationService.model.threeshuju.ThreeYearDTO;
public interface ScdService {
    ThreeYearDTO getzhuxignAndshanxin();
}
//service实现层
package com.mqdl.Calculate.ComputationService.service.Statistical_chart_data;
import com.mqdl.Calculate.ComputationService.controller.monthsummary.MonthSummaryMapper;

import com.mqdl.Calculate.ComputationService.model.monthsummary.MonthSummary;

import com.mqdl.Calculate.ComputationService.model.monthsummary.MonthSummaryDto;
import com.mqdl.Calculate.ComputationService.model.threeshuju.*;
import com.mqdl.Calculate.ComputationService.model.yearsummary.YearSummary;
import com.mqdl.Calculate.ComputationService.repository.monthsummary.MonthSummaryQueryRepository;
import com.mqdl.Calculate.ComputationService.repository.yearsummary.YearSummaryQueryRepository;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;

@Service
@Slf4j
public class ScdServiceImpl implements  ScdService{
    @Autowired
    MonthSummaryQueryRepository monthSummaryQueryRepository;
    @Autowired
    YearSummaryQueryRepository yearSummaryQueryRepository;
    @Autowired
    MonthSummaryMapper monthSummaryMapper;
    //两个统计图的工具方法柱状图
    public BarchartDate byYearSelectshuju(String s){
        BarchartDate barchartDate=new BarchartDate();
        //化石燃料二氧化碳排放量fossilFuelEmissions
        double []shuzu1={0,0,0,0,0,0,0,0,0,0,0,0};
        //脱硫二氧化碳排放量desulphurizationEmissions
        double []shuzu2={0,0,0,0,0,0,0,0,0,0,0,0};
        //消耗电力二氧化碳排放量electricEmissions
        double []shuzu3={0,0,0,0,0,0,0,0,0,0,0,0};
        //循环取出 barchartDate的值赋值给数组
        int r=1;
        for (int i=0;i<12;i++){
            if(r<=9){
                //10月份之前的
                    //化石燃料二氧化碳排放量
                    List<MonthSummary> list1 = monthSummaryQueryRepository.selectfossilFuelEmissions(s + "-0" +r);
                    List<MonthSummaryDto> monthSummaryDto = monthSummaryMapper.toMonthSummaryDtoList(list1);
                    shuzu1[i] = monthSummaryDto.size() == 0 ? 0 : monthSummaryDto.get(0) == null ? 0 : monthSummaryDto.get(0).getFossilFuelEmissions();
                    //脱硫二氧化碳排放量
                    List<MonthSummary> list2 = monthSummaryQueryRepository.selectdesulphurizationEmissions(s + "-0" +r);

                    List<MonthSummaryDto> monthSummaryDto1 = monthSummaryMapper.toMonthSummaryDtoList(list2);
                    shuzu2[i] = monthSummaryDto1.size() == 0 ? 0 : monthSummaryDto1.get(0) == null ? 0 : monthSummaryDto1.get(0).getDesulphurizationEmissions();
                    //消耗电力二氧化碳排放量
                    List<MonthSummary> list3 = monthSummaryQueryRepository.selectelectricEmissions(s + "-0" +r);
                    List<MonthSummaryDto> monthSummaryDto2 = monthSummaryMapper.toMonthSummaryDtoList(list3);
                    shuzu3[i] = monthSummaryDto2.size() == 0 ? 0 : monthSummaryDto2.get(0) == null ? 0 : monthSummaryDto2.get(0).getElectricEmissions();
        }else{
                //10月份之后的
                //化石燃料二氧化碳排放量
                List<MonthSummary> list4=monthSummaryQueryRepository.selectfossilFuelEmissions(s+"-"+r);
                List<MonthSummaryDto> monthSummaryDto= monthSummaryMapper.toMonthSummaryDtoList(list4);
                shuzu1[i] = monthSummaryDto.size()==0?0:monthSummaryDto.get(0)==null?0:monthSummaryDto.get(0).getFossilFuelEmissions();
                //脱硫二氧化碳排放量
                List<MonthSummary> list5=monthSummaryQueryRepository.selectdesulphurizationEmissions(s+"-"+r);

                List<MonthSummaryDto>  monthSummaryDto1= monthSummaryMapper.toMonthSummaryDtoList(list5);
                shuzu2[i]= monthSummaryDto1.size()==0?0:monthSummaryDto1.get(0)==null?0:monthSummaryDto1.get(0).getDesulphurizationEmissions();
                //消耗电力二氧化碳排放量
                List<MonthSummary> list6=monthSummaryQueryRepository.selectelectricEmissions(s+"-"+r);
                List<MonthSummaryDto> monthSummaryDto2= monthSummaryMapper.toMonthSummaryDtoList(list6);
                shuzu3[i]= monthSummaryDto2.size()==0?0:monthSummaryDto2.get(0)==null?0:monthSummaryDto2.get(0).getElectricEmissions();
            }
            r++;
        }
        barchartDate.setPower(shuzu3);
        barchartDate.setDesulfurizer(shuzu2);
        barchartDate.setFossilFuelType(shuzu1);

       return barchartDate;
    }
    //扇形图
    public SectorDTo shanxingshuju(String n){
        SectorDTo sectorDTo=new SectorDTo();
        List<ValueAndNameDTO> valueAndNameDTOS=new ArrayList<>();
        //化石燃料
        ValueAndNameDTO valueAndNameDTO=new ValueAndNameDTO();
        valueAndNameDTO.setName("化石燃料");
        YearSummary yearSummary=yearSummaryQueryRepository.selectfossilFuelEmissions(n);
        valueAndNameDTO.setValue(yearSummary==null?0:yearSummary.getFossilFuelEmissions());
        //脱硫剂
        ValueAndNameDTO valueAndNameDTO2=new ValueAndNameDTO();
        valueAndNameDTO2.setName("脱硫剂");
        YearSummary yearSummary2=yearSummaryQueryRepository.selectdesulphurizationEmissions(n);
        valueAndNameDTO2.setValue(yearSummary2==null?0:yearSummary2.getDesulphurizationEmissions());
        //电力
        ValueAndNameDTO valueAndNameDTO3=new ValueAndNameDTO();
        valueAndNameDTO3.setName("电力");
        YearSummary yearSummary3=yearSummaryQueryRepository.selectelectricEmissions(n);
        valueAndNameDTO3.setValue(yearSummary3==null?0:yearSummary3.getElectricEmissions());
        valueAndNameDTOS.add(valueAndNameDTO); valueAndNameDTOS.add(valueAndNameDTO2); valueAndNameDTOS.add(valueAndNameDTO3);
        sectorDTo.setData(valueAndNameDTOS);

        return sectorDTo;
    }
    //得到每1年的数据
    public YearDTO getonYearshuju(String n){
        YearDTO yearDTO=new YearDTO();
        //扇形图数据
        SectorDTo sectorDTo= shanxingshuju(n);
        //柱形图数据
        BarchartDate barchartDate=byYearSelectshuju(n);
        yearDTO.setBarchartDate(barchartDate);
        yearDTO.setPieChartData(sectorDTo);
        return yearDTO;
    };
     //两个统计图的数据主方法
    @Override
    public ThreeYearDTO getzhuxignAndshanxin() {
        ThreeYearDTO threeYearDTO=new ThreeYearDTO();
        //获取当前时间
        SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");//设置日期格式
        String data=df.format(new Date());// new Date()为获取当前系统时间
        String nian=data.substring(0,4);//今年
        Integer n=Integer.parseInt(nian);
        //去年
        YearDTO yearDTO=getonYearshuju(""+(n-1));
        //前年
        YearDTO yearDTO2=getonYearshuju(""+(n-2));
        //大前年
        YearDTO yearDTO3=getonYearshuju(""+(n-3));
        threeYearDTO.setThisYear(yearDTO);
        threeYearDTO.setLastYear(yearDTO2);
        threeYearDTO.setBeforeYear(yearDTO3);
        return threeYearDTO;
    }
}

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值