package digital.laboratory.platform.inspection.utils;

import digital.laboratory.platform.inspection.utils.datafile.HairDataFileUtil;
import digital.laboratory.platform.inspection.utils.datafile.NPSDataFileUtil;
import digital.laboratory.platform.inspection.utils.datafile.SewageDataFileUtil;
import digital.laboratory.platform.inspection.utils.datafile.hair.HairSewageCompoundData;
import digital.laboratory.platform.inspection.utils.datafile.nps.NPSDataFileStruct;
import org.springframework.web.multipart.MultipartFile;

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

/**
 * @author xy
 * @version 1.0
 * @title TestDataFileUtil 实验数据文件解析工具类
 * @description
 * @create 2024/1/8 16:05
 */

public  class TestDataFileUtil {
    private static String getFileText(MultipartFile file) throws Exception{
        String charset = TextEncodeUtil.checkFileCharset(file);//查看文件流的编码格式
        String fileText = TextEncodeUtil.formatStream(file, charset);//将其转化为一个字符文本
        return fileText;
    }
    /**
     * 解析毛发实验数据文件  毛发任务数据，污水任务数据
     * @param file
     * @param code 1 调用毛发的方法 2 调用污水的方法
     * @return
     * @throws Exception
     */
    public static Map<String, List<HairSewageCompoundData>> analysisWtsDataFile(MultipartFile file, Integer code) throws Exception{
        String fileText=getFileText(file);
        Map<String, List<HairSewageCompoundData>> retMap = null;
        if (code == 1) {
            retMap=HairDataFileUtil.readDataFromText(fileText);
        } else if (code == 2) {
            retMap = SewageDataFileUtil.readDataFromText(fileText);
        } else {
            throw new RuntimeException("code 的值不合法！");
        }
        return retMap;
    }
    /**
     * 解析NPS案件的实验数据文件
     * @param file  实验数据文件
     * @throws Exception
     */
    public static List<NPSDataFileStruct> analysisNpsDataFile(MultipartFile file) throws Exception{
        String fileText=getFileText(file);
        //NPS数据文件解析
        List<NPSDataFileStruct> fileStructList= NPSDataFileUtil.readDataFromText(fileText);
        return fileStructList;
    }
    //解析冰毒，海洛因实验数据文件





}
