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)); } } 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; } 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; ansteel-biz/src/main/java/com/iailab/module/ansteel/gas/entity/GasPredConfEntity.java
@@ -61,4 +61,8 @@ * 排序 */ private String sort; /** * 类型 */ private Integer lineType; } 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); } 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; } }