From f9273b84f4c430d98cd25b98a75d6d43cef9d4e2 Mon Sep 17 00:00:00 2001 From: dengzedong <dengzedong@email> Date: 星期三, 25 六月 2025 17:22:14 +0800 Subject: [PATCH] resp.setAdjustRate(scheduleResult.getAdjustRate()); --- iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/api/McsApiImpl.java | 162 +++++++++++------------------------------------------ 1 files changed, 35 insertions(+), 127 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 c956528..f5cc81a 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 @@ -12,6 +12,7 @@ import com.iailab.module.data.common.ApiDataQueryDTO; import com.iailab.module.model.api.mcs.McsApi; import com.iailab.module.model.api.mcs.dto.*; +import com.iailab.module.model.api.mdk.dto.MdkPredictDataDTO; import com.iailab.module.model.api.mdk.dto.StScheduleRecordVO; import com.iailab.module.model.common.enums.CommonDict; import com.iailab.module.model.common.enums.DataTypeEnum; @@ -36,6 +37,7 @@ import com.iailab.module.model.mcs.sche.vo.StScheduleRecordRespVO; import com.iailab.module.model.mcs.sche.vo.StScheduleSuggestSaveReqVO; import com.iailab.module.model.mcs.sche.vo.StSuggestOperationRecordReqVO; +import com.iailab.module.model.mdk.vo.DataValueVO; import com.iailab.module.model.mdk.vo.ItemVO; import com.iailab.module.model.mpk.service.ChartParamService; import com.iailab.module.model.mpk.service.ChartService; @@ -95,6 +97,9 @@ private StScheduleSuggestService stScheduleSuggestService; @Autowired + private StSuggestSnapshotRecordService stSuggestSnapshotRecordService; + + @Autowired private PlanItemApi planItemApi; @Autowired @@ -130,7 +135,8 @@ @Autowired private StSuggestOperationRecordService stSuggestOperationRecordService; - private int HOUR_MINS = 60; + @Autowired + private StSuggestSnapshotConfDetService stSuggestSnapshotConfDetService; @Override public List<PredictItemTreeDTO> getPredictItemTree() { @@ -173,131 +179,7 @@ @Override public PreDataBarLineRespVO getPreDataCharts(PreDataBarLineReqVO reqVO) { - PreDataBarLineRespVO result = new PreDataBarLineRespVO(); - List<String> outIds = reqVO.getOutIds(); - List<String> legends = new ArrayList<>(); - List<PreDataViewRespDTO> dataViewList = new ArrayList<>(); - if (CollectionUtils.isEmpty(outIds)) { - return result; - } - Date predictTime = reqVO.getPredictTime(); - if (predictTime == null) { - MmItemOutputEntity output = null; - for (String outId : outIds) { - output = mmItemOutputService.getOutPutById(outId); - if (output != null) { - break; - } - } - ItemVO predictItem = mmPredictItemService.getItemById(output.getItemid()); - if (predictItem.getLastTime() != null) { - predictTime = predictItem.getLastTime(); - } else { - Calendar calendar = Calendar.getInstance(); - calendar.set(Calendar.MILLISECOND, 0); - calendar.set(Calendar.SECOND, 0); - predictTime = calendar.getTime(); - } - } - Date startTime = reqVO.getStartTime(); - if (startTime == null) { - Calendar calendar = Calendar.getInstance(); - calendar.setTime(predictTime); - calendar.add(Calendar.HOUR_OF_DAY, -1); - startTime = calendar.getTime(); - } - Date endTime = reqVO.getEndTime(); - if (endTime == null) { - Calendar calendar = Calendar.getInstance(); - calendar.setTime(predictTime); - calendar.add(Calendar.HOUR_OF_DAY, 1); - calendar.add(Calendar.MINUTE, 1); - endTime = calendar.getTime(); - } - - for (int i = 0; i < outIds.size(); i++) { - PreDataViewRespDTO viewDto = new PreDataViewRespDTO(); - String outId = outIds.get(i); - MmItemOutputEntity output = mmItemOutputService.getOutPutById(outId); - if (output == null) { - continue; - } - legends.add(output.getResultName()); - viewDto.setItemId(output.getItemid()); - viewDto.setOutId(outId); - viewDto.setResultstr(output.getResultstr()); - viewDto.setResultName(output.getResultName()); - 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)); - - List<Double> values = new ArrayList<>(); - if (!CollectionUtils.isEmpty(viewDto.getRealData())) { - List<Double> hisValues = new ArrayList<>(); - viewDto.getRealData().forEach(item -> { - values.add(Double.parseDouble(item[1].toString())); - hisValues.add(Double.parseDouble(item[1].toString())); - }); - viewDto.setHisMax(new BigDecimal(hisValues.stream().mapToDouble(Double::doubleValue).max().getAsDouble()).setScale(2, BigDecimal.ROUND_HALF_UP)); - viewDto.setHisMin(new BigDecimal(hisValues.stream().mapToDouble(Double::doubleValue).min().getAsDouble()).setScale(2, BigDecimal.ROUND_HALF_UP)); - viewDto.setHisAvg(new BigDecimal(hisValues.stream().mapToDouble(Double::doubleValue).average().getAsDouble()).setScale(2, BigDecimal.ROUND_HALF_UP)); - viewDto.setHisCumulant(new BigDecimal(hisValues.stream().mapToDouble(Double::doubleValue).sum()) - .divide(new BigDecimal(HOUR_MINS), 2, BigDecimal.ROUND_HALF_UP)); - } - if (!CollectionUtils.isEmpty(viewDto.getPreDataN())) { - viewDto.getPreDataN().forEach(item -> { - values.add(Double.parseDouble(item[1].toString())); - }); - } - if (!CollectionUtils.isEmpty(viewDto.getPreDataL())) { - List<Double> preValues = new ArrayList<>(); - viewDto.getPreDataL().forEach(item -> { - values.add(Double.parseDouble(item[1].toString())); - preValues.add(Double.parseDouble(item[1].toString())); - }); - viewDto.setPreMax(new BigDecimal(preValues.stream().mapToDouble(Double::doubleValue).max().getAsDouble()).setScale(2, BigDecimal.ROUND_HALF_UP)); - viewDto.setPreMin(new BigDecimal(preValues.stream().mapToDouble(Double::doubleValue).min().getAsDouble()).setScale(2, BigDecimal.ROUND_HALF_UP)); - viewDto.setPreAvg(new BigDecimal(preValues.stream().mapToDouble(Double::doubleValue).average().getAsDouble()).setScale(2, BigDecimal.ROUND_HALF_UP)); - } - if (!CollectionUtils.isEmpty(viewDto.getCurData())) { - List<Double> preValues = new ArrayList<>(); - viewDto.getCurData().forEach(item -> { - values.add(Double.parseDouble(item[1].toString())); - preValues.add(Double.parseDouble(item[1].toString())); - }); - viewDto.setPreCumulant(new BigDecimal(preValues.stream().mapToDouble(Double::doubleValue).sum()) - .divide(new BigDecimal(HOUR_MINS), 2, BigDecimal.ROUND_HALF_UP)); - } - if (!CollectionUtils.isEmpty(viewDto.getAdjData())) { - viewDto.getAdjData().forEach(item -> { - values.add(Double.parseDouble(item[1].toString())); - }); - } - if (!CollectionUtils.isEmpty(values)) { - viewDto.setMaxValue(new BigDecimal(values.stream().mapToDouble(Double::doubleValue).max().getAsDouble()).setScale(2, BigDecimal.ROUND_HALF_UP)); - viewDto.setMinValue(new BigDecimal(values.stream().mapToDouble(Double::doubleValue).min().getAsDouble()).setScale(2, BigDecimal.ROUND_HALF_UP)); - } - //处理预测累计 - if (output.getIscumulant() == 1) { - if (StringUtils.isNotBlank(output.getCumulpoint())) { - viewDto.setCumulantRealData(getHisData(output.getCumulpoint(), startTime, endTime, reqVO.getPrec())); - } - viewDto.setCumulantPreData(mmItemResultService.getData(output.getId() + CommonDict.CUMULANT_SUFFIX, startTime, endTime, DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)); - } - - dataViewList.add(viewDto); - } - result.setStartTime(startTime); - result.setEndTime(endTime); - result.setPredictTime(predictTime); - result.setCategories(DateUtils.getTimeScale(startTime, endTime, 60)); - result.setLegend(legends); - result.setDataViewList(dataViewList); - return result; + return mmItemResultService.getPreDataCharts(reqVO); } @Override @@ -428,7 +310,7 @@ } 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)); + dataView.getRealData().get(dataView.getRealData().size() - 1)[1] : realDataMap.get(DateUtils.format(predictTime, timeFormat)); // 当前值T0 + 当前预测值 20250409 dataView.setCurData(mmItemResultJsonService.getData(outPut.getId(), predictTime, timeFormat, decimalPlaces, true, curReal)); } else { @@ -725,7 +607,11 @@ @Override public Boolean createScheduleSuggest(ScheduleSuggestRespDTO dto) { + String suggestId = UUID.randomUUID().toString(); + dto.setId(suggestId); stScheduleSuggestService.create(ConvertUtils.sourceToTarget(dto, StScheduleSuggestSaveReqVO.class)); + // 根据建议产生快照 + stSuggestSnapshotRecordService.createSnapshotRecord(dto.getModelId(),dto.getScheduleObj(),dto.getScheduleTime(),suggestId); return true; } @@ -865,6 +751,12 @@ } @Override + public List<MdkPredictDataDTO> getPredictTnValue(PredictTnValueReqVO reqVO) { + List<DataValueVO> list = mmItemResultService.getPredictValue(reqVO.getOutId(), new Date(reqVO.getStartTime()), new Date(reqVO.getEndTime())); + return ConvertUtils.sourceToTarget(list, MdkPredictDataDTO.class); + } + + @Override public List<StScheduleRecordVO> getLastScheduleData(String scheduleCode, Integer limit) { if (StringUtils.isBlank(scheduleCode)) { return null; @@ -993,6 +885,11 @@ } @Override + public Boolean cancelUseSuggest(StAlarmAndSuggestReqVO reqVO) { + return stScheduleSuggestService.cancelUseSuggest(reqVO); + } + + @Override public Boolean ignoreSuggest(StAlarmAndSuggestReqVO reqVO) { return stScheduleSuggestService.ignoreSuggest(reqVO); } @@ -1037,6 +934,17 @@ stSuggestOperationRecordService.create(operationRecordVo); return true; } + + @Override + public List<StSuggestSnapshotRecordRespVO> getSuggestSnapshotAllChartData(String suggestId) { + return stSuggestSnapshotRecordService.getAllChartData(suggestId); + } + + @Override + public Boolean updateSuggestSnapshotConfDetByExt1(StSuggestSnapshotConfDetSaveReqVO updateReqVO) { + return stSuggestSnapshotConfDetService.updateByExt1(updateReqVO); + } + 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