From 0539c2f927f3f2e9f5bcaa711b79465479e27f8f Mon Sep 17 00:00:00 2001
From: 疯狂的狮子li <15040126243@163.com>
Date: 星期三, 04 八月 2021 11:46:55 +0800
Subject: [PATCH] update 重写系统部分业务导出

---
 ruoyi-ui/src/api/system/dict/data.js                                                    |    9 
 ruoyi-common/src/main/java/com/ruoyi/common/core/domain/entity/SysMenu.java             |  169 ++++--
 ruoyi-ui/src/api/monitor/logininfor.js                                                  |    9 
 ruoyi-common/src/main/java/com/ruoyi/common/core/domain/entity/SysDictType.java         |  108 ++-
 ruoyi-ui/src/views/system/role/index.vue                                                |   16 
 ruoyi-system/src/main/java/com/ruoyi/system/domain/SysConfig.java                       |   21 
 ruoyi-system/src/main/java/com/ruoyi/system/domain/SysOperLog.java                      |    3 
 ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysDictDataController.java    |    8 
 ruoyi-common/src/main/java/com/ruoyi/common/core/domain/entity/SysDictData.java         |  158 ++++--
 ruoyi-ui/src/views/system/dict/index.vue                                                |   16 
 ruoyi-common/src/main/java/com/ruoyi/common/core/domain/entity/SysDept.java             |  146 +++--
 ruoyi-ui/src/api/system/dict/type.js                                                    |    9 
 ruoyi-common/src/main/java/com/ruoyi/common/core/domain/entity/SysUser.java             |  250 ++++++----
 ruoyi-ui/src/views/system/user/profile/userAvatar.vue                                   |    2 
 ruoyi-common/src/main/java/com/ruoyi/common/core/domain/entity/SysRole.java             |  190 ++++---
 ruoyi-common/src/main/java/com/ruoyi/common/utils/poi/ExcelUtils.java                   |    2 
 ruoyi-ui/src/views/monitor/logininfor/index.vue                                         |   16 
 ruoyi-ui/src/views/system/post/index.vue                                                |   16 
 ruoyi-ui/src/views/system/dict/data.vue                                                 |   16 
 ruoyi-ui/src/utils/download.js                                                          |    3 
 ruoyi-ui/src/api/monitor/operlog.js                                                     |    9 
 ruoyi-ui/src/api/system/role.js                                                         |   10 
 ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysConfigController.java      |    8 
 ruoyi-system/src/main/java/com/ruoyi/system/domain/SysLogininfor.java                   |   28 
 ruoyi-ui/src/views/monitor/operlog/index.vue                                            |    2 
 ruoyi-ui/src/views/system/config/index.vue                                              |   16 
 ruoyi-ui/src/api/system/config.js                                                       |    8 
 ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysRoleController.java        |    8 
 ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysDictTypeController.java    |    8 
 ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysPostController.java        |   30 
 ruoyi-admin/src/main/java/com/ruoyi/web/controller/monitor/SysOperlogController.java    |    2 
 ruoyi-system/src/main/java/com/ruoyi/system/domain/SysPost.java                         |   21 
 ruoyi-admin/src/main/java/com/ruoyi/web/controller/monitor/SysLogininforController.java |   10 
 33 files changed, 698 insertions(+), 629 deletions(-)

diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/monitor/SysLogininforController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/monitor/SysLogininforController.java
index 2bb0b13..63ba259 100644
--- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/monitor/SysLogininforController.java
+++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/monitor/SysLogininforController.java
@@ -5,18 +5,19 @@
 import com.ruoyi.common.core.domain.AjaxResult;
 import com.ruoyi.common.core.page.TableDataInfo;
 import com.ruoyi.common.enums.BusinessType;
-import com.ruoyi.common.utils.poi.ExcelUtil;
+import com.ruoyi.common.utils.poi.ExcelUtils;
 import com.ruoyi.system.domain.SysLogininfor;
 import com.ruoyi.system.service.ISysLogininforService;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.security.access.prepost.PreAuthorize;
 import org.springframework.web.bind.annotation.*;
 
+import javax.servlet.http.HttpServletResponse;
 import java.util.List;
 
 /**
  * 绯荤粺璁块棶璁板綍
- * 
+ *
  * @author ruoyi
  */
 @RestController
@@ -36,11 +37,10 @@
     @Log(title = "鐧诲綍鏃ュ織", businessType = BusinessType.EXPORT)
     @PreAuthorize("@ss.hasPermi('monitor:logininfor:export')")
     @GetMapping("/export")
-    public AjaxResult export(SysLogininfor logininfor)
+    public void export(SysLogininfor logininfor, HttpServletResponse response)
     {
         List<SysLogininfor> list = logininforService.selectLogininforList(logininfor);
-        ExcelUtil<SysLogininfor> util = new ExcelUtil<SysLogininfor>(SysLogininfor.class);
-        return util.exportExcel(list, "鐧诲綍鏃ュ織");
+		ExcelUtils.exportExcel(list, "鐧诲綍鏃ュ織", SysLogininfor.class, response);
     }
 
     @PreAuthorize("@ss.hasPermi('monitor:logininfor:remove')")
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/monitor/SysOperlogController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/monitor/SysOperlogController.java
index c7d1fcd..40d32ce 100644
--- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/monitor/SysOperlogController.java
+++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/monitor/SysOperlogController.java
@@ -41,8 +41,6 @@
     {
         List<SysOperLog> list = operLogService.selectOperLogList(operLog);
 		ExcelUtils.exportExcel(list, "鎿嶄綔鏃ュ織", SysOperLog.class, response);
-//        ExcelUtil<SysOperLog> util = new ExcelUtil<SysOperLog>(SysOperLog.class);
-//        return util.exportEasyExcel(list, "鎿嶄綔鏃ュ織");
     }
 
     @Log(title = "鎿嶄綔鏃ュ織", businessType = BusinessType.DELETE)
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysConfigController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysConfigController.java
index c8e9191..03d6108 100644
--- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysConfigController.java
+++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysConfigController.java
@@ -8,7 +8,7 @@
 import com.ruoyi.common.core.page.TableDataInfo;
 import com.ruoyi.common.enums.BusinessType;
 import com.ruoyi.common.utils.SecurityUtils;
-import com.ruoyi.common.utils.poi.ExcelUtil;
+import com.ruoyi.common.utils.poi.ExcelUtils;
 import com.ruoyi.system.domain.SysConfig;
 import com.ruoyi.system.service.ISysConfigService;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -16,6 +16,7 @@
 import org.springframework.validation.annotation.Validated;
 import org.springframework.web.bind.annotation.*;
 
+import javax.servlet.http.HttpServletResponse;
 import java.util.List;
 
 /**
@@ -43,11 +44,10 @@
     @Log(title = "鍙傛暟绠$悊", businessType = BusinessType.EXPORT)
     @PreAuthorize("@ss.hasPermi('system:config:export')")
     @GetMapping("/export")
-    public AjaxResult export(SysConfig config)
+    public void export(SysConfig config, HttpServletResponse response)
     {
         List<SysConfig> list = configService.selectConfigList(config);
-        ExcelUtil<SysConfig> util = new ExcelUtil<SysConfig>(SysConfig.class);
-        return util.exportExcel(list, "鍙傛暟鏁版嵁");
+		ExcelUtils.exportExcel(list, "鍙傛暟鏁版嵁", SysConfig.class, response);
     }
 
     /**
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysDictDataController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysDictDataController.java
index cfafdb3..f887c61 100644
--- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysDictDataController.java
+++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysDictDataController.java
@@ -8,7 +8,7 @@
 import com.ruoyi.common.enums.BusinessType;
 import com.ruoyi.common.utils.SecurityUtils;
 import com.ruoyi.common.utils.StringUtils;
-import com.ruoyi.common.utils.poi.ExcelUtil;
+import com.ruoyi.common.utils.poi.ExcelUtils;
 import com.ruoyi.system.service.ISysDictDataService;
 import com.ruoyi.system.service.ISysDictTypeService;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -16,6 +16,7 @@
 import org.springframework.validation.annotation.Validated;
 import org.springframework.web.bind.annotation.*;
 
+import javax.servlet.http.HttpServletResponse;
 import java.util.ArrayList;
 import java.util.List;
 
@@ -44,11 +45,10 @@
     @Log(title = "瀛楀吀鏁版嵁", businessType = BusinessType.EXPORT)
     @PreAuthorize("@ss.hasPermi('system:dict:export')")
     @GetMapping("/export")
-    public AjaxResult export(SysDictData dictData)
+    public void export(SysDictData dictData, HttpServletResponse response)
     {
         List<SysDictData> list = dictDataService.selectDictDataList(dictData);
-        ExcelUtil<SysDictData> util = new ExcelUtil<SysDictData>(SysDictData.class);
-        return util.exportExcel(list, "瀛楀吀鏁版嵁");
+		ExcelUtils.exportExcel(list, "瀛楀吀鏁版嵁", SysDictData.class, response);
     }
 
     /**
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysDictTypeController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysDictTypeController.java
index e2e0625..c70faa5 100644
--- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysDictTypeController.java
+++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysDictTypeController.java
@@ -8,13 +8,14 @@
 import com.ruoyi.common.core.page.TableDataInfo;
 import com.ruoyi.common.enums.BusinessType;
 import com.ruoyi.common.utils.SecurityUtils;
-import com.ruoyi.common.utils.poi.ExcelUtil;
+import com.ruoyi.common.utils.poi.ExcelUtils;
 import com.ruoyi.system.service.ISysDictTypeService;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.security.access.prepost.PreAuthorize;
 import org.springframework.validation.annotation.Validated;
 import org.springframework.web.bind.annotation.*;
 
+import javax.servlet.http.HttpServletResponse;
 import java.util.List;
 
 /**
@@ -39,11 +40,10 @@
     @Log(title = "瀛楀吀绫诲瀷", businessType = BusinessType.EXPORT)
     @PreAuthorize("@ss.hasPermi('system:dict:export')")
     @GetMapping("/export")
-    public AjaxResult export(SysDictType dictType)
+    public void export(SysDictType dictType, HttpServletResponse response)
     {
         List<SysDictType> list = dictTypeService.selectDictTypeList(dictType);
-        ExcelUtil<SysDictType> util = new ExcelUtil<SysDictType>(SysDictType.class);
-        return util.exportExcel(list, "瀛楀吀绫诲瀷");
+		ExcelUtils.exportExcel(list, "瀛楀吀绫诲瀷", SysDictType.class, response);
     }
 
     /**
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysPostController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysPostController.java
index b63c155..435fce5 100644
--- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysPostController.java
+++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysPostController.java
@@ -1,17 +1,5 @@
 package com.ruoyi.web.controller.system;
 
-import java.util.List;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.security.access.prepost.PreAuthorize;
-import org.springframework.validation.annotation.Validated;
-import org.springframework.web.bind.annotation.DeleteMapping;
-import org.springframework.web.bind.annotation.GetMapping;
-import org.springframework.web.bind.annotation.PathVariable;
-import org.springframework.web.bind.annotation.PostMapping;
-import org.springframework.web.bind.annotation.PutMapping;
-import org.springframework.web.bind.annotation.RequestBody;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RestController;
 import com.ruoyi.common.annotation.Log;
 import com.ruoyi.common.constant.UserConstants;
 import com.ruoyi.common.core.controller.BaseController;
@@ -19,13 +7,20 @@
 import com.ruoyi.common.core.page.TableDataInfo;
 import com.ruoyi.common.enums.BusinessType;
 import com.ruoyi.common.utils.SecurityUtils;
-import com.ruoyi.common.utils.poi.ExcelUtil;
+import com.ruoyi.common.utils.poi.ExcelUtils;
 import com.ruoyi.system.domain.SysPost;
 import com.ruoyi.system.service.ISysPostService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.*;
+
+import javax.servlet.http.HttpServletResponse;
+import java.util.List;
 
 /**
  * 宀椾綅淇℃伅鎿嶄綔澶勭悊
- * 
+ *
  * @author ruoyi
  */
 @RestController
@@ -44,15 +39,14 @@
     {
         return postService.selectPagePostList(post);
     }
-    
+
     @Log(title = "宀椾綅绠$悊", businessType = BusinessType.EXPORT)
     @PreAuthorize("@ss.hasPermi('system:post:export')")
     @GetMapping("/export")
-    public AjaxResult export(SysPost post)
+    public void export(SysPost post, HttpServletResponse response)
     {
         List<SysPost> list = postService.selectPostList(post);
-        ExcelUtil<SysPost> util = new ExcelUtil<SysPost>(SysPost.class);
-        return util.exportExcel(list, "宀椾綅鏁版嵁");
+		ExcelUtils.exportExcel(list, "宀椾綅鏁版嵁", SysPost.class, response);
     }
 
     /**
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysRoleController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysRoleController.java
index cc6c37d..337f9de 100644
--- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysRoleController.java
+++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysRoleController.java
@@ -12,7 +12,7 @@
 import com.ruoyi.common.utils.SecurityUtils;
 import com.ruoyi.common.utils.ServletUtils;
 import com.ruoyi.common.utils.StringUtils;
-import com.ruoyi.common.utils.poi.ExcelUtil;
+import com.ruoyi.common.utils.poi.ExcelUtils;
 import com.ruoyi.framework.web.service.SysPermissionService;
 import com.ruoyi.framework.web.service.TokenService;
 import com.ruoyi.system.domain.SysUserRole;
@@ -23,6 +23,7 @@
 import org.springframework.validation.annotation.Validated;
 import org.springframework.web.bind.annotation.*;
 
+import javax.servlet.http.HttpServletResponse;
 import java.util.List;
 
 /**
@@ -56,11 +57,10 @@
     @Log(title = "瑙掕壊绠$悊", businessType = BusinessType.EXPORT)
     @PreAuthorize("@ss.hasPermi('system:role:export')")
     @GetMapping("/export")
-    public AjaxResult export(SysRole role)
+    public void export(SysRole role, HttpServletResponse response)
     {
         List<SysRole> list = roleService.selectRoleList(role);
-        ExcelUtil<SysRole> util = new ExcelUtil<SysRole>(SysRole.class);
-        return util.exportExcel(list, "瑙掕壊鏁版嵁");
+		ExcelUtils.exportExcel(list, "瑙掕壊鏁版嵁", SysRole.class, response);
     }
 
     /**
diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/entity/SysDept.java b/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/entity/SysDept.java
index 72240bc..62056e0 100644
--- a/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/entity/SysDept.java
+++ b/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/entity/SysDept.java
@@ -1,7 +1,6 @@
 package com.ruoyi.common.core.domain.entity;
 
 import com.baomidou.mybatisplus.annotation.*;
-import com.fasterxml.jackson.annotation.JsonFormat;
 import lombok.Data;
 import lombok.NoArgsConstructor;
 import lombok.experimental.Accessors;
@@ -14,7 +13,7 @@
 
 /**
  * 閮ㄩ棬琛� sys_dept
- * 
+ *
  * @author ruoyi
  */
 
@@ -22,78 +21,107 @@
 @NoArgsConstructor
 @Accessors(chain = true)
 @TableName("sys_dept")
-public class SysDept implements Serializable
-{
-    private static final long serialVersionUID = 1L;
+public class SysDept implements Serializable {
+	private static final long serialVersionUID = 1L;
 
-    /** 閮ㄩ棬ID */
-    @TableId(value = "dept_id",type = IdType.AUTO)
-    private Long deptId;
+	/**
+	 * 閮ㄩ棬ID
+	 */
+	@TableId(value = "dept_id", type = IdType.AUTO)
+	private Long deptId;
 
-    /** 鐖堕儴闂↖D */
-    private Long parentId;
+	/**
+	 * 鐖堕儴闂↖D
+	 */
+	private Long parentId;
 
-    /** 绁栫骇鍒楄〃 */
-    private String ancestors;
+	/**
+	 * 绁栫骇鍒楄〃
+	 */
+	private String ancestors;
 
-    /** 閮ㄩ棬鍚嶇О */
-    @NotBlank(message = "閮ㄩ棬鍚嶇О涓嶈兘涓虹┖")
-    @Size(min = 0, max = 30, message = "閮ㄩ棬鍚嶇О闀垮害涓嶈兘瓒呰繃30涓瓧绗�")
-    private String deptName;
+	/**
+	 * 閮ㄩ棬鍚嶇О
+	 */
+	@NotBlank(message = "閮ㄩ棬鍚嶇О涓嶈兘涓虹┖")
+	@Size(min = 0, max = 30, message = "閮ㄩ棬鍚嶇О闀垮害涓嶈兘瓒呰繃30涓瓧绗�")
+	private String deptName;
 
-    /** 鏄剧ず椤哄簭 */
-    @NotBlank(message = "鏄剧ず椤哄簭涓嶈兘涓虹┖")
-    private String orderNum;
+	/**
+	 * 鏄剧ず椤哄簭
+	 */
+	@NotBlank(message = "鏄剧ず椤哄簭涓嶈兘涓虹┖")
+	private String orderNum;
 
-    /** 璐熻矗浜� */
-    private String leader;
+	/**
+	 * 璐熻矗浜�
+	 */
+	private String leader;
 
-    /** 鑱旂郴鐢佃瘽 */
-    @Size(min = 0, max = 11, message = "鑱旂郴鐢佃瘽闀垮害涓嶈兘瓒呰繃11涓瓧绗�")
-    private String phone;
+	/**
+	 * 鑱旂郴鐢佃瘽
+	 */
+	@Size(min = 0, max = 11, message = "鑱旂郴鐢佃瘽闀垮害涓嶈兘瓒呰繃11涓瓧绗�")
+	private String phone;
 
-    /** 閭 */
-    @Email(message = "閭鏍煎紡涓嶆纭�")
-    @Size(min = 0, max = 50, message = "閭闀垮害涓嶈兘瓒呰繃50涓瓧绗�")
-    private String email;
+	/**
+	 * 閭
+	 */
+	@Email(message = "閭鏍煎紡涓嶆纭�")
+	@Size(min = 0, max = 50, message = "閭闀垮害涓嶈兘瓒呰繃50涓瓧绗�")
+	private String email;
 
-    /** 閮ㄩ棬鐘舵��:0姝e父,1鍋滅敤 */
-    private String status;
+	/**
+	 * 閮ㄩ棬鐘舵��:0姝e父,1鍋滅敤
+	 */
+	private String status;
 
-    /** 鍒犻櫎鏍囧織锛�0浠h〃瀛樺湪 2浠h〃鍒犻櫎锛� */
-    @TableLogic
-    private String delFlag;
+	/**
+	 * 鍒犻櫎鏍囧織锛�0浠h〃瀛樺湪 2浠h〃鍒犻櫎锛�
+	 */
+	@TableLogic
+	private String delFlag;
 
-    /** 鐖堕儴闂ㄥ悕绉� */
-    @TableField(exist = false)
-    private String parentName;
+	/**
+	 * 鐖堕儴闂ㄥ悕绉�
+	 */
+	@TableField(exist = false)
+	private String parentName;
 
-    /** 鍒涘缓鑰� */
-    @TableField(fill = FieldFill.INSERT)
-    private String createBy;
+	/**
+	 * 鍒涘缓鑰�
+	 */
+	@TableField(fill = FieldFill.INSERT)
+	private String createBy;
 
-    /** 鍒涘缓鏃堕棿 */
-    @TableField(fill = FieldFill.INSERT)
-    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
-    private Date createTime;
+	/**
+	 * 鍒涘缓鏃堕棿
+	 */
+	@TableField(fill = FieldFill.INSERT)
+	private Date createTime;
 
-    /** 鏇存柊鑰� */
-    @TableField(fill = FieldFill.INSERT_UPDATE)
-    private String updateBy;
+	/**
+	 * 鏇存柊鑰�
+	 */
+	@TableField(fill = FieldFill.INSERT_UPDATE)
+	private String updateBy;
 
-    /** 鏇存柊鏃堕棿 */
-    @TableField(fill = FieldFill.INSERT_UPDATE)
-    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
-    private Date updateTime;
-    
-    /** 瀛愰儴闂� */
-    @TableField(exist = false)
-    private List<SysDept> children = new ArrayList<SysDept>();
+	/**
+	 * 鏇存柊鏃堕棿
+	 */
+	@TableField(fill = FieldFill.INSERT_UPDATE)
+	private Date updateTime;
 
-    /**
-     * 璇锋眰鍙傛暟
-     */
-    @TableField(exist = false)
-    private Map<String, Object> params = new HashMap<>();
+	/**
+	 * 瀛愰儴闂�
+	 */
+	@TableField(exist = false)
+	private List<SysDept> children = new ArrayList<SysDept>();
+
+	/**
+	 * 璇锋眰鍙傛暟
+	 */
+	@TableField(exist = false)
+	private Map<String, Object> params = new HashMap<>();
 
 }
diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/entity/SysDictData.java b/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/entity/SysDictData.java
index c98f9fc..e8bc0f1 100644
--- a/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/entity/SysDictData.java
+++ b/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/entity/SysDictData.java
@@ -1,10 +1,11 @@
 package com.ruoyi.common.core.domain.entity;
 
+import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
+import com.alibaba.excel.annotation.ExcelProperty;
 import com.baomidou.mybatisplus.annotation.*;
-import com.fasterxml.jackson.annotation.JsonFormat;
-import com.ruoyi.common.annotation.Excel;
-import com.ruoyi.common.annotation.Excel.ColumnType;
+import com.ruoyi.common.annotation.ExcelDictFormat;
 import com.ruoyi.common.constant.UserConstants;
+import com.ruoyi.common.convert.ExcelDictConvert;
 import lombok.Data;
 import lombok.NoArgsConstructor;
 import lombok.experimental.Accessors;
@@ -18,7 +19,7 @@
 
 /**
  * 瀛楀吀鏁版嵁琛� sys_dict_data
- * 
+ *
  * @author ruoyi
  */
 
@@ -26,82 +27,109 @@
 @NoArgsConstructor
 @Accessors(chain = true)
 @TableName("sys_dict_data")
-public class SysDictData implements Serializable
-{
-    private static final long serialVersionUID = 1L;
+@ExcelIgnoreUnannotated
+public class SysDictData implements Serializable {
+	private static final long serialVersionUID = 1L;
 
-    /** 瀛楀吀缂栫爜 */
-    @Excel(name = "瀛楀吀缂栫爜", cellType = ColumnType.NUMERIC)
-    @TableId(value = "dict_code",type = IdType.AUTO)
-    private Long dictCode;
+	/**
+	 * 瀛楀吀缂栫爜
+	 */
+	@ExcelProperty(value = "瀛楀吀缂栫爜")
+	@TableId(value = "dict_code", type = IdType.AUTO)
+	private Long dictCode;
 
-    /** 瀛楀吀鎺掑簭 */
-    @Excel(name = "瀛楀吀鎺掑簭", cellType = ColumnType.NUMERIC)
-    private Long dictSort;
+	/**
+	 * 瀛楀吀鎺掑簭
+	 */
+	@ExcelProperty(value = "瀛楀吀鎺掑簭")
+	private Long dictSort;
 
-    /** 瀛楀吀鏍囩 */
-    @Excel(name = "瀛楀吀鏍囩")
-    @NotBlank(message = "瀛楀吀鏍囩涓嶈兘涓虹┖")
-    @Size(min = 0, max = 100, message = "瀛楀吀鏍囩闀垮害涓嶈兘瓒呰繃100涓瓧绗�")
-    private String dictLabel;
+	/**
+	 * 瀛楀吀鏍囩
+	 */
+	@ExcelProperty(value = "瀛楀吀鏍囩")
+	@NotBlank(message = "瀛楀吀鏍囩涓嶈兘涓虹┖")
+	@Size(min = 0, max = 100, message = "瀛楀吀鏍囩闀垮害涓嶈兘瓒呰繃100涓瓧绗�")
+	private String dictLabel;
 
-    /** 瀛楀吀閿�� */
-    @Excel(name = "瀛楀吀閿��")
-    @NotBlank(message = "瀛楀吀閿�间笉鑳戒负绌�")
-    @Size(min = 0, max = 100, message = "瀛楀吀閿�奸暱搴︿笉鑳借秴杩�100涓瓧绗�")
-    private String dictValue;
+	/**
+	 * 瀛楀吀閿��
+	 */
+	@ExcelProperty(value = "瀛楀吀閿��")
+	@NotBlank(message = "瀛楀吀閿�间笉鑳戒负绌�")
+	@Size(min = 0, max = 100, message = "瀛楀吀閿�奸暱搴︿笉鑳借秴杩�100涓瓧绗�")
+	private String dictValue;
 
-    /** 瀛楀吀绫诲瀷 */
-    @Excel(name = "瀛楀吀绫诲瀷")
-    @NotBlank(message = "瀛楀吀绫诲瀷涓嶈兘涓虹┖")
-    @Size(min = 0, max = 100, message = "瀛楀吀绫诲瀷闀垮害涓嶈兘瓒呰繃100涓瓧绗�")
-    private String dictType;
+	/**
+	 * 瀛楀吀绫诲瀷
+	 */
+	@ExcelProperty(value = "瀛楀吀绫诲瀷")
+	@NotBlank(message = "瀛楀吀绫诲瀷涓嶈兘涓虹┖")
+	@Size(min = 0, max = 100, message = "瀛楀吀绫诲瀷闀垮害涓嶈兘瓒呰繃100涓瓧绗�")
+	private String dictType;
 
-    /** 鏍峰紡灞炴�э紙鍏朵粬鏍峰紡鎵╁睍锛� */
-    @Size(min = 0, max = 100, message = "鏍峰紡灞炴�ч暱搴︿笉鑳借秴杩�100涓瓧绗�")
-    private String cssClass;
+	/**
+	 * 鏍峰紡灞炴�э紙鍏朵粬鏍峰紡鎵╁睍锛�
+	 */
+	@Size(min = 0, max = 100, message = "鏍峰紡灞炴�ч暱搴︿笉鑳借秴杩�100涓瓧绗�")
+	private String cssClass;
 
-    /** 琛ㄦ牸瀛楀吀鏍峰紡 */
-    private String listClass;
+	/**
+	 * 琛ㄦ牸瀛楀吀鏍峰紡
+	 */
+	private String listClass;
 
-    /** 鏄惁榛樿锛圷鏄� N鍚︼級 */
-    @Excel(name = "鏄惁榛樿", readConverterExp = "Y=鏄�,N=鍚�")
-    private String isDefault;
+	/**
+	 * 鏄惁榛樿锛圷鏄� N鍚︼級
+	 */
+	@ExcelProperty(value = "鏄惁榛樿", converter = ExcelDictConvert.class)
+	@ExcelDictFormat(dictType = "sys_yes_no")
+	private String isDefault;
 
-    /** 鐘舵�侊紙0姝e父 1鍋滅敤锛� */
-    @Excel(name = "鐘舵��", readConverterExp = "0=姝e父,1=鍋滅敤")
-    private String status;
+	/**
+	 * 鐘舵�侊紙0姝e父 1鍋滅敤锛�
+	 */
+	@ExcelProperty(value = "鐘舵��", converter = ExcelDictConvert.class)
+	@ExcelDictFormat(dictType = "sys_common_status")
+	private String status;
 
-    /** 鍒涘缓鑰� */
-    @TableField(fill = FieldFill.INSERT)
-    private String createBy;
+	/**
+	 * 鍒涘缓鑰�
+	 */
+	@TableField(fill = FieldFill.INSERT)
+	private String createBy;
 
-    /** 鍒涘缓鏃堕棿 */
-    @TableField(fill = FieldFill.INSERT)
-    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
-    private Date createTime;
+	/**
+	 * 鍒涘缓鏃堕棿
+	 */
+	@TableField(fill = FieldFill.INSERT)
+	private Date createTime;
 
-    /** 鏇存柊鑰� */
-    @TableField(fill = FieldFill.INSERT_UPDATE)
-    private String updateBy;
+	/**
+	 * 鏇存柊鑰�
+	 */
+	@TableField(fill = FieldFill.INSERT_UPDATE)
+	private String updateBy;
 
-    /** 鏇存柊鏃堕棿 */
-    @TableField(fill = FieldFill.INSERT_UPDATE)
-    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
-    private Date updateTime;
+	/**
+	 * 鏇存柊鏃堕棿
+	 */
+	@TableField(fill = FieldFill.INSERT_UPDATE)
+	private Date updateTime;
 
-    /** 澶囨敞 */
-    private String remark;
+	/**
+	 * 澶囨敞
+	 */
+	private String remark;
 
-    /**
-     * 璇锋眰鍙傛暟
-     */
-    @TableField(exist = false)
-    private Map<String, Object> params = new HashMap<>();
+	/**
+	 * 璇锋眰鍙傛暟
+	 */
+	@TableField(exist = false)
+	private Map<String, Object> params = new HashMap<>();
 
-    public boolean getDefault()
-    {
-        return UserConstants.YES.equals(this.isDefault) ? true : false;
-    }
+	public boolean getDefault() {
+		return UserConstants.YES.equals(this.isDefault) ? true : false;
+	}
 
 }
diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/entity/SysDictType.java b/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/entity/SysDictType.java
index 48ed252..1108671 100644
--- a/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/entity/SysDictType.java
+++ b/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/entity/SysDictType.java
@@ -1,9 +1,10 @@
 package com.ruoyi.common.core.domain.entity;
 
+import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
+import com.alibaba.excel.annotation.ExcelProperty;
 import com.baomidou.mybatisplus.annotation.*;
-import com.fasterxml.jackson.annotation.JsonFormat;
-import com.ruoyi.common.annotation.Excel;
-import com.ruoyi.common.annotation.Excel.ColumnType;
+import com.ruoyi.common.annotation.ExcelDictFormat;
+import com.ruoyi.common.convert.ExcelDictConvert;
 import lombok.Data;
 import lombok.NoArgsConstructor;
 import lombok.experimental.Accessors;
@@ -17,7 +18,7 @@
 
 /**
  * 瀛楀吀绫诲瀷琛� sys_dict_type
- * 
+ *
  * @author ruoyi
  */
 
@@ -25,56 +26,73 @@
 @NoArgsConstructor
 @Accessors(chain = true)
 @TableName("sys_dict_type")
-public class SysDictType implements Serializable
-{
-    private static final long serialVersionUID = 1L;
+@ExcelIgnoreUnannotated
+public class SysDictType implements Serializable {
+	private static final long serialVersionUID = 1L;
 
-    /** 瀛楀吀涓婚敭 */
-    @Excel(name = "瀛楀吀涓婚敭", cellType = ColumnType.NUMERIC)
-    @TableId(value = "dict_id",type = IdType.AUTO)
-    private Long dictId;
+	/**
+	 * 瀛楀吀涓婚敭
+	 */
+	@ExcelProperty(value = "瀛楀吀涓婚敭")
+	@TableId(value = "dict_id", type = IdType.AUTO)
+	private Long dictId;
 
-    /** 瀛楀吀鍚嶇О */
-    @Excel(name = "瀛楀吀鍚嶇О")
-    @NotBlank(message = "瀛楀吀鍚嶇О涓嶈兘涓虹┖")
-    @Size(min = 0, max = 100, message = "瀛楀吀绫诲瀷鍚嶇О闀垮害涓嶈兘瓒呰繃100涓瓧绗�")
-    private String dictName;
+	/**
+	 * 瀛楀吀鍚嶇О
+	 */
+	@ExcelProperty(value = "瀛楀吀鍚嶇О")
+	@NotBlank(message = "瀛楀吀鍚嶇О涓嶈兘涓虹┖")
+	@Size(min = 0, max = 100, message = "瀛楀吀绫诲瀷鍚嶇О闀垮害涓嶈兘瓒呰繃100涓瓧绗�")
+	private String dictName;
 
-    /** 瀛楀吀绫诲瀷 */
-    @Excel(name = "瀛楀吀绫诲瀷")
-    @NotBlank(message = "瀛楀吀绫诲瀷涓嶈兘涓虹┖")
-    @Size(min = 0, max = 100, message = "瀛楀吀绫诲瀷绫诲瀷闀垮害涓嶈兘瓒呰繃100涓瓧绗�")
-    private String dictType;
+	/**
+	 * 瀛楀吀绫诲瀷
+	 */
+	@ExcelProperty(value = "瀛楀吀绫诲瀷")
+	@NotBlank(message = "瀛楀吀绫诲瀷涓嶈兘涓虹┖")
+	@Size(min = 0, max = 100, message = "瀛楀吀绫诲瀷绫诲瀷闀垮害涓嶈兘瓒呰繃100涓瓧绗�")
+	private String dictType;
 
-    /** 鐘舵�侊紙0姝e父 1鍋滅敤锛� */
-    @Excel(name = "鐘舵��", readConverterExp = "0=姝e父,1=鍋滅敤")
-    private String status;
+	/**
+	 * 鐘舵�侊紙0姝e父 1鍋滅敤锛�
+	 */
+	@ExcelProperty(value = "鐘舵��", converter = ExcelDictConvert.class)
+	@ExcelDictFormat(dictType = "sys_common_status")
+	private String status;
 
-    /** 鍒涘缓鑰� */
-    @TableField(fill = FieldFill.INSERT)
-    private String createBy;
+	/**
+	 * 鍒涘缓鑰�
+	 */
+	@TableField(fill = FieldFill.INSERT)
+	private String createBy;
 
-    /** 鍒涘缓鏃堕棿 */
-    @TableField(fill = FieldFill.INSERT)
-    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
-    private Date createTime;
+	/**
+	 * 鍒涘缓鏃堕棿
+	 */
+	@TableField(fill = FieldFill.INSERT)
+	private Date createTime;
 
-    /** 鏇存柊鑰� */
-    @TableField(fill = FieldFill.INSERT_UPDATE)
-    private String updateBy;
+	/**
+	 * 鏇存柊鑰�
+	 */
+	@TableField(fill = FieldFill.INSERT_UPDATE)
+	private String updateBy;
 
-    /** 鏇存柊鏃堕棿 */
-    @TableField(fill = FieldFill.INSERT_UPDATE)
-    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
-    private Date updateTime;
+	/**
+	 * 鏇存柊鏃堕棿
+	 */
+	@TableField(fill = FieldFill.INSERT_UPDATE)
+	private Date updateTime;
 
-    /** 澶囨敞 */
-    private String remark;
+	/**
+	 * 澶囨敞
+	 */
+	private String remark;
 
-    /**
-     * 璇锋眰鍙傛暟
-     */
-    @TableField(exist = false)
-    private Map<String, Object> params = new HashMap<>();
+	/**
+	 * 璇锋眰鍙傛暟
+	 */
+	@TableField(exist = false)
+	private Map<String, Object> params = new HashMap<>();
 
 }
diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/entity/SysMenu.java b/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/entity/SysMenu.java
index b9d0e8d..6fc8641 100644
--- a/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/entity/SysMenu.java
+++ b/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/entity/SysMenu.java
@@ -13,7 +13,7 @@
 
 /**
  * 鑿滃崟鏉冮檺琛� sys_menu
- * 
+ *
  * @author ruoyi
  */
 
@@ -21,88 +21,129 @@
 @NoArgsConstructor
 @Accessors(chain = true)
 @TableName("sys_menu")
-public class SysMenu implements Serializable
-{
-    private static final long serialVersionUID = 1L;
+public class SysMenu implements Serializable {
+	private static final long serialVersionUID = 1L;
 
-    /** 鑿滃崟ID */
-    @TableId(value = "menu_id",type = IdType.AUTO)
-    private Long menuId;
+	/**
+	 * 鑿滃崟ID
+	 */
+	@TableId(value = "menu_id", type = IdType.AUTO)
+	private Long menuId;
 
-    /** 鑿滃崟鍚嶇О */
-    @NotBlank(message = "鑿滃崟鍚嶇О涓嶈兘涓虹┖")
-    @Size(min = 0, max = 50, message = "鑿滃崟鍚嶇О闀垮害涓嶈兘瓒呰繃50涓瓧绗�")
-    private String menuName;
+	/**
+	 * 鑿滃崟鍚嶇О
+	 */
+	@NotBlank(message = "鑿滃崟鍚嶇О涓嶈兘涓虹┖")
+	@Size(min = 0, max = 50, message = "鑿滃崟鍚嶇О闀垮害涓嶈兘瓒呰繃50涓瓧绗�")
+	private String menuName;
 
-    /** 鐖惰彍鍗曞悕绉� */
-    @TableField(exist = false)
-    private String parentName;
+	/**
+	 * 鐖惰彍鍗曞悕绉�
+	 */
+	@TableField(exist = false)
+	private String parentName;
 
-    /** 鐖惰彍鍗旾D */
-    private Long parentId;
+	/**
+	 * 鐖惰彍鍗旾D
+	 */
+	private Long parentId;
 
-    /** 鏄剧ず椤哄簭 */
-    @NotBlank(message = "鏄剧ず椤哄簭涓嶈兘涓虹┖")
-    private String orderNum;
+	/**
+	 * 鏄剧ず椤哄簭
+	 */
+	@NotBlank(message = "鏄剧ず椤哄簭涓嶈兘涓虹┖")
+	private String orderNum;
 
-    /** 璺敱鍦板潃 */
-    @Size(min = 0, max = 200, message = "璺敱鍦板潃涓嶈兘瓒呰繃200涓瓧绗�")
-    private String path;
+	/**
+	 * 璺敱鍦板潃
+	 */
+	@Size(min = 0, max = 200, message = "璺敱鍦板潃涓嶈兘瓒呰繃200涓瓧绗�")
+	private String path;
 
-    /** 缁勪欢璺緞 */
-    @Size(min = 0, max = 200, message = "缁勪欢璺緞涓嶈兘瓒呰繃255涓瓧绗�")
-    private String component;
+	/**
+	 * 缁勪欢璺緞
+	 */
+	@Size(min = 0, max = 200, message = "缁勪欢璺緞涓嶈兘瓒呰繃255涓瓧绗�")
+	private String component;
 
-    /** 鏄惁涓哄閾撅紙0鏄� 1鍚︼級 */
-    private String isFrame;
+	/**
+	 * 鏄惁涓哄閾撅紙0鏄� 1鍚︼級
+	 */
+	private String isFrame;
 
-    /** 鏄惁缂撳瓨锛�0缂撳瓨 1涓嶇紦瀛橈級 */
-    private String isCache;
+	/**
+	 * 鏄惁缂撳瓨锛�0缂撳瓨 1涓嶇紦瀛橈級
+	 */
+	private String isCache;
 
-    /** 绫诲瀷锛圡鐩綍 C鑿滃崟 F鎸夐挳锛� */
-    @NotBlank(message = "鑿滃崟绫诲瀷涓嶈兘涓虹┖")
-    private String menuType;
+	/**
+	 * 绫诲瀷锛圡鐩綍 C鑿滃崟 F鎸夐挳锛�
+	 */
+	@NotBlank(message = "鑿滃崟绫诲瀷涓嶈兘涓虹┖")
+	private String menuType;
 
-    /** 鏄剧ず鐘舵�侊紙0鏄剧ず 1闅愯棌锛� */
-    private String visible;
-    
-    /** 鑿滃崟鐘舵�侊紙0鏄剧ず 1闅愯棌锛� */
-    private String status;
+	/**
+	 * 鏄剧ず鐘舵�侊紙0鏄剧ず 1闅愯棌锛�
+	 */
+	private String visible;
 
-    /** 鏉冮檺瀛楃涓� */
-    @Size(min = 0, max = 100, message = "鏉冮檺鏍囪瘑闀垮害涓嶈兘瓒呰繃100涓瓧绗�")
-    private String perms;
+	/**
+	 * 鑿滃崟鐘舵�侊紙0鏄剧ず 1闅愯棌锛�
+	 */
+	private String status;
 
-    /** 鑿滃崟鍥炬爣 */
-    private String icon;
+	/**
+	 * 鏉冮檺瀛楃涓�
+	 */
+	@Size(min = 0, max = 100, message = "鏉冮檺鏍囪瘑闀垮害涓嶈兘瓒呰繃100涓瓧绗�")
+	private String perms;
 
-    /** 鍒涘缓鑰� */
-    @TableField(fill = FieldFill.INSERT)
-    private String createBy;
+	/**
+	 * 鑿滃崟鍥炬爣
+	 */
+	private String icon;
 
-    /** 鍒涘缓鏃堕棿 */
-    @TableField(fill = FieldFill.INSERT)
-    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
-    private Date createTime;
+	/**
+	 * 鍒涘缓鑰�
+	 */
+	@TableField(fill = FieldFill.INSERT)
+	private String createBy;
 
-    /** 鏇存柊鑰� */
-    @TableField(fill = FieldFill.INSERT_UPDATE)
-    private String updateBy;
+	/**
+	 * 鍒涘缓鏃堕棿
+	 */
+	@TableField(fill = FieldFill.INSERT)
+	@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+	private Date createTime;
 
-    /** 鏇存柊鏃堕棿 */
-    @TableField(fill = FieldFill.INSERT_UPDATE)
-    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
-    private Date updateTime;
+	/**
+	 * 鏇存柊鑰�
+	 */
+	@TableField(fill = FieldFill.INSERT_UPDATE)
+	private String updateBy;
 
-    /** 澶囨敞 */
-    private String remark;
+	/**
+	 * 鏇存柊鏃堕棿
+	 */
+	@TableField(fill = FieldFill.INSERT_UPDATE)
+	@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+	private Date updateTime;
 
-    /** 璇锋眰鍙傛暟 */
-    @TableField(exist = false)
-    private Map<String, Object> params = new HashMap<>();
+	/**
+	 * 澶囨敞
+	 */
+	private String remark;
 
-    /** 瀛愯彍鍗� */
-    @TableField(exist = false)
-    private List<SysMenu> children = new ArrayList<SysMenu>();
+	/**
+	 * 璇锋眰鍙傛暟
+	 */
+	@TableField(exist = false)
+	private Map<String, Object> params = new HashMap<>();
+
+	/**
+	 * 瀛愯彍鍗�
+	 */
+	@TableField(exist = false)
+	private List<SysMenu> children = new ArrayList<SysMenu>();
 
 }
diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/entity/SysRole.java b/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/entity/SysRole.java
index a658559..5163524 100644
--- a/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/entity/SysRole.java
+++ b/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/entity/SysRole.java
@@ -1,9 +1,10 @@
 package com.ruoyi.common.core.domain.entity;
 
+import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
+import com.alibaba.excel.annotation.ExcelProperty;
 import com.baomidou.mybatisplus.annotation.*;
-import com.fasterxml.jackson.annotation.JsonFormat;
-import com.ruoyi.common.annotation.Excel;
-import com.ruoyi.common.annotation.Excel.ColumnType;
+import com.ruoyi.common.annotation.ExcelDictFormat;
+import com.ruoyi.common.convert.ExcelDictConvert;
 import lombok.Data;
 import lombok.NoArgsConstructor;
 import lombok.experimental.Accessors;
@@ -25,102 +26,133 @@
 @NoArgsConstructor
 @Accessors(chain = true)
 @TableName("sys_role")
-public class SysRole implements Serializable
-{
-    private static final long serialVersionUID = 1L;
+@ExcelIgnoreUnannotated
+public class SysRole implements Serializable {
+	private static final long serialVersionUID = 1L;
 
-    /** 瑙掕壊ID */
-    @Excel(name = "瑙掕壊搴忓彿", cellType = ColumnType.NUMERIC)
-    @TableId(value = "role_id",type = IdType.AUTO)
-    private Long roleId;
+	/**
+	 * 瑙掕壊ID
+	 */
+	@ExcelProperty(value = "瑙掕壊搴忓彿")
+	@TableId(value = "role_id", type = IdType.AUTO)
+	private Long roleId;
 
-    /** 瑙掕壊鍚嶇О */
-    @Excel(name = "瑙掕壊鍚嶇О")
-    @NotBlank(message = "瑙掕壊鍚嶇О涓嶈兘涓虹┖")
-    @Size(min = 0, max = 30, message = "瑙掕壊鍚嶇О闀垮害涓嶈兘瓒呰繃30涓瓧绗�")
-    private String roleName;
+	/**
+	 * 瑙掕壊鍚嶇О
+	 */
+	@ExcelProperty(value = "瑙掕壊鍚嶇О")
+	@NotBlank(message = "瑙掕壊鍚嶇О涓嶈兘涓虹┖")
+	@Size(min = 0, max = 30, message = "瑙掕壊鍚嶇О闀垮害涓嶈兘瓒呰繃30涓瓧绗�")
+	private String roleName;
 
-    /** 瑙掕壊鏉冮檺 */
-    @Excel(name = "瑙掕壊鏉冮檺")
-    @NotBlank(message = "鏉冮檺瀛楃涓嶈兘涓虹┖")
-    @Size(min = 0, max = 100, message = "鏉冮檺瀛楃闀垮害涓嶈兘瓒呰繃100涓瓧绗�")
-    private String roleKey;
+	/**
+	 * 瑙掕壊鏉冮檺
+	 */
+	@ExcelProperty(value = "瑙掕壊鏉冮檺")
+	@NotBlank(message = "鏉冮檺瀛楃涓嶈兘涓虹┖")
+	@Size(min = 0, max = 100, message = "鏉冮檺瀛楃闀垮害涓嶈兘瓒呰繃100涓瓧绗�")
+	private String roleKey;
 
-    /** 瑙掕壊鎺掑簭 */
-    @Excel(name = "瑙掕壊鎺掑簭")
-    @NotBlank(message = "鏄剧ず椤哄簭涓嶈兘涓虹┖")
-    private String roleSort;
+	/**
+	 * 瑙掕壊鎺掑簭
+	 */
+	@ExcelProperty(value = "瑙掕壊鎺掑簭")
+	@NotBlank(message = "鏄剧ず椤哄簭涓嶈兘涓虹┖")
+	private String roleSort;
 
-    /** 鏁版嵁鑼冨洿锛�1锛氭墍鏈夋暟鎹潈闄愶紱2锛氳嚜瀹氫箟鏁版嵁鏉冮檺锛�3锛氭湰閮ㄩ棬鏁版嵁鏉冮檺锛�4锛氭湰閮ㄩ棬鍙婁互涓嬫暟鎹潈闄愶紱5锛氫粎鏈汉鏁版嵁鏉冮檺锛� */
-    @Excel(name = "鏁版嵁鑼冨洿", readConverterExp = "1=鎵�鏈夋暟鎹潈闄�,2=鑷畾涔夋暟鎹潈闄�,3=鏈儴闂ㄦ暟鎹潈闄�,4=鏈儴闂ㄥ強浠ヤ笅鏁版嵁鏉冮檺,5=浠呮湰浜烘暟鎹潈闄�")
-    private String dataScope;
+	/**
+	 * 鏁版嵁鑼冨洿锛�1锛氭墍鏈夋暟鎹潈闄愶紱2锛氳嚜瀹氫箟鏁版嵁鏉冮檺锛�3锛氭湰閮ㄩ棬鏁版嵁鏉冮檺锛�4锛氭湰閮ㄩ棬鍙婁互涓嬫暟鎹潈闄愶紱5锛氫粎鏈汉鏁版嵁鏉冮檺锛�
+	 */
+	@ExcelProperty(value = "鏁版嵁鑼冨洿", converter = ExcelDictConvert.class)
+	@ExcelDictFormat(readConverterExp = "1=鎵�鏈夋暟鎹潈闄�,2=鑷畾涔夋暟鎹潈闄�,3=鏈儴闂ㄦ暟鎹潈闄�,4=鏈儴闂ㄥ強浠ヤ笅鏁版嵁鏉冮檺,5=浠呮湰浜烘暟鎹潈闄�")
+	private String dataScope;
 
-    /** 鑿滃崟鏍戦�夋嫨椤规槸鍚﹀叧鑱旀樉绀猴紙 0锛氱埗瀛愪笉浜掔浉鍏宠仈鏄剧ず 1锛氱埗瀛愪簰鐩稿叧鑱旀樉绀猴級 */
-    private boolean menuCheckStrictly;
+	/**
+	 * 鑿滃崟鏍戦�夋嫨椤规槸鍚﹀叧鑱旀樉绀猴紙 0锛氱埗瀛愪笉浜掔浉鍏宠仈鏄剧ず 1锛氱埗瀛愪簰鐩稿叧鑱旀樉绀猴級
+	 */
+	private boolean menuCheckStrictly;
 
-    /** 閮ㄩ棬鏍戦�夋嫨椤规槸鍚﹀叧鑱旀樉绀猴紙0锛氱埗瀛愪笉浜掔浉鍏宠仈鏄剧ず 1锛氱埗瀛愪簰鐩稿叧鑱旀樉绀� 锛� */
-    private boolean deptCheckStrictly;
+	/**
+	 * 閮ㄩ棬鏍戦�夋嫨椤规槸鍚﹀叧鑱旀樉绀猴紙0锛氱埗瀛愪笉浜掔浉鍏宠仈鏄剧ず 1锛氱埗瀛愪簰鐩稿叧鑱旀樉绀� 锛�
+	 */
+	private boolean deptCheckStrictly;
 
-    /** 瑙掕壊鐘舵�侊紙0姝e父 1鍋滅敤锛� */
-    @Excel(name = "瑙掕壊鐘舵��", readConverterExp = "0=姝e父,1=鍋滅敤")
-    private String status;
+	/**
+	 * 瑙掕壊鐘舵�侊紙0姝e父 1鍋滅敤锛�
+	 */
+	@ExcelProperty(value = "瑙掕壊鐘舵��", converter = ExcelDictConvert.class)
+	@ExcelDictFormat(dictType = "sys_common_status")
+	private String status;
 
-    /** 鍒犻櫎鏍囧織锛�0浠h〃瀛樺湪 2浠h〃鍒犻櫎锛� */
-    @TableLogic
-    private String delFlag;
+	/**
+	 * 鍒犻櫎鏍囧織锛�0浠h〃瀛樺湪 2浠h〃鍒犻櫎锛�
+	 */
+	@TableLogic
+	private String delFlag;
 
-    /** 鍒涘缓鑰� */
-    @TableField(fill = FieldFill.INSERT)
-    private String createBy;
+	/**
+	 * 鍒涘缓鑰�
+	 */
+	@TableField(fill = FieldFill.INSERT)
+	private String createBy;
 
-    /** 鍒涘缓鏃堕棿 */
-    @TableField(fill = FieldFill.INSERT)
-    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
-    private Date createTime;
+	/**
+	 * 鍒涘缓鏃堕棿
+	 */
+	@TableField(fill = FieldFill.INSERT)
+	private Date createTime;
 
-    /** 鏇存柊鑰� */
-    @TableField(fill = FieldFill.INSERT_UPDATE)
-    private String updateBy;
+	/**
+	 * 鏇存柊鑰�
+	 */
+	@TableField(fill = FieldFill.INSERT_UPDATE)
+	private String updateBy;
 
-    /** 鏇存柊鏃堕棿 */
-    @TableField(fill = FieldFill.INSERT_UPDATE)
-    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
-    private Date updateTime;
+	/**
+	 * 鏇存柊鏃堕棿
+	 */
+	@TableField(fill = FieldFill.INSERT_UPDATE)
+	private Date updateTime;
 
-    /** 澶囨敞 */
-    private String remark;
+	/**
+	 * 澶囨敞
+	 */
+	private String remark;
 
-    /**
-     * 璇锋眰鍙傛暟
-     */
-    @TableField(exist = false)
-    private Map<String, Object> params = new HashMap<>();
+	/**
+	 * 璇锋眰鍙傛暟
+	 */
+	@TableField(exist = false)
+	private Map<String, Object> params = new HashMap<>();
 
-    /** 鐢ㄦ埛鏄惁瀛樺湪姝よ鑹叉爣璇� 榛樿涓嶅瓨鍦� */
-    @TableField(exist = false)
-    private boolean flag = false;
+	/**
+	 * 鐢ㄦ埛鏄惁瀛樺湪姝よ鑹叉爣璇� 榛樿涓嶅瓨鍦�
+	 */
+	@TableField(exist = false)
+	private boolean flag = false;
 
-    /** 鑿滃崟缁� */
-    @TableField(exist = false)
-    private Long[] menuIds;
+	/**
+	 * 鑿滃崟缁�
+	 */
+	@TableField(exist = false)
+	private Long[] menuIds;
 
-    /** 閮ㄩ棬缁勶紙鏁版嵁鏉冮檺锛� */
-    @TableField(exist = false)
-    private Long[] deptIds;
+	/**
+	 * 閮ㄩ棬缁勶紙鏁版嵁鏉冮檺锛�
+	 */
+	@TableField(exist = false)
+	private Long[] deptIds;
 
-    public SysRole(Long roleId)
-    {
-        this.roleId = roleId;
-    }
+	public SysRole(Long roleId) {
+		this.roleId = roleId;
+	}
 
-    public boolean isAdmin()
-    {
-        return isAdmin(this.roleId);
-    }
+	public boolean isAdmin() {
+		return isAdmin(this.roleId);
+	}
 
-    public static boolean isAdmin(Long roleId)
-    {
-        return roleId != null && 1L == roleId;
-    }
+	public static boolean isAdmin(Long roleId) {
+		return roleId != null && 1L == roleId;
+	}
 
 }
diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/entity/SysUser.java b/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/entity/SysUser.java
index a371039..0adef26 100644
--- a/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/entity/SysUser.java
+++ b/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/entity/SysUser.java
@@ -31,139 +31,183 @@
 @NoArgsConstructor
 @Accessors(chain = true)
 @TableName("sys_user")
-public class SysUser implements Serializable
-{
-    private static final long serialVersionUID = 1L;
+public class SysUser implements Serializable {
+	private static final long serialVersionUID = 1L;
 
-    /** 鐢ㄦ埛ID */
-    @Excel(name = "鐢ㄦ埛搴忓彿", cellType = ColumnType.NUMERIC, prompt = "鐢ㄦ埛缂栧彿")
-    @TableId(value = "user_id",type = IdType.AUTO)
-    private Long userId;
+	/**
+	 * 鐢ㄦ埛ID
+	 */
+	@Excel(name = "鐢ㄦ埛搴忓彿", cellType = ColumnType.NUMERIC, prompt = "鐢ㄦ埛缂栧彿")
+	@TableId(value = "user_id", type = IdType.AUTO)
+	private Long userId;
 
-    /** 閮ㄩ棬ID */
-    @Excel(name = "閮ㄩ棬缂栧彿", type = Type.IMPORT)
-    private Long deptId;
+	/**
+	 * 閮ㄩ棬ID
+	 */
+	@Excel(name = "閮ㄩ棬缂栧彿", type = Type.IMPORT)
+	private Long deptId;
 
-    /** 鐢ㄦ埛璐﹀彿 */
-    @NotBlank(message = "鐢ㄦ埛璐﹀彿涓嶈兘涓虹┖")
-    @Size(min = 0, max = 30, message = "鐢ㄦ埛璐﹀彿闀垮害涓嶈兘瓒呰繃30涓瓧绗�")
-    @Excel(name = "鐧诲綍鍚嶇О")
-    private String userName;
+	/**
+	 * 鐢ㄦ埛璐﹀彿
+	 */
+	@NotBlank(message = "鐢ㄦ埛璐﹀彿涓嶈兘涓虹┖")
+	@Size(min = 0, max = 30, message = "鐢ㄦ埛璐﹀彿闀垮害涓嶈兘瓒呰繃30涓瓧绗�")
+	@Excel(name = "鐧诲綍鍚嶇О")
+	private String userName;
 
-    /** 鐢ㄦ埛鏄电О */
-    @Size(min = 0, max = 30, message = "鐢ㄦ埛鏄电О闀垮害涓嶈兘瓒呰繃30涓瓧绗�")
-    @Excel(name = "鐢ㄦ埛鍚嶇О")
-    private String nickName;
+	/**
+	 * 鐢ㄦ埛鏄电О
+	 */
+	@Size(min = 0, max = 30, message = "鐢ㄦ埛鏄电О闀垮害涓嶈兘瓒呰繃30涓瓧绗�")
+	@Excel(name = "鐢ㄦ埛鍚嶇О")
+	private String nickName;
 
-    /** 鐢ㄦ埛閭 */
-    @Email(message = "閭鏍煎紡涓嶆纭�")
-    @Size(min = 0, max = 50, message = "閭闀垮害涓嶈兘瓒呰繃50涓瓧绗�")
-    @Excel(name = "鐢ㄦ埛閭")
-    private String email;
+	/**
+	 * 鐢ㄦ埛閭
+	 */
+	@Email(message = "閭鏍煎紡涓嶆纭�")
+	@Size(min = 0, max = 50, message = "閭闀垮害涓嶈兘瓒呰繃50涓瓧绗�")
+	@Excel(name = "鐢ㄦ埛閭")
+	private String email;
 
-    /** 鎵嬫満鍙风爜 */
-    @Excel(name = "鎵嬫満鍙风爜")
-    private String phonenumber;
+	/**
+	 * 鎵嬫満鍙风爜
+	 */
+	@Excel(name = "鎵嬫満鍙风爜")
+	private String phonenumber;
 
-    /** 鐢ㄦ埛鎬у埆 */
-    @Excel(name = "鐢ㄦ埛鎬у埆", readConverterExp = "0=鐢�,1=濂�,2=鏈煡")
-    private String sex;
+	/**
+	 * 鐢ㄦ埛鎬у埆
+	 */
+	@Excel(name = "鐢ㄦ埛鎬у埆", readConverterExp = "0=鐢�,1=濂�,2=鏈煡")
+	private String sex;
 
-    /** 鐢ㄦ埛澶村儚 */
-    private String avatar;
+	/**
+	 * 鐢ㄦ埛澶村儚
+	 */
+	private String avatar;
 
-    /** 瀵嗙爜 */
-    private String password;
+	/**
+	 * 瀵嗙爜
+	 */
+	private String password;
 
-    @JsonIgnore
-    @JsonProperty
-    public String getPassword() {
-        return password;
-    }
+	@JsonIgnore
+	@JsonProperty
+	public String getPassword() {
+		return password;
+	}
 
-    /** 鐩愬姞瀵� */
-    private String salt;
+	/**
+	 * 鐩愬姞瀵�
+	 */
+	private String salt;
 
-    /** 甯愬彿鐘舵�侊紙0姝e父 1鍋滅敤锛� */
-    @Excel(name = "甯愬彿鐘舵��", readConverterExp = "0=姝e父,1=鍋滅敤")
-    private String status;
+	/**
+	 * 甯愬彿鐘舵�侊紙0姝e父 1鍋滅敤锛�
+	 */
+	@Excel(name = "甯愬彿鐘舵��", readConverterExp = "0=姝e父,1=鍋滅敤")
+	private String status;
 
-    /** 鍒犻櫎鏍囧織锛�0浠h〃瀛樺湪 2浠h〃鍒犻櫎锛� */
-    @TableLogic
-    private String delFlag;
+	/**
+	 * 鍒犻櫎鏍囧織锛�0浠h〃瀛樺湪 2浠h〃鍒犻櫎锛�
+	 */
+	@TableLogic
+	private String delFlag;
 
-    /** 鏈�鍚庣櫥褰旾P */
-    @Excel(name = "鏈�鍚庣櫥褰旾P", type = Type.EXPORT)
-    private String loginIp;
+	/**
+	 * 鏈�鍚庣櫥褰旾P
+	 */
+	@Excel(name = "鏈�鍚庣櫥褰旾P", type = Type.EXPORT)
+	private String loginIp;
 
-    /** 鏈�鍚庣櫥褰曟椂闂� */
-    @Excel(name = "鏈�鍚庣櫥褰曟椂闂�", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss", type = Type.EXPORT)
-    private Date loginDate;
+	/**
+	 * 鏈�鍚庣櫥褰曟椂闂�
+	 */
+	@Excel(name = "鏈�鍚庣櫥褰曟椂闂�", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss", type = Type.EXPORT)
+	private Date loginDate;
 
-    /** 鍒涘缓鑰� */
-    @TableField(fill = FieldFill.INSERT)
-    private String createBy;
+	/**
+	 * 鍒涘缓鑰�
+	 */
+	@TableField(fill = FieldFill.INSERT)
+	private String createBy;
 
-    /** 鍒涘缓鏃堕棿 */
-    @TableField(fill = FieldFill.INSERT)
-    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
-    private Date createTime;
+	/**
+	 * 鍒涘缓鏃堕棿
+	 */
+	@TableField(fill = FieldFill.INSERT)
+	@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+	private Date createTime;
 
-    /** 鏇存柊鑰� */
-    @TableField(fill = FieldFill.INSERT_UPDATE)
-    private String updateBy;
+	/**
+	 * 鏇存柊鑰�
+	 */
+	@TableField(fill = FieldFill.INSERT_UPDATE)
+	private String updateBy;
 
-    /** 鏇存柊鏃堕棿 */
-    @TableField(fill = FieldFill.INSERT_UPDATE)
-    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
-    private Date updateTime;
+	/**
+	 * 鏇存柊鏃堕棿
+	 */
+	@TableField(fill = FieldFill.INSERT_UPDATE)
+	@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+	private Date updateTime;
 
-    /** 澶囨敞 */
-    private String remark;
+	/**
+	 * 澶囨敞
+	 */
+	private String remark;
 
-    /**
-     * 璇锋眰鍙傛暟
-     */
-    @TableField(exist = false)
-    private Map<String, Object> params = new HashMap<>();
+	/**
+	 * 璇锋眰鍙傛暟
+	 */
+	@TableField(exist = false)
+	private Map<String, Object> params = new HashMap<>();
 
-    /** 閮ㄩ棬瀵硅薄 */
-    @Excels({
-        @Excel(name = "閮ㄩ棬鍚嶇О", targetAttr = "deptName", type = Type.EXPORT),
-        @Excel(name = "閮ㄩ棬璐熻矗浜�", targetAttr = "leader", type = Type.EXPORT)
-    })
-    @TableField(exist = false)
-    private SysDept dept;
+	/**
+	 * 閮ㄩ棬瀵硅薄
+	 */
+	@Excels({
+		@Excel(name = "閮ㄩ棬鍚嶇О", targetAttr = "deptName", type = Type.EXPORT),
+		@Excel(name = "閮ㄩ棬璐熻矗浜�", targetAttr = "leader", type = Type.EXPORT)
+	})
+	@TableField(exist = false)
+	private SysDept dept;
 
-    /** 瑙掕壊瀵硅薄 */
-    @TableField(exist = false)
-    private List<SysRole> roles;
+	/**
+	 * 瑙掕壊瀵硅薄
+	 */
+	@TableField(exist = false)
+	private List<SysRole> roles;
 
-    /** 瑙掕壊缁� */
-    @TableField(exist = false)
-    private Long[] roleIds;
+	/**
+	 * 瑙掕壊缁�
+	 */
+	@TableField(exist = false)
+	private Long[] roleIds;
 
-    /** 宀椾綅缁� */
-    @TableField(exist = false)
-    private Long[] postIds;
+	/**
+	 * 宀椾綅缁�
+	 */
+	@TableField(exist = false)
+	private Long[] postIds;
 
-	/** 瑙掕壊ID */
+	/**
+	 * 瑙掕壊ID
+	 */
 	@TableField(exist = false)
 	private Long roleId;
 
-    public SysUser(Long userId)
-    {
-        this.userId = userId;
-    }
+	public SysUser(Long userId) {
+		this.userId = userId;
+	}
 
-    public boolean isAdmin()
-    {
-        return isAdmin(this.userId);
-    }
+	public boolean isAdmin() {
+		return isAdmin(this.userId);
+	}
 
-    public static boolean isAdmin(Long userId)
-    {
-        return userId != null && 1L == userId;
-    }
+	public static boolean isAdmin(Long userId) {
+		return userId != null && 1L == userId;
+	}
 
 }
diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/utils/poi/ExcelUtils.java b/ruoyi-common/src/main/java/com/ruoyi/common/utils/poi/ExcelUtils.java
index bc5282f..6353d98 100644
--- a/ruoyi-common/src/main/java/com/ruoyi/common/utils/poi/ExcelUtils.java
+++ b/ruoyi-common/src/main/java/com/ruoyi/common/utils/poi/ExcelUtils.java
@@ -46,7 +46,7 @@
 			response.addHeader("Access-Control-Allow-Origin", "*");
 			response.addHeader("Access-Control-Expose-Headers", "Content-Disposition");
 			FileUtils.setAttachmentResponseHeader(response, URLEncoder.encode(filename, StandardCharsets.UTF_8.toString()));
-			response.setContentType("application/vnd.ms-excel;charset=UTF-8");
+			response.setContentType("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet;charset=UTF-8");
 			ServletOutputStream os = response.getOutputStream();
 			EasyExcel.write(os, clazz)
 				.autoCloseStream(false)
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/domain/SysConfig.java b/ruoyi-system/src/main/java/com/ruoyi/system/domain/SysConfig.java
index 66569b7..cdd7810 100644
--- a/ruoyi-system/src/main/java/com/ruoyi/system/domain/SysConfig.java
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/domain/SysConfig.java
@@ -1,9 +1,10 @@
 package com.ruoyi.system.domain;
 
+import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
+import com.alibaba.excel.annotation.ExcelProperty;
 import com.baomidou.mybatisplus.annotation.*;
-import com.fasterxml.jackson.annotation.JsonFormat;
-import com.ruoyi.common.annotation.Excel;
-import com.ruoyi.common.annotation.Excel.ColumnType;
+import com.ruoyi.common.annotation.ExcelDictFormat;
+import com.ruoyi.common.convert.ExcelDictConvert;
 import lombok.Data;
 import lombok.NoArgsConstructor;
 import lombok.experimental.Accessors;
@@ -25,20 +26,21 @@
 @NoArgsConstructor
 @Accessors(chain = true)
 @TableName("sys_config")
+@ExcelIgnoreUnannotated
 public class SysConfig implements Serializable {
     private static final long serialVersionUID = 1L;
 
     /**
      * 鍙傛暟涓婚敭
      */
-    @Excel(name = "鍙傛暟涓婚敭", cellType = ColumnType.NUMERIC)
+    @ExcelProperty(value = "鍙傛暟涓婚敭")
     @TableId(value = "config_id", type = IdType.AUTO)
     private Long configId;
 
     /**
      * 鍙傛暟鍚嶇О
      */
-    @Excel(name = "鍙傛暟鍚嶇О")
+    @ExcelProperty(value = "鍙傛暟鍚嶇О")
     @NotBlank(message = "鍙傛暟鍚嶇О涓嶈兘涓虹┖")
     @Size(min = 0, max = 100, message = "鍙傛暟鍚嶇О涓嶈兘瓒呰繃100涓瓧绗�")
     private String configName;
@@ -46,7 +48,7 @@
     /**
      * 鍙傛暟閿悕
      */
-    @Excel(name = "鍙傛暟閿悕")
+    @ExcelProperty(value = "鍙傛暟閿悕")
     @NotBlank(message = "鍙傛暟閿悕闀垮害涓嶈兘涓虹┖")
     @Size(min = 0, max = 100, message = "鍙傛暟閿悕闀垮害涓嶈兘瓒呰繃100涓瓧绗�")
     private String configKey;
@@ -54,7 +56,7 @@
     /**
      * 鍙傛暟閿��
      */
-    @Excel(name = "鍙傛暟閿��")
+    @ExcelProperty(value = "鍙傛暟閿��")
     @NotBlank(message = "鍙傛暟閿�间笉鑳戒负绌�")
     @Size(min = 0, max = 500, message = "鍙傛暟閿�奸暱搴︿笉鑳借秴杩�500涓瓧绗�")
     private String configValue;
@@ -62,7 +64,8 @@
     /**
      * 绯荤粺鍐呯疆锛圷鏄� N鍚︼級
      */
-    @Excel(name = "绯荤粺鍐呯疆", readConverterExp = "Y=鏄�,N=鍚�")
+    @ExcelProperty(value = "绯荤粺鍐呯疆", converter = ExcelDictConvert.class)
+	@ExcelDictFormat(dictType = "sys_yes_no")
     private String configType;
 
     /**
@@ -75,7 +78,6 @@
      * 鍒涘缓鏃堕棿
      */
     @TableField(fill = FieldFill.INSERT)
-    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
     private Date createTime;
 
     /**
@@ -88,7 +90,6 @@
      * 鏇存柊鏃堕棿
      */
     @TableField(fill = FieldFill.INSERT_UPDATE)
-    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
     private Date updateTime;
 
     /**
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/domain/SysLogininfor.java b/ruoyi-system/src/main/java/com/ruoyi/system/domain/SysLogininfor.java
index 3182bc4..898aa8a 100644
--- a/ruoyi-system/src/main/java/com/ruoyi/system/domain/SysLogininfor.java
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/domain/SysLogininfor.java
@@ -1,12 +1,13 @@
 package com.ruoyi.system.domain;
 
+import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
+import com.alibaba.excel.annotation.ExcelProperty;
 import com.baomidou.mybatisplus.annotation.IdType;
 import com.baomidou.mybatisplus.annotation.TableField;
 import com.baomidou.mybatisplus.annotation.TableId;
 import com.baomidou.mybatisplus.annotation.TableName;
-import com.fasterxml.jackson.annotation.JsonFormat;
-import com.ruoyi.common.annotation.Excel;
-import com.ruoyi.common.annotation.Excel.ColumnType;
+import com.ruoyi.common.annotation.ExcelDictFormat;
+import com.ruoyi.common.convert.ExcelDictConvert;
 import lombok.Data;
 import lombok.NoArgsConstructor;
 import lombok.experimental.Accessors;
@@ -26,63 +27,64 @@
 @NoArgsConstructor
 @Accessors(chain = true)
 @TableName("sys_logininfor")
+@ExcelIgnoreUnannotated
 public class SysLogininfor implements Serializable {
     private static final long serialVersionUID = 1L;
 
     /**
      * ID
      */
-    @Excel(name = "搴忓彿", cellType = ColumnType.NUMERIC)
+    @ExcelProperty(value = "搴忓彿")
     @TableId(value = "info_id", type = IdType.AUTO)
     private Long infoId;
 
     /**
      * 鐢ㄦ埛璐﹀彿
      */
-    @Excel(name = "鐢ㄦ埛璐﹀彿")
+    @ExcelProperty(value = "鐢ㄦ埛璐﹀彿")
     private String userName;
 
     /**
      * 鐧诲綍鐘舵�� 0鎴愬姛 1澶辫触
      */
-    @Excel(name = "鐧诲綍鐘舵��", readConverterExp = "0=鎴愬姛,1=澶辫触")
+    @ExcelProperty(value = "鐧诲綍鐘舵��", converter = ExcelDictConvert.class)
+	@ExcelDictFormat(dictType = "sys_common_status")
     private String status;
 
     /**
      * 鐧诲綍IP鍦板潃
      */
-    @Excel(name = "鐧诲綍鍦板潃")
+    @ExcelProperty(value = "鐧诲綍鍦板潃")
     private String ipaddr;
 
     /**
      * 鐧诲綍鍦扮偣
      */
-    @Excel(name = "鐧诲綍鍦扮偣")
+    @ExcelProperty(value = "鐧诲綍鍦扮偣")
     private String loginLocation;
 
     /**
      * 娴忚鍣ㄧ被鍨�
      */
-    @Excel(name = "娴忚鍣�")
+    @ExcelProperty(value = "娴忚鍣�")
     private String browser;
 
     /**
      * 鎿嶄綔绯荤粺
      */
-    @Excel(name = "鎿嶄綔绯荤粺")
+    @ExcelProperty(value = "鎿嶄綔绯荤粺")
     private String os;
 
     /**
      * 鎻愮ず娑堟伅
      */
-    @Excel(name = "鎻愮ず娑堟伅")
+    @ExcelProperty(value = "鎻愮ず娑堟伅")
     private String msg;
 
     /**
      * 璁块棶鏃堕棿
      */
-    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
-    @Excel(name = "璁块棶鏃堕棿", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
+    @ExcelProperty(value = "璁块棶鏃堕棿")
     private Date loginTime;
 
     /**
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/domain/SysOperLog.java b/ruoyi-system/src/main/java/com/ruoyi/system/domain/SysOperLog.java
index 8b14c36..20fc273 100644
--- a/ruoyi-system/src/main/java/com/ruoyi/system/domain/SysOperLog.java
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/domain/SysOperLog.java
@@ -28,9 +28,6 @@
 @Accessors(chain = true)
 @TableName("sys_oper_log")
 @ExcelIgnoreUnannotated
-//@ColumnWidth(16)
-//@HeadRowHeight(14)
-//@HeadFontStyle(fontHeightInPoints = 11)
 public class SysOperLog implements Serializable {
     private static final long serialVersionUID = 1L;
 
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/domain/SysPost.java b/ruoyi-system/src/main/java/com/ruoyi/system/domain/SysPost.java
index 5bde684..5672250 100644
--- a/ruoyi-system/src/main/java/com/ruoyi/system/domain/SysPost.java
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/domain/SysPost.java
@@ -1,9 +1,10 @@
 package com.ruoyi.system.domain;
 
+import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
+import com.alibaba.excel.annotation.ExcelProperty;
 import com.baomidou.mybatisplus.annotation.*;
-import com.fasterxml.jackson.annotation.JsonFormat;
-import com.ruoyi.common.annotation.Excel;
-import com.ruoyi.common.annotation.Excel.ColumnType;
+import com.ruoyi.common.annotation.ExcelDictFormat;
+import com.ruoyi.common.convert.ExcelDictConvert;
 import lombok.Data;
 import lombok.NoArgsConstructor;
 import lombok.experimental.Accessors;
@@ -25,20 +26,21 @@
 @NoArgsConstructor
 @Accessors(chain = true)
 @TableName("sys_post")
+@ExcelIgnoreUnannotated
 public class SysPost implements Serializable {
     private static final long serialVersionUID = 1L;
 
     /**
      * 宀椾綅搴忓彿
      */
-    @Excel(name = "宀椾綅搴忓彿", cellType = ColumnType.NUMERIC)
+    @ExcelProperty(value = "宀椾綅搴忓彿")
     @TableId(value = "post_id", type = IdType.AUTO)
     private Long postId;
 
     /**
      * 宀椾綅缂栫爜
      */
-    @Excel(name = "宀椾綅缂栫爜")
+    @ExcelProperty(value = "宀椾綅缂栫爜")
     @NotBlank(message = "宀椾綅缂栫爜涓嶈兘涓虹┖")
     @Size(min = 0, max = 64, message = "宀椾綅缂栫爜闀垮害涓嶈兘瓒呰繃64涓瓧绗�")
     private String postCode;
@@ -46,7 +48,7 @@
     /**
      * 宀椾綅鍚嶇О
      */
-    @Excel(name = "宀椾綅鍚嶇О")
+    @ExcelProperty(value = "宀椾綅鍚嶇О")
     @NotBlank(message = "宀椾綅鍚嶇О涓嶈兘涓虹┖")
     @Size(min = 0, max = 50, message = "宀椾綅鍚嶇О闀垮害涓嶈兘瓒呰繃50涓瓧绗�")
     private String postName;
@@ -54,14 +56,15 @@
     /**
      * 宀椾綅鎺掑簭
      */
-    @Excel(name = "宀椾綅鎺掑簭")
+    @ExcelProperty(value = "宀椾綅鎺掑簭")
     @NotBlank(message = "鏄剧ず椤哄簭涓嶈兘涓虹┖")
     private String postSort;
 
     /**
      * 鐘舵�侊紙0姝e父 1鍋滅敤锛�
      */
-    @Excel(name = "鐘舵��", readConverterExp = "0=姝e父,1=鍋滅敤")
+	@ExcelProperty(value = "鐘舵��", converter = ExcelDictConvert.class)
+	@ExcelDictFormat(dictType = "sys_common_status")
     private String status;
 
     /**
@@ -74,7 +77,6 @@
      * 鍒涘缓鏃堕棿
      */
     @TableField(fill = FieldFill.INSERT)
-    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
     private Date createTime;
 
     /**
@@ -87,7 +89,6 @@
      * 鏇存柊鏃堕棿
      */
     @TableField(fill = FieldFill.INSERT_UPDATE)
-    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
     private Date updateTime;
 
     /**
diff --git a/ruoyi-ui/src/api/monitor/logininfor.js b/ruoyi-ui/src/api/monitor/logininfor.js
index 383d61f..26a46eb 100644
--- a/ruoyi-ui/src/api/monitor/logininfor.js
+++ b/ruoyi-ui/src/api/monitor/logininfor.js
@@ -24,12 +24,3 @@
     method: 'delete'
   })
 }
-
-// 瀵煎嚭鐧诲綍鏃ュ織
-export function exportLogininfor(query) {
-  return request({
-    url: '/monitor/logininfor/export',
-    method: 'get',
-    params: query
-  })
-}
\ No newline at end of file
diff --git a/ruoyi-ui/src/api/monitor/operlog.js b/ruoyi-ui/src/api/monitor/operlog.js
index f09b8ed..a04bca8 100644
--- a/ruoyi-ui/src/api/monitor/operlog.js
+++ b/ruoyi-ui/src/api/monitor/operlog.js
@@ -24,12 +24,3 @@
     method: 'delete'
   })
 }
-
-// 瀵煎嚭鎿嶄綔鏃ュ織
-export function exportOperlog(query) {
-  return request({
-    url: '/monitor/operlog/export',
-    method: 'get',
-    params: query
-  })
-}
\ No newline at end of file
diff --git a/ruoyi-ui/src/api/system/config.js b/ruoyi-ui/src/api/system/config.js
index 4c5cb6b..c193284 100644
--- a/ruoyi-ui/src/api/system/config.js
+++ b/ruoyi-ui/src/api/system/config.js
@@ -59,11 +59,3 @@
   })
 }
 
-// 瀵煎嚭鍙傛暟
-export function exportConfig(query) {
-  return request({
-    url: '/system/config/export',
-    method: 'get',
-    params: query
-  })
-}
diff --git a/ruoyi-ui/src/api/system/dict/data.js b/ruoyi-ui/src/api/system/dict/data.js
index d7aca89..6c9eb79 100644
--- a/ruoyi-ui/src/api/system/dict/data.js
+++ b/ruoyi-ui/src/api/system/dict/data.js
@@ -50,12 +50,3 @@
     method: 'delete'
   })
 }
-
-// 瀵煎嚭瀛楀吀鏁版嵁
-export function exportData(query) {
-  return request({
-    url: '/system/dict/data/export',
-    method: 'get',
-    params: query
-  })
-}
\ No newline at end of file
diff --git a/ruoyi-ui/src/api/system/dict/type.js b/ruoyi-ui/src/api/system/dict/type.js
index 2f0532d..a0254ba 100644
--- a/ruoyi-ui/src/api/system/dict/type.js
+++ b/ruoyi-ui/src/api/system/dict/type.js
@@ -51,15 +51,6 @@
   })
 }
 
-// 瀵煎嚭瀛楀吀绫诲瀷
-export function exportType(query) {
-  return request({
-    url: '/system/dict/type/export',
-    method: 'get',
-    params: query
-  })
-}
-
 // 鑾峰彇瀛楀吀閫夋嫨妗嗗垪琛�
 export function optionselect() {
   return request({
diff --git a/ruoyi-ui/src/api/system/role.js b/ruoyi-ui/src/api/system/role.js
index c669ac4..888538e 100644
--- a/ruoyi-ui/src/api/system/role.js
+++ b/ruoyi-ui/src/api/system/role.js
@@ -65,16 +65,6 @@
   })
 }
 
-// 瀵煎嚭瑙掕壊
-export function exportRole(query) {
-  return request({
-    url: '/system/role/export',
-    method: 'get',
-    params: query
-  })
-}
-
-
 // 鏌ヨ瑙掕壊宸叉巿鏉冪敤鎴峰垪琛�
 export function allocatedUserList(query) {
   return request({
diff --git a/ruoyi-ui/src/utils/download.js b/ruoyi-ui/src/utils/download.js
index 8a2d808..aeac6b5 100644
--- a/ruoyi-ui/src/utils/download.js
+++ b/ruoyi-ui/src/utils/download.js
@@ -4,7 +4,6 @@
 const mimeMap = {
   xlsx: 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet',
   zip: 'application/zip',
-  excel: 'application/vnd.ms-excel',
   oss: 'application/octet-stream'
 }
 
@@ -62,7 +61,7 @@
     responseType: 'blob',
     headers: { 'Authorization': 'Bearer ' + getToken() }
   }).then(res => {
-    resolveBlob(res, mimeMap.excel)
+    resolveBlob(res, mimeMap.xlsx)
   })
 }
 
diff --git a/ruoyi-ui/src/views/monitor/logininfor/index.vue b/ruoyi-ui/src/views/monitor/logininfor/index.vue
index 07937b4..5d6c051 100644
--- a/ruoyi-ui/src/views/monitor/logininfor/index.vue
+++ b/ruoyi-ui/src/views/monitor/logininfor/index.vue
@@ -119,7 +119,8 @@
 </template>
 
 <script>
-import { list, delLogininfor, cleanLogininfor, exportLogininfor } from "@/api/monitor/logininfor";
+import { list, delLogininfor, cleanLogininfor } from "@/api/monitor/logininfor";
+import { downLoadExcel } from "@/utils/download";
 
 export default {
   name: "Logininfor",
@@ -228,18 +229,7 @@
     },
     /** 瀵煎嚭鎸夐挳鎿嶄綔 */
     handleExport() {
-      const queryParams = this.queryParams;
-      this.$confirm('鏄惁纭瀵煎嚭鎵�鏈夋搷浣滄棩蹇楁暟鎹」?', "璀﹀憡", {
-          confirmButtonText: "纭畾",
-          cancelButtonText: "鍙栨秷",
-          type: "warning"
-        }).then(() => {
-          this.exportLoading = true;
-          return exportLogininfor(queryParams);
-        }).then(response => {
-          this.download(response.msg);
-          this.exportLoading = false;
-        }).catch(() => {});
+      downLoadExcel('/monitor/logininfor/export', this.queryParams);
     }
   }
 };
diff --git a/ruoyi-ui/src/views/monitor/operlog/index.vue b/ruoyi-ui/src/views/monitor/operlog/index.vue
index c45ce8a..6462cd2 100644
--- a/ruoyi-ui/src/views/monitor/operlog/index.vue
+++ b/ruoyi-ui/src/views/monitor/operlog/index.vue
@@ -188,7 +188,7 @@
 </template>
 
 <script>
-import { list, delOperlog, cleanOperlog, exportOperlog } from "@/api/monitor/operlog";
+import { list, delOperlog, cleanOperlog } from "@/api/monitor/operlog";
 import { downLoadExcel } from "@/utils/download";
 
 export default {
diff --git a/ruoyi-ui/src/views/system/config/index.vue b/ruoyi-ui/src/views/system/config/index.vue
index 25086a9..69d8564 100644
--- a/ruoyi-ui/src/views/system/config/index.vue
+++ b/ruoyi-ui/src/views/system/config/index.vue
@@ -181,7 +181,8 @@
 </template>
 
 <script>
-import { listConfig, getConfig, delConfig, addConfig, updateConfig, exportConfig, refreshCache } from "@/api/system/config";
+import { listConfig, getConfig, delConfig, addConfig, updateConfig, refreshCache } from "@/api/system/config";
+import { downLoadExcel } from "@/utils/download";
 
 export default {
   name: "Config",
@@ -342,18 +343,7 @@
     },
     /** 瀵煎嚭鎸夐挳鎿嶄綔 */
     handleExport() {
-      const queryParams = this.queryParams;
-      this.$confirm('鏄惁纭瀵煎嚭鎵�鏈夊弬鏁版暟鎹」?', "璀﹀憡", {
-          confirmButtonText: "纭畾",
-          cancelButtonText: "鍙栨秷",
-          type: "warning"
-        }).then(() => {
-          this.exportLoading = true;
-          return exportConfig(queryParams);
-        }).then(response => {
-          this.download(response.msg);
-          this.exportLoading = false;
-        }).catch(() => {});
+      downLoadExcel('/system/config/export', this.queryParams);
     },
     /** 鍒锋柊缂撳瓨鎸夐挳鎿嶄綔 */
     handleRefreshCache() {
diff --git a/ruoyi-ui/src/views/system/dict/data.vue b/ruoyi-ui/src/views/system/dict/data.vue
index bd46d8b..cd86963 100644
--- a/ruoyi-ui/src/views/system/dict/data.vue
+++ b/ruoyi-ui/src/views/system/dict/data.vue
@@ -183,8 +183,9 @@
 </template>
 
 <script>
-import { listData, getData, delData, addData, updateData, exportData } from "@/api/system/dict/data";
+import { listData, getData, delData, addData, updateData } from "@/api/system/dict/data";
 import { listType, getType } from "@/api/system/dict/type";
+import { downLoadExcel } from "@/utils/download";
 
 export default {
   name: "Data",
@@ -388,18 +389,7 @@
     },
     /** 瀵煎嚭鎸夐挳鎿嶄綔 */
     handleExport() {
-      const queryParams = this.queryParams;
-      this.$confirm('鏄惁纭瀵煎嚭鎵�鏈夋暟鎹」?', "璀﹀憡", {
-          confirmButtonText: "纭畾",
-          cancelButtonText: "鍙栨秷",
-          type: "warning"
-        }).then(() => {
-          this.exportLoading = true;
-          return exportData(queryParams);
-        }).then(response => {
-          this.download(response.msg);
-          this.exportLoading = false;
-        }).catch(() => {});
+      downLoadExcel('/system/dict/data/export', this.queryParams);
     }
   }
 };
diff --git a/ruoyi-ui/src/views/system/dict/index.vue b/ruoyi-ui/src/views/system/dict/index.vue
index b80dd37..d7a0b00 100644
--- a/ruoyi-ui/src/views/system/dict/index.vue
+++ b/ruoyi-ui/src/views/system/dict/index.vue
@@ -193,7 +193,8 @@
 </template>
 
 <script>
-import { listType, getType, delType, addType, updateType, exportType, refreshCache } from "@/api/system/dict/type";
+import { listType, getType, delType, addType, updateType, refreshCache } from "@/api/system/dict/type";
+import { downLoadExcel } from "@/utils/download";
 
 export default {
   name: "Dict",
@@ -346,18 +347,7 @@
     },
     /** 瀵煎嚭鎸夐挳鎿嶄綔 */
     handleExport() {
-      const queryParams = this.queryParams;
-      this.$confirm('鏄惁纭瀵煎嚭鎵�鏈夌被鍨嬫暟鎹」?', "璀﹀憡", {
-          confirmButtonText: "纭畾",
-          cancelButtonText: "鍙栨秷",
-          type: "warning"
-        }).then(() => {
-          this.exportLoading = true;
-          return exportType(queryParams);
-        }).then(response => {
-          this.download(response.msg);
-          this.exportLoading = false;
-        }).catch(() => {});
+      downLoadExcel('/system/dict/type/export', this.queryParams);
     },
     /** 鍒锋柊缂撳瓨鎸夐挳鎿嶄綔 */
     handleRefreshCache() {
diff --git a/ruoyi-ui/src/views/system/post/index.vue b/ruoyi-ui/src/views/system/post/index.vue
index 9d15938..f5b77c7 100644
--- a/ruoyi-ui/src/views/system/post/index.vue
+++ b/ruoyi-ui/src/views/system/post/index.vue
@@ -156,7 +156,8 @@
 </template>
 
 <script>
-import { listPost, getPost, delPost, addPost, updatePost, exportPost } from "@/api/system/post";
+import { listPost, getPost, delPost, addPost, updatePost } from "@/api/system/post";
+import { downLoadExcel } from "@/utils/download";
 
 export default {
   name: "Post",
@@ -313,18 +314,7 @@
     },
     /** 瀵煎嚭鎸夐挳鎿嶄綔 */
     handleExport() {
-      const queryParams = this.queryParams;
-      this.$confirm('鏄惁纭瀵煎嚭鎵�鏈夊矖浣嶆暟鎹」?', "璀﹀憡", {
-          confirmButtonText: "纭畾",
-          cancelButtonText: "鍙栨秷",
-          type: "warning"
-        }).then(() => {
-          this.exportLoading = true;
-          return exportPost(queryParams);
-        }).then(response => {
-          this.download(response.msg);
-          this.exportLoading = false;
-        }).catch(() => {});
+      downLoadExcel('/system/post/export', this.queryParams);
     }
   }
 };
diff --git a/ruoyi-ui/src/views/system/role/index.vue b/ruoyi-ui/src/views/system/role/index.vue
index 53d4f8d..0057413 100644
--- a/ruoyi-ui/src/views/system/role/index.vue
+++ b/ruoyi-ui/src/views/system/role/index.vue
@@ -259,9 +259,10 @@
 </template>
 
 <script>
-import { listRole, getRole, delRole, addRole, updateRole, exportRole, dataScope, changeRoleStatus } from "@/api/system/role";
+import { listRole, getRole, delRole, addRole, updateRole, dataScope, changeRoleStatus } from "@/api/system/role";
 import { treeselect as menuTreeselect, roleMenuTreeselect } from "@/api/system/menu";
 import { treeselect as deptTreeselect, roleDeptTreeselect } from "@/api/system/dept";
+import { downLoadExcel } from "@/utils/download";
 
 export default {
   name: "Role",
@@ -625,18 +626,7 @@
     },
     /** 瀵煎嚭鎸夐挳鎿嶄綔 */
     handleExport() {
-      const queryParams = this.queryParams;
-      this.$confirm('鏄惁纭瀵煎嚭鎵�鏈夎鑹叉暟鎹」?', "璀﹀憡", {
-          confirmButtonText: "纭畾",
-          cancelButtonText: "鍙栨秷",
-          type: "warning"
-        }).then(() => {
-          this.exportLoading = true;
-          return exportRole(queryParams);
-        }).then(response => {
-          this.download(response.msg);
-          this.exportLoading = false;
-        }).catch(() => {});
+      downLoadExcel('/system/role/export', this.queryParams);
     }
   }
 };
diff --git a/ruoyi-ui/src/views/system/user/profile/userAvatar.vue b/ruoyi-ui/src/views/system/user/profile/userAvatar.vue
index 6ed6314..f20c922 100644
--- a/ruoyi-ui/src/views/system/user/profile/userAvatar.vue
+++ b/ruoyi-ui/src/views/system/user/profile/userAvatar.vue
@@ -126,7 +126,7 @@
         formData.append("avatarfile", data);
         uploadAvatar(formData).then(response => {
           this.open = false;
-          this.options.img = process.env.VUE_APP_BASE_API + response.data.imgUrl;
+          this.options.img = response.data.imgUrl;
           store.commit('SET_AVATAR', this.options.img);
           this.msgSuccess("淇敼鎴愬姛");
           this.visible = false;

--
Gitblit v1.9.3