package com.inspect.partrolresult.service;

import com.inspect.analysis.domain.ResultAnalysis;
import com.inspect.insreport.domain.InspectionReport;
import com.inspect.partrolresult.domain.*;
import com.inspect.resultmain.domain.PatrolTaskResultMain;
import com.inspect.system.base.openDomain.BasedataEqpBookMoMain;
import com.inspect.task.domain.PatrolData;
import com.inspect.taskstatus.domain.PatrolTaskStatus;

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

public interface IPatrolResultService {
    PatrolResult selectPatrolResultByLineId(Long lineId);

    Map<String, Object> selectBaseInfoByPointId(String pointId);

    Map<String, Object> selectBaseByPointId(String pointId);

    List<PatrolResult> selectPatrolResultList(PatrolResult patrolResult);

    PatrolResult selectPatrolResultByDeviceName(String deviceName);

    ResultAnalysis selectTaskAbnormalData(ResultAnalysis resultAnalysis);

    List<PatrolResult> selectPatrolResultListOrderBy(PatrolResult patrolResult);

    List<PatrolData> selectPatrolDataResultByTaskCode(PatrolResult patrolResult);

    List<PatrolData> selectPatrolDataResultByTaskCodeV2(ResultAnalysis resultAnalysis);

    List<PatrolData> selectPatrolDataResultByTaskCodeList(PatrolTaskStatus patrolTaskStatus);

    List<BasedataEqpBookMoMain> selectBasedataEqpBookList(BasedataEqpBookMoMain basedataEqpbookMomain);

    List<BasedataEqpBookMoMain> selectCamera(BasedataEqpBookMoMain basedataEqpBook);

    List<PatrolResult> selectPatroByAllDev(PatrolResult patrolResult);

    List<PatrolResult> selectPatroByAllDevByMainIds(PatrolResult patrolResult);

    List<AlgInfo> selectAlgInfo(PatrolResult patrolResult);

    Map<String, String> selectAlgorithmType(String patrolPointId);

    Map<String, String> selectAlgorithmInfo(String info);

    List<PatrolPresetPosModule> selectAlgorithmTypeList(String key);

    Map<String, String> selectPatrolPresetParam(String pointId);

    Map<String, String> selectThresholdByPointId(String pointId);

    Map<String, String> selectAlgTypeDataType(String key);

    Map<String, String> selectAlgTypeByCode(String code);

    Map<String, String> selectBasedataStation();

    List<Map<String, String>> selectEvnData(String key);

    Map<String, Object> selectDevInfoById(String id);

    Map<String, String> selectAreaByAudit(String key);

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

    List<Map<String, Object>> selectAreaInfoByParentId(String parentId);

    int insertPatrolResult(PatrolResult patrolResult);

    int updatePatrolResult(PatrolResult patrolResult);

    int updatePatrolResultByMainId(String mainId);

    int deletePatrolResultByLineIds(Long[] lineIds);

    int deletePatrolResultByLineId(Long lineId);

    Map<String, String> getPatrolResultValue(PatrolResult patrolResult);

    List<ResultValue> selectOilResultValue(PatrolResult patrolResult);

    List<ResultValue> select6FsResultValue(PatrolResult patrolResult);

    List<Long> saveReport(PatrolTaskResultMain resultMain, List<Long> lineIds, Long currentLineId, List<PatrolResult> resultList, int aiQxNum, int csQxNum);

    List<Long> saveReportLingzhou_v2(PatrolTaskResultMain resultMain, List<Long> lineIds, Long currentLineId, List<PatrolResult> resultList);

    List<Long> saveReportShaoxing(PatrolTaskResultMain resultMain, List<Long> lineIds, List<PatrolResult> resultList);

    List saveReportV2(PatrolTaskResultMain patrolTaskResultMain, List<PatrolResult> patrolResultList);

    List<PatrolResultRef> selectResultRefByLineId(String lineId);

    List<BasePointAreaInfo> selectBaseInfoByMainId(String mainId);

    List<InspectionPointResultVo> inspectResult(InspectionPointParam inspectionPointParam);

    BasedataEqpBookChannel selectChannelName(String channelCode);

    List<PatrolResult> selectPatrolResultListByMainIds(List<Long> mainIds);

    InspectionReport getInspectionReport(List<Long> lineIds, PatrolTaskResultMain patrolTaskResultMain);

    List<AlgInfo> selectPointAlgInfo(String patrolPointId);

    List<AlgInfo> selectAlgInfoByCode(String codes);

    List<String> selectAlgList(String taskCode, String sendCode, String specifiedAlg);
}
