Commit b0e3661d by gdj

导出任务记录

parent 4898d118
......@@ -24,6 +24,8 @@
<glassfish-jaxb.version>2.3.3</glassfish-jaxb.version>
<log4j2.version>2.15.0</log4j2.version>
<javax-jaxb.version>2.3.0</javax-jaxb.version>
<crypto.version>5.7.8</crypto.version>
<poi.version>4.1.2</poi.version>
</properties>
<dependencies>
......@@ -152,7 +154,7 @@
<dependency>
<groupId>org.springframework.security</groupId>
<artifactId>spring-security-crypto</artifactId>
<version>5.7.8</version>
<version>${crypto.version}</version>
</dependency>
......@@ -160,6 +162,23 @@
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-mail</artifactId>
</dependency>
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi</artifactId>
<version>${poi.version}</version>
</dependency>
<!-- excel工具 -->
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi-ooxml</artifactId>
<version>${poi.version}</version>
</dependency>
<!-- io常用工具类 -->
<dependency>
<groupId>commons-io</groupId>
<artifactId>commons-io</artifactId>
<version>2.13.0</version>
</dependency>
</dependencies>
......
package com.dji.sample.wayline.controller;
import com.dji.sample.common.model.CustomClaim;
import com.dji.sample.common.util.excel.ExcelUtil;
import com.dji.sample.wayline.model.dto.TaskStatisticDTO;
import com.dji.sample.wayline.model.dto.WaylineJobDTO;
import com.dji.sample.wayline.model.entity.WaylineJobEntity;
import com.dji.sample.wayline.model.param.CreateJobParam;
import com.dji.sample.wayline.model.param.UpdateJobParam;
import com.dji.sample.wayline.model.param.WaylineJobSearchParam;
......@@ -10,10 +12,12 @@ import com.dji.sample.wayline.service.IFlightTaskService;
import com.dji.sample.wayline.service.IWaylineJobService;
import com.dji.sdk.common.HttpResultResponse;
import com.dji.sdk.common.PaginationData;
import lombok.extern.java.Log;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.validation.Valid;
import java.sql.SQLException;
import java.util.List;
......@@ -132,4 +136,16 @@ public class WaylineJobController {
return HttpResultResponse.success(data);
}
/**
* 导出任务
* @param workspaceId
* @return
*/
@PostMapping("/{workspace_id}/export")
public void export(HttpServletResponse response, @PathVariable(name = "workspace_id") String workspaceId) {
waylineJobService.exportTaskList(response, workspaceId);
}
}
......@@ -9,6 +9,7 @@ import com.dji.sample.wayline.model.param.CreateJobParam;
import com.dji.sample.wayline.model.param.WaylineJobSearchParam;
import com.dji.sdk.common.PaginationData;
import javax.servlet.http.HttpServletResponse;
import java.util.Collection;
import java.util.List;
import java.util.Optional;
......@@ -115,4 +116,11 @@ public interface IWaylineJobService extends IService<WaylineJobEntity> {
*/
List<TaskStatisticDTO> getTaskStatistics(String workspaceId, Integer timeType);
/**
* 导出数据
* @param response
* @param workspaceId
*/
void exportTaskList(HttpServletResponse response, String workspaceId);
}
......@@ -34,7 +34,11 @@ import com.dji.sdk.cloudapi.wayline.*;
import com.dji.sdk.common.Pagination;
import com.dji.sdk.common.PaginationData;
import com.fasterxml.jackson.databind.ObjectMapper;
import lombok.SneakyThrows;
import lombok.extern.slf4j.Slf4j;
import org.apache.poi.ss.usermodel.Row;
import org.apache.poi.ss.usermodel.Sheet;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
......@@ -42,6 +46,10 @@ import org.springframework.util.CollectionUtils;
import org.springframework.util.ObjectUtils;
import org.springframework.util.StringUtils;
import javax.servlet.ServletOutputStream;
import javax.servlet.http.HttpServletResponse;
import java.text.SimpleDateFormat;
import java.time.*;
import java.time.format.DateTimeFormatter;
import java.time.temporal.WeekFields;
......@@ -642,4 +650,62 @@ public class WaylineJobServiceImpl extends ServiceImpl<IWaylineJobMapper, Waylin
}
@SneakyThrows
@Override
public void exportTaskList(HttpServletResponse response, String workspaceId) {
// 模拟数据(根据传入参数过滤)
List<WaylineJobEntity> list = this.list();
// 创建 Excel
XSSFWorkbook workbook = new XSSFWorkbook();
Sheet sheet = workbook.createSheet("task");
Row header = sheet.createRow(0);
header.createCell(0).setCellValue("task_name");
header.createCell(1).setCellValue("dock_sn");
header.createCell(2).setCellValue("username");
header.createCell(3).setCellValue("create_time");
header.createCell(4).setCellValue("begin_time");
header.createCell(5).setCellValue("completed_time");
// header.createCell(6).setCellValue("task_scene");
// 使用format方法将时间戳转换为字符串
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
int rowIndex = 1;
for (WaylineJobEntity waylineJobEntity : list) {
Row row = sheet.createRow(rowIndex);
if (StringUtils.hasText(waylineJobEntity.getName())) {
row.createCell(0).setCellValue(waylineJobEntity.getName());
}
if (StringUtils.hasText(waylineJobEntity.getDockSn())) {
row.createCell(1).setCellValue(waylineJobEntity.getDockSn());
}
if (StringUtils.hasText(waylineJobEntity.getUsername())) {
row.createCell(2).setCellValue(waylineJobEntity.getUsername());
}
if (waylineJobEntity.getCreateTime() != null) {
row.createCell(3).setCellValue(dateFormat.format(new Date(waylineJobEntity.getCreateTime())));
}
if (waylineJobEntity.getBeginTime() != null) {
row.createCell(4).setCellValue(dateFormat.format(new Date(waylineJobEntity.getBeginTime())));
}
if (waylineJobEntity.getCompletedTime() != null) {
row.createCell(5).setCellValue(dateFormat.format(new Date(waylineJobEntity.getCompletedTime())));
}
// row.createCell(6).setCellValue(waylineJobEntity.getTaskScene());
rowIndex++;
}
response.setContentType("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet");
response.setHeader("Content-Disposition", "attachment; filename=users.xlsx");
ServletOutputStream out = response.getOutputStream();
workbook.write(out);
out.flush();
out.close();
workbook.close();
}
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment