package com.inspect.taskstatus.service;

import com.inspect.taskstatus.domain.PatrolTaskStatus;
import com.inspect.taskstatus.domain.TaskCount;

import java.util.List;

public interface IPatrolTaskStatusService {
    PatrolTaskStatus selectPatrolTaskStatusByLineId(Long lineId);

    PatrolTaskStatus selectPatrolTaskStatusByTaskPatrolledId(String taskPatrolledId);

    List<PatrolTaskStatus> selectPatrolTaskStatusList(PatrolTaskStatus patrolTaskStatus);

    List<PatrolTaskStatus> selectPatrolTaskStatusCount(PatrolTaskStatus patrolTaskStatus);

    List<TaskCount> selectCountList(PatrolTaskStatus patrolTaskStatus);

    List<TaskCount> selectCountListByDate(PatrolTaskStatus patrolTaskStatus);

    int insertPatrolTaskStatus(PatrolTaskStatus patrolTaskStatus);

    int updatePatrolTaskStatus(PatrolTaskStatus status);

    int updatePatrolTaskStatusOfTaskProgress(PatrolTaskStatus patrolTaskStatus);

    int updatePatrolTaskStatusOfTaskState(PatrolTaskStatus patrolTaskStatus);

    int updatePatrolTaskStatusOfTaskStateAndEndTime(PatrolTaskStatus patrolTaskStatus);

    int updatePatrolTaskStatusRunning(PatrolTaskStatus patrolTaskStatus);

    int deletePatrolTaskStatusByLineIds(Long[] lineIds);

    int deletePatrolTaskStatusByLineId(Long lineId);

    int insertIgnorePatrolTaskStatus(PatrolTaskStatus patrolTaskStatusMain);

    void updateTaskProgress(Long lineId, String taskProgress, String taskEstimatedTime, String taskState);

    List<PatrolTaskStatus> selectPatrolTaskStatusListByMainId(String taskPatrolledId);

    int generateTaskResultMain(PatrolTaskStatus patrolTaskStatusMain);

    PatrolTaskStatus selectPatrolTaskStatusMain(String taskPatrolledId);
}
