Administrator
2024-08-03 cc956d4366d31f0cdd97dcb851a880cbd7660d0f
2024-08-03 朱宝民 获取电池电压低于指定值的取水口
7个文件已修改
2个文件已添加
338 ■■■■ 已修改文件
pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoRm/RmOnHourReportHistoryMapper.java 28 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoRm/RmOnHourReportLastMapper.java 44 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/voSt/VoBatteryVolt.java 28 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pipIrr-platform/pipIrr-global/src/main/resources/application-global.yml 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pipIrr-platform/pipIrr-global/src/main/resources/mapper/RmOnHourReportHistoryMapper.xml 58 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pipIrr-platform/pipIrr-global/src/main/resources/mapper/RmOnHourReportLastMapper.xml 91 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pipIrr-platform/pipIrr-web/pipIrr-web-statistics/src/main/java/com/dy/pipIrrStatistics/intake/IntakeSv.java 41 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pipIrr-platform/pipIrr-web/pipIrr-web-statistics/src/main/java/com/dy/pipIrrStatistics/intake/IntkeCtrl.java 22 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pipIrr-platform/pipIrr-web/pipIrr-web-statistics/src/main/java/com/dy/pipIrrStatistics/intake/qo/BatteryVoltQO.java 20 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoRm/RmOnHourReportHistoryMapper.java
@@ -3,7 +3,6 @@
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;
@@ -87,31 +86,4 @@
     */
    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);
}
pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoRm/RmOnHourReportLastMapper.java
@@ -3,6 +3,8 @@
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;
@@ -79,4 +81,46 @@
     * @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);
}
pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/voSt/VoBatteryVolt.java
New file
@@ -0,0 +1,28 @@
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;
}
pipIrr-platform/pipIrr-global/src/main/resources/application-global.yml
@@ -175,4 +175,8 @@
        access-token: fecef8e7725998f8912af05419580861aafc73413c4920036c07c050fa33055f
        secret: SEC6042bc964d08899a5853eb321eb5a4d842a395982777f815bd07451c879228b7
    at-all: true
    mobile: 18602657034
    mobile: 18602657034
#阀控器参数
rtu:
    batteryVolt: 17
pipIrr-platform/pipIrr-global/src/main/resources/mapper/RmOnHourReportHistoryMapper.xml
@@ -284,64 +284,6 @@
    </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 &lt; #{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 &lt; #{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>
pipIrr-platform/pipIrr-global/src/main/resources/mapper/RmOnHourReportLastMapper.xml
@@ -262,4 +262,95 @@
      </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 &lt; #{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 &lt; #{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 &lt; #{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 &lt; #{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>
pipIrr-platform/pipIrr-web/pipIrr-web-statistics/src/main/java/com/dy/pipIrrStatistics/intake/IntakeSv.java
@@ -2,13 +2,17 @@
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;
@@ -29,6 +33,11 @@
public class IntakeSv {
    @Autowired
    private RmOnHourReportHistoryMapper rmOnHourReportHistoryMapper;
    @Autowired
    private RmOnHourReportLastMapper rmOnHourReportLastMapper;
    @Value("${rtu.batteryVolt}")
    private Double batteryVolt;
    /**
     * 获取指定时间段内未上线的取水口
@@ -79,7 +88,7 @@
        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<>() ;
@@ -87,7 +96,7 @@
        rsVo.pageCurr = qo.pageCurr ;
        rsVo.calculateAndSet(itemTotal, params);
        rsVo.obj = rmOnHourReportHistoryMapper.getLargeFlowIntakes(params);
        rsVo.obj = rmOnHourReportLastMapper.getLargeFlowIntakes(params);
        return rsVo ;
    }
@@ -101,7 +110,7 @@
        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<>() ;
@@ -109,7 +118,31 @@
        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 ;
    }
}
pipIrr-platform/pipIrr-web/pipIrr-web-statistics/src/main/java/com/dy/pipIrrStatistics/intake/IntkeCtrl.java
@@ -4,8 +4,10 @@
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;
@@ -90,4 +92,24 @@
            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()) ;
        }
    }
}
pipIrr-platform/pipIrr-web/pipIrr-web-statistics/src/main/java/com/dy/pipIrrStatistics/intake/qo/BatteryVoltQO.java
New file
@@ -0,0 +1,20 @@
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;
}