From b69882bdf56305be94a361525342987fe3c64385 Mon Sep 17 00:00:00 2001
From: 无关风月 <443237572@qq.com>
Date: 星期四, 12 九月 2024 09:19:01 +0800
Subject: [PATCH] Merge branch 'master' of http://120.76.84.145:10101/gitblit/r/java/mx_charging_pile

---
 ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/controller/TParkingRecordController.java |   80 ++++++++++++++++++++++++++++++++++++++-
 1 files changed, 77 insertions(+), 3 deletions(-)

diff --git a/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/controller/TParkingRecordController.java b/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/controller/TParkingRecordController.java
index f108f25..09bedaa 100644
--- a/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/controller/TParkingRecordController.java
+++ b/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/controller/TParkingRecordController.java
@@ -8,10 +8,9 @@
 import com.ruoyi.chargingPile.api.model.TParkingLot;
 import com.ruoyi.chargingPile.api.model.TParkingRecord;
 import com.ruoyi.chargingPile.api.query.ParkingRecordQuery;
-import com.ruoyi.chargingPile.api.vo.GetParkingRecord;
-import com.ruoyi.chargingPile.api.vo.TParkingRecordPageInfoVO;
-import com.ruoyi.chargingPile.api.vo.TParkingRecordVO;
+import com.ruoyi.chargingPile.api.vo.*;
 import com.ruoyi.chargingPile.dto.ParkingRecordPageQuery;
+import com.ruoyi.chargingPile.dto.ParkingRecordQueryDto;
 import com.ruoyi.chargingPile.export.TParkingRecordExport;
 import com.ruoyi.chargingPile.service.TParkingLotService;
 import com.ruoyi.chargingPile.service.TParkingRecordService;
@@ -24,6 +23,7 @@
 import com.ruoyi.common.log.enums.BusinessType;
 import com.ruoyi.common.log.enums.OperatorType;
 import com.ruoyi.order.api.query.TOrderInvoiceQuery;
+import com.ruoyi.order.api.vo.TCharingUserEquimentVO;
 import com.ruoyi.order.api.vo.TOrderInvoiceVO;
 import io.swagger.annotations.ApiOperation;
 import org.apache.poi.ss.usermodel.Workbook;
@@ -34,9 +34,12 @@
 import javax.servlet.ServletOutputStream;
 import javax.servlet.http.HttpServletResponse;
 import java.io.IOException;
+import java.math.BigDecimal;
 import java.net.URLEncoder;
 import java.util.ArrayList;
 import java.util.List;
+import java.util.Map;
+import java.util.stream.Collectors;
 
 /**
  * <p>
@@ -182,5 +185,76 @@
     public void addParkingRecord(@RequestBody TParkingRecord parkingRecord){
         parkingRecordService.save(parkingRecord);
     }
+
+    @ResponseBody
+    @PostMapping(value = "/parking/data")
+    @ApiOperation(value = "统计", tags = {"管理后台-数据分析-车场运营分析"})
+    public R<TParkLotRecordVO> data(@RequestBody ParkingRecordQueryDto parkingRecordQueryDto){
+        //上方折线图
+        TParkLotRecordVO tParkLotRecordVO = new TParkLotRecordVO();
+
+        if (parkingRecordQueryDto.getDayType()==1) {
+            List<Map<String, Object>> maps = parkingRecordService.parkingData(parkingRecordQueryDto);
+            tParkLotRecordVO.setMaps(maps);
+        }else {
+            List<Map<String, Object>> maps = parkingRecordService.parkingDataByDate(parkingRecordQueryDto);
+            tParkLotRecordVO.setMaps(maps);
+        }
+
+        //车辆类型饼图
+        List<Map<String, Object>> carColor  =   parkingRecordService.getCarColor(parkingRecordQueryDto);
+
+        //出场类型
+        List<Map<String, Object>> outType  =   parkingRecordService.getOutType(parkingRecordQueryDto);
+
+        //进场充电占比
+        List<Map<String, Object>> isCharge  =   parkingRecordService.getIsCharge(parkingRecordQueryDto);
+
+
+        tParkLotRecordVO.setCarColor(carColor);
+        tParkLotRecordVO.setOutType(outType);
+        tParkLotRecordVO.setIsCharge(isCharge);
+        return R.ok(tParkLotRecordVO);
+
+    }
+
+
+    @ResponseBody
+    @PostMapping(value = "/parking/work")
+    @ApiOperation(value = "停车订单统计", tags = {"管理后台-工作台"})
+    public R<TParkLotRecordCountVo> work(@RequestBody ParkingRecordQueryDto parkingRecordQueryDto){
+        List<TParkingRecord> list = parkingRecordService.lambdaQuery().eq(parkingRecordQueryDto.getParkingLotId() != null, TParkingRecord::getParkingLotId, parkingRecordQueryDto.getParkingLotId())
+                .between(TParkingRecord::getCreateTime, parkingRecordQueryDto.getStartTime(), parkingRecordQueryDto.getEndTime()).list();
+        int count1 = list.size();
+        //统计出list中chargingOrderId为null的数据个数
+        int count2 = list.stream().filter(item -> item.getChargingOrderId() == null).collect(Collectors.toList()).size();
+        int count3 = count1-count2;
+        //计算出list中parkingDuration的总和
+        int count4 = 0;
+        for (TParkingRecord tParkingRecord : list) {
+            count4 = count4+tParkingRecord.getParkingDuration();
+        }
+        //计算出list中orderAmount的总和
+        BigDecimal count5 = list.stream().map(TParkingRecord::getOrderAmount).reduce(BigDecimal.ZERO, BigDecimal::add);
+
+        TParkLotRecordCountVo tParkLotRecordCountVo = new TParkLotRecordCountVo();
+        tParkLotRecordCountVo.setCount1(count1);
+        tParkLotRecordCountVo.setCount2(count2);
+        tParkLotRecordCountVo.setCount3(count3);
+        tParkLotRecordCountVo.setCount4(count4);
+        tParkLotRecordCountVo.setCount5(count5);
+
+        return R.ok(tParkLotRecordCountVo);
+
+    }
+
+    @ResponseBody
+    @PostMapping(value = "/parking/income")
+    @ApiOperation(value = "停车收入统计", tags = {"管理后台-工作台"})
+    public R income(@RequestBody ParkingRecordQueryDto parkingRecordQueryDto){
+
+       List<Map<String,Object>>  maps =  parkingRecordService.income(parkingRecordQueryDto);
+        return R.ok(maps);
+    }
 }
 

--
Gitblit v1.7.1