package com.chinaweal.aiccs.aiccs.seriousillegal.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.chinaweal.aiccs.aiccs.business.entity.TSTaskList;
import com.chinaweal.aiccs.aiccs.seriousillegal.entity.EOtIlldisdetail;
import com.chinaweal.aiccs.aiccs.seriousillegal.entity.EOtIlldisdetailTemp;
import com.chinaweal.aiccs.aiccs.seriousillegal.entity.dto.RemoveAcceptDto;
import com.chinaweal.aicorg.model.AICUser;

import java.util.List;

/**
 * <p>
 * 其他部门列入严重违法失信企业名单（黑名单）详细信息表 服务类
 * </p>
 *
 * @author aiccs
 * @since 2026-03-05
 */
public interface IEOtIlldisdetailService extends IService<EOtIlldisdetail> {

    /**
     * 从Temp表复制数据到正式表
     * @param tempRecord Temp表记录
     * @return 复制后的正式表记录
     */
    EOtIlldisdetail copyFromTemp(EOtIlldisdetailTemp tempRecord);

    /**
     * 批量从Temp表复制数据到正式表
     * @param tempRecords Temp表记录列表
     * @return 是否成功
     */
    boolean batchCopyFromTemp(List<EOtIlldisdetailTemp> tempRecords);

    /**
     * 根据业务号查询Temp表记录
     * @param bizSeq 业务号
     * @return Temp表记录列表
     */
    List<EOtIlldisdetailTemp> listByBizSeq(String bizSeq);

    /**
     * 根据主键ID查询Temp表记录
     * @param illid 主键ID
     * @return Temp表记录
     */
    EOtIlldisdetailTemp getTempById(String illid);

    /**
     * 保存列入严重违法失信业务
     * @param aicUser 当前用户
     * @param taskListModel 待办信息
     * @param bizList 业务记录列表
     * @return 待办信息
     */
    TSTaskList saveEnterAccept(AICUser aicUser, TSTaskList taskListModel, List<EOtIlldisdetailTemp> bizList);

    /**
     * 保存移出严重违法失信业务
     * @param aicUser 当前用户
     * @param taskListModel 待办信息
     * @param dto 移出受理参数
     * @param remexcpresCn 移出事由中文名称
     * @return 待办信息
     */
    TSTaskList saveRemoveAccept(AICUser aicUser, TSTaskList taskListModel, RemoveAcceptDto dto, String remexcpresCn);

    /**
     * 保存移出严重违法失信业务（个案办理）
     * @param aicUser 当前用户
     * @param taskListModel 待办信息
     * @param bizList 业务记录列表
     * @return 待办信息
     */
    TSTaskList saveRemoveAccept(AICUser aicUser, TSTaskList taskListModel, List<EOtIlldisdetailTemp> bizList);

}