package com.inspect.task.service;

import com.alibaba.fastjson.JSONObject;
import com.inspect.task.domain.DeviceConvert;
import com.inspect.task.domain.PatrolData;
import com.inspect.task.domain.PatrolTask;
import com.inspect.taskstatus.domain.PatrolTaskStatus;

import java.util.List;
import java.util.Map;

public interface IPatrolTaskService {
    PatrolTask selectPatrolTaskByTaskId(Long taskId);

    String selectConfigByKey(String key);

    List<PatrolTask> selectPatrolTaskList(PatrolTask task);

    List<Map<String, String>> selectBasedataBdConfigDeviceConvert(DeviceConvert deviceConvert);

    List<Map<String, Object>> selectBaseDevice(String key);

    Map<String, Object> selectBaseDeviceByCode(String code);

    List<Map<String, Object>> selectBasePoint(String key);

    List<Map<String, Object>> selectBasePointByBj(String key);

    List<Map<String, Object>> selectBasePointByPointId(String pointId);

    List<Map<String, Object>> selectBasePointPre(String key);

    Map<String, Object> selectBaseEqBook(String key);

    int insertPatrolTask(PatrolTask patrolTask);

    int updatePatrolTask(PatrolTask patrolTask);

    int updatePatrolTaskTime(String time);

    int deletePatrolTaskByTaskIds(Long[] taskIds);

    int deletePatrolTaskByTaskId(Long taskId);

    List<Map<String, Long>> selectTaskRationalGroupByType();

    List<Map<String, String>> defectList1();

    List<Map<String, String>> defectList2();

    List<Map<String, String>> defectList3();

    List<Map<String, String>> pointStatistics();

    boolean correctionAlgorithm(PatrolData patrolData);

    void executeAsync(PatrolTaskStatus taskStatus);

    void executeTask();

    List<JSONObject> selectBasedataPatrolPointList(List<String> patrolPointIds);

    List<JSONObject> selectBasedataPatrolPointPresetList(List<String> patrolPointIds);

    List<JSONObject> selectPatrolPresetPosList(List<String> patrolPointIds);
}
