package com.gunshi.project.xyt.service; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.toolkit.StringUtils; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.gunshi.project.xyt.entity.so.WarnPageSo; import com.gunshi.project.xyt.entity.so.WarnSo; import com.gunshi.project.xyt.entity.vo.OsmoticWarnVo; import com.gunshi.project.xyt.mapper.OsmoticWarnRMapper; import com.gunshi.project.xyt.model.OsmoticWarnR; import jakarta.annotation.Resource; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import java.util.List; import java.util.Map; import java.util.stream.Collectors; /** * 描述: 隐患预警记录表 * author: xusan * date: 2024-07-08 17:30:37 */ @Service @Slf4j @Transactional(rollbackFor = Exception.class) public class OsmoticWarnRService extends ServiceImpl { @Resource private OsmoticWarnRMapper mapper; public Page queryPage(WarnPageSo warnPageSo) { return mapper.queryPage(warnPageSo.getPageSo().toPage(),warnPageSo); } public Map stat(WarnSo warnSo) { LambdaQueryWrapper wrapper = Wrappers.lambdaQuery(); if(warnSo.getType() != null){ wrapper.eq(OsmoticWarnR::getType,warnSo.getType()); } if(warnSo.getLevel() != null){ wrapper.eq(OsmoticWarnR::getLevel,warnSo.getLevel()); } if(StringUtils.isNotEmpty(warnSo.getStationCode())){ wrapper.like(OsmoticWarnR::getStationCode,warnSo.getStationCode()); } if(warnSo.getDateTimeRangeSo() != null && warnSo.getDateTimeRangeSo().getStart() != null){ wrapper.ge(OsmoticWarnR::getTm,warnSo.getDateTimeRangeSo().getStart()); } if(warnSo.getDateTimeRangeSo() != null && warnSo.getDateTimeRangeSo().getEnd() != null){ wrapper.le(OsmoticWarnR::getTm,warnSo.getDateTimeRangeSo().getEnd()); } List list = this.list(wrapper); return list.stream().collect(Collectors.groupingBy(OsmoticWarnR::getLevel, Collectors.counting())); } }