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