Selaa lähdekoodia

[0917] 短期报表表修复

taosj 1 kuukausi sitten
vanhempi
commit
f5211dc99b

+ 3 - 3
forecast-backend-server/src/main/java/com/ufo/project/data/service/impl/ShortTermPowerForecastReportServiceImpl.java

@@ -27,7 +27,7 @@ import com.ufo.project.data.domain.vo.ShortTermPowerForecastReportQuery;
 import com.ufo.project.data.domain.vo.ShortTermPowerForecastReportVO;
 import com.ufo.project.data.service.IShortTermPowerForecastReportService;
 import com.ufo.project.forecast.shortterm.power.domain.ForecastPowerAverage;
-import com.ufo.project.forecast.shortterm.power.service.IDataShortTermPowerForecastIssuedService;
+import com.ufo.project.forecast.shortterm.power.service.IDataShortTermPowerForecastReportService;
 import com.ufo.project.model.domain.DataElectricityLocal;
 import com.ufo.project.model.service.IDataElectricityLocalService;
 
@@ -55,7 +55,7 @@ public class ShortTermPowerForecastReportServiceImpl implements IShortTermPowerF
     private IDataElectricityLocalService electricityLocalService;
 
     @Autowired
-    private IDataShortTermPowerForecastIssuedService powerForecastIssuedService;
+    private IDataShortTermPowerForecastReportService powerForecastReportService;
 
     @Autowired
     private ISysDictTypeService dictTypeService;
@@ -88,7 +88,7 @@ public class ShortTermPowerForecastReportServiceImpl implements IShortTermPowerF
         // 2. 获取预测功率数据
         long utcStartTime = parseLong(startTime);
         long utcEndTime = parseLong(endTime);
-        List<ForecastPowerAverage> forecastList = powerForecastIssuedService.selectAveragePowerByTimeRange(
+        List<ForecastPowerAverage> forecastList = powerForecastReportService.selectAveragePowerByTimeRange(
                 entityId, utcStartTime, utcEndTime);
         this.dataShortTermPowerForecastIssued2Gmt8(forecastList);
 

+ 15 - 0
forecast-backend-server/src/main/java/com/ufo/project/forecast/shortterm/power/mapper/DataShortTermPowerForecastReportMapper.java

@@ -1,7 +1,11 @@
 package com.ufo.project.forecast.shortterm.power.mapper;
 
 import java.util.List;
+
+import org.apache.ibatis.annotations.Param;
+
 import com.ufo.project.forecast.shortterm.power.domain.DataShortTermPowerForecastReport;
+import com.ufo.project.forecast.shortterm.power.domain.ForecastPowerAverage;
 
 /**
  * 短期功率上报数据Mapper接口
@@ -58,4 +62,15 @@ public interface DataShortTermPowerForecastReportMapper
      * @return 结果
      */
     public int deleteDataShortTermPowerForecastReportByIds(Long[] Ids);
+
+        /**
+     * 查询场站指定时间范围内按预测时间分组的平均功率
+     *
+     * @param entityId 实体ID
+     * @param startTime 起始时间(unix秒)
+     * @param endTime 结束时间(unix秒)
+     * @return 按 forecast_time 分组的平均功率列表(按 forecast_time 升序)
+     */
+    public List<ForecastPowerAverage> selectAveragePowerByTimeRange(@Param("entityId") String entityId,
+            @Param("startTime") Long startTime, @Param("endTime") Long endTime);
 }

+ 10 - 0
forecast-backend-server/src/main/java/com/ufo/project/forecast/shortterm/power/service/IDataShortTermPowerForecastReportService.java

@@ -2,6 +2,7 @@ package com.ufo.project.forecast.shortterm.power.service;
 
 import java.util.List;
 import com.ufo.project.forecast.shortterm.power.domain.DataShortTermPowerForecastReport;
+import com.ufo.project.forecast.shortterm.power.domain.ForecastPowerAverage;
 
 /**
  * 短期功率上报数据Service接口
@@ -58,4 +59,13 @@ public interface IDataShortTermPowerForecastReportService
      * @return 结果
      */
     public int deleteDataShortTermPowerForecastReportById(Long Id);
+        /**
+     * 查询场站指定时间范围内按预测时间分组的平均功率
+     *
+     * @param entityId 实体ID
+     * @param startTime 起始时间(unix秒)
+     * @param endTime 结束时间(unix秒)
+     * @return 按 forecast_time 分组的平均功率列表(按 forecast_time 升序)
+     */
+    public List<ForecastPowerAverage> selectAveragePowerByTimeRange(String entityId, Long startTime, Long endTime);
 }

+ 1 - 0
forecast-backend-server/src/main/java/com/ufo/project/forecast/shortterm/power/service/impl/DataShortTermPowerForecastIssuedServiceImpl.java

@@ -121,4 +121,5 @@ public class DataShortTermPowerForecastIssuedServiceImpl implements IDataShortTe
     {
         return dataShortTermPowerForecastIssuedMapper.selectAveragePowerByTimeRange(entityId, startTime, endTime);
     }
+    
 }

+ 14 - 0
forecast-backend-server/src/main/java/com/ufo/project/forecast/shortterm/power/service/impl/DataShortTermPowerForecastReportServiceImpl.java

@@ -6,6 +6,7 @@ import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import com.ufo.project.forecast.shortterm.power.mapper.DataShortTermPowerForecastReportMapper;
 import com.ufo.project.forecast.shortterm.power.domain.DataShortTermPowerForecastReport;
+import com.ufo.project.forecast.shortterm.power.domain.ForecastPowerAverage;
 import com.ufo.project.forecast.shortterm.power.service.IDataShortTermPowerForecastReportService;
 
 /**
@@ -92,4 +93,17 @@ public class DataShortTermPowerForecastReportServiceImpl implements IDataShortTe
     {
         return dataShortTermPowerForecastReportMapper.deleteDataShortTermPowerForecastReportById(Id);
     }
+        /**
+     * 查询场站指定时间范围内按预测时间分组的平均功率
+     *
+     * @param entityId 实体ID
+     * @param startTime 起始时间(unix秒)
+     * @param endTime 结束时间(unix秒)
+     * @return 按 forecast_time 分组的平均功率列表
+     */
+    @Override
+    public List<ForecastPowerAverage> selectAveragePowerByTimeRange(String entityId, Long startTime, Long endTime)
+    {
+        return dataShortTermPowerForecastReportMapper.selectAveragePowerByTimeRange(entityId, startTime, endTime);
+    }
 }

+ 17 - 0
forecast-backend-server/src/main/resources/mybatis/power/DataShortTermPowerForecastReportMapper.xml

@@ -104,4 +104,21 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             #{Id}
         </foreach>
     </delete>
+
+        <!-- 按预测时间分组查询平均功率 -->
+    <resultMap type="ForecastPowerAverage" id="ForecastPowerAverageResult">
+        <result property="forecastTime" column="forecast_time" />
+        <result property="avgPower" column="avg_power" />
+    </resultMap>
+
+        <select id="selectAveragePowerByTimeRange" resultMap="ForecastPowerAverageResult">
+        select forecast_time,
+               avg(power::numeric) as avg_power
+        from data_short_term_power_forecast_report
+        where entity_id = #{entityId}
+          and forecast_time &gt;= #{startTime}
+          and forecast_time &lt;= #{endTime}
+        group by forecast_time
+        order by forecast_time asc
+    </select>
 </mapper>