From d0b83b31dba32844fc6fe8ff84afa0d960e18de7 Mon Sep 17 00:00:00 2001 From: 无关风月 <443237572@qq.com> Date: 星期三, 12 二月 2025 16:09:01 +0800 Subject: [PATCH] bug修改 --- ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TChargingBillServiceImpl.java | 116 ++++++++++++++++++++++++++++------------------------------ 1 files changed, 56 insertions(+), 60 deletions(-) diff --git a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TChargingBillServiceImpl.java b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TChargingBillServiceImpl.java index 1fcddcc..6a62bb7 100644 --- a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TChargingBillServiceImpl.java +++ b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TChargingBillServiceImpl.java @@ -1,5 +1,7 @@ package com.ruoyi.order.service.impl; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.extension.conditions.query.LambdaQueryChainWrapper; import com.ruoyi.account.api.feignClient.AppUserCarClient; import com.ruoyi.account.api.feignClient.AppUserClient; import com.ruoyi.account.api.model.TAppUser; @@ -524,8 +526,9 @@ startTime1 = split[0]; startTime2 = split[1]; } + List<TChargingOrder> total = chargingOrderList.selectList(new LambdaQueryWrapper<>(TChargingOrder.class) + .eq(TChargingOrder::getRechargePaymentStatus, 2)); PageInfo<ChargingBillListVO> pageInfo = new PageInfo<>(dto.getPageCurr(),dto.getPageSize()); - PageInfo<ChargingBillListVO> pageInfo1 = new PageInfo<>(1,999999999); List<Site> data6 = siteClient.getSiteAll().getData(); List<TChargingGun> gunList = chargingGunClient.getAllGun().getData(); List<TChargingPile> pileList = chargingGunClient.getAllPile().getData(); @@ -575,7 +578,7 @@ dto.setSiteIds(siteIds); List<ChargingBillListVO> list = this.baseMapper.chargingBillList(pageInfo,dto,startTime1,startTime2); - List<ChargingBillListVO> list1 = this.baseMapper.chargingBillList(pageInfo1,dto,startTime1,startTime2); + List<ChargingBillListVO> list1 = this.baseMapper.chargingBillListNoLimit(dto,startTime1,startTime2); BigDecimal paymentAmountTotal = new BigDecimal("0"); BigDecimal orderAmountTotal = new BigDecimal("0"); BigDecimal electrovalenceTotal = new BigDecimal("0"); @@ -640,19 +643,21 @@ // 账单周期 chargingBillListVO.setBillWeek(localDate.format(java.time.format.DateTimeFormatter.ofPattern("yyyy-MM"))); // 获取 LocalDate 对象 - LocalDate date = localDate.toLocalDate(); // // 获取该月份的第一天 - LocalDate firstDayOfMonth = date.withDayOfMonth(1); // 获取该月份的最后一天 - LocalDate lastDayOfMonth = date.with(TemporalAdjusters.lastDayOfMonth()); - QueryWrapper<TChargingOrder> eq = new QueryWrapper<TChargingOrder>() - .between("pay_time", firstDayOfMonth.atTime(0, 0, 0), lastDayOfMonth.atTime(23, 59, 59)) - .eq("status", 5) - .eq("recharge_payment_status", 2); - if (chargingBillListVO.getType() == 2) { - eq.eq("site_id", chargingBillListVO.getSiteId()); - } - List<TChargingOrder> tChargingOrders = chargingOrderList.selectList(eq); + LocalDateTime lastDayOfMonth = localDate.with(TemporalAdjusters.lastDayOfMonth()); + LocalDateTime firstDayOfMonth = localDate.with(TemporalAdjusters.firstDayOfMonth()); +// QueryWrapper<TChargingOrder> eq = new QueryWrapper<TChargingOrder>() +// .between("pay_time", firstDayOfMonth.withHour(0).withMinute(0).withSecond(0), lastDayOfMonth.withHour(23).withMinute(59).withSecond(59)) +// .eq("recharge_payment_status", 2); +// if (chargingBillListVO.getType() == 2) { +// eq.eq("site_id", chargingBillListVO.getSiteId()); +// } +// List<TChargingOrder> tChargingOrders = chargingOrderList.selectList(eq); + List<TChargingOrder> tChargingOrders = total.stream().filter(e -> chargingBillListVO.getType() == 2 ? + e.getSiteId().equals(chargingBillListVO.getSiteId()) : true && + e.getPayTime().isBefore(lastDayOfMonth.withHour(23).withMinute(59).withSecond(59)) + && e.getPayTime().isAfter(firstDayOfMonth.withHour(0).withMinute(0).withSecond(0))).collect(Collectors.toList()); int chargingSecond = 0; BigDecimal paymentAmount = new BigDecimal("0"); BigDecimal orderAmount = new BigDecimal("0"); @@ -726,36 +731,32 @@ BigDecimal add = tChargingOrder.getElectrovalence().add(tChargingOrder.getServiceCharge()); tChargingOrder.setTotalAmount(add.toString()); tChargingOrder.setDiscount(tChargingOrder.getCouponDiscountAmount()!=null?tChargingOrder.getCouponDiscountAmount().toString():"0"); - UploadRealTimeMonitoringData data5 = uploadRealTimeMonitoringDataClient.chargingOrderInfo(tChargingOrder.getCode()).getData(); - if (data5!=null){ - if (tChargingOrder.getStartTime()!=null && tChargingOrder.getEndTime()!=null){ - LocalDateTime startTime = tChargingOrder.getStartTime(); - LocalDateTime endTime = tChargingOrder.getEndTime(); - // 计算时间差 单位秒 - long between = ChronoUnit.SECONDS.between(startTime, endTime); - chargingSecond+=between; - // 将其转化为xx小时xx分钟xx秒显示 如果是0小时则不展示小时 如果是0分钟则不展示分钟 + if (tChargingOrder.getStartTime()!=null && tChargingOrder.getEndTime()!=null){ + LocalDateTime startTime = tChargingOrder.getStartTime(); + LocalDateTime endTime = tChargingOrder.getEndTime(); + // 计算时间差 单位秒 + long between = ChronoUnit.SECONDS.between(startTime, endTime); + chargingSecond+=between; + // 将其转化为xx小时xx分钟xx秒显示 如果是0小时则不展示小时 如果是0分钟则不展示分钟 - // 计算小时、分钟和秒 - long hours = between / 60 / 60; - long minutes = (between % 3600) / 60; - long seconds = between % 60; // 如果没有秒数,则默认是0 - StringBuilder result = new StringBuilder(); - if (hours > 0) { - result.append(hours).append("小时"); - } - if (minutes > 0) { - result.append(minutes).append("分钟"); - } - if (seconds > 0 || result.length() == 0) { // 如果秒数大于0,或者小时和分钟都为0,则显示秒数 - result.append(seconds).append("秒"); - } - tChargingOrder.setChargingTime(result.toString()); + // 计算小时、分钟和秒 + long hours = between / 60 / 60; + long minutes = (between % 3600) / 60; + long seconds = between % 60; // 如果没有秒数,则默认是0 + StringBuilder result = new StringBuilder(); + if (hours > 0) { + result.append(hours).append("小时"); + } + if (minutes > 0) { + result.append(minutes).append("分钟"); + } + if (seconds > 0 || result.length() == 0) { // 如果秒数大于0,或者小时和分钟都为0,则显示秒数 + result.append(seconds).append("秒"); + } + tChargingOrder.setChargingTime(result.toString()); - } - - tChargingOrder.setEndSoc(data5.getSoc().toString()); } + TAppUser data3 = userList.stream().filter(e -> e.getId().equals(tChargingOrder.getAppUserId())).findFirst().orElse(null); if (tChargingOrder.getAppUserCarId()!=null){ TAppUserCar tAppUserCar = carList.stream().filter(e -> e.getId().equals(tChargingOrder.getAppUserCarId())).findFirst().orElse(null); @@ -850,21 +851,21 @@ // 账单周期 chargingBillListVO.setBillWeek(localDate.format(java.time.format.DateTimeFormatter.ofPattern("yyyy-MM"))); // 获取 LocalDate 对象 - LocalDate date = localDate.toLocalDate(); // // 获取该月份的第一天 - LocalDate firstDayOfMonth = date.withDayOfMonth(1); // 获取该月份的最后一天 - LocalDate lastDayOfMonth = date.with(TemporalAdjusters.lastDayOfMonth()); -// LocalDateTime firstDayOfMonth = LocalDateTime.of(date, LocalTime.MIN); -// LocalDateTime lastDayOfMonth = LocalDateTime.of(date, LocalTime.MAX); - QueryWrapper<TChargingOrder> eq = new QueryWrapper<TChargingOrder>() - .between("create_time", firstDayOfMonth, lastDayOfMonth) - .eq("status", 5) - .eq("recharge_payment_status", 2); - if (chargingBillListVO.getType() == 2) { - eq.eq("site_id", chargingBillListVO.getSiteId()); - } - List<TChargingOrder> tChargingOrders = chargingOrderList.selectList(eq); + LocalDateTime lastDayOfMonth = localDate.with(TemporalAdjusters.lastDayOfMonth()); + LocalDateTime firstDayOfMonth = localDate.with(TemporalAdjusters.firstDayOfMonth()); +// QueryWrapper<TChargingOrder> eq = new QueryWrapper<TChargingOrder>() +// .between("pay_time", firstDayOfMonth.withHour(0).withMinute(0).withSecond(0), lastDayOfMonth.withHour(23).withMinute(59).withSecond(59)) +// .eq("recharge_payment_status", 2); +// if (chargingBillListVO.getType() == 2) { +// eq.eq("site_id", chargingBillListVO.getSiteId()); +// } +// List<TChargingOrder> tChargingOrders = chargingOrderList.selectList(eq); + List<TChargingOrder> tChargingOrders = total.stream().filter(e -> chargingBillListVO.getType() == 2 ? + e.getSiteId().equals(chargingBillListVO.getSiteId()) : true && + e.getPayTime().isBefore(lastDayOfMonth.withHour(23).withMinute(59).withSecond(59)) + && e.getPayTime().isAfter(firstDayOfMonth.withHour(0).withMinute(0).withSecond(0))).collect(Collectors.toList()); orderCount+=tChargingOrders.size(); BigDecimal paymentAmount = new BigDecimal("0"); BigDecimal orderAmount = new BigDecimal("0"); @@ -925,7 +926,7 @@ } chargingBillVO.setChargingCapacity(chargingCapacityTotal); chargingBillVO.setPaymentAmount(paymentAmountTotal.subtract(commissionAmountTotal).subtract(sharingAmountTotal).setScale(2, BigDecimal.ROUND_DOWN)); - chargingBillVO.setOrderAmount(orderAmountTotal.subtract(refundAmountTotal).setScale(2, BigDecimal.ROUND_DOWN)); + chargingBillVO.setOrderAmount(orderAmountTotal.setScale(2, BigDecimal.ROUND_DOWN)); chargingBillVO.setElectrovalence(electrovalenceTotal.setScale(2, BigDecimal.ROUND_DOWN)); chargingBillVO.setServiceCharge(serviceChargeTotal.setScale(2, BigDecimal.ROUND_DOWN)); chargingBillVO.setOrderCount(orderCount); @@ -938,13 +939,8 @@ } public static void main(String[] args) { - int totalSeconds = 1201; - int hours = totalSeconds / 3600; - int minutes = (totalSeconds % 3600) / 60; - int seconds = totalSeconds % 60; + LocalDateTime localDate = LocalDateTime.now().withMonth(1).withDayOfMonth(1).withHour(0).withMinute(0).withSecond(0); - String timeString = String.format("%d小时%d分钟%d秒", hours, minutes, seconds); - System.out.println(timeString); } } -- Gitblit v1.7.1