diff --git a/hangtag-framework/hangtag-common/src/main/java/cn/hangtag/framework/common/util/date/LocalDateTimeUtils.java b/hangtag-framework/hangtag-common/src/main/java/cn/hangtag/framework/common/util/date/LocalDateTimeUtils.java index 2f37598..5304ce3 100644 --- a/hangtag-framework/hangtag-common/src/main/java/cn/hangtag/framework/common/util/date/LocalDateTimeUtils.java +++ b/hangtag-framework/hangtag-common/src/main/java/cn/hangtag/framework/common/util/date/LocalDateTimeUtils.java @@ -7,11 +7,13 @@ import cn.hutool.core.lang.Assert; import cn.hutool.core.util.StrUtil; import cn.hangtag.framework.common.enums.DateIntervalEnum; +import java.sql.Timestamp; import java.time.*; import java.time.format.DateTimeParseException; import java.time.temporal.ChronoUnit; import java.time.temporal.TemporalAdjusters; import java.util.ArrayList; +import java.util.Date; import java.util.List; /** @@ -306,4 +308,10 @@ public class LocalDateTimeUtils { } } + public static Date toDate(LocalDateTime localDateTime){ + Timestamp timestamp = Timestamp.valueOf(localDateTime); // 直接转换为 Timestamp + Date date = new Date(timestamp.getTime()); // 使用 Timestamp 的时间戳构造 Date + return date; + } + } diff --git a/hangtag-module-oms/hangtag-module-oms-biz/src/main/java/cn/hangtag/module/oms/service/saleorder/SaleOrderServiceImpl.java b/hangtag-module-oms/hangtag-module-oms-biz/src/main/java/cn/hangtag/module/oms/service/saleorder/SaleOrderServiceImpl.java index 0840d8f..ca6db66 100644 --- a/hangtag-module-oms/hangtag-module-oms-biz/src/main/java/cn/hangtag/module/oms/service/saleorder/SaleOrderServiceImpl.java +++ b/hangtag-module-oms/hangtag-module-oms-biz/src/main/java/cn/hangtag/module/oms/service/saleorder/SaleOrderServiceImpl.java @@ -5,6 +5,7 @@ import cn.hangtag.framework.common.exception.enums.GlobalErrorCodeConstants; import cn.hangtag.framework.common.pojo.FileInfoVO; import cn.hangtag.framework.common.pojo.PageResult; import cn.hangtag.framework.common.util.FuncUtil; +import cn.hangtag.framework.common.util.date.LocalDateTimeUtils; import cn.hangtag.framework.common.util.object.BeanUtils; import cn.hangtag.framework.common.util.validation.AssertUtil; import cn.hangtag.framework.mybatis.core.dataobject.BaseDO; @@ -68,6 +69,7 @@ import cn.hangtag.module.system.service.mail.MailSendService; import cn.hangtag.module.system.service.user.AdminUserService; import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.collection.CollUtil; +import cn.hutool.core.date.DateField; import cn.hutool.core.date.DateTime; import cn.hutool.core.date.DateUtil; import cn.hutool.core.date.LocalDateTimeUtil; @@ -833,19 +835,21 @@ public class SaleOrderServiceImpl implements SaleOrderService { // 查询对照数据 LocalDateTime referenceEndTime = reqVO.getBeginTime().minusDays(1); LocalDateTime referenceBeginTime = referenceEndTime.minus(Duration.between(reqVO.getBeginTime(), reqVO.getEndTime())); -// if(reqVO.getType() == 7){//周 -// referenceEndTime = DateUtil.beginOfWeek(new Date()).toLocalDateTime(); -// referenceBeginTime = DateUtil.endOfWeek(new Date()).toLocalDateTime(); -// }else if(reqVO.getType() == 30){//月 -// referenceEndTime = DateUtil.beginOfMonth(new Date()).toLocalDateTime(); -// referenceBeginTime = DateUtil.endOfMonth(new Date()).toLocalDateTime(); -// }else if(reqVO.getType() == 365){//年 -// referenceEndTime = DateUtil.beginOfYear(new Date()).toLocalDateTime(); -// referenceBeginTime = DateUtil.endOfYear(new Date()).toLocalDateTime(); -// } + if(reqVO.getType() == 7){//周 + referenceEndTime = DateUtil.beginOfWeek(DateUtil.offsetWeek(new Date(),-1)).toLocalDateTime(); + referenceBeginTime = DateUtil.endOfWeek(DateUtil.offsetWeek(new Date(),-1)).toLocalDateTime(); + }else if(reqVO.getType() == 30){//月 + referenceEndTime = DateUtil.beginOfMonth(DateUtil.offsetMonth(new Date(),-1)).toLocalDateTime(); + referenceBeginTime = DateUtil.endOfMonth(DateUtil.offsetMonth(new Date(),-1)).toLocalDateTime(); + }else if(reqVO.getType() == 365){//年 + referenceEndTime = DateUtil.beginOfYear(DateUtil.offset(new Date(), DateField.YEAR,-1)).toLocalDateTime(); + referenceBeginTime = DateUtil.endOfYear(DateUtil.offset(new Date(), DateField.YEAR,-1)).toLocalDateTime(); + } + List reference = new ArrayList<>(); + if(reqVO.getType()>1){ + reference = getOrderCountTrend(reqVO.getType(), referenceBeginTime, referenceEndTime); + } - - List reference = getOrderCountTrend(reqVO.getType(), referenceBeginTime, referenceEndTime); // 顺序对比返回 List> collect = IntStream.range(0, value.size()) .mapToObj(index -> new DataComparisonRespVO() @@ -854,10 +858,24 @@ public class SaleOrderServiceImpl implements SaleOrderService { .collect(Collectors.toList()); // 降序排序 - collect.sort(Comparator.comparing( - vo -> DateUtil.parseDate(vo.getValue().getDate()), // 根据实际字段调整 - Comparator.reverseOrder() - )); + if(!collect.isEmpty()){ + boolean flag = true; + String date = collect.get(0).getValue().getDate(); + if(StringUtils.isNotBlank(date) && date.length()>7){ + flag = false; + } + if(flag) {//年 + collect.sort(Comparator.comparing( + vo -> DateUtil.parseDate(vo.getValue().getDate()+"-01"), // 根据实际字段调整 + Comparator.reverseOrder() + )); + }else { + collect.sort(Comparator.comparing( + vo -> DateUtil.parseDate(vo.getValue().getDate()), // 根据实际字段调整 + Comparator.reverseOrder() + )); + } + } return collect; }