| | |
| | | import com.alibaba.fastjson.JSONArray; |
| | | import com.iailab.framework.common.util.date.DateUtils; |
| | | import com.iailab.module.model.common.enums.DataTypeEnum; |
| | | import com.iailab.module.model.influxdb.pojo.InfluxModelResultLastBakSimPOJO; |
| | | import com.iailab.module.model.influxdb.pojo.InfluxModelResultLastSimPOJO; |
| | | import com.iailab.module.model.influxdb.pojo.InfluxModelResultPOJO; |
| | | import com.iailab.module.model.influxdb.pojo.InfluxModelResultSimPOJO; |
| | |
| | | public void savePredictValue(Map<String, List<DataValueVO>> predictValueMap, int t, String nIndex, Date predictTime) { |
| | | List<InfluxModelResultPOJO> importList = new ArrayList<>(); |
| | | List<InfluxModelResultPOJO> lastList = new ArrayList<>(); |
| | | List<InfluxModelResultPOJO> lastBakList = new ArrayList<>(); |
| | | List<MmItemResultJsonEntity> resultJsonList = new ArrayList<>(); |
| | | |
| | | for (Map.Entry<String, List<DataValueVO>> entry : predictValueMap.entrySet()) { |
| | |
| | | pojo.setValue(dataVo.getDataValue()); |
| | | pojo.setTimestamp(dataVo.getDataTime().toInstant()); |
| | | pojo.setOutPutId(entry.getKey()); |
| | | pojo.setType(DataTypeEnum.FLOAT.getCode()); |
| | | importList.add(pojo); |
| | | } |
| | | |
| | |
| | | pojo.setValue(dataVo.getDataValue()); |
| | | pojo.setTimestamp(dataVo.getDataTime().toInstant()); |
| | | pojo.setOutPutId(entry.getKey()); |
| | | pojo.setType(DataTypeEnum.FLOAT.getCode()); |
| | | lastList.add(pojo); |
| | | |
| | | InfluxModelResultLastBakSimPOJO bakSimPojo = new InfluxModelResultLastBakSimPOJO(); |
| | | bakSimPojo.setValue(dataVo.getDataValue()); |
| | | bakSimPojo.setTimestamp(dataVo.getDataTime().toInstant()); |
| | | bakSimPojo.setOutPutId(entry.getKey()); |
| | | lastBakList.add(bakSimPojo); |
| | | } |
| | | |
| | | MmItemResultJsonEntity resultJson = new MmItemResultJsonEntity(); |
| | |
| | | // double结果存入influxdb |
| | | influxDBService.asyncWriteModelResults(importList); |
| | | influxDBService.asyncWriteModelResults(lastList); |
| | | // t+l备份 |
| | | influxDBService.asyncWriteModelResults(lastBakList); |
| | | } |
| | | |
| | | @Override |
| | |
| | | }); |
| | | return result; |
| | | } |
| | | |
| | | @Override |
| | | public List<Object[]> getData(String outputid, Date startTime, Date endTime, String timeFormat, int decimalPlaces) { |
| | | List<Object[]> result = new ArrayList<>(); |
| | | InfluxModelResultPOJO pojo = new InfluxModelResultPOJO(); |
| | | pojo.setType(DataTypeEnum.FLOAT.getCode()); |
| | | pojo.setOutPutId(outputid); |
| | | List<InfluxModelResultVO> influxModelResultVOS = influxDBService.queryModelResults(pojo, startTime, endTime); |
| | | influxModelResultVOS.forEach(item -> { |
| | | Object[] dataItem = new Object[2]; |
| | | dataItem[0] = DateUtils.format(Date.from(item.getTimestamp()), timeFormat); |
| | | dataItem[1] = BigDecimal.valueOf(Double.valueOf(item.getValue().toString())).setScale(decimalPlaces, BigDecimal.ROUND_HALF_UP); |
| | | result.add(dataItem); |
| | | }); |
| | | return result; |
| | | } |
| | | } |