package cn.gov.customs.wxjy.common.importtool.core.interfaces;

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

public interface DataProcessor<T> {

	/**
	 * 获取已存在数据的唯一键集合
	 */
	Set<String> getExistingKeys();

	/**
	 * 获取已存在数据的映射（用于更新操作）
	 * 必须实现此方法，返回完整的数据映射
	 */
	Map<String, T> getExistingDataMap();

	/**
	 * 批量保存数据（新增）
	 */
	void batchSave(List<T> data);

	/**
	 * 批量更新数据（更新）
	 */
	void batchUpdate(List<T> data);

	/**
	 * 批次保存前的预处理
	 */
	default void preBatchSave(String uploadType) {
		// 默认不执行任何操作
	}

}
