diff --git a/nladmin-system/pom.xml b/nladmin-system/pom.xml
index 653d3f6..2dc429b 100644
--- a/nladmin-system/pom.xml
+++ b/nladmin-system/pom.xml
@@ -298,6 +298,13 @@
org.springframework.boot
spring-boot-starter-freemarker
+
+
+
+ com.alibaba
+ easyexcel
+ 3.1.1
+
org.apache.poi
diff --git a/nladmin-system/src/main/java/org/nl/agv/entity/TaskInfo.java b/nladmin-system/src/main/java/org/nl/agv/entity/TaskInfo.java
index 05d6e43..71cf808 100644
--- a/nladmin-system/src/main/java/org/nl/agv/entity/TaskInfo.java
+++ b/nladmin-system/src/main/java/org/nl/agv/entity/TaskInfo.java
@@ -1,5 +1,6 @@
package org.nl.agv.entity;
+import com.alibaba.excel.annotation.ExcelProperty;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
@@ -21,60 +22,77 @@ public class TaskInfo implements Serializable {
private String taskUuid;
@TableField("task_code")
+ @ExcelProperty("任务号(taskCode)")
private String taskCode;
@TableField("task_type")
+ @ExcelProperty("任务类型(taskType)")
private String taskType;
@TableField("task_type_name")
private String taskTypeName;
@TableField("en_task_type_name")
+ @ExcelProperty("任务类型名称(英文)")
private String enTaskTypeName;
@TableField("zh_task_type_name")
+ @ExcelProperty("任务类型名称(中文)")
private String zhTaskTypeName;
@TableField("task_status")
+ @ExcelProperty("任务状态(taskStatus)")
private String taskStatus;
@TableField("task_status_name")
private String taskStatusName;
@TableField("en_task_status_name")
+ @ExcelProperty("任务状态名称(英文)")
private String enTaskStatusName;
@TableField("zh_task_status_name")
+ @ExcelProperty("任务状态名称(中文)")
private String zhTaskStatusName;
@TableField("next_point_code")
+ @ExcelProperty("目标点(nextPointCode)")
private String nextPointCode;
@TableField("next_point_code2")
+ @ExcelProperty("下一个点")
private String nextPointCode2;
@TableField("is_delete")
+ @ExcelProperty("是否已经删除")
private String isDelete;
@TableField("seq_num")
+ @ExcelProperty("排序号")
private BigDecimal seqNum;
@TableField("date")
+ @ExcelProperty("日期")
private String date;
@TableField("create_by")
+ @ExcelProperty("创建者")
private String createBy;
@TableField("create_time")
+ @ExcelProperty("创建时间")
private String createTime;
@TableField("is_manualfinished")
+ @ExcelProperty("人工是否完成")
private String isManualfinished;
@TableField("update_by")
+ @ExcelProperty("修改者")
private String updateBy;
@TableField("update_time")
+ @ExcelProperty("修改时间")
private String updateTime;
@TableField("step")
diff --git a/nladmin-system/src/main/java/org/nl/agv/rest/ExcelDownloadController.java b/nladmin-system/src/main/java/org/nl/agv/rest/ExcelDownloadController.java
new file mode 100644
index 0000000..3cb87fe
--- /dev/null
+++ b/nladmin-system/src/main/java/org/nl/agv/rest/ExcelDownloadController.java
@@ -0,0 +1,44 @@
+package org.nl.agv.rest;
+
+import cn.dev33.satoken.annotation.SaIgnore;
+import com.alibaba.excel.EasyExcel;
+import org.nl.agv.entity.TaskInfo;
+import org.nl.agv.service.TaskService;
+import org.springframework.http.HttpStatus;
+import org.springframework.http.ResponseEntity;
+import org.springframework.web.bind.annotation.*;
+
+import javax.annotation.Resource;
+import javax.servlet.http.HttpServletResponse;
+import java.io.IOException;
+import java.net.URLEncoder;
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * @author dsh
+ * 2025/12/9
+ */
+@SaIgnore
+@RestController
+@RequestMapping("/api/taskExcel")
+public class ExcelDownloadController {
+
+ @Resource
+ private TaskService taskService;
+
+ @GetMapping("/taskInfo")
+ public void taskInfo(HttpServletResponse response, @RequestParam long recentMonth) throws IOException {
+
+ List taskInfoList = taskService.findTaskByRecentMonth(recentMonth);
+
+ // 设置响应头
+ response.setContentType("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet");
+ response.setHeader("Content-Disposition", "attachment; filename=" + URLEncoder.encode("任务信息.xlsx", "UTF-8"));
+
+ // 使用EasyExcel写入数据到响应输出流
+ EasyExcel.write(response.getOutputStream(), TaskInfo.class)
+ .sheet("任务信息")
+ .doWrite(taskInfoList);
+ }
+}
diff --git a/nladmin-system/src/main/java/org/nl/agv/rest/VehicleInfoController.java b/nladmin-system/src/main/java/org/nl/agv/rest/VehicleInfoController.java
index da393f1..3b49aaa 100644
--- a/nladmin-system/src/main/java/org/nl/agv/rest/VehicleInfoController.java
+++ b/nladmin-system/src/main/java/org/nl/agv/rest/VehicleInfoController.java
@@ -53,6 +53,13 @@ public class VehicleInfoController{
return new ResponseEntity<>(vehicleInfoService.Shut_down(whereJson), HttpStatus.OK);
}
+ @PostMapping("/resetButton")
+ @Log("复位按钮")
+ @ApiOperation("复位按钮")
+ public ResponseEntity