feat: There is no way the, 操作日志导出1年内

This commit is contained in:
super_liu
2022-06-16 17:31:08 +08:00
parent a2546f2815
commit 11de5d4c55
10 changed files with 164 additions and 8 deletions
@@ -3,12 +3,20 @@ package com.adc.da.slrs.sysLog.controller;
import com.adc.da.http.ResponseMessage;
import com.adc.da.http.Result;
import com.adc.da.slrs.sarMenu.entity.SarMenu;
import com.adc.da.slrs.sysLog.entity.SysLogExcel;
import com.adc.da.slrs.sysLog.service.ISysLogService;
import com.adc.da.slrs.sysLog.vo.SysLogReqDTO;
import com.adc.da.slrs.sysLog.vo.SysLogReqExportDTO;
import com.adc.da.util.UUIDUtils;
import com.alibaba.excel.EasyExcel;
import com.alibaba.excel.ExcelWriter;
import com.alibaba.excel.write.style.column.LongestMatchColumnWidthStyleStrategy;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import io.swagger.annotations.ApiOperation;
import org.apache.commons.lang3.StringUtils;
import org.apache.poi.util.IOUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
@@ -17,6 +25,9 @@ import io.swagger.annotations.Api;
import org.springframework.web.bind.annotation.RestController;
import com.adc.da.base.web.BaseController;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.net.URLEncoder;
import java.util.List;
/**
@@ -35,6 +46,35 @@ public class SysLogController extends BaseController<SysLog> {
@Autowired
private ISysLogService sysLogService;
@ApiOperation(value = "|SysCorpEO|导出excel")
@GetMapping(value = "/exportSysLogExcelVOExcelData")
public void exportSysLogExcelVOExcelData(String exportJson, HttpServletResponse response,
HttpServletRequest request) throws Exception {
try {
SysLogReqExportDTO sysLogExcelVO = JSONObject.parseObject(exportJson,SysLogReqExportDTO.class);
response.setContentType("application/vnd.ms-excel");
response.setCharacterEncoding("utf-8");
if(StringUtils.isBlank(sysLogExcelVO.getExportName()) || "null".equals(sysLogExcelVO.getExportName())){
sysLogExcelVO.setExportName("操作日志");
}
String fileName = URLEncoder.encode(sysLogExcelVO.getExportName(), "UTF-8").replaceAll("\\+", "%20");
response.setHeader("Content-disposition", "attachment;filename*=utf-8''" + fileName + ".xlsx");
List<SysLogExcel> data=sysLogService.getSysLogExcelVOExcelData(sysLogExcelVO);
// 这里需要设置不关闭流
EasyExcel.write(response.getOutputStream(), SysLogExcel.class)
.registerWriteHandler(new LongestMatchColumnWidthStyleStrategy())
.autoCloseStream(Boolean.FALSE).sheet("sheet1")
.doWrite(data);
} catch (Exception e) {
System.out.println(e);
// 重置response
response.reset();
response.setContentType("application/json");
response.setCharacterEncoding("utf-8");
response.getWriter().println(JSON.toJSONString(Result.error()));
}
}
@ApiOperation("获取操作日志")
@GetMapping("/getAllLog")
@@ -1,12 +1,13 @@
package com.adc.da.slrs.sysLog.dao;
import com.adc.da.slrs.sysLog.entity.SysLog;
import com.adc.da.slrs.sysLog.entity.SysLogExcel;
import com.adc.da.slrs.sysLog.vo.SysLogReqDTO;
import com.adc.da.slrs.sysLog.vo.SysLogReqExportDTO;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import org.apache.ibatis.annotations.Param;
import org.springframework.web.bind.annotation.RequestParam;
import java.util.List;
@@ -20,5 +21,7 @@ import java.util.List;
*/
public interface SysLogDao extends BaseMapper<SysLog> {
List<SysLogExcel> getSysLogExcelVOExcelData(@Param("sysLogReqDTO") SysLogReqExportDTO sysLogReqDTO);
IPage<SysLog> queryAllLog(Page page,@Param("sysLogReqDTO") SysLogReqDTO sysLogReqDTO);
}
@@ -0,0 +1,42 @@
package com.adc.da.slrs.sysLog.entity;
import com.adc.da.base.entity.BaseEntity;
import com.alibaba.excel.annotation.ExcelProperty;
import com.baomidou.mybatisplus.annotation.TableField;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import org.springframework.format.annotation.DateTimeFormat;
import java.util.Date;
/**
* <p>
*
* </p>
*
* @author yzh
* @since 2022-02-15
*/
@Data
public class SysLogExcel{
@ExcelProperty("操作人")
private String account;
@ExcelProperty("所属部门")
private String dept;
@ExcelProperty("操作时间")
private String operTime;
@ExcelProperty("操作类型")
private String oper;
@ExcelProperty("操作内容")
private String special;
}
@@ -1,11 +1,14 @@
package com.adc.da.slrs.sysLog.service;
import com.adc.da.slrs.sysLog.entity.SysLog;
import com.adc.da.slrs.sysLog.entity.SysLogExcel;
import com.adc.da.slrs.sysLog.vo.SysLogReqDTO;
import com.baomidou.mybatisplus.core.conditions.Wrapper;
import com.adc.da.slrs.sysLog.vo.SysLogReqExportDTO;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService;
import java.util.List;
/**
* <p>
* 服务类
@@ -17,4 +20,7 @@ import com.baomidou.mybatisplus.extension.service.IService;
public interface ISysLogService extends IService<SysLog> {
IPage<SysLog> getAllLog(SysLogReqDTO sysLogReqDTO);
List<SysLogExcel> getSysLogExcelVOExcelData(SysLogReqExportDTO sysLogReqDTO);
}
@@ -2,13 +2,17 @@ package com.adc.da.slrs.sysLog.service.impl;
import com.adc.da.slrs.sysLog.entity.SysLog;
import com.adc.da.slrs.sysLog.dao.SysLogDao;
import com.adc.da.slrs.sysLog.entity.SysLogExcel;
import com.adc.da.slrs.sysLog.service.ISysLogService;
import com.adc.da.slrs.sysLog.vo.SysLogReqDTO;
import com.adc.da.slrs.sysLog.vo.SysLogReqExportDTO;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springframework.stereotype.Service;
import java.util.List;
/**
* <p>
* 服务实现类
@@ -20,6 +24,11 @@ import org.springframework.stereotype.Service;
@Service
public class SysLogServiceImpl extends ServiceImpl<SysLogDao, SysLog> implements ISysLogService {
@Override
public List<SysLogExcel> getSysLogExcelVOExcelData(SysLogReqExportDTO sysLogReqDTO) {
return this.baseMapper.getSysLogExcelVOExcelData(sysLogReqDTO);
}
@Override
public IPage<SysLog> getAllLog(SysLogReqDTO sysLogReqDTO) {
Page<SysLog> page = new Page<>(sysLogReqDTO.getPage(), sysLogReqDTO.getPageSize());
@@ -15,4 +15,10 @@ public class SysLogReqDTO extends BasePage {
private String oper;
private String content;
private String exportType;
private String userId;
private String exportName;
}
@@ -0,0 +1,24 @@
package com.adc.da.slrs.sysLog.vo;
import com.adc.da.base.page.BasePage;
import lombok.Data;
@Data
public class SysLogReqExportDTO {
private String account;
private String sTime;
private String eTime;
private String oper;
private String content;
private String exportType;
private String userId;
private String exportName;
}