| | |
| | | package com.dy.pipIrrStatistics.intake; |
| | | |
| | | import com.dy.common.webUtil.QueryResultVo; |
| | | import com.dy.pipIrrGlobal.daoRm.RmOnHourReportHistoryMapper; |
| | | 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.pipIrrStatistics.intake.qo.BatteryVoltQO; |
| | | import com.dy.pipIrrStatistics.intake.qo.CumulativeFlowQO; |
| | | import com.dy.pipIrrStatistics.intake.qo.IntakeQO; |
| | | import com.dy.pipIrrGlobal.daoRm.*; |
| | | import com.dy.pipIrrGlobal.voSt.*; |
| | | import com.dy.pipIrrStatistics.intake.qo.*; |
| | | import lombok.extern.slf4j.Slf4j; |
| | | import org.apache.dubbo.common.utils.PojoUtils; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | |
| | | |
| | | import java.text.DecimalFormat; |
| | | import java.time.LocalDate; |
| | | import java.util.Calendar; |
| | | import java.util.List; |
| | | import java.util.Map; |
| | | import java.util.Optional; |
| | |
| | | @Autowired |
| | | private RmOnHourReportHistoryMapper rmOnHourReportHistoryMapper; |
| | | @Autowired |
| | | private RmOpenCloseValveHistoryMapper rmOpenCloseValveHistoryMapper; |
| | | @Autowired |
| | | private RmOnHourReportLastMapper rmOnHourReportLastMapper; |
| | | @Autowired |
| | | private RmOpenCloseValveLastMapper rmOpenCloseValveLastMapper; |
| | | |
| | | @Autowired |
| | | private RmIntakeAmountDayMapper rmIntakeAmountDayMapper; |
| | | @Autowired |
| | | private RmLossDayLastMapper rmLossDayLastMapper; |
| | | |
| | | @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) { |
| | | public QueryResultVo<List<VoIntake>> getNotOnlineIntakes(CommonQO qo) { |
| | | DecimalFormat df = new DecimalFormat("0.00"); |
| | | /** |
| | | * 补齐起止时间,如果开始时间为空,则默认为当前日期 |
| | |
| | | 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(CommonQO qo) { |
| | | |
| | | String timeStart = qo.getTimeStart(); |
| | | String timeStop = qo.getTimeStop(); |
| | | if(timeStart != null && timeStart != "") { |
| | | timeStart = timeStart + " 00:00:00"; |
| | | } else { |
| | | timeStart = LocalDate.now() + " 00:00:00"; |
| | | } |
| | | qo.setTimeStart(timeStart); |
| | | |
| | | if(timeStop != null && timeStop != "") { |
| | | 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(IntakeCountValueQO qo) { |
| | | |
| | | String timeStart = qo.getTimeStart(); |
| | | String timeStop = qo.getTimeStop(); |
| | | if(timeStart != null && timeStart != "") { |
| | | timeStart = timeStart + " 00:00:00"; |
| | | } else { |
| | | timeStart = LocalDate.now() + " 00:00:00"; |
| | | } |
| | | qo.setTimeStart(timeStart); |
| | | |
| | | if(timeStop != null && timeStop != "") { |
| | | 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(IntakeCountValueQO qo) { |
| | | |
| | | String timeStart = qo.getTimeStart(); |
| | | String timeStop = qo.getTimeStop(); |
| | | if(timeStart != null && timeStart != "") { |
| | | timeStart = timeStart + " 00:00:00"; |
| | | } else { |
| | | timeStart = LocalDate.now() + " 00:00:00"; |
| | | } |
| | | qo.setTimeStart(timeStart); |
| | | |
| | | if(timeStop != null && timeStop != "") { |
| | | 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 ; |
| | | } |
| | | |
| | | /** |
| | | * 根据开阀类型获取操作次数 |
| | | * @param qo |
| | | * @return |
| | | */ |
| | | public VoCountOfOpenType getCountByOpenType(OpenTypeQO qo) { |
| | | /** |
| | | * 补齐起止时间,如果开始时间为空,则默认为当前日期 |
| | | */ |
| | | 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); |
| | | |
| | | Integer openType = qo.getOpenType(); |
| | | String openTypeName = ""; |
| | | switch (openType) { |
| | | case 1: |
| | | openTypeName = "刷卡开阀"; |
| | | break; |
| | | case 3: |
| | | openTypeName = "中心站开阀"; |
| | | break; |
| | | case 8: |
| | | openTypeName = "用户远程开阀"; |
| | | break; |
| | | case 11: |
| | | openTypeName = "开关阀卡开阀"; |
| | | break; |
| | | case 13: |
| | | openTypeName = "开关阀卡开阀"; |
| | | break; |
| | | } |
| | | |
| | | // 生成查询参数 |
| | | Map<String, Object> params = (Map<String, Object>) PojoUtils.generalize(qo) ; |
| | | |
| | | Integer openTypeCount = Optional.ofNullable(rmOpenCloseValveLastMapper.getCountByOpenType(params)).orElse(0); |
| | | |
| | | VoCountOfOpenType vo = new VoCountOfOpenType(); |
| | | vo.setOpenTypeName(openTypeName); |
| | | vo.setOpenTypeCount(openTypeCount); |
| | | return vo; |
| | | } |
| | | |
| | | /** |
| | | * 根据关阀类型获取操作次数 |
| | | * @param qo |
| | | * @return |
| | | */ |
| | | public VoCountOfCloseType getCountByCloseType(CloseTypeQo qo) { |
| | | /** |
| | | * 补齐起止时间,如果开始时间为空,则默认为当前日期 |
| | | */ |
| | | 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); |
| | | |
| | | Integer closeType = qo.getCloseType(); |
| | | String closeTypeName = ""; |
| | | switch (closeType) { |
| | | case 2: |
| | | closeTypeName = "刷卡关阀"; |
| | | break; |
| | | case 4: |
| | | closeTypeName = "中心站关阀"; |
| | | break; |
| | | case 5: |
| | | closeTypeName = "欠费关阀"; |
| | | break; |
| | | case 6: |
| | | closeTypeName = "流量计故障关阀"; |
| | | break; |
| | | case 7: |
| | | closeTypeName = "紧急关阀"; |
| | | break; |
| | | case 9: |
| | | closeTypeName = "用户远程关阀"; |
| | | break; |
| | | case 10: |
| | | closeTypeName = "开关阀卡关阀"; |
| | | break; |
| | | case 12: |
| | | closeTypeName = "黑名单命令关阀"; |
| | | break; |
| | | case 13: |
| | | closeTypeName = "远程定时关阀"; |
| | | break; |
| | | case 14: |
| | | closeTypeName = "远程定量关阀"; |
| | | break; |
| | | } |
| | | |
| | | // 生成查询参数 |
| | | Map<String, Object> params = (Map<String, Object>) PojoUtils.generalize(qo) ; |
| | | Integer closeTypeCount = Optional.ofNullable(rmOpenCloseValveLastMapper.getCountByCloseType(params)).orElse(0); |
| | | |
| | | VoCountOfCloseType vo = new VoCountOfCloseType(); |
| | | vo.setCloseTypeName(closeTypeName); |
| | | vo.setCloseTypeCount(closeTypeCount); |
| | | return vo; |
| | | } |
| | | |
| | | /** |
| | | * 指定时间段内累积流量超过指定值的取水口 |
| | | * @param qo |
| | | * @return |
| | | */ |
| | | public QueryResultVo<List<VoIntakeAccumulateAmount>> getTotalFlowGtValueIntakes(IntakeAmountValueQO qo) { |
| | | String timeStart = qo.getTimeStart(); |
| | | String timeStop = qo.getTimeStop(); |
| | | if(timeStart != null && timeStart != "") { |
| | | timeStart = timeStart + " 00:00:00"; |
| | | } else { |
| | | timeStart = LocalDate.now() + " 00:00:00"; |
| | | } |
| | | qo.setTimeStart(timeStart); |
| | | |
| | | if(timeStop != null && timeStop != "") { |
| | | timeStop = timeStop + " 23:59:59"; |
| | | }else { |
| | | timeStop = LocalDate.now() + " 23:59:59"; |
| | | } |
| | | qo.setTimeStop(timeStop); |
| | | |
| | | if (qo.getValue() == null){ |
| | | qo.setValue(0.0); |
| | | } |
| | | |
| | | |
| | | Map<String, Object> params = (Map<String, Object>) PojoUtils.generalize(qo); |
| | | Long itemTotal = rmOnHourReportHistoryMapper.getTotalFlowGtValueIntakesCount(params); |
| | | |
| | | QueryResultVo<List<VoIntakeAccumulateAmount>> rsVo = new QueryResultVo<>() ; |
| | | rsVo.pageSize = qo.pageSize ; |
| | | rsVo.pageCurr = qo.pageCurr ; |
| | | |
| | | rsVo.calculateAndSet(itemTotal, params); |
| | | rsVo.obj = rmOnHourReportHistoryMapper.getTotalFlowGtValueIntakes(params); |
| | | return rsVo ; |
| | | } |
| | | |
| | | |
| | | /** |
| | | * 指定时间段内用水量超过指定值的取水口 |
| | | * @param qo |
| | | * @return |
| | | */ |
| | | public QueryResultVo<List<VoIntakeAccumulateAmount>> getUseWaterGtValueIntakes(IntakeAmountValueQO qo) { |
| | | String timeStart = qo.getTimeStart(); |
| | | String timeStop = qo.getTimeStop(); |
| | | if(timeStart != null && timeStart != "") { |
| | | timeStart = timeStart + " 00:00:00"; |
| | | } else { |
| | | timeStart = LocalDate.now() + " 00:00:00"; |
| | | } |
| | | qo.setTimeStart(timeStart); |
| | | |
| | | if(timeStop != null && timeStop != "") { |
| | | timeStop = timeStop + " 23:59:59"; |
| | | }else { |
| | | timeStop = LocalDate.now() + " 23:59:59"; |
| | | } |
| | | qo.setTimeStop(timeStop); |
| | | |
| | | if (qo.getValue() == null){ |
| | | qo.setValue(0.0); |
| | | } |
| | | |
| | | |
| | | Map<String, Object> params = (Map<String, Object>) PojoUtils.generalize(qo); |
| | | Long itemTotal = rmOpenCloseValveHistoryMapper.getUseWaterGtValueIntakesCount(params); |
| | | |
| | | QueryResultVo<List<VoIntakeAccumulateAmount>> rsVo = new QueryResultVo<>() ; |
| | | rsVo.pageSize = qo.pageSize ; |
| | | rsVo.pageCurr = qo.pageCurr ; |
| | | |
| | | rsVo.calculateAndSet(itemTotal, params); |
| | | rsVo.obj = rmOpenCloseValveHistoryMapper.getUseWaterGtValueIntakes(params); |
| | | return rsVo ; |
| | | } |
| | | |
| | | |
| | | |
| | | /** |
| | | * 指定时间段内消费金额超过指定值的取水口 |
| | | * @param qo |
| | | * @return |
| | | */ |
| | | public QueryResultVo<List<VoIntakeAccumulateAmount>> getExpenseGtValueIntakes(IntakeAmountValueQO qo) { |
| | | String timeStart = qo.getTimeStart(); |
| | | String timeStop = qo.getTimeStop(); |
| | | if(timeStart != null && timeStart != "") { |
| | | timeStart = timeStart + " 00:00:00"; |
| | | } else { |
| | | timeStart = LocalDate.now() + " 00:00:00"; |
| | | } |
| | | qo.setTimeStart(timeStart); |
| | | |
| | | if(timeStop != null && timeStop != "") { |
| | | timeStop = timeStop + " 23:59:59"; |
| | | }else { |
| | | timeStop = LocalDate.now() + " 23:59:59"; |
| | | } |
| | | qo.setTimeStop(timeStop); |
| | | |
| | | if (qo.getValue() == null){ |
| | | qo.setValue(0.0); |
| | | } |
| | | |
| | | Map<String, Object> params = (Map<String, Object>) PojoUtils.generalize(qo); |
| | | Long itemTotal = rmOpenCloseValveHistoryMapper.getExpenseGtValueIntakesCount(params); |
| | | |
| | | QueryResultVo<List<VoIntakeAccumulateAmount>> rsVo = new QueryResultVo<>() ; |
| | | rsVo.pageSize = qo.pageSize ; |
| | | rsVo.pageCurr = qo.pageCurr ; |
| | | |
| | | rsVo.calculateAndSet(itemTotal, params); |
| | | rsVo.obj = rmOpenCloseValveHistoryMapper.getExpenseGtValueIntakes(params); |
| | | return rsVo ; |
| | | } |
| | | |
| | | |
| | | /** |
| | | * 指定时间段内用水时长超过指定值的取水口 |
| | | * @param qo |
| | | * @return |
| | | */ |
| | | public QueryResultVo<List<VoIntakeOpenCount>> getUseWaterDurationGtValueIntakes(IntakeCountValueQO qo) { |
| | | String timeStart = qo.getTimeStart(); |
| | | String timeStop = qo.getTimeStop(); |
| | | if(timeStart != null && timeStart != "") { |
| | | timeStart = timeStart + " 00:00:00"; |
| | | } else { |
| | | timeStart = LocalDate.now() + " 00:00:00"; |
| | | } |
| | | qo.setTimeStart(timeStart); |
| | | |
| | | if(timeStop != null && timeStop != "") { |
| | | 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 = rmOpenCloseValveHistoryMapper.getUseWaterDurationGtValueIntakesCount(params); |
| | | |
| | | QueryResultVo<List<VoIntakeOpenCount>> rsVo = new QueryResultVo<>() ; |
| | | rsVo.pageSize = qo.pageSize ; |
| | | rsVo.pageCurr = qo.pageCurr ; |
| | | |
| | | rsVo.calculateAndSet(itemTotal, params); |
| | | rsVo.obj = rmOpenCloseValveHistoryMapper.getUseWaterDurationGtValueIntakes(params); |
| | | return rsVo ; |
| | | } |
| | | |
| | | /** |
| | | * 指定时间段 有开阀 无关阀的取水口 |
| | | * @param qo |
| | | * @return |
| | | */ |
| | | public QueryResultVo<List<VoIntake>> getHaveOpenNoCloseIntakes(CommonQO qo) { |
| | | String timeStart = qo.getTimeStart(); |
| | | String timeStop = qo.getTimeStop(); |
| | | if(timeStart != null && timeStart != "") { |
| | | timeStart = timeStart + " 00:00:00"; |
| | | } else { |
| | | timeStart = LocalDate.now() + " 00:00:00"; |
| | | } |
| | | qo.setTimeStart(timeStart); |
| | | |
| | | if(timeStop != null && timeStop != "") { |
| | | 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 = rmOpenCloseValveHistoryMapper.getHaveOpenNoCloseIntakesCount(params); |
| | | |
| | | QueryResultVo<List<VoIntake>> rsVo = new QueryResultVo<>() ; |
| | | rsVo.pageSize = qo.pageSize ; |
| | | rsVo.pageCurr = qo.pageCurr ; |
| | | |
| | | rsVo.calculateAndSet(itemTotal, params); |
| | | rsVo.obj = rmOpenCloseValveHistoryMapper.getHaveOpenNoCloseIntakes(params); |
| | | return rsVo ; |
| | | } |
| | | |
| | | /** |
| | | * 指定时间段 无开阀 有关阀的取水口 |
| | | * @param qo |
| | | * @return |
| | | */ |
| | | public QueryResultVo<List<VoIntake>> getNoOpenHaveCloseIntakes(CommonQO qo) { |
| | | String timeStart = qo.getTimeStart(); |
| | | String timeStop = qo.getTimeStop(); |
| | | if(timeStart != null && timeStart != "") { |
| | | timeStart = timeStart + " 00:00:00"; |
| | | } else { |
| | | timeStart = LocalDate.now() + " 00:00:00"; |
| | | } |
| | | qo.setTimeStart(timeStart); |
| | | |
| | | if(timeStop != null && timeStop != "") { |
| | | 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 = rmOpenCloseValveHistoryMapper.getNoOpenHaveCloseIntakesCount(params); |
| | | |
| | | QueryResultVo<List<VoIntake>> rsVo = new QueryResultVo<>() ; |
| | | rsVo.pageSize = qo.pageSize ; |
| | | rsVo.pageCurr = qo.pageCurr ; |
| | | |
| | | rsVo.calculateAndSet(itemTotal, params); |
| | | rsVo.obj = rmOpenCloseValveHistoryMapper.getNoOpenHaveCloseIntakes(params); |
| | | return rsVo ; |
| | | } |
| | | |
| | | /** |
| | | * 统计指定月份各天用水量 |
| | | * @param qo |
| | | * @return |
| | | */ |
| | | public QueryResultVo<List<VoDayIntakeAmount>> getDayIntakeAmount(IntakeAmountQO qo) { |
| | | Calendar calendar = Calendar.getInstance(); |
| | | Integer year = Optional.ofNullable(qo.getYear()).orElse(calendar.get(Calendar.YEAR)); |
| | | Integer month = Optional.ofNullable(qo.getMonth()).orElse(calendar.get(Calendar.MONTH)); |
| | | qo.setYear(year); |
| | | qo.setMonth(month); |
| | | |
| | | // 生成查询参数 |
| | | Map<String, Object> params = (Map<String, Object>) PojoUtils.generalize(qo) ; |
| | | |
| | | // 获取符合条件的记录数 |
| | | Long itemTotal = Optional.ofNullable(rmIntakeAmountDayMapper.getDayIntakeAmountCount(params)).orElse(0L); |
| | | |
| | | QueryResultVo<List<VoDayIntakeAmount>> rsVo = new QueryResultVo<>() ; |
| | | |
| | | rsVo.pageSize = qo.pageSize ; |
| | | rsVo.pageCurr = qo.pageCurr ; |
| | | |
| | | rsVo.calculateAndSet(itemTotal, params); |
| | | rsVo.obj = rmIntakeAmountDayMapper.getDayIntakeAmount(params); |
| | | return rsVo ; |
| | | } |
| | | |
| | | /** |
| | | * 统计指定年份各月用水量 |
| | | * @param qo |
| | | * @return |
| | | */ |
| | | public QueryResultVo<List<VoMonthAmount>> getMonthIntakeAmount(IntakeAmountQO qo) { |
| | | Calendar calendar = Calendar.getInstance(); |
| | | Integer year = Optional.ofNullable(qo.getYear()).orElse(calendar.get(Calendar.YEAR)); |
| | | qo.setYear(year); |
| | | |
| | | // 生成查询参数 |
| | | Map<String, Object> params = (Map<String, Object>) PojoUtils.generalize(qo) ; |
| | | |
| | | // 获取符合条件的记录数 |
| | | Long itemTotal = Optional.ofNullable(rmIntakeAmountDayMapper.getMonthIntakeAmountCount(params)).orElse(0L); |
| | | |
| | | QueryResultVo<List<VoMonthAmount>> rsVo = new QueryResultVo<>() ; |
| | | |
| | | rsVo.pageSize = qo.pageSize ; |
| | | rsVo.pageCurr = qo.pageCurr ; |
| | | |
| | | rsVo.calculateAndSet(itemTotal, params); |
| | | rsVo.obj = rmIntakeAmountDayMapper.getMonthIntakeAmount(params); |
| | | return rsVo ; |
| | | } |
| | | |
| | | /** |
| | | * 统计指定月份各天漏损量 |
| | | * @param qo |
| | | * @return |
| | | */ |
| | | public QueryResultVo<List<VoDayLoss>> getDayLossAmount(IntakeAmountQO qo) { |
| | | Calendar calendar = Calendar.getInstance(); |
| | | Integer year = Optional.ofNullable(qo.getYear()).orElse(calendar.get(Calendar.YEAR)); |
| | | Integer month = Optional.ofNullable(qo.getMonth()).orElse(calendar.get(Calendar.MONTH)); |
| | | qo.setYear(year); |
| | | qo.setMonth(month); |
| | | |
| | | // 生成查询参数 |
| | | Map<String, Object> params = (Map<String, Object>) PojoUtils.generalize(qo) ; |
| | | |
| | | // 获取符合条件的记录数 |
| | | Long itemTotal = Optional.ofNullable(rmLossDayLastMapper.getDayLossAmountCount(params)).orElse(0L); |
| | | |
| | | QueryResultVo<List<VoDayLoss>> rsVo = new QueryResultVo<>() ; |
| | | |
| | | rsVo.pageSize = qo.pageSize ; |
| | | rsVo.pageCurr = qo.pageCurr ; |
| | | |
| | | rsVo.calculateAndSet(itemTotal, params); |
| | | rsVo.obj = rmLossDayLastMapper.getDayLossAmount(params); |
| | | return rsVo ; |
| | | } |
| | | |
| | | /** |
| | | * 统计指定年份各月漏损量 |
| | | * @param qo |
| | | * @return |
| | | */ |
| | | public QueryResultVo<List<VoMonthAmount>> getMonthLossAmount(IntakeAmountQO qo) { |
| | | Calendar calendar = Calendar.getInstance(); |
| | | Integer year = Optional.ofNullable(qo.getYear()).orElse(calendar.get(Calendar.YEAR)); |
| | | qo.setYear(year); |
| | | |
| | | // 生成查询参数 |
| | | Map<String, Object> params = (Map<String, Object>) PojoUtils.generalize(qo) ; |
| | | |
| | | // 获取符合条件的记录数 |
| | | Long itemTotal = Optional.ofNullable(rmLossDayLastMapper.getMonthLossAmountCount(params)).orElse(0L); |
| | | |
| | | QueryResultVo<List<VoMonthAmount>> rsVo = new QueryResultVo<>() ; |
| | | |
| | | rsVo.pageSize = qo.pageSize ; |
| | | rsVo.pageCurr = qo.pageCurr ; |
| | | |
| | | rsVo.calculateAndSet(itemTotal, params); |
| | | rsVo.obj = rmLossDayLastMapper.getMonthLossAmount(params); |
| | | return rsVo ; |
| | | } |
| | | } |