From 72b7d2c5ea19ed2047ee896b7f36da20d04bcea6 Mon Sep 17 00:00:00 2001
From: rain <1679827795@qq.com>
Date: Thu, 22 Jan 2026 17:22:15 +0800
Subject: [PATCH] 事件数量tab接口
---
drone-service/drone-gd/src/main/java/org/sxkj/gd/workorder/controller/GdPatrolTaskController.java | 69 ++++++++++++++++++++++++++++++++++
1 files changed, 68 insertions(+), 1 deletions(-)
diff --git a/drone-service/drone-gd/src/main/java/org/sxkj/gd/workorder/controller/GdPatrolTaskController.java b/drone-service/drone-gd/src/main/java/org/sxkj/gd/workorder/controller/GdPatrolTaskController.java
index 69858f4..299abd7 100644
--- a/drone-service/drone-gd/src/main/java/org/sxkj/gd/workorder/controller/GdPatrolTaskController.java
+++ b/drone-service/drone-gd/src/main/java/org/sxkj/gd/workorder/controller/GdPatrolTaskController.java
@@ -33,8 +33,10 @@
import org.springframework.web.bind.annotation.*;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
+import org.sxkj.gd.common.IdParam;
import org.sxkj.gd.workorder.entity.GdPatrolTaskEntity;
import org.sxkj.gd.workorder.entity.GdWorkOrderEntity;
+import org.sxkj.gd.workorder.enums.PatrolTaskStatusEnum;
import org.sxkj.gd.workorder.param.GdPatrolTaskAddParam;
import org.sxkj.gd.workorder.param.GdPatrolTaskAuditParam;
import org.sxkj.gd.workorder.param.GdPatrolTaskPageParam;
@@ -48,9 +50,15 @@
import org.springblade.core.tool.utils.DateUtil;
import org.springblade.core.excel.util.ExcelUtil;
import org.springblade.core.tool.constant.BladeConstant;
+import org.springblade.core.tool.utils.StringUtil;
import org.sxkj.system.cache.SysCache;
import springfox.documentation.annotations.ApiIgnore;
+import java.io.File;
+import java.nio.file.Files;
+import java.nio.file.Path;
+import java.nio.file.Paths;
+import java.nio.file.StandardCopyOption;
import java.util.ArrayList;
import java.util.Map;
import java.util.List;
@@ -182,10 +190,26 @@
}
/**
+ * 巡查任务执行完成-对外
+ */
+ @PostMapping("/auditExternal")
+ @ApiOperationSupport(order = 11)
+ @ApiOperation(value = "巡查任务执行完成-对外", notes = "只能使用执行完成操作")
+ public R auditExternal(@Valid @RequestBody IdParam param) {
+ if (param.getId() == null) {
+ return R.fail("巡检任务id不能为空");
+ }
+ GdPatrolTaskEntity auditParam = new GdPatrolTaskEntity();
+ auditParam.setId(param.getId());
+ auditParam.setTaskStatus(PatrolTaskStatusEnum.PENDING_ACCEPTANCE.getValue());
+ return R.status(gdPatrolTaskService.updateById(auditParam));
+ }
+
+ /**
* 更新单个巡查任务信息
*/
@PostMapping("/republish")
- @ApiOperationSupport(order = 11)
+ @ApiOperationSupport(order = 12)
@ApiOperation(value = "更新单个巡查任务信息", notes = "传入巡查任务信息")
public R republish(@Valid @RequestBody GdPatrolTaskUpdateParam gdPatrolTask) {
GdPatrolTaskEntity gdPatrolTaskEntity = Objects.requireNonNull(BeanUtil.copy(gdPatrolTask, GdPatrolTaskEntity.class));
@@ -193,4 +217,47 @@
return R.status(result);
}
+ @PostMapping("/export-report")
+ @ApiOperationSupport(order = 13)
+ @ApiOperation(value = "导出巡查报告", notes = "传入巡查任务id")
+ public R<String> exportReport(@RequestParam Long id) {
+ if (id == null) {
+ return R.fail("巡查任务id不能为空");
+ }
+ File reportFile = gdPatrolTaskService.exportPatrolReport(id);
+ File savedFile = saveReportToResources(reportFile, id);
+ return R.data(savedFile.getAbsolutePath());
+ }
+
+ private File saveReportToResources(File reportFile, Long patrolTaskId) {
+ if (reportFile == null || !reportFile.exists()) {
+ throw new RuntimeException("生成的巡查报告文件不存在");
+ }
+ Path resourcesDir = resolveResourcesDir();
+ String fileName = "gd_patrol_report_" + patrolTaskId + "_" + DateUtil.time() + ".docx";
+ Path targetPath = resourcesDir.resolve(fileName);
+ try {
+ Files.createDirectories(resourcesDir);
+ Files.copy(reportFile.toPath(), targetPath, StandardCopyOption.REPLACE_EXISTING);
+ return targetPath.toFile();
+ } catch (Exception e) {
+ throw new RuntimeException("保存巡查报告失败", e);
+ }
+ }
+
+ private Path resolveResourcesDir() {
+ String userDir = System.getProperty("user.dir");
+ if (StringUtil.isBlank(userDir)) {
+ throw new RuntimeException("无法获取工作目录");
+ }
+ Path basePath = Paths.get(userDir);
+ if (basePath.endsWith("drone-gd")) {
+ return basePath.resolve("src").resolve("main").resolve("resources");
+ }
+ if (basePath.endsWith("drone-service")) {
+ return basePath.resolve("drone-gd").resolve("src").resolve("main").resolve("resources");
+ }
+ return basePath.resolve("drone-service").resolve("drone-gd").resolve("src").resolve("main").resolve("resources");
+ }
+
}
--
Gitblit v1.9.3