| | |
| | | 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; |
| | |
| | | intervalTime = (int) (reqDTO.getPredictTime().getTime() - module.getPredicttime().getTime()) / (1000 * 60); |
| | | } |
| | | List<ItemVO> predictItemList = mmPredictItemService.getByModuleId(module.getId()); |
| | | Map<String, PredictResultVO> predictResultMap = predictModuleHandler.predict(predictItemList, reqDTO.getPredictTime(), intervalTime); |
| | | Map<String, PredictResultVO> predictResultMap = new HashMap<>(predictItemList.size()); |
| | | // 分组,先运行normal预测项,再将结果传递给merge预测项 |
| | | List<ItemVO> normalItems = predictItemList.stream().filter(e -> e.getItemType().equals("NormalItem")).collect(Collectors.toList()); |
| | | if (!CollectionUtils.isEmpty(normalItems)) { |
| | | predictModuleHandler.predict(normalItems, reqDTO.getPredictTime(), intervalTime,predictResultMap); |
| | | List<ItemVO> mergeItem = predictItemList.stream().filter(e -> e.getItemType().equals("MergeItem")).collect(Collectors.toList()); |
| | | if (!CollectionUtils.isEmpty(mergeItem)) { |
| | | predictModuleHandler.predict(mergeItem, reqDTO.getPredictTime(), intervalTime,predictResultMap); |
| | | } |
| | | } |
| | | // 更新Module时间 |
| | | dmModuleService.updatePredictTime(module.getId(), reqDTO.getPredictTime()); |
| | | if (reqDTO.getIsResult() == null || !reqDTO.getIsResult()) { |
| | | return resp; |
| | | } |
| | | for (Map.Entry<String, PredictResultVO> entry : predictResultMap.entrySet()) { |
| | | MdkPredictItemRespDTO itemResp = new MdkPredictItemRespDTO(); |
| | | itemResp.setItemId(entry.getKey()); |
| | | itemResp.setPredictTime(reqDTO.getPredictTime()); |
| | | Map<String, List<MdkPredictDataDTO>> itemPredictData = new HashMap<>(); |
| | | |
| | | // for (Map.Entry<String, PredictResultVO> entry : predictResultMap.entrySet()) { |
| | | // for (Map.Entry<String, List<DataValueVO>> dataListEntry : entry.getValue().getPredictLists().entrySet()) { |
| | | // List<MdkPredictDataDTO> predictData = dataListEntry.getValue().stream().map(t -> { |
| | | // MdkPredictDataDTO dto1 = new MdkPredictDataDTO(); |
| | | // dto1.setDataTime(t.getDataTime()); |
| | | // dto1.setDataValue(t.getDataValue()); |
| | | // return dto1; |
| | | // }).collect(Collectors.toList()); |
| | | // MdkPredictItemRespDTO itemResp = new MdkPredictItemRespDTO(); |
| | | // itemResp.setItemId(dataListEntry.getKey()); |
| | | // itemResp.setPredictData(predictData); |
| | | // predictItemRespMap.put(entry.getKey(), itemResp); |
| | | // } |
| | | // } |
| | | |
| | | // for (Map.Entry<String, PredictResultVO> entry : predictResultMap.entrySet()) { |
| | | // List<MdkPredictDataDTO> predictData = entry.getValue().getPredictList().stream().map(t-> { |
| | | // MdkPredictDataDTO dto1 = new MdkPredictDataDTO(); |
| | | // dto1.setDataTime(t.getDataTime()); |
| | | // dto1.setDataValue(t.getDataValue()); |
| | | // return dto1; |
| | | // }).collect(Collectors.toList()); |
| | | // MdkPredictItemRespDTO itemResp = new MdkPredictItemRespDTO(); |
| | | // itemResp.setItemId(entry.getValue().getPredictId()); |
| | | // itemResp.setPredictData(predictData); |
| | | // predictItemRespMap.put(entry.getKey(), itemResp); |
| | | // } |
| | | Map<String, List<DataValueVO>> predictLists = predictResultHandler.convertToPredictData2(entry.getValue()); |
| | | for (Map.Entry<String, List<DataValueVO>> dataListEntry : predictLists.entrySet()) { |
| | | List<MdkPredictDataDTO> predictData = dataListEntry.getValue().stream().map(t -> { |
| | | MdkPredictDataDTO dto1 = new MdkPredictDataDTO(); |
| | | dto1.setDataTime(t.getDataTime()); |
| | | dto1.setDataValue(t.getDataValue()); |
| | | return dto1; |
| | | }).collect(Collectors.toList()); |
| | | itemPredictData.put(dataListEntry.getKey(), predictData); |
| | | } |
| | | itemResp.setPredictData(itemPredictData); |
| | | predictItemRespMap.put(entry.getKey(), itemResp); |
| | | } |
| | | } |
| | | log.info("预测计算结束: " + System.currentTimeMillis()); |
| | | } catch (Exception ex) { |
| | |
| | | |
| | | try { |
| | | log.info("预测计算开始: " + System.currentTimeMillis()); |
| | | List<MdkPredictDataDTO> predictData = new ArrayList<>(); |
| | | Map<String, List<MdkPredictDataDTO>> predictData = new HashMap<>(); |
| | | ItemVO predictItem = itemEntityFactory.getItemByItemNo(reqDTO.getItemNo()); |
| | | PredictItemHandler predictItemHandler = (PredictItemHandler)predictItemFactory.create(predictItem.getId()); |
| | | PredictResultVO predictResult = predictItemHandler.predict(reqDTO.getPredictTime(), predictItem); |
| | | PredictItemHandler predictItemHandler = predictItemFactory.create(predictItem.getId()); |
| | | PredictResultVO predictResult = predictItemHandler.predict(reqDTO.getPredictTime(), predictItem,null,null); |
| | | 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); |
| | | List<MdkPredictDataDTO> data = ConvertUtils.sourceToTarget(entry.getValue(), MdkPredictDataDTO.class); |
| | | predictData.put(entry.getKey(), data); |
| | | } |
| | | } |
| | | resp.setPredictData(predictData); |
| | |
| | | resp.setPredictTime(reqDTO.getPredictTime()); |
| | | log.info("预测计算结束: " + System.currentTimeMillis()); |
| | | } catch (Exception ex) { |
| | | log.info("预测计算异常: " + System.currentTimeMillis(),ex); |
| | | log.info("预测计算异常: " + System.currentTimeMillis(), ex); |
| | | return resp; |
| | | } |
| | | |
| | |
| | | resp.setScheduleTime(reqDTO.getScheduleTime()); |
| | | try { |
| | | log.info("调度计算开始: " + System.currentTimeMillis()); |
| | | ScheduleResultVO scheduleResult = scheduleModelHandler.doSchedule(reqDTO.getModelCode(), reqDTO.getScheduleTime()); |
| | | ScheduleResultVO scheduleResult = scheduleModelHandler.doSchedule(reqDTO.getScheduleCode(), reqDTO.getScheduleTime()); |
| | | resp.setResult(scheduleResult.getResult()); |
| | | log.info("预测计算结束: " + System.currentTimeMillis()); |
| | | } catch (Exception ex) { |
| | | log.info("调度计算异常: " + System.currentTimeMillis()); |
| | | ex.printStackTrace(); |
| | | // ex.printStackTrace(); |
| | | return resp; |
| | | } |
| | | return resp; |