package com.iailab.module.model.mdk.predict.impl;
|
|
import com.iailab.framework.common.util.collection.CollectionUtils;
|
import com.iailab.module.model.mcs.pre.entity.MmPredictModelEntity;
|
import com.iailab.module.model.mcs.pre.service.MmPredictModelService;
|
import com.iailab.module.model.mdk.common.enums.ItemPredictStatus;
|
import com.iailab.module.model.mdk.common.exceptions.ItemInvokeException;
|
import com.iailab.module.model.mdk.common.exceptions.ModelInvokeException;
|
import com.iailab.module.model.mdk.predict.PredictItemHandler;
|
import com.iailab.module.model.mdk.predict.PredictModelHandler;
|
import com.iailab.module.model.mdk.vo.ItemVO;
|
import com.iailab.module.model.mdk.vo.PredictResultVO;
|
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.stereotype.Component;
|
|
import java.sql.Timestamp;
|
import java.text.MessageFormat;
|
import java.util.ArrayList;
|
import java.util.Calendar;
|
import java.util.Date;
|
import java.util.List;
|
|
/**
|
* @author PanZhibao
|
* @Description
|
* @createTime 2024年09月01日
|
*/
|
@Component
|
public class PredictItemNormalHandlerImpl implements PredictItemHandler {
|
|
@Autowired
|
private MmPredictModelService mmPredictModelService;
|
|
@Autowired
|
private PredictModelHandler predictModelHandler;
|
|
/**
|
* NormalItem预测
|
*
|
* @param predictTime
|
* @param predictItemDto
|
* @return
|
* @throws ItemInvokeException
|
*/
|
@Override
|
public PredictResultVO predict(Date predictTime, ItemVO predictItemDto)
|
throws ItemInvokeException{
|
PredictResultVO predictResult = new PredictResultVO();
|
String itemId = predictItemDto.getId();
|
predictResult.setPredictId(itemId);
|
try {
|
// 获取预测项模型
|
List<MmPredictModelEntity> predictModelList = mmPredictModelService.getActiveModelByItemId(itemId);
|
if (CollectionUtils.isAnyEmpty(predictModelList)) {
|
throw new ModelInvokeException(MessageFormat.format("{0},itemId={1}",
|
ModelInvokeException.errorGetModelEntity, itemId));
|
}
|
MmPredictModelEntity predictModel = predictModelList.get(0);
|
predictResult = predictModelHandler.predictByModel(predictTime, predictModel);
|
} catch (Exception ex) {
|
ex.printStackTrace();
|
//预测项预测失败的状态
|
throw new ItemInvokeException(MessageFormat.format("{0},itemId={1}",
|
ItemInvokeException.errorItemFailed, itemId));
|
}
|
|
return predictResult;
|
}
|
}
|