2024-08-03 朱宝民 获取电池电压低于指定值的取水口
| | |
| | | import com.baomidou.mybatisplus.core.mapper.BaseMapper; |
| | | import com.dy.pipIrrGlobal.pojoRm.RmOnHourReportHistory; |
| | | import com.dy.pipIrrGlobal.voRm.VoOnHour; |
| | | import com.dy.pipIrrGlobal.voSt.VoCumulativeFlow; |
| | | import com.dy.pipIrrGlobal.voSt.VoIntake; |
| | | import org.apache.ibatis.annotations.Mapper; |
| | | |
| | |
| | | */ |
| | | List<VoIntake> getNotOnlineIntakes(Map<?, ?> params); |
| | | |
| | | /** |
| | | * 获取累计流量超过指定值的取水口数量 |
| | | * @param params |
| | | * @return |
| | | */ |
| | | Long getLargeFlowIntakesCount(Map<?, ?> params); |
| | | |
| | | /** |
| | | * 获取累计流量超过指定值的取水口 |
| | | * @param params |
| | | * @return |
| | | */ |
| | | List<VoCumulativeFlow> getLargeFlowIntakes(Map<?, ?> params); |
| | | |
| | | /** |
| | | * 获取累计流量低于指定值的取水口数量 |
| | | * @param params |
| | | * @return |
| | | */ |
| | | Long getSmallFlowIntakesCount(Map<?, ?> params); |
| | | |
| | | /** |
| | | * 获取累计流量低于指定值的取水口 |
| | | * @param params |
| | | * @return |
| | | */ |
| | | List<VoCumulativeFlow> getSmallFlowIntakes(Map<?, ?> params); |
| | | } |
| | |
| | | import com.baomidou.mybatisplus.core.mapper.BaseMapper; |
| | | import com.dy.pipIrrGlobal.pojoRm.RmOnHourReportLast; |
| | | import com.dy.pipIrrGlobal.voRm.VoOnHour; |
| | | import com.dy.pipIrrGlobal.voSt.VoBatteryVolt; |
| | | import com.dy.pipIrrGlobal.voSt.VoCumulativeFlow; |
| | | import org.apache.ibatis.annotations.Mapper; |
| | | |
| | | import java.util.List; |
| | |
| | | * @return |
| | | */ |
| | | List<VoOnHour> getOnHourReports_last(Map<?, ?> params); |
| | | |
| | | /** |
| | | * 获取累计流量超过指定值的取水口数量 |
| | | * @param params |
| | | * @return |
| | | */ |
| | | Long getLargeFlowIntakesCount(Map<?, ?> params); |
| | | |
| | | /** |
| | | * 获取累计流量超过指定值的取水口 |
| | | * @param params |
| | | * @return |
| | | */ |
| | | List<VoCumulativeFlow> getLargeFlowIntakes(Map<?, ?> params); |
| | | |
| | | /** |
| | | * 获取累计流量低于指定值的取水口数量 |
| | | * @param params |
| | | * @return |
| | | */ |
| | | Long getSmallFlowIntakesCount(Map<?, ?> params); |
| | | |
| | | /** |
| | | * 获取累计流量低于指定值的取水口 |
| | | * @param params |
| | | * @return |
| | | */ |
| | | List<VoCumulativeFlow> getSmallFlowIntakes(Map<?, ?> params); |
| | | |
| | | /** |
| | | * 获取欠压取水口数量 |
| | | * @param params |
| | | * @return |
| | | */ |
| | | Long getUnderVoltIntakesCount(Map<?, ?> params); |
| | | |
| | | /** |
| | | * 获取欠压取水口 |
| | | * @param params |
| | | * @return |
| | | */ |
| | | List<VoBatteryVolt> getUnderVoltIntakes(Map<?, ?> params); |
| | | } |
New file |
| | |
| | | package com.dy.pipIrrGlobal.voSt; |
| | | |
| | | import com.fasterxml.jackson.annotation.JsonFormat; |
| | | import lombok.Data; |
| | | |
| | | import java.util.Date; |
| | | |
| | | /** |
| | | * @author ZhuBaoMin |
| | | * @date 2024-08-03 10:10 |
| | | * @LastEditTime 2024-08-03 10:10 |
| | | * @Description 电池电压视图 |
| | | */ |
| | | |
| | | @Data |
| | | public class VoBatteryVolt extends VoIntake { |
| | | |
| | | /** |
| | | * 电池电压 |
| | | */ |
| | | private Double batteryVolt; |
| | | |
| | | /** |
| | | * 数据获取日期 |
| | | */ |
| | | @JsonFormat(pattern = "yyyy-MM-dd") |
| | | private Date getDate; |
| | | } |
| | |
| | | secret: SEC6042bc964d08899a5853eb321eb5a4d842a395982777f815bd07451c879228b7 |
| | | at-all: true |
| | | mobile: 18602657034 |
| | | |
| | | #阀控器参数 |
| | | rtu: |
| | | batteryVolt: 17 |
| | |
| | | </trim> |
| | | </select> |
| | | |
| | | <!--获取累计流量超过指定值的取水口数量--> |
| | | <select id="getLargeFlowIntakesCount" resultType="java.lang.Long"> |
| | | SELECT |
| | | COUNT(*) AS recordCount |
| | | FROM pr_intake inta |
| | | INNER JOIN rm_on_hour_report_last hou ON hou.intake_id = inta.id |
| | | INNER JOIN ba_block blo ON blo.id = inta.blockId |
| | | WHERE inta.deleted = 0 AND hou.total_amount > #{totalAmount} |
| | | </select> |
| | | |
| | | <!--获取累计流量超过指定值的取水口--> |
| | | <select id="getLargeFlowIntakes" resultType="com.dy.pipIrrGlobal.voSt.VoCumulativeFlow"> |
| | | SELECT |
| | | inta.id AS intakeId, |
| | | inta.name AS intakeNum, |
| | | blo.name AS blockName, |
| | | CAST(hou.total_amount AS DECIMAL(10, 2)) AS cumulativeFlow, |
| | | hou.dt AS getDate |
| | | FROM pr_intake inta |
| | | INNER JOIN rm_on_hour_report_last hou ON hou.intake_id = inta.id |
| | | INNER JOIN ba_block blo ON blo.id = inta.blockId |
| | | WHERE inta.deleted = 0 AND hou.total_amount > #{totalAmount} |
| | | ORDER BY hou.dt |
| | | <trim prefix="limit " > |
| | | <if test="start != null and count != null"> |
| | | #{start,javaType=Integer,jdbcType=INTEGER}, #{count,javaType=Integer,jdbcType=INTEGER} |
| | | </if> |
| | | </trim> |
| | | </select> |
| | | |
| | | <!--获取累计流量低于指定值的取水口数量--> |
| | | <select id="getSmallFlowIntakesCount" resultType="java.lang.Long"> |
| | | SELECT |
| | | COUNT(*) AS recordCount |
| | | FROM pr_intake inta |
| | | INNER JOIN rm_on_hour_report_last hou ON hou.intake_id = inta.id |
| | | INNER JOIN ba_block blo ON blo.id = inta.blockId |
| | | WHERE inta.deleted = 0 AND hou.total_amount < #{totalAmount} |
| | | </select> |
| | | |
| | | <!--获取累计流量低于指定值的取水口--> |
| | | <select id="getSmallFlowIntakes" resultType="com.dy.pipIrrGlobal.voSt.VoCumulativeFlow"> |
| | | SELECT |
| | | inta.id AS intakeId, |
| | | inta.name AS intakeNum, |
| | | blo.name AS blockName, |
| | | <!-- FORMAT(hou.total_amount,2) AS cumulativeFlow,--> |
| | | CAST(hou.total_amount AS DECIMAL(10, 2)) AS cumulativeFlow, |
| | | hou.dt AS getDate |
| | | FROM pr_intake inta |
| | | INNER JOIN rm_on_hour_report_last hou ON hou.intake_id = inta.id |
| | | INNER JOIN ba_block blo ON blo.id = inta.blockId |
| | | WHERE inta.deleted = 0 AND hou.total_amount < #{totalAmount} |
| | | ORDER BY hou.dt |
| | | <trim prefix="limit " > |
| | | <if test="start != null and count != null"> |
| | | #{start,javaType=Integer,jdbcType=INTEGER}, #{count,javaType=Integer,jdbcType=INTEGER} |
| | | </if> |
| | | </trim> |
| | | </select> |
| | | </mapper> |
| | |
| | | </if> |
| | | </trim> |
| | | </select> |
| | | |
| | | <!--获取累计流量超过指定值的取水口数量--> |
| | | <select id="getLargeFlowIntakesCount" resultType="java.lang.Long"> |
| | | SELECT |
| | | COUNT(*) AS recordCount |
| | | FROM pr_intake inta |
| | | INNER JOIN rm_on_hour_report_last hou ON hou.intake_id = inta.id |
| | | INNER JOIN ba_block blo ON blo.id = inta.blockId |
| | | WHERE inta.deleted = 0 AND hou.total_amount > #{totalAmount} |
| | | </select> |
| | | |
| | | <!--获取累计流量超过指定值的取水口--> |
| | | <select id="getLargeFlowIntakes" resultType="com.dy.pipIrrGlobal.voSt.VoCumulativeFlow"> |
| | | SELECT |
| | | inta.id AS intakeId, |
| | | inta.name AS intakeNum, |
| | | blo.name AS blockName, |
| | | CAST(hou.total_amount AS DECIMAL(10, 2)) AS cumulativeFlow, |
| | | hou.dt AS getDate |
| | | FROM pr_intake inta |
| | | INNER JOIN rm_on_hour_report_last hou ON hou.intake_id = inta.id |
| | | INNER JOIN ba_block blo ON blo.id = inta.blockId |
| | | WHERE inta.deleted = 0 AND hou.total_amount > #{totalAmount} |
| | | ORDER BY hou.dt |
| | | <trim prefix="limit " > |
| | | <if test="start != null and count != null"> |
| | | #{start,javaType=Integer,jdbcType=INTEGER}, #{count,javaType=Integer,jdbcType=INTEGER} |
| | | </if> |
| | | </trim> |
| | | </select> |
| | | |
| | | <!--获取累计流量低于指定值的取水口数量--> |
| | | <select id="getSmallFlowIntakesCount" resultType="java.lang.Long"> |
| | | SELECT |
| | | COUNT(*) AS recordCount |
| | | FROM pr_intake inta |
| | | INNER JOIN rm_on_hour_report_last hou ON hou.intake_id = inta.id |
| | | INNER JOIN ba_block blo ON blo.id = inta.blockId |
| | | WHERE inta.deleted = 0 AND hou.total_amount < #{totalAmount} |
| | | </select> |
| | | |
| | | <!--获取累计流量低于指定值的取水口--> |
| | | <select id="getSmallFlowIntakes" resultType="com.dy.pipIrrGlobal.voSt.VoCumulativeFlow"> |
| | | SELECT |
| | | inta.id AS intakeId, |
| | | inta.name AS intakeNum, |
| | | blo.name AS blockName, |
| | | <!-- FORMAT(hou.total_amount,2) AS cumulativeFlow,--> |
| | | CAST(hou.total_amount AS DECIMAL(10, 2)) AS cumulativeFlow, |
| | | hou.dt AS getDate |
| | | FROM pr_intake inta |
| | | INNER JOIN rm_on_hour_report_last hou ON hou.intake_id = inta.id |
| | | INNER JOIN ba_block blo ON blo.id = inta.blockId |
| | | WHERE inta.deleted = 0 AND hou.total_amount < #{totalAmount} |
| | | ORDER BY hou.dt |
| | | <trim prefix="limit " > |
| | | <if test="start != null and count != null"> |
| | | #{start,javaType=Integer,jdbcType=INTEGER}, #{count,javaType=Integer,jdbcType=INTEGER} |
| | | </if> |
| | | </trim> |
| | | </select> |
| | | |
| | | <!--获取欠压取水口数量--> |
| | | <select id="getUnderVoltIntakesCount" resultType="java.lang.Long"> |
| | | SELECT |
| | | COUNT(*) AS recordCount |
| | | FROM pr_intake inta |
| | | INNER JOIN rm_on_hour_report_last hou ON hou.intake_id = inta.id |
| | | INNER JOIN ba_block blo ON blo.id = inta.blockId |
| | | WHERE inta.deleted = 0 AND hou.battery_volt < #{batteryVolt} |
| | | </select> |
| | | |
| | | <!--获取欠压取水口--> |
| | | <select id="getUnderVoltIntakes" resultType="com.dy.pipIrrGlobal.voSt.VoBatteryVolt"> |
| | | SELECT |
| | | inta.id AS intakeId, |
| | | inta.name AS intakeNum, |
| | | blo.name AS blockName, |
| | | hou.battery_volt AS batteryVolt, |
| | | hou.dt AS getDate |
| | | FROM pr_intake inta |
| | | INNER JOIN rm_on_hour_report_last hou ON hou.intake_id = inta.id |
| | | INNER JOIN ba_block blo ON blo.id = inta.blockId |
| | | WHERE inta.deleted = 0 AND hou.battery_volt < #{batteryVolt} |
| | | ORDER BY hou.dt |
| | | <trim prefix="limit " > |
| | | <if test="start != null and count != null"> |
| | | #{start,javaType=Integer,jdbcType=INTEGER}, #{count,javaType=Integer,jdbcType=INTEGER} |
| | | </if> |
| | | </trim> |
| | | </select> |
| | | </mapper> |
| | |
| | | |
| | | 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 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; |
| | |
| | | public class IntakeSv { |
| | | @Autowired |
| | | private RmOnHourReportHistoryMapper rmOnHourReportHistoryMapper; |
| | | @Autowired |
| | | private RmOnHourReportLastMapper rmOnHourReportLastMapper; |
| | | |
| | | @Value("${rtu.batteryVolt}") |
| | | private Double batteryVolt; |
| | | |
| | | /** |
| | | * 获取指定时间段内未上线的取水口 |
| | |
| | | Map<String, Object> params = (Map<String, Object>) PojoUtils.generalize(qo) ; |
| | | |
| | | // 获取符合条件的记录数 |
| | | Long itemTotal = Optional.ofNullable(rmOnHourReportHistoryMapper.getLargeFlowIntakesCount(params)).orElse(0L); |
| | | Long itemTotal = Optional.ofNullable(rmOnHourReportLastMapper.getLargeFlowIntakesCount(params)).orElse(0L); |
| | | |
| | | QueryResultVo<List<VoCumulativeFlow>> rsVo = new QueryResultVo<>() ; |
| | | |
| | |
| | | rsVo.pageCurr = qo.pageCurr ; |
| | | |
| | | rsVo.calculateAndSet(itemTotal, params); |
| | | rsVo.obj = rmOnHourReportHistoryMapper.getLargeFlowIntakes(params); |
| | | rsVo.obj = rmOnHourReportLastMapper.getLargeFlowIntakes(params); |
| | | return rsVo ; |
| | | } |
| | | |
| | |
| | | Map<String, Object> params = (Map<String, Object>) PojoUtils.generalize(qo) ; |
| | | |
| | | // 获取符合条件的记录数 |
| | | Long itemTotal = Optional.ofNullable(rmOnHourReportHistoryMapper.getSmallFlowIntakesCount(params)).orElse(0L); |
| | | Long itemTotal = Optional.ofNullable(rmOnHourReportLastMapper.getSmallFlowIntakesCount(params)).orElse(0L); |
| | | |
| | | QueryResultVo<List<VoCumulativeFlow>> rsVo = new QueryResultVo<>() ; |
| | | |
| | |
| | | rsVo.pageCurr = qo.pageCurr ; |
| | | |
| | | rsVo.calculateAndSet(itemTotal, params); |
| | | rsVo.obj = rmOnHourReportHistoryMapper.getSmallFlowIntakes(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 ; |
| | | } |
| | | |
| | | } |
| | |
| | | import com.dy.common.webUtil.BaseResponse; |
| | | import com.dy.common.webUtil.BaseResponseUtils; |
| | | import com.dy.common.webUtil.QueryResultVo; |
| | | 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.pipIrrStatistics.result.StatisticlResultCode; |
| | |
| | | return BaseResponseUtils.buildException(e.getMessage()) ; |
| | | } |
| | | } |
| | | |
| | | /** |
| | | * 获取欠压取水口 |
| | | * @param qo |
| | | * @return |
| | | */ |
| | | @GetMapping(path = "/getUnderVoltIntakes") |
| | | @SsoAop() |
| | | public BaseResponse<QueryResultVo<List<VoBatteryVolt>>> getUnderVoltIntakes(BatteryVoltQO qo) { |
| | | try { |
| | | QueryResultVo<List<VoBatteryVolt>> res = intakeSv.getUnderVoltIntakes(qo); |
| | | if(res.itemTotal == 0) { |
| | | return BaseResponseUtils.buildErrorMsg(StatisticlResultCode.NO_RECORDS.getMessage()); |
| | | } |
| | | return BaseResponseUtils.buildSuccess(res); |
| | | } catch (Exception e) { |
| | | log.error("获取开卡记录异常", e); |
| | | return BaseResponseUtils.buildException(e.getMessage()) ; |
| | | } |
| | | } |
| | | } |
New file |
| | |
| | | package com.dy.pipIrrStatistics.intake.qo; |
| | | |
| | | import com.dy.common.webUtil.QueryConditionVo; |
| | | import lombok.Data; |
| | | |
| | | /** |
| | | * @author ZhuBaoMin |
| | | * @date 2024-08-03 10:47 |
| | | * @LastEditTime 2024-08-03 10:47 |
| | | * @Description |
| | | */ |
| | | |
| | | @Data |
| | | public class BatteryVoltQO extends QueryConditionVo { |
| | | |
| | | /** |
| | | * 电池电压 |
| | | */ |
| | | private Double batteryVolt; |
| | | } |