package com.ruoyi.web.calculate.service;

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

import javax.servlet.http.HttpServletResponse;

import org.springframework.web.multipart.MultipartFile;

import com.ruoyi.common.core.domain.AjaxResult;
import com.ruoyi.web.calculate.domain.CmcEleDifSideLandDir;
import com.ruoyi.web.calculate.domain.CmcNonparallelismCorrection;

/**
 * 非平行差改正服务接口
 * 
 * @author qyx
 * @date 2026-06-22
 */
public interface ICmcNonparallelismCorrectionService {

    /**
     * 导入Excel数据（支持多个工作表和列映射）
     * 
     * @param file           Excel文件
     * @param sheetNames     工作表名称列表（可选，为空时读取所有工作表）
     * @param columnMappings 列映射配置（JSON字符串）
     * @return 导入结果
     */
    public AjaxResult importExcelData(MultipartFile file, List<String> sheetNames, String columnMappings);

    /**
     * 执行非平行差改正计算
     * 
     * @param cmcNonparallelismCorrection 非平行差改正参数
     * @return 计算结果
     */
    public List<CmcNonparallelismCorrection> calculateNonparallelismCorrection(
            List<CmcNonparallelismCorrection> dataList);

    /**
    * 获取Excel文件的所有工作表名称
    * 
    * @param file Excel文件
    * @return 工作表名称列表
    */
    public List<String> getSheetNames(MultipartFile file);
}
