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> 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 params = (Map) PojoUtils.generalize(qo); Long itemTotal = seCardOperateMapper.getOpenCountIcCardsCount(params); QueryResultVo> rsVo = new QueryResultVo<>() ; rsVo.pageSize = qo.pageSize ; rsVo.pageCurr = qo.pageCurr ; rsVo.calculateAndSet(itemTotal, params); return rsVo ; } /** * 指定时间段内挂失总数量(物理卡) * @param qo * @return */ public QueryResultVo> 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 params = (Map) PojoUtils.generalize(qo); Long itemTotal = seCardOperateMapper.getLossCountIcCardsCount(params); QueryResultVo> rsVo = new QueryResultVo<>() ; rsVo.pageSize = qo.pageSize ; rsVo.pageCurr = qo.pageCurr ; rsVo.calculateAndSet(itemTotal, params); return rsVo ; } /** * 指定时间段内充值总数量(物理卡) * @param qo * @return */ public QueryResultVo> 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 params = (Map) PojoUtils.generalize(qo); Long itemTotal = seCardOperateMapper.getRechargeCountIcCardsCount(params); QueryResultVo> 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> 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 params = (Map) PojoUtils.generalize(qo); //Long itemTotal = seCardOperateMapper.getOpenCountIcCardsCount(params); Integer itemTotal = 0; List all = seClientCardMapper.getCardUsagesCount(params); if(all != null && all.size() > 0) { itemTotal = all.size(); } QueryResultVo> 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; } }