feat 岗位增加导出功能
This commit is contained in:
parent
bc2352b3de
commit
78786abb01
|
|
@ -1,5 +1,6 @@
|
|||
package com.mdd.admin.controller.system;
|
||||
|
||||
import com.alibaba.fastjson2.JSONObject;
|
||||
import com.mdd.admin.service.system.IJobsService;
|
||||
import com.mdd.common.aop.NotPower;
|
||||
import com.mdd.admin.validate.commons.IdValidate;
|
||||
|
|
@ -10,6 +11,7 @@ import com.mdd.admin.validate.system.JobsUpdateValidate;
|
|||
import com.mdd.admin.vo.system.JobsVo;
|
||||
import com.mdd.common.core.AjaxResult;
|
||||
import com.mdd.common.core.PageResult;
|
||||
import com.mdd.common.util.StringUtils;
|
||||
import com.mdd.common.validator.annotation.IDMust;
|
||||
import io.swagger.annotations.Api;
|
||||
import io.swagger.annotations.ApiOperation;
|
||||
|
|
@ -37,10 +39,20 @@ public class JobsController {
|
|||
|
||||
@GetMapping("/lists")
|
||||
@ApiOperation(value="岗位列表")
|
||||
public AjaxResult<PageResult<JobsVo>> list(@Validated PageValidate pageValidate,
|
||||
public AjaxResult<Object> list(@Validated PageValidate pageValidate,
|
||||
@Validated JobsSearchValidate searchValidate) {
|
||||
PageResult<JobsVo> list = iJobsService.list(pageValidate, searchValidate);
|
||||
return AjaxResult.success(list);
|
||||
if (StringUtils.isNotNull(searchValidate.getExport()) && searchValidate.getExport().equals(1)) {
|
||||
JSONObject ret = iJobsService.getExportData(pageValidate, searchValidate);
|
||||
return AjaxResult.success(ret);
|
||||
} else if (StringUtils.isNotNull(searchValidate.getExport()) && searchValidate.getExport().equals(2)) {
|
||||
String path = iJobsService.export(searchValidate);
|
||||
return AjaxResult.success(new JSONObject() {{
|
||||
put("url", path);
|
||||
}});
|
||||
} else {
|
||||
PageResult<JobsVo> list = iJobsService.list(pageValidate, searchValidate);
|
||||
return AjaxResult.success(list);
|
||||
}
|
||||
}
|
||||
|
||||
@GetMapping("/detail")
|
||||
|
|
|
|||
|
|
@ -1,5 +1,8 @@
|
|||
package com.mdd.admin.service.impl.system;
|
||||
|
||||
import com.alibaba.excel.EasyExcel;
|
||||
import com.alibaba.excel.support.ExcelTypeEnum;
|
||||
import com.alibaba.fastjson2.JSONObject;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||
import com.baomidou.mybatisplus.core.toolkit.Assert;
|
||||
|
|
@ -9,17 +12,23 @@ import com.mdd.admin.validate.commons.PageValidate;
|
|||
import com.mdd.admin.validate.system.JobsCreateValidate;
|
||||
import com.mdd.admin.validate.system.JobsSearchValidate;
|
||||
import com.mdd.admin.validate.system.JobsUpdateValidate;
|
||||
import com.mdd.admin.validate.user.UserSearchValidate;
|
||||
import com.mdd.admin.vo.system.JobsExportVo;
|
||||
import com.mdd.admin.vo.system.JobsVo;
|
||||
import com.mdd.admin.vo.user.UserListExportVo;
|
||||
import com.mdd.admin.vo.user.UserVo;
|
||||
import com.mdd.common.core.PageResult;
|
||||
import com.mdd.common.entity.admin.Admin;
|
||||
import com.mdd.common.entity.system.Jobs;
|
||||
import com.mdd.common.exception.OperateException;
|
||||
import com.mdd.common.mapper.admin.AdminMapper;
|
||||
import com.mdd.common.mapper.admin.JobsMapper;
|
||||
import com.mdd.common.util.TimeUtils;
|
||||
import com.mdd.common.util.*;
|
||||
import org.springframework.beans.BeanUtils;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import java.io.File;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Arrays;
|
||||
import java.util.List;
|
||||
|
|
@ -214,4 +223,80 @@ public class JobsServiceImpl implements IJobsService {
|
|||
jobsMapper.updateById(model);
|
||||
}
|
||||
|
||||
@Override
|
||||
public JSONObject getExportData(PageValidate pageValidate, JobsSearchValidate searchValidate) {
|
||||
Integer page = pageValidate.getPage_no();
|
||||
Integer limit = pageValidate.getPage_size();
|
||||
PageResult<JobsVo> userVoPageResult = this.list(pageValidate, searchValidate);
|
||||
JSONObject ret = ToolUtils.getExportData(userVoPageResult.getCount(), limit, searchValidate.getPage_start(), searchValidate.getPage_end(),"岗位记录列表");
|
||||
return ret;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String export(JobsSearchValidate searchValidate) {
|
||||
PageValidate pageValidate = new PageValidate();
|
||||
if (StringUtils.isNotNull(searchValidate.getPage_start())) {
|
||||
pageValidate.setPage_no(searchValidate.getPage_start());
|
||||
} else {
|
||||
pageValidate.setPage_no(1);
|
||||
}
|
||||
|
||||
if (StringUtils.isNotNull(searchValidate.getPage_end()) && StringUtils.isNotNull(searchValidate.getPage_size())) {
|
||||
pageValidate.setPage_size(searchValidate.getPage_end() * searchValidate.getPage_size());
|
||||
} else {
|
||||
pageValidate.setPage_size(20);
|
||||
}
|
||||
Boolean isAll = StringUtils.isNull(searchValidate.getPage_type()) || searchValidate.getPage_type().equals(0) ? true : false;
|
||||
List<JobsExportVo> excellist = this.getExcellist(isAll, pageValidate, searchValidate);
|
||||
String fileName = StringUtils.isNull(searchValidate.getFile_name()) ? ToolUtils.makeUUID() : searchValidate.getFile_name();
|
||||
String folderPath = "/excel/export/"+ TimeUtils.timestampToDay(System.currentTimeMillis() / 1000) +"/" ;
|
||||
String path = folderPath + fileName +".xlsx";
|
||||
String filePath = YmlUtils.get("like.upload-directory") + path;
|
||||
File folder = new File(YmlUtils.get("like.upload-directory") + folderPath);
|
||||
if (!folder.exists()) {
|
||||
if (!folder.mkdirs()) {
|
||||
throw new OperateException("创建文件夹失败");
|
||||
}
|
||||
}
|
||||
EasyExcel.write(filePath)
|
||||
.head(JobsExportVo.class)
|
||||
.excelType(ExcelTypeEnum.XLSX)
|
||||
.sheet("用户记录")
|
||||
.doWrite(excellist);
|
||||
return UrlUtils.toAbsoluteUrl(path);
|
||||
}
|
||||
private List<JobsExportVo> getExcellist(boolean isAll, PageValidate pageValidate, JobsSearchValidate searchValidate) {
|
||||
Integer page = pageValidate.getPage_no();
|
||||
Integer limit = pageValidate.getPage_size();
|
||||
|
||||
QueryWrapper<Jobs> queryWrapper = new QueryWrapper<>();
|
||||
queryWrapper.select(Jobs.class, info->
|
||||
!info.getColumn().equals("delete_time"))
|
||||
.isNull("delete_time")
|
||||
.orderByDesc(Arrays.asList("sort", "id"));
|
||||
|
||||
jobsMapper.setSearch(queryWrapper, searchValidate, new String[]{
|
||||
"like:code:str",
|
||||
"like:name:str",
|
||||
"=:status@status:int"
|
||||
});
|
||||
List<Jobs> jobsList = new ArrayList<>();
|
||||
if (isAll) {
|
||||
jobsList = jobsMapper.selectList(queryWrapper);
|
||||
} else {
|
||||
IPage<Jobs> iPage = jobsMapper.selectPage(new Page<>(page, limit), queryWrapper);
|
||||
jobsList = iPage.getRecords();
|
||||
}
|
||||
|
||||
List<JobsExportVo> list = new ArrayList<>();
|
||||
for (Jobs job : jobsList) {
|
||||
JobsExportVo vo = new JobsExportVo();
|
||||
BeanUtils.copyProperties(job, vo);
|
||||
vo.setStatusDesc(job.getStatus() != null && job.getStatus().intValue() == 1 ? "正常" : "停用");
|
||||
vo.setCreateTime(TimeUtils.timestampToDate(job.getCreateTime()));
|
||||
vo.setUpdateTime(TimeUtils.timestampToDate(job.getUpdateTime()));
|
||||
list.add(vo);
|
||||
}
|
||||
return list;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,5 +1,6 @@
|
|||
package com.mdd.admin.service.system;
|
||||
|
||||
import com.alibaba.fastjson2.JSONObject;
|
||||
import com.mdd.admin.validate.commons.PageValidate;
|
||||
import com.mdd.admin.validate.system.JobsCreateValidate;
|
||||
import com.mdd.admin.validate.system.JobsSearchValidate;
|
||||
|
|
@ -65,4 +66,14 @@ public interface IJobsService {
|
|||
*/
|
||||
void del(Integer id);
|
||||
|
||||
/**
|
||||
* 返回导出格式
|
||||
* @return
|
||||
*/
|
||||
JSONObject getExportData(PageValidate pageValidate, JobsSearchValidate searchValidate);
|
||||
|
||||
/**
|
||||
* 导出
|
||||
*/
|
||||
String export(JobsSearchValidate searchValidate);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -21,4 +21,21 @@ public class JobsSearchValidate implements Serializable {
|
|||
@ApiModelProperty(value = "是否停用")
|
||||
private Integer status;
|
||||
|
||||
@ApiModelProperty(value = "导出信息")
|
||||
private Integer export;
|
||||
@ApiModelProperty(value = "file_name")
|
||||
private String file_name;
|
||||
|
||||
@ApiModelProperty(value = "page_start")
|
||||
private Integer page_start;
|
||||
|
||||
@ApiModelProperty(value = "page_end")
|
||||
private Integer page_end;
|
||||
|
||||
@ApiModelProperty(value = "page_size")
|
||||
private Integer page_size;
|
||||
|
||||
@ApiModelProperty(value = "page_type")
|
||||
private Integer page_type;
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -0,0 +1,62 @@
|
|||
package com.mdd.admin.vo.system;
|
||||
|
||||
import com.alibaba.excel.annotation.ExcelProperty;
|
||||
import com.alibaba.excel.annotation.write.style.ColumnWidth;
|
||||
import io.swagger.annotations.ApiModel;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
|
||||
import java.io.Serializable;
|
||||
|
||||
@Data
|
||||
@ApiModel("系统岗位Vo")
|
||||
public class JobsExportVo implements Serializable {
|
||||
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
@ApiModelProperty(value = "主键")
|
||||
@ExcelProperty("ID")
|
||||
@ColumnWidth(50)
|
||||
private Integer id;
|
||||
|
||||
@ApiModelProperty(value = "岗位编号")
|
||||
@ExcelProperty("岗位编号")
|
||||
@ColumnWidth(50)
|
||||
private String code;
|
||||
|
||||
@ApiModelProperty(value = "岗位名称")
|
||||
@ExcelProperty("岗位名称")
|
||||
@ColumnWidth(50)
|
||||
private String name;
|
||||
|
||||
@ApiModelProperty(value = "岗位备注")
|
||||
@ExcelProperty("岗位备注")
|
||||
@ColumnWidth(50)
|
||||
private String remark;
|
||||
|
||||
@ApiModelProperty(value = "岗位排序")
|
||||
@ExcelProperty("岗位排序")
|
||||
@ColumnWidth(50)
|
||||
private Integer sort;
|
||||
|
||||
@ApiModelProperty(value = "是否停用: [0=否, 1=是]")
|
||||
@ExcelProperty("是否停用: [0=否, 1=是]")
|
||||
@ColumnWidth(50)
|
||||
private Integer status;
|
||||
|
||||
@ApiModelProperty(value = "状态描述")
|
||||
@ExcelProperty("状态描述")
|
||||
@ColumnWidth(50)
|
||||
private String statusDesc;
|
||||
|
||||
@ApiModelProperty(value = "创建时间")
|
||||
@ExcelProperty("创建时间")
|
||||
@ColumnWidth(50)
|
||||
private String createTime;
|
||||
|
||||
@ApiModelProperty(value = "更新时间")
|
||||
@ExcelProperty("更新时间")
|
||||
@ColumnWidth(50)
|
||||
private String updateTime;
|
||||
|
||||
}
|
||||
Loading…
Reference in New Issue