Administrator
2024-08-06 0a9628c6c5880d4eed055d50e6e8083a2e5a8637
Merge branch 'master' of http://8.140.179.55:20000/r/pipIrr-SV
1 文件已重命名
4个文件已修改
2个文件已添加
203 ■■■■■ 已修改文件
pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoRm/RmOnHourReportHistoryMapper.java 14 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/voSt/VoIntakeAccumulateAmount.java 19 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pipIrr-platform/pipIrr-global/src/main/resources/mapper/RmOnHourReportHistoryMapper.xml 70 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pipIrr-platform/pipIrr-web/pipIrr-web-statistics/src/main/java/com/dy/pipIrrStatistics/intake/IntakeSv.java 45 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pipIrr-platform/pipIrr-web/pipIrr-web-statistics/src/main/java/com/dy/pipIrrStatistics/intake/IntkeCtrl.java 34 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pipIrr-platform/pipIrr-web/pipIrr-web-statistics/src/main/java/com/dy/pipIrrStatistics/intake/qo/IntakeAmountValueQO.java 19 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pipIrr-platform/pipIrr-web/pipIrr-web-statistics/src/main/java/com/dy/pipIrrStatistics/intake/qo/IntakeCountValueQO.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoRm/RmOnHourReportHistoryMapper.java
@@ -4,6 +4,7 @@
import com.dy.pipIrrGlobal.pojoRm.RmOnHourReportHistory;
import com.dy.pipIrrGlobal.voRm.VoOnHour;
import com.dy.pipIrrGlobal.voSt.VoIntake;
import com.dy.pipIrrGlobal.voSt.VoIntakeAccumulateAmount;
import org.apache.ibatis.annotations.Mapper;
import java.util.List;
@@ -86,4 +87,17 @@
     */
    List<VoIntake> getNotOnlineIntakes(Map<?, ?> params);
    /**
     * 指定时间段内用水量超过指定值的取水口数量
     * @param params
     * @return
     */
    Long getUseWaterGtValueIntakesCount(Map<String, Object> params);
    /**
     * 指定时间段内用水量超过指定值的取水口
     * @param params
     * @return
     */
    List<VoIntakeAccumulateAmount> getUseWaterGtValueIntakes(Map<String, Object> params);
}
pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/voSt/VoIntakeAccumulateAmount.java
New file
@@ -0,0 +1,19 @@
package com.dy.pipIrrGlobal.voSt;
import lombok.Data;
/**
 * @author :WuZeYu
 * @Date :2024/8/5  10:45
 * @LastEditTime :2024/8/5  10:45
 * @Description 取水口累积流量 大于 指定值
 */
@Data
public class VoIntakeAccumulateAmount extends VoIntake{
    private static final long serialVersionUID = 202408051046001L;
    /**
     * 指定值
     */
    private Double value;
}
pipIrr-platform/pipIrr-global/src/main/resources/mapper/RmOnHourReportHistoryMapper.xml
@@ -283,7 +283,71 @@
      </if>
    </trim>
  </select>
  <!--指定时间段内用水量超过指定值的取水口数量-->
  <select id="getUseWaterGtValueIntakesCount" resultType="java.lang.Long">
    select
    count(*)
    from
    (
    SELECT
    inta.id AS intakeId,
    inta.NAME AS intakeNum,
    blo.NAME AS blockName ,
    IFNULL(b.total_amount, 0)-IFNULL(a.total_amount, 0) AS value
    FROM
    pr_intake inta
    INNER JOIN ba_block blo ON blo.id = inta.blockId
    LEFT JOIN (SELECT
    intake_id,
    total_amount
    FROM
    rm_on_hour_report_history rohrs
    WHERE rohrs.rtu_dt = (     SELECT MAX(rtu_dt)
    FROM rm_on_hour_report_history
    WHERE rtu_dt &lt;= #{timeStart})) AS a ON inta.id = a.intake_id
    LEFT JOIN (     SELECT
    intake_id,
    total_amount
    FROM
    rm_on_hour_report_history rohrs
    WHERE rohrs.rtu_dt = (     SELECT MAX(rtu_dt)
    FROM rm_on_hour_report_history
    WHERE rtu_dt &lt;= #{timeStop})) AS b ON inta.id = b.intake_id
    WHERE IFNULL(b.total_amount, 0)-IFNULL(a.total_amount, 0) &gt; #{value} AND inta.deleted = 0
    ) c
    </select>
  <!--指定时间段内用水量超过指定值的取水口-->
  <select id="getUseWaterGtValueIntakes" resultType="com.dy.pipIrrGlobal.voSt.VoIntakeAccumulateAmount">
    SELECT
      inta.id AS intakeId,
      inta.NAME AS intakeNum,
      blo.NAME AS blockName ,
      IFNULL(b.total_amount, 0)-IFNULL(a.total_amount, 0) AS value
    FROM
      pr_intake inta
      INNER JOIN ba_block blo ON blo.id = inta.blockId
      LEFT JOIN (SELECT
      intake_id,
      total_amount
      FROM
      rm_on_hour_report_history rohrs
      WHERE rohrs.rtu_dt = (     SELECT MAX(rtu_dt)
      FROM rm_on_hour_report_history
      WHERE rtu_dt &lt;= #{timeStart})) AS a ON inta.id = a.intake_id
    LEFT JOIN (     SELECT
    intake_id,
    total_amount
    FROM
    rm_on_hour_report_history rohrs
    WHERE rohrs.rtu_dt = (     SELECT MAX(rtu_dt)
    FROM rm_on_hour_report_history
    WHERE rtu_dt &lt;= #{timeStop})) AS b ON inta.id = b.intake_id
    WHERE IFNULL(b.total_amount, 0)-IFNULL(a.total_amount, 0) &gt; #{value} AND inta.deleted = 0
    ORDER BY inta.id
    <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
@@ -14,8 +14,8 @@
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.IntakeCountValueQO;
import com.dy.pipIrrStatistics.intake.qo.CommonQO;
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;
@@ -25,6 +25,7 @@
import java.text.DecimalFormat;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.util.List;
import java.util.Map;
import java.util.Optional;
@@ -231,7 +232,7 @@
     * @param qo
     * @return
     */
    public QueryResultVo<List<VoIntakeOpenCount>> getOpenValveGtIntakes(IntakeValueQO qo) {
    public QueryResultVo<List<VoIntakeOpenCount>> getOpenValveGtIntakes(IntakeCountValueQO qo) {
        String timeStart = qo.getTimeStart();
        String timeStop = qo.getTimeStop();
@@ -269,7 +270,7 @@
     * @param qo
     * @return
     */
    public QueryResultVo<List<VoIntakeOpenCount>> getOpenValveLtIntakes(IntakeValueQO qo) {
    public QueryResultVo<List<VoIntakeOpenCount>> getOpenValveLtIntakes(IntakeCountValueQO qo) {
        String timeStart = qo.getTimeStart();
        String timeStop = qo.getTimeStop();
@@ -422,4 +423,42 @@
        return vo;
    }
    /**
     * 指定时间段内用水量超过指定值的取水口
     * @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 = LocalDateTime.of(2024, 1, 1, 0, 0, 0).toString();
        }
        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.getUseWaterGtValueIntakesCount(params);
        QueryResultVo<List<VoIntakeAccumulateAmount>> rsVo = new QueryResultVo<>() ;
        rsVo.pageSize = qo.pageSize ;
        rsVo.pageCurr = qo.pageCurr ;
        rsVo.calculateAndSet(itemTotal, params);
        rsVo.obj = rmOnHourReportHistoryMapper.getUseWaterGtValueIntakes(params);
        return rsVo ;
    }
}
pipIrr-platform/pipIrr-web/pipIrr-web-statistics/src/main/java/com/dy/pipIrrStatistics/intake/IntkeCtrl.java
@@ -6,6 +6,15 @@
import com.dy.common.webUtil.QueryResultVo;
import com.dy.pipIrrGlobal.voSt.*;
import com.dy.pipIrrStatistics.intake.qo.*;
import com.dy.pipIrrGlobal.voSt.VoBatteryVolt;
import com.dy.pipIrrGlobal.voSt.VoCumulativeFlow;
import com.dy.pipIrrGlobal.voSt.VoIntake;
import com.dy.pipIrrGlobal.voSt.VoSignalIntensity;
import com.dy.pipIrrStatistics.intake.qo.BatteryVoltQO;
import com.dy.pipIrrGlobal.voSt.VoIntakeOpenCount;
import com.dy.pipIrrStatistics.intake.qo.CumulativeFlowQO;
import com.dy.pipIrrStatistics.intake.qo.SignalIntensityQO;
import com.dy.pipIrrStatistics.intake.qo.IntakeCountValueQO;
import com.dy.pipIrrStatistics.result.StatisticlResultCode;
import jakarta.validation.Valid;
import lombok.RequiredArgsConstructor;
@@ -195,7 +204,7 @@
     */
    @GetMapping(path = "/getOpenValveGtIntakes")
    @SsoAop()
    public BaseResponse<QueryResultVo<List<VoIntakeOpenCount>>> getOpenValveGtIntakes(IntakeValueQO qo) {
    public BaseResponse<QueryResultVo<List<VoIntakeOpenCount>>> getOpenValveGtIntakes(IntakeCountValueQO qo) {
        try {
            QueryResultVo<List<VoIntakeOpenCount>> res = intakeSv.getOpenValveGtIntakes(qo);
            if(res.itemTotal == 0) {
@@ -216,7 +225,7 @@
     */
    @GetMapping(path = "/getOpenValveLtIntakes")
    @SsoAop()
    public BaseResponse<QueryResultVo<List<VoIntakeOpenCount>>> getOpenValveLtIntakes(IntakeValueQO qo) {
    public BaseResponse<QueryResultVo<List<VoIntakeOpenCount>>> getOpenValveLtIntakes(IntakeCountValueQO qo) {
        try {
            QueryResultVo<List<VoIntakeOpenCount>> res = intakeSv.getOpenValveLtIntakes(qo);
            if(res.itemTotal == 0) {
@@ -228,4 +237,25 @@
            return BaseResponseUtils.buildException(e.getMessage()) ;
        }
    }
    /**
     * 指定时间段内用水量超过指定值的取水口
     * @param
     * @return
     */
    @GetMapping(path = "/getUseWaterGtValueIntakes")
    @SsoAop()
    public BaseResponse<QueryResultVo<List<VoIntakeAccumulateAmount>>> getUseWaterGtValueIntakes(IntakeAmountValueQO qo) {
        try {
            QueryResultVo<List<VoIntakeAccumulateAmount>> res = intakeSv.getUseWaterGtValueIntakes(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/IntakeAmountValueQO.java
New file
@@ -0,0 +1,19 @@
package com.dy.pipIrrStatistics.intake.qo;
import lombok.Data;
/**
 * @author :WuZeYu
 * @Date :2024/8/6  9:32
 * @LastEditTime :2024/8/3  9:32
 * @Description
 */
@Data
public class IntakeAmountValueQO extends CommonQO {
    /**
     * 值
     */
    private Double value;
}
pipIrr-platform/pipIrr-web/pipIrr-web-statistics/src/main/java/com/dy/pipIrrStatistics/intake/qo/IntakeCountValueQO.java
File was renamed from pipIrr-platform/pipIrr-web/pipIrr-web-statistics/src/main/java/com/dy/pipIrrStatistics/intake/qo/IntakeValueQO.java
@@ -10,7 +10,7 @@
 * @Description
 */
@Data
public class IntakeValueQO extends CommonQO {
public class IntakeCountValueQO extends CommonQO {
    /**