Commit b0e3661d by gdj

导出任务记录

parent 4898d118
...@@ -24,6 +24,8 @@ ...@@ -24,6 +24,8 @@
<glassfish-jaxb.version>2.3.3</glassfish-jaxb.version> <glassfish-jaxb.version>2.3.3</glassfish-jaxb.version>
<log4j2.version>2.15.0</log4j2.version> <log4j2.version>2.15.0</log4j2.version>
<javax-jaxb.version>2.3.0</javax-jaxb.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> </properties>
<dependencies> <dependencies>
...@@ -152,7 +154,7 @@ ...@@ -152,7 +154,7 @@
<dependency> <dependency>
<groupId>org.springframework.security</groupId> <groupId>org.springframework.security</groupId>
<artifactId>spring-security-crypto</artifactId> <artifactId>spring-security-crypto</artifactId>
<version>5.7.8</version> <version>${crypto.version}</version>
</dependency> </dependency>
...@@ -160,6 +162,23 @@ ...@@ -160,6 +162,23 @@
<groupId>org.springframework.boot</groupId> <groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-mail</artifactId> <artifactId>spring-boot-starter-mail</artifactId>
</dependency> </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> </dependencies>
......
package com.dji.sample.wayline.controller; package com.dji.sample.wayline.controller;
import com.dji.sample.common.model.CustomClaim; 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.TaskStatisticDTO;
import com.dji.sample.wayline.model.dto.WaylineJobDTO; 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.CreateJobParam;
import com.dji.sample.wayline.model.param.UpdateJobParam; import com.dji.sample.wayline.model.param.UpdateJobParam;
import com.dji.sample.wayline.model.param.WaylineJobSearchParam; import com.dji.sample.wayline.model.param.WaylineJobSearchParam;
...@@ -10,10 +12,12 @@ import com.dji.sample.wayline.service.IFlightTaskService; ...@@ -10,10 +12,12 @@ import com.dji.sample.wayline.service.IFlightTaskService;
import com.dji.sample.wayline.service.IWaylineJobService; import com.dji.sample.wayline.service.IWaylineJobService;
import com.dji.sdk.common.HttpResultResponse; import com.dji.sdk.common.HttpResultResponse;
import com.dji.sdk.common.PaginationData; import com.dji.sdk.common.PaginationData;
import lombok.extern.java.Log;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.validation.Valid; import javax.validation.Valid;
import java.sql.SQLException; import java.sql.SQLException;
import java.util.List; import java.util.List;
...@@ -132,4 +136,16 @@ public class WaylineJobController { ...@@ -132,4 +136,16 @@ public class WaylineJobController {
return HttpResultResponse.success(data); 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; ...@@ -9,6 +9,7 @@ import com.dji.sample.wayline.model.param.CreateJobParam;
import com.dji.sample.wayline.model.param.WaylineJobSearchParam; import com.dji.sample.wayline.model.param.WaylineJobSearchParam;
import com.dji.sdk.common.PaginationData; import com.dji.sdk.common.PaginationData;
import javax.servlet.http.HttpServletResponse;
import java.util.Collection; import java.util.Collection;
import java.util.List; import java.util.List;
import java.util.Optional; import java.util.Optional;
...@@ -115,4 +116,11 @@ public interface IWaylineJobService extends IService<WaylineJobEntity> { ...@@ -115,4 +116,11 @@ public interface IWaylineJobService extends IService<WaylineJobEntity> {
*/ */
List<TaskStatisticDTO> getTaskStatistics(String workspaceId, Integer timeType); 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.*; ...@@ -34,7 +34,11 @@ import com.dji.sdk.cloudapi.wayline.*;
import com.dji.sdk.common.Pagination; import com.dji.sdk.common.Pagination;
import com.dji.sdk.common.PaginationData; import com.dji.sdk.common.PaginationData;
import com.fasterxml.jackson.databind.ObjectMapper; import com.fasterxml.jackson.databind.ObjectMapper;
import lombok.SneakyThrows;
import lombok.extern.slf4j.Slf4j; 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.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
...@@ -42,6 +46,10 @@ import org.springframework.util.CollectionUtils; ...@@ -42,6 +46,10 @@ import org.springframework.util.CollectionUtils;
import org.springframework.util.ObjectUtils; import org.springframework.util.ObjectUtils;
import org.springframework.util.StringUtils; import org.springframework.util.StringUtils;
import javax.servlet.ServletOutputStream;
import javax.servlet.http.HttpServletResponse;
import java.text.SimpleDateFormat;
import java.time.*; import java.time.*;
import java.time.format.DateTimeFormatter; import java.time.format.DateTimeFormatter;
import java.time.temporal.WeekFields; import java.time.temporal.WeekFields;
...@@ -642,4 +650,62 @@ public class WaylineJobServiceImpl extends ServiceImpl<IWaylineJobMapper, Waylin ...@@ -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