package com.tuoheng.admin.config; | |||||
import org.springframework.context.annotation.Bean; | |||||
import org.springframework.context.annotation.Configuration; | |||||
import org.springframework.web.socket.server.standard.ServerEndpointExporter; | |||||
@Configuration | |||||
public class WebSocketConfig { | |||||
/** | |||||
* ServerEndpointExporter 作用 | |||||
* <p> | |||||
* 这个Bean会自动注册使用@ServerEndpoint注解声明的websocket endpoint | |||||
* | |||||
* @return | |||||
*/ | |||||
@Bean | |||||
public ServerEndpointExporter serverEndpointExporter() { | |||||
return new ServerEndpointExporter(); | |||||
} | |||||
} |
package com.tuoheng.admin.controller; | package com.tuoheng.admin.controller; | ||||
import com.tuoheng.admin.entity.request.report.ExportReportRequest; | |||||
import com.tuoheng.admin.service.airData.IAirDataService; | import com.tuoheng.admin.service.airData.IAirDataService; | ||||
import com.tuoheng.common.core.utils.JsonResult; | |||||
import lombok.extern.slf4j.Slf4j; | import lombok.extern.slf4j.Slf4j; | ||||
import org.springframework.beans.factory.annotation.Autowired; | import org.springframework.beans.factory.annotation.Autowired; | ||||
import org.springframework.web.bind.annotation.GetMapping; | |||||
import org.springframework.web.bind.annotation.PathVariable; | |||||
import org.springframework.web.bind.annotation.RequestMapping; | import org.springframework.web.bind.annotation.RequestMapping; | ||||
import org.springframework.web.bind.annotation.RestController; | import org.springframework.web.bind.annotation.RestController; | ||||
import javax.servlet.http.HttpServletRequest; | |||||
import javax.servlet.http.HttpServletResponse; | |||||
/** | /** | ||||
* @Author ChengWang | * @Author ChengWang | ||||
* @Date 2023/5/23 | * @Date 2023/5/23 | ||||
@Autowired | @Autowired | ||||
private IAirDataService airDataService; | private IAirDataService airDataService; | ||||
/** | |||||
* 获取列表 | |||||
*/ | |||||
@GetMapping("/list") | |||||
public JsonResult getList() { | |||||
return null; | |||||
} | |||||
/** | |||||
* 导出报告 | |||||
*/ | |||||
@GetMapping("/export") | |||||
public void exportReport(ExportReportRequest request) { | |||||
// log.info("进入导出报告接口"); | |||||
airDataService.exportReport(request); | |||||
} | |||||
} | } |
package com.tuoheng.admin.entity.domain; | |||||
import com.baomidou.mybatisplus.annotation.TableName; | |||||
import com.tuoheng.common.core.common.BaseEntity; | |||||
import lombok.Data; | |||||
import lombok.EqualsAndHashCode; | |||||
import lombok.experimental.Accessors; | |||||
/** | |||||
* 大气数据报告导出记录 th_air_data_export | |||||
* | |||||
* @team tuoheng | |||||
* @author wanjing | |||||
* @date 2023-05-24 | |||||
*/ | |||||
@Data | |||||
@EqualsAndHashCode(callSuper = true) | |||||
@Accessors(chain = true) | |||||
@TableName("th_air_data_export") | |||||
public class AirDataExport extends BaseEntity { | |||||
private static final long serialVersionUID = 1L; | |||||
/** | |||||
* 租户ID | |||||
*/ | |||||
private String tenantId; | |||||
/** | |||||
* 任务ID | |||||
*/ | |||||
private String inspectionId; | |||||
/** | |||||
* 大气数据类型ID | |||||
*/ | |||||
private String airDataTypeId; | |||||
/** | |||||
* 导出类型:data(数据); report(报告) | |||||
*/ | |||||
private String exportType; | |||||
/** | |||||
* 网格大小 | |||||
*/ | |||||
private Integer gridSize; | |||||
/** | |||||
* 阿里云文件地址 | |||||
*/ | |||||
private String ossUrl; | |||||
} |
package com.tuoheng.admin.entity.request.report; | |||||
import com.tuoheng.common.core.common.BaseQuery; | |||||
import lombok.Data; | |||||
/** | |||||
* 查询报告分页列表请求实体 | |||||
* | |||||
* @author wanjing | |||||
* @team tuoheng | |||||
* @date 2022-12-05 | |||||
*/ | |||||
@Data | |||||
public class ExportReportRequest extends BaseQuery { | |||||
/** | |||||
* 任务ID | |||||
*/ | |||||
private String inspectionId; | |||||
/** | |||||
* 大气数据类型 | |||||
*/ | |||||
private String airDataTypeId; | |||||
/** | |||||
* 网格大小 | |||||
*/ | |||||
private Integer gridSize; | |||||
/** | |||||
* 采样点数量 | |||||
*/ | |||||
private String samplingPointsNum; | |||||
/** | |||||
* 检测区域网格平均尺寸 | |||||
*/ | |||||
private String averageGridSize; | |||||
/** | |||||
* 总检测区域网格面积 | |||||
*/ | |||||
private String gridArea; | |||||
/** | |||||
* 检测区域中心点经纬度 | |||||
*/ | |||||
private String centerPointLongitudeAndLatitude; | |||||
/** | |||||
* 检测区域平均浓度 | |||||
*/ | |||||
private String averageConcentration; | |||||
/** | |||||
* 网格浓度最高值 | |||||
*/ | |||||
private String gridConcentrationMax; | |||||
/** | |||||
* 网格浓度最小值 | |||||
*/ | |||||
private String gridConcentrationMix; | |||||
/** | |||||
* 单点浓度最高值 | |||||
*/ | |||||
private String singlePointConcentrationMax; | |||||
/** | |||||
* 单点浓度最低值 | |||||
*/ | |||||
private String singlePointConcentrationMix; | |||||
/** | |||||
* 图片oss地址 | |||||
*/ | |||||
private String ossUrl; | |||||
/** | |||||
* 标准图片oss地址 | |||||
*/ | |||||
private String standardOssUrl; | |||||
} |
package com.tuoheng.admin.mapper; | |||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper; | |||||
import com.tuoheng.admin.entity.domain.AirDataExport; | |||||
/** | |||||
* @Author ChengWang | |||||
* @Date 2023/5/23 | |||||
*/ | |||||
public interface AirDataExportMapper extends BaseMapper<AirDataExport> { | |||||
} |
package com.tuoheng.admin.service.airData; | package com.tuoheng.admin.service.airData; | ||||
import com.tuoheng.admin.entity.domain.AirData; | import com.tuoheng.admin.entity.domain.AirData; | ||||
import com.tuoheng.admin.entity.request.report.ExportReportRequest; | |||||
import com.tuoheng.admin.mapper.AirDataMapper; | import com.tuoheng.admin.mapper.AirDataMapper; | ||||
import com.tuoheng.admin.service.airData.report.ExportReportService; | |||||
import com.tuoheng.common.core.common.BaseServiceImpl; | import com.tuoheng.common.core.common.BaseServiceImpl; | ||||
import com.tuoheng.common.core.utils.JsonResult; | |||||
import lombok.extern.slf4j.Slf4j; | import lombok.extern.slf4j.Slf4j; | ||||
import org.springframework.beans.factory.annotation.Autowired; | |||||
import org.springframework.stereotype.Service; | import org.springframework.stereotype.Service; | ||||
/** | /** | ||||
@Service | @Service | ||||
@Slf4j | @Slf4j | ||||
public class AirDataServiceImpl extends BaseServiceImpl<AirDataMapper, AirData> implements IAirDataService { | public class AirDataServiceImpl extends BaseServiceImpl<AirDataMapper, AirData> implements IAirDataService { | ||||
@Autowired | |||||
private ExportReportService eportReportService; | |||||
/** | |||||
* | |||||
* 导出报告 | |||||
* | |||||
* @return | |||||
*/ | |||||
public JsonResult exportReport(ExportReportRequest request) { | |||||
return eportReportService.exportReport(request); | |||||
} | |||||
} | } |
package com.tuoheng.admin.service.airData; | package com.tuoheng.admin.service.airData; | ||||
import com.tuoheng.admin.entity.domain.AirData; | import com.tuoheng.admin.entity.domain.AirData; | ||||
import com.tuoheng.admin.entity.request.report.ExportReportRequest; | |||||
import com.tuoheng.common.core.common.IBaseService; | import com.tuoheng.common.core.common.IBaseService; | ||||
import com.tuoheng.common.core.utils.JsonResult; | |||||
/** | /** | ||||
* @Author ChengWang | * @Author ChengWang | ||||
* @Date 2023/5/23 | * @Date 2023/5/23 | ||||
*/ | */ | ||||
public interface IAirDataService extends IBaseService<AirData> { | public interface IAirDataService extends IBaseService<AirData> { | ||||
/** | |||||
* | |||||
* 导出报告 | |||||
* | |||||
* @return | |||||
*/ | |||||
JsonResult exportReport(ExportReportRequest request); | |||||
} | } |
package com.tuoheng.admin.service.airData.report; | |||||
import cn.hutool.core.util.ObjectUtil; | |||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; | |||||
import com.tuoheng.admin.entity.domain.AirData; | |||||
import com.tuoheng.admin.entity.domain.AirDataExport; | |||||
import com.tuoheng.admin.entity.domain.AirDataType; | |||||
import com.tuoheng.admin.entity.domain.Inspection; | |||||
import com.tuoheng.admin.entity.request.report.ExportReportRequest; | |||||
import com.tuoheng.admin.enums.MarkEnum; | |||||
import com.tuoheng.admin.mapper.AirDataExportMapper; | |||||
import com.tuoheng.admin.mapper.AirDataMapper; | |||||
import com.tuoheng.admin.mapper.AirDataTypeMapper; | |||||
import com.tuoheng.admin.mapper.InspectionMapper; | |||||
import com.tuoheng.admin.utils.AliyunOSSUtil; | |||||
import com.tuoheng.common.core.config.UploadFileConfig; | |||||
import com.tuoheng.common.core.exception.ServiceException; | |||||
import com.tuoheng.common.core.utils.FileUtils; | |||||
import com.tuoheng.common.core.utils.JsonResult; | |||||
import com.tuoheng.common.core.utils.StringUtils; | |||||
import lombok.extern.slf4j.Slf4j; | |||||
import org.springframework.beans.factory.annotation.Autowired; | |||||
import org.springframework.stereotype.Service; | |||||
import java.io.File; | |||||
import java.io.FileInputStream; | |||||
import java.io.FileNotFoundException; | |||||
import java.io.InputStream; | |||||
@Slf4j | |||||
@Service | |||||
public class ExportReportService { | |||||
@Autowired | |||||
private InspectionMapper inspectionMapper; | |||||
@Autowired | |||||
private AirDataMapper airDataMapper; | |||||
@Autowired | |||||
private AirDataTypeMapper airDataTypeMapper; | |||||
@Autowired | |||||
private AirDataExportMapper airDataExportMapper; | |||||
@Autowired | |||||
private GenerateReportWordService generateReportWordService; | |||||
@Autowired | |||||
private AliyunOSSUtil aliyunOSSUtil; | |||||
public JsonResult exportReport(ExportReportRequest request) { | |||||
JsonResult result = this.check(request); | |||||
if (0 != result.getCode()) { | |||||
log.info("导出报告:校验失败:{}", result.getMsg()); | |||||
return result; | |||||
} | |||||
AirDataExport airDataExport = this.checkAirDataExport(request); | |||||
if (ObjectUtil.isNotEmpty(airDataExport)) { | |||||
return JsonResult.success(airDataExport); | |||||
} | |||||
Inspection inspection = (Inspection) result.getData(); | |||||
AirDataType airDataType = airDataTypeMapper.selectById(request.getAirDataTypeId()); | |||||
String filename = inspection.getCode() + "-" + airDataType.getDataType() + "(" +request.getGridSize() + ")浓度分布报告" + ".doc"; | |||||
String filePath = UploadFileConfig.uploadFolder + "/report/" + filename; | |||||
File fd = new File(UploadFileConfig.uploadFolder + "/report"); | |||||
if (!fd.exists()) { | |||||
fd.mkdirs(); | |||||
} | |||||
AirData beginAirData = airDataMapper.selectOne(new LambdaQueryWrapper<AirData>() | |||||
.eq(AirData::getInspectionId, request.getInspectionId()) | |||||
.eq(AirData::getMark, MarkEnum.VALID.getCode()) | |||||
.orderByDesc(AirData::getCUtcTime) | |||||
.last(" limit 1")); | |||||
AirData endAirData = airDataMapper.selectOne(new LambdaQueryWrapper<AirData>() | |||||
.eq(AirData::getInspectionId, request.getInspectionId()) | |||||
.eq(AirData::getMark, MarkEnum.VALID.getCode()) | |||||
.orderByAsc(AirData::getCUtcTime) | |||||
.last(" limit 1")); | |||||
// 生成word | |||||
File f = new File(filePath); | |||||
if (!f.exists() || f.length() < 1000) { | |||||
String detectionTime = ""; | |||||
if (ObjectUtil.isNotEmpty(beginAirData)) { | |||||
detectionTime += beginAirData.getCUtcTime(); | |||||
} | |||||
detectionTime += "至"; | |||||
if (ObjectUtil.isNotEmpty(endAirData)) { | |||||
detectionTime += endAirData.getCUtcTime(); | |||||
} | |||||
String analyticalMethods = "激光散射"; | |||||
result = generateReportWordService.buildWord(filePath, request, airDataType, detectionTime, inspection.getEquipmentMountCode(), analyticalMethods); | |||||
if (0 != result.getCode()) { | |||||
log.info("导出报告业务:生成word失败:{}", result.getMsg()); | |||||
return result; | |||||
} | |||||
} | |||||
// 上传到oss | |||||
String ossUrl = this.uploadOss(filePath, filename); | |||||
// 记录 | |||||
this.insertAirDataExport(request, inspection, airDataType, ossUrl); | |||||
// 删除原文件 | |||||
// FileUtils.deleteFile(filePath); | |||||
return JsonResult.success(); | |||||
} | |||||
/** | |||||
* 检查参数 | |||||
* | |||||
* @param request | |||||
* @return | |||||
*/ | |||||
private JsonResult check(ExportReportRequest request) { | |||||
if (StringUtils.isEmpty(request.getInspectionId())) { | |||||
log.info("导出报告,任务ID为空,inspectionId={}", request.getInspectionId()); | |||||
throw new ServiceException("任务ID为空"); | |||||
} | |||||
if (StringUtils.isEmpty(request.getAirDataTypeId())) { | |||||
log.info("导出报告,大气数据类型为空,airDataType={}", request.getAirDataTypeId()); | |||||
throw new ServiceException("大气数据类型为空"); | |||||
} | |||||
if (StringUtils.isEmpty(request.getOssUrl())) { | |||||
log.info("导出报告,大气数据图片为空,ossUrl={}", request.getOssUrl()); | |||||
throw new ServiceException("大气数据图片为空"); | |||||
} | |||||
Inspection inspection = inspectionMapper.selectById(request.getInspectionId()); | |||||
if (ObjectUtil.isEmpty(inspection)) { | |||||
log.info("导出报告,任务不存在,inspectionId={}", request.getInspectionId()); | |||||
throw new ServiceException("任务不存在"); | |||||
} | |||||
return JsonResult.success(inspection); | |||||
} | |||||
private AirDataExport checkAirDataExport(ExportReportRequest request) { | |||||
AirDataExport airDataExport = airDataExportMapper.selectOne(new LambdaQueryWrapper<AirDataExport>() | |||||
.eq(AirDataExport::getInspectionId, request.getInspectionId()) | |||||
.eq(AirDataExport::getAirDataTypeId, request.getAirDataTypeId()) | |||||
.eq(AirDataExport::getExportType, "report") | |||||
.eq(AirDataExport::getGridSize, request.getGridSize()) | |||||
.eq(AirDataExport::getMark, MarkEnum.VALID.getCode())); | |||||
return airDataExport; | |||||
} | |||||
private String uploadOss(String filePath, String filename) { | |||||
File file = new File(filePath); | |||||
InputStream in = null; | |||||
String fileUrl = ""; | |||||
try { | |||||
in = new FileInputStream(file); | |||||
aliyunOSSUtil.uploadFile2OSS(in, filename); | |||||
fileUrl = aliyunOSSUtil.getFileUrl(filename); | |||||
} catch (FileNotFoundException e) { | |||||
throw new RuntimeException(e); | |||||
} | |||||
return fileUrl; | |||||
} | |||||
/** | |||||
* @param request | |||||
* @param inspection | |||||
* @param airDataType | |||||
* @param ossUrl | |||||
*/ | |||||
private void insertAirDataExport(ExportReportRequest request, Inspection inspection, AirDataType airDataType, String ossUrl) { | |||||
// 记录 | |||||
AirDataExport airDataExport = new AirDataExport(); | |||||
airDataExport.setTenantId(inspection.getTenantId()); | |||||
airDataExport.setInspectionId(request.getInspectionId()); | |||||
airDataExport.setExportType("report"); | |||||
airDataExport.setAirDataTypeId(airDataType.getId()); | |||||
airDataExport.setGridSize(request.getGridSize()); | |||||
airDataExport.setOssUrl(ossUrl); | |||||
Integer count = airDataExportMapper.insert(airDataExport); | |||||
if (count <= 0) { | |||||
log.info("添加大气数据报告导出记录失败"); | |||||
} | |||||
} | |||||
} |
package com.tuoheng.admin.service.airData.report; | |||||
import com.lowagie.text.*; | |||||
import com.tuoheng.admin.entity.domain.AirDataType; | |||||
import com.tuoheng.admin.entity.request.report.ExportReportRequest; | |||||
import com.tuoheng.admin.mapper.UserMapper; | |||||
import com.tuoheng.admin.utils.WordUtils; | |||||
import com.tuoheng.common.core.utils.JsonResult; | |||||
import lombok.extern.slf4j.Slf4j; | |||||
import org.springframework.beans.factory.annotation.Autowired; | |||||
import org.springframework.stereotype.Service; | |||||
import java.io.IOException; | |||||
@Slf4j | |||||
@Service | |||||
public class GenerateReportWordService { | |||||
@Autowired | |||||
private UserMapper userMapper; | |||||
/** | |||||
* @param filepath | |||||
* @param request | |||||
* @param airDataType | |||||
* @param detectionTime | |||||
* @param equipmentMountCode | |||||
* @param analyticalMethods | |||||
* @return | |||||
*/ | |||||
public JsonResult buildWord(String filepath, ExportReportRequest request, AirDataType airDataType, String detectionTime, String equipmentMountCode, String analyticalMethods) { | |||||
WordUtils wordUtils = new WordUtils(); | |||||
wordUtils.getDocument().setPageSize(PageSize.A4); | |||||
wordUtils.getDocument().setMargins(71f, 71f, 72f, 72f); | |||||
try { | |||||
wordUtils.openDocument(filepath); | |||||
// 标题 | |||||
// String titleName = airDataType.getDataType() + "报告"; | |||||
// wordUtils.insertTitlePattern(titleName, wordUtils.rtfGsBt1); | |||||
wordUtils.insertContext(airDataType.getDataType() + "浓度分布", 10, Font.BOLD, Element.ALIGN_LEFT, 20, 0, 0); | |||||
wordUtils.insertContext("检测时间:" + detectionTime, 10, Font.NORMAL, Element.ALIGN_LEFT, 20, 0, 0); | |||||
wordUtils.insertContext("监测设备:" + equipmentMountCode, 10, Font.NORMAL, Element.ALIGN_LEFT, 20, 0, 0); | |||||
wordUtils.insertContext("分析方法:" + analyticalMethods, 10, Font.NORMAL, Element.ALIGN_LEFT, 20, 0, 0); | |||||
wordUtils.insertContext("采样点数量:" + request.getSamplingPointsNum(), 10, Font.NORMAL, Element.ALIGN_LEFT, 20, 0, 0); | |||||
wordUtils.insertContext("检测区域网格平均尺寸:" + request.getAverageGridSize(), 10, Font.NORMAL, Element.ALIGN_LEFT, 20, 0, 0); | |||||
wordUtils.insertContext("总检测区域网格面积:" + request.getGridArea(), 10, Font.NORMAL, Element.ALIGN_LEFT, 20, 0, 0); | |||||
wordUtils.insertContext("检测区域中心点经纬度:" + request.getCenterPointLongitudeAndLatitude(), 10, Font.NORMAL, Element.ALIGN_LEFT, 20, 0, 0); | |||||
wordUtils.insertContext(airDataType.getDataType() + "检测区域平均浓度:" + request.getAverageConcentration(), 10, Font.NORMAL, Element.ALIGN_LEFT, 20, 0, 0); | |||||
wordUtils.insertContext(airDataType.getDataType() + "网格浓度最高值:" + request.getGridConcentrationMax(), 10, Font.NORMAL, Element.ALIGN_LEFT, 20, 0, 0); | |||||
wordUtils.insertContext(airDataType.getDataType() + "网格浓度最小值:" + request.getGridConcentrationMix(), 10, Font.NORMAL, Element.ALIGN_LEFT, 20, 0, 0); | |||||
wordUtils.insertContext(airDataType.getDataType() + "单点浓度最高值:" + request.getSinglePointConcentrationMax(), 10, Font.NORMAL, Element.ALIGN_LEFT, 20, 0, 0); | |||||
wordUtils.insertContext(airDataType.getDataType() + "单点浓度最低值:" + request.getSinglePointConcentrationMix(), 10, Font.NORMAL, Element.ALIGN_LEFT, 20, 0, 0); | |||||
wordUtils.insertImg(request.getOssUrl(), Image.ALIGN_CENTER, 400, 500, 100, 100, 100, 0); | |||||
wordUtils.insertImg(request.getStandardOssUrl(), Image.ALIGN_CENTER, 100, 500, 100, 100, 100, 0); | |||||
} catch (DocumentException e) { | |||||
log.info("生成报告word异常"); | |||||
throw new RuntimeException(e); | |||||
} catch (IOException e) { | |||||
log.info("生成报告word异常"); | |||||
throw new RuntimeException(e); | |||||
} finally { | |||||
try { | |||||
wordUtils.closeDocument(); | |||||
} catch (DocumentException e) { | |||||
throw new RuntimeException(e); | |||||
} | |||||
} | |||||
return JsonResult.success(); | |||||
} | |||||
} |
#静态资源对外暴露的访问路径 | #静态资源对外暴露的访问路径 | ||||
staticAccessPath: /** | staticAccessPath: /** | ||||
#静态资源实际存储路径 | #静态资源实际存储路径 | ||||
uploadFolder: /data/java/tuoheng_air_monitor/uploads/ | |||||
uploadFolder: /data/java/tuoheng_airmonitor/uploads/ | |||||
# 自定义配置 | # 自定义配置 | ||||
#静态资源对外暴露的访问路径 | #静态资源对外暴露的访问路径 | ||||
staticAccessPath: /** | staticAccessPath: /** | ||||
#静态资源实际存储路径 | #静态资源实际存储路径 | ||||
uploadFolder: /data/java/tuoheng_air_monitor/uploads/ | |||||
uploadFolder: /data/java/tuoheng_airmonitor/uploads/ | |||||
#阿里云 | #阿里云 | ||||
aliyuncsVod: | aliyuncsVod: |
<?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.tuoheng.admin.mapper.AirDataExportMapper"> | |||||
</mapper> |
package com.tuoheng.admin.service; | |||||
import com.tuoheng.admin.entity.request.report.ExportReportRequest; | |||||
import com.tuoheng.admin.entity.request.third.DspCallbackRequest; | |||||
import com.tuoheng.admin.service.airData.report.ExportReportService; | |||||
import com.tuoheng.admin.service.third.dsp.IDspCallbackService; | |||||
import lombok.extern.slf4j.Slf4j; | |||||
import org.junit.Test; | |||||
import org.junit.runner.RunWith; | |||||
import org.springframework.beans.factory.annotation.Autowired; | |||||
import org.springframework.boot.test.context.SpringBootTest; | |||||
import org.springframework.test.context.junit4.SpringRunner; | |||||
@Slf4j | |||||
@RunWith(SpringRunner.class) | |||||
@SpringBootTest | |||||
public class ExportReportServiceTest { | |||||
@Autowired | |||||
private ExportReportService exportReportService; | |||||
@Test | |||||
public void testxportReport() { | |||||
ExportReportRequest request = new ExportReportRequest(); | |||||
request.setInspectionId("e53dc6189ec300fe063c30f5972a5fe1"); | |||||
request.setAirDataTypeId("1"); | |||||
request.setOssUrl("https://img2.woyaogexing.com/2023/05/23/1ec4a4a1560ca19c8c1775251dabb620.png"); | |||||
request.setStandardOssUrl("https://img2.woyaogexing.com/2023/05/23/1ec4a4a1560ca19c8c1775251dabb620.png"); | |||||
request.setSamplingPointsNum("510"); // 采样点数量 | |||||
request.setAverageGridSize("84.9635米X849635米(7218803平方米)"); // 检测区域网格平均尺寸 | |||||
request.setGridArea("346502.563(平方米)"); // 总检测区域网格面积 | |||||
request.setCenterPointLongitudeAndLatitude("1187743E318280N"); // 检测区域中心点经纬度 | |||||
request.setAverageConcentration("20037ug/m3"); // 检测区域平均浓度 | |||||
request.setGridConcentrationMax("24714u/m31187726E318253N"); // 网格浓度最高值 | |||||
request.setGridConcentrationMix("16000ug/m3(1187761E318291N)"); // 网格浓度最小值 | |||||
request.setSinglePointConcentrationMax("25000ug/m3(1187718318252N)2022/04/29 14:06:40"); // 单点浓度最高值 | |||||
request.setSinglePointConcentrationMix("16000ug/m3(1187753318286 N)2022/04/2914:02:21"); // 单点浓度最低值 | |||||
// exportReportService.exportReport(request); | |||||
} | |||||
} |