From 947112db555fe33b8964446892542a501fbc581b Mon Sep 17 00:00:00 2001
From: Pu Zhibing <393733352@qq.com>
Date: 星期四, 13 二月 2025 09:15:09 +0800
Subject: [PATCH] Merge branch 'master' of http://120.76.84.145:10101/gitblit/r/java/mx_charging_pile into 1.1
---
ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TChargingOrderServiceImpl.java | 3
ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TChargingBillServiceImpl.java | 120 +++++++++++++++++++--------------------
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, 89 insertions(+), 63 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 a70cd25..5d79a3f 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;
@@ -526,8 +528,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();
@@ -577,7 +580,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");
@@ -642,19 +645,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");
@@ -728,36 +733,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);
@@ -808,9 +809,9 @@
// 格式化为字符串
String timeString = String.format("%d小时%d分钟%d秒", hours, minutes, seconds);
chargingBillVO.setChargingTime(timeString);
- chargingBillListVO.setOrderAmount(orderAmount.subtract(refundAmount));
+ chargingBillListVO.setOrderAmount(paymentAmount);
- chargingBillListVO.setPaymentAmount(chargingBillListVO.getOrderAmount().subtract(commissionAmount).subtract(sharingAmount).setScale(2,BigDecimal.ROUND_DOWN));
+ chargingBillListVO.setPaymentAmount(paymentAmount.subtract(commissionAmount).subtract(sharingAmount).setScale(2,BigDecimal.ROUND_DOWN));
chargingBillListVO.setElectrovalence(electrovalence);
chargingBillListVO.setServiceCharge(serviceCharge.setScale(2,BigDecimal.ROUND_DOWN));
chargingBillListVO.setCommissionAmount(commissionAmount.setScale(2,BigDecimal.ROUND_DOWN));
@@ -854,21 +855,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");
@@ -929,7 +930,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);
@@ -942,13 +943,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 d8f088a..57572aa 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
@@ -611,6 +611,7 @@
if(null != data && data.getChargeNum() > 0){
//计算折扣
List<AccountingStrategyDetailOrder> list = accountingStrategyDetailOrderClient.getAllAccountingStrategyDetailOrder(chargingOrder.getId()).getData();
+ list.get(list.size() - 1).setEndTime("23:59");
//将数据叠加两份,处理跨天的情况
list.addAll(list);
boolean sta = false;
@@ -1251,7 +1252,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