1. 完成所有导出的功能

This commit is contained in:
YunaiV
2021-01-15 01:54:36 +08:00
parent d8a52a8c61
commit c3df5bc62f
35 changed files with 326 additions and 330 deletions

View File

@@ -89,10 +89,10 @@ public class SysPostController {
// @PreAuthorize("@ss.hasPermi('system:post:export')")
public void export(HttpServletResponse response, @Validated SysPostExportReqVO reqVO) throws IOException {
List<SysPostDO> posts = postService.listPosts(reqVO);
List<SysPostExcelVO> excelPosts = SysPostConvert.INSTANCE.convertList03(posts);
List<SysPostExcelVO> excelDataList = SysPostConvert.INSTANCE.convertList03(posts);
// 输出
ExcelUtils.write(response, "岗位数据.xls", "岗位列表",
SysPostExcelVO.class, excelPosts);
SysPostExcelVO.class, excelDataList);
}
}

View File

@@ -1,12 +1,8 @@
package cn.iocoder.dashboard.modules.system.controller.dept.vo.post;
import cn.iocoder.dashboard.framework.excel.core.annotations.DictFormat;
import cn.iocoder.dashboard.framework.excel.core.convert.DictConvert;
import com.alibaba.excel.annotation.ExcelProperty;
import lombok.Data;
import static cn.iocoder.dashboard.modules.system.enums.dict.DictTypeEnum.SYS_COMMON_STATUS;
/**
* 岗位 Excel 导出响应 VO
*/
@@ -25,8 +21,9 @@ public class SysPostExcelVO {
@ExcelProperty("岗位排序")
private String sort;
@ExcelProperty(value = "状态", converter = DictConvert.class)
@DictFormat(SYS_COMMON_STATUS)
// @ExcelProperty(value = "状态", converter = DictConvert.class)
// @DictFormat(SYS_COMMON_STATUS)
@ExcelProperty(value = "状态")
private String status;
}

View File

@@ -2,6 +2,7 @@ package cn.iocoder.dashboard.modules.system.controller.dict;
import cn.iocoder.dashboard.common.pojo.CommonResult;
import cn.iocoder.dashboard.common.pojo.PageResult;
import cn.iocoder.dashboard.framework.excel.core.util.ExcelUtils;
import cn.iocoder.dashboard.modules.system.controller.dict.vo.data.*;
import cn.iocoder.dashboard.modules.system.convert.dict.SysDictDataConvert;
import cn.iocoder.dashboard.modules.system.dal.mysql.dataobject.dict.SysDictDataDO;
@@ -13,6 +14,8 @@ import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.util.List;
import static cn.iocoder.dashboard.common.pojo.CommonResult.success;
@@ -25,8 +28,8 @@ public class SysDictDataController {
@Resource
private SysDictDataService dictDataService;
@GetMapping("/list-all-simple")
@ApiOperation(value = "获得全部字典数据列表", notes = "一般用于管理后台缓存字典数据在本地")
@GetMapping("/list-all-simple")
// 无需添加权限认证,因为前端全局都需要
public CommonResult<List<SysDictDataSimpleVO>> listSimpleDictDatas() {
List<SysDictDataDO> list = dictDataService.listDictDatas();
@@ -75,14 +78,16 @@ public class SysDictDataController {
return success(true);
}
@ApiOperation("导出字典数据")
@GetMapping("/export")
// @Log(title = "字典类型", businessType = BusinessType.EXPORT)
// @PreAuthorize("@ss.hasPermi('system:dict:export')")
// @GetMapping("/export")
// public AjaxResult export(SysDictType dictType) {
// List<SysDictType> list = dictTypeService.selectDictTypeList(dictType);
// ExcelUtil<SysDictType> util = new ExcelUtil<SysDictType>(SysDictType.class);
// return util.exportExcel(list, "字典类型");
// }
public void export(HttpServletResponse response, @Validated SysDictDataExportReqVO reqVO) throws IOException {
List<SysDictDataDO> list = dictDataService.listDictDatas(reqVO);
List<SysDictDataExcelVO> excelDataList = SysDictDataConvert.INSTANCE.convertList02(list);
// 输出
ExcelUtils.write(response, "字典数据.xls", "数据列表",
SysDictDataExcelVO.class, excelDataList);
}
}

View File

@@ -2,6 +2,7 @@ package cn.iocoder.dashboard.modules.system.controller.dict;
import cn.iocoder.dashboard.common.pojo.CommonResult;
import cn.iocoder.dashboard.common.pojo.PageResult;
import cn.iocoder.dashboard.framework.excel.core.util.ExcelUtils;
import cn.iocoder.dashboard.modules.system.controller.dict.vo.type.*;
import cn.iocoder.dashboard.modules.system.convert.dict.SysDictTypeConvert;
import cn.iocoder.dashboard.modules.system.dal.mysql.dataobject.dict.SysDictTypeDO;
@@ -13,6 +14,8 @@ import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.util.List;
import static cn.iocoder.dashboard.common.pojo.CommonResult.success;
@@ -76,14 +79,16 @@ public class SysDictTypeController {
return success(SysDictTypeConvert.INSTANCE.convertList(list));
}
//
@ApiOperation("导出数据类型")
@GetMapping("/export")
// @Log(title = "字典类型", businessType = BusinessType.EXPORT)
// @PreAuthorize("@ss.hasPermi('system:dict:export')")
// @GetMapping("/export")
// public AjaxResult export(SysDictType dictType) {
// List<SysDictType> list = dictTypeService.selectDictTypeList(dictType);
// ExcelUtil<SysDictType> util = new ExcelUtil<SysDictType>(SysDictType.class);
// return util.exportExcel(list, "字典类型");
// }
public void export(HttpServletResponse response, @Validated SysDictTypeExportReqVO reqVO) throws IOException {
List<SysDictTypeDO> list = dictTypeService.listDictTypes(reqVO);
List<SysDictTypeExcelVO> excelTypeList = SysDictTypeConvert.INSTANCE.convertList02(list);
// 输出
ExcelUtils.write(response, "字典类型.xls", "类型列表",
SysDictTypeExcelVO.class, excelTypeList);
}
}

View File

@@ -0,0 +1,24 @@
package cn.iocoder.dashboard.modules.system.controller.dict.vo.data;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import javax.validation.constraints.Size;
@ApiModel("字典类型导出 Request VO")
@Data
public class SysDictDataExportReqVO {
@ApiModelProperty(value = "字典标签", example = "芋道")
@Size(max = 100, message = "字典标签长度不能超过100个字符")
private String label;
@ApiModelProperty(value = "字典类型", example = "sys_common_sex", notes = "模糊匹配")
@Size(max = 100, message = "字典类型类型长度不能超过100个字符")
private String dictType;
@ApiModelProperty(value = "展示状态", example = "1", notes = "参见 SysCommonStatusEnum 枚举类")
private Integer status;
}

View File

@@ -0,0 +1,35 @@
package cn.iocoder.dashboard.modules.system.controller.dict.vo.type;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;
import javax.validation.constraints.Size;
import java.util.Date;
import static cn.iocoder.dashboard.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND;
@ApiModel("字典类型分页列表 Request VO")
@Data
public class SysDictTypeExportReqVO {
@ApiModelProperty(value = "字典类型名称", example = "芋道", notes = "模糊匹配")
private String name;
@ApiModelProperty(value = "字典类型", example = "sys_common_sex", notes = "模糊匹配")
@Size(max = 100, message = "字典类型类型长度不能超过100个字符")
private String type;
@ApiModelProperty(value = "展示状态", example = "1", notes = "参见 SysCommonStatusEnum 枚举类")
private Integer status;
@ApiModelProperty(value = "开始时间", example = "2020-10-24")
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
private Date beginTime;
@ApiModelProperty(value = "结束时间", example = "2020-10-24")
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
private Date endTime;
}

View File

@@ -4,6 +4,7 @@ import cn.iocoder.dashboard.common.pojo.PageParam;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.springframework.format.annotation.DateTimeFormat;
import javax.validation.constraints.Size;
@@ -13,6 +14,7 @@ import static cn.iocoder.dashboard.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOU
@ApiModel("字典类型分页列表 Request VO")
@Data
@EqualsAndHashCode(callSuper = true)
public class SysDictTypePageReqVO extends PageParam {
@ApiModelProperty(value = "字典类型名称", example = "芋道", notes = "模糊匹配")

View File

@@ -3,6 +3,7 @@ package cn.iocoder.dashboard.modules.system.controller.permission;
import cn.iocoder.dashboard.common.enums.CommonStatusEnum;
import cn.iocoder.dashboard.common.pojo.CommonResult;
import cn.iocoder.dashboard.common.pojo.PageResult;
import cn.iocoder.dashboard.framework.excel.core.util.ExcelUtils;
import cn.iocoder.dashboard.modules.system.controller.permission.vo.role.*;
import cn.iocoder.dashboard.modules.system.convert.permission.SysRoleConvert;
import cn.iocoder.dashboard.modules.system.dal.mysql.dataobject.permission.SysRoleDO;
@@ -14,6 +15,8 @@ import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.util.Collections;
import java.util.Comparator;
import java.util.List;
@@ -80,16 +83,6 @@ public class SysRoleController {
return success(SysRoleConvert.INSTANCE.convert(role));
}
// @Log(title = "角色管理", businessType = BusinessType.EXPORT)
// @PreAuthorize("@ss.hasPermi('system:role:export')")
// @GetMapping("/export")
// public AjaxResult export(SysRole role)
// {
// List<SysRole> list = roleService.selectRoleList(role);
// ExcelUtil<SysRole> util = new ExcelUtil<SysRole>(SysRole.class);
// return util.exportExcel(list, "角色数据");
// }
@ApiOperation("修改角色状态")
@PostMapping("/update-status")
// @PreAuthorize("@ss.hasPermi('system:role:edit')")
@@ -99,4 +92,15 @@ public class SysRoleController {
return success(true);
}
@GetMapping("/export")
// @Log(title = "角色管理", businessType = BusinessType.EXPORT)
// @PreAuthorize("@ss.hasPermi('system:role:export')")
public void export(HttpServletResponse response, @Validated SysRoleExportReqVO reqVO) throws IOException {
List<SysRoleDO> list = roleService.listRoles(reqVO);
List<SysRoleExcelVO> excelDataList = SysRoleConvert.INSTANCE.convertList03(list);
// 输出
ExcelUtils.write(response, "角色数据.xls", "角色列表",
SysRoleExcelVO.class, excelDataList);
}
}

View File

@@ -1,30 +0,0 @@
package cn.iocoder.dashboard.modules.system.controller.permission.vo.role;
import cn.iocoder.dashboard.framework.excel.Excel;
import lombok.Data;
/**
* 角色 Excel 导出响应 VO
*/
@Data
public class SysRoleExcelRespVO {
@Excel(name = "角色序号", cellType = Excel.ColumnType.NUMERIC)
private Long id;
@Excel(name = "角色名称")
private String name;
@Excel(name = "角色标志")
private String code;
@Excel(name = "角色排序")
private Integer sort;
@Excel(name = "数据范围", readConverterExp = "1=所有数据权限,2=自定义数据权限,3=本部门数据权限,4=本部门及以下数据权限")
private Integer dataScope;
@Excel(name = "角色状态", readConverterExp = "0=正常,1=停用")
private String status;
}

View File

@@ -0,0 +1,34 @@
package cn.iocoder.dashboard.modules.system.controller.permission.vo.role;
import cn.iocoder.dashboard.framework.excel.core.annotations.DictFormat;
import cn.iocoder.dashboard.framework.excel.core.convert.DictConvert;
import cn.iocoder.dashboard.modules.system.enums.dict.DictTypeEnum;
import com.alibaba.excel.annotation.ExcelProperty;
import lombok.Data;
/**
* 角色 Excel 导出响应 VO
*/
@Data
public class SysRoleExcelVO {
@ExcelProperty("角色序号")
private Long id;
@ExcelProperty("角色名称")
private String name;
@ExcelProperty("角色标志")
private String code;
@ExcelProperty("角色排序")
private Integer sort;
@ExcelProperty("数据范围")
private Integer dataScope;
@ExcelProperty(value = "角色状态", converter = DictConvert.class)
@DictFormat(DictTypeEnum.SYS_COMMON_STATUS)
private String status;
}

View File

@@ -0,0 +1,34 @@
package cn.iocoder.dashboard.modules.system.controller.permission.vo.role;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.springframework.format.annotation.DateTimeFormat;
import java.util.Date;
import static cn.iocoder.dashboard.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND;
@ApiModel("角色分页 Request VO")
@Data
public class SysRoleExportReqVO {
@ApiModelProperty(value = "角色名称", example = "芋道", notes = "模糊匹配")
private String name;
@ApiModelProperty(value = "角色标识", example = "yudao", notes = "模糊匹配")
private String code;
@ApiModelProperty(value = "展示状态", example = "1", notes = "参见 SysCommonStatusEnum 枚举类")
private Integer status;
@ApiModelProperty(value = "开始时间", example = "2020-10-24")
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
private Date beginTime;
@ApiModelProperty(value = "结束时间", example = "2020-10-24")
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
private Date endTime;
}

View File

@@ -1,52 +0,0 @@
package cn.iocoder.dashboard.modules.system.controller.user.vo.user;
import cn.iocoder.dashboard.framework.excel.Excel;
import cn.iocoder.dashboard.framework.excel.Excels;
import cn.iocoder.dashboard.modules.system.dal.mysql.dataobject.dept.SysDeptDO;
import lombok.Data;
import java.util.Date;
/**
* 用户 Excel 导出响应 VO
*/
@Data
public class SysUserExcelRespBackVO {
@Excel(name = "用户序号", cellType = Excel.ColumnType.NUMERIC, prompt = "用户编号")
private Long id;
@Excel(name = "登录名称")
private String username;
@Excel(name = "用户名称")
private String nickname;
@Excel(name = "部门编号", type = Excel.Type.IMPORT)
private Long deptId;
@Excel(name = "用户邮箱")
private String email;
@Excel(name = "手机号码")
private String mobile;
@Excel(name = "用户性别", readConverterExp = "0=男,1=女,2=未知")
private String sex;
@Excel(name = "帐号状态", readConverterExp = "0=正常,1=停用")
private Integer status;
@Excel(name = "最后登录IP", type = Excel.Type.EXPORT)
private String loginIp;
@Excel(name = "最后登录时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss", type = Excel.Type.EXPORT)
private Date loginDate;
@Excels({
@Excel(name = "部门名称", targetAttr = "deptName", type = Excel.Type.EXPORT),
@Excel(name = "部门负责人", targetAttr = "leader", type = Excel.Type.EXPORT)
})
private SysDeptDO dept;
}

View File

@@ -0,0 +1,38 @@
package cn.iocoder.dashboard.modules.system.controller.user.vo.user;
import cn.iocoder.dashboard.framework.excel.core.annotations.DictFormat;
import cn.iocoder.dashboard.framework.excel.core.convert.DictConvert;
import cn.iocoder.dashboard.modules.system.enums.dict.DictTypeEnum;
import com.alibaba.excel.annotation.ExcelProperty;
import lombok.Data;
/**
* 用户 Excel 导入 VO
*/
@Data
public class SysUserImportExcelVO {
@ExcelProperty("登录名称")
private String username;
@ExcelProperty("用户名称")
private String nickname;
@ExcelProperty("部门编号")
private Long deptId;
@ExcelProperty("用户邮箱")
private String email;
@ExcelProperty("手机号码")
private String mobile;
@ExcelProperty(value = "用户性别", converter = DictConvert.class)
@DictFormat(DictTypeEnum.SYS_USER_SEX)
private String sex;
@ExcelProperty(value = "账号状态", converter = DictConvert.class)
@DictFormat(DictTypeEnum.SYS_COMMON_STATUS)
private Integer status;
}