潘志宝
昨天 271fed395d4d3e4ab8cdb44ccf466859ba485e46
iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mdk/sample/SampleInfoConstructor.java
@@ -11,6 +11,7 @@
import com.iailab.module.model.mdk.sample.dto.ColumnItem;
import com.iailab.module.model.mdk.sample.dto.SampleInfo;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.util.CollectionUtils;
import java.util.Calendar;
import java.util.Date;
@@ -36,9 +37,9 @@
     * @param predictTime
     * @return
     */
    protected SampleInfo prepareSampleInfo(String modelId, Date predictTime) {
    protected SampleInfo prepareSampleInfo(String modelId, Date predictTime, Map<Integer, Integer> dynamicDataLength) {
        //样本的列信息
        return getColumnInfo(modelId, predictTime);
        return getColumnInfo(modelId, predictTime, dynamicDataLength);
    }
    /**
@@ -57,7 +58,7 @@
     * @param predictTime
     * @return
     */
    protected abstract SampleInfo getColumnInfo(String modelId, Date predictTime);
    protected abstract SampleInfo getColumnInfo(String modelId, Date predictTime, Map<Integer, Integer> dynamicDataLength);
    /**
     * 样本的采样周期
@@ -75,31 +76,19 @@
     * @return
     * @throws Exception
     */
    protected Date getStartTime(ColumnItem columnItem, Date originalTime, Map<String, ApiPointDTO> pointMap, Map<String, ApiPlanItemDTO> planMap) {
    protected Date getStartTime(ColumnItem columnItem, Date originalTime) {
        Date dateTime = new Date();
        Calendar calendar = Calendar.getInstance();
        calendar.setTime(originalTime);
        switch (ModelParamType.getEumByCode(columnItem.getParamType())) {
            case DATAPOINT:
                ApiPointDTO dataPoint = pointMap.get(columnItem.getParamId());
                if (dataPoint == null) {
                    return null;
                }
                dateTime = calculateTime(originalTime, true, columnItem.getDataLength(), DataPointFreqEnum.getEumByCode(dataPoint.getMinfreqid()).getValue());
            case IND:
            case PLAN:
                dateTime = calculateTime(originalTime, true, columnItem.getDataLength(), columnItem.getGranularity());
                break;
            case NORMALITEM:
            case MERGEITEM:
                dateTime = calendar.getTime();
                break;
            case IND:
                dateTime = calculateTime(originalTime, true, columnItem.getDataLength(), 60);
                break;
            case PLAN:
                ApiPlanItemDTO apiPlanItemDTO = planMap.get(columnItem.getParamId());
                if (apiPlanItemDTO == null) {
                    return null;
                }
                dateTime = calculateTime(originalTime, true, columnItem.getDataLength(), TimeGranularitySecEnum.getEumByCode(apiPlanItemDTO.getTimeGranularity()).getValue());
                break;
            default:
                break;
@@ -115,23 +104,19 @@
     * @return
     * @throws Exception
     */
    protected Date getEndTime(ColumnItem columnItem, Date originalTime,Map<String, ApiPointDTO> pointMap, Map<String, ApiPlanItemDTO> planMap) {
    protected Date getEndTime(ColumnItem columnItem, Date originalTime) {
        Date dateTime = new Date();
        Calendar calendar = Calendar.getInstance();
        calendar.setTime(originalTime);
        switch (ModelParamType.getEumByCode(columnItem.getParamType())) {
            case DATAPOINT:
            case IND:
            case PLAN:
                dateTime = calendar.getTime();
                break;
            case NORMALITEM:
            case MERGEITEM:
                dateTime = calculateTime(originalTime, false, columnItem.getDataLength(), 60);
                break;
            case IND:
                dateTime = calendar.getTime();
                break;
            case PLAN:
                dateTime = calendar.getTime();
                dateTime = calculateTime(originalTime, false, columnItem.getDataLength(), columnItem.getGranularity());
                break;
            default:
                break;
@@ -186,7 +171,7 @@
        if (backward) {
            timeLength = (-1) * dataLength;
        } else {
            timeLength = dataLength - 1;
            timeLength = dataLength;
        }
        Date desTime = originalTime;
        Calendar calendar = Calendar.getInstance();
@@ -196,4 +181,14 @@
        calendar.add(Calendar.SECOND, timeLength * granularity);
        return calendar.getTime();
    }
    protected int getDataLength(Map<Integer, Integer> dynamicDataLength, Integer port, Integer dataLength) {
        if (CollectionUtils.isEmpty(dynamicDataLength)) {
            return dataLength;
        }
        if (dynamicDataLength.containsKey(port)) {
            return dynamicDataLength.get(port);
        }
        return dataLength;
    }
}