From e3612171f8cda9507ece64ab8f90b8ea6e6dc94e Mon Sep 17 00:00:00 2001 From: Jay <csj123456> Date: 星期五, 23 五月 2025 15:06:06 +0800 Subject: [PATCH] 新增忽略建议和取消建议原因 --- iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/api/McsApiImpl.java | 99 +++++++++++++++++++++++++++++++++++++++++++++---- 1 files changed, 90 insertions(+), 9 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 f4d7516..e6fd4b6 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.entity.MmPredictModelEntity; 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; @@ -32,6 +33,8 @@ import com.iailab.module.model.mcs.sche.entity.StScheduleModelEntity; import com.iailab.module.model.mcs.sche.entity.StScheduleSuggestEntity; import com.iailab.module.model.mcs.sche.service.*; +import com.iailab.module.model.mcs.sche.vo.StScheduleRecordRespVO; +import com.iailab.module.model.mcs.sche.vo.StSuggestOperationRecordReqVO; import com.iailab.module.model.mcs.sche.vo.StScheduleSuggestSaveReqVO; import com.iailab.module.model.mdk.vo.ItemVO; import com.iailab.module.model.mpk.service.ChartParamService; @@ -119,7 +122,14 @@ private StScheduleModelSettingService stScheduleModelSettingService; @Autowired - private MmPredictAutoAdjustConfigService autoAdjustService; + private MmPredictModelService mmPredictModelService; + + @Autowired + private MmModelArithSettingsService mmModelArithSettingsService; + + @Autowired + private StSuggestOperationRecordService stSuggestOperationRecordService; + private int HOUR_MINS = 60; @Override @@ -141,6 +151,7 @@ PredictItemTreeDTO chd = new PredictItemTreeDTO(); chd.setLabel(item1.getItemName()); chd.setId(item1.getId()); + chd.setDisabled(true); List<PredictItemTreeDTO> chd1 = new ArrayList<>(); List<MmItemOutputEntity> outList = mmItemOutputService.getByItemid(item1.getId()); if (!CollectionUtils.isEmpty(outList)) { @@ -458,12 +469,23 @@ if (!CollectionUtils.isEmpty(dataView.getCurData())) { List<Double> curList = dataView.getCurData().stream().map(t -> { - return new Double(t[1].toString()); - }).collect(Collectors.toList()); - dataView.setPreMax(new BigDecimal(curList.stream().mapToDouble(Double::doubleValue).max().getAsDouble()).setScale(2, BigDecimal.ROUND_HALF_UP)); - dataView.setPreMin(new BigDecimal(curList.stream().mapToDouble(Double::doubleValue).min().getAsDouble()).setScale(2, BigDecimal.ROUND_HALF_UP)); - dataView.setPreLast(new BigDecimal(curList.get(curList.size() - 1)).setScale(2, BigDecimal.ROUND_HALF_UP)); - dataView.setPreCumulant(new BigDecimal(curList.stream().mapToDouble(Double::doubleValue).sum()).setScale(2, BigDecimal.ROUND_HALF_UP)); + try { + return new Double(t[1].toString()); + } catch (NumberFormatException e) { + return null; + } + }).filter(Objects::nonNull).collect(Collectors.toList()); + if (!curList.isEmpty()) { + dataView.setPreMax(new BigDecimal(curList.stream().mapToDouble(Double::doubleValue).max().getAsDouble()).setScale(2, BigDecimal.ROUND_HALF_UP)); + dataView.setPreMin(new BigDecimal(curList.stream().mapToDouble(Double::doubleValue).min().getAsDouble()).setScale(2, BigDecimal.ROUND_HALF_UP)); + dataView.setPreLast(new BigDecimal(curList.get(curList.size() - 1)).setScale(2, BigDecimal.ROUND_HALF_UP)); + dataView.setPreCumulant(new BigDecimal(curList.stream().mapToDouble(Double::doubleValue).sum()).setScale(2, BigDecimal.ROUND_HALF_UP)); + } else { + dataView.setPreMax(null); + dataView.setPreMin(null); + dataView.setPreLast(null); + dataView.setPreCumulant(null); + } } String alarmObj = chartParams.get(CommonConstant.ALARM_OBJ); @@ -786,6 +808,7 @@ return result; } + @Override public Map<String, BigDecimal> getPredictLastValue(PredictLastValueReqVO reqVO) { Map<String, BigDecimal> result = new HashMap<>(reqVO.getItemNos().size()); if (CollectionUtils.isEmpty(reqVO.getItemNos())) { @@ -808,6 +831,30 @@ } Date predictTime = predictItem.getLastTime(); List<Object[]> curData = mmItemResultJsonService.getData(outputId, predictTime, DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND); + if (CollectionUtils.isEmpty(curData)) { + result.put(key, BigDecimal.ZERO); + } else { + result.put(key, new BigDecimal(curData.get(curData.size() - 1)[1].toString())); + } + } + return result; + } + + @Override + public Map<String, BigDecimal> getPredictValueByTime(PredictLastValueReqVO reqVO) { + Map<String, BigDecimal> result = new HashMap<>(reqVO.getItemNos().size()); + if (CollectionUtils.isEmpty(reqVO.getItemNos())) { + return result; + } + List<String[]> itemNos = reqVO.getItemNos(); + for (String[] itemNo : itemNos) { + String key = itemNo[0] + "," + itemNo[1] + "," + itemNo[2]; + ItemVO predictItem = mmPredictItemService.getItemByItemNo(itemNo[0]); + if (predictItem == null || predictItem.getLastTime() == null) { + result.put(key, BigDecimal.ZERO); + } + MmItemOutputEntity outPut = mmItemOutputService.getByItemid(predictItem.getId(), itemNo[1], itemNo[2]); + List<Object[]> curData = mmItemResultJsonService.getData(outPut.getId(), reqVO.getPredictTime(), DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND); if (CollectionUtils.isEmpty(curData)) { result.put(key, BigDecimal.ZERO); } else { @@ -946,13 +993,47 @@ } @Override + public Boolean ignoreSuggest(StAlarmAndSuggestReqVO reqVO) { + return stScheduleSuggestService.ignoreSuggest(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()); + public Boolean updatePredictModelSetting(String modelCode, String key, String value) { + MmPredictModelEntity model = mmPredictModelService.getByModelCode(modelCode); + mmModelArithSettingsService.updateByModelIdAndKey(model.getId(), key, value); + return true; + } + + @Override + public Boolean saveSuggestOperationRecord(SuggestOperationRecordReqVO reqVO) { + StSuggestOperationRecordReqVO operationRecordVo = new StSuggestOperationRecordReqVO(); + operationRecordVo.setOperate(reqVO.getOperate()); + operationRecordVo.setReason(reqVO.getReason()); + operationRecordVo.setHandler(reqVO.getHandler()); + operationRecordVo.setHandlerId(reqVO.getHandlerId()); + //获取建议信息 + StScheduleSuggestEntity entity = stScheduleSuggestService.getInfo(reqVO.getId()); + if (entity != null){ + operationRecordVo.setTitle(entity.getTitle()); + operationRecordVo.setContent(entity.getContent()); + if (StringUtils.isNotBlank(entity.getModelId())){ + //获取模型记录信息 + StScheduleRecordRespVO scheduleRecordVO = stScheduleRecordService.getInfoByModelIdAndScheduleTime(entity.getModelId(), entity.getScheduleTime()); + operationRecordVo.setSchemeId(scheduleRecordVO.getSchemeId()); + operationRecordVo.setModelId(entity.getModelId()); + operationRecordVo.setModelName(scheduleRecordVO.getModelName()); + operationRecordVo.setScheduleTime(entity.getScheduleTime()); + operationRecordVo.setResultCode(scheduleRecordVO.getResultCode()); + operationRecordVo.setResultData(scheduleRecordVO.getResultData()); + } + } + stSuggestOperationRecordService.create(operationRecordVo); + return true; } private Date[] calResultTime(ItemVO predictItem, Date startTimeReq, Date endTimeReq, int lengthLeft, int lengthRight) { -- Gitblit v1.9.3