package com.ruoyi.info.collection.service;

import com.ruoyi.info.collection.domain.excel.CcdiStaffFmyRelationExcel;
import com.ruoyi.info.collection.domain.vo.ImportStatusVO;
import com.ruoyi.info.collection.domain.vo.StaffFmyRelationImportFailureVO;

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

/**
 * 员工亲属关系异步导入 服务层
 *
 * @author ruoyi
 * @date 2026-02-09
 */
public interface ICcdiStaffFmyRelationImportService {

    /**
     * 异步导入员工亲属关系数据
     *
     * @param excelList Excel实体列表
     * @param taskId    任务ID
     * @param userName  用户名
     */
    void importRelationAsync(List<CcdiStaffFmyRelationExcel> excelList, String taskId, String userName);

    /**
     * 同步执行员工亲属关系导入并返回本轮成功关系映射
     *
     * @param excelList Excel实体列表
     * @param taskId    任务ID
     * @param userName  用户名
     * @return key为亲属证件号，value为归属员工证件号
     */
    Map<String, String> importRelationSync(List<CcdiStaffFmyRelationExcel> excelList, String taskId, String userName);

    /**
     * 查询导入失败记录
     *
     * @param taskId 任务ID
     * @return 失败记录列表
     */
    List<StaffFmyRelationImportFailureVO> getImportFailures(String taskId);

    /**
     * 查询导入状态
     *
     * @param taskId 任务ID
     * @return 导入状态信息
     */
    ImportStatusVO getImportStatus(String taskId);
}
