From 00cf6c13531447af59a8d2121bbfb1a3a1f68c0d Mon Sep 17 00:00:00 2001 From: zhuguifei <zhuguifei@zhuguifeideiMac.local> Date: 星期五, 06 六月 2025 09:15:29 +0800 Subject: [PATCH] Merge branch 'main' of http://lanpucloud.cn:1111/r/eims-master --- eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/controller/EimsInspectPlanController.java | 56 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 56 insertions(+), 0 deletions(-) diff --git a/eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/controller/EimsInspectPlanController.java b/eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/controller/EimsInspectPlanController.java index a528722..1fdf405 100644 --- a/eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/controller/EimsInspectPlanController.java +++ b/eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/controller/EimsInspectPlanController.java @@ -1,11 +1,18 @@ package org.dromara.eims.controller; +import java.io.IOException; +import java.io.InputStream; +import java.io.UnsupportedEncodingException; +import java.net.URLEncoder; import java.util.List; +import jakarta.servlet.ServletOutputStream; import lombok.RequiredArgsConstructor; import jakarta.servlet.http.HttpServletResponse; import jakarta.validation.constraints.*; import cn.dev33.satoken.annotation.SaCheckPermission; +import org.springframework.core.io.ClassPathResource; +import org.springframework.http.MediaType; import org.springframework.web.bind.annotation.*; import org.springframework.validation.annotation.Validated; import org.dromara.common.idempotent.annotation.RepeatSubmit; @@ -21,6 +28,7 @@ import org.dromara.eims.domain.bo.EimsInspectPlanBo; import org.dromara.eims.service.IEimsInspectPlanService; import org.dromara.common.mybatis.core.page.TableDataInfo; +import org.springframework.web.multipart.MultipartFile; /** * 鐐规璁″垝 @@ -103,4 +111,52 @@ @PathVariable Long[] ids) { return toAjax(eimsInspectPlanService.deleteWithValidByIds(List.of(ids), true)); } + + /** + * 瀵煎叆鏁版嵁 + * + * @param file 瀵煎叆鏂囦欢 + * @param updateSupport 鏄惁鏇存柊宸插瓨鍦ㄦ暟鎹� + */ + @Log(title = "鐐规璁″垝", businessType = BusinessType.IMPORT) + @SaCheckPermission("eims:inspectPlan:import") + @PostMapping(value = "/importData", consumes = MediaType.MULTIPART_FORM_DATA_VALUE) + public R<Void> importData(@RequestPart("files") List<MultipartFile> files, boolean updateSupport) throws Exception { + StringBuilder successMsg = new StringBuilder(); + for (MultipartFile file : files) { + String res = eimsInspectPlanService.importData(file, updateSupport); + successMsg.append(res).append(";"); + } + return R.ok(successMsg.toString()); + } + + /** + * 鑾峰彇瀵煎叆妯℃澘 + */ + @PostMapping("/importTemplate") + public void importTemplate(HttpServletResponse response) throws UnsupportedEncodingException { + // 璁剧疆鍝嶅簲绫诲瀷 + response.setContentType("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"); + response.setCharacterEncoding("utf-8"); + + // 璁剧疆鏂囦欢鍚� + String fileName = URLEncoder.encode("鐐规璁″垝瀵煎叆妯℃澘", "UTF-8"); + response.setHeader("Content-Disposition", + "attachment;filename=" + fileName + ".xlsx"); + + // 璇诲彇妯℃澘鏂囦欢 + ClassPathResource templateResource = new ClassPathResource("template/dj.xlsx"); + try (InputStream inputStream = templateResource.getInputStream(); + ServletOutputStream outputStream = response.getOutputStream()) { + + // 娴佹嫹璐� + byte[] buffer = new byte[1024]; + int bytesRead; + while ((bytesRead = inputStream.read(buffer)) != -1) { + outputStream.write(buffer, 0, bytesRead); + } + } catch (IOException e) { + throw new RuntimeException("妯℃澘鏂囦欢璇诲彇澶辫触", e); + } + } } -- Gitblit v1.9.3