From 9cf4794146e58fada29a2241081391dc19a0f0b7 Mon Sep 17 00:00:00 2001
From: 疯狂的狮子li <15040126243@163.com>
Date: 星期三, 04 八月 2021 18:29:38 +0800
Subject: [PATCH] update 更新 SysUser 导入导出

---
 ruoyi-common/src/main/java/com/ruoyi/common/core/domain/entity/SysUser.java      |   21 ----------
 ruoyi-ui/src/views/system/user/index.vue                                         |   20 ++--------
 ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysUserController.java |   34 ++++++++++++-----
 ruoyi-common/src/main/java/com/ruoyi/common/utils/poi/ExcelUtils.java            |    2 
 ruoyi-ui/src/api/system/user.js                                                  |   17 --------
 5 files changed, 29 insertions(+), 65 deletions(-)

diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysUserController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysUserController.java
index ee104ca..b3d4cac 100644
--- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysUserController.java
+++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysUserController.java
@@ -1,9 +1,12 @@
 package com.ruoyi.web.controller.system;
 
+import cn.hutool.core.bean.BeanUtil;
+import cn.hutool.core.util.ObjectUtil;
 import com.ruoyi.common.annotation.Log;
 import com.ruoyi.common.constant.UserConstants;
 import com.ruoyi.common.core.controller.BaseController;
 import com.ruoyi.common.core.domain.AjaxResult;
+import com.ruoyi.common.core.domain.entity.SysDept;
 import com.ruoyi.common.core.domain.entity.SysRole;
 import com.ruoyi.common.core.domain.entity.SysUser;
 import com.ruoyi.common.core.domain.model.LoginUser;
@@ -12,8 +15,10 @@
 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.TokenService;
+import com.ruoyi.system.domain.vo.SysUserExportVo;
+import com.ruoyi.system.domain.vo.SysUserImportVo;
 import com.ruoyi.system.service.ISysPostService;
 import com.ruoyi.system.service.ISysRoleService;
 import com.ruoyi.system.service.ISysUserService;
@@ -23,6 +28,8 @@
 import org.springframework.web.bind.annotation.*;
 import org.springframework.web.multipart.MultipartFile;
 
+import javax.servlet.http.HttpServletResponse;
+import java.util.ArrayList;
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
@@ -62,11 +69,19 @@
     @Log(title = "鐢ㄦ埛绠$悊", businessType = BusinessType.EXPORT)
     @PreAuthorize("@ss.hasPermi('system:user:export')")
     @GetMapping("/export")
-    public AjaxResult export(SysUser user)
+    public void export(SysUser user, HttpServletResponse response)
     {
         List<SysUser> list = userService.selectUserList(user);
-        ExcelUtil<SysUser> util = new ExcelUtil<SysUser>(SysUser.class);
-        return util.exportExcel(list, "鐢ㄦ埛鏁版嵁");
+		List<SysUserExportVo> listVo = BeanUtil.copyToList(list, SysUserExportVo.class);
+		for (int i = 0; i < list.size(); i++) {
+			SysDept dept = list.get(i).getDept();
+			SysUserExportVo vo = listVo.get(i);
+			if (ObjectUtil.isNotEmpty(dept)) {
+				vo.setDeptName(dept.getDeptName());
+				vo.setLeader(dept.getLeader());
+			}
+		}
+		ExcelUtils.exportExcel(listVo, "鐢ㄦ埛鏁版嵁", SysUserExportVo.class, response);
     }
 
     @Log(title = "鐢ㄦ埛绠$悊", businessType = BusinessType.IMPORT)
@@ -74,19 +89,18 @@
     @PostMapping("/importData")
     public AjaxResult importData(MultipartFile file, boolean updateSupport) throws Exception
     {
-        ExcelUtil<SysUser> util = new ExcelUtil<SysUser>(SysUser.class);
-        List<SysUser> userList = util.importExcel(file.getInputStream());
-        LoginUser loginUser = tokenService.getLoginUser(ServletUtils.getRequest());
+		List<SysUserImportVo> userListVo = ExcelUtils.importExcel(file.getInputStream(), SysUserImportVo.class);
+		List<SysUser> userList = BeanUtil.copyToList(userListVo, SysUser.class);
+		LoginUser loginUser = tokenService.getLoginUser(ServletUtils.getRequest());
         String operName = loginUser.getUsername();
         String message = userService.importUser(userList, updateSupport, operName);
         return AjaxResult.success(message);
     }
 
     @GetMapping("/importTemplate")
-    public AjaxResult importTemplate()
+    public void importTemplate(HttpServletResponse response)
     {
-        ExcelUtil<SysUser> util = new ExcelUtil<SysUser>(SysUser.class);
-        return util.importTemplateExcel("鐢ㄦ埛鏁版嵁");
+		ExcelUtils.exportExcel(new ArrayList<>(), "鐢ㄦ埛鏁版嵁", SysUserImportVo.class, response);
     }
 
     /**
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 0adef26..c5c82fd 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
@@ -1,13 +1,8 @@
 package com.ruoyi.common.core.domain.entity;
 
 import com.baomidou.mybatisplus.annotation.*;
-import com.fasterxml.jackson.annotation.JsonFormat;
 import com.fasterxml.jackson.annotation.JsonIgnore;
 import com.fasterxml.jackson.annotation.JsonProperty;
-import com.ruoyi.common.annotation.Excel;
-import com.ruoyi.common.annotation.Excel.ColumnType;
-import com.ruoyi.common.annotation.Excel.Type;
-import com.ruoyi.common.annotation.Excels;
 import lombok.Data;
 import lombok.NoArgsConstructor;
 import lombok.experimental.Accessors;
@@ -37,14 +32,12 @@
 	/**
 	 * 鐢ㄦ埛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;
 
 	/**
@@ -52,14 +45,12 @@
 	 */
 	@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;
 
 	/**
@@ -67,19 +58,16 @@
 	 */
 	@Email(message = "閭鏍煎紡涓嶆纭�")
 	@Size(min = 0, max = 50, message = "閭闀垮害涓嶈兘瓒呰繃50涓瓧绗�")
-	@Excel(name = "鐢ㄦ埛閭")
 	private String email;
 
 	/**
 	 * 鎵嬫満鍙风爜
 	 */
-	@Excel(name = "鎵嬫満鍙风爜")
 	private String phonenumber;
 
 	/**
 	 * 鐢ㄦ埛鎬у埆
 	 */
-	@Excel(name = "鐢ㄦ埛鎬у埆", readConverterExp = "0=鐢�,1=濂�,2=鏈煡")
 	private String sex;
 
 	/**
@@ -106,7 +94,6 @@
 	/**
 	 * 甯愬彿鐘舵�侊紙0姝e父 1鍋滅敤锛�
 	 */
-	@Excel(name = "甯愬彿鐘舵��", readConverterExp = "0=姝e父,1=鍋滅敤")
 	private String status;
 
 	/**
@@ -118,13 +105,11 @@
 	/**
 	 * 鏈�鍚庣櫥褰旾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;
 
 	/**
@@ -137,7 +122,6 @@
 	 * 鍒涘缓鏃堕棿
 	 */
 	@TableField(fill = FieldFill.INSERT)
-	@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
 	private Date createTime;
 
 	/**
@@ -150,7 +134,6 @@
 	 * 鏇存柊鏃堕棿
 	 */
 	@TableField(fill = FieldFill.INSERT_UPDATE)
-	@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
 	private Date updateTime;
 
 	/**
@@ -167,10 +150,6 @@
 	/**
 	 * 閮ㄩ棬瀵硅薄
 	 */
-	@Excels({
-		@Excel(name = "閮ㄩ棬鍚嶇О", targetAttr = "deptName", type = Type.EXPORT),
-		@Excel(name = "閮ㄩ棬璐熻矗浜�", targetAttr = "leader", type = Type.EXPORT)
-	})
 	@TableField(exist = false)
 	private SysDept dept;
 
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 6353d98..4d52d0b 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
@@ -29,7 +29,7 @@
 	 * @return 杞崲鍚庨泦鍚�
 	 */
 	public static <T> List<T> importExcel(InputStream is, Class<T> clazz) {
-		return EasyExcel.read(is).head(clazz).sheet().doReadSync();
+		return EasyExcel.read(is).autoCloseStream(false).sheet().doReadSync();
 	}
 
 	/**
diff --git a/ruoyi-ui/src/api/system/user.js b/ruoyi-ui/src/api/system/user.js
index 37f4eb3..204c26e 100644
--- a/ruoyi-ui/src/api/system/user.js
+++ b/ruoyi-ui/src/api/system/user.js
@@ -44,15 +44,6 @@
   })
 }
 
-// 瀵煎嚭鐢ㄦ埛
-export function exportUser(query) {
-  return request({
-    url: '/system/user/export',
-    method: 'get',
-    params: query
-  })
-}
-
 // 鐢ㄦ埛瀵嗙爜閲嶇疆
 export function resetUserPwd(userId, password) {
   const data = {
@@ -115,14 +106,6 @@
     url: '/system/user/profile/avatar',
     method: 'post',
     data: data
-  })
-}
-
-// 涓嬭浇鐢ㄦ埛瀵煎叆妯℃澘
-export function importTemplate() {
-  return request({
-    url: '/system/user/importTemplate',
-    method: 'get'
   })
 }
 
diff --git a/ruoyi-ui/src/views/system/user/index.vue b/ruoyi-ui/src/views/system/user/index.vue
index beb034d..3214a72 100644
--- a/ruoyi-ui/src/views/system/user/index.vue
+++ b/ruoyi-ui/src/views/system/user/index.vue
@@ -346,11 +346,12 @@
 </template>
 
 <script>
-import { listUser, getUser, delUser, addUser, updateUser, exportUser, resetUserPwd, changeUserStatus, importTemplate } from "@/api/system/user";
+import { listUser, getUser, delUser, addUser, updateUser, resetUserPwd, changeUserStatus } from "@/api/system/user";
 import { getToken } from "@/utils/auth";
 import { treeselect } from "@/api/system/dept";
 import Treeselect from "@riophae/vue-treeselect";
 import "@riophae/vue-treeselect/dist/vue-treeselect.css";
+import { downLoadExcel } from "@/utils/download";
 
 export default {
   name: "User",
@@ -660,18 +661,7 @@
     },
     /** 瀵煎嚭鎸夐挳鎿嶄綔 */
     handleExport() {
-      const queryParams = this.queryParams;
-      this.$confirm('鏄惁纭瀵煎嚭鎵�鏈夌敤鎴锋暟鎹」?', "璀﹀憡", {
-          confirmButtonText: "纭畾",
-          cancelButtonText: "鍙栨秷",
-          type: "warning"
-        }).then(() => {
-          this.exportLoading = true;
-          return exportUser(queryParams);
-        }).then(response => {
-          this.download(response.msg);
-          this.exportLoading = false;
-        }).catch(() => {});
+      downLoadExcel('/system/user/export', this.queryParams);
     },
     /** 瀵煎叆鎸夐挳鎿嶄綔 */
     handleImport() {
@@ -680,9 +670,7 @@
     },
     /** 涓嬭浇妯℃澘鎿嶄綔 */
     importTemplate() {
-      importTemplate().then(response => {
-        this.download(response.msg);
-      });
+      downLoadExcel('/system/user/importTemplate');
     },
     // 鏂囦欢涓婁紶涓鐞�
     handleFileUploadProgress(event, file, fileList) {

--
Gitblit v1.9.3