This commit is contained in:
wwb 2026-03-16 17:28:19 +08:00
parent 2084896e40
commit 6a1c4a7b10
2 changed files with 42 additions and 16 deletions

View File

@ -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;
}
}

View File

@ -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<TradeOrderTrendRespVO> reference = new ArrayList<>();
if(reqVO.getType()>1){
reference = getOrderCountTrend(reqVO.getType(), referenceBeginTime, referenceEndTime);
}
List<TradeOrderTrendRespVO> reference = getOrderCountTrend(reqVO.getType(), referenceBeginTime, referenceEndTime);
// 顺序对比返回
List<DataComparisonRespVO<TradeOrderTrendRespVO>> collect = IntStream.range(0, value.size())
.mapToObj(index -> new DataComparisonRespVO<TradeOrderTrendRespVO>()
@ -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;
}