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