From c5b1a331a238ef37818d8bcebca1226b9fe1a559 Mon Sep 17 00:00:00 2001
From: cjl <909710561@qq.com>
Date: Thu, 28 Mar 2024 15:47:56 +0800
Subject: [PATCH] fix:盐城报告查询
---
screen-api/src/main/java/com/moral/api/pojo/ext/ycgeneratereport/YcGenerateReportPageExt.java | 98 ++
screen-api/src/main/java/com/moral/api/service/YcGenerateReportService.java | 67 +
screen-api/src/main/java/com/moral/api/mapper/FileTableMapper.java | 5
screen-api/src/main/java/com/moral/api/pojo/vo/ycgeneratereport/YcGenerateReportPageVo.java | 79 +
screen-api/src/main/java/com/moral/api/pojo/ext/ycgeneratereport/YcGenerateReportListExt.java | 22
screen-api/src/main/resources/mapper/YcGenerateReportMapper.xml | 77 +
screen-api/src/main/java/com/moral/api/pojo/query/ycgeneratereport/YcGenerateReportUploadCond.java | 35
screen-api/pom.xml | 30
screen-api/src/main/java/com/moral/api/entity/YcGenerateReport.java | 56 +
screen-api/src/main/java/com/moral/api/pojo/query/ycgeneratereport/YcGenerateReportListCond.java | 28
screen-api/src/main/java/com/moral/api/controller/YcReptilesController.java | 714 +++++++++++++++++
screen-api/src/main/java/com/moral/api/pojo/vo/yc/SixConcentrationsVo.java | 88 ++
screen-api/src/main/java/com/moral/api/pojo/vo/ycgeneratereport/YcGenerateReportListVo.java | 80 ++
screen-common/src/main/java/com/moral/util/DateUtils.java | 7
screen-api/src/main/java/com/moral/api/mapper/YcGenerateReportMapper.java | 54 +
screen-api/src/main/java/com/moral/api/pojo/query/ycgeneratereport/YcGenerateReportAddCond.java | 73 +
screen-api/src/main/java/com/moral/api/pojo/query/ycgeneratereport/YcGenerateReportPageCond.java | 34
screen-api/src/main/java/com/moral/api/pojo/vo/ycgeneratereport/YcGenerateReportVo.java | 75 +
screen-api/src/main/java/com/moral/api/service/impl/YcGenerateReportServiceImpl.java | 79 +
screen-api/src/main/java/com/moral/api/service/impl/ReptileResultServiceImpl.java | 487 ++++++++++++
screen-api/src/main/java/com/moral/api/service/ReptileResultService.java | 16
screen-api/src/main/java/com/moral/api/pojo/vo/yc/AqiResultVo.java | 80 ++
screen-api/src/main/java/com/moral/api/pojo/ext/ycgeneratereport/YcGenerateReportExt.java | 21
screen-api/src/main/java/com/moral/api/pojo/enums/FileTableEnum.java | 5
screen-api/src/main/resources/mapper/FileTableMapper.xml | 5
screen-api/src/main/java/com/moral/api/pojo/query/ycgeneratereport/YcGenerateReportUpdateCond.java | 73 +
26 files changed, 2,387 insertions(+), 1 deletions(-)
diff --git a/screen-api/pom.xml b/screen-api/pom.xml
index 9a39a17..3c34250 100644
--- a/screen-api/pom.xml
+++ b/screen-api/pom.xml
@@ -135,6 +135,36 @@
<artifactId>hutool-all</artifactId>
<version>5.3.0</version>
</dependency>
+
+ <dependency>
+ <groupId>org.jsoup</groupId>
+ <artifactId>jsoup</artifactId>
+ <version>1.15.1</version>
+ </dependency>
+ <dependency>
+ <groupId>com.squareup.okhttp3</groupId>
+ <artifactId>okhttp</artifactId>
+ <version>3.14.0</version>
+ </dependency>
+ <dependency>
+ <groupId>net.java.dev.jna</groupId>
+ <artifactId>jna</artifactId>
+ <version>4.2.1</version>
+ </dependency>
+ <dependency>
+ <groupId>net.sourceforge.tess4j</groupId>
+ <artifactId>tess4j</artifactId>
+ <version>4.5.1</version>
+ </dependency>
+ <dependency>
+ <groupId>org.openpnp</groupId>
+ <artifactId>opencv</artifactId>
+ <version>3.2.0-1</version>
+ </dependency>
+
+
+
+
</dependencies>
<build>
diff --git a/screen-api/src/main/java/com/moral/api/controller/YcReptilesController.java b/screen-api/src/main/java/com/moral/api/controller/YcReptilesController.java
new file mode 100644
index 0000000..ed76aab
--- /dev/null
+++ b/screen-api/src/main/java/com/moral/api/controller/YcReptilesController.java
@@ -0,0 +1,714 @@
+package com.moral.api.controller;
+
+import com.alibaba.excel.EasyExcel;
+import com.alibaba.excel.ExcelWriter;
+import com.alibaba.excel.write.metadata.WriteSheet;
+import com.alibaba.excel.write.metadata.fill.FillConfig;
+import com.alibaba.excel.write.metadata.fill.FillWrapper;
+import com.baomidou.mybatisplus.extension.conditions.query.LambdaQueryChainWrapper;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.moral.api.config.Interceptor.UserHelper;
+import com.moral.api.entity.FileTable;
+import com.moral.api.entity.YcGenerateReport;
+import com.moral.api.exception.BusinessException;
+import com.moral.api.pojo.enums.FileTableEnum;
+import com.moral.api.pojo.enums.FileType;
+import com.moral.api.pojo.ext.allocation.AllocationPageExt;
+import com.moral.api.pojo.ext.ycgeneratereport.YcGenerateReportPageExt;
+import com.moral.api.pojo.query.allocation.AllocationPageCond;
+import com.moral.api.pojo.query.ycgeneratereport.YcGenerateReportPageCond;
+import com.moral.api.pojo.query.ycgeneratereport.YcGenerateReportUploadCond;
+import com.moral.api.pojo.vo.allocation.AllocationPageVo;
+import com.moral.api.pojo.vo.user.QxUser;
+import com.moral.api.pojo.vo.yc.AqiResultVo;
+import com.moral.api.pojo.vo.yc.SixConcentrationsVo;
+import com.moral.api.pojo.vo.ycgeneratereport.YcGenerateReportPageVo;
+import com.moral.api.service.FileTableService;
+import com.moral.api.service.ReptileResultService;
+import com.moral.api.service.YcGenerateReportService;
+import com.moral.api.service.impl.ReptileResultServiceImpl;
+import com.moral.constant.PageResult;
+import com.moral.constant.ResultMessage;
+import com.moral.util.DateUtils;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import io.swagger.annotations.ApiParam;
+import lombok.extern.slf4j.Slf4j;
+import org.apache.commons.collections.CollectionUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.util.StringUtils;
+import org.springframework.web.bind.annotation.*;
+
+import javax.validation.Valid;
+import java.io.File;
+import java.io.IOException;
+import java.math.BigDecimal;
+import java.text.SimpleDateFormat;
+import java.time.LocalDate;
+import java.time.Year;
+import java.util.*;
+import java.util.stream.Collectors;
+
+/**
+ * @ClassName TestController
+ * @Description TODO
+ * @Author @cjl
+ * @Date 2024-03-04 9:58
+ * @Version 1.0
+ */
+@Slf4j
+@Api(tags = {"������������������"})
+@RestController
+@RequestMapping("/cityReptiles")
+public class YcReptilesController {
+
+ @Autowired
+ private ReptileResultService resultService;
+ @Autowired
+ private YcGenerateReportService ycGenerateReportService;
+ @Autowired
+ private FileTableService fileTableService;
+
+
+ @Value("${file.path}")
+ private String basePath;
+
+
+ @GetMapping("/report")
+ @ApiOperation("������������")
+ public ResultMessage report(@RequestParam @ApiParam(value = "������",name = "code") String code,
+ @RequestParam(required = false) @ApiParam(value = "������",name = "time") String time){
+ String filePath = getFilePath(FileTableEnum.YC_GENERATEEXCEL.value.toString());
+ String targetFolder = basePath.replaceAll(com.moral.api.utils.StringUtils.BACKSLASH.concat(com.moral.api.utils.StringUtils.BACKSLASH), com.moral.api.utils.StringUtils.SLASH).concat(com.moral.api.utils.StringUtils.SLASH).concat(filePath);
+ generateReport(time,code,targetFolder,filePath);
+ return ResultMessage.ok();
+ }
+
+
+ @PostMapping("/page")
+ @ApiOperation("������")
+ public ResultMessage<PageResult<YcGenerateReportPageVo>> page(@Valid @RequestBody YcGenerateReportPageCond ycGenerateReportPageCond) {
+ Page<YcGenerateReportPageExt> page = ycGenerateReportService.extPage(ycGenerateReportPageCond);
+ PageResult<YcGenerateReportPageVo> result = new PageResult<>(page);
+ result.setList(YcGenerateReportPageVo.convert(page.getRecords()));
+ return ResultMessage.ok(result);
+ }
+
+ @PostMapping("/fileUpload")
+ @ApiOperation("������������")
+ public ResultMessage fileUpload(@Valid @RequestBody YcGenerateReportUploadCond uploadCond) {
+ ycGenerateReportService.fileUpload(uploadCond);
+ return ResultMessage.ok();
+ }
+
+
+ public void generateReport(String time,String code,String filePath,String path) {
+ YcReptilesController testController = new YcReptilesController();
+ String yc = "���������,���������,���������,���������,���������,���������,���������,���������,������������,���������,���������������,���������";
+
+ String gk = "������������������,������������������,������������,������������,������������,������������";
+
+ String url = "http://116.147.41.178:8081/DataReport/AQIReport";
+ String cookie = null;
+ if(StringUtils.isEmpty(code)){
+ cookie = "ASP.NET_SessionId=xo1nn2mvzmhaeb2csok130fd;CurrentAMenuID=2fa3c748-bf4e-4453-9544-e5fd860d74bf;";
+ }else {
+ cookie = code+"CurrentAMenuID=2fa3c748-bf4e-4453-9544-e5fd860d74bf;";
+ }
+ Date resultDate = null;
+ if(StringUtils.isEmpty(time)){
+ resultDate= new Date();
+ }else {
+ resultDate = DateUtils.convertDate(time);
+ }
+
+ ReptileResultService resultService = new ReptileResultServiceImpl();
+ Date endDate = DateUtils.addDays(resultDate,-1);
+ String endDateTime = DateUtils.dateToDateString(endDate,DateUtils.yyyy_MM_dd_EN);
+ //Map<String,Object> map0 = resultService.getYcDaily(url,cookie,DateUtils.dateToDateString(DateUtils.getFirstDayOfLastYear(endDate),DateUtils.yyyy_MM_dd_EN),2);
+
+ Map<String,Object> map = resultService.getYcDaily(url,cookie,endDateTime,2);
+ Map<String,Object> map0 = resultService.getYcDaily(url,cookie,DateUtils.dateToDateString(DateUtils.getFirstDayOfLastYear(endDate),DateUtils.yyyy_MM_dd_EN),2);
+
+
+ Date dateTime = DateUtils.getFirstDayOfMonth(resultDate);
+
+ String sTime = DateUtils.dateToDateString(dateTime);
+ String eTime = endDateTime+" 00:00:00";
+ String url1 = "http://116.147.41.178:8081/AQA/YearCustom/Year_Custom1?sTime="+sTime+"&eTime="+eTime+"&type=1&viewtype=1&isDustDay=true&DecimalPlaces=1";
+ Map<String,Object> map1 = resultService.getYcDaily(url1,cookie,null,3);
+ String url2 = "http://116.147.41.178:8081/AQI/Statistics/YouLiangRateDataNewNewNew?sTime="+sTime+"&eTime="+eTime+"&DecimalPlaces=1&isDustDay=false&selec=0&selet=0&isDustDayXianShi=false";
+ Map<String,Object> map3 = resultService.getYcDaily(url2,cookie,null,1);
+ sTime = DateUtils.dateToDateString(DateUtils.getFirstDayOfLastYear(DateUtils.getFirstDayOfMonth(dateTime)));
+ eTime = DateUtils.dateToDateString(DateUtils.getFirstDayOfLastYear(endDate));
+ url1 = "http://116.147.41.178:8081/AQA/YearCustom/Year_Custom1?sTime="+sTime+"&eTime="+eTime+"&type=1&viewtype=1&isDustDay=true&DecimalPlaces=1";
+ Map<String,Object> map2 = resultService.getYcDaily(url1,cookie,null,3);
+ url2 = "http://116.147.41.178:8081/AQI/Statistics/YouLiangRateDataNewNewNew?sTime="+sTime+"&eTime="+eTime+"&DecimalPlaces=1&isDustDay=false&selec=0&selet=0&isDustDayXianShi=false";
+ Map<String,Object> map4 = resultService.getYcDaily(url2,cookie,null,1);
+
+
+ Date dateFirstTime = DateUtils.getFirstDayOfCurrYear();
+ sTime = DateUtils.dateToDateString(dateFirstTime);
+ eTime = endDateTime+" 00:00:00";
+ url1 = "http://116.147.41.178:8081/AQA/YearCustom/Year_Custom1?sTime="+sTime+"&eTime="+eTime+"&type=1&viewtype=1&isDustDay=true&DecimalPlaces=1";
+ Map<String,Object> map5 = resultService.getYcDaily(url1,cookie,null,3);
+ url2 = "http://116.147.41.178:8081/AQI/Statistics/YouLiangRateDataNewNewNew?sTime="+sTime+"&eTime="+eTime+"&DecimalPlaces=1&isDustDay=false&selec=0&selet=0&isDustDayXianShi=false";
+ Map<String,Object> map7 = resultService.getYcDaily(url2,cookie,null,1);
+ // ���������
+ String url3 = "http://116.147.41.178:8081/AQI/Statistics/StandardRateData?&sTime="+sTime+"&eTime="+eTime;
+ Map<String,Object> surplusMap = resultService.getYcDaily(url3,cookie,null,4);
+
+ sTime = DateUtils.dateToDateString(DateUtils.getFirstDayOfLastYear(dateFirstTime));
+ eTime = DateUtils.dateToDateString(DateUtils.getFirstDayOfLastYear(endDate));
+ url1 = "http://116.147.41.178:8081/AQA/YearCustom/Year_Custom1?sTime="+sTime+"&eTime="+eTime+"&type=1&viewtype=1&isDustDay=true&DecimalPlaces=1";
+ Map<String,Object> map6 = resultService.getYcDaily(url1,cookie,null,3);
+ url2 = "http://116.147.41.178:8081/AQI/Statistics/YouLiangRateDataNewNewNew?sTime="+sTime+"&eTime="+eTime+"&DecimalPlaces=1&isDustDay=false&selec=0&selet=0&isDustDayXianShi=false";
+ Map<String,Object> map8 = resultService.getYcDaily(url2,cookie,null,1);
+ url3 = "http://116.147.41.178:8081/AQI/Statistics/StandardRateData?&sTime="+sTime+"&eTime="+eTime;
+ Map<String,Object> surplusOldMap = resultService.getYcDaily(url3,cookie,null,4);
+
+ //String templateFile = "E:/java/������-���������������������001.xlsx";
+ // ���������������������������������������������������������
+ // String resultFile = "E:/java/������-���������������������1.xlsx";
+
+ String templateFile = basePath+"/������-���������������������001.xlsx";
+ String resultFileName = endDateTime+"���������������������.xlsx";;
+ String resultFile =UUID.randomUUID().toString()+".xlsx";;
+ storageFile(filePath.concat(resultFile));
+
+ // ������������������������������������
+ ExcelWriter excelWriter = EasyExcel
+ .write(filePath.concat(resultFile))
+ .withTemplate(templateFile)
+ // ���������������������������
+// .registerWriteHandler(new CellStyleHandler())
+ .build();
+ WriteSheet writeSheet = EasyExcel.writerSheet("���").build();
+ WriteSheet writeSheet1 = EasyExcel.writerSheet("���").build();
+ WriteSheet writeSheet2 = EasyExcel.writerSheet("���").build();
+ // ���������������������������������������������������������������������
+ FillConfig fillConfig = FillConfig.builder().forceNewRow(Boolean.FALSE).build();
+ // ������������������������
+ /* Map<String, Object> map = new HashMap<>();
+ List<TestVo> list = new ArrayList<>();
+ TestVo testVo = TestVo.builder().sj("Sj11").sl("2234").build();
+ TestVo testVo1 = TestVo.builder().sj("Sj1").sl("2214").build();
+ list.add(testVo);
+ list.add(testVo1);*/
+
+// map.put("time", "111113");
+// map.put("time1", "2222224");
+ // map.put("dd", list);
+
+ List<AqiResultVo> list = (List<AqiResultVo>) map.get("table");
+ List<AqiResultVo> listG = list.stream().filter(it->yc.contains(it.getName())).collect(Collectors.toList());
+ List<AqiResultVo> listG1 = list.stream().filter(it->!yc.contains(it.getName())&&!it.getName().equals("������")).collect(Collectors.toList());
+
+
+ excelWriter.fill(map, writeSheet);
+ excelWriter.fill(new FillWrapper("data",listG),fillConfig, writeSheet);
+
+ map1.put("title1",map2.get("title"));
+ excelWriter.fill(map1, writeSheet1);
+ List<SixConcentrationsVo> list1 = (List<SixConcentrationsVo>) map1.get("table");
+ testController.listReplaceName(list1);
+ List<SixConcentrationsVo> list1G = list1.stream().filter(it->yc.contains(it.getName())).collect(Collectors.toList());
+ List<SixConcentrationsVo> list1G1 = list1.stream().filter(it->!yc.contains(it.getName())&&!it.getName().equals("������")).collect(Collectors.toList());
+
+ List<SixConcentrationsVo> list2 = (List<SixConcentrationsVo>) map2.get("table");
+ testController.listReplaceName(list2);
+ List<SixConcentrationsVo> list2G = list2.stream().filter(it->yc.contains(it.getName())).collect(Collectors.toList());
+ List<SixConcentrationsVo> list2G1 = list2.stream().filter(it->!yc.contains(it.getName())&&!it.getName().equals("������")).collect(Collectors.toList());
+
+ List<SixConcentrationsVo> list3 = (List<SixConcentrationsVo>) map3.get("table");
+ testController.listReplaceName(list3);
+ List<SixConcentrationsVo> list3G = list3.stream().filter(it->yc.contains(it.getName())).collect(Collectors.toList());
+ List<SixConcentrationsVo> list3G1 = list3.stream().filter(it->!yc.contains(it.getName())&&!it.getName().equals("������")).collect(Collectors.toList());
+
+ List<SixConcentrationsVo> list4 = (List<SixConcentrationsVo>) map4.get("table");
+ testController.listReplaceName(list4);
+ List<SixConcentrationsVo> list4G = list4.stream().filter(it->yc.contains(it.getName())).collect(Collectors.toList());
+ List<SixConcentrationsVo> list4G1 = list4.stream().filter(it->!yc.contains(it.getName())&&!it.getName().equals("������")).collect(Collectors.toList());
+
+ excelWriter.fill(new FillWrapper("data1",list1G),fillConfig, writeSheet1);
+ excelWriter.fill(new FillWrapper("data2",list2G),fillConfig, writeSheet1);
+ excelWriter.fill(new FillWrapper("data3",list3G),fillConfig, writeSheet1);
+ excelWriter.fill(new FillWrapper("data4",list4G),fillConfig, writeSheet1);
+
+ map5.put("title3",map5.get("title"));
+ map5.put("title4",map6.get("title"));
+ excelWriter.fill(map5, writeSheet2);
+ List<SixConcentrationsVo> list5 = (List<SixConcentrationsVo>) map5.get("table");
+ testController.listReplaceName(list5);
+ List<SixConcentrationsVo> list5G = list5.stream().filter(it->yc.contains(it.getName())).collect(Collectors.toList());
+ List<SixConcentrationsVo> list5G1 = list5.stream().filter(it->!yc.contains(it.getName())&&!it.getName().equals("������")).collect(Collectors.toList());
+
+ List<SixConcentrationsVo> list6 = (List<SixConcentrationsVo>) map6.get("table");
+ testController.listReplaceName(list6);
+ List<SixConcentrationsVo> list6G = list6.stream().filter(it->yc.contains(it.getName())).collect(Collectors.toList());
+ List<SixConcentrationsVo> list6G1 = list6.stream().filter(it->!yc.contains(it.getName())&&!it.getName().equals("������")).collect(Collectors.toList());
+
+ List<SixConcentrationsVo> list7 = (List<SixConcentrationsVo>) map7.get("table");
+ testController.listReplaceName(list7);
+ List<SixConcentrationsVo> list7G = list7.stream().filter(it->yc.contains(it.getName())).collect(Collectors.toList());
+ List<SixConcentrationsVo> list7G1 = list7.stream().filter(it->!yc.contains(it.getName())&&!it.getName().equals("������")).collect(Collectors.toList());
+
+ List<SixConcentrationsVo> list8 = (List<SixConcentrationsVo>) map8.get("table");
+ testController.listReplaceName(list8);
+ List<SixConcentrationsVo> list8G = list8.stream().filter(it->yc.contains(it.getName())).collect(Collectors.toList());
+ List<SixConcentrationsVo> list8G1 = list8.stream().filter(it->!yc.contains(it.getName())&&!it.getName().equals("������")).collect(Collectors.toList());
+
+ excelWriter.fill(new FillWrapper("data5",list5G),fillConfig, writeSheet2);
+ excelWriter.fill(new FillWrapper("data6",list6G),fillConfig, writeSheet2);
+ excelWriter.fill(new FillWrapper("data7",list7G),fillConfig, writeSheet2);
+ excelWriter.fill(new FillWrapper("data8",list8G),fillConfig, writeSheet2);
+
+
+ //excelWriter.fill(map, writeSheet1);
+ //excelWriter.fill(new FillWrapper("time2",list),fillConfig, writeSheet1);
+ excelWriter.finish();
+
+ //String templateFile1 = "E:/java/������-������������������00.xlsx";
+ // ���������������������������������������������������������
+ //String resultFile1 = "E:/java/������-������������������1.xlsx";
+ String templateFile1 = basePath+"/������-������������������00.xlsx";
+ String resultFileName1 = endDateTime+"������������.xlsx";
+ String resultFile1 = UUID.randomUUID().toString()+".xlsx";;
+ storageFile(filePath.concat(resultFile1));
+ // ������������������������������������
+ ExcelWriter excelWriter1 = EasyExcel
+ .write(filePath.concat(resultFile1))
+ .withTemplate(templateFile1)
+ // ���������������������������
+// .registerWriteHandler(new CellStyleHandler())
+ .build();
+ WriteSheet writeSheet4 = EasyExcel.writerSheet("���������").build();
+ WriteSheet writeSheet5 = EasyExcel.writerSheet("���������").build();
+ WriteSheet writeSheet6 = EasyExcel.writerSheet("���������").build();
+ map.put("title1",map0.get("title"));
+ excelWriter1.fill(map, writeSheet4);
+ List<AqiResultVo> list0 = (List<AqiResultVo>) map0.get("table");
+ excelWriter1.fill(new FillWrapper("data",listG1),fillConfig, writeSheet4);
+ excelWriter1.fill(new FillWrapper("data0",list0),fillConfig, writeSheet4);
+ //map1.put("title1",map2.get("title"));
+ excelWriter1.fill(map1, writeSheet5);
+ excelWriter1.fill(new FillWrapper("data1",list1G1),fillConfig, writeSheet5);
+ excelWriter1.fill(new FillWrapper("data2",list2G1),fillConfig, writeSheet5);
+ excelWriter1.fill(new FillWrapper("data3",list3G1),fillConfig, writeSheet5);
+ excelWriter1.fill(new FillWrapper("data4",list4G1),fillConfig, writeSheet5);
+
+ excelWriter1.fill(map5, writeSheet6);
+ excelWriter1.fill(new FillWrapper("data5",list5G1),fillConfig, writeSheet6);
+ excelWriter1.fill(new FillWrapper("data6",list6G1),fillConfig, writeSheet6);
+ excelWriter1.fill(new FillWrapper("data7",list7G1),fillConfig, writeSheet6);
+ excelWriter1.fill(new FillWrapper("data8",list8G1),fillConfig, writeSheet6);
+ excelWriter1.finish();
+ log.info("������������������");
+ List<AqiResultVo> Yc = listG.stream().filter(it->it.getName().equals("������������")).collect(Collectors.toList());
+ // ���-������
+ SixConcentrationsVo ycMon = testController.sixResult(list1G,"������������");
+ SixConcentrationsVo ycMonOld = testController.sixResult(list2G,"������������");
+ SixConcentrationsVo ycYMon = testController.sixResult(list3G,"������������");
+ SixConcentrationsVo ycYMonOld = testController.sixResult(list4G,"������������");
+ // ���-������
+ SixConcentrationsVo ycYear = testController.sixResult(list5G,"������������");
+ SixConcentrationsVo ycYearOld = testController.sixResult(list6G,"������������");
+ SixConcentrationsVo ycYYear = testController.sixResult(list7G,"������������");
+ SixConcentrationsVo ycYYearOld = testController.sixResult(list8G,"������������");
+ // ���������
+ int surplusDay = (int) surplusMap.get("surplusDay");
+ int surplusOldDay = (int) surplusOldMap.get("surplusDay");
+
+
+ StringBuilder broadcast = new StringBuilder();
+ String timeDay = map.get("title").toString().substring(3,map.get("title").toString().length());
+ String timeMon = map1.get("title").toString().substring(3,map1.get("title").toString().length());
+ String timeYear = map5.get("title").toString().substring(3,map5.get("title").toString().length());
+ broadcast.append("������������������������").append(timeDay).append("���������������������������������������").append("\n");
+
+ broadcast.append("���������������������������������").append("\n");
+ broadcast.append(timeDay+"���������������������������������"+Yc.get(0).getCategory()+"���������PM2.5���������"+
+ Yc.get(0).getGranule25()+"������/������������O3���������"+Yc.get(0).getOO()+"������/������������������������").
+ append(Yc.get(0).getCategory().equals("���")||Yc.get(0).getCategory().equals("���")?"100%���":"0%���").append("\n");
+ broadcast.append(timeMon+"������������PM2.5���������������"+ycMon.getPM25()+"������/������������������"+testController.compareYear(ycMon.getPM25(),ycMonOld.getPM25(),2)+"���O3���������������");
+ broadcast.append(ycMon.getOOAvg()+"������/������������������"+testController.compareYear(ycMon.getOOAvg(),ycMonOld.getOOAvg(),2)+"���������������"+ycYMon.getExcellentRateRatio()+"%���������"+testController.compareYear(ycYMon.getExcellentRateRatio(),ycYMonOld.getExcellentRateRatio(),1)+"���").append("\n");
+ broadcast.append("������"+timeDay+",���������PM2.5���������������"+ycYear.getPM25()+"������/������������������"+testController.compareYear(ycYear.getPM25(),ycYearOld.getPM25(),2)+"���O3���������������");
+ broadcast.append(ycYear.getOOAvg()+"������/������������������"+testController.compareYear(ycYear.getOOAvg(),ycYearOld.getOOAvg(),2)+"���������������"+ycYYear.getExcellentRateRatio()+"%���������"+testController.compareYear(ycYYear.getExcellentRateRatio(),ycYYearOld.getExcellentRateRatio(),1)+"���").append("\n");
+ broadcast.append("\n");
+
+ broadcast.append("���������������������������������������������").append("\n");
+ broadcast.append("������"+timeDay+"������������ PM2.5���������������"+ycYear.getPM25()+"������/������������������������"+ycYearOld.getPM25()+"������/���������������������"+testController.compareYear(ycYear.getPM25(),ycYearOld.getPM25(),2)+"���������PM2.5���������������������������27.0������/������������������");
+ broadcast.append(testController.annualTarget(ycYear.getPM25(),27.0,resultDate)+"���������������������"+ycYYear.getExcellentRateRatio()+"���������������"+ycYYearOld.getExcellentRateRatio()+"������������"+testController.compareYear(ycYYear.getExcellentRateRatio(),ycYYearOld.getExcellentRateRatio(),1)+"������������������"+surplusDay+"���������������������������������������������"+(surplusDay-surplusOldDay)+"������").append("\n");
+ broadcast.append("\n");
+
+ broadcast.append("������������������������������������").append("\n");
+ broadcast.append("������"+timeDay+"������������������������������������������������").append("\n");;
+ List<SixConcentrationsVo> list5G2 = list5G1.stream().filter(it->gk.contains(it.getName())&&!it.getName().equals("������")).collect(Collectors.toList());
+ List<SixConcentrationsVo> list6G2 = list6G1.stream().filter(it->gk.contains(it.getName())&&!it.getName().equals("������")).collect(Collectors.toList());
+ List<SixConcentrationsVo> list5G3 = testController.resultList(list5G2,list6G2,2);
+ broadcast.append("PM2.5���������������������������������������������������"+testController.rankingList(list5G2,1)).append("���������������������������������"+testController.rankingList(list5G3,2)).append("\n");
+ broadcast.append("O3���������������������������������������������������"+testController.rankingList(list5G2,3)).append("���������������������������������"+testController.rankingList(list5G3,4)).append("\n");
+ List<SixConcentrationsVo> list7G2 = list7G1.stream().filter(it->gk.contains(it.getName())&&!it.getName().equals("������")).collect(Collectors.toList());
+ List<SixConcentrationsVo> list8G2 = list8G1.stream().filter(it->gk.contains(it.getName())&&!it.getName().equals("������")).collect(Collectors.toList());
+ List<SixConcentrationsVo> list7G3 = testController.resultList(list7G2,list8G2,1);
+ broadcast.append("������������������������������������������������������������"+testController.rankingList(list7G2,5)).append("���������������������������������"+testController.rankingList(list7G3,6)).append("\n");;
+ broadcast.append("\n");
+
+ broadcast.append("������������������������������������").append("\n");
+ broadcast.append("������"+timeDay+"������������������������������������������������").append("\n");;
+ List<SixConcentrationsVo> list5G4 = list5G1.stream().filter(it->!gk.contains(it.getName())&&!it.getName().equals("������")&&!it.getName().equals("���������������(���������)")).collect(Collectors.toList());
+ List<SixConcentrationsVo> list6G4 = list6G1.stream().filter(it->!gk.contains(it.getName())&&!it.getName().equals("������")).collect(Collectors.toList());
+ List<SixConcentrationsVo> list5G5 = testController.resultList(list5G4,list6G4,2);
+ broadcast.append("PM2.5���������������������������������������������������"+testController.rankingList(list5G4,1)).append("���������������������������������"+testController.rankingList(list5G5,2)).append("\n");
+ broadcast.append("O3���������������������������������������������������"+testController.rankingList(list5G4,3)).append("���������������������������������"+testController.rankingList(list5G5,4)).append("\n");
+ List<SixConcentrationsVo> list7G4 = list7G1.stream().filter(it->!gk.contains(it.getName())&&!it.getName().equals("������")&&!it.getName().equals("���������������(���������)")).collect(Collectors.toList());
+ List<SixConcentrationsVo> list8G4= list8G1.stream().filter(it->!gk.contains(it.getName())&&!it.getName().equals("������")).collect(Collectors.toList());
+ List<SixConcentrationsVo> list7G5 = testController.resultList(list7G4,list8G4,1);
+ broadcast.append("������������������������������������������������������������"+testController.rankingList(list7G4,5)).append("���������������������������������"+testController.rankingList(list7G5,6)).append("\n");
+ broadcast.append("\n");
+
+ broadcast.append("���11������������������������������������������").append("\n");
+ broadcast.append(timeMon+"���������������������������������������������������������").append("\n");
+ List<SixConcentrationsVo> list1G0 = list1G.stream().filter(it->!it.getName().equals("������������")).collect(Collectors.toList());
+ List<SixConcentrationsVo> list1G3 = testController.resultList(list1G0,list2G,2);
+ broadcast.append("PM2.5���������������������������������������������������"+testController.rankingList(list1G0,1)).append("���������������������������������"+testController.rankingList(list1G3,2)).append("\n");
+ broadcast.append("O3���������������������������������������������������"+testController.rankingList(list1G0,3)).append("���������������������������������"+testController.rankingList(list1G3,4)).append("\n");
+ List<SixConcentrationsVo> list3G0 = list3G.stream().filter(it->!it.getName().equals("������������")).collect(Collectors.toList());
+ List<SixConcentrationsVo> list3G3 = testController.resultList(list3G0,list4G,1);
+ broadcast.append("������������������������������������������������������������"+testController.rankingList(list3G0,5)).append("���������������������������������"+testController.rankingList(list3G3,6)).append("\n");
+
+ broadcast.append("������"+timeDay+"���������������������������������������������������������").append("\n");
+ List<SixConcentrationsVo> list5G00 = list5G.stream().filter(it->!it.getName().equals("������������")).collect(Collectors.toList());
+ List<SixConcentrationsVo> list5G0 = testController.resultList(list5G00,list6G,2);
+ broadcast.append("PM2.5���������������������������������������������������"+testController.rankingList(list5G00,1)).append("���������������������������������"+testController.rankingList(list5G0,2)).append("\n");
+ broadcast.append("O3���������������������������������������������������"+testController.rankingList(list5G00,3)).append("���������������������������������"+testController.rankingList(list5G0,4)).append("\n");
+ List<SixConcentrationsVo> list7G00 = list7G.stream().filter(it->!it.getName().equals("������������")).collect(Collectors.toList());
+ List<SixConcentrationsVo> list7G0 = testController.resultList(list7G00,list8G,1);
+ broadcast.append("������������������������������������������������������������"+testController.rankingList(list7G00,5)).append("���������������������������������"+testController.rankingList(list7G0,6)).append("\n");
+ broadcast.append("\n");
+
+ log.info(broadcast.toString());
+ log.info("������������");
+
+ // ������������ ������
+ LambdaQueryChainWrapper<YcGenerateReport> wrapper = ycGenerateReportService.lambdaQuery();
+ wrapper.eq(YcGenerateReport::getReportTime,DateUtils.convertDate(endDateTime));
+ YcGenerateReport ycGenerateReport = wrapper.one();
+ if(ycGenerateReport == null){
+ ycGenerateReport = new YcGenerateReport();
+ ycGenerateReport.setReportTime(DateUtils.convertDate(endDateTime));
+ ycGenerateReport.setReportContent(broadcast.toString()).setOriginalContent(broadcast.toString());
+ ycGenerateReportService.save(ycGenerateReport);
+ }else {
+ ycGenerateReport.setReportContent(broadcast.toString()).setOriginalContent(broadcast.toString());
+ ycGenerateReportService.updateById(ycGenerateReport);
+ }
+
+ Integer id = ycGenerateReport.getId();
+ LambdaQueryChainWrapper<FileTable> wrapperFile = fileTableService.lambdaQuery();
+ wrapperFile.eq(FileTable::getFileModule,FileTableEnum.YC_GENERATEEXCEL.getValue());
+ wrapperFile.eq(FileTable::getRelationId,id);
+ List<FileTable> listFileTable = wrapperFile.list();
+ if(CollectionUtils.isNotEmpty(listFileTable)){
+ listFileTable.forEach(it->it.setIsDel(1));
+ fileTableService.updateBatchById(listFileTable);
+ }
+ // ������������������
+ QxUser user = UserHelper.getCurrentUser();
+ FileTable fileTable = new FileTable();
+ fileTable.setFileModule(FileTableEnum.YC_GENERATEEXCEL.getValue()).setRelationId(id)
+ .setFileName(resultFileName).setFileAddress(path.concat(resultFile)).setFileType(FileType.EXCEL.getValue());
+ if (Objects.nonNull(user)) {
+ fileTable.setCreateId(user.getUserId()).setCreateName(user.getUserName()).setCreateTime(new Date());
+ }
+ fileTableService.save(fileTable);
+ fileTable.setFileName(resultFileName1).setFileAddress(path.concat(resultFile));
+ fileTableService.save(fileTable);
+
+ }
+ public static void main(String[] args) {
+ Date date = new Date();
+ SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+ sdf.setTimeZone(TimeZone.getTimeZone("GMT+8")); // ������������������������
+ String dateString = sdf.format(date);
+ System.out.println(dateString);
+ }
+
+ public String compareYear(Double d1,Double d2,int type){
+ BigDecimal r = BigDecimal.ZERO;
+ BigDecimal decimal = d2==null?BigDecimal.ZERO:new BigDecimal(d2);
+ if(type == 1){
+ r = (new BigDecimal(d1).subtract(decimal)).setScale(1, BigDecimal.ROUND_HALF_UP).stripTrailingZeros();
+ }else {
+ if(d2==null){
+ r = new BigDecimal(100).setScale(1, BigDecimal.ROUND_HALF_UP).stripTrailingZeros();
+ }else {
+ r = (new BigDecimal(d1).subtract(decimal)).divide(decimal,3, BigDecimal.ROUND_HALF_UP).multiply(BigDecimal.valueOf(100d)).stripTrailingZeros();
+ }
+ }
+ if(1 == r.compareTo(BigDecimal.ZERO)){
+ return 1==type?"������"+r.toPlainString()+"������������" :"������"+r.toPlainString()+"%";
+ }else if(0 == r.compareTo(BigDecimal.ZERO)){
+ return "������";
+ }else {
+ r = r.abs().setScale(2,BigDecimal.ROUND_HALF_UP).stripTrailingZeros();
+ return 1==type?"������"+r.toPlainString()+"������������" :"������"+r.toPlainString()+"%";
+ }
+ }
+
+ public List<Object> compareYearList(Double d1,Double d2,int type){
+ BigDecimal decimal = d2==null?BigDecimal.ZERO:new BigDecimal(d2);
+ List<Object> list = new ArrayList<>();
+ BigDecimal r = BigDecimal.ZERO;
+ if(type == 1){
+ r = (new BigDecimal(d1).subtract(decimal)).setScale(1, BigDecimal.ROUND_HALF_UP).stripTrailingZeros();
+ }else {
+ if(d2 == null){
+ r = new BigDecimal(100).setScale(1, BigDecimal.ROUND_HALF_UP).stripTrailingZeros();
+ }else {
+ r = (new BigDecimal(d1).subtract(decimal)).divide(new BigDecimal(d2),3, BigDecimal.ROUND_HALF_UP).multiply(BigDecimal.valueOf(100d)).stripTrailingZeros();
+
+ }
+ }
+ list.add(r);
+ if(1 == r.compareTo(BigDecimal.ZERO)){
+ if(1==type){
+ list.add("������"+r.toPlainString()+"������������");
+ }else {
+ list.add("������"+r.toPlainString()+"%");
+ }
+ }else if(0 == r.compareTo(BigDecimal.ZERO)){
+ list.add("������");
+ }else {
+ r = r.abs().setScale(2,BigDecimal.ROUND_HALF_UP).stripTrailingZeros();
+ if(1==type){
+ list.add("������"+r.toPlainString()+"������������");
+ }else {
+ list.add("������"+r.toPlainString()+"%");
+ }
+ }
+ return list;
+ }
+
+ public SixConcentrationsVo sixResult(List<SixConcentrationsVo> list,String name){
+ SixConcentrationsVo sixConcentrationsVo = new SixConcentrationsVo();
+ if(CollectionUtils.isNotEmpty(list)){
+ sixConcentrationsVo = list.stream().filter(it->it.getName().equals(name)).collect(Collectors.toList()).get(0);
+ }
+ return sixConcentrationsVo;
+ }
+ public String annualTarget(Double d,Double target,Date date){
+ int year = DateUtils.getYear(date);
+ int totalDays = Year.of(year).length();
+ LocalDate todayLast = LocalDate.now().minusDays(1);
+ LocalDate yearEnd = LocalDate.of(year, 12, 31);
+ long daysLeft = yearEnd.toEpochDay() - todayLast.toEpochDay();
+ BigDecimal r = new BigDecimal(target).multiply(new BigDecimal(totalDays));
+ BigDecimal r1 = new BigDecimal(d).multiply(new BigDecimal(totalDays-daysLeft));
+ BigDecimal r3 = (r.subtract(r1)).divide(new BigDecimal(daysLeft),1,BigDecimal.ROUND_HALF_UP);
+ return daysLeft+"���PM2.5���������������������"+r3+"������/������������";
+ }
+
+ public String rankingList(List<SixConcentrationsVo> list,int type){
+ List<SixConcentrationsVo> resultList = new ArrayList<>();
+ String resultStr = null;
+ if(1 == type){
+ resultList = list.stream().sorted(Comparator.comparing(SixConcentrationsVo::getPM25,Comparator.reverseOrder())).collect(Collectors.toList());
+
+ }else if(2 == type){
+ resultList = list.stream().sorted(Comparator.comparing(SixConcentrationsVo::getYoYPM25,Comparator.reverseOrder())).collect(Collectors.toList());
+
+ }else if(3 == type){
+ resultList = list.stream().sorted(Comparator.comparing(SixConcentrationsVo::getOOAvg,Comparator.reverseOrder())).collect(Collectors.toList());
+
+ }else if(4 == type){
+ resultList = list.stream().sorted(Comparator.comparing(SixConcentrationsVo::getYoYO3,Comparator.reverseOrder())).collect(Collectors.toList());
+ }else if(5 == type){
+ resultList = list.stream().sorted(Comparator.comparing(SixConcentrationsVo::getExcellentRateRatio)).collect(Collectors.toList());
+ }else if(6 == type){
+ resultList = list.stream().sorted(Comparator.comparing(SixConcentrationsVo::getExcellentRateRatioYoY)).collect(Collectors.toList());
+ }
+
+ resultStr = improveList(resultList,type,1);
+ return resultStr;
+ }
+
+ public List<SixConcentrationsVo> resultList(List<SixConcentrationsVo> list1,List<SixConcentrationsVo> list2,int type){
+ for(SixConcentrationsVo x : list1){
+ for(SixConcentrationsVo x1 : list2){
+ if(x.getName().equals(x1.getName())){
+ if(type == 1){
+ List<Object> rateRatioList = compareYearList(x.getExcellentRateRatio(),x1.getExcellentRateRatio(),1);
+ BigDecimal excellentRateRatioYoY = (BigDecimal) rateRatioList.get(0);
+ x.setExcellentRateRatioYoY(excellentRateRatioYoY.doubleValue());
+ x.setExcellentRateRatioYoYStr(rateRatioList.get(1).toString());
+ }else {
+ List<Object> pm25List = compareYearList(x.getPM25(),x1.getPM25(),2);
+ x.setYoYPM25((BigDecimal) pm25List.get(0));
+ x.setYoYPM25Str(pm25List.get(1).toString());
+ List<Object> o3List = compareYearList(x.getOOAvg(),x1.getOOAvg(),2);
+ x.setYoYO3((BigDecimal) o3List.get(0));
+ x.setYoYO3Str(o3List.get(1).toString());
+ }
+ }
+ }
+ }
+ return list1;
+ }
+
+ private String improveList(List<SixConcentrationsVo> resultList,int type,int lastType){
+ //resultList.stream().sorted(Comparator.comparing(SixConcentrationsVo::getPM25,Comparator.reverseOrder())).collect(Collectors.toList());
+ int num = 1;
+ int numLength = 1;
+ Map<String,List<SixConcentrationsVo>> map = new LinkedHashMap<>();
+ for(int i = 0;i<resultList.size();i++){
+ SixConcentrationsVo concentrationsVo = resultList.get(i);
+ if(StringUtils.isEmpty(concentrationsVo.getName())&&!StringUtils.isEmpty(concentrationsVo.getExcellentRateName())){
+ concentrationsVo.setName(concentrationsVo.getExcellentRateName());
+ }
+ String result = null;
+ boolean numType =false;
+ if(num>3){
+ numType =true;
+ }
+ //pm2.5���2.5���������O3,O3������
+ if(1 == type){
+ result = Double.toString(concentrationsVo.getPM25());
+ }else if(2 == type){
+ result = concentrationsVo.getYoYPM25Str();
+ }else if(3 == type){
+ result = Double.toString(concentrationsVo.getOOAvg());
+ }else if(4 == type){
+ result = concentrationsVo.getYoYO3Str();
+ }else if(5 == type){
+ result = Double.toString(concentrationsVo.getExcellentRateRatio());
+ }else if(6 == type){
+ result = concentrationsVo.getExcellentRateRatioYoYStr();
+ }
+
+ if(map.containsKey(result)){
+ numType =false;
+ }
+ if(numType){
+ break;
+ }
+ if(!map.containsKey(result)){
+ if(numLength >3){
+ break;
+ }
+ List<SixConcentrationsVo> list = new ArrayList<>();
+ list.add(concentrationsVo);
+ map.put(result,list);
+ num++;
+ }else {
+ List<SixConcentrationsVo> list = map.get(result);
+ list.add(concentrationsVo);
+ map.put(result ,list);
+ }
+ numLength++;
+ }
+ StringBuilder topThree = new StringBuilder();
+ StringBuilder topThreeNum = new StringBuilder();
+
+ num = 1;
+ int mapNum = map.size();
+ String unitName = null;
+ if(1 == type||3 == type){
+ unitName = "������/���������";
+ }else if(5 == type){
+ unitName = "%";
+ }else{
+ unitName = "";
+ }
+ for(Map.Entry entry : map.entrySet()){
+ String mapKey = entry.getKey().toString();
+ List<SixConcentrationsVo> mapValue = (List<SixConcentrationsVo>)entry.getValue();
+ if(1 == mapValue.size()){
+ topThree.append(mapValue.get(0).getName());
+ topThreeNum.append(mapKey).append(unitName);
+ }else{
+ topThree.append(mapValue.get(0).getName()).append("���");
+ /* if(5 == type){
+ topThreeNum.append(mapKey+"%").append(unitName).append("���");
+ }else {
+
+ }*/
+ topThreeNum.append(mapKey).append(unitName).append("���");
+ for(int i = 1 ;i<mapValue.size();i++){
+ if(i == mapValue.size()-1){
+ topThreeNum.append(mapKey).append(unitName).append("���");
+ topThree.append(mapValue.get(i).getName()).append("���������");
+ }else {
+ topThreeNum.append(mapKey).append(unitName).append("���");
+ topThree.append(mapValue.get(i).getName()).append("���");
+ }
+
+ }
+ }
+
+ if(num<mapNum){
+ topThree.append("���");
+ topThreeNum.append("���");
+ }else {
+ topThree.append("���");
+ if(6 == type){
+ topThreeNum.append("���");
+ }else {
+ topThreeNum.append(";");
+ }
+
+ }
+ num++;
+ }
+ String resultTopThree = null;
+ if(1 == type || 3 == type){
+ resultTopThree = topThree.toString()+"���������������"+topThreeNum.toString();
+ }else if(2 == type || 4 == type || 6 == type){
+ resultTopThree = topThree.toString()+"���������������"+topThreeNum.toString();
+ }else if(5 == type){
+ resultTopThree = topThree.toString()+"���������������"+topThreeNum.toString();
+ }
+
+ return resultTopThree;
+ }
+
+ public void listReplaceName(List<SixConcentrationsVo> list){
+ for(SixConcentrationsVo l : list){
+ if(org.apache.commons.lang3.StringUtils.isNotEmpty(l.getName())&&l.getName().equals("������������������(���)")){
+ l.setName("������������������");
+ }
+ if(org.apache.commons.lang3.StringUtils.isNotEmpty(l.getName())&&l.getName().equals("���������(���)")){
+ l.setName("���������");
+ }
+ if(org.apache.commons.lang3.StringUtils.isNotEmpty(l.getExcellentRateName())&&l.getExcellentRateName().equals("������������������(���)")){
+ l.setExcellentRateName("������������������");
+ }
+ if(org.apache.commons.lang3.StringUtils.isNotEmpty(l.getExcellentRateName())&&l.getExcellentRateName().equals("���������(���)")){
+ l.setExcellentRateName("���������");
+ }
+
+ }
+
+
+ }
+ private String getFilePath(String sysCode) {
+ return sysCode.concat(com.moral.api.utils.StringUtils.SLASH).concat(DateUtils.dateToDateString(new Date(),DateUtils.yyyyMMdd_EN)).concat(com.moral.api.utils.StringUtils.SLASH);
+ }
+
+ private void storageFile(String filePath){
+ File f = new File(filePath);
+ try {
+ // ������������
+ if (!f.getParentFile().exists()) {
+ boolean success = f.mkdir();
+ if (!f.getParentFile().mkdirs()) {
+ log.error("error:������������������! dir={}", f.getAbsolutePath());
+ }
+ }
+ } catch (Exception e) {
+ log.error("error:������������������!!!e={}", e.getMessage());
+ throw new BusinessException("������������������������������!");
+ }
+ }
+}
diff --git a/screen-api/src/main/java/com/moral/api/entity/YcGenerateReport.java b/screen-api/src/main/java/com/moral/api/entity/YcGenerateReport.java
new file mode 100644
index 0000000..35593f7
--- /dev/null
+++ b/screen-api/src/main/java/com/moral/api/entity/YcGenerateReport.java
@@ -0,0 +1,56 @@
+package com.moral.api.entity;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableLogic;
+import com.moral.api.pojo.bean.BaseInvalidEntity;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+
+import java.util.Date;
+
+/**
+ * <p>
+ * ���������������
+ * </p>
+ * deyt template generate
+ *
+ * @author JI
+ * @since 2024-03-26
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+@Accessors(chain = true)
+public class YcGenerateReport extends BaseInvalidEntity<YcGenerateReport> {
+
+
+ /**
+ * ������id
+ */
+ @TableId(value = "id", type = IdType.AUTO)
+ private Integer id;
+
+ /**
+ * ������������
+ */
+ private Date reportTime;
+
+ /**
+ * ������������
+ */
+ private String reportContent;
+
+ /**
+ * ������������
+ */
+ private String originalContent;
+
+
+ /**
+ * ������������
+ */
+ private String invalidReason;
+
+
+}
diff --git a/screen-api/src/main/java/com/moral/api/mapper/FileTableMapper.java b/screen-api/src/main/java/com/moral/api/mapper/FileTableMapper.java
index 6486afb..1860797 100644
--- a/screen-api/src/main/java/com/moral/api/mapper/FileTableMapper.java
+++ b/screen-api/src/main/java/com/moral/api/mapper/FileTableMapper.java
@@ -2,6 +2,10 @@
import com.moral.api.entity.FileTable;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.moral.api.pojo.vo.file.FileVo;
+
+import java.util.List;
+import java.util.Map;
/**
* <p>
@@ -13,4 +17,5 @@
*/
public interface FileTableMapper extends BaseMapper<FileTable> {
+ List<FileVo> fileList(Map map);
}
diff --git a/screen-api/src/main/java/com/moral/api/mapper/YcGenerateReportMapper.java b/screen-api/src/main/java/com/moral/api/mapper/YcGenerateReportMapper.java
new file mode 100644
index 0000000..d57fc56
--- /dev/null
+++ b/screen-api/src/main/java/com/moral/api/mapper/YcGenerateReportMapper.java
@@ -0,0 +1,54 @@
+package com.moral.api.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.moral.api.entity.YcGenerateReport;
+import com.moral.api.pojo.ext.ycgeneratereport.YcGenerateReportExt;
+import com.moral.api.pojo.ext.ycgeneratereport.YcGenerateReportListExt;
+import com.moral.api.pojo.ext.ycgeneratereport.YcGenerateReportPageExt;
+import com.moral.api.pojo.query.ycgeneratereport.YcGenerateReportListCond;
+import com.moral.api.pojo.query.ycgeneratereport.YcGenerateReportPageCond;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+
+/**
+ * <p>
+ * ��������������� Mapper ������
+ * </p>
+ * deyt template generate
+ * @author JI
+ * @since 2024-03-26
+ */
+public interface YcGenerateReportMapper extends BaseMapper<YcGenerateReport> {
+
+ /**
+ * ������������
+ * @param param
+ * @return
+ */
+ int deleteByIdWithFill(YcGenerateReport param);
+
+ /**
+ * ������������������
+ * @param id
+ * @return YcGenerateReportExt
+ */
+ YcGenerateReportExt extOne(@Param("id") Integer id);
+
+ /**
+ * ������������������
+ * @param ycGenerateReportListCond
+ * @return YcGenerateReportListExt
+ */
+ List<YcGenerateReportListExt> extList(@Param("ycgeneratereport") YcGenerateReportListCond ycGenerateReportListCond);
+
+ /**
+ * ������������������
+ * @param page
+ * @param ycGenerateReportPageCond
+ * @return YcGenerateReportPageExt
+ */
+ Page<YcGenerateReportPageExt> extPage(Page page, @Param("ycgeneratereport") YcGenerateReportPageCond ycGenerateReportPageCond);
+
+}
diff --git a/screen-api/src/main/java/com/moral/api/pojo/enums/FileTableEnum.java b/screen-api/src/main/java/com/moral/api/pojo/enums/FileTableEnum.java
index ca9b0bf..38f05cf 100644
--- a/screen-api/src/main/java/com/moral/api/pojo/enums/FileTableEnum.java
+++ b/screen-api/src/main/java/com/moral/api/pojo/enums/FileTableEnum.java
@@ -41,7 +41,10 @@
* ���������������
*/
APP_ALLOCATION(1202401, "app������"),
-
+ /**
+ * ������������excel
+ */
+ YC_GENERATEEXCEL(1250301, "������������������������"),
;
@EnumValue
diff --git a/screen-api/src/main/java/com/moral/api/pojo/ext/ycgeneratereport/YcGenerateReportExt.java b/screen-api/src/main/java/com/moral/api/pojo/ext/ycgeneratereport/YcGenerateReportExt.java
new file mode 100644
index 0000000..839cf8e
--- /dev/null
+++ b/screen-api/src/main/java/com/moral/api/pojo/ext/ycgeneratereport/YcGenerateReportExt.java
@@ -0,0 +1,21 @@
+package com.moral.api.pojo.ext.ycgeneratereport;
+
+import com.moral.api.entity.YcGenerateReport;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+
+/**
+ * <p>
+ * ���������������
+ * </p>
+ * deyt template generate
+ * @author JI
+ * @since 2024-03-26
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+@Accessors(chain = true)
+public class YcGenerateReportExt extends YcGenerateReport {
+
+}
diff --git a/screen-api/src/main/java/com/moral/api/pojo/ext/ycgeneratereport/YcGenerateReportListExt.java b/screen-api/src/main/java/com/moral/api/pojo/ext/ycgeneratereport/YcGenerateReportListExt.java
new file mode 100644
index 0000000..5ae3f3a
--- /dev/null
+++ b/screen-api/src/main/java/com/moral/api/pojo/ext/ycgeneratereport/YcGenerateReportListExt.java
@@ -0,0 +1,22 @@
+package com.moral.api.pojo.ext.ycgeneratereport;
+
+import com.moral.api.entity.YcGenerateReport;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+
+/**
+ * <p>
+ * ���������������
+ * </p>
+ * deyt template generate
+ * @author JI
+ * @since 2024-03-26
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+@Accessors(chain = true)
+public class YcGenerateReportListExt extends YcGenerateReport {
+
+}
+
diff --git a/screen-api/src/main/java/com/moral/api/pojo/ext/ycgeneratereport/YcGenerateReportPageExt.java b/screen-api/src/main/java/com/moral/api/pojo/ext/ycgeneratereport/YcGenerateReportPageExt.java
new file mode 100644
index 0000000..abb1139
--- /dev/null
+++ b/screen-api/src/main/java/com/moral/api/pojo/ext/ycgeneratereport/YcGenerateReportPageExt.java
@@ -0,0 +1,98 @@
+package com.moral.api.pojo.ext.ycgeneratereport;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableLogic;
+import com.moral.api.entity.YcGenerateReport;
+import com.moral.api.pojo.vo.file.FileVo;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+
+
+import java.sql.Date;
+import java.util.List;
+
+/**
+ * <p>
+ * ���������������
+ * </p>
+ * deyt template generate
+ * @author JI
+ * @since 2024-03-26
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+@Accessors(chain = true)
+public class YcGenerateReportPageExt{
+
+ /**
+ * ������id
+ */
+ private Integer id;
+
+ /**
+ * ������������
+ */
+ private Date reportTime;
+
+ /**
+ * ������������
+ */
+ private String reportContent;
+
+ /**
+ * ������������
+ */
+ private String originalContent;
+
+
+ /**
+ * ������������
+ */
+ @TableLogic
+ private Integer isDel;
+
+ /**
+ * ������������
+ */
+ private Integer isInvalid;
+
+ /**
+ * ������������
+ */
+ private String invalidReason;
+
+ /**
+ * ���������id
+ */
+ private Integer createId;
+
+ /**
+ * ���������������
+ */
+ private String createName;
+
+ /**
+ * ������������
+ */
+ private Date createTime;
+
+ /**
+ * ���������id
+ */
+ private Integer updateId;
+
+ /**
+ * ���������������
+ */
+ private String updateName;
+
+ /**
+ * ������������
+ */
+ private Date updateTime;
+
+
+ private List<FileVo> list;
+}
diff --git a/screen-api/src/main/java/com/moral/api/pojo/query/ycgeneratereport/YcGenerateReportAddCond.java b/screen-api/src/main/java/com/moral/api/pojo/query/ycgeneratereport/YcGenerateReportAddCond.java
new file mode 100644
index 0000000..630a08e
--- /dev/null
+++ b/screen-api/src/main/java/com/moral/api/pojo/query/ycgeneratereport/YcGenerateReportAddCond.java
@@ -0,0 +1,73 @@
+package com.moral.api.pojo.query.ycgeneratereport;
+
+import com.moral.api.entity.YcGenerateReport;
+import com.moral.api.utils.BeanConverts;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * <p>
+ * ���������������
+ * </p>
+ * deyt template generate
+ * @author JI
+ * @since 2024-03-26
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+@Accessors(chain = true)
+@ApiModel(value="YcGenerateReport - ������������", description="YcGenerateReport - ������������")
+public class YcGenerateReportAddCond implements Serializable {
+
+ @ApiModelProperty(value = "������id")
+ private Integer id;
+
+ @ApiModelProperty(value = "������������")
+ private Date reportTime;
+
+ @ApiModelProperty(value = "������������")
+ private String reportContent;
+
+ @ApiModelProperty(value = "������������")
+ private String originalContent;
+
+ @ApiModelProperty(value = "������������")
+ private Integer isDel;
+
+ @ApiModelProperty(value = "������������")
+ private Integer isInvalid;
+
+ @ApiModelProperty(value = "������������")
+ private String invalidReason;
+
+ @ApiModelProperty(value = "���������id")
+ private Integer createId;
+
+ @ApiModelProperty(value = "���������������")
+ private String createName;
+
+ @ApiModelProperty(value = "������������")
+ private Date createTime;
+
+ @ApiModelProperty(value = "���������id")
+ private Integer updateId;
+
+ @ApiModelProperty(value = "���������������")
+ private String updateName;
+
+ @ApiModelProperty(value = "������������")
+ private Date updateTime;
+
+
+
+ public YcGenerateReport convert() {
+ YcGenerateReport ycGenerateReport = BeanConverts.convert(this, YcGenerateReport.class);
+ return ycGenerateReport;
+ }
+}
diff --git a/screen-api/src/main/java/com/moral/api/pojo/query/ycgeneratereport/YcGenerateReportListCond.java b/screen-api/src/main/java/com/moral/api/pojo/query/ycgeneratereport/YcGenerateReportListCond.java
new file mode 100644
index 0000000..f652064
--- /dev/null
+++ b/screen-api/src/main/java/com/moral/api/pojo/query/ycgeneratereport/YcGenerateReportListCond.java
@@ -0,0 +1,28 @@
+package com.moral.api.pojo.query.ycgeneratereport;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+
+import java.io.Serializable;
+
+/**
+ * <p>
+ * ���������������
+ * </p>
+ * deyt template generate
+ * @author JI
+ * @since 2024-03-26
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+@Accessors(chain = true)
+@ApiModel(value="YcGenerateReport - ������������������", description="YcGenerateReport - ������������������")
+public class YcGenerateReportListCond implements Serializable {
+
+ @ApiModelProperty(value = "ID")
+ private Integer id;
+
+}
diff --git a/screen-api/src/main/java/com/moral/api/pojo/query/ycgeneratereport/YcGenerateReportPageCond.java b/screen-api/src/main/java/com/moral/api/pojo/query/ycgeneratereport/YcGenerateReportPageCond.java
new file mode 100644
index 0000000..fbb669e
--- /dev/null
+++ b/screen-api/src/main/java/com/moral/api/pojo/query/ycgeneratereport/YcGenerateReportPageCond.java
@@ -0,0 +1,34 @@
+package com.moral.api.pojo.query.ycgeneratereport;
+
+import com.moral.api.pojo.query.PageCond;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+
+import java.io.Serializable;
+
+/**
+ * <p>
+ * ���������������
+ * </p>
+ * deyt template generate
+ * @author JI
+ * @since 2024-03-26
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+@Accessors(chain = true)
+@ApiModel(value="YcGenerateReport - ������������������", description="YcGenerateReport - ������������������")
+public class YcGenerateReportPageCond implements Serializable{
+
+ @ApiModelProperty(value = "������������")
+ private String startTime;
+
+ @ApiModelProperty(value = "������������")
+ private String endTime;
+
+ @ApiModelProperty(value = "������������")
+ private PageCond page;
+}
diff --git a/screen-api/src/main/java/com/moral/api/pojo/query/ycgeneratereport/YcGenerateReportUpdateCond.java b/screen-api/src/main/java/com/moral/api/pojo/query/ycgeneratereport/YcGenerateReportUpdateCond.java
new file mode 100644
index 0000000..32d3c41
--- /dev/null
+++ b/screen-api/src/main/java/com/moral/api/pojo/query/ycgeneratereport/YcGenerateReportUpdateCond.java
@@ -0,0 +1,73 @@
+package com.moral.api.pojo.query.ycgeneratereport;
+
+import com.moral.api.entity.YcGenerateReport;
+import com.moral.api.utils.BeanConverts;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * <p>
+ * ���������������
+ * </p>
+ * deyt template generate
+ * @author JI
+ * @since 2024-03-26
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+@Accessors(chain = true)
+@ApiModel(value="YcGenerateReport - ������������", description="YcGenerateReport - ������������")
+public class YcGenerateReportUpdateCond implements Serializable {
+
+ @ApiModelProperty(value = "������id")
+ private Integer id;
+
+ @ApiModelProperty(value = "������������")
+ private Date reportTime;
+
+ @ApiModelProperty(value = "������������")
+ private String reportContent;
+
+ @ApiModelProperty(value = "������������")
+ private String originalContent;
+
+ @ApiModelProperty(value = "������������")
+ private Integer isDel;
+
+ @ApiModelProperty(value = "������������")
+ private Integer isInvalid;
+
+ @ApiModelProperty(value = "������������")
+ private String invalidReason;
+
+ @ApiModelProperty(value = "���������id")
+ private Integer createId;
+
+ @ApiModelProperty(value = "���������������")
+ private String createName;
+
+ @ApiModelProperty(value = "������������")
+ private Date createTime;
+
+ @ApiModelProperty(value = "���������id")
+ private Integer updateId;
+
+ @ApiModelProperty(value = "���������������")
+ private String updateName;
+
+ @ApiModelProperty(value = "������������")
+ private Date updateTime;
+
+
+
+ public YcGenerateReport convert() {
+ YcGenerateReport ycGenerateReport = BeanConverts.convert(this, YcGenerateReport.class);
+ return ycGenerateReport;
+ }
+}
diff --git a/screen-api/src/main/java/com/moral/api/pojo/query/ycgeneratereport/YcGenerateReportUploadCond.java b/screen-api/src/main/java/com/moral/api/pojo/query/ycgeneratereport/YcGenerateReportUploadCond.java
new file mode 100644
index 0000000..6c8d6ec
--- /dev/null
+++ b/screen-api/src/main/java/com/moral/api/pojo/query/ycgeneratereport/YcGenerateReportUploadCond.java
@@ -0,0 +1,35 @@
+package com.moral.api.pojo.query.ycgeneratereport;
+
+import com.moral.api.pojo.query.PageCond;
+import com.moral.api.pojo.vo.file.FileVo;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+
+import java.io.Serializable;
+import java.util.List;
+
+/**
+ * <p>
+ * ���������������
+ * </p>
+ * deyt template generate
+ * @author JI
+ * @since 2024-03-26
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+@Accessors(chain = true)
+@ApiModel(value="YcGenerateReportUploadCond - ������������������", description="YcGenerateReportUploadCond - ������������������")
+public class YcGenerateReportUploadCond implements Serializable{
+
+ @ApiModelProperty(value = "���������id")
+ private Integer id;
+
+ @ApiModelProperty(value = "������list")
+ private List<FileVo> list;
+
+
+}
diff --git a/screen-api/src/main/java/com/moral/api/pojo/vo/yc/AqiResultVo.java b/screen-api/src/main/java/com/moral/api/pojo/vo/yc/AqiResultVo.java
new file mode 100644
index 0000000..e3a2b73
--- /dev/null
+++ b/screen-api/src/main/java/com/moral/api/pojo/vo/yc/AqiResultVo.java
@@ -0,0 +1,80 @@
+package com.moral.api.pojo.vo.yc;
+import com.moral.api.controller.YcReptilesController;
+import lombok.AllArgsConstructor;
+import lombok.Builder;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+/**
+ * @ClassName TsetVo
+ * @Description TODO
+ * @Author @cjl
+ * @Date 2024-03-04 11:17
+ * @Version 1.0
+ */
+@Data
+@Builder
+@AllArgsConstructor
+@NoArgsConstructor
+public class AqiResultVo {
+ private String name;
+
+ private double SO2;
+
+ private double SO2Index;
+
+ private double NO2;
+
+ private double NO2Index;
+
+ private double granule;
+
+ private double granuleIndex;
+ private double CO;
+
+ private double COIndex;
+ private String OO;
+
+ private String OOIndex;
+
+ private double granule25;
+
+ private double granule25Index;
+
+ private String AQI;
+
+ private String SW;
+
+ private String airQuality;
+
+ private String category;
+
+ private String colour;
+
+ public static void main(String[] args) {
+ YcReptilesController testController = new YcReptilesController();
+ String str = testController.compareYear(42.6d, 46d,2);
+ System.out.println(str);
+ /*List<SixConcentrationsVo> list = new ArrayList<>();
+ list.add(SixConcentrationsVo.builder().name("������������").PM25(51d).build());
+ list.add(SixConcentrationsVo.builder().name("������������").PM25(32d).build());
+ list.add(SixConcentrationsVo.builder().name("������������������").PM25(51d).build());
+ list.add(SixConcentrationsVo.builder().name("���������������������").PM25(33d).build());
+ list.add(SixConcentrationsVo.builder().name("������������������").PM25(51d).build());
+
+ List<SixConcentrationsVo> list1 = new ArrayList<>();
+ list1.add(SixConcentrationsVo.builder().name("������������").PM25(89d).build());
+ list1.add(SixConcentrationsVo.builder().name("������������").PM25(32d).build());
+ list1.add(SixConcentrationsVo.builder().name("������������������").PM25(44d).build());
+ list1.add(SixConcentrationsVo.builder().name("���������������������").PM25(33d).build());
+ list1.add(SixConcentrationsVo.builder().name("������������������").PM25(78d).build());
+ List<SixConcentrationsVo> listAll = testController.resultList(list,list1,2);
+
+
+ String str = testController.rankingList(listAll,2);
+
+ System.out.println(str);*/
+
+ }
+}
+
diff --git a/screen-api/src/main/java/com/moral/api/pojo/vo/yc/SixConcentrationsVo.java b/screen-api/src/main/java/com/moral/api/pojo/vo/yc/SixConcentrationsVo.java
new file mode 100644
index 0000000..be4d729
--- /dev/null
+++ b/screen-api/src/main/java/com/moral/api/pojo/vo/yc/SixConcentrationsVo.java
@@ -0,0 +1,88 @@
+package com.moral.api.pojo.vo.yc;
+
+import lombok.AllArgsConstructor;
+import lombok.Builder;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.math.BigDecimal;
+
+/**
+ * @ClassName SixConcentrationsVo
+ * @Description TODO
+ * @Author @cjl
+ * @Date 2024-03-07 11:24
+ * @Version 1.0
+ */
+@Data
+@Builder
+@AllArgsConstructor
+@NoArgsConstructor
+public class SixConcentrationsVo {
+ private String name;
+
+ private double SO2;
+
+ private String SO2ExceedingMultiple;
+
+ private double SO2Avg;
+
+ private String SO2ExceedingMultipleTwo;
+
+ private double NO2;
+
+ private String NO2ExceedingMultiple;
+
+ private double NO2Avg;
+
+ private String NO2ExceedingMultipleTwo;
+
+ private double PM10;
+
+ private String PM10ExceedingMultiple;
+
+ private double PM10Avg;
+
+ private String PM10ExceedingMultipleTwo;
+
+ private double CO;
+
+ /*private String COExceedingMultiple;*/
+
+ private double COAvg;
+
+ private String COExceedingMultipleTwo;
+
+ private double OO;
+
+ /* private String OOExceedingMultiple;*/
+
+ private double OOAvg;
+
+ private String OOExceedingMultipleTwo;
+
+ private double PM25;
+
+ private String PM25ExceedingMultiple;
+
+ private double PM25Avg;
+
+ private String PM25ExceedingMultipleTwo;
+
+ private String excellentRateName;
+
+ private double excellentRateRatio;
+
+ private double excellentRateRatioYoY;
+
+ private BigDecimal YoYPM25;
+
+ private String YoYPM25Str;
+
+ private BigDecimal YoYO3;
+
+ private String YoYO3Str;
+
+ private String excellentRateRatioYoYStr;
+
+}
diff --git a/screen-api/src/main/java/com/moral/api/pojo/vo/ycgeneratereport/YcGenerateReportListVo.java b/screen-api/src/main/java/com/moral/api/pojo/vo/ycgeneratereport/YcGenerateReportListVo.java
new file mode 100644
index 0000000..2991635
--- /dev/null
+++ b/screen-api/src/main/java/com/moral/api/pojo/vo/ycgeneratereport/YcGenerateReportListVo.java
@@ -0,0 +1,80 @@
+package com.moral.api.pojo.vo.ycgeneratereport;
+
+import com.moral.api.pojo.ext.ycgeneratereport.YcGenerateReportListExt;
+import com.moral.api.utils.BeanConverts;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+
+import java.io.Serializable;
+import java.util.Date;
+import java.util.List;
+import java.util.stream.Collectors;
+
+/**
+ * <p>
+ * ���������������
+ * </p>
+ * deyt template generate
+ * @author JI
+ * @since 2024-03-26
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+@Accessors(chain = true)
+@ApiModel(value="YcGenerateReport - ������VO������", description="YcGenerateReport - ������VO������")
+public class YcGenerateReportListVo implements Serializable {
+
+
+ @ApiModelProperty(value = "������id")
+ private Integer id;
+
+ @ApiModelProperty(value = "������������")
+ private Date reportTime;
+
+ @ApiModelProperty(value = "������������")
+ private String reportContent;
+
+ @ApiModelProperty(value = "������������")
+ private String originalContent;
+
+ @ApiModelProperty(value = "������������")
+ private Integer isDel;
+
+ @ApiModelProperty(value = "������������")
+ private Integer isInvalid;
+
+ @ApiModelProperty(value = "������������")
+ private String invalidReason;
+
+ @ApiModelProperty(value = "���������id")
+ private Integer createId;
+
+ @ApiModelProperty(value = "���������������")
+ private String createName;
+
+ @ApiModelProperty(value = "������������")
+ private Date createTime;
+
+ @ApiModelProperty(value = "���������id")
+ private Integer updateId;
+
+ @ApiModelProperty(value = "���������������")
+ private String updateName;
+
+ @ApiModelProperty(value = "������������")
+ private Date updateTime;
+
+
+
+ public static YcGenerateReportListVo convert(YcGenerateReportListExt ycGenerateReportListExt) {
+ YcGenerateReportListVo ycGenerateReportListVo = BeanConverts.convert(ycGenerateReportListExt, YcGenerateReportListVo.class);
+ return ycGenerateReportListVo;
+ }
+
+ public static List<YcGenerateReportListVo> convert(List<YcGenerateReportListExt> ycGenerateReportListExtList) {
+ return ycGenerateReportListExtList.stream().map(YcGenerateReportListVo::convert).collect(Collectors.toList());
+ }
+}
diff --git a/screen-api/src/main/java/com/moral/api/pojo/vo/ycgeneratereport/YcGenerateReportPageVo.java b/screen-api/src/main/java/com/moral/api/pojo/vo/ycgeneratereport/YcGenerateReportPageVo.java
new file mode 100644
index 0000000..a1774bc
--- /dev/null
+++ b/screen-api/src/main/java/com/moral/api/pojo/vo/ycgeneratereport/YcGenerateReportPageVo.java
@@ -0,0 +1,79 @@
+package com.moral.api.pojo.vo.ycgeneratereport;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.moral.api.pojo.ext.ycgeneratereport.YcGenerateReportPageExt;
+import com.moral.api.pojo.vo.file.FileVo;
+import com.moral.api.utils.BeanConverts;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+import org.apache.commons.collections.CollectionUtils;
+
+import java.io.Serializable;
+import java.sql.Date;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.stream.Collectors;
+
+/**
+ * <p>
+ * ���������������
+ * </p>
+ * deyt template generate
+ * @author JI
+ * @since 2024-03-26
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+@Accessors(chain = true)
+@ApiModel(value="YcGenerateReport - ������VO������", description="YcGenerateReport - ������VO������")
+public class YcGenerateReportPageVo implements Serializable {
+
+
+ @ApiModelProperty(value = "������id")
+ private Integer id;
+
+ @ApiModelProperty(value = "������������")
+ @JsonFormat(pattern="yyyy-MM-dd", timezone = "GMT+8")
+ private Date reportTime;
+
+ @ApiModelProperty(value = "������������")
+ private String reportContent;
+
+ @ApiModelProperty(value = "���������id")
+ private Integer createId;
+
+ @ApiModelProperty(value = "���������������")
+ private String createName;
+
+ @ApiModelProperty(value = "������������")
+ private Date createTime;
+
+ @ApiModelProperty(value = "���������id")
+ private Integer updateId;
+
+ @ApiModelProperty(value = "���������������")
+ private String updateName;
+
+ @ApiModelProperty(value = "������������")
+ private Date updateTime;
+
+
+ @ApiModelProperty(value = "������")
+ private List<FileVo> list;
+
+ public static YcGenerateReportPageVo convert(YcGenerateReportPageExt ycGenerateReportPageExt) {
+ YcGenerateReportPageVo ycGenerateReportPageVo = BeanConverts.convert(ycGenerateReportPageExt, YcGenerateReportPageVo.class);
+ return ycGenerateReportPageVo;
+ }
+
+ public static List<YcGenerateReportPageVo> convert(List<YcGenerateReportPageExt> ycGenerateReportPageExtList) {
+ return ycGenerateReportPageExtList.stream().map(YcGenerateReportPageVo::convert).collect(Collectors.toList());
+ }
+
+ public List<FileVo> getList() {
+ return CollectionUtils.isEmpty(list)?new ArrayList<>():list;
+ }
+}
diff --git a/screen-api/src/main/java/com/moral/api/pojo/vo/ycgeneratereport/YcGenerateReportVo.java b/screen-api/src/main/java/com/moral/api/pojo/vo/ycgeneratereport/YcGenerateReportVo.java
new file mode 100644
index 0000000..87dee2f
--- /dev/null
+++ b/screen-api/src/main/java/com/moral/api/pojo/vo/ycgeneratereport/YcGenerateReportVo.java
@@ -0,0 +1,75 @@
+package com.moral.api.pojo.vo.ycgeneratereport;
+
+import com.moral.api.pojo.ext.ycgeneratereport.YcGenerateReportExt;
+import com.moral.api.utils.BeanConverts;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * <p>
+ * ���������������
+ * </p>
+ * deyt template generate
+ * @author JI
+ * @since 2024-03-26
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+@Accessors(chain = true)
+@ApiModel(value="YcGenerateReport - ������VO������", description="YcGenerateReport - ������VO������")
+public class YcGenerateReportVo implements Serializable {
+
+
+ @ApiModelProperty(value = "������id")
+ private Integer id;
+
+ @ApiModelProperty(value = "������������")
+ private Date reportTime;
+
+ @ApiModelProperty(value = "������������")
+ private String reportContent;
+
+ @ApiModelProperty(value = "������������")
+ private String originalContent;
+
+ @ApiModelProperty(value = "������������")
+ private Integer isDel;
+
+ @ApiModelProperty(value = "������������")
+ private Integer isInvalid;
+
+ @ApiModelProperty(value = "������������")
+ private String invalidReason;
+
+ @ApiModelProperty(value = "���������id")
+ private Integer createId;
+
+ @ApiModelProperty(value = "���������������")
+ private String createName;
+
+ @ApiModelProperty(value = "������������")
+ private Date createTime;
+
+ @ApiModelProperty(value = "���������id")
+ private Integer updateId;
+
+ @ApiModelProperty(value = "���������������")
+ private String updateName;
+
+ @ApiModelProperty(value = "������������")
+ private Date updateTime;
+
+
+
+ public static YcGenerateReportVo convert(YcGenerateReportExt ycGenerateReportExt) {
+ YcGenerateReportVo ycGenerateReportVo = BeanConverts.convert(ycGenerateReportExt, YcGenerateReportVo.class);
+ return ycGenerateReportVo;
+ }
+
+}
diff --git a/screen-api/src/main/java/com/moral/api/service/ReptileResultService.java b/screen-api/src/main/java/com/moral/api/service/ReptileResultService.java
new file mode 100644
index 0000000..33e274a
--- /dev/null
+++ b/screen-api/src/main/java/com/moral/api/service/ReptileResultService.java
@@ -0,0 +1,16 @@
+package com.moral.api.service;
+
+import java.util.Map;
+
+/**
+ * @ClassName reptileResultService
+ * @Description TODO
+ * @Author @cjl
+ * @Date 2024-02-27 13:50
+ * @Version 1.0
+ */
+public interface ReptileResultService {
+
+ Map<String,Object> getYcDaily(String url,String cookie,String time,int type);
+
+}
diff --git a/screen-api/src/main/java/com/moral/api/service/YcGenerateReportService.java b/screen-api/src/main/java/com/moral/api/service/YcGenerateReportService.java
new file mode 100644
index 0000000..f6897d7
--- /dev/null
+++ b/screen-api/src/main/java/com/moral/api/service/YcGenerateReportService.java
@@ -0,0 +1,67 @@
+package com.moral.api.service;
+
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.moral.api.entity.YcGenerateReport;
+import com.moral.api.pojo.ext.ycgeneratereport.YcGenerateReportExt;
+import com.moral.api.pojo.ext.ycgeneratereport.YcGenerateReportListExt;
+import com.moral.api.pojo.ext.ycgeneratereport.YcGenerateReportPageExt;
+import com.moral.api.pojo.query.ycgeneratereport.*;
+
+import java.util.List;
+
+/**
+ * <p>
+ * ��������������� ���������
+ * </p>
+ * deyt template generate
+ * @author JI
+ * @since 2024-03-26
+ */
+public interface YcGenerateReportService extends IService<YcGenerateReport> {
+
+ /**
+ * ������������
+ * @param id
+ * @return
+ */
+ boolean removeByIdWithFill(Integer id);
+
+ /**
+ * ������id������������
+ * @param id
+ * @return YcGenerateReportExt
+ */
+ YcGenerateReportExt extOne(Integer id);
+
+ /**
+ * ������������������
+ * @param ycGenerateReportListCond
+ * @return YcGenerateReportListExt
+ */
+ List<YcGenerateReportListExt> extList(YcGenerateReportListCond ycGenerateReportListCond);
+
+ /**
+ * ������������������
+ * @param ycGenerateReportPageCond
+ * @return YcGenerateReportPageExt
+ */
+ Page<YcGenerateReportPageExt> extPage(YcGenerateReportPageCond ycGenerateReportPageCond);
+
+ /**
+ * ������
+ * @param ycGenerateReportAddCond
+ * @return
+ */
+ boolean save(YcGenerateReportAddCond ycGenerateReportAddCond);
+
+ /**
+ * ������
+ * @param ycGenerateReportUpdateCond
+ * @return
+ */
+ boolean update(YcGenerateReportUpdateCond ycGenerateReportUpdateCond);
+
+
+ boolean fileUpload(YcGenerateReportUploadCond uploadCond);
+}
diff --git a/screen-api/src/main/java/com/moral/api/service/impl/ReptileResultServiceImpl.java b/screen-api/src/main/java/com/moral/api/service/impl/ReptileResultServiceImpl.java
new file mode 100644
index 0000000..9997307
--- /dev/null
+++ b/screen-api/src/main/java/com/moral/api/service/impl/ReptileResultServiceImpl.java
@@ -0,0 +1,487 @@
+package com.moral.api.service.impl;
+
+import com.moral.api.pojo.vo.yc.AqiResultVo;
+import com.moral.api.pojo.vo.yc.SixConcentrationsVo;
+import com.moral.api.service.ReptileResultService;
+import lombok.extern.slf4j.Slf4j;
+import okhttp3.*;
+import org.jsoup.Jsoup;
+import org.jsoup.nodes.Document;
+import org.jsoup.nodes.Element;
+import org.jsoup.select.Elements;
+import org.springframework.stereotype.Service;
+
+import java.math.BigDecimal;
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.concurrent.TimeUnit;
+
+/**
+ * @ClassName reptileResultServiceImpl
+ * @Description TODO
+ * @Author @cjl
+ * @Date 2024-02-27 13:50
+ * @Version 1.0
+ */
+@Service
+@Slf4j
+public class ReptileResultServiceImpl implements ReptileResultService {
+
+
+ @Override
+ public Map<String,Object> getYcDaily(String url,String cookie,String time,int type) {
+ /*String host = "http://116.147.41.178:8081";
+ String path = "/Home/AjaxLogin";
+ String method = "POST";
+ Map<String, String> headers = new HashMap<String, String>();
+
+ Map<String, String> querys = new HashMap<String, String>();
+ try {
+ HttpResponse response = HttpUtils.doPost(host, path, method, headers, new HashMap<>(),querys);
+ }catch (Exception e) {
+ e.printStackTrace();
+ }*/
+ return saveRedis(url,cookie,null,type,time,"2024-03-06 10:00:00");
+ }
+
+ public static void main(String[] args) {
+
+ String host = "http://116.147.41.178:8081?t="+System.currentTimeMillis();;
+ String path = "/Home/AjaxLogin";
+ String path1 = "/AQI/Statistics/YouLiangRateDataNewNewNew?sTime=2024-01-01%2000:00:00&eTime=2024-02-26%2000:00:00&DecimalPlaces=0&isDustDay=false&selec=0&selet=0&Time=2024-02&isDustDayXianShi=false";
+ String method = "POST";
+ Map<String, String> headers = new HashMap<String, String>();
+ headers.put("Cookie","ASP.NET_SessionId=vpt0ai143s0npijvnl4bmm0b");
+ Map<String, String> querys = new HashMap<String, String>();
+ querys.put("user","shbj");
+ querys.put("password","shbj@123");
+ querys.put("yzma","7557");
+
+
+ String url = "http://116.147.41.178:8081/AQI/Statistics/YouLiangRateDataNewNewNew?sTime=2024-01-01%2000:00:00&eTime=2024-03-03%2000:00:00&DecimalPlaces=0&isDustDay=false&selec=0&selet=0&Time=2024-02&isDustDayXianShi=false";
+ String url1 = "http://116.147.41.178:8081/DataReport/AQIReport";
+ /*String cookie = "ASP.NET_SessionId=anpfqfg3qy0k3xlcbtqyfa0w;CurrentAMenuID=2fa3c748-bf4e-4453-9544-e5fd860d74bf;";*/
+ String cookie = "ASP.NET_SessionId=xo1nn2mvzmhaeb2csok130fd; CurrentSiteID=1fa76063-ec08-4907-ae54-0f78b57fec08; ";
+ StringBuffer stringBuffer = new StringBuffer();
+ try {
+// HttpResponse response = HttpUtils.doPost(host, path, method, headers, new HashMap<>(),querys);
+// Header[] headerList = response.getHeaders("Set-Cookie");
+// if(0 == headerList.length){
+// return;
+// }
+// String cookieResult = headerList[0].toString().substring(0, headerList[0].toString().indexOf(";"));
+// System.out.println(cookieResult);
+// stringBuffer.append(cookieResult).append(";CurrentAMenuID=2fa3c748-bf4e-4453-9544-e5fd860d74bf;");
+
+ // AQI������
+ /*ReptileResultServiceImpl resultService = new ReptileResultServiceImpl();
+ resultService.saveRedis(url1,cookie,null,2,"2024-03-05","2024-03-06 10:00:00");*/
+
+ // ������������������
+ /*String sTime="2024-01-01 00:00:00";
+ String eTime="2024-03-06 00:00:00";
+ String url2 = "http://116.147.41.178:8081/AQA/YearCustom/Year_Custom1?sTime="+sTime+"&eTime="+eTime+"&type=1&viewtype=1&isDustDay=true&DecimalPlaces=1";
+ ReptileResultServiceImpl resultService = new ReptileResultServiceImpl();
+ resultService.saveRedis(url2,cookie,null,3,"2024-03-05","2024-03-06 10:00:00");*/
+
+ // ���������������
+ // String url3 = "http://116.147.41.178:8081/AQA/Statistics/YouLiangRateDataNewNewNew?sTime="+sTime+"&eTime="+eTime+"&DecimalPlaces=1&isDustDay=false&selec=0&selet=0&Time=2024-03&isDustDayXianShi=false";
+ /* String sTime="2024-01-01";
+ String eTime="2024-03-06";
+ String url3 = "http://116.147.41.178:8081/AQI/Statistics/YouLiangRateDataNewNewNew?sTime="+sTime+"&eTime="+eTime+"&DecimalPlaces=1&isDustDay=false&selec=0&selet=0&isDustDayXianShi=false";
+ ReptileResultServiceImpl resultService = new ReptileResultServiceImpl();
+ resultService.saveRedis(url3,cookie,null,1,"2024-03-05","2024-03-06 10:00:00");
+ */
+ //���������
+ String sTime="2023-01-01";
+ String eTime="2023-03-12";
+ String url4 = "http://116.147.41.178:8081/AQI/Statistics/StandardRateData?&sTime="+sTime+"&eTime="+eTime;
+ ReptileResultServiceImpl resultService = new ReptileResultServiceImpl();
+ resultService.saveRedis(url4,cookie,null,4,"2024-03-05","2024-03-06 10:00:00");
+ int i = 0;
+
+ }catch (Exception e) {
+ log.error("������>>>",e);
+ }
+ }
+
+ public Map<String,Object> saveRedis(String url,String cookie,String redisString,int type,String time,String newTime){
+ Map<String,Object> map = new HashMap<>();
+ StringBuffer data = new StringBuffer();
+ int timeout = 60;
+ OkHttpClient client = new OkHttpClient().newBuilder().connectTimeout(timeout, TimeUnit.SECONDS)
+ .readTimeout(timeout, TimeUnit.SECONDS).writeTimeout(timeout, TimeUnit.SECONDS)
+ .build();
+
+ Request request = new Request.Builder()
+ .url(url)
+ .method("POST", resultBody(type,time,newTime))
+ .addHeader("Cookie", cookie)
+ .build();
+ try {
+ Response response = client.newCall(request).execute();
+ String responseData = response.body().string();
+ //System.out.println(responseData);
+ Document doc = Jsoup.parse(responseData);
+ Element thead = null;
+ Element tbody = null;
+ if(2 == type){
+ Element element = doc.select("#Vdate").first();
+ thead = element.select("thead").last();
+ tbody = element.select("tbody").last();
+ }else {
+ thead = doc.select("thead").last();
+ tbody = doc.select("tbody").last();
+ }
+ Elements trsHead = thead.select("tr");
+ if(trsHead.size()>0){
+ String title = trsHead.get(0).select("th").get(0).text();
+ data.append(title + "\t");
+ data.append("\n");
+ map.put("title",title);
+ }
+ Elements trs = tbody.select("tr");
+ int id = 0;
+ List<AqiResultVo> tableResult = new ArrayList<>();
+ List<SixConcentrationsVo> tableSixResult = new ArrayList<>();
+ for (Element tr : trs) {
+ Elements tds = tr.select("td");
+ id = 0;
+ if(2 == type && tds.size() == 18){
+ if(tds.get(1).text().equals("NA")&&tds.get(2).text().equals("NA")&&tds.get(3).text().equals("NA")&&tds.get(4).text().equals("NA")&&tds.get(5).text().equals("NA")){
+ continue;
+ }
+ AqiResultVo testVo = AqiResultVo.builder().name(tds.get(0).text()).SO2(Double.valueOf(tds.get(1).text()))
+ .SO2Index(Double.valueOf(tds.get(2).text())).NO2(Double.valueOf(tds.get(3).text())).NO2Index(Double.valueOf(tds.get(4).text()))
+ .granule(tds.get(5).text().equals("NA")?0:Double.valueOf(tds.get(5).text())).granuleIndex(tds.get(6).text().equals("NA")?0:Double.valueOf(tds.get(6).text())).CO(tds.get(7).text().equals("NA")?0:Double.valueOf(tds.get(7).text()))
+ .COIndex(tds.get(8).text().equals("NA")?0:Double.valueOf(tds.get(8).text())).OO(tds.get(9).text()).OOIndex(tds.get(10).text())
+ .granule25(tds.get(11).text().equals("NA")?0:Double.valueOf(tds.get(11).text())).granule25Index(tds.get(12).text().equals("NA")?0:Double.valueOf(tds.get(12).text())).AQI(tds.get(13).text())
+ .SW(tds.get(14).text()).airQuality(tds.get(15).text()).category(tds.get(16).text())
+ .colour(tds.get(17).text())
+ .build();
+ tableResult.add(testVo);
+ }else if(3 == type && 23 == tds.size()){
+ SixConcentrationsVo sixConcentrationsVo = SixConcentrationsVo.builder()
+ .name(tds.get(0).text()).SO2(Double.valueOf(tds.get(1).text()))
+ .SO2ExceedingMultiple(tds.get(2).text()).SO2Avg(Double.valueOf(tds.get(3).text())).SO2ExceedingMultipleTwo(tds.get(4).text())
+ .NO2(Double.valueOf(tds.get(5).text())).NO2ExceedingMultiple(tds.get(6).text()).NO2Avg(Double.valueOf(tds.get(7).text()))
+ .NO2ExceedingMultipleTwo(tds.get(8).text()).PM10(Double.valueOf(tds.get(9).text())).PM10ExceedingMultiple(tds.get(10).text())
+ .PM10Avg(Double.valueOf(tds.get(11).text())).PM10ExceedingMultipleTwo(tds.get(12).text()).CO(Double.valueOf(tds.get(13).text()))
+ .COAvg(Double.valueOf(tds.get(14).text())).COExceedingMultipleTwo(tds.get(15).text()).OO(Double.valueOf(tds.get(16).text()))
+ .OOAvg(Double.valueOf(tds.get(17).text())).OOExceedingMultipleTwo(tds.get(18).text()).PM25(Double.valueOf(tds.get(19).text()))
+ .PM25ExceedingMultiple(tds.get(20).text()).PM25Avg(Double.valueOf(tds.get(21).text())).PM25ExceedingMultipleTwo(tds.get(22).text())
+ .build();
+ tableSixResult.add(sixConcentrationsVo);
+ }else if(1 == type && 20 == tds.size()){
+ SixConcentrationsVo sixConcentrationsVo = SixConcentrationsVo.builder()
+ .excellentRateName(tds.get(1).text()).excellentRateRatio(Double.valueOf(tds.get(14).text()))
+ .excellentRateRatioYoY(Double.valueOf(tds.get(15).text())).name(tds.get(1).text())
+ .build();
+ tableSixResult.add(sixConcentrationsVo);
+ }else if(4 == type && 28 == tds.size() ){
+ int rDay = BigDecimal.valueOf(Double.valueOf(tds.get(25).text())).subtract(BigDecimal.valueOf(Double.valueOf(tds.get(26).text()))).intValue();
+ map.put("surplusDay",rDay);
+ }
+ for (Element td : tds) {
+ Elements tdList = td.getElementsByClass("class_xianshi");
+ if(1 == type){
+ if(tdList.size()>0 || id ==0){
+ id++;
+ continue;
+ }
+ }
+ data.append(td.text() + "\t");
+ }
+ data.append("\n");
+ }
+ if(2 == type){
+ map.put("table",tableResult);
+ }else if(3 ==type){
+ map.put("table",tableSixResult);
+ }else if(1 == type){
+ map.put("table",tableSixResult);
+ }
+
+ System.out.println(data.toString());
+ }catch (Exception e){
+ log.error("������>>>",e);
+ }
+ return map;
+ }
+
+ private RequestBody resultBody(int type, String time, String newTime){
+ RequestBody body = null;
+ if(1 == type){
+ body = new MultipartBody.Builder().setType(MultipartBody.FORM)
+ .addFormDataPart("sids[]","1fa76063-ec08-4907-ae54-0f78b57fec08")
+ .addFormDataPart("sids[]","d9a3e3d7-3a9e-45ce-9066-d3ee644f2777")
+ .addFormDataPart("sids[]","39db8e45-8ecd-4314-addd-bb9d3bfd5e22")
+ .addFormDataPart("sids[]","8fb74ca0-f1c2-4b43-b93a-d6f4a3f95ea9")
+ .addFormDataPart("sids[]","67cd5c80-d475-4b3e-b544-d6bd825767a4")
+ .addFormDataPart("sids[]","35d19f51-df72-4ee7-afcb-1ac93471f273")
+ .addFormDataPart("sids[]","ca6bb16e-dc1b-403d-8501-358ddd17a82f")
+ .addFormDataPart("sids[]","791e37f2-47dd-44a8-8cdb-1166387fe11a")
+ .addFormDataPart("sids[]","3c97d443-772c-40f8-8962-cdaf5097b35c")
+ .addFormDataPart("sids[]","6f2ee392-e989-4069-811f-18924155de18")
+ .addFormDataPart("sids[]","e3be2a96-831c-493b-bfa8-8c6ff1aec698")
+ .addFormDataPart("sids[]","d30b414c-ba52-453e-84fa-46451e2cb768")
+ .addFormDataPart("sids[]","1d94cf00-c1a8-44d4-9468-cdc9d5c60711")
+ .addFormDataPart("sids[]","240b6457-6037-4f98-ad63-51b011f3313a")
+ .addFormDataPart("sids[]","faeab8e5-7dbc-4382-bcb3-9879b248315e")
+ .addFormDataPart("sids[]","6c214d7b-b8df-43ef-8304-5b0443e1e34c")
+ .addFormDataPart("sids[]","a72c9e60-cf73-4dc9-aa51-b2e98b41bb96")
+ .addFormDataPart("sids[]","ff180f3b-af4b-4f20-ac71-94a707c5ac79")
+ .addFormDataPart("sids[]","fe06316e-6132-4be8-9dab-e0ac944a2030")
+ .addFormDataPart("sids[]","753da141-1b30-488b-b9b2-eb65a8268a37")
+ .addFormDataPart("sids[]","3ff41b7b-f0b6-4af7-bc3f-f4b3b48671ee")
+ .addFormDataPart("rids[]","2a38e028-db85-4afa-a682-a6f5e015e231")
+ .addFormDataPart("rids[]","085fab12-2897-4a54-93fe-009288a4b933")
+ .addFormDataPart("rids[]","780470c6-b99c-4ab8-88e5-9155aeef354c")
+ .addFormDataPart("rids[]","58b02ba2-936b-4a20-a090-1b859cdd82a4")
+ .addFormDataPart("rids[]","bffb79ac-e836-476b-b981-78cc752ec751")
+ .addFormDataPart("rids[]","9d2d6eb3-ebca-4fa6-bf5b-6e01e85ba784")
+ .addFormDataPart("rids[]","00e1a970-e889-42e0-a45c-79b506b826ac")
+ .addFormDataPart("rids[]","3bea4bc8-23c0-4b9d-8eb1-b7e874c7c0fa")
+ .addFormDataPart("rids[]","28e31d35-068f-4674-b70e-c742f9881b27")
+ .addFormDataPart("rids[]","442f00ea-75b7-4fcb-8e39-52cbf4e76e15")
+ .addFormDataPart("rids[]","203567c0-bff7-449a-bbe1-21ea9b62567b")
+ .addFormDataPart("rids[]","c3d506b0-8541-4086-ac72-b34e5155e1a4")
+ .addFormDataPart("r_sids[0][]","2a38e028-db85-4afa-a682-a6f5e015e231")//
+ .addFormDataPart("r_sids[0][]","1fa76063-ec08-4907-ae54-0f78b57fec08")
+ .addFormDataPart("r_sids[0][]","ca6bb16e-dc1b-403d-8501-358ddd17a82f")
+ .addFormDataPart("r_sids[1][]","085fab12-2897-4a54-93fe-009288a4b933")//
+ .addFormDataPart("r_sids[1][]","791e37f2-47dd-44a8-8cdb-1166387fe11a")
+ .addFormDataPart("r_sids[1][]","3c97d443-772c-40f8-8962-cdaf5097b35c")
+ .addFormDataPart("r_sids[2][]","cd11ce0b-5a31-43c1-879a-425866585652")
+ .addFormDataPart("r_sids[2][]","6f2ee392-e989-4069-811f-18924155de18")
+ .addFormDataPart("r_sids[2][]","e3be2a96-831c-493b-bfa8-8c6ff1aec698")
+ .addFormDataPart("r_sids[3][]","780470c6-b99c-4ab8-88e5-9155aeef354c")
+ .addFormDataPart("r_sids[3][]","d30b414c-ba52-453e-84fa-46451e2cb768")
+ .addFormDataPart("r_sids[3][]","1d94cf00-c1a8-44d4-9468-cdc9d5c60711")
+ .addFormDataPart("r_sids[4][]","58b02ba2-936b-4a20-a090-1b859cdd82a4")
+ .addFormDataPart("r_sids[4][]","240b6457-6037-4f98-ad63-51b011f3313a")
+ .addFormDataPart("r_sids[4][]","faeab8e5-7dbc-4382-bcb3-9879b248315e")
+ .addFormDataPart("r_sids[5][]","bffb79ac-e836-476b-b981-78cc752ec751")
+ .addFormDataPart("r_sids[5][]","6c214d7b-b8df-43ef-8304-5b0443e1e34c")
+ .addFormDataPart("r_sids[5][]","a72c9e60-cf73-4dc9-aa51-b2e98b41bb96")
+ .addFormDataPart("r_sids[6][]","9d2d6eb3-ebca-4fa6-bf5b-6e01e85ba784")
+ .addFormDataPart("r_sids[6][]","8fb74ca0-f1c2-4b43-b93a-d6f4a3f95ea9")
+ .addFormDataPart("r_sids[6][]","67cd5c80-d475-4b3e-b544-d6bd825767a4")
+ .addFormDataPart("r_sids[7][]","00e1a970-e889-42e0-a45c-79b506b826ac")
+ .addFormDataPart("r_sids[7][]","ff180f3b-af4b-4f20-ac71-94a707c5ac79")
+ .addFormDataPart("r_sids[7][]","fe06316e-6132-4be8-9dab-e0ac944a2030")
+ .addFormDataPart("r_sids[8][]","3bea4bc8-23c0-4b9d-8eb1-b7e874c7c0fa")
+ .addFormDataPart("r_sids[8][]","1fa76063-ec08-4907-ae54-0f78b57fec08")
+ .addFormDataPart("r_sids[8][]","d9a3e3d7-3a9e-45ce-9066-d3ee644f2777")
+ .addFormDataPart("r_sids[8][]","39db8e45-8ecd-4314-addd-bb9d3bfd5e22")
+ .addFormDataPart("r_sids[8][]","8fb74ca0-f1c2-4b43-b93a-d6f4a3f95ea9")
+ .addFormDataPart("r_sids[8][]","67cd5c80-d475-4b3e-b544-d6bd825767a4")
+ .addFormDataPart("r_sids[8][]","35d19f51-df72-4ee7-afcb-1ac93471f273")
+ .addFormDataPart("r_sids[9][]","28e31d35-068f-4674-b70e-c742f9881b27")
+ .addFormDataPart("r_sids[9][]","753da141-1b30-488b-b9b2-eb65a8268a37")
+ .addFormDataPart("r_sids[9][]","3ff41b7b-f0b6-4af7-bc3f-f4b3b48671ee")
+ .addFormDataPart("r_sids[10][]","442f00ea-75b7-4fcb-8e39-52cbf4e76e15")
+ .addFormDataPart("r_sids[10][]","39db8e45-8ecd-4314-addd-bb9d3bfd5e22")
+ .addFormDataPart("r_sids[10][]","e3be2a96-831c-493b-bfa8-8c6ff1aec698")
+ .addFormDataPart("r_sids[11][]","203567c0-bff7-449a-bbe1-21ea9b62567b")
+ .addFormDataPart("r_sids[11][]","d9a3e3d7-3a9e-45ce-9066-d3ee644f2777")
+ .addFormDataPart("r_sids[12][]","c3d506b0-8541-4086-ac72-b34e5155e1a4")
+ .addFormDataPart("r_sids[12][]","35d19f51-df72-4ee7-afcb-1ac93471f273")
+ .addFormDataPart("r_sids[12][]","6f2ee392-e989-4069-811f-18924155de18")
+ .build();
+ }else if(2 == type){
+ body = new MultipartBody.Builder().setType(MultipartBody.FORM)
+ .addFormDataPart("chose","station")
+ .addFormDataPart("Region","on")
+ .addFormDataPart("Station","on")
+ .addFormDataPart("Item","1fa76063-ec08-4907-ae54-0f78b57fec08")
+ .addFormDataPart("Item","d9a3e3d7-3a9e-45ce-9066-d3ee644f2777")
+ .addFormDataPart("Item","39db8e45-8ecd-4314-addd-bb9d3bfd5e22")
+ .addFormDataPart("Item","8fb74ca0-f1c2-4b43-b93a-d6f4a3f95ea9")
+ .addFormDataPart("Item","67cd5c80-d475-4b3e-b544-d6bd825767a4")
+ .addFormDataPart("Item","35d19f51-df72-4ee7-afcb-1ac93471f273")
+ .addFormDataPart("Item","ca6bb16e-dc1b-403d-8501-358ddd17a82f")
+ .addFormDataPart("Item","791e37f2-47dd-44a8-8cdb-1166387fe11a")
+ .addFormDataPart("Item","3c97d443-772c-40f8-8962-cdaf5097b35c")
+ .addFormDataPart("Item","6f2ee392-e989-4069-811f-18924155de18")
+ .addFormDataPart("Item","e3be2a96-831c-493b-bfa8-8c6ff1aec698")
+ .addFormDataPart("Item","d30b414c-ba52-453e-84fa-46451e2cb768")
+ .addFormDataPart("Item","1d94cf00-c1a8-44d4-9468-cdc9d5c60711")
+ .addFormDataPart("Item","240b6457-6037-4f98-ad63-51b011f3313a")
+ .addFormDataPart("Item","faeab8e5-7dbc-4382-bcb3-9879b248315e")
+ .addFormDataPart("Item","6c214d7b-b8df-43ef-8304-5b0443e1e34c")
+ .addFormDataPart("Item","a72c9e60-cf73-4dc9-aa51-b2e98b41bb96")
+ .addFormDataPart("Item","ff180f3b-af4b-4f20-ac71-94a707c5ac79")
+ .addFormDataPart("Item","fe06316e-6132-4be8-9dab-e0ac944a2030")
+ .addFormDataPart("Item","753da141-1b30-488b-b9b2-eb65a8268a37")
+ .addFormDataPart("Item","3ff41b7b-f0b6-4af7-bc3f-f4b3b48671ee")
+ .addFormDataPart("ItemCity","2a38e028-db85-4afa-a682-a6f5e015e231")
+ .addFormDataPart("ItemCity","085fab12-2897-4a54-93fe-009288a4b933")
+ .addFormDataPart("ItemCity","780470c6-b99c-4ab8-88e5-9155aeef354c")
+ .addFormDataPart("ItemCity","58b02ba2-936b-4a20-a090-1b859cdd82a4")
+ .addFormDataPart("ItemCity","bffb79ac-e836-476b-b981-78cc752ec751")
+ .addFormDataPart("ItemCity","9d2d6eb3-ebca-4fa6-bf5b-6e01e85ba784")
+ .addFormDataPart("ItemCity","00e1a970-e889-42e0-a45c-79b506b826ac")
+ .addFormDataPart("ItemCity","3bea4bc8-23c0-4b9d-8eb1-b7e874c7c0fa")
+ .addFormDataPart("ItemCity","28e31d35-068f-4674-b70e-c742f9881b27")
+ .addFormDataPart("ItemCity","442f00ea-75b7-4fcb-8e39-52cbf4e76e15")
+ .addFormDataPart("ItemCity","203567c0-bff7-449a-bbe1-21ea9b62567b")
+ .addFormDataPart("ItemCity","c3d506b0-8541-4086-ac72-b34e5155e1a4")
+ .addFormDataPart("2a38e028-db85-4afa-a682-a6f5e015e231Item","1fa76063-ec08-4907-ae54-0f78b57fec08")
+ .addFormDataPart("2a38e028-db85-4afa-a682-a6f5e015e231Item","ca6bb16e-dc1b-403d-8501-358ddd17a82f")
+ .addFormDataPart("085fab12-2897-4a54-93fe-009288a4b933Item","791e37f2-47dd-44a8-8cdb-1166387fe11a")
+ .addFormDataPart("085fab12-2897-4a54-93fe-009288a4b933Item","3c97d443-772c-40f8-8962-cdaf5097b35c")
+ .addFormDataPart("cd11ce0b-5a31-43c1-879a-425866585652Item","6f2ee392-e989-4069-811f-18924155de18")
+ .addFormDataPart("cd11ce0b-5a31-43c1-879a-425866585652Item","e3be2a96-831c-493b-bfa8-8c6ff1aec698")
+ .addFormDataPart("780470c6-b99c-4ab8-88e5-9155aeef354cItem","d30b414c-ba52-453e-84fa-46451e2cb768")
+ .addFormDataPart("780470c6-b99c-4ab8-88e5-9155aeef354cItem","1d94cf00-c1a8-44d4-9468-cdc9d5c60711")
+ .addFormDataPart("58b02ba2-936b-4a20-a090-1b859cdd82a4Item","240b6457-6037-4f98-ad63-51b011f3313a")
+ .addFormDataPart("58b02ba2-936b-4a20-a090-1b859cdd82a4Item","faeab8e5-7dbc-4382-bcb3-9879b248315e")
+ .addFormDataPart("bffb79ac-e836-476b-b981-78cc752ec751Item","6c214d7b-b8df-43ef-8304-5b0443e1e34c")
+ .addFormDataPart("bffb79ac-e836-476b-b981-78cc752ec751Item","a72c9e60-cf73-4dc9-aa51-b2e98b41bb96")
+ .addFormDataPart("9d2d6eb3-ebca-4fa6-bf5b-6e01e85ba784Item","8fb74ca0-f1c2-4b43-b93a-d6f4a3f95ea9")
+ .addFormDataPart("9d2d6eb3-ebca-4fa6-bf5b-6e01e85ba784Item","67cd5c80-d475-4b3e-b544-d6bd825767a4")
+ .addFormDataPart("00e1a970-e889-42e0-a45c-79b506b826acItem","ff180f3b-af4b-4f20-ac71-94a707c5ac79")
+ .addFormDataPart("00e1a970-e889-42e0-a45c-79b506b826acItem","fe06316e-6132-4be8-9dab-e0ac944a2030")
+ .addFormDataPart("3bea4bc8-23c0-4b9d-8eb1-b7e874c7c0faItem","1fa76063-ec08-4907-ae54-0f78b57fec08")
+ .addFormDataPart("3bea4bc8-23c0-4b9d-8eb1-b7e874c7c0faItem","d9a3e3d7-3a9e-45ce-9066-d3ee644f2777")
+ .addFormDataPart("3bea4bc8-23c0-4b9d-8eb1-b7e874c7c0faItem","39db8e45-8ecd-4314-addd-bb9d3bfd5e22")
+ .addFormDataPart("3bea4bc8-23c0-4b9d-8eb1-b7e874c7c0faItem","8fb74ca0-f1c2-4b43-b93a-d6f4a3f95ea9")
+ .addFormDataPart("3bea4bc8-23c0-4b9d-8eb1-b7e874c7c0faItem","67cd5c80-d475-4b3e-b544-d6bd825767a4")
+ .addFormDataPart("3bea4bc8-23c0-4b9d-8eb1-b7e874c7c0faItem","35d19f51-df72-4ee7-afcb-1ac93471f273")
+ .addFormDataPart("28e31d35-068f-4674-b70e-c742f9881b27Item","753da141-1b30-488b-b9b2-eb65a8268a37")
+ .addFormDataPart("28e31d35-068f-4674-b70e-c742f9881b27Item","3ff41b7b-f0b6-4af7-bc3f-f4b3b48671ee")
+ .addFormDataPart("442f00ea-75b7-4fcb-8e39-52cbf4e76e15Item","39db8e45-8ecd-4314-addd-bb9d3bfd5e22")
+ .addFormDataPart("442f00ea-75b7-4fcb-8e39-52cbf4e76e15Item","e3be2a96-831c-493b-bfa8-8c6ff1aec698")
+ .addFormDataPart("203567c0-bff7-449a-bbe1-21ea9b62567bItem","d9a3e3d7-3a9e-45ce-9066-d3ee644f2777")
+ .addFormDataPart("c3d506b0-8541-4086-ac72-b34e5155e1a4Item","35d19f51-df72-4ee7-afcb-1ac93471f273")
+ .addFormDataPart("c3d506b0-8541-4086-ac72-b34e5155e1a4Item","6f2ee392-e989-4069-811f-18924155de18")
+ .addFormDataPart("date",time)
+ //.addFormDataPart("dateTime",newTime)
+ .build();
+ }else if(3 == type){
+ body = new MultipartBody.Builder().setType(MultipartBody.FORM)
+ .addFormDataPart("sids[]","1fa76063-ec08-4907-ae54-0f78b57fec08")
+ .addFormDataPart("sids[]","d9a3e3d7-3a9e-45ce-9066-d3ee644f2777")
+ .addFormDataPart("sids[]","39db8e45-8ecd-4314-addd-bb9d3bfd5e22")
+ .addFormDataPart("sids[]","8fb74ca0-f1c2-4b43-b93a-d6f4a3f95ea9")
+ .addFormDataPart("sids[]","67cd5c80-d475-4b3e-b544-d6bd825767a4")
+ .addFormDataPart("sids[]","35d19f51-df72-4ee7-afcb-1ac93471f273")
+ .addFormDataPart("sids[]","ca6bb16e-dc1b-403d-8501-358ddd17a82f")
+ .addFormDataPart("sids[]","791e37f2-47dd-44a8-8cdb-1166387fe11a")
+ .addFormDataPart("sids[]","3c97d443-772c-40f8-8962-cdaf5097b35c")
+ .addFormDataPart("sids[]","6f2ee392-e989-4069-811f-18924155de18")
+ .addFormDataPart("sids[]","e3be2a96-831c-493b-bfa8-8c6ff1aec698")
+ .addFormDataPart("sids[]","d30b414c-ba52-453e-84fa-46451e2cb768")
+ .addFormDataPart("sids[]","1d94cf00-c1a8-44d4-9468-cdc9d5c60711")
+ .addFormDataPart("sids[]","240b6457-6037-4f98-ad63-51b011f3313a")
+ .addFormDataPart("sids[]","faeab8e5-7dbc-4382-bcb3-9879b248315e")
+ .addFormDataPart("sids[]","6c214d7b-b8df-43ef-8304-5b0443e1e34c")
+ .addFormDataPart("sids[]","a72c9e60-cf73-4dc9-aa51-b2e98b41bb96")
+ .addFormDataPart("sids[]","ff180f3b-af4b-4f20-ac71-94a707c5ac79")
+ .addFormDataPart("sids[]","fe06316e-6132-4be8-9dab-e0ac944a2030")
+ .addFormDataPart("sids[]","753da141-1b30-488b-b9b2-eb65a8268a37")
+ .addFormDataPart("sids[]","3ff41b7b-f0b6-4af7-bc3f-f4b3b48671ee")
+ .addFormDataPart("rids[]","2a38e028-db85-4afa-a682-a6f5e015e231")
+ .addFormDataPart("rids[]","085fab12-2897-4a54-93fe-009288a4b933")
+ .addFormDataPart("rids[]","780470c6-b99c-4ab8-88e5-9155aeef354c")
+ .addFormDataPart("rids[]","58b02ba2-936b-4a20-a090-1b859cdd82a4")
+ .addFormDataPart("rids[]","bffb79ac-e836-476b-b981-78cc752ec751")
+ .addFormDataPart("rids[]","9d2d6eb3-ebca-4fa6-bf5b-6e01e85ba784")
+ .addFormDataPart("rids[]","00e1a970-e889-42e0-a45c-79b506b826ac")
+ .addFormDataPart("rids[]","3bea4bc8-23c0-4b9d-8eb1-b7e874c7c0fa")
+ .addFormDataPart("rids[]","28e31d35-068f-4674-b70e-c742f9881b27")
+ .addFormDataPart("rids[]","442f00ea-75b7-4fcb-8e39-52cbf4e76e15")
+ .addFormDataPart("rids[]","203567c0-bff7-449a-bbe1-21ea9b62567b")
+ .addFormDataPart("rids[]","c3d506b0-8541-4086-ac72-b34e5155e1a4")
+ .addFormDataPart("r_sids[0][]","2a38e028-db85-4afa-a682-a6f5e015e231")
+ .addFormDataPart("r_sids[0][]","1fa76063-ec08-4907-ae54-0f78b57fec08")
+ .addFormDataPart("r_sids[0][]","ca6bb16e-dc1b-403d-8501-358ddd17a82f")
+ .addFormDataPart("r_sids[1][]","085fab12-2897-4a54-93fe-009288a4b933")
+ .addFormDataPart("r_sids[1][]","791e37f2-47dd-44a8-8cdb-1166387fe11a")
+ .addFormDataPart("r_sids[1][]","3c97d443-772c-40f8-8962-cdaf5097b35c")
+ .addFormDataPart("r_sids[2][]","cd11ce0b-5a31-43c1-879a-425866585652")
+ .addFormDataPart("r_sids[2][]","6f2ee392-e989-4069-811f-18924155de18")
+ .addFormDataPart("r_sids[2][]","e3be2a96-831c-493b-bfa8-8c6ff1aec698")
+ .addFormDataPart("r_sids[3][]","780470c6-b99c-4ab8-88e5-9155aeef354c")
+ .addFormDataPart("r_sids[3][]","d30b414c-ba52-453e-84fa-46451e2cb768")
+ .addFormDataPart("r_sids[3][]","1d94cf00-c1a8-44d4-9468-cdc9d5c60711")
+ .addFormDataPart("r_sids[4][]","58b02ba2-936b-4a20-a090-1b859cdd82a4")
+ .addFormDataPart("r_sids[4][]","240b6457-6037-4f98-ad63-51b011f3313a")
+ .addFormDataPart("r_sids[4][]","faeab8e5-7dbc-4382-bcb3-9879b248315e")
+ .addFormDataPart("r_sids[5][]","bffb79ac-e836-476b-b981-78cc752ec751")
+ .addFormDataPart("r_sids[5][]","6c214d7b-b8df-43ef-8304-5b0443e1e34c")
+ .addFormDataPart("r_sids[5][]","a72c9e60-cf73-4dc9-aa51-b2e98b41bb96")
+ .addFormDataPart("r_sids[6][]","9d2d6eb3-ebca-4fa6-bf5b-6e01e85ba784")
+ .addFormDataPart("r_sids[6][]","8fb74ca0-f1c2-4b43-b93a-d6f4a3f95ea9")
+ .addFormDataPart("r_sids[6][]","67cd5c80-d475-4b3e-b544-d6bd825767a4")
+ .addFormDataPart("r_sids[7][]","00e1a970-e889-42e0-a45c-79b506b826ac")
+ .addFormDataPart("r_sids[7][]","ff180f3b-af4b-4f20-ac71-94a707c5ac79")
+ .addFormDataPart("r_sids[7][]","fe06316e-6132-4be8-9dab-e0ac944a2030")
+ .addFormDataPart("r_sids[8][]","3bea4bc8-23c0-4b9d-8eb1-b7e874c7c0fa")
+ .addFormDataPart("r_sids[8][]","1fa76063-ec08-4907-ae54-0f78b57fec08")
+ .addFormDataPart("r_sids[8][]","d9a3e3d7-3a9e-45ce-9066-d3ee644f2777")
+ .addFormDataPart("r_sids[8][]","39db8e45-8ecd-4314-addd-bb9d3bfd5e22")
+ .addFormDataPart("r_sids[8][]","8fb74ca0-f1c2-4b43-b93a-d6f4a3f95ea9")
+ .addFormDataPart("r_sids[8][]","67cd5c80-d475-4b3e-b544-d6bd825767a4")
+ .addFormDataPart("r_sids[8][]","35d19f51-df72-4ee7-afcb-1ac93471f273")
+ .addFormDataPart("r_sids[9][]","28e31d35-068f-4674-b70e-c742f9881b27")
+ .addFormDataPart("r_sids[9][]","753da141-1b30-488b-b9b2-eb65a8268a37")
+ .addFormDataPart("r_sids[9][]","3ff41b7b-f0b6-4af7-bc3f-f4b3b48671ee")
+ .addFormDataPart("r_sids[10][]","442f00ea-75b7-4fcb-8e39-52cbf4e76e15")
+ .addFormDataPart("r_sids[10][]","39db8e45-8ecd-4314-addd-bb9d3bfd5e22")
+ .addFormDataPart("r_sids[10][]","e3be2a96-831c-493b-bfa8-8c6ff1aec698")
+ .addFormDataPart("r_sids[11][]","203567c0-bff7-449a-bbe1-21ea9b62567b")
+ .addFormDataPart("r_sids[11][]","d9a3e3d7-3a9e-45ce-9066-d3ee644f2777")
+ .addFormDataPart("r_sids[12][]","c3d506b0-8541-4086-ac72-b34e5155e1a4")
+ .addFormDataPart("r_sids[12][]","35d19f51-df72-4ee7-afcb-1ac93471f273")
+ .addFormDataPart("r_sids[12][]","6f2ee392-e989-4069-811f-18924155de18").build();
+ }else if(4 == type){
+ body = new MultipartBody.Builder().setType(MultipartBody.FORM)
+ .addFormDataPart("rids[]","3bea4bc8-23c0-4b9d-8eb1-b7e874c7c0fa")
+ .addFormDataPart("r_sids[0][]","2a38e028-db85-4afa-a682-a6f5e015e231")
+ .addFormDataPart("r_sids[0][]","1fa76063-ec08-4907-ae54-0f78b57fec08")
+ .addFormDataPart("r_sids[0][]","ca6bb16e-dc1b-403d-8501-358ddd17a82f")
+ .addFormDataPart("r_sids[1][]","085fab12-2897-4a54-93fe-009288a4b933")
+ .addFormDataPart("r_sids[1][]","791e37f2-47dd-44a8-8cdb-1166387fe11a")
+ .addFormDataPart("r_sids[1][]","3c97d443-772c-40f8-8962-cdaf5097b35c")
+ .addFormDataPart("r_sids[2][]","cd11ce0b-5a31-43c1-879a-425866585652")
+ .addFormDataPart("r_sids[2][]","6f2ee392-e989-4069-811f-18924155de18")
+ .addFormDataPart("r_sids[3][]","780470c6-b99c-4ab8-88e5-9155aeef354c")
+ .addFormDataPart("r_sids[3][]","35d19f51-df72-4ee7-afcb-1ac93471f273")
+ .addFormDataPart("r_sids[3][]","d30b414c-ba52-453e-84fa-46451e2cb768")
+ .addFormDataPart("r_sids[4][]","58b02ba2-936b-4a20-a090-1b859cdd82a4")
+ .addFormDataPart("r_sids[4][]","240b6457-6037-4f98-ad63-51b011f3313a")
+ .addFormDataPart("r_sids[4][]","faeab8e5-7dbc-4382-bcb3-9879b248315e")
+ .addFormDataPart("r_sids[5][]","bffb79ac-e836-476b-b981-78cc752ec751")
+ .addFormDataPart("r_sids[5][]","6c214d7b-b8df-43ef-8304-5b0443e1e34c")
+ .addFormDataPart("r_sids[5][]","a72c9e60-cf73-4dc9-aa51-b2e98b41bb96")
+ .addFormDataPart("r_sids[6][]","9d2d6eb3-ebca-4fa6-bf5b-6e01e85ba784")
+ .addFormDataPart("r_sids[6][]","8fb74ca0-f1c2-4b43-b93a-d6f4a3f95ea9")
+ .addFormDataPart("r_sids[6][]","67cd5c80-d475-4b3e-b544-d6bd825767a4")
+ .addFormDataPart("r_sids[7][]","00e1a970-e889-42e0-a45c-79b506b826ac")
+ .addFormDataPart("r_sids[7][]","ff180f3b-af4b-4f20-ac71-94a707c5ac79")
+ .addFormDataPart("r_sids[7][]","fe06316e-6132-4be8-9dab-e0ac944a2030")
+ .addFormDataPart("r_sids[8][]","3bea4bc8-23c0-4b9d-8eb1-b7e874c7c0fa")
+ .addFormDataPart("r_sids[8][]","1fa76063-ec08-4907-ae54-0f78b57fec08")
+ .addFormDataPart("r_sids[8][]","d9a3e3d7-3a9e-45ce-9066-d3ee644f2777")
+ .addFormDataPart("r_sids[8][]","39db8e45-8ecd-4314-addd-bb9d3bfd5e22")
+ .addFormDataPart("r_sids[8][]","8fb74ca0-f1c2-4b43-b93a-d6f4a3f95ea9")
+ .addFormDataPart("r_sids[8][]","67cd5c80-d475-4b3e-b544-d6bd825767a4")
+ .addFormDataPart("r_sids[8][]","35d19f51-df72-4ee7-afcb-1ac93471f273")
+ .addFormDataPart("r_sids[9][]","28e31d35-068f-4674-b70e-c742f9881b27")
+ .addFormDataPart("r_sids[9][]","753da141-1b30-488b-b9b2-eb65a8268a37")
+ .addFormDataPart("r_sids[9][]","3ff41b7b-f0b6-4af7-bc3f-f4b3b48671ee")
+ .addFormDataPart("r_sids[10][]","442f00ea-75b7-4fcb-8e39-52cbf4e76e15")
+ .addFormDataPart("r_sids[10][]","39db8e45-8ecd-4314-addd-bb9d3bfd5e22")
+ .addFormDataPart("r_sids[10][]","e3be2a96-831c-493b-bfa8-8c6ff1aec698")
+ .addFormDataPart("r_sids[11][]","203567c0-bff7-449a-bbe1-21ea9b62567b")
+ .addFormDataPart("r_sids[11][]","d9a3e3d7-3a9e-45ce-9066-d3ee644f2777")
+ .build();
+ }
+
+ return body;
+ }
+}
diff --git a/screen-api/src/main/java/com/moral/api/service/impl/YcGenerateReportServiceImpl.java b/screen-api/src/main/java/com/moral/api/service/impl/YcGenerateReportServiceImpl.java
new file mode 100644
index 0000000..6affcb2
--- /dev/null
+++ b/screen-api/src/main/java/com/moral/api/service/impl/YcGenerateReportServiceImpl.java
@@ -0,0 +1,79 @@
+package com.moral.api.service.impl;
+
+import com.baomidou.mybatisplus.extension.conditions.query.LambdaQueryChainWrapper;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.baomidou.mybatisplus.extension.toolkit.SqlHelper;
+import com.moral.api.entity.FileTable;
+import com.moral.api.entity.YcGenerateReport;
+import com.moral.api.pojo.enums.FileTableEnum;
+import com.moral.api.pojo.ext.ycgeneratereport.YcGenerateReportExt;
+import com.moral.api.pojo.ext.ycgeneratereport.YcGenerateReportListExt;
+import com.moral.api.pojo.ext.ycgeneratereport.YcGenerateReportPageExt;
+import com.moral.api.mapper.YcGenerateReportMapper;
+import com.moral.api.pojo.query.ycgeneratereport.*;
+import com.moral.api.pojo.vo.file.FileVo;
+import com.moral.api.service.FileTableService;
+import com.moral.api.service.YcGenerateReportService;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
+import java.util.List;
+
+/**
+ * <p>
+ * ��������������� ���������������
+ * </p>
+ * deyt template generate
+ * @author JI
+ * @since 2024-03-26
+ */
+@Service
+public class YcGenerateReportServiceImpl extends ServiceImpl<YcGenerateReportMapper, YcGenerateReport> implements YcGenerateReportService {
+
+ private final FileTableService fileTableService;
+
+ public YcGenerateReportServiceImpl(FileTableService fileTableService) {
+ this.fileTableService = fileTableService;
+ }
+
+ @Override
+ public boolean removeByIdWithFill(Integer id) {
+ return SqlHelper.retBool(this.baseMapper.deleteByIdWithFill(new YcGenerateReport().setId(id)));
+ }
+
+ @Override
+ public YcGenerateReportExt extOne(Integer id) {
+ return this.baseMapper.extOne(id);
+ }
+
+ @Override
+ public List<YcGenerateReportListExt> extList(YcGenerateReportListCond ycGenerateReportListCond) {
+ return this.baseMapper.extList(ycGenerateReportListCond);
+ }
+
+ @Override
+ public Page<YcGenerateReportPageExt> extPage(YcGenerateReportPageCond ycGenerateReportPageCond) {
+ Page<YcGenerateReportPageExt> pageExtPage = this.baseMapper.extPage(ycGenerateReportPageCond.getPage().convertPage(), ycGenerateReportPageCond);
+ return pageExtPage;
+ }
+
+ @Override
+ public boolean save(YcGenerateReportAddCond ycGenerateReportAddCond) {
+ return this.save(ycGenerateReportAddCond.convert());
+ }
+
+ @Override
+ public boolean update(YcGenerateReportUpdateCond ycGenerateReportUpdateCond) {
+ return this.updateById(ycGenerateReportUpdateCond.convert());
+ }
+
+ @Override
+ @Transactional
+ public boolean fileUpload(YcGenerateReportUploadCond uploadCond) {
+
+ fileTableService.upDateResult(uploadCond.getList(),uploadCond.getId(), FileTableEnum.YC_GENERATEEXCEL.value);
+
+ return true;
+ }
+}
diff --git a/screen-api/src/main/resources/mapper/FileTableMapper.xml b/screen-api/src/main/resources/mapper/FileTableMapper.xml
index 3f57c01..7d300d9 100644
--- a/screen-api/src/main/resources/mapper/FileTableMapper.xml
+++ b/screen-api/src/main/resources/mapper/FileTableMapper.xml
@@ -17,4 +17,9 @@
<result column="create_time" property="createTime" />
</resultMap>
+ <select id="fileList" resultType="com.moral.api.pojo.vo.file.FileVo">
+ select file_id,file_name,file_type from file_table where
+ file_module = 1250301 and relation_id= #{relation_id} and is_del = 0
+ order by file_id desc
+ </select>
</mapper>
\ No newline at end of file
diff --git a/screen-api/src/main/resources/mapper/YcGenerateReportMapper.xml b/screen-api/src/main/resources/mapper/YcGenerateReportMapper.xml
new file mode 100644
index 0000000..fd96cec
--- /dev/null
+++ b/screen-api/src/main/resources/mapper/YcGenerateReportMapper.xml
@@ -0,0 +1,77 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.moral.api.mapper.YcGenerateReportMapper">
+
+ <!-- ������������������������ deyt template generate -->
+ <resultMap id="BaseResultMap" type="com.moral.api.entity.YcGenerateReport">
+ <id column="id" property="id" />
+ <result column="report_time" property="reportTime" />
+ <result column="report_content" property="reportContent" />
+ <result column="original_content" property="originalContent" />
+ <result column="invalid_reason" property="invalidReason" />
+ </resultMap>
+
+ <!-- ������������������������ deyt template generate -->
+ <resultMap id="BaseResultMyMap" type="com.moral.api.pojo.ext.ycgeneratereport.YcGenerateReportPageExt">
+ <id column="id" property="id" />
+ <result column="report_time" property="reportTime" />
+ <result column="report_content" property="reportContent" />
+ <result column="original_content" property="originalContent" />
+ <result column="is_del" property="isDel" />
+ <result column="is_invalid" property="isInvalid" />
+ <result column="invalid_reason" property="invalidReason" />
+ <result column="create_id" property="createId" />
+ <result column="create_name" property="createName" />
+ <result column="create_time" property="createTime" />
+ <result column="update_id" property="updateId" />
+ <result column="update_name" property="updateName" />
+ <result column="update_time" property="updateTime" />
+ <collection property="list" ofType="com.moral.api.pojo.vo.file.FileVo" select="com.moral.api.mapper.FileTableMapper.fileList" column="id"></collection>
+ </resultMap>
+
+ <!-- ��������������������� -->
+ <sql id="Base_Column_List">
+ id, report_time, report_content, original_content, is_del, is_invalid, invalid_reason, create_id, create_name, create_time, update_id, update_name, update_time
+ </sql>
+
+ <!-- ��������������������� -->
+ <sql id="YcGenerateReport_Column_List">
+ ycgeneratereport.id, ycgeneratereport.report_time, ycgeneratereport.report_content, ycgeneratereport.original_content, ycgeneratereport.is_del, ycgeneratereport.is_invalid, ycgeneratereport.invalid_reason, ycgeneratereport.create_id, ycgeneratereport.create_name, ycgeneratereport.create_time, ycgeneratereport.update_id, ycgeneratereport.update_name, ycgeneratereport.update_time
+ </sql>
+
+
+ <select id="extOne" resultType="com.moral.api.pojo.ext.ycgeneratereport.YcGenerateReportExt">
+ SELECT
+ <include refid="YcGenerateReport_Column_List"/>
+ FROM yc_generate_report ycgeneratereport
+ where ycgeneratereport.id = #{id}
+ </select>
+
+ <select id="extList" resultType="com.moral.api.pojo.ext.ycgeneratereport.YcGenerateReportListExt">
+ SELECT
+ <include refid="YcGenerateReport_Column_List"/>
+ FROM yc_generate_report ycgeneratereport
+ <where>
+ 1 = 1
+ <if test="ycgeneratereport.id != null and ycgeneratereport.id != 0">
+ and ycgeneratereport.id = #{ycgeneratereport.id}
+ </if>
+ </where>
+ </select>
+
+ <select id="extPage" resultMap="BaseResultMyMap">
+ SELECT
+ <include refid="YcGenerateReport_Column_List"/>
+ FROM yc_generate_report ycgeneratereport
+ <where>
+ 1 = 1
+ <if test="ycgeneratereport.startTime != null and ycgeneratereport.startTime != '' ">
+ and date(ycgeneratereport.report_time) <![CDATA[>=]]> #{ycgeneratereport.startTime}
+ </if>
+ <if test="ycgeneratereport.endTime != null and ycgeneratereport.endTime !='' ">
+ and date(ycgeneratereport.report_time) <![CDATA[<=]]> #{ycgeneratereport.endTime}
+ </if>
+ </where>
+ order by ycgeneratereport.report_time desc
+ </select>
+</mapper>
diff --git a/screen-common/src/main/java/com/moral/util/DateUtils.java b/screen-common/src/main/java/com/moral/util/DateUtils.java
index 9ebd49a..cca005b 100644
--- a/screen-common/src/main/java/com/moral/util/DateUtils.java
+++ b/screen-common/src/main/java/com/moral/util/DateUtils.java
@@ -1869,6 +1869,13 @@
String lastYear = getDateAddYear(DateUtils.dateToDateString(getDate(), DateUtils.yyyy), -1);
return DateUtils.getDate(lastYear, DateUtils.yyyy);
}
+ //������������������
+ public static Date getFirstDayOfLastYear(Date date) {
+ Calendar calendar = Calendar.getInstance();
+ calendar.setTime(date);
+ calendar.add(Calendar.YEAR, -1);
+ return calendar.getTime();
+ }
//���������������������������������������������������
public static Map<Date, List<Integer>> getBeforeAndAfterHourDate(Date date) {
--
Gitblit v1.8.0