From 7f0bcd00c556889ba890e5e68c681f1b5d4267e1 Mon Sep 17 00:00:00 2001 From: dengzedong <dengzedong@email> Date: 星期四, 19 十二月 2024 18:07:20 +0800 Subject: [PATCH] 预测项状态添加模型结果异常 --- iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mdk/predict/PredictModuleHandler.java | 48 +++++++++++++++++++++++++++++------------------- 1 files changed, 29 insertions(+), 19 deletions(-) diff --git a/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mdk/predict/PredictModuleHandler.java b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mdk/predict/PredictModuleHandler.java index ecf8a08..bf5be31 100644 --- a/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mdk/predict/PredictModuleHandler.java +++ b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mdk/predict/PredictModuleHandler.java @@ -1,5 +1,6 @@ package com.iailab.module.model.mdk.predict; +import com.iailab.module.model.mcs.pre.entity.MmItemOutputEntity; import com.iailab.module.model.mcs.pre.enums.ItemRunStatusEnum; import com.iailab.module.model.mcs.pre.enums.ItemStatus; import com.iailab.module.model.mcs.pre.service.MmItemStatusService; @@ -9,6 +10,7 @@ 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.time.Duration; @@ -46,29 +48,37 @@ * @param intervalTime * @return */ - public Map<String, PredictResultVO> predict(List<ItemVO> predictItemList, Date predictTime, int intervalTime) { - Map<String, PredictResultVO> result = new HashMap<>(); - - PredictResultVO predictResult = new PredictResultVO(); + public void predict(List<ItemVO> predictItemList, Date predictTime, int intervalTime,Map<String, PredictResultVO> predictResultMap) { + PredictResultVO predictResult; + Map<String, double[]> predictValueMap = null; + if (!CollectionUtils.isEmpty(predictResultMap)) { + // 将predictResultMap处理成Map<outPutId, double[]> + predictValueMap = new HashMap<>(); + for (Map.Entry<String, PredictResultVO> entry : predictResultMap.entrySet()) { + for (Map.Entry<MmItemOutputEntity, double[]> mmItemOutputEntityEntry : entry.getValue().getPredictMatrixs().entrySet()) { + predictValueMap.put(mmItemOutputEntityEntry.getKey().getId(),mmItemOutputEntityEntry.getValue()); + } + } + } for (ItemVO predictItem : predictItemList) { if (!predictItem.getStatus().equals(ItemStatus.STATUS1.getCode())) { continue; } Long totalDur = 0L; + ItemRunStatusEnum itemRunStatusEnum = ItemRunStatusEnum.PROCESSING; try { - mmItemStatusService.recordStatus(predictItem.getId(), ItemRunStatusEnum.PROCESSING, totalDur); + mmItemStatusService.recordStatus(predictItem.getId(), itemRunStatusEnum, totalDur, predictTime); PredictItemHandler predictItemHandler = predictItemFactory.create(predictItem.getId()); - Instant start = Instant.now(); + long start = System.currentTimeMillis(); try { // 预测项开始预测 - predictResult = predictItemHandler.predict(predictTime, predictItem); + predictResult = predictItemHandler.predict(predictTime, predictItem, predictValueMap,itemRunStatusEnum); } catch (Exception e) { - e.printStackTrace(); - log.error(String.valueOf(e)); + continue; } - Instant end = Instant.now(); - Long drtPre = Duration.between(start, end).getSeconds(); - log.info(MessageFormat.format("预测项:{0},预测时间:{1}秒", predictItem.getItemName(), drtPre)); + long end = System.currentTimeMillis(); + Long drtPre = end - start; + log.info(MessageFormat.format("预测项:{0},预测时间:{1}ms", predictItem.getItemName(), drtPre)); totalDur = totalDur + drtPre; predictResult.setGranularity(predictItem.getGranularity()); @@ -78,20 +88,20 @@ // 保存预测结果 predictResultHandler.savePredictResult(predictResult); - Instant endSave = Instant.now(); - Long drtSave = Duration.between(end, endSave).getSeconds(); - log.info(MessageFormat.format("预测项:{0},保存时间:{1}秒", predictItem.getItemName(), + long endSave = System.currentTimeMillis(); + Long drtSave = endSave - end; + log.info(MessageFormat.format("预测项:{0},保存时间:{1}ms", predictItem.getItemName(), drtSave)); totalDur = totalDur + drtSave; - mmItemStatusService.recordStatus(predictItem.getId(), ItemRunStatusEnum.SUCCESS, totalDur); - result.put(predictItem.getItemNo(), predictResult); + predictResultMap.put(predictItem.getItemNo(), predictResult); } catch (Exception e) { e.printStackTrace(); log.error(MessageFormat.format("预测项编号:{0},预测项名称:{1},预测失败:{2} 预测时刻:{3}", predictItem.getId(), predictItem.getItemName(), e.getMessage(), predictTime)); - mmItemStatusService.recordStatus(predictItem.getId(), ItemRunStatusEnum.FAIL, totalDur); + itemRunStatusEnum = ItemRunStatusEnum.FAIL; + } finally { + mmItemStatusService.recordStatus(predictItem.getId(), itemRunStatusEnum, totalDur, predictTime); } } - return result; } } \ No newline at end of file -- Gitblit v1.9.3