潘志宝
2025-04-16 c03d3aadb42d8c960022129cab6b9e07f6ae5ace
根据预测时间获取最后预测值
已修改3个文件
32 ■■■■■ 文件已修改
iailab-module-model/iailab-module-model-api/src/main/java/com/iailab/module/model/api/mcs/McsApi.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
iailab-module-model/iailab-module-model-api/src/main/java/com/iailab/module/model/api/mcs/dto/PredictLastValueReqVO.java 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/api/McsApiImpl.java 25 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
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);
}
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;
}
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;