From 0809aa554fc906e73a383c34f88bb4153bb69b00 Mon Sep 17 00:00:00 2001 From: liriming <1343021927@qq.com> Date: 星期二, 14 一月 2025 14:24:08 +0800 Subject: [PATCH] Merge remote-tracking branch 'origin/master' --- iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/api/McsApiImpl.java | 45 +++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 45 insertions(+), 0 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 fcf9866..3dade90 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,13 +12,19 @@ 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.common.enums.DataTypeEnum; import com.iailab.module.model.enums.CommonConstant; import com.iailab.module.model.common.enums.PreLineTypeEnum; +import com.iailab.module.model.influxdb.pojo.InfluxModelResultByOutPutIdsPOJO; +import com.iailab.module.model.influxdb.service.InfluxDBService; +import com.iailab.module.model.influxdb.vo.InfluxModelResultVO; 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.service.*; +import com.iailab.module.model.mcs.pre.vo.MmItemOutputRespVO; import com.iailab.module.model.mcs.pre.vo.MmPredictAlarmMessageSaveReqVO; +import com.iailab.module.model.mcs.pre.vo.MmPredictItemRespVO; import com.iailab.module.model.mcs.sche.entity.StScheduleSuggestEntity; import com.iailab.module.model.mcs.sche.service.StScheduleSchemeService; import com.iailab.module.model.mcs.sche.service.StScheduleSuggestService; @@ -35,7 +41,9 @@ import java.math.BigDecimal; import java.util.*; +import java.util.function.Function; import java.util.stream.Collectors; +import java.util.stream.Stream; /** * @author PanZhibao @@ -88,6 +96,9 @@ @Autowired private ChartParamService chartParamService; + + @Autowired + private InfluxDBService influxDBService; private int HOUR_MINS = 60; @@ -367,6 +378,12 @@ dataView.setPreMin(new BigDecimal(curList.stream().mapToDouble(Double::doubleValue).min().getAsDouble()).setScale(2, BigDecimal.ROUND_HALF_UP)); } + String alarmObj = chartParams.get(CommonConstant.ALARM_OBJ); + if (StringUtils.isNotBlank(alarmObj)) { + List<AlarmMessageRespDTO> alarmList = ConvertUtils.sourceToTarget(mmPredictAlarmMessageService.getList(alarmObj, predictTime), AlarmMessageRespDTO.class); + dataView.setAlarmList(alarmList); + } + result.setPredictTime(predictTime); result.setStartTime(startTime); result.setEndTime(endTime); @@ -575,6 +592,34 @@ return stScheduleSchemeService.getAlarmAndSuggestPage(reqVO); } + @Override + public Map<String, Map<String, Double>> getPreDoubleData(PreDoubleDataReqVO reqVO) { + List<MmPredictItemRespVO> doubleItemOutPuts = mmPredictItemService.getDoubleOutPutsByItemNos(reqVO.getItemNos()); + + //<itemNo,<resultStr,double>> + Map<String, Map<String, Double>> result = new HashMap<>(reqVO.getItemNos().size()); + + for (MmPredictItemRespVO mmPredictItemRespVO : doubleItemOutPuts) { + List<String> outPutIds = mmPredictItemRespVO.getOutPuts().stream().map(MmItemOutputRespVO::getId).collect(Collectors.toList()); + InfluxModelResultByOutPutIdsPOJO pojo = new InfluxModelResultByOutPutIdsPOJO(); + pojo.setOutPutIds(outPutIds); + pojo.setType(DataTypeEnum.FLOAT.getCode()); + Map<String, List<InfluxModelResultVO>> outPutIdDoubles = influxDBService.queryModelResultsByOutPutIds(pojo, mmPredictItemRespVO.getLastTime(), mmPredictItemRespVO.getLastTime()); + Map<String, Double> outPutIdDouble = new HashMap<>(outPutIds.size()); + for (MmItemOutputRespVO outPut : mmPredictItemRespVO.getOutPuts()) { + String outPutId = outPut.getId(); + if (outPutIdDoubles.containsKey(outPutId)) { + List<InfluxModelResultVO> influxModelResultVOS = outPutIdDoubles.get(outPutId); + if (!CollectionUtils.isEmpty(influxModelResultVOS)) { + outPutIdDouble.put(outPut.getResultstr(),Double.valueOf(influxModelResultVOS.get(0).getValue().toString())); + } + } + } + result.put(mmPredictItemRespVO.getItemno(),outPutIdDouble); + } + return result; + } + 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