All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.shoulder.batch.service.RecordService Maven / Gradle / Ivy

package org.shoulder.batch.service;

import org.shoulder.batch.enums.ProcessStatusEnum;
import org.shoulder.batch.model.BatchRecord;
import org.shoulder.batch.model.BatchRecordDetail;
import org.shoulder.core.dto.response.PageResult;

import java.util.Arrays;
import java.util.List;
import java.util.stream.Collectors;

/**
 * 批量处理记录
 *
 * @author lym
 */
public interface RecordService {


    /**
     * 根据任务标识获取批量处理记录详情,用于处理完毕查看结果以及将处理结果导出
     *
     * @param importCode 任务标识
     * @return ImportRecord
     */
    BatchRecord findRecordById(String importCode);

    /**
     * 分页获取处理列表(查询历史记录)
     *
     * @param dataType        数据类型
     * @param pageNum         页码
     * @param pageSize        页数
     * @param currentUserCode 当前用户
     * @return PageBean
     */
    PageResult pageQueryRecord(String dataType, Integer pageNum, Integer pageSize,
                                            String currentUserCode);

    /**
     * 获取某个用户的最后一次的批量处理记录
     *
     * @param dataType       数据类型,操作类型
     * @param currentUserName 当前用户
     * @return ImportRecord
     */
    BatchRecord findLastRecord(String dataType, String currentUserName);

    /**
     * 分页获取批处理详情列表,用于批处理完毕查看结果以及将结果导出
     *
     * @param taskId 任务标识
     * @return List
     */
    List findAllRecordDetail(String taskId);

    /**
     * 分页获取需要的结果数据
     *
     * @param taskId  任务标识
     * @param results 记录类型
     * @return List
     */
    default List findRecordDetailsByResults(String taskId, ProcessStatusEnum... results) {
        return findRecordDetailsByResults(taskId, Arrays.stream(results).collect(Collectors.toList()));
    }

    /**
     * 分页获取需要的结果数据
     *
     * @param taskId 任务标识
     * @param results     需过滤的处理结果类型、若为空 / null 则查询全部
     * @return 批处理详情
     */
    List findRecordDetailsByResults(String taskId, List results);


}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy