package com.iailab.module.ansteel.power.service.impl; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; 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 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.ArrayList; import java.util.Date; import java.util.List; import java.util.UUID; import java.util.stream.Collectors; /** * @author PanZhibao * @Description * @createTime 2025年05月07日 */ @Slf4j @Service public class PowerMaxdemandMainServiceImpl implements PowerMaxdemandMainService { @Autowired private PowerMaxdemandMainDao powerMaxdemandMainDao; @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; } }