package com.yssh.controller;
|
|
import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport;
|
import com.yssh.entity.xls.XlsReport;
|
import com.yssh.mapper.XlsReportMapper;
|
import com.yssh.service.XlsReportService;
|
import com.yssh.utils.DateUtils;
|
import com.yssh.utils.Result;
|
import io.swagger.annotations.Api;
|
import io.swagger.annotations.ApiOperation;
|
import org.springframework.format.annotation.DateTimeFormat;
|
import org.springframework.web.bind.annotation.GetMapping;
|
import org.springframework.web.bind.annotation.RequestMapping;
|
import org.springframework.web.bind.annotation.RequestParam;
|
import org.springframework.web.bind.annotation.RestController;
|
|
import javax.annotation.Resource;
|
import javax.servlet.http.HttpServletResponse;
|
import java.util.*;
|
|
@Api(tags="Excel报告")
|
@RestController
|
@RequestMapping("/xlsReport")
|
@SuppressWarnings("rawtypes")
|
public class XlsReportController {
|
@Resource
|
XlsReportMapper xlsReportMapper;
|
|
@Resource
|
XlsReportService xlsReportService;
|
|
private static final List<String> TYPES = new ArrayList<>(Arrays.asList("day", "week", "month"));
|
|
@ApiOperationSupport(order = 1)
|
@GetMapping("/selectByPage")
|
@ApiOperation(value = "分页查询", notes = "分页查询")
|
public Result selectByPage(@RequestParam(value = "type", required = false) String type,
|
@RequestParam(value = "start", required = false) @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") Date start,
|
@RequestParam(value = "end", required = false) @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") Date end,
|
@RequestParam(value = "pageSize", required = false) Integer pageSize,
|
@RequestParam(value = "pageIndex", required = false) Integer pageIndex) {
|
if (null == type || !TYPES.contains(type)) return Result.error("类型只能为:day,week,month。");
|
|
if (null != start && null != end && start.getTime() > end.getTime()) {
|
Date tmp = start;
|
start = end;
|
end = tmp;
|
}
|
String strStart = null == start ? null : DateUtils.parseDateToStr(DateUtils.YYYY_MM_DD_HH_MM_SS, start);
|
String strEnd = null == end ? null : DateUtils.parseDateToStr(DateUtils.YYYY_MM_DD_HH_MM_SS, end);
|
|
pageSize = null == pageSize || pageSize < 1 ? 10 : pageSize;
|
pageIndex = null == pageIndex || pageIndex < 1 ? 1 : pageIndex;
|
Integer offset = pageSize * (pageIndex - 1);
|
|
Integer count = xlsReportMapper.selectReportCount(type, strStart, strEnd, pageSize, offset);
|
List<XlsReport> list = 0 == count ? null : xlsReportMapper.selectReportByPage(type, strStart, strEnd, pageSize, offset);
|
|
return Result.OK(count, list);
|
}
|
|
@ApiOperationSupport(order = 2)
|
@GetMapping("/downloadById")
|
@ApiOperation(value = "根据ID下载", notes = "根据ID下载")
|
public void downloadById(@RequestParam(value = "id", required = true) int id, HttpServletResponse res) {
|
xlsReportService.downloadById(id, res);
|
}
|
|
@ApiOperationSupport(order = 3)
|
@GetMapping("/createDayReport")
|
@ApiOperation(value = "创建日报", notes = "创建日报")
|
public Result createDayReport(@RequestParam(value = "start", required = true) @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") Date start,
|
@RequestParam(value = "end", required = true) @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") Date end) {
|
if (null != start && null != end && start.getTime() > end.getTime()) {
|
Date tmp = start;
|
start = end;
|
end = tmp;
|
}
|
|
Calendar cal = Calendar.getInstance();
|
cal.setTime(start);
|
|
while (cal.getTime().getTime() < end.getTime()) {
|
xlsReportService.createDayReport(cal.getTime());
|
cal.add(Calendar.DATE, 1);
|
}
|
|
return Result.OK("执行完毕!");
|
}
|
|
@ApiOperationSupport(order = 4)
|
@GetMapping("/createWeekReport")
|
@ApiOperation(value = "创建周报", notes = "创建周报")
|
public Result createWeekReport(@RequestParam(value = "start", required = true) @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") Date start,
|
@RequestParam(value = "end", required = true) @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") Date end) {
|
if (null != start && null != end && start.getTime() > end.getTime()) {
|
Date tmp = start;
|
start = end;
|
end = tmp;
|
}
|
|
Calendar cal = Calendar.getInstance();
|
cal.setTime(start);
|
|
while (cal.getTime().getTime() < end.getTime()) {
|
xlsReportService.createWeekReport(cal.getTime());
|
cal.add(Calendar.DATE, 7);
|
}
|
|
return Result.OK("执行完毕!");
|
}
|
|
@ApiOperationSupport(order = 5)
|
@GetMapping("/createMonthReport")
|
@ApiOperation(value = "创建月报", notes = "创建月报")
|
public Result createMonthReport(@RequestParam(value = "start", required = true) @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") Date start,
|
@RequestParam(value = "end", required = true) @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") Date end) {
|
if (null != start && null != end && start.getTime() > end.getTime()) {
|
Date tmp = start;
|
start = end;
|
end = tmp;
|
}
|
|
Calendar cal = Calendar.getInstance();
|
cal.setTime(start);
|
|
while (cal.getTime().getTime() < end.getTime()) {
|
xlsReportService.createMonthReport(cal.getTime());
|
cal.add(Calendar.MONTH, 1);
|
}
|
|
return Result.OK("执行完毕!");
|
}
|
}
|