From b5c61b37a752831c6b3866fa7d6e50aefc5ef4e5 Mon Sep 17 00:00:00 2001 From: dengzedong <dengzedong@email> Date: 星期三, 25 六月 2025 11:11:33 +0800 Subject: [PATCH] 煤气产销预测 图表接口 --- ansteel-biz/src/main/java/com/iailab/module/ansteel/api/dto/PreDataViewSimpleDTO.java | 12 ++++++ ansteel-biz/src/main/java/com/iailab/module/ansteel/gas/entity/GasPredConfEntity.java | 4 ++ ansteel-biz/src/main/java/com/iailab/module/ansteel/api/service/impl/DataServiceImpl.java | 11 +++-- ansteel-biz/src/main/java/com/iailab/module/ansteel/gas/service/GasPredConfService.java | 3 + ansteel-biz/src/main/java/com/iailab/module/ansteel/gas/service/impl/GasPredConfServiceImpl.java | 45 +++++++++++++++++++++- ansteel-biz/src/main/java/com/iailab/module/ansteel/api/controller/admin/GasController.java | 3 + 6 files changed, 70 insertions(+), 8 deletions(-) diff --git a/ansteel-biz/src/main/java/com/iailab/module/ansteel/api/controller/admin/GasController.java b/ansteel-biz/src/main/java/com/iailab/module/ansteel/api/controller/admin/GasController.java index b7d5dd9..ba5e8aa 100644 --- a/ansteel-biz/src/main/java/com/iailab/module/ansteel/api/controller/admin/GasController.java +++ b/ansteel-biz/src/main/java/com/iailab/module/ansteel/api/controller/admin/GasController.java @@ -2,6 +2,7 @@ import com.iailab.framework.common.pojo.CommonResult; import com.iailab.module.ansteel.api.dto.PowerNetFactorDTO; +import com.iailab.module.ansteel.api.dto.PreDataViewSimpleDTO; import com.iailab.module.ansteel.gas.entity.GasPredConfEntity; import com.iailab.module.ansteel.gas.service.GasPredConfService; import com.iailab.module.ansteel.power.entity.PowerNetFactorEntity; @@ -33,7 +34,7 @@ @GetMapping("/pred-conf/list") @Operation(summary = "煤气预测配置") - public CommonResult<List<GasPredConfEntity>> getGasPredConfList(@RequestParam Map<String, Object> params) { + public CommonResult<List<PreDataViewSimpleDTO>> getGasPredConfList(@RequestParam Map<String, Object> params) { return CommonResult.success(gasPredConfService.list(params)); } } diff --git a/ansteel-biz/src/main/java/com/iailab/module/ansteel/api/dto/PreDataViewSimpleDTO.java b/ansteel-biz/src/main/java/com/iailab/module/ansteel/api/dto/PreDataViewSimpleDTO.java index 1c4bb7a..2ea8daa 100644 --- a/ansteel-biz/src/main/java/com/iailab/module/ansteel/api/dto/PreDataViewSimpleDTO.java +++ b/ansteel-biz/src/main/java/com/iailab/module/ansteel/api/dto/PreDataViewSimpleDTO.java @@ -33,5 +33,17 @@ private List<Object[]> realData; @Schema(description = "T+L预测值") + private List<Object[]> preDataL; + + @Schema(description = "T+N预测值") private List<Object[]> preDataN; + + @Schema(description = "累计真实值") + private List<Object[]> cumulantRealData; + + @Schema(description = "累计预测值") + private List<Object[]> cumulantPreData; + + @Schema(description = "类型") + private Integer lineType; } \ No newline at end of file diff --git a/ansteel-biz/src/main/java/com/iailab/module/ansteel/api/service/impl/DataServiceImpl.java b/ansteel-biz/src/main/java/com/iailab/module/ansteel/api/service/impl/DataServiceImpl.java index f63f9e1..6601abd 100644 --- a/ansteel-biz/src/main/java/com/iailab/module/ansteel/api/service/impl/DataServiceImpl.java +++ b/ansteel-biz/src/main/java/com/iailab/module/ansteel/api/service/impl/DataServiceImpl.java @@ -529,18 +529,21 @@ @Override public List<PreDataViewSimpleDTO> getPreDataByOutIds(PreDataBarLineReqVO reqVO) { PreDataBarLineRespVO preDataBarLineRespVO = mcsApi.getPreDataCharts(reqVO); - String predictTime = DateUtils.format(preDataBarLineRespVO.getPredictTime(), DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND); +// String predictTime = DateUtils.format(preDataBarLineRespVO.getPredictTime(), DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND); List<PreDataViewSimpleDTO> preDataViewSimpleDTOList = new ArrayList<>(); preDataBarLineRespVO.getDataViewList().forEach(item -> { PreDataViewSimpleDTO preDataViewSimpleDTO = new PreDataViewSimpleDTO(); preDataViewSimpleDTO.setItemName(item.getResultName()); preDataViewSimpleDTO.setPredictTime(preDataBarLineRespVO.getPredictTime()); + preDataViewSimpleDTO.setCurData(item.getCurData()); preDataViewSimpleDTO.setRealData(item.getRealData()); - preDataViewSimpleDTO.setPreDataN(item.getPreDataN().stream() - .filter(data -> !(DateUtils.parse(data[0].toString(), DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)).after(preDataBarLineRespVO.getPredictTime())) - .collect(Collectors.toList())); + preDataViewSimpleDTO.setPreDataL(item.getPreDataL()); + preDataViewSimpleDTO.setPreDataN(item.getPreDataN()); + preDataViewSimpleDTO.setCumulantRealData(item.getCumulantRealData()); + preDataViewSimpleDTO.setCumulantPreData(item.getCumulantPreData()); + preDataViewSimpleDTOList.add(preDataViewSimpleDTO); }); return preDataViewSimpleDTOList; diff --git a/ansteel-biz/src/main/java/com/iailab/module/ansteel/gas/entity/GasPredConfEntity.java b/ansteel-biz/src/main/java/com/iailab/module/ansteel/gas/entity/GasPredConfEntity.java index 29288e4..d620f02 100644 --- a/ansteel-biz/src/main/java/com/iailab/module/ansteel/gas/entity/GasPredConfEntity.java +++ b/ansteel-biz/src/main/java/com/iailab/module/ansteel/gas/entity/GasPredConfEntity.java @@ -61,4 +61,8 @@ * 排序 */ private String sort; + /** + * 类型 + */ + private Integer lineType; } \ No newline at end of file diff --git a/ansteel-biz/src/main/java/com/iailab/module/ansteel/gas/service/GasPredConfService.java b/ansteel-biz/src/main/java/com/iailab/module/ansteel/gas/service/GasPredConfService.java index cc5a0f8..fa77e42 100644 --- a/ansteel-biz/src/main/java/com/iailab/module/ansteel/gas/service/GasPredConfService.java +++ b/ansteel-biz/src/main/java/com/iailab/module/ansteel/gas/service/GasPredConfService.java @@ -1,5 +1,6 @@ package com.iailab.module.ansteel.gas.service; +import com.iailab.module.ansteel.api.dto.PreDataViewSimpleDTO; import com.iailab.module.ansteel.gas.entity.GasPredConfEntity; import java.util.List; @@ -11,5 +12,5 @@ * @createTime 2025年05月07日 */ public interface GasPredConfService { - List<GasPredConfEntity> list(Map<String, Object> params); + List<PreDataViewSimpleDTO> list(Map<String, Object> params); } diff --git a/ansteel-biz/src/main/java/com/iailab/module/ansteel/gas/service/impl/GasPredConfServiceImpl.java b/ansteel-biz/src/main/java/com/iailab/module/ansteel/gas/service/impl/GasPredConfServiceImpl.java index 2552f03..0fa5004 100644 --- a/ansteel-biz/src/main/java/com/iailab/module/ansteel/gas/service/impl/GasPredConfServiceImpl.java +++ b/ansteel-biz/src/main/java/com/iailab/module/ansteel/gas/service/impl/GasPredConfServiceImpl.java @@ -1,16 +1,26 @@ package com.iailab.module.ansteel.gas.service.impl; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.iailab.module.ansteel.api.dto.PreDataViewSimpleDTO; import com.iailab.module.ansteel.gas.dao.GasPredConfDao; import com.iailab.module.ansteel.gas.entity.GasPredConfEntity; import com.iailab.module.ansteel.gas.service.GasPredConfService; +import com.iailab.module.model.api.mcs.McsApi; +import com.iailab.module.model.api.mcs.dto.PreDataBarLineReqVO; +import com.iailab.module.model.api.mcs.dto.PreDataBarLineRespVO; +import com.iailab.module.model.api.mcs.dto.PreDataViewRespDTO; import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.StringUtils; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import org.springframework.util.CollectionUtils; import javax.annotation.Resource; +import java.util.ArrayList; import java.util.List; import java.util.Map; +import java.util.function.Function; +import java.util.stream.Collectors; /** * @author dyk @@ -23,14 +33,45 @@ @Resource private GasPredConfDao gasPredConfDao; + @Autowired + private McsApi mcsApi; @Override - public List<GasPredConfEntity> list(Map<String, Object> params) { + public List<PreDataViewSimpleDTO> list(Map<String, Object> params) { String chartCode = (String) params.get("chartCode"); QueryWrapper<GasPredConfEntity> queryWrapper = new QueryWrapper<>(); queryWrapper.eq(StringUtils.isNotBlank(chartCode), "chart_code", chartCode); queryWrapper.orderByAsc("sort"); - return gasPredConfDao.selectList(queryWrapper); + List<GasPredConfEntity> gasPredConfEntities = gasPredConfDao.selectList(queryWrapper); + if (CollectionUtils.isEmpty(gasPredConfEntities)) { + return new ArrayList<>(); + } + PreDataBarLineReqVO reqVO = new PreDataBarLineReqVO(); + reqVO.setOutIds(gasPredConfEntities.stream().map(GasPredConfEntity::getOutId).collect(Collectors.toList())); + PreDataBarLineRespVO preDataBarLineRespVO = mcsApi.getPreDataCharts(reqVO); + List<PreDataViewSimpleDTO> preDataViewSimpleDTOList = new ArrayList<>(); + Map<String, PreDataViewRespDTO> resultMap = preDataBarLineRespVO.getDataViewList().stream().collect(Collectors.toMap(PreDataViewRespDTO::getOutId, Function.identity(), (e1, e2) -> e1)); + for (GasPredConfEntity config : gasPredConfEntities) { + if (resultMap.containsKey(config.getOutId())) { + PreDataViewRespDTO result = resultMap.get(config.getOutId()); + PreDataViewSimpleDTO preDataViewSimpleDTO = new PreDataViewSimpleDTO(); + preDataViewSimpleDTO.setItemName(config.getOutName()); + preDataViewSimpleDTO.setPredictTime(result.getPredictTime()); + preDataViewSimpleDTO.setLineType(config.getLineType()); + + preDataViewSimpleDTO.setCurData(result.getCurData()); + preDataViewSimpleDTO.setRealData(result.getRealData()); + preDataViewSimpleDTO.setPreDataL(result.getPreDataL()); + preDataViewSimpleDTO.setPreDataN(result.getPreDataN()); + preDataViewSimpleDTO.setCumulantRealData(result.getCumulantRealData()); + preDataViewSimpleDTO.setCumulantPreData(result.getCumulantPreData()); + + preDataViewSimpleDTOList.add(preDataViewSimpleDTO); + } + } + + + return preDataViewSimpleDTOList; } } \ No newline at end of file -- Gitblit v1.9.3