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;
|
}
|
}
|