开票数据判断

This commit is contained in:
qjq
2024-12-02 16:02:50 +08:00
parent 2941cf260c
commit bc8173e7d4
2 changed files with 27 additions and 13 deletions

View File

@ -75,25 +75,31 @@ public interface CardMapper extends BaseMapperX<CardDO> {
}
return lastCardDO.getMoney();
}
default List<CardDO> getMoneyByUserIds(Collection<Long> userIds , String flag, String type,Integer var){
return selectList(new LambdaQueryWrapperX<CardDO>()
default List<CardDO> getMoneyByUserIds(Collection<Long> userIds , String flag, String type,Integer var,Integer var2){
List<CardDO> cardDOS = selectList(new LambdaQueryWrapperX<CardDO>()
.eq(CardDO::getFlag, flag)
.eq(CardDO::getType, type)
.eq(CardDO::getBillingExist,var)
.eq(CardDO::getBillingExist, var)
.in(CardDO::getUserId, userIds));
if(var2==null){
return cardDOS;
}else{
return cardDOS.stream().filter(f-> f.getCreateTime().getMonth().getValue()!=var2).collect(Collectors.toList());
}
}
default BigDecimal getTotalMoneyByuserIds(Collection<Long> userIds, String flag, String type) {
default BigDecimal getTotalMoneyByuserIds(Collection<Long> userIds, String flag, String type,Integer var) {
List<CardDO> cardDOS = selectList(new LambdaQueryWrapper<CardDO>()
.eq(CardDO::getFlag, flag)
.eq(CardDO::getType, type)
.eq(CardDO::getBillingExist, BillingStatusEnum.BILLING_INVOICING_REJECTION.getCode())
.in(CardDO::getUserId, userIds));
if(var!=null){
cardDOS=cardDOS.stream().filter(f-> f.getCreateTime().getMonth().getValue()!=var).collect(Collectors.toList());
}
return cardDOS.stream()
.map(CardDO::getChangeMoney)
.filter(Objects::nonNull)
.reduce(BigDecimal.ZERO, BigDecimal::add);
}
}

View File

@ -3,6 +3,7 @@ package cn.iocoder.yudao.module.member.service.billing;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.date.DateTime;
import cn.hutool.core.date.DateUtil;
import cn.hutool.core.io.unit.DataUnit;
import cn.hutool.core.map.MapUtil;
import cn.hutool.core.util.IdUtil;
import cn.hutool.core.util.ObjUtil;
@ -235,9 +236,6 @@ public class BillingServiceImpl implements BillingService {
@Override
@Transactional(rollbackFor = Exception.class)
public String createBillingUnit(BillingSaveReqVO createReqVO) {
DateTime date = DateUtil.date();
int i = date.dayOfMonth();
if(i<27) throw exception(BILLING_NOT_ORDER_MOENY);
// 插入 BillingDO 对象并生成唯一主键
BillingDO billing = BeanUtils.toBean(createReqVO, BillingDO.class);
Set<Long> orderId = createReqVO.getOrderId();
@ -250,7 +248,7 @@ public class BillingServiceImpl implements BillingService {
// billing.setUserPhone(String.valueOf(memberGroupDO.getId()));
billing.setUserId(billing.getUserId());
//查询单位充值的金额
List<CardDO> moneyByUserIds = cardMapper.getMoneyByUserIds(createReqVO.getOrderId(), CardDO.ADD, CostTypeEnum.ADMIN_PAY.getCode(),BillingStatusEnum.BILLING_INVOICING_REJECTION.getCode());
List<CardDO> moneyByUserIds = cardMapper.getMoneyByUserIds(createReqVO.getOrderId(), CardDO.ADD, CostTypeEnum.ADMIN_PAY.getCode(),BillingStatusEnum.BILLING_INVOICING_REJECTION.getCode(),getMonth());
if(CollUtil.isEmpty(moneyByUserIds))throw exception(BILLING_NOT_ORDER_EXISTS);
BigDecimal totalMoney = moneyByUserIds.stream()
.map(CardDO::getChangeMoney)
@ -454,11 +452,20 @@ public class BillingServiceImpl implements BillingService {
// 查询已开票的金额
BigDecimal haveMoney = getTotalMoneyForBilling(userId, BillingStatusEnum.BILLING_INVOICING_IS_COMPLETE.getCode());
response.setHaveMoney(haveMoney);
BigDecimal moneyByUserIds = cardMapper.getTotalMoneyByuserIds(memberList, CardDO.ADD, CostTypeEnum.ADMIN_PAY.getCode());
BigDecimal moneyByUserIds = cardMapper.getTotalMoneyByuserIds(memberList, CardDO.ADD, CostTypeEnum.ADMIN_PAY.getCode(),getMonth());
response.setWithoutMoney(moneyByUserIds);
return response;
}
private Integer getMonth(){
DateTime date = DateUtil.date();
Integer month=null;
int day = date.dayOfMonth();
if(day<=26){
month= date.monthBaseOne();
}
return month;
}
@Override
public BillingRespMoneyVO getHaveWithoutMoney(Long userId) {
List<Long> memberList = getMemberListByUserId(userId);
@ -578,7 +585,8 @@ public class BillingServiceImpl implements BillingService {
public BigDecimal getUserTotalMoney(BillingPageDataVo vo) {
// 获取当前单位下的所有成员
List<Long> ids = getMemberListByUserId(vo.getUserId());
List<CardDO> moneyByUserIds = cardMapper.getMoneyByUserIds(ids, CardDO.ADD, CostTypeEnum.ADMIN_PAY.getCode(), BillingStatusEnum.BILLING_INVOICING_REJECTION.getCode());
List<CardDO> moneyByUserIds = cardMapper.getMoneyByUserIds(ids, CardDO.ADD, CostTypeEnum.ADMIN_PAY.getCode(), BillingStatusEnum.BILLING_INVOICING_REJECTION.getCode(),getMonth());
return moneyByUserIds.stream()
.map(CardDO::getChangeMoney)
.filter(Objects::nonNull)