From 001e2494bd813791c53df374459034eb29549525 Mon Sep 17 00:00:00 2001 From: liyawei Date: Fri, 4 Mar 2022 18:23:38 +0800 Subject: [PATCH] =?UTF-8?q?=E7=94=A8=E6=88=B7=E8=A7=92=E8=89=B2=E9=83=A8?= =?UTF-8?q?=E9=97=A8=E7=AE=A1=E7=90=86-=E8=8B=B1=E6=96=87=E5=AF=BC?= =?UTF-8?q?=E5=87=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../system/vo/SysDepartUserTreeModel.java | 363 ++++++++++++++++++ .../common/system/vo/SysUserTreeModel.java | 27 ++ .../controller/SysDepartController.java | 64 ++- .../system/controller/SysRoleController.java | 100 +++-- .../system/controller/SysUserController.java | 86 ++++- .../jero/modules/system/entity/SysDepart.java | 5 + .../system/entity/SysDepartExportEn.java | 43 +++ .../jero/modules/system/entity/SysRole.java | 17 +- .../system/entity/SysRoleExportEn.java | 36 ++ .../jero/modules/system/entity/SysUser.java | 12 +- .../system/entity/SysUserExportEn.java | 48 +++ .../system/mapper/xml/SysUserMapper.xml | 14 +- .../system/service/ISysUserService.java | 13 +- 13 files changed, 727 insertions(+), 101 deletions(-) create mode 100644 jero-boot/jero-boot-base/jero-boot-base-core/src/main/java/com/jero/common/system/vo/SysDepartUserTreeModel.java create mode 100644 jero-boot/jero-boot-base/jero-boot-base-core/src/main/java/com/jero/common/system/vo/SysUserTreeModel.java create mode 100644 jero-boot/jero-boot-module-system/src/main/java/com/jero/modules/system/entity/SysDepartExportEn.java create mode 100644 jero-boot/jero-boot-module-system/src/main/java/com/jero/modules/system/entity/SysRoleExportEn.java create mode 100644 jero-boot/jero-boot-module-system/src/main/java/com/jero/modules/system/entity/SysUserExportEn.java diff --git a/jero-boot/jero-boot-base/jero-boot-base-core/src/main/java/com/jero/common/system/vo/SysDepartUserTreeModel.java b/jero-boot/jero-boot-base/jero-boot-base-core/src/main/java/com/jero/common/system/vo/SysDepartUserTreeModel.java new file mode 100644 index 000000000..4c7e10b24 --- /dev/null +++ b/jero-boot/jero-boot-base/jero-boot-base-core/src/main/java/com/jero/common/system/vo/SysDepartUserTreeModel.java @@ -0,0 +1,363 @@ +package com.jero.common.system.vo; + +import java.io.Serializable; +import java.util.ArrayList; +import java.util.Date; +import java.util.List; +import java.util.Objects; + +/** + * @Author: liyawei + * @Description: + * @Date: Created in 15:49 2022/3/4 + */ +public class SysDepartUserTreeModel implements Serializable { + + private static final long serialVersionUID = 1L; + + /** + * 对应SysDepart中的id字段,前端数据树中的key + */ + private String key; + + /** + * 对应SysDepart中的id字段,前端数据树中的value + */ + private String value; + + /** + * 对应depart_name字段,前端数据树中的title + */ + private String title; + + + private boolean isLeaf; + // 以下所有字段均与SysDepart相同 + + private String id; + + private String parentId; + + private String departName; + + private String departNameEn; + + private String departNameAbbr; + + private Integer departOrder; + + private String description; + + private String orgCategory; + + private String orgType; + + private String orgCode; + + private String parentCode; + + private String mobile; + + private String fax; + + private String address; + + private String memo; + + private String status; + + private String delFlag; + + private String createBy; + + private Date createTime; + + private String updateBy; + + private Date updateTime; + + private List list = new ArrayList<>(); //当前部门的用户列表,不包括子部门的 + + private List children = new ArrayList<>(); + + public List getList() { + return list; + } + + public void setList(List list) { + this.list = list; + } + + public String getParentCode() { + return parentCode; + } + + public void setParentCode(String parentCode) { + this.parentCode = parentCode; + } + + public boolean getIsLeaf() { + return isLeaf; + } + + public void setIsLeaf(boolean isleaf) { + this.isLeaf = isleaf; + } + + public String getKey() { + return key; + } + + + public void setKey(String key) { + this.key = key; + } + + + public String getValue() { + return value; + } + + + public void setValue(String value) { + this.value = value; + } + + + public String getTitle() { + return title; + } + + + public void setTitle(String title) { + this.title = title; + } + + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public List getChildren() { + return children; + } + + public void setChildren(List children) { + if (children == null) { + this.isLeaf = true; + } + this.children = children; + } + + public String getParentId() { + return parentId; + } + + public void setParentId(String parentId) { + this.parentId = parentId; + } + + public static long getSerialVersionUID() { + return serialVersionUID; + } + + public String getDepartName() { + return departName; + } + + public void setDepartName(String departName) { + this.departName = departName; + } + + public String getOrgCategory() { + return orgCategory; + } + + public void setOrgCategory(String orgCategory) { + this.orgCategory = orgCategory; + } + + public String getOrgType() { + return orgType; + } + + public void setOrgType(String orgType) { + this.orgType = orgType; + } + + public String getOrgCode() { + return orgCode; + } + + public void setOrgCode(String orgCode) { + this.orgCode = orgCode; + } + + public String getMobile() { + return mobile; + } + + public void setMobile(String mobile) { + this.mobile = mobile; + } + + public String getFax() { + return fax; + } + + public void setFax(String fax) { + this.fax = fax; + } + + public String getAddress() { + return address; + } + + public void setAddress(String address) { + this.address = address; + } + + public String getMemo() { + return memo; + } + + public void setMemo(String memo) { + this.memo = memo; + } + + public String getDepartNameEn() { + return departNameEn; + } + + public void setDepartNameEn(String departNameEn) { + this.departNameEn = departNameEn; + } + + public String getDepartNameAbbr() { + return departNameAbbr; + } + + public void setDepartNameAbbr(String departNameAbbr) { + this.departNameAbbr = departNameAbbr; + } + + public Integer getDepartOrder() { + return departOrder; + } + + public void setDepartOrder(Integer departOrder) { + this.departOrder = departOrder; + } + + public String getDescription() { + return description; + } + + public void setDescription(String description) { + this.description = description; + } + + public String getStatus() { + return status; + } + + public void setStatus(String status) { + this.status = status; + } + + public String getDelFlag() { + return delFlag; + } + + public void setDelFlag(String delFlag) { + this.delFlag = delFlag; + } + + public String getCreateBy() { + return createBy; + } + + public void setCreateBy(String createBy) { + this.createBy = createBy; + } + + public Date getCreateTime() { + return createTime; + } + + public void setCreateTime(Date createTime) { + this.createTime = createTime; + } + + public String getUpdateBy() { + return updateBy; + } + + public void setUpdateBy(String updateBy) { + this.updateBy = updateBy; + } + + public Date getUpdateTime() { + return updateTime; + } + + public void setUpdateTime(Date updateTime) { + this.updateTime = updateTime; + } + + public SysDepartUserTreeModel() { + } + + /** + * 重写equals方法 + */ + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + SysDepartUserTreeModel model = (SysDepartUserTreeModel) o; + return Objects.equals(id, model.id) && + Objects.equals(parentId, model.parentId) && + Objects.equals(departName, model.departName) && + Objects.equals(departNameEn, model.departNameEn) && + Objects.equals(departNameAbbr, model.departNameAbbr) && + Objects.equals(departOrder, model.departOrder) && + Objects.equals(description, model.description) && + Objects.equals(orgCategory, model.orgCategory) && + Objects.equals(orgType, model.orgType) && + Objects.equals(orgCode, model.orgCode) && + Objects.equals(parentCode, model.parentCode) && + Objects.equals(mobile, model.mobile) && + Objects.equals(fax, model.fax) && + Objects.equals(address, model.address) && + Objects.equals(memo, model.memo) && + Objects.equals(status, model.status) && + Objects.equals(delFlag, model.delFlag) && + Objects.equals(createBy, model.createBy) && + Objects.equals(createTime, model.createTime) && + Objects.equals(updateBy, model.updateBy) && + Objects.equals(updateTime, model.updateTime) && + Objects.equals(list, model.list) && + Objects.equals(children, model.children); + } + + /** + * 重写hashCode方法 + */ + @Override + public int hashCode() { + + return Objects.hash(id, parentId, departName, departNameEn, departNameAbbr, + departOrder, description, orgCategory, orgType, orgCode, parentCode, + mobile, fax, address, memo, status, delFlag, createBy, createTime, + updateBy, updateTime, list, children); + } +} diff --git a/jero-boot/jero-boot-base/jero-boot-base-core/src/main/java/com/jero/common/system/vo/SysUserTreeModel.java b/jero-boot/jero-boot-base/jero-boot-base-core/src/main/java/com/jero/common/system/vo/SysUserTreeModel.java new file mode 100644 index 000000000..5fc651e74 --- /dev/null +++ b/jero-boot/jero-boot-base/jero-boot-base-core/src/main/java/com/jero/common/system/vo/SysUserTreeModel.java @@ -0,0 +1,27 @@ +package com.jero.common.system.vo; + +import lombok.Data; + +/** + * @Author: liyawei + * @Description: + * @Date: Created in 15:54 2022/3/4 + */ +@Data +public class SysUserTreeModel { + private String id; + private String username; + + /** + * 真实姓名 + */ + private String realname; + /** + * 部门code(当前选择登录部门) + */ + private String orgCode; + + /**部门名称*/ + private transient String orgCodeTxt; + +} diff --git a/jero-boot/jero-boot-module-system/src/main/java/com/jero/modules/system/controller/SysDepartController.java b/jero-boot/jero-boot-module-system/src/main/java/com/jero/modules/system/controller/SysDepartController.java index 1cccab9d7..20c732d18 100644 --- a/jero-boot/jero-boot-module-system/src/main/java/com/jero/modules/system/controller/SysDepartController.java +++ b/jero-boot/jero-boot-module-system/src/main/java/com/jero/modules/system/controller/SysDepartController.java @@ -13,6 +13,7 @@ import com.jero.common.util.ImportExcelUtil; import com.jero.common.util.YouBianCodeUtil; import com.jero.common.util.oConvertUtils; import com.jero.modules.system.entity.SysDepart; +import com.jero.modules.system.entity.SysDepartExportEn; import com.jero.modules.system.entity.SysUser; import com.jero.modules.system.model.DepartIdModel; import com.jero.modules.system.service.ISysDepartService; @@ -26,7 +27,9 @@ import org.jeecgframework.poi.excel.ExcelImportUtil; import org.jeecgframework.poi.excel.def.NormalExcelConstants; import org.jeecgframework.poi.excel.entity.ExportParams; import org.jeecgframework.poi.excel.entity.ImportParams; +import org.jeecgframework.poi.excel.entity.enmus.ExcelType; import org.jeecgframework.poi.excel.view.JeecgEntityExcelView; +import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.cache.annotation.CacheEvict; import org.springframework.data.redis.core.RedisTemplate; @@ -297,25 +300,52 @@ public class SysDepartController { //Step.2 AutoPoi 导出Excel ModelAndView mv = new ModelAndView(new JeecgEntityExcelView()); List pageList = sysDepartService.list(queryWrapper); - for(SysDepart depart : pageList){ - if(StringUtils.isNotBlank(depart.getParentId())){ - SysDepart parentDepart = sysDepartService.getById(depart.getParentId()); - depart.setParentName(parentDepart.getDepartName()); - } - } - //按字典排序 - Collections.sort(pageList, new Comparator() { - @Override - public int compare(SysDepart arg0, SysDepart arg1) { - return arg0.getOrgCode().compareTo(arg1.getOrgCode()); - } - }); + //导出文件名称 mv.addObject(NormalExcelConstants.FILE_NAME, "部门列表"); - mv.addObject(NormalExcelConstants.CLASS, SysDepart.class); - LoginUser user = (LoginUser) SecurityUtils.getSubject().getPrincipal(); - mv.addObject(NormalExcelConstants.PARAMS, new ExportParams("部门列表数据", "导出人:"+user.getRealname(), "导出信息")); - mv.addObject(NormalExcelConstants.DATA_LIST, pageList); + if("en".equals(sysDepart.getCut())){ + List result = new ArrayList<>(); + for(SysDepart depart : pageList){ + if(StringUtils.isNotBlank(depart.getParentId())){ + SysDepart parentDepart = sysDepartService.getById(depart.getParentId()); + depart.setParentName(parentDepart.getDepartName()); + } + SysDepartExportEn target = new SysDepartExportEn(); + BeanUtils.copyProperties(depart, target); + result.add(target); + } + //按字典排序 + Collections.sort(result, new Comparator() { + @Override + public int compare(SysDepartExportEn arg0, SysDepartExportEn arg1) { + return arg0.getOrgCode().compareTo(arg1.getOrgCode()); + } + }); + mv.addObject(NormalExcelConstants.CLASS, SysDepartExportEn.class); +// LoginUser user = (LoginUser) SecurityUtils.getSubject().getPrincipal(); +// mv.addObject(NormalExcelConstants.PARAMS, new ExportParams("部门列表数据", "导出人:"+user.getRealname(), "导出信息")); + mv.addObject(NormalExcelConstants.PARAMS, new ExportParams("depart list data", "export information", ExcelType.XSSF)); + mv.addObject(NormalExcelConstants.DATA_LIST, result); + }else{ + for(SysDepart depart : pageList){ + if(StringUtils.isNotBlank(depart.getParentId())){ + SysDepart parentDepart = sysDepartService.getById(depart.getParentId()); + depart.setParentName(parentDepart.getDepartName()); + } + } + //按字典排序 + Collections.sort(pageList, new Comparator() { + @Override + public int compare(SysDepart arg0, SysDepart arg1) { + return arg0.getOrgCode().compareTo(arg1.getOrgCode()); + } + }); + mv.addObject(NormalExcelConstants.CLASS, SysDepart.class); +// LoginUser user = (LoginUser) SecurityUtils.getSubject().getPrincipal(); +// mv.addObject(NormalExcelConstants.PARAMS, new ExportParams("部门列表数据", "导出人:"+user.getRealname(), "导出信息")); + mv.addObject(NormalExcelConstants.PARAMS, new ExportParams("部门列表数据", "导出信息", ExcelType.XSSF)); + mv.addObject(NormalExcelConstants.DATA_LIST, pageList); + } return mv; } diff --git a/jero-boot/jero-boot-module-system/src/main/java/com/jero/modules/system/controller/SysRoleController.java b/jero-boot/jero-boot-module-system/src/main/java/com/jero/modules/system/controller/SysRoleController.java index 6c9ea0e4c..8842a62b2 100644 --- a/jero-boot/jero-boot-module-system/src/main/java/com/jero/modules/system/controller/SysRoleController.java +++ b/jero-boot/jero-boot-module-system/src/main/java/com/jero/modules/system/controller/SysRoleController.java @@ -1,62 +1,39 @@ package com.jero.modules.system.controller; -import java.io.File; -import java.io.IOException; -import java.util.ArrayList; -import java.util.Arrays; -import java.util.Date; -import java.util.HashMap; -import java.util.List; -import java.util.Map; - -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; - -import org.apache.shiro.authz.annotation.RequiresPermissions; -import org.apache.shiro.authz.annotation.RequiresRoles; -import com.jero.common.api.vo.Result; -import com.jero.common.constant.CacheConstant; -import com.jero.common.constant.CommonConstant; -import com.jero.common.system.query.QueryGenerator; -import com.jero.common.util.PmsUtil; -import com.jero.common.util.oConvertUtils; -import com.jero.modules.system.entity.SysPermission; -import com.jero.modules.system.entity.SysPermissionDataRule; -import com.jero.modules.system.entity.SysRole; -import com.jero.modules.system.entity.SysRolePermission; -import com.jero.modules.system.model.TreeModel; -import com.jero.modules.system.service.ISysPermissionDataRuleService; -import com.jero.modules.system.service.ISysPermissionService; -import com.jero.modules.system.service.ISysRolePermissionService; -import com.jero.modules.system.service.ISysRoleService; -import org.jeecgframework.poi.excel.ExcelImportUtil; -import org.jeecgframework.poi.excel.def.NormalExcelConstants; -import org.jeecgframework.poi.excel.entity.ExportParams; -import org.jeecgframework.poi.excel.entity.ImportParams; -import org.jeecgframework.poi.excel.view.JeecgEntityExcelView; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.cache.annotation.CacheEvict; -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.RequestBody; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RequestMethod; -import org.springframework.web.bind.annotation.RequestParam; -import org.springframework.web.bind.annotation.RestController; -import org.springframework.web.multipart.MultipartFile; -import org.springframework.web.multipart.MultipartHttpServletRequest; -import org.springframework.web.servlet.ModelAndView; -import com.jero.common.system.vo.LoginUser; -import org.apache.shiro.SecurityUtils; import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; - +import com.jero.common.api.vo.Result; +import com.jero.common.constant.CommonConstant; +import com.jero.common.system.query.QueryGenerator; +import com.jero.common.util.oConvertUtils; +import com.jero.modules.system.entity.*; +import com.jero.modules.system.model.TreeModel; +import com.jero.modules.system.service.ISysPermissionDataRuleService; +import com.jero.modules.system.service.ISysPermissionService; +import com.jero.modules.system.service.ISysRolePermissionService; +import com.jero.modules.system.service.ISysRoleService; import lombok.extern.slf4j.Slf4j; +import org.apache.shiro.authz.annotation.RequiresPermissions; +import org.jeecgframework.poi.excel.def.NormalExcelConstants; +import org.jeecgframework.poi.excel.entity.ExportParams; +import org.jeecgframework.poi.excel.entity.ImportParams; +import org.jeecgframework.poi.excel.entity.enmus.ExcelType; +import org.jeecgframework.poi.excel.view.JeecgEntityExcelView; +import org.springframework.beans.BeanUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.*; +import org.springframework.web.multipart.MultipartFile; +import org.springframework.web.multipart.MultipartHttpServletRequest; +import org.springframework.web.servlet.ModelAndView; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.IOException; +import java.util.*; /** *

@@ -268,10 +245,25 @@ public class SysRoleController { List pageList = sysRoleService.list(queryWrapper); //导出文件名称 mv.addObject(NormalExcelConstants.FILE_NAME,"角色列表"); - mv.addObject(NormalExcelConstants.CLASS,SysRole.class); - LoginUser user = (LoginUser) SecurityUtils.getSubject().getPrincipal(); - mv.addObject(NormalExcelConstants.PARAMS,new ExportParams("角色列表数据","导出人:"+user.getRealname(),"导出信息")); - mv.addObject(NormalExcelConstants.DATA_LIST,pageList); + if("en".equals(sysRole.getCut())){ + List result = new ArrayList<>(); + pageList.forEach(item->{ + SysRoleExportEn target = new SysRoleExportEn(); + BeanUtils.copyProperties(item, target); + result.add(target); + }); + mv.addObject(NormalExcelConstants.CLASS,SysRoleExportEn.class); +// LoginUser user = (LoginUser) SecurityUtils.getSubject().getPrincipal(); +// mv.addObject(NormalExcelConstants.PARAMS,new ExportParams("角色列表数据","导出人:"+user.getRealname(),"导出信息")); + mv.addObject(NormalExcelConstants.PARAMS,new ExportParams("role list data","export information", ExcelType.XSSF)); + mv.addObject(NormalExcelConstants.DATA_LIST,result); + }else{ + mv.addObject(NormalExcelConstants.CLASS,SysRole.class); +// LoginUser user = (LoginUser) SecurityUtils.getSubject().getPrincipal(); +// mv.addObject(NormalExcelConstants.PARAMS,new ExportParams("角色列表数据","导出人:"+user.getRealname(),"导出信息")); + mv.addObject(NormalExcelConstants.PARAMS,new ExportParams("角色列表数据","导出信息", ExcelType.XSSF)); + mv.addObject(NormalExcelConstants.DATA_LIST,pageList); + } return mv; } diff --git a/jero-boot/jero-boot-module-system/src/main/java/com/jero/modules/system/controller/SysUserController.java b/jero-boot/jero-boot-module-system/src/main/java/com/jero/modules/system/controller/SysUserController.java index cf4401c5d..597d5c48a 100644 --- a/jero-boot/jero-boot-module-system/src/main/java/com/jero/modules/system/controller/SysUserController.java +++ b/jero-boot/jero-boot-module-system/src/main/java/com/jero/modules/system/controller/SysUserController.java @@ -1,6 +1,7 @@ package com.jero.modules.system.controller; +import cn.hutool.core.collection.CollectionUtil; import cn.hutool.core.util.RandomUtil; import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONObject; @@ -16,6 +17,9 @@ import com.jero.common.system.api.ISysBaseAPI; import com.jero.common.system.query.QueryGenerator; import com.jero.common.system.util.JwtUtil; import com.jero.common.system.vo.LoginUser; +import com.jero.common.system.vo.SysDepartTreeModel; +import com.jero.common.system.vo.SysDepartUserTreeModel; +import com.jero.common.system.vo.SysUserTreeModel; import com.jero.common.util.ImportExcelUtil; import com.jero.common.util.PasswordUtil; import com.jero.common.util.RedisUtil; @@ -37,7 +41,9 @@ import org.jeecgframework.poi.excel.ExcelImportUtil; import org.jeecgframework.poi.excel.def.NormalExcelConstants; import org.jeecgframework.poi.excel.entity.ExportParams; import org.jeecgframework.poi.excel.entity.ImportParams; +import org.jeecgframework.poi.excel.entity.enmus.ExcelType; import org.jeecgframework.poi.excel.view.JeecgEntityExcelView; +import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; import org.springframework.web.bind.annotation.*; @@ -426,12 +432,39 @@ public class SysUserController { //导出文件名称 mv.addObject(NormalExcelConstants.FILE_NAME, "用户列表"); - mv.addObject(NormalExcelConstants.CLASS, SysUser.class); - LoginUser user = (LoginUser) SecurityUtils.getSubject().getPrincipal(); - ExportParams exportParams = new ExportParams("用户列表数据", "导出人:"+user.getRealname(), "导出信息"); - exportParams.setImageBasePath(upLoadPath); - mv.addObject(NormalExcelConstants.PARAMS, exportParams); - mv.addObject(NormalExcelConstants.DATA_LIST, pageList); + if("en".equals(sysUser.getCut())){ + List result = new ArrayList<>(); + pageList.forEach(item->{ + List departList = sysDepartService.queryByDepartCode(item.getOrgCode()); + if(CollectionUtil.isNotEmpty(departList)){ + item.setOrgCodeTxt(departList.get(0).getDepartName()); + } + SysUserExportEn target = new SysUserExportEn(); + BeanUtils.copyProperties(item, target); + result.add(target); + }); + mv.addObject(NormalExcelConstants.CLASS, SysUserExportEn.class); +// LoginUser user = (LoginUser) SecurityUtils.getSubject().getPrincipal(); +// ExportParams exportParams = new ExportParams("用户列表数据", "导出人:"+user.getRealname(), "导出信息"); + ExportParams exportParams = new ExportParams("user list data", "export information", ExcelType.XSSF); + exportParams.setImageBasePath(upLoadPath); + mv.addObject(NormalExcelConstants.PARAMS, exportParams); + mv.addObject(NormalExcelConstants.DATA_LIST, result); + }else{ + pageList.forEach(item->{ + List departList = sysDepartService.queryByDepartCode(item.getOrgCode()); + if(CollectionUtil.isNotEmpty(departList)){ + item.setOrgCodeTxt(departList.get(0).getDepartName()); + } + }); + mv.addObject(NormalExcelConstants.CLASS, SysUser.class); +// LoginUser user = (LoginUser) SecurityUtils.getSubject().getPrincipal(); +// ExportParams exportParams = new ExportParams("用户列表数据", "导出人:"+user.getRealname(), "导出信息"); + ExportParams exportParams = new ExportParams("用户列表数据", "导出信息", ExcelType.XSSF); + exportParams.setImageBasePath(upLoadPath); + mv.addObject(NormalExcelConstants.PARAMS, exportParams); + mv.addObject(NormalExcelConstants.DATA_LIST, pageList); + } return mv; } @@ -650,7 +683,7 @@ public class SysUserController { /** * 部门用户列表 */ - @ApiOperation(value = "用户管理-查询组织下的用户列表") + @ApiOperation(value = "用户管理-查询组织下的用户列表分页") @RequestMapping(value = "/departUserList", method = RequestMethod.GET) @RequiresPermissions("sys:user:list") public Result> departUserList(@RequestParam(name="pageNo", defaultValue="1") Integer pageNo, @@ -658,8 +691,7 @@ public class SysUserController { Result> result = new Result>(); Page page = new Page(pageNo, pageSize); String depId = req.getParameter("depId"); -// String username = req.getParameter("username"); - String username = null; + String username = req.getParameter("username"); //根据部门ID查询,当前和下级所有的部门IDS List subDepids = new ArrayList<>(); //部门id为空时,查询我的部门下所有用户 @@ -1331,4 +1363,40 @@ public class SysUserController { sysUserService.updateById(user); return Result.OK("手机号设置成功!"); } + + /** + * 查询数据 查出所有部门及其用户,并以树结构数据格式响应给前端 + * + * @return + */ + @RequestMapping(value = "/queryDepartUserTreeList", method = RequestMethod.GET) + public Result> queryDepartUserTreeList() { + Result> result = new Result<>(); + try { + List departTreeModelList = sysDepartService.queryTreeList(); + List departUserTreeModelList = new ArrayList<>(); + departTreeModelList.forEach(item->{ + //复制 + SysDepartUserTreeModel target = new SysDepartUserTreeModel(); + BeanUtils.copyProperties(item, target); + //添加当前部门的用户列表,不包括子部门 + List departIds = new ArrayList<>(); + departIds.add(item.getId()); + List sysUserList = sysUserService.getUserListByDepIds(departIds); + List sysUserTreeModels = new ArrayList<>(); + sysUserList.forEach(sysUser->{ + SysUserTreeModel sysUserTreeModel = new SysUserTreeModel(); + BeanUtils.copyProperties(sysUser, sysUserTreeModel); + sysUserTreeModels.add(sysUserTreeModel); + }); + target.setList(sysUserTreeModels); + departUserTreeModelList.add(target); + }); + result.setResult(departUserTreeModelList); + result.setSuccess(true); + } catch (Exception e) { + log.error(e.getMessage(),e); + } + return result; + } } diff --git a/jero-boot/jero-boot-module-system/src/main/java/com/jero/modules/system/entity/SysDepart.java b/jero-boot/jero-boot-module-system/src/main/java/com/jero/modules/system/entity/SysDepart.java index 894fd5410..6e19e4755 100644 --- a/jero-boot/jero-boot-module-system/src/main/java/com/jero/modules/system/entity/SysDepart.java +++ b/jero-boot/jero-boot-module-system/src/main/java/com/jero/modules/system/entity/SysDepart.java @@ -88,6 +88,11 @@ public class SysDepart implements Serializable { @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss") @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss") private Date updateTime; + + @TableField(exist = false) + private String cut; //中英文切换标识 + + /** * 重写equals方法 */ diff --git a/jero-boot/jero-boot-module-system/src/main/java/com/jero/modules/system/entity/SysDepartExportEn.java b/jero-boot/jero-boot-module-system/src/main/java/com/jero/modules/system/entity/SysDepartExportEn.java new file mode 100644 index 000000000..1db3aa84f --- /dev/null +++ b/jero-boot/jero-boot-module-system/src/main/java/com/jero/modules/system/entity/SysDepartExportEn.java @@ -0,0 +1,43 @@ +package com.jero.modules.system.entity; + +import com.baomidou.mybatisplus.annotation.TableField; +import lombok.Data; +import org.jeecgframework.poi.excel.annotation.Excel; + +import java.io.Serializable; + +/** + * @Author: liyawei + * @Description: + * @Date: Created in 14:11 2022/3/4 + */ +@Data +public class SysDepartExportEn implements Serializable { + private static final long serialVersionUID = 1L; + + /** + * 机构/部门名称 + */ + @Excel(name = "depart name", width = 15) + private String departName; + + @Excel(name = "parent depart name", width = 30) + @TableField(exist = false) + private String parentName; + /** + * 机构编码 + */ + @Excel(name = "depart code", width = 15) + private String orgCode; + /** + * 机构类别 1公司,2组织机构,2岗位 + */ + @Excel(name = "depart type", width = 15, dicCode = "org_category") + private String orgCategory; + /** + * 排序 + */ + @Excel(name = "order", width = 15) + private Integer departOrder; + +} diff --git a/jero-boot/jero-boot-module-system/src/main/java/com/jero/modules/system/entity/SysRole.java b/jero-boot/jero-boot-module-system/src/main/java/com/jero/modules/system/entity/SysRole.java index 86d2ae021..c850e73e9 100644 --- a/jero-boot/jero-boot-module-system/src/main/java/com/jero/modules/system/entity/SysRole.java +++ b/jero-boot/jero-boot-module-system/src/main/java/com/jero/modules/system/entity/SysRole.java @@ -1,19 +1,17 @@ package com.jero.modules.system.entity; -import java.io.Serializable; -import java.time.LocalDateTime; -import java.util.Date; - -import org.jeecgframework.poi.excel.annotation.Excel; -import org.springframework.format.annotation.DateTimeFormat; - import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableId; import com.fasterxml.jackson.annotation.JsonFormat; - import lombok.Data; import lombok.EqualsAndHashCode; import lombok.experimental.Accessors; +import org.jeecgframework.poi.excel.annotation.Excel; +import org.springframework.format.annotation.DateTimeFormat; + +import java.io.Serializable; +import java.util.Date; /** *

@@ -88,5 +86,6 @@ public class SysRole implements Serializable { */ private Integer roleOrder; - + @TableField(exist = false) + private String cut; //中英文切换标识 } diff --git a/jero-boot/jero-boot-module-system/src/main/java/com/jero/modules/system/entity/SysRoleExportEn.java b/jero-boot/jero-boot-module-system/src/main/java/com/jero/modules/system/entity/SysRoleExportEn.java new file mode 100644 index 000000000..454e8ed16 --- /dev/null +++ b/jero-boot/jero-boot-module-system/src/main/java/com/jero/modules/system/entity/SysRoleExportEn.java @@ -0,0 +1,36 @@ +package com.jero.modules.system.entity; + +import lombok.Data; +import org.jeecgframework.poi.excel.annotation.Excel; + +import java.io.Serializable; + +/** + * @Author: liyawei + * @Description: + * @Date: Created in 14:10 2022/3/4 + */ +@Data +public class SysRoleExportEn implements Serializable { + + private static final long serialVersionUID = 1L; + + /** + * 角色名称 + */ + @Excel(name="role name",width=15) + private String roleName; + + /** + * 角色编码 + */ + @Excel(name="role code",width=15) + private String roleCode; + + /** + * 描述 + */ + @Excel(name="description",width=60) + private String description; + +} diff --git a/jero-boot/jero-boot-module-system/src/main/java/com/jero/modules/system/entity/SysUser.java b/jero-boot/jero-boot-module-system/src/main/java/com/jero/modules/system/entity/SysUser.java index ef358a6cd..ce1f0c578 100644 --- a/jero-boot/jero-boot-module-system/src/main/java/com/jero/modules/system/entity/SysUser.java +++ b/jero-boot/jero-boot-module-system/src/main/java/com/jero/modules/system/entity/SysUser.java @@ -1,6 +1,7 @@ package com.jero.modules.system.entity; import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableLogic; import com.fasterxml.jackson.annotation.JsonFormat; @@ -98,10 +99,6 @@ public class SysUser implements Serializable { */ private String orgCode; - /**部门名称*/ - @Excel(name = "部门", width = 15) - private transient String orgCodeTxt; - /** * 删除状态(0,正常,1已删除) */ @@ -172,10 +169,17 @@ public class SysUser implements Serializable { @Dict(dicCode = "worker_type") private String workerType;//员工种类(1-正式工,2-临时工) + /**部门名称*/ + @Excel(name = "部门", width = 15) + private transient String orgCodeTxt; + /** * 状态(1:正常 2:冻结 ) */ @Excel(name = "状态", width = 15,dicCode="user_status") @Dict(dicCode = "user_status") private Integer status; + + @TableField(exist = false) + private String cut; //中英文切换标识 } diff --git a/jero-boot/jero-boot-module-system/src/main/java/com/jero/modules/system/entity/SysUserExportEn.java b/jero-boot/jero-boot-module-system/src/main/java/com/jero/modules/system/entity/SysUserExportEn.java new file mode 100644 index 000000000..1a9ab5bd6 --- /dev/null +++ b/jero-boot/jero-boot-module-system/src/main/java/com/jero/modules/system/entity/SysUserExportEn.java @@ -0,0 +1,48 @@ +package com.jero.modules.system.entity; + +import lombok.Data; +import org.jeecgframework.poi.excel.annotation.Excel; + +import java.io.Serializable; + +/** + * @Author: liyawei + * @Description: + * @Date: Created in 14:03 2022/3/4 + */ +@Data +public class SysUserExportEn implements Serializable { + + private static final long serialVersionUID = 1L; + + /** + * 登录账号 + */ + @Excel(name = "user name", width = 15) + private String username; + + /** + * 真实姓名 + */ + @Excel(name = "real name", width = 15) + private String realname; + + /** + * 工号,唯一键 + */ + @Excel(name = "worker number", width = 15) + private String workNo; + + @Excel(name = "worker type", width = 15, dicCode = "worker_type") + private String workerType;//员工种类(1-正式工,2-临时工) + + /**部门名称*/ + @Excel(name = "depart name", width = 15) + private transient String orgCodeTxt; + + /** + * 状态(1:正常 2:冻结 ) + */ + @Excel(name = "user status", width = 15,dicCode="user_status") + private Integer status; +} diff --git a/jero-boot/jero-boot-module-system/src/main/java/com/jero/modules/system/mapper/xml/SysUserMapper.xml b/jero-boot/jero-boot-module-system/src/main/java/com/jero/modules/system/mapper/xml/SysUserMapper.xml index 5c30a3c1a..656367e7d 100644 --- a/jero-boot/jero-boot-module-system/src/main/java/com/jero/modules/system/mapper/xml/SysUserMapper.xml +++ b/jero-boot/jero-boot-module-system/src/main/java/com/jero/modules/system/mapper/xml/SysUserMapper.xml @@ -53,7 +53,19 @@ ) - and username = #{username} + and username like concat(concat('%',#{username}),'%') + + + + + diff --git a/jero-boot/jero-boot-module-system/src/main/java/com/jero/modules/system/service/ISysUserService.java b/jero-boot/jero-boot-module-system/src/main/java/com/jero/modules/system/service/ISysUserService.java index 815a17cf6..9ff9bc95f 100644 --- a/jero-boot/jero-boot-module-system/src/main/java/com/jero/modules/system/service/ISysUserService.java +++ b/jero-boot/jero-boot-module-system/src/main/java/com/jero/modules/system/service/ISysUserService.java @@ -1,22 +1,20 @@ package com.jero.modules.system.service; -import java.util.List; -import java.util.Map; -import java.util.Set; - import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; - +import com.baomidou.mybatisplus.extension.service.IService; import com.jero.common.api.vo.Result; import com.jero.common.system.vo.SysUserCacheInfo; import com.jero.modules.system.entity.SysUser; - -import com.baomidou.mybatisplus.extension.service.IService; import com.jero.modules.system.model.SysUserSysDepartModel; import org.springframework.transaction.annotation.Transactional; +import java.util.List; +import java.util.Map; +import java.util.Set; + /** *

* 用户表 服务类 @@ -105,6 +103,7 @@ public interface ISysUserService extends IService { */ public IPage getUserByDepIds(Page page, List departIds, String username); + List getUserListByDepIds(List departIds); /** * 部门下用户 * @param departIds