From 73ea78235e216c3d34d9ce10723af046737635d5 Mon Sep 17 00:00:00 2001 From: 龚焕茏 <2842157468@qq.com> Date: 星期二, 05 三月 2024 18:10:31 +0800 Subject: [PATCH] Excel导入部分 --- dujy-modules/dujy-demo/src/main/java/org/dromara/demo/controller/RsSceneryOperationDataController.java | 85 +++++++++++++++++++++++++++++------------- 1 files changed, 59 insertions(+), 26 deletions(-) diff --git a/dujy-modules/dujy-demo/src/main/java/org/dromara/demo/controller/RsSceneryOperationDataController.java b/dujy-modules/dujy-demo/src/main/java/org/dromara/demo/controller/RsSceneryOperationDataController.java index e60e8f5..a439c07 100644 --- a/dujy-modules/dujy-demo/src/main/java/org/dromara/demo/controller/RsSceneryOperationDataController.java +++ b/dujy-modules/dujy-demo/src/main/java/org/dromara/demo/controller/RsSceneryOperationDataController.java @@ -1,45 +1,54 @@ package org.dromara.demo.controller; -import java.util.List; - -import lombok.RequiredArgsConstructor; -import jakarta.servlet.http.HttpServletResponse; -import jakarta.validation.constraints.*; import cn.dev33.satoken.annotation.SaCheckPermission; -import org.springframework.web.bind.annotation.*; -import org.springframework.validation.annotation.Validated; -import org.dromara.common.idempotent.annotation.RepeatSubmit; -import org.dromara.common.log.annotation.Log; -import org.dromara.common.web.core.BaseController; -import org.dromara.common.mybatis.core.page.PageQuery; +import jakarta.servlet.http.HttpServletResponse; +import jakarta.validation.constraints.NotEmpty; +import jakarta.validation.constraints.NotNull; +import lombok.RequiredArgsConstructor; import org.dromara.common.core.domain.R; +import org.dromara.common.core.utils.MapstructUtils; import org.dromara.common.core.validate.AddGroup; import org.dromara.common.core.validate.EditGroup; -import org.dromara.common.log.enums.BusinessType; +import org.dromara.common.excel.core.ExcelResult; import org.dromara.common.excel.utils.ExcelUtil; -import org.dromara.demo.domain.vo.RsSceneryOperationDataVo; -import org.dromara.demo.domain.bo.RsSceneryOperationDataBo; -import org.dromara.demo.service.IRsSceneryOperationDataService; +import org.dromara.common.idempotent.annotation.RepeatSubmit; +import org.dromara.common.log.annotation.Log; +import org.dromara.common.log.enums.BusinessType; +import org.dromara.common.mybatis.core.page.PageQuery; import org.dromara.common.mybatis.core.page.TableDataInfo; +import org.dromara.common.web.core.BaseController; +import org.dromara.demo.domain.RsSceneryOperationData; +import org.dromara.demo.domain.bo.RsSceneryOperationDataBo; +import org.dromara.demo.domain.vo.RsSceneryOperationDataVo; +import org.dromara.demo.service.IRsSceneryOperationDataService; +import org.springframework.http.MediaType; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.*; +import org.springframework.web.multipart.MultipartFile; + +import java.util.ArrayList; +import java.util.List; /** * 鏅尯杩愯鏁版嵁 * - * @author Lion Li - * @date 2024-02-27 + * @author gonghl + * @date 2024-03-05 */ @Validated @RequiredArgsConstructor @RestController -@RequestMapping("/sc/sceneryOperationData") +@RequestMapping("/demo/sceneryOperationData") public class RsSceneryOperationDataController extends BaseController { private final IRsSceneryOperationDataService rsSceneryOperationDataService; + private final StringBuilder successMsg = new StringBuilder(); + private final StringBuilder failureMsg = new StringBuilder(); /** * 鏌ヨ鏅尯杩愯鏁版嵁鍒楄〃 */ - @SaCheckPermission("rs:sceneryOperationData:list") + @SaCheckPermission("demo:sceneryOperationData:list") @GetMapping("/list") public TableDataInfo<RsSceneryOperationDataVo> list(RsSceneryOperationDataBo bo, PageQuery pageQuery) { return rsSceneryOperationDataService.queryPageList(bo, pageQuery); @@ -48,7 +57,7 @@ /** * 瀵煎嚭鏅尯杩愯鏁版嵁鍒楄〃 */ - @SaCheckPermission("rs:sceneryOperationData:export") + @SaCheckPermission("demo:sceneryOperationData:export") @Log(title = "鏅尯杩愯鏁版嵁", businessType = BusinessType.EXPORT) @PostMapping("/export") public void export(RsSceneryOperationDataBo bo, HttpServletResponse response) { @@ -56,22 +65,46 @@ ExcelUtil.exportExcel(list, "鏅尯杩愯鏁版嵁", RsSceneryOperationDataVo.class, response); } + + /** + * 瀵煎叆鏁版嵁 + * + * @param file 瀵煎叆鏂囦欢 + */ + @Log(title = "瀵煎叆鏁版嵁", businessType = BusinessType.IMPORT) + @SaCheckPermission("demo:sceneryOperationData:import") + @PostMapping(value = "/importData", consumes = MediaType.MULTIPART_FORM_DATA_VALUE) + public R<Void> importData(@RequestPart("file") MultipartFile file) throws Exception { + ExcelResult<RsSceneryOperationDataVo> result = ExcelUtil.importExcel(file.getInputStream(), RsSceneryOperationDataVo.class, true); + List<RsSceneryOperationData> list = MapstructUtils.convert(result.getList(), RsSceneryOperationData.class); + return R.ok(rsSceneryOperationDataService.importExcel(list)); + } + + /** + * 鑾峰彇瀵煎叆妯℃澘 + */ + @SaCheckPermission("demo:sceneryOperationData:importTemplate") + @PostMapping("/importTemplate") + public void importTemplate(HttpServletResponse response) { + ExcelUtil.exportExcel(new ArrayList<>(), "鏅尯杩愯鏁版嵁", RsSceneryOperationDataVo.class, response); + } + /** * 鑾峰彇鏅尯杩愯鏁版嵁璇︾粏淇℃伅 * * @param id 涓婚敭 */ - @SaCheckPermission("rs:sceneryOperationData:query") + @SaCheckPermission("demo:sceneryOperationData:query") @GetMapping("/{id}") public R<RsSceneryOperationDataVo> getInfo(@NotNull(message = "涓婚敭涓嶈兘涓虹┖") - @PathVariable Long id) { + @PathVariable String id) { return R.ok(rsSceneryOperationDataService.queryById(id)); } /** * 鏂板鏅尯杩愯鏁版嵁 */ - @SaCheckPermission("system:sceneryOperationData:add") + @SaCheckPermission("demo:sceneryOperationData:add") @Log(title = "鏅尯杩愯鏁版嵁", businessType = BusinessType.INSERT) @RepeatSubmit() @PostMapping() @@ -82,7 +115,7 @@ /** * 淇敼鏅尯杩愯鏁版嵁 */ - @SaCheckPermission("system:sceneryOperationData:edit") + @SaCheckPermission("demo:sceneryOperationData:edit") @Log(title = "鏅尯杩愯鏁版嵁", businessType = BusinessType.UPDATE) @RepeatSubmit() @PutMapping() @@ -95,11 +128,11 @@ * * @param ids 涓婚敭涓� */ - @SaCheckPermission("system:sceneryOperationData:remove") + @SaCheckPermission("demo:sceneryOperationData:remove") @Log(title = "鏅尯杩愯鏁版嵁", businessType = BusinessType.DELETE) @DeleteMapping("/{ids}") public R<Void> remove(@NotEmpty(message = "涓婚敭涓嶈兘涓虹┖") - @PathVariable Long[] ids) { + @PathVariable String[] ids) { return toAjax(rsSceneryOperationDataService.deleteWithValidByIds(List.of(ids), true)); } } -- Gitblit v1.8.0