From 453e3471e94b91169beec1e258a06a132d927011 Mon Sep 17 00:00:00 2001
From: 13693261870 <252740454@qq.com>
Date: 星期一, 02 十二月 2024 15:01:50 +0800
Subject: [PATCH] 1

---
 src/main/java/com/yssh/controller/XlsReportController.java |   86 +++++++++++++++++++++++++++++++++++++++---
 1 files changed, 79 insertions(+), 7 deletions(-)

diff --git a/src/main/java/com/yssh/controller/XlsReportController.java b/src/main/java/com/yssh/controller/XlsReportController.java
index 0fa95fd..bcef9f4 100644
--- a/src/main/java/com/yssh/controller/XlsReportController.java
+++ b/src/main/java/com/yssh/controller/XlsReportController.java
@@ -15,10 +15,8 @@
 import org.springframework.web.bind.annotation.RestController;
 
 import javax.annotation.Resource;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.Date;
-import java.util.List;
+import javax.servlet.http.HttpServletResponse;
+import java.util.*;
 
 @Api(tags="Excel鎶ュ憡")
 @RestController
@@ -31,7 +29,7 @@
     @Resource
     XlsReportService xlsReportService;
 
-    private static List<String> TYPES = new ArrayList<>(Arrays.asList("day", "week", "month"));
+    private static final List<String> TYPES = new ArrayList<>(Arrays.asList("day", "week", "month"));
 
     @ApiOperationSupport(order = 1)
     @GetMapping("/selectByPage")
@@ -55,8 +53,82 @@
         pageIndex = null == pageIndex || pageIndex < 1 ? 1 : pageIndex;
         Integer offset = pageSize * (pageIndex - 1);
 
-        List<XlsReport> list = xlsReportMapper.selectReportByPage(type, strStart, strEnd, pageSize, offset);
+        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(list);
+        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("鎵ц瀹屾瘯锛�");
     }
 }

--
Gitblit v1.9.3