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