From fca00ddabb395a44c99b0a39b47a7cd2955aede0 Mon Sep 17 00:00:00 2001
From: puzhibing <393733352@qq.com>
Date: 星期五, 18 十月 2024 10:51:32 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'

---
 ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/mongodb/service/impl/UploadRealTimeMonitoringDataServiceImpl.java |   93 ++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 92 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 1fd1942..3f4912d 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,10 +1,17 @@
 package com.ruoyi.integration.mongodb.service.impl;
 
+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.model.UploadRealTimeMonitoringData;
 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;
+import org.springframework.data.mongodb.core.query.Query;
 import org.springframework.stereotype.Service;
 
 import java.util.List;
@@ -25,8 +32,92 @@
         return mongoTemplate.findById(id, UploadRealTimeMonitoringData.class);
     }
 
+
     @Override
     public List<UploadRealTimeMonitoringData> findAll() {
         return mongoTemplate.findAll(UploadRealTimeMonitoringData.class);
     }
+    
+    
+    /**
+     * 根据订单号查询监控数据
+     * @param code
+     * @return
+     */
+    @Override
+    public List<UploadRealTimeMonitoringData> getDataByOrderCode(String code) {
+        Query query = new Query();
+        if(StringUtils.isNotEmpty(code)){
+            query.addCriteria(Criteria.where("transaction_serial_number").is(code));
+        }
+        List<UploadRealTimeMonitoringData> uploadRealTimeMonitoringData = mongoTemplate.find(
+                query.with(Sort.by("create_time"))
+                , 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(mongoChargingOrderQuery.getPageCurr(), mongoChargingOrderQuery.getPageSize());
+        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