package com.jiayue.ipfcst.common.data.repository;


import com.jiayue.ipfcst.common.data.entity.ForecastPowerUltraShortTermOneHis;
import org.springframework.data.jpa.repository.Modifying;
import org.springframework.data.jpa.repository.Query;

import java.util.Date;
import java.util.List;

/**
 * 上报超短期预测数据实体
 *
 * @author zzy
 * @version 1.0
 * @since 2019/8/2 12:53
 */
public interface ForecastPowerUltraShortTermOneHisRepository extends BaseRepository<ForecastPowerUltraShortTermOneHis, Integer> {

	/**
	 * 根据时间段删除当前时刻生成的超短期历史期数据
	 *
	 * @param startTime 开始时间
	 * @param endTime   结束时间
	 */
	@Modifying
	@Query(value = "delete from ForecastPowerUltraShortTermOneHis t where t.forecastTime >= ?1 and t.forecastTime<= ?2 and t.genDate = ?3 ")
	void deleteNowMoment(Long startTime, Long endTime, Date nowMomentTime);

	/**
	 * 根据提前多久，开始结束时间查询历史超短期 yh
	 *
	 * @param startTime 开始时间
	 * @param endTime   结束时间
	 * @param ago       提前多久预测
	 * @return 结果集
	 */
	List<ForecastPowerUltraShortTermOneHis> findByForecastTimeBetweenAndForecastHowLongAgo(Long startTime, Long endTime, Integer ago);
	/**
	 * 根据提前多久，时间查询历史超短期 yh
	 *
	 * @param queryTime 时间
	 * @param ago       提前多久预测
	 * @return 结果集
	 */
	ForecastPowerUltraShortTermOneHis findByForecastTimeAndForecastHowLongAgo(Long queryTime, Integer ago);
	/**
	 * 根据预测时间查询历史超短期 yh
	 *
	 * @param queryTime 时间

	 * @return 结果集
	 */
	List<ForecastPowerUltraShortTermOneHis> findByForecastTime(Long queryTime);
	/**
	 * 根据提前多久，开始结束时间查询历史超短期 yh
	 *
	 * @param startTime 开始时间
	 * @param endTime   结束时间
	 * @return 结果集
	 */
	List<ForecastPowerUltraShortTermOneHis> findByForecastTimeBetween(Long startTime, Long endTime);



	List<ForecastPowerUltraShortTermOneHis> findByForecastTimeBetweenAndGenDate(Long startTime, Long endTime,Date nowMomentTime);
}
