package com.chinaweal.aiccs.aicepsqy.mapper.datamove;

import com.chinaweal.aiccs.aicepsqy.entity.datamove.CapitalModel;
import org.apache.ibatis.annotations.Param;
import java.util.List;

/**
 * 企业资本信息临时表Mapper（动态插入）
 * @author lwd
 * @since 2025-11-04
 */
public interface CapitalModelMapper {

    /**
     * 动态插入数据到TREntCapitalTemp_2023或TREntCapitalTemp_2024表
     * @param entity 实体对象（需包含reportYear字段）
     * @return 插入成功条数
     */
    int insertDynamicTable(@Param("entity") CapitalModel entity);

    /**
     * 根据EntityNo和ReportYear查询记录（动态匹配表）
     * @param entityNo 主体编号
     * @param reportYear 报告年度（2023/2024）
     * @return 匹配的资本信息实体
     */
    List<CapitalModel> selectByEntityNoAndReportYear(
            @Param("entityNo") String entityNo,
            @Param("reportYear") String reportYear
    );

    /**
     * 根据EntityNo和ReportYear更新记录（动态匹配表）
     * @param entity 待更新的实体数据
     * @param entityNo 主体编号（定位条件1）
     * @param reportYear 报告年度（定位条件2）
     * @return 更新成功条数
     */
    int updateByEntityNoAndReportYear(
            @Param("entity") CapitalModel entity,
            @Param("entityNo") String entityNo,
            @Param("reportYear") String reportYear
    );

    int insertDynamicTablezs(@Param("entity") CapitalModel capitalModel);

    /**
     * 动态根据CapId主键查询（动态分表）
     * @param capId 主键ID（CapId）
     * @param reportYear 报告年度（用于定位分表）
     * @return 匹配的资本信息实体
     */
    CapitalModel selectCapitalModelByCapId(
            @Param("capId") String capId,
            @Param("reportYear") String reportYear
    );

    /**
     * 根据CapId主键删除（动态分表）
     * @param capId 主键ID（CapId）
     * @param reportYear 报告年度（用于定位分表）
     * @return 删除成功条数
     */
    int deleteCapitalModelByCapId(
            @Param("capId") String capId,
            @Param("reportYear") String reportYear
    );

    int deleteCapitalModelByCapIdzs(
            @Param("capId") String capId,
            @Param("reportYear") String reportYear
    );

}
