From dc4ca57e049ec18d8303109d1aa332096b880a34 Mon Sep 17 00:00:00 2001
From: 13693261870 <252740454@qq.com>
Date: 星期五, 11 八月 2023 16:49:49 +0800
Subject: [PATCH] 1

---
 src/main/java/com/yssh/mapper/XlsReportMapper.java         |    5 +++++
 src/main/resources/mapper/XlsReportMapper.xml              |    7 +++++++
 src/main/java/com/yssh/controller/XlsReportController.java |    8 ++++++++
 src/main/java/com/yssh/service/XlsReportService.java       |   20 ++++++++++++++++++++
 4 files changed, 40 insertions(+), 0 deletions(-)

diff --git a/src/main/java/com/yssh/controller/XlsReportController.java b/src/main/java/com/yssh/controller/XlsReportController.java
index 0fa95fd..2f0aadc 100644
--- a/src/main/java/com/yssh/controller/XlsReportController.java
+++ b/src/main/java/com/yssh/controller/XlsReportController.java
@@ -15,6 +15,7 @@
 import org.springframework.web.bind.annotation.RestController;
 
 import javax.annotation.Resource;
+import javax.servlet.http.HttpServletResponse;
 import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.Date;
@@ -59,4 +60,11 @@
 
         return Result.OK(list);
     }
+
+    @ApiOperationSupport(order = 2)
+    @GetMapping("/downloadById")
+    @ApiOperation(value = "鏍规嵁ID涓嬭浇", notes = "鏍规嵁ID涓嬭浇")
+    public void downloadById(@RequestParam(value = "id", required = true) int id, HttpServletResponse res) {
+        xlsReportService.downloadById(id, res);
+    }
 }
diff --git a/src/main/java/com/yssh/mapper/XlsReportMapper.java b/src/main/java/com/yssh/mapper/XlsReportMapper.java
index 19c9d2d..10903fd 100644
--- a/src/main/java/com/yssh/mapper/XlsReportMapper.java
+++ b/src/main/java/com/yssh/mapper/XlsReportMapper.java
@@ -20,6 +20,11 @@
     List<XlsReport> selectReportByPage(@Param("type") String type, @Param("start") String start, @Param("end") String end, @Param("limit") Integer limit, @Param("offset") Integer offset);
 
     /**
+     * 鏍规嵁ID鏌ヨ鎶ュ憡
+     */
+    XlsReport selectById(@Param("id") Integer id);
+
+    /**
      * 鎶ュ憡鏄惁瀛樺湪
      */
     int reportExists(@Param("type") String type, @Param("name") String name);
diff --git a/src/main/java/com/yssh/service/XlsReportService.java b/src/main/java/com/yssh/service/XlsReportService.java
index a194aea..366503e 100644
--- a/src/main/java/com/yssh/service/XlsReportService.java
+++ b/src/main/java/com/yssh/service/XlsReportService.java
@@ -10,6 +10,7 @@
 import com.yssh.utils.CalculateUtils;
 import com.yssh.utils.DateUtils;
 import com.yssh.utils.ExcelUtils;
+import com.yssh.utils.WebUtils;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Value;
@@ -17,6 +18,7 @@
 import org.springframework.stereotype.Service;
 
 import javax.annotation.Resource;
+import javax.servlet.http.HttpServletResponse;
 import java.io.File;
 import java.io.IOException;
 import java.util.*;
@@ -343,4 +345,22 @@
             logger.error(ex.getMessage(), ex);
         }
     }
+
+    /**
+     * 鏍规嵁ID涓嬭浇
+     */
+    public void downloadById(Integer id, HttpServletResponse res) {
+        XlsReport xlsReport = mapper.selectById(id);
+        if (null == xlsReport) return;
+
+        String file = reportPath + File.separator + xlsReport.getPath();
+        File f = new File(file);
+        if (!f.exists() || f.isDirectory()) return;
+
+        try {
+            WebUtils.download(file, xlsReport.getName(), false, res);
+        } catch (Exception ex) {
+            logger.error(ex.getMessage(), ex);
+        }
+    }
 }
diff --git a/src/main/resources/mapper/XlsReportMapper.xml b/src/main/resources/mapper/XlsReportMapper.xml
index 3c5ef3b..75fb8fc 100644
--- a/src/main/resources/mapper/XlsReportMapper.xml
+++ b/src/main/resources/mapper/XlsReportMapper.xml
@@ -21,6 +21,13 @@
         limit #{limit} offset #{offset}
     </select>
 
+    <!-- 鏍规嵁ID鏌ヨ鎶ュ憡 -->
+    <select id="selectById" resultType="com.yssh.entity.xls.XlsReport">
+        select *
+        from xls_report
+        where id = #{id};
+    </select>
+
     <!-- 鎶ュ憡鏄惁瀛樺湪 -->
     <select id="reportExists" resultType="java.lang.Integer">
         select count(*)

--
Gitblit v1.9.3