package com.dy.pipIrrStatistics.intake;
|
|
import com.dy.common.webUtil.QueryResultVo;
|
import com.dy.pipIrrGlobal.daoRm.RmOnHourReportHistoryMapper;
|
import com.dy.pipIrrGlobal.daoRm.RmOpenCloseValveHistoryMapper;
|
import com.dy.pipIrrGlobal.daoRm.RmOnHourReportLastMapper;
|
import com.dy.pipIrrGlobal.voSt.VoBatteryVolt;
|
import com.dy.pipIrrGlobal.voSt.VoCumulativeFlow;
|
import com.dy.pipIrrGlobal.voSt.VoIntake;
|
import com.dy.pipIrrGlobal.voSt.VoIntakeOpenCount;
|
import com.dy.pipIrrGlobal.voSt.VoSignalIntensity;
|
import com.dy.pipIrrStatistics.intake.qo.BatteryVoltQO;
|
import com.dy.pipIrrStatistics.intake.qo.CumulativeFlowQO;
|
import com.dy.pipIrrStatistics.intake.qo.IntakeQO;
|
import com.dy.pipIrrStatistics.intake.qo.IntakeValueQO;
|
import com.dy.pipIrrStatistics.intake.qo.SignalIntensityQO;
|
import lombok.extern.slf4j.Slf4j;
|
import org.apache.dubbo.common.utils.PojoUtils;
|
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Value;
|
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;
|
@Autowired
|
private RmOpenCloseValveHistoryMapper rmOpenCloseValveHistoryMapper;
|
@Autowired
|
private RmOnHourReportLastMapper rmOnHourReportLastMapper;
|
|
@Value("${rtu.batteryVolt}")
|
private Double batteryVolt;
|
|
@Value("${rtu.signalIntensity.weak}")
|
private Integer weak;
|
|
@Value("${rtu.signalIntensity.ordinary}")
|
private Integer ordinary;
|
|
/**
|
* 获取指定时间段内未上线的取水口
|
* @param qo
|
* @return
|
*/
|
public QueryResultVo<List<VoIntake>> 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<String, Object> params = (Map<String, Object>) PojoUtils.generalize(qo) ;
|
|
// 获取符合条件的记录数
|
Long itemTotal = Optional.ofNullable(rmOnHourReportHistoryMapper.getNotOnlineIntakesCount(params)).orElse(0L);
|
|
QueryResultVo<List<VoIntake>> 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<List<VoCumulativeFlow>> getLargeFlowIntakes(CumulativeFlowQO qo) {
|
// 生成查询参数
|
Map<String, Object> params = (Map<String, Object>) PojoUtils.generalize(qo) ;
|
|
// 获取符合条件的记录数
|
Long itemTotal = Optional.ofNullable(rmOnHourReportLastMapper.getLargeFlowIntakesCount(params)).orElse(0L);
|
|
QueryResultVo<List<VoCumulativeFlow>> rsVo = new QueryResultVo<>() ;
|
|
rsVo.pageSize = qo.pageSize ;
|
rsVo.pageCurr = qo.pageCurr ;
|
|
rsVo.calculateAndSet(itemTotal, params);
|
rsVo.obj = rmOnHourReportLastMapper.getLargeFlowIntakes(params);
|
return rsVo ;
|
}
|
|
/**
|
* 获取累计流量低于指定值的取水口
|
* @param qo
|
* @return
|
*/
|
public QueryResultVo<List<VoCumulativeFlow>> getSmallFlowIntakes(CumulativeFlowQO qo) {
|
// 生成查询参数
|
Map<String, Object> params = (Map<String, Object>) PojoUtils.generalize(qo) ;
|
|
// 获取符合条件的记录数
|
Long itemTotal = Optional.ofNullable(rmOnHourReportLastMapper.getSmallFlowIntakesCount(params)).orElse(0L);
|
|
QueryResultVo<List<VoCumulativeFlow>> rsVo = new QueryResultVo<>() ;
|
|
rsVo.pageSize = qo.pageSize ;
|
rsVo.pageCurr = qo.pageCurr ;
|
|
rsVo.calculateAndSet(itemTotal, params);
|
rsVo.obj = rmOnHourReportLastMapper.getSmallFlowIntakes(params);
|
return rsVo ;
|
}
|
|
/**
|
* 获取欠压取水口
|
* @param qo
|
* @return
|
*/
|
public QueryResultVo<List<VoBatteryVolt>> getUnderVoltIntakes(BatteryVoltQO qo) {
|
qo.setBatteryVolt(batteryVolt);
|
// 生成查询参数
|
Map<String, Object> params = (Map<String, Object>) PojoUtils.generalize(qo) ;
|
|
// 获取符合条件的记录数
|
Long itemTotal = Optional.ofNullable(rmOnHourReportLastMapper.getUnderVoltIntakesCount(params)).orElse(0L);
|
|
QueryResultVo<List<VoBatteryVolt>> rsVo = new QueryResultVo<>() ;
|
|
rsVo.pageSize = qo.pageSize ;
|
rsVo.pageCurr = qo.pageCurr ;
|
|
rsVo.calculateAndSet(itemTotal, params);
|
rsVo.obj = rmOnHourReportLastMapper.getUnderVoltIntakes(params);
|
return rsVo ;
|
}
|
|
/**
|
* 获取指定信号强度的取水口
|
* @param qo
|
* @return
|
*/
|
public QueryResultVo<List<VoSignalIntensity>> getSpecifiedSignalIntakes(SignalIntensityQO qo) {
|
qo.setWeak(weak);
|
qo.setOrdinary(ordinary);
|
|
// 生成查询参数
|
Map<String, Object> params = (Map<String, Object>) PojoUtils.generalize(qo) ;
|
|
// 获取符合条件的记录数
|
Long itemTotal = Optional.ofNullable(rmOnHourReportLastMapper.getSpecifiedSignalIntakesCount(params)).orElse(0L);
|
|
QueryResultVo<List<VoSignalIntensity>> rsVo = new QueryResultVo<>() ;
|
|
rsVo.pageSize = qo.pageSize ;
|
rsVo.pageCurr = qo.pageCurr ;
|
|
rsVo.calculateAndSet(itemTotal, params);
|
rsVo.obj = rmOnHourReportLastMapper.getSpecifiedSignalIntakes(params);
|
return rsVo ;
|
}
|
|
/**
|
* 获取从未开过阀的取水口
|
* @return
|
*/
|
public QueryResultVo<List<VoIntake>> getNeverOpenValveIntakes(IntakeQO qo) {
|
|
String timeStart = qo.getTimeStart();
|
String timeStop = qo.getTimeStop();
|
if(timeStart != null) {
|
timeStart = timeStart + " 00:00:00";
|
}else {
|
timeStart = LocalDate.now() + " 00:00:00";
|
}
|
qo.setTimeStart(timeStart);
|
if(timeStop != null) {
|
timeStop = timeStop + " 23:59:59";
|
}else {
|
timeStop = LocalDate.now() + " 23:59:59";
|
}
|
qo.setTimeStop(timeStop);
|
|
// 生成查询参数
|
Map<String, Object> params = (Map<String, Object>) PojoUtils.generalize(qo) ;
|
|
// 获取符合条件的记录数
|
Long itemTotal = Optional.ofNullable(rmOpenCloseValveHistoryMapper.getNeverOpenValveIntakesCount(params)).orElse(0L);
|
|
QueryResultVo<List<VoIntake>> rsVo = new QueryResultVo<>() ;
|
|
rsVo.pageSize = qo.pageSize ;
|
rsVo.pageCurr = qo.pageCurr ;
|
|
rsVo.calculateAndSet(itemTotal, params);
|
rsVo.obj = rmOpenCloseValveHistoryMapper.getNeverOpenValveIntakes(params);
|
return rsVo ;
|
}
|
|
/**
|
* 获取指定时间段内开阀次数超过指定值的取水口
|
* @param qo
|
* @return
|
*/
|
public QueryResultVo<List<VoIntakeOpenCount>> getOpenValveGtIntakes(IntakeValueQO qo) {
|
|
String timeStart = qo.getTimeStart();
|
String timeStop = qo.getTimeStop();
|
if(timeStart != null) {
|
timeStart = timeStart + " 00:00:00";
|
}else {
|
timeStart = LocalDate.now() + " 00:00:00";
|
}
|
qo.setTimeStart(timeStart);
|
if(timeStop != null) {
|
timeStop = timeStop + " 23:59:59";
|
}else {
|
timeStop = LocalDate.now() + " 23:59:59";
|
}
|
qo.setTimeStop(timeStop);
|
|
// 生成查询参数
|
Map<String, Object> params = (Map<String, Object>) PojoUtils.generalize(qo) ;
|
|
// 获取符合条件的记录数
|
Long itemTotal = Optional.ofNullable(rmOpenCloseValveHistoryMapper.getOpenValveGtIntakesCount(params)).orElse(0L);
|
|
QueryResultVo<List<VoIntakeOpenCount>> rsVo = new QueryResultVo<>() ;
|
|
rsVo.pageSize = qo.pageSize ;
|
rsVo.pageCurr = qo.pageCurr ;
|
|
rsVo.calculateAndSet(itemTotal, params);
|
rsVo.obj = rmOpenCloseValveHistoryMapper.getOpenValveGtIntakes(params);
|
return rsVo ;
|
}
|
|
/**
|
* 获取指定时间段内开阀次数低于指定值的取水口
|
* @param qo
|
* @return
|
*/
|
public QueryResultVo<List<VoIntakeOpenCount>> getOpenValveLtIntakes(IntakeValueQO qo) {
|
|
String timeStart = qo.getTimeStart();
|
String timeStop = qo.getTimeStop();
|
if(timeStart != null) {
|
timeStart = timeStart + " 00:00:00";
|
}else {
|
timeStart = LocalDate.now() + " 00:00:00";
|
}
|
qo.setTimeStart(timeStart);
|
if(timeStop != null) {
|
timeStop = timeStop + " 23:59:59";
|
}else {
|
timeStop = LocalDate.now() + " 23:59:59";
|
}
|
qo.setTimeStop(timeStop);
|
|
// 生成查询参数
|
Map<String, Object> params = (Map<String, Object>) PojoUtils.generalize(qo) ;
|
|
// 获取符合条件的记录数
|
Long itemTotal = Optional.ofNullable(rmOpenCloseValveHistoryMapper.getOpenValveLtIntakesCount(params)).orElse(0L);
|
|
QueryResultVo<List<VoIntakeOpenCount>> rsVo = new QueryResultVo<>() ;
|
|
rsVo.pageSize = qo.pageSize ;
|
rsVo.pageCurr = qo.pageCurr ;
|
|
rsVo.calculateAndSet(itemTotal, params);
|
rsVo.obj = rmOpenCloseValveHistoryMapper.getOpenValveLtIntakes(params);
|
return rsVo ;
|
}
|
|
}
|