From be40f9a0f85d6c4027e5ca61c53cd491b5b095e6 Mon Sep 17 00:00:00 2001 From: puzhibing <393733352@qq.com> Date: 星期三, 16 十月 2024 19:21:16 +0800 Subject: [PATCH] 合并代码 --- ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TChargingOrderAccountingStrategyServiceImpl.java | 15 +++++++++------ 1 files changed, 9 insertions(+), 6 deletions(-) diff --git a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TChargingOrderAccountingStrategyServiceImpl.java b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TChargingOrderAccountingStrategyServiceImpl.java index f242070..cff3804 100644 --- a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TChargingOrderAccountingStrategyServiceImpl.java +++ b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TChargingOrderAccountingStrategyServiceImpl.java @@ -13,8 +13,10 @@ import javax.annotation.Resource; import java.math.BigDecimal; import java.math.RoundingMode; +import java.text.DateFormat; import java.text.SimpleDateFormat; import java.time.Duration; +import java.time.format.DateTimeFormatter; import java.util.*; import java.util.stream.Collectors; import java.util.stream.LongStream; @@ -43,19 +45,20 @@ @Override public List<List<Map<String, Object>>> getTotalElectricQuantity(Integer days, Set<Integer> siteIds) { SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); + DateTimeFormatter sdf1 = DateTimeFormatter.ofPattern("yyyy-MM-dd"); Calendar calendar = Calendar.getInstance(); calendar.set(Calendar.DAY_OF_YEAR, calendar.get(Calendar.DAY_OF_YEAR) - days); String startTime = sdf.format(calendar.getTime()) + " 00:00:00"; List<TChargingOrder> list = chargingOrderService.list(new LambdaQueryWrapper<TChargingOrder>().in(TChargingOrder::getSiteId, siteIds).eq(TChargingOrder::getStatus, 5) - .eq(TChargingOrder::getDelFlag, 0).last(" and end_time between '" + startTime + "' and DATE_FORMAT('%Y-%m-%d %H:%i:%s', now())")); + .eq(TChargingOrder::getDelFlag, 0).last(" and start_time between '" + startTime + "' and DATE_FORMAT(now(), '%Y-%m-%d %H:%i:%s')")); List<Long> orderId = list.stream().map(TChargingOrder::getId).collect(Collectors.toList()); List<TChargingOrderAccountingStrategy> list1 = this.list(new LambdaQueryWrapper<TChargingOrderAccountingStrategy>().in(TChargingOrderAccountingStrategy::getChargingOrderId, orderId)); List<List<Map<String, Object>>> list2 = new ArrayList<>(); - Calendar nowDateTime = Calendar.getInstance(); for (int i = days; i >= 0; i--) { + Calendar nowDateTime = Calendar.getInstance(); nowDateTime.set(Calendar.DAY_OF_YEAR, nowDateTime.get(Calendar.DAY_OF_YEAR) - i); - List<TChargingOrder> collect = list.stream().filter(s -> sdf.format(s.getEndTime()).equals(sdf.format(nowDateTime.getTime()))).collect(Collectors.toList()); + List<TChargingOrder> collect = list.stream().filter(s -> s.getStartTime().format(sdf1).equals(sdf.format(nowDateTime.getTime()))).collect(Collectors.toList()); List<Long> orderIds = collect.stream().map(TChargingOrder::getId).collect(Collectors.toList()); @@ -105,15 +108,15 @@ calendar.set(Calendar.DAY_OF_YEAR, calendar.get(Calendar.DAY_OF_YEAR) - days); String startTime = sdf.format(calendar.getTime()) + " 00:00:00"; List<TChargingOrder> list = chargingOrderService.list(new LambdaQueryWrapper<TChargingOrder>().in(TChargingOrder::getSiteId, siteIds).eq(TChargingOrder::getStatus, 5) - .eq(TChargingOrder::getDelFlag, 0).last(" and end_time between '" + startTime + "' and DATE_FORMAT('%Y-%m-%d %H:%i:%s', now())")); + .eq(TChargingOrder::getDelFlag, 0).last(" and start_time between '" + startTime + "' and DATE_FORMAT(now(), '%Y-%m-%d %H:%i:%s')")); List<Double> list2 = new ArrayList<>(); - Calendar nowDateTime = Calendar.getInstance(); //遍历获取每天的数值 for (int i = days; i >= 0; i--) { + Calendar nowDateTime = Calendar.getInstance(); nowDateTime.set(Calendar.DAY_OF_YEAR, nowDateTime.get(Calendar.DAY_OF_YEAR) - i); //充电量 - BigDecimal reduce = list.stream().filter(s -> sdf.format(s.getEndTime()).equals(sdf.format(nowDateTime.getTime()))) + BigDecimal reduce = list.stream().filter(s -> s.getStartTime().format(DateTimeFormatter.ofPattern("yyyy-MM-dd")).equals(sdf.format(nowDateTime.getTime()))) .map(TChargingOrder::getChargingCapacity).reduce(BigDecimal.ZERO, BigDecimal::add); list2.add(reduce.doubleValue()); } -- Gitblit v1.7.1