From 9057425fa1472e48d79f7f8608ea80267e224135 Mon Sep 17 00:00:00 2001 From: 潘志宝 <979469083@qq.com> Date: 星期三, 25 九月 2024 14:14:37 +0800 Subject: [PATCH] pre --- iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/api/MdkApiImpl.java | 55 ++++++++++++++++++++++++++++++++++++++++++++++++++++++- 1 files changed, 54 insertions(+), 1 deletions(-) diff --git a/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/api/MdkApiImpl.java b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/api/MdkApiImpl.java index 6a7df4f..40a2600 100644 --- a/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/api/MdkApiImpl.java +++ b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/api/MdkApiImpl.java @@ -1,23 +1,33 @@ package com.iailab.module.model.api; import com.alibaba.fastjson.JSON; +import com.iailab.framework.common.util.object.ConvertUtils; import com.iailab.module.model.api.mdk.MdkApi; import com.iailab.module.model.api.mdk.dto.*; import com.iailab.framework.common.pojo.CommonResult; import com.iailab.module.model.mcs.pre.entity.DmModuleEntity; import com.iailab.module.model.mcs.pre.service.DmModuleService; import com.iailab.module.model.mcs.pre.service.MmPredictItemService; +import com.iailab.module.model.mdk.factory.ItemEntityFactory; +import com.iailab.module.model.mdk.factory.PredictItemFactory; +import com.iailab.module.model.mdk.predict.PredictItemHandler; import com.iailab.module.model.mdk.predict.PredictModuleHandler; +import com.iailab.module.model.mdk.predict.PredictResultHandler; +import com.iailab.module.model.mdk.schedule.ScheduleModelHandler; +import com.iailab.module.model.mdk.vo.DataValueVO; import com.iailab.module.model.mdk.vo.ItemVO; import com.iailab.module.model.mdk.vo.PredictResultVO; +import com.iailab.module.model.mdk.vo.ScheduleResultVO; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.util.CollectionUtils; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RestController; import javax.validation.Valid; +import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; @@ -44,6 +54,18 @@ @Autowired private PredictModuleHandler predictModuleHandler; + + @Autowired + private ItemEntityFactory itemEntityFactory; + + @Autowired + private PredictItemFactory predictItemFactory; + + @Autowired + private PredictResultHandler predictResultHandler; + + @Autowired + private ScheduleModelHandler scheduleModelHandler; /** * 按模块预测 @@ -106,6 +128,27 @@ public CommonResult<MdkPredictItemRespDTO> predictItem(@Valid @RequestBody MdkPredictReqDTO reqDTO) { MdkPredictItemRespDTO resp = new MdkPredictItemRespDTO(); + try { + log.info("预测计算开始: " + System.currentTimeMillis()); + List<MdkPredictDataDTO> predictData = new ArrayList<>(); + ItemVO predictItem = itemEntityFactory.getItemByItemNo(reqDTO.getItemNo()); + PredictItemHandler predictItemHandler = (PredictItemHandler)predictItemFactory.create(predictItem.getId()); + PredictResultVO predictResult = predictItemHandler.predict(reqDTO.getPredictTime(), predictItem); + Map<String, List<DataValueVO>> resultMap = predictResultHandler.convertToPredictData(predictResult); + if (!CollectionUtils.isEmpty(resultMap)) { + for (Map.Entry<String, List<DataValueVO>> entry : resultMap.entrySet()) { + predictData = ConvertUtils.sourceToTarget(entry.getValue(), MdkPredictDataDTO.class); + } + } + resp.setPredictData(predictData); + resp.setItemId(predictItem.getId()); + resp.setPredictTime(reqDTO.getPredictTime()); + log.info("预测计算结束: " + System.currentTimeMillis()); + } catch (Exception ex) { + log.info("预测计算异常: " + System.currentTimeMillis()); + ex.printStackTrace(); + } + return success(resp); } @@ -131,7 +174,17 @@ @Override public CommonResult<MdkScheduleRespDTO> doSchedule(@Valid @RequestBody MdkScheduleReqDTO reqDTO) { MdkScheduleRespDTO resp = new MdkScheduleRespDTO(); - + resp.setScheduleCode(reqDTO.getScheduleCode()); + resp.setScheduleTime(reqDTO.getScheduleTime()); + try { + log.info("调度计算开始: " + System.currentTimeMillis()); + ScheduleResultVO scheduleResult = scheduleModelHandler.doSchedule(reqDTO.getModelCode(), reqDTO.getScheduleTime()); + resp.setResult(scheduleResult.getResult()); + log.info("预测计算结束: " + System.currentTimeMillis()); + } catch (Exception ex) { + log.info("调度计算异常: " + System.currentTimeMillis()); + ex.printStackTrace(); + } return success(resp); } } \ No newline at end of file -- Gitblit v1.9.3