zhubaomin
2024-08-09 10947dacbac5ad95e84b2970b201ca101a9fb634
pipIrr-platform/pipIrr-web/pipIrr-web-statistics/src/main/java/com/dy/pipIrrStatistics/client/ClientSv.java
@@ -1,14 +1,13 @@
package com.dy.pipIrrStatistics.client;
import com.dy.common.webUtil.QueryResultVo;
import com.dy.pipIrrGlobal.daoRm.RmClientAmountDayLastMapper;
import com.dy.pipIrrGlobal.daoRm.RmOpenCloseValveHistoryMapper;
import com.dy.pipIrrGlobal.daoSe.SeCardOperateMapper;
import com.dy.pipIrrGlobal.voSt.VoClient;
import com.dy.pipIrrGlobal.voSt.VoClientOpenCardCount;
import com.dy.pipIrrGlobal.voSt.VoClientRechargeTotal;
import com.dy.pipIrrGlobal.voSt.VoICCard;
import com.dy.pipIrrGlobal.voSt.*;
import com.dy.pipIrrStatistics.card.IcCardqo.CommonQO;
import com.dy.pipIrrStatistics.client.qo.*;
import com.dy.pipIrrStatistics.intake.qo.ClientAmountQO;
import lombok.extern.slf4j.Slf4j;
import org.apache.dubbo.common.utils.PojoUtils;
import org.springframework.beans.factory.annotation.Autowired;
@@ -16,6 +15,7 @@
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.util.Calendar;
import java.util.List;
import java.util.Map;
import java.util.Optional;
@@ -34,6 +34,9 @@
    private RmOpenCloseValveHistoryMapper rmOpenCloseValveHistoryMapper;
    @Autowired
    private SeCardOperateMapper seCardOperateMapper;
    @Autowired
    private RmClientAmountDayLastMapper rmClientAmountDayLastMapper;
    /**
     * 获取指定时间段内开阀次数超过指定值的农户
@@ -333,4 +336,57 @@
        rsVo.obj = seCardOperateMapper.getRechargeTotalGtValueClients(params);
        return rsVo ;
    }
    /**
     * 统计指定月份各农户各天用水量及消费金额
     * @param qo
     * @return
     */
    public QueryResultVo<List<VoDayClient>> getDayAmountAndMoney(ClientAmountQO qo) {
        Integer year = qo.getYearMonth().getYear();
        Integer month = qo.getYearMonth().getMonthValue();
        qo.setYear(year);
        qo.setMonth(month);
        // 生成查询参数
        Map<String, Object> params = (Map<String, Object>) PojoUtils.generalize(qo) ;
        // 获取符合条件的记录数
        Long itemTotal = Optional.ofNullable(rmClientAmountDayLastMapper.getDayAmountAndMoneyCount(params)).orElse(0L);
        QueryResultVo<List<VoDayClient>> rsVo = new QueryResultVo<>() ;
        rsVo.pageSize = qo.pageSize ;
        rsVo.pageCurr = qo.pageCurr ;
        rsVo.calculateAndSet(itemTotal, params);
        rsVo.obj = rmClientAmountDayLastMapper.getDayAmountAndMoney(params);
        return rsVo ;
    }
    /**
     * 统计指定年份各农户各月用水量及消费金额
     * @param qo
     * @return
     */
    public QueryResultVo<List<VoMonthClient>> getMonthAmountAndMoney(ClientAmountQO 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(rmClientAmountDayLastMapper.getMonthAmountAndMoneyCount(params)).orElse(0L);
        QueryResultVo<List<VoMonthClient>> rsVo = new QueryResultVo<>() ;
        rsVo.pageSize = qo.pageSize ;
        rsVo.pageCurr = qo.pageCurr ;
        rsVo.calculateAndSet(itemTotal, params);
        rsVo.obj = rmClientAmountDayLastMapper.getMonthAmountAndMoney(params);
        return rsVo ;
    }
}