|
@@ -8,6 +8,7 @@ import com.jiayue.ipp.idp.mapper.PowerStationStatusDataMapper;
|
|
import com.jiayue.ipp.idp.service.*;
|
|
import com.jiayue.ipp.idp.service.*;
|
|
import org.springframework.stereotype.Service;
|
|
import org.springframework.stereotype.Service;
|
|
|
|
|
|
|
|
+import java.math.BigDecimal;
|
|
import java.text.ParseException;
|
|
import java.text.ParseException;
|
|
import java.text.SimpleDateFormat;
|
|
import java.text.SimpleDateFormat;
|
|
import java.time.ZoneOffset;
|
|
import java.time.ZoneOffset;
|
|
@@ -498,4 +499,99 @@ public class PowerStationStatusDataServiceImpl extends ServiceImpl<PowerStationS
|
|
}
|
|
}
|
|
return baseMapper.selectList(wrapper);
|
|
return baseMapper.selectList(wrapper);
|
|
}
|
|
}
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+ /**
|
|
|
|
+ * 中心侧预测数据统计,查询短期、超短期实时表厂家是SYJY的,每个点位值累加一起展示
|
|
|
|
+ * @param startTime
|
|
|
|
+ * @param endTime
|
|
|
|
+ * @return
|
|
|
|
+ */
|
|
|
|
+ public Map<String, List> getCenterData(Date startTime, Date endTime) {
|
|
|
|
+ Long startDateTime = startTime.getTime();
|
|
|
|
+ Long endDateTime = endTime.getTime();
|
|
|
|
+
|
|
|
|
+ // 封装列表头信息
|
|
|
|
+ List headList = new ArrayList();
|
|
|
|
+ Map<String,String> timeHeadMap = new HashMap<>();
|
|
|
|
+ timeHeadMap.put("field", "time");
|
|
|
|
+ timeHeadMap.put("label", "时间");
|
|
|
|
+ headList.add(timeHeadMap);
|
|
|
|
+ Map<String,String> dqHeadMap = new HashMap<>();
|
|
|
|
+ dqHeadMap.put("field", "dq");
|
|
|
|
+ dqHeadMap.put("label", "短期(MW)");
|
|
|
|
+ headList.add(dqHeadMap);
|
|
|
|
+ Map<String,String> cdqHeadMap = new HashMap<>();
|
|
|
|
+ cdqHeadMap.put("field", "cdq");
|
|
|
|
+ cdqHeadMap.put("label", "超短期(MW)");
|
|
|
|
+ headList.add(cdqHeadMap);
|
|
|
|
+
|
|
|
|
+ // 获取短期数据SYJY
|
|
|
|
+ QueryWrapper<ForecastPowerShortTerm> wrapper = new QueryWrapper<>();
|
|
|
|
+ wrapper.eq("forecast_manufactor","SYJY");
|
|
|
|
+ wrapper.between("forecast_time", startTime, endTime);
|
|
|
|
+ List<ForecastPowerShortTerm> forecastPowerShortTermList = forecastPowerShortTermService.list(wrapper);
|
|
|
|
+ Map<Long, List<ForecastPowerShortTerm>> shortGroupMap = forecastPowerShortTermList.stream().collect(Collectors.groupingBy(s->s.getForecastTime().getTime()));
|
|
|
|
+
|
|
|
|
+ // 获取超短期数据SYJY
|
|
|
|
+ QueryWrapper<ForecastPowerUltraShortTerm> ultrawrapper = new QueryWrapper<>();
|
|
|
|
+ ultrawrapper.eq("forecast_manufactor","SYJY");
|
|
|
|
+ ultrawrapper.between("forecast_time", startTime, endTime);
|
|
|
|
+ List<ForecastPowerUltraShortTerm> forecastPowerUltraShortTermList = forecastPowerUltraShortTermService.list(ultrawrapper);
|
|
|
|
+ Map<Long, List<ForecastPowerUltraShortTerm>> ultraGroupMap = forecastPowerUltraShortTermList.stream().collect(Collectors.groupingBy(s->s.getForecastTime().getTime()));
|
|
|
|
+
|
|
|
|
+ List<String> timeList = new ArrayList<>();
|
|
|
|
+ List<String> dqList = new ArrayList();
|
|
|
|
+ List<String> cdqList = new ArrayList();
|
|
|
|
+
|
|
|
|
+ List<Map<String,Object>> tableList = new ArrayList();
|
|
|
|
+ SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
|
|
|
|
+ int i=0;
|
|
|
|
+ for (Long tempDateTime = startDateTime; tempDateTime < endDateTime; tempDateTime = tempDateTime + 15 * 60 * 1000) {
|
|
|
|
+ // 封装时间轴list
|
|
|
|
+ String time = format.format(tempDateTime);
|
|
|
|
+ timeList.add(time);
|
|
|
|
+ // 封装列表的数据
|
|
|
|
+ Map<String,Object> map1 = new HashMap<>();
|
|
|
|
+ map1.put("time", DateUtil.format(new Date(tempDateTime), "yyyy-MM-dd HH:mm"));
|
|
|
|
+ // 短期数据求和
|
|
|
|
+ BigDecimal dqBigDecimal = new BigDecimal(0);
|
|
|
|
+ if (shortGroupMap.get(tempDateTime)!=null){
|
|
|
|
+ List<ForecastPowerShortTerm> forecastPowerShortTermList1 = shortGroupMap.get(tempDateTime);
|
|
|
|
+ for (ForecastPowerShortTerm forecastPowerShortTerm:forecastPowerShortTermList1){
|
|
|
|
+ dqBigDecimal = dqBigDecimal.add(forecastPowerShortTerm.getFpValue());
|
|
|
|
+ }
|
|
|
|
+ map1.put("dq",dqBigDecimal.toString());
|
|
|
|
+ }
|
|
|
|
+ else{
|
|
|
|
+ map1.put("dq",0);
|
|
|
|
+ }
|
|
|
|
+ dqList.add(dqBigDecimal.toString());
|
|
|
|
+
|
|
|
|
+ // 超短期数据求和
|
|
|
|
+ BigDecimal cdqBigDecimal = new BigDecimal(0);
|
|
|
|
+ if (ultraGroupMap.get(tempDateTime)!=null){
|
|
|
|
+ List<ForecastPowerUltraShortTerm> forecastPowerUltraShortTermList1 = ultraGroupMap.get(tempDateTime);
|
|
|
|
+ for (ForecastPowerUltraShortTerm forecastPowerUltraShortTerm:forecastPowerUltraShortTermList1){
|
|
|
|
+ cdqBigDecimal = cdqBigDecimal.add(forecastPowerUltraShortTerm.getFpValue());
|
|
|
|
+ }
|
|
|
|
+ map1.put("cdq",cdqBigDecimal.toString());
|
|
|
|
+ }
|
|
|
|
+ else{
|
|
|
|
+ map1.put("cdq",0);
|
|
|
|
+ }
|
|
|
|
+ cdqList.add(cdqBigDecimal.toString());
|
|
|
|
+
|
|
|
|
+ tableList.add(map1);
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ Map<String, List> map = new HashMap<>();
|
|
|
|
+ map.put("dq", dqList);
|
|
|
|
+ map.put("cdq", cdqList);
|
|
|
|
+ map.put("time", timeList);
|
|
|
|
+ map.put("fromHead", headList);
|
|
|
|
+ map.put("tableList", tableList);
|
|
|
|
+
|
|
|
|
+ return map;
|
|
|
|
+ }
|
|
}
|
|
}
|