You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
admin-client-temperature/src/main/java/com/rehome/mqttclienttemperature/service/impl/TemperatureServiceImpl.java

168 lines
6.8 KiB
Java

2 years ago
package com.rehome.mqttclienttemperature.service.impl;
6 months ago
import com.google.gson.Gson;
2 years ago
import com.rehome.mqttclienttemperature.dao.TemperatureRepository;
6 months ago
import com.rehome.mqttclienttemperature.dto.ResponseDto;
2 years ago
import com.rehome.mqttclienttemperature.entity.Temperature;
6 months ago
import com.rehome.mqttclienttemperature.service.*;
6 months ago
import lombok.extern.slf4j.Slf4j;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.PageRequest;
import org.springframework.data.domain.Pageable;
import org.springframework.data.domain.Sort;
2 years ago
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
2 years ago
import java.text.SimpleDateFormat;
import java.util.ArrayList;
2 years ago
import java.util.Date;
import java.util.List;
import java.util.Optional;
2 years ago
6 months ago
@Slf4j
2 years ago
@Service
public class TemperatureServiceImpl implements TemperatureService {
@Resource
private TemperatureRepository temperatureRepository;
6 months ago
@Resource
private OracleTemperatureService oracleTemperatureService;
6 months ago
@Resource
private SqlServerTemperatureService sqlServerTemperatureService;
6 months ago
@Resource
private KingbaseTemperatureService kingbaseTemperatureService;
@Resource
private PostgresSqlTemperatureService postgresSqlTemperatureService;
5 months ago
@Resource
private MysqlTemperatureService mysqlTemperatureService;
6 months ago
2 years ago
@Override
public void saveTemperature(String temperatureAndHumidityData,String topic) {
if(temperatureAndHumidityData!=null&&temperatureAndHumidityData.length()>0){
String[] strDataTemperature = temperatureAndHumidityData.split(" ");
Date now = new Date();
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
SimpleDateFormat sdfHour = new SimpleDateFormat("yyyy-MM-dd HH");
SimpleDateFormat sdfMinute = new SimpleDateFormat("yyyy-MM-dd HH:mm");
12 months ago
SimpleDateFormat sdfSecond = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
2 years ago
String nowDate = sdf.format(now);
String nowHour = sdfHour.format(now);
String dataMinute = sdfMinute.format(now);
12 months ago
String dataSecond = sdfSecond.format(now);
2 years ago
Temperature temperature = new Temperature();
temperature.setCreateDate(now);
2 years ago
temperature.setDataDate(nowDate);
temperature.setDataHour(nowHour);
temperature.setDataMinute(dataMinute);
if(topic!=null){
temperature.setTopic(topic);
if(topic.equals("WifiSHT/7C87CE9CA4E6/SHT20")){
temperature.setLocationDesc("广东省珠海市高新区唐家湾镇东岸村水风三街28号501");
}
if(topic.equals("WifiSHT/7C87CE9F5CBF/SHT20")){
2 years ago
temperature.setLocationDesc("广东省珠海市金湾区三灶镇百川路1号1栋1单元1508房");
2 years ago
}
if(topic.equals("WifiSHT/4CEBD686B6AA/SHT20")){
temperature.setLocationDesc("广西壮族自治区崇左市天等县天等镇荣华村弄在屯113号");
}
}
12 months ago
temperature.setHumidity(strDataTemperature[0]);
temperature.setTemperature(strDataTemperature[1]);
2 years ago
6 months ago
this.temperatureRepository.save(temperature);
5 months ago
mysqlTemperatureService.saveTemperature(temperature);
5 months ago
// ResponseDto responseDtoOracle = this.oracleTemperatureService.saveTemperature(temperature);
// log.info(new Gson().toJson(responseDtoOracle));
6 months ago
6 months ago
ResponseDto responseDtoSqlserver = this.sqlServerTemperatureService.saveTemperature(temperature);
log.info(new Gson().toJson(responseDtoSqlserver));
6 months ago
6 months ago
ResponseDto responseDtoKingBase = this.kingbaseTemperatureService.saveTemperature(temperature);
log.info(new Gson().toJson(responseDtoKingBase));
5 months ago
// ResponseDto responseDtoSPg = this.postgresSqlTemperatureService.saveTemperature(temperature);
// log.info(new Gson().toJson(responseDtoSPg));
6 months ago
2 years ago
}
}
12 months ago
@Override
public void saveTemperature(Temperature temperature) {
this.temperatureRepository.save(temperature);
}
@Override
public List<Temperature> findFirst10ByDataDateAndLocationDesc(String dataDate, String locationDesc) {
int page=1,size=10;
Sort sort = Sort.by(Sort.Direction.DESC, "id");
Pageable pageable = PageRequest.of(page, size, sort);
// userRepository.findALL(pageable);
// userRepository.findByUserName("testName", pageable);
Date now = new Date();
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
SimpleDateFormat sdfHour = new SimpleDateFormat("yyyy-MM-dd HH");
SimpleDateFormat sdfMinute = new SimpleDateFormat("yyyy-MM-dd HH:mm");
String nowDate = sdf.format(now);
Optional<List<Temperature>> listResult = Optional.ofNullable(temperatureRepository.findFirst10ByDataDateAndLocationDesc(dataDate, locationDesc, sort));
if(listResult.isPresent()){
return listResult.get();
}
return new ArrayList<>();
}
@Override
public List<Temperature> findFirst10ByLocationDesc(String locationDesc) {
int page=1,size=10;
Sort sort = Sort.by(Sort.Direction.DESC, "id");
Pageable pageable = PageRequest.of(page, size, sort);
// userRepository.findALL(pageable);
// userRepository.findByUserName("testName", pageable);
Date now = new Date();
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
SimpleDateFormat sdfHour = new SimpleDateFormat("yyyy-MM-dd HH");
SimpleDateFormat sdfMinute = new SimpleDateFormat("yyyy-MM-dd HH:mm");
String nowDate = sdf.format(now);
Optional<List<Temperature>> listResult = Optional.ofNullable(temperatureRepository.findFirst10ByDataDateAndLocationDesc(nowDate, locationDesc, sort));
if(listResult.isPresent()){
return listResult.get();
}
return new ArrayList<>();
}
@Override
public Temperature findFirstByOrderByLocationDescAsc(String locationDesc) {
Optional<Temperature> temperatureResult = Optional.ofNullable(temperatureRepository.findFirstByOrderByDataDateDesc());
if(temperatureResult.isPresent()){
return temperatureResult.get();
}
return null;
}
@Override
public List<Temperature> queryFirst10ByDataDateAndLocationDesc(String dataDate, String locationDesc) {
int page=0,size=10;
Sort sort = Sort.by(Sort.Direction.DESC, "id");
Pageable pageable = PageRequest.of(page, size, sort);
Page<Temperature> listResult = temperatureRepository.queryFirst10ByDataDateAndLocationDesc(dataDate, locationDesc, pageable);
if(listResult.getTotalPages()>0){
return listResult.getContent();
}
return new ArrayList<>();
}
2 years ago
}