dongyukun
6 天以前 f6eecba7ffb1535a2748f3f31ca255e2e0743267
iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mdk/sample/SampleConstructor.java
@@ -1,16 +1,18 @@
package com.iailab.module.model.mdk.sample;
import com.iailab.module.model.mdk.common.exceptions.DataAccessException;
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.sql.Timestamp;
import java.text.MessageFormat;
import java.util.Date;
import java.util.List;
import java.util.Map;
/**
 * 样本构造
@@ -19,20 +21,33 @@
 * @Description
 * @createTime 2024年09月03日
 */
@Slf4j
@Component
public class SampleConstructor {
    @Autowired
    private SampleFactory sampleFactory;
    public List<SampleData> constructSample(String typeA, String modelId, Date runTime,String itemName) throws ModelInvokeException {
    public List<SampleData> constructSample(String typeA, String modelId, Date runTime,String itemName, Map<Integer, Integer> dynamicDataLength) throws ModelInvokeException {
        try {
            SampleInfoConstructor sampleInfoConstructor = sampleFactory.createSampleInfo(typeA, modelId);
            SampleInfo sampleInfo = sampleInfoConstructor.prepareSampleInfo(modelId, runTime);
            SampleDataConstructor sampleDataConstructor = sampleFactory.createSampelData(typeA);
            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));
        }