iailab-module-model/iailab-module-model-api/src/main/java/com/iailab/module/model/api/mcs/McsApi.java
@@ -11,6 +11,7 @@ import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestParam; import java.math.BigDecimal; import java.util.List; import java.util.Map; @@ -101,7 +102,7 @@ @Operation(summary = "获取多个预测项Double类型数据") Map<String, Map<String, Double>> getPreDoubleData(PreDoubleDataReqVO reqVO); /*@PostMapping(PREFIX + "/predict-data/last-value") @PostMapping(PREFIX + "/predict-data/last-value") @Operation(summary = "获取最后预测值") Double getPredictLastValue();*/ Map<String, BigDecimal> getPredictLastValue(@RequestBody PredictLastValueReqVO reqVO); } iailab-module-model/iailab-module-model-api/src/main/java/com/iailab/module/model/api/mcs/dto/PredictLastValueReqVO.java
对比新文件 @@ -0,0 +1,18 @@ package com.iailab.module.model.api.mcs.dto; import io.swagger.v3.oas.annotations.media.Schema; import lombok.Data; import java.util.List; /** * @author PanZhibao * @Description * @createTime 2025年01月14日 */ @Schema(description = "RPC 模型 - 预警和建议 DTO") @Data public class PredictLastValueReqVO { private List<String[]> itemNos; } iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/api/McsApiImpl.java
@@ -633,6 +633,30 @@ return result; } public Map<String, BigDecimal> getPredictLastValue(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) { ItemVO predictItem = mmPredictItemService.getItemByItemNo(itemNo[0]); if (predictItem == null || predictItem.getLastTime() == null) { result.put(itemNo[0], BigDecimal.ZERO); } MmItemOutputEntity outPut = mmItemOutputService.getByItemid(predictItem.getId(), itemNo[1], itemNo[2]); Date predictTime = predictItem.getLastTime(); List<Object[]> curData = mmItemResultJsonService.getData(outPut.getId(), predictTime, DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND); if(CollectionUtils.isEmpty(curData)) { result.put(itemNo[0], BigDecimal.ZERO); } else { result.put(itemNo[0], new BigDecimal(curData.get(curData.size() - 1)[1].toString())); } } return result; } private Date[] calResultTime(ItemVO predictItem, Date startTimeReq, Date endTimeReq, int lengthLeft, int lengthRight) { Date[] result = new Date[3]; Date predictTime = predictItem.getLastTime(); iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/api/controller/admin/McsApiController.java
@@ -17,6 +17,7 @@ import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.io.IOException; import java.math.BigDecimal; import java.text.SimpleDateFormat; import java.util.Date; import java.util.List; @@ -170,4 +171,11 @@ Map<String, Map<String,Double>> map = mcsApi.getPreDoubleData(reqVO); return CommonResult.success(map); } @PostMapping("/predict-data/last-value") @Operation(summary = "获取最后预测值") public CommonResult<Map<String, BigDecimal>> getPredictLastValue(@RequestBody PredictLastValueReqVO reqVO) { Map<String, BigDecimal> data = mcsApi.getPredictLastValue(reqVO); return CommonResult.success(data); } }