Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
G
GeoFlyApi
Overview
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
GeoFly
GeoFlyApi
Commits
b0e3661d
Commit
b0e3661d
authored
Jul 01, 2025
by
gdj
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
导出任务记录
parent
4898d118
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
110 additions
and
1 deletions
+110
-1
sample/pom.xml
+20
-1
sample/src/main/java/com/dji/sample/wayline/controller/WaylineJobController.java
+16
-0
sample/src/main/java/com/dji/sample/wayline/service/IWaylineJobService.java
+8
-0
sample/src/main/java/com/dji/sample/wayline/service/impl/WaylineJobServiceImpl.java
+66
-0
No files found.
sample/pom.xml
View file @
b0e3661d
...
...
@@ -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>
...
...
sample/src/main/java/com/dji/sample/wayline/controller/WaylineJobController.java
View file @
b0e3661d
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
);
}
}
sample/src/main/java/com/dji/sample/wayline/service/IWaylineJobService.java
View file @
b0e3661d
...
...
@@ -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
);
}
sample/src/main/java/com/dji/sample/wayline/service/impl/WaylineJobServiceImpl.java
View file @
b0e3661d
...
...
@@ -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
();
}
}
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment