From 239927b057f65a040594f7a4cb08c8881b303797 Mon Sep 17 00:00:00 2001
From: cjl <276999030@qq.com>
Date: Fri, 18 Aug 2023 14:52:16 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/cjl-230812' into cjl-230812
---
screen-api/src/main/java/com/moral/api/controller/SysTestController.java | 693 ++++++++++++++++++++++++++++++++++++++++++++++++---------
1 files changed, 582 insertions(+), 111 deletions(-)
diff --git a/screen-api/src/main/java/com/moral/api/controller/SysTestController.java b/screen-api/src/main/java/com/moral/api/controller/SysTestController.java
index 80d4663..de0360f 100644
--- a/screen-api/src/main/java/com/moral/api/controller/SysTestController.java
+++ b/screen-api/src/main/java/com/moral/api/controller/SysTestController.java
@@ -1,6 +1,11 @@
package com.moral.api.controller;
+import cn.afterturn.easypoi.entity.ImageEntity;
import cn.afterturn.easypoi.word.WordExportUtil;
+import com.alibaba.excel.EasyExcel;
+import com.alibaba.excel.ExcelWriter;
+import com.alibaba.excel.write.metadata.WriteSheet;
+import com.moral.api.dto.SysTestDTO;
import com.moral.api.entity.SysTest;
import com.moral.api.service.SysTestService;
import com.moral.util.DateUtils;
@@ -9,18 +14,28 @@
import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.lang3.StringUtils;
import org.apache.poi.xwpf.usermodel.XWPFDocument;
+import org.jfree.chart.ChartFactory;
+import org.jfree.chart.ChartUtils;
+import org.jfree.chart.JFreeChart;
+import org.jfree.chart.StandardChartTheme;
+import org.jfree.chart.labels.StandardPieSectionLabelGenerator;
+import org.jfree.chart.plot.PiePlot;
+import org.jfree.data.general.DefaultPieDataset;
import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.util.Assert;
import org.springframework.util.ResourceUtils;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import javax.servlet.http.HttpServletResponse;
-import java.io.File;
-import java.io.OutputStream;
+import java.awt.*;
+import java.io.*;
import java.lang.reflect.Field;
+import java.math.BigDecimal;
import java.net.URLEncoder;
import java.util.*;
+import java.util.List;
import java.util.stream.Collectors;
/**
@@ -40,39 +55,120 @@
@GetMapping("resultWord")
- public void adresultWordd(HttpServletResponse response,String time) {
- List<SysTest> listAll = sysTestService.listAll(time,"2022-06-22",null);
+ public void adresultWordd(HttpServletResponse response,String time,String endTime) {
+ // for(int i = 495;i<1095;i++){
+ List<SysTest> listAll = sysTestService.listAll(time,endTime,null);
+ if(CollectionUtils.isEmpty(listAll)){
+ return;
+ }
+ /* Date endTime =listAll.get(0).getTime();
+ String endTimeStr = DateUtils.dateToDateString(endTime,DateUtils.yyyyMMdd_EN);
+ String fileName = "������������������.docx";
+ Map<String,Object> map = resultMap(listAll);
+ downloadWord(fileName, map, response,"������������������"+endTimeStr+".docx");*/
+ // time = DateUtils.dateToDateString(DateUtils.addDays(endTime,1),DateUtils.yyyy_MM_dd_EN);
+ // }
+ }
+
+ @GetMapping("excelM")
+ public void excelM(HttpServletResponse response,String time,String endTime) {
+ // for(int i = 495;i<1095;i++){
+ String ks = "2020-06-01";
+ Date ksDate = DateUtils.convertDate(ks);
+ List<SysTest> result = new ArrayList<>();
+ for(int i = 0;i<37;i++){
+ Date jsDate = DateUtils.getLastDayOfCurrMonth(ksDate);
+ List<SysTest> listAll = sysTestService.listAllAvg(DateUtils.dateToDateString(ksDate,DateUtils.yyyy_MM_dd_EN),DateUtils.dateToDateString(jsDate,DateUtils.yyyy_MM_dd_EN),null);
+ System.out.println("���������"+DateUtils.dateToDateString(ksDate,DateUtils.yyyy_MM_dd_EN));
+ System.out.println("���������"+DateUtils.dateToDateString(jsDate,DateUtils.yyyy_MM_dd_EN));
+ ksDate = DateUtils.addMonths(ksDate,1);
+ result.addAll(listAll);
+ }
+
+ if(CollectionUtils.isEmpty(result)){
+ return;
+ }
+ String path = "D:\\���������������������.xls";
+ WriteSheet build = EasyExcel.writerSheet("������������").head(SysTestDTO.class).build();
+ // ������ easyexcel ��������������������� ������ ������������������������excel������������������������������execl������������������������java���������������������
+ ExcelWriter excelWriter = EasyExcel.write(path, SysTestDTO.class).build();
+ excelWriter.write(result, build);
+ excelWriter.finish();
+ }
+
+ @GetMapping("excelDay")
+ public void excelDay(HttpServletResponse response,String time,String endTime) {
+
+ List<SysTest> listAll = sysTestService.listAll(time,endTime,null);
+
if(CollectionUtils.isEmpty(listAll)){
return;
}
- Date endTime =listAll.get(0).getTime();
- String endTimeStr = DateUtils.dateToDateString(endTime,DateUtils.yyyyMMdd_EN);
- String fileName = "������������������.docx";
- Map<String,Object> map = resultMap(listAll);
-
- //���������map
- // Map result = JSON.parseObject(JSON.toJSONString(entity), Map.class);
- // Map<String, Object> result = EasyPoiUtil.entityToMap(entity);
- downloadWord(fileName, map, response,"������������������"+endTimeStr+".docx");
-
-
-
+ String path = "D:\\���������������������.xls";
+ WriteSheet build = EasyExcel.writerSheet("������������").head(SysTestDTO.class).build();
+ // ������ easyexcel ��������������������� ������ ������������������������excel������������������������������execl������������������������java���������������������
+ ExcelWriter excelWriter = EasyExcel.write(path, SysTestDTO.class).build();
+ excelWriter.write(listAll, build);
+ excelWriter.finish();
}
+ @GetMapping("resultWordWeek")
+ public void resultWordWeek(HttpServletResponse response) {
+ String ks = "2020-06-22";
+ Date ksDate = DateUtils.convertDate(ks);
+ for(int i = 0;i<157;i++){
+ Date jsDate = DateUtils.addDays(ksDate,6);
+ String time = DateUtils.dateToDateString(ksDate,DateUtils.yyyy_MM_dd_EN);
+ String endTime = DateUtils.dateToDateString(jsDate,DateUtils.yyyy_MM_dd_EN);
+ List<SysTest> listAll = sysTestService.listAllAvg(time,endTime,null);
+ if(CollectionUtils.isEmpty(listAll)){
+ return;
+ }
+ String fileName = "������������������.docx";
+ String time1 = DateUtils.dateToDateString(ksDate,"yyyy.MM.dd");
+ String endTime1= DateUtils.dateToDateString(jsDate,"yyyy.MM.dd");
+ Map<String,Object> map = resultWeekMap(listAll,i+1,time1+"-"+endTime1);
+ downloadWord(fileName, map, response,"������������������"+time+".docx");
+ ksDate = DateUtils.addDays(ksDate,7);
+ }
+ }
+
+ @GetMapping("resultWordMonth")
+ public void resultWordMonth(HttpServletResponse response) {
+
+ String ks = "2020-06-01";
+ Date ksDate = DateUtils.convertDate(ks);
+ for(int i = 0;i<37;i++){
+ Date jsDate = DateUtils.getLastDayOfCurrMonth(ksDate);;
+ String time = DateUtils.dateToDateString(ksDate,DateUtils.yyyy_MM_dd_EN);
+ String endTime = DateUtils.dateToDateString(jsDate,DateUtils.yyyy_MM_dd_EN);
+ List<SysTest> listAll = sysTestService.listAllAvg(time,endTime,null);
+ if(CollectionUtils.isEmpty(listAll)){
+ return;
+ }
+ List<SysTest> listDay = sysTestService.listAll(time,endTime,null);
+ String fileName = "������������������.docx";
+ String time1 = DateUtils.dateToDateString(ksDate,"yyyy���MM���");
+ Long days = DateUtils.getQuotByDays(DateUtils.dateToDateString(listDay.get(0).getTime()),DateUtils.dateToDateString(listDay.get(listDay.size()-1).getTime()));
+ Map<String,Object> map = resultWeekMap(listAll,time1,listDay,days.intValue());
+ downloadWord(fileName, map, response,"������������������"+time1+".docx");
+ ksDate = DateUtils.addMonths(ksDate,1);
+ }
+
+ }
public static void downloadWord(String fileName, Map<String, Object> params, HttpServletResponse response,String newFileName) {
String path = getPath(fileName);//��������� resources������
try {
//������������������
-
+ OutputStream out = new FileOutputStream("E:\\home\\mon\\" + newFileName);
File rootFile = new File(ResourceUtils.getURL("classpath:").getPath());
File file= new File(rootFile, path);
-
XWPFDocument word = WordExportUtil.exportWord07(file.getPath(), params);
response.setCharacterEncoding("utf-8");
response.setContentType("multipart/form-data");
response.setHeader("Content-Disposition", "attachment;filename=" + URLEncoder.encode(newFileName, "utf-8"));
- OutputStream out = response.getOutputStream();
+ //OutputStream out = response.getOutputStream();
word.write(out);
out.flush();
out.close();
@@ -146,9 +242,272 @@
resultMap.put(name+"S", StringUtils.isNotEmpty(s.getSu())?s.getSu():"--");
}
- String bodyName = stringButterStr(listAll);
+ //������
+ String bodyName = stringButterStr(listAll);
+
resultMap.put("������������",bodyName);
return resultMap;
+ }
+ private Map<String,Object> resultWeekMap(List<SysTest> listAll,int week,String weekTime){
+ Map<String,Object> resultMap = new HashMap<>();
+ resultMap.put("���",week);
+ resultMap.put("������",weekTime);
+ String name = "���";
+ for(SysTest s : listAll){
+ if(s.getName().contains("���")){
+ name = "���";
+ }else if(s.getName().contains("���")){
+ name = "���";
+ }else {
+ name = "���";
+ }
+ resultMap.put(name+"AQI", StringUtils.isNotEmpty(s.getAqi())?s.getAqi():"--");
+ resultMap.put(name+"PM10", StringUtils.isNotEmpty(s.getPm10())?s.getPm10():"--");
+ resultMap.put(name+"PM2", StringUtils.isNotEmpty(s.getPm25())?s.getPm25():"--");
+ resultMap.put(name+"SO2", StringUtils.isNotEmpty(s.getSo2())?s.getSo2():"--");
+ resultMap.put(name+"NO2", StringUtils.isNotEmpty(s.getNo2())?s.getNo2():"--");
+ resultMap.put(name+"CO", StringUtils.isNotEmpty(s.getCo())?s.getCo():"--");
+ resultMap.put(name+"O3", StringUtils.isNotEmpty(s.getO3())?s.getO3():"--");
+ resultMap.put(name+"TV", StringUtils.isNotEmpty(s.getVoc())?s.getVoc():"--");
+ resultMap.put(name+"S", StringUtils.isNotEmpty(s.getSu())?s.getSu():"--");
+ }
+ // String bodyName = stringButterStrWeek(listAll);
+ HashMap<String, Integer> datas = new HashMap<>(3);
+ datas.put("������",10);
+ datas.put("������",20);
+ datas.put("������",40);
+ ImageEntity imageEntity = pieChart("������",datas, 500, 300);
+ resultMap.put("������������",imageEntity);
+ return resultMap;
+ }
+ private Map<String,Object> resultWeekMap(List<SysTest> listAll,String weekTime,List<SysTest> listDay,int days){
+ Map<String,Object> resultMap = new HashMap<>();
+ resultMap.put("������",weekTime);
+ String name = "���";
+ for(SysTest s : listAll){
+ if(s.getName().contains("���")){
+ name = "���";
+ }else if(s.getName().contains("���")){
+ name = "���";
+ }else {
+ name = "���";
+ }
+ resultMap.put(name+"AQI", StringUtils.isNotEmpty(s.getAqi())?s.getAqi():"--");
+ resultMap.put(name+"PM10", StringUtils.isNotEmpty(s.getPm10())?s.getPm10():"--");
+ resultMap.put(name+"PM2", StringUtils.isNotEmpty(s.getPm25())?s.getPm25():"--");
+ resultMap.put(name+"SO2", StringUtils.isNotEmpty(s.getSo2())?s.getSo2():"--");
+ resultMap.put(name+"NO2", StringUtils.isNotEmpty(s.getNo2())?s.getNo2():"--");
+ resultMap.put(name+"CO", StringUtils.isNotEmpty(s.getCo())?s.getCo():"--");
+ resultMap.put(name+"O3", StringUtils.isNotEmpty(s.getO3())?s.getO3():"--");
+ resultMap.put(name+"TV", StringUtils.isNotEmpty(s.getVoc())?s.getVoc():"--");
+ resultMap.put(name+"S", StringUtils.isNotEmpty(s.getSu())?s.getSu():"--");
+ }
+ // String bodyName = stringButterStrWeek(listAll);
+ /*HashMap<String, Integer> datas = new HashMap<>(3);
+ datas.put("������",10);
+ datas.put("������",20);
+ datas.put("������",40);
+ ImageEntity imageEntity = pieChart("������",datas, 500, 300);*/
+ // resultMap.put("������������",imageEntity);
+ resultMap.putAll(month(listDay,days+1));
+ return resultMap;
+ }
+
+ private Map<String,Object> month(List<SysTest> listDay, int days){
+ Map<String,Object> map = new HashMap<>();
+ map.put("���������",0);
+ map.put("���������",0);
+ map.put("������",0);
+ map.put("������",0);
+ map.put("������",0);
+ map.put("������",0);
+ map.put("������",0);
+ map.put("������",0);
+ map.put("������",0);
+ map.put("������",0);
+ map.put("������",0);
+ map.put("������",0);
+ map.put("������",0);
+ map.put("������",0);
+ map.put("������",0);
+ map.put("������",0);
+ map.put("������",0);
+ map.put("������",0);
+ map.put("������",0);
+ map.put("������",0);
+
+ Map<String,Integer> map1 = new HashMap<>();
+ Map<String,Integer> map11 = new HashMap<>();
+ Map<String,Integer> map111 = new HashMap<>();
+ Map<String,Integer> map2 = new HashMap<>();
+ Map<String,Integer> map22 = new HashMap<>();
+ Map<String,Integer> map222 = new HashMap<>();
+ List<Integer> list1 = Arrays.asList(0,0);
+ List<Integer> list2 = Arrays.asList(0,0);
+ List<Integer> list3 = Arrays.asList(0,0);
+ String name = "���";
+ String levelName = "���";
+ for(SysTest s : listDay){
+ if(s.getName().contains("���")){
+ name = "���";
+ }else if(s.getName().contains("���")){
+ name = "���";
+ }else {
+ name = "���";
+ }
+ if(Double.parseDouble(s.getAqi()) <= 50){
+ levelName = "���";
+ }else if(Double.parseDouble(s.getAqi()) <= 100){
+ levelName = "���";
+ }else if(Double.parseDouble(s.getAqi()) <= 150){
+ levelName = "���";
+ }else if(Double.parseDouble(s.getAqi()) <= 200){
+ levelName = "���";
+ }else if(Double.parseDouble(s.getAqi()) <= 300){
+ levelName = "���";
+ }else {
+ levelName = "���";
+ }
+
+ if(StringUtils.isNotEmpty(s.getSu()) && s.getName().contains("���")){
+ s.setSu(s.getSu().equals("-")?"���":s.getSu());
+ if(map1.containsKey(s.getSu())){
+ map1.put(s.getSu(),map1.get(s.getSu())+1);
+ }else {
+ map1.put(s.getSu(),1);
+ }
+ }
+ if(StringUtils.isNotEmpty(s.getSu())&& s.getName().contains("���")){
+ s.setSu(s.getSu().equals("-")?"���":s.getSu());
+ if(map11.containsKey(s.getSu())){
+ map11.put(s.getSu(),map11.get(s.getSu())+1);
+ }else {
+ map11.put(s.getSu(),1);
+ }
+ }
+ if(StringUtils.isNotEmpty(s.getSu())&&s.getName().contains("���")){
+ s.setSu(s.getSu().equals("-")?"���":s.getSu());
+ if(map111.containsKey(s.getSu())){
+ map111.put(s.getSu(),map111.get(s.getSu())+1);
+ }else {
+ map111.put(s.getSu(),1);
+ }
+ }
+ if(Double.parseDouble(s.getAqi()) <= 100){
+ if(map.containsKey(name+"������")){
+ map.put(name+"������",Integer.parseInt(map.get(name+"������").toString())+1);
+ }else {
+ map.put(name+"������",1);
+ }
+ }else {
+ if(map.containsKey(name+"������")){
+ map.put(name+"������",Integer.parseInt(map.get(name+"������").toString())+1);
+ }else {
+ map.put(name+"������",1);
+ }
+ if(StringUtils.isNotEmpty(s.getSu())&& s.getName().contains("���") && s.getSu().contains("PM2.5")){
+ list1.set(0,list1.get(0)+1);
+ }else if(StringUtils.isNotEmpty(s.getSu())&& s.getName().contains("���") && s.getSu().contains("O3")){
+ list1.set(1,list1.get(1)+1);
+ }
+ if(StringUtils.isNotEmpty(s.getSu())&& s.getName().contains("���") && s.getSu().contains("PM2.5")){
+ list2.set(0,list2.get(0)+1);
+ }else if(StringUtils.isNotEmpty(s.getSu())&& s.getName().contains("���") && s.getSu().contains("O3")){
+ list2.set(1,list2.get(1)+1);
+ }
+ if(StringUtils.isNotEmpty(s.getSu())&& s.getName().contains("���") && s.getSu().contains("PM2.5")){
+ list3.set(0,list3.get(0)+1);
+ }else if(StringUtils.isNotEmpty(s.getSu())&& s.getName().contains("���") && s.getSu().contains("O3")){
+ list3.set(1,list3.get(1)+1);
+ }
+ }
+ if(map.containsKey(name+levelName)){
+ map.put(name+levelName,Integer.parseInt(map.get(name+levelName).toString())+1);
+ }else {
+ map.put(name+levelName,1);
+ }
+ String level = levelName;
+ if(level.equals("���")){
+ level = "������������";
+ }else if(level.equals("���")){
+ level = "������������";
+ }else if(level.equals("���")){
+ level = "������������";
+ }else if(level.equals("���")){
+ level = "������������";
+ }
+ if(s.getName().contains("���")){
+ if(map2.containsKey(levelName)){
+ map2.put(levelName,map2.get(levelName)+1);
+ }else {
+ map2.put(levelName,1);
+ }
+ }else if(s.getName().contains("���")){
+ if(map22.containsKey(levelName)){
+ map22.put(levelName,map22.get(levelName)+1);
+ }else {
+ map22.put(levelName,1);
+ }
+ }else if(s.getName().contains("���")){
+ if(map222.containsKey(levelName)){
+ map222.put(levelName,map222.get(levelName)+1);
+ }else {
+ map222.put(levelName,1);
+ }
+ }
+
+ }
+
+ BigDecimal zb1 = BigDecimal.valueOf(Integer.parseInt(map.get("���������").toString())*100).divide(BigDecimal.valueOf(days),2,BigDecimal.ROUND_HALF_UP);
+ map.put("���������������",zb1.toString()+"%");
+ BigDecimal zb2 = BigDecimal.valueOf(Integer.parseInt(map.get("���������").toString())*100).divide(BigDecimal.valueOf(days),2,BigDecimal.ROUND_HALF_UP);
+ map.put("���������������",zb2.toString()+"%");
+ BigDecimal zb3 = BigDecimal.valueOf(Integer.parseInt(map.get("���������").toString())*100).divide(BigDecimal.valueOf(days),2,BigDecimal.ROUND_HALF_UP);
+ map.put("���������������",zb3.toString()+"%");
+ ImageEntity imageEntity2 = pieChart("���������������������������������",map2, 500, 300);
+ map.put("���������������",imageEntity2);
+ ImageEntity imageEntity22 = pieChart("���������������������������������",map22, 500, 300);
+ map.put("���������������",imageEntity22);
+ ImageEntity imageEntity222 = pieChart("���������������������������������",map222, 500, 300);
+ map.put("���������������",imageEntity222);
+ ImageEntity imageEntity1 = pieChart("������������������������������",map1, 500, 300);
+ map.put("���������������",imageEntity1);
+ ImageEntity imageEntity11 = pieChart("������������������������������",map11, 500, 300);
+ map.put("���������������",imageEntity11);
+ ImageEntity imageEntity111 = pieChart("������������������������������",map111, 500, 300);
+ map.put("���������������",imageEntity111);
+ StringBuffer buffer = new StringBuffer();
+ if(!list1.get(0).equals(0)){
+ BigDecimal num = BigDecimal.valueOf(list1.get(0)*100).divide(BigDecimal.valueOf(Integer.parseInt(map.get("���������").toString())),2,BigDecimal.ROUND_HALF_UP);
+ buffer.append("PM2.5���������"+num+"%������");
+ }
+ if(!list1.get(1).equals(0)){
+ BigDecimal num = BigDecimal.valueOf(list1.get(1)*100).divide(BigDecimal.valueOf(Integer.parseInt(map.get("���������").toString())),2,BigDecimal.ROUND_HALF_UP);
+ buffer.append("O3���������"+num+"%������");
+ }
+
+ map.put("���������������",buffer.toString().length()>0?"������������������"+buffer.toString():new StringBuffer());
+ StringBuffer buffer1 = new StringBuffer();
+ if(!list2.get(0) .equals(0)){
+ BigDecimal num = BigDecimal.valueOf(list2.get(0)*100).divide(BigDecimal.valueOf(Integer.parseInt(map.get("���������").toString())),2,BigDecimal.ROUND_HALF_UP);
+ buffer1.append("PM2.5���������"+num+"%������");
+ }
+ if(!list2.get(1) .equals(0)){
+ BigDecimal num = BigDecimal.valueOf(list2.get(1)*100).divide(BigDecimal.valueOf(Integer.parseInt(map.get("���������").toString())),2,BigDecimal.ROUND_HALF_UP);
+ buffer1.append("O3���������"+num+"%������");
+ }
+ map.put("���������������",buffer1.toString().length()>0?"������������������"+buffer1.toString():new StringBuffer());
+ StringBuffer buffer2 = new StringBuffer();
+ if(!list3.get(0) .equals(0)){
+ BigDecimal num = BigDecimal.valueOf(list3.get(0)*100).divide(BigDecimal.valueOf(Integer.parseInt(map.get("���������").toString())),2,BigDecimal.ROUND_HALF_UP);
+ buffer2.append("PM2.5���������"+num+"%������");
+ }
+ if(!list3.get(1).equals(0)){
+ BigDecimal num = BigDecimal.valueOf(list3.get(1)*100).divide(BigDecimal.valueOf(Integer.parseInt(map.get("���������").toString())),2,BigDecimal.ROUND_HALF_UP);
+ buffer2.append("O3���������"+num+"%������");
+ }
+ map.put("���������������",buffer2.toString().length()>0?"������������������"+buffer2.toString():new StringBuffer());
+ return map;
}
private String stringButterStr(List<SysTest> listAll){
@@ -184,105 +543,136 @@
int sizeLowResult = 0;
String highName = "���������";
String lowName = "���������";
- StringBuffer highCode = new StringBuffer();
- StringBuffer lowCode = new StringBuffer();
+ //1 ������ 2������
+ if(type == 1){
+ SysTest ResultAqi = listAll.stream().min(Comparator.comparing(SysTest::getAqi)).get();
+ if(ResultAqi.getName().contains("���������")){
+ lowName = "���������";
+ highName = "���������������������";
+ }else if(ResultAqi.getName().contains("���������")){
+ lowName = "���������";
+ highName = "���������������������";
+ } else if(ResultAqi.getName().contains("���������")){
+ lowName = "���������";
+ highName = "���������������������";
+ }
- //1 ������ 2������
- if(type == 1){
- SysTest ResultAqi = listAll.stream().min(Comparator.comparing(SysTest::getAqi)).get();
- if(ResultAqi.getName().contains("���������")){
- lowName = "���������";
- highName = "���������������������";
- }else if(ResultAqi.getName().contains("���������")){
- lowName = "���������";
- highName = "���������������������";
- } else if(ResultAqi.getName().contains("���������")){
- lowName = "���������";
- highName = "���������������������";
- }
+ }else if(type == 2){
+ SysTest ResultAqi = listAll.stream().max(Comparator.comparing(SysTest::getAqi)).get();
+ if(ResultAqi.getName().contains("���������")){
+ highName = "���������";
+ lowName = "���������������������";
+ }else if(ResultAqi.getName().contains("���������")){
+ highName = "���������";
+ lowName = "���������������������";
+ } else if(ResultAqi.getName().contains("���������")){
+ highName = "���������";
+ lowName = "���������������������";
+ }
+ }else if(type == 3){
+ if(aqiHigh == aqiHighResult){
+ sizeHighResult = 0;
+ }
+ if(aqiMiddle == aqiHighResult){
+ sizeHighResult = 1;
+ }
+ if(aqiLow == aqiHighResult){
+ sizeHighResult = 2;
+ }
+ if(aqiHigh == aqiLowResult){
+ sizeLowResult = 0;
+ }
+ if(aqiMiddle == aqiLowResult){
+ sizeLowResult = 1;
+ }
+ if(aqiLow == aqiLowResult){
+ sizeLowResult = 2;
+ }
+ SysTest HighResult = listAll.get(sizeHighResult);
+ SysTest LowResult = listAll.get(sizeLowResult);
- }else if(type == 2){
- SysTest ResultAqi = listAll.stream().max(Comparator.comparing(SysTest::getAqi)).get();
- if(ResultAqi.getName().contains("���������")){
- highName = "���������";
- lowName = "���������������������";
- }else if(ResultAqi.getName().contains("���������")){
- highName = "���������";
- lowName = "���������������������";
- } else if(ResultAqi.getName().contains("���������")){
- highName = "���������";
- lowName = "���������������������";
- }
- }else if(type == 3){
- if(aqiHigh == aqiHighResult){
- sizeHighResult = 0;
- }
- if(aqiMiddle == aqiHighResult){
- sizeHighResult = 1;
- }
- if(aqiLow == aqiHighResult){
- sizeHighResult = 2;
- }
- if(aqiHigh == aqiLowResult){
- sizeLowResult = 0;
- }
- if(aqiMiddle == aqiLowResult){
- sizeLowResult = 1;
- }
- if(aqiLow == aqiLowResult){
- sizeLowResult = 2;
- }
- SysTest HighResult = listAll.get(sizeHighResult);
- SysTest LowResult = listAll.get(sizeLowResult);
-
- if(HighResult.getName().contains("���������")){
- highName = "���������";
- }else if(HighResult.getName().contains("���������")){
- highName = "���������";
- }
- if(LowResult.getName().contains("���������")){
- lowName = "���������";
- }else if(LowResult.getName().contains("���������")){
- lowName = "���������";
- }
+ if(HighResult.getName().contains("���������")){
+ highName = "���������";
+ }else if(HighResult.getName().contains("���������")){
+ highName = "���������";
}
- SysTest result0 = listAll.get(0);
- SysTest result1 = listAll.get(1);
- SysTest result2 = listAll.get(2);
- Map<String,String> pm10 = nameCode(result0.getName(),result1.getName(),result2.getName(),result0.getPm10(),result1.getPm10(),result2.getPm10());
- Map<String,String> pm25 = nameCode(result0.getName(),result1.getName(),result2.getName(),result0.getPm25(),result1.getPm25(),result2.getPm25());
- Map<String,String> so = nameCode(result0.getName(),result1.getName(),result2.getName(),result0.getSo2(),result1.getSo2(),result2.getSo2());
- Map<String,String> no = nameCode(result0.getName(),result1.getName(),result2.getName(),result0.getNo2(),result1.getNo2(),result2.getNo2());
- Map<String,String> co = nameCode(result0.getName(),result1.getName(),result2.getName(),result0.getCo(),result1.getCo(),result2.getCo());
- Map<String,String> o3 = nameCode(result0.getName(),result1.getName(),result2.getName(),result0.getO3(),result1.getO3(),result2.getO3());
- stringBuffer.append(highName+"���������������������AQI������������"+lowName+"���������������������AQI������������");
- if(pm10.isEmpty()&& pm25.isEmpty()&&so.isEmpty()&& no.isEmpty()&& co.isEmpty()&& o3.isEmpty()){
- return stringBuffer.toString();
+ if(LowResult.getName().contains("���������")){
+ lowName = "���������";
+ }else if(LowResult.getName().contains("���������")){
+ lowName = "���������";
}
- stringBuffer.append("���������");
- if(!pm10.isEmpty()){
- stringBuffer.append("PM10���������������"+pm10.get("high")+"������������������"+pm10.get("low")+"���");
- }
- if(!pm25.isEmpty()){
- stringBuffer.append("PM2.5���������������"+pm25.get("high")+"������������������"+pm25.get("low")+"���");
- }
- if(!so.isEmpty()){
- stringBuffer.append("SO2���������������"+so.get("high")+"������������������"+so.get("low")+"���");
- }
- if(!no.isEmpty()){
- stringBuffer.append("NO2���������������"+no.get("high")+"������������������"+no.get("low")+"���");
- }
- if(!co.isEmpty()){
- stringBuffer.append("CO���������������"+co.get("high")+"������������������"+co.get("low")+"���");
- }
- if(!o3.isEmpty()){
- stringBuffer.append("O3���������������"+o3.get("high")+"������������������"+o3.get("low")+"���");
- }
+ }
+ SysTest result0 = listAll.get(0);
+ SysTest result1 = listAll.get(1);
+ SysTest result2 = listAll.get(2);
+ Map<String,String> pm10 = nameCode(result0.getName(),result1.getName(),result2.getName(),result0.getPm10(),result1.getPm10(),result2.getPm10());
+ Map<String,String> pm25 = nameCode(result0.getName(),result1.getName(),result2.getName(),result0.getPm25(),result1.getPm25(),result2.getPm25());
+ Map<String,String> so = nameCode(result0.getName(),result1.getName(),result2.getName(),result0.getSo2(),result1.getSo2(),result2.getSo2());
+ Map<String,String> no = nameCode(result0.getName(),result1.getName(),result2.getName(),result0.getNo2(),result1.getNo2(),result2.getNo2());
+ Map<String,String> co = nameCode(result0.getName(),result1.getName(),result2.getName(),result0.getCo(),result1.getCo(),result2.getCo());
+ Map<String,String> o3 = nameCode(result0.getName(),result1.getName(),result2.getName(),result0.getO3(),result1.getO3(),result2.getO3());
+ stringBuffer.append(highName+"���������������������AQI������������"+lowName+"���������������������AQI������������");
+ if(pm10.isEmpty()&& pm25.isEmpty()&&so.isEmpty()&& no.isEmpty()&& co.isEmpty()&& o3.isEmpty()){
+ return stringBuffer.toString();
+ }
+ stringBuffer.append("���������");
+ if(!pm10.isEmpty()){
+ stringBuffer.append("PM10���������������"+pm10.get("high")+"������������������"+pm10.get("low")+"���");
+ }
+ if(!pm25.isEmpty()){
+ stringBuffer.append("PM2.5���������������"+pm25.get("high")+"������������������"+pm25.get("low")+"���");
+ }
+ if(!so.isEmpty()){
+ stringBuffer.append("SO2���������������"+so.get("high")+"������������������"+so.get("low")+"���");
+ }
+ if(!no.isEmpty()){
+ stringBuffer.append("NO2���������������"+no.get("high")+"������������������"+no.get("low")+"���");
+ }
+ if(!co.isEmpty()){
+ stringBuffer.append("CO���������������"+co.get("high")+"������������������"+co.get("low")+"���");
+ }
+ if(!o3.isEmpty()){
+ stringBuffer.append("O3���������������"+o3.get("high")+"������������������"+o3.get("low")+"���");
+ }
return stringBuffer.toString();
}
-
+ private String stringButterStrWeek(List<SysTest> listAll){
+ StringBuffer stringBuffer = new StringBuffer();
+ SysTest result0 = listAll.get(0);
+ SysTest result1 = listAll.get(1);
+ SysTest result2 = listAll.get(2);
+ Map<String,String> pm10 = nameCode(result0.getName(),result1.getName(),result2.getName(),result0.getPm10(),result1.getPm10(),result2.getPm10());
+ Map<String,String> pm25 = nameCode(result0.getName(),result1.getName(),result2.getName(),result0.getPm25(),result1.getPm25(),result2.getPm25());
+ Map<String,String> so = nameCode(result0.getName(),result1.getName(),result2.getName(),result0.getSo2(),result1.getSo2(),result2.getSo2());
+ Map<String,String> no = nameCode(result0.getName(),result1.getName(),result2.getName(),result0.getNo2(),result1.getNo2(),result2.getNo2());
+ Map<String,String> co = nameCode(result0.getName(),result1.getName(),result2.getName(),result0.getCo(),result1.getCo(),result2.getCo());
+ Map<String,String> o3 = nameCode(result0.getName(),result1.getName(),result2.getName(),result0.getO3(),result1.getO3(),result2.getO3());
+ if(pm10.isEmpty()&& pm25.isEmpty()&&so.isEmpty()&& no.isEmpty()&& co.isEmpty()&& o3.isEmpty()){
+ return stringBuffer.toString();
+ }
+ stringBuffer.append("���������");
+ if(!pm10.isEmpty()){
+ stringBuffer.append("PM10���������������"+pm10.get("high")+"������������������"+pm10.get("low")+"���");
+ }
+ if(!pm25.isEmpty()){
+ stringBuffer.append("PM2.5���������������"+pm25.get("high")+"������������������"+pm25.get("low")+"���");
+ }
+ if(!so.isEmpty()){
+ stringBuffer.append("SO2���������������"+so.get("high")+"������������������"+so.get("low")+"���");
+ }
+ if(!no.isEmpty()){
+ stringBuffer.append("NO2���������������"+no.get("high")+"������������������"+no.get("low")+"���");
+ }
+ if(!co.isEmpty()){
+ stringBuffer.append("CO���������������"+co.get("high")+"������������������"+co.get("low")+"���");
+ }
+ if(!o3.isEmpty()){
+ stringBuffer.append("O3���������������"+o3.get("high")+"������������������"+o3.get("low")+"���");
+ }
+ return stringBuffer.toString();
+ }
private Map<String,String> nameCode(String name1,String name2,String name3,String nums1,String nums2,String nums3){
double num1 = StringUtils.isNotEmpty(nums1)?Double.parseDouble(nums1):0;
double num2 = StringUtils.isNotEmpty(nums2)?Double.parseDouble(nums2):0;
@@ -341,8 +731,89 @@
return map;
}
+ private static String tempImgPath="E:\\home\\image\\tempJfree.jpg";
+ private static byte[] imgToByte(){
+ File file = new File(tempImgPath);
+ byte[] buffer = null;
+ try {
+ FileInputStream fis = new FileInputStream(file);
+ ByteArrayOutputStream bos = new ByteArrayOutputStream(1000);
+ byte[] b = new byte[1000];
+ int n;
+ while ((n = fis.read(b)) != -1) {
+ bos.write(b, 0, n);
+ }
+ fis.close();
+ bos.close();
+ buffer = bos.toByteArray();
+ } catch (IOException e) {
+ log.error(e.getMessage());
+ }
+ //������������������
+ //file.delete();
+ return buffer;
+ }
+ public ImageEntity pieChart(String title, Map<String, Integer> datas, int width, int height) {
+
+ //������������������
+ StandardChartTheme standardChartTheme = new StandardChartTheme("CN");
+ //������������������
+ standardChartTheme.setExtraLargeFont(new Font("������", Font.BOLD, 20));
+ //���������������������
+ standardChartTheme.setRegularFont(new Font("������", Font.PLAIN, 15));
+ //���������������������
+ standardChartTheme.setLargeFont(new Font("������", Font.PLAIN, 15));
+ //������������������
+ ChartFactory.setChartTheme(standardChartTheme);
+
+ //������jfree���������������������������
+ DefaultPieDataset pds = new DefaultPieDataset();
+ datas.forEach(pds::setValue);
+ //���������������������������������������������������������������������tooltips������������������������
+ JFreeChart chart = ChartFactory.createPieChart(title, pds, true, false, false);
+ //���������������
+ chart.setTextAntiAlias(false);
+ PiePlot plot = (PiePlot) chart.getPlot();
+ plot.setNoDataMessage("������������");
+ //���������������������
+ plot.setIgnoreNullValues(true);
+ plot.setBackgroundAlpha(0f);
+ //������������������������
+ plot.setShadowPaint(new Color(255,255,255));
+ //���������������������(������{0})
+ plot.setLabelGenerator(new StandardPieSectionLabelGenerator("{0}({1})/{2}"));
+ try {
+ ChartUtils.saveChartAsJPEG(new File(tempImgPath), chart, width, height);
+ } catch (IOException e1) {
+ log.error("������������������������");
+ }
+ ImageEntity imageEntity = new ImageEntity(imgToByte(), width, height);
+ Assert.notNull(imageEntity.getData(),"������������������������������");
+ return imageEntity;
+ }
+
+ public static void main(String[] args) {
+ String ks = "2020-06-01";
+ Date ksDate = DateUtils.convertDate(ks);
+ for(int i = 0;i<37;i++){
+ Date jsDate = DateUtils.getLastDayOfCurrMonth(ksDate);
+ System.out.println("���������"+DateUtils.dateToDateString(ksDate,DateUtils.yyyy_MM_dd_EN));
+ System.out.println("���������"+DateUtils.dateToDateString(jsDate,DateUtils.yyyy_MM_dd_EN));
+ ksDate = DateUtils.addMonths(ksDate,1);
+ }
+ /*String ks = "2020-06-22";
+ Date ksDate = DateUtils.convertDate(ks);
+ for(int i = 0;i<157;i++){
+ Date jsDate = DateUtils.addDays(ksDate,6);
+ System.out.println("���������"+DateUtils.dateToDateString(ksDate,DateUtils.yyyy_MM_dd_EN));
+ System.out.println("���������"+DateUtils.dateToDateString(jsDate,DateUtils.yyyy_MM_dd_EN));
+ ksDate = DateUtils.addDays(ksDate,7);
+ }*/
+
+
+ }
}
--
Gitblit v1.8.0