From 9380492f1821e0306ea4fa481b49e14bb09f433a Mon Sep 17 00:00:00 2001
From: Pu Zhibing <393733352@qq.com>
Date: 星期二, 04 三月 2025 10:16:10 +0800
Subject: [PATCH] 修改结束充电账单生成充电明细bug
---
ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/mongodb/service/impl/UploadRealTimeMonitoringDataServiceImpl.java | 144 +++++++++++++++++++++++++++++++++++++++++++++++-
1 files changed, 141 insertions(+), 3 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 2c81aa9..41ff351 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,13 +1,26 @@
package com.ruoyi.integration.mongodb.service.impl;
-import com.ruoyi.common.core.domain.R;
+import cn.hutool.db.sql.Direction;
+import com.ruoyi.common.core.utils.StringUtils;
import com.ruoyi.integration.api.model.UploadRealTimeMonitoringData;
+import com.ruoyi.integration.api.model.UploadRealTimeMonitoringPageData;
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.Page;
+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.data.mongodb.core.query.Update;
import org.springframework.stereotype.Service;
+import java.text.ParseException;
+import java.text.SimpleDateFormat;
+import java.util.Date;
import java.util.List;
@Service
@@ -31,9 +44,134 @@
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(Sort.Order.desc("create_time")))
+ , UploadRealTimeMonitoringData.class);
+ return uploadRealTimeMonitoringData;
+ }
@Override
- public R<UploadRealTimeMonitoringData> findByIdR(String id) {
- return R.ok(mongoTemplate.findById(id, UploadRealTimeMonitoringData.class));
+ public UploadRealTimeMonitoringPageData getDataAll(MongoChargingOrderQuery mongoChargingOrderQuery) throws ParseException {
+ 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("orderType").is(mongoChargingOrderQuery.getOrderType()));
+ }
+ if (mongoChargingOrderQuery.getSiteId() != null){
+ query.addCriteria(Criteria.where("siteId").is(mongoChargingOrderQuery.getSiteId()));
+ }
+ if (!mongoChargingOrderQuery.getSiteIds().isEmpty()){
+ query.addCriteria(Criteria.where("siteId").in(mongoChargingOrderQuery.getSiteIds()));
+ }
+ 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.getCreateTime() != null) {
+ String[] split = mongoChargingOrderQuery.getCreateTime().split(" - ");
+
+ SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+ Date start = dateFormat.parse(split[0]);
+ Date end = dateFormat.parse(split[1]);
+ query.addCriteria(Criteria.where("create_time").gte(start).lt(end));
+ }
+
+ if (mongoChargingOrderQuery.getLastTime() != null && mongoChargingOrderQuery.getLastTime() != null) {
+ String[] split = mongoChargingOrderQuery.getLastTime().split(" - ");
+ SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+ Date start = dateFormat.parse(split[0]);
+ Date end = dateFormat.parse(split[1]);
+ query.addCriteria(Criteria.where("last_time").gte(start).lt(end));
+ }
+
+
+
+
+
+
+
+
+
+ long totalElements = mongoTemplate.count(query, UploadRealTimeMonitoringData.class);
+
+ // 创建带有排序的 Pageable 对象
+ Pageable pageable = PageRequest.of(
+ mongoChargingOrderQuery.getPageCurr()-1,
+ mongoChargingOrderQuery.getPageSize(),
+ Sort.by(Sort.Direction.DESC, "create_time")
+ );
+
+ // 设置分页和排序
+ query.with(pageable);
+
+ // 执行查询并获取 Page 对象
+ List<UploadRealTimeMonitoringData> page = mongoTemplate.find(query, UploadRealTimeMonitoringData.class,"upload_real_time_monitoring_data");
+
+ // 设置分页
+// Pageable pageable = PageRequest.of(mongoChargingOrderQuery.getPageSize()*(mongoChargingOrderQuery.getPageCurr()-1), mongoChargingOrderQuery.getPageSize());
+// query.with(pageable);
+// query.with(Sort.by(Sort.Direction.DESC,"create_time"));
+ List<UploadRealTimeMonitoringData> uploadRealTimeMonitoringData = mongoTemplate.find(
+ query
+ , UploadRealTimeMonitoringData.class);
+
+ UploadRealTimeMonitoringPageData uploadRealTimeMonitoringPageData = new UploadRealTimeMonitoringPageData();
+ uploadRealTimeMonitoringPageData.setCount(totalElements);
+ uploadRealTimeMonitoringPageData.setRecords(page);
+ return uploadRealTimeMonitoringPageData;
}
+
+ @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);
+ }
+
+ @Override
+ public void delete(String id) {
+ UploadRealTimeMonitoringData byId = findById(id.toString());
+ mongoTemplate.remove(byId);
+ }
+
+ @Override
+ public void updateById(String id) {
+ // 创建查询条件
+ Query query = new Query(Criteria.where("_id").is(id));
+ // 创建更新对象
+ Update update = new Update().set("last_time", new Date());
+ // 执行更新操作
+ mongoTemplate.updateFirst(query, update, UploadRealTimeMonitoringData.class);
+ }
+
}
--
Gitblit v1.7.1