package com.iailab.module.ansteel.power.service.impl; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.iailab.framework.common.constant.Constant; import com.iailab.framework.common.pojo.PageResult; import com.iailab.module.ansteel.api.dto.PowerMaxDemandMainDTO; import com.iailab.module.ansteel.api.vo.PowerMaxDemandMainPageReqVO; import com.iailab.module.ansteel.power.dao.PowerMaxdemandMainDao; import com.iailab.module.ansteel.power.entity.PowerMaxdemandMainEntity; import com.iailab.module.ansteel.power.service.PowerMaxdemandMainService; import com.iailab.module.model.api.mcs.dto.StAlarmAndSuggestRespVO; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.util.CollectionUtils; import java.math.BigDecimal; import java.util.*; import java.util.stream.Collectors; import static org.bouncycastle.pqc.jcajce.provider.util.WrapUtil.getWrapper; /** * @author PanZhibao * @Description * @createTime 2025年05月07日 */ @Slf4j @Service public class PowerMaxdemandMainServiceImpl implements PowerMaxdemandMainService { @Autowired private PowerMaxdemandMainDao powerMaxdemandMainDao; @Override public PageResult page(PowerMaxDemandMainPageReqVO reqVO) { IPage page = powerMaxdemandMainDao.selectPage(reqVO); return new PageResult<>(page.getRecords(), page.getTotal()); } @Override public String add(PowerMaxdemandMainEntity entity) { entity.setId(UUID.randomUUID().toString()); powerMaxdemandMainDao.insert(entity); return entity.getId(); } @Override public BigDecimal getMax(String code, Date start, Date end) { BigDecimal max = new BigDecimal(0); QueryWrapper queryWrapper = new QueryWrapper<>(); queryWrapper.eq("code", code) .ge("occur_time", start) .le("occur_time", end); List list = powerMaxdemandMainDao.selectList(queryWrapper); if (CollectionUtils.isEmpty(list)) { return max; } List demandValueList = list.stream().map(item -> { return item.getMaxDemand().doubleValue(); }).collect(Collectors.toList()); max = new BigDecimal(demandValueList.stream().max(Double::compareTo).get()); log.info("max : {}", max); return max; } }