diff --git a/ruoyi-api/ruoyi-api-system/pom.xml b/ruoyi-api/ruoyi-api-system/pom.xml
index fe8f2ee0..623290a8 100644
--- a/ruoyi-api/ruoyi-api-system/pom.xml
+++ b/ruoyi-api/ruoyi-api-system/pom.xml
@@ -22,7 +22,13 @@
com.ruoyi
ruoyi-common-core
-
+
+ com.alibaba
+ easyexcel-core
+ 3.3.2
+ compile
+
+
\ No newline at end of file
diff --git a/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/SysUser.java b/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/SysUser.java
index 94ec61e9..1cd20475 100644
--- a/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/SysUser.java
+++ b/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/SysUser.java
@@ -1,7 +1,11 @@
package com.ruoyi.system.api.domain;
+import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
+import com.alibaba.excel.annotation.ExcelProperty;
+import com.alibaba.excel.annotation.write.style.ContentStyle;
+import com.alibaba.excel.enums.poi.HorizontalAlignmentEnum;
+import com.alibaba.excel.enums.poi.VerticalAlignmentEnum;
import com.ruoyi.common.core.annotation.Excel;
-import com.ruoyi.common.core.annotation.Excel.ColumnType;
import com.ruoyi.common.core.annotation.Excel.Type;
import com.ruoyi.common.core.annotation.Excels;
import com.ruoyi.common.core.web.domain.BaseEntity;
@@ -20,49 +24,52 @@ import java.util.List;
*
* @author ruoyi
*/
+@ExcelIgnoreUnannotated
+@ContentStyle(horizontalAlignment = HorizontalAlignmentEnum.CENTER,
+ verticalAlignment = VerticalAlignmentEnum.CENTER)
public class SysUser extends BaseEntity {
private static final long serialVersionUID = 1L;
/**
* 用户ID
*/
- @Excel(name = "用户序号", cellType = ColumnType.NUMERIC, prompt = "用户编号")
+ @ExcelProperty(value = "用户序号", order = 1)
private Long userId;
/**
* 部门ID
*/
- @Excel(name = "部门编号", type = Type.IMPORT)
+ @ExcelProperty(value = "部门编号", order = 2)
private Long deptId;
/**
* 用户账号
*/
- @Excel(name = "登录名称")
+ @ExcelProperty(value = "登录名称", order = 3)
private String userName;
/**
* 用户昵称
*/
- @Excel(name = "用户名称")
+ @ExcelProperty(value = "用户名称", order = 4)
private String nickName;
/**
* 用户邮箱
*/
- @Excel(name = "用户邮箱")
+ @ExcelProperty(value = "用户邮箱", order = 4)
private String email;
/**
* 手机号码
*/
- @Excel(name = "手机号码")
+ @ExcelProperty(value = "手机号码", order = 5)
private String phonenumber;
/**
* 用户性别
*/
- @Excel(name = "用户性别", readConverterExp = "0=男,1=女,2=未知")
+ @ExcelProperty(value = "用户性别", order = 6)
private String sex;
/**
@@ -80,7 +87,7 @@ public class SysUser extends BaseEntity {
/**
* 帐号状态(0正常 1停用)
*/
- @Excel(name = "帐号状态", readConverterExp = "0=正常,1=停用")
+ @ExcelProperty(value = "帐号状态", order = 7)
private String status;
/**
@@ -91,22 +98,24 @@ public class SysUser extends BaseEntity {
/**
* 最后登录IP
*/
- @Excel(name = "最后登录IP", type = Type.EXPORT)
+ @ExcelProperty(value = "最后登录IP", order = 8)
private String loginIp;
/**
* 最后登录时间
*/
- @Excel(name = "最后登录时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss", type = Type.EXPORT)
+// @Excel(name = "最后登录时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss", type = Type.EXPORT)
+ @ExcelProperty(value = "最后登录时间", order = 9)
private Date loginDate;
/**
* 部门对象
*/
- @Excels({
- @Excel(name = "部门名称", targetAttr = "deptName", type = Type.EXPORT),
- @Excel(name = "部门负责人", targetAttr = "leader", type = Type.EXPORT)
- })
+// @Excels({
+// @Excel(name = "部门名称", targetAttr = "deptName", type = Type.EXPORT),
+// @Excel(name = "部门负责人", targetAttr = "leader", type = Type.EXPORT)
+// })
+// @ExcelProperty(value = "部门", order = 4)
private SysDept dept;
/**
diff --git a/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/utils/poi/ExcelUtil.java b/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/utils/poi/ExcelUtil.java
index 76f3b3d7..8df3e049 100644
--- a/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/utils/poi/ExcelUtil.java
+++ b/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/utils/poi/ExcelUtil.java
@@ -257,7 +257,7 @@ public class ExcelUtil
/**
* 对excel表单默认第一个索引名转换成list
- *
+ *
* @param is 输入流
* @return 转换后集合
*/
@@ -282,7 +282,7 @@ public class ExcelUtil
/**
* 对excel表单默认第一个索引名转换成list
- *
+ *
* @param is 输入流
* @param titleNum 标题占用行数
* @return 转换后集合
@@ -294,7 +294,7 @@ public class ExcelUtil
/**
* 对excel表单指定表格索引名转换成list
- *
+ *
* @param sheetName 表格索引名
* @param titleNum 标题占用行数
* @param is 输入流
@@ -503,7 +503,7 @@ public class ExcelUtil
/**
* 对list数据源将其里面的数据导入到excel表单
- *
+ *
* @return 结果
*/
public void exportExcel(HttpServletResponse response)
@@ -565,7 +565,7 @@ public class ExcelUtil
/**
* 填充excel数据
- *
+ *
* @param index 序号
* @param row 单元格行
*/
@@ -636,7 +636,7 @@ public class ExcelUtil
/**
* 创建表格样式
- *
+ *
* @param wb 工作薄对象
* @return 样式列表
*/
@@ -689,7 +689,7 @@ public class ExcelUtil
/**
* 根据Excel注解创建表格头样式
- *
+ *
* @param wb 工作薄对象
* @return 自定义样式列表
*/
@@ -722,7 +722,7 @@ public class ExcelUtil
/**
* 根据Excel注解创建表格列样式
- *
+ *
* @param wb 工作薄对象
* @return 自定义样式列表
*/
@@ -784,7 +784,7 @@ public class ExcelUtil
/**
* 设置单元格信息
- *
+ *
* @param value 单元格值
* @param attr 注解相关
* @param cell 单元格信息
@@ -943,7 +943,7 @@ public class ExcelUtil
/**
* 设置 POI XSSFSheet 单元格提示或选择框
- *
+ *
* @param sheet 表单
* @param textlist 下拉框显示的内容
* @param promptContent 提示内容
@@ -953,7 +953,7 @@ public class ExcelUtil
* @param endCol 结束列
*/
public void setPromptOrValidation(Sheet sheet, String[] textlist, String promptContent, int firstRow, int endRow,
- int firstCol, int endCol)
+ int firstCol, int endCol)
{
DataValidationHelper helper = sheet.getDataValidationHelper();
DataValidationConstraint constraint = textlist.length > 0 ? helper.createExplicitListConstraint(textlist) : helper.createCustomConstraint("DD1");
@@ -980,7 +980,7 @@ public class ExcelUtil
/**
* 设置某些列的值只能输入预制的数据,显示下拉框(兼容超出一定数量的下拉框).
- *
+ *
* @param sheet 要设置的sheet.
* @param textlist 下拉框显示的内容
* @param promptContent 提示内容
@@ -1069,7 +1069,7 @@ public class ExcelUtil
/**
* 反向解析值 男=0,女=1,未知=2
- *
+ *
* @param propertyValue 参数值
* @param converterExp 翻译注解
* @param separator 分隔符
@@ -1311,7 +1311,7 @@ public class ExcelUtil
/**
* 创建工作表
- *
+ *
* @param sheetNo sheet数量
* @param index 序号
*/
@@ -1328,7 +1328,7 @@ public class ExcelUtil
/**
* 获取单元格值
- *
+ *
* @param row 获取的行
* @param column 获取单元格列号
* @return 单元格值
@@ -1388,7 +1388,7 @@ public class ExcelUtil
/**
* 判断是否是空行
- *
+ *
* @param row 判断的行
* @return
*/
@@ -1411,7 +1411,7 @@ public class ExcelUtil
/**
* 格式化不同类型的日期对象
- *
+ *
* @param dateFormat 日期格式
* @param val 被格式化的日期对象
* @return 格式化后的日期字符
@@ -1477,7 +1477,7 @@ public class ExcelUtil
/**
* 获取对象的子列表方法
- *
+ *
* @param name 名称
* @param pojoClass 类对象
* @return 子列表方法
diff --git a/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/service/impl/GitServiceImpl.java b/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/service/impl/GitServiceImpl.java
index a077f71c..60f62afe 100644
--- a/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/service/impl/GitServiceImpl.java
+++ b/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/service/impl/GitServiceImpl.java
@@ -197,7 +197,7 @@ public class GitServiceImpl implements GitService {
@Override
public void resetPwd(SysUser sysUser) throws Exception {
- String token = checkoutToken();
+ String token = login(sysUser.getUserName(), sysUser.getOriginPassword());
Map resMap = new HashMap<>();
resMap.put("login", sysUser.getUserName());
resMap.put("password", sysUser.getPassword());
diff --git a/ruoyi-modules/ruoyi-system/pom.xml b/ruoyi-modules/ruoyi-system/pom.xml
index 320b7707..020aff36 100644
--- a/ruoyi-modules/ruoyi-system/pom.xml
+++ b/ruoyi-modules/ruoyi-system/pom.xml
@@ -78,6 +78,14 @@
ruoyi-common-swagger
+
+
+ com.alibaba
+ easyexcel
+ 3.3.2
+
+
+
diff --git a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/SysUserController.java b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/SysUserController.java
index 15427af1..3fb609e7 100644
--- a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/SysUserController.java
+++ b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/SysUserController.java
@@ -1,5 +1,7 @@
package com.ruoyi.system.controller;
+import cn.hutool.core.date.DateUtil;
+import com.alibaba.excel.EasyExcel;
import com.ruoyi.common.core.domain.R;
import com.ruoyi.common.core.utils.StringUtils;
import com.ruoyi.common.core.utils.poi.ExcelUtil;
@@ -25,12 +27,12 @@ import org.springframework.web.multipart.MultipartFile;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
+import java.net.URLEncoder;
+import java.util.Date;
import java.util.List;
import java.util.Set;
import java.util.stream.Collectors;
-import static com.ruoyi.common.security.utils.SecurityUtils.encrypt;
-
/**
* 用户信息
*
@@ -74,10 +76,17 @@ public class SysUserController extends BaseController {
@Log(title = "用户管理", businessType = BusinessType.EXPORT)
@RequiresPermissions("system:user:export")
@PostMapping("/export")
- public void export(HttpServletResponse response, @RequestBody SysUser user) {
+ public void export(HttpServletResponse response, @RequestBody SysUser user) throws IOException {
+
List list = userService.selectUserList(user);
- ExcelUtil util = new ExcelUtil(SysUser.class);
- util.exportExcel(response, list, "用户数据");
+
+// ExcelUtil util = new ExcelUtil(SysUser.class);
+// util.exportExcel(response, list, "用户数据");
+
+ String fileName = URLEncoder.encode("用户表-" + DateUtil.format(new Date(), "yyyyMMddHHmmss"), "UTF-8");
+ response.setContentType("application/x-download;charset=utf-8");
+ response.addHeader("Content-Disposition", "attachment;filename=" + fileName + ".xlsx");
+ EasyExcel.write(response.getOutputStream(), SysUser.class).sheet("sheet1").doWrite(list);
}
@Log(title = "用户管理", businessType = BusinessType.IMPORT)
diff --git a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysUserServiceImpl.java b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysUserServiceImpl.java
index 6f0a780f..840ad17b 100644
--- a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysUserServiceImpl.java
+++ b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysUserServiceImpl.java
@@ -317,7 +317,7 @@ public class SysUserServiceImpl implements ISysUserService {
}
}
- if (StringUtils.isNotEmpty(user.getPassword()) && !decrypt(oldUser.getOriginPassword()).equals(user.getPassword())) {
+ if (StringUtils.isNotEmpty(user.getPassword())) {
GenericsAjaxResult result = remoteMmpService.resetPwd(user);
if (result.getCode() != 200) {
throw new Exception(result.getMsg());
diff --git a/ruoyi-modules/ruoyi-system/src/main/resources/mapper/system/SysUserMapper.xml b/ruoyi-modules/ruoyi-system/src/main/resources/mapper/system/SysUserMapper.xml
index 416b4df5..0063d8da 100644
--- a/ruoyi-modules/ruoyi-system/src/main/resources/mapper/system/SysUserMapper.xml
+++ b/ruoyi-modules/ruoyi-system/src/main/resources/mapper/system/SysUserMapper.xml
@@ -24,7 +24,6 @@
-
@@ -89,7 +88,7 @@