From fdb289373930f545c9b490f9a689b3eac9a03020 Mon Sep 17 00:00:00 2001 From: Parker Date: Mon, 14 Dec 2020 20:31:00 +0800 Subject: [PATCH] =?UTF-8?q?=E5=AF=BC=E5=85=A5=E5=AF=BC=E5=87=BAExcel?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../api/web/gentest/user/TestUserRestApi.java | 2 +- .../api/web/system/area/SysAreaRestApi.java | 2 +- .../opsli/api/web/system/dict/DictApi.java | 2 +- .../api/web/system/dict/DictDetailApi.java | 2 +- .../opsli/api/web/system/menu/MenuApi.java | 2 +- .../api/web/system/org/SysOrgRestApi.java | 2 +- .../opsli/api/web/system/role/RoleApi.java | 2 +- .../api/web/system/tenant/TenantApi.java | 2 +- .../opsli/api/web/system/user/UserApi.java | 2 +- .../java/org/opsli/api/web/test/TestApi.java | 3 +- .../org/opsli/api/web/test/TestRestApi.java | 2 +- .../base/concroller/BaseRestController.java | 43 ++++++++++++------- .../main/java/org/opsli/core/msg/CoreMsg.java | 4 +- .../tpl/backend/api/TemplateRestApi.html | 2 +- .../backend/web/TemplateRestController.html | 4 +- .../modulars/test/web/TestRestController.java | 5 +-- .../src/main/resources/application.yaml | 4 +- 17 files changed, 47 insertions(+), 38 deletions(-) diff --git a/opsli-api/src/main/java/org/opsli/api/web/gentest/user/TestUserRestApi.java b/opsli-api/src/main/java/org/opsli/api/web/gentest/user/TestUserRestApi.java index 557f17c6..50db3421 100755 --- a/opsli-api/src/main/java/org/opsli/api/web/gentest/user/TestUserRestApi.java +++ b/opsli-api/src/main/java/org/opsli/api/web/gentest/user/TestUserRestApi.java @@ -114,7 +114,7 @@ public interface TestUserRestApi { * @param request 文件流 request * @return ResultVo */ - @GetMapping("/importExcel") + @PostMapping("/importExcel") ResultVo importExcel(MultipartHttpServletRequest request); /** diff --git a/opsli-api/src/main/java/org/opsli/api/web/system/area/SysAreaRestApi.java b/opsli-api/src/main/java/org/opsli/api/web/system/area/SysAreaRestApi.java index f0ec749d..645cd92a 100755 --- a/opsli-api/src/main/java/org/opsli/api/web/system/area/SysAreaRestApi.java +++ b/opsli-api/src/main/java/org/opsli/api/web/system/area/SysAreaRestApi.java @@ -107,7 +107,7 @@ public interface SysAreaRestApi { * @param request 文件流 request * @return ResultVo */ - @GetMapping("/importExcel") + @PostMapping("/importExcel") ResultVo importExcel(MultipartHttpServletRequest request); /** diff --git a/opsli-api/src/main/java/org/opsli/api/web/system/dict/DictApi.java b/opsli-api/src/main/java/org/opsli/api/web/system/dict/DictApi.java index d3d3c1c9..ac9324f5 100644 --- a/opsli-api/src/main/java/org/opsli/api/web/system/dict/DictApi.java +++ b/opsli-api/src/main/java/org/opsli/api/web/system/dict/DictApi.java @@ -114,7 +114,7 @@ public interface DictApi { * @param request 文件流 request * @return ResultVo */ - @GetMapping("/importExcel") + @PostMapping("/importExcel") ResultVo importExcel(MultipartHttpServletRequest request); /** diff --git a/opsli-api/src/main/java/org/opsli/api/web/system/dict/DictDetailApi.java b/opsli-api/src/main/java/org/opsli/api/web/system/dict/DictDetailApi.java index 3a919e41..dc1061ca 100644 --- a/opsli-api/src/main/java/org/opsli/api/web/system/dict/DictDetailApi.java +++ b/opsli-api/src/main/java/org/opsli/api/web/system/dict/DictDetailApi.java @@ -114,7 +114,7 @@ public interface DictDetailApi { * @param request 文件流 request * @return ResultVo */ - @GetMapping("/importExcel") + @PostMapping("/importExcel") ResultVo importExcel(MultipartHttpServletRequest request); /** diff --git a/opsli-api/src/main/java/org/opsli/api/web/system/menu/MenuApi.java b/opsli-api/src/main/java/org/opsli/api/web/system/menu/MenuApi.java index 2d0245d3..b3d7b395 100644 --- a/opsli-api/src/main/java/org/opsli/api/web/system/menu/MenuApi.java +++ b/opsli-api/src/main/java/org/opsli/api/web/system/menu/MenuApi.java @@ -146,7 +146,7 @@ public interface MenuApi { * @param request 文件流 request * @return ResultVo */ - @GetMapping("/importExcel") + @PostMapping("/importExcel") ResultVo importExcel(MultipartHttpServletRequest request); /** diff --git a/opsli-api/src/main/java/org/opsli/api/web/system/org/SysOrgRestApi.java b/opsli-api/src/main/java/org/opsli/api/web/system/org/SysOrgRestApi.java index b58fe499..15dce967 100755 --- a/opsli-api/src/main/java/org/opsli/api/web/system/org/SysOrgRestApi.java +++ b/opsli-api/src/main/java/org/opsli/api/web/system/org/SysOrgRestApi.java @@ -120,7 +120,7 @@ public interface SysOrgRestApi { * @param request 文件流 request * @return ResultVo */ - @GetMapping("/importExcel") + @PostMapping("/importExcel") ResultVo importExcel(MultipartHttpServletRequest request); /** diff --git a/opsli-api/src/main/java/org/opsli/api/web/system/role/RoleApi.java b/opsli-api/src/main/java/org/opsli/api/web/system/role/RoleApi.java index ecc2fc7a..38269e44 100644 --- a/opsli-api/src/main/java/org/opsli/api/web/system/role/RoleApi.java +++ b/opsli-api/src/main/java/org/opsli/api/web/system/role/RoleApi.java @@ -114,7 +114,7 @@ public interface RoleApi { * @param request 文件流 request * @return ResultVo */ - @GetMapping("/importExcel") + @PostMapping("/importExcel") ResultVo importExcel(MultipartHttpServletRequest request); /** diff --git a/opsli-api/src/main/java/org/opsli/api/web/system/tenant/TenantApi.java b/opsli-api/src/main/java/org/opsli/api/web/system/tenant/TenantApi.java index 65038d92..3f4b63f4 100644 --- a/opsli-api/src/main/java/org/opsli/api/web/system/tenant/TenantApi.java +++ b/opsli-api/src/main/java/org/opsli/api/web/system/tenant/TenantApi.java @@ -114,7 +114,7 @@ public interface TenantApi { * @param request 文件流 request * @return ResultVo */ - @GetMapping("/importExcel") + @PostMapping("/importExcel") ResultVo importExcel(MultipartHttpServletRequest request); /** diff --git a/opsli-api/src/main/java/org/opsli/api/web/system/user/UserApi.java b/opsli-api/src/main/java/org/opsli/api/web/system/user/UserApi.java index c15c838b..62c6813b 100644 --- a/opsli-api/src/main/java/org/opsli/api/web/system/user/UserApi.java +++ b/opsli-api/src/main/java/org/opsli/api/web/system/user/UserApi.java @@ -181,7 +181,7 @@ public interface UserApi { * @param request 文件流 request * @return ResultVo */ - @GetMapping("/importExcel") + @PostMapping("/importExcel") ResultVo importExcel(MultipartHttpServletRequest request); diff --git a/opsli-api/src/main/java/org/opsli/api/web/test/TestApi.java b/opsli-api/src/main/java/org/opsli/api/web/test/TestApi.java index 816bc52b..59a48eae 100644 --- a/opsli-api/src/main/java/org/opsli/api/web/test/TestApi.java +++ b/opsli-api/src/main/java/org/opsli/api/web/test/TestApi.java @@ -4,6 +4,7 @@ import io.swagger.annotations.ApiOperation; import org.opsli.api.base.result.ResultVo; import org.opsli.api.wrapper.test.TestModel; import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.multipart.MultipartHttpServletRequest; @@ -134,7 +135,7 @@ public interface TestApi { * Excel 导入 * @return */ - @GetMapping("/importExcel") + @PostMapping("/importExcel") ResultVo importExcel(MultipartHttpServletRequest request); /** diff --git a/opsli-api/src/main/java/org/opsli/api/web/test/TestRestApi.java b/opsli-api/src/main/java/org/opsli/api/web/test/TestRestApi.java index 01c89cae..53c44aa8 100644 --- a/opsli-api/src/main/java/org/opsli/api/web/test/TestRestApi.java +++ b/opsli-api/src/main/java/org/opsli/api/web/test/TestRestApi.java @@ -114,7 +114,7 @@ public interface TestRestApi { * @param request 文件流 request * @return ResultVo */ - @GetMapping("/importExcel") + @PostMapping("/importExcel") ResultVo importExcel(MultipartHttpServletRequest request); /** diff --git a/opsli-base-support/opsli-core/src/main/java/org/opsli/core/base/concroller/BaseRestController.java b/opsli-base-support/opsli-core/src/main/java/org/opsli/core/base/concroller/BaseRestController.java index 2613efe5..9ff468c2 100644 --- a/opsli-base-support/opsli-core/src/main/java/org/opsli/core/base/concroller/BaseRestController.java +++ b/opsli-base-support/opsli-core/src/main/java/org/opsli/core/base/concroller/BaseRestController.java @@ -16,6 +16,7 @@ package org.opsli.core.base.concroller; +import cn.hutool.core.collection.CollUtil; import cn.hutool.core.date.DateUtil; import cn.hutool.core.date.TimeInterval; import cn.hutool.core.thread.ThreadUtil; @@ -91,9 +92,9 @@ public abstract class BaseRestController modelList = excelUtil.readExcel(files.get(0), modelClazz); - boolean ret = IService.insertBatch(modelList); - if(!ret){ - throw new ExcelPluginException(CoreMsg.EXCEL_IMPORT_NO); + if(CollUtil.isNotEmpty(modelList)){ + if(modelList.size() > excelMaxCount){ + String maxError = StrUtil.format(CoreMsg.EXCEL_HANDLE_MAX.getMessage(), modelList.size(), excelMaxCount); + // 超出最大导出数量 + throw new ExcelPluginException(CoreMsg.EXCEL_HANDLE_MAX.getCode(), maxError); + } + + boolean ret = IService.insertBatch(modelList); + if(!ret){ + throw new ExcelPluginException(CoreMsg.EXCEL_IMPORT_NO); + } + // 花费毫秒数 + long timerCount = timer.interval(); + // 提示信息 + msgInfo = StrUtil.format(CoreMsg.EXCEL_IMPORT_SUCCESS.getMessage(), DateUtil.formatBetween(timerCount)); + // 导出成功 + resultVo = ResultVo.success(msgInfo); + resultVo.setCode(CoreMsg.EXCEL_IMPORT_SUCCESS.getCode()); + }else { + throw new ExcelPluginException(CoreMsg.EXCEL_FILE_NULL); } - // 花费毫秒数 - long timerCount = timer.interval(); - // 提示信息 - msgInfo = StrUtil.format(CoreMsg.EXCEL_IMPORT_SUCCESS.getMessage(), DateUtil.formatBetween(timerCount)); - // 导出成功 - resultVo = ResultVo.success(msgInfo); - resultVo.setCode(CoreMsg.EXCEL_IMPORT_SUCCESS.getCode()); } catch (ExcelPluginException e) { // 花费毫秒数 long timerCount = timer.interval(); @@ -290,10 +301,10 @@ public abstract class BaseRestController exportExcelMaxCount){ - String maxError = StrUtil.format(CoreMsg.EXCEL_EXPORT_MAX.getMessage(), count, exportExcelMaxCount); + if(count > excelMaxCount){ + String maxError = StrUtil.format(CoreMsg.EXCEL_HANDLE_MAX.getMessage(), count, excelMaxCount); // 超出最大导出数量 - throw new ExcelPluginException(CoreMsg.EXCEL_EXPORT_MAX.getCode(), maxError); + throw new ExcelPluginException(CoreMsg.EXCEL_HANDLE_MAX.getCode(), maxError); } List entityList = IService.findList(queryWrapper); diff --git a/opsli-base-support/opsli-core/src/main/java/org/opsli/core/msg/CoreMsg.java b/opsli-base-support/opsli-core/src/main/java/org/opsli/core/msg/CoreMsg.java index 01ed53bb..7f70891e 100644 --- a/opsli-base-support/opsli-core/src/main/java/org/opsli/core/msg/CoreMsg.java +++ b/opsli-base-support/opsli-core/src/main/java/org/opsli/core/msg/CoreMsg.java @@ -46,9 +46,9 @@ public enum CoreMsg implements BaseMsg { EXCEL_EXPORT_ERROR(10301,"Excel 导出失败! - 耗时:{} - 失败信息:{}"), EXCEL_IMPORT_SUCCESS(200,"EXCEL 导入成功! - 耗时:{}"), EXCEL_IMPORT_ERROR(10303,"Excel导入失败! - 耗时:{} - 失败信息:{}"), - EXCEL_IMPORT_NO(10304,""), + EXCEL_IMPORT_NO(10304,"导入对象为空"), EXCEL_FILE_NULL(10305,"请选择文件"), - EXCEL_EXPORT_MAX(10700, "超出最大导出数量, 当前数据[{}]条,允许最大阈值[{}]条"), + EXCEL_HANDLE_MAX(10700, "超出最大操作数量, 当前数据[{}]条,允许最大阈值[{}]条"), /** diff --git a/opsli-modulars/opsli-modulars-creater/src/main/resources/tpl/backend/api/TemplateRestApi.html b/opsli-modulars/opsli-modulars-creater/src/main/resources/tpl/backend/api/TemplateRestApi.html index 61e645d3..bdbc2ca1 100644 --- a/opsli-modulars/opsli-modulars-creater/src/main/resources/tpl/backend/api/TemplateRestApi.html +++ b/opsli-modulars/opsli-modulars-creater/src/main/resources/tpl/backend/api/TemplateRestApi.html @@ -134,7 +134,7 @@ public interface #(data.model.tableName)RestApi { * @param request 文件流 request * @return ResultVo */ - @GetMapping("/importExcel") + @PostMapping("/importExcel") ResultVo importExcel(MultipartHttpServletRequest request); /** diff --git a/opsli-modulars/opsli-modulars-creater/src/main/resources/tpl/backend/web/TemplateRestController.html b/opsli-modulars/opsli-modulars-creater/src/main/resources/tpl/backend/web/TemplateRestController.html index 4cf735d4..56a1bf7a 100644 --- a/opsli-modulars/opsli-modulars-creater/src/main/resources/tpl/backend/web/TemplateRestController.html +++ b/opsli-modulars/opsli-modulars-creater/src/main/resources/tpl/backend/web/TemplateRestController.html @@ -232,9 +232,7 @@ public class #(data.model.tableName)RestController extends BaseRestController<#( @EnableLog @Override public ResultVo importExcel(MultipartHttpServletRequest request) { - // 当前方法 - Method method = ReflectUtil.getMethodByName(this.getClass(), "importExcel"); - return super.excelImport(request, method); + return super.excelImport(request); } /** diff --git a/opsli-modulars/opsli-modulars-test/src/main/java/org/opsli/modulars/test/web/TestRestController.java b/opsli-modulars/opsli-modulars-test/src/main/java/org/opsli/modulars/test/web/TestRestController.java index a566d0e0..f1483255 100644 --- a/opsli-modulars/opsli-modulars-test/src/main/java/org/opsli/modulars/test/web/TestRestController.java +++ b/opsli-modulars/opsli-modulars-test/src/main/java/org/opsli/modulars/test/web/TestRestController.java @@ -5,7 +5,6 @@ import io.swagger.annotations.ApiOperation; import lombok.extern.slf4j.Slf4j; import org.apache.shiro.authz.annotation.RequiresPermissions; import org.opsli.api.base.result.ResultVo; -import org.opsli.api.web.gentest.user.TestUserRestApi; import org.opsli.api.web.test.TestRestApi; import org.opsli.api.wrapper.test.TestModel; import org.opsli.common.annotation.ApiRestController; @@ -147,7 +146,7 @@ public class TestRestController extends BaseRestController queryBuilder = new WebQueryBuilder<>(TestEntity.class, request.getParameterMap()); - super.excelExport(TestUserRestApi.TITLE, queryBuilder.build(), response, method); + super.excelExport(TestRestApi.TITLE, queryBuilder.build(), response, method); } /** @@ -174,7 +173,7 @@ public class TestRestController extends BaseRestController