这是其他层的代码连接
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;
}
}