From 67d06a785d5fc4524639ace27651c01ff05a4b58 Mon Sep 17 00:00:00 2001
From: liujie <1793218484@qq.com>
Date: 星期四, 29 五月 2025 22:31:33 +0800
Subject: [PATCH] 修改bug

---
 ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/controller/TChargingOrderController.java |  274 +++++++++++++++++++++++++++++++++++-------------------
 1 files changed, 175 insertions(+), 99 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 139f142..90f2041 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
@@ -1,5 +1,6 @@
 package com.ruoyi.order.controller;
 import com.alibaba.fastjson2.JSON;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 
 import java.math.BigDecimal;
@@ -24,6 +25,9 @@
 import com.ruoyi.common.core.dto.ChargingPercentProvinceDto;
 import com.ruoyi.common.core.utils.StringUtils;
 import com.ruoyi.common.core.web.domain.BasePojo;
+import com.ruoyi.common.log.annotation.Log;
+import com.ruoyi.common.log.enums.BusinessType;
+import com.ruoyi.common.log.enums.OperatorType;
 import com.ruoyi.common.redis.service.RedisService;
 import com.ruoyi.common.security.annotation.Logical;
 import com.ruoyi.common.security.annotation.RequiresPermissions;
@@ -36,6 +40,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 +59,7 @@
 import com.ruoyi.order.service.*;
 import com.ruoyi.order.util.PreviousSixMonths;
 import com.ruoyi.order.vo.EndOfChargePageInfo;
+import com.ruoyi.order.vo.StatisticsOfBatteryVO;
 import com.ruoyi.order.vo.WatchChargingOrderVo;
 import com.ruoyi.other.api.feignClient.RoleSiteClient;
 import com.ruoyi.other.api.feignClient.UserSiteClient;
@@ -157,10 +163,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>());
+    }
 
     /**
      * 远程调用 增加管理后台赠送会员记录
@@ -622,10 +643,11 @@
         chargingOrderInfoVO.setList(list);
         return AjaxResult.success(chargingOrderInfoVO);
     }
-
     
     
     
+    
+    @Log(title = "【扫一扫】添加评价", businessType = BusinessType.INSERT,operatorType = OperatorType.MOBILE)
     @ResponseBody
     @PostMapping(value = "/addEvaluate")
     @ApiOperation(value = "添加评价", tags = {"小程序-扫一扫"})
@@ -778,7 +800,7 @@
     }
     
     
-    
+    @Log(title = "【扫一扫】支付充电充值费用", businessType = BusinessType.UPDATE,operatorType = OperatorType.MOBILE)
     @ResponseBody
     @PostMapping(value = "/paymentChargingOrder")
     @ApiOperation(value = "支付充电充值费用", tags = {"小程序-扫一扫"})
@@ -846,6 +868,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
@@ -859,8 +894,7 @@
     
     
     
-
-
+    
     @ResponseBody
     @GetMapping(value = "/preChargeCheck/{id}")
     @ApiOperation(value = "获取安全检测数据", tags = {"小程序-扫一扫"})
@@ -874,7 +908,6 @@
     }
     
     
-    
     @ResponseBody
     @GetMapping(value = "/getChargingDetails/{id}")
     @ApiOperation(value = "获取充电中页面数据", tags = {"小程序-扫一扫"})
@@ -885,8 +918,8 @@
         ChargingDetails chargingDetails = chargingOrderService.getChargingDetails(id);
         return AjaxResult.success(chargingDetails);
     }
-
-
+    
+    @Log(title = "【扫一扫】手动停止充电", businessType = BusinessType.STOP,operatorType = OperatorType.MOBILE)
     @ResponseBody
     @PutMapping(value = "/stopCharging/{id}")
     @ApiOperation(value = "手动停止充电", tags = {"小程序-扫一扫"})
@@ -1912,100 +1945,104 @@
     @PostMapping(value = "/work/chargeDetail")
     @ApiOperation(value = "运营情况", tags = {"管理后台-工作台"})
     public R workCharge(@RequestBody ChargingDetailQueryDto statisticsQueryDto) {
-        List<Integer> siteIds = new ArrayList<>();
-        if (statisticsQueryDto.getSiteId() == null) {
-            Long userId = tokenService.getLoginUser().getUserid();
-            //获取当前登录的siteIds
-            List<GetSiteListDTO> data = siteClient.getSiteListByUserId(userId).getData();
-            for (GetSiteListDTO datum : data) {
-                siteIds.add(datum.getId());
-            }
-        } else {
-            siteIds.add(statisticsQueryDto.getSiteId());
-        }
-        if (statisticsQueryDto.getDayType()==1) {
-            List<Map<String,Object>> charMap1 = chargingOrderService.getHourType(siteIds,statisticsQueryDto);
-            List<Map<String, Object>> charMap = new ArrayList<>();
-            // 生成从 "00:00" 到 "23:00" 的时间数据
-            for (int hour = 0; hour < 24; hour++) {
-                String time = String.format("%02d:00", hour);
-                 Map<String, Object> mapWithTimeValue = findMapWithTimeValue(charMap1, time);
-                if (mapWithTimeValue!=null){
-                    charMap.add(mapWithTimeValue);
-                }else {
-                    Map<String, Object> timeMap = new HashMap<>();
-                    timeMap.put("time", time); // 初始化值为 null
-                    timeMap.put("electrovalence", 0);
-                    timeMap.put("orderCount", 0);
-                    timeMap.put("servicecharge", 0);
-                    timeMap.put("electricity", 0);
-                    charMap.add(timeMap);
+        try {
+            List<Integer> siteIds = new ArrayList<>();
+            if (statisticsQueryDto.getSiteId() == null) {
+                Long userId = tokenService.getLoginUser().getUserid();
+                //获取当前登录的siteIds
+                List<GetSiteListDTO> data = siteClient.getSiteListByUserId(userId).getData();
+                for (GetSiteListDTO datum : data) {
+                    siteIds.add(datum.getId());
                 }
+            } else {
+                siteIds.add(statisticsQueryDto.getSiteId());
             }
-          return R.ok(charMap);
-        }else if (statisticsQueryDto.getDayType()==2){
-            // 假设 chargingOrderService.getDateType() 返回的是按天的数据
-            List<Map<String, Object>> charMap1 = chargingOrderService.getDateType(siteIds, statisticsQueryDto);
-
-            // 解析 startTime 和 endTime 为 LocalDate
-            LocalDate startDate = statisticsQueryDto.getStartTime();
-            LocalDate endDate = statisticsQueryDto.getEndTime();
-
-            List<Map<String, Object>> dateRangeStatistics = new ArrayList<>();
-
-            // 遍历日期范围
-            while (!startDate.isAfter(endDate)) {
-                String formattedDate = startDate.format(DateTimeFormatter.ofPattern("yyyy-MM-dd"));
-                Map<String, Object> dailyStats = findMapWithDateValue(charMap1, formattedDate);
-
-                if (dailyStats != null) {
-                    dateRangeStatistics.add(dailyStats);
-                } else {
-                    Map<String, Object> dateMap = new HashMap<>();
-                    dateMap.put("time", formattedDate);
-                    dateMap.put("electrovalence", 0);
-                    dateMap.put("orderCount", 0);
-                    dateMap.put("servicecharge", 0);
-                    dateMap.put("electricity", 0);
-                    dateRangeStatistics.add(dateMap);
+            if (statisticsQueryDto.getDayType()==1) {
+                List<Map<String,Object>> charMap1 = chargingOrderService.getHourType(siteIds,statisticsQueryDto);
+                List<Map<String, Object>> charMap = new ArrayList<>();
+                // 生成从 "00:00" 到 "23:00" 的时间数据
+                for (int hour = 0; hour < 24; hour++) {
+                    String time = String.format("%02d:00", hour);
+                    Map<String, Object> mapWithTimeValue = findMapWithTimeValue(charMap1, time);
+                    if (mapWithTimeValue!=null){
+                        charMap.add(mapWithTimeValue);
+                    }else {
+                        Map<String, Object> timeMap = new HashMap<>();
+                        timeMap.put("time", time); // 初始化值为 null
+                        timeMap.put("electrovalence", 0);
+                        timeMap.put("orderCount", 0);
+                        timeMap.put("servicecharge", 0);
+                        timeMap.put("electricity", 0);
+                        charMap.add(timeMap);
+                    }
                 }
-
-                // 移动到下一天
-                startDate = startDate.plusDays(1);
-            }
+                return R.ok(charMap);
+            }else if (statisticsQueryDto.getDayType()==2){
+                // 假设 chargingOrderService.getDateType() 返回的是按天的数据
+                List<Map<String, Object>> charMap1 = chargingOrderService.getDateType(siteIds, statisticsQueryDto);
+        
+                // 解析 startTime 和 endTime 为 LocalDate
+                LocalDate startDate = statisticsQueryDto.getStartTime();
+                LocalDate endDate = statisticsQueryDto.getEndTime();
+        
+                List<Map<String, Object>> dateRangeStatistics = new ArrayList<>();
+        
+                // 遍历日期范围
+                while (!startDate.isAfter(endDate)) {
+                    String formattedDate = startDate.format(DateTimeFormatter.ofPattern("yyyy-MM-dd"));
+                    Map<String, Object> dailyStats = findMapWithDateValue(charMap1, formattedDate);
+            
+                    if (dailyStats != null) {
+                        dateRangeStatistics.add(dailyStats);
+                    } else {
+                        Map<String, Object> dateMap = new HashMap<>();
+                        dateMap.put("time", formattedDate);
+                        dateMap.put("electrovalence", 0);
+                        dateMap.put("orderCount", 0);
+                        dateMap.put("servicecharge", 0);
+                        dateMap.put("electricity", 0);
+                        dateRangeStatistics.add(dateMap);
+                    }
+            
+                    // 移动到下一天
+                    startDate = startDate.plusDays(1);
+                }
 
 //            return dateRangeStatistics;
-            return R.ok(dateRangeStatistics);
-        }else if (statisticsQueryDto.getDayType()==3){
-            List<Map<String,Object>> charMap1 =  chargingOrderService.getMonthType(siteIds,statisticsQueryDto);
-            // 解析 startTime 和 endTime 为 LocalDate
-            LocalDate startDate = statisticsQueryDto.getStartTime();
-            LocalDate endDate = statisticsQueryDto.getEndTime();
-
-            List<Map<String, Object>> dateRangeStatistics = new ArrayList<>();
-
-            // 遍历日期范围
-            while (!startDate.isAfter(endDate)) {
-                String formattedDate = startDate.format(DateTimeFormatter.ofPattern("yyyy-MM"));
-                Map<String, Object> dailyStats = findMapWithDateValue(charMap1, formattedDate);
-
-                if (dailyStats != null) {
-                    dateRangeStatistics.add(dailyStats);
-                } else {
-                    Map<String, Object> dateMap = new HashMap<>();
-                    dateMap.put("time", formattedDate);
-                    dateMap.put("electrovalence", 0);
-                    dateMap.put("orderCount", 0);
-                    dateMap.put("servicecharge", 0);
-                    dateMap.put("electricity", 0);
-                    dateRangeStatistics.add(dateMap);
+                return R.ok(dateRangeStatistics);
+            }else if (statisticsQueryDto.getDayType()==3){
+                List<Map<String,Object>> charMap1 =  chargingOrderService.getMonthType(siteIds,statisticsQueryDto);
+                // 解析 startTime 和 endTime 为 LocalDate
+                LocalDate startDate = statisticsQueryDto.getStartTime();
+                LocalDate endDate = statisticsQueryDto.getEndTime();
+        
+                List<Map<String, Object>> dateRangeStatistics = new ArrayList<>();
+        
+                // 遍历日期范围
+                while (!startDate.isAfter(endDate)) {
+                    String formattedDate = startDate.format(DateTimeFormatter.ofPattern("yyyy-MM"));
+                    Map<String, Object> dailyStats = findMapWithDateValue(charMap1, formattedDate);
+            
+                    if (dailyStats != null) {
+                        dateRangeStatistics.add(dailyStats);
+                    } else {
+                        Map<String, Object> dateMap = new HashMap<>();
+                        dateMap.put("time", formattedDate);
+                        dateMap.put("electrovalence", 0);
+                        dateMap.put("orderCount", 0);
+                        dateMap.put("servicecharge", 0);
+                        dateMap.put("electricity", 0);
+                        dateRangeStatistics.add(dateMap);
+                    }
+            
+                    // 移动到下一天
+                    startDate = startDate.plusMonths(1);
                 }
-
-                // 移动到下一天
-                startDate = startDate.plusMonths(1);
+                return R.ok(dateRangeStatistics);
+        
             }
-            return R.ok(dateRangeStatistics);
-
+        }catch (Exception e){
+            e.printStackTrace();
         }
         return R.ok();
 
@@ -2303,6 +2340,45 @@
         return chargingOrderService.getNotPaymentChargingOrder();
     }
     
- 
     
+    /**
+     * 手动推送订单给三方平台
+     * @param code
+     * @return
+     */
+    @PostMapping("/pushOrderInfo")
+    public R pushOrderInfo(@RequestParam String code){
+        return chargingOrderService.pushOrderInfo(code);
+    }
+    
+    
+    /**
+     * 添加汇总数据(临时)
+     * @return
+     */
+    @ResponseBody
+    @GetMapping(value = "/addChargingOrderSummaryData")
+    public R addChargingOrderSummaryData(){
+        return chargingOrderService.addChargingOrderSummaryData();
+    }
+
+    /**
+     * 充电桩数据大屏  新能源汽车电池安全检测次数统计
+     */
+    @ResponseBody
+    @GetMapping(value = "/getStatisticsOfBattery")
+    @ApiOperation(value = "新能源汽车电池安全检测次数统计", tags = {"充电桩数据大屏"})
+    public R<StatisticsOfBatteryVO> getStatisticsOfBattery(){
+
+        return chargingOrderService.getStatisticsOfBattery();
+    }
+
+    /**
+     * 充电桩数据大屏  获取站点集合中总的充电量
+     */
+    @GetMapping("/getSumDegreeBySiteIds")
+    public R<BigDecimal> getSumDegreeBySiteIds(@RequestParam("siteIds") List<Integer> SiteIds){
+        return R.ok(chargingOrderService.getSumDegreeBySiteIds(SiteIds));
+    }
+
 }

--
Gitblit v1.7.1