From c03d3aadb42d8c960022129cab6b9e07f6ae5ace Mon Sep 17 00:00:00 2001 From: 潘志宝 <979469083@qq.com> Date: 星期三, 16 四月 2025 09:52:50 +0800 Subject: [PATCH] 根据预测时间获取最后预测值 --- iailab-module-model/iailab-module-model-api/src/main/java/com/iailab/module/model/api/mcs/dto/PredictLastValueReqVO.java | 3 +++ iailab-module-model/iailab-module-model-api/src/main/java/com/iailab/module/model/api/mcs/McsApi.java | 4 ++++ iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/api/McsApiImpl.java | 25 +++++++++++++++++++++++++ 3 files changed, 32 insertions(+), 0 deletions(-) diff --git a/iailab-module-model/iailab-module-model-api/src/main/java/com/iailab/module/model/api/mcs/McsApi.java b/iailab-module-model/iailab-module-model-api/src/main/java/com/iailab/module/model/api/mcs/McsApi.java index 2f3292c..87c6276 100644 --- a/iailab-module-model/iailab-module-model-api/src/main/java/com/iailab/module/model/api/mcs/McsApi.java +++ b/iailab-module-model/iailab-module-model-api/src/main/java/com/iailab/module/model/api/mcs/McsApi.java @@ -165,4 +165,8 @@ @Operation(summary = "自动调整") Boolean autoAdjustByCode(@RequestBody MmPredictAutoAdjustReqVO reqVO); + @PostMapping(PREFIX + "/predict-data/time-value") + @Operation(summary = "根据预测时间获取最后预测值") + Map<String, BigDecimal> getPredictValueByTime(PredictLastValueReqVO reqVO); + } \ No newline at end of file diff --git a/iailab-module-model/iailab-module-model-api/src/main/java/com/iailab/module/model/api/mcs/dto/PredictLastValueReqVO.java b/iailab-module-model/iailab-module-model-api/src/main/java/com/iailab/module/model/api/mcs/dto/PredictLastValueReqVO.java index fccd0d9..cd96bee 100644 --- a/iailab-module-model/iailab-module-model-api/src/main/java/com/iailab/module/model/api/mcs/dto/PredictLastValueReqVO.java +++ b/iailab-module-model/iailab-module-model-api/src/main/java/com/iailab/module/model/api/mcs/dto/PredictLastValueReqVO.java @@ -3,6 +3,7 @@ import io.swagger.v3.oas.annotations.media.Schema; import lombok.Data; +import java.util.Date; import java.util.List; /** @@ -15,4 +16,6 @@ public class PredictLastValueReqVO { private List<String[]> itemNos; + + private Date predictTime; } \ No newline at end of file diff --git a/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/api/McsApiImpl.java b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/api/McsApiImpl.java index f4d7516..89431c1 100644 --- a/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/api/McsApiImpl.java +++ b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/api/McsApiImpl.java @@ -786,6 +786,7 @@ return result; } + @Override public Map<String, BigDecimal> getPredictLastValue(PredictLastValueReqVO reqVO) { Map<String, BigDecimal> result = new HashMap<>(reqVO.getItemNos().size()); if (CollectionUtils.isEmpty(reqVO.getItemNos())) { @@ -818,6 +819,30 @@ } @Override + public Map<String, BigDecimal> getPredictValueByTime(PredictLastValueReqVO reqVO) { + Map<String, BigDecimal> result = new HashMap<>(reqVO.getItemNos().size()); + if (CollectionUtils.isEmpty(reqVO.getItemNos())) { + return result; + } + List<String[]> itemNos = reqVO.getItemNos(); + for (String[] itemNo : itemNos) { + String key = itemNo[0] + "_" + itemNo[1] + "_" + itemNo[2]; + ItemVO predictItem = mmPredictItemService.getItemByItemNo(itemNo[0]); + if (predictItem == null || predictItem.getLastTime() == null) { + result.put(key, BigDecimal.ZERO); + } + MmItemOutputEntity outPut = mmItemOutputService.getByItemid(predictItem.getId(), itemNo[1], itemNo[2]); + List<Object[]> curData = mmItemResultJsonService.getData(outPut.getId(), reqVO.getPredictTime(), DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND); + if (CollectionUtils.isEmpty(curData)) { + result.put(key, BigDecimal.ZERO); + } else { + result.put(key, new BigDecimal(curData.get(curData.size() - 1)[1].toString())); + } + } + return result; + } + + @Override public List<StScheduleRecordVO> getLastScheduleData(String scheduleCode, Integer limit) { if (StringUtils.isBlank(scheduleCode)) { return null; -- Gitblit v1.9.3