package com.usky.iot.service;

import com.usky.iot.domain.PmWorkContent;
import com.usky.common.mybatis.core.CrudService;
import com.usky.iot.domain.PmWorkReport;
import java.util.List;

/**
 * <p>
 * 工作内容表 服务类
 * </p>
 *
 * @author fu
 * @since 2024-05-20
 */
public interface PmWorkContentService extends CrudService<PmWorkContent> {

    /**
     * 清空报告内容
     *
     * @param reportId 报告id
     */
    void deleteContent(Integer reportId);

    /**
     * 报告记录中查询项目名与id
     *
     * @param startDate         开始时间
     * @param endDate           结束时间
     * @param projectName       项目名
     * @param projectAscription 查询标识（1：我负责的；2：抄送我的）
     * @return
     */
    List<PmWorkContent> projectQuery(String startDate, String endDate, String projectName, Integer projectAscription, Integer reportId);

    /**
     * 报告记录
     *
     * @param startDate         开始时间
     * @param endDate           结束时间
     * @param projectName       项目名
     * @param projectAscription 查询标识（1：我负责的；2：抄送我的）
     * @return
     */
    List<PmWorkReport> workReportQuery(String startDate, String endDate, String projectName, Integer projectAscription, Integer reportId);

    /** 工时统计页面
     * @param userId          用户id
     * @param filter          是否过滤0工时（默认1：不过滤；2：过滤）
     * @param startDate       开始时间
     * @param endDate         结束时间
     * @param workerOrProject 打工仔还是项目（默认1：项目；2：打工仔）
     * @return 返回项目名（或牛马名）以及项目工时
     */
    List<Object> workHourStatistic(Long userId, Integer projectId, Integer filter, String startDate, String endDate, Integer workerOrProject);

}
