package com.jjt.calc.service;

import com.jjt.calc.domain.TwinCalcHourYhj;

import java.time.LocalDateTime;
import java.util.List;

/**
 * 印花机1小时统计数据Service接口
 *
 * @author wukai
 * @date 2025-03-06
 */
public interface ITwinCalcHourYhjService {
    /**
     * 查询印花机1小时统计数据
     *
     * @param id 印花机1小时统计数据主键
     * @return 印花机1小时统计数据
     */
    public TwinCalcHourYhj selectTwinCalcHourYhjById(Long id);

    /**
     * 查询印花机1小时统计数据列表
     *
     * @param twinCalcHourYhj 印花机1小时统计数据
     * @return 印花机1小时统计数据集合
     */
    public List<TwinCalcHourYhj> selectTwinCalcHourYhjList(TwinCalcHourYhj twinCalcHourYhj);

    /**
     * 新增印花机1小时统计数据
     *
     * @param twinCalcHourYhj 印花机1小时统计数据
     * @return 结果
     */
    public int insertTwinCalcHourYhj(TwinCalcHourYhj twinCalcHourYhj);

    /**
     * 修改印花机1小时统计数据
     *
     * @param twinCalcHourYhj 印花机1小时统计数据
     * @return 结果
     */
    public int updateTwinCalcHourYhj(TwinCalcHourYhj twinCalcHourYhj);

    /**
     * 批量删除印花机1小时统计数据
     *
     * @param ids 需要删除的印花机1小时统计数据主键集合
     * @return 结果
     */
    public int deleteTwinCalcHourYhjByIds(Long[] ids);

    /**
     * 删除印花机1小时统计数据信息
     *
     * @param id 印花机1小时统计数据主键
     * @return 结果
     */
    public int deleteTwinCalcHourYhjById(Long id);

    /**
     * 统计指定日期指定时段数据
     *
     * @param date   指定日期 yyyy-mm-dd
     * @param period 时段
     */
    public void calc(String date, int period);

    /**
     * 统计上一时段数据
     */
    void last();

    /**
     * 统计当日数据
     */
    void today();

    /**
     * 按指定时间统计
     *
     * @param start 开始时间
     * @param end   结束时间
     */
    void calc(LocalDateTime start, LocalDateTime end);

    /**
     * 查询数据库最后一条记录
     *
     * @return 结果
     */
    TwinCalcHourYhj lastRecord();

    /**
     * 补录数据至当前时间
     */
    void calc2Curr();

}
