From cb5066ddca3d7c8d0959b20715f0f46948e6753e Mon Sep 17 00:00:00 2001 From: 潘志宝 <979469083@qq.com> Date: 星期二, 14 一月 2025 14:40:42 +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 | 39 +++++++++++++++++++++++++++++++++++++++ 1 files changed, 39 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 ea66d6a..cb22a4f 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; @@ -587,6 +598,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