package com.supervision.police.service;

import com.supervision.police.domain.FileOcrProcess;
import com.baomidou.mybatisplus.extension.service.IService;
import com.supervision.police.dto.OCRResDTO;
import com.supervision.police.dto.RecordFileDTO;

import java.util.List;
import java.util.function.Consumer;

/**
* @author Administrator
* @description 针对表【file_ocr_process(文件ocr识别进度表)】的数据库操作Service
* @createDate 2024-08-30 17:35:23
*/
public interface FileOcrProcessService extends IService<FileOcrProcess> {

    List<FileOcrProcess> asyncSubmitOCR(List<String> fileIdList);

    List<FileOcrProcess> syncSubmitOCR(List<String> fileIdList);

    List<FileOcrProcess> syncSubmitOCR(List<String> fileIdList, Consumer<List<FileOcrProcess>> consumer);


    void doOCRTask(List<FileOcrProcess> fileOcrProcesses);

    //异步调用
    void asyncDoOCRTask(List<FileOcrProcess> fileOcrProcesses);


    void doAllOCRTask();

    List<FileOcrProcess> pageListByStatus(Integer status,Integer size);

    Integer countByStatus(Integer status);

    Boolean updateOCrStatus(List<String> ocrIdList, Integer ocrStatus);

    Boolean updateByOcrRes(OCRResDTO ocrResDTO);


    List<RecordFileDTO> queryFileList(List<String> fileIdList);


    List<RecordFileDTO> queryFileListWithIdSort(List<String> fileIdList);


    List<RecordFileDTO> queryFileList(String status,List<String> fileIdList);


    List<RecordFileDTO> queryListByRecordId(String recordId);

    List<RecordFileDTO> queryFileListWithIdSortNoTransaction(List<String> fileIdList);


    void doWordCRTask(List<FileOcrProcess> fileOcrProcesses);

    void doPdfCRTask(List<FileOcrProcess> fileOcrProcesses);

}