| | |
| | | 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; |
| | |
| | | |
| | | import java.math.BigDecimal; |
| | | import java.util.*; |
| | | import java.util.function.Function; |
| | | import java.util.stream.Collectors; |
| | | import java.util.stream.Stream; |
| | | |
| | | /** |
| | | * @author PanZhibao |
| | |
| | | |
| | | @Autowired |
| | | private ChartParamService chartParamService; |
| | | |
| | | @Autowired |
| | | private InfluxDBService influxDBService; |
| | | |
| | | private int HOUR_MINS = 60; |
| | | |
| | |
| | | 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(); |