From 4d7a208f388e42e7dd83dab0e38eadfa0847de1c Mon Sep 17 00:00:00 2001
From: 无关风月 <443237572@qq.com>
Date: 星期三, 11 十二月 2024 19:24:10 +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 |   79 ++++++++++++++++++++++++++++++++++++---
 1 files changed, 73 insertions(+), 6 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 f980197..b797113 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
@@ -5,6 +5,8 @@
 import cn.afterturn.easypoi.excel.entity.ExportParams;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.ruoyi.chargingPile.api.dto.GetSiteListDTO;
+import com.ruoyi.chargingPile.api.feignClient.SiteClient;
 import com.ruoyi.chargingPile.api.model.TParkingLot;
 import com.ruoyi.chargingPile.api.model.TParkingRecord;
 import com.ruoyi.chargingPile.api.query.ParkingRecordQuery;
@@ -22,6 +24,9 @@
 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.security.service.TokenService;
+import com.ruoyi.common.security.annotation.Logical;
+import com.ruoyi.common.security.annotation.RequiresPermissions;
 import com.ruoyi.order.api.query.TOrderInvoiceQuery;
 import com.ruoyi.order.api.vo.TCharingUserEquimentVO;
 import com.ruoyi.order.api.vo.TOrderInvoiceVO;
@@ -37,6 +42,7 @@
 import java.math.BigDecimal;
 import java.net.URLEncoder;
 import java.time.LocalDate;
+import java.time.LocalDateTime;
 import java.time.format.DateTimeFormatter;
 import java.util.ArrayList;
 import java.util.HashMap;
@@ -59,14 +65,44 @@
     private TParkingRecordService parkingRecordService;
     @Resource
     private TParkingLotService parkingLotService;
+    @Resource
+    private SiteClient siteClient;
+    @Resource
+    private TokenService tokenService;
 
+    
+    
+    @RequiresPermissions(value = {"/parkingRecord"}, logical = Logical.OR)
     @ApiOperation(tags = {"后台-订单管理-停车记录"},value = "列表")
     @PostMapping(value = "/page")
     public R<Page<TParkingRecord>> page(@RequestBody ParkingRecordPageQuery query) {
+        Long userid = tokenService.getLoginUser().getUserid();
+        List<Integer> siteIds = new ArrayList<>();
+
+            List<GetSiteListDTO> data = siteClient.getSiteListByUserId(userid).getData();
+            for (GetSiteListDTO datum : data) {
+                siteIds.add(datum.getId());
+            }
+        List<TParkingLot> list = parkingLotService.lambdaQuery().in(!siteIds.isEmpty(), TParkingLot::getSiteId, siteIds).list();
+        List<Integer> ids = new ArrayList<>();
+        for (TParkingLot tParkingLot : list) {
+            ids.add(tParkingLot.getId());
+        }
+
+        String s1 = "";
+        String s2 = "";
+        if (query.getTimePeriod()!=null){
+             s1 = query.getTimePeriod().split(" - ")[0];
+             s2 = query.getTimePeriod().split(" - ")[1];
+        }
         Page<TParkingRecord> page = parkingRecordService.lambdaQuery()
                 .like(query.getLicensePlate() != null, TParkingRecord::getLicensePlate, query.getLicensePlate())
                 .eq(query.getStatus() != null, TParkingRecord::getStatus, query.getStatus())
                 .eq(query.getOutParkingType() != null, TParkingRecord::getOutParkingType, query.getOutParkingType())
+                .between(query.getTimePeriod()!=null,TParkingRecord::getInParkingTime,s1,s2)
+                .or()
+                .between(query.getTimePeriod()!=null,TParkingRecord::getOutParkingTime,s1,s2)
+                .orderByDesc(TParkingRecord::getCreateTime)
                 .page(Page.of(query.getPageCurr(), query.getPageSize()));
 
         for (TParkingRecord record : page.getRecords()) {
@@ -78,12 +114,17 @@
         }
         return R.ok(page);
     }
-
+    
+    
+    @RequiresPermissions(value = {"/parkingPaymentOrder"}, logical = Logical.OR)
     @ApiOperation(tags = {"后台-订单管理-停车记录"},value = "停车缴费订单列表")
     @PostMapping(value = "/pageList")
     public R<TParkingRecordPageInfoVO> pageList(@RequestBody ParkingRecordQuery query) {
         return R.ok(parkingRecordService.pageList(query));
     }
+    
+    
+    @RequiresPermissions(value = {"/parkingPaymentOrder/export"}, logical = Logical.OR)
     @ApiOperation(tags = {"后台-订单管理-停车记录"},value = "导出")
     @PutMapping("/export")
     @Log(title = "【停车记录】导出停车记录", businessType = BusinessType.EXPORT,operatorType = OperatorType.MANAGE)
@@ -129,18 +170,25 @@
             }
         }
     }
+    
+    
+    
+    
     @ApiOperation(tags = {"后台-订单管理-停车记录"},value = "详情")
     @GetMapping(value = "/detail")
     public R<TParkingRecord> detail(Long id) {
       return R.ok(parkingRecordService.getById(id));
     }
-
+    
+    
+    @RequiresPermissions(value = {"/parkingRecord/already_appeared"}, logical = Logical.OR)
     @ApiOperation(tags = {"后台-订单管理-停车记录"},value = "出场")
     @GetMapping(value = "/out")
     @Log(title = "【停车记录】修改出场状态", businessType = BusinessType.UPDATE,operatorType = OperatorType.MANAGE)
     public R out(Long id) {
         TParkingRecord byId = parkingRecordService.getById(id);
         byId.setStatus(2);
+        byId.setOutParkingTime(LocalDateTime.now());
         parkingRecordService.updateById(byId);
         return R.ok();
 
@@ -190,7 +238,9 @@
     public void addParkingRecord(@RequestBody TParkingRecord parkingRecord){
         parkingRecordService.save(parkingRecord);
     }
-
+    
+    
+    @RequiresPermissions(value = {"/parkingOperationAnalysis"}, logical = Logical.OR)
     @ResponseBody
     @PostMapping(value = "/parking/data")
     @ApiOperation(value = "统计", tags = {"管理后台-数据分析-车场运营分析"})
@@ -275,6 +325,9 @@
         return R.ok(tParkLotRecordVO);
 
     }
+    
+    
+    
     private static Map<String, Object> findMapWithTimeValue(List<Map<String, Object>> charMap1,String timeValue) {
         for (Map<String, Object> map : charMap1) {
             if (map.containsKey("time") && map.get("time").equals(timeValue)) {
@@ -283,6 +336,8 @@
         }
         return null; // 如果没有找到,返回 null
     }
+    
+    
 
     private Map<String, Object> findMapWithDateValue(List<Map<String, Object>> list, String date) {
         for (Map<String, Object> map : list) {
@@ -292,11 +347,15 @@
         }
         return null;
     }
+    
+    
+    
+    @RequiresPermissions(value = {"/workbench"}, logical = Logical.OR)
     @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())
+        List<TParkingRecord> list = parkingRecordService.lambdaQuery().isNotNull(TParkingRecord::getOutParkingType).eq(parkingRecordQueryDto.getParkingLotId() != null, TParkingRecord::getParkingLotId, parkingRecordQueryDto.getParkingLotId())
                 .ge(parkingRecordQueryDto.getStartTime()!=null,TParkingRecord::getCreateTime, parkingRecordQueryDto.getStartTime())
                 .le(parkingRecordQueryDto.getEndTime()!=null,TParkingRecord::getCreateTime, parkingRecordQueryDto.getEndTime().plusDays(1)).list();
         int count1 = list.size();
@@ -321,11 +380,16 @@
         return R.ok(tParkLotRecordCountVo);
 
     }
+    
+    
+    
+    
+    @RequiresPermissions(value = {"/workbench"}, logical = Logical.OR)
     @ResponseBody
     @PostMapping(value = "/parking/work1")
     @ApiOperation(value = "停车订单统计", tags = {"管理后台-工作台"})
     public R<TParkLotRecordCountVo> work1(@RequestBody ParkingRecordQueryDto parkingRecordQueryDto){
-        List<TParkingRecord> list = parkingRecordService.lambdaQuery().eq(parkingRecordQueryDto.getParkingLotId() != null, TParkingRecord::getParkingLotId, parkingRecordQueryDto.getParkingLotId()).list();
+        List<TParkingRecord> list = parkingRecordService.lambdaQuery().isNotNull(TParkingRecord::getOutParkingType).eq(parkingRecordQueryDto.getParkingLotId() != null, TParkingRecord::getParkingLotId, parkingRecordQueryDto.getParkingLotId()).list();
         int count1 = list.size();
         //统计出list中chargingOrderId为null的数据个数
         int count2 = list.stream().filter(item -> item.getChargingOrderId() != null).collect(Collectors.toList()).size();
@@ -348,7 +412,10 @@
         return R.ok(tParkLotRecordCountVo);
 
     }
-
+    
+    
+    
+    @RequiresPermissions(value = {"/workbench"}, logical = Logical.OR)
     @ResponseBody
     @PostMapping(value = "/parking/income")
     @ApiOperation(value = "停车收入统计", tags = {"管理后台-工作台"})

--
Gitblit v1.7.1