From beaed6d077e7c3e9abfad68acb8c587835b5a406 Mon Sep 17 00:00:00 2001 From: baoshiwei <baoshiwei@shlanbao.cn> Date: 星期六, 12 四月 2025 16:17:16 +0800 Subject: [PATCH] feat(eims): 添加点检计划和保养计划的导入功能 --- eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/controller/EimsInspectPlanController.java | 53 +++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 53 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..2151c89 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,49 @@ @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("file") MultipartFile file, boolean updateSupport) throws Exception { + // ExcelResult<InspectCheckItemVo> result = ExcelUtil.importExcel(file.getInputStream(), InspectCheckItemVo.class, new InspectCheckItemImportListener(updateSupport)); + String res = eimsInspectPlanService.importData(file, updateSupport); + return R.ok(res); + } + + /** + * 鑾峰彇瀵煎叆妯℃澘 + */ + @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