From 1adec9fead03f0f788a73f9349ccba86569e31f3 Mon Sep 17 00:00:00 2001
From: Pu Zhibing <393733352@qq.com>
Date: 星期三, 30 四月 2025 19:40:11 +0800
Subject: [PATCH] 修改rocketmq连接方式和修改发起充电异常情况下将订单挂起的功能

---
 ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/controller/TChargingOrderController.java |   88 +++++++++++++++++++++++++++++++++++---------
 1 files changed, 70 insertions(+), 18 deletions(-)

diff --git a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/controller/TChargingOrderController.java b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/controller/TChargingOrderController.java
index faa6696..764dd6d 100644
--- a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/controller/TChargingOrderController.java
+++ b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/controller/TChargingOrderController.java
@@ -36,6 +36,7 @@
 import com.ruoyi.integration.api.feignClient.UploadRealTimeMonitoringDataClient;
 import com.ruoyi.integration.api.model.ChargingOrderAndUploadRealTimeMonitoringDataDto;
 import com.ruoyi.integration.api.model.UploadRealTimeMonitoringPageData;
+import com.ruoyi.order.api.dto.ChargingStatisticeDTO;
 import com.ruoyi.order.api.model.*;
 import com.ruoyi.order.api.query.ChargingOrderQuery;
 import com.ruoyi.common.core.dto.MongoChargingOrderQuery;
@@ -54,6 +55,7 @@
 import com.ruoyi.order.service.*;
 import com.ruoyi.order.util.PreviousSixMonths;
 import com.ruoyi.order.vo.EndOfChargePageInfo;
+import com.ruoyi.order.vo.WatchChargingOrderVo;
 import com.ruoyi.other.api.feignClient.RoleSiteClient;
 import com.ruoyi.other.api.feignClient.UserSiteClient;
 import com.ruoyi.payment.api.feignClient.AliPaymentClient;
@@ -63,14 +65,11 @@
 import com.ruoyi.system.api.feignClient.SysUserClient;
 import com.ruoyi.system.api.feignClient.SysUserRoleClient;
 import com.ruoyi.system.api.model.SysUserRoleVo;
-import io.swagger.annotations.Api;
-import io.swagger.annotations.ApiImplicitParam;
-import io.swagger.annotations.ApiImplicitParams;
+import io.swagger.annotations.*;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
-import io.swagger.annotations.ApiOperation;
 import org.springframework.web.bind.annotation.*;
 
 import javax.annotation.Resource;
@@ -159,10 +158,25 @@
     private RoleSiteClient roleSiteClient;
     @Resource
     private SysUserRoleClient sysUserRoleClient;
-    
-    
-    
-    
+
+
+
+    /**
+     * 远程调用 监管平台查询前一天用能统计
+     * @return
+     */
+    @ResponseBody
+    @PostMapping(value = "/getChargingStatistics")
+    public R<List<TChargingOrder>> getChargingStatistics(@RequestBody ChargingStatisticeDTO dto) {
+        List<Long> collect = chargingOrderAccountingStrategyService.lambdaQuery().between(TChargingOrderAccountingStrategy::getCreateTime, dto.getStartTime(), dto.getEndTime())
+                .list().stream().map(TChargingOrderAccountingStrategy::getChargingOrderId).collect(Collectors.toList());
+        if (!collect.isEmpty()){
+            List<TChargingOrder> list = chargingOrderService.lambdaQuery()
+                    .in(TChargingOrder::getId,collect).list();
+            return R.ok(list);
+        }
+        return R.ok(new ArrayList<TChargingOrder>());
+    }
 
     /**
      * 远程调用 增加管理后台赠送会员记录
@@ -848,6 +862,19 @@
     
     
     /**
+     *
+     * @param code
+     */
+    @ResponseBody
+    @PostMapping(value = "/refund1")
+    public R refund1(@RequestParam(value = "code") String code, @RequestParam(value = "money") BigDecimal money){
+        chargingOrderService.refund1(code, money);
+        return R.ok();
+    }
+    
+    
+    
+    /**
      * 远程启动失败后退款回调
      */
     @ResponseBody
@@ -1175,23 +1202,37 @@
         PageInfo<TChargingOrder> orderPageInfo = chargingOrderService.page(pageInfo, queryWrapper.orderByDesc(TChargingOrder::getCreateTime));
         List<Site> siteList = siteClient.getSiteAll().getData();
         
+        List<WatchChargingOrderVo> list = new ArrayList<>();
         for (TChargingOrder record : orderPageInfo.getRecords()) {
-            record.setIdStr(record.getId().toString());
+            WatchChargingOrderVo vo = new WatchChargingOrderVo();
+            BeanUtils.copyProperties(record, vo);
+            vo.setIdStr(record.getId().toString());
             Site site = siteList.stream().filter(s->s.getId().equals(record.getSiteId())).findFirst().get();
-            record.setSiteName(site.getName());
+            vo.setSiteName(site.getName());
             TChargingPile chargingPile = chargingPileClient.getChargingPileById(record.getChargingPileId()).getData();
-            record.setTerminalName(chargingPile.getName());
+            vo.setTerminalName(chargingPile.getName());
             TChargingGun chargingGun = chargingGunClient.getChargingGunById(record.getChargingGunId()).getData();
-            record.setTerminalCode(chargingGun.getName());
+            vo.setTerminalCode(chargingGun.getName());
             
             if(null != record.getStartTime() && null != record.getEndTime()){
                 long time = record.getEndTime().toEpochSecond(ZoneOffset.UTC) - record.getStartTime().toEpochSecond(ZoneOffset.UTC);
-                record.setChargingTime(time + "");
+                vo.setChargingTime(time + "");
             }
             long count = chargingOrderAccountingStrategyService.count(new LambdaQueryWrapper<TChargingOrderAccountingStrategy>().eq(TChargingOrderAccountingStrategy::getChargingOrderId, record.getId()));
-            record.setTimeFrame(count);
+            vo.setTimeFrame(count);
+    
+            vo.setAuthInfo(roleType == 1 ? true : partnerClient.authMenu(objectId, record.getSiteId(), SiteMenu.CHARGING_PILE_ORDER_MONITORING_RECORD_INFO.getValue()));
+            vo.setAuthDelete(roleType == 1 ? true : partnerClient.authMenu(objectId, record.getSiteId(), SiteMenu.CHARGING_PILE_ORDER_MONITORING_RECORD_DEL.getValue()));
+            list.add(vo);
         }
-        return R.ok(orderPageInfo);
+        PageInfo<WatchChargingOrderVo> pageInfos = new PageInfo<>(query.getPageCurr(), query.getPageSize());
+        pageInfos.setRecords(list);
+        pageInfos.setCurrent(pageInfo.getCurrent());
+        pageInfos.setPages(pageInfo.getPages());
+        pageInfos.setSize(pageInfo.getSize());
+        pageInfos.setStartIndex(pageInfo.getStartIndex());
+        pageInfos.setTotal(pageInfo.getTotal());
+        return R.ok(pageInfos);
     }
     
     
@@ -1264,7 +1305,6 @@
             start = statisticsQueryDto.getStartTime();
             end = statisticsQueryDto.getEndTime();
         }else if (statisticsQueryDto.getDayType()==5){
-            // 获取今年1月1日的日期
             start = statisticsQueryDto.getStartTime();
             end = statisticsQueryDto.getEndTime();
             if (start.equals(end)){
@@ -1429,7 +1469,10 @@
         BigDecimal commissionAmount = BigDecimal.ZERO;
         for (Map<String, Object> map : maps) {
             BigDecimal periodElectricPrice = (BigDecimal) map.get("period_electric_price");
-            allMoney = allMoney.add(periodElectricPrice);
+            Long order_source = (Long)map.get("order_source");
+            if(2 != order_source){
+                allMoney = allMoney.add(periodElectricPrice);
+            }
             BigDecimal total_amount = (BigDecimal) map.get("total_amount");
             allMoney = allMoney.add(total_amount);
             commissionAmount = commissionAmount.add((BigDecimal) map.get("commissionAmount"));
@@ -2289,6 +2332,15 @@
         return chargingOrderService.getNotPaymentChargingOrder();
     }
     
- 
+    
+    /**
+     * 手动推送订单给三方平台
+     * @param code
+     * @return
+     */
+    @PostMapping("/pushOrderInfo")
+    public R pushOrderInfo(@RequestParam String code){
+        return chargingOrderService.pushOrderInfo(code);
+    }
     
 }

--
Gitblit v1.7.1