package com.dy.pipIrrStatistics.card; 
 | 
  
 | 
import com.dy.common.webUtil.QueryResultVo; 
 | 
import com.dy.pipIrrGlobal.daoSe.SeCardOperateMapper; 
 | 
import com.dy.pipIrrGlobal.daoSe.SeClientCardMapper; 
 | 
import com.dy.pipIrrGlobal.voSt.VoCardUsage; 
 | 
import com.dy.pipIrrGlobal.voSt.VoICCard; 
 | 
import com.dy.pipIrrStatistics.card.IcCardqo.CommonQO; 
 | 
import com.dy.pipIrrStatistics.card.qo.CardUsageQO; 
 | 
import lombok.extern.slf4j.Slf4j; 
 | 
import org.apache.dubbo.common.utils.PojoUtils; 
 | 
import org.springframework.beans.factory.annotation.Autowired; 
 | 
import org.springframework.stereotype.Service; 
 | 
  
 | 
import java.time.LocalDate; 
 | 
import java.time.LocalDateTime; 
 | 
import java.util.HashMap; 
 | 
import java.util.List; 
 | 
import java.util.Map; 
 | 
import java.util.Optional; 
 | 
  
 | 
/** 
 | 
 * @author ZhuBaoMin 
 | 
 * @date 2024-08-08 9:10 
 | 
 * @LastEditTime 2024-08-08 9:10 
 | 
 * @Description 
 | 
 */ 
 | 
  
 | 
@Slf4j 
 | 
@Service 
 | 
public class IcCardSv { 
 | 
  
 | 
    @Autowired 
 | 
    private SeCardOperateMapper seCardOperateMapper; 
 | 
    @Autowired 
 | 
    private SeClientCardMapper seClientCardMapper; 
 | 
  
 | 
    /** 
 | 
     * 指定时间段内开卡总数量(物理卡) 
 | 
     * @param qo 
 | 
     * @return 
 | 
     */ 
 | 
    public QueryResultVo<List<VoICCard>> getOpenCountIcCards(CommonQO qo) { 
 | 
  
 | 
        String timeStart = qo.getTimeStart(); 
 | 
        String timeStop = qo.getTimeStop(); 
 | 
  
 | 
        if (timeStart != null && timeStart != ""){ 
 | 
            timeStart = timeStart + " 00:00:00"; 
 | 
        }else { 
 | 
            timeStart = LocalDate.now() + " 00:00:00"; 
 | 
        } 
 | 
        if (timeStop != null && timeStop != ""){ 
 | 
            timeStop = timeStop + " 23:59:59"; 
 | 
        }else { 
 | 
            timeStop = LocalDateTime.now().toString(); 
 | 
        } 
 | 
        qo.setTimeStart(timeStart); 
 | 
        qo.setTimeStop(timeStop); 
 | 
  
 | 
  
 | 
        Map<String, Object> params = (Map<String, Object>) PojoUtils.generalize(qo); 
 | 
        Long itemTotal = seCardOperateMapper.getOpenCountIcCardsCount(params); 
 | 
  
 | 
        QueryResultVo<List<VoICCard>> rsVo = new QueryResultVo<>() ; 
 | 
        rsVo.pageSize = qo.pageSize ; 
 | 
        rsVo.pageCurr = qo.pageCurr ; 
 | 
  
 | 
        rsVo.calculateAndSet(itemTotal, params); 
 | 
  
 | 
        return rsVo ; 
 | 
    } 
 | 
  
 | 
    /** 
 | 
     * 指定时间段内挂失总数量(物理卡) 
 | 
     * @param qo 
 | 
     * @return 
 | 
     */ 
 | 
    public QueryResultVo<List<VoICCard>> getLossCountIcCards(CommonQO qo) { 
 | 
  
 | 
        String timeStart = qo.getTimeStart(); 
 | 
        String timeStop = qo.getTimeStop(); 
 | 
  
 | 
        if (timeStart != null && timeStart != ""){ 
 | 
            timeStart = timeStart + " 00:00:00"; 
 | 
        }else { 
 | 
            timeStart = LocalDate.now() + " 00:00:00"; 
 | 
        } 
 | 
        if (timeStop != null && timeStop != ""){ 
 | 
            timeStop = timeStop + " 23:59:59"; 
 | 
        }else { 
 | 
            timeStop = LocalDateTime.now().toString(); 
 | 
        } 
 | 
        qo.setTimeStart(timeStart); 
 | 
        qo.setTimeStop(timeStop); 
 | 
  
 | 
  
 | 
        Map<String, Object> params = (Map<String, Object>) PojoUtils.generalize(qo); 
 | 
        Long itemTotal = seCardOperateMapper.getLossCountIcCardsCount(params); 
 | 
  
 | 
        QueryResultVo<List<VoICCard>> rsVo = new QueryResultVo<>() ; 
 | 
        rsVo.pageSize = qo.pageSize ; 
 | 
        rsVo.pageCurr = qo.pageCurr ; 
 | 
  
 | 
        rsVo.calculateAndSet(itemTotal, params); 
 | 
  
 | 
        return rsVo ; 
 | 
    } 
 | 
  
 | 
    /** 
 | 
     * 指定时间段内充值总数量(物理卡) 
 | 
     * @param qo 
 | 
     * @return 
 | 
     */ 
 | 
    public QueryResultVo<List<VoICCard>> getRechargeCountIcCards(CommonQO qo) { 
 | 
  
 | 
        String timeStart = qo.getTimeStart(); 
 | 
        String timeStop = qo.getTimeStop(); 
 | 
  
 | 
        if (timeStart != null && timeStart != ""){ 
 | 
            timeStart = timeStart + " 00:00:00"; 
 | 
        }else { 
 | 
            timeStart = LocalDate.now() + " 00:00:00"; 
 | 
        } 
 | 
        if (timeStop != null && timeStop != ""){ 
 | 
            timeStop = timeStop + " 23:59:59"; 
 | 
        }else { 
 | 
            timeStop = LocalDateTime.now().toString(); 
 | 
        } 
 | 
        qo.setTimeStart(timeStart); 
 | 
        qo.setTimeStop(timeStop); 
 | 
  
 | 
  
 | 
        Map<String, Object> params = (Map<String, Object>) PojoUtils.generalize(qo); 
 | 
        Long itemTotal = seCardOperateMapper.getRechargeCountIcCardsCount(params); 
 | 
  
 | 
        QueryResultVo<List<VoICCard>> rsVo = new QueryResultVo<>() ; 
 | 
        rsVo.pageSize = qo.pageSize ; 
 | 
        rsVo.pageCurr = qo.pageCurr ; 
 | 
  
 | 
        rsVo.calculateAndSet(itemTotal, params); 
 | 
  
 | 
        return rsVo ; 
 | 
    } 
 | 
  
 | 
    /** 
 | 
     * 当前余额总量(物理卡) 
 | 
     * @param 
 | 
     * @return 
 | 
     */ 
 | 
    public Double getTotalMoneyIcCards() { 
 | 
  
 | 
        Double totalMoney = seClientCardMapper.getTotalMoneyIcCards(); 
 | 
        return totalMoney ; 
 | 
    } 
 | 
  
 | 
    /** 
 | 
     * 获取指定时间段水卡使用情况:充值合计、消费合计、余额 
 | 
     * @param qo 
 | 
     * @return 
 | 
     */ 
 | 
    public QueryResultVo<List<VoCardUsage>> getCardUsages(CardUsageQO qo) { 
 | 
  
 | 
        String timeStart = qo.getTimeStart(); 
 | 
        String timeStop = qo.getTimeStop(); 
 | 
  
 | 
        if (timeStart != null && timeStart != ""){ 
 | 
            timeStart = timeStart + " 00:00:00"; 
 | 
        }else { 
 | 
            timeStart = LocalDateTime.now().minusYears(1).toString(); 
 | 
        } 
 | 
        if (timeStop != null && timeStop != ""){ 
 | 
            timeStop = timeStop + " 23:59:59"; 
 | 
        }else { 
 | 
            timeStop = LocalDateTime.now().toString(); 
 | 
        } 
 | 
        qo.setTimeStart(timeStart); 
 | 
        qo.setTimeStop(timeStop); 
 | 
  
 | 
        Map<String, Object> params = (Map<String, Object>) PojoUtils.generalize(qo); 
 | 
  
 | 
        //Long itemTotal = seCardOperateMapper.getOpenCountIcCardsCount(params); 
 | 
        Integer itemTotal = 0; 
 | 
        List<VoCardUsage> all = seClientCardMapper.getCardUsagesCount(params); 
 | 
        if(all != null && all.size() > 0) { 
 | 
            itemTotal = all.size(); 
 | 
        } 
 | 
  
 | 
        QueryResultVo<List<VoCardUsage>> rsVo = new QueryResultVo<>() ; 
 | 
        rsVo.pageSize = qo.pageSize ; 
 | 
        rsVo.pageCurr = qo.pageCurr ; 
 | 
  
 | 
        rsVo.calculateAndSet(Long.parseLong(itemTotal.toString()), params); 
 | 
        rsVo.obj = seClientCardMapper.getCardUsages(params); 
 | 
        return rsVo ; 
 | 
    } 
 | 
  
 | 
    /** 
 | 
     * 获取售水总计信息:充值金额总计、水表消费金额总计 
 | 
     * @param qo 
 | 
     * @return 
 | 
     */ 
 | 
    public Map getTotalWaterUse(CardUsageQO qo) { 
 | 
  
 | 
        String timeStart = qo.getTimeStart(); 
 | 
        String timeStop = qo.getTimeStop(); 
 | 
  
 | 
        if (timeStart != null && timeStart != ""){ 
 | 
            timeStart = timeStart + " 00:00:00"; 
 | 
        }else { 
 | 
            timeStart = LocalDate.now() + " 00:00:00"; 
 | 
        } 
 | 
        if (timeStop != null && timeStop != ""){ 
 | 
            timeStop = timeStop + " 23:59:59"; 
 | 
        }else { 
 | 
            timeStop = LocalDateTime.now().toString(); 
 | 
        } 
 | 
  
 | 
        Float totalRecharge = Optional.ofNullable(seClientCardMapper.getTotalRecharge(timeStart, timeStop)).orElse(0f); 
 | 
        Float totalConsumption = Optional.ofNullable(seClientCardMapper.getTotalConsumption(timeStart, timeStop)).orElse(0f); 
 | 
        Map mat_total = new HashMap(); 
 | 
        mat_total.put("totalRecharge", totalRecharge); 
 | 
        mat_total.put("totalConsumption", totalConsumption); 
 | 
        return mat_total; 
 | 
    } 
 | 
} 
 |