From 7e73e670d70e860bce6c216c23a75d366982c3c2 Mon Sep 17 00:00:00 2001
From: Pu Zhibing <393733352@qq.com>
Date: 星期二, 08 十月 2024 17:26:03 +0800
Subject: [PATCH] 修改bug

---
 ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/controller/TChargingOrderController.java |  160 +++++++++++++++++++++++++++++++++++++++++++++++++----
 1 files changed, 147 insertions(+), 13 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 f798390..eca723a 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
@@ -61,6 +61,7 @@
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiImplicitParam;
 import io.swagger.annotations.ApiImplicitParams;
+import io.swagger.models.auth.In;
 import jdk.nashorn.internal.runtime.ListAdapter;
 import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -73,6 +74,7 @@
 import javax.servlet.http.HttpServletResponse;
 import java.io.PrintWriter;
 import java.time.YearMonth;
+import java.time.format.DateTimeFormatter;
 import java.time.temporal.ChronoUnit;
 import java.time.temporal.TemporalAdjusters;
 import java.util.*;
@@ -138,8 +140,27 @@
     private TChargingOrderAccountingStrategyService chargingOrderAccountingStrategyService;
 
 
-
-
+    /**
+     * 远程调用根据枪id 查询最新的订单id 用户后台结束充电
+     * @param id
+     * @return
+     */
+    @ResponseBody
+    @PostMapping(value = "/queryOrderByGunId/{id}")
+    public R<String> queryOrderByGunId(@PathVariable("id") String id) {
+        List<Integer> integers = new ArrayList<>();
+        integers.add(2);
+        integers.add(3);
+        integers.add(4);
+        TChargingOrder one = chargingOrderService.lambdaQuery()
+                .eq(TChargingOrder::getChargingGunId, id)
+                .in(TChargingOrder::getStatus, integers)
+                .one();
+        if (one!=null){
+            return R.ok(one.getId().toString());
+        }
+        return R.ok();
+    }
     @ResponseBody
     @PostMapping(value = "/pay/order/list")
     @ApiOperation(value = "列表", tags = {"管理后台-支付订单-订单信息"})
@@ -321,10 +342,10 @@
      * @param
      * @return
      */
-    @GetMapping(value = "/getCar")
-    public R<Long> getCar() {
+    @GetMapping(value = "/getCar/{id}")
+    public R<Long> getCar(@PathVariable("id")String id) {
         List<TChargingOrder> list = chargingOrderService.list(new LambdaQueryWrapper<TChargingOrder>()
-                .eq(TChargingOrder::getAppUserId, tokenService.getLoginUserApplet().getUserId())
+                .eq(TChargingOrder::getAppUserId, id)
                 .isNotNull(TChargingOrder::getAppUserCarId));
         if (!list.isEmpty()){
             // 最近使用的车辆id
@@ -436,7 +457,29 @@
                                         @RequestParam("attach") String attach) {
         AjaxResult ajaxResult = chargingOrderService.chargingOrderCallback(1, out_trade_no, transaction_id, attach);
     }
-
+    
+    
+    /**
+     * 修改安全检测数据
+     * @param securityDetection
+     */
+    @ResponseBody
+    @PostMapping(value = "/securityDetection")
+    public void securityDetection(@RequestBody SecurityDetection securityDetection){
+        chargingOrderService.securityDetection(securityDetection);
+    }
+    
+    /**
+     * 远程启动充电应答
+     * @param message
+     */
+    @ResponseBody
+    @PostMapping(value = "/startChargeSuccessfully")
+    public void startChargeSuccessfully(@RequestBody PlatformStartChargingReplyMessage message){
+        chargingOrderService.startChargeSuccessfully(message);
+    }
+    
+    
 
     /**
      * 支付宝支付成功后的回调
@@ -571,7 +614,7 @@
     }
 
     @ResponseBody
-    @PostMapping(value = "/work/shop")
+    @GetMapping(value = "/work/shop")
     @ApiOperation(value = "购物收入", tags = {"后台-工作台"})
     public R workShop(@RequestBody ChargingStatisticsQueryDto statisticsQueryDto) {
         //count近6个月的数据
@@ -978,11 +1021,67 @@
             }
           return R.ok(charMap);
         }else if (statisticsQueryDto.getDayType()==2){
-            List<Map<String,Object>> charMap =  chargingOrderService.getDateType(siteIds,statisticsQueryDto);
-            return R.ok(charMap);
+            // 假设 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>> charMap =  chargingOrderService.getMonthType(siteIds,statisticsQueryDto);
-            return R.ok(charMap);
+            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);
+            }
+            return R.ok(dateRangeStatistics);
 
         }
         return R.ok();
@@ -999,13 +1098,21 @@
         return null; // 如果没有找到,返回 null
     }
 
+    private Map<String, Object> findMapWithDateValue(List<Map<String, Object>> list, String date) {
+        for (Map<String, Object> map : list) {
+            if (date.equals(map.get("time"))) {
+                return map;
+            }
+        }
+        return null;
+    }
 
 
 
 
     @ResponseBody
     @PostMapping(value = "/work/use")
-    @ApiOperation(value = "运营情况", tags = {"管理后台-工作台"})
+    @ApiOperation(value = "利用率", tags = {"管理后台-工作台"})
     public R workUse(@RequestBody ChargingDetailQueryDto statisticsQueryDto) {
         List<Integer> siteIds = new ArrayList<>();
         if (statisticsQueryDto.getSiteId() == null) {
@@ -1029,7 +1136,34 @@
             BigDecimal result = chargingCapacity.divide(totalRatedPower, 2, RoundingMode.HALF_UP);
             map.put("chargingCapacity", result);
         });
-        return R.ok(capMap);
+
+
+
+        //
+        // 解析 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(capMap, formattedDate);
+
+            if (dailyStats != null) {
+                dateRangeStatistics.add(dailyStats);
+            } else {
+                Map<String, Object> dateMap = new HashMap<>();
+                dateMap.put("time", formattedDate);
+                dateMap.put("chargingCapacity", 0);
+                dateRangeStatistics.add(dateMap);
+            }
+
+            // 移动到下一天
+            startDate = startDate.plusDays(1);
+        }
+        return R.ok(dateRangeStatistics);
 
 
     }

--
Gitblit v1.7.1