实现接口 指定时间段内用水量低于指定值的农户
指定时间段内消费金额低于指定值的农户
指定时间段内用水时长低于指定值的农户
4个文件已修改
353 ■■■■■ 已修改文件
pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoRm/RmOpenCloseValveHistoryMapper.java 42 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pipIrr-platform/pipIrr-global/src/main/resources/mapper/RmOpenCloseValveHistoryMapper.xml 143 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pipIrr-platform/pipIrr-web/pipIrr-web-statistics/src/main/java/com/dy/pipIrrStatistics/client/ClientCtrl.java 60 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pipIrr-platform/pipIrr-web/pipIrr-web-statistics/src/main/java/com/dy/pipIrrStatistics/client/ClientSv.java 108 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoRm/RmOpenCloseValveHistoryMapper.java
@@ -168,6 +168,20 @@
    List<VoClient> getLargeWaterConsumptionClients(Map<String, Object> params);
    /**
     * 获取指定时间段内用水量低于指定值的农户数量
     * @param params
     * @return
     */
    Long getSmallWaterConsumptionClientsCount(Map<String, Object> params);
    /**
     * 获取指定时间段内用水量低于指定值的农户
     * @param params
     * @return
     */
    List<VoClient> getSmallWaterConsumptionClients(Map<String, Object> params);
    /**
     * 获取指定时间段内消费金额超过指定值的农户数量
     * @param params
     * @return
@@ -182,6 +196,20 @@
    List<VoClient> getLargeAmountSpentClients(Map<String, Object> params);
    /**
     * 获取指定时间段内消费金额低于指定值的农户数量
     * @param params
     * @return
     */
    Long getSmallAmountSpentClientsCount(Map<String, Object> params);
    /**
     * 获取指定时间段内消费金额低于指定值的农户
     * @param params
     * @return
     */
    List<VoClient> getSmallAmountSpentClients(Map<String, Object> params);
    /**
     * 获取指定时间段内用水时长超过指定值的农户数量
     * @param params
     * @return
@@ -196,6 +224,20 @@
    List<VoClient> getLargeWaterDurationClients(Map<String, Object> params);
    /**
     * 获取指定时间段内用水时长低于指定值的农户数量
     * @param params
     * @return
     */
    Long getSmallWaterDurationClientsCount(Map<String, Object> params);
    /**
     * 获取指定时间段内用水时长低于指定值的农户
     * @param params
     * @return
     */
    List<VoClient> getSmallWaterDurationClients(Map<String, Object> params);
    /**
     * 指定时间段用水量超过指定值的取水口数量
     * @param params
     * @return
pipIrr-platform/pipIrr-global/src/main/resources/mapper/RmOpenCloseValveHistoryMapper.xml
@@ -781,6 +781,54 @@
        </trim>
    </select>
    <!--获取指定时间段内用水量低于指定值的农户数量-->
    <select id="getSmallWaterConsumptionClientsCount" resultType="java.lang.Long">
        SELECT COUNT(*) AS recordCount
        FROM se_client cli
        <where>
            <if test="timeStart != null and timeStart != '' and timeStop != null and timeStop != '' and waterConsumption != null">
                (SELECT SUM(his.cl_this_amount)
                FROM rm_open_close_valve_history his
                WHERE his.client_id = cli.id
                AND his.op_dt BETWEEN #{timeStart} AND #{timeStop}) &lt; #{waterConsumption}
            </if>
        </where>
    </select>
    <!--获取指定时间段内用水量低于指定值的农户-->
    <select id="getSmallWaterConsumptionClients" resultType="com.dy.pipIrrGlobal.voSt.VoClient">
        SELECT cli.id                                 AS clientId,
        cli.name                               AS clientName,
        cli.clientNum,
        CONCAT(cli.districtTitle, cli.address) AS address,
        cli.phone,
        cli.idCard,
        IFNULL((SELECT SUM(his.cl_this_amount)
        FROM rm_open_close_valve_history his
        <where>
            his.client_id = cli.id
            <if test="timeStart != null and timeStart != '' and timeStop != null and timeStop != ''">
                AND his.op_dt BETWEEN #{timeStart} AND #{timeStop}
            </if>
        </where>
        ),0) AS waterConsumption
        FROM se_client cli
        <where>
            <if test="timeStart != null and timeStart != '' and timeStop != null and timeStop != '' and waterConsumption != null">
                (SELECT SUM(his.cl_this_amount)
                FROM rm_open_close_valve_history his
                WHERE his.client_id = cli.id
                AND his.op_dt BETWEEN #{timeStart} AND #{timeStop}) &lt; #{waterConsumption}
            </if>
        </where>
        ORDER BY cli.id
        <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="getLargeAmountSpentClientsCount" resultType="java.lang.Long">
        SELECT COUNT(*) AS recordCount
@@ -818,6 +866,53 @@
                FROM rm_open_close_valve_history his
                WHERE his.client_id = cli.id
                AND his.op_dt BETWEEN #{timeStart} AND #{timeStop}) > #{amountSpent}
            </if>
        </where>
        ORDER BY cli.id
        <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="getSmallAmountSpentClientsCount" resultType="java.lang.Long">
        SELECT COUNT(*) AS recordCount
        FROM se_client cli
        <where>
            <if test="timeStart != null and timeStart != '' and timeStop != null and timeStop != '' and amountSpent != null">
                (SELECT SUM(his.cl_this_money)
                FROM rm_open_close_valve_history his
                WHERE his.client_id = cli.id
                AND his.op_dt BETWEEN #{timeStart} AND #{timeStop})  &lt; #{amountSpent}
            </if>
        </where>
    </select>
    <!--获取指定时间段内消费金额低于指定值的农户-->
    <select id="getSmallAmountSpentClients" resultType="com.dy.pipIrrGlobal.voSt.VoClient">
        SELECT cli.id                                 AS clientId,
        cli.name                               AS clientName,
        cli.clientNum,
        CONCAT(cli.districtTitle, cli.address) AS address,
        cli.phone,
        cli.idCard,
        IFNULL((SELECT SUM(his.cl_this_money)
        FROM rm_open_close_valve_history his
        <where>
            his.client_id = cli.id
            <if test="timeStart != null and timeStart != '' and timeStop != null and timeStop != ''">
                AND his.op_dt BETWEEN #{timeStart} AND #{timeStop}
            </if>
        </where>
        ),0) AS amountSpent
        FROM se_client cli
        <where>
            <if test="timeStart != null and timeStart != '' and timeStop != null and timeStop != '' and amountSpent != null">
                (SELECT SUM(his.cl_this_money)
                FROM rm_open_close_valve_history his
                WHERE his.client_id = cli.id
                AND his.op_dt BETWEEN #{timeStart} AND #{timeStop})  &lt; #{amountSpent}
            </if>
        </where>
        ORDER BY cli.id
@@ -875,6 +970,54 @@
            </if>
        </trim>
    </select>
    <!--获取指定时间段内用水时长低于指定值的农户数量-->
    <select id="getSmallWaterDurationClientsCount" resultType="java.lang.Long">
        SELECT COUNT(*) AS recordCount
        FROM se_client cli
        <where>
            <if test="timeStart != null and timeStart != '' and timeStop != null and timeStop != '' and waterDuration != null">
                (SELECT SUM(his.cl_this_time)
                FROM rm_open_close_valve_history his
                WHERE his.client_id = cli.id
                AND his.op_dt BETWEEN #{timeStart} AND #{timeStop})  &lt; #{waterDuration}
            </if>
        </where>
    </select>
    <!--获取指定时间段内用水时长低于指定值的农户-->
    <select id="getSmallWaterDurationClients" resultType="com.dy.pipIrrGlobal.voSt.VoClient">
        SELECT cli.id                                 AS clientId,
        cli.name                               AS clientName,
        cli.clientNum,
        CONCAT(cli.districtTitle, cli.address) AS address,
        cli.phone,
        cli.idCard,
        IFNULL((SELECT SUM(his.cl_this_time)
        FROM rm_open_close_valve_history his
        <where>
            his.client_id = cli.id
            <if test="timeStart != null and timeStart != '' and timeStop != null and timeStop != ''">
                AND his.op_dt BETWEEN #{timeStart} AND #{timeStop}
            </if>
        </where>
        ),0) AS waterDuration
        FROM se_client cli
        <where>
            <if test="timeStart != null and timeStart != '' and timeStop != null and timeStop != '' and waterDuration != null">
                (SELECT SUM(his.cl_this_time)
                FROM rm_open_close_valve_history his
                WHERE his.client_id = cli.id
                AND his.op_dt BETWEEN #{timeStart} AND #{timeStop})  &lt; #{waterDuration}
            </if>
        </where>
        ORDER BY cli.id
        <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="getUseWaterGtValueIntakesCount" resultType="java.lang.Long">
        select
pipIrr-platform/pipIrr-web/pipIrr-web-statistics/src/main/java/com/dy/pipIrrStatistics/client/ClientCtrl.java
@@ -96,6 +96,26 @@
    }
    /**
     * 获取指定时间段内用水量低于指定值的农户
     * @param qo
     * @param bindingResult
     * @return
     */
    @GetMapping(path = "/getSmallWaterConsumptionClients")
    @SsoAop()
    public BaseResponse<QueryResultVo<List<VoClient>>> getSmallWaterConsumptionClients(@Valid WaterConsumptionQO qo, BindingResult bindingResult) {
        if(bindingResult != null && bindingResult.hasErrors()){
            return BaseResponseUtils.buildFail(Objects.requireNonNull(bindingResult.getFieldError()).getDefaultMessage());
        }
        try {
            return BaseResponseUtils.buildSuccess(clientSv.getSmallWaterConsumptionClients(qo));
        } catch (Exception e) {
            log.error("获取记录异常", e);
            return BaseResponseUtils.buildException(e.getMessage()) ;
        }
    }
    /**
     * 获取指定时间段内消费金额超过指定值的农户
     * @param qo
     * @param bindingResult
@@ -116,6 +136,26 @@
    }
    /**
     * 获取指定时间段内消费金额低于指定值的农户
     * @param qo
     * @param bindingResult
     * @return
     */
    @GetMapping(path = "/getSmallAmountSpentClients")
    @SsoAop()
    public BaseResponse<QueryResultVo<List<VoClient>>> getSmallAmountSpentClients(@Valid AmountSpentQO qo, BindingResult bindingResult) {
        if(bindingResult != null && bindingResult.hasErrors()){
            return BaseResponseUtils.buildFail(Objects.requireNonNull(bindingResult.getFieldError()).getDefaultMessage());
        }
        try {
            return BaseResponseUtils.buildSuccess(clientSv.getSmallAmountSpentClients(qo));
        } catch (Exception e) {
            log.error("获取记录异常", e);
            return BaseResponseUtils.buildException(e.getMessage()) ;
        }
    }
    /**
     * 获取指定时间段内用水时长超过指定值的农户
     * @param qo
     * @param bindingResult
@@ -136,6 +176,26 @@
    }
    /**
     * 获取指定时间段内用水时长低于指定值的农户
     * @param qo
     * @param bindingResult
     * @return
     */
    @GetMapping(path = "/getSmallWaterDurationClients")
    @SsoAop()
    public BaseResponse<QueryResultVo<List<VoClient>>> getSmallWaterDurationClients(@Valid WaterDurationQO qo, BindingResult bindingResult) {
        if(bindingResult != null && bindingResult.hasErrors()){
            return BaseResponseUtils.buildFail(Objects.requireNonNull(bindingResult.getFieldError()).getDefaultMessage());
        }
        try {
            return BaseResponseUtils.buildSuccess(clientSv.getSmallWaterDurationClients(qo));
        } catch (Exception e) {
            log.error("获取开卡记录异常", e);
            return BaseResponseUtils.buildException(e.getMessage()) ;
        }
    }
    /**
     * 统计指定月份各农户各天用水量及消费金额
     * @param qo
     * @return
pipIrr-platform/pipIrr-web/pipIrr-web-statistics/src/main/java/com/dy/pipIrrStatistics/client/ClientSv.java
@@ -149,6 +149,42 @@
    }
    /**
     * 获取指定时间段内用水量低于指定值的农户
     * @param qo
     * @return
     */
    public QueryResultVo<List<VoClient>> getSmallWaterConsumptionClients(WaterConsumptionQO qo) {
        /**
         * 补齐起止时间
         */
        String timeStart = qo.getTimeStart();
        String timeStop = qo.getTimeStop();
        if(timeStart != null && timeStart != "") {
            timeStart = timeStart + " 00:00:00";
        }
        if(timeStop != null && timeStop != "") {
            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(rmOpenCloseValveHistoryMapper.getSmallWaterConsumptionClientsCount(params)).orElse(0L);
        QueryResultVo<List<VoClient>> rsVo = new QueryResultVo<>() ;
        rsVo.pageSize = qo.pageSize ;
        rsVo.pageCurr = qo.pageCurr ;
        rsVo.calculateAndSet(itemTotal, params);
        rsVo.obj = rmOpenCloseValveHistoryMapper.getSmallWaterConsumptionClients(params);
        return rsVo ;
    }
    /**
     * 获取指定时间段内消费金额超过指定值的农户
     * @param qo
     * @return
@@ -185,6 +221,42 @@
    }
    /**
     * 获取指定时间段内消费金额低于指定值的农户
     * @param qo
     * @return
     */
    public QueryResultVo<List<VoClient>> getSmallAmountSpentClients(AmountSpentQO qo) {
        /**
         * 补齐起止时间,如果开始时间为空,则默认为当前日期
         */
        String timeStart = qo.getTimeStart();
        String timeStop = qo.getTimeStop();
        if(timeStart != null && timeStart != "") {
            timeStart = timeStart + " 00:00:00";
        }
        if(timeStop != null && timeStop != "") {
            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(rmOpenCloseValveHistoryMapper.getSmallAmountSpentClientsCount(params)).orElse(0L);
        QueryResultVo<List<VoClient>> rsVo = new QueryResultVo<>() ;
        rsVo.pageSize = qo.pageSize ;
        rsVo.pageCurr = qo.pageCurr ;
        rsVo.calculateAndSet(itemTotal, params);
        rsVo.obj = rmOpenCloseValveHistoryMapper.getSmallAmountSpentClients(params);
        return rsVo ;
    }
    /**
     * 获取指定时间段内用水时长超过指定值的农户
     * @param qo
     * @return
@@ -221,6 +293,42 @@
    }
    /**
     * 获取指定时间段内用水时长低于指定值的农户
     * @param qo
     * @return
     */
    public QueryResultVo<List<VoClient>> getSmallWaterDurationClients(WaterDurationQO qo) {
        /**
         * 补齐起止时间,如果开始时间为空,则默认为当前日期
         */
        String timeStart = qo.getTimeStart();
        String timeStop = qo.getTimeStop();
        if(timeStart != null && timeStart != "") {
            timeStart = timeStart + " 00:00:00";
        }
        if(timeStop != null && timeStop != "") {
            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(rmOpenCloseValveHistoryMapper.getSmallWaterDurationClientsCount(params)).orElse(0L);
        QueryResultVo<List<VoClient>> rsVo = new QueryResultVo<>() ;
        rsVo.pageSize = qo.pageSize ;
        rsVo.pageCurr = qo.pageCurr ;
        rsVo.calculateAndSet(itemTotal, params);
        rsVo.obj = rmOpenCloseValveHistoryMapper.getSmallWaterDurationClients(params);
        return rsVo ;
    }
    /**
     * 指定时间段内开物理卡农户
     * @param qo
     * @return