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 * @Description * @createTime 2025年04月18日 */ @Slf4j @Service public class GasPredConfServiceImpl implements GasPredConfService { @Resource private GasPredConfDao gasPredConfDao; @Autowired private McsApi mcsApi; @Override public List list(Map params) { String chartCode = (String) params.get("chartCode"); QueryWrapper queryWrapper = new QueryWrapper<>(); queryWrapper.eq(StringUtils.isNotBlank(chartCode), "chart_code", chartCode); queryWrapper.orderByAsc("sort"); List 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 preDataViewSimpleDTOList = new ArrayList<>(); Map 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(preDataBarLineRespVO.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; } }