From 082b9ab8643bc5e81f2e70b8e9400fdaba62e686 Mon Sep 17 00:00:00 2001
From: Pu Zhibing <393733352@qq.com>
Date: 星期三, 03 九月 2025 17:19:18 +0800
Subject: [PATCH] 修改小程序首页查询重复bug
---
ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/util/task/TaskUtil.java | 114 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 114 insertions(+), 0 deletions(-)
diff --git a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/util/task/TaskUtil.java b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/util/task/TaskUtil.java
index c4556d4..ab5da09 100644
--- a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/util/task/TaskUtil.java
+++ b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/util/task/TaskUtil.java
@@ -1,15 +1,31 @@
package com.ruoyi.order.util.task;
+import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson2.util.UUIDUtils;
import com.alibaba.nacos.common.utils.UuidUtils;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.ruoyi.chargingPile.api.feignClient.SiteClient;
import com.ruoyi.chargingPile.api.model.Site;
+import com.ruoyi.common.core.domain.R;
+import com.ruoyi.common.core.utils.StringUtils;
+import com.ruoyi.integration.api.feignClient.ChargingMessageClient;
+import com.ruoyi.integration.api.feignClient.UploadRealTimeMonitoringDataClient;
+import com.ruoyi.integration.api.model.TransactionRecord;
+import com.ruoyi.integration.api.model.UploadRealTimeMonitoringData;
+import com.ruoyi.integration.api.vo.ChargingOrderVo;
import com.ruoyi.order.api.model.TChargingBill;
import com.ruoyi.order.api.model.TChargingOrder;
+import com.ruoyi.order.api.model.TChargingOrderRefund;
+import com.ruoyi.order.api.vo.TransactionRecordMessageVO;
import com.ruoyi.order.service.TChargingBillService;
+import com.ruoyi.order.service.TChargingOrderRefundService;
import com.ruoyi.order.service.TChargingOrderService;
+import com.ruoyi.order.util.mongodb.service.TransactionRecordService;
+import com.ruoyi.order.util.mongodb.service.UploadRealTimeMonitoringDataService;
+import lombok.extern.slf4j.Slf4j;
import org.apache.logging.log4j.core.util.UuidUtil;
+import org.apache.poi.util.StringUtil;
+import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.web.context.WebServerInitializedEvent;
import org.springframework.context.ApplicationListener;
@@ -31,6 +47,7 @@
* @author zhibing.pu
* @date 2023/7/11 8:39
*/
+@Slf4j
@Component
public class TaskUtil implements ApplicationListener<WebServerInitializedEvent> {
@@ -41,9 +58,106 @@
@Resource
private TChargingOrderService chargingOrderService;
+ @Resource
+ private TChargingOrderRefundService chargingOrderRefundService;
+
+ @Resource
+ private UploadRealTimeMonitoringDataService uploadRealTimeMonitoringDataService;
+
+ @Resource
+ private TransactionRecordService transactionRecordService;
+
+ @Resource
+ private ChargingMessageClient chargingMessageClient;
+
private Integer port = null;
+ //十分钟循环执行的定时任务
+ @Scheduled(fixedRate = 1000 * 60 * 10)
+ public void taskTenMinutes() {
+ if(null != port && port == 5400){
+ List<TChargingOrder> failedStartupOrder = chargingOrderService.findFailedStartupOrder();
+ log.info("定时任务执行,查询到启动失败的订单数量:{}", failedStartupOrder.size());
+ for (TChargingOrder order : failedStartupOrder) {
+ log.info("定时任务执行,查询到启动失败的订单:{}", order.getCode());
+ //查询是否有充电信息
+ List<UploadRealTimeMonitoringData> dataByOrderCode = uploadRealTimeMonitoringDataService.getDataByOrderCode(order.getCode());
+ log.info("充电实时数据:{}", dataByOrderCode.size());
+ //没有充电数据,则执行退款
+ if(null == dataByOrderCode || dataByOrderCode.isEmpty()){
+ log.info("定时任务执行,查询到启动失败的订单,执行退款:{}", order.getCode());
+ if(1 == order.getOrderSource()){
+ chargingOrderService.refund(order.getCode());
+ int num = 0;
+ while (true){
+ TChargingOrderRefund one = chargingOrderRefundService.getOne(new LambdaQueryWrapper<TChargingOrderRefund>().eq(TChargingOrderRefund::getChargingOrderId, order.getId()));
+ if(null != one && 2 == one.getRefundStatus()){
+ order.setStatus(-1);
+ chargingOrderService.updateById(order);
+ break;
+ }
+ try {
+ Thread.sleep(5000);
+ } catch (InterruptedException e) {
+ throw new RuntimeException(e);
+ }
+ num++;
+ if(num > 10){
+ break;
+ }
+ }
+ }else{
+ order.setStatus(-1);
+ chargingOrderService.updateById(order);
+ }
+ }
+ }
+ //处理退款中的数据
+ List<TChargingOrder> stoppedOrder = chargingOrderService.findStoppedOrder();
+ log.info("定时任务执行,查询到停止中的订单数量:{}", stoppedOrder.size());
+ for (TChargingOrder order : stoppedOrder) {
+ log.info("定时任务执行,查询到停止中的订单:{}", order.getCode());
+ TransactionRecord one = transactionRecordService.findOne(order.getCode());
+ if(null != one){
+ log.info("定时任务执行,查询到停止中的订单账单数据:{}", JSON.toJSONString(one));
+ if(null == order.getStartTime()){
+ order.setStartTime(LocalDateTime.parse(one.getStart_time(), DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SS").withZone(ZoneId.systemDefault())));
+ }
+ if(null == order.getEndTime()){
+ order.setEndTime(LocalDateTime.parse(one.getEnd_time(), DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SS").withZone(ZoneId.systemDefault())));
+ }
+ chargingOrderService.updateById(order);
+ TransactionRecordMessageVO vo = new TransactionRecordMessageVO();
+ BeanUtils.copyProperties(one, vo);
+ R r = chargingOrderService.endChargeBillingCharge(vo);
+ log.info("定时任务执行,停止中的订单处理结果:{}", JSON.toJSONString(r));
+ }
+ }
+ //处理状态为充电中,但硬件已完成的订单
+ List<TChargingOrder> chargingOrder = chargingOrderService.findChargingOrder();
+ log.info("定时任务执行,查询到充电中的订单数量:{}", chargingOrder.size());
+ for (TChargingOrder order : chargingOrder) {
+ log.info("定时任务执行,查询到充电中的订单:{}", order.getCode());
+ TransactionRecord one = transactionRecordService.findOne(order.getCode());
+ if(null != one && StringUtils.isNotEmpty(one.getResult())){
+ log.info("定时任务执行,查询到充电中的订单账单数据:{}", JSON.toJSONString(one));
+ if(null == order.getStartTime()){
+ order.setStartTime(LocalDateTime.parse(one.getStart_time(), DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SS").withZone(ZoneId.systemDefault())));
+ }
+ if(null == order.getEndTime()){
+ order.setEndTime(LocalDateTime.parse(one.getEnd_time(), DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SS").withZone(ZoneId.systemDefault())));
+ }
+ chargingOrderService.updateById(order);
+ TransactionRecordMessageVO vo = new TransactionRecordMessageVO();
+ BeanUtils.copyProperties(one, vo);
+ R r = chargingOrderService.endChargeBillingCharge(vo);
+ log.info("定时任务执行,充电中的订单处理结果:{}", JSON.toJSONString(r));
+ }
+ }
+ }
+ }
+
@Scheduled(cron = "0 0 0 2 * ?")
public void taskMonth() {
--
Gitblit v1.7.1