소스 검색

[101903] report 表加 batch_no 列/insertBatch/countByBatchNo 及统计查询隔离

taosj 2 주 전
부모
커밋
00c8406070

+ 7 - 0
forecast-backend-server/src/main/java/com/ufo/project/forecast/shortterm/power/domain/DataShortTermPowerForecastReport.java

@@ -71,4 +71,11 @@ public class DataShortTermPowerForecastReport extends BaseEntity
     /** 预测功率 */
     @Excel(name = "预测功率")
     private String power;
+
+    /** 上报批次号 */
+    @Excel(name = "上报批次号")
+    private String batchNo;
+
+    /** 批量插入用 create_time(epoch 秒), 不进 resultMap/VO */
+    private Long createTimeEpoch;
 }

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

@@ -83,4 +83,20 @@ public interface DataShortTermPowerForecastReportMapper
      * @return 最新功率预测数据列表(按 forecast_time 升序)
      */
     public List<DataShortTermPowerForecastReport> selectLatestForecastList(@Param("entityId") String entityId, @Param("startTime") Long startTime, @Param("endTime") Long endTime);
+
+    /**
+     * 按上报批次号统计条数(用于批次幂等判断)
+     *
+     * @param batchNo 上报批次号
+     * @return 条数
+     */
+    public int countByBatchNo(@Param("batchNo") String batchNo);
+
+    /**
+     * 批量新增上报数据(固定列,create_time 取 createTimeEpoch)
+     *
+     * @param list 上报数据集合
+     * @return 结果
+     */
+    public int insertBatch(@Param("list") List<DataShortTermPowerForecastReport> list);
 }

+ 6 - 0
forecast-backend-server/src/main/java/com/ufo/project/forecast/supershort/domain/DataSuperShortTermForecastReport.java

@@ -69,4 +69,10 @@ public class DataSuperShortTermForecastReport extends BaseEntity
     @ExcelIgnore
     private Long forecastEndTime;
 
+    /** 上报批次号 */
+    @Excel(name = "上报批次号")
+    private String batchNo;
+
+    /** 批量插入用 create_time(epoch 秒), 不进 resultMap/VO */
+    private Long createTimeEpoch;
 }

+ 16 - 0
forecast-backend-server/src/main/java/com/ufo/project/forecast/supershort/mapper/DataSuperShortTermForecastReportMapper.java

@@ -81,4 +81,20 @@ public interface DataSuperShortTermForecastReportMapper
      * @return 最新功率预测数据列表(按 forecast_time 升序)
      */
     public List<DataSuperShortTermForecastReport> selectLatestForecastList(@Param("entityId") String entityId, @Param("startTime") Long startTime, @Param("endTime") Long endTime);
+
+    /**
+     * 按上报批次号统计条数(用于批次幂等判断)
+     *
+     * @param batchNo 上报批次号
+     * @return 条数
+     */
+    public int countByBatchNo(@Param("batchNo") String batchNo);
+
+    /**
+     * 批量新增上报数据(固定列,create_time 取 createTimeEpoch)
+     *
+     * @param list 上报数据集合
+     * @return 结果
+     */
+    public int insertBatch(@Param("list") List<DataSuperShortTermForecastReport> list);
 }

+ 18 - 1
forecast-backend-server/src/main/resources/mybatis/power/DataShortTermPowerForecastReportMapper.xml

@@ -16,10 +16,11 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         <result property="forecastTime"    column="forecast_time"    />
         <result property="predays"    column="predays"    />
         <result property="power"    column="power"    />
+        <result property="batchNo"    column="batch_no"    />
     </resultMap>
 
     <sql id="selectDataShortTermPowerForecastReportVo">
-        select _id, data_sourcegrab_id, data_sourcegrab_pattern_name, entity_id, entity_type, entity_name, to_timestamp(create_time) AS create_time, start_time, forecast_time, predays, power from data_short_term_power_forecast_report
+        select _id, data_sourcegrab_id, data_sourcegrab_pattern_name, entity_id, entity_type, entity_name, to_timestamp(create_time) AS create_time, start_time, forecast_time, predays, power, batch_no from data_short_term_power_forecast_report
     </sql>
 
     <select id="selectDataShortTermPowerForecastReportList" parameterType="DataShortTermPowerForecastReport" resultMap="DataShortTermPowerForecastReportResult">
@@ -120,6 +121,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         where entity_id = #{entityId}
           and forecast_time &gt;= #{startTime}
           and forecast_time &lt;= #{endTime}
+          and batch_no is null
         group by forecast_time
         order by forecast_time asc
     </select>
@@ -132,6 +134,21 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
           and forecast_time &gt;= #{startTime}
           and forecast_time &lt;= #{endTime}
           and forecast_time - start_time = 86400
+          and batch_no is null
         ORDER BY forecast_time asc, start_time desc, _id DESC
     </select>
+
+    <select id="countByBatchNo" resultType="int">
+        select count(1) from data_short_term_power_forecast_report where batch_no = #{batchNo}
+    </select>
+
+    <!-- 批量新增上报数据(固定列, create_time 取 createTimeEpoch) -->
+    <insert id="insertBatch" parameterType="list">
+        insert into data_short_term_power_forecast_report
+        (data_sourcegrab_id, data_sourcegrab_pattern_name, entity_id, entity_type, entity_name, create_time, start_time, forecast_time, predays, power, batch_no)
+        values
+        <foreach collection="list" item="item" separator=",">
+            (#{item.dataSourcegrabId}, #{item.dataSourcegrabPatternName}, #{item.entityId}, #{item.entityType}, #{item.entityName}, #{item.createTimeEpoch}, #{item.startTime}, #{item.forecastTime}, #{item.predays}, #{item.power}, #{item.batchNo})
+        </foreach>
+    </insert>
 </mapper>

+ 18 - 1
forecast-backend-server/src/main/resources/mybatis/supershort/DataSuperShortTermForecastReportMapper.xml

@@ -16,10 +16,11 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         <result property="forecastTime"    column="forecast_time"    />
         <result property="preQrts"    column="pre_qrts"    />
         <result property="power"    column="power"    />
+        <result property="batchNo"    column="batch_no"    />
     </resultMap>
 
     <sql id="selectDataSuperShortTermForecastReportVo">
-        select _id, data_sourcegrab_id, data_sourcegrab_pattern_name, entity_id, entity_type, entity_name, to_timestamp(create_time) AS create_time, start_time, forecast_time, pre_qrts, power from data_super_short_term_forecast_report
+        select _id, data_sourcegrab_id, data_sourcegrab_pattern_name, entity_id, entity_type, entity_name, to_timestamp(create_time) AS create_time, start_time, forecast_time, pre_qrts, power, batch_no from data_super_short_term_forecast_report
     </sql>
 
     <select id="selectDataSuperShortTermForecastReportList" parameterType="DataSuperShortTermForecastReport" resultMap="DataSuperShortTermForecastReportResult">
@@ -111,6 +112,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         where entity_id = #{entityId}
           and forecast_time &gt;= #{startTime}
           and forecast_time &lt;= #{endTime}
+          and batch_no is null
         group by forecast_time
         order by forecast_time asc
     </select>
@@ -123,6 +125,21 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
           and forecast_time &gt;= #{startTime}
           and forecast_time &lt;= #{endTime}
           and forecast_time - start_time = 14400
+          and batch_no is null
         ORDER BY forecast_time asc, start_time desc, _id DESC
     </select>
+
+    <select id="countByBatchNo" resultType="int">
+        select count(1) from data_super_short_term_forecast_report where batch_no = #{batchNo}
+    </select>
+
+    <!-- 批量新增上报数据(固定列, create_time 取 createTimeEpoch) -->
+    <insert id="insertBatch" parameterType="list">
+        insert into data_super_short_term_forecast_report
+        (data_sourcegrab_id, data_sourcegrab_pattern_name, entity_id, entity_type, entity_name, create_time, start_time, forecast_time, pre_qrts, power, batch_no)
+        values
+        <foreach collection="list" item="item" separator=",">
+            (#{item.dataSourcegrabId}, #{item.dataSourcegrabPatternName}, #{item.entityId}, #{item.entityType}, #{item.entityName}, #{item.createTimeEpoch}, #{item.startTime}, #{item.forecastTime}, #{item.preQrts}, #{item.power}, #{item.batchNo})
+        </foreach>
+    </insert>
 </mapper>