package com.chinaweal.aiccs.aiccs.abnormal.mapper;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.chinaweal.aiccs.aiccs.abnormal.entity.FileUploadRecord;
import com.chinaweal.aiccs.aiccs.abnormal.entity.vo.FileUploadRecordVO;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * <p>
 * 文件上传记录表 Mapper 接口
 * </p>
 *
 * @author Claude
 * @since 2025-11-06
 */
@Mapper
public interface FileUploadRecordMapper extends BaseMapper<FileUploadRecord> {

    /**
     * 根据 PRIPID 查询企业基本信息
     * @param pripid 主体身份代码
     * @return 企业基本信息
     */
    FileUploadRecord selectEntBaseInfoByPripid(@Param("pripid") String pripid);

    /**
     * 批量插入文件上传记录
     * @param records 文件上传记录列表
     * @return 插入成功的数量
     */
    int insertBatch(@Param("records") List<FileUploadRecord> records);

    /**
     * 更新文件上传记录
     * @param record 文件上传记录
     * @return 更新成功的数量
     */
    int updateRecord(FileUploadRecord record);

    /**
     * 根据 PRIPID 和文件路径查询记录
     * @param pripid 主体身份代码
     * @param uploadDir 文件路径
     * @return 文件上传记录
     */
    FileUploadRecord selectByPripidAndPath(@Param("pripid") String pripid, @Param("uploadDir") String uploadDir);

    /**
     * 检查企业是否已经迁出成功
     * @param pripid 主体身份代码
     * @return 迁出成功的记录数量
     */
    int countMoveOutSuccessByPripid(@Param("pripid") String pripid, @Param("moutId") String moutId);

    /**
     * 检查企业是否已经迁入成功
     * @param pripid 主体身份代码
     * @return 迁入成功的记录数量
     */
    int countMoveInSuccessByPripid(@Param("pripid") String pripid, @Param("minId") String minId);

    /**
     * 根据统一社会信用代码和企业名称查询文件上传记录列表（包含省份信息）
     * @param uniscid 统一社会信用代码（可选）
     * @param entname 企业名称（可选）
     * @return 文件上传记录列表
     */
    List<FileUploadRecordVO> selectFileUploadRecordsWithProvince(@Param("uniscid") String uniscid, @Param("entname") String entname);
}
