package com.usky.iot.service;

import com.usky.common.core.bean.CommonPage;
import com.usky.iot.domain.PmTimeConf;
import com.usky.common.mybatis.core.CrudService;
import com.usky.iot.domain.PmWorkReport;
import com.usky.iot.service.vo.PmSubmitCountResponseVO;

import java.time.LocalDate;
import java.time.LocalDateTime;

/**
 * <p>
 * 工作报告提交时间配置表 服务类
 * </p>
 *
 * @author fu
 * @since 2025-01-10
 */
public interface PmTimeConfService extends CrudService<PmTimeConf> {

    /**
     * 获取提交统计
     * @param submitDate
     * @return
     */
    PmSubmitCountResponseVO submitCount(String submitDate);

    /**
     * 提交记录分页
     * @param queryType 查询类型（0：按时提交，1：迟交，2：未提交）
     * @param submitDate 提交日期
     * @param reportId 报告id
     * @param pageNum 页码
     * @param pageSize 页大小
     * @return 分页结果
     */
    CommonPage<Object> submitPage(String submitDate, Integer queryType, Integer reportId, Integer pageNum, Integer pageSize);

    /**
     * 获取提交时间
     * @return
     */
    public PmTimeConf getTimeConf(Integer tenantId);

    /**
     * 添加或修改报告统计时间配置
     * @param pmTimeConf
     */
    public void addOrUpdateTimeConf(PmTimeConf pmTimeConf);

    /**
     * 获取迟交报告
     * @param isOpen 是否开启（0：关闭，1：开启）
     * @param id 配置id
     */
    void isOpen(Integer isOpen, Integer id);
}
