潘志宝
9 天以前 4c1658f05f5be04b135920366ad4c417fad0c491
iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/api/McsApiImpl.java
@@ -23,6 +23,7 @@
import com.iailab.module.model.mcs.pre.entity.DmModuleEntity;
import com.iailab.module.model.mcs.pre.entity.MmItemOutputEntity;
import com.iailab.module.model.mcs.pre.entity.MmPredictAlarmMessageEntity;
import com.iailab.module.model.mcs.pre.enums.PredGranularityEnum;
import com.iailab.module.model.mcs.pre.service.*;
import com.iailab.module.model.mcs.pre.vo.MmItemOutputRespVO;
import com.iailab.module.model.mcs.pre.vo.MmPredictAlarmConfigSaveReqVO;
@@ -401,12 +402,25 @@
        dataView.setRangeL(rangeL);
        dataView.setLimitH(limitH);
        dataView.setLimitL(limitL);
        Map<String, Object> realDataMap = new HashMap<>();
        if (StringUtils.isNotBlank(outPut.getPointid())) {
            dataView.setRealData(getHisData(outPut.getPointid(), startTime, endTime, timeFormat));
            dataView.getRealData().forEach(item -> {
                realDataMap.put(item[0].toString(), item[1]);
            });
        } else {
            dataView.setRealData(new ArrayList<>());
        }
        dataView.setCurData(mmItemResultJsonService.getData(outPut.getId(), predictTime, timeFormat, 3));
        if (!CollectionUtils.isEmpty(realDataMap)) {
            Object curReal = realDataMap.get(DateUtils.format(predictTime, timeFormat)) == null ?
                    dataView.getRealData().get(dataView.getRealData().size() - 1) : realDataMap.get(DateUtils.format(predictTime, timeFormat));
            // 当前值T0 + 当前预测值 20250409
            dataView.setCurData(mmItemResultJsonService.getData(outPut.getId(), predictTime, timeFormat, 3, true, curReal));
        } else {
            dataView.setCurData(mmItemResultJsonService.getData(outPut.getId(), predictTime, timeFormat, 3));
        }
        // 调整预测值
        dataView.setAdjData(stAdjustResultService.getData(outPut.getId(),predictTime,timeFormat));
        dataView.setLineType(lineType.getCode());
@@ -715,7 +729,16 @@
            InfluxModelResultByOutPutIdsPOJO pojo = new InfluxModelResultByOutPutIdsPOJO();
            pojo.setOutPutIds(outPutIds);
            pojo.setType(DataTypeEnum.FLOAT.getCode());
            Map<String, List<InfluxModelResultVO>> outPutIdDoubles = influxDBService.queryModelResultsByOutPutIds(pojo, mmPredictItemRespVO.getLastTime(), mmPredictItemRespVO.getLastTime());
            // 查询时间加1粒度
            Calendar lastTime = Calendar.getInstance();
            lastTime.setTime(mmPredictItemRespVO.getLastTime());
            if (mmPredictItemRespVO.getGranularity() < PredGranularityEnum.D1.getCode()) {
                // 如果小于天粒度,则从下个时间粒度开始
                lastTime.add(Calendar.SECOND,mmPredictItemRespVO.getGranularity());
            }
            Map<String, List<InfluxModelResultVO>> outPutIdDoubles = influxDBService.queryModelResultsByOutPutIds(pojo, lastTime.getTime(), lastTime.getTime());
            Map<String, Double> outPutIdDouble = new HashMap<>(outPutIds.size());
            for (MmItemOutputRespVO outPut : mmPredictItemRespVO.getOutPuts()) {
                String outPutId = outPut.getId();
@@ -886,8 +909,13 @@
    }
    @Override
    public Boolean updateSuggestStatus(StAlarmAndSuggestReqVO reqVO) {
        return stScheduleSuggestService.updateSuggestStatus(reqVO);
    public Boolean useSuggest(StAlarmAndSuggestReqVO reqVO) {
        return stScheduleSuggestService.useSuggest(reqVO);
    }
    @Override
    public List<ScheduleSuggestRespDTO> getLastSuggest(Map<String, Object> params) {
        return stScheduleSuggestService.getLastSuggest(params);
    }
    private Date[] calResultTime(ItemVO predictItem, Date startTimeReq, Date endTimeReq, int lengthLeft, int lengthRight) {