From 109dc634e63b5105ef65075892ab7f5e0de24dfe Mon Sep 17 00:00:00 2001 From: wjie <382170523@qq.com> Date: Tue, 31 Aug 2021 16:09:14 +0800 Subject: [PATCH] =?UTF-8?q?:sparkles:=20Introducing=20new=20features.=20cl?= =?UTF-8?q?osed=20#3045=20=E3=80=90=E6=96=B0=E7=89=B9=E6=80=A7=E3=80=91com?= =?UTF-8?q?mon-excel=20=E6=A8=A1=E5=9D=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pigx-common/pigx-common-bom/pom.xml | 5 ++++ .../spring-configuration-metadata.json | 19 ++++++++++++ .../main/resources/META-INF/spring.factories | 2 ++ pigx-common/pom.xml | 1 + pigx-upms/pigx-upms-api/pom.xml | 4 +-- .../admin/controller/SysLogController.java | 2 +- .../admin/controller/SysUserController.java | 8 ++--- .../service/impl/SysUserServiceImpl.java | 2 +- .../resources/template/Controller.java.vm | 14 +++++++++ .../main/resources/template/avue/index.vue.vm | 29 +++++++++++++++++-- .../resources/template/element/index.vue.vm | 6 ++++ .../src/main/resources/template/menu.sql.vm | 2 ++ 12 files changed, 81 insertions(+), 13 deletions(-) create mode 100644 pigx-common/pigx-common-excel/src/main/resources/META-INF/spring-configuration-metadata.json create mode 100644 pigx-common/pigx-common-excel/src/main/resources/META-INF/spring.factories diff --git a/pigx-common/pigx-common-bom/pom.xml b/pigx-common/pigx-common-bom/pom.xml index 8ee71838e..f69a32bad 100644 --- a/pigx-common/pigx-common-bom/pom.xml +++ b/pigx-common/pigx-common-bom/pom.xml @@ -120,6 +120,11 @@ pigx-common-xss ${pigx.version} + + com.pig4cloud + pigx-common-excel + ${pigx.version} + com.pig4cloud pigx-upms-api diff --git a/pigx-common/pigx-common-excel/src/main/resources/META-INF/spring-configuration-metadata.json b/pigx-common/pigx-common-excel/src/main/resources/META-INF/spring-configuration-metadata.json new file mode 100644 index 000000000..2ee413e52 --- /dev/null +++ b/pigx-common/pigx-common-excel/src/main/resources/META-INF/spring-configuration-metadata.json @@ -0,0 +1,19 @@ +{ + "groups": [ + { + "name": "excel", + "type": "com.pig4cloud.pigx.common.excel.config.ExcelConfigProperties", + "sourceType": "com.pig4cloud.pigx.common.excel.config.ExcelConfigProperties" + } + ], + "properties": [ + { + "name": "excel.template-path", + "type": "java.lang.String", + "description": "模板路径", + "defaultValue": "excel", + "sourceType": "com.pig4cloud.pigx.common.excel.config.ExcelConfigProperties" + } + ], + "hints": [] +} diff --git a/pigx-common/pigx-common-excel/src/main/resources/META-INF/spring.factories b/pigx-common/pigx-common-excel/src/main/resources/META-INF/spring.factories new file mode 100644 index 000000000..74016f750 --- /dev/null +++ b/pigx-common/pigx-common-excel/src/main/resources/META-INF/spring.factories @@ -0,0 +1,2 @@ +org.springframework.boot.autoconfigure.EnableAutoConfiguration=\ + com.pig4cloud.pigx.common.excel.ResponseExcelAutoConfiguration diff --git a/pigx-common/pom.xml b/pigx-common/pom.xml index 3c5140915..df9180090 100644 --- a/pigx-common/pom.xml +++ b/pigx-common/pom.xml @@ -37,6 +37,7 @@ pigx-common-core pigx-common-data pigx-common-datasource + pigx-common-excel pigx-common-feign pigx-common-gateway pigx-common-gray diff --git a/pigx-upms/pigx-upms-api/pom.xml b/pigx-upms/pigx-upms-api/pom.xml index 3eb838ca7..d111b9580 100644 --- a/pigx-upms/pigx-upms-api/pom.xml +++ b/pigx-upms/pigx-upms-api/pom.xml @@ -51,8 +51,8 @@ - com.pig4cloud.excel - excel-spring-boot-starter + com.pig4cloud + pigx-common-excel diff --git a/pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/controller/SysLogController.java b/pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/controller/SysLogController.java index 4ab652ee5..1082a612f 100644 --- a/pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/controller/SysLogController.java +++ b/pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/controller/SysLogController.java @@ -27,7 +27,7 @@ import com.pig4cloud.pigx.admin.api.vo.PreLogVO; import com.pig4cloud.pigx.admin.service.SysLogService; import com.pig4cloud.pigx.common.core.util.R; import com.pig4cloud.pigx.common.security.annotation.Inner; -import com.pig4cloud.plugin.excel.annotation.ResponseExcel; +import com.pig4cloud.pigx.common.excel.annotation.ResponseExcel; import io.swagger.annotations.Api; import lombok.AllArgsConstructor; import org.springframework.security.access.prepost.PreAuthorize; diff --git a/pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/controller/SysUserController.java b/pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/controller/SysUserController.java index 8ffa08ec8..da1721016 100644 --- a/pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/controller/SysUserController.java +++ b/pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/controller/SysUserController.java @@ -27,12 +27,11 @@ import com.pig4cloud.pigx.admin.api.entity.SysUser; import com.pig4cloud.pigx.admin.api.vo.UserExcelVO; import com.pig4cloud.pigx.admin.service.SysUserService; import com.pig4cloud.pigx.common.core.util.R; +import com.pig4cloud.pigx.common.excel.annotation.RequestExcel; +import com.pig4cloud.pigx.common.excel.annotation.ResponseExcel; import com.pig4cloud.pigx.common.log.annotation.SysLog; import com.pig4cloud.pigx.common.security.annotation.Inner; import com.pig4cloud.pigx.common.security.util.SecurityUtils; -import com.pig4cloud.plugin.excel.annotation.RequestExcel; -import com.pig4cloud.plugin.excel.annotation.ResponseExcel; -import com.pig4cloud.plugin.excel.vo.ErrorMessage; import io.swagger.annotations.Api; import io.swagger.annotations.ApiImplicitParam; import io.swagger.annotations.ApiOperation; @@ -197,9 +196,6 @@ public class SysUserController { @PostMapping("/import") @PreAuthorize("@pms.hasPermission('sys_log_export')") public R importUser(@RequestExcel List excelVOList, BindingResult bindingResult) { - // 通用校验获取失败的数据 - List errorMessageList = (List) bindingResult.getTarget(); - return userService.importUser(excelVOList, bindingResult); } diff --git a/pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/service/impl/SysUserServiceImpl.java b/pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/service/impl/SysUserServiceImpl.java index 993daaa9d..cb3a59fb6 100644 --- a/pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/service/impl/SysUserServiceImpl.java +++ b/pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/service/impl/SysUserServiceImpl.java @@ -37,7 +37,7 @@ import com.pig4cloud.pigx.common.core.constant.CacheConstants; import com.pig4cloud.pigx.common.core.constant.CommonConstants; import com.pig4cloud.pigx.common.core.util.R; import com.pig4cloud.pigx.common.data.datascope.DataScope; -import com.pig4cloud.plugin.excel.vo.ErrorMessage; +import com.pig4cloud.pigx.common.excel.vo.ErrorMessage; import lombok.AllArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.BeanUtils; diff --git a/pigx-visual/pigx-codegen/src/main/resources/template/Controller.java.vm b/pigx-visual/pigx-codegen/src/main/resources/template/Controller.java.vm index 99956fd46..9e882a590 100755 --- a/pigx-visual/pigx-codegen/src/main/resources/template/Controller.java.vm +++ b/pigx-visual/pigx-codegen/src/main/resources/template/Controller.java.vm @@ -24,11 +24,13 @@ import com.pig4cloud.pigx.common.log.annotation.SysLog; import ${package}.${moduleName}.entity.${className}; import ${package}.${moduleName}.service.${className}Service; import org.springframework.security.access.prepost.PreAuthorize; +import com.pig4cloud.pigx.common.excel.annotation.ResponseExcel; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import lombok.RequiredArgsConstructor; import org.springframework.web.bind.annotation.*; +import java.util.List; /** * ${comments} @@ -109,4 +111,16 @@ public class ${className}Controller { return R.ok(${classname}Service.removeById(${pk.lowerAttrName})); } + + /** + * 导出excel 表格 + * @param ${classname} 查询条件 + * @return excel 文件流 + */ + @ResponseExcel + @GetMapping("/export") + @PreAuthorize("@pms.hasPermission('${moduleName}_${pathName}_export')" ) + public List<${className}> export(${className} ${classname}) { + return ${classname}Service.list(Wrappers.query(${classname})); + } } diff --git a/pigx-visual/pigx-codegen/src/main/resources/template/avue/index.vue.vm b/pigx-visual/pigx-codegen/src/main/resources/template/avue/index.vue.vm index 2323cc03c..8a9b7715d 100755 --- a/pigx-visual/pigx-codegen/src/main/resources/template/avue/index.vue.vm +++ b/pigx-visual/pigx-codegen/src/main/resources/template/avue/index.vue.vm @@ -30,7 +30,18 @@ @current-change="currentChange" @row-update="handleUpdate" @row-save="handleSave" - @row-del="rowDel"> + @row-del="handleDel"> + @@ -67,6 +78,7 @@ } }, methods: { + // 列表查询 getList(page, params) { this.tableLoading = true fetchList(Object.assign({ @@ -80,7 +92,8 @@ this.tableLoading=false }) }, - rowDel: function (row, index) { + // 删除 + handleDel: function (row, index) { this.$confirm('是否确认删除ID为' + row.$pk.lowerAttrName, '提示', { confirmButtonText: '确定', cancelButtonText: '取消', @@ -92,6 +105,7 @@ this.getList(this.page) }) }, + // 更新 handleUpdate: function (row, index, done,loading) { putObj(row).then(data => { this.$message.success('修改成功') @@ -101,6 +115,7 @@ loading(); }); }, + // 保存 handleSave: function (row, done,loading) { addObj(row).then(data => { this.$message.success('添加成功') @@ -110,21 +125,29 @@ loading(); }); }, + // 每页条数改变事件 sizeChange(pageSize){ this.page.pageSize = pageSize }, + // 当前页发生改变事件 currentChange(current){ this.page.currentPage = current }, + // 查询事件 searchChange(form, done) { this.searchForm = form this.page.currentPage = 1 this.getList(this.page, form) done() }, + // 刷新事件 refreshChange() { this.getList(this.page) + }, + // 导出excel + exportExcel() { + this.downBlobFile('/${moduleName}/${pathName}/export',this.searchForm, '${pathName}.xlsx') } } } - \ No newline at end of file + diff --git a/pigx-visual/pigx-codegen/src/main/resources/template/element/index.vue.vm b/pigx-visual/pigx-codegen/src/main/resources/template/element/index.vue.vm index b757d6de5..db1ae7c66 100644 --- a/pigx-visual/pigx-codegen/src/main/resources/template/element/index.vue.vm +++ b/pigx-visual/pigx-codegen/src/main/resources/template/element/index.vue.vm @@ -4,6 +4,7 @@ 新增 + 导出 @@ -60,6 +61,7 @@ dataForm: { key: '' }, + searchForm: {}, dataList: [], pageIndex: 1, pageSize: 10, @@ -120,6 +122,10 @@ this.$message.success('删除成功') this.getDataList() }) + }, + // 导出excel + exportExcel() { + this.downFile('/${moduleName}/${pathName}/export', this.searchForm,'${pathName}.xlsx') } } } diff --git a/pigx-visual/pigx-codegen/src/main/resources/template/menu.sql.vm b/pigx-visual/pigx-codegen/src/main/resources/template/menu.sql.vm index 8e61df8ea..6bba5f4c6 100644 --- a/pigx-visual/pigx-codegen/src/main/resources/template/menu.sql.vm +++ b/pigx-visual/pigx-codegen/src/main/resources/template/menu.sql.vm @@ -16,3 +16,5 @@ insert into `sys_menu` ( `parent_id`, `permission`, `type`, `path`, `icon`, `de SELECT @parentId, '${moduleName}_${pathName}_edit', '1', null, '1', '0', '2018-05-15 21:35:18', '2', '2018-07-29 13:38:59', '${comments}修改', 1; insert into `sys_menu` ( `parent_id`, `permission`, `type`, `path`, `icon`, `del_flag`, `create_time`, `sort`, `update_time`, `name`, `tenant_id`) SELECT @parentId, '${moduleName}_${pathName}_del', '1', null, '1', '0', '2018-05-15 21:35:18', '3', '2018-07-29 13:38:59', '${comments}删除', 1; + insert into `sys_menu` ( `parent_id`, `permission`, `type`, `path`, `icon`, `del_flag`, `create_time`, `sort`, `update_time`, `name`, `tenant_id`) + SELECT @parentId, '${moduleName}_${pathName}_export', '1', null, '1', '0', '2018-05-15 21:35:18', '3', '2018-07-29 13:38:59', '导入导出', 1;