From 73b3a394952353c318a8712d2cc1efec03dc009d Mon Sep 17 00:00:00 2001 From: 潘志宝 <979469083@qq.com> Date: 星期四, 10 四月 2025 16:40:14 +0800 Subject: [PATCH] Merge branch 'master' of http://dlindusit.com:53929/r/iailab-plat --- iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/api/McsApiImpl.java | 45 ++++++++++++++++++++++++++++++++++++++++----- 1 files changed, 40 insertions(+), 5 deletions(-) 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 d54714e..7018392 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 @@ -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; @@ -118,7 +119,7 @@ private StScheduleModelSettingService stScheduleModelSettingService; @Autowired - private StAdjustConfigService stAdjustConfigService; + private MmPredictAutoAdjustConfigService autoAdjustService; private int HOUR_MINS = 60; @Override @@ -218,6 +219,7 @@ viewDto.setRealData(getHisData(output.getPointid(), startTime, endTime, reqVO.getPrec())); viewDto.setPreDataN(mmItemResultService.getData(output.getId(), startTime, endTime, DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)); viewDto.setPreDataL(mmItemResultLastPointService.getData(output.getId(), startTime, endTime, DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)); + viewDto.setPreDataLOriginal(mmItemResultLastPointService.getData(output.getId(), startTime, endTime, DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND,DataTypeEnum.FLOAT_LAST_BAK)); viewDto.setCurData(mmItemResultJsonService.getData(output.getId(), predictTime, DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)); // 模拟调整曲线 viewDto.setAdjData(stAdjustResultService.getData(output.getId(), predictTime, DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)); @@ -384,6 +386,7 @@ BigDecimal limitL = chartParams.get(CommonConstant.LIMIT_L) == null ? null : new BigDecimal(chartParams.get(CommonConstant.LIMIT_L)); int lengthLeft = chartParams.get(CommonConstant.LENGTH_LEFT) == null ? predictItem.getPredictLength() : new BigDecimal(chartParams.get(CommonConstant.LENGTH_LEFT)).intValue(); int lengthRight = chartParams.get(CommonConstant.LENGTH_RIGHT) == null ? predictItem.getPredictLength() : new BigDecimal(chartParams.get(CommonConstant.LENGTH_RIGHT)).intValue(); + int decimalPlaces = chartParams.get(CommonConstant.DECIMAL_PLACES) == null ? 3 : new BigDecimal(chartParams.get(CommonConstant.DECIMAL_PLACES)).intValue(); Date[] timeArray = calResultTime(predictItem, reqVO.getStartTime(), reqVO.getEndTime(), lengthLeft, lengthRight); Date predictTime = timeArray[0]; @@ -401,12 +404,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()); @@ -415,8 +431,8 @@ dataView.setPreDataN(mmItemResultService.getData(outPut.getId(), startTime, endTime, timeFormat)); break; case TL: - dataView.setPreDataN(mmItemResultService.getData(outPut.getId(), predictTime, endTime, timeFormat)); - dataView.setPreDataL(mmItemResultLastPointService.getData(outPut.getId(), startTime, endTime, timeFormat)); + dataView.setPreDataN(mmItemResultService.getData(outPut.getId(), predictTime, endTime, timeFormat, decimalPlaces)); + dataView.setPreDataL(mmItemResultLastPointService.getData(outPut.getId(), startTime, endTime, timeFormat, decimalPlaces)); break; default: break; @@ -715,7 +731,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(); @@ -890,6 +915,16 @@ return stScheduleSuggestService.useSuggest(reqVO); } + @Override + public List<ScheduleSuggestRespDTO> getLastSuggest(Map<String, Object> params) { + return stScheduleSuggestService.getLastSuggest(params); + } + + @Override + public Boolean autoAdjustByCode(MmPredictAutoAdjustReqVO reqVO) { + return autoAdjustService.autoAdjustByCode(reqVO.getConfigCode(),reqVO.getAdjustStartTime()); + } + private Date[] calResultTime(ItemVO predictItem, Date startTimeReq, Date endTimeReq, int lengthLeft, int lengthRight) { Date[] result = new Date[3]; Date predictTime = predictItem.getLastTime(); -- Gitblit v1.9.3