From 3cfe12da8ecfb2ef23a0f5cbcf3b98e5b143826b Mon Sep 17 00:00:00 2001
From: luodangjia <luodangjia>
Date: 星期五, 18 十月 2024 10:48:41 +0800
Subject: [PATCH] 18

---
 ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/mongodb/service/impl/UploadRealTimeMonitoringDataServiceImpl.java |   69 ++++++++++++++++++++++++++++++++++
 1 files changed, 68 insertions(+), 1 deletions(-)

diff --git a/ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/mongodb/service/impl/UploadRealTimeMonitoringDataServiceImpl.java b/ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/mongodb/service/impl/UploadRealTimeMonitoringDataServiceImpl.java
index adfda0b..fb442ff 100644
--- a/ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/mongodb/service/impl/UploadRealTimeMonitoringDataServiceImpl.java
+++ b/ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/mongodb/service/impl/UploadRealTimeMonitoringDataServiceImpl.java
@@ -1,11 +1,13 @@
 package com.ruoyi.integration.mongodb.service.impl;
 
-import com.ruoyi.common.core.domain.R;
 import com.ruoyi.common.core.utils.StringUtils;
 import com.ruoyi.integration.api.model.UploadRealTimeMonitoringData;
 import com.ruoyi.integration.iotda.constant.IotConstant;
 import com.ruoyi.integration.mongodb.service.UploadRealTimeMonitoringDataService;
+import com.ruoyi.common.core.dto.MongoChargingOrderQuery;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.data.domain.PageRequest;
+import org.springframework.data.domain.Pageable;
 import org.springframework.data.domain.Sort;
 import org.springframework.data.mongodb.core.MongoTemplate;
 import org.springframework.data.mongodb.core.query.Criteria;
@@ -53,4 +55,69 @@
                 , UploadRealTimeMonitoringData.class);
         return uploadRealTimeMonitoringData;
     }
+
+    @Override
+    public List<UploadRealTimeMonitoringData> getDataAll(MongoChargingOrderQuery mongoChargingOrderQuery) {
+        Query query = new Query();
+//        if (!values.isEmpty()){
+//            query.addCriteria(Criteria.where("transaction_serial_number").in(values));
+//        }
+        if (mongoChargingOrderQuery.getCode() != null && !mongoChargingOrderQuery.getCode().isEmpty()) {
+            query.addCriteria(Criteria.where("transaction_serial_number").regex(mongoChargingOrderQuery.getCode(), "i")); // "i" 表示不区分大小写
+        }
+        if (mongoChargingOrderQuery.getOrderType() !=null){
+            query.addCriteria(Criteria.where("order_type").is(mongoChargingOrderQuery.getOrderType()));
+        }
+        if (mongoChargingOrderQuery.getSiteId() != null){
+            query.addCriteria(Criteria.where("site_id").is(mongoChargingOrderQuery.getSiteId()));
+        }
+        if (mongoChargingOrderQuery.getChargingPileCode() != null && !mongoChargingOrderQuery.getChargingPileCode().isEmpty()) {
+            query.addCriteria(Criteria.where("charging_pile_code").is(mongoChargingOrderQuery.getChargingPileCode()));
+        }
+        if (mongoChargingOrderQuery.getChargingGunCode() != null && !mongoChargingOrderQuery.getChargingGunCode().isEmpty()){
+            query.addCriteria(Criteria.where("charging_gun_code").is(mongoChargingOrderQuery.getChargingGunCode()));
+        }
+        if (mongoChargingOrderQuery.getStatus() != null){
+            query.addCriteria(Criteria.where("status").is(mongoChargingOrderQuery.getStatus()));
+        }
+
+        if (mongoChargingOrderQuery.getStartTime() != null) {
+            String[] split = mongoChargingOrderQuery.getStartTime().split(" - ");
+            query.addCriteria(Criteria.where("startTime").gte(split[0]).lt(split[1]));
+        }
+
+        if (mongoChargingOrderQuery.getEndTime() != null && mongoChargingOrderQuery.getEndTime() != null) {
+            String[] split = mongoChargingOrderQuery.getEndTime().split(" - ");
+
+            query.addCriteria(Criteria.where("lastTime").gte(split[0]).lt(split[1]));
+        }
+
+
+
+
+
+
+        // 设置分页
+        Pageable pageable = PageRequest.of(page, size);
+        query.with(pageable);
+
+        List<UploadRealTimeMonitoringData> uploadRealTimeMonitoringData = mongoTemplate.find(
+                query.with(Sort.by("create_time"))
+                , UploadRealTimeMonitoringData.class);
+        return uploadRealTimeMonitoringData;
+    }
+
+    @Override
+    public UploadRealTimeMonitoringData getLastDataById(String transaction_serial_number) {
+        Query query = new Query();
+        if (StringUtils.isNotEmpty(transaction_serial_number)){
+            query.addCriteria(Criteria.where("transaction_serial_number").is(transaction_serial_number));
+        }
+        // 按照 createdAt 字段降序排序
+        query.with(Sort.by(Sort.Direction.DESC, "create_time"));
+        // 限制结果只返回一条记录
+        query.limit(1);
+        return mongoTemplate.findOne(query, UploadRealTimeMonitoringData.class);
+    }
+
 }

--
Gitblit v1.7.1