|
|
@ -17,6 +17,7 @@ import com.mh.user.dto.EnergyPreEchartDataDTO; |
|
|
|
import com.mh.user.dto.EnergyPreTopDataDTO; |
|
|
|
import com.mh.user.dto.EnergyPreTopDataDTO; |
|
|
|
import com.mh.user.entity.HistoryDataPre; |
|
|
|
import com.mh.user.entity.HistoryDataPre; |
|
|
|
import com.mh.user.entity.SysParamEntity; |
|
|
|
import com.mh.user.entity.SysParamEntity; |
|
|
|
|
|
|
|
import com.mh.user.job.GetWeatherInfoJob; |
|
|
|
import com.mh.user.mapper.HistoryDataPreMapper; |
|
|
|
import com.mh.user.mapper.HistoryDataPreMapper; |
|
|
|
import com.mh.user.service.HistoryDataPreService; |
|
|
|
import com.mh.user.service.HistoryDataPreService; |
|
|
|
import com.mh.user.service.SysParamService; |
|
|
|
import com.mh.user.service.SysParamService; |
|
|
@ -27,6 +28,7 @@ import org.springframework.transaction.annotation.Transactional; |
|
|
|
|
|
|
|
|
|
|
|
import javax.annotation.Resource; |
|
|
|
import javax.annotation.Resource; |
|
|
|
import java.math.BigDecimal; |
|
|
|
import java.math.BigDecimal; |
|
|
|
|
|
|
|
import java.math.RoundingMode; |
|
|
|
import java.time.LocalDate; |
|
|
|
import java.time.LocalDate; |
|
|
|
import java.time.format.DateTimeFormatter; |
|
|
|
import java.time.format.DateTimeFormatter; |
|
|
|
import java.util.ArrayList; |
|
|
|
import java.util.ArrayList; |
|
|
@ -54,6 +56,10 @@ public class HistoryDataPreServiceImpl implements HistoryDataPreService { |
|
|
|
@Resource |
|
|
|
@Resource |
|
|
|
private SysParamService sysParamService; |
|
|
|
private SysParamService sysParamService; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@Resource |
|
|
|
|
|
|
|
private GetWeatherInfoJob getWeatherInfoJob; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
public static String[] convert(HistoryDataPre dataPre) { |
|
|
|
public static String[] convert(HistoryDataPre dataPre) { |
|
|
|
// 假设HistoryDataPre有字段如field1, field2, field3等,根据需要进行转换
|
|
|
|
// 假设HistoryDataPre有字段如field1, field2, field3等,根据需要进行转换
|
|
|
|
return new String[] { |
|
|
|
return new String[] { |
|
|
@ -98,15 +104,16 @@ public class HistoryDataPreServiceImpl implements HistoryDataPreService { |
|
|
|
@Override |
|
|
|
@Override |
|
|
|
public void startPredictData(String buildingId, String curDate) throws Exception { |
|
|
|
public void startPredictData(String buildingId, String curDate) throws Exception { |
|
|
|
// 判断是否存在天气温度数据以及现在的用水量用电量等
|
|
|
|
// 判断是否存在天气温度数据以及现在的用水量用电量等
|
|
|
|
int isPre = historyDataPreMapper.selectIsPre(buildingId, curDate); |
|
|
|
// int isPre = historyDataPreMapper.selectIsPre(buildingId, curDate);
|
|
|
|
if (isPre > 0) { |
|
|
|
// if (isPre > 0) {
|
|
|
|
return; |
|
|
|
// return;
|
|
|
|
} |
|
|
|
// }
|
|
|
|
// 获取当前天气数据
|
|
|
|
// 获取当前天气数据
|
|
|
|
SysParamEntity sysParam = sysParamService.selectSysParam(); |
|
|
|
SysParamEntity sysParam = sysParamService.selectSysParam(); |
|
|
|
Object weather = caffeineCache.getIfPresent(sysParam.getProArea()); |
|
|
|
Object weather = caffeineCache.getIfPresent(sysParam.getProArea()); |
|
|
|
if (weather == null) { |
|
|
|
if (weather == null) { |
|
|
|
return; |
|
|
|
getWeatherInfoJob.getWeatherInfo(); |
|
|
|
|
|
|
|
weather = caffeineCache.getIfPresent(sysParam.getProArea()); |
|
|
|
} |
|
|
|
} |
|
|
|
String weatherStr = (String) weather; |
|
|
|
String weatherStr = (String) weather; |
|
|
|
JSONObject jsonObject = JSON.parseObject(weatherStr); |
|
|
|
JSONObject jsonObject = JSON.parseObject(weatherStr); |
|
|
@ -154,7 +161,7 @@ public class HistoryDataPreServiceImpl implements HistoryDataPreService { |
|
|
|
for (int i = 0; i < result.getMatrixRowCount(); i++) { |
|
|
|
for (int i = 0; i < result.getMatrixRowCount(); i++) { |
|
|
|
String[] record = new String[result.getMatrixColCount()]; |
|
|
|
String[] record = new String[result.getMatrixColCount()]; |
|
|
|
for (int j = 0; j < result.getMatrixColCount(); j++) { |
|
|
|
for (int j = 0; j < result.getMatrixColCount(); j++) { |
|
|
|
record[j] = result.getValOfIdx(i, j)+""; |
|
|
|
record[j] = String.valueOf(result.getValOfIdx(i, j)); |
|
|
|
} |
|
|
|
} |
|
|
|
// 拼接预测值
|
|
|
|
// 拼接预测值
|
|
|
|
preHistoryData.setWaterValuePre(evaluateAndReturnBigDecimal(record[0])); |
|
|
|
preHistoryData.setWaterValuePre(evaluateAndReturnBigDecimal(record[0])); |
|
|
@ -178,7 +185,7 @@ public class HistoryDataPreServiceImpl implements HistoryDataPreService { |
|
|
|
public static BigDecimal evaluateAndReturnBigDecimal(String recordValue) { |
|
|
|
public static BigDecimal evaluateAndReturnBigDecimal(String recordValue) { |
|
|
|
BigDecimal value = new BigDecimal(recordValue); |
|
|
|
BigDecimal value = new BigDecimal(recordValue); |
|
|
|
if (value.compareTo(BigDecimal.ZERO) >= 0) { |
|
|
|
if (value.compareTo(BigDecimal.ZERO) >= 0) { |
|
|
|
return value; |
|
|
|
return value.setScale(2, RoundingMode.HALF_UP); |
|
|
|
} else { |
|
|
|
} else { |
|
|
|
return BigDecimal.ZERO; |
|
|
|
return BigDecimal.ZERO; |
|
|
|
} |
|
|
|
} |
|
|
|