From 358081e37e1469df80bca1a80b6f56c59825d3b8 Mon Sep 17 00:00:00 2001 From: anthonywj Date: Wed, 2 Aug 2023 12:46:13 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E6=AF=8F=E6=97=A5=E6=B1=87?= =?UTF-8?q?=E6=80=BB=E6=B5=8B=E8=AF=95=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../glxp/api/controller/TestController.java | 28 ++++++ .../glxp/api/task/TestStatOrderService.java | 88 +++++++++++++++++++ 2 files changed, 116 insertions(+) create mode 100644 src/main/java/com/glxp/api/controller/TestController.java create mode 100644 src/main/java/com/glxp/api/task/TestStatOrderService.java diff --git a/src/main/java/com/glxp/api/controller/TestController.java b/src/main/java/com/glxp/api/controller/TestController.java new file mode 100644 index 000000000..794044c16 --- /dev/null +++ b/src/main/java/com/glxp/api/controller/TestController.java @@ -0,0 +1,28 @@ +package com.glxp.api.controller; + +import com.glxp.api.common.res.BaseResponse; +import com.glxp.api.common.util.ResultVOUtils; +import com.glxp.api.req.sync.BasicExportStatusRequest; +import com.glxp.api.task.TestStatOrderService; +import lombok.extern.slf4j.Slf4j; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RestController; + +import javax.annotation.Resource; + +@Slf4j +@RestController +public class TestController { + @Resource + TestStatOrderService statOrderService; + + + @GetMapping("/test/stat/order") + public BaseResponse getStatus(BasicExportStatusRequest basicExportStatusRequest) { + long start = System.currentTimeMillis(); + statOrderService.starGen(start); + long end = System.currentTimeMillis(); + return ResultVOUtils.success("生成成功!" + start + "=====" + end + "\n-------" + (start - end)); + } + +} diff --git a/src/main/java/com/glxp/api/task/TestStatOrderService.java b/src/main/java/com/glxp/api/task/TestStatOrderService.java new file mode 100644 index 000000000..50928fb5a --- /dev/null +++ b/src/main/java/com/glxp/api/task/TestStatOrderService.java @@ -0,0 +1,88 @@ +package com.glxp.api.task; + +import com.glxp.api.service.inout.IoStatDayService; +import com.glxp.api.service.inout.IoStatMonthService; +import com.glxp.api.service.inout.IoStatQuarterService; +import com.glxp.api.service.inout.IoStatYearService; +import com.glxp.api.util.MsDateUtil; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Service; + +import javax.annotation.Resource; +import java.util.Date; + +@Slf4j +@Service +public class TestStatOrderService { + @Resource + private IoStatDayService statDayService; + @Resource + private IoStatMonthService statMonthService; + @Resource + private IoStatQuarterService statQuarterService; + @Resource + private IoStatYearService statYearService; + + + public void starGen(Long starTime) { + if (starTime == null) { + starTime = 1684252800000L; + } + Long oneDay = 1000 * 60 * 60 * 24L;//One Day TimeStamp + Long endTime = new Date().getTime(); + while (starTime <= endTime) { + Date today = new Date(starTime); + genStat(today); + starTime += oneDay; + } + } + + + public void genStat(Date today) { + if (MsDateUtil.isYearStart(today)) { + //年初第一天,依次生成 日 -> 月 -> 季度 -> 年度 汇总数据 + log.info("开始生成每日物资出入库汇总数据"); + statDayService.statData(today); + log.info("每日物资出入库数据汇总生成结束"); + + log.info("本日为月初,生成月度物资出入库汇总数据"); + statMonthService.statData(today); + log.info("月度物资出入库汇总数据生成结束"); + + log.info("本日为季初,生成季度物资出入库汇总数据"); + statQuarterService.statData(today); + log.info("季度物资出入库汇总数据生成结束"); + + log.info("本日为年初,生成年度物资出入库汇总数据"); + statYearService.statData(today); + log.info("年度物资出入库汇总数据生成结束"); + } else if (MsDateUtil.isQuarterStart(today)) { + //季度第一天,依次生成 日 -> 月 -> 季度 汇总数据 + log.info("开始生成每日物资出入库汇总数据"); + statDayService.statData(today); + log.info("每日物资出入库数据汇总生成结束"); + + log.info("本日为月初,生成月度物资出入库汇总数据"); + statMonthService.statData(today); + log.info("月度物资出入库汇总数据生成结束"); + + log.info("本日为季初,生成季度物资出入库汇总数据"); + statQuarterService.statData(today); + log.info("季度物资出入库汇总数据生成结束"); + } else if (MsDateUtil.isMonthStart(today)) { + //月度第一天,依次生成 日 -> 月 汇总数据 + log.info("开始生成每日物资出入库汇总数据"); + statDayService.statData(today); + log.info("每日物资出入库数据汇总生成结束"); + + log.info("本日为月初,生成月度物资出入库汇总数据"); + statMonthService.statData(today); + log.info("月度物资出入库汇总数据生成结束"); + } else { + //生成日汇总数据 + log.info("开始生成每日物资出入库汇总数据"); + statDayService.statData(today); + log.info("每日物资出入库数据汇总生成结束"); + } + } +}