package com.iailab.module.model.mdk.sample; import com.iailab.module.model.mdk.common.exceptions.ModelInvokeException; import com.iailab.module.model.mdk.sample.dto.ColumnItemPort; import com.iailab.module.model.mdk.sample.dto.SampleData; import com.iailab.module.model.mdk.sample.dto.SampleInfo; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; import org.springframework.util.CollectionUtils; import java.text.MessageFormat; import java.util.Date; import java.util.List; import java.util.Map; /** * 样本构造 * * @author PanZhibao * @Description * @createTime 2024年09月03日 */ @Slf4j @Component public class SampleConstructor { @Autowired private SampleFactory sampleFactory; public List constructSample(String typeA, String modelId, Date runTime,String itemName, Map dynamicDataLength) throws ModelInvokeException { try { SampleInfoConstructor sampleInfoConstructor = sampleFactory.createSampleInfo(typeA, modelId); SampleInfo sampleInfo = sampleInfoConstructor.prepareSampleInfo(modelId, runTime); if (!CollectionUtils.isEmpty(dynamicDataLength) && sampleInfo.getColumnInfo() != null) { for(ColumnItemPort columnInfo : sampleInfo.getColumnInfo()) { if (!dynamicDataLength.containsKey(columnInfo.getPortOrder())) { continue; } columnInfo.setDataLength(dynamicDataLength.get(columnInfo.getPortOrder())); columnInfo.getColumnItemList().forEach(columnItem -> { columnItem.setDataLength(columnInfo.getDataLength()); }); } } SampleDataConstructor sampleDataConstructor = sampleFactory.createSampleData(typeA); return sampleDataConstructor.prepareSampleData(sampleInfo); } catch (Exception e) { e.printStackTrace(); log.error("获取模型的算法参数异常",e); throw new ModelInvokeException(MessageFormat.format("{0},Name:{1}", ModelInvokeException.errorGetModelArithParam, itemName)); } } }