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/TChargingOrderServiceImpl.java | 2 ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TChargingBillServiceImpl.java | 116 ++++++++++++++++++-------------------- ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/mapper/TChargingBillMapper.java | 4 + ruoyi-service/ruoyi-order/src/main/resources/mapper/order/TChargingBillMapper.xml | 25 ++++++++ 4 files changed, 86 insertions(+), 61 deletions(-) diff --git a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/mapper/TChargingBillMapper.java b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/mapper/TChargingBillMapper.java index c9b7bae..fe527e0 100644 --- a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/mapper/TChargingBillMapper.java +++ b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/mapper/TChargingBillMapper.java @@ -26,6 +26,10 @@ @Param("req") ChargingListQuery dto, @Param("startTime1")String startTime1, @Param("startTime2")String startTime2); + List<ChargingBillListVO> chargingBillListNoLimit( + @Param("req") ChargingListQuery dto, + @Param("startTime1")String startTime1, + @Param("startTime2")String startTime2); List<ChargingBillListVO> chargingBillList1( @Param("pageInfo") PageInfo<ChargingBillListVO> pageInfo, @Param("req") ChargingListQuery dto, 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); } } diff --git a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TChargingOrderServiceImpl.java b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TChargingOrderServiceImpl.java index fc1860f..098dd01 100644 --- a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TChargingOrderServiceImpl.java +++ b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TChargingOrderServiceImpl.java @@ -1212,7 +1212,7 @@ endTime2 = split[1]; } PageInfo<ChargingOrderVO> pageInfo = new PageInfo<>(dto.getPageCurr(),dto.getPageSize()); - PageInfo<ChargingOrderVO> pageInfo1 = new PageInfo<>(1,9999999); + PageInfo<ChargingOrderVO> pageInfo1 = new PageInfo<>(1,999999999); if (StringUtils.hasLength(dto.getPhone())){ List<Long> data = appUserClient.getUserIdsByPhone(dto.getPhone()).getData(); diff --git a/ruoyi-service/ruoyi-order/src/main/resources/mapper/order/TChargingBillMapper.xml b/ruoyi-service/ruoyi-order/src/main/resources/mapper/order/TChargingBillMapper.xml index 3f47083..276c666 100644 --- a/ruoyi-service/ruoyi-order/src/main/resources/mapper/order/TChargingBillMapper.xml +++ b/ruoyi-service/ruoyi-order/src/main/resources/mapper/order/TChargingBillMapper.xml @@ -53,4 +53,29 @@ and t1.del_flag = 0 order by t1.create_time desc </select> + <select id="chargingBillListNoLimit" resultType="com.ruoyi.order.api.vo.ChargingBillListVO"> + select t1.* from t_charging_bill t1 + where 1=1 + <if test="req.type != null and req.type!=0"> + and t1.type = #{req.type} + </if> + <if test="req.state != null "> + and t1.status = #{req.state} + </if> + <if test="startTime1 != null and startTime1!=''"> + and (t1.bill_time between #{startTime1} and #{startTime2}) + </if> + <if test="req.uid != null and req.uid!=''"> + and t1.id = #{req.uid} + </if> + <if test="null != req.siteIds and req.siteIds.size()>0" > + and t1.site_id in + <foreach collection="req.siteIds" close=")" open="(" item="item" separator=","> + #{item} + </foreach> + </if> + and t1.billType = 1 + and t1.del_flag = 0 + order by t1.create_time desc + </select> </mapper> -- Gitblit v1.7.1