| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677 |
- package com.znzn.project.dc.dtdata.controller;
- import com.znzn.project.dc.dtdata.common.R;
- import com.znzn.project.dc.dtdata.inOutEntity.CollectDataInData;
- import com.znzn.project.dc.dtdata.inOutEntity.CollectDataWithFileInData;
- import com.znzn.project.dc.dtdata.service.IDataCollectionService;
- import com.znzn.project.dc.dtdata.service.IWindTurbineDataInfoService;
- import io.swagger.v3.oas.annotations.Operation;
- import io.swagger.v3.oas.annotations.tags.Tag;
- import jakarta.annotation.Resource;
- import jakarta.validation.Valid;
- import org.springframework.core.io.ByteArrayResource;
- import org.springframework.http.HttpHeaders;
- import org.springframework.http.MediaType;
- import org.springframework.http.ResponseEntity;
- import org.springframework.web.bind.annotation.PostMapping;
- import org.springframework.web.bind.annotation.RequestBody;
- import org.springframework.web.bind.annotation.RequestMapping;
- import org.springframework.web.bind.annotation.RestController;
- import java.nio.charset.StandardCharsets;
- /**
- * <p>
- * 前端控制器
- * </p>
- *
- * @author 魏志亮
- * @since 2025-11-10
- */
- @RestController
- @RequestMapping("/windTurbineDataInfo")
- @Tag(name = "风机数据信息", description = "风机数据相关接口")
- public class WindTurbineDataInfoController {
- @Resource
- private IWindTurbineDataInfoService windTurbineDataInfoService;
- @Resource
- private IDataCollectionService dataCollectionService;
- // @PostMapping("getEveryWindAndTypeData")
- // @Operation(summary = "查询每个风场+机型的风机数据", description = "查询每个风场+机型的风机数据11")
- // public R<String> getEveryWindAndTypeData() {
- // windTurbineDataInfoService.getEveryWindAndTypeData();
- // return R.ok();
- // }
- @PostMapping("collectData")
- @Operation(summary = "收集数据", description = "收集数据")
- public R<String> collectData(@RequestBody CollectDataInData inData) {
- dataCollectionService.collectData(inData);
- return R.ok();
- }
- @PostMapping("collectDataWithFile")
- @Operation(summary = "收集数据下载", description = "收集数据下载")
- public ResponseEntity<org.springframework.core.io.Resource> collectDataWithFile(@RequestBody @Valid CollectDataWithFileInData inData) {
- byte[] csvBytes = dataCollectionService.collectDataWithFile(inData);
- ByteArrayResource resource = new ByteArrayResource(csvBytes);
- // 4. 构建响应头(设置下载文件名、文件类型等)
- HttpHeaders headers = new HttpHeaders();
- String fileName = "数据导出_" + System.currentTimeMillis() + ".csv";
- // 处理中文文件名编码,避免浏览器显示乱码
- headers.add(HttpHeaders.CONTENT_DISPOSITION, "attachment; filename=\"" +
- java.net.URLEncoder.encode(fileName, StandardCharsets.UTF_8) + "\"");
- headers.add(HttpHeaders.CONTENT_TYPE, "text/csv; charset=UTF-8");
- // 5. 构建并返回响应实体
- return ResponseEntity.ok()
- .headers(headers)
- .contentLength(csvBytes.length)
- .contentType(MediaType.parseMediaType("text/csv; charset=UTF-8"))
- .body(resource);
- }
- }
|