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