package com.dy.pipIrrStatistics.intake; import com.dy.common.webUtil.QueryResultVo; import com.dy.pipIrrGlobal.daoRm.RmOnHourReportHistoryMapper; import com.dy.pipIrrGlobal.voSt.VoCumulativeFlow; import com.dy.pipIrrGlobal.voSt.VoIntake; import com.dy.pipIrrStatistics.intake.qo.CumulativeFlowQO; import com.dy.pipIrrStatistics.intake.qo.IntakeQO; import lombok.extern.slf4j.Slf4j; import org.apache.dubbo.common.utils.PojoUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import java.text.DecimalFormat; import java.time.LocalDate; import java.util.List; import java.util.Map; import java.util.Optional; /** * @author ZhuBaoMin * @date 2024-08-01 13:58 * @LastEditTime 2024-08-01 13:58 * @Description */ @Slf4j @Service public class IntakeSv { @Autowired private RmOnHourReportHistoryMapper rmOnHourReportHistoryMapper; /** * 获取指定时间段内未上线的取水口 * @param qo * @return */ public QueryResultVo> getNotOnlineIntakes(IntakeQO qo) { DecimalFormat df = new DecimalFormat("0.00"); /** * 补齐起止时间,如果开始时间为空,则默认为当前日期 */ String timeStart = qo.getTimeStart(); String timeStop = qo.getTimeStop(); if(timeStart != null) { timeStart = timeStart + " 00:00:00"; }else { timeStart = LocalDate.now() + " 00:00:00"; } if(timeStop != null) { timeStop = timeStop + " 23:59:59"; } qo.setTimeStart(timeStart); qo.setTimeStop(timeStop); // 生成查询参数 Map params = (Map) PojoUtils.generalize(qo) ; // 获取符合条件的记录数 Long itemTotal = Optional.ofNullable(rmOnHourReportHistoryMapper.getNotOnlineIntakesCount(params)).orElse(0L); QueryResultVo> rsVo = new QueryResultVo<>() ; rsVo.pageSize = qo.pageSize ; rsVo.pageCurr = qo.pageCurr ; rsVo.calculateAndSet(itemTotal, params); rsVo.obj = rmOnHourReportHistoryMapper.getNotOnlineIntakes(params); return rsVo ; } /** * 获取累计流量超过指定值的取水口 * @param qo * @return */ public QueryResultVo> getLargeFlowIntakes(CumulativeFlowQO qo) { // 生成查询参数 Map params = (Map) PojoUtils.generalize(qo) ; // 获取符合条件的记录数 Long itemTotal = Optional.ofNullable(rmOnHourReportHistoryMapper.getLargeFlowIntakesCount(params)).orElse(0L); QueryResultVo> rsVo = new QueryResultVo<>() ; rsVo.pageSize = qo.pageSize ; rsVo.pageCurr = qo.pageCurr ; rsVo.calculateAndSet(itemTotal, params); rsVo.obj = rmOnHourReportHistoryMapper.getLargeFlowIntakes(params); return rsVo ; } /** * 获取累计流量低于指定值的取水口 * @param qo * @return */ public QueryResultVo> getSmallFlowIntakes(CumulativeFlowQO qo) { // 生成查询参数 Map params = (Map) PojoUtils.generalize(qo) ; // 获取符合条件的记录数 Long itemTotal = Optional.ofNullable(rmOnHourReportHistoryMapper.getSmallFlowIntakesCount(params)).orElse(0L); QueryResultVo> rsVo = new QueryResultVo<>() ; rsVo.pageSize = qo.pageSize ; rsVo.pageCurr = qo.pageCurr ; rsVo.calculateAndSet(itemTotal, params); rsVo.obj = rmOnHourReportHistoryMapper.getSmallFlowIntakes(params); return rsVo ; } }