This commit is contained in:
wwb 2026-03-18 14:58:11 +08:00
parent c043aebe1b
commit 93a1f5c0d3
1 changed files with 41 additions and 12 deletions

View File

@ -842,24 +842,53 @@ 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(DateUtil.offsetWeek(LocalDateTimeUtils.toDate(reqVO.getBeginTime()),-1)).toLocalDateTime();
referenceBeginTime = DateUtil.endOfWeek(DateUtil.offsetWeek(LocalDateTimeUtils.toDate(reqVO.getBeginTime()),-1)).toLocalDateTime();
referenceBeginTime = DateUtil.beginOfWeek(DateUtil.offsetWeek(LocalDateTimeUtils.toDate(reqVO.getBeginTime()),-1)).toLocalDateTime();
referenceEndTime = DateUtil.endOfWeek(DateUtil.offsetWeek(LocalDateTimeUtils.toDate(reqVO.getEndTime()),-1)).toLocalDateTime();
}else if(reqVO.getType() == 30){//
referenceEndTime = DateUtil.beginOfMonth(DateUtil.offsetMonth(LocalDateTimeUtils.toDate(reqVO.getBeginTime()),-1)).toLocalDateTime();
referenceBeginTime = DateUtil.endOfMonth(DateUtil.offsetMonth(LocalDateTimeUtils.toDate(reqVO.getBeginTime()),-1)).toLocalDateTime();
referenceBeginTime = DateUtil.beginOfMonth(DateUtil.offsetMonth(LocalDateTimeUtils.toDate(reqVO.getBeginTime()),-1)).toLocalDateTime();
referenceEndTime = DateUtil.endOfMonth(DateUtil.offsetMonth(LocalDateTimeUtils.toDate(reqVO.getEndTime()),-1)).toLocalDateTime();
}else if(reqVO.getType() == 365){//
referenceEndTime = DateUtil.beginOfYear(DateUtil.offset(LocalDateTimeUtils.toDate(reqVO.getBeginTime()), DateField.YEAR,-1)).toLocalDateTime();
referenceBeginTime = DateUtil.endOfYear(DateUtil.offset(LocalDateTimeUtils.toDate(reqVO.getBeginTime()), DateField.YEAR,-1)).toLocalDateTime();
referenceBeginTime = DateUtil.beginOfYear(DateUtil.offset(LocalDateTimeUtils.toDate(reqVO.getBeginTime()), DateField.YEAR,-1)).toLocalDateTime();
referenceEndTime = DateUtil.endOfYear(DateUtil.offset(LocalDateTimeUtils.toDate(reqVO.getEndTime()), DateField.YEAR,-1)).toLocalDateTime();
}
List<DataComparisonRespVO<TradeOrderTrendRespVO>> collect = new ArrayList<>();
if(reqVO.getType()>1){
List<TradeOrderTrendRespVO> reference = getOrderCountTrend(reqVO.getType(), referenceBeginTime, referenceEndTime);
List<TradeOrderTrendRespVO> reference = getOrderCountTrend(reqVO.getType(), referenceBeginTime, referenceEndTime);
for (TradeOrderTrendRespVO tradeOrderTrendRespVO : value) {
DataComparisonRespVO<TradeOrderTrendRespVO> datas = new DataComparisonRespVO<>();
datas.setValue(tradeOrderTrendRespVO);
collect.add(datas);
}
for (DataComparisonRespVO<TradeOrderTrendRespVO> tradeOrderTrendRespVODataComparisonRespVO : collect) {
TradeOrderTrendRespVO tradeOrderTrendRespVO = tradeOrderTrendRespVODataComparisonRespVO.getValue();
String date = tradeOrderTrendRespVO.getDate();
String dates = null;
if(reqVO.getType() == 7){//
DateTime dateTime = DateUtil.offsetWeek(DateUtil.parse(date, "yyyyMMdd"), -1);
dates = DateUtil.format(dateTime,"yyyyMMdd");
}else if(reqVO.getType() == 30){//
DateTime dateTime = DateUtil.offsetMonth(DateUtil.parse(date, "yyyyMM"), -1);
dates = DateUtil.format(dateTime,"yyyyMM");
}else if(reqVO.getType() == 365) {//
DateTime dateTime = DateUtil.offset(DateUtil.parse(date, "yyyy"),DateField.YEAR, -1);
dates = DateUtil.format(dateTime,"yyyy");
}
for (TradeOrderTrendRespVO tradeOrderTrendRespVO2 : reference) {
String referenceDate = tradeOrderTrendRespVO2.getDate();
if(StringUtils.isNotBlank(dates) && dates.equals(referenceDate)){
tradeOrderTrendRespVODataComparisonRespVO.setReference(tradeOrderTrendRespVO2);
}
}
}
// 顺序对比返回
collect = IntStream.range(0, value.size())
.mapToObj(index -> new DataComparisonRespVO<TradeOrderTrendRespVO>()
.setValue(CollUtil.get(value, index))
.setReference(CollUtil.get(reference, index)))
.collect(Collectors.toList());
// collect = IntStream.range(0, value.size())
// .mapToObj(index -> new DataComparisonRespVO<TradeOrderTrendRespVO>()
// .setValue(CollUtil.get(value, index))
// .setReference(CollUtil.get(reference, index)))
// .collect(Collectors.toList());
}else{
List<TradeOrderTrendRespVO> reference = new ArrayList<>();
// 顺序对比返回