yzc 2 лет назад
Родитель
Сommit
8be4b80d59

+ 22 - 21
sckw-common/sckw-common-core/src/main/java/com/sckw/core/utils/DateUtils.java

@@ -1,15 +1,11 @@
 package com.sckw.core.utils;
 
 import cn.hutool.core.date.DateUtil;
-import org.springframework.util.Assert;
 
 import java.text.DateFormat;
 import java.text.ParseException;
 import java.text.SimpleDateFormat;
-import java.time.Duration;
-import java.time.LocalDate;
-import java.time.LocalDateTime;
-import java.time.ZoneId;
+import java.time.*;
 import java.util.Calendar;
 import java.util.Date;
 import java.util.Objects;
@@ -611,32 +607,37 @@ public class DateUtils extends DateUtil {
     }
 
     /**
-     * @desc: 获取指定时间的周/月开始时间
+     * @desc: 获取指定时间的周/月开始时间
      * @author: yzc
-     * @date: 2023-09-11 16:08
-     * @Param dateType:  1周、2月
+     * @date: 2023-09-12 10:20
+     * @Param dateType:
+     * @Param time:
      * @return: java.util.Date
      */
-    public static Date getStartTimeByDateType(Integer dateType, LocalDateTime time) {
-        Assert.notNull(dateType, "获取上周/月开始时间,日期类型参数缺失");
-        Assert.notNull(time, "获取上周/月开始时间,日期类型参数缺失");
-        int days = Objects.equals(dateType, 1) ? 6 : 29;
-        LocalDateTime startTime = time.minusDays(days).with(LocalDateTime.MIN);
+    public static Date getStartTime(Integer dateType, LocalDateTime time) {
+        LocalDateTime startTime;
+        if (Objects.equals(dateType, 1)) {
+            startTime = LocalDateTime.of(time.toLocalDate().minusDays(6), LocalTime.MIN);
+        } else {
+            startTime = LocalDateTime.of(time.toLocalDate().minusMonths(1), LocalTime.MIN);
+        }
         return formatDate(startTime);
     }
 
     /**
-     * @desc: 获取指定时间的一周/月结束时间
+     * @desc: 获取周/月结束时间
      * @author: yzc
-     * @date: 2023-09-11 16:43
-     * @Param dateType: 1周、2月
+     * @date: 2023-09-12 10:21
+     * @Param dateType:
      * @return: java.util.Date
      */
-    public static Date getEndTimeByDateType(Integer dateType, LocalDateTime time) {
-        Assert.notNull(dateType, "获取上周/月结束时间,时间参数缺失");
-        Assert.notNull(time, "获取上周/月结束时间,时间参数缺失");
-        int days = Objects.equals(dateType, 1) ? 7 : 30;
-        LocalDateTime endTime = time.minusDays(days).with(LocalDateTime.MAX);
+    public static Date getLastEndTime(Integer dateType) {
+        LocalDateTime endTime;
+        if (Objects.equals(dateType, 1)) {
+            endTime = LocalDateTime.of(LocalDate.now().minusDays(7), LocalTime.MAX);
+        } else {
+            endTime = LocalDateTime.of(LocalDate.now().minusMonths(1).minusDays(1), LocalTime.MAX);
+        }
         return formatDate(endTime);
     }
 

+ 3 - 3
sckw-modules/sckw-report/src/main/java/com/sckw/report/service/KwOrderStatisticsService.java

@@ -59,9 +59,9 @@ public class KwOrderStatisticsService {
         String unit = params.getUnit();
         Integer orderType = params.getOrderType();
         Integer dateType = params.getDateType();
-        Date currentStart = DateUtils.getStartTimeByDateType(dateType, LocalDateTime.now());
-        Date lastEnd = DateUtils.getEndTimeByDateType(dateType, LocalDateTime.now());
-        Date lastStart = DateUtils.getStartTimeByDateType(dateType, DateUtils.toLocalDateTime(currentStart));
+        Date currentStart = DateUtils.getStartTime(dateType, LocalDateTime.now());
+        Date lastEnd = DateUtils.getLastEndTime(dateType);
+        Date lastStart = DateUtils.getStartTime(dateType, DateUtils.toLocalDateTime(lastEnd));
         //当前数据
         TOrderDataStsResVO currentDataSts = new TOrderDataStsResVO();
         //商品数量