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;