#ifndef TASKDAO_H
#define TASKDAO_H

#include "BaseDao.h"

/**
 * @brief The TaskRequest struct
 * 部门任务 我的任务查询条件
 */
struct TaskRequest {
    QString userId; // 用户Id
    QString deptId; // 部门Id
    QString sampleName; // 样品/设备名称
    QString sampleModel; // 样品/设备型号
    QString customerName; // 委托方名称
    QString requireStart; // 要求检完时间-开始时间
    QString requireEnd; // 要求检完时间-结束时间
    QString isUrgent; // 是否加急
    QStringList measureStatusList; // 多选测试状态
};


class TaskDao : public BaseDao
{
public:
    TaskDao();

    QList<TaskDTO> getTaskListPage(TaskRequest request, Page& page);


private:
    QString generateTaskListPageWhereClause(TaskRequest request);
    void bindValueTaskListPage(QSqlQuery query, TaskRequest request);

    quint32 getTaskTotalCount(TaskRequest request);
};

#endif // TASKDAO_H
