From 15deef40aeb83d485fa1df9b5482b0deccfbdbc1 Mon Sep 17 00:00:00 2001 From: xuhy <3313886187@qq.com> Date: 星期一, 28 十月 2024 13:38:15 +0800 Subject: [PATCH] 修改 --- ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/mongodb/service/impl/UploadRealTimeMonitoringDataServiceImpl.java | 118 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 117 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..c23a6a6 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,12 +1,24 @@ package com.ruoyi.integration.mongodb.service.impl; +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.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.text.ParseException; +import java.text.SimpleDateFormat; +import java.util.Date; import java.util.List; @Service @@ -25,8 +37,112 @@ 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(Sort.Order.desc("create_time"))) + , UploadRealTimeMonitoringData.class); + return uploadRealTimeMonitoringData; + } + + @Override + 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.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(" - "); + + 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("startTime").gte(start).lt(end)); + } + + if (mongoChargingOrderQuery.getEndTime() != null && mongoChargingOrderQuery.getEndTime() != null) { + String[] split = mongoChargingOrderQuery.getEndTime().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("lastTime").gte(start).lt(end)); + } + + + + + + + + + + long totalElements = mongoTemplate.count(query, UploadRealTimeMonitoringData.class); + // 设置分页 + Pageable pageable = PageRequest.of(mongoChargingOrderQuery.getPageCurr(), 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(uploadRealTimeMonitoringData); + 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); + } + } -- Gitblit v1.7.1